Capture the Flag, CTF, Silky-CTF

Решение CTF. Silky-CTF_0x01.

Здравствуйте, дорогие друзья. Сегодня будем решать CTF от Silky. Это виртуальная машина, которую можно найти на VulnHub-e. Ссылка для скачивания: https://www.vulnhub.com/entry/silky-ctf-0x01,306/#

Далее нужно сверить контрольную сумму файла. Я воспользовался распространенной утилитой HashTab для сверки. Скачать можно здесь: https://hashtab.ru/ Подойдет для windows и mac os. В линуксе можно сверить в терминале.

Сверка прошла успешно:

HashTab

Далее можно спокойно устанавливать виртуальную машину в Virtualbox или VMware. У меня стоит последняя вышеописанная среда виртуализации.

В данной виртуальной машине присутствует немецкий язык, и, видимо, разработчик немец. Но это не является препятствием для нас.

Для начала установим машину в среду виртуализации. Это двойной щелчок мыши, и установка начнется автоматически.

Окно приветствия выглядит вот так:

silky start window

Разумеется, пароля мы не знаем.

Наша задача будет заключаться в том, чтобы взломать сервер, и повысить права до рут-пользователя.

Для начала нам нужно узнать ip-адрес машины, которая находится в нашей локальной сети. Это делается с помощью утилиты «netdiscover», и после некоторого времени мы получаем результат работы программы:

netdiscover

Выделенный айпи-адрес – это нужный нам ip.

Далее нам нужно просканировать данный айпи, с помощью инструмента «nmap»:

нам нужно просканировать данный айпи, с помощью инструмента «nmap»

Видим два открытых порта – это 22 ssh, и 80 http.

Откроем в браузере на Kali Linux айпи-адрес, и мы видим, что сервер работает:

apache2

Сразу просмотрим файл «robots.txt»:

Сразу просмотрим файл «robots.txt»

Видим подсказку, а именно, нужно перейти к файлу «/notes.txt»:

Видим подсказку, а именно, нужно перейти к файлу «/notes.txt»

Снова подсказка, но на немецком языке. Идем в «google translate», и переводим:

Снова подсказка, но на немецком языке. Идем в «google translate», и переводим

Снова подсказка по подбору пароля. Принимаем это к сведению, и продолжаем исследовать страницу сервера:

Снова подсказка по подбору пароля. Принимаем это к сведению, и продолжаем исследовать страницу сервера

Щелкаем на файл скрипта в заголовке страницы:

Щелкаем на файл скрипта в заголовке страницы

Видим комментарий. Я догадываюсь, что это часть пароля, и мне нужно узнать или подобрать оставшиеся два символа. Для этого воспользуемся инструментом «crunch», и команда будет выглядеть как: «crunch 7 7 –t s1lKy^% >> pass.txt»:

crunch 7 7 –t s1lKy^% >> pass.txt

Проверим содержимое созданного файла с помощью команды «cat»:

Проверим содержимое созданного файла с помощью команды «cat»

Далее нам нужно взломать учетную запись, с помощью инструмента «Hydra». Логин нам известен, осталось только подобрать пароль. Команда для взлома будет выглядеть как: «hydra –l silky –P pass.txt 192.168.119.138 ssh»:

hydra –l silky –P pass.txt 192.168.119.138 ssh

Отлично, пароль мы узнали.

Теперь нам нужно подключиться по ssh к серверу. Это команда: «ssh silky@192.168.119.138»:

ssh silky@192.168.119.138

Проверим пользователя с помощью id:

Проверим пользователя с помощью id

Это не рут-пользователь, а обычный юзер.

Далее воспользуемся командой «find», для поиска директорий. Команда будет выглядеть как: «find / -perm –u=s –type f 2>/dev/null»:

find / -perm –u=s –type f 2>/dev/null

Кому непонятна данная команда, читайте мануал, который выводится в консоли как: «find —help».

После беглого осмотра выведенных директорий, нас будет интересовать директория «/usr/bin/sky»:

/usr/bin/sky

Попробуем вывести строки данной директории, с помощью команды «strings»:

Попробуем вывести строки данной директории, с помощью команды «strings»

Перейдем в директорию «/tmp/», и создадим файл «whoami» с правами 777, после чего воспользуемся командой «id»:

Перейдем в директорию «/tmp/», и создадим файл «whoami» с правами 777, после чего воспользуемся командой «id»

Перейдем в директорию «root», и видим текстовый файл с искомым флагом:

Перейдем в директорию «root», и видим текстовый файл с искомым флагом

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