|
metasploit滲透學(xué)習(xí)筆記前三季講解 一共五章灰鴿子下載www.dumiaotech.com
PTES標(biāo)準(zhǔn)中的滲透測(cè)試階段是用來(lái)定義滲透測(cè)試過(guò)程,并確保客戶組織能夠以一種標(biāo)準(zhǔn)化的方式來(lái)擴(kuò)展一次滲透測(cè)試。
1、情報(bào)收集
社交媒體網(wǎng)絡(luò)
Google Hacking技術(shù)
目標(biāo)系統(tǒng)踩點(diǎn)
最為重要的一項(xiàng)技術(shù)是對(duì)目標(biāo)系統(tǒng)的探查能力,包括獲知它的行為模式、運(yùn)行機(jī)理,以及最終可以如何被攻擊。
2、威脅建模階段
威脅建模主要使用你在情報(bào)搜集階段所獲取到的信息,來(lái)標(biāo)識(shí)出目標(biāo)系統(tǒng)上可能存在的安全漏洞與弱點(diǎn)。在威脅建模時(shí),你將確定最為高效的攻擊方法、你所需要進(jìn)一步獲取到的信息,以及從哪里攻破目標(biāo)系統(tǒng)。
3、漏洞分析階段
一旦確定最為可行的攻擊方法之后,你需要考慮你該如何取得目標(biāo)系統(tǒng)的訪問(wèn)權(quán)。在漏洞分析階段,你將綜合從前面的幾個(gè)環(huán)節(jié)中獲取到的信息,并從中分析和理解哪些攻擊途徑會(huì)是可行的。特別是需要重點(diǎn)分析的端口和漏洞掃描結(jié)果。
4、滲透攻擊階段
滲透攻擊的時(shí)候,最好是在你基本能確信特定滲透攻擊會(huì)成功的時(shí)候,才真正對(duì)目標(biāo)系統(tǒng)實(shí)施這次滲透攻擊,不能進(jìn)行大量漫無(wú)目的的滲透嘗試,這種方式將會(huì)造成大量喧鬧的報(bào)警。
5、后滲透攻擊階段
后滲透攻擊階段是一個(gè)關(guān)鍵環(huán)節(jié),后攻擊階段將以特定的業(yè)務(wù)系統(tǒng)作為目標(biāo),識(shí)別出關(guān)鍵的基礎(chǔ)設(shè)施,并尋找客戶組織最具價(jià)值和嘗試進(jìn)行安全保護(hù)的信息和資產(chǎn)。分析攻陷的服務(wù)器用途,尋找有價(jià)值的信息。
滲透測(cè)試類型
白帽測(cè)試
黑盒測(cè)試
漏洞掃描器
漏洞掃描器是用來(lái)找出指定系統(tǒng)或應(yīng)用中安全漏洞的自動(dòng)化工具。漏洞掃描器根據(jù)目標(biāo)系統(tǒng)的指紋信息來(lái)判斷其類型和版本,以及上面運(yùn)行的所有服務(wù)。
Metasploit 基礎(chǔ)
通用安全述語(yǔ)
滲透攻擊(Exploit)
滲透攻擊是指由攻擊者或者滲透測(cè)試者利用系統(tǒng)、應(yīng)該或服務(wù)中的安全漏洞,所進(jìn)行的攻擊行為。
流行的攻擊技術(shù)包括:緩沖區(qū)溢出、Web應(yīng)用程序漏洞攻擊(SQL注入),以及利用配置錯(cuò)誤等。
攻擊載荷(Payload)
攻擊載何是我們期望目標(biāo)系統(tǒng)在被滲透攻擊后而執(zhí)行的代碼。在Metasploit框架中可以自由的選擇、傳送和植入。比如,反彈式shell是一種從目標(biāo)主機(jī)到攻擊主機(jī)創(chuàng)建網(wǎng)絡(luò)連接,并提供命令行shell的攻擊載荷。bind shell攻擊載荷則在目標(biāo)主機(jī)上將命令行shell綁定到一個(gè)打開(kāi)的監(jiān)聽(tīng)端口,攻擊者可以連接這些端口來(lái)取得shell交互。
溢出代碼(Shellcode)
shellcode是在滲透攻擊時(shí)作為攻擊載荷運(yùn)行的一組機(jī)器指令。shellcode通常用匯編語(yǔ)言編寫。在大多數(shù)情況下,目標(biāo)系統(tǒng)執(zhí)行了shellcode這一組指令后,才會(huì)提供一個(gè)命令行shell或者M(jìn)eterpreter shell,這也是shellcode名稱的由來(lái)。
模塊(Module)
在Metasploit中,一個(gè)模塊是指Metasploit框架中所使用的一段軟件代碼組件。在某些時(shí)候,你可能會(huì)使用一個(gè)滲透攻擊模塊(Exploit module),也就是用于實(shí)際發(fā)起滲透攻擊的軟件組件。而在其它時(shí)候,則可能使用一個(gè)輔助模塊(auxiliary module),用來(lái)掃描一些諸如掃描或系統(tǒng)查點(diǎn)的攻擊動(dòng)作。
監(jiān)聽(tīng)器(Listener)
監(jiān)聽(tīng)器是Metasploit中用來(lái)等待連入網(wǎng)絡(luò)連接的組件。舉例來(lái)說(shuō),在目標(biāo)主機(jī)被滲透攻擊之后,它可能會(huì)通過(guò)互聯(lián)網(wǎng)回連到攻擊主機(jī)上,而監(jiān)聽(tīng)器組件在攻擊主機(jī)上等待被滲透攻擊的系統(tǒng)來(lái)連接,并負(fù)責(zé)處理這些網(wǎng)絡(luò)連接。
Metasploit用戶接口
Metasploit軟件為它的基礎(chǔ)功能提供了多個(gè)用戶接口,包括終端、命令行和圖形化界面。除了這些接口之外,功能程序(utilities)則提供了對(duì)Metasploit框架中內(nèi)部功能的直接訪問(wèn),這些功能程序?qū)τ跐B透代碼開(kāi)發(fā),以及在一些你不需要的整體框架靈活性的場(chǎng)合中非常有價(jià)值。
MSF終端
MSF終端(msfconsole)是目前Metasploit框架最為流行的用戶接口。
啟動(dòng)MSF終端
# cd /opt/framwork3/msf3
/opt/framwork/msf3# msfconsole
訪問(wèn)終端的幫助文件,輸入help 并加上你感興趣的metasploit命令
msf> help connect
MSF命令行
msfcli -h 顯示幫助
msfcli -O 顯示選項(xiàng)
msfcli -P 顯示載荷
msfcli -E 執(zhí)行
Armitage
Metasploit框架中的armitage組件是一個(gè)完全交互的圖形化用戶接口。
Metasploit功能程序
MSF攻擊載荷生成器(msfpayload)
MSF攻擊載荷生成器允許你能夠生成shellcode、可執(zhí)行代碼和其他更多的東西,也可以讓它們?cè)诳蚣苘浖獾臐B透代碼中進(jìn)行使用。
shellcode可以生成包括C、Javascript、甚至web應(yīng)用程序中visual basic腳本在內(nèi)的多種格式,每種格式在不同的場(chǎng)景中使用。
POC 概念驗(yàn)證代碼
MSF編碼器(msfencode)
由MSF攻擊載荷生成器產(chǎn)生的shellcode是完全可以運(yùn)行的,但是其中包含了一些null空字符,在一些程序進(jìn)行解析時(shí),這些空字符會(huì)被認(rèn)為是字符串的結(jié)束,從而使得代碼在完整執(zhí)行之前被截?cái)喽K止運(yùn)行。簡(jiǎn)單來(lái)說(shuō),這些\x00和\xff字符會(huì)破壞你的攻擊載荷。
另外,在網(wǎng)絡(luò)上明文傳輸?shù)膕hellcode很可能被入侵檢測(cè)系統(tǒng)和殺毒軟件所識(shí)別,為了解決這一問(wèn)題,metasploit的開(kāi)發(fā)者們提供了MSF編碼器,對(duì)原始攻擊載荷進(jìn)行編碼,來(lái)避免壞字符以及逃避殺毒軟件和IDS的檢測(cè)。
Metasploit滲透學(xué)習(xí)日記二
情報(bào)收集
情報(bào)收集是滲透測(cè)試流程中的第二個(gè)步驟。情報(bào)收集的目的是獲取滲透目標(biāo)的準(zhǔn)確信息,以了解目標(biāo)組織的動(dòng)作方式,確定最佳的進(jìn)攻路線。如果情報(bào)收集工作不夠細(xì)致,那么你可能會(huì)與可利用的系統(tǒng)漏洞或可實(shí)施攻擊的目標(biāo)之交臂。
情報(bào)收集的工作可能會(huì)包含從網(wǎng)頁(yè)中收集信息、google hacking、為特定的目標(biāo)的網(wǎng)絡(luò)拓?fù)溥M(jìn)行完整的掃描映射等,這些工作往往需要較長(zhǎng)的時(shí)間,會(huì)比較考驗(yàn)?zāi)愕哪托浴G閳?bào)收集工作需要周密的計(jì)劃、調(diào)研,而最重要的是要具備攻擊者角度去思考問(wèn)題的能力。
在開(kāi)始收集情報(bào)工作之前,你應(yīng)該考慮如何將每一步操作和得到的結(jié)果記錄下來(lái)。
使用被動(dòng)、間接的信息收集技巧,你可以在不接觸到目標(biāo)系統(tǒng)的情況下挖掘目標(biāo)信息。舉例來(lái)說(shuō),你可以使用這些技巧確定網(wǎng)絡(luò)邊界情況和網(wǎng)絡(luò)運(yùn)維人員,甚至了解到目標(biāo)網(wǎng)絡(luò)中使用的操作系統(tǒng)和網(wǎng)站服務(wù)器軟件的類型。
1、whois查詢
說(shuō)明:查看域名的詳細(xì)信息
命令格式:
whois 域名/IP
主動(dòng)信息收集
在主動(dòng)信息收集工作中,我們與目標(biāo)系統(tǒng)直接交互,從而對(duì)其進(jìn)行更深入的了解。舉例來(lái)說(shuō),我們可以執(zhí)行端口掃描來(lái)確定目標(biāo)系統(tǒng)開(kāi)放了哪些端口、運(yùn)行了哪些服務(wù)。但是請(qǐng)注意:如果你在主動(dòng)信息收集過(guò)程中不夠小心,那么你很可能會(huì)被入侵檢測(cè)系統(tǒng)(IDS)或入侵防御系統(tǒng)(IPS)給逮住。
使用Nmap進(jìn)行端口掃描
通過(guò)被動(dòng)信息收集確定了目標(biāo)的IP范圍后,我們可以開(kāi)始使用端口掃描獲取目標(biāo)開(kāi)放的端口。端口掃描的過(guò)程實(shí)際上是逐個(gè)對(duì)遠(yuǎn)程主機(jī)的端口發(fā)起連接,從而確定哪些端口是開(kāi)放的。
Nmap是一款強(qiáng)大的掃描工具,其參數(shù)及應(yīng)用技巧非常多,在這里,只用了一些常用的選項(xiàng)
1、-sS 這個(gè)選項(xiàng)是執(zhí)行一次隱秘的TCP掃描,以確定某個(gè)特定的TCP端口是否開(kāi)放
2、-Pn 這個(gè)選項(xiàng)是告訴nmap不要使用ping命令預(yù)先判斷主機(jī)是否存活,而是默認(rèn)所有主機(jī)都是存活狀態(tài)。
在這里,我們可以發(fā)現(xiàn),服務(wù)器運(yùn)行是操作系統(tǒng)是window server 2003 SP1 數(shù)據(jù)庫(kù)是mssql,其版本信息也一目了然。
高級(jí)Nmap掃描技巧:TCP空閑掃描
一種更加高級(jí)的nmap掃描方式是TCP空閑掃描,這種掃描能讓我們冒充網(wǎng)絡(luò)上另一臺(tái)主機(jī)的IP地址,對(duì)目標(biāo)進(jìn)行更為隱秘的掃描(我可不可以認(rèn)為是跳板技術(shù)的一種呢?)。進(jìn)行這種掃描之前,我們需要在網(wǎng)絡(luò)上定位一臺(tái)使用遞增IP幀標(biāo)識(shí)(IP ID:用于跟蹤IP包的次序的一種技術(shù))機(jī)制的空閑主機(jī)(空閑是指該主機(jī)在一段特定的時(shí)間內(nèi)不向網(wǎng)絡(luò)發(fā)送數(shù)據(jù)包)。
我們可以使用Metasploit框架的auxiliary/scanner/ip/ipidseq模塊,來(lái)尋找能夠滿足TCP空閑掃描要求的空閑主機(jī),如下所示:
需要說(shuō)明的是:ipidseq模塊中的options設(shè)置:必設(shè)置的項(xiàng)為:RHOSTS 這個(gè)可是單個(gè)IP,也可以是一個(gè)IP段(如192.168.1.1-192.168.1.254)、CIDR地址(192.168.1.0/24),另外THREAD參數(shù)是設(shè)定掃描線程數(shù)的,默認(rèn)為1單線程。增加參數(shù)值可提高掃描速度,降低參數(shù)值可減少網(wǎng)絡(luò)上的數(shù)據(jù)流量。一般來(lái)說(shuō),在windows平臺(tái)上運(yùn)行metasploit這個(gè)參數(shù)值最好不要超過(guò)16,在類unix平臺(tái)上運(yùn)行不要超過(guò)128。
在這里,我們發(fā)現(xiàn):192.168.1.110's IPID sequence class: Incremental!提示為incremental,這說(shuō)明,這臺(tái)主機(jī)滿足空閑TCP掃描的要求,接下來(lái),我們?cè)趎map中增加選項(xiàng) –sI 來(lái)進(jìn)行一次空閑TCP掃描
使用空閑掃描,我們可以不用自身IP地址向目標(biāo)主機(jī)發(fā)送任何數(shù)據(jù)包,就能獲取到目標(biāo)主機(jī)上開(kāi)放的端口信息。
在MSF終端中運(yùn)行Nmap
現(xiàn)在我們把nmap和metasploit結(jié)合起來(lái)使用。我的使用的BT5R3平臺(tái),所以對(duì)書里的一些設(shè)置命令,在這里根本用不上,所以就省略了,因?yàn)锽T5R3默認(rèn)已經(jīng)做好這一切了。我們直接使用就可以。
終端中輸入msfconsole進(jìn)入MSF,使用db_namp開(kāi)始進(jìn)行掃描:
到這里,我們就已經(jīng)收集到了很多服務(wù)器上面的信息了 |
|