Загрузка...

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

Тема в разделе Kali Linux создана пользователем volk132569 17 мар 2022. (поднята 17 мар 2022) 926 просмотров

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

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

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

    • Prerule scripts - это скрипты, которые запускаются перед любой из операций сканирования Nmap, они выполняются, когда Nmap еще не собрал никакой информации о цели.
    • Host scripts - это скрипты, выполняемые после того, как Nmap выполнила обычные операции, такие как обнаружение хоста, сканирование портов, определение версии и определение ОС на целевом хосте.
    • Service scripts - это скрипты, запускаемые для определенных сервисов, прослушивающих целевой хост.
    • Postrule scripts - это скрипты, запускаемые после того, как Nmap просканирует все свои целевые хосты.
    Затем эти сценарии сгруппированы по различным категориям, в том числе для аутентификации (auth), обнаружения хостов, атак грубой силы для угадывания учетных данных аутентификации ( ***** ), получения дополнительных сведений о сети (обнаружение), вызывая отказ в обслуживании (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-*****.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-*****.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 [URL='http://scanme.nmap.org/']scanme.nmap.org[/URL]
    OR
    $ nmap --script=default [URL='http://scanme.nmap.org/']scanme.nmap.org[/URL]
    OR
    $ nmap --script default [URL='http://scanme.nmap.org/']scanme.nmap.org[/URL]


    Пример вывода
    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 [URL='http://scanme.nmap.org/']scanme.nmap.org[/URL]


    Пример вывода
    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 [URL='http://scanme.nmap.org/']scanme.nmap.org[/URL]


    Сканирование 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 [URL='http://192.168.56.1/']192.168.56.1[/URL]


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

    $ nmap --script "ssh-*" [URL='http://192.168.56.1/']192.168.56.1[/URL]


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

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

    $ nmap --script "default or broadcast" [URL='http://192.168.56.10']192.168.56.10[/URL]


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

    $ nmap --script default,broadcast [URL='http://192.168.56.10']192.168.56.10[/URL]


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

    $ nmap --script "not vuln" [URL='http://192.168.56.10']192.168.56.10[/URL]


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

    $ nmap --script "(default or broadcast) and not ssh-*" [URL='http://192.168.56.10']192.168.56.10[/URL]


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

    $ nmap --script broadcast,vuln,ssh-auth-methods,/path/to/custom/scripts [URL='http://192.168.56.10']192.168.56.10[/URL]


    Передача аргументов скриптам 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 просто добавляет ему большей эффективности.
     
    17 мар 2022 Изменено
Top