那本書攤開在桌上的時候,佔掉了桌面的三分之一。
O1 翻到目錄。目錄有六頁。
他數了一下章數,數到一半停了,因為他發現後面還有附錄。八百多頁。 他掂了掂厚度,換算成每天能讀的頁數,得到一個他不太想面對的天數。
他決定從第一頁開始讀。
這是他這輩子讀所有書的方法——從第一頁開始,讀到最後一頁。七年的卷宗他也是這樣讀的,一份一份,按順序。
第五天晚上,他讀到第九十一頁。
他在那一頁停下來,往回翻。翻到第八十頁,看了兩行,繼續往回。翻到第六十頁。翻到第四十頁。
他發現一件很難堪的事:他一個字都沒記住。
不是讀不懂。每一頁他都讀懂了,每一個名詞他都認得,每一段的邏輯他都跟得上。可是合起來,他說不出自己學會了什麼。如果現在有人把他丟到一道門前面,他會做的事跟五天前完全一樣——站在那裡,不知道要先看哪裡。
他把書闔上,坐了一會兒。
然後他做了一件他後來覺得很重要的事:他沒有怪自己笨。他問了一個問題——
「是不是我讀的方法錯了?」
隔天他去了修書鋪。
菲菲那天在拆一本書。不是修,是拆——她用一把小鉗子把書背的線一段一段挑開,紙頁一疊一疊分下來,攤在桌上排成一排。
O1 看了一會兒。「不是要修嗎?」
「要修。」
「那為什麼拆?」
菲菲把最後一段線挑斷,把它放在旁邊的小盤子裡。
「你要先知道它原來是怎麼縫起來的。」
她說這句話的時候沒有抬頭,語氣跟她說「嗯」的時候一樣平。O1 站在那裡,把這句話在腦子裡放了三遍。
然後他回家,把導典重新翻開——這次翻的是目錄。
他做了三件事。
第一,他把目錄整個順了一遍。過程中發現,那六頁目錄其實只講了五件事:怎麼看、怎麼進、怎麼動、怎麼待著、怎麼寫下來。八百頁都掛在這五根柱子上。他之前讀的是磚頭,沒有看見柱子。
第二,他不再從第一頁讀。他改成先做練習題——做不出來,再回去翻那一章。這個順序顛倒過來之後,他讀同一頁的速度慢了一倍,但那一頁留下來了。
第三,他開了一本新的冊子,跟導典分開放。那本冊子上他只寫一種東西:遇到一道門的時候,我要照什麼順序看。
第一版只有五行,而且沒有一行是他自己想的——交流情報網看來的、教材上抄的,隨手湊在一起。三個月後那本冊子有二十幾頁,而且每一行他都說得出它為什麼在那裡。
學派的規矩裡有一條,他一開始沒有注意。
公告寫得很短:完成導典的練習、並提交一定數量的試煉場機器憑證,長夜那天可額外獲得十分的獎勵。
十分。滿分一百,及格七十。
他算了一下,那大概等於長夜裡半台孤塔。
——他把那張公告剪下來,貼在桌前的牆上。
那時候他覺得那只是一個划算的交易:用幾個月的晚上,換一個先存起來的分數。
他還不知道那十分後來會變成什麼。
(那件事,Day 21 再說。)
那天晚上,他在導典第一頁那句「桌子是我的」下面,加了一行字:
「先做,再讀。」
這一篇講一件很多人做錯、而且會白白浪費兩個月的事:怎麼讀 PEN-200 的教材。
PEN-200 的教材很厚。大部分人的直覺反應是「先把它讀完再開始練」,這個直覺是錯的,原因有三個:
| 步驟 | 做什麼 |
|---|---|
| 1 | 先抄一次目錄,找出骨架(不是讀,是抄——抄的時候你會看見結構) |
| 2 | 直接做該模組的練習題 |
| 3 | 做不出來 → 回去翻那一節,只翻需要的那幾頁 |
| 4 | 做出來了 → 寫進自己的 checklist |
| 5 | 下一個模組 |
這個順序的效果是:你每一次翻書,都是帶著一個具體的問題去翻的。帶問題讀的那一頁會留下來,沒有問題讀的那一頁不會。
故事裡菲菲那句「你要先知道它原來是怎麼縫起來的」,講的就是第 1 步。先看結構,再看內容。
PEN-200 的骨架其實就五件事:
怎麼看(探索與列舉)→ 怎麼進(取得立足點)→ 怎麼動(提權、橫向移動、建通道、reverse shell)→ 怎麼待著(持久化)→ 怎麼寫下來(報告)。
八百頁都掛在這五根柱子上。第一根最粗,而大多數人花在它身上的時間最少。
另外值得注意的是第四根:持久化在考試裡幾乎用不到,在真實委託裡卻是分水嶺。 這件事本身就說明了一件事——考試不等於這一行。 證照證明你會開門,但這一行要求的遠不只是開門。
這是本篇最重要的一段。
網路上有大量現成的 OSCP checklist,品質也都不錯。但直接背別人的 checklist 幫助有限,理由很簡單:
別人的 checklist,是他思路的殘骸。
那上面每一行的背後,都有一次他卡住的經驗——而那個經驗不在紙上。
你照著跑,跑到第七行沒結果的時候,你不會知道該回頭補第三行,因為你不知道第三行為什麼在那裡。
正確的做法:隨便拿幾份現成的當起手式,然後每次卡關就往自己的版本加一行。
一個可以今天就開始用的起手式:
□ 全 port 掃描(不要只掃 top 1000)
□ 每個開放 port 的服務與版本
□ 版本 → 已知漏洞 / 公開 exploit
□ 預設憑證、弱密碼
□ Web:目錄、vhost、原始碼註解、robots.txt、錯誤訊息
□ 檔案分享、匿名存取(SMB / FTP / NFS)
□ 使用者名稱蒐集 → 密碼噴灑
□ 卡住了 → 回到第一行,這次看得更細
最後一行是整張表最重要的一行。九成的卡關,答案在你已經掃過但沒看仔細的東西裡。
順帶一提:這張表會越長越細。像是我最初把「目錄列舉」寫成一行,現在那一行底下掛了三個不同工具的交叉確認——因為我被同一件事坑過三次。
三個月後,你的版本會有二十幾行,而且每一行你都說得出它為什麼在那裡。那時候它才開始有用。
那時候桌上一直擺著三本,到現在都還留著:
第三本的份量最重。
前兩本告訴你別人打造了什麼;第三本告訴你,你也可以自己打。
這一行遲早會遇到現成工具處理不了的情況——參數要改、輸出格式要轉、同一個動作要跑一千次。那時候能不能自己寫二十行解決它,是一道很現實的分界。
不必寫得漂亮。能用就好,而且大部分時候寫完就丟。
我考的時候,OffSec 有加分機制:完成課程練習、並提交一定數量的實驗室機器 flag,考試可額外獲得 10 分。
這個機制在 2024 年 11 月 1 日之後取消了。
我還是要花一段講它,因為它牽涉到一個現在仍然成立的判斷。
當年那 10 分的意義,不只是分數。它是整個學習路徑裡唯一一個「有人替你把努力換算成可見成果」的機制——你花的那幾個月晚上,會變成一個寫在成績單上的數字。
現在沒有了。所以問題變成:既然不加分了,那些練習還要做嗎?
要。而且更要。
因為加分取消之後,你花在練習與實驗室上的時間不會再變成分數,只會變成能力。而現行的計分結構讓能力變得更不可迴避——三台獨立機全破仍然只有 60 分,及格 70,你非進 AD 不可。
換句話說:
以前,累積可以換成分數。
現在,累積只能換成能力,而能力要在那一夜自己證明。
這對懶惰的人是壞消息,對願意練的人其實是好消息——它讓「刷完練習拿安全網」這條捷徑消失了。
如果你跟我一樣,每天只有一小時起跳:
| 階段 | 教材 : 實作 |
|---|---|
| 第 1 個月 | 6 : 4(骨架期,需要大量概念) |
| 第 2–7 個月 | 3 : 7 |
| 第 8 個月之後 | 1 : 9(教材變成字典,只在卡住時查) |
教材最後應該變成一本字典,而不是一本課本。 如果你到了第八個月還在「讀」它,方向就錯了。
導典不給答案。
它只是把你不會的東西,排成一個你看得見的順序。