滲透測試流程
有效利用學院
滲透測試職涯路徑導論
本模組提供滲透測試職涯路徑的簡介,並全面性介紹滲透測試與其過程中涵蓋的各階段(這些階段將在其他模組中深入探討)。我們建議您從本模組開始此路徑學習,並在完成其他模組時定期回顧,以便了解各主題領域如何適配於更大的滲透測試流程圖中。對於 HTB Academy 或本行業的新手而言,本模組也是絕佳的起點。
本路徑適用於各行各業有抱負的滲透測試人員、以及希望在某特定領域提升技巧、變得更全面、或從不同角度學習的資深滲透測試人員。它涵蓋了成功進行外部滲透測試、內部滲透測試(網路與 Active Directory)、以及 Web 應用程式安全評估的必要核心概念。我們將透過每個模組深入探討滲透測試相關的專業技術、方法與工具。本路徑將以高度實作的方式,帶領學員逐步探索滲透測試的所有階段,從偵查、詳查到文件撰寫與回報,最終以一個模擬滲透測試的總結模組為巔峰。完整學習本路徑的學員將具備實務技巧與心態,可在基本到中階的水準下對真實世界的網路環境執行專業安全的評估。我們的每個模組都會深入探討所介紹的問題和策略背後的「原因」,而不僅僅是操作工具的使用教學。我們會穿插來自於為各種產業、地方政府以及聯邦政府客戶進行安全評估的真實經驗故事與情境。
HTB Academy 學習理念
我們的教學目標是讓學生能夠從正反兩方觀點看待問題,並發掘他人有可能忽略的漏洞。我們鼓勵每位學生建立一套可重覆實踐且縝密的方法,使其能應用在任何類型的評估中,不論環境規模或客戶的產業背景。以這種方式學習,並在每個模組中搭配一個或多個技能評量,完成數以百計的實務動手範例,能鞏固這些概念並鍛鍊「肌肉記憶」,讓我們每次進行評估時都能熟練地執行這些基礎步驟。若能將基礎打好,我們便能有更多的時間深入挖掘,為客戶提供額外價值。針對示範的每一個漏洞與錯誤配置,我們會討論其背後的根本缺陷,這有助於我們更好地理解運作原理、了解特定工具可能失效的原因、並能針對客戶的環境與風險承受度給予更精確的修正建議。
我們的教學理念可以總結如下:
總結
我們的教學理念是「在實踐中學習」,採用以風險為導向的方法,並高度重視動手實踐與遵守法律及倫理的技能運用。我們致力於讓學生理解漏洞背後的「原因」,教導他們如何發現、利用、修復、偵測、以及預防這些缺陷。以此方式培養全方位的專業人士,進而將這種全面性的知識和思維傳遞給他們現有/未來的客戶或雇主,協助他們保護人員、技術和任務免受現代網路威脅。
倫理與法律考量
上述理念中,最重要的關鍵詞是「合法」與「合乎倫理」。滲透測試是少數能在一段時間內(在授權的測試期間), 對一家公司進行在其他情況下屬於違法行為的職業。在本學習路徑以及其他學習模塊中,我們提供了單獨的目標和迷你網絡 (實驗室)供練習,讓你可以在安全合法的環境下練習我們展示的技術。HTB的主平台內包含了上百個虛擬機器以及多個大型、真實世界的實驗室網路供你練習。隨著業界遊戲化和更實戰導向的培訓方式興起,我們必須謹記,合法與非法行為之間有一條界線,一旦我們試圖在這些受控環境之外練習我們的技能,將很容易跨越。
若想加強被動式作業系統情報收集(OSINT) 以及資訊收集技巧,可以對目標使用公開資料庫和搜尋引擎,但前提是我們不主動探測該公司的外部基礎設施。然而,在沒有得到明確書面同意的情況下(包括詳細的測試範圍說明、簽署合約、雙方協議的交戰規則),對組織的「任何」系統進行「任何」 掃描或交互活動都是違法的,並且可能導致對我們採取法律甚至刑事行動。
如果你已準備好要在真實目標上進行練習,你可以藉由參與 HackerOne 和 Bugcrowd 等組織舉辦的漏洞懸賞計劃來獲得更多練習機會。透過這些漏洞懸賞組織,你可以參與針對許多提供漏洞懸賞計劃的公司的 Web 應用程式測試活動。請注意,每個漏洞懸賞計劃都有自己的範圍和交戰規則,因此在開始任何測試活動之前,請先熟悉它們。這些計劃大多數都不允許自動化掃描,很適合用來練習你的資訊收集和手動 Web 應用程式測試技能。
一旦你獲得了第一份滲透測試工作,有責任確保該公司是合法組織,並且只在明確指示(以及在目標公司和客戶之間完成合約文書工作)後才進行評估。雖然少見,但還是存在一些犯罪組織可能偽裝成合法公司來招募人才以協助非法行動。如果你參與其中,即使你的意圖是好的,你仍然可能對此負責並陷入法律甚至刑事糾紛。為任何公司工作時,請確保你擁有已簽署的合約複本以及列出測試範圍的正式文件(URL、單個 IP 地址、CIDR 網路範圍、無線 SSID、用於物理安全評估的設備清單,或社工測試的電子郵件或電話號碼清單),文件也須經客戶簽署。當有疑慮時,在開始任何測試之前先要求額外的批准和文件。在進行測試的同時,請「嚴格遵守測試範圍」。如果你注意到其他看起來更有趣的 IP 地址或子網域,也不要偏離原定範圍。同樣地,如果有疑慮,就提出來!也許客戶忘記將某些主機添加至範圍文件中。詢問你發現的其他主機是否應包括在內並無壞處,但請再次確保這是「以書面形式」提供,而不僅僅是口頭確認。
客戶對我們寄予高度信任,讓我們進入他們的網路並運行可能對其系統造成嚴重破壞、並可能導致停機和收入損失的工具。我們必須以「不造成傷害」為指導原則,並努力以謹慎和周全的方式進行所有測試活動。並非我們有能耐執行特定工具就表示「應該」執行它。是否有特定的漏洞利用概念驗證(PoC)可能會導致一台或多台伺服器崩潰?在評估期間若對任何事項有疑問,請與你的經理和客戶討論,並在繼續之前獲得「書面形式的明確同意」。
總之,我們擁有高超的技能並受到高度信任。請勿濫用這種信任,始終恪守倫理並在法律範圍內工作。如此一來你將擁有長期而富有成效的職業生涯,並在此過程中建立良好的人脈與業務關係。始終堅持原則,做對的事情。文件化、文件再文件!當有疑慮時,請記錄並過度溝通。確保所有「無聊」的合規問題都得到妥善處理,這樣你就可以安心地在作為客戶的受信顧問的同時,愉快地為他們執行出色的全面性評估工作。
滲透測試員學習路徑大綱
此路徑內容會模擬針對 Inlanefreight 公司的滲透測試,並分解成多個階段,涵蓋能讓我們成為出色滲透測試員的核心概念和工具。此路徑的重點是深入探討各項重要的軟技能,例如:筆記、資料整理、文件編寫、報告撰寫以及客戶溝通。最後將安排一個完整的模擬滲透測試,讓你可以於一個大型的模擬公司網絡環境中綜合練習所有技能。以下是此路徑的模組規劃:
| 介紹 | |
|---|---|
| 1. 滲透測試流程 | |
| 2. 入門 | |
| 偵查、枚舉和攻擊計畫 | |
| 3. 網域枚舉(使用 Nmap) | |
| 4. 足跡偵察 | |
| 5. 資訊收集 - 網路版 | |
| 6. 漏洞評估 | |
| 7. 檔案傳輸 | |
| 8. Shell 與 Payload | |
| 9. 使用 Metasploit Framework | |
| 漏洞利用與橫向擴散 | |
| 10. 密碼攻擊 | |
| 11. 攻擊常見服務 | |
| 12. 跳板、隧道和埠轉發 | |
| 13. Active Directory 枚舉和攻擊 | |
| Web 漏洞利用 | |
| 14. 使用 Web 代理 | |
| 15. 使用 Ffuf 攻擊 Web 應用程式 | |
| 16. 暴力破解登入 | |
| 17. SQL 注入基礎 | |
| 18. SQLMap 基礎 | |
| 19. 跨站腳本攻擊 (XSS) | |
| 20. 檔案包含 | |
| 21. 檔案上傳攻擊 | |
| 22. 命令注入 | |
| 23. Web 攻擊 | |
| 24. 攻擊常見應用程式 | |
| 後門利用 | |
| 25. Linux 權限提升 | |
| 26. Windows 權限提升 | |
| 撰寫報告與綜合項目 | |
| 27. 文件和報告 | |
| 28. 攻擊企業網路 |
完成此學習路徑後,我們建議學生朝向某個專業領域發展,例如:Active Directory、網路安全,或是逆向工程。在專注於至少一個領域的專業知識之餘,我們也應該持續在其他領域中逐步建立技能,以成為全方位的安全專才。
對於尚未足夠自信、無法直接學習「滲透測試員」進程的同學,我們推薦先完成 「資訊安全基礎」學習路徑中的所有模組,以建立必要的先備知識。最好能按順序學習「滲透測試員」路徑中的模組,因為各個概念之間環環相扣。在整套學習過程中,我們會不斷複習重點,並以不同方式呈現資訊,讓學生有更多機會練習,並在特定領域中深入學習。
舉例來說,「橫向移動」與「資訊蒐集」是成為一名優秀滲透測試員的關鍵技能。我們不會針對這兩個階段單獨開設模組,因為它們在本質上是需要反覆實踐的流程,在滲透測試過程中會多次用到。我們將重點放在介紹橫向移動的戰術、技巧與流程,並提供多樣化的情境,讓大家實踐自己優異的資訊蒐集與後滲透利用(post-exploitation)的技巧。
以下是將 HTB 學院的 36 種不同模組歸類到各個滲透測試階段的說明。
學院模組的設計理念
Hack The Box 最初建立的目的是為技術專業人士提供一個安全的環境,讓他們練習與精進駭客技術,因此並不適合毫無 IT/資安基礎的新手。起初的 Hack The Box 是一個純粹的 CTF 競賽平台,其中的機器與挑戰都採取「黑箱」形式、難度不等並給予相應分數,並不提供解題步驟、指引或提示。隨著平台的發展,我們發現需要提供更適合初學者的內容與有引導式的學習方式,以豐富平台的競爭性元素。基於這個目標,HTB Academy 就此誕生。我們目標是提供對初學者友善的內容,同時也協助中階乃至高階的學員精進不同領域的技能。此外,我們也在 HTB 主平台上提供「起點」(Starting Point)專區,以有指引的方式幫助用戶熟悉攻擊獨立目標的方式,最終可以進階到自行解題,甚至參與競賽型的機器挑戰。每個人對 HTB 可能都有不同的看法,它也可能不適合所有人。但身為經驗豐富的 IT 專家,我們結合了多年從新手走到如今位置的歷程,希望花一些時間說明我們的觀點與想法。
資訊技術(IT) 是多數組織賴以運作的重要業務功能,專注於建置、管理與支援組織內用於達成任務的電腦技術。IT 常被用來涵蓋許多專業子領域,像是資安、資訊安全、軟體開發、資料庫管理、網路管理等等。要在這個領域變得「優秀」需要大量的練習和努力。資安領域的挑戰性可能會非常高,因為除了需要一般 IT 從業人員的基礎知識,也必須對各個領域(網路、Linux 與 Windows 系統管理、撰寫腳本、資料庫…等等)有更深的理解。我們不需要成為所有 IT 領域的專家,但經驗與知識越豐富,作為 IT 資安專家或滲透測試員執行工作時就會越輕鬆。如果對所評估的技術沒有深入理解,就很難勝任滲透測試的工作。以網頁開發者為例,他們專精於網站與網頁應用程式的開發,所需知識通常包括 HTML、JavaScript、CSS、SQL 以及如 PHP 等的伺服器端程式語言。然而,就算開發者有超過十年的經驗,也只消一個漏洞就可能讓整台伺服器無法運作或資料遭竊。對攻擊者來說,訣竅就在於找到方法來識別並利用這些錯誤。
基於這樣的考量,我們嘗試為學員奠定好基礎,因為經驗告訴我們,初學階段最難的就是不知道該從何下手。我們有計畫地架構並編寫學習素材,剛開始可能會讓人覺得困難,但隨著時間推移,你會意識到這是用來有效傳授這類複雜內容的最簡單、最有效的方法。我們希望學習過程盡可能的簡單有效,同時強調核心基礎並不斷複習。舉例來說,許多我們的練習都刻意設計成引導你想出特定的解題思路,這是為了幫助你培養分析能力,而這項能力在此充滿變數的領域是成功的關鍵。我們希望協助塑造專業人士對於事物的獨到觀察,習慣質疑所有環節,這在你發現其他測試者沒發現的細節時,將能為客戶提供更實質的價值。分析技巧與深究及「質疑一切」的能力並不是單一個模組或路徑就能教會的;這可以類比為學習樂器,我們不可能在不加練習的情況下彈好吉他。即使學了吉他的一切知識、它的歷史、每個零件的名稱…等等,缺乏實際彈奏的過程,我們的琴藝就不會和知識量匹配。滲透測試的領域也是如此,我們可能瞭解電腦的演進史、能說明所有零件的功用,但沒有豐富的實務經歷,就無法成為優秀的滲透測試員。
本段的剩餘部分會解釋我們如何設計模組,希望能讓你理解我們背後的思考歷程與教學理念。我們的首要目標是創造有趣且實用的訓練資源,讓各個技能等級的學員都能有所收穫。
補充說明
所列出的模組順序是我們針對初學者、或是遇到瓶頸的高階使用者所建議的學習路徑。透過這些模組,可以針對滲透測試流程的各個階段來加強所需的特定領域技能。
前置作業階段
前置作業階段的主要任務是在書面文件中確立承諾、工作內容、範圍、限制以及相關協議。在此階段,會擬定合約文件,並針對不同類型的評估,在滲透測試人員和客戶之間交換重要的相關資訊。
從這裡開始,我們只能走一條路。
| 路徑 | 描述 |
|---|---|
| 資訊蒐集 | 接下來,我們將進入資訊蒐集階段。在檢查和攻擊任何目標系統之前,我們必須首先識別它們。客戶可能除了域名或清單上的目標IP地址/網路範圍之外,不會提供有關其網路和組件的任何資訊。因此,在繼續之前,我們需要獲取目標網路應用程式或整體網路的概況。 |
在這個階段,我們應該已經奠定了堅實的基礎,可以通過以下幾個基本模組來構建
