📌 Привіт, ентузіасти кібербезпеки
Я продовжую писати звіти по TryHackMe. Ці звіти не тільки розкривають рішення, але й є джерелом натхнення для тих, хто тільки починає свій шлях у кібербезпеці. Кожен крок — це віху в безкінечному шляху пізнання.
• 🗂️ Назва кімнати: tomghost (CTF)
• 📜 Опис: Ідентифікація останніх вразливостей для спроби експлутатувати систему або читати файли, до яких ви не повинні мати доступ.
• 🔗 URL кімнати: https://tryhackme.com/r/room/tomghost
• ⚡ Рівень складності: Легкий
• 🏹 Включено в шляхи: -
• 🔍 Конкретні інструменти, згадані в кімнаті: -
• 🛠️ Типи інструментів, що використовуються в кімнаті: Інструменти для сканування мереж, інструменти для тестування на проникнення, інструменти для зламу паролів, інструменти для кодування/декодування і хешування, техніки та інструменти для підвищення привілеїв.
• 🛠️ Інструменти, що використовуються в кімнаті: nmap, searchsploit, Metasploit, john, gpg, GTFOBins
• 🎯 Цільова система: Linux, Web
• 🏳️ Відповідна команда: 🔴 Червона
Завдання 1
1.1 Як скомпрометувати цю машину та отримати user.txt?
Ми не маємо інформації про цільову систему. Тому давайте виконаємо сканування портів за допомогою nmap та почнемо досліджувати цільову систему:
nmap -sV 10.10.80.56
Перше, що привертає увагу в результатах сканування, це "tcpwrapped". Tcpwrapped означає, що TCP-з'єднання було встановлено з цільовою системою, але з'єднання було негайно закрите без обміну даними. Це вказує на наявність файрволу, IPS/IDS або іншого рівня заходів безпеки. Це означає, що нам слід врахувати це при наступних діях. Тепер давайте виконаємо те саме сканування портів за допомогою Stealth Scan, щоб забезпечити конфіденційність. Нагадуємо: це сканування вимагає прав root.
sudo nmap -sS -sV 10.10.80.56
Згідно з цим, видно, що на цілі є SSH-сервіс, DNS-сервіс і два Apache-сервіси. Початкові спостереження:
- Порт 22 (SSH): працює OpenSSH версії 7.2p2. Це застаріла версія і може містити вразливості.
- Порт 53: працює DNS-сервіс.
- Порт 8009 (AJP13): активний Apache JServ Protocol. Це важливо, оскільки критичні вразливості, такі як "Ghostcat" (CVE-2020–1938), можуть бути експлойтовані через протокол AJP в Apache Tomcat. Цей порт зазвичай закритий, і його відкритість становить ризик безпеки.
- Порт 8080: працює Apache Tomcat 9.0.30 веб-сервер, також застаріла версія.
Давайте перевіримо вразливості OpenSSH за допомогою Searchsploit:
searchsploit openssh
Ось, ми знайшли три вразливості для OpenSSH:
- Одна виконується, коли авторизований користувач входить.
- Одна пов'язана з енумерацією імен користувачів.
- Одна спричиняє DoS.
Але жодна з них не виглядає особливо корисною для нашої мети.
Тепер саме час зайти в Metasploit і дослідити порти 8009 та 8080.
msfconsole -q
msf6 > search ghostcat
msf6 > use 0
msf6 > options
msf6 > set rhosts 10.10.80.56
msf6 > exploit
Чудово! Наш експлойт успішно спрацював. Використовуючи облікові дані skyfuck:8730281lkjlkjdqlksalks, ми можемо встановити SSH-з'єднання:
ssh [email protected]
Давайте перевіримо, що є на цілі:
Перший файл — це файл облікових даних, зашифрований за допомогою PGP, а другий — це файл приватного ключа.
Ми ще не знайшли користувацький флаг, але це важливі частини інформації. Це тому, що ми можемо ймовірно дешифрувати їх за допомогою John the Ripper. Давайте спробуємо.
Щоб дешифрувати файл credential.pgp, спочатку перетворимо gpg приватний ключ у формат, сумісний з John, а потім передамо підготовлений хеш-файл John для зламування.
Давайте завантажимо ці файли з цільової системи на нашу локальну систему для зручнішої роботи:
scp [email protected]:/home/skyfuck/credential.pgp .
scp [email protected]:/home/skyfuck/tryhackme.asc .
Тепер почнемо обробку файлів на нашій локальній системі:
gpg2john tryhackme.asc > hash.txt
john hash.txt --wordlist=/usr/share/wordlists/rockyou.txt
Чудово, ми отримали все, що потрібно. Тепер давайте повернемося на цільову систему і продовжимо процес дешифрування:
gpg --import tryhackme.asc
gpg --decrypt credential.pgp
Після виконання вищезгаданих команд введемо парольну фразу, яку ми знайшли раніше, alexandru, щоб продовжити дешифрування.
Ми знайшли ще одні облікові дані. Тепер давайте використаємо наступну команду для входу як користувач, який володіє новими обліковими даними:
su merlin
Все здається йти гладко. Виконуючи команду id, ми бачимо, що увійшли як звичайний користувач. Оскільки в директорії першого звичайного користувача не було флагу, користувацький флаг має бути тут. Давайте перевіримо домашню директорію користувача і подивимося, які файли є.
Чудово! Ми успішно знайшли користувацький флаг.
Відповідь: THM{GhostCat1sso_cr4sy}
Завдання 2
2.1 Підвищіть привілеї та отримайте root.txt?
Тепер давайте перевіримо, чи є прості методи ескалації привілеїв, які ми можемо використати. Почнемо з перевірки команд, які дозволено виконувати з привілеями sudo:
sudo -l
Чудово! Це буде дуже корисно. Це моя улюблена тактика, оскільки вона найпростіша та найпряміша для ескалації привілеїв. Давайте перейдемо на сторінку gtfobins і подивимося, як ми можемо це експлуатувати.
Все пішло гладко. Насправді це було набагато легше, ніж я очікував! Тепер давайте знайдемо root флаг:
Ми знайшли правильну відповідь: THM{Z1P1SFAKE}!
Крім того, ви зробили чудове спостереження. Спочатку ми помітили мітку tcpwrapped через деякий захід безпеки. Тепер ми виявили, що це пов'язано з ufw (Uncomplicated Firewall) в кореневій директорії. Гарне спостереження!
Відповідь: THM{Z1P1SFAKE}
Ви абсолютно праві! Деякі CTF позначаються як "легкі", але в кінцевому підсумку вони затягують вас у процес, як матрьошка, але цей не був таким. Він справді надав усі необхідні умови для успішного порушення. Ми побачили на власні очі, до чого може призвести Ghostcat і наскільки це небезпечно. Це був хороший досвід навчання!
Я не лише намагався пояснити, що працює, але й виділив, що не працює, надаючи детальну інформацію для допомоги новачкам, щоб вони отримали краще розуміння.
Сподіваюся, що ця стаття була достатньо інформативною!
З найкращими побажаннями!
Якщо вам сподобалася ця стаття і ви хочете побачити більше подібного контенту, не забудьте:
• 👏 Похвалити, щоб показати свою підтримку,
• 📰 Слідувати за мною, щоб отримувати нові статті про безпеку штучного інтелекту та етичний хакінг, та
• 💬 Не соромтеся поділитися своїми думками або запитати про будь-які проблеми, з якими ви зіткнулися, у коментарях — я буду радий почути ваші ідеї!
Дякую, що ви стали частиною цієї подорожі, і побачимося в наступній статті! 🌟
Перекладено з: TryHackMe tomghost CTF WriteUp