Kali Linux滲透測(cè)試五步曲
Kali Linux的設(shè)計(jì)目的是滲透測(cè)試。不管滲透測(cè)試者的起點(diǎn)是白盒測(cè)試、黑盒測(cè)試,還是灰盒測(cè)試,在用Kali或其它工具進(jìn)行滲透測(cè)試時(shí),總要遵循一些步驟。
第一步:偵察階段
在發(fā)動(dòng)攻擊之前,滲透測(cè)試者應(yīng)當(dāng)盡量多地了解目標(biāo)環(huán)境和系統(tǒng)的特點(diǎn)。滲透測(cè)試者找到的目標(biāo)信息越多,就越有更好的機(jī)會(huì)確認(rèn)最容易和最快的成功方法。與白盒測(cè)試相比,黑盒測(cè)試要求進(jìn)行更多的偵察,因?yàn)闇y(cè)試者并沒有獲得太多的數(shù)據(jù)。偵察服務(wù)可能包括調(diào)查目標(biāo)的互聯(lián)網(wǎng)足跡、監(jiān)視資源、監(jiān)視人員、過程等,掃描網(wǎng)絡(luò)信息(如IP地址和系統(tǒng)類型),社會(huì)工程的公共服務(wù)(如幫助臺(tái)等途徑)。
不管滲透測(cè)試者是確認(rèn)目標(biāo)系統(tǒng)的已知信息,還是查找已知的情報(bào),偵察都是滲透測(cè)試的首要一步。偵察的時(shí)候,必須根據(jù)工作領(lǐng)域來定義目標(biāo)環(huán)境。一旦目標(biāo)確定,就要執(zhí)行調(diào)查來收集目標(biāo)的情報(bào),例如哪些端口用于通信,目標(biāo)托管于哪里,它為客戶提供哪些服務(wù),等等。這種數(shù)據(jù)可以制定一個(gè)計(jì)劃,看看用什么最佳方法可以獲得所期望的結(jié)果。偵察過程后應(yīng)帶來的結(jié)果包括:所有目標(biāo)資產(chǎn)的清單、與資產(chǎn)有關(guān)聯(lián)的應(yīng)用程序有哪些、使用的服務(wù)、可能的資產(chǎn)所有者。
Kali Linux提供了一個(gè)標(biāo)有“Information Gathering(信息收集)”的類別,這就是一種偵察資源。工具包括一些調(diào)查網(wǎng)絡(luò)、數(shù)據(jù)中心、無線網(wǎng)絡(luò)、主機(jī)系統(tǒng)的工具。
下面是偵察目標(biāo)的清單:
確認(rèn)目標(biāo)
定義應(yīng)用程序和業(yè)務(wù)的使用
確認(rèn)系統(tǒng)類型
確認(rèn)可用端口
確認(rèn)正在運(yùn)行的服務(wù)
被動(dòng)的社會(huì)工程信息
文檔發(fā)現(xiàn)
第二步:目標(biāo)評(píng)估
在通過偵察確認(rèn)并調(diào)查了目標(biāo)之后,下一步就是評(píng)估目標(biāo)的漏洞了。在這一點(diǎn)上,滲透測(cè)試人員應(yīng)當(dāng)足夠地了解目標(biāo),只有這樣才能選擇如何分析可能的漏洞或弱點(diǎn)。正所謂,沒有調(diào)查就沒有發(fā)言權(quán)。測(cè)試漏洞的范圍可能包括:Web應(yīng)用程序如何運(yùn)行、有哪些服務(wù)、有哪些通信端口等等。漏洞評(píng)估和安全審計(jì)往往是在目標(biāo)評(píng)估過程這個(gè)階段之后才能得出結(jié)論。
通過偵察來獲得信息可以提高發(fā)現(xiàn)潛在漏洞的準(zhǔn)確性,縮短評(píng)估目標(biāo)服務(wù)的時(shí)間,并有助于避開已有的安全。例如,針對(duì)Web應(yīng)用服務(wù)器運(yùn)行普通的漏洞掃描器有可能向資產(chǎn)所有者發(fā)出警告,只生成關(guān)于系統(tǒng)和應(yīng)用的一般細(xì)節(jié)。根據(jù)偵察階段所獲得的數(shù)據(jù),掃描服務(wù)器的特定漏洞對(duì)于資產(chǎn)所有者來說可能更難一些,不妨提供一種容易利用的漏洞,并且花點(diǎn)時(shí)間來執(zhí)行。
評(píng)估目標(biāo)的漏洞可采用人工方式或通過工具的自動(dòng)方式。在Kali Linux中有一組工具稱為漏洞分析(Vulnerability Analysis)。這些工具的功能涉及從評(píng)估網(wǎng)絡(luò)設(shè)備到數(shù)據(jù)庫(kù)的多個(gè)方面。
下面這個(gè)清單列示的是評(píng)估目標(biāo):
評(píng)估目標(biāo)系統(tǒng)的弱點(diǎn);
確定有漏洞系統(tǒng)的優(yōu)先次序;
將有漏洞的系統(tǒng)映射到資產(chǎn)所有者;
記錄發(fā)現(xiàn)的問題。
第三步:利用漏洞
這一步利用所發(fā)現(xiàn)的漏洞驗(yàn)證這些漏洞是否真實(shí),并且驗(yàn)證可能獲得哪些訪問或訪問權(quán)。利用漏洞將滲透測(cè)試服務(wù)與被動(dòng)服務(wù)(如漏洞評(píng)估和審計(jì))分離開。漏洞利用和所有的后續(xù)步驟都可以無需目標(biāo)系統(tǒng)的所有者授權(quán),而獲得合法的結(jié)果。
這一步的成功主要依賴的是以前的工作。多數(shù)漏洞利用程序都是針對(duì)特定的漏洞而開發(fā)的,并且如果執(zhí)行不正確的話有可能引起不可預(yù)料的結(jié)果。最佳方法是確認(rèn)幾個(gè)漏洞,然后針對(duì)最容易被利用的漏洞制定攻擊策略。
利用目標(biāo)系統(tǒng)的漏洞的過程可能是人工的,或者是自動(dòng)化的,其依據(jù)是最終目標(biāo)。有些情況是運(yùn)行SQL注入來獲得Web應(yīng)用程序的管理員訪問權(quán),或者是通過社會(huì)工程手段,使服務(wù)臺(tái)的人員提供管理員的登錄憑據(jù)。Kali Linux提供了一類稱為“Exploitation Tools(漏洞利用工具)”專用工具來利用目標(biāo)的漏洞,其涉及的范圍從利用特定服務(wù)的漏洞到社會(huì)工程軟件包。
下面列示的是一些漏洞利用的目標(biāo):
利用漏洞;
獲得訪問權(quán);
捕獲未授權(quán)數(shù)據(jù);
積極實(shí)施社會(huì)工程;
攻擊其它系統(tǒng)或應(yīng)用程序;
記錄發(fā)現(xiàn)的結(jié)果。
第四步:特權(quán)提升
訪問目標(biāo)并不能保證可以完成滲透任務(wù)。在很多情況下,利用一個(gè)有漏洞的系統(tǒng)可能需要訪問受限制的數(shù)據(jù)和資源。攻擊者必須提升特權(quán)才能獲得關(guān)鍵數(shù)據(jù)(敏感數(shù)據(jù)、關(guān)鍵的基礎(chǔ)架構(gòu))的訪問。
特權(quán)提升可能包括確認(rèn)和破解口令、用戶賬戶、未獲得授權(quán)的IT空間等。例如,攻擊者可以實(shí)現(xiàn)受限的用戶訪問,確認(rèn)包含管理員登錄憑據(jù)的影子文件,通過口令破解獲得管理員的口令,并通過管理員的訪問權(quán)訪問內(nèi)部的應(yīng)用系統(tǒng)。
Kali Linux的口令攻擊和漏洞利用工具目錄提供了很多有助于獲得特權(quán)提升的工具。由于其中的多數(shù)工具包括了獲得初始訪問和特權(quán)提升的方法,所以這些工具是根據(jù)工具集來分組的。
下面列示的是特權(quán)提升目標(biāo):
獲得訪問系統(tǒng)和網(wǎng)絡(luò)的更高特權(quán);
揭示其它的用戶賬戶信息;
通過提升特權(quán)訪問其它系統(tǒng);
記錄所發(fā)現(xiàn)的結(jié)果。
第五步:保持立足點(diǎn)
最后一步是通過建立進(jìn)入目標(biāo)的其它登錄點(diǎn)來保持訪問,如果有可能,還要覆蓋滲透的證據(jù)。滲透過程有可能觸發(fā)防御機(jī)制,這最終有助于確保滲透測(cè)試人員訪問網(wǎng)絡(luò)時(shí)的安全性。最佳方法是建立訪問目標(biāo)的其它手段,以此作為主要路徑被關(guān)閉后的保證??蛇x擇的訪問方法可以是后門、新的管理員賬戶、加密通道、新的網(wǎng)絡(luò)訪問通道等。
在目標(biāo)系統(tǒng)中建立立足點(diǎn)的另一個(gè)重要方面就是清除滲透的證據(jù)。這可以使檢測(cè)攻擊更困難,因而可以減少安全防御的反應(yīng)。清除證據(jù)包括刪除用戶日志、掩蓋已有的訪問通道、清除破壞的痕跡(例如由滲透過程引起的錯(cuò)誤消息)。
Kali Linux包括一個(gè)題為“維持訪問(Maintaining Access)”的目錄,其目標(biāo)就是在目標(biāo)系統(tǒng)上保持一個(gè)立足點(diǎn)。為了在目標(biāo)系統(tǒng)中建立各種形式的后門,需要使用工具。
在目標(biāo)系統(tǒng)上建立立足點(diǎn)的目標(biāo)列示如下:
在目標(biāo)網(wǎng)絡(luò)上建立多個(gè)訪問點(diǎn);
清除已經(jīng)獲得授權(quán)訪問的證據(jù);
修復(fù)漏洞的利用影響到的系統(tǒng);
如果有需要,就注入虛假數(shù)據(jù);
通過加密和其它手段隱藏通信方法;
記錄發(fā)現(xiàn)的結(jié)果。