0 знаков
21. Поиск сетевых уязвимостей с помощью Nmap
Инструменты- Nmap
Кратко- Nmap предоставляет возможности сканирования и поиска известных уязвимостей с помощью скриптового движка Nmap.
- Скрипты для движка Nmap пишутся на языке программирования Lua.
- Опытные пользователи могут интегрировать возможности Nmap в свои скрипты на Python.
- Скриптовый движок Nmap (NSE) расширяет возможности инструмента, позволяя пользователям писать свои скрипты на Lua для автоматизации задач.
- Скрипты делятся на различные категории:
version
,intrusive
,safe
,malware
,vuln
,discovery
,auth
иdefault
.- Для использования скриптов применяются флаги
-sC
или--script
, которые являются равнозначными.- Скрипты Nmap хранятся в папке
/usr/share/nmap/scripts/
.- В статье рассматриваются NSE скрипты категории
vuln
,Vulscan.nse
иVulners.nse
, и сравниваются их возможности и недостатки.
Раздел поиска сетевых уязвимостей начнем с казалось бы простого сканера Nmap. Инструмент Nmap, помимо сканирования, предоставляет возможность поиска известных уязвимостей с помощью скриптового движка Nmap ([ссылка доступна авторизованным пользователям]). Скрипты для этого движка пишутся на языке программирования Lua. Более опытные пользователи могут интегрировать возможности Nmap в свои скрипты на Python (с помощью модуля [ссылка доступна авторизованным пользователям]). Одним словом, инструмент Nmap не такой простой, как мог показаться в уроке про сканирование.
В этом уроке познакомимся с NSE, категорией скриптов Vuln, скриптами Vulscan и Vulners. Так же постараемся сравнить способы поиска сетевых уязвимостей с помощью Nmap.
Знакомимся с NSE Nmap
Скриптовый движок Nmap (NSE) значительно расширяет возможности Nmap. Пользователи могут писать свои скрипты на языке Lua для автоматизации широкого круга задач и делиться ими с другими людьми. Скрипты делятся на следующие категории: version
, intrusive
, safe
, malware
, vuln
, discovery
, auth
и default
.
Для использования скриптов применяются флаги -sC
или --script категории-скриптов|директория|имя_файла|all
, которые являются равнозначными. В параметре флага скрипты можно перечислять через запятую, указывать директорию (содержащую нужные скрипты) или категорию.
Чтобы передать аргументы в NSE скрипт, используйте следующий флаг:
--script-args имя1=значение1, имя2={имя3=значение3}, имя4=значение4
Если нужно вывести дополнительно все исходящие и входящие соединения: добавьте флаг --script-trace
к основной команде.
Скрипты Nmap хранятся в папке /usr/share/nmap/scripts/
:
cd /usr/share/nmap/scripts/
ls
Для доступа необходимо авторизоваться на сайте Codebra.
Посмотрим исходный код скрипта для поиска одной из самых популярных и простых уязвимостей (все еще встречается) - EternalBlue.
nano smb-vuln-ms17-010.nse
В комментариях можно найти примеры использования этого скрипта:
nmap -p445 --script smb-vuln-ms17-010 <target>
nmap -p445 --script vuln <target>
Для примера запустим все предустановленные скрипты категории vuln
. Проверим службы на первых 1000 TCP портах:
nmap -sV -p1-1000 --script vuln 192.168.56.22
Для доступа необходимо авторизоваться на сайте Codebra.
На 80 порте крутится веб-сервер Microsoft IIS, на котором была найдена страница Default.aspx. Возможно, она уязвима к CSRF. Можно это проверить, но на этапе разведки и сканирования не стоит бросаться на первую встретившуюся (возможную) уязвимость. Необходимо продолжать собирать информацию.
Теперь разберемся с другими NSE скриптами.
Скрипт Vulscan.nse
Vulscan.nse - это модуль, который превращает Nmap в сканер уязвимостей.
С опцией -sV
мы познакомились ранее. Эта опция позволяет определить версию службы при сканировании портов хоста. Использование скрипта Vulscan.nse совместно с опцией -sV
позволяет определить потенциальные уязвимости.
Кстати, в репозитории уже собраны актуальные базы данных уязвимостей.
GitHub- [ссылка доступна авторизованным пользователям]
Клонируем к себе на Kali Linux:
git clone https://github.com/scipag/vulscan scipag_vulscan
Для доступа необходимо авторизоваться на сайте Codebra.
Делаем ссылку в папке со скриптами Nmap на репозиторий:
sudo ln -s `pwd`/scipag_vulscan /usr/share/nmap/scripts/vulscan
Для доступа необходимо авторизоваться на сайте Codebra.
Чтобы проверить, перейдите в каталог /usr/share/nmap/scripts/
и найдите ее:
Для доступа необходимо авторизоваться на сайте Codebra.
Чтобы использовать Vulscan, достаточно вызвать скрипт vulscan.nse
. Сохраним результат в файл:
nmap -sV --script=vulscan/vulscan.nse 192.168.56.22 -oA vul
В таком случае используются все базы данных. Чтобы просканировать по одной базе данных, используйте флаг --script-args
. Он позволяет задать входные данные для скрипта:
nmap -sV --script=vulscan/vulscan.nse --script-args vulscandb=cve.csv 192.168.56.22 -oA vul
Скрипт Vulners.nse
В Nmap встроен скрипт Vulners.nse, который работает так же, как и Vulscan.nse, но в отличии от последнего, отправляет запросы на удаленный сервер (vulners.com), чтобы узнать, есть ли известные уязвимости у обнаруженной службы. Это важно понимать при тестировании на проникновение.
sudo nmap -sV --script=vulners.nse 192.168.56.22
Для доступа необходимо авторизоваться на сайте Codebra.
Дальше сравним рассмотренные NSE скрипты между собой.
Сравнение Vuln, Vulscan, Vulners
Во-первых, Vuln и Vulscan установлены по умолчанию в Nmap, а скрипт Vulners необходимо скачивать и устанавливать отдельно. Вряд ли это можно считать недостатком последнего.
ПримечаниеVuln - категория, а не скрипт.
Во-вторых, стоит понимать что Vulners отправляет данные на свой сервер, а это может быть потенциальной утечкой информации. Вряд ли вы захотите пользоваться инструментом, который может сливать информацию. Он может подойти только в учебный целях.
В-третьих, можно выделить положительную сторону Vulners: не требуется загрузка базы данных уязвимостей. Эта положительная сторона вытекает из предыдущего недостатка.
В-четвёртых, какому скрипту доверять больше всего?
Скрипту Vulners достаточно сложно доверять, так как проверка наличия уязвимости осуществляется на стороннем сервере. Для скрипта Vulscan вы можете вручную скачать базы и в теории проверить их.
Выбор за вами, какой скрипт для поиска уязвимостей с помощью Nmap использовать.
Выводы
В этом уроке мы познакомились со скриптовым движком Nmap (NSE), где хранятся эти скрипты и как их запускать. Так же научились применять Nmap как сканер сетевых уязвимостей, используя скрипты Vuln, Vulscan и Vulners.
В следующем уроке научимся искать сетевые уязвимости с помощью инструмента CrackMapExec.
Источники и похожее- [ссылка доступна авторизованным пользователям]
- [ссылка доступна авторизованным пользователям]
- [ссылка доступна авторизованным пользователям]
Тест
Похожие уроки Codebra
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ