nmap скрипты поиска уязвимостей

nmap скрипты

Привет, хабровчане. Делимся с вами авторской статьей, которую подготовил Александр Колесников.

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

Скриптовый язык и основные фичи

Официальный репозиторий хостится в системе svn, но мы для удобства будем использовать зеркало на github. Даже если не вникать в код проекта, легко можно увидеть, что проект пользуется языком Lua. Это язык программирования, который, как заверяют авторы, очень гибко может работать со структурами данных. Также он поддерживает большое количество парадигм программирования. С основными конструкциями синтаксиса можно познакомиться здесь.

Инструмент nmap использует язык Lua из-за его простоты и легковесности. Изначально этот язык был добавлен для того, чтобы можно было быстро и легко наращивать функционал nmap. Сетевых протоколов существует большое количество, поэтому стандартного взаимодействия по протоколам IP, UDP, TCP и ICMP может быть недостаточно.

Итак, nmap содержит интерпретатор Lua. Интерпретатор языка программирования интегрирован в nmap и взаимодействует с ним за счет фреймворка, который называется Nmap Scripting Engine. NSE умеет запускать скрипты параллельно и работать с интерфейсами ввода/вывода, а так же предоставляет систему обработки ошибок. Все скрипты, которые могут быть написаны для расширения работы nmap, поделены на отдельные задачи. Всего их 14, самые интересные по мнению автора можно найти ниже:

auth — скрипты, которые направлены на сбор аутентификационных данных;

discovery — скрипты, которые собирают информацию из корневых сущностей;

external — скрипты, которые могут использовать сторонние сервисы для предоставления информации;

vuln — скрипты, которые проверяют сервис на известную уязвимость, используются только для проверки;

intrusive — скрипты, которые могут нанести вред исследуемой системе.

В рамках нашей статьи будем создавать скрипт категории discovery.

Пишем скрипт

Каким бы простым не был язык программирования, но чтобы действительно быстро и эффективно писать на нем, нужно использовать IDE. Особенно если это язык программирования, в котором есть API, за счет которых он может связываться с внешним миром. Для написания скриптов NSE будем использовать Halcyon IDE. IDE требует установленной JRE, в запущенном виде выглядит так:

nmap скрипты поиска уязвимостей. image loader. nmap скрипты поиска уязвимостей фото. nmap скрипты поиска уязвимостей-image loader. картинка nmap скрипты поиска уязвимостей. картинка image loader. Привет, хабровчане. Делимся с вами авторской статьей, которую подготовил Александр Колесников.

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

Чтобы начать написание скрипта, нам необходимо понять, как именно скрипт вызывается и какие параметры он может использовать для разбора данных из сети. Базово скрипт может пользоваться той информацией, которую nmap получил по результатам сканирования хоста:

host — объект, который содержит большое количество информации о хосте (ip, OS version);

port — объект, который содержит информацию по порту (протокол, номер, версия).

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

Шаблон любого скрипта имеет следующий вид:

portrule — правило, которое используется для определения, должен ли быть запущен скрипт. Позволяет проставить конкретный порт для сканирования. Также можно ограничить по значению хоста: для этого нужно изменить portrule на hostrule. Функция возвращает значение true или false в зависимости от того, совпадает порт или хост или нет.

action — main функция скрипта, срабатывает только в том случае, если rule часть возвратила true. Может возвращать строку или значение nil (пустое значение).

Протестируем скрипт вне IDE, запустим слушателя на порту 7878:

Проведем запуск сприпта:

Результат работы скрипта:

nmap скрипты поиска уязвимостей. image loader. nmap скрипты поиска уязвимостей фото. nmap скрипты поиска уязвимостей-image loader. картинка nmap скрипты поиска уязвимостей. картинка image loader. Привет, хабровчане. Делимся с вами авторской статьей, которую подготовил Александр Колесников.

На снимке представлен пример запуска на любом порту, который отличается от того, что мы указывали в разделе portrule. И наоборот — тот самый порт, который должен быть обработан.

Результат

Скрипт, который может писать нотификации для заданного порта — достаточно простой пример, но именно он демонстрирует основные элементы скрипта для nmap. Читателю предлагается самостоятельно реализовать функционал для работы с http протоколом и получением информации о сервере.

Источник

Easy Hack: Хакерские секреты простых вещей

Содержание статьи

Найти известные уязвимости для сервисов, определенных Nmap

Решение: Nmap — одна из главных тулз, особенно когда дело касается «первых шагов» — сбора информации о цели. Сканирование портов, определение сервисов — методы Nmap стали стандартом, да и сам движок Nmap внедрен во многих других продуктах, в том числе и в платных.

Есть один важный момент: после внедрения в Nmap движка для обработки NSE-скриптов и, конечно, с увеличением количества и повышением качества самих скриптов Nmap превратился в сканер уязвимостей (как-то странно это по-русски звучит :)). Если кто не в курсе, NSE — это такие скрипты на языке Lua плюс библиотеки, описывающие разнообразные протоколы. С их помощью можно добавлять к сканеру различный функционал — от перебора учеток к SNMP до эксплуатации уязвимостей в ColdFusion.

Warning!

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

Так вот, не очень давно компания Scip AG выложила еще один прикольный NSE-скрипт — vulscan. Суть его до невероятности проста. При сканировании Nmap с определением софта на сервисах скрипт берет название ПО (если оно было определено, конечно) и прогоняет по базам уязвимостей: CVE, OSVBD, с SecurityFocus и SecurityTracker, а также по некоему обобщению предыдущих — scipvuldb.

Поиск происходит локально (каждая база лежит в отдельном CVS-файле). Таким образом, мы можем узнать, есть ли в данном сервисе какие-то паблик-уязвимости.

Пример на рисунке. Как можно заметить, там есть парочка false-positive. Какая-то Mozilla… Это все следствие того, что скрипт производит просто поиск подстроки в базе. Согласен — дубово :).

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

Для того чтобы заставить скрипт работать, надо его скачать с базами отсюда, vulscan.nse кинуть в scripts папки Nmap, а базы — в scripts/vulscan. Запускается либо обычным образом для NSE-скриптов, либо в комплекте с –sC (так как относится к default и safe модулям). Одна личная рекомендация — лучше выбирать конкретную базу (scipvuldb), иначе листинг может быть ооооочень большим.

nmap скрипты поиска уязвимостей. nmap vuln. nmap скрипты поиска уязвимостей фото. nmap скрипты поиска уязвимостей-nmap vuln. картинка nmap скрипты поиска уязвимостей. картинка nmap vuln. Привет, хабровчане. Делимся с вами авторской статьей, которую подготовил Александр Колесников. Скрипт для поиска известных уязвимостей для Nmap

Хакер #176. Анонимность в интернете

Корректно определить версии ПО, используя Nmap

Решение: Описывая решение предыдущей задачки, я вспомнил еще один вопрос, который меня когда-то интересовал и которым я хотел поделиться с тобой. А как же на деле Nmap определяет версии ПО на портах? В смысле, основная концепция — посылать разные запросы и сверять ответы с имеющейся базой — вполне понятна и логична. Но вот когда сталкиваешься с реальными сканами и видишь что-то типа «tcpwrapped» или «ftp?», что с этим делать? Сюда же можно добавить и случающиеся «пропуски» (false negative) каких-нибудь сервисов… На самом деле про эту тему можно было бы написать целую статью, но я постараюсь описать основные процессы и важные факты, которые помогут «приручить» Nmap.

Итак, все начинается со сканирования портов. Порты отсканировались, и только на тех, что получили статус «open» или «open|filtered», будут определяться сервисы (если был указан параметр –sV или аналогичный). В случае если был статус «open|filtered» и сервис был определен, то статус меняется на «open». Важно также, что процесс определения сервисов происходит параллельно для различных портов.

Чтобы понимать алгоритм определения сервиса, нам надо познакомиться с двумя файлами, поставляемыми с Nmapом, — nmap-services и nmap-service-probes. Первый — это просто соотношение типов сервисов (FTP, HTTP, DNS) и портов. Well known или типовые, так сказать. Большая часть взята из IANA (1024 первых порта). Данные из этого файла используются (частично) для третьего столбца (Service).

Здесь же кроется и ответ на одну из распространенных проблем. Если в выводе Nmap’а указывается сервис со знаком вопроса (http?, ftp?), то значит, что Nmap даже не понял, какой там используется протокол/сервис. Это просто общее указание, что обычно там бывает такой-то сервис. Если же без знака вопроса, но без версии ПО, то, значит, не было информации о версии, но тип сервиса правильный (хотя доверять тут не следует, он мог и ошибиться).

Дальше — второй файл. В нем описаны различные пробы (Probes), которые использует Nmap для определения версий ПО на портах. По сути, это просто некая последовательность данных, которые отправятся на сервис, а также набор regexp’ов — правил к ним для того, чтобы парсить ответы. Если правило сработало, то версия, значит, определилась (и дальнейшее определение сервиса прекращается).

Первая и основная проба (для протокола TCP) — NULL. Она указывает то, что Nmap подключается к порту и ничего не посылает, а ждет 6 секунд ответных данных. Большинство сервисов, в особенности олдскульных (FTP, SMTP, SSH), первыми посылают данные клиенту — некое приветствие. Во многом поэтому у NULL-пробы больше всего различных правил (регекспов). Подключились, подождали — получили данные. Если ответа никакого нет, используется следующая проба — GenericLines (\r\n\r\n). В данном случае данные уже отправляются на сервер и правила сверяются с полученным ответом. Важно еще отметить, что для UDP-скана отсутствует NULL-проба (из-за специфики протокола).

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

Как видишь, все просто. Сами правила (match) определяют сервис и стандартный regexp (как в Perl), с помощью которого мы можем где надо вытащить версию, например.

Но это все первая и простая часть. Далее чуть больше тонкостей. Во-первых, кроме простых правил, есть еще и «мягкие». Они начинаются с softmatch и подтверждают правильный выбор протокола. То есть как только срабатывает мягкое правило, в дальнейшем применяются только пробы для этого сервиса (протокола). Например, мягкое правило (какое словосочетание-то) для POP3.

При срабатывании этого правила не определяется версия ПО (потому они мягкие), но Nmap теперь не будет слать пробы, которые точно не подойдут (GET / HTTP/1.1, например), что избавит нас от мусорного трафика. А будет использовать только подходящие для сервиса («Help\r\n», например).

Дальше несколько важных полей в файле nmap-service-probes. Для каждой пробы (кроме NULL) указывается порт, на котором эта проба чаще всего срабатывает (точнее, где обычно весит сервис), а также «редкость» (rarity) этой пробы. Чем выше значение, тем оно реже. Возможны значения от 1 до 9. Что еще важнее — значение по умолчанию 7, то есть ряд проб не используются достаточно часто.

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

И еще важный момент про пробы. Есть специальная проба для определения поддержки SSL-сервисом. И если она проходит, то все пробы повторяются (включая NULL), но уже в обертке из SSL-подключения. К тому же в выводе в поле Service добавляется указание о поддержке SSL (типа «ssl/pop3»). Кстати, SSL — это как раз то, что определяется верно всегда.

Итак, мы разобрали вводную часть и теперь можем корректно осознать, какие же пробы будут использованы. Во-первых, Nmap смотрит на порт, который тестируется и выбирает все пробы, которые «часто» появляются на этом порту (значение ports из nmap-service-probes). Во-вторых, Nmap смотрит указанную при сканировании «интенсивность» детекта (оно же поле rarity). Будут использованы только те пробы, чье значение меньше указанного равно ему. То есть EHLO из последнего примера будет использована, несмотря на ее редкость, которая больше значения по умолчанию (7), но только на определенных портах (SMTP’шные порты — 25, 587, 3025). Теперь, я думаю, кое-что стало понятно. И надеюсь, я нигде не напутал сильно.

А, ну и вопрос, часто напрягающий, — видеть tcpwrapped в графе Version. Вообще, вики говорит, что tcpwrapped — это некая тулза под *nix, которая позволяет ACL на подключения. При этом проверка происходит уже после установки подключения, а потому порт открыт. Я лично их в реальности не видел, а вот с tcpwrapped сталкиваюсь систематически. В общем, tcpwrapped — это спецправило Nmap, и срабатывает оно тогда, когда сервер обрывает подключение до того, как данные были отправлены. Не уверен, но, возможно, здесь может быть false-negative от Nmap, из-за того что сервер разрывает подключение еще до окончания ожидания NULL-пробы в 6 секунд. А другие пробы и не запускаются.

Надеюсь, что получилось понятно описать. Если есть вопросы, документация в помощь.

nmap скрипты поиска уязвимостей. nmap sV. nmap скрипты поиска уязвимостей фото. nmap скрипты поиска уязвимостей-nmap sV. картинка nmap скрипты поиска уязвимостей. картинка nmap sV. Привет, хабровчане. Делимся с вами авторской статьей, которую подготовил Александр Колесников. Определение версии ПО в Nmap

Автоматизировать поиск уязвимостей flash-роликов

Решение: Хе-хей, в прошлый раз мы с тобой познакомились с возможной «небезопасностью» флеш-роликов. Чем больше фишек, тем и проблем с безопасностью больше. А флеш — он тот еще толстяк. Хотя, конечно, надо сказать, что Adobe подкрутила гайки и старые векторы атак уже не всегда работают в новых плеерах и с учетом функционала ActionScript 3. Но презентации последних лет двух показывают: те же XSS через флеш-ролики — это распространенная вещь, даже на защищенных сайтах. Вообще, я планировал расписать тему со специфичными именно для флеша багами (а не обычные XSS), но хороших (дырявых) примеров пока не нашел. Так что сегодня мы возьмемся с другого конца — с метода поиска уязвимостей в роликах и автоматизации этого процесса.

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

Второй, более трудозатратный, основывается на том, что SWF — это ролик, который скачивается и исполняется на клиентской машине, то есть у нас. К тому же он представляет собой байт-код, а потому хорошо декомпилируется. Декомпиляторов много, в том числе бесплатных. Пару лет назад были проблемы с декомпилятором под AS3, но все исправилось. Мне лично по душе Sothink SWF Decompiler, хотя он и платный (есть триал). Все, что дальше требуется, — посмотреть, есть ли какие-то входные параметры, а также может ли их модификация к чему-то привести. Первая часть дела делается очень быстро, вторая же зависит от толщины и функциональности ролика. Но по опыту — занимательные вещи достаточно быстро раскапываются. Все дело в том, что большинство вообще не подозревают, что ролики могут нести угрозу для безопасности, то есть основная наша задача — понять функционал ролика.

nmap скрипты поиска уязвимостей. decomp. nmap скрипты поиска уязвимостей фото. nmap скрипты поиска уязвимостей-decomp. картинка nmap скрипты поиска уязвимостей. картинка decomp. Привет, хабровчане. Делимся с вами авторской статьей, которую подготовил Александр Колесников. Декомпиляция в один клик

Ну и конечно, указанные еще в прошлый раз — группа опасных функций. Их тоже надо поискать. А так как это, по сути, поиск по тексту, то и тулзы есть нам в помощь. Например,SearchDiggity. Это такой поисковый комбайн. Изначально он был нацелен на сбор информации из Google и Bing, но расширился и научился парсить метаинфу документов на приватную информацию (как тулза FOCA), искать по ShodanHQ, а также декомпилить flash-ролики и искать в них regexp’ом опасные функции. Очень просто и лаконично получилось: указываешь папку с роликами для анализа и правила, по которым будет производиться поиск, и все — основные косяки уже видны.

nmap скрипты поиска уязвимостей. swf. nmap скрипты поиска уязвимостей фото. nmap скрипты поиска уязвимостей-swf. картинка nmap скрипты поиска уязвимостей. картинка swf. Привет, хабровчане. Делимся с вами авторской статьей, которую подготовил Александр Колесников. Классические проверки на «безопасный» SWF

Вторым помощником может оказаться более специализированная тулза от HP — SWFScan. Это декомпилятор для SWF на AS2, AS3 с кучкой «мозгов». Он бесплатен. Указываешь SWF’ ку, он ее подгружает и анализирует. По каждому найденному пункту он выводит описание «чем это плохо» и указывает место в исходниках, что очень полезно (хотя первый декомпилятор поюзабельней, имхо). Весь наборчик я приложу, так что попрактикуйся.

nmap скрипты поиска уязвимостей. sd. nmap скрипты поиска уязвимостей фото. nmap скрипты поиска уязвимостей-sd. картинка nmap скрипты поиска уязвимостей. картинка sd. Привет, хабровчане. Делимся с вами авторской статьей, которую подготовил Александр Колесников. SearchDiggity что-то в SWF’ках нашел. Осталось проверить

Поднять привилегии в Windows при физическом доступе к хосту

Решение: Недавно в блоге IntelComms был опубликован прикольный метод поднятия привилегий в ОС Windows 7 в том случае, когда у нас имеется физический доступ к компу. Такой трюк специально для инсайдеров.

Конечно, имея физический доступ, сделать это достаточно просто, но, с другой стороны, на предприятиях с этим стараются бороться: опечатывают корпуса техники, устанавливают пароль на БИОС и на локального админа в винде, отключают загрузку с внешних девайсов. И в такой ситуации наши возможности значительно ограничены.

Так вот, этот метод обходит все названные ограничения, да и вообще оставляет лишь небольшое количество следов после себя. Все потому, что основывается он на фиче самой винды — восстановлении после сбоев (System Recovery). Сразу отмечу, что не стоит путать эту фишку с «безопасным режимом» загрузки ОС (Safe mode), так как у второй для доступа к ОС необходимо ввести пароль от админа. А у System Recovery нет такой проблемы.

Я думаю, каждый из нас видел этот экран хоть раз в жизни.

Выбираем «Startup Repair», и все! Дальше идут чистые GUI-хаки, для того чтобы добраться до файловой системы или консоли:

Вся хитрость метода в том, что в режиме System Recovery у нас, во-первых, есть полный доступ к файловой системе ОС, во-вторых, отсутствует запрос каких-либо учеток и, в-третьих, команды выполняются от «NT AUTHORITY\SYSTEM».

Что делать с доступом дальше? Зависит от ситуации. Можно, например, воспользоваться уже как-то описанным методом и поменять файл, отвечающий за спецвозможности (который доступен еще до логина в систему) на cmd.exe.

Что еще интересного? Да, стоит отметить, что Микрософт не считает такого плана баги за баги, так как здесь имеется потребность в физическом доступе. А потому данный метод будет долго и счастливо жить :).

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

И еще один важный момент, который описан в блоге. Данный метод одинаково хорошо работает как против отдельных хостов, так и против ОС, которые добавлены в домен. В общем, шикарно!

На этой приятной ноте прекращаю поток мыслей. Надеюсь, было интересно :). Если есть пожелания по разделу Easy Hack или жаждешь поресерчить — пиши на ящик. Всегда рад :). И успешных познаний нового!

Источник

Руководство по работе со скриптами Nmap Scripting Engine

nmap скрипты поиска уязвимостей. nmap scripting engine rukovodstvo 01. nmap скрипты поиска уязвимостей фото. nmap скрипты поиска уязвимостей-nmap scripting engine rukovodstvo 01. картинка nmap скрипты поиска уязвимостей. картинка nmap scripting engine rukovodstvo 01. Привет, хабровчане. Делимся с вами авторской статьей, которую подготовил Александр Колесников.

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

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

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

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

Давайте более детально посмотрим на скрипты NSE, и, возможно, их потенциал сможет приятно вас удивить.

Что такое скрипты NSE?

nmap скрипты поиска уязвимостей. nmap scripting engine rukovodstvo 02. nmap скрипты поиска уязвимостей фото. nmap скрипты поиска уязвимостей-nmap scripting engine rukovodstvo 02. картинка nmap скрипты поиска уязвимостей. картинка nmap scripting engine rukovodstvo 02. Привет, хабровчане. Делимся с вами авторской статьей, которую подготовил Александр Колесников.

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

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

Возможности скриптов Nmap Scripting Engine

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

1. Исследование сети

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

2. Более изощренный вариант определения версий

Система Nmap для определения версий сервисов и приложений способна распознать тысячи различных сервисов с помощью зондов и сопоставления сигнатур регулярных выражений, но и она не всемогуща. К примеру, идентификация сервиса Skype v2 требует два независимо работающих друг от друга зонда, чьи возможности по определению версий не отличаются высокой гибкостью. Также Nmap способен распознать часть SNMP-сервисов, если попытается перебрать несколько сотен community имен методом грубой силы. Для решения обеих вышеприведенных задач не слишком удобно использовать стандартные методы определения версий Nmap, но обе они легко выполняются с помощью NSE. По этой причине система определения версий сейчас вызывает по умолчанию NSE для решения задачи определения версии при обработки некоторых сложных сервисов.

3. Поиск уязвимостей

Когда обнаруживается новая уязвимость, она становится общеизвестной, и специалистам по сетевой безопасности нужно срочно просканировать свои сети, чтобы быстро идентифицировать уязвимые системы, до того, как это сделают за них плохие парни. Хотя Nmap и не является полноценным сканером уязвимостей, мощный потенциал NSE позволяет ему осуществлять проверки уязвимостей даже с учетом очень жестких требований. К примеру, когда ошибка Heartbleed в криптографическом программном обеспечении OpenSSL поставила под угрозу сотни тысяч систем по всему миру, разработчики Nmap отреагировали написанием скрипта ssl-heartbleed detection в течение двух дней.

4. Обнаружение бэкдоров

Многие киберзлоумышленники, а также некоторые автоматические черви оставляют бэкдоры, чтобы на будущее обеспечить себе лазейку для осуществления более легкого проникновения в вашу систему. Часть из этих бэкдоров можно обнаружить с помощью стандартной процедуры определения версий Nmap на основе сопоставления сигнатур регулярных выражений, но для надежного обнаружения многих более сложных червей и бэкдоров требуются расширенные возможности NSE. В частности, NSE применяется для обнаружения бэкдора DoublePulsar, использующего уязвимость в реализации протокола SMB, бэкдор-версий для IRC-сервера UnrealIRCd, а также FTP-серверов vsftpd и ProFTPd.

5. Обнаружение уязвимостей

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

Какие категории скриптов NSE существуют?

nmap скрипты поиска уязвимостей. nmap scripting engine rukovodstvo 03. nmap скрипты поиска уязвимостей фото. nmap скрипты поиска уязвимостей-nmap scripting engine rukovodstvo 03. картинка nmap скрипты поиска уязвимостей. картинка nmap scripting engine rukovodstvo 03. Привет, хабровчане. Делимся с вами авторской статьей, которую подготовил Александр Колесников.

В настоящее время существует 598 скриптов NSE, которые вы можете найти в папке «scripts» — поддиректории основного каталога Nmap. Для большей производительности все скрипты проиндексированы в базе данных «scripts/script.db», где указано, к какой категории или категориям принадлежит каждый скрипт.

В зависимости от целевого применения, а также для упрощения их использования, скрипты NSE сгруппированы по разным категориям. В настоящее время определены следующие категории скриптов NSE: auth, broadcast, brute, default. discovery, dos, exploit, external, fuzzer, intrusive, malware, safe, version и vuln (имена категорий не чувствительны к регистру). Ниже приведено более детальное представление каждой категории:

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

nmap скрипты поиска уязвимостей. nmap scripting engine rukovodstvo 04. nmap скрипты поиска уязвимостей фото. nmap скрипты поиска уязвимостей-nmap scripting engine rukovodstvo 04. картинка nmap скрипты поиска уязвимостей. картинка nmap scripting engine rukovodstvo 04. Привет, хабровчане. Делимся с вами авторской статьей, которую подготовил Александр Колесников.

Скрипты, в зависимости от их функциональной направленности, а также фазы сканирования, в ходе которой они выполняются, разделены на четыре типа (некоторые скрипты могут поддерживать сразу несколько типов операций):

Примечание: многие скрипты могут запускаться как prerule script, так и как postrule script. В этих случаях рекомендуется использовать функциональность prerule во избежание несогласованности.

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *