Использование сценариев Nmap Script Engine (NSE) в Linux

Nmap - это популярный, мощный и кроссплатформенный сканер и инструмент исследования сетевой безопасности с командной строкой. Он также может помочь вам получить обзор систем, подключенных к вашей сети; с его помощью вы можете узнать все IP-адреса живых хостов, просканировать открытые порты и службы, запущенные на этих хостах, и многое другое.

Nmap

 

Одной из интересных особенностей Nmap является Nmap Script Engine (NSE), который обеспечивает еще большую гибкость и эффективность. Он позволяет писать собственные сценарии на языке программирования Lua и, возможно, делиться этими сценариями с другими пользователями Nmap.

Nmap - это действительно мощный и полезный инструмент, который необходим каждому системному или сетевому администратору в его/ее арсенале безопасности - NSE добавляет ему больше эффективности.

Существует четыре типа скриптов NSE, а именно:

  • Предварительные скрипты - это скрипты, которые выполняются перед любой из операций сканирования Nmap, они выполняются, когда Nmap еще не собрал никакой информации о цели.
  • Скрипты хоста - это скрипты, выполняемые после того, как Nmap выполнил обычные операции, такие как обнаружение хоста, сканирование портов, определение версии и определение ОС на целевом хосте.
  • Сервисные скрипты - это скрипты, выполняемые против определенных служб, прослушивающих целевой узел.
  • Пост-скрипты - это скрипты, выполняемые после того, как Nmap просканировал все целевые узлы.

Далее эти сценарии группируются по различным категориям, включая сценарии для аутентификации (auth), обнаружения хостов (broadcast), атаки грубой силы для угадывания учетных данных аутентификации (brute), получения дополнительной информации о сети (discovery), вызова отказа в обслуживании (dos), использования уязвимости (exploit) и т.д. Ряд скриптов относится к категории по умолчанию.

Прежде чем двигаться дальше, вам следует обратить внимание на следующие ключевые моменты:

  • Не выполняйте скрипты от третьих лиц без их критического изучения или только если вы доверяете их авторам. Это связано с тем, что эти скрипты не выполняются в "песочнице" и поэтому могут неожиданно или злонамеренно повредить вашу систему или вторгнуться в вашу конфиденциальность.
  • Многие из этих скриптов могут быть запущены как пре- или пост-правила. Учитывая это, рекомендуется использовать prerule для обеспечения согласованности.
  • Nmap использует базу данных scripts/script.db для определения доступных по умолчанию сценариев и категорий.

Чтобы узнать расположение всех доступных скриптов NSE, запустите утилиту locate в терминале, например, так:

locate *.nse

Сценарии NSE загружаются с помощью флага --script, который также позволяет вам запускать собственные сценарии, указывая категории, имена файлов сценариев или имена каталогов, в которых находятся ваши сценарии.

Синтаксис для включения скриптов следующий:

или

Вы можете просмотреть описание сценария с помощью опции --script-help. Кроме того, вы можете передавать аргументы некоторым скриптам с помощью опций --script-args и --script-args-file, последняя используется для указания имени файла, а не аргумента командной строки.

Чтобы выполнить сканирование с большинством скриптов по умолчанию, используйте флаг -sC или альтернативу --script=default.

или

или

Использование имени сценария

Как только вы узнаете, что делает сценарий, вы можете выполнить сканирование с его помощью. Вы можете использовать один сценарий или ввести список имен сценариев, разделенных запятыми. Команда ниже позволит вам просмотреть HTTP-заголовки, настроенные на веб-сервере целевого узла.

Использование категорий

Вы также можете загружать скрипты из одной категории или из списка категорий, разделенных запятыми. В этом примере мы используем все скрипты из категории default и broadcast для выполнения сканирования хоста 192.168.0.1.

Использование * (Wildcard)

Это полезно, когда вы хотите выбрать скрипты с заданным шаблоном имени. Например, чтобы загрузить все скрипты с именами, начинающимися с ssh, выполните в терминале следующую команду:

Использование булевых выражений

Вы также можете выбирать сценарии с помощью булевых выражений, которые можно построить с помощью операторов and, or и not. И именами в булевом выражении могут быть категория, имя файла из script.db или все.

Следующая команда загрузит скрипты из категорий default или broadcast.

Что эквивалентно:

Чтобы загрузить все скрипты, исключая те, которые находятся в категории vuln, выполните эту команду в терминале.

Следующая команда выглядит немного сложной, но ее легко понять: она выбирает скрипты в категориях default или broadcast, исключая те, названия которых начинаются с ssh-:

Важно отметить, что можно комбинировать категории, имена скриптов, каталог, содержащий ваши пользовательские скрипты, или логическое выражение для загрузки скриптов, как показано ниже:

Передача аргументов сценариям NSE

Ниже приведен пример передачи аргументов скриптам с помощью опции -script-args:

Чтобы передать номер порта, используйте опцию -p nmap:

Приведенная выше команда запускает аудит конфигурации безопасности сервера баз данных MySQL по частям эталона CIS MySQL v1.0.2. Вы также можете создать свои собственные полезные пользовательские файлы аудита для других проверок MySQL.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий