本節書摘來自異步社群《kali linux滲透測試的藝術》一書中的第2章2.5節通用滲透測試架構,作者【英】lee allen , 【印尼】tedi heriyanto , 【英】shakeel ali,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。
2.5 通用滲透測試架構
kali linux滲透測試的藝術
kali linux屬于通用型作業系統,它配備有多種安全評估工具和滲透測試工具。在沒有合适的測試理論指導的情況下冒然使用這些工具,可能會導緻測試失敗,測試結果可能無法讓人滿意。是以,從技術管理的角度來看,遵循正規的測試架構對安全測試極為重要。
這一小節将通過黑盒測試的具體方法和白盒測試的通用測試方法介紹通用測試架構。它涵蓋了典型的審計測試工作和滲透測試工作會涉及到的各個階段。評估人員可以根據被測目标的具體情況對上述測試方法進行相應調整。這一方法論由一系列相關步驟所組成。要想成功完成安全評估項目,必須在測試的初始化階段、測試進行階段以及測試結束階段全面遵循這些步驟。這些步驟包括:
範圍界定;
資訊收集;
目辨別别;
服務枚舉;
漏洞映射;
社會工程學;
漏洞利用;
提升權限;
通路維護;
文檔報告。
無論是進行白盒測試還是黑盒測試,選擇和使用測試步驟都是測試人員的責任。在測試開始前,測試人員需要根據目标系統的實際環境和已掌握的關于目标系統的情況,制定最佳的測試政策。下文将會介紹每一個測試階段,包括它們的簡要描述、定義和可能适用的應用程式。雖然這種通用測試方法論可以配合其他的方法論同時使用,但是它隻是一種指導建議,而不是全能的滲透測試解決方案。
2.5.1 範圍界定
在開始技術性安全評估之前,務必要觀察、研究目标環境的被測範圍。同時還要了解,這個範圍牽扯到多少個機關,是單個機關還是多個機關會參與到安全評估的工作中來。在範圍界定階段,需要考慮的典型因素如下。
測試對象是什麼?
應當采取何種測試方法?
有哪些在測試過程中需要滿足的條件?
哪些因素可能會限制測試執行的過程?
需要多久才能完成測試?
此次測試應當達成什麼任務目标?
審計人員隻有确切了解被評估系統所使用的技術,了解其基本功能,以及相關技術與網絡之間的互相影響,才能成功達成滲透測試的目标。是以,無論是進行什麼類型的安全評估項目,審計人員的知識結構都将起着至關重要的作用。
2.5.2 資訊收集
在劃定了測試範圍之後,就需要進入資訊收集階段。在這個階段,滲透測試人員需要使用各種公開資源盡可能地擷取測試目标的相關資訊。他們從網際網路上搜集資訊的網際網路管道主要有:
論壇;
公告闆;
新聞討論區;
媒體文章;
部落格;
社交網絡;
其他商業或非商業性的網站。
此外,他們也可借助各種搜尋引擎中擷取相關資料,例如谷歌、雅虎、msn必應、百度等。進一步說,審計人員可以使用kali linux收錄的各種工具在測試目标的網絡系統裡挖掘資訊。這些運用漏洞資料挖掘技術的工具能夠收集可觀資訊,包括dns伺服器、路由關系、whois資料庫、電子郵件位址、電話号碼、個人資訊以及使用者賬戶。收集到的資訊越多,滲透測試成功的機率就越高。
2.5.3 目辨別别
這個階段的主要任務是識别目标的網絡狀态、作業系統和網絡架構。該階段工作旨在完整地展現目标網絡裡各種聯網裝置或技術的完整關系,以幫助測試人員在接下來的工作裡枚舉目标網絡的各種服務。kali linux提供的一系列先進的網絡工具,可以輕松探測到聯網主機,識别這些主機運作的作業系統,并根據每個裝置在網絡系統中的不同角色對它們進行歸類。這些工具通常采用了基于上層網絡協定的主動和被動的檢測技術。它們能夠通過不同的方式巧妙地利用各種協定擷取許多有用的資訊,比如作業系統指紋等。
2.5.4 服務枚舉
這一階段會根據前面各個階段的成果,進一步找出目标系統中所有開放的端口。一旦找到了所有開放的端口,就可以通過這些端口來列出目标系統上運作的服務。有很多掃描端口的技術,如全開(full-open)掃描、半開(half-open)掃描、隐蔽式(stealth)掃描等。這些技術都可用來檢測端口的開放情況,甚至可以掃描處于防火牆或者入侵檢測系統保護下的主機。主機上開放的端口都有相應的服務程式,對這些資訊進行深度分析之後,可進一步發掘目标網絡基礎設施中可能存在的漏洞。是以,這個階段為其後的測試工作打下了基礎,有助于測試人員繼而發現各種網絡裝置上可能會造成嚴重危害的安全漏洞。kali linux收錄的部分自動化工具可以輔助審計人員完成這一階段的目标。
2.5.5 漏洞映射
至此為止,我們已經充分收集了目标網絡的各種資訊。接下來,我們就可以根據已經發現的開放端口和服務程式,查找、分析目标系統中存在的漏洞。kali linux系統中提供的一系列自動化的網絡和應用漏洞評估工具可以擔任完成這個階段的任務。當然,人工(手動)完成這些任務未嘗不可,隻是人工操作極為耗時,而且需要有關人員擁有專家級的知識。但是,如果能夠将自動和手動這兩種不同的測試方法結合起來,審計人員對目标系統的認知就會更為清晰、透徹,并能夠仔細地檢查任何已知和未知的漏洞。否則,被遺漏的漏洞将會一直殘留在目标網絡系統裡。
2.5.6 社會工程學
如果目标網絡沒有直接的入口,欺騙的藝術将起到抛磚引玉的重要作用。對目标組織中的人員進行定向攻擊,很有可能幫助我們找到滲透目标系統的入口。例如,誘使使用者運作會安裝後門的惡意程式,就可能為審計人員的滲透工作形成突破。社會工程學滲透分為多種不同實作形式。僞裝成網絡管理者,通過電話要求使用者提供自己的賬戶資訊;發送釣魚郵件來劫持使用者的銀行賬戶;甚至是誘使某人出現在某個地點—這些都屬于社會工程學攻擊。在社會工程學中,達成同一既定目标的實作方式應有盡有。需要注意的是,在對目标實施欺騙以達成滲透目标之前,多數情況下需要長時間研究目标人員的心理。另外,在開展這個階段的工作之前,您需要事先研究國内的法律是否有關于社會工程學的相關條款。
2.5.7 漏洞利用
在仔細檢查和發現目标系統中的漏洞之後,就可以使用已有的漏洞利用程式對目标系統進行滲透。某些情況下不得不對漏洞利用程式(exploit)進行額外的研究和修改,否則它可能就無法正常工作。雖然這聽起來就很麻煩,但是先進的漏洞利用(修改)工具可使這項工作容易得多,而且kali linux已經收錄了這種工具。此外,審計人員可以把用戶端漏洞利用程式和社會工程學進行結合,進而控制目标系統。這個階段的主要任務是控制目标系統。整個流程可以分為3步,涉及攻擊前、攻擊、攻擊後的相關行動。
2.5.8 提升權限
擷取目标系統的控制權是滲透成功的标志。接下來,審計人員就可以依據其所擁有的通路權限,在被測系統中自由發揮。審計人員也可以使用适用于目标系統的本地漏洞來提升自己的權限。隻要他們能夠在目标系統上運作提權漏洞利用程式,就可以獲得主機上的超級使用者權限或者系統級權限。審計人員還可以以該主機為跳闆,進一步攻擊區域網路絡。根據之前對滲透範圍的界定,審計人員接下來會開展的攻擊可能是受限制的,也可能是不受限的。而後,他們很有可能以各種方式獲得與被控制系統有關的更多資訊。具體的說,他們可能使用嗅探手段截獲網絡資料包,破解各種服務的密碼,在區域網路絡中使用網絡欺騙手段。是以說,提升權限的最終目的是獲得目标系統的最高通路權限。
2.5.9 通路維護
多數情況下,審計人員需要在一段時間内維護他們對目标系統的通路權限。例如,在示範越權通路目标系統的時候,安裝後門将節省重新滲透目标系統所耗費的大量時間。這些情況下,通路維護将節約擷取目标系統通路權限所需要的時間、花費和資源。審計人員可以通過一些秘密的通信隧道,在既定時間内維持對目标的通路權限。這些隧道往往基于特定協定、代理或者點對點通信方法的後門程式。這種對系統的通路方法可以清楚地展示,入侵人員在目标系統實施攻擊時隐匿行蹤的具體方法。
2.5.10 文檔報告
在滲透測試的最後一個環節裡,審計人員要記錄、報告并現場示範那些已經識别、驗證和利用了的安全漏洞。被測機關的管理和技術團隊會檢查滲透時使用的方法,并會根據這些文檔修補所有存在的安全漏洞。是以從道德角度來看,文檔報告的工作十分重要。為了幫助慣例人員和技術人員共同了解、分析目前it基礎架構中的薄弱環節,可能需要給不同的部門撰寫不同措辭的書面報告。此外,這些報告還可以用來擷取和比較滲透測試前後目标系統的完整性。
本文僅用于學習和交流目的,不代表異步社群觀點。非商業轉載請注明作譯者、出處,并保留本文的原始連結。