Используем скрипты Nmap Script Engine

Используем скрипты Nmap Script Engine

overlamer1

Доброго времени суток! Сегодня познакомим вас с несколькими способами по использованию скриптов для Nmap.


Дисклеймер. Автор статьи не несёт ответственности за действия, описываемые в данной статье. Всё что показано, сделано в сугубо образовательных целях. Делайте всё на свой страх и риск.


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

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

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

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

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

Сценарий NSE

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

$ locate * .nse

/usr/share/nmap/scripts/acarsd-info.nse
/usr/share/nmap/scripts/address-info.nse
/usr/share/nmap/scripts/afp-brute.nse
/usr/share/nmap/scripts/afp-ls.nse
/usr/share/nmap/scripts/afp-path-vuln.nse
/usr/share/nmap/scripts/afp-serverinfo.nse
/usr/share/nmap/scripts/afp-showmount.nse
/usr/share/nmap/scripts/ajp-auth.nse
/usr/share/nmap/scripts/ajp-brute.nse
/usr/share/nmap/scripts/ajp-headers.nse
/usr/share/nmap/scripts/ajp-methods.nse
/usr/share/nmap/scripts/ajp-request.nse
/usr/share/nmap/scripts/allseeingeye-info.nse
/usr/share/nmap/scripts/amqp-info.nse
/usr/share/nmap/scripts/asn-query.nse
...

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

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

$ nmap -sC target     #load default scripts
OR
$ nmap --script filename|category|directory|expression,...   target

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

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

$ nmap -sC scanme.nmap.org
OR
$ nmap --script=default scanme.nmap.org
OR
$ nmap --script default scanme.nmap.org

Пример вывода

Starting Nmap 7.01 ( https://nmap.org ) at 2017-11-15 10:36 IST
Nmap scan report for scanme.nmap.org (45.33.32.156)
Host is up (0.0027s latency).
Not shown: 999 filtered ports
PORT   STATE SERVICE
80/tcp open  http
|_http-title: Go ahead and ScanMe!

Nmap done: 1 IP address (1 host up) scanned in 11.74 seconds

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

$ nmap --script-help http-headers scanme.nmap.org

Пример вывода

Starting Nmap 7.01 ( https://nmap.org ) at 2017-11-15 10:37 IST

http-headers
Categories: discovery safe
https://nmap.org/nsedoc/scripts/http-headers.html
  Performs a HEAD request for the root folder ("/") of a web server and displays the HTTP headers returned.

Загрузка скриптов NSE для выполнения сканирования Nmap

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

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

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

$ nmap --script http-headers scanme.nmap.org

Сканирование HTTP-headers


Starting Nmap 7.01 ( https://nmap.org ) at 2017-11-15 10:39 IST
Nmap scan report for scanme.nmap.org (45.33.32.156)
Host is up (0.27s latency).
Not shown: 996 closed ports
PORT      STATE    SERVICE
22/tcp    open     ssh
80/tcp    open     http
| http-headers: 
|   Date: Wed, 15 Nov 2017 05:10:04 GMT
|   Server: Apache/2.4.7 (Ubuntu)
|   Accept-Ranges: bytes
|   Vary: Accept-Encoding
|   Connection: close
|   Content-Type: text/html
|   
|_  (Request type: HEAD)
179/tcp   filtered bgp
31337/tcp open     Elite

Nmap done: 1 IP address (1 host up) scanned in 20.96 seconds

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

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

$ nmap --script default,broadcast 192.168.56.1

Использование знака* для ssh

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

$  nmap --script "ssh-*" 192.168.56.1

Использование логических выражений

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

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

$ nmap --script "default or broadcast" 192.168.56.10

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

$ nmap --script default,broadcast 192.168.56.10

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

$ nmap --script "not vuln" 192.168.56.10

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

$ nmap --script "(default or broadcast) and not ssh-*" 192.168.56.10

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

$ nmap --script broadcast,vuln,ssh-auth-methods,/path/to/custom/scripts 192.168.56.10

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

Ниже приведен пример, показывающий, как передавать аргументы сценариям с параметром –script-args :

$ nmap --script mysql-audit --script-args "mysql-audit.username = 'root', \
mysql-audit.password = 'password_here', mysql-audit.filename = 'nselib / data / mysql-cis.audit' »

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

$ nmap -p 3306 --script mysql-audit --script-args "mysql-audit.username = 'root', \ 
mysql-audit.password = 'password_here', mysql-audit.filename = 'nselib / data / mysql-cis.audit' »


На этом пока все. Вы можете найти дополнительную информацию на странице руководства Nmap или проверить использование NSE.

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







• Канал про криптовалюту: CryptOVER

• Наш чат: OVER-CHAT

• Наш мерч: Магазин

•Телеграм канал: TESTLAND

•Личный телеграм канал: overbafer1

•Группа ВК: overpublic1

•Youtube: overbafer1

•Второй Youtube: IGOR OVER

🤖 https://overbafer1.ru/ - эксклюзивный бот для разведки и поиска информации в сети


Report Page