在你的內(nèi)網(wǎng)中獲得域管理員權(quán)限的五種方法
早在2013年9月,蜘蛛實驗室( Spider Labs)就發(fā)表過一篇題為“SpiderLabs在你內(nèi)網(wǎng)中獲取域管的五大方式”的文章。這篇文章是我繼該文的,應(yīng)該說是非官方的“Part 2”部分。
1. Netbios和LLMNR Name Poisoning(中毒攻擊)
雖說如今Netbios/LLMNR并不像2013年那么盛行,但在測試中絕大多數(shù)人都能通過此類攻擊,獲取NTLMv1和NTLMv2哈希值并對對其進行破解利用。你可以借助像hate_crack這樣的高級框架,來幫助你完成對哈希值的破解任務(wù)。
我個人通常使用的都是一些通用的字典列表,例如” uniqpass“以及常用hashcat規(guī)則集“base64”。但并不是所有密碼都能被破解的,對于一些強制性的復(fù)雜密碼類型,我們往往別無選擇。
Responder可以說是與mitm中毒和欺騙攻擊相關(guān)首選工具。目前該項目仍然由Laurent Gaffie維護。
Inveigh是一款Windows PowerShell的LLMNR/NBNS協(xié)議欺騙/中間人工具。
它的核心是一個.NET數(shù)據(jù)包嗅探器,它偵聽并響應(yīng)LLMNR/mDNS/NBNS請求,同時還會通過Windows SMB服務(wù)捕獲傳入的NTLMv1/NTLMv2身份驗證嘗試。
2. 中繼攻擊
較新的MultiRelay工具目前是由Laurent Gaffie維護的。
但我個人更喜歡impacket的工具,用于中繼和其他滲透測試需求。我發(fā)現(xiàn)Impacket的工具,在大多數(shù)unix上以及在Mac OS本地運行都非常的可靠和穩(wěn)定。與其他免費的開源工具相比,這些工具在主機上執(zhí)行時會留下的痕跡也相對小很多(如果你考慮這方面的問題,那么無疑這是一個最佳的選擇)。你可以安裝impacket,為你的測試做準備。
(1) SMB中繼解釋:smbrelayx.py
在SMBRelay攻擊中,攻擊者要以中間人攻擊方式來實施。攻擊者等待某人來驗證在他網(wǎng)絡(luò)上的目標服務(wù)器。這樣一來可以利用漏洞掃描器+管理員自動驗證主機腳本。當自動化進程連接到攻擊者,他通過他的目標(網(wǎng)絡(luò)上的其他系統(tǒng),也許是服務(wù)器)進行身份驗證。目標會產(chǎn)生challenge,并將其發(fā)送給攻擊者。攻擊者發(fā)送challenge回到原始掃描系統(tǒng)。掃描系統(tǒng)擁有哈希值的加密功能正確密碼的哈希值會將其發(fā)送給攻擊者。攻擊者傳遞正確的加密的響應(yīng)返回給他的目標,并成功驗證。
阻止這種攻擊的唯一方法是強制執(zhí)行服務(wù)器SPN檢查禁用SMB端口。當然了,你也可以選擇禁用SMB的數(shù)據(jù)輸出端口:137,138,129和445,使用一些主機簽名和數(shù)據(jù)包簽名,或啟用一些額外的保護措施。
(2) NTLM中繼解釋:ntlmrelayx.py
用戶請求訪問。用戶嘗試通過提供用戶憑據(jù)登錄到客戶端。登錄前,客戶端計算機緩存密碼的哈希值并放棄密碼。客戶端向服務(wù)器發(fā)送一個請求,該請求包括用戶名以及純文本格式的請求。服務(wù)器發(fā)送質(zhì)詢消息。服務(wù)器生成一個稱為質(zhì)詢的 16 字節(jié)隨機數(shù)(即 NONCE),并將它發(fā)送到客戶端??蛻舳税l(fā)送應(yīng)答消息??蛻舳耸褂糜捎脩舻拿艽a生成的一個密碼哈希值來加密服務(wù)器發(fā)送的質(zhì)詢。它以應(yīng)答的形式將這個加密的質(zhì)詢發(fā)回到服務(wù)器。服務(wù)器將質(zhì)詢和應(yīng)答發(fā)送到域控制器。服務(wù)器將用戶名、原始質(zhì)詢以及應(yīng)答從客戶端計算機發(fā)送到域控制器。域控制器比較質(zhì)詢和應(yīng)答以對用戶進行身份驗證。域控制器獲取該用戶的密碼哈希值,然后使用該哈希值對原始質(zhì)詢進行加密。接下來,域控制器將加密的質(zhì)詢與客戶端計算機的應(yīng)答進行比較。如果匹配,域控制器則發(fā)送該用戶已經(jīng)過身份驗證的服務(wù)器確認。服務(wù)器向客戶端發(fā)送應(yīng)答。假定憑據(jù)有效,服務(wù)器授予對所請求的服務(wù)或資源的客戶端訪問權(quán)。
NTLM身份驗證是一個復(fù)雜的協(xié)議,這里http://davenport.sourceforge.net/ntlm.html提供了非常詳細的說明。
SMBRelay和較新的攻擊都利用了SMB簽名,并允許特權(quán)用戶通過SMB/NTLM身份驗證機制進行身份驗證。
- 需要注意的是,在不同網(wǎng)絡(luò)上的Windows主機列表包含的目標很重要。我有一個很好的技巧就是以隨機方式創(chuàng)建非簽名主機的目標列表
- 下面的主機,使我能更快的獲取域管允許域用戶本地管理員訪問SQL服務(wù)器,該服務(wù)器與域控制器共享相同的本地管理員密碼
默認情況下,如果不指定要執(zhí)行的二進制文件,ntlmrealyx將運行secretsdumps。
成功執(zhí)行NTLM中繼后,你會在執(zhí)行ntmrelayx的目錄中找到名為“IP_samhashes”的哈希文件。
拿到哈希后,我使用impacket的wmiexec.py腳本,利用pass-the-hash技術(shù)最終獲得了DA
在上面的場景中,我能夠?qū){據(jù)從一個網(wǎng)絡(luò)中繼到另一個網(wǎng)絡(luò),并檢索可以通過wmiexec.py傳遞的管理員散列。并且可以讓我在不破解哈希的情況下,直接獲取域管理員權(quán)限。
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比比勒索病毒W(wǎng)annaCry更隱蔽危害也更大,WannaCry只利用了2個漏洞,而EternalRocks則利用了7個漏洞。Petya也是一個勒索病毒程序,首先它會利用Microsoft Office中的CVE-2017-0199漏洞,然后通過ETERNALBLUE進行傳播。
4. Kerberoasting
我曾多次成功在Active Directory域環(huán)境中,使用被稱之為Kerberoasting的攻擊來提升權(quán)限。Tim Medin在SANS Hackfest 2014上展示了這種技術(shù),從那以后也出現(xiàn)了許多與該技術(shù)細節(jié)相關(guān)的精彩文章和會議講座。
Microsoft的Kerberos實現(xiàn)可能有點復(fù)雜,其主要利用了舊版Windows客戶端的傳統(tǒng)Active Directory支持,以及使用的加密類型和用于加密和簽署Kerberos票據(jù)的key material。實質(zhì)上,當域帳戶被配置為在環(huán)境中運行服務(wù)時(例如MSSQL),服務(wù)主體名稱(SPN)在域中被使用將服務(wù)與登錄帳戶相關(guān)聯(lián)。當用戶想要使用特定資源時,他們會收到一個當前運行該服務(wù)帳戶的NTLM哈希和簽名的Kerberos票據(jù)。
下面的例子來自mubix的網(wǎng)站:
- 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廣播網(wǎng)絡(luò)上獲取和提升權(quán)限。當其他攻擊都失敗時,你可以嘗試smbrelay + mitm6或ntlmreayx攻擊??傊埌l(fā)揮你的想象力,你將收獲意想不到的驚喜!
與ntlmrelayx的用法:
mitm6與ntlmrelayx應(yīng)該說是最好的拍檔。在這種情況下,目標DNS會被欺騙,導(dǎo)致受害者以HTTP和SMB的連接方式連接到ntlmrelayx。為了確保ntlmrelayx在IPv4和IPv6上偵聽,我們可以使用-6參數(shù)。要獲取WPAD的憑據(jù),我們需要在命令提示符中-wh參數(shù)后添加主機,并指定WPAD文件所在的主機(因為DNS服務(wù)器是mitm6,所以本地域中的任何不存在的主機名都可以使用)。
mitm6是一個可以利用默認Windows配置,接管默認DNS服務(wù)器的滲透測試工具。首先讓mitm6開始在攻擊者機器的主接口上偵聽,并通過DHCPv6向Windows客戶端請求IPv6配置。mitm6將會應(yīng)答這些DHCPv6請求,并為受害者分配本地鏈路范圍內(nèi)的IPv6地址。而在實際的IPv6網(wǎng)絡(luò)中,這些地址由主機本身自動分配,不需要由DHCP服務(wù)器來配置,這使得我們有機會將攻擊者IP設(shè)置為受害者的默認IPv6 DNS服務(wù)器,并將受害者流量重定向到攻擊者機器而不是合法服務(wù)器。