第三十天了!!!好難想像!!!
當初排完 30 天計畫,真的覺得困難重重。每天都要發文,CPTS 又是技術證照,幾乎每天都有靶機要練習——AD 完全沒碰過,Pivoting 第一眼看到根本不知道那是什麼東西 xddd 超級怕斷更><
經過了 30 天,我會說今年最不後悔的決定,就是寫鐵人賽!
這 30 天能力真的進步很多!雖然離上場應考 CPTS 還有一大段路,但回頭看這三十天,驚然發現自己面對靶機時不再像一開始那麼害怕了!
藉由這 30 天鐵人賽,強迫自己每天 Input、每天 Output,真的成長了很多。
這段時間也讓我慢慢建立起滲透測試的思考框架,整理出幾份自己的 SOP。
現在看到一台機器,至少不會再像一開始那樣一片空白——知道該先偵察什麼、找到突破口之後該往哪裡走,卡關時也比較知道該回頭檢查哪些線索。
當然,這不代表我已經熟悉所有技術,也不代表每台機器都能獨立打完。
但至少,我不再只是看到指令就複製貼上,而是開始試著理解每個步驟背後的目的,並把操作、判斷和結果記錄下來。
這次當了勇敢 Kitty,也當了成功 Kitty,成功走完了 30 天 🐱
鐵人賽結束不等於學習結束~今天我們就來一起盤點:經過這 30 天,我們在 CPTS 的道路上走到哪裡了?還差什麼?接下來又該怎麼安排學習計畫?
| Day | 主題 | 重點 |
|---|---|---|
| Day 1 | 為什麼選 CPTS、這 30 天怎麼走 | 學習動機與 30 天學習計畫規劃 |
| Day 2 | 滲透測試的流程到底長什麼樣 | 滲透測試八階段概覽 |
| Day 3 | 拿到一個 IP,我的第一步是什麼 | Nmap 偵察流程與 SOP 建立 |
| Day 4 | 掃到服務之後,我怎麼決定先挖哪個 | 服務列舉與潛在漏洞識別 |
| Day 5 | 從版本號到 Shell:第一次用 Metasploit 拿下目標 | 服務版本分析、漏洞驗證與 Metasploit 實戰 |
| Day 6 | 從打靶到 Report:第一次用 SysReptor 寫滲透測試報告 | SysReptor 操作與 Finding 撰寫 |
| Day 7 | 只開 80 Port,然後呢? | Web 目錄列舉 |
| Day 8 | 拿到 Webshell 之後,我該做什麼? | Webshell 操作、初始存取後的資訊收集與環境探索 |
| Day 9 | Webshell 不夠用?來試試 Reverse Shell! | Reverse Shell 原理與實作 |
| Day 10 | 誰在偷偷執行我的 test.py?從 scriptmanager 到 root | 利用低權限使用者可寫入,由高權限使用者執行的排程腳本進行提權 |
| Day 11 | Bashed 的完整技術發現:多個問題怎麼串成攻擊鏈 | 攻擊鏈分析與滲透測試報告撰寫 |
| Day 12 | SQL Injection:一個單引號,就能撬開整個資料庫 | SQL Injection 原理、手動測試與 Burp Suite 初體驗 |
| Day 13 | Command Injection:一個查庫存的按鈕,竟然能讓伺服器執行指令 | OS Command Injection 的辨識與利用 |
| Day 14 | 兩週回顧 & SQL Injection 補強:搞懂 INFORMATION_SCHEMA | 利用 INFORMATION_SCHEMA 探索資料庫結構與欄位資訊 |
| Day 15 | Active Directory:從零開始,這個陌生的世界長什麼樣? | AD 基礎架構:Domain、DC、OU 與 Forest |
| Day 16 | 使用者、群組、服務帳號:誰有什麼權限? | AD 帳號、群組關係與權限分析 |
| Day 17 | Kerberos 認證:TGT 跟 Service Ticket 到底差在哪 | 理解 Kerberos 認證流程,以及 TGT 與 Service Ticket 的用途和差異 |
| Day 18 | AD 常見攻擊手法:需要什麼條件、利用什麼機制、能拿到什麼 | AD 常見攻擊的利用條件、原理與可能影響 |
| Day 19 | BloodHound:原來 svc-alfresco 可以走到這裡! | 利用 BloodHound 視覺化分析 AD 權限關係與攻擊路徑 |
| Day 20 | DNS 服務開著,代表什麼?Zone Transfer 實戰 | 檢查 DNS Zone Transfer 設定,分析取得的 DNS 紀錄,探索相關網域與主機資訊 |
| Day 21 | 從子網域找到 Web 漏洞,一路拿到 Reverse Shell! | 從子網域列舉、Web 漏洞利用到取得 Reverse Shell |
| Day 22 | Cron Job 提權:怎麼找到它、怎麼判斷能不能用 | Cron Job 列舉與提權條件判斷 |
| Day 23 | Cronos 的技術發現:找到問題之後,報告要怎麼寫? | 攻擊鏈分析與 Finding 的成因、影響及修補建議 |
| Day 24 | Jerry:8080 開了一扇門,進去竟然直接變 SYSTEM?! | Tomcat Manager 弱密碼、WAR 部署與取得 SYSTEM 權限 |
| Day 25 | Jerry:一進去就是 SYSTEM:為什麼服務帳號的權限這麼重要? | 服務帳號權限設定與最小權限原則 |
| Day 26 | 不用提權就拿到 SYSTEM?Jerry 的兩個 Finding 告訴我們什麼! | 弱密碼與服務帳號權限設定不當的 CVSS 分析、攻擊鏈串接與滲透測試報告撰寫 |
| Day 27 | 不再只是複製貼上!用 Docker 搞懂 SSH 的 -L、-D、-R | SSH Local、Dynamic、Remote Port Forwarding 原理與 Docker 實驗 |
| Day 28 | 隧道打通之後呢?用 Proxychains 探測內網、尋找隱藏憑證 | 透過 SOCKS Proxy 與 Proxychains 進行內網主機探索 |
| Day 29 | 限時綜合練習:檢查自己的流程有沒有漏洞 | 限時獨立實戰、流程檢查與盲點檢討 |
| Day 30 | 走完 30 天,我離 CPTS 還有多遠? | 能力盤點、待補強項目與後續學習計畫 |
這 30 天除了打靶、學新東西,還有一件事我覺得很重要!
就是慢慢把實作過程中用到的方法整理起來,讓自己下次遇到類似情境時,不用每次都從零開始想 QQ
目前整理了一些 SOP、操作流程與技術筆記。有些已經有比較明確的操作步驟,有些還在持續補充中。
趁著這次回顧,就一起來看看這 30 天,我們累積了哪些實作經驗,又把哪些方法整理成自己的 SOP
Cron Job 提權分析流程,是 Linux 提權檢查 SOP 中針對排程機制的深入探討!
除了這些操作流程,也接觸了 Kerberos、AD 常見攻擊手法等主題,建立把不同線索串聯起來的能力。
當然,整理出流程不代表每一項都已經熟練了,有些還需要透過更多靶機反覆練習。
而且,不同流程之間也會互相關聯才能串成一條完整的攻擊鏈。
像是取得 Shell 之後,可能會先收集系統資訊,再檢查有沒有提權機會;而在 AD 環境中,也需要把使用者、群組、權限與主機之間的關係串起來,才能判斷下一步可以往哪裡走。
對現在的我來說,這些筆記不只是記錄指令,而是慢慢練習把每一步的目的、驗證方式,以及接下來的判斷整理清楚。
希望下次再遇到類似情境時,不只是記得要用什麼工具,而是能更快判斷:
我現在要確認什麼?為什麼要做這一步?接下來又該怎麼走?
這 30 天寫了不少東西,從 Nmap、Web 漏洞,到 Linux/Windows 權限提升、AD、Pivoting,還有幾份完整的滲透測試報告。
但如果問我:「這樣就準備好考 CPTS 了嗎?」
答案當然是還沒有 xddd
有寫過文章,不代表已經熟練;有成功打進靶機,也不代表能在陌生環境中獨立完成同樣的任務。
這 30 天比較大的收穫,是開始建立自己的滲透測試流程,也透過實作和報告,慢慢理解從資訊蒐集、尋找漏洞、取得初始存取權限,到進一步提權的過程。
但如果對照 CPTS 的完整學習路徑,還有不少模組沒有完成,部分技術也只停留在初步理解。
目前最需要補強的,是以下幾個方向:
至於具體要怎麼補、什麼時候考,就來看看接下來的計畫吧!
目標:預計2027 年 4 月前通過 CPTS!
CPTS 的準備不只是看完教材,還需要完成相應的 Skills Assessment,並確認自己真的具備獨立操作的能力。
這 30 天雖然碰了不少主題,但真正完成的 Skills Assessment 還不多,所以接下來的首要任務是把模組全部跑完,而不是直接衝考試。
鐵人賽結束之後,預計平日每天 1–2 小時、假日 3–4 小時—每週大概用 13–18 小時持續往 CPTS 邁進!
這是最重要也最花時間的階段。不只是看過,而是每個模組的 Skills Assessment 都要做完。
| 週次 | 模組 | 重點 |
|---|---|---|
| 第 1–2 週(10/15–10/27) | Penetration Testing Process、Using Web Proxies、Command Injections、SQL Injection Fundamentals | 收尾已開始的模組,完成對應的 Skills Assessment |
| 第 3 週(10/28–11/3) | File Transfers、Shells & Payloads、Using the Metasploit Framework | 優先完成 File Transfers,練習檔案傳輸與 Shell 操作 |
| 第 4 週(11/4–11/10) | File Inclusion、File Upload Attacks、Login Brute Forcing | 練習常見 Web 漏洞,完成 File Inclusion、File Upload 與登入測試 |
| 第 5-6 週(11/11–11/24) | Web Attacks、Cross-Site Scripting (XSS)、SQLMap Essentials | 補強 Web 攻擊技巧,練習 XSS、SQLMap 等技術 |
| 第 7 週(11/25–12/1) | Information Gathering - Web Edition、Footprinting、Attacking Web Applications with Ffuf | 補強資訊蒐集與 Web 目錄列舉,建立完整的偵察能力 |
| 第 8-9 週(12/2–12/15) | Password Attacks、Attacking Common Services、 Attacking Common Applications | 練習密碼攻擊與常見服務攻擊測試,熟悉不同服務的測試方向 |
| 第 10-11 週(12/16–12/29) | Linux Privilege Escalation、Windows Privilege Escalation | 補強Linux、Windows 提權,練習從環境線索判斷提權方向 |
| 第 12-13 週(2026/12/30–2027/1/12) | Active Directory Enumeration & Attacks | 補強 AD 資訊蒐集、權限分析與攻擊路徑判斷及實作能力 |
| 第 14 週(2027/1/13–2027/1/19) | Pivoting, Tunneling, and Port Forwarding、Vulnerability Assessment | 完成Pivoting, Tunneling, and Port Forwarding、Vulnerability Assessment模組學習與 Skills Assessment,整理不熟悉的技術 |
| 第 15 週(2027/1/20–2027/1/22) | Network Enumeration with Nmap、Getting Started、Documentation & Reporting | 完成 Network Enumeration with Nmap、Getting Started 與 Documentation & Reporting 等剩餘模組,補齊相關實作評量,統整 SOP 與技術筆記,並檢視整體學習進度及待補強項目 |
第一次正式考試主要是熟悉流程和節奏,也藉此檢查自己在時間壓力下的實際表現。
第一次不一定能過,但能知道自己真正的弱點在哪裡,比一直重複練習熟悉的題目更有幫助。
根據先前考試的結果,補強最弱的地方,再視準備狀況安排第二次考試(希望是第一次正式考試就過),最晚也能在自己設定的期限 2027 年 4 月前通過 CPTS。
Day 29 卡關的時候最有感。
偵察的時候,機器名稱、網頁標題、設定檔裡的關鍵字,如果同樣的字串在多個地方出現,那個字串可能是密碼、使用者名稱的一部分,或其他值得追查的線索。
但我的第一反應通常是:「這是個名稱,繼續找其他東西。」
而不是:「這個字串出現這麼多次,我要不要把它列入密碼候選清單?」
然後又跑去嘗試常見的弱密碼,花費不少時間——但有些值得追查的線索,根本就已經藏在偵查的線索裡。
不是說每個重複出現的字串都一定是密碼,但我以前很容易把找到的資訊當成單純的資訊,沒有繼續思考它們之間可能存在什麼關係。
勉勵自己><應該要建立的習慣:
Day 29 讓我更深刻發現,偵察不是把資訊收集完就結束,而是要進一步思考:
這些資訊對接下來的判斷有什麼幫助?
回頭看一下當初寫在系列開頭的初心:
這是一個資安新手朝 HTB CPTS 前進的 30 天實作紀錄。
這系列不只是記錄「我用了什麼指令」,而是希望把每一次掃描、判斷、驗證與卡關都留下來,慢慢建立自己的滲透測試思考模式。
經過這 30 天不代表就能直接考過 CPTS,而是給自己一個開始學習、動手實作、整理筆記,也找出自己還有哪些地方需要補強的習慣。
這三件事,我覺得在這 30 天裡我們做到了!
不只是記錄指令——靶機、報告、SOP、卡關過程,都寫進來了。
思考模式有沒有建立?我覺得有,至少看到一台機器不再是一片空白。
找出補強的地方?這篇就是!
三十天之前,我對 CPTS 這條路只有一個模糊的輪廓。
三十天之後,我終於知道自己還有哪些地方需要補強了——AD 的攻擊原理與實作還需要更深入的練習、Web 漏洞接觸的類型還不夠廣、Pivoting 還需要更多實戰練習、報告的撰寫邏輯還需要持續磨練,技術英文也要刻意加強。
知道缺口在哪裡,就能有效率的對症下藥!
Day 2 我寫到:
「真正重要的不是我掃了多少東西,而是這些資訊對我接下來的判斷有什麼幫助。」
現在回頭看,這仍然是我最想提醒自己的事:不要只顧著操作工具,更要理解結果背後的意義,以及接下來該怎麼走。
這次鐵人賽,最最最感謝的是 飛飛大大。
當初在猶豫要不要寫,怕會斷更、怕內容難產,怕的很多 ><
是飛飛跟我說「寫!」,而且還組了鐵人團隊——飛飛的資安大圈圈鐵人團!
透過團隊的力量,讓我們不孤單,一起前進。
一個人可以走得很快,但一群人可以走得很遠。
謝謝飛飛在我們遇到問題時,總是不吝嗇地給予很大的幫助與鼓勵!謝謝鐵人戰隊讓我走到今天,也謝謝所有親辜們在鐵人賽中的支持!
這 30 天幾乎每天都會遇到卡關,不斷懷疑自己到底能不能繼續寫下去 xddd
但有團隊的力量,有夥伴一起討論,有親辜的支持,就覺得好像還可以再努力一下!
不知不覺就撐過 30 天哩!
真的很謝謝大家,讓這 30 天的我不孤單!
鐵人賽結束了,CPTS 的路還很長,但至少現在,我知道下一步該怎麼走了!
謝謝大家這 30 天對 《朝 HTB CPTS 前進:資安新手的 30 天實作筆記》 系列的支持!❤️
接下來也會繼續努力,把還不熟悉的技術一個一個補起來,朝通過 CPTS 的目標前進!
謝謝大家~我們明年見啦! 🎉🐱