長夜結束,不等於回來了。
這是揚恩第一次赴長夜時,沒搞懂的事。他以為鐘一響、手一停,這趟就結束了。
不是。
潘德倫學派的規矩寫得清清楚楚:叩門者從迷宮回來,要交一本**《歸還之書》**。書沒交,或是交了但寫得不成樣子,這趟就不算數。 哪怕你在裡面拿到了王座,哪怕你明明打贏了。
真正的那道門,不在迷宮裡。在迷宮外面,是那本書。
第一次,他是在交出那本難看的薄書之後,才隱約摸到這條規矩的邊。這一次,他是帶著一整年的準備,正正經經地來寫這本書的。
他攤開紙,開始寫。
寫著寫著,他發現一件奇怪的事,這件事,他好像天生就會。
不是那些攻城的法門。那些他學得很辛苦,練了一年多。
是「把一件做過的事,一筆一筆、清清楚楚地記下來,讓一個不在場的人也看得懂」,這件事,他做起來毫不費力。
他想了想為什麼。
然後他想起來了。
他在公會的那七年,做的就是這個。
那些沒有人署他名的卷宗,那些他寫在別人卷宗背面的註記,那些他替雷恩整理得乾乾淨淨、最後掛著別人名字送出去的記述,他寫了七年「給別人看的記錄」。 他寫得比誰都清楚,比誰都仔細,只是從來沒有人,把那份清楚算到他頭上。
七年來,那是他被忽略的能力。
而現在,在這本決定他能不能拿到銀印的《歸還之書》面前,那七年沒人看見的功夫,全部回來了。
他寫得很順。
王城怎麼走通的,從哪個立足點進去,順著哪條關係往上,那道上次撞不開的門,這次是怎麼看見、怎麼開的。他一段一段寫,前因後果,清清楚楚,一個不在場的人照著讀,也能重走一遍。
每一處他叩開的地方,他不只寫「我開了」。他寫:我為什麼知道這裡能開、我怎麼開的、開了之後拿到什麼、那個東西又帶我去了哪裡。
他甚至寫了那座他放掉的塔,那座摹石快燒起來、他主動停手的塔。他老老實實記下:他試到哪裡、為什麼停、停的時候做了什麼判斷。
連失敗和放棄,他都寫得清清楚楚。
因為他想起很久以前,在冊子裡學到的一件事:寫記錄,不是寫給「打贏的那一刻」看的。是寫給一個不在場的、沒有你那套背景的陌生人看的。
而這一次,那個陌生人,不只是三個月後的他自己了。
是那個會翻開這本書、決定他過不過的人。
寫完最後一頁,他從頭到尾讀了一遍。
讀的時候他忽然停住,因為他意識到一件事。
第一次赴長夜,他交那本薄書的時候,心裡想的是,「這麼難看,那個驗看的人會不會根本懶得翻?」他是在一種「大概沒人會看」的絕望裡,把書交出去的。
而這一次不一樣。
這一次,他確定會有人翻開這本書。那個驗看的人一定會讀,因為這本書,是他能不能拿到銀印的依據。
他坐在那裡,看著手上這本厚厚的、確定會被人讀的書,心裡有一種很複雜的感覺。
他這輩子,寫過那麼多「沒有人會讀」的記錄。公會那七年的卷宗,第一次長夜那本難看的薄書,他一直在對著虛空寫字,寫給一個不存在的讀者。
而這是他這輩子第一次,確定地、不帶懷疑地,知道自己寫的東西,會有人讀。
那個感覺,比拿到王座還踏實。
他把那本《歸還之書》交出去。
交出去的時候,他想起第一次,那本薄薄的、他以為沒人會看、卻還是仔仔細細寫完的書。
那時候他跟自己說:就算沒有人看,我自己要看。我要讓我做到的那一件事,被好好地記下來。
那句話,他當時是用來撐住自己的。
現在他才明白,那句話其實是一顆種子。
一個願意「就算沒人看,也要好好記下來」的人,遲早會變成一個,別人搶著要看他記錄的人。
因為這世上,真正稀缺的,從來不是會打的人。
是會把事情,為一個不在場的人,寫清楚的人。
幾天之後,總評會下來。
但揚恩心裡已經有數了。這一次,他不只打進了迷宮,
他好好地,回來了。
帶著一本,配得上這趟旅程的書。
(總評,和三枚印的事,Day 29。)
這一篇談最決定專業價值的東西:報告。
客戶看不到你打進去的那個瞬間。他們看不到你的終端機、你的興奮、你凌晨三點拿到 root 的那一刻。
他們能看到的,只有那份報告。
對客戶來說,報告就是這整個案子的全部。多厲害、發現了什麼、那些發現有多嚴重、他們該怎麼辦,全部,只能透過那份報告傳達。
一個能打進任何系統、但報告寫得一塌糊塗的人,會走得很辛苦。因為他創造的價值,卡在他自己腦子裡,傳不出去。
而一個技術中上、但能把發現講得清清楚楚、讓客戶知道該怎麼修的人,他的價值,客戶收得到。
這一行,報告不是附屬品。報告就是產品。
OSCP 的報告,前面幾篇講過規則(Day 21):分數靠 flag,報告的作用是「不扣分」,不是加分。 所以考試報告的目標很單純,
確保拿到的每一分,都因為報告完整而被算數。
具體就三件事(Day 13 講過):
用官方範本(Day 21),照著填,幾乎不會栽在報告問題上。考試報告不需要華麗,需要的是「滴水不漏」。
考試報告求「不出錯」,真實委託的報告,是完全另一個層次,它是專業價值的載體。
一份專業的滲透測試報告,通常有這幾層,而每一層是寫給不同的人看的:
① 執行摘要(Executive Summary),寫給不懂技術的決策者
這是最重要、也最多人寫壞的一節。
讀它的人,是付錢的主管、是高層。他們不懂技術,也沒時間懂。 他們要的是:這次測出來,我的風險有多大?最嚴重的問題是什麼?我該優先處理什麼?要花多少資源?
執行摘要要用他們的語言寫,business impact,不是 technical detail。不是「我用了 Pass-the-Hash 橫向移動到 DC」,是「一旦一台員工電腦被入侵,攻擊者在數小時內就能完全控制貴公司的核心系統,等同於掌握全部員工資料與營運權限」。
同一件事,對工程師講手法,對決策者講後果。
② 風險分級,讓有限的資源,花在對的地方
每一個發現,都要給一個風險等級。而等級要分對,因為客戶的修補資源有限,風險分級,直接決定他們先修什麼。
這裡有一個 Day 7 講過、但值得再強調的原則:「存在」不等於「可利用」,兩者的風險等級天差地遠。
一個「版本過舊但有 WAF 擋著、實際打不動」的發現,跟一個「我真的拿到了 DC」的發現,絕對不能放在同一個等級。把前者誇大成高風險,會讓客戶把資源花錯地方,而且,下一次,他不會再那麼相信你的報告。
(風險等級的用語要一致、正式:資訊、低、中、高、嚴重。不要「這個蠻嚴重的」這種口語,那會讓整份報告的專業度掉漆。)
③ 技術細節與重現步驟,寫給要修的工程師
這一層,寫給客戶那邊負責修補的工程師。他們要能照著步驟,自己重現一次,因為修好之後,他們要能驗證「真的修好了」。
這一層就是你考試報告那套能力的放大版:可重現、證據齊全、描述精確。差別是,真實委託裡,這一層的讀者會拿它去改他們的系統,所以精確度直接關係到他們修得對不對。
④ 修補建議,這才是客戶真正想要的
這是整份報告,對客戶最有價值的一節,也是最能體現你功力的地方。
找到洞,只是上半場。告訴客戶怎麼補,才是下半場。 而且修補建議要:
由時候報告寫得太簡略,客戶還會回來追問細節。因為對他們來說,「怎麼修」比「怎麼打進來的」重要得多。
把前面三節收攏成一個核心觀念,這也是 Day 13 那條線的終點:
寫報告,是寫給一個不在場、沒有背景的陌生人看的。
而且在真實委託裡,是好幾種不在場的陌生人:不懂技術的主管、要動手修的工程師、一年後接手的另一個人、甚至是把你的報告當成第三方佐證的稽核單位。
他們都不在現場。他們都不能問你。他們手上只有那份報告。
所以報告寫得好不好,本質上是同一個能力:能不能站在一個「不知道你腦子裡在想什麼」的人的角度,把事情講到他能懂、能用。
這個能力,比任何一種攻擊手法都稀缺,也比任何一種攻擊手法都值錢。
很多人,花 99% 的時間練攻擊,1% 的時間(甚至不練)寫報告。
這個比例,反過來會更健康一點。
因為攻擊能力,是你的門檻,沒有它你進不來。但報告能力,是你的天花板,它決定你能走多遠、接到多大的案子、客戶願不願意再找你。
會打的人很多。會把打的過程,寫成一份客戶看得懂、用得上、信得過的報告的人,不多。
那個「不多」,就是你的機會。
真正的那道門,不在迷宮裡。
在迷宮外面,是那本,你為一個不在場的人,寫下的書。會打的人很多。會把打過的路,為看不見的人寫清楚的人,不多。