在你的內網中獲得域管理員權限的五種方法
早在2013年9月,蜘蛛實驗室( Spider Labs)就發表過一篇題為“SpiderLabs在你內網中獲取域管的五大方式”的文章。這篇文章是我繼該文的,應該說是非官方的“Part 2”部分。
1. Netbios和LLMNR Name Poisoning(中毒攻擊)
雖說如今Netbios/LLMNR并不像2013年那么盛行,但在測試中絕大多數人都能通過此類攻擊,獲取NTLMv1和NTLMv2哈希值并對對其進行破解利用。你可以借助像hate_crack這樣的高級框架,來幫助你完成對哈希值的破解任務。
我個人通常使用的都是一些通用的字典列表,例如” uniqpass“以及常用hashcat規則集“base64”。但并不是所有密碼都能被破解的,對于一些強制性的復雜密碼類型,我們往往別無選擇。
Responder可以說是與mitm中毒和欺騙攻擊相關首選工具。目前該項目仍然由Laurent Gaffie維護。
Inveigh是一款Windows PowerShell的LLMNR/NBNS協議欺騙/中間人工具。
它的核心是一個.NET數據包嗅探器,它偵聽并響應LLMNR/mDNS/NBNS請求,同時還會通過Windows SMB服務捕獲傳入的NTLMv1/NTLMv2身份驗證嘗試。
2. 中繼攻擊
較新的MultiRelay工具目前是由Laurent Gaffie維護的。
但我個人更喜歡impacket的工具,用于中繼和其他滲透測試需求。我發現Impacket的工具,在大多數unix上以及在Mac OS本地運行都非常的可靠和穩定。與其他免費的開源工具相比,這些工具在主機上執行時會留下的痕跡也相對小很多(如果你考慮這方面的問題,那么無疑這是一個最佳的選擇)。你可以安裝impacket,為你的測試做準備。
(1) SMB中繼解釋:smbrelayx.py
在SMBRelay攻擊中,攻擊者要以中間人攻擊方式來實施。攻擊者等待某人來驗證在他網絡上的目標服務器。這樣一來可以利用漏洞掃描器+管理員自動驗證主機腳本。當自動化進程連接到攻擊者,他通過他的目標(網絡上的其他系統,也許是服務器)進行身份驗證。目標會產生challenge,并將其發送給攻擊者。攻擊者發送challenge回到原始掃描系統。掃描系統擁有哈希值的加密功能正確密碼的哈希值會將其發送給攻擊者。攻擊者傳遞正確的加密的響應返回給他的目標,并成功驗證。
阻止這種攻擊的唯一方法是強制執行服務器SPN檢查禁用SMB端口。當然了,你也可以選擇禁用SMB的數據輸出端口:137,138,129和445,使用一些主機簽名和數據包簽名,或啟用一些額外的保護措施。
(2) NTLM中繼解釋:ntlmrelayx.py
用戶請求訪問。用戶嘗試通過提供用戶憑據登錄到客戶端。登錄前,客戶端計算機緩存密碼的哈希值并放棄密碼。客戶端向服務器發送一個請求,該請求包括用戶名以及純文本格式的請求。服務器發送質詢消息。服務器生成一個稱為質詢的 16 字節隨機數(即 NONCE),并將它發送到客戶端。客戶端發送應答消息。客戶端使用由用戶的密碼生成的一個密碼哈希值來加密服務器發送的質詢。它以應答的形式將這個加密的質詢發回到服務器。服務器將質詢和應答發送到域控制器。服務器將用戶名、原始質詢以及應答從客戶端計算機發送到域控制器。域控制器比較質詢和應答以對用戶進行身份驗證。域控制器獲取該用戶的密碼哈希值,然后使用該哈希值對原始質詢進行加密。接下來,域控制器將加密的質詢與客戶端計算機的應答進行比較。如果匹配,域控制器則發送該用戶已經過身份驗證的服務器確認。服務器向客戶端發送應答。假定憑據有效,服務器授予對所請求的服務或資源的客戶端訪問權。
NTLM身份驗證是一個復雜的協議,這里http://davenport.sourceforge.net/ntlm.html提供了非常詳細的說明。

SMBRelay和較新的攻擊都利用了SMB簽名,并允許特權用戶通過SMB/NTLM身份驗證機制進行身份驗證。
- 需要注意的是,在不同網絡上的Windows主機列表包含的目標很重要。我有一個很好的技巧就是以隨機方式創建非簽名主機的目標列表
- 下面的主機,使我能更快的獲取域管允許域用戶本地管理員訪問SQL服務器,該服務器與域控制器共享相同的本地管理員密碼
默認情況下,如果不指定要執行的二進制文件,ntlmrealyx將運行secretsdumps。
成功執行NTLM中繼后,你會在執行ntmrelayx的目錄中找到名為“IP_samhashes”的哈希文件。
拿到哈希后,我使用impacket的wmiexec.py腳本,利用pass-the-hash技術最終獲得了DA
在上面的場景中,我能夠將憑據從一個網絡中繼到另一個網絡,并檢索可以通過wmiexec.py傳遞的管理員散列。并且可以讓我在不破解哈希的情況下,直接獲取域管理員權限。
3. MS17-010
nmap -Pn -p445 – open – max-hostgroup 3 – smb-vuln-ms17-010 script
ETERNALBLUE,ETERNALCHAMPION,ETERNALROMANCE和ETERNALSYNERGY是2017年4月14日Shadow Brokers泄露出的四個NSA威脅漏洞。WannaCry/WannaCrypt是一個利用ETERNALBLUE漏洞進行傳播的“蠕蟲式”勒索病毒軟件,EternalRocks比比勒索病毒WannaCry更隱蔽危害也更大,WannaCry只利用了2個漏洞,而EternalRocks則利用了7個漏洞。Petya也是一個勒索病毒程序,首先它會利用Microsoft Office中的CVE-2017-0199漏洞,然后通過ETERNALBLUE進行傳播。
4. Kerberoasting
我曾多次成功在Active Directory域環境中,使用被稱之為Kerberoasting的攻擊來提升權限。Tim Medin在SANS Hackfest 2014上展示了這種技術,從那以后也出現了許多與該技術細節相關的精彩文章和會議講座。
Microsoft的Kerberos實現可能有點復雜,其主要利用了舊版Windows客戶端的傳統Active Directory支持,以及使用的加密類型和用于加密和簽署Kerberos票據的key material。實質上,當域帳戶被配置為在環境中運行服務時(例如MSSQL),服務主體名稱(SPN)在域中被使用將服務與登錄帳戶相關聯。當用戶想要使用特定資源時,他們會收到一個當前運行該服務帳戶的NTLM哈希和簽名的Kerberos票據。
下面的例子來自mubix的網站:
- root@wpad:~/impacket/examples# ./GetUserSPNs.py -dc-ip 192.168.168.10 sittingduck.info/notanadmin
- Impacket v0.9.15-dev - Copyright 2002-2016 Core Security Technologies
- Password:
- ServicePrincipalName Name MemberOf PasswordLastSet
- ---------------------------------- ---------- ------------------------------------------------ -------------------
- http/win10.sittingduck.info uberuser CN=Domain Admins,CN=Users,DC=sittingduck,DC=info 2015-11-10 23:47:21
- MSSQLSvc/WIN2K8R2.sittingduck.info sqladmin01 2016-05-13 19:13:20
5. mitm6
Mitm6是一個非常強大的工具,用于在典型的Windows廣播網絡上獲取和提升權限。當其他攻擊都失敗時,你可以嘗試smbrelay + mitm6或ntlmreayx攻擊。總之請發揮你的想象力,你將收獲意想不到的驚喜!
與ntlmrelayx的用法:
mitm6與ntlmrelayx應該說是最好的拍檔。在這種情況下,目標DNS會被欺騙,導致受害者以HTTP和SMB的連接方式連接到ntlmrelayx。為了確保ntlmrelayx在IPv4和IPv6上偵聽,我們可以使用-6參數。要獲取WPAD的憑據,我們需要在命令提示符中-wh參數后添加主機,并指定WPAD文件所在的主機(因為DNS服務器是mitm6,所以本地域中的任何不存在的主機名都可以使用)。
mitm6是一個可以利用默認Windows配置,接管默認DNS服務器的滲透測試工具。首先讓mitm6開始在攻擊者機器的主接口上偵聽,并通過DHCPv6向Windows客戶端請求IPv6配置。mitm6將會應答這些DHCPv6請求,并為受害者分配本地鏈路范圍內的IPv6地址。而在實際的IPv6網絡中,這些地址由主機本身自動分配,不需要由DHCP服務器來配置,這使得我們有機會將攻擊者IP設置為受害者的默認IPv6 DNS服務器,并將受害者流量重定向到攻擊者機器而不是合法服務器。































