滲透測試現在依據PTES(penetration testing execution standard)標準,包括前期交互、情報收集、威脅建模、漏洞分析、滲透攻擊、后滲透、報告七個階段。
前期交互階段:這個階段的內容是要確定測試的目標系統,也就是前期準備工作。比如說要測試一個網站或者是一個 app,這一個系統不僅僅是這個應用程序,它同時也包括比如中間件、服務器、數據庫、waf、ids 等,這些都是程序運行的基礎,統稱為系統。同時也要確定測試方式,比如說實在客戶現場測試還是遠程測試,也要確定測試的人數和測試的時間。這些工作是第一階段前期交互階段。
情報收集階段:當前期交互階段準備好后,就可以開始干活了。主要是搜集一些目標的信息,比如說郵箱地址、公司地址、聯系人、DNS 信息、服務器 IP 等等,這些也可以叫被動信息搜集,也就是不和目標產生交互的一種方式。還有一種叫主動信息搜集,也就是產生交互的一種方式,主要是對目標進行探測、掃描、端口和服務等。
威脅建模階段:通過前面的工作,這時候已經對目標有了一個大概輪廓性的認識,在威脅建模階段,主要是應用之前已經搜集到的信息,來標識出系統可能存在的漏洞和弱點。很多公司找人開始測試的時候都會畫一個數據流圖,系統架構,分析系統的每個功能點,這個點可能存在哪些漏洞,列好表格和文檔,這個個人覺得可以算作威脅建模階段的工作。
漏洞分析階段:這個階段主要是對系統進行分析,比如數據庫類型和版本、服務器類型和版本、中間件類型和版本,當版本過低時,就會存在很多公開的 CVE 漏洞,這些分析可以稱作漏洞分析階段。
滲透攻擊階段:這時候就是真正的滲透階段,通過前面的信息搜集和漏洞分析后,在這一階段就需要對之前已經分析可能存在的問題做驗證,現在很多工作其實就是做的這一階段,拿到網站 APP 后就開始測試找問題,這個就屬于滲透攻擊階段,除了找到問題外,也需要拿下這個服務器。很多測試都是拿到手就開干,往往都忽略掉了前幾個階段的內容。
后滲透攻擊階段:當拿下程序服務器后,滲透并不算結束,向客戶充分的展示漏洞的危害是很重要的,這個階段很重要,通過拿下一臺服務器然后去進行內網滲透,拿下域管理等,是這個階段要做的工作。
滲透測試報告:最后一個階段需要向客戶證明漏洞從發現到利用的過程和修復方式等,這個階段也很重要,前面工作做好后,漂亮的呈現出來也是一門技術。