Pickle Rick
Основная задача - обход фильтров ограничивающих ввод определенных команд в консоли.
Описание задания можно найти на TryHackme
Сканирование
Проведение разведки с nmap на предмет наличия открытых портов:
sudo nmap -T4 -p- IP-ADDRESS
#После получения сведений о портах
sudo nmap -sV -sC -O -p 22,80 IP-ADDRESS
Обнаружены открытые порты 22 и 80.
Получены версии, наименование ПО работающего на открытых портах
Изучаем главную страницу web приложения, находим в комментариях username
Проводим разведку с gobuster или feroxbuster для получения информации о имеющихся директориях и файлов php
,txt
,js
,cgi
,html
,htm
,sh
:
feroxbuster -u IP-ADDRESS -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -t 64 -x php,txt,js,cgi,html,htm,sh``
gobuster dir -t 64-u IP-ADDRESS -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -x php,txt,js,cgi,html,htm,sh``
Находим
robots.txt
с нествойственным содержимым - которое является паролем для ранее найденной учетки.
Находимlogin.php
.
Изучение приложения
Логинимся используя найденные логин/пароль.
Исследуем portal.php
- в одной из вкладок находим возможность запускать команды, однако понимаем, что часть из них блокируется (cat
, head
, more
, tail
, nano
, vim
, vi
).
С помощью sudo -l
понимаем, что через sudo
можем запускать все.
Находим первый ключ в текущей директории.
В директории /root
находим очередной ингредиент.
В директри /home/rick
находим последний ингредиент.
Прочие заметки:
- Через
find / -name "*.txt" 2> /dev/null
теоретически можно найти остальные флаги. - Можно было поднять reverse shell для более удобной работы с машиной.
- Используя
nikto
можно было-бы найтиlogin.php
без использования перебора каталогов - Через
grep -R .
можно получить содержимое всех файлов в текущей директории. Их удобно просматривать через просмотр кода страницы.