滲透測試的流程
滲透測試是一種有目的性的,針對目標機構計算機系統安全的檢測評估方法,滲透測試的主要目的是改善目標機構的安全性。
滲透測試各個階段的基本工作:
1.前期交互階段
在這個階段,滲透測試工程師要與客戶進行充分的交流,以便客戶對即將開展的滲透測試會對他的網絡或者服務器產生的影響有足夠的了解。進一步的確定滲透測試的范圍,目標以及代表客戶進行測試時的特殊需求,例如特殊的權限,關鍵系統的訪問許可等。在這階段,關鍵點如下:
(a).滲透測試的范圍:這一部分需要確定滲透測試的范圍並預估計整個項目的工作量。同時要確定哪些目標是在滲透測試范圍內,哪些是不允許進行滲透測試的。測試工程師要確認滲透測試區域內涉及的IP地址范圍和域名范圍,以及采用的測試類型(黑盒測試和白盒測試)。
(b).滲透測試的目標:這一部分定義本次滲透測試預期達到的主要和次要效果。
(c).滲透測試用到的術語和定義:這一部分要向客戶介紹整個測試過程中出現的專業術語和定義,以便客戶更好的理解整個滲透測試工作。
(d).滲透測試的規定:這一部分要商定完成滲透測試的工期,具體工作開展的進度表,滲透攻擊的授權許可,以及定期看召開會議跟進滲透測試進程中出現的各種情況。
2.信息收集/偵查階段
在信息收集階段,滲透測試工程師需要盡可能采用各種方式來收集目標網絡的所有信息。可以使用各種社交媒體來收集相關信息,以及使用google dorks技術去尋找目標相關信息,還可以對目標進行主動掃描和被動掃描技術進行踩點。信息收集是滲透測試過程中最為重要的階段之一,最終能否成功滲透進入目標網絡很大程度上取決於測試者在這個階段的工作成果。在這階段,關鍵點如下:
(a).目標選擇:選擇攻擊的目標,確定攻擊達到的效果以及整個攻擊過程花費的時間。
(b).隱私收集:包括現場信息收集,檢查使用的設備信息,以及目標單位外部的信息收集。
(c).踩點工作:包含針對目標的主動和被動掃描技術,掃描目標計算機上運行的服務,開放的端口,以及驗證這些端口上運行着的全部服務,獲取系統標志等。
(d).驗證目標的安全機制:包含防火牆,網絡流量過濾系統,網絡和主機的保護措施的確認工作等。
3.威脅建模
為了保證滲透測試正確的進行,必須進行威脅建模,主要工作就是模擬出對目標准確的威脅以及這些威脅的作用,並根據這些威脅可能對對目標產生的影響對其進行分類。這個階段滲透測試工程師可以確定最佳的攻擊方式。這個階段將確定最佳的攻擊方式,解決以下問題:
(a).如何攻擊指定的網絡?
(b).需要獲得重要的信息是什么?
(c).在攻擊時采取什么方法最為合適?
(d).對目標來說最大的安全是什么?
我們滲透測試工程師應該完成的工作:
(a).收集有關高等級威脅的相關文檔;
(b).根據基本的分類方法對組織的資源進行標識;
(c).對威脅進行識別和分類;
(d).將組織的資源映射成模型。
4.漏洞分析
漏洞分析是在一個系統或者一個應用程序中發現漏洞的過程。這些漏洞多種多樣,涵蓋了很多方面,從服務器的配置到Web程序服務,從應用程序到數據庫服務,從一個基於VOIP的服務器到基於SCADA的服務都可能存在漏洞。在這個階段包含了三個不同的機制,那就是測試,驗證和研究。測試包括主動測試和被動測試。驗證包括去除誤報和通過手動驗證漏洞的存在。研究指的是發現並觸發漏洞以確認它的存在。
5.滲透攻擊和后滲透攻擊
滲透攻擊階段可以利用之前漏洞分析階段的成果,在這一階段,滲透測試工程師可以針對目標系統的漏洞使用對應的入侵模塊獲得控制權限。
后滲透階段發生在滲透攻擊階段之后,這個階段包含了當成功滲透攻擊到了對方計算機以后的很多任務,比如提高權限,上傳和下載文件,跳板攻擊等等。
6.報告階段
在進行滲透測試時,創建整個滲透測試的正式報告是在最后一個階段進行的。滲透測試報告的重要組成部分包括:確定目標最為重要的威脅,將滲透得到的數據生成表格和圖表,對目標系統的改進建議,以及這些問題的修復方案。
使用Metasploit進行滲透測試
一.metasploit的基礎知識
在kali Linux系統下使用Metasploit框架,進入msfconsole終端,有一些基本的模塊:
滲透攻擊模塊(Exploit):這是一段程序,運行起來的時候就會利用目標的安全漏洞進行攻擊。
攻擊載荷模塊(Payload):這段程序會在成功對目標系統完成一次滲透攻擊之后在目標計算機上開始運行,基本上它能幫助我們在目標系統上獲得需要的訪問和行動權限。
輔助模塊(Auxiliary):一些列的輔助支持模塊,包括掃描模塊,fuzzing測試漏洞發掘模塊,網絡協議欺騙以及其他一些模塊。
編碼模塊(Encoder):編碼器模塊通常用來對我們的攻擊模塊進行代碼混淆,來跳過目標安全保護機制的檢測。目標安全保護機制包括殺毒軟件和防火牆。