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