三十年過去了,在廣州潮濕的天氣里,我經(jīng)常會(huì)回憶起小時(shí)候東北的天空。
那時(shí)候,我時(shí)常需要仰望天空。因?yàn)槲业娜蝿?wù)是手握一根松木桿,高高挑起電視天線。一陣風(fēng)吹過,電視上就閃過一片雪花。村莊很空曠,我有足夠的時(shí)間,把天線調(diào)整到一種精妙的姿勢(shì)。在某一刻,電視里的雪花猛然消失,我的心情頓時(shí)舒暢得無以復(fù)加。
直插天際的松木天線很漂亮,只是它的刺有些扎手。
如果愿意,可以叫我老王。從小我就喜歡一切最先進(jìn)的科技。在1980年代,最先進(jìn)的科技是“電”。那時(shí)候電視經(jīng)常因?yàn)槔锩骐妷旱淖兓?,造成影像拉伸或壓縮。路途遙遠(yuǎn),我沒辦法抱著電視到鎮(zhèn)上去找專業(yè)的師傅維修,只能打開后蓋,小心避開高壓包,自己學(xué)著調(diào)節(jié)背后的旋鈕。
這并不是電視帶給我的最大挑戰(zhàn)。
由于用電高峰期,電壓下降得很厲害。為了讓電視工作,我甚至需要自己改造家里的電路,把零線接到地上,撒上鹽水,用這種“土”但是有效的方法提高電壓。
那時(shí)的電視都搭配調(diào)壓器。在晚上的時(shí)候,需要把調(diào)壓器調(diào)到最高級(jí)別,才能勉強(qiáng)把電視點(diǎn)亮。而到了半夜,則需要記得把調(diào)壓器調(diào)回來。有一天鄰居老頭在我們家看電視,他并不懂這些,看完之后悄悄回家了。我從夢(mèng)里醒來,看到電視像探照燈一樣噴出光芒。我家的電視以這種方式犧牲了。
我第一次看到電腦,是在學(xué)校發(fā)的勞動(dòng)課本的最后一頁。當(dāng)時(shí)我就說,這東西我認(rèn)識(shí)啊,不就是電視加個(gè)喇叭嘛。
姑娘,我想看你的日記
1995年,我高中畢業(yè)。父親已經(jīng)臥病在床很多年,家里的錢沒辦法繼續(xù)支撐我的學(xué)業(yè)。我意識(shí)到自己必須掙錢養(yǎng)家了。
那時(shí)候,北京一家軟件公司的老板到了我的家鄉(xiāng),想要建設(shè)一個(gè)“軟件基地”。他看中的是我家鄉(xiāng)便宜的人力和土地。
招聘的時(shí)候,老板說這份工作就是要用電腦“編程”。我想這應(yīng)該即簡(jiǎn)單又有趣:不就是鼓搗“電視加喇叭”嗎?我從小就會(huì)啊。
老板租下來一個(gè)廢棄的“化肥廠”(實(shí)際上是過去生產(chǎn)炸藥的軍工廠),這個(gè)廠房從外表看只是一個(gè)山腳下的小樓。而進(jìn)入小樓才發(fā)現(xiàn),空間一直延伸到山體里面很遠(yuǎn)很遠(yuǎn)。這個(gè)軟件基地,果真是“基地”。
一臺(tái)?486?電腦作為主機(jī)(SCO Unix 系統(tǒng)),連出20臺(tái)終端,我們一個(gè)小組的人合用這一臺(tái)電腦的計(jì)算能力。而就算這樣,還必須爭(zhēng)先恐后。雖然連接了20臺(tái)終端,但系統(tǒng)最多只能允許16臺(tái)同時(shí)在線,如果你拉肚子來晚了,或者干脆手速不夠快,對(duì)不起你只能等其他人登出,當(dāng)然完不成工作是要扣工資的。
最初的三個(gè)月是技術(shù)培訓(xùn),這三個(gè)月里,我第一次學(xué)習(xí)了打字和編程。所以我更愿意把這里叫做學(xué)校。
如果這個(gè)學(xué)校里只有男生,或者只有男生和長(zhǎng)相一般的女生,也許我都不會(huì)成為一名黑客。偏偏有一個(gè)姑娘,攪動(dòng)了我年輕的荷爾蒙。
我絲毫不想掩飾我成為黑客的最初動(dòng)機(jī),那就是強(qiáng)烈的窺探欲。
剛學(xué)會(huì)打字的姑娘們,選擇把日記敲進(jìn)電腦里。我滿腦子想的都是如何翻看姑娘的文件夾,我幻想打開姑娘日記的一瞬間,看到她的文字里寫滿了對(duì)我的暗戀之情。
然而,自己的權(quán)限只能訪問自己的文件夾。我把目光投向了最前面對(duì)著我們坐的那個(gè)家伙。這位管理員也是我們的同學(xué),而且是編程學(xué)得很爛的同學(xué),所以他只能做管理員的工作。但正是這個(gè)家伙,擁有?Root?權(quán)限,可以查看所有文件。
如果能搞到他的密碼,我的人生就圓滿了。
在愛情面前,我的智商爆發(fā)了。我買了一本?C?語言的書,自己研究了好幾天,磕磕絆絆寫出了一個(gè)偽造的登錄頁面。趁管理員出去上廁所又不小心沒有注銷賬號(hào)的空檔,我把這個(gè)偽造界面在他的系統(tǒng)上運(yùn)行了起來。
隨著他噼噼啪啪地敲打密碼,這串字符被自動(dòng)存儲(chǔ)到我的目錄下。這是我人生中第一次黑客攻擊,我的老師是自己的荷爾蒙。雖然我拿到了密碼,但是我卻不是那么高興,因?yàn)槲野l(fā)現(xiàn):載滿姑娘情感糾葛的日記,根本沒有一個(gè)字提到我。
為了持續(xù)監(jiān)控班里同學(xué)的“思想狀況”,我需要維持自己的登錄權(quán)限。但是那個(gè)管理員同學(xué)閑著沒事,唯一的工作就是改密碼。我必須改進(jìn)我的技術(shù)。我發(fā)現(xiàn)一個(gè)方法,可以用另一個(gè)高權(quán)限賬戶進(jìn)入,把管理員的密碼替換成我的密碼。這樣,無論密碼如何修改,我都可以進(jìn)入。只是有一次我疏忽了,修改了root密碼之后忘記備份原密碼,剎那間我意識(shí)到,已經(jīng)沒有沒辦法把密碼改回去了。
之后的故事是:可憐的管理員在機(jī)器前試了上百次密碼,驚動(dòng)了整個(gè)基地。這時(shí),我只要走上講臺(tái),輕輕鍵入我的密碼,就可以解決一切。但是這樣做的結(jié)果只有一個(gè):我被掃地出門。我任由這個(gè)同學(xué)滿頭大汗地打電話給北京總部,被嚴(yán)厲批評(píng),并且花了一夜的時(shí)間重裝系統(tǒng)。
那時(shí)候安裝一個(gè)?SCO?Unix?系統(tǒng),需要來回插拔50張5寸軟盤。
雖然直到現(xiàn)在都沒有人知道我才是“幕后黑手”,但在之后的每一次攻擊中,我的腦海中都會(huì)浮現(xiàn)出這次的教訓(xùn)。不是所有的對(duì)手都像那個(gè)管理員同學(xué)一樣弱,而這個(gè)世界,往往沒有機(jī)會(huì)讓你挽回錯(cuò)誤。
0x557
我開始了四海為家的程序員生涯。
我清楚地記得,那時(shí)我們一幫人坐著火車,從哈爾濱到北京,然后沿著剛修通的京九鐵路南下。中途每經(jīng)停一站,我們唯一的任務(wù)就是下車買啤酒。三天三夜的時(shí)間,我們幾乎品嘗了大半個(gè)中國(guó)的啤酒,穿越了無數(shù)山川和村莊,來到深圳。
在華為做現(xiàn)場(chǎng)開發(fā)的日子里,我知道了金山解霸的作者,神人梁肇新。他寫的軟聲卡,居然可以讓只會(huì)“嘀—嘀”響的喇叭放出歌曲。
我迷上了中國(guó)最早的網(wǎng)絡(luò)游戲:MUD,為了在公司里架設(shè)游戲服務(wù)器,我甚至學(xué)會(huì)了它的編程語言 LPC。(98 年華為中研部素未謀面的老伙計(jì)們,還記得《東方故事II》里原名“小李飛刀”,后來拜入少林被強(qiáng)制改名為“渡小”的那個(gè)家伙嗎?)
更重要的是,我第一次看到了?Coolfire——那個(gè)曾經(jīng)啟迪了無數(shù)第一代中國(guó)黑客的臺(tái)灣黑客教父——寫的文章。?我才知道,原來有系統(tǒng)溢出這樣的概念,簡(jiǎn)單的溢出就可以獲得權(quán)限,這可比我偷管理員的密碼強(qiáng)多了。
我開始瘋狂地把那些攻擊代碼下載下來,進(jìn)行攻擊實(shí)驗(yàn)。后來我才知道,這些代碼根本就不可能編譯過去。(因?yàn)楫?dāng)時(shí)的 Unix 系統(tǒng)不管是 SCO 還是 Tru64 上的商業(yè)版本 cc 都不支持 _asm)意料之中,我那時(shí)的攻擊都以失敗告終。不過沒關(guān)系,這種神一樣的黑客技術(shù)已經(jīng)印在了我的腦海中,永遠(yuǎn)無法消失了。
再后來,我輾轉(zhuǎn)哈爾濱、珠海、北京、上海。雖然我的肉體居無定所,不過我在網(wǎng)絡(luò)世界里,卻有了非常固定的組織。
奇遇是這樣發(fā)生的:
我偶然發(fā)現(xiàn)有一條新聞,著名的黑客組織“綠色兵團(tuán)”分成了南北兩派。懷著一顆八卦的心,我混進(jìn)了?sunnet IRC?綠色兵團(tuán)組織的駐地,沒想到,誤打誤撞的我卻殺進(jìn)了當(dāng)年最核心的黑客圈子。這個(gè)叫“#isbase”的房間,大概每天四五十人在線。這些人正是中國(guó)的第一批黑客。
我向他們?cè)儐柧G色兵團(tuán)分家的情況,結(jié)果卻遭到了鄙視。他們紛紛笑話我,這件事情已經(jīng)過去一年了,為什么還在問。被鄙視,我絲毫不介意。關(guān)鍵的問題在于,這些黑客居然和我說話了!
雖說我接觸的人和我的黑客水平有點(diǎn)不同步,不過我有我的能力,那就是僅僅用了一兩個(gè)月就和他們混得稱兄道弟。當(dāng)時(shí)網(wǎng)名還叫?cbird?的蔡晶晶在?IRC?中注冊(cè)了一個(gè)永久的房間“#Superman”,但是平時(shí)沒人。于是我厚著臉皮把房間要過來,拉了幾個(gè)聊得來的兄弟。
林浪子(后來盤古團(tuán)隊(duì)的 DM)、oliver、se1ang、未央生、kaka、rcch、white 等等,是最早的成員,后來隨著 ICBM(趙偉)、KEJI、KKQQ、SWAN 等大牛的加入,#superman 的成員固定了下來。
房間里有人了,必須得找點(diǎn)事干。于是我們決定,本房間的任務(wù)是:搞XXX。(如果你了解XXX的意思,那么你是老司機(jī)。)
我們盯上了國(guó)內(nèi)某個(gè) Warez 組織(可以理解為:破解軟件組織)。他們擁有一個(gè)龐大的破解軟件和“XXX”電影渠道。如果能夠控制他們的FTP,不就等于我們也有了這個(gè)重要的資源了嗎?
現(xiàn)在回想起來,那是我們小組的一次完美配合。我們直接“黑吃黑”攻入了他們的服務(wù)器,并且采用各種手段一直保持權(quán)限,讓我們有足夠的時(shí)間把所有的最新高清毛片都拖下來。
在網(wǎng)絡(luò)世界中,我們幾乎就是隱形人。這讓我感到驕傲。
經(jīng)過這次完美的戰(zhàn)役,我們小組榮幸地升級(jí)為“Superman?Sex?Team”,簡(jiǎn)稱“SST”。團(tuán)隊(duì)的伙伴們覺得這個(gè)名字有點(diǎn)土,于是把“SST”寫成了“557”。這還不夠,作為頂尖的黑客組織,我們的“557”應(yīng)該是16進(jìn)制的。于是我們小組的名字變成了“0x557”。
當(dāng)時(shí)的我絕沒想到,這個(gè)松散的組織最后會(huì)成為黑客界的一個(gè)傳奇。
成為“隱形人”
我找到了真正讓我著迷的事情——在網(wǎng)絡(luò)世界里,成為一個(gè)隱形人。
我和“557”的兄弟們,隨意進(jìn)出幾乎任何一個(gè)網(wǎng)站的服務(wù)器。不會(huì)受到任何阻攔。
在林浪子(DM)閉關(guān)研究漏洞以及利用程序編寫的時(shí)候,我光榮的成為了一名“腳本小子”。說句老實(shí)話,那個(gè)年代把人都搞懶惰了。例如袁哥發(fā)現(xiàn)的“IIS Unicode漏洞”,幾乎可以通殺所有的?IIS?服務(wù)器。而像這樣的通用性漏洞有很多,只要用一個(gè)掃描器批量掃,絕大部分網(wǎng)站肯定中。某種程度上說,我根本不用費(fèi)心去挖掘漏洞。
我關(guān)心的是,被黑掉的服務(wù)器究竟有多大的存儲(chǔ)空間。我的原則很簡(jiǎn)單:遇到硬盤小的就直接掠過,遇到超過100G的硬盤就留下來放“XXX”。那段時(shí)間,我黑站黑到吐。
不過,我很享受這個(gè)過程。確切地說,我享受隱藏自己的樂趣。我像一個(gè)錦衣夜行的俠客,穿梭在黑暗的互聯(lián)網(wǎng)中。這大概和你們心中的經(jīng)典“黑客”形象相差無幾。
現(xiàn)在回想起來,那是個(gè)最好的時(shí)代。很多現(xiàn)在深藏于內(nèi)網(wǎng)的核心主機(jī)都暴漏在公網(wǎng)上,只要你想,你可以接觸任何操作系統(tǒng),那時(shí)候我甚至登入了一臺(tái)運(yùn)行了 OS/390 的機(jī)器。相比現(xiàn)在,放眼望去不是Windows就是Linux,瞬間感覺世界單調(diào)了很多。
每黑一個(gè)站,我都學(xué)會(huì)了更好地隱蔽自己。
即便我攻擊成功并且全身而退,但計(jì)算機(jī)的日志不會(huì)騙人。對(duì)方的管理員完全可以依靠日志溯源到我的身份。在每一次攻擊時(shí),我都需要清醒地知道在服務(wù)器這個(gè)巨大的迷宮里,我的一舉一動(dòng)都被怎樣記錄著。最重要的是你要知道哪里會(huì)有你的痕跡,在全身而退前,我要輕輕地把這些痕跡抹掉,而不是暴力的刪除所有日志。
這并不容易。攻擊?IIS?服務(wù)器的時(shí)候,你要知道?IIS?的日志存放在哪里;攻擊?Apache?的時(shí)候,你要知道?Apache?的日志在哪里。當(dāng)然,這些還遠(yuǎn)遠(yuǎn)不夠。我猜測(cè)了密碼,我嘗試了提權(quán),所有的微小動(dòng)作都會(huì)在不同的瑣碎之處甚至意想不到的地方產(chǎn)生日志。所有這些動(dòng)作,一旦疏忽大意,就會(huì)留下可供追溯的蛛絲馬跡。
對(duì)于“隱形人”來說,蛛絲馬跡就意味著失敗。
新世界的大門
在網(wǎng)絡(luò)世界里,所有的門都為我敞開;在現(xiàn)實(shí)世界里,卻四壁高聳。
我厭倦了做開發(fā),想成為一個(gè)專業(yè)的安全人員。那時(shí)我甚至想:哪怕是一個(gè)系統(tǒng)管理員也行。我只是享受完全掌控計(jì)算機(jī)的感覺。然而,所有愉快的面試都終止在我拿出高中文憑的那一刻。
2002年的上半年,我奔波在上海的大街小巷,想要找到一個(gè)收留我的公司。直到六月的一天,一個(gè)?IRC?里面經(jīng)常一起討論技術(shù)的老朋友突然聯(lián)系我,他就是?Shotgun。那時(shí)他剛從北京啟明星辰來到上海啟明星辰赴任?CTO。
在飯桌上,我告訴他我已經(jīng)待業(yè)半年了。他的話我至今難忘:“你去那么多地方面試,卻不來我這,是不是看不起我?”沒錯(cuò),我的黑客圈子救了我。第二天我就坐進(jìn)了啟明星辰的辦公室:張江一座宏偉的五層建筑的第六層——在房頂加蓋的部分。
在啟明星辰,我可以合法的登入大型系統(tǒng)進(jìn)行配置檢查,對(duì)目標(biāo)系統(tǒng)發(fā)起滲透測(cè)試。也正是從那個(gè)時(shí)期開始,我接觸到了銀行、電信等企業(yè)使用的大型專用系統(tǒng)。這些系統(tǒng)分區(qū)分塊,層層疊疊,就像碩大無朋的數(shù)字迷宮。哪怕是管理員都只能熟悉自己負(fù)責(zé)區(qū)塊的架構(gòu)和配置文件。
成功潛入,并不意味著我要和對(duì)方管理員一樣熟悉他的系統(tǒng),而是我必須比對(duì)方所有的管理員更熟悉他的系統(tǒng)。
這就像一棟大樓,每一層都有自己的保安,而我需要打穿所有的守衛(wèi),進(jìn)入核心區(qū)域。以一敵十,甚至以一敵百,是我的宿命。
像幽靈一樣穿行在這些巨大的迷宮中,讓我獲得了無以復(fù)加的享受。從這個(gè)時(shí)候開始,我意識(shí)到自己在這個(gè)世界上是不可替代的。
然而現(xiàn)實(shí)總是不免殘酷。我漸漸發(fā)現(xiàn)了一些真相:聽上去有點(diǎn)可笑,滲透測(cè)試的目的就是為企業(yè)找出薄弱環(huán)節(jié)。但是在真正的滲透測(cè)試中,企業(yè)的技術(shù)人員往往為了防止生產(chǎn)系統(tǒng)崩潰,甚至僅僅出于私心,把一些實(shí)際上很脆弱的環(huán)境隱藏起來。只對(duì)測(cè)試人員開放有限的接口。
這就像所謂的信息安全”木桶原理“,理論上確實(shí)可以要求解決“短板”問題提高安全等級(jí),但是如何保證“短板”是最短的??我們甚至無法保證他們把所有的“板”給了我們。實(shí)際上,真正的攻擊并不會(huì)在意你是測(cè)試系統(tǒng)還是生產(chǎn)系統(tǒng),它要得只是通向目標(biāo)的路徑和攻擊通道。太多的事例表明,有限制的滲透測(cè)試做出的結(jié)論往往似是而非。
那些年,我時(shí)常懷疑,這樣的滲透測(cè)試真的可以防御入侵嗎?
錦衣夜行:不能說的故事
不同于滲透測(cè)試,真正的網(wǎng)絡(luò)攻擊根本沒有套路和規(guī)矩可言。作為一個(gè)老黑客,我親歷了網(wǎng)絡(luò)世界最兇殘的一面:在黑暗的服務(wù)器中對(duì)戰(zhàn),一個(gè)微小的錯(cuò)誤就可能讓你被對(duì)方直刺喉嚨。生死一念間,這絕不是花拳繡腿和自欺欺人。
我想要找到一種方式,讓我參與到真正的網(wǎng)絡(luò)攻擊當(dāng)中。
有一次,我們團(tuán)隊(duì)執(zhí)行一項(xiàng)無通知滲透測(cè)試任務(wù),客戶是一家跨國(guó)集團(tuán)公司,他們懷疑競(jìng)爭(zhēng)對(duì)手通過網(wǎng)絡(luò)攻擊竊取機(jī)密信息,但是安全廠商認(rèn)為核心網(wǎng)絡(luò)是邏輯隔離的,外部入侵無法訪問核心數(shù)據(jù)。此次項(xiàng)目只有客戶的CTO和安全部門的核心leader知情,目的是驗(yàn)證能否通過外部攻擊的方式訪問核心數(shù)據(jù)以及測(cè)試管理員的應(yīng)急響應(yīng)能力,我們被授權(quán)可以動(dòng)用除DoS之外的一切手段從外網(wǎng)發(fā)起滲透。
這個(gè)目標(biāo)非常龐大,卻又保衛(wèi)森嚴(yán)。這里幾乎部署了世界上存在的所有類型的安全防護(hù)系統(tǒng)。突破這些自動(dòng)化防御系統(tǒng),雖然艱難,但是我還是成功了。
和機(jī)器對(duì)抗,永遠(yuǎn)不是最難的;和人對(duì)抗,才是我站在這里的目的。
初步滲透之后,我們打通了通向內(nèi)網(wǎng)的攻擊通道,并且掌握了查看對(duì)方所有人郵件的權(quán)限。通過查看管理員的往來郵件,我知道他們已經(jīng)發(fā)現(xiàn)了被入侵的跡象并且修補(bǔ)了漏洞,但是他們顯然還不知道自己已經(jīng)被監(jiān)視。監(jiān)控對(duì)方的郵件對(duì)我來說是個(gè)好消息,所謂知己知彼,百戰(zhàn)不殆。至少目前我具有很大的優(yōu)勢(shì)——能可以查看對(duì)手的牌。
對(duì)于滲透測(cè)試來說,初期的攻擊是最容易被發(fā)現(xiàn)的,因?yàn)楸仨氁鲆恍┏R?guī)的掃描和利用嘗試,部署在邊界的安全設(shè)備都有能力發(fā)現(xiàn)此類攻擊,但是從另一個(gè)角度上來講,管理員也最容易忽略這些信息,每天發(fā)生在網(wǎng)絡(luò)上的各種攻擊掃描數(shù)據(jù)足以讓真正的攻擊痕跡淹沒在茫茫的告警中。
很多管理員會(huì)認(rèn)為既然發(fā)現(xiàn)了漏洞,那么打上補(bǔ)丁,甚至直接下線就安全了,事實(shí)上一個(gè)有經(jīng)驗(yàn)的入侵者在獲得入口后會(huì)及時(shí)的利用入口打通其它的攻擊通道并遷移過去,而且很有可能做一些微調(diào)讓漏洞利用變得困難,防止其它入侵者利用。
對(duì)方的管理員顯然比較專業(yè),準(zhǔn)確的定位到漏洞位置,及時(shí)修補(bǔ),然而從他的郵件里來看,他并沒有發(fā)現(xiàn)其他痕跡,也不清楚這個(gè)入口服務(wù)器事實(shí)上已經(jīng)作用不大了。
對(duì)于一個(gè)大型目標(biāo)來說,并不是獲得一個(gè)網(wǎng)站權(quán)限、拿到一個(gè)域控管理員的賬號(hào)、進(jìn)入一個(gè)數(shù)據(jù)庫就能搞定一切的,大多時(shí)候你甚至不知道真正的數(shù)據(jù)存放在哪里。我必須不停的探測(cè)、查找,分析對(duì)方的網(wǎng)絡(luò)結(jié)構(gòu),分析對(duì)方的管理員權(quán)限范圍,分析各種應(yīng)用的數(shù)據(jù)來。這個(gè)過程,就不可避免地要跟管理員進(jìn)行對(duì)抗——技術(shù)上的和心理上的對(duì)抗。
這種對(duì)抗對(duì)攻擊者來說是最不愿意碰到的,在我看來一次完美的攻擊行為應(yīng)該在管理員毫不知情的情況下完成,所謂靜悄悄的來,靜悄悄的走。然而理想化的結(jié)果很難存在,更多的是對(duì)抗在攻擊過程中就已經(jīng)產(chǎn)生。
攻防過程中,管理員先天上具備資源的掌控性優(yōu)勢(shì),他可以隨時(shí)下線感覺有問題的機(jī)器,所以對(duì)于攻擊者來說這就不僅僅是技術(shù)上的對(duì)抗,更重要的是心理上的對(duì)抗,要盡力偽裝自己的目的,在不能完全隱藏自己痕跡的情況下,最好讓管理員感覺攻擊者是個(gè)白癡,讓他產(chǎn)生技術(shù)上的優(yōu)越感,從而不至于采取拔網(wǎng)線,分析磁盤鏡像等極端的防護(hù)措施。
我刻意選在半夜兩點(diǎn)鐘動(dòng)手。然而萬萬沒想到,即便是在深夜,我剛剛進(jìn)入對(duì)方的服務(wù)器系統(tǒng),就觸發(fā)了對(duì)手的報(bào)警,在非常短的時(shí)間內(nèi),對(duì)方管理員就進(jìn)入了機(jī)房,登錄了系統(tǒng),把我踢了出去。
我們感覺到很詫異,因?yàn)檫@次攻擊中沒有利用任何第三方工具,沒有嘗試破解密碼,沒有提權(quán)操作,而且完全遵循管理員日常管理的規(guī)范通過合法的身份和路徑登入系統(tǒng),并且禁止日志記錄。從技術(shù)角度上講已經(jīng)做到了極致。
萬幸,對(duì)方管理員并沒有摸透我的全部進(jìn)攻途徑,我們?cè)谝粋€(gè)很明顯的位置放置了一個(gè)很粗糙的webshell,并且偽造了幾條毫無目的的攻擊記錄,從郵件內(nèi)容來看,對(duì)方顯然認(rèn)為這是一次無目標(biāo)的的自動(dòng)攻擊,而這種攻擊充斥在網(wǎng)絡(luò)中,管理員被我們迷惑了,并沒有意識(shí)到這是有針對(duì)性的攻擊行為。攻擊跳板機(jī)仍然存在。我重新規(guī)劃了攻擊路徑,擇機(jī)又發(fā)起了進(jìn)攻,眼看就要成功突破防線的一瞬間,毫無防備,我又被管理員干掉了。
我終于意識(shí)到,對(duì)方的管理員在一個(gè)特殊的地方,做了特殊的監(jiān)控手段。這種特殊的防護(hù),只能根據(jù)網(wǎng)絡(luò)的實(shí)際情況搭建,完全不是通用腳本,這種看上去的小伎倆卻把我這個(gè)“老司機(jī)”絆倒幾次。從那時(shí)起,我清晰地意識(shí)到:關(guān)鍵位置的定制防護(hù)手段在防護(hù)中的作用非凡。
我們已經(jīng)獲取了一些敏感數(shù)據(jù),其中包括門禁卡數(shù)據(jù),但是最終目的并沒有達(dá)到,我們準(zhǔn)備測(cè)試另外一種可能性。經(jīng)過與對(duì)方CTO的溝通,得到授權(quán)后,我們做了一個(gè)瘋狂的計(jì)劃:通過復(fù)制對(duì)方的門禁卡,派人潛入他們的工作區(qū)域,直接連接內(nèi)網(wǎng)的?Wi-Fi,從而偽裝內(nèi)部人員繞過他們的防護(hù)腳本。我們已經(jīng)選定了執(zhí)行人,并且做了周密的進(jìn)攻和配合計(jì)劃。
但就在計(jì)劃實(shí)施的前一晚,事情出現(xiàn)了轉(zhuǎn)機(jī):我們發(fā)現(xiàn)了對(duì)方的防御設(shè)置,在一臺(tái)據(jù)說已經(jīng)廢棄的測(cè)試服務(wù)器上提取了監(jiān)控腳本,經(jīng)過分析后發(fā)現(xiàn)是可以被繞過的。
我們進(jìn)入了對(duì)方的集中控制臺(tái),這臺(tái)機(jī)器雖然不能直接作為跳板進(jìn)入核心系統(tǒng),但是在這個(gè)控制臺(tái)的內(nèi)存中,存儲(chǔ)著我們渴望已久的目標(biāo)機(jī)器系統(tǒng)級(jí)密碼。我們成功把這臺(tái)機(jī)器的內(nèi)存做了鏡像。我們都知道,這?2G?內(nèi)存中,有幾個(gè)字節(jié)正是我們夢(mèng)寐以求的“金鑰匙”。
然而,為了分析出密碼的所在,我們必須將這?2G?內(nèi)存全部下載到本地。而把一個(gè)?2G?的文件,在管理員眼皮底下傳出來,簡(jiǎn)直是不可能的任務(wù)。這無異于從保衛(wèi)森嚴(yán)的大樓里,搬出一個(gè)保險(xiǎn)柜。
我們需要做的,是把這個(gè)巨大的內(nèi)存鏡像,切成數(shù)十個(gè)小片,通過無數(shù)不同的渠道傳輸出來。即使這樣,為了不引起對(duì)方管理員注意,我們對(duì)所有的下載通道都做了自我限速,傳輸速度不能超過1M。終于,這段內(nèi)存的最后一個(gè)比特也平安到達(dá)了我的本地存儲(chǔ)。我知道這件事成了。
利用系統(tǒng)密碼,我成功地獲得了對(duì)方服務(wù)器的最高權(quán)限,終于拿到了“機(jī)密”的信息——事先準(zhǔn)備好的測(cè)試文件。雖然經(jīng)歷了艱難的三進(jìn)三出,但是最終的結(jié)果令人滿意。我們找到了對(duì)方網(wǎng)絡(luò)的諸多缺陷,自己也收獲頗多,因?yàn)檎嬲墓シ缹?duì)抗經(jīng)驗(yàn)是實(shí)驗(yàn)室環(huán)境無法模擬出來的。
這樣的經(jīng)歷讓我難忘。
黑客的迷宮
二十年的黑客生涯讓我越來越相信,真正優(yōu)秀的?Hacking,更像是一門藝術(shù),是一種人與程序、人與人之間的對(duì)抗。0day和rootkit只是一種輔助,真正考驗(yàn)的是hacker的技術(shù)功底和天馬行空的思維能力。越是高精尖的技術(shù),越具有不穩(wěn)定性。而我的對(duì)手,往往不給我出現(xiàn)任何閃失的機(jī)會(huì)。我必須用體系內(nèi)已有的規(guī)則,做超出規(guī)則的事情。
自從離開家鄉(xiāng),時(shí)間就過得很快。當(dāng)年在?IRC?活動(dòng)的中國(guó)第一代黑客,很多都已到了不惑之年。有人早已不寫代碼,成為公職人員;有人遠(yuǎn)走他鄉(xiāng),在地球另一端,難以相見;有人還在這里,創(chuàng)業(yè)打拼,建立了自己的網(wǎng)絡(luò)安全帝國(guó);有人“藝高膽大”,鋌而走險(xiǎn),卻最終鋃鐺入獄。
如今,還能數(shù)得上名的,不過十余人。我目送自己的黑客圈子一年年變老。
看慣了在比特陣地里的搏殺,我終于決定,用我的經(jīng)驗(yàn)做一個(gè)理想中的“藝術(shù)品”。我和合作多年的老黑客?CP,還有“烏云漏洞一哥”Jannock?一拍即合,決定成立一家自己的公司。成立公司的底氣就是:我們具備豐富的網(wǎng)絡(luò)對(duì)抗經(jīng)驗(yàn)。
我們知道哪些防護(hù)手段對(duì)有經(jīng)驗(yàn)的黑客來說如同虛設(shè);
我們知道如何在一個(gè)貌似正常的系統(tǒng)中檢查異常;
我們同樣知道用怎樣的小成本防護(hù),就可以給黑客造成巨大的麻煩。
我們決定用自己的技術(shù)和經(jīng)驗(yàn),讓更多的人感知到自己正在遭受的攻擊。我雖然總用“沒文化”來自嘲,不過我很喜歡我的公司名字:錦行。這讓我時(shí)?;貞浧疬^去“錦衣夜行”的日子。我想要找到一種方法,可以實(shí)時(shí)“看到”黑客的攻擊路徑,感知他的來源,預(yù)測(cè)他的攻擊目的。就像當(dāng)年我的對(duì)手希望看到我的行蹤一樣。
我們決定為黑客準(zhǔn)備一個(gè)“真實(shí)的”虛擬世界。
讓我來說說一個(gè)黑客是怎樣思考問題的吧:
在突破邊界防御之后,黑客第一時(shí)間的需要就是,搞清目標(biāo)內(nèi)部的構(gòu)架。他會(huì)潛入所有可能的地方收集信息。我們要做的就是,在偌大的網(wǎng)絡(luò)空間里,安插一扇虛掩的門。
你可以想象一個(gè)小偷。在進(jìn)入一幢別墅之后,他發(fā)現(xiàn)了五扇上鎖的門,這些門看上去沒有區(qū)別,他沒辦法判斷哪個(gè)門后藏著你想要的東西。所有的門都被鎖,但是鎖的類型并不相同。事實(shí)證明,如果我是那個(gè)小偷,我會(huì)從我最容易打開的那把鎖開始攻擊,然后尋找是否有暗門、窗戶等等其它通道進(jìn)入別的房間,就算沒有,也可以開辟一條進(jìn)入別墅的通道,從而不必每次從大門出入,站穩(wěn)腳跟之后再來判斷周圍的環(huán)境。
相信你也會(huì)做出同樣的選擇。
你還記得嗎,對(duì)于黑客熟悉怎樣的鎖,我最有發(fā)言權(quán)。這扇門背后,恰恰是我們布置的迷宮——真實(shí)的虛擬系統(tǒng)。
我會(huì)根據(jù)用戶原有的業(yè)務(wù)模式創(chuàng)造出這個(gè)“虛擬系統(tǒng)”。不過,這個(gè)場(chǎng)景和用戶真實(shí)生產(chǎn)環(huán)境的相似度有多少,并沒有你想象中那么重要。因?yàn)閷?duì)于攻擊者來說,在打開其他門之前,他并不知道什么是“真實(shí)”的。反而,這個(gè)虛擬場(chǎng)系統(tǒng)越符合他的想象,就越能讓黑客自信爆棚。
有一個(gè)很簡(jiǎn)單的判斷方式:為了探明環(huán)境,黑客會(huì)在虛擬系統(tǒng)中做一系列輸入。而虛擬系統(tǒng)反饋的輸出數(shù)據(jù),如果符合他的預(yù)期,那么黑客就會(huì)深信不疑。
而我們要做的,只是在這個(gè)虛擬的系統(tǒng)里隱藏各種探測(cè)腳本——還記得當(dāng)年讓我馬失前蹄的腳本嗎?這比我當(dāng)年遇到的腳本更加隱蔽,更加靈活。就像在一間屋子的地板下面,布滿感應(yīng)裝置。(如果在明顯的位置布上幾只攝像頭,黑客只需要一伸手就可以關(guān)閉它。)只要有人踏足這個(gè)房間,他的詳細(xì)動(dòng)作都會(huì)被記錄并且傳出。據(jù)此,一個(gè)黑客的所有企圖都會(huì)暴露在我們眼前,就算是我們本身陷入進(jìn)去也不例外。
在我看來,這件事情的關(guān)鍵,倒不是如何搭建一個(gè)虛擬的環(huán)境捕捉到黑客的動(dòng)作,而是如何分析他的每一個(gè)行為。
他為什么使用這個(gè)指令組合?
他為什么希望查詢這些信息?
他的每一個(gè)動(dòng)作在我們“同行”眼中,都指向一個(gè)明確地意圖。他究竟是競(jìng)爭(zhēng)對(duì)手?還是敵對(duì)勢(shì)力?或者只是一個(gè)迷路的腳本小子?都可以通過行為暴露出來。
更進(jìn)一步,他打指令的方式、下載文件的位置、搜索數(shù)據(jù)的習(xí)慣,都把他明確地定義為一個(gè)確切的人。擁有了這些指紋,在下一次他攻擊錦行“治下”的任何虛擬系統(tǒng),系統(tǒng)都能夠第一時(shí)間把他識(shí)別出來。這樣,就可以把他所有的“前科”聯(lián)系起來。這對(duì)于精準(zhǔn)預(yù)判他的下一步動(dòng)作,有著非常重要的作用。
這個(gè)“真實(shí)的虛擬迷宮”,我給它起名叫幻云。
讓我驕傲的是,所有的這些判定,幻云都可以自動(dòng)完成。而只有當(dāng)用戶需要分析不同情報(bào)之間關(guān)聯(lián)的時(shí)候,才需要專家介入。
我對(duì)“錦行”非常期待,因?yàn)槲医甑暮诳蜕?,都傾注在其中。
創(chuàng)業(yè)讓我變得無比忙碌,我被迫從“自由黑客"改變?yōu)橐粋€(gè)事必躬親的初創(chuàng)公司 CSO。不過這種轉(zhuǎn)變并沒有讓我不適應(yīng),我是那種“每天不敲兩個(gè)小時(shí)代碼就渾身難受”的人。這讓我有足夠的激情對(duì)初期的產(chǎn)品進(jìn)行打磨。
尾聲
當(dāng)年的我,迫于生計(jì)輾轉(zhuǎn)中國(guó);而現(xiàn)在,我因?yàn)椤板\行”而選擇定居南國(guó)。我用了二十年的時(shí)間,輾轉(zhuǎn)從國(guó)土的最北端走到最南端,卻從沒遠(yuǎn)離這片“賽博戰(zhàn)場(chǎng)"。
這些年,我見證了所有城市的高樓拔地而起,不過我并沒有幸運(yùn)地成為腰纏萬貫炒房客;
我見證了黑客從我們幾個(gè)人的隱秘圈子擴(kuò)展到了千軍萬馬,不過我也沒有成為用數(shù)據(jù)換跑車的黑產(chǎn)從業(yè)者。
我見證了網(wǎng)絡(luò)安全從無人問津變成了巨大的產(chǎn)業(yè)。創(chuàng)業(yè)維艱,身不由己。但在內(nèi)心里,我一直是個(gè)黑客。
這讓我感到驕傲。
【老王(La0wang),王俊卿】
評(píng)論列表
我最近了解了一下,是我朋友給我推薦的,很靠譜,推薦大家情感有問題的可以嘗試一下
如果發(fā)信息不回,怎麼辦?
求助
被拉黑了,還有希望么?