Capture the Flag, CTF, TryHackMe

CTF (Capture the Flag) — Simple CTF. TryHackMe.

Здравствуйте, дорогие друзья.

simple ctf tryhackme

Сегодня будем решать CTF челлендж, который называется Simple CTF:

simple ctf

Задания для новичков, поэтому будет не очень сложное прохождение, но навыки необходимо нарабатывать.

Итак, начнем решать задачи.

1-й вопрос звучит как: «Сколько сервисов работает под портом 1000?».

Для решения данного задания, нам необходимо воспользоваться инструментом «nmap». Его, как правило, используют для сканирования ip. Команда для сканирования будет выглядеть как: «sudo nmap –sS –sV –A –p- <ip-адрес>»:

sudo nmap –sS –sV –A –p- <ip-адрес>

Для тех, кто не знает параметры, которые я ввел в терминал, воспользуйтесь подсказками в мануале по «nmap». Для этого нужно ввести команду: «nmap —help»:

nmap --help

Итак, после некоторого времени сканирование должно завершиться:

Итак, после некоторого времени сканирование должно завершиться

Смотрим открытые порты до 1000 порта, чтобы посчитать их количество. Это и есть решение задачи. Я насчитал 2 порта: 21 и 80 порты соответственно.

Сдаем ответ:

сдаем ответ

Переходим к следующему вопросу, который звучит как: «Что работает на более высоком порте?». Тоже простой вопрос. Это порт 2222, и служба «ssh».

Ответ: ssh Пробуем сдать ответ:

ssh

Итак, 3-й вопрос: «Какую CVE вы используете против приложения?» Для ответа на данный вопрос, предлагаю просканировать ip-адрес машины, с помощью gobuster на предмет скрытых директорий, так как перейдя по ip нашей цели, мы ничего не получим. Просто будет вывод дефолтной страницы Apache2:

apache2

Я работаю на Kali из браузера, поэтому данный инструмент не предустановлен в системе.

Для решения этой проблемы, сначала обновим репозитории «apt update», а затем уже установим gobuster «apt install gobuster»:

apt update
gobuster «apt install gobuster»

Отлично. Теперь осталось запустить установленный инструмент для сканирования айпи-адреса. Команда: «sudo gobuster dir –u http://10.10.234.106/ -w /root/Desktop/wordlists/directory-list-2.3-medium.txt»:

sudo gobuster dir –u http://10.10.234.106/ -w /root/Desktop/wordlists/directory-list-2.3-medium.txt

Находим скрытую директорию «/simple». Приложение, размещенное за http://10.10.234.106/simple/, является CMS (CMS Made Simple версии 2.2.8):

CMS (CMS Made Simple версии 2.2.8)

Исходя из вопроса, нам необходимо найти уязвимости для приложения.

Это легко гуглится. Существует несколько уязвимостей, но наиболее актуальной является CVE-2019-9053 (https://www.cvedetails.com/cve/CVE-2019-9053/), поэтому ответ будет: «CVE-2019-9053».

Сдаем ответ:

сдаем ответ

Переходим к 4-му вопросу: «К какой уязвимости уязвимо приложение?».

Задача на внимательность. Ответ можно найти в описании уязвимости. В этой CVE говорится о SQL-инъекции, которая обычно называется «sqli». Пробуем сдать ответ:

sqli

5-й вопрос: «Какой пароль?». Для этой версии CMS есть эксплойт на python, который можно найти по ссылке: https://www.exploit-db.com/exploits/46635, либо в поиске по ключевикам: «cms made simple exploit»:

cms made simple exploit

Скачиваем его к себе на машину.

Для взлома пароля нам необходимо скачать словарь из интернета, который называется: «best110.txt»:

best110.txt

Сохраню на рабочий стол:

Сохраню на рабочий стол

Теперь запустим эксплойт и словарь для взлома. Команда будет выглядеть как: «python3 46635.py –u http://10.10.234.106/simple/ —crack –w best110.txt». Замечу, что эксплойт пришлось редактировать, потому что он запускался с ошибками. В основном – это добавление скобок в функции print.

python3 46635.py –u http://10.10.234.106/simple/ --crack –w best110.txt

И вновь ошибка на последнем шаге. Она исправляется добавлением кода в оператор if, изменения кодировки на utf-8:

И вновь ошибка на последнем шаге. Она исправляется добавлением кода в оператор if, изменения кодировки на utf-8

Запускаем эксплойт еще раз:

Запускаем эксплойт еще раз

Все отлично. Получили нужные данные.

Сдаем ответ. Пароль: «secret»:

secret

6-й вопрос звучит как: «Где вы можете войти в систему с полученными данными?»:

Мы можем использовать эти учетные данные для входа в систему по ssh (работает на порту 2222). Ответ: «ssh»

ssh

7-й вопрос: «Какой флаг юзера?»

Ответ можно найти, перейдя в ssh:

«ssh –p 2222 mitch@10.10.234.106»:

ssh –p 2222 mitch@10.10.234.106
ssh –p 2222 mitch@10.10.234.106

Сдаем флаг:

Сдаем флаг

8-й вопрос: «Есть ли в домашнем каталоге другие пользователи? Что это за имя?».

Вопрос простой. Для этого воспользуемся командой: «ls –l /home»:

ls –l /home

Ответ: «sunbath».

Ответ: «sunbath».

9-й вопрос: «Что вы можете использовать для создания привилегированной оболочки?».

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

Сайт: https://gtfobins.github.io/

Для решения подойдет «vim». https://gtfobins.github.io/gtfobins/vim/ Шелл прописывается вот так: «vim -c ‘:!/bin/bash’»:

vim -c ':!/bin/bash'

Можем сдать ответ на 9-й вопрос. Это «vim»:

Можем сдать ответ на 9-й вопрос. Это «vim»

И, наконец, последний вопрос: «Какой флаг рута?» Это делается в несколько команд:

И, наконец, последний вопрос: «Какой флаг рута?» Это делается в несколько команд

Сдаем флаг:

Сдаем флаг

На этом все. Всем хорошего дня!