В этой статье я расскажу о том, как я нашел свою первую RCE. Эксплуатируя уязвимость CVE-2023-46604 в Apache ActiveMQ. Здесь я буду больше концентрироваться на том, как я обнаружил эту проблему, а не на том, что нового я могу рассказать опытным охотникам за ошибками.
Данная статья предназначена для обучения этичных хакеров занимающихся багбаунти. Редакция spy-soft.net и автор не несут ответственности за ваши действия.
Мой первый RCE (удаленное выполнение кода)
В процессе разведки я следил за обновлением списка поддоменов каждую неделю и сканировал открытые порты каждые три дня (хотя лучше делать это каждый день). Для перечисления поддоменов я использовал такие инструменты, как Subfinder и Amass.
RCE — это сокращение от «Remote Code Execution», что переводится как «удаленное выполнение кода». Это тип уязвимости безопасности, при которой злоумышленник может выполнить произвольный код на удалeнной машине, получив контроль над системой.
Использование Subfinder
1 |
subfinder -dL domains.txt -o subdomains.txt |
Перечисление поддоменов из поддоменов:
1 |
subfinder -dL subdomains.txt -o more-subdomains.txt |
Использование Amass
1 |
amass enum -passive -norecursive -noalts -df domains.txt -o subs.txt |
Поддомены поддоменов:
1 |
amass enum -passive -norecursive -noalts -df subs.txt -o more-subs.txt |
Затем объединил содержимое четырех файлов, сортируя его, удаляя дубликаты и сохраняет результат в файл targets.txt:
1 |
cat more-subdomains.txt subdomains.txt subs.txt more-subs.txt | sort -u > targets.txt |
После этого я запустил сканирование портов. В некоторых случаях я находил множество поддоменов (иногда 5 тысяч), Для проверки поддоменов я создал простой скрипт с использованием DNSx и разделил их на группы по 15. Затем я запустил Naabu с nohup, чтобы он работал в фоновом режиме.
Скрипт, который я использовал:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#!/bin/bash if [ $# -eq 0 ]; then echo "Usage: $0 " exit 1 fi cat $1 | dnsx -o $1_ok.txt split -l 15 $1_ok.txt 15_file_ for file in 15_file_*; do nohup naabu -list "$file" -p - -o "${file}.out"& done |
Этот скрипт выполняет следующие действия:
- Проверяет, передан ли аргумент (имя файла).
- Обрабатывает файл с помощью dnsx, сохраняет результат в ok.txt.
- Разбивает ok.txt на части по 15 строк.
- Запускает сканер Naabu для каждого из созданных файлов, сохраняя результаты в файлы с расширением .out.
Много раз я проверял этот список вручную. Из него я отфильтровывал хосты, которые могли быть Honeypot, и иногда Naabu давал недостоверные результаты.
После этого я вручную проверял хосты с открытыми портами между 3 и 10. Когда я замечал странный открытый порт, я использовал Nmap, чтобы узнать, какие службы запущены на нем.
В данном случае был хост с именем bamboo.target.com, и я заметил, что у него был открыт порт 54663.
Когда я использовал Nmap с флагом -sSCV, то обнаружил, что на нем запущен Apache ActiveMQ, в котором присутствует уязвимость CVE-2023-46604.
Затем я просто применил эксплойт, и он успешно отработал.
Отчет и получение вознаграждения
Я сообщил об этом в подробном отчете. Предоставление всей необходимой информации для специалистов по обнаружению и команды безопасности часто приводит к тому, что вы получаете хороший бонус за приложенные усилия.
Вот и все.
ПОЛЕЗНЫЕ ССЫЛКИ: