五年前,當(dāng)本杰明·德爾皮(Benjamin Delpy)走進(jìn)莫斯科總統(tǒng)酒店的房間時(shí),發(fā)現(xiàn)一名身穿深色西裝的可疑男子在使用他的筆記本。就在幾分鐘前,這名 25 歲的法國(guó)程序員匆匆跑到前臺(tái)去投訴房間的網(wǎng)絡(luò)狀況。為了一場(chǎng)在附近主辦的安全會(huì)議,他提前兩天就到達(dá)了這里,結(jié)果發(fā)現(xiàn)酒店沒(méi)有 Wi-Fi,網(wǎng)口也壞了。酒店的工作人員讓德爾皮在前臺(tái)等著維修人員過(guò)來(lái),但他想回房間里等著所以拒絕了。
當(dāng)?shù)聽柶せ貋?lái)時(shí),他就震驚地看到那個(gè)陌生人站在自己的辦公桌旁,身旁還有一個(gè)黑色手提箱,在聽到聲響之后,快速縮回了鍵盤上的手。筆記本上 Windows 的登錄界面還沒(méi)有登進(jìn)去,而這個(gè)人用英語(yǔ)咕噥了一句抱歉,說(shuō)他刷錯(cuò)了門卡,然后趁德爾皮還沒(méi)反應(yīng)過(guò)來(lái)之前就逃出了房間。
德爾皮很快就知道了他的筆記本為什么會(huì)被人非法搜查,因?yàn)樗诠P記本里存放了莫斯科會(huì)議上的主題演講資料,其中包含了一個(gè)早期程序 Mimikatz。Mimikatz 能在極短的時(shí)間內(nèi)從計(jì)算機(jī)內(nèi)存中抓取 Windows 用戶的密碼,從而獲得該計(jì)算機(jī)的訪問(wèn)權(quán)或者受害人在網(wǎng)絡(luò)上的其他訪問(wèn)權(quán)。
和全世界的黑客一樣,俄羅斯人也想拿到德爾皮的源代碼。
在此后的幾年中,德爾皮向公眾公布了該代碼,Mimikatz 已經(jīng)成為一種無(wú)處不在的黑客滲透工具,入侵者們一旦打開缺口,就能迅速?gòu)囊慌_(tái)聯(lián)網(wǎng)設(shè)備跳到下一臺(tái)。最近,Mimikatz 重新回到了人們的視線中,它成為了 NotPetya 和 BadRabbit的組成部分,而這兩個(gè)勒索蠕蟲已經(jīng)擊垮了烏克蘭,并且蔓延到整個(gè)歐洲、俄羅斯和美國(guó)。 僅 NotPetya 就導(dǎo)致了馬士基、默克和聯(lián)邦快遞等公司數(shù)千臺(tái)電腦的癱瘓,已經(jīng)造成 10 億多美元的損失。
那些引發(fā)網(wǎng)絡(luò)震動(dòng)的漣漪,至少在某種程度上是由德爾皮隨意編出來(lái)的程序所引發(fā)的。德爾皮表示,一位拒絕透露姓名的服務(wù)于法國(guó)政府機(jī)構(gòu)的 IT 經(jīng)理,最初將 Mimikatz 作副項(xiàng)目來(lái)開發(fā),期望更加了解 Windows 的安全性能和 C 語(yǔ)言,同時(shí)意在向微軟證明 Windows 密碼中存在的安全漏洞。他的概念驗(yàn)證達(dá)到了預(yù)期效果,在最新版本的 Windows 中,微軟更改了其認(rèn)證系統(tǒng),使系統(tǒng)更不易被類似 Mimikatz 的工具攻破。但此時(shí),德爾皮的工具早已進(jìn)入廣大黑客的武器庫(kù)中。德爾皮說(shuō):“雖然 Mimikatz 不是為攻擊者設(shè)計(jì)的,但是它卻幫助了他們,任何一個(gè)事物,有利就有弊。” 安全公司 Rendition Infosec 創(chuàng)始人兼滲透測(cè)試員杰克·威廉姆斯(Jake Williams)表示,即便在今天,盡管微軟嘗試修復(fù)系統(tǒng)漏洞,Mimikatz 仍然是一個(gè)強(qiáng)大的黑客工具。
竊取方法
Mimikatz 最初因其利用了 Windows 的 WDigest 功能而成為了核心的黑客資產(chǎn)。WDigest 旨在使公司和政府的 Windows 用戶更方便地向內(nèi)網(wǎng)或網(wǎng)絡(luò)上的應(yīng)用程序證明身份,它會(huì)將用戶的身份驗(yàn)證信息保存在內(nèi)存中,并自動(dòng)重用它們,因此用戶只需輸入一次用戶名和密碼即可多次訪問(wèn)。
盡管 Windows 會(huì)將用戶密碼的副本加密,但系統(tǒng)也同樣保留了密鑰的副本以便解密。德爾皮說(shuō):“這就像把加密郵件和密鑰同時(shí)放在郵箱里一樣。” 德爾皮表示他已經(jīng)向微軟提出了潛在的安全問(wèn)題,但該公司對(duì)他的提醒置之不理,認(rèn)為不是什么大問(wèn)題。畢竟,黑客想在內(nèi)存中找到密碼,就先要深度訪問(wèn)受害人的機(jī)器,這顯然是不太容易做到的。微軟曾在《連線》雜志的采訪中回應(yīng)了關(guān)于 Mimikatz 的問(wèn)題,“只有在系統(tǒng)已經(jīng)被破壞的前提下,該工具才能入侵,為了安全起見,我們建議用戶遵循安全的操作方法,同時(shí)保持更新。”
但德爾皮在實(shí)踐中發(fā)現(xiàn),Windows 認(rèn)證系統(tǒng)仍是一塊強(qiáng)有力的跳板,黑客們一直借此擴(kuò)大感染。如果用管理員權(quán)限運(yùn)行一款惡意軟件,那么它可以將加密的密碼與解密的密鑰一起從內(nèi)存中竊取出來(lái),然后用它們來(lái)訪問(wèn)網(wǎng)絡(luò)上的另一臺(tái)計(jì)算機(jī)。如果另一名用戶登錄到該計(jì)算機(jī)上,攻擊者就可以在第二臺(tái)計(jì)算機(jī)上運(yùn)行相同的程序來(lái)竊取他們的密碼,如此往復(fù)。
因此,德爾皮編寫出了 Mimikatz 來(lái)證明微軟存在的問(wèn)題,“mimi”在法語(yǔ)中的意思是“可愛”,因此這個(gè)程序的全稱是指“可愛的貓咪”。他在 2011 年 5 月公布了 Mimikatz,但沒(méi)有開放源代碼。德爾皮說(shuō)他當(dāng)時(shí)的態(tài)度是這樣的,“你們既然不想修復(fù)系統(tǒng),那我就來(lái)向世人證明你們的問(wèn)題。事實(shí)證明微軟需要好幾年的時(shí)間才能修復(fù)系統(tǒng),而期間黑客們也沒(méi)閑著。” 不久,德爾皮在黑客論壇中看到中國(guó)用戶在討論 Mimikatz,并試圖對(duì)其進(jìn)行逆向工程。然后在 2011 的年中,他才發(fā)現(xiàn) Mimikatz 被用于入侵外國(guó)政府網(wǎng)絡(luò)。他在回憶時(shí)說(shuō)道:“這種情況讓我感覺(jué)非常非常的難受。”
2011 年 9 月,Mimikatz 被用于入侵 DigiNotar,其發(fā)布的認(rèn)證證書是用于確保網(wǎng)站使用者的身份。據(jù) Fox-IT 的安全研究人員表示,這種入侵讓身份不明的黑客發(fā)出了偽造的證書,然后監(jiān)視了數(shù)以千計(jì)的伊朗人。結(jié)果,DigiNotar 被網(wǎng)絡(luò)瀏覽器列入黑名單,最終破產(chǎn)。
第二個(gè)穿西裝的俄羅斯男人
在 2012 年初,德爾皮應(yīng)邀在莫斯科舉辦的 Positive Hack Days 大會(huì)上進(jìn)行了一場(chǎng)關(guān)于 Windows 安全問(wèn)題的演講。他仍然認(rèn)為多數(shù)國(guó)家支持的黑客已經(jīng)掌握了 Mimikatz 的代碼。但即便是在酒店房間的那次接觸之后,俄羅斯人還是不死心。當(dāng)他在一座蘇聯(lián)老廠房里和一群黑客交談之后,一個(gè)穿著深色西裝的男人走近他,要求他把會(huì)議幻燈片和 Mimikatz 拷在 U 盤上,德爾皮照做了。然后,甚至在他離開俄羅斯之前,他還在 Github 上發(fā)布了的開源代碼,既出于自身的安全考慮,也希望防御者能夠借此抵御黑客的攻擊。
2013 年,微軟最終在 Windows 8.1 中增加了禁用 WDigest 的方法,以此防御了 Mimikatz 。在 Windows 10 中,微軟默認(rèn)禁用該項(xiàng)功能。但是,Rendition 的威廉姆斯指出,即使在今天,Mimikatz 還是能影響到很多他碰到的 Windows 機(jī)器,要么是因?yàn)檫@些機(jī)器沒(méi)有升級(jí)系統(tǒng),要么是因?yàn)樗袡?quán)限啟用 WDigest。
近年來(lái),Mimikatz 要么被俄羅斯黑客用來(lái)攻擊德國(guó)議會(huì),要么是被 Carbanak 網(wǎng)絡(luò)團(tuán)伙用來(lái)犯下了“十億美元大劫案”。但 NotPetya 和 BadRabbit 勒索蠕蟲使用 Mimikatz 的方式卻比較迂回:他們將攻擊工具放在可自我傳輸?shù)娜湎x中,同時(shí)將其與 EternalBlue 和 EternalRomance 黑客工具一起泄露給了 Shadow Brokers。這些工具允許惡意軟件通過(guò)微軟的服務(wù)器消息塊協(xié)議傳輸?shù)剿形瘁槍?duì)攻擊打補(bǔ)丁的接入系統(tǒng)。他們與 Mimikatz 一起打出的組合拳,最大程度地?cái)U(kuò)散了這些自動(dòng)感染。德爾皮說(shuō):“當(dāng)你把這兩種技術(shù)混合起來(lái)時(shí),它是非常強(qiáng)大的。”
盡管 Mimikatz 造成了這些攻擊,但德爾皮并未因此疏遠(yuǎn)它。相反,他繼續(xù)打磨著自己的作品,公開地討論它,甚至在過(guò)去幾年中為它增加了更多的功能。如今,Mimikatz 已經(jīng)對(duì) Windows 身份驗(yàn)證功能造成了重?fù)簦瑥母`取哈希密碼傳遞身份認(rèn)證信息,到在微軟的 Kerberos 身份驗(yàn)證系統(tǒng)生成可替代身份令牌的虛假票據(jù)(Ticket),甚至是在 Chrome 和 Edge 瀏覽器中竊取自動(dòng)填充的密碼。不過(guò)德爾皮說(shuō),在利用 Windows 的安全問(wèn)題之前,他會(huì)提前幾個(gè)月向微軟發(fā)出警告。
令人苦澀的密碼試煉工具
Mimikatz 中的功能不是為了便宜犯罪分子和間諜,而是為了證明 Windows 的設(shè)計(jì)方式或公司及政府的使用方式都存在著安全問(wèn)題和隱患。德爾皮說(shuō),畢竟,如果系統(tǒng)管理員限制用戶的權(quán)限,Mimikatz 就無(wú)法獲得管理員訪問(wèn)權(quán)限,也無(wú)法跳到其他計(jì)算機(jī)同時(shí)竊取更多的認(rèn)證信息。加州大學(xué)伯克利分校安全研究員尼古拉斯·韋弗(Nicholas Weaver)表示,盡管如此,Mimikatz 仍然非常強(qiáng)大,德爾皮也不應(yīng)該為此受到指責(zé)。他說(shuō):“要是說(shuō)起來(lái),如果沒(méi)有出現(xiàn) Mimikatz,還是會(huì)有其他的黑客工具。”
到最后,連微軟都開始試著欣賞德爾皮的成果,邀請(qǐng)他在公司的藍(lán)帽(Blue Hat)安全會(huì)議上發(fā)表了兩次講話,今年更是邀請(qǐng)他加入新版研究報(bào)告的評(píng)審委員會(huì)。至于德爾皮,他對(duì)自己的工作表示毫不后悔。比起把微軟的漏洞留給間諜們獨(dú)自享用,被俄羅斯間諜追蹤對(duì)他而言并不算什么。他說(shuō):“我設(shè)計(jì)這個(gè)工具的目的是為了向微軟證明這不是一個(gè)理論問(wèn)題,這是一個(gè)真正存在的漏洞。要是沒(méi)有真實(shí)的數(shù)據(jù),沒(méi)有可怕的數(shù)據(jù),他們永遠(yuǎn)不會(huì)做任何改進(jìn)的事情。”
參考鏈接
“德爾皮在黑客論壇中看到中國(guó)用戶在討論 Mimikatz,并試圖對(duì)其進(jìn)行逆向工程” 文中提到的是 “看雪論壇” 中的帖子
“逆向sekurlsa.dll_實(shí)現(xiàn)讀內(nèi)存獲得開機(jī)密碼” https://bbs.pediy.com/thread-156643.htm
“可怕的神器:抓取windows明文密鑰–mimikatz” https://bbs.pediy.com/thread-149236.htm
德爾皮(Benjamin Delpy)的博客 http://blog.gentilkiwi.com/
Mimikatz項(xiàng)目地址 https://github.com/gentilkiwi/mimikatz