什麼是委派攻擊與如何偵查?

資訊安全新知分享

NEITHNET 資安實驗室

  委派(delegate)相關攻擊在AD架構中是個常見的攻擊手段,由於AD內通常以Kerberos以及NetNTLM兩種協定來驗證,而委派攻擊是則是透過偽造票證來避開Kerberos驗證身分時使用。當持有票證就代表已經通過服務的驗證,等同於擁有以特定身分使用服務的權限,每張票證都有時間限制,超過時間需要重新取得票證才能繼續使用服務。

  假如使用者的密碼夠長夠複雜或是難以取得,可以往票證偽造或是竊取上聚焦,其中比較常見的委派攻擊有「非約束委派」及「約束委派」。

  「非約束委派」利用的前提條件是取得非約束委派的服務或機器,並且目標帳號登入過機器或是透過服務帳號使用過服務,最終目標是取得目標帳號的krbtgt。原因在於,使用非約束委派會導致目標帳號的tgt會存在非約束委派的快取中,因此假如有足夠權限就可以dump出存在快取的tgt來假冒使用,而且這個方法不會經過KDC。

  「約束委派」利用的前提條件是取得約束委派的服務,最終目標是取得任意帳號使用此服務的tgt,通常目標是域的最高權限administrator。約束委派是由於非約束委派不安全而衍生出來的模式,約束委派和非約束委派不同,約束委派不會直接把tgt給服務帳號。但約束委派可以透過s4u2self以及s4u2proxy來假冒任何使用者使用服務,並向KDC取得票證。

  防禦方法是盡量不使用非約束委派,並在特殊帳號或高權限帳號中勾選成敏感帳號使其帳號無法被委派。

實作:非約束委派偵查

事先已取得資料

DC 172.16.10.141 WIN-BC88CGGECTI

AD 172.16.10.142 DESKTOP-FM3IESA

取得test.net\Sam普通網域使用者帳密以及可在DESKTOP-FM3IESA機器中提權,但不知道其他網域使用者帳號密碼以及未取得DA權限。

上圖可看出機器DESKTOP-FM3IESA有非約束委派的設定。

  當取得DESKTOP-FM3IESA最高權限以及test.net域內的Sam帳號的情況下,非約束委派利用條件,目前還差了機器內是否有可利用的帳號,因此需要查看全部存於機器的tgt是否有可以拿來利用的。

  利用rubeus的triage指令可以取得機器中所有的tgt,如上圖所示可以看出administrator曾經使用過這台非約束委派機器,因此有殘留的有時效性的tgt可以拿來匯入並在期限之內利用。

  將tgt dump出來之後就能匯入機器中使用,匯入了tgt之後,便可在klist中看見目前持有票證,擁有票證之後便能使用enter-pssession登入DC機器且為administrator身分。

實作:約束委派偵查

  事先已取得資料

  DC 172.16.10.141 WIN-BC88CGGECTI

  AD 172.16.10.142 DESKTOP-FM3IESA

  取得test.net\Sam普通網域使用者帳密以及可在DESKTOP-FM3IESA機器中提權,在機器中有test.net\David的tgt但未取得DA權限。

  上圖可看出David有約束委派服務,且服務名稱為cifs/WIN-BC88CGGECTI.test.net。

  當取得test\David的tgt情況下便達到可使用約束委派服務條件,只要匯入tgt取得和David同等權限,那麼就可以利用David的約束委派服務。

  利用David的tgt就可以透過s4u功能,產生假冒administrator的cifs/WIN-BC88CGGECTI.test.net,並把tgt匯入機器中。

  最後就能取得administrator名義的cifs/WIN-BC88CGGECTI.test.net票證。

  更多資安訊息及防護策略,歡迎與NEITHNET資安專家聯繫:info@neithnet.com

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。