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

Мы нашли всего два открытых порта: 22 — служба OpenSSH 7.9p1 и 80 — веб‑сервер Apache. Вот только когда мы попытаемся обратиться к сайту, нас перебросят на другой домен.

Меняем запись в файле /
и обновляем страницу.
10.10.11.140 meta.htb artcorp.htb

На сайте отметим для себя только имена пользователей, иногда это может пригодиться. К сожалению, никаких точек входа найти не удалось, поэтому перейдем к сканированию сайта.
Сканирование поддоменов
Так как сайт имеет свой собственный домен, стоит проверить, существуют ли у него поддомены. Для этого используем сканер ffuf.
Справка: сканирование веба c ffuf
Одно из первых действий при тестировании безопасности веб‑приложения — это сканирование методом перебора каталогов, чтобы найти скрытую информацию и недоступные обычным посетителям функции. Для этого можно использовать программы вроде dirsearch и DIRB.
Я предпочитаю легкий и очень быстрый ffuf. При запуске указываем следующие параметры:
-
-w
— словарь (я использую словари из набора SecLists); -
-t
— количество потоков; -
-u
— URL; -
-fc
— исключить из результата ответы с кодом 403.
Выполняем следующую команду:
ffuf -u http://artcorp.htb/ -t 256 -H 'Host: FUZZ.artcorp.htb' -w subdomains-top1million-110000.txt

В выводе получаем почти все слова из списка, так как код ответа всегда 301. Поэтому стоит задать дополнительную фильтрацию, к примеру из всего списка кодов убрать переадресацию (опция -mc
).
ffuf -u http://artcorp.htb/ -t 256 -H 'Host: FUZZ.artcorp.htb' -w subdomains-top1million-110000.txt -mc 200,204,401,403,405,500

В итоге получим новый поддомен, а значит, обновим запись /
.
10.10.11.140 meta.htb artcorp.htb dev01.artcorp.htb
Точка входа
Переходим по найденному адресу и получаем простенькую страничку со ссылкой на приложение, которое находится в разработке.

В приложении есть форма загрузки изображений. А это явно точка входа.

Способы загрузить какую‑то нагрузку сразу исчерпали себя, а вот возможности самого приложения заставили задуматься. Если отправить картинку, нам вернут ее метаданные.

Вывод веб‑приложения очень похож на вывод утилиты exiftool
. Попробуем поискать эксплоиты для него.
Точка опоры
Для поиска эксплоитов я обычно использую Google. С его помощью я нашел эксплоит для CVE-2021-22204. В ExifTool версий с 7.44 до 12.24 можно выполнить произвольный код при разборе изображения из‑за некорректной обработки пользовательских данных в формате DjVu. Для работы эксплоита необходимо установить следующие программные пакеты.
sudo apt install djvulibre-bin exiftool
В строках 6 и 7 указываем адрес своего хоста и порт, который будет прослушиваться листенером (открываем командой rlwrap
).

В строке 24 вызывается сам ExifTool и ему передается файл с настройками. Пример конфига мне удалось найти в другой реализации эксплоита (параметр Name
должен быть как в строке 24 эксплоита).
%Image::ExifTool::UserDefined = ( 'Image::ExifTool::Exif::Main' => { 0xc51b => { Name => 'HasselbladExif', Writable => 'string', WriteGroup => 'IFD0', }, },);1;
Теперь запустим скрипт для генерации вредоносного файла. Если все пройдет удачно, мы должны получить следующее сообщение.

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