Архив метки: Drupal

Коллеги из команды Vulners выпустили плагин nmap-vulners 2.0

Коллеги из команды Vulners выпустили плагин nmap-vulners 2.0

Коллеги из команды Vulners выпустили плагин nmap-vulners 2.0. Этот плагин (NSE-скрипт) превращает популярный сканер портов Nmap в сканер уязвимостей, работающий в режиме чёрного ящика. Достаточно запустить $ nmap -sV --script vulners <target> и получить приоритизированный отчёт по уязвимостям и эксплоитам. И всё это бесплатно и без ограничений. 🆓😉

Как именно работает этот плагин?

Для поиска уязвимостей сначала определяется ПО:

🔹 Может использоваться CPE-идентификатор сервиса, определяемый самим Nmap (ключ -sV).

🔹 Если Nmap не смог определить сервис, плагин пробует определить CPE-идентификатор по сырому баннеру с помощью правил (для FTP, SMTP, SSH, MySQL, DNS, NTP, LDAP и других сервисов). С версии 2.0 Fingerprint-каталог еженедельно обновляется на основе Recog, Wappalyzer, WhatWeb, FingerprintHub и nuclei-templates. Актуальный каталог подтягивается автоматически при запуске плагина.

🔹 Если был определён HTTP-сервис, nmap-vulners пробует продетектировать веб-стек: фреймворк, CMS или версию PHP за reverse proxy. Плагин анализирует заголовки Server и X-Powered-By, cookies, заголовок страницы, meta-теги, имена файлов в script src и содержимое страницы. Всего реализовано более 700 правил. Во второй версии число HTTP path-фингерпринтов выросло с 125 до 939, при этом за счёт параллелизации время работы осталось таким же, около 6 секунд на порт.

🔹 Если продукт распознан, но версия неизвестна, выполняется один запрос к характерному файлу с информацией о версии, например /CHANGELOG.txt для Drupal или /administrator/manifests/files/joomla.xml для Joomla. Поддерживаются Concrete5, Drupal, Jira, Joomla, Apache Tomcat и WordPress.

🔹 Наконец, если сервис не удаётся никак идентифицировать, может использоваться Smart audit: сырой баннер отправляется на сервер Vulners, где определяется ПО и его версия, после чего ищутся связанные уязвимости. Это единственная платная опция! Каждый уникальный запрос стоит 1 кредит, результаты кэшируются. Число запросов ограничено параметром vulners.max_items - по умолчанию 32. Полностью отключить Smart audit можно через --script-args vulners.max_items=0.

Далее данные о найденных сервисах передаются на сервер Vulners, который возвращает приоритизированный отчёт. Для каждого найденного объекта - уязвимости или эксплойта - в отчёте указываются его идентификатор, уровень критичности SEVERITY, оценки CVSS и EPSS, AI-score Vulners, флаги KEV и EXP, а также ссылка на страницу объекта на сайте Vulners.

Так всё-таки, нужен ли API-ключ?

🔹 В принципе плагин может работать вообще без указания API-ключа. Но тогда детект будет идти через старый endpoint и не все данные по уязвимостям/эксплоитам будут возвращаться.

🔹 Если добавить API-ключ без кредитов, в отчёте появится флажок "EXP" для уязвимостей, а также флажок "KEV" для уязвимостей и эксплоитов. Появится колонка с EPSS-скором. Таким образом приоритизация станет более полноценной: KEV → CISA SSVC Exploitation Active → exploits → EPSS → CVSS. Поэтому ключ рекомендуется прописать. 😉

🔹 Если у API-ключа есть кредиты, то сможет работать опция Smart audit (см. выше).

Установка

Для установки плагина достаточно запустить однострочный скрипт. Инсталлер находит Nmap и каталог его NSE-скриптов, устанавливает актуальную версию vulners.nse и удаляет старые файлы версии 1.x. Затем запускается nmap --script-updatedb и проверяется корректность установки. Опции --user и --prefix позволяют указать каталог установки, а --uninstall удаляет плагин. При необходимости инсталлер запрашивает API-ключ Vulners, проверяет его и сохраняет в ~/.nmap/vulners.key с правами 600.