
Расширенное сканирование уязвимостей с помощью Nmap NSE
Vulscan — это модуль, который расширяет nmap до сканера уязвимостей. Опция nmap -sV включает определение версий для каждого сервиса, которая используется для поиска потенциальных уязвимостей в соответствии с идентифицированным продуктом. Данные запрашиваются в офлайн-версии VulDB.
Пожалуйста, установите файлы в следующую папку вашей установки Nmap:
Nmap\scripts\vulscan\*
Клонируйте репозиторий GitHub следующим образом:
git clone https://github.com/scipag/vulscan scipag_vulscan
ln -s `pwd`/scipag_vulscan /usr/share/nmap/scripts/vulscan
Выполните следующую минимальную команду для запуска простого сканирования уязвимостей:
nmap -sV --script=vulscan/vulscan.nse www.example.com
На данный момент доступны следующие предустановленные базы данных:
Вы можете выполнить vulscan со следующим аргументом, чтобы использовать одну базу данных:
--script-args vulscandb=your_own_database
Также можно создать и использовать собственные базы данных. Для этого необходимо создать файл базы данных следующей структуры:
<id>;<title>
Просто выполните vulscan так же, как и для одной из предустановленных баз данных. Не стесняйтесь делиться своей собственной базой данных и связью уязвимостей со мной, чтобы добавить её в официальный репозиторий.
Базы данных уязвимостей регулярно обновляются и собираются. Чтобы поддерживать актуальность последних раскрытых уязвимостей, обновляйте локальные базы данных уязвимостей.
Чтобы автоматически обновлять базы данных, просто установите права на выполнение файла update.sh и запустите его:
chmod 744 update.sh
./update.sh
Если вы хотите обновить базы данных вручную, перейдите на следующий веб-сайт и загрузите эти файлы:
Скопируйте файлы в вашу папку vulscan:
/vulscan/
Если определение версии смогло идентифицировать версию программного обеспечения и база данных уязвимостей предоставляет такие детали, эти данные также сопоставляются.
Отключение этой функции может привести к ложным срабатываниям, но также может устранить ложноотрицательные результаты и немного повысить производительность. Если вы хотите отключить дополнительное сопоставление версий, используйте следующий аргумент:
--script-args vulscanversiondetection=0
Определение версий vulscan настолько же хорошо, насколько хороши определение версий Nmap и записи в базе данных уязвимостей. Некоторые базы данных не предоставляют однозначной информации о версиях, что может привести к большому количеству ложных срабатываний (как можно видеть на примере серверов Apache).
Скрипт пытается найти только наилучшие совпадения. Если положительное совпадение не найдено, отображается наилучшее возможное совпадение (которое может быть ложным срабатыванием).
Если вы хотите показать все совпадения, что может привести к множеству ложных срабатываний, но может быть полезно для дальнейшего исследования, используйте следующий аргумент:
--script-args vulscanshowall=1
Интерактивный режим помогает переопределить результаты определения версий для каждого порта. Используйте следующий аргумент для включения интерактивного режима:
--script-args vulscaninteractive=1
Все результаты сопоставления выводятся построчно. Стандартный макет для этого выглядит так:
[{id}] {title}\n
Можно использовать другую предопределенную структуру отчета с помощью следующего аргумента:
--script-args vulscanoutput=details
--script-args vulscanoutput=listid
--script-args vulscanoutput=listlink
--script-args vulscanoutput=listtitle
Вы можете задать собственную структуру отчета, используя следующий аргумент (некоторые примеры):
--script-args vulscanoutput='{link}\n{title}\n\n'
--script-args vulscanoutput='ID: {id} - Title: {title} ({matches})\n'
--script-args vulscanoutput='{id} | {product} | {version}\n'
Поддерживаются следующие элементы для динамического шаблона отчета:
Каждая база данных по умолчанию имеет URL и ссылку, которые используются во время сканирования и могут быть доступны как {link} в пользовательском шаблоне отчета. Чтобы использовать пользовательские ссылки на базы данных, используйте следующий аргумент:
--script-args "vulscandblink=http://example.org/{id}"
Имейте в виду, что такой вид производного сканирования уязвимостей сильно зависит от достоверности определения версий nmap, количества задокументированных уязвимостей и точности сопоставления шаблонов. Наличие потенциальных недостатков не проверяется с помощью дополнительного сканирования или методов эксплуатации.