
Утилита проверки мер защиты для цепочки атак Ivanti Connect Around. Выполняет несколько проверок. CVE-2023-46805, CVE-2024-21887.
Цепочка атак Connect Around, включающая CVE-2023-46805 и CVE-2024-21887, представляет значительную угрозу для устройств Ivanti Connect Secure и Policy Secure. Эта цепочка атак позволяет получить несанкционированный доступ и выполнить команды на уязвимых системах. CVE-2023-46805 позволяет злоумышленникам обходить механизмы аутентификации, а CVE-2024-21887, уязвимость внедрения команд, может быть использована без аутентификации в сочетании с первой. Эта пара уязвимостей требует немедленного внимания со стороны организаций, использующих продукты Ivanti, и настоятельно рекомендует применить доступные меры защиты, описанные на форуме сообщества Ivanti.
В ответ на необходимость проверки статуса применения мер защиты организациями был разработан Ivanti Connect Around Vulnerability Checker. Этот скрипт предназначен для оценки устройств Ivanti Connect Secure и Policy Secure на предмет уязвимостей, связанных с цепочкой атак Connect Around. Он выполняет проверки для подтверждения наличия этих уязвимостей и выводит результаты в формате CSV. Для получения всесторонней и надежной оценки применяются несколько методологий проверки применения мер защиты.
Примечание: Этот скрипт не проверяет CVE-2024-21888 или CVE-2024-21893.
Скрипт выполняет различные проверки для оценки состояния безопасности систем Ivanti Connect Secure. Каждая проверка основана на конкретных методологиях, адаптированных из исследований сообщества специалистов по информационной безопасности.
/api/v1/configuration/users/user-roles/user-role/rest-userrole1/web/web-bookmarks/bookmark без аутентификации./api/v1/system/system-information./admin/options/.Каждая проверка предоставляет информацию о потенциальных уязвимостях. Статус "Vulnerable" указывает на подтвержденную уязвимость, а "Mitigated" или "Not Vulnerable" означает, что система выглядит защищенной от конкретной проверяемой уязвимости.
Скрипт присваивает каждой проверке определенный тип статуса, давая представление о состоянии безопасности сканируемого хоста. Вот описания каждого типа статуса:
Mitigated: Указывает, что система имеет установленные меры защиты против проверяемых уязвимостей. Этот статус возвращается, когда обнаружены ответы, типичные для защищенной и обновленной системы.
Vulnerable: Этот статус предполагает, что система уязвима к конкретным проверкам, выполняемым скриптом. Он возвращается, когда система демонстрирует известные шаблоны или ответы, указывающие на уязвимость.
HTTP Error: Возвращается, когда скрипт сталкивается со стандартными HTTP-ошибками (кроме 403 Forbidden) от целевой системы. Обычно указывает на проблему с веб-сервером или запросом.
Network Issue: Этот статус используется при возникновении проблем, связанных с сетью, таких как невозможность достичь хоста. Объединяет предыдущие статусы, такие как "Host Unreachable" и "Network Error".
Timeout Error: Указывает, что время ожидания запроса к цели истекло, что может указывать на потенциальные сетевые или конфигурационные проблемы, помешавшие скрипту завершить проверку.
Connection Error: Аналогично "Timeout Error", этот статус используется при проблемах с установлением соединения с хостом, которые могут быть вызваны сетевыми проблемами, неверными именами хостов и т.д.
Ivanti Presence Inconclusive: Ранее назывался "Attestation Needed". Этот статус возвращается, когда проверки скрипта не дают однозначных доказательств ни уязвимости, ни защиты. Рекомендуется провести дополнительное ручное исследование для определения состояния безопасности системы.
Vulnerable (Bypass Detected): Специфичен для проверки обхода уязвимости. Этот статус указывает, что система уязвима к методу обхода аутентификации, описанному в методологии скрипта.
Каждый статус дает моментальный снимок состояния безопасности системы в отношении проверяемых уязвимостей. Пользователям следует рассматривать эти статусы как первоначальные индикаторы и при необходимости проводить дополнительные ручные исследования для подтверждения фактического состояния безопасности системы.
requestsurllib3colorama для цветного выводаДля запуска скрипта используйте следующую команду:
python ivanti_scan.py -i [input_file]
Опционально, запустите с дополнительными аргументами:
python ivanti_scan.py -i [input_file] -o [output_file] -t [number_of_threads] -p [port1 port2 ...] --color
Используйте один из этих параметров для указания целей тестирования.
-i или --input: Путь к входному файлу, содержащему список целей.-u или --url: Одна URL-строка для тестирования.-o или --output: Опционально. Имя выходного CSV-файла. По умолчанию: [current_date_time]_results.csv.-t или --threads: Опционально. Количество потоков для одновременного выполнения. По умолчанию: 20.-p или --ports: Опционально. Укажите порты для проверки (например, 80 443). По умолчанию проверяются порты 80 и 443.-a или --user-agent: Опционально. Укажите строку User-Agent. По умолчанию: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.3-c или --color: Опционально. Включить цветной вывод, если установлен colorama.Приветствуются вклады! Если вы хотите внести свой вклад, вот несколько способов помочь:
main.Спасибо, что решили внести вклад в этот проект.
Этот инструмент предназначен для частных лиц и организаций, стремящихся проверить применение мер защиты от уязвимостей в своих собственных средах. Он специально предназначен для использования на устройствах Ivanti Connect Secure, где было получено явное разрешение на тестирование безопасности.
Используя этот инструмент, вы подтверждаете и соглашаетесь с этими условиями.
Этот проект лицензирован в соответствии с лицензией MIT с пунктом об этическом использовании — подробности см. в файле LICENSE.
Этот проект использует исследования и методологии, разработанные несколькими уважаемыми группами и лицами в области кибербезопасности. Мы выражаем благодарность:
WatchTowr Labs: За их содержательное исследование уязвимостей Ivanti Connect Secure. Их работа сыграла ключевую роль в разработке методологии проверки WEB ACCESS.
Стивену Фьюеру (Stephen Fewer) из Rapid7: Его работа над модулем Metasploit предоставила ценные идеи.
Rapid7 на AttackerKB: Их исследование методов обхода аутентификации существенно повлияло на этот скрипт.
Assetnote: Признание /admin/options/ надежным методом тестирования помогает в определении применения мер защиты.
Особая благодарность этим группам и лицам за их вклад в область кибербезопасности, который значительно помог в разработке этого инструмента.
Крис Фаррелл (Chris Farrell) — исследователь уязвимостей, стремящийся к повышению кибербезопасности путем тщательного анализа и комплексных решений.
Опыт включает управление уязвимостями, vCISO, старшего пентестера, руководителя реагирования на инциденты, ISSO.