Nmap zenmap gui как пользоваться windows

Table of Contents
  • Nmap Network Scanning
  • Chapter 12. Zenmap GUI Users’ Guide

Table of Contents

  • Introduction
    • The Purpose of a Graphical Frontend for Nmap
  • Scanning
    • Profiles
    • Scan Aggregation
  • Interpreting Scan Results
    • Scan Results Tabs
      • The Nmap Output tab
      • The Ports / Hosts tab
      • The Topology tab
      • The Host Details tab
      • The Scans tab
    • Sorting by Host
    • Sorting by Service
  • Saving and Loading Scan Results
    • The Recent Scans Database
  • Surfing the Network Topology
    • An Overview of the Topology Tab
    • Legend
    • Controls
      • Action controls
      • Interpolation controls
      • Layout controls
      • View controls
      • Fisheye controls
    • Keyboard Shortcuts
    • The Hosts Viewer
  • The Profile Editor
    • Editing a Command
      • Script selection
    • Creating a New Profile
    • Editing or Deleting a Profile
  • Host Filtering
  • Searching Saved Results
  • Comparing Results
  • Zenmap in Your Language
    • Creating a new translation
  • Files Used by Zenmap
    • The nmap Executable
    • System Configuration Files
    • Per-user Configuration Files
    • Output Files
  • Description of zenmap.conf
    • Sections of zenmap.conf
  • Command-line Options
    • Synopsis
    • Options Summary
    • Error Output
  • History

Introduction

Zenmap is the official graphical user interface (GUI) for the Nmap Security
Scanner. It is a multi-platform, free and open-source application
designed to make Nmap easy for beginners to use while providing
advanced features for experienced Nmap users. Frequently used scans
can be saved as profiles to make them easy to run repeatedly. A
command creator allows interactive creation of Nmap command lines.
Scan results can be saved and viewed later. Saved scans can be
compared with one another to see how they differ. The results of
recent scans are stored in a searchable database. A typical Zenmap screen shot is shown in Figure 12.1. See the official Zenmap web page for more screen shots.

Figure 12.1. Typical Zenmap screen shot

Typical Zenmap screen shot

This guide is meant to make Nmap and Zenmap easy to use together,
even if you haven’t used either before. For the parts of this guide that
deal specifically with Nmap (command-line options and such), refer
to Chapter 15, Nmap Reference Guide.

The Purpose of a Graphical Frontend for Nmap

No frontend can replace good old command-line Nmap. The nature of a
frontend is that it depends on another tool to do its job. Therefore
the purpose of Zenmap is not to replace Nmap, but to make Nmap
more useful. Here are some of the advantages
Zenmap offers over plain Nmap.

Interactive and graphical results viewing

In addition to showing Nmap’s normal output, Zenmap can
arrange its display to show all ports on a host or all hosts
running a particular service. It summarizes details about a
single host or a complete scan in a convenient
display. Zenmap can even draw a topology map of discovered
networks. The results of several scans may be combined
together and viewed at once.

Comparison

Zenmap has the ability to show the differences
between two scans. You can see what changed between the same
scan run on different days, between scans of two different
hosts, between scans of the same hosts with different
options, or any other combination. This allows
administrators to easily track new hosts or services
appearing on their networks, or existing ones going down.

Convenience

Zenmap keeps track of your scan results until you choose to
throw them away. That means you can run a scan, see the
results, and then decide whether to save them to a file. There
is no need to think of a file name in advance.

Repeatability

Zenmap’s command profiles make it easy to run the exact same
scan more than once. There’s no need to set up a shell script
to do a common scan.

Discoverability

Nmap has literally hundreds of options, which can be
daunting for beginners. Zenmap’s interface is designed to
always show the command that will be run, whether it comes
from a profile or was built up by choosing options from a
menu. This helps beginners learn and understand what they are
doing. It also helps experts double-check exactly what will be run before they press Scan.


Загрузить PDF


Загрузить PDF

Вы беспокоитесь о безопасности вашей или какой-нибудь другой сети? Защита вашего маршрутизатора от нежелательных подключений является залогом безопасности вашей сети. Одним из простых методов является Nmap или Network Mapper. Это программа сканирования, которая проверяет какие порты открыты и какие закрыты, а так же другие детали. Специалисты по безопасности используют эту программу для тестирования безопасности сети. Чтобы научиться использовать эту программу смотрите Шаг 1.

  1. Изображение с названием Run a Simple Nmap Scan Step 1

    1

    Скачайте установщик Nmap. Вы можете найти установщик на сайте разработчиков и скачать бесплатно. Рекомендуется скачивание именно с сайта разработчиков, чтобы избежать риск скачивания вирусов или подмененных файлов. Скачивая Nmap вы одновременно получить Zenmap, графический интерфейс для Nmap, что делает программу простой в использовании для новичков при выполнении сканирования без знания команд.

    • Программа Zenmap доступна для операционных систем Windows, Linux, и Mac OS X. Вы можете найти установщики на официальном сайте Nmap.
  2. Изображение с названием Run a Simple Nmap Scan Step 2

    2

    Установите Nmap. Запустите установщик сразу после окончания загрузки. Выберите компоненты для установки. Чтобы полностью воспользоваться всеми возможностями Nmap выберите все компоненты. Nmap не будет устанавливать рекламные или шпионские приложения.

  3. Изображение с названием Run a Simple Nmap Scan Step 3

    3

    Запустите программу “Nmap – Zenmap” GUI. Если во время установки вы оставили все пункты не тронутыми, то иконка программы должна появиться на вашем рабочем столе. Если нет, посмотрите в меню старт и запустите Zenmap.

  4. Изображение с названием Run a Simple Nmap Scan Step 4

    4

    Введите цель вашего сканирования. Программа Zenmap превращает сканирование сети в очень простой процесс. В первую очередь выберете цель сканирования. Вы можете ввести домен (example.com), IP-адрес (127.0.0.1), сеть (192.168.1.0/24), или комбинацию перечисленных.

    • В зависимости от загрузки и цели вашего сканирования, использование Nmap может оказаться нарушением пользовательских правил вашего интернет провайдера. Всегда проверяйте местные пользовательские правила во время использования Nmap в случаях сканирования этой программой вне вашей собственной сети.
  5. Изображение с названием Run a Simple Nmap Scan Step 5

    5

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

    • Intense scan — обширное сканирование. Включает распознавание операционной системы, версии, скриптов, трассировку, и имеет агрессивное время сканирования.
    • Ping scan — это сканирование, определяет онлайн статус цели вашего сканирования, и не сканирует порты.
    • Quick scan — сканирует быстрее чем обычный скан с агрессивным временем сканирования и выборку портов.
    • Regular scan — это стандартны Nmap скан без каких-либо модификаций. Результат включает пинг и открытые порты.
  6. Изображение с названием Run a Simple Nmap Scan Step 6

    6

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

  7. Изображение с названием Run a Simple Nmap Scan Step 7

    7

    Посмотрите ваши результаты. После окончания скана, вы увидите сообщение “Nmap is done” в низу вкладки Nmap Output. Теперь вы можете проверить ваши результаты, в зависимости от типа выбранного скана. Все результаты собраны во вкладке Output, но, выбирая другие вкладки, вы можете более детально изучить получившийся результат.[2]

    • Ports/Hosts — эта вкладка покажет сканирования портов, включая службы, работающие на этих портах.

      Изображение с названием Run a Simple Nmap Scan Step 7Bullet1

    • Topology — показывает трассировку для выполненного сканирования. Вы можете посмотреть через сколько «прыжков» ваши данные доходят до нужной цели.

      Изображение с названием Run a Simple Nmap Scan Step 7Bullet2

    • Host Details — показывает полную информацию о цели, количество портов, IP-адреса, имена хостов, операционные системы, и другое.

      Изображение с названием Run a Simple Nmap Scan Step 7Bullet3

    • Scans — эта вкладка записывает историю ваших предыдущих сканов. Таким образом вы можете быстро перезапустить скан, проделанный в прошлом, с определенным сетом параметров.

      Изображение с названием Run a Simple Nmap Scan Step 7Bullet4

    Реклама

  1. 1

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

    • Linux — скачайте и установите Nmap из вашего хранилища. Nmap доступен практически во всех версиях Linux. Введите данную команду исходя из ваших путей:

      Изображение с названием Run a Simple Nmap Scan Step 8Bullet1

      • Red Hat, Fedora, SUSE
        rpm -vhU http://nmap.org/dist/nmap-6.40-1.i386.rpm (32-bit) OR
        rpm -vhU http://nmap.org/dist/nmap-6.40-1.x86_64.rpm (64-bit)
      • Debian, Ubuntu
        sudo apt-get install nmap
    • Windows — скачайте и установите Nmap. Вы можете найти его на сайте разработчиков и скачать бесплатно. Рекомендуется скачивание именно с сайта разработчиков, чтобы избежать риск скачивания вирусов или подмененных файлов. Используя установщик вы можете с легкостью установить командную строку Nmap.

      Изображение с названием Run a Simple Nmap Scan Step 8Bullet2

      • Если вы не хотите устанавливать графический интерфейс Zenmap, не выбирайте этот пункт во время установки программы.
    • Mac OS X – скачайте дисковый образ Nmap. Рекомендуется скачивание именно с сайта разработчиков, чтобы избежать риск скачивания вирусов или подмененных файлов. Используйте установщик, чтобы установить программу. Nmap работает на OS X 10.6 и выше.

      Изображение с названием Run a Simple Nmap Scan Step 8Bullet3

  2. 2

    Откройте вашу командную строку. Команды Nmap работают из командной строки и показывают результаты сразу под командой. Вы можете использовать параметры, чтобы изменить структуру сканирования. Вы можете запустить сканирования из любого места прописанного в вашей командной строке.

    • Linux — откройте терминал используя графический интерфейс.

      Изображение с названием Run a Simple Nmap Scan Step 9Bullet1

    • Windows — вы можете нажать комбинацию кнопок Windows+R и написать “cmd”. Пользователи Windows 8 могут нажать Windows+X и выбрать Командную строку из меню.

      Изображение с названием Run a Simple Nmap Scan Step 9Bullet2

    • Mac OS X — откройте терминал, находящийся в Приложениях и Утилитах.

      Изображение с названием Run a Simple Nmap Scan Step 9Bullet3

  3. Изображение с названием Run a Simple Nmap Scan Step 10

    3

    Проведите скан нужных вам портов. Чтобы начать простое сканирование, напишите nmap <target>. Таким образом начнется пинг выбранной цели и сканирование портов. Этот скан очень просто распознать. Результаты будут видны на вашем экране. Возможно вам придется прокрутить наверх, чтобы увидеть результаты полностью.

    • В зависимости от загрузки и цели вашего скана, использование Nmap может оказаться нарушением правил вашего интернет провайдера. Всегда проверяйте местные пользовательские правила во время использования Nmap в случаях сканирования этой программой вне вашей собственной сети.
  4. Изображение с названием Run a Simple Nmap Scan Step 11

    4

    Проведите модифицированное сканирование. Вы можете использовать командные переменные, чтобы изменить параметры сканирования, в результате получая более или менее обширное сканирование. Вы можете добавить несколько переменных оставляя пробел между каждым. Переменные ставятся до цели: nmap <variable> <variable> <target>[3]

    • -sS — это скрытое сканирование SYN. Это сканирование сложнее обнаружить, чем обычное, но может занять дольше времени для завершения. Большинство новых файерволов могут обнаружить сканирование –sS.
    • -sn — это сканирование пинга. Это сканирование не использует обнаружение портов, и только проверяет онлайн статус цели.
    • -O — это сканирование определяет вид операционной системы цели.
    • -A — эта переменная включает обнаружение более обширной информации: операционная система, версия, скрипты, и трассировка.
    • -F — включает быстрое сканирование, и уменьшает количество сканируемых портов.
    • -v — эта переменная показывает большее количество результатов вашего сканирования, делая их читабельными.
  5. Изображение с названием Run a Simple Nmap Scan Step 12

    5

    Выведите результаты вашего сканирования в XML файл. Вы можете настроить вывод результатов вашего сканирования в XML файл и, в последствии, легко открыть их в любом веб-браузере. Чтобы это сделать используйте переменную -oX с названием файла для вывода данных. Полностью команда выглядит таким образом nmap –oX ScanResults.xml <target>.

    • Ваш XML файл будет сохранен в текущей директории работы вашей командной строки.

    Реклама

Советы

  • Интересно как проходит сканирование? Нажмите пробел, или любую кнопку, во время работы скана, чтобы посмотреть прогресс Nmap.
  • Цель не отвечает? Попробуйте добавить переменную “-P0” к вашему сканированию. В результате сканирование Nmap начнет свою работу, даже если программа «думает», что цель не существует. Это бывает полезно, когда компьютер защищён файерволом.
  • Если ваше сканирование занимает большое время (больше 20 минут), попробуйте добавить переменную “-F”, таким образом Nmap сканирование затронет только недавно использовавшиеся порты.

Реклама

Предупреждения

  • Убедитесь, что у вас есть разрешение на сканирование цели. Сканирование государственных сайтов принесет вам не мало проблем. Если вы хотите проверить сканирование, вы можете использоваться scanme.nmap.org. Это тестовый компьютер установленный создателем программы.
  • Если вы часто используете сканирование Nmap, будьте готовы ответить на вопросы от вашего интернет провайдера. Некоторые провайдеры специально проверяют трафик на сканирование Nmap. Программа является известной и часто используемой хакерами.

Реклама

Об этой статье

Эту страницу просматривали 26 157 раз.

Была ли эта статья полезной?

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

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

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

Статья пригодится:

  • Backend разработчикам: вы сможете быстро тестировать свои веб-приложения на наличие уязвимостей и тем самым повысить их надежность и безопасность данных ваших пользователей. (Если конечно исправите уязвимости, которые найдете )
  • Frontend разработчикам: пока npm собирает ваш фронтенд, вы как раз успеете проверить API вашего веб-приложения. А если повезет и вы сможете найти уязвимости, то вы не только поможете своей компании в будущем сохранить свою репутацию (а себе выбить премию), но и сможете целую неделю незлобно троллить ваших backend разработчиков и DevOps инженеров в общем чате.
  • Тестировщикам: освоите новые инструменты и сможете требовать законную прибавку к зарплате, а также немного считать себя хакерами.
  • Владельцам веб-сайтов и стартаперам без раунда: вы сможете самостоятельно базово проверить свой сайт без привлечения дорогостоящих экспертов, а также сможете лучше понимать технические особенности работы вашей бизнес-машины.

А нужно ли проверять?

Немного фактов и мнений:

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

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

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

Хорошая новость — сейчас можно самостоятельно просканировать свое веб-приложение различными бесплатными сканерами безопасности и найти уязвимые места заранее.

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

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

Что будем проверять:

  • Доступ к серверу и исходным кодам
  • Уязвимости веб-серверов (Apache или NGINX)
  • SQL инъекции
  • Межсайтовый скриптинг (XSS).
  • Устойчивость приложения и сервера к перебору паролей
  • Получение доступа к системным каталогам

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

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

  • Многочисленные SQL инъекции
  • XSS уязвимости
  • Простой пароль для ssh доступа
  • Открытый ftp
  • Отсутствие защиты от перебора паролей
  • База данных, доступная из интернета с простым паролем
  • Слишком широкие права доступа к папкам и файлам

В общем все так, как делать не надо.

1. Проверяем сетевую инфраструктуру.

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

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

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

Интересный факт — сyществует целая галерея фильмов, где утилита nmap используется для кибератак. Часть представлено в галерее, под каждой картинкой описание. Более полный список и разбор можно посмотреть по ссылке

Посмотрели картинки, теперь можно и поработать! Приступаем к делу.

Устанавливаем nmap

В установке нет ничего сложного. Примеры установки покажу на примере Windows и Mac OS. В дистрибутивах Linux последняя версия nmap обычно установлена по умолчанию.

Установка на Windows 10

Перейдите по ссылке загрузки nmap и загрузите последнюю стабильную версию. На данный момент (16.09.2020) эта версия 7.80. Скачать ее можно по этой ссылке с официального сайта. Дальше запустите nmap-7.80-setup.exe от имени администратора. Программа установки по умолчанию предложит установить все компоненты, галочки можно не снимать. Описывать шаги далее подробно ( Примите лицензионное соглашение и тд) не буду, там все изи.

Запуск nmap на Windows

Запускать nmap можно как в режиме графического интерфейса, так и через командную строку.

Для запуска графической оболочки введите в строку поиска nmap и в результатах выберите nmap — Zenmap GUI

Для дальнейшей работы вы можете вводить нужные команды в поле «Команда», а затем нажимать на кнопку Сканирование. Результаты сканирования в виде текстового отчета вы можете посмотреть в окне, которое я старательно подписал «Отчет»

Интерфейс Zenmap

Мне ближе использование nmap через командную строку aka консоль. Для запуска командной строки введите «cmd» в строку поиска на панели инструментов. Нажмите Enter и затем откроется командная строка. Дальше прямо в нее можно вводить nmap команды.

Командная строка в Windows 10 c введенной командой nmap выглядит вот так:

Mac OS X

Нажмите Command+Space и введите «Терминал», после этого нажмите Enter. Дальше последнюю версию nmap можно установить через менеджер HomeBrew c помощью следующей команды, которую нужно ввести в терминале:

brew install nmap

Для запуска nmap просто начинайте команду с nmap, ничего сложного :)

nmap localhost

Устанавливаем скрипты

Также нам надо установить скрипт nmap_vulners, который будет проводить проверку на то, содержатся ли уязвимости в ПО, которое мы используем. Для его установки нужно скачать файлы скрипта и перенести файлы http-vulners-regex.nse и vulners.nse в C:Program Files (x86)Nmapscripts.

Если у вас Mac OS, то перенести файлы скрипта нужно в папку /usr/local/Cellar/nmap/<version>/share/nmap/scripts/

Начинаем проверку

Для начала запускаем сканирование своего сервера командой ниже, чтобы выяснить какие порты используются и для чего. Команда выглядит так (подставьте свой ip или домен). Команду нужно вводить в окне консоли, либо если вы используете Zenmap GUI, то в поле «Команда» (пример я привел выше):

nmap -sV -Pn -p- -T5 161.35.92.161

Параметр T5 отвечает за скорость анализа сервера. Скорость можно менять от T0 до T5, где T0 — очень медленная скорость анализа, а T5 — очень быстрая. Если вы не хотите сильно нагружать сервер, то используйте T2.

Параметр -p- означает, что мы будем проверять весь диапазон портов (‘это займет около 10 минут) . Его можно убрать и тогда скрипт просканирует не все порты, а только 1000 первых (самые распространенные).

Ответ будет выглядеть примерно так:

nmap -sV -Pn 161.35.92.161
Starting Nmap 7.80 ( https://nmap.org ) at 2020-09-16 20:03 RTZ 2 (ceia)
Nmap scan report for 161.35.92.161
Host is up (0.085s latency).
Not shown: 965 filtered ports, 31 closed ports
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.3
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.1 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
3306/tcp open mysql MySQL 5.5.5-10.2.24-MariaDB
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 32.39 seconds

Из отчета мы видим, что nmap отобразил нам порты (под колонкой PORT), которые активны. В данном случае у нас используются:

  • Порт 21 занят под FTP
  • Порт 22 занят под SSH.
  • Порт 80 прослушивается сервером Apache.
  • Порт 3306 используется MySQL

Теперь запускаем наш скрипт, который проверит уязвимости в нашем ПО на сервере. Для этого запускаем следующую команду с указанием портов, которые мы будем проверять. Вам нужно будет заменить список портов на свои .

nmap -T5 -sV -Pn 161.35.92.161 —script=vulners.nse -p22,80,443,8080,8443,3306,20,21,23

Пример отчета. Ссылки на описание уязвимости идут после строки vulners (пример такой строки со ссылкой в отчете: CVE-2014-9278 4.0 https://vulners.com/cve/CVE-2014-9278)

Starting Nmap 7.80 ( https://nmap.org ) at 2020-09-16 20:50 RTZ 2 (ceia)
Nmap scan report for 161.35.92.161
Host is up (0.094s latency).

PORT STATE SERVICE VERSION
20/tcp closed ftp-data
21/tcp open ftp vsftpd 3.0.3
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.1 (Ubuntu Linux; protocol 2.0)
| vulners:
| cpe:/a:openbsd:openssh:8.2p1:
|_ CVE-2014-9278 4.0 https://vulners.com/cve/CVE-2014-9278
23/tcp filtered telnet
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
|_http-server-header: Apache/2.4.41 (Ubuntu)
| vulners:
| cpe:/a:apache:http_server:2.4.41:
| CVE-2020-11984 7.5 https://vulners.com/cve/CVE-2020-11984
| CVE-2020-11984 7.5 https://vulners.com/cve/CVE-2020-11984
| CVE-2020-1927 5.8 https://vulners.com/cve/CVE-2020-1927
| CVE-2020-1927 5.8 https://vulners.com/cve/CVE-2020-1927
| CVE-2020-9490 5.0 https://vulners.com/cve/CVE-2020-9490
| CVE-2020-1934 5.0 https://vulners.com/cve/CVE-2020-1934
| CVE-2020-1934 5.0 https://vulners.com/cve/CVE-2020-1934
|_ CVE-2020-11993 4.3 https://vulners.com/cve/CVE-2020-11993
443/tcp closed https
3306/tcp open mysql MySQL 5.5.5-10.2.24-MariaDB
8080/tcp filtered http-proxy
8443/tcp filtered https-alt
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 24.23 seconds

Как видите из отчета, скрипт проанализировал активное ПО нашего сервера и любезно предоставил ссылки с описанием каждой найденной уязвимости. Что согласитесь, очень удобно как для нас, так и для злоумышленников.

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

nmap -T5 -sV -Pn 161.35.92.161 —script=vulners.nse -p22,80,443,8080,8443,3306,20,21,23 > result.txt

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

2. Проверяем устойчивость к перебору.

В нашем случае nmap определил, что на сервере есть ssh, ftp и mysql. Попробуем проверить насколько устойчивые пароли используются.

SSH

Вводим следующую команду (напомню, что вводить нужно либо в консоль, либо в поле «Команда» программы Zenmap GUI.

nmap —script ssh-brute -p22 161.35.92.161 —script-args userdb=users.lst,passdb=passwords.lst

В случае успеха (процесс не быстрый) скрипт выведет подобранный пароль и логин . Подобранные пары логинпароль будут выведены после строчки Accounts:

22/ssh open ssh
ssh-brute:
Accounts
username:password
Statistics
Performed 32 guesses in 25 seconds.

Кроме того, можно расширить стандартные списки паролей и пользователей от nmap, заменив файлы users.lst и passwords.lst . Различные базы для брутфорса можно найти в этом gitbub репозитории. Файлы с базой паролей можно разместить в папке nmap/nselib/data

FTP

Теперь проверяем FTP порт следующей командой:

nmap -d —script ftp-brute -p 21 161.35.92.161

Аналогично, сервис выведет подобранные пары логинов и паролей:

PORT STATE SERVICE
21/tcp open ftp
| ftp-brute:
| Accounts
| root:root — Valid credentials
|_ Statistics: Performed 864 guesses in 544 seconds, average tps: 4.8

MySQL

Проверяем доступен ли анонимный вход.

nmap -sV —script=mysql-empty-password <target>

В случае успеха:

3306/tcp open mysql
| mysql-empty-password:
| anonymous account has empty password
|_ root account has empty password

Пытаемся подобрать пару логинпароль для входа в базу данных mysql.

nmap —script mysql-brute -p 3306 <target>
—script-args userdb=users.lst, passdb=passwords.lst

Также если у вас используются CMS (WordPress, Joomla, Drupal, Bitrix) и другие базы данных (Mongo, Postgres, Redis), то можно найти готовые скрипты для проверки устойчивости ваших паролей и форм. Ищите по ключевым словам <name_of_CMS_or_DB> brute force nmap

Проверяем формы авторизации

Найти формы авторизации можно с помощью такой команды (вместо <target> — подставьте домен вашего сайта):

nmap -p80 —script http-auth-finder <target>

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

Параметры

  • http-brute.hostname — имя хоста
  • http-form-brute.path — адрес страницы с формой или адрес с API
  • http-brute.method — тип метода, по умолчанию POST
  • http-form-brute.uservar — устанавливает имя переменной, которая отвечает за username. Если не установлено, то скрипт возьмет имя поля из формы
  • http-form-brute.passvar — устанавливает имя переменной, которая отвечает за пароль. Если не установлено, то скрипт возьмет имя поля из формы

Параметры нужно перечислять через запятую после -script-args.

nmap -p-80 —script=http-form-brute —script-args=http-form-brute.path=/login <target>

Если скрипт успешно сработает, то выведет примерно вот такой результат.

Подобранные данные для входа будут отображены после строчки Accounts. В нашем случае скрипт подобрал логин user с паролем secret. В реальном приложении подбор может также занять продолжительное время, зависит от того насколько стойкий пароль используется.

PORT STATE SERVICE REASON
80/tcp open http syn-ack
| http-form-brute:
| Accounts
| user:secret — Valid credentials
| Statistics
|_ Perfomed 60023 guesses in 467 seconds, average tps: 138

Если ваша формы авторизации использует cookies параметры или csrf-token, то в этом случае выдаст ошибку. (И это хорошо, значит базовую защиту вы предусмотрели).

В качестве защиты стоит использовать стойкие пароли, а также ограничивать количество запросов с одного IP-адреса (Rate limiting).

3. Ищем скрытые папки и файлы

Часто разработчики или системные администраторы довольно халатно относятся к правам доступа и забывают закрыть доступ к системным и другим важным папкам. Проверить есть у нас на сервере такие папки можно также с помощью утилиты nmap. Команды будет выглядеть так (вместо <target> нужно подставить IP-адрес сервера или домен сайта) :

nmap -sV -p 80 -T5 —script http-enum <target>

В результате в отчете нам покажут доступные для просмотра папки, интересные файлы — файлы паролей, резервные копии базы данных и тд. (Если такие существуют). Дальше уже вам нужно самостоятельно решить какие папки и файлы нужно закрыть от просмотра, а какие оставить как есть.

Пример небольшого отчета.

Host is up (0.024s latency).
Not shown: 993 closed ports
PORT STATE SERVICE
80/tcp open http
| http-enum:
| /robots.txt: Robots file
| /css/: Potentially interesting directory w/ listing on ‘apache/2.4.41 (ubuntu)’
| /images/: Potentially interesting directory w/ listing on ‘apache/2.4.41 (ubuntu)’
|_ /js/: Potentially interesting directory w/ listing on ‘apache/2.4.41 (ubuntu)’

4. Проверяем на SQL инъекции

Так повелось, что большинство современных веб-приложений в той или иной мере используют SQL базы данных. Обычно параметры веб-страницы или какие-либо пользовательские данные подставляются в SQL запросы и результаты запроса отображаются на веб-странице. Если передаваемые параметры плохо фильтруются, то веб-сервис становится уязвимым для SQL инъекций.

Если сайт уязвим и выполняет такие инъекции, то по сути есть возможность творить с БД (чаще всего это MySQL) что угодно. Именно таким образом чаще всего воруют базы пользователей и их личные данные.

Далее я покажу как с помощью скриптов быстро и эффективно проверить есть в вашем продукте подобные уязвимости. Часто даже довольно опытные разработчики забывают о мерах предосторожности, поэтому даже серьезные продукты имеют подобные проблемы. Попробуем проверить наш тестовый веб-сервис на наличие таких проблем c помощью инструмента sqlmap.

Установка sqlmap.

Sqlmap — это кроссплатформенный сканер с открытым исходным кодом, который позволяет в автоматическом режиме тестировать веб-сервисы на наличие SQL инъекций, а затем использовать их для получения контроля над базой данных.

В данной статье я рассмотрю только способы как можно находить уязвимые для SQL инъекций страницы, API и формы без подробностей о том, как использовать найденные уязвимости для нанесения вреда. (Владельцы сайтов тут облегченно вздохнули). Для использования необходим python версии 2.7 и старше.

Установка на Windows

Для начала работы нам необходимо установить Python. Установщик Python для Windows можно найти на официальном сайте. Ссылку я прикрепил ниже.

На сайте две ветки — 2.x и 3.x, но скачать и установить лучше ветку 3.x. Sqlmap корректно работают с каждой из этих версий, но в дальнейшем нам потребуется версия 3.x.

Загрузить последнюю версию sqlmap можно здесь. Распакуйте архив в любую удобную папку (чтобы было проще ее найти можно распаковать в папку С:Users<имя вашего пользователя>)

Для запуска вначале нужно открыть командную строку. Нажмите Win+R, в появившемся окне введите cmd и нажмите enter. Пример запуска:

С:UsersAdminsqlmap>python ./sqlmap.py -u http://161.35.92.161/page.php?id=2

Установка на Mac OS X

Для начала установим Python. Для этого откройте Tерминал и запустите следующую команду.

brew install python3

Теперь установим sqlmap.

brew install sqlmap

Запуск sqlmap для Mac OS X.

sqlmap -u http://161.35.92.161/page.php?id=2 —dbs -o -random-agent

Начинаем проверку

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

python sqlmap.py -u http://161.35.92.161/page.php?id=2 —dbs -o -random-agent

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

[01:14:57] [INFO] fetched random HTTP User-Agent header value ‘Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0; YComp 5.0.2.6; MSIECrawler)’ from file ‘C:UsersAcersqlmapdatatxtuser-agents.txt’
[01:15:04] [INFO] testing connection to the target URL
[01:15:04] [INFO] checking if the target is protected by some kind of WAF/IPS
[01:15:05] [INFO] testing NULL connection to the target URL
[01:15:05] [INFO] NULL connection is supported with GET method (‘Range’)
[01:15:05] [INFO] testing if the target URL content is stable
[01:15:05] [INFO] target URL content is stable
[01:15:05] [INFO] testing if GET parameter ‘id’ is dynamic
[01:15:05] [INFO] GET parameter ‘id’ appears to be dynamic
[01:15:06] [INFO] heuristic (basic) test shows that GET parameter ‘id’ might be injectable
[01:15:06] [INFO] testing for SQL injection on GET parameter ‘id’
[01:15:06] [INFO] testing ‘AND boolean-based blind — WHERE or HAVING clause’
[01:15:06] [INFO] GET parameter ‘id’ appears to be ‘AND boolean-based blind — WHERE or HAVING clause’ injectable
[01:15:07] [INFO] heuristic (extended) test shows that the back-end DBMS could be ‘CrateDB’
it looks like the back-end DBMS is ‘CrateDB’. Do you want to skip test payloads specific for other DBMSes? [Y/n] n

Скрипт выводит отчет:

[01:15:29] [INFO] testing ‘MySQL >= 5.0 AND error-based — WHERE, HAVING, ORDER BY or GROUP BY clause (FLOOR)’
[01:15:29] [INFO] testing ‘PostgreSQL AND error-based — WHERE or HAVING clause’
[01:15:29] [INFO] testing ‘Microsoft SQL Server/Sybase AND error-based — WHERE or HAVING clause (IN)’
[01:15:30] [INFO] testing ‘Oracle AND error-based — WHERE or HAVING clause (XMLType)’
[01:15:30] [INFO] testing ‘MySQL >= 5.0 error-based — Parameter replace (FLOOR)’
[01:15:30] [INFO] testing ‘Generic inline queries’
[01:15:30] [INFO] testing ‘PostgreSQL > 8.1 stacked queries (comment)’
[01:15:30] [WARNING] time-based comparison requires larger statistical model, please wait…………………. (done)
[01:15:32] [INFO] testing ‘Microsoft SQL Server/Sybase stacked queries (comment)’
[01:15:32] [INFO] testing ‘Oracle stacked queries (DBMS_PIPE.RECEIVE_MESSAGE — comment)’
[01:15:32] [INFO] testing ‘MySQL >= 5.0.12 AND time-based blind (query SLEEP)’
[01:15:43] [INFO] GET parameter ‘id’ appears to be ‘MySQL >= 5.0.12 AND time-based blind (query SLEEP)’ injectable
[01:15:43] [INFO] testing ‘Generic UNION query (NULL) — 1 to 20 columns’
[01:15:43] [INFO] automatically extending ranges for UNION query injection technique tests as there is at least one other (potential) technique found
[01:15:45] [INFO] target URL appears to be UNION injectable with 4 columns
[01:15:46] [INFO] GET parameter ‘id’ is ‘Generic UNION query (NULL) — 1 to 20 columns’ injectable
GET parameter ‘id’ is vulnerable. Do you want to keep testing the others (if any)? [y/N] y

После продолжения анализа нас в первую очередь интересует строчка в конце: GET parameter ‘id’ is vulnerable. Do you want to keep testing the others (if any)? [y/N].

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

Итоговый отчет:

sqlmap identified the following injection point(s) with a total of 74 HTTP(s) requests:

Parameter: id (GET)
Type: boolean-based blind
Title: AND boolean-based blind — WHERE or HAVING clause
Payload: id=2 AND 9795=9795

Type: time-based blind
Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
Payload: id=2 AND (SELECT 7989 FROM (SELECT(SLEEP(5)))geJr)

Type: UNION query
Title: Generic UNION query (NULL) — 4 columns
Payload: id=2 UNION ALL SELECT NULL,CONCAT(0x716a6a6b71,0x736654714b69505a4f6f64434776566d7a43455179446561434f7a46434241555449574d6759575a,0x7162627171),NULL,NULL— —

[INFO] the back-end DBMS is MySQL
web server operating system: Linux Ubuntu
web application technology: Apache 2.4.41
back-end DBMS: MySQL >= 5.0.12
[INFO] fetching database names
available databases [2]:
[*] information_schema
[*] vc_test

[INFO] fetched data logged to text files under ‘C:UsersAdminAppDataLocalsqlmapoutput161.35.92.161’

В итоге скрипт не только определил, что параметр id является уязвимым, но и версию СУБД, а также получил название используемой базы данных на сервере — vc_test, в которой содержится контент сайта. Эту информацию можно найти в конце сгенерированного отчета.

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

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

Пример тестирования запроса POST. Параметры, которые передаются в теле запроса записываются в опцию скрипта —data. Необходимые параметры для POST запроса можно подсмотреть в консоли браузера (Ctrl + Shift + I в Windows, затем перейти в вкладку Network, совершить нужное действие, а затем изучить каким образом формируется запрос)

sqlmap.py -u http://localhost/login —data=»username=alex&password=pass» —dbs -o -random-agent

После авторизации обычно необходимо передать нужные Сookie. В sqlmap за это отвечает опция —cookie. Нужные значения cookies можно получить в инструментах разработчика вашего браузера. (в Windows ctrl+shift+i, затем найдите вкладку Network, а в ней щелкните на запрос с именем домена сайта. В окне справа пролистайте пока не увидите параметр cookie)

Пример команды sqlmap c опцией —cookie.

sqlmap.py -u http://localhost/create —data=»name=alex&message=hacked» —cookie=»security_level=low; PHPSESSID=05aa4349068a1kkaje4kcqnr9o6″ —dbs -o -random-agent

Если параметров несколько, то можно явно указать какой параметр будем тестировать с помощью опции -p.

sqlmap.py -u «http://localhost/profile/?username=alex&page=2» -p username

Можно задавать http заголовки через опцию —headers. Это крайне полезно для тестирования ваших API.

Также если get параметр передается не как get параметр, а как URI, то в этом случае нужно явно указать с помощью *, что данная часть URI является параметром. Пример:

sqlmap.py -u «http://localhost/api/v2/news/2*» —headers=»Authorization: Bearer <token>» —dbs -o -random-agent

Таким образом можно довольно тщательно протестировать ваше веб-приложение на наличие SQL инъекций. Также крайне полезно использовать sqlmap для автоматических тестов и запускать их после каждого изменения кода вашего приложения и не допускать код в ветку master, если он содержит уязвимость.

Для защиты от SQL инъекций нужно тщательно фильтровать параметры и HTTP заголовки, а также использовать подготовленные запросы.

5. Проверка на XSS уязвимости.

Межсайтовый скриптинг (XSS) – это уязвимость, которая заключается во внедрении злоумышленником своего Javascript кода в веб-страницу, которая отображается в браузере пользователя.

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

  • Внедрять свои скрипты в веб-страницу
  • Отправлять на свой сервер пользовательские данные — банковские карты, идентификаторы сессий, пароли и тд.
  • Совершать действия от имени пользователя — рассылать спам, совершать денежные переводы

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

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

В данном случае для тестирования мы воспользуемся утилитой XSStrike

ХSStrike — это довольно продвинутый сканер для поиска XSS уязвимостей c открытым исходным кодом. Он написано на Python3 и довольно прост в начальной настройке и использования.

Установка

Для установки необходимо скачать архив по ссылке и распаковать в удобную вам папку. После этого необходимо открыть консоль (ранее я уже показывал как это сделать в Mac и Windows) и перейти в распакованную папку. Затем нужно выполнить команды в консоле:

pip3 install pygame

Установим необходимые для корректной работы библиотеки:

pip3 install -r requirements.txt

Теперь мы готовы к тестированию. Пример простого запуска, вместо моего url укажите адрес страницы, которую хотите протестировать:

python xsstrike.py -u «http://161.35.92.161/index.php?page=2» —blind

Очень быстро скрипт обнаруживает, что параметр page является уязвимым ( строчка Reflections found ) и через него можно передать js код, который будет исполнен на странице. Пример такого кода приводится в строчке Payload. Такой тип XSS уязвимостей называется reflected XSS.

[~] Checking for DOM vulnerabilities
[+] WAF Status: Offline
[!] Testing parameter: page
[!] Reflections found: 1
[~] Analysing reflections
[~] Generating payloads
[!] Payloads generated: 3072
————————————————————
[+] Payload: <HTmL%0aONmOuSEoVeR+=+(prompt)«%0dx//
[!] Efficiency: 100
[!] Confidence: 10
[?] Would you like to continue scanning? [y/N] n

Кроме того, можно проверять и формы. Отправим на проверку форму, которая отправляет сообщение в наш сервис. Чтобы передать список POST параметров используем опцию —data.

python xsstrike.py -u «http://161.35.92.161/index.php» —data «name=&message=» —blind

Результат: параметр name уязвим.

[~] Checking for DOM vulnerabilities
[+] WAF Status: Offline
[!] Testing parameter: name
[!] Reflections found: 3
[~] Analysing reflections
[~] Generating payloads
[!] Payloads generated: 4608
————————————————————
[+] Payload: <A%0aOnmOUSeOVEr%0d=%0d(prompt)«%0dx>v3dm0s
[!] Efficiency: 100
[!] Confidence: 10
[?] Would you like to continue scanning? [y/N]

Как выглядит ответ, когда скрипт не находит уязвимых параметров:

[~] Checking for DOM vulnerabilities
[+] WAF Status: Offline
[!] Testing parameter: name
[-] No reflection found
[!] Testing parameter: message
[-] No reflection found

Кроме того, в XSStrike поддерживает возможность передавать http заголовки, в том числе и cookies и проверять страницы для открытия которых нужна авторизация. Для этого используется опция —headers

python xsstrike.py -u «http://161.35.92.161/index.php» —data «name=&message=» —headers «Authorization: Bearer <token> Cookie: zmname=none» —blind

Также можно запустить обход по всему сайту. Нужно указать стартовую страницу и сканер начнет обход всех найденных страниц. Запись -l 100 отвечает за количество страниц обхода.

python xsstrike.py -u «http://161.35.92.161» —blind —crawl -l 100

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

[~] Crawling the target
[++] Vulnerable webpage: http://161.35.92.161/index.php
[++] Vector for message: <htMl%09oNMOuseoVER%0d=%0dconfirm()//
[++] Vulnerable webpage: http://161.35.92.161/index.php
[++] Vector for page: <hTMl%0donPointereNter%0a=%0a[8].find(confirm)>
[++] Vulnerable webpage: http://161.35.92.161/index.php
[++] Vector for name: <D3v/+/oNMoUSeoveR%0a=%0a(confirm)()%0dx>v3dm0s
!] Progress: 3/3

Также полезная функция — обход url страниц, которые указаны в файле с помощью опции —seeds. Можно также использовать вместе с опцией —headers.

python xsstrike.py -u «http://example.com» -l 3 —seeds urls.txt

Таким образом можно достаточно тщательно проверить свое веб-приложение на XSS уязвимости. Также хорошим ходом будет написать простой bash скрипт для объединения всех проверок XSS в один скрипт, специально заточенный под ваш проект.

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

Для борьбы с XSS уязвимости нужно также тщательно фильтровать данные, которые показываются пользователю.

Заключение

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

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

Если есть вопросы, то смело пишите их в комментариях или мне в телеграм t.me/alex.belousov92

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

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

Nmap также может определять Mac-адрес, тип ОС , версию службы и многое другое.

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

Nmap — это многоплатформенная программа, которую можно установить во всех основных операционных системах. Первоначально он был выпущен как инструмент только для Linux, а позже был перенесен на другие системы, такие как BSD, Windows и macOS.

Если вы предпочитаете графический интерфейс, а не командную строку, Nmap также имеет графический пользовательский интерфейс под названием Zenmap.

Официальные бинарные пакеты доступны для загрузки со страницы загрузки Nmap.

Процедура установки проста и зависит от вашей операционной системы.

Установка Nmap в Ubuntu и Debian

Nmap доступен из репозиториев Ubuntu и Debian по умолчанию. Чтобы установить его, запустите:

sudo apt update
sudo apt install nmap

Установка Nmap на CentOS и Fedora

На CentOS и других производных от Red Hat запускаются:

sudo dnf install nmap

Установка Nmap на macOS

Пользователи macOS могут установить Nmap, загрузив установочный пакет «.dmg» с сайта Nmap или через Homebrew:

brew install nmap

Установка Nmap в Windows

Версия Nmap для Windows имеет некоторые ограничения и, как правило, немного медленнее, чем версия для UNIX.

Самый простой вариант установки Nmap в Windows — это загрузить и запустить самоустанавливающийся exe-файл.

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

Использование Nmap

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

Упрощенный синтаксис команды nmap выглядит следующим образом:

nmap [Options] [Target...]

Самый простой пример использования Nmap — сканирование одной цели от имени обычного пользователя без указания каких-либо параметров:

nmap scanme.nmap.org

При вызове от имени пользователя без полномочий root, у которого нет прав на использование сырых пакетов, nmap запускает сканирование TCP-соединения. Параметр -sT по умолчанию включен в непривилегированном режиме.

Вывод будет выглядеть примерно так, включая основную информацию о сканировании и список открытых и отфильтрованных TCP-портов.

Starting Nmap 7.91 ( https://nmap.org ) at 2020-12-16 20:19 CET
Nmap scan report for cast.lan (192.168.10.121)
Host is up (0.048s latency).
Not shown: 981 closed ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
53/tcp open domain
80/tcp open http
110/tcp open pop3
143/tcp open imap
443/tcp open https
587/tcp open submission
993/tcp open imaps
995/tcp open pop3s
1025/tcp open NFS-or-IIS
1080/tcp open socks
8080/tcp open http-proxy
8081/tcp open blackice-icecap

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

Самым популярным вариантом сканирования является TCP SYN scan (-sS), который быстрее, чем вариант подключения, и работает со всеми совместимыми стеками TCP.

-sS включается по умолчанию, когда nmap вызывает пользователь с административными привилегиями:

sudo nmap 192.168.10.121

Для более подробного вывода используйте увеличение детализации с помощью -v или -vv:

sudo nmap -vv 192.168.10.121

Чтобы выполнить сканирование UDP, вызовите команду с параметром ( -sU) от имени пользователя root:

sudo nmap -sU 192.168.10.121

Для получения полного списка методов сканирования портов посетите страницу документации Nmap.

Nmap также поддерживает адреса IPv6. Чтобы указать хост IPv6, используйте опцию -6:

sudo nmap -6 fd12:3456:789a:1::1

Указание целевых хостов

Nmap рассматривает все аргументы, которые не являются опциями, как целевые хосты.

Аргументы считаются вариантами, если они начинаются с одинарного или двойного тире (-, --).

Самый простой вариант — передать один или несколько целевых адресов или доменных имен:

nmap 192.168.10.121 host.to.scan

Вы можете использовать нотацию CIDR, чтобы указать диапазон сети:

nmap 192.168.10.0/24

Чтобы указать диапазон октетов, используйте символ тире. Например, для сканирования 192.168.10.1, 192.168.11.1и 192.168.12.1:

nmap 192.168.10-12.1

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

nmap 192.168.10,11,12.1

Вы можете комбинировать все формы:

nmap 10.8-10.10,11,12.0/28 192.168.1-2.100,101

Чтобы убедиться, что вы указали правильные хосты перед сканированием, используйте параметр сканирования списка (-sL), который перечисляет только цели без запуска сканирования:

nmap -sL 10.8-10.10,11,12.0/28 192.168.1-2.100,101

Если вы хотите исключить цели, которые включены в указанный вами диапазон, используйте опцию --exclude:

nmap 10.8-10.10,11,12.0/28 --exclude 10.10.12.12

Указание и сканирование портов

По умолчанию Nmap выполняет быстрое сканирование 1000 самых популярных портов. Это не первые 1000 последовательных портов, а 1000 наиболее часто используемых портов в диапазоне от 1 до 65389.

Для поиска всех портов с 1 по 65535 используйте опцию -p:

nmap -p- 192.168.10.121

Каждый порт может находиться в одном из следующих состояний:

  • open — программа, запущенная на порту, отвечает на запрос.
  • closed — на порту не работает ни одна программа, и хост отвечает на запросы.
  • filtered — хост не отвечает на запрос.

Порты и диапазоны портов указываются с помощью опции -p.

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

nmap -p 443 192.168.10.121

Чтобы указать более одного порта, разделите целевые порты запятой:

nmap -p 80,443 192.168.10.121

Диапазоны портов можно указать с помощью символа тире. Например, чтобы просканировать все порты UDP в диапазоне от 1 до 1024, вы должны запустить:

sudo nmap -sU -p 1-1024 192.168.10.121

Все вместе:

nmap -p 1-1024,8080,9000 192.168.10.121

Порты также можно указать с помощью имени порта. Например, для поиска порта 22, ssh, вы можете использовать:

nmap -p ssh 192.168.10.121

Ping сканирование

Чтобы выполнить ping-сканирование или обнаружение хоста, вызовите команду nmap с опцией -sn:

sudo nmap -sn 192.168.10.0/24

Эта опция указывает Nmap только на обнаружение сетевых хостов, а не на сканирование портов. Это полезно, когда вы хотите быстро определить, какой из указанных хостов запущен и работает.

Отключение разрешения DNS-имен

По умолчанию Nmap выполняет обратное разрешение DNS для каждого обнаруженного хоста, что увеличивает время сканирования.

При сканировании больших сетей рекомендуется отключить разрешение обратного DNS и ускорить сканирование. Для этого вызовите команду с опцией -n:

sudo nmap -n 192.168.10.0/16

Определение ОС, служб и версий

Nmap может обнаружить операционную систему удаленного хоста с помощью снятия отпечатков стека TCP/IP. Чтобы запустить обнаружение ОС, вызовите команду с опцией -O:

sudo nmap -O scanme.nmap.org

Если Nmap может обнаружить ОС хоста, он напечатает что-то вроде следующего:

...
Device type: general purpose
Running: Linux 5.X
OS CPE: cpe:/o:linux:linux_kernel:5
OS details: Linux 5.0 - 5.4
Network Distance: 18 hops

OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 26.47 seconds

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

Благодаря обнаружению службы и версии Nmap покажет вам, какая программа прослушивает порт и версию программы.

Для поиска службы и версии используйте опцию -sV:

sudo nmap -sV scanme.nmap.org
...
PORT STATE SERVICE VERSION
19/tcp filtered chargen
22/tcp open ssh OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.13 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.7 ((Ubuntu))
135/tcp filtered msrpc
139/tcp filtered netbios-ssn
445/tcp filtered microsoft-ds
9929/tcp open nping-echo Nping echo
31337/tcp open tcpwrapped
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
...

Вы также можете сканировать ОС, версии и запускать traceroute с помощью одной команды, используя параметр -A:

sudo nmap -A 192.168.10.121

Вывод Nmap

По умолчанию Nmap выводит информацию на стандартный вывод (stdout).

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

Nmap предоставляет несколько типов вывода. Чтобы сохранить вывод в нормальном формате, используйте параметр, за которым следует имя файла -oN:

sudo nmap -sU -p 1-1024 192.168.10.121 -oN output.txt

Самый популярный вариант — сохранить вывод в формате XML. Для этого воспользуйтесь опцией -oX:

sudo nmap -sU -p 1-1024 192.168.10.121 -oX output.xml

Еще один полезный формат — вывод grepable, который можно анализировать с помощью стандартных инструментов Unix, таких как grep, awk и cut. Вывод grepable указывается с опцией -oG:

sudo nmap -sU -p 1-1024 192.168.10.121 -oG output

Механизм сценариев Nmap

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

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

Например, чтобы проверить, скомпрометирован ли данный хост, вы можете использовать:

nmap -sV --script http-malware-host scanme.nmap.org

Заключение

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

Обратите внимание, что в некоторых странах сканирование сетей без разрешения является незаконным.

Если у вас есть вопросы или замечания, пожалуйста, оставьте комментарий ниже.

nmap logo

Nmap is a network mapping tool. It provides a range of powerful scanning options. Many network administrators use Nmap to scan open ports & services on a network, guessing the operating system on the targeted machine, monitoring hosts, and discovering different services with their version information. In this article, you will see how Nmap on windows works.

Nmap is free and open-source software that was created by Gordon Lyon. Nmap is utilized to find out hosts and services on a network by transmitting some packages over the targeted network. Nmap was once limited only to Linux operating systems, but now it is available for Windows and macOS too.

Note: If you want to use Nmap on Windows without the need of installing bare-metal Linux or a virtual machine utilizing the power of WSL 2, we have an entire tutorial series covering how to do that.

Table of Contents

  • Why should you use Nmap
  • Nmap Installation Process
  • Nmap features
  • Zenmap for Windows
  • Different scan types in Nmap
  • Scanning TCP/UDP ports with Nmap on windows
    • Scanning all ports
    • Scanning specific TCP ports within a range
    • Faster Scan option
    • Scanning TCP ports without a range
    • Scanning UDP ports within a range
    • Scanning all UDP ports
    • Scanning TCP/UDP at once within a specific range
  • Other common Nmap commands
    • Scanning OS & service detection
    • Detecting vulnerabilities using Nmap
    • Saving your Nmap results
    • Detecting Malware on the remote hosts
  • Conclusion

👀 This Tutorial has some related Articles!
👉 Part 1 – Nmap Basics
👉 Part 2 – Nmap Host Discovery
👉 Part 3 – Advanced Nmap Commands
👉 Part 4 – Nmap NSE Scripts
👉 Part 5 – Nmap on Windows

Why should you use Nmap

Nmap is a network mapping tool with a ton of other useful features. Many security researchers and pentester use this open-source tool. Nmap is also a favorite tool for both black and white hat hackers.

A hacker with good knowledge can create images of your network topology. Scanning your network can help you to make yourself more secure and spot the flaws in your system. You can check for any unauthorized devices that are connected to your network, you can find ports that are meant to be closed but are open for some reason, and to point out the users that are running any unauthorized services on your network.

Nmap Installation Process

Installing Nmap on Windows is extremely easy. You have to follow some short steps to use this powerful tool.

  1. Go to the following web address nmap.org/download.html and download the latest stable version
  2. Once the setup is downloaded from their website, now you have to browse to the downloaded “.exe” setup file. Right-click on the file and run it as an administrator.
  3. Now the installation process will start, read the license agreement thoroughly and only accept the license agreement if you agree, by clicking the “I agree” button.
  4. Now choose the components that you want to install with Nmap but choosing them all is recommended. Click on the “Next” button.
  5. The installation location for Nmap will be C:Program Files (x86)Nmap, but you can change the Installation folder to wherever you want. Now click on the “Install” button.
  6. Now the actual installation process will start, and all files will be extracted. Once it is done, your Nmap is ready to use now.

Nmap features

This powerful tool carries many features that can be used by a hacker to get a lot of information about their targeted machine.

  • Identify open ports.
  • Network Inventory.
  • Map a network.
  • Exploiting and finding a vulnerability.
  • Host uptime monitoring.
  • Network security audit.
  • Detecting OS.
  • Detect service and version.

Network Mapping – It can be beneficial for you to check the devices present on a network including all the routers, servers, and switches, and to verify how they are connected physically. Nmap on Windows has the capability to show a whole map of the network.

Nmap on Windows

Detecting OS – Nmap can also be used for OS footprinting. You can check the operating system running on your targeted device, including the vendor name and the version of the system. It can also give you an estimate for the ‘devices’ up-time.

Security Auditing – After footprinting the OS and knowing the applications running on the system, network managers now discover the vulnerability that can lead to specific flaws.

Discovering services – By using Nmap you can do more than just find hosts on the network, you can also check their behavior and whether they are acting as web servers or mail servers and information regarding the version of the software they are using.

Zenmap for Windows

Zenmap offers you a graphical user interface for all the tasks you would normally perform in Nmap by using the command line. Zenmap offers you some extraordinary features that you do not see in the classic Nmap, for example, a network topology map.

Nmap on Windows

You are provided with more options in this GUI version. You can save your scan results with the Nmap format (.nmap) or in the XML (.xml) format.

This incredible GUI of Nmap is available for Windows, and it is very beneficial for users who do not want to play with the CLI interface of Nmap.

Different scan types in Nmap

There are different types of scans that can be performed by using Nmap. The Nmap user performs these scans for various purposes.

TCP Scan

TCP scan performs a three-way handshake from your device to the targeted device. Someone with minimal effort can easily detect the TCP scan, and your IP address of the sender can be logged by the services efficiently.

UDP Scan

UDP is used to check whether there is any port that is listening for the upcoming requests on the targeted machine. You may get a false report in your scan results, as there is no mechanism to respond positively. The UPD scans can be used to uncover any hidden trojan or any RPC services. These scans are not very fast because the machines handle this kind of traffic slowly.

SYN Scan

It is a type of TCP scan. The syn packets are crafted by using Nmap itself, and this syn packet is used to initiate a TCP connection. Nmap results are based upon these special Syn packets. These packets themselves do not establish a connection, but they are utilized to produce scan results on Nmap.

ACK Scan

To check if ports are filtered or not, ACK scans are used. This type of scan can be beneficial if you want to check for the firewalls. If there is simple packet filtering, then it will allow an established connection with the help of ACK bit set.

FIN Scan

The FIN scan is most likely the SYN scan. If the targeted machine receives FIN input, then most of them will send the reset packet (RST) back.

NULL Scan

As the name suggests, the NULL scan sets all the header fields to zero (null). These kinds of packets are not authentic, and some of the targets do not know how to handle this packet. These targets could be your windows machine, and when you scan them using NULL packets, they produce undependable results.

XMAS Scan

XMAS scan has the same nature as the NULL scan, as both of these are hard to detect. The implementation of the TCP stack will prevent windows from responding to the Xmas scans. The XMAS scans are used to operate the FIN, URG, and PSH flag present in the TCP header.

RPC Scan

These kinds of scans are utilized to find the systems that reply to the RPC (Remote procedure call) services. It can allow the commands to run on a specific machine remotely. RPC services can also be used to run on many different ports; that’s why it becomes difficult to tell whether the RPC services are working or not. RPC scan should be done often to check the running RPC services.

IDLE Scan

From all of the above scans for Nmap on Windows or Linux, the IDLE scan is the stealthiest of them all. The attackers mostly use the IDLE scan for malicious attacks. Some specific conditions are necessary to perform this scan.

Scanning TCP/UDP ports with Nmap on windows

One of the best usages of Nmap is to scan ports on the network. By default, there are 1000 ports that Nmap can automatically scan, and you can change that port range according to your scan requirements.

Scanning all ports

In Nmap, we can specify the port range by using the “-p” option. The maximum or highest port number is 65535. If we want to scan all TCP ports, then we can use -p0-65535 option:

nmap -p- 127.0.0.1

Code language: CSS (css)
Nmap on Windows

Scanning specific TCP ports within a range

In Nmap, we can specify the port range by using the “-p” option. The maximum or highest port number is 65535. If we want to scan all TCP ports, then we can use -p1-10 option:

nmap -p1-500 127.0.0.1

Code language: CSS (css)
nmap specific TCP ports

Faster Scan option

If you want your scan to finish fast, then you can use the fast scan option. The regular scan will consume a lot of time, whereas a fast scan option will do it in less time. Use this option if your situation is not critical. You can use -T5 parameter for the quickest level scan of Nmap:

nmap -p- -T5 127.0.0.1

Code language: CSS (css)
nmap fast scan

Scanning TCP ports without a range

There is another way of scanning TCP ports without specifying the range of ports. It will scan for the common 1000 ports:

nmap 127.0.0.1

Code language: CSS (css)
nmap tcp scan

Scanning UDP ports within a range

In Nmap when you scan ports, TCP is scanned per default. In order to scan UDP ports, you have to specify the UDP scan in the statement. You can use -sU for scanning UDP ports.^:

nmap -sU -p 1-500 127.0.0.1

Code language: CSS (css)
nmap specific UDP scan

Scanning all UDP ports

Scanning UDP without range is similar to scanning TCP without range. You use the same -p- option to scan UDP ports without specifying a range:

nmap -sU -p - -T5 127.0.0.1

Code language: CSS (css)
nmap UDP all ports

👀 This Tutorial has some related Articles!
👉 How to get started in Cyber Security – The Complete Guide
👉 How to get started with Bug Bounties
👉 Terminal Customization Series
👉 Best Ethical Hacking Books
👉 Download Kali Linux Safe & Easy
👉 Best Ethical Hacking Tools
👉 Install VSCode on Kali Linux
👉 Dual Boot Kali Linux with Windows
👉 Install Kali Linux on VirtualBox – Complete Beginner Guide
👉 Top Things to do after installing Kali Linux
👉 WiFi Adapter for Kali Linux – The Ultimate Guide
👉 Nmap Beginner Guide Series
👉 Metasploit Tutorial Series
👉 Burp Suite Beginner Guide

Scanning TCP/UDP at once within a specific range

You can also scan both TCP/UDP by using a single statement. You have to use -sU for UDP ports and TCP ports ‘; you’ll use the -sT option:

nmap -sT -sU -p 1-500 127.0.0.1

Code language: CSS (css)
nmap specific tcp and udp scan

Other common Nmap commands

There are a ton of commands that you cannot master in a day, but there are some common and useful commands that you can use instantly. These commands are the basic ones. You can go advance, once you have learned the basics of it. Have a look at some of the most common yet useful commands.

Scanning OS & service detection

You can enable service detection and OS detection by using the -A option and to allow fast scanning we can use -T4 with it. Here is an example:

nmap -T4 -A 127.0.0.1

Code language: CSS (css)
nmap OS detection

Detecting vulnerabilities using Nmap

One of the most significant Nmap features that allow you to go beyond your expectations is that you can use the “Nmap scripting engine” through which you can execute a set of pre-defined scripts, and you can write your won scripts as well in Lua programming language.

NSE (Nmap Scripting Engine) is essential to use when you have to perform a full vulnerability scan. You have to automate everything during a scan that’s why we use scripts.

To perform a vulnerability test, you can use:

nmap -T5 --script vuln 127.0.0.1

Code language: CSS (css)
nmap vulnerability scan

Saving your Nmap results

You can save your results after the scan in Nmap. You can save them in two formats i.e Nmap (.nmap) format or XML (.xml) format. While exporting the results from the Nmap, you have to use the following command statement:

nmap -oN output.txt example.com

Code language: CSS (css)
nmap save output text

You can export the results as an XML document as well:

nmap -oX output.xml example.com

Code language: CSS (css)
nmap save output xml

Detecting Malware on the remote hosts

Nmap has the capability to run different tests to check for Malware or backdoor on some popular operating system services like Proftpd, IRC, SMTP, and SMB. It also offers a module that checks for any malicious file signs in Virustotal databases.

To perform a very simple & straight scan:

nmap -sV --script http-malware-host 127.0.0.1

Code language: CSS (css)
nmap malware scan

By using ‘google’s malware check:

nmap -p 80 --script HTTP-google-malware 127.0.0.1

Code language: CSS (css)
nmap google malware scan

Conclusion

Nmap for Windows is one of the most important and robust tools used for gathering network information and performing operations using NSE. You can stick to Nmap and learn more about it to be a professional. The significance of this tool is enough that every security researcher has heard its name. If you want to be a cybersecurity expert, then you should consider using this tool that carries a lot of flexibility and strength in itself. This beginner’s guide will surely help you to make your base strong so that you can move to advance steps. We also have a series of Nmap tutorials, you may have a look at it to learn more about it here.

👀 This Tutorial has some related Articles!
👉 Part 1 – Nmap Basics
👉 Part 2 – Nmap Host Discovery
👉 Part 3 – Advanced Nmap Commands
👉 Part 4 – Nmap NSE Scripts
👉 Part 5 – Nmap on Windows

полное руководство по Nmap

Contents

  • 1 Что такое Nmap?
  • 2 Анализ сети и анализ пакетов с помощью Nmap
    • 2.1 Примеры использования Nmap
  • 3 Как установить Nmap
    • 3.1 Установить Nmap в Windows
    • 3.2 Установите Nmap в Linux
    • 3.3 Установите Nmap на Mac
  • 4 Как запустить сканирование Ping
  • 5 Методы сканирования портов
    • 5.1 TCP SYN Scan
    • 5.2 TCP Connect Scan
    • 5.3 UDP Scan
    • 5.4 Сканирование порта SCTP INIT
    • 5.5 TCP NULL Scan
  • 6 Сканирование хоста
  • 7 Определить имена хостов
  • 8 Сканирование ОС
  • 9 Обнаружение версии
  • 10 Увеличение многословия
  • 11 Скриптовый движок Nmap
  • 12 Инструменты Nmap GUI
    • 12.1 Zenmap
    • 12.2 Paessler PRTG Сетевой монитор
    • 12.3 WhatsUp Gold
  • 13 Альтернативы Nmap
  • 14 Nmap: необходимый инструмент сетевого администрирования

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

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

Некоторые из основных применений Nmap включают сканирование портов, пинг развертки, Обнаружение ОС, и определение версии. Программа работает с использованием IP-пакетов для определения доступных хостов в сети, а также того, какие службы и операционные системы они используют. Nmap доступен во многих операционных системах от Linux до Free BSD и Gentoo. Nmap также имеет чрезвычайно активное и активное сообщество поддержки пользователей. В этой статье мы разберем основы Nmap, чтобы помочь вам взяться за дело.

Анализ сети и анализ пакетов с помощью Nmap

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

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

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

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

Например, вы можете использовать Nmap для:

  • Определите живые хосты в вашей сети
  • Определите открытые порты в вашей сети
  • Определите операционную систему служб в вашей сети
  • Устранить уязвимости в вашей сетевой инфраструктуре

Как установить Nmap

Смотрите также: Шпаргалка Nmap

Прежде чем мы перейдем к использованию NMap, мы рассмотрим, как его установить. Пользователи Windows, Linux и MacOS могут скачать Nmap здесь.

Установить Nmap в Windows

Используйте самоинсталлятор Windows (называемый nmap-setup.exe) и следуйте инструкциям на экране.

Установите Nmap в Linux

В линуксе, все немного сложнее, так как вы можете выбирать между установкой исходного кода или несколькими бинарными пакетами. Установка Nmap в Linux позволяет создавать собственные команды и запускать пользовательские сценарии. Чтобы проверить, установлен ли у вас Nmap для Ubuntu, запустите Nmap — версия команда. Если вы получили сообщение о том, что nmap в данный момент не установлен, введите sudo apt-get установить nmap в командной строке и нажмите Enter.

Установите Nmap на Mac

На Mac, Nmap предлагает специальный установщик. Чтобы установить на Mac, дважды щелкните файл nmap-.dmg и откройте файл с именем птар-mpkg. Открытие этого запустит процесс установки. Если вы используете OS X 10.8 или более позднюю версию, ваши настройки безопасности могут быть заблокированы, поскольку nmap считается «неопознанным разработчиком». Чтобы обойти это, просто щелкните правой кнопкой мыши файл .mpkg и выберите открыто.

Как запустить сканирование Ping

Одной из основ сетевого администрирования является выделение времени для определения активных хостов в вашей сети. На Nmap это достигается с помощью сканирования ping. Сканирование ping (также называемое IP-адресом обнаружения в команде подсети) позволяет пользователю определить, подключены ли IP-адреса к сети. Он также может быть использован как метод обнаружения хоста. Сканирование ARP-пинга является одним из лучших способов обнаружения хостов в сетях LAN..

Чтобы запустить проверку связи ARP, введите в командной строке следующую команду:

# nmap -sp 192.100.1.1/24

Это вернет список хостов, которые ответили на ваши запросы ping вместе с общим количеством IP-адресов в конце. Пример показан ниже:

nmap ping scan

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

Методы сканирования портов

Когда дело доходит до сканирования портов, вы можете использовать различные методы в Nmap. Вот основные из них:

  • sS TCP SYN сканирование
  • sT TCP-соединение
  • sU UDP сканирование
  • SY SCTP INIT сканирование
  • sN TCP NULL

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

TCP SYN Scan

sS TCP SYN Scan

TCP SYN Scan это одна из самых быстрых техник сканирования портов в вашем распоряжении на Nmap. Вы можете сканировать тысячи портов в секунду в любой сети, которая не защищена брандмауэром.

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

TCP Connect Scan

sT TCP Connect Scan

TCP Connect Scan является основным альтернативным сканированием TCP, когда пользователь не может запустить сканирование SYN. В рамках сканирования TCP connect пользователь выполняет системный вызов connect для установления соединения с сетью. Вместо чтения пакетов ответов Nmap использует этот вызов для получения информации о каждой попытке подключения. Один из самых больших недостатков сканирования TCP-соединения заключается в том, что для определения открытых портов требуется больше времени, чем при сканировании SYN.

UDP Scan

sU UDP Scan

Если вы хотите запустить сканирование портов в службе UDP, то UDP-сканирование ваш лучший курс действий. UDP может использоваться для сканирования портов, таких как DNS, SNMP и DHCP в вашей сети. Это особенно важно, потому что они являются областью, которую злоумышленники обычно используют. При запуске сканирования UDP вы также можете запустить сканирование SYN одновременно. Когда вы запускаете сканирование UDP, вы отправляете пакет UDP на каждый целевой порт. В большинстве случаев вы отправляете пустой пакет (кроме портов, таких как 53 и 161). Если вы не получите ответ после передачи пакетов, то порт классифицируется как открытый.

Сканирование порта SCTP INIT

sY SCTP INIT Scan

Сканирование порта SCTP INIT охватывает службы SS7 и SIGTRAN и предлагает комбинацию протоколов TCP и UDP. Как и Syn Scan, SCTP INIT Scan невероятно быстр, способен сканировать тысячи портов каждую секунду. Это также хороший выбор, если вы хотите сохранить конфиденциальность, поскольку он не завершает процесс SCTP. Это сканирование работает, отправляя блок INIT и ожидая ответа от цели. Ответ с другим чанком INIT-ACK идентифицирует открытый порт, тогда как чек ABORT указывает не прослушивающий порт. Порт будет помечен как фильтр, если ответ не получен после нескольких повторных передач.

TCP NULL Scan

sN TCP NULL Scan

TCP NULL сканирование это одна из самых хитрых техник сканирования в вашем распоряжении. Это работает, используя лазейку в TCP RFC, которая обозначает открытые и закрытые порты. По сути, любой пакет, который не содержит биты SYN, RST или ACK, будет запрашивать ответ с возвращенным RST, если порт закрыт, и нет ответа, если порт открыт. Самым большим преимуществом сканирования TCP NULL является то, что вы можете ориентироваться в фильтрах маршрутизаторов и межсетевых экранах. Несмотря на то, что они являются хорошим выбором для скрытности, они все же могут быть обнаружены системами обнаружения вторжений (IDS).

Сканирование хоста

Если вы хотите идентифицировать активные хосты в сети, то сканирование хостов — лучший способ сделать это. Сканирование хоста используется для отправки пакетов запроса ARP всем системам в сети. Он отправит запрос ARP на конкретный IP-адрес в пределах диапазона IP-адресов, а затем активный хост ответит пакетом ARP, отправив свой MAC-адрес с сообщением «host is up». Вы получите это сообщение от всех активных хостов. Чтобы запустить сканирование хоста, введите:

nmap -sP

Это поднимет экран, показывающий следующее:

сканирование хоста nmap

Определить имена хостов

Одной из самых простых и полезных команд, которую вы можете использовать, является команда -sL, которая указывает nmap выполнить запрос DNS на выбранный вами IP-адрес. Используя этот метод, вы можете найти имена хостов для IP без отправки одного пакета хосту. Например, введите следующую команду:

nmap -sL 192.100.0.0/24

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

Сканирование ОС

Еще одна полезная функция Nmap — определение ОС. Чтобы обнаружить операционную систему устройства, Nmap отправляет пакеты TCP и UDP в порт и анализирует его ответ. Затем Nmap запускает различные тесты от выборки TCP ISN до выборки IP ID и сравнивает ее со своей внутренней базой данных из 2600 операционных систем. Если он находит совпадение или отпечаток пальца, он предоставляет сводку, состоящую из имени поставщика, операционной системы и версии..

Чтобы определить операционную систему хоста, введите следующую команду:

nmap -O 192.168.5.102

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

Обнаружение версии

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

#nmap -sV 192.168.1.1

Увеличение многословия

При запуске любого сканирования через Nmap вам может потребоваться дополнительная информация. Ввод подробной команды -v предоставит вам дополнительную информацию о том, что делает Nmap. На Nmap доступно девять уровней многословия, от -4 до 4:

  • Уровень -4 — Не выводит (например, вы не увидите ответные пакеты)
  • Уровень 3 — Аналогично -4, но также предоставляет вам сообщения об ошибках, чтобы показать вам, если команда Nmap не удалась
  • Уровень 2 — Есть ли выше, но также есть предупреждения и дополнительные сообщения об ошибках
  • 1-й уровень — Показывает информацию во время выполнения, такую ​​как версия, время запуска и статистика
  • Уровень 0 — Уровень детализации по умолчанию, который отображает отправленные и полученные пакеты, а также другую информацию
  • 1-й уровень — То же, что уровень 0, но также предоставляет подробную информацию о деталях протокола, флагах и времени.
  • Уровень 2 — Показывает более обширную информацию об отправленных и полученных пакетах
  • Уровень 3 — Показать полную необработанную передачу отправленного и полученного пакета
  • Уровень 4 — То же, что 3-й уровень с дополнительной информацией

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

Скриптовый движок Nmap

Если вы хотите получить максимальную отдачу от Nmap, вам нужно будет использовать Nmap Scripting Engine (NSE). NSE позволяет пользователям писать сценарии на Lua, чтобы они могли автоматизировать различные сетевые задачи. Ряд различных категорий сценариев может быть создан с помощью NSE. Эти:

  •  авт — скрипты, которые работают с учетными данными аутентификации или обходят их в целевой системе (например, x11-access).
  • широковещательный — скрипты, обычно используемые для обнаружения хостов путем трансляции в локальной сети
  • скотина — скрипты, использующие грубую силу для получения доступа к удаленному серверу (например, http-brute)
  • дефолт — сценарии, установленные по умолчанию в Nmap на основе скорости, полезности, многословия, надежности, навязчивости и конфиденциальности
  • открытие — скрипты для поиска в общедоступных реестрах, службах каталогов и устройствах с поддержкой SNMP
  • DOS — скрипты, которые могут вызвать отказ в обслуживании. Может использоваться для тестирования или атаки на сервисы.
  • эксплуатировать — скрипты, предназначенные для использования сетевых уязвимостей (например, http-shellshock
  • внешний — скрипты, которые отправляют данные во внешние базы данных, такие как whois-ip
  • fuzzer — скрипты, которые отправляют рандомизированные поля внутри пакетов
  • назойливый — скрипты, которые могут привести к сбою целевой системы и быть восприняты другими администраторами как вредоносные
  • вредоносные программы — скрипты, используемые для проверки, была ли система заражена вредоносным ПО
  • сейф — сценарии, которые не считаются навязчивыми, предназначены для использования лазеек или аварийных служб
  • версия — используется в функции определения версии, но не может быть выбран явно
  • vuln — скрипты, предназначенные для проверки уязвимостей и сообщения о них пользователю

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

Например, ввод команды -sC позволит вам использовать общие сценарии, встроенные в платформу. Если вы хотите запускать свои собственные сценарии, вы можете вместо этого использовать опцию –script. Важно помнить, что любые скрипты, которые вы запускаете, могут повредить вашу систему, поэтому дважды проверьте все перед принятием решения запустить скрипты.

Инструменты Nmap GUI

Zenmap

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

пользовательский интерфейс zenmap

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

Paessler PRTG Сетевой монитор

Карта сети PRTG

Paessler PRTG Сетевой монитор использует Простой протокол управления сетью (SNMP), чтобы найти все устройства в вашей сети. Как только каждая единица оборудования была обнаружена, она регистрируется в инвентаре. Инвентаризация составляет основу карты сети PRTG. Вы можете реорганизовать карту вручную, если хотите, а также можете указать индивидуальные макеты. Карты не ограничиваются отображением устройств на одном сайте. Он может отображать все устройства в глобальной сети и даже отображать все сайты компании на реальной карте мира. Облачные сервисы также включены в карту сети.

Функция обнаружения сети PRTG работает постоянно. Таким образом, если вы добавляете, перемещаете или удаляете устройство, это изменение будет автоматически отображаться на карте, а инвентарь оборудования также будет обновляться..

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

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

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

WhatsUp Gold

Карта сети WhatsUp Gold

WhatsUp Gold имеет функцию автообнаружения, которая охватывает проводные, беспроводные и виртуальные среды. Программное обеспечение для этого инструмента мониторинга инфраструктуры устанавливается в Windows Server 2008 R2, 2012, 2012 R2 и 2016. При первом запуске утилиты запускаются процедуры обнаружения сети. Они регистрируют все устройства уровня 2 и уровня 3 (коммутаторы и маршрутизаторы) в вашей сети и записывают их в реестр. Процесс обнаружения также генерирует карту сети. Система регистрации постоянно работает, поэтому любые изменения в сети будут отражены на карте. Облачные сервисы, которые использует ваша компания, также включаются в карту, и вы можете охватить несколько сайтов, чтобы построить свою глобальную сеть на одной карте..

В процессе обнаружения WhatsUp Gold используются процедуры Ping и SNMP. Тип устройства также зарегистрирован. Это помогает монитору корректировать процессы соответственно для каждого типа оборудования. Всплывающее окно с деталями, прикрепленное к каждому значку на карте, покажет вам детали об этом оборудовании.

Состояния устройств в сети контролируются с помощью SNMP. Карта показывает состояние каждого устройства с помощью цвета: зеленый — хорошо, желтый — предупреждение, красный — плохо. Так, Вы можете сразу увидеть, как все эти элементы оборудования делают. Состояние сетевого соединения также выделяется цветом: зеленый для хорошего, желтый для предупреждения и красный для перегруженного.

Вы можете получить надстройку для анализа сетевого трафика для WhatsUp Gold, чтобы получить более глубокие сведения о производительности вашей сети. Это дает вам больше возможностей для устранения неполадок благодаря пониманию производительности сети как по каналам связи, так и сквозным. Инструмент планирования мощности помогает вам прогнозировать спрос и при необходимости расширять ресурсы.

Альтернативы Nmap

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

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

Nmap: необходимый инструмент сетевого администрирования

В конечном счете, если вы ищете инструмент, который позволит вам ориентироваться на системы в вашей сети и перемещаться по межсетевым экранам, тогда Nmap — это инструмент для вас. Хотя это не так эффектно, как некоторые другие инструменты сетевого анализа на рынке, оно остается основной частью инструментария большинства ИТ-администраторов. Сканирование Ping и сканирование портов — это только верхушка айсберга, когда мы говорим о том, на что способна эта платформа..

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

Preparing attacks to systems and networks is complex. Yet, all the attacks starts from the same point: reconnaissance. This aims to understand how the system works, and what are possible vulnerabilities. Several tools allow you to perform reconnaissance, but the most famous is nmap. Even if you don’t want to do penetration testing, you should know how to use this tool. In this nmap tutorial, we will see how to use nmap and its visual companion, zenmap.

Introducing Nmap

What is Nmap?

Nmap stands for “network mapper”, and this is pretty explanatory. In fact, nmap is a tool that allows you to create a detailed map of a network. As we will see later in this nmap tutorial, you can use this tool to have a clear picture of the network. To start, we can reconstruct the topology, identifying all the devices in the network. However, nmap can do far more than that. Using advanced techniques, it can identify what services are running on each host and even their version. If you are lucky, nmap will even detect the operating system of each device.

Knowing services, versions, and operating systems is essential for the attacker. With this precious information, he can use targeted attacks and exploit known vulnerabilities.

Nmap is a command-line tool. In the terminal or prompt, you can use the nmap command to launch the scan. In this nmap tutorial, we will see how to use options of this command to better control the scan.

What about ZenMap?

ZenMap is a graphical interface to facilitate the use of nmap. With zenmap, you can construct nmap queries easily, and run them from a graphical interface. However, its best enrichment to nmap is about the output. ZenMap can actually visualize the topology of the network graphically, and you can click on each host to gather more information.

ZenMap is a powerful extension to nmap that we will cover in this nmap tutorial
The GUI of ZenMap.

Where to get nmap and zenmap?

If you are a Microsoft Windows user, you can download the binaries from the official nmap website. These are the executables that will install both nmap and zenmap. Once you install them, you are ready to use nmap in the prompt, and you can search for ZenMap within your installed programs. Luckily, both nmap and zenmap are free and open source!

For Linux users, using your package manager is enough to get you running. Depending on your Linux version, you can run  sudo apt-get install nmap or yum install nmap. If you want zenmap as well (as you should), go to the official website of nmap.

Mac users will find executable binaries in the same link of Windows users.

Nmap tutorial: scanning with nmap

A first scan

Despite its immense power, using nmap is simple. This is especially true for basics scans. In fact, the syntax for the command is just this:

nmap [scan type] [options] {target}

Scan type and options are in square brackets because they are optional. By default, you only need to specify the target. After all, you need to tell nmap what you want to scan! The official nmap community offers you a sample target website to scan: scanme.nmap.org. If we scan it, we will see this output.

C:>nmap scanme.nmap.org

Starting Nmap 7.60 ( https://nmap.org ) at 2018-05-12 11:45 W. Europe Daylight Time
Nmap scan report for scanme.nmap.org (45.33.32.156)
Host is up (0.22s latency).
Not shown: 994 closed ports
PORT      STATE    SERVICE
22/tcp    open     ssh
53/tcp    filtered domain
80/tcp    open     http
445/tcp   filtered microsoft-ds
9929/tcp  open     nping-echo
31337/tcp open     Elite

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

C:>

As you can see, this will tell you the destination IP as well as the opened ports with the service they expose. In the last line, it tells us that one host is up. This is because we can target multiple hosts or even entire networks at the same time. A common approach is to target an entire subnet, in CIDR notation. For example, try using 192.168.1.0/24 as target (if your home router offers that network). This will scan all hosts in that subnet, identify which ones are up, and the exposed ports on each. You can also specify an IP range, like 172.16.10.43-172.16.10.53.

Nmap offers endless possibilities

In case you omit the target, nmap will show the help. Here you will see that you have literally tons of options to play with. You can detect IPS and IDS systems, detect the target operating system, and more. Covering all the options is way beyond the objectives of this article, yet we are going to see the most common options.

Knowing some options will allow you to quickly get the information you need. Doing a scan can take time, so you don’t want to scan for something you already know you won’t need.

Nmap options for Host Discovery

Host discovery is the first thing you do with nmap. That is, you look for the hosts actually listening within a broader range of addresses. This is the first step to identify interesting hosts. Here, you have several options to help.

  • -sL just lists the hosts, and attempt a reverse DNS. This means you will get the name of the host from its IP, if available. This is a quick starting point and does not send any packet to the target host. Thus, it also disables more advanced features.
  • -sn disables port scanning, and just discover the hosts. However, port 443 and 80 are checked with a TCP SYN during the host discovery process. This comes handy if you want to discover many hosts in little time, as port scan takes time.
  • -Pn disables the first discovery step, that identifies if a host is up. By default, nmap will perform advanced (and long) scans only against up hosts. If you use this option, it will attempt the full discovery against every single host.
  • -PS attempts the discovery using TCP SYN against a port range
  • -PU attempts the discovery by sending UDP packets to the specified port range
  • -PO is for advanced users, as it attempts the discovery with raw IP packets, setting the protocol payload in IP header to the protocols specified. This will look for any kind of response with the same protocol, or for an ICMP protocol unreachable message
  • -PR is for ARP discovery, and very important for LANs. If you are attempting to discovering hosts in a LAN, if they respond to ARP you will know they are up. Useless on remote hosts.
  • --traceroute performs a backward traceroute to the host. It starts with a high TTL and decrements until zero. This allows nmap to perform some efficiencies.

Port Scanning

Once you discovered the hosts, the next step of this nmap tutorial is the port scanning. This allows you to identify what each server is doing in the network. We know that applications use generally TCP or UDP, and each application has its own port. (If you are curious about that, I recommend this reading on TCP and UDP).

Nmap classifies each scanned port with a state. If the port is open, there is an application actively listening on that port. Instead, if the port is closed it responds to Nmap probes, but no application is listening. If the port is unfiltered, nmap can access it but was unable to determine if it is open or closed. The port could also be filtered: an intermediate device is preventing nmap from accessing it. The other two states are open or filtered, and closed or filtered: when nmap is unsure if the port is filtered or either open or closed.

Manage the port scan

Now that you know the basics, we are ready to look at the options to do port scanning.

  • -sS is the default TCP SYN scan. Since you don’t open a full TCP connection, this is known as half opening. Nmap will send a SYN message and wait for a SYN+ACK. If that arrives, the port is open.
  • -sT, unlike -sS, attempts a full three-way handshake. This takes more time, but it is the only option if you are not running nmap as an administrator.
  • sU is for scanning with UDP. While most services are based on TCP, this is important for UDP-listening services like DNS or SNMP. Since UDP does not have a reset or standard reply message, you may not get a response even for ports that are actively listening. In that case, you will see an open|filtered state for that port.
  • -sA is a TCP ACK scan, and it only sends an ACK message. It does not determine port opening but allows you to detect firewall rulebase. Thus, it detects if the port is filtered or not.
  • --scanflags allows you to specify the value of each TCP flag for your scan.
  • -b allows you to exploit an FTP server to make it do scans on your behalf. This leverages a feature of FTP that can be exploited on many levels. Thus, many FTP providers dropped support for it.

Better targeting for port scanning

In the previous part of this nmap tutorial, we saw how to tune the port scanning process. However, we can also specify what ports we actually want to target, and a scan order. Take a look at the following options…

  • -p is the most basic one. In fact, this allows you to specify the port range to check.
  • -exclude-ports is the opposite of -p. This allows you to define what are the ports you wish to not target.
  • --top-ports <n> is an interesting option. Nmap has statistics about the most commonly open ports, and this will attempt a scan to the top “N” ports only, that are generally open.

A deeper scan

Our next step in this nmap tutorial is to gather more useful information about each target host. Nmap can detect what service is actually running behind a port, and even detect the OS based on common services each OS exposes.

To do that, nmap has a database of queries to stimulate a response from the target host, and know how to parse the responses. Nmap can use such responses to extract precious information. All of this involves complex algorithms and a lot of data to work with. However, despite the complexity, we can turn this on with a few options.

  • -sV enables version detection for all target hosts
  • -o, instead, enables operating system detection. OS detection is also included, among other things, in -A.

Of course, there are more options to finely tune the detection. Yet, with these two options alone you are good to go, as they will provide all the information you need. In fact, nmap is smart enough to do things in the best way, and you need to tune additional parameters only for advanced users.

How to use nmap

Launching the command

At this point in this nmap tutorial, you know how to launch nmap from the prompt. In fact, you also know the options to make nmap respond to your needs. However, there is a quick syntax act you can use. While using it is not necessary, knowing it is mandatory if you want to understand some online tutorials.

In options like -sS, you are actually telling two things to nmap. The first is that you are defining an option for scanning (-s). The second is that, among other scanning option, you want to use TCP SYN (S). You can use a single -s to combine multiple options: -sS -sV can be written as -sSV.

For this nmap tutorial, we are going to analyze a sample nmap output. To generate it, we used this command:

nmap -T4 -vv -sAV nmap.org

The option -T allows you to specify how fast the scan should run, from 0 to 5 (fastest). Instead, -vv indicates we want the max verbosity. This will tell you what nmap is doing while it is doing it.

Analyzing nmap output

Below, the output from the command we executed in the previous example. We run that with administrative privilege, to get the best out of nmap.

C:>nmap -T4 -vv -sAV nmap.org

Starting Nmap 7.60 ( https://nmap.org ) at 2018-05-12 21:42 W. Europe Daylight Time
NSE: Loaded 42 scripts for scanning.
Initiating Ping Scan at 21:42
Scanning nmap.org (45.33.49.119) [4 ports]
Completed Ping Scan at 21:42, 0.73s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 21:42
Completed Parallel DNS resolution of 1 host. at 21:42, 0.01s elapsed
Initiating ACK Scan at 21:42
Scanning nmap.org (45.33.49.119) [1000 ports]
Completed ACK Scan at 21:43, 13.73s elapsed (1000 total ports)
Initiating Service scan at 21:43
NSE: Script scanning 45.33.49.119.
NSE: Starting runlevel 1 (of 2) scan.
Initiating NSE at 21:43
Completed NSE at 21:43, 0.02s elapsed
NSE: Starting runlevel 2 (of 2) scan.
Initiating NSE at 21:43
Completed NSE at 21:43, 1.47s elapsed
Nmap scan report for nmap.org (45.33.49.119)
Host is up, received echo-reply ttl 52 (0.21s latency).
rDNS record for 45.33.49.119: ack.nmap.org
Scanned at 2018-05-12 21:42:52 W. Europe Daylight Time for 18s
Not shown: 993 filtered ports
Reason: 993 no-responses
PORT      STATE      SERVICE REASON       VERSION
22/tcp    unfiltered ssh     reset ttl 52
25/tcp    unfiltered smtp    reset ttl 52
70/tcp    unfiltered gopher  reset ttl 52
80/tcp    unfiltered http    reset ttl 52
113/tcp   unfiltered ident   reset ttl 52
443/tcp   unfiltered https   reset ttl 52
31337/tcp unfiltered Elite   reset ttl 52

Read data files from: C:Program Files (x86)Nmap
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 18.61 seconds
           Raw packets sent: 2004 (80.152KB) | Rcvd: 17 (676B)

First, it tells you that it is loading the Nmap Script Engine (NSE) with 42 scripts. Nmap automatically loaded some useful script to achieve what we wanted. In then launches the scan, which is very quick since we have just one host. You will then see the reverse DNS (rDNS) record for the IP, and the ports open on this server.

As you can see, they are all unfiltered as nmap received a reset in the TCP connection (you see that in the reason column).

How to use ZenMap

Launching the scan

ZenMap is nothing more than a GUI running on top of nmap. If you launch it, you will end up with a big white screen where you have a bar on the top to structure your nmap query. You can specify the target and choose from a set of pre-defined scans. Using these two boxes, ZenMap will dynamically build the nmap query on the larger box. In the example below, we selected an intense scan for nmap.org, and this translated into nmap -T4 -A -v nmap.org. You can edit all three boxes.

In this nmap tutorial we cover how to use nmap and zenmap to perform a network scan: zenmap allows you to build your nmap query from a graphical interface
The ZenMap interface, before launching a command.

Once you are ready with your query, it the Scan button on the top-right.

Looking at the output in ZenMap

This is where ZenMap overcomes the limits of nmap CLI representation. As you launch the command, you will see the CLI output from nmap in the blank panel at the center of the screen. While nmap discover hosts, they will appear on the left panel, and you can click them to see all the gathered information of each. You can also directly list services, instead of hosts, in the left panel. This is what you see when the scan finished.

In a nmap tutorial it is important to understand the nmap output, and zenmap shows it in its raw version
The CLI output from nmap as seen in ZenMap.

As you see, in the main panel you have several tabs to switch between. Feel free to experiment with them, but the most useful is the topology one. This will create a visual representation of the network, making it easier for you to understand what is where.

ZenMap topology view is important to grasp the layout of the network
ZenMap allows you to visualize all the hosts in the path.

Of course, this becomes dramatically useful if you are scanning a subnet or multiple subnets. When scanning a single host, it has still relevance as you can see details about the trace. For example, not all links between hosts are equal: some may hide additional hosts! Be sure to check the legend when looking at this chart.

Wrapping it up

Congratulations! At this point, you have an intermediate understanding of both nmap and ZenMap. With this knowledge, you can start reconnaissance attacks in your penetration testing activities, or simply do a better network inventory. Sometimes, you will probably use nmap to troubleshoot if a server is listening on a given port.

What do you think about nmap and its strengths? What are you going to use it for? Let me know your thoughts in the comments!

‘» t Title: zenmap Author: [see the «Authors» section] Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> Date: 08/31/2022 Manual: Zenmap Reference Guide Source: Zenmap Language: English .TH «ZENMAP» «1» «08/31/2022» «Zenmap» «Zenmap Reference Guide» —————————————————————— * Define some portability stuff —————————————————————— ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ http://bugs.debian.org/507673 http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie n(.g .ds Aq (aq .el .ds Aq —————————————————————— * set default formatting —————————————————————— disable hyphenation .nh disable justification (adjust text to left margin only) .ad l —————————————————————— * MAIN CONTENT STARTS HERE * —————————————————————— .SH «NAME» zenmap Graphical Nmap frontend and results viewer .SH «SYNOPSIS» .HP wfBzenmapfR u fBzenmapfR [fIoptionsfR] [fIresults filefR] .SH «DESCRIPTION» .PP Zenmap is a multiplatform graphical Nmap frontend and results viewer&. Zenmap aims to make Nmap easy for beginners to use while giving experienced Nmap users advanced features&. Frequently used scans can be saved as profiles to make them easy to run repeatedly&. A command creator allows interactive creation of Nmap command lines&. Scan results can be saved and viewed later&. Saved scan results can be compared with one another to see how they differ&. The results of recent scans are stored in a searchable database&. .PP This man page only describes the few Zenmap commandline options and some critical notes&. A much more detailed Zenmap User*(Aqs Guide is available at m[blue]fB%https://nmap.org/book/zenmap.htmlfRm[]&. Other documentation and information is available from the Zenmap web page at m[blue]fB%https://nmap.org/zenmap/fRm[]&. .SH «OPTIONS SUMMARY» .PP fBffR, fBfile fRfBfIresults filefRfR .RS 4 Open the given results file for viewing&. The results file may be an Nmap XML output file (&.xml, as produced by fBnmap oXfR) or a Umit scan results file (&.usr)&. This option may be given more than once&. .RE .PP fBhfR, fBhelpfR .RS 4 Show a help message and exit&. .RE .PP fBnfR, fBnmap fRfBfINmap command linefRfR .RS 4 Run the given Nmap command within the Zenmap interface&. After fBnfR or fBnmapfR, every remaining command line argument is read as the command line to execute&. This means that fBnfR or fBnmapfR must be given last, after any other options&. Note that the command line must include the fBnmapfR executable name: fBzenmap n nmap sS targetfR&. .RE .PP fBpfR, fBprofile fRfBfIprofilefRfR .RS 4 Start with the given profile selected&. The profile name is just a string: «Regular scan»&. If combined with fBtfR, begin a scan with the given profile against the specified target&. .RE .PP fBtfR, fBtarget fRfBfItargetfRfR .RS 4 Start with the given target&. If combined with fBpfR, begin a scan with the given profile against the specified target&. .RE .PP fBvfR, fBverbosefR .RS 4 Increase verbosity (of Zenmap, not Nmap)&. This option may be given multiple times to get even more verbosity&. .RE .PP Any other arguments are taken to be the names of results files to open&. .SH «ENVIRONMENT VARIABLES» .PP fBZENMAP_DEVELOPMENTfR .RS 4 Set fBZENMAP_DEVELOPMENTfR to disable automatic crash reporting&. .RE .SH «BUGS» .PP Like their authors, Nmap and Zenmap aren(cqt perfect&. But you can help make them better by sending bug reports or even writing patches&. If Nmap or Zenmap doesn(cqt behave the way you expect, first upgrade to the latest version available from m[blue]fB%https://nmap.orgfRm[]&. If the problem persists, do some research to determine whether it has already been discovered and addressed&. Try Googling the error message or browsing the nmapdev archives at m[blue]fB%https://seclists.org/fRm[]&. Read this full manual page as well&. If nothing comes of this, mail a bug report to <dev@nmap&.org>&. Please include everything you have learned about the problem, as well as what version of Zenmap you are running and what operating system version it is running on&. Problem reports and Zenmap usage questions sent to dev@nmap&.org are far more likely to be answered than those sent to Fyodor directly&. .PP Code patches to fix bugs are even better than bug reports&. Basic instructions for creating patch files with your changes are available at m[blue]fB%https://svn.nmap.org/nmap/HACKINGfRm[]&. Patches may be sent to nmapdev (recommended) or to Fyodor directly&. .SH «HISTORY» .PP Zenmap was originally derived from Umit, an Nmap GUI created during the Googlesponsored Nmap Summer of Code in 2005 and 2006&. The primary author of Umit was Adriano Monteiro Marques&. When Umit was modified and integrated into Nmap in 2007, it was renamed Zenmap&. .SH «AUTHORS» .SS «Nmap» .PP Fyodor <fyodor@nmap&.org> (m[blue]fB%https://insecure.orgfRm[]) .PP Hundreds of people have made valuable contributions to Nmap over the years&. These are detailed in the CHANGELOG file which is distributed with Nmap and also available from m[blue]fB%https://nmap.org/changelog.htmlfRm[]&. .SS «Umit» .PP Zenmap is derived from the Umit Nmap frontend, which was started by Adriano Monteiro Marques as an Nmap/Google Summer of Code project (<py&.adriano@gmail&.com>, m[blue]fB%http://www.umitproject.orgfRm[])&.

Zenmap is an Open Source GUI for the free Windows network scanner nmap.

Contents

  1. How it works
  2. Defining a target
  3. Reporting window
  4. Saving scans
  5. Custom profiles
  6. Wrapping up
  7. Zenmap
  • Author
  • Recent Posts

I have been a Windows administrator for eight years and currently focus on Group Policy, backup, and IIS/Apache administration.

Nmap is a tool that needs no introduction. Quite arguably it should be in the hands, or at least the back pocket, of most systems administrators. Nmap can perform network host and service discovery, security scans, OS fingerprinting, and a whole lot more. Zenmap, a highly functional GUI for nmap, helps ease the learning curve by providing a user-friendly interface for both building scans and viewing scan results or reports. Plus, Zenmap is a multi-platform application that runs on Windows as well as Linux and Mac.

The Windows Zenmap GUI

The Windows Zenmap GUI

How it works

You can think of Zenmap as a “syntax builder” for nmap. Rather than sitting on top of nmap, it simply sends commands to the platform-specific nmap executable and pipes the output back. This is very useful for nmap beginners who would like to harness the power of nmap while learning some of the deep syntax options it provides.

Zenmap makes it easy to build out command line options like this

Zenmap makes it easy to build out command line options like this

The basic operation in nmap is network scanning and Zenmap allows you to perform and save scans as well as the results from those scans. Zenmap uses Profiles, which are basically nmap parameter presets, to specify how scans are performed. It ships with some handy preset profiles, such as Intense scan, which scans hosts with “all advanced/aggressive options,” Quick scan, which scans hosts without those advanced options, and Slow comprehensive scan, which is exactly as it sounds. Budding administrators can choose profiles that match their needs. For example, if your goal is host discovery, Quick scan might do the job. If your goal is to map out every single TCP port, you’ll need to do an Intense scan, all TCP ports at a minimum.

Defining a target

Every scan must be associated to a specific target, which can be a single host, an interval range of hosts, or a full subnet. Nmap uses the following syntax for target definitions:

  • Single host: Just a hostname or IP address will do, like localhost or 127.0.0.1
  • Interval: Intervals are denoted by a dash in the IP address; for example, if you want to scan 192.168.1.0/24 through 192.168.10.0/24, you would use 192.168.1-10.0-255
  • CIDR Notation: Nmap accepts CIDR target specification, like 192.168.5.0/24
  • Lists: Separate different targets with a comma; for instance, 10.1.1.0/24, 192.168.1.0/24

Reporting window

Zenmap provides different tabs for reporting on scan results. These tabs either directly report the output of nmap or expand on the output with diagrams and user-friendly reports. The tabs include:

  • Nmap output: The piped output of the nmap command sent by Zenmap
  • Ports/Hosts: If a host is selected on the left, this will display open and unknown ports. If a service is selected on the left, this will display all hosts for that service
  • Topology: A neat diagram of the network topology as understood by Nmap
  • Host Details: Displays a condensed report of pertinent host information from the scan

A sample Nmap output window from an Intense scan

A sample Nmap output window from an Intense scan

Useful tools

Zenmap also ships with some useful tools that can help you track changes between scans and drill down to useful information within long scan results. The Compare Results tool provides an interface for differentiating between two scans, which can be used to monitor daily changes in network topology or available hosts. The Search Scan Results tool is great for finding specific text in results, and the Filter Hosts tool does exactly what you would imagine — it filters hosts, which comes in handy when scanning large subnets or lists of networks.

Saving scans

By going to File > Save Scan, you can save a scan result report in XML or plain text format for later consumption. This comes in handy when you perform a large scan and do not want to repeat the scan again later while reviewing results. The XML format is also very friendly for consumption by third party report generation packages as well as web service reporting.

A sample XML report generated by Zenmap

A sample XML report generated by Zenmap

Custom profiles

Perhaps the best feature of Zenmap is its Profile Editor, which empowers users who are unfamiliar with nmap syntax to build powerful and custom scanning profiles. These profiles can be saved for later use and even exported to other interested admins. The Profile Editor window contains the following tabs:

  • Profile: The name and description of your profile
  • Scan: The most important tab, where you can specify targets, scan type (TCP, UDP, IP), timing template, and much more
  • Ping: Specifies ping behavior. You can suppress pings or build a specific ICMP packet
  • Scripting: Include nmap scripts in your scan. Zenmap comes with many useful scripts
  • Target: Allows for greater target specification flexibility, including excluded hosts, target list files, and fast scan support
  • Source: Specify how you would like the scanner to behave with respect to scanning identity, IP address, port, and interface
  • Other: Includes options for verbosity level, TTL, and other scanner behaviors
  • Timing: Defines timing profile with respect to maximum scan time, scan delay, and timeouts, among other things

Use the Profile Editor to develop custom profiles that meet your enterprise needs

Use the Profile Editor to develop custom profiles that meet your enterprise needs

Saving profiles saves time because it allows the administrator to quickly perform familiar and repetitive scans without specifying the target and options. Using saved profiles also ensures that when comparing two scan results you are working from the same scan options.

Wrapping up

Zenmap is an excellent Windows GUI for nmap and takes the edge off of the learning curve. Administrators who are versed in basic networking will have little trouble jumping into the simple, yet powerful interface that Zenmap offers. Since ZenMap is Open Source, it represents a great cost savings for the budget-strapped admin with excellent community support and regular updates. If you haven’t checked out Zenmap yet, give it a try! Achieving IT security is a moving target, and Zenmap makes it easier to reach your goal.

Zenmap

Понравилась статья? Поделить с друзьями:
  • Nmap failed to open device eth0 windows
  • Nm9735 rev c драйвер windows xp
  • Nlite для windows xp скачать торрент
  • Nlc 7 не запускается на windows 10
  • Nitrosense service для windows 10 скачать