Kerberos域用戶名枚舉
隨著近年來Windows系統持續更新以及良好的維護,即使從內部測試的角度來看,從Windows環境中枚舉有效的操作系統級的用戶名變得越來越不可能,也不會再有RID循環從未經認證的角度向我們提供了完整的域用戶列表的情況發生。
但是呢,正所謂車到山前必有路,就內部評估而言,Kerberos服務(88 / tcp)仍然為我們提供了一個與枚舉域帳戶名稱相關的快樂狩獵場所。
本質上,用戶名枚舉通過以下Kerberos錯誤代碼來加以利用:
有一些已經開發出來有一段時間但仍然十分好用工具,它使我們能夠利用這些Kerberos響應來識別有效或無效的域帳戶。
到目前為止,我所使用的兩種工具都由Patrik Karlsson提供,第一種是獨立Java工具Krbguess,第二種是nmap的krb5-enum-users NSE腳本。
Krbguess
用法:
Java –jar kerbguess.jar –r [domain] –d [user list] –s [DC IP]
Nmap krb5-enum-users NSE Script
用法:
Nmap –p 88 –script-args krb5-enum-users.realm=』[domain]』,userdb=[user list] [DC IP]
Metasploit Module: auxiliary/gather/kerberos_enumusers
像大多數滲透測試人員一樣,我是Metasploit框架的重度用戶。多年來我一直希望能在框架內利用此功能。但是不知出於何種原因,它似乎從未實現過,所以我打算嘗試一下實現這個功能。
在很大程度上依賴其他Metasploit貢獻者提供的Kerberos支持,並使用ms14_068_kerberos_checksum的輔助模塊作為模板,該過程的實現,實際上比我預期的要簡單得多。
新的Metasploit輔助模塊可以在以下位置找到:
auxiliary/gather/kerberos_enumusers
與前面討論的Kerberos枚舉工具一樣,需要提供3個值:
域名(DOMAIN)
域控制器IP(RHOST)
用戶列表(USER_FILE)
現在可以運行該模塊以通過Kerberos服務枚舉有效(和禁用/鎖定)的域帳戶:
最後,由於在rapid7中增加了bwatter-r7,任何有效的枚舉用戶名都存儲在Metasploit資料庫中,並且可以通過creds命令檢索:
參考文獻:
http://www.cqure.net/wp/tools/password-recovery/krbguess/
https://nmap.org/nsedoc/scripts/krb5-enum-users.html
https://www.rapid7.com/db/modules/auxiliary/admin/kerberos/ms14_068_kerberos_checksum
TAG:SecPulse安全脈搏 |