O1 是先聽到,才看到的。
在無聲試煉窟的最深處,有一區的編號跟別的不一樣——別的石室門口是單一個編號,那一區是三個編號綁在一起,用一條線圈起來,像是在說:這三間,是一組的。
O1 走過去的時候,史帝凡剛好從那一區出來。
「你要進那個?」史帝凡問。
「還沒。想先看看。」
史帝凡笑了一下,那個笑裡沒有嘲諷,比較像是「你自己去看就知道了」的那種。
「看看好。」他說,「進去之前最好先看清楚。那裡面跟外面不一樣。」
O1 走進那條被圈起來的通道。
奇怪的是,他第一眼的感覺不是陌生,是熟悉。
三間石室的門,砌法他認得。那是他 Day 10 打過的那種城——同一種石材、同一種鉸鍊、同一套規制。他心裡鬆了一下:這個他會,這是那種靠「服務與身分」運作的城。
然後他往裡面看,那口氣又提了起來。
同樣是那種城,可是裡面的東西多了好幾層。
外面單獨的石室,守衛就是守衛,管事就是管事,最多分個「一般人」和「管事的」。這三間裡面不是。光是掛牌就密密麻麻。
有本地的職稱,有跨三間共通的職稱。有的牌子管的是「這一間裡面的事」,有的牌子管的是「三間之間的事」,還有一種牌子他看了半天看不懂——它不對應任何一個具體的人,像是一種憑證,誰拿著它,誰就暫時變成別人。
熟悉的是外殼。陌生的是裡面那一層又一層的關係。
他站在第三間門口。那一間的門比前兩間都高,門楣上刻的不是職稱,是一個家族的名字。
而三間石室之間,有細細的刻痕連著。第一間連到第二間,第二間連到第三間。
那些刻痕不是裝飾。是某種關係。
他退出來,坐在通道口,把冊子攤開。
他先把規則抄下來——試煉窟入口的石碑上,寫著這一組石室的計分方式。
他抄到一半停住了,又讀了一次,確認自己沒有看錯,然後把三間石室的分數,一間一間加起來。
外面那些單獨的石室,一間值二十分。
他這幾個月打的都是那種。狀況好的時候,一個晚上能拿下一間;狀況普通,兩三個晚上一間。
三間單獨的石室,六十分。
而這一組綁在一起的三間——要四十分。
六十加四十,一百。及格七十。
他盯著那兩個數字看了很久,然後算出了一件讓他背脊發涼的事:
就算他把外面那些單獨的石室全部打下來——六十分——他還是不及格。
他非進這座王城不可。沒有別條路。
O1 坐在通道口,把這件事在心裡翻來覆去。
這幾個月他一直以為,考試就是「多打幾間、打得快一點」。他以為那是一個量的問題——他慢,所以要練到夠快。
不是。
那三間綁在一起的石室告訴他:這不是量的問題。是有一種東西他必須會,而他現在完全不會。
那三間裡面考的,不是「這面牆有沒有破口」。考的是那些把三間連在一起的刻痕。
他看得到那些刻痕。但他不知道那是什麼。
那天晚上他去找史帝凡,可是史帝凡在忙自己的一間,沒空。
「這個我一時跟你講不清楚。」史帝凡擦著汗,「等我這間打完……不過你要是急,」他想了一下,「我介紹你認識一個人。」
那個人 O1 沒見過。是史帝凡的朋友,剛拿到銀印沒多久,那種剛從長夜裡活著出來、身上還帶著硝煙味的人。
三個人約在通道口。史帝凡忙他的,那個人陪 O1 坐下來。
「那三間,」O1 問,「裡面是什麼?」
那個人沒有直接回答,反問他:
「你剛剛在外面看的時候,有沒有覺得那三間,跟你打過的所有東西都不太一樣?」
「有。」
「哪裡不一樣?」
O1 想了一下。「外面的石室,我打的是牆。那三間……」他停頓,找那個字,「那三間,牆好像不是重點。重點是牆跟牆之間的那些線。」
那個人點點頭。
「對。」他說,「外面那些,你攻的是牆。那裡面,你攻的是信任。」
「信任?」
「那三間裡面住的人,彼此是有關係的。」他說,「誰替誰做事、誰能用誰的名義、誰認得誰的印——那些關係,就是那些線。」
「所以?」
「所以你不是一間一間去砸。」他說,「你是找到一條關係的鏈子,然後順著它走上去。從一個最不起眼的人開始,一路走到那個家族的主人。」
O1 沒有說話。
他想起自己這幾個月,每一間石室都是他一個人蹲在牆前面,一寸一寸勘出來的。他很擅長那個。那是他唯一擅長的事。
而現在這個人告訴他:裡面那三間,光靠盯著牆看,是走不進去的。
「這對你來說可能會比較難。」那個人說。
他說得很輕,不是看不起,是一種了解——他自己一個月前才從那裡面爬出來。
「因為看牆跟看關係,是兩種眼睛。」他說,「你很會看牆,我看得出來。可是那裡面考的不是牆,是人跟人之間的東西——誰信任誰,那個信任能不能被借用。你得換一種眼睛。」
O1 坐在那裡,很久沒有說話。
因為那個人講的東西,他不只在石室裡不會。
他在真的人生裡,也一直看不太懂。
誰信任誰,那個信任能不能被借用——他在公會七年,就是敗在這個上面。他一個人把牆看得很細,卻從來搞不懂那些把人連在一起的線。那些線他看得到,可是他讀不懂。
而現在,那些線變成了他非跨過去不可的四十分。
那個人走之前,O1 跟他道了謝。
「不用謝我。」那個人站起來,拍拍身上的灰,「一個月前有人這樣跟我講,我才過的。你以後也會遇到不會的人,到時候換你跟他講。」
他說完就走了。
O1 坐在通道口,看著那句話在腦子裡轉。
一個月前有人這樣跟他講。
那些把人連在一起的線——他一直以為那種東西只會拿來排擠人、只會把他的名字從名單上劃掉。
他從來沒想過,那種線也可以是這樣傳下來的:一個活著出來的人,回頭拉一把還在裡面的人。
那天他在冊子上開了新的一頁,標題只有兩個字:
王城。
底下他寫了一行:
「這裡不攻牆。這裡攻的是,誰信任誰。」
他寫完,看著那一行,忽然有一種很奇怪的感覺——
好像他這一路走來,繞了那麼遠,最後要考的,剛好就是他這輩子最不擅長的那一題。
改版後的 OSCP,AD 是繞不過去的。這一篇談為什麼 AD 需要換一顆腦袋——指令從 Day 16 開始。
先說明:本文的故事是以舊制為基礎,因為我是在改制前考的。 「AD 是必答題」這件,在改版後仍是。
OSCP+ 計分:
把它擺在一起看:
三台獨立機全部打下來,只有 60 分。不及格。
非碰 AD 不可。
這不是「AD 是加分題」。AD 是必答題。 很多人備考時把大部分時間花在單機提權上,把 AD 留到最後——這個順序,可能就是他們沒過的原因。
(新制 AD 改為給起始帳密、且開放部分給分,方向是變友善;但「三台單機不夠及格」這件事沒變。以考試當期的簡章為準。)
單機滲透,面對的是一台機器:它有哪些服務、哪些設定錯誤、哪個檔案被誤授權。
AD 不是一台機器。AD 是一個組織的神經系統。 它管的是「這個網域裡,誰是誰、誰能做什麼、誰信任誰」。
一間公司可能有幾百台電腦、幾千個帳號,不可能每台各自管各自的帳密——所以有了網域:帳號、權限、信任關係,集中由一個地方管理。
那個地方叫網域控制器(Domain Controller, DC)。它是這個組織的戶政事務所 + 印鑑證明中心 + 通行證核發處。拿下 DC,你就拿下整個網域。
故事裡那三間石室、那個家族的名字、那些連著的刻痕——就是這個。
如果是從單機打上來的,第一次碰 AD 會有一種很特別的感覺:熟悉又陌生。
熟悉的是——它還是 Windows。單機提權那套(服務、排程、權杖、unquoted path)在 AD 的每一台成員機上一樣管用。你不是從零開始。
陌生的是那個「小異」,而那個小異大到會讓你重新緊張:
說實話,到現在遇到 AD,還是會緊張。 那個「熟悉的殼、陌生的裡」的落差,不會完全消失,只會越來越知道怎麼在裡面找路。
(對照 Day 10:那一篇是完全陌生,一種沒見過的秩序。這一篇是熟悉裡藏著陌生,同一種系統,但多了一整個不熟的維度。兩種陌生,要用兩種方式對付。)
一個組織要運作,內部必須有大量的信任:
這些設計全部都合理,都是為了讓組織順暢運作。
但每一個「信任」,都是攻擊者可以借用的東西:
AD 攻擊的本質,就是把這些「為了方便而存在的信任」,一個一個借過來用。
這是 AD 最迷人、也最折磨人的地方。
單機打完就是打完了——拿到 root,結束。
AD 不是。從進入點那台主機開始,直到拿下 DC 為止,每一台主機裡都藏著往下走的線索。
一組憑證、一個快取的雜湊、一份設定檔、一段連線紀錄,它們不是那台機器的終點,是下一台機器的起點。在 A 機器上撿到的東西,是用來打 B 機器的鑰匙。
而且,線索的出現順序,跟你用得到它的順序,常常不一樣。
像是 Day 14 提過的那個魔王級 Lab。最後卡在第四層,卡了很久。後來才發現,打進第四層需要的 proxy 主機位址和帳密,線索其實在前面幾台就已經出現過了,只是當時用不上,就沒有特別留意。
等意識到的時候,時間已經不夠我回頭去解了。
這件事讓我知道:
細節分散在後面幾篇,先給地圖:
尤其是第 3 步。 單機滲透沒有這一步。在 AD 裡,看懂關係圖,比會用任何單一工具都重要。
盯著一個目標、把它每個細節看穿,在 AD 裡不夠用。AD 要的不是「把一台機器看穿」,是「在一堆機器和帳號的關係裡,找到那條沒有人守住的路」。
那是一種不同的注意力。單機是深度,AD 是連結。
第一次認真打 AD,光是「順利提權」這件事就卡了快一個禮拜。但它值得,因為:
真實世界的入侵,絕大多數不是靠一個驚天動地的漏洞,是靠一連串「本來就該這樣、只是沒人想到能串起來」的信任。
在單機上學的東西沒有白費,它們是你進入 AD 的門票。但進去之後,要學一種新的看法。
換一種眼睛。
外面那些,你攻的是牆。
這裡面,你攻的是信任。