
Автоматизированный рабочий процесс на основе шаблонов Nuclei и Shodan для обнаружения и эксплуатации уязвимости раскрытия конфигурации маршрутизаторов Cisco (CVE-2019-1653) в целях аудита безопасности.
Cisco Router Configuration Exposure Vulnerability Описание уязвимости
Этот репозиторий описывает процесс эксплуатации уязвимости в некоторых маршрутизаторах Cisco, которая позволяет получить доступ к файлу конфигурации config.exp через общедоступный URL. Этот файл может содержать конфиденциальную информацию, включая учетные данные (USERNAME и PASSWD), сетевые настройки и другие критически важные данные системы. Если он доступен без аутентификации, это может скомпрометировать безопасность устройства и сети, в которой оно развернуто.
Связанные CVE
Данная уязвимость может быть связана с CVE-2003-1567 и CVE-2019-1653, обе из которых касаются несанкционированного доступа к файлам конфигурации на устройствах Cisco, хотя важно проверить, применимы ли эти CVE к конкретному устройству и версии прошивки. Пошаговое руководство по эксплуатации
Эта процедура использует Shodan для поиска уязвимых устройств, а затем Nuclei для сканирования и подтверждения доступа к критическим конфигурациям на маршрутизаторах Cisco. Предварительные требования
Учетная запись Shodan: Убедитесь, что у вас есть учетная запись в Shodan и ваш API Key настроен для доступа из командной строки.
Nuclei: Установлен в вашей среде вместе с пользовательским шаблоном Nuclei, описанным ниже.
Инструменты: shodan-cli, awk и httpx для преобразования IP-адресов в полные URL.
Шаг 1: Поиск уязвимых устройств в Shodan
Первым шагом является поиск уязвимых устройств в Shodan с помощью расширенного запроса. Следующий запрос в Shodan ищет устройства, которые могут быть маршрутизаторами Cisco:
shodan download apache_results.json.gz "http.favicon.hash:-299287097 Apache"
Эта команда:
Выполняет поиск в Shodan для идентификации устройств, имеющих favicon Apache с определенным хэшем, который идентифицирует серверы, возможно связанные с Apache. Это полезно в контексте аудита серверов.
Шаг 2: Загрузка результатов и форматирование URL
После получения файла apache_results.json.gz необходимо извлечь IP-адреса и порты каждого устройства и отформатировать их в полные URL, включая протокол (http или https) и порт.
Команда для обработки данных из файла .json
Используйте следующую команду для извлечения IP-адресов и портов и форматирования их в полные URL в файле с именем urls.txt:
shodan parse --fields ip_str,port,ssl.version apache_results.json.gz |
awk '{if ($2 == 443 || $3 ~ /https/) print "https://"$1":"$2; else print "http://"$1":"$2}' > urls.txt
shodan parse: Извлекает IP-адреса и порты каждого результата из файла `apache_results.json.gz`.
awk: Форматирует вывод в полные URL, используя https, если порт 443 или обнаружен SSL, и http в остальных случаях.
Файл urls.txt теперь содержит полные и отформатированные URL.
Шаг 3: Создание пользовательского шаблона Nuclei
Чтобы проверить, доступен ли файл config.exp на этих устройствах, мы будем использовать пользовательский шаблон Nuclei. Этот шаблон попытается получить доступ к файлу и извлечь конфиденциальные данные, такие как USERNAME и PASSWD, если они присутствуют.
Шаблон Nuclei (cisco-router-config-exposure.yaml)
id: cisco-router-config-exposure info: name: Cisco Router Configuration Exposure author: elzer severity: high description: | Обнаруживает доступ к файлу config.exp на маршрутизаторах Cisco, содержащему учетные данные и критические настройки.
tags:
requests:
method: GET path:
matchers-condition: or matchers:
Этот шаблон:
Отправляет GET-запрос к файлу `/cgi-bin/config.exp`.
Проверяет, содержит ли ответ ключевые слова или определенные шаблоны (Cisco, config, version) для подтверждения доступа.
Пытается извлечь значения USERNAME и PASSWD, если они присутствуют в файле.
Сохраните этот шаблон как cisco-router-config-exposure.yaml в папке шаблонов Nuclei.
Шаг 4: Запуск Nuclei для обнаружения уязвимых устройств
Когда шаблон и файл urls.txt готовы, выполните следующую команду Nuclei для сканирования URL:
nuclei -t path/to/cisco-router-config-exposure.yaml -l urls.txt -o resultados_nuclei.txt -debug -vv
`-t path/to/cisco-router-config-exposure.yaml`: Указывает созданный нами пользовательский шаблон.
`-l urls.txt`: Использует файл `urls.txt` с отформатированными URL.
`-o resultados_nuclei.txt`: Сохраняет результаты в файл `resultados_nuclei.txt`.
`-debug -vv`: Запускает Nuclei в подробном режиме для просмотра хода выполнения и деталей отладки.
Результат
После выполнения Nuclei файл resultados_nuclei.txt будет содержать список уязвимых устройств, которые предоставляют доступ к файлу конфигурации config.exp. Сюда входят любые устройства, возвращающие учетные данные или конфиденциальные настройки, что подтверждает наличие уязвимости.
Заключение
Этот процесс позволяет вам найти и подтвердить доступ к критическим файлам конфигурации на устройствах Cisco с использованием Shodan и Nuclei. Автоматизация этого процесса особенно полезна для аудиторов безопасности и специалистов по кибербезопасности, заинтересованных в выявлении и устранении небезопасных конфигураций в корпоративных сетях.