#1 Mr-Robot: 1 CTF Walkthrough. Часть 1.
На vulnhab-е нашел интересную виртуальную машину, которая называется «Mr-Robot:1». Как Вы уже догадались из названия, она основана по мотивам одноименного сериала «Мистер Робот», по первому сезону.
Автор машины так и пишет об этом: «Based on show Mr. Robot».
Суть заключается в том, что нужно найти три флага, получив доступ к машине с привилегиями.
Файл машины лежит с раcширением «.ova», что предполагает установку на виртуальную машину. Я буду использовать VirtualBox.
Скачать можно по этой ссылке: https://www.vulnhub.com/entry/mr-robot-1,151/
Весит не много, всего 704MB, и есть проверка контрольной суммы MD5 и SHA1.
Скачаем эту машину и сверим контрольные суммы:
Как видим, все хорошо. Можно устанавливать ее на VirtualBox.
Это делается в два клика по файлу «.ova»:
Запускаем машину и видим начальное окно для ввода логина и пароля. Разумеется, логин и пароль я не знаю, и это является одной из задач, но нужно шагать по-порядку.
Для начала узнаем ip-адрес этой машины. Для удобства работы я переключу настройки сети данной машины на «Сеть NAT»:
Так я могу зацепиться за локальный ip-адрес внутри своей сети.
Машина для исследования у меня будет Kali Linux. Проверю свой ip, с помощью команды «ifconfig»:
Он выглядит как: 10.0.2.5. Воспользуемся инструментом Nmap, с опциями «-A» и «-Pn» и диапазон сканируемых адресов укажу как «10.0.2.*». Опция «-A» нужна для вывода информации по версии и операционной системе. Опция «-Pn» означает сканирование всех хостов в сети. Диапазон указал довольно узкий, чтобы быстро просканировать сеть, где последний октет выделил знаком звездочка, что значит сканировать все значения:
В итоге нашелся ip-адрес с открытыми портами: 80 и 443 сервера Apache:
Операционная система: Linux 3.10, и исходя из параметров, при установке я заметил, что базируется на Ubuntu, а также присутствует движок Wordpress. Разработчик видимо заведомо оставил эту информацию для внимательных.
Если есть открытый порт 80, значит можно открыть в браузере. Идем в мозиллу и открываем ip: 10.0.2.6:
Получаем анимированный интерфейс, с 6-ю командами. Откроем исходный код страницы, чтобы осмотреться:
Ничего необычного, разве что параметр «USER_IP» указан, но это было бы слишком просто. Все равно перейдем по этому адресу:
Никакой информации к сожалению.
На сайте при беглом осмотре можно найти 6 страниц:
В них нет ничего интересного, и они являются отсылками к сериалу.
Предлагаю просканировать сайт с помощью утилиты «uniscan». Просмотрим его опции:
Типичным сканированием будет являться опция «-u», в дополнении с опциями «-qweds» (их я выделил для наглядности):
Самое интересное то, что он нашел файлы на этом веб-сайте:
Я их прочекал и нашел интересную зацепку в файле «robots.txt». Перейдем по этому адресу:
Исходя из этой информации для роботов, с сервера можно скачать и просмотреть два файла: «fsocity.dic» и «key-1-of-3.txt».
Я создам новую директорию «mr_robot» на Рабочем столе и скачаю два файла:
Первый скачанный файл с именем «key-1-of-3.txt» представляет собой первый ключ:
Второй файл с именем «fsocity.dic», представляет собой словарь паролей:
И это не случайно, и является подсказкой того, что нужно что-то взламывать. Просто так его попросту не было бы.
Как я говорил ранее, в начале установки я заметил название в параметрах машины «wordpress».
Посмотрим результаты сканирования «uniscan», и там я нашел кое-что интересное, а именно директории:
Прочекав их все, я пришел к выводу, что практически все страницы делают редирект на одну страницу, с адресом: http://10.0.2.6/wp-login.php
Это страница авторизации сайта на движке Wordpress:
При вводе имени «admin», появляется предупреждение о том, что это неправильное имя:
Задача заключается в том, чтобы подобрать имя, которое будет актуально для этой страницы авторизации. Я уже молчу за пароль, так как у нас есть шанс подобрать его перебором, о чем говорит готовый словарь.
Так как в строке url при вводе имени и пароля, не отображаются данные, значит они отправляются методом POST.
Запустим BurpSuite и сконнектим его с браузером:
Введем произвольные значения имени и пароля, например «test» и «123».
Переходим в BurpSuite, и нас интересуют параметры, которые передаются методом POST:
Они нужны для того, чтобы мы воспользовались инструментом для брутфорса, который называется «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:
Прописываем в терминале эту команду и запускаем:
И инструмент успешно определил имя пользователя:
Отлично. Выключаем BurpSuite, он нам пока не нужен. Слово «elliot» сработало:
Для взлома пароля мы вновь будем использовать инструмент «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^»:
Убил много времени, но с помощью «Hydra» не получилось взломать пароль. :((
Нужно более подробнее рассматривать опции, но я не буду ограничиваться только этим инструментом, так как существует сканер уязвимостей Wordpress, который называется «WPScan». Для взлома пароля нужна команда: «wpscan —url 10.0.2.6 —wp-content-dir /wp-login.php —passwords /root/Desktop/mr_robot/fsocity.dic -U elliot»:
Все параметры интуитивно понятны, и их можно просмотреть в справке «wpscan —hh».
На взлом пароля ушло 36 минут и 58 секунд.
Вот, собственно, сам отчет:
Пароль успешно подошел, и я вошел в админку:
На этом первая часть закончена. Хорошего дня.