記一次大型且細小的域滲透實戰
記一次大型域滲透實戰
1.本文總計3274字,圖片總計38張,但由於實戰環境下打碼比較多,影響了看官體驗,需要看官仔細看圖以及文章內容,推薦閱讀時間20-30分鐘
2.本文系Gcow安全團隊絕影小組原創文章,未經許可禁止轉載
3.若看官在閱讀本文中遇到說得不清楚以及出現錯誤的部分 請及時與公眾號的私信聯絡 謝謝各位師傅的指導
0x01 前提與準備:
A.前言
我是後面接手這個域環境,而前面的dalao已經到域控的部分了,我因為寫文章的原因,所以需要從原地出發,學習一下dalao是如何打到域控的
B.宣告:
1. 本文順序可能有點雜亂,需要耐心閱讀,並且打碼的地方有打得不好請見諒 -.-(得細心看)
2. 本次滲透因為是實戰的原由,沒有使用DACL委派方法進行攻擊(因為新增/修改計算機賬戶[Machine Account]或使用者[Domain Users]我實屬不敢弄,感覺動靜大),不過本文也會在相應位置寫出對應的攻擊方法
3. 實戰過程所植入的Beacon掉了幾次,所以圖中有些地方的程式號(PID/PPID)可能會有對不上的地方,請大家原諒
4.本文涉及敏感資訊的部分統一使用別名,例如:child.xiaoli,IP Address部分直接忽略打碼的格子即可
5.打碼的原因全部基於實戰,沒有在本地復現,所以請各位見諒
C.已知資訊:
1. 已經透過外層的植入上線了 CobaltStrike
2. 目標環境存在防毒,但是對我們的操作並沒任何影響
3. 存在多域信任資訊,當前屬於子域(Child Domain)
4. 環境並非英語,一些時間需要進行翻譯
D.環境與工具的準備:
1. A Kali machine
2. CobaltStrike
3. Bloodhound 4.0(11月更新了Bloodhound,一直沒機會測試,現在機會來了)
4. PowerSploit(停更了挺可惜得,雖然有SeatBelt,但是不太會用)
0x02 開始:
1. 資訊收集:
(1)目前我在r**a這臺主機(接下來r**a=ra),而ra主機上有ra使用者,並且已經提權到了system,其中ip為192.168.1.95(忽略下面的主域)
當前使用者為ra,其完全使用者名稱=m\ra
(2) 當前機子所在域的FQDN(完全域名),我們接下來在文中統稱為 m.child.xiaoli
(3)檢視域控制器
可能不是英文的原因,CobaltStrike的net domain_controller沒用了
因此我們直接net group /domain檢視域控即可,域控為po.m.child.xiaoli
(4)列舉Enterprise Admins
這裡我們要做筆記,在子域環境裡面,域管理員有兩種,一種是Domain Admins,另外一種是Enterprise Admins,我們net group /domain 看不到任何有關Enterprise Admins的資訊,但是不慌,我們上powersploit神器
注意:由於不同語言,該域的Enterprise Admins組名 = A****s組,文中直接稱作AS組(這個組名是我翻譯後得知的)
首先我們使用net group常規查詢失敗
匯入powersploit,使用模組Get-DomainForeignUsers(列舉域內所有使用者,並且返回同時擁有其他域組的使用者),我們得知m.child.xiaoli的域使用者PO同時處於child.xiaoli的AS組(Enterprise Admins)(這裡打碼不太行,耐心點看:)
(5)因為是個極大域,我們同時直接上神器BloodHound幫我們分析
Execute SharpHound Collector:
Download BloodHound File:
(6)檢視域信任(Domain Trusts)資訊,可以看到是多域結構(這個圖就將就點看吧,還是能看懂的)
為了方便理解,我使用BloodHound的Domain Trusts圖方便大家理解
1. 其中child.xiaoli為根域(Root Domain),m.child.xiaoli為子域(Child Domain)
2. 因為本機當前在m.child.xiaoli,所以顯示Native
3. 接著o/c/t/e/T.m.child.xiaoli為m.child.xiaoli的子域
4. o/c/t/e/T.m.child.xiaoli之間沒有信任關係
5. NxiaoliE.child.xiaoli為child.xiaoli的第二個子域,和m.child.xiaoli之間沒有信任關係
2.開始進攻
(注意,下文的PGO使用者/計算機並非是PO使用者/計算機)
目前已知資訊有:
當前使用者:m.child.xiaoli\ra
我們處在子域:m.child.xiaoli
子域域控:po.m.child.xiaoli
主域:child.xiaoli
主域域控(根域):未知(還沒收集,不著急)
Enterprise Admins組名:AS
已知Enterprise Admins使用者:m.child.xiaoli\PO(不要和下文的PGO使用者混淆)
Domain Admins:交給Bloodhound分析,不著急
(1)目標分析
我們的目標已經很明確了,目標為域控:【po.m.child.xiaoli】,因此,我們直接在BloodHound分析一波最短路徑到域控,首先起始點為使用者ra,接著終點為域控【po.m.child.xiaoli】
BloodHound結果分析:從上圖我們能看到,最短路徑的分析,首先使用者ra(我們當前的使用者)是一個名為SN組的成員,而這個組又是計算機PGO的管理員,接著主機PGO上面有一個名為PGO使用者的session(程式),接著這個使用者是域控的管理員=PGO Domain Admins,但不是Enterprise Admins,因為剛剛的列舉沒看到使用者PGO
(2)橫向移動
首先我們使用名為【LM】的SMB Beacon橫向到主機PGO.m.child.xiaoli,因為ra使用者同時是PGO主機的管理員,所有同時獲取到system32許可權的beacon
橫向過去之後,我們使用名為【Priv_Esc】的TCP Beacon注入一個pgo使用者程式,這裡選擇了PID為1632的explorer程式
因為pgo使用者是域控的管理員,此時我們能利用pgo使用者去訪問域控po.m.child.xiaoli了
用pgo使用者橫向到域控po.m.child.xiaoli,並且可以獲得管理員許可權的beacon
Cobalt Strike 橫向圖
(3)域信任攻擊
此時已經到子域域控了,並且擁有該機子的system32許可權,你可以選擇往上去到根域,還是往下探索m.child.xiaoli的子域
A. 想往上去到根域的,請接著閱讀(3-1和3-2)
B. 若你是想往下探索該子域的子域的,請跳到(3-3)
(3-1)From DA to EA:攻擊到根域child.xiaoli(不講武德)
我們在子域域控收集根域的域控資訊,這裡使用powersploit的模組Get-ADDomainController,此時我們看到根域域控為:cl.child.xiaoli,並且ip為192.168.1.241(圖中的Hostname+IPv4Address)
筆記:
Enterprise Controller:cl.child.xiaoli
Enterprise Controller IP Address:192.168.1.241
我們同時看看pgo除了是Domain Admins組的使用者,還是什麼組的使用者
可以看到,pgo使用者還是Administrators組的使用者,根據微軟官方所述的話,個人理解該組使用者許可權比Domain Admins許可權還高,並且擁有兩條主要DCSync Attack所需要的Privilege:GetChangesALL和GetChanges,我們可以制定一些比較【不講武德】的攻擊方案
第一種:我們可以直接獲取在域控注入一個po使用者程式,使用該使用者程式去訪問根域child.xiaoli(小提醒:上文提到PO為Enterprise Admins組使用者)
第二種:如果沒有po使用者程式,我們可以在m.child.xiaoli進行dcsync攻擊,然後使用make_token呼叫m.child.xiaoli\po使用者的Credentials(憑據),接著去訪問根域child.xiaoli
第三種:我們使用Administrators組的許可權去欺負域,太DD了,因此我們可以不使用Administrators組帶來的許可權,而使用WriteDacl自己給自己賦予DCSync許可權
第四種:域控自己本身就有GetChangesALL和GetChanges許可權,我們可以提權到system,使用機器賬戶去進行DCSync攻擊
第五種:使用SID-History攻擊(講武德)
流程圖:
(3-1-1)第一種攻擊:略(極度不講武德)
(3-1-2)第二種攻擊:如下圖所示,直接dcsync(同樣不講武德)
(3-1-3)第三種攻擊(有點不講武德),相對於第二種多了一步,我們看看Bloodhound分析
實際上相當於PGO在域內擁有WriteDacl許可權,那我們兩句命令就能實現dcsync
##新增DCSync許可權,並且使用mimikatz匯出全部hash Add-DomainObjectAcl -TargetIdentity child.xiaoli -Rights DCSync lsadump::dcsync /domain:child.xiaoli /all /csv ##刪除許可權,防止管理員發現 Remove-DomainObjectAcl -TargetIdentity child.xiaoli -Rights DCSync
(3-1-4)這個也沒什麼好講的,域控本身就有那倆許可權(極度不講武德)
(3-1-5)使用SID-History攻擊到根域child.xiaoli(講武德)
實現這個攻擊,需要五個條件(實際上就是比普通的黃金票據多了一個sids條件)而金票需要四個,我們需要獲取根域child.xiaoli的Enterprise Admins組的ObjectID(SID+RID)
這裡我們使用Conver-NameToSid獲取child.xiaoli\krbtgt使用者的ObjectID
獲取到krbtgt的Object ID後,我們要修改其RID,502修改為519,SID為519的ObjectID=Enterprise Admins組的Object ID
這裡偽造的使用者就有點講究了,使用者名稱不能隨便取,我用上面收集到的使用者PO登入失敗了,即使m.child.xiaoli\PO是處於Enterprise Admins組
為此,我又一次請教了Bloodhound,看到Enterprise Admins組裡有個child.xiaoli\Administrator使用者,因此我們偽造的使用者名稱填寫administrator(Administrator是我翻譯之後的結果,未翻譯前並非叫Administrator)
mimikatz kerberos::golden /user:administrator /domain:m.child.xiaoli /sid:【m.child.xiaoli的sid】 /krbtgt:xxxxxxxxxxxxxxxx /sids:【Enterprise Admins組的Object ID】 /startoffset:0 /endin:600 /renewmax:10080 /ptt
(圖片我直接馬賽克了關鍵部分,但是能看到Extra SIDs最後的RID為519就沒錯了)
這邊我在m.child.xiaoli的域控上隨便注入了個普通使用者程式上測試,並且目標為nl.child.xiaoli,是根域的一臺機子
注入票據前:(即使打碼也掩蓋不住報錯的氣質)
注入票據後:
這時有個疑問了,為什麼我們的登入域還是M.child.xiaoli,卻說成Enterprise Admins?別急,我們remote-exec看看我們的這個使用者的組
不難看到,M\Administrator確實處於Child\AS組,也就是child.xiaoli的Enterprise Admins組(後面的RID為證據)
(PS:我個人實操過,對根域域控確實具有完全控制權)
(3-2)Form DA to child DA:Child to child(從子域到子域的子域)
為了方便理解,我把子域的子域稱為SUB-Child
很多時候,SUB-Child的東西也挺多的,從上文Domain Trusts分析,我們看到m.child.xiaoli還有子域o/c/t/e/T.m.child.xiaoli,在接下來的實驗中,我們使用o.m.child.xiaoli作為我們的目標,我們從m.child.xiaoli向下移動,因此我們大約有三種攻擊方案
第一種:從子域m.child.xiaoli到根域child.xiaoli後,然後從根域child.xiaoli使用Enterprise Admins組的使用者到o.m.child.xiaoli(不講武德) 第二種:使用SID-History Attack,從子域m.child.xiaoli到子域o.m.child.xiaoli
(3-2-1)攻擊過程略(極度不講武德,使用Enterprise Admins)
圖解:
(3-2-2)使用SID-History攻擊
圖解:
這個是我心血來潮測試的,可能有不對的地方,如有不對的地方,麻煩大佬在私信提出,十分感謝
我們可以在m.child.xiaoli裡面使用BloodHound收集資訊,或者手動收集
自動:BloodHound Automatic Collected:(-d 指定收集域,zipfilename修改Output檔名)
手動:使用Powersploit手動收集o.m.child.xiaoli的域控制器,可以看到該域的域控計算機名叫LO,FQDN=lo.o.m.child.xiaoli,其中我們還收集到了域的SID,不過被我打碼了
(這個語言的Domain Admins=Axxxo組,我們簡稱為AO組)
使用powersploit收集該子域的域管理員,可以看到是Administrator
現在我們對子域的資訊有
域控制器:lo.o.m.child.xiaoli 該域管理員:Administrator 域控sid:SXXXXXXXXXXXXXXXXXXX 該域的Domain Admins組的ObjectID(SID+RID):SID+512=SXXXXXXXXXXXXXXXXXXX-512(RID為512為Domain Admins組)
接著我們使用SID-History攻擊
mimikatz kerberos::golden /user:Administrator /domain:m.child.xiaoli /sid:(m.child.xiaoli域的sid) /krbtgt:KRBTGT_HASH /sids:(域lo.o.m.child.xiaoli的Domain Admins ObjectID) /startoffset:0 /endin:600 /renewmax:10080 /ptt
接著就可以訪問子域域控lo.o.m.child.xiaoli了
我們看看使用者組,確實處於o.m.child.xiaoli\Domain Admins,即使使用者登入域是m.child.xiaoli
3.二次進攻
主要是觀察DCAL和ACE,但是我寫的時候已經太累了,就不想寫,而且我怕修改了密碼之類的操作被發現,雖然密碼改了可以用mimikatz改回去,但是本文就這樣吧(不敢作死搞大動靜)
0x02 結尾
總結一下本文涉及的知識點:
Cobalt Strike 使用
橫向移動
資訊收集:Bloodhound
資訊收集:PowerSploit
資訊收集:Cobalt Strike
DCSync 攻擊
DCSync:WriteDacl
域信任攻擊:DA to EA
域信任攻擊:DA to another DA
同時這個域控不止這麼少玩法,但是是實戰的原因,我不敢搞太多,結尾給大家上一張BloodHound的圖看看
到主域(child.xiaoli)Domain Admins的路徑:
到域m.child.xiaoli的Domain Admins路徑:
相關文章
- 記一次實戰滲透2021-05-18
- 記一次由sql注入到拿下域控的滲透測試實戰演練(下)2021-02-07SQL
- 2、超詳細的域滲透過程2018-06-11
- TPLINK滲透實戰2020-08-19
- 域滲透之ATT&CK實戰系列——紅隊實戰(一)2024-06-22
- 內網滲透-初探域滲透2024-10-28內網
- 7、域滲透——Pass The Hash的實現2018-06-11
- 記一次難忘的滲透測試2018-09-04
- 記一次某edu單位的滲透2024-03-08
- 記一次授權滲透測試2022-12-23
- 記一次有點抽象的滲透經歷2024-05-17抽象
- 域滲透——Skeleton Key2020-08-19
- 域滲透——Hook PasswordChangeNotify2020-08-19Hook
- 域滲透——Pass The Ticket2020-08-19
- 域滲透之利用WMI來橫向滲透2024-06-24
- 滲透測試入門實戰2018-11-28
- 記一次奇妙的某個edu滲透測試2024-04-16
- 9、Metasploit域滲透測試全程實錄2018-06-11
- 3、域滲透詳解2018-06-10
- 域內滲透基本技巧2020-08-19
- 域滲透——Security Support Provider2020-08-19IDE
- 域滲透的金之鑰匙2020-08-19
- 記一次本地Windows-2008滲透測試2020-12-19Windows
- 域滲透——Local Administrator Password Solution2020-08-19
- 域滲透——Pass The Hash & Pass The Key2020-08-19
- 域滲透之ldap協議2020-11-21LDA協議
- 技術分享 | 域滲透AdminSDHolder2021-03-11
- 【原創】記一次對X呼APP的滲透測試2022-05-06APP
- 滲透測試工具實戰技巧合集2018-06-10
- VulnHub滲透實戰Billu_b0x2018-06-06
- metasploit滲透測試筆記(內網滲透篇)2020-08-19筆記內網
- 記一次log4j2引發的滲透測試2022-01-05
- 安全技術 | 域滲透之SPN2020-10-19
- 《冰河的滲透實戰筆記》電子書,442頁,37萬字,正式釋出!!2021-05-18筆記
- vulnhub devguru滲透筆記2022-04-15dev筆記
- 10、一篇經典的域滲透文章2018-06-11
- 11、域滲透測試中使用到的命令+工具2018-06-11
- Kali Linux滲透測試實戰 第一章2020-08-19Linux