決定要再叩一次之後,揚恩沒有立刻回去打塔。
他做了一件事,一件他上一次失敗後,拖了好幾個禮拜才敢做的事:
他把那一夜,從頭到尾,重新走了一遍。
不是重打。是在腦子裡、在冊子上,把那一整天一天一夜的每一步,一格一格還原出來:他幾點進門,先看了哪一座,什麼時候找到那兩個突破口,什麼時候鑽進王城,什麼時候開始撞那個破口,什麼時候天亮,什麼時候交出那本難看的書。
他把這條時間線一格一格排出來,看著它。
看著看著,他發現了一件讓他坐立難安的事。
那一夜,他真正拿來「攻」的時間,少得可憐。
大半的時間,去了兩個地方。
一塊,卡在王城第二台那個死巷,他在那裡來回撞了不知道多久,拓遍了每一片影,試遍了每一種他會的方法,然後繼續撞。
另一塊,耗在那個獨立塔的破口上——那個他看得清清楚楚、就是進不去的破口。他調參數,調了又調,換方法,換了又換。
他把這兩塊時間加起來,倒抽一口氣。
這兩塊加起來,超過那一夜的一半。而產出是零。
他坐在那條時間線前面,問了自己一個問題:
「那幾個小時,我為什麼不走?」
然後他發現,這個問題他問錯了。
「為什麼不走」的前提,是「他知道自己該走、卻選擇留下」。可是那一夜不是這樣的。
那一夜,他根本沒有意識到自己已經該走了。
他不是站在死巷裡,心想「我知道這是死路,但我捨不得走」。他是壓根沒發現那是死路,他一直覺得「再試一下就開了」,一直覺得「答案就在附近」,一直到天亮,他才後知後覺地發現,那幾個小時原來是空轉。
這個差別,比他想的重要得多。
他的問題不是「知道該做卻沒做」。是「當下根本沒發現自己出事了」。
他想起那條走廊。三個月前那條他走了八小時的柴房走廊。
他當時想通了「先有結論,就看不見證據」,寫進導典第一頁,以為自己學會了。他甚至寫過辨識那個陷阱的方法:投入超過預定時間兩倍、進展都是「發現新東西」卻沒更靠近目標、開始用「再一下就好」說服自己……
那一夜,那些徵兆每一條他都中了。
而他一條都沒有「認出來」。
不是他忘了那些方法。是那些方法要能救他,得先有一個前提:他得在當下,發現自己正在掉進去。 而那一夜,他累、他慌、他急——他失去的,正是那個「發現自己出事了」的能力。
他寫得出辨識陷阱的方法。可是在陷阱裡的時候,他認不出自己在陷阱裡。
揚恩靠在椅背上,一個很不舒服的念頭浮上來。
他一直以為,他第一次沒過,是因為技術不夠。他是中年轉職的,底子比較薄,這是他的預設答案,也是他這一年多拚命補的東西。
可是那條時間線告訴他:那一夜讓他輸掉的東西,大部分不是「他不會的手法」。
他輸在:
這些,沒有一條是「破口術式練得不夠熟」。
它們全都是同一種病:當下,看不見。
看不見自己在死巷裡。看不見自己判斷力已經垮了。看不見自己把該做的事做潦草了。
而王城那道打不開的門,那是另一種看不見。那一種,是他根本不知道有那條路(Day 20 說的那道門)。
兩種看不見。一種是看不見自己的狀態,一種是看不見那條路。而那一夜,兩種他都中了。
他想起那個驗看的人,隔著一張「未通過」的紙,寫給他的話:
前人留下的紀錄,看得不夠仔細。
那時候他抄下這兩句,以為它們在講技術——「我列舉的技術不夠好」。
現在他重讀,才聽懂了另一層:
「紀錄看得不夠仔細」——不是他讀不懂。是他帶著一個早就定好的結論在翻,所以看不見那些手冊真正在說的東西。
他的問題不在「會不會」,在「壓力下,他連自己做得好不好都察覺不到了」。
那天晚上,他沒有回去打塔。
他在冊子的最前面,那從「未通過」抄來的字底下,慢慢地,把第一次的敗因一條一條寫下來。
不是自責。是清點,像一個工匠檢查一件壞掉的工具,冷靜地找出哪個零件鬆了。
寫完,他看著那份清單,忽然覺得,輕鬆了一點。
因為如果他的問題是「技術不夠」,那有點絕望:技術是無底洞,他永遠可以更強,也永遠會怕自己「還不夠」。
可是他這一夜最致命的漏洞,不是技術。是他在壓力下,失去了『看見』的能力——看見自己的狀態,看見自己在哪裡。
而這個,是可以練的。
不是靠把手法練得更熟來練。是靠在接近考試的壓力下反覆演練,讓自己就算又累又慌,也還保留一點「發現自己出事了」的餘裕。
「技術不夠」是一片沒有盡頭的海。
「壓力下看不見自己」是一個可以針對性訓練的具體毛病。
他這一年多,一直在那片海裡游,以為要游到對岸才能上考場。
其實那一夜,海不是問題。問題是暴風雨來的時候,他忘了自己其實會游。
第二次的準備,他決定不從導典第一頁開始。
從這份敗因清單開始。
手法他要不要繼續補?要。技術的缺口永遠都在,這一行沒有人敢說自己技術到頂了,他那道打不開的王城門,就是一個真實的、他得去補的缺口。
但他很清楚,第二次真正的勝負,不在他多學幾種手法。
在於:他能不能練出一種本事,在筋疲力盡、時間在跑、一個人孤立無援的時候,還能夠發現「我現在正在犯那個錯」,然後把自己拉回來。
那才是長夜真正在考的東西。
而那,是他第一次完全沒有練過的。
(怎麼練,Day 25 說。)
「二次挑戰能不能過」的最大關鍵,而且大部分人都診斷錯了。
大部分人第一次 OSCP 沒過,回去做的事是:猛補技術。
再刷幾十台、再學幾種提權、再把 AD 練得更熟。
技術要不要補?當然要。這一行沒有人技術到頂,缺口永遠都在。 但如果把「補技術」當成二次挑戰準備的全部,那很可能補錯了重心,因為對很多人來說,第一次沒過最致命的漏洞,根本不在技術那一桶。
失敗檢討最重要的動作,是把每一個卡關,分進兩個桶子:
A 桶:真的不會(技術缺口)
「這台的正解是一種自己不知道、或不熟的技術。」
B 桶:我會,但那一刻我看見(覺察缺口)
注意,這裡要修正一個很多人(包括我自己一開始)的誤解。 B 桶常被說成「我會但我沒做到」,好像是意志力或紀律問題。
但真相往往更微妙:不是「我知道該做卻沒做」,是「當下根本沒發現自己該做了」。
B 桶的核心,不是紀律問題,是覺察問題。 失去的不是「做正確的事的意願」,是「發現自己正在做錯事的能力」。
因為 A 桶和 B 桶,要用完全不同的方法修:
如果問題是 B 桶(覺察),卻回去猛補 A 桶(技術),第二次上場,同樣的壓力,同樣會在死巷裡看不見自己在死巷裡,同樣會累到失去判斷卻不自知。補強的那些手法,會像第一次那樣,卡在「發揮不出來」。
而大部分人的失敗,B 桶比 A 桶重。可是大部分人的準備,卻幾乎全砸在 A 桶。這就是最常見的錯配。
(要說清楚:這不代表 A 桶不重要。兩桶都要補。 只是如果只補 A 桶、完全忽略 B 桶,那補的是一個不是主要病灶的地方。)
① 畫出時間軸。 把考試那天從進場到結束,「幾點做了什麼」盡量還原。你的筆記、指令紀錄(Day 4、13)在這裡是關鍵——沒有紀錄,你只能靠記憶,而記憶會美化。
② 標出「零產出時段」。 那些「花了時間、沒有進展」的區塊,把長度加起來。(大部分人做到這步就會嚇一跳——原來空轉了那麼久。)
③ 對每個零產出時段,問三個問題:
④ 把每個卡關分進 A 桶或 B 桶。
⑤ 數一數。 B 桶明顯較重的話——你的問題比你想的好解,因為覺察可以針對性訓練,技術的無底洞才真的難。
既然 B 桶是覺察問題,出事的當下發現不了,那練法的關鍵,就不能依賴「叫自己更警覺」。都已經發現不了了,再怎麼叫自己警覺也沒用。
解法是:設一條跟覺察無關的、機械的規則,讓它替你踩煞車。
我第二次的做法,只有一條:
在任何一個點掙扎超過 10 分鐘,沒有實質進展,就換一台靶機。
不是「覺得卡住了才換」,是不管當下覺得如何,10 分鐘一到,,進展就換。
這條規則之所以有效,正是因為它不需要我當下清醒:
可能會想:10 分鐘會不會太短、換來換去打不深?
會有這個疑慮很正常。但「換台」不等於「放棄那台」。只是先離開,去別台拿分數、順便讓腦子轉換思維。等繞一圈回來,說不定就比較能看到剛才看不見的東西(Day 11 講過這個原理)。
10 分鐘不是說要淺嘗輒止。是要在還沒把自己困死之前,,先強制脫身一次。
這個數字可以調,15 分鐘、20 分鐘都行,重點不在幾分鐘,是**「有一個不靠你當下判斷的強制時間限制」**。因為 B 桶的病就是當下判斷不了,所以那個煞車,必須是機械的。
技術缺口當然要補。但要針對檢討發現的具體盲區,而不是漫無目的「再多學一點」:
「大部分人不是輸在技術」,不是說「技術已經夠了、不用再進步」。 這兩件事差很遠。
精進技術是常態。大神們也一樣天天在精進技術,沒有人敢說自己技術到頂。 「不是技術問題」的正確意思是:
在「這一次失敗」的所有原因裡,技術不是最致命的那個。
它是在幫你排序,不是要停止進步。技術要一直補、補一輩子。只是如果這次栽在「壓力下看不見自己」,那下次的準備重心,得先放在那個最致命的漏洞上,而不是以為「再多刷五十台就會過」。
補技術是背景任務,一直都在跑。而修好那個最致命的漏洞,是這次的主線任務。
「你的問題是壓力下失去覺察」聽起來像在說「你的問題是你這個人」,好像更難改。
恰恰相反。
覺察不是天賦,是可以用外部機制補起來的。你當下發現不了自己出事?沒關係,那就設一個不依賴你當下判斷的鬧鐘、一張貼在眼前的徵兆清單。不需要變成一個「永遠清醒」的人,只需要在你不清醒的時候,有一個機制替你踩煞車。
這比「把技術練到夠」實際多了,因為「夠」不存在,而「一個會響的鬧鐘」,今天就能設好。
第一次,在跟機器作戰。
第二次,要跟的,是那個在壓力下會慌、會累、而且慌和累的時候「連自己出事了都看不見」的自己。
機器你已經打得贏了(雖然還要繼續變強)。
接下來要學會的,是在自己看不見的時候,替自己裝上一雙眼睛。
他寫得出辨識陷阱的方法。
可是在陷阱裡的時候,他認不出自己在陷阱裡。第二次要練的,不是多會一種手法。是在看不見的時候,還能發現自己看不見。