Network Performance Monitoring (NPM) and Diagnostics | Application Performance Monitoring (APM) | Application-Aware Network Performance Monitoring (AA NPM) | Network Fault Management | Information Security | Network Security

Синтаксис и примеры скриптов Nmap Scripting Engine

Первая часть статьи

Синтаксис и примеры скриптов Nmap Scripting Engine

Хотя скриптовый движок Nmap имеет сложную реализацию для повышения эффективности, он поразительно прост в использовании.

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

--script <имя файла>|<категория>|<директория>|<выражение>[,...] цель

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

Обратите внимание, что вы можете сформировать группу скриптов для запуска сканирования, разделив запятыми список из имен файлов, названий категорий и/или директорий. К примеру, строка «nmap --script default,banner,/home/user/customscripts scanme.nmap.org» запустит скрипты из категории «default», скрипт «banner», а также все файлы с расширением «.nse» из директории «/home/user/customscripts». Целью в данном случае является «scanme.nmap.org».

Кроме того, допускается использование булевых выражений для формирования более сложных наборов скриптов, используя операторы «and», «or» и «not». Операторы имеют тот же приоритет, что и в языке Lua: «not» самый высокий, затем следует «and», а за ним — «or». Вы можете изменить приоритет, используя круглые скобки. Кроме того, поскольку такие выражения будут содержать пробельные символы, их необходимо взять в кавычки. К примеру, строка «nmap --script "default and safe" scanme.nmap.org» загрузит только те скрипты, которые одновременно относятся и к категории «default», и к категории «safe».

Также, когда вы ссылаетесь на скрипты из файла базы данных скриптов script.db по имени, вы вместо части названия можете использовать подстановочный символ «*». Таким образом, например, строка «nmap --script "http-*" scanme.nmap.org» позволит вам загрузить все скрипты, имя который начинается с «http-», такие как «http-auth» и «http-open-proxy». Обратите внимание, что в этом случае аргумент также берется в кавычки.

Чтобы осуществить сканирование на основе всех наиболее распространенных скриптов из категории default, просто укажите «–sC» (действие этой команды аналогично «--script=default» или «--script default»).

Вы также можете настраивать некоторые скрипты, передав им аргументы через опции «--script-args» и «--script-args-file». Следующий пример продемонстрирует, как передавать аргументы скриптам с параметром «--script-args»: «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 «-p»). Эта команда выполняет аудит конфигурации безопасности сервера баз данных MySQL в сравнении с эталонами CIS MySQL v1.0.2.

Опция «--script-help» подскажет вам, что выбранный скрипт делает.

Две оставшиеся опции — «--script-trace» и «--script-updatedb» — в основном используются только для отладки и разработки скриптов, поэтому в рамках данной обзорной статьи мы их подробно освещать не будем.

Сканирование с помощью скриптов обычно выполняется в комбинации со сканированием портов, так как скрипты могут запускаться или не запускаться в зависимости от состояния порта, выявленного во время проверки сканером. С опцией «-sn» существует возможность запустить сканирование с помощью скриптов без необходимости проведения сканирования порта (port scan), а только с выполнением обнаружения хоста (host discovery). В этом случае будут запускаться только скрипты хоста. Чтобы запустить сканирование и без обнаружения хоста, и без сканирования порта, используйте опцию «-Pn -sn» вместе с опциями «-sC» или «--script». Этот метод полезен для скриптов типа «whois-ip», которые используют только адрес удаленной системы и не требуют, чтобы он был включен.

Важно: Прежде чем начать работать со скриптами, убедитесь в их безопасности: Не запускайте скрипты, созданные третьими лицами, без их тщательной проверки (если, конечно, у вас нет причин доверять автору этих скриптов). Это связано с тем, что эти скрипты не запускаются в песочнице и, таким образом, существует риск, что скрипты от третьих лиц могут случайно или злонамеренно повредить вашу систему или нарушить вашу конфиденциальность.

Примеры использования скриптов NSE

Ниже предлагаем вам пару интересных примеров того, что вы можете сделать с помощью скриптов NSE.

Примеры использования скриптов NSE

Получите шифры TLS, используемые целевым сайтом, с помощью скрипта «ssl-enum-ciphers»

Посмотрите на сайт WordPress и узнайте, какие плагины и темы на нем запущены, с помощью скрипта «http-wordpress-enum»

Посмотрите на сайт WordPress и узнайте, какие плагины и темы на нем запущены, с помощью скрипта «http-wordpress-enum»

скрипт asn-query

Найдите информацию о GEO, ASN и данные организации для указанного вами объект с помощью скрипта «asn-query»

скрипт http-enum

Посмотрите с помощь скрипта «http-enum» на программное обеспечение веб-сервера, индексный файл robots.txt, а также на некоторый «интересный контент», наподобие того, как если бы вы использовали веб-сканер nikto

скрипт http-headers

Посмотрите на все заголовки, отправляемые целевым веб-сервером, с помощью скрипта «http-headers»

скрипты для протокола SMB

Существующие скрипты для протокола SMB

скрипты для протокола HTTP

Существующие скрипты для протокола HTTP

скрипты для системы DNS

Существующие скрипты для системы DNS

скрипты Nmap Scripting Engine для MySQL

Существующие скрипты для системы управления базами данных MySQL.

Вывод

Nmap — действительно мощный и полезный инструмент, который необходим любому администратору системы или сети в его базовом наборе средств для обеспечения информационной безопасности.

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

 

Подписывайтесь на рассылку, делитесь статьями в соцсетях и задавайте вопросы в комментариях!

Вечный параноик, Антон Кочуков.

Комментарии
Тут пока ничего нет, но Вы можете быть первым!
Авторизуйтесь для этого

См. также:
Заказать звонок

- Email
- Confirm
Имя *
Телефон *
Комментарий
Согласие на отправку персональных данных *

* - Обязательное для заполнения