Найти тему

Mr-Robot: 1 CTF Walkthrough. Часть 1.

На vulnhab-е нашел интересную виртуальную машину, которая называется «Mr-Robot:1». Как Вы уже догадались из названия, она основана по мотивам одноименного сериала «Мистер Робот», по первому сезону.

Автор машины так и пишет об этом: «Based on show Mr. Robot».

Суть заключается в том, что нужно найти три флага, получив доступ к машине с привилегиями.

Файл машины лежит с раширением «.ova», что предполагает установку на виртуальную машину. Я буду использовать VirtualBox.

Скачать можно по этой ссылке: https://www.vulnhub.com/entry/mr-robot-1,151/

Весит не много, всего 704MB, и есть проверка контрольной суммы MD5 и SHA1.

Скачаем эту машину и сверим контрольные суммы:

-2

Как видим, все хорошо. Можно устанавливать ее на VirtualBox.

Это делается в два клика по файлу «.ova»:

-3

Запускаем машину и видим начальное окно для ввода логина и пароля. Разумеется, логин и пароль я не знаю, и это является одной из задач, но нужно шагать по-порядку.

Для начала узнаем ip-адрес этой машины. Для удобства работы я переключу настройки сети данной машины на «Сеть NAT»:

-4

Так я могу зацепиться за локальный ip-адрес внутри своей сети. Машина для исследования у меня будет Kali Linux. Проверю свой ip, с помощью команды «ifconfig»:

-5

Он выглядит как: 10.0.2.5. Воспользуемся инструментом Nmap, с опциями «-A» и «-Pn» и диапазон сканируемых адресов укажу как «10.0.2.*». Опция «-A» нужна для вывода информации по версии и операционной системе. Опция «-Pn» означает сканирование всех хостов в сети. Диапазон указал довольно узкий, чтобы быстро просканировать сеть, где последний октет выделил знаком звездочка, что значит сканировать все значения:

-6

В итоге нашелся ip-адрес с открытыми портами: 80 и 443 сервера Apache:

-7

Операционная система: Linux 3.10, и исходя из параметров, при установке я заметил, что базируется на Ubuntu, а также присутсвует движок Wordpress. Разработчик видимо заведомо оставил эту информацию для внимательных.

Если есть открытый порт 80, значит можно открыть в браузере. Идем в мозиллу и открываем ip: 10.0.2.6:

-8

Получаем анимированный интерфейс, с 6-ю командами. Откроем исходный код страницы, чтобы осмотреться:

-9

Ничего необычного, разве что параметр «USER_IP» указан, но это было бы слишком просто. Все равно перейдем по этому адресу:

-10

Никакой информации к сожалению.

На сайте при беглом осмотре можно найти 6 страниц:

http://10.0.2.6/prepare

http://10.0.2.6/fsociety

http://10.0.2.6/inform

http://10.0.2.6/question

http://10.0.2.6/wakeup

http://10.0.2.6/join

В них нет ничего интересного, и они являются отсылками к сериалу.

Предлагаю просканировать сайт с помощью утилиты «uniscan».

Просмотрим его опции:

-11

Типичным сканированием будет являтся опция «-u», в дополнении с опциями «-qweds» (их я выделил для наглядности):

-12

Самое интересное то, что он нашел файлы на этом веб-сайте:

-13

Я их прочекал и нашел интересную зацепку в файле «robots.txt». Перейдем по этому адресу:

-14

Исходя из этой информации для роботов, с сервера можно скачать и просмотреть два файла: «fsocity.dic» и «key-1-of-3.txt».

Я создам новую директорию «mr_robot» на Рабочем столе и скачаю два файла:

-15

Первый скачанный файл с именем «key-1-of-3.txt» представляет собой первый ключ:

-16

Второй файл с именем «fsocity.dic», представляет собой словарь паролей:

-17

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

Как я говорил ранее, в начале установки я заметил название в параметрах машины «wordpress».

Посмотрим результаты сканирования «uniscan», и там я нашел кое-что интересное, а именно директории:

-18

Прочекав их все, я пришел к выводу, что практически все страницы делают редирект на одну страницу, с адресом: http://10.0.2.6/wp-login.php

Это страница авторизации сайта на движке Wordpress:

-19

При вводе имени «admin», появляется предупреждение о том, что это неправильное имя:

-20

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

Так как в строке url при вводе имени и пароля, не отображаются данные, значит они отправляются методом POST.

Запустим BurpSuite и сконнектим его с браузером:

-21
-22

Введем произвольные значения имени и пароля, например «test» и «123».

Переходим в BurpSuite, и нас интересуют параметры, которые передаются методом POST:

-23

Они нужны для того, чтобы мы воспользовались инструментом для брутфорса, который называется «Hydra».

Команда будет выглядеть следующим образом:

hydra -V -L fsocity.dic -p 123 10.0.2.6 http-post-form '/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log+In:F=Invalid username'

Подробное описание этого инструмента можете найти в справке «hydra -h».

Опция «-p» - это произвольный пароль. Далее идет ip-адрес веб-сайта. Указывается страница авторизации: wp-login.php.

Параметры, которые идут в записи, мы взяли из BurpSuite, но вместо имени и пароля прописали ^USER^ и ^PASS^, а также wp-submit. Смотрите более внимательнее в Burpsuite:

-24

Прописываем в терминале эту команду и запускаем:

-25

И инструмент успешно определил имя пользователя:

-26

Отлично. Выключаем BurpSuite, он нам пока не нужен.

Слово «elliot» сработало:

-27

Для взлома пароля мы вновь будем использовать инструмент «Hydra», но перебор затянется на достаточно долгий промежуток времени, так как словарь насчитывает более 800 000 слов.

Команда будет выглядеть как: «hydra -V -l elliot -P fsocity.dic 10.0.2.6 http-post-form '/wp-login.php:log=^elliot^&pwd=^PASS^&wp-submit=Log+In:F=Invalid username'». Как видите изменилось три параметра : опция «-l со значением elliot», опция «-P» - перебор всех паролей и параметр «log=^elliot^»:

-28

Убил много времени, но с помощью «Hydra» не получилось взломать пароль. :((

Нужно более подробнее рассматривать опции, но я не буду ограничиваться только этим инструментом, так как существует сканер уязвимостей Wordpress, который называется «WPScan».

Для взлома пароля нужна команда: «wpscan --url 10.0.2.6 --wp-content-dir /wp-login.php --passwords /root/Desktop/mr_robot/fsocity.dic -U elliot»:

-29

Все параметры интуитивно понятны, и их можно просмотреть в справке «wpscan —hh».

На взлом пароля ушло 36 минут и 58 секунд.

Вот, собственно, сам отчет:

-30

Пароль успешно подошел, и я вошел в админку:

-31

На этом первая часть закончена. Хорошего дня.