![](https://habrastorage.org/getpro/habr/upload_files/695/082/63b/69508263be456036aca56aa5df9c077b.png)
Продолжаю публикацию решений отправленных на дорешивание машин с площадки HackTheBox. Надеюсь, что это поможет хоть кому-то развиваться в области ИБ.
Подключение к лаборатории осуществляется через VPN. Рекомендуется не подключаться с рабочего компьютера или с хоста, где имеются важные для вас данные, так как Вы попадаете в частную сеть с людьми, которые что-то да умеют в области ИБ :)
Организационная информация
Специально для тех, кто хочет узнавать что-то новое и развиваться в любой из сфер информационной и компьютерной безопасности, я буду писать и рассказывать о следующих категориях:
PWN;
криптография (Crypto);
cетевые технологии (Network);
реверс (Reverse Engineering);
стеганография (Stegano);
поиск и эксплуатация WEB-уязвимостей;
Вдобавок к этому я поделюсь своим опытом в компьютерной криминалистике, анализе малвари и прошивок, атаках на беспроводные сети и локальные вычислительные сети, проведении пентестов и написании эксплоитов.
Чтобы вы могли узнавать о новых статьях, программном обеспечении и другой информации, я создал канал в Telegram и группу для обсуждения любых вопросов в области ИиКБ. Также ваши личные просьбы, вопросы, предложения и рекомендации рассмотрю лично и отвечу всем (ссылка).
Recon
Данная машина имеает IP адрес 10.10.10.215, который я добавляю в /etc/hosts.
10.10.10.215 academy.htb
Первым делом сканируем открытые порты. Я это делаю с помощью следующего скрипта.
#!/bin/bash
ports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//)
nmap -p$ports -A $1
![](https://habrastorage.org/getpro/habr/upload_files/5e5/628/e33/5e5628e3332ba159e3bfbe70af33d575.png)
Имеем SSH, Apache и MySQL. Давайте переберем директории на вебе, я буду использовать gobuster.
gobuster dir -t 128 -u http://academy.htb -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt --timeout 30s
![](https://habrastorage.org/getpro/habr/upload_files/d9b/1c3/556/d9b1c355656eff61bb2312161736c9d0.png)
Находим интересную директорию админа, но нам нужно зарегистрироваться. Я все операции выполняю через Burp. И при регистрации обращаем внимание на интересный параметр.
![](https://habrastorage.org/getpro/habr/upload_files/d54/f48/936/d54f489369fe022efba1cb6d8db6efb4.png)
Изменим значение roleid на 1, и наша учетная запись станет административной. В найденной ранее директории найдем список дел, в котором одна задаче будет не выполнена.
![](https://habrastorage.org/getpro/habr/upload_files/4ab/940/627/4ab9406279f740c645dd53d7edbac980.png)
Добавим запись в /etc/hosts.
10.10.10.215 dev-staging-01.academy.htb
Перейдем по найденному адресу.
![](https://habrastorage.org/getpro/habr/upload_files/9bd/b84/d55/9bdb84d556bed99b97f885c75e972781.png)
Нас встречает Laravel, как мы видим из ошибки.
Entry Point
Поищем эксплоиты, и найдем уже реализованный для metasploit.
![](https://habrastorage.org/getpro/habr/upload_files/e65/a37/7ad/e65a377ad1849860035217fbdf7f06af.png)
![](https://habrastorage.org/getpro/habr/upload_files/a2a/784/270/a2a784270eb472649dec3be0b7e5e9c1.png)
Для его использования нам нужен APP_KEY, который мы легко находим на той же странице.
![](https://habrastorage.org/getpro/habr/upload_files/9b3/dd2/d2e/9b3dd2d2eeb018662bba8ddce261528f.png)
Давайте подключимся.
![](https://habrastorage.org/getpro/habr/upload_files/012/e13/981/012e139816417d5be79c442c756d37f6.png)
![](https://habrastorage.org/getpro/habr/upload_files/7bf/f4a/cd3/7bff4acd3a2f343d4e7e35d85547d5a5.png)
Получим нормальную оболочку.
python3 -c "import pty; pty.spawn('/bin/sh')"
/bin/bash
![](https://habrastorage.org/getpro/habr/upload_files/62c/9e0/3f8/62c9e03f83ba490b87eefe6f945742a2.png)
USER
Запустим LinPEAS для разведки на хосте. Выделяем список пользователей и файл .env.
![](https://habrastorage.org/getpro/habr/upload_files/50a/310/b8a/50a310b8a9766d9d066b1819e2823960.png)
![](https://habrastorage.org/getpro/habr/upload_files/a42/fdf/2ee/a42fdf2eebd06ef1f9c62b96bbb495e0.png)
И именно в этом файле находим пароль.
![](https://habrastorage.org/getpro/habr/upload_files/231/867/ddf/231867ddf51ebc8dadf11982eb930454.png)
Спрэйим найденный пароль по всем пользователям и получаем пару учетных данных.
cme ssh academy.htb -u users.txt -p 'mySup3rP4s5w0rd!!'
![](https://habrastorage.org/getpro/habr/upload_files/de1/a80/bc6/de1a80bc6284d418f75c2a0301b92d79.png)
И берем первого пользователя.
![](https://habrastorage.org/getpro/habr/upload_files/e9e/a6f/49b/e9ea6f49bb499153d43a0f8409e52c25.png)
USER 2
Так как мы состоим в группе adm, мы можем читать логи. Я начал с файла auth.log, но ничего интересного там не нашел. Дальше перешел к файла audit.log, пофильтровал вывод, оставив только используемые команды и передаваемые им аргументы, и тут ждал успех.
cat * | grep comm | grep -v '/usr/lib/systemd/systemd|apparmor_parser'
![](https://habrastorage.org/getpro/habr/upload_files/551/1c4/ac6/5511c4ac61612e93890f164bdd5cfc0f.png)
Аргументом команды su является пароль.
![](https://habrastorage.org/getpro/habr/upload_files/b59/dc5/79e/b59dc579e6d60c9e33c7039c2a82a571.png)
Снова спрэим и получаем второго пользователя.
cme ssh academy.htb -u users.txt -p 'mrb3n_Ac@d3my!'
![](https://habrastorage.org/getpro/habr/upload_files/4d6/c95/2ec/4d6c952ecba7abfc1cbdc89db8bc3ecb.png)
![](https://habrastorage.org/getpro/habr/upload_files/e45/c71/84a/e45c7184a584080374cae00e8c62a568.png)
ROOT
В настройках судоера видим использование composer с повышенными привилегиями.
![](https://habrastorage.org/getpro/habr/upload_files/7a5/11b/d62/7a511bd624dbe19474d4393fd97f7ebf.png)
Тут на помощью приходит техника GTFOBins. Там и находим LPE с помощью composer.
![](https://habrastorage.org/getpro/habr/upload_files/28c/c8b/63b/28cc8b63b8d7b45dca0b8c1ee3752c63.png)
![](https://habrastorage.org/getpro/habr/upload_files/a6c/db2/07f/a6cdb207f488f817c3f6f4363b7fa854.png)
У нас root!
olegtsss
Не понял, что значит «Спрэйим найденный пароль по всем пользователям» (cme ssh ...)?
RalfHacker Автор
attack.mitre.org/techniques/T1110/003