Пользователь
19 марта 2010 в 10:48

Разработка → Nmap. Начало использования

image
Вы когда-нибудь интересовались откуда атакующий знает какие порты открыты в системе? Или как узнать, какие приложения запущены на сервере, не спрашивая об этом администратора? Вы можете сделать все это и даже больше вместе с небольшим инструментом под названием Nmap.


Что такое Nmap? Название Nmap это сокращение от “network mapper”, сам nmap это набор инструментов для сканирования сети. Он может быть использован для проверки безопасности, просто для определения сервисов запущенных на узле, для идентификации ОС и приложений, определения типа фаерволла используемого на сканируемом узле.
Nmap это знаменитый инструмент. Как только вы узнаете больше о Nmap, вы поймете, что он делает в эпизодах таких фильмов как Матрица Перезагрузка, Ультиматум Борна, Хоттабыч, и других.
В этом руководстве будут описаны основы использования Nmap и приведены некоторые примеры, которые вы сможете использовать.

Где взять Nmap?

Если Вы используете Linux, то можете найти пакеты Nmap в репозиториях для большинства дистрибутивов. Последний релиз Nmap вышел в начале 2010, поэтому самой свежей версии может не быть в текущих стабильных ветках. Найти исходники и некоторые бинарные сборки можно на странице загрузки.Там есть и windows версия.

Основы использования Nmap.

Синтаксис Nmap следующий:

nmap Опции_сканирования Цель_сканирования.

Допустим Вы хотите сканировать узел и узнать какая операционная система на нем работает. Чтобы сделать это выполните следующее:

nmap -O target.host.com

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

Starting Nmap 5.21 ( nmap.org ) at 2010-02-27 23:52 EST
Nmap scan report for 10.0.0.1
Host is up (0.0015s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
53/tcp open domain
5009/tcp open airport-admin
10000/tcp open snet-sensor-mgmt
MAC Address: 00:11:24:6B:43:E2 (Apple Computer)
Device type: WAP|printer
Running: Apple embedded, Canon embedded, Kyocera embedded, Xerox embedded
OS details: VxWorks: Apple AirPort Extreme v5.7 or AirPort Express v6.3; Canon imageRUNNER printer (5055, C3045, C3380, or C5185); Kyocera FS-4020DN printer; or Xerox Phaser 8860MFP printer
Network Distance: 1 hop


Как вы видите Nmap предоставляет множество информации. Здесь он отображает предположение об операционной системе, которая была запущена на узле. В данном случае выполнялось сканирование маршрутизатора Apple Airport Extrime. В качестве дополнительного бонуса Nmap сообщил, что устройство на расстоянии одного прыжка, а также MAC адрес устройства и производителя сетевой карты, открытые порты и сколько времени выполнялось сканирование.
Ниже приведены результаты другого сканирования, домашнего компьютера с запущенной Ubuntu 9.10:

Starting Nmap 5.21 ( nmap.org ) at 2010-02-28 00:00 EST
Nmap scan report for 10.0.0.6
Host is up (0.0039s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
22/tcp open ssh
MAC Address: 00:17:08:2A:D6:F0 (Hewlett Packard)
Device type: general purpose
Running: Linux 2.6.X
OS details: Linux 2.6.19 - 2.6.31
Network Distance: 1 hop

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


Здесь мы видим, что система имеет сетевую карту HP, запущено Linux между версиями 2.6.19 и 2.6.31. Кстати, Вы не сможете явно идентифицировать дистрибутив, только версию Linux ядра.

Сканирование чужих узлов.


В примерах выше для сканирования были выбраны локальный маршрутизатор и одна из рабочих станций, потому что мы имели право на их сканирование. Однако, будет плохой идеей запуск множественного сканирования чужого узла, если вы их не контролируете или не имеете прав для сканирования. Для экспериментов Nmap имеет общедоступный тестовый сервер scanme.nmap.org который Вы можете использовать.
Многие администраторы не любят несанкционированного сканирования их серверов, так что лучшим вариантом будет ограничение сканирования узлов своей локальной сети или тех для которых у вас есть права на сканирование. Также в некоторых случаях вы можете нарушить договор с вашим провайдером, при использовании некоторых особо агрессивных методов сканирования Nmap, поэтому будьте осторожны.

Сканирование нескольких узлов.


Вы можете сканировать больше чем один узел за раз, используя nmap. Если вы производите сканирование по IP-адресу вы можете определить диапазон 10.0.0.1-6 или 10.0.0.0/24.Используя диапазон 10.0.0.1-6 будут сканироваться узлы от 10.0.0.1 до 10.0.0.6. Используя определение /24 будет сканироваться весь диапазон узлов от 10.0.0.0 до 10.0.0.255. Для примера, если нужно просканировать узлы от 10.0.0.1 до 10.0.0.42 и узнать какая ОС вероятно запущена используйте:

nmap –O 10.0.0.1-42

Если у вас есть некоторый список доменных имен вместо IP адресов, вы можете разделить их в командной строке, вот так:

nmap -O host1.target.com host2.target.com

Проверка открытых портов


Если вы запустите nmap вообще без опций и укажите какой то узел, то он будет сканировать порты и покажет все найденные открытые порты и сервисы запущенные на них. Например запустите:
nmap target.hostname.com
после чего он должен выдать что то похожее на это:

Interesting ports on target.hostname.com (10.0.0.88):
Not shown: 1711 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
3306/tcp open mysql

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


Nmap выдаст больше информации если использовать опцию -v (verbose).

Сканирование запущенных сервисов


Если вы хотите узнать какой сервис возможно запущен попробуйте опцию –sV. Эта опция произведет более агрессивное сканирование и попытается выяснить какая версия сервисов запущена на данном узле, а также может помочь более точно определить какая ОС запущена. Для пример запустим nmap –sV на тестовый сервер и получим следующий ответ:

Starting Nmap 5.21 ( nmap.org ) at 2010-02-28 00:15 EST
Nmap scan report for test.host.net (XX.XXX.XXX.XX)
Host is up (0.090s latency).
Not shown: 965 closed ports, 33 filtered ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 4.7p1 Debian 8ubuntu1.2 (protocol 2.0)
80/tcp open http Apache httpd 2.2.8 ((Ubuntu) PHP/5.2.4-2ubuntu5.10 with Suhosin-Patch)
Service Info: OS: Linux

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


Как вы видите, Nmap может проанализировать пакеты и определить версию запущенного приложений на SSH и HTTP портах. Здесь вы можете увидеть что опрашиваемая система это Ubuntu с Apache 2.2.8 и OpenSSH 4.7p1. Эта информация может быть полезна по ряду причин. Nmap сканирование может идентифицировать систему под управлением устаревших сервисов которые могут быть уязвимы для известных эксплойтов.

Кто в моей сети?


Не знаете сколько онлайн узлов находятся в вашей сети? Попробуйте использовать nmap –sP который запустит ping сканирование указанной сети. Для примера, nmap –sP 10.0.0.0/24 сканирует 256 узлов от 10.0.0.0 до 10.0.0.255 проверит доступны ли они и доложит об этом. Так же вы можете использовать диапазон, например:

nmap –sP 10.0.0.1-15

Zenmap


Наконец, если все эти радости командной строки не для вас, nmap имеет GUI который вы можете использовать для построения и выполнения команд. Называется Zenmap. Он позволит выбрать цель, запустить сканирование, отобразить результаты, а также сохранить их и сравнить с другими.
GUI Zenmap это хороший способ познакомиться с Nmap, но лучше знать как использовать Nmap в командной строке, если вы собираетесь работать с ним часто.
В будущем руководстве мы более глубоко познакомимся с Nmap и конкретными задачами которые вы сможете решить.

Данный пост это вольный перевод статьи Beginner's Guide to Nmap. Спасибо за внимание.
Саутченков Дмитрий @netherneon
карма
27,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (71)

  • +40
    Есть ли на Хабре люди, не знающие как запустить nmap --help и man nmap?
    • +10
      Возможно большее количество windows пользователей сможет узнать о возможностях unix like софта, который они могу использовать у себя в системе.
      • –8
        не вижу разницы между win-пользователями и nix-пользователями в данном аспекте. Win-юзеры тупее что ли, и не смогут инструкцию прочесть? Nmap давным давно реализован и под win.
        • +4
          > Win-юзеры тупее что ли, и не смогут инструкцию прочесть?
          Даже в мыслях такого не было. Я хотел сказать, что win пользователи больше отдалены от подобных unix инструментов. Может быть есть люди которые захотят использовать nmap просто как расширенный и более удобный ping.
          • +1
            я надеюсь про пинг это была шутка?
            • НЛО прилетело и опубликовало эту надпись здесь
        • НЛО прилетело и опубликовало эту надпись здесь
          • –5
            зря вы так.
            • НЛО прилетело и опубликовало эту надпись здесь
              • –4
                т.е. «программисты, админы, просто гики или комбинация вышеперечисленных» как бэ по-умолчанию умнее кого бы то ни было? )
                • НЛО прилетело и опубликовало эту надпись здесь
              • –1
                я вот недавно перевел конторку одну мелкую на линукс (~20 машин), никто из них не программист, не гик и не админ. Они ОБЫЧНЫЕ пользователи, не тупые и не продвинутые, выполняют свою работу. Но пользователи lin. Cудить о тупости/умности человека по используемой им ОС не комильфо.
                Кстати, насчет «сержанта», если вы это по аналогии с «Captain Obviosity» то аналогия неверная, Капитан в данном случае — НЕ является воинским званием, это имя собственное.
                • +1
                  ваши 20 машин на линуксах это капля в море. да и вообще не было никакого намека на принижение интеллектуальных качеств пользователей windows, что вы в самом деле так обижаетесь?

                  имхо шутка насчет сержанта Статистика вполне хорошая :)
                  • –1
                    >что вы в самом деле так обижаетесь?
                    С какой стати мне обижаться на глупость? Просто не люблю, когда мыслят стереотипами и клише. Я одинаково легко использую любую операционку, исходя из задач. И пример про 20 машин был дан просто с целью проиллюстрировать, что линь-юзеры запросто могут быть просто юзерами, и такие случаи отнюдь не редки, не стоит по себе весь мир судить.
                • НЛО прилетело и опубликовало эту надпись здесь
                  • 0
                    Да, точно! Мой мозг сработал автоматически, как промт, сделал обратный перевод неправильного перевода.
      • 0
        Сначала хотел тоже вас спросить, зачем статья, но с этой стороны вопрос не рассматривал.
    • +9
      на хабре уже полно людей которые не знаю, что такое man, а apt-get для них это строчка которую надо скопировать из хавты, чтобы все было хорошо.
      • +2
        так давайте тогда устроим тут повальную копипасту из манов, поможем леммингам освоиться. )
      • +1
        Подчеркну что данная статья рассчитана не только на nix пользователей. Думаю что найдется достаточное количество людей использующих windows и не знающих что такое apt-get.
        • +2
          это нормально. меня больше пугают пользователи GNU/Linux дистрибутивов основанных на дебиане и не знающие о нем. А win пользователь если уж нуждается в таких вещах как nmap дожен подумать сам о том как его использовать и научится пользоваться гуглом.
          • 0
            >> меня больше пугают пользователи GNU/Linux дистрибутивов основанных на дебиане и не знающие о нем.

            Точно сказал!
    • +6
      мне например проще разобраться в чём — то, наиграв сначала аппетит какой — нибудь хаутушкой, наподобие этой, прежде чем нырять в ман.
    • –2
      Есть.
  • +4
    > небольшим инструментом под названием Nmap
    Ну вобще nmap в функциональном смысле, очень большой. Все что только можно придумать со сканированием удаленных хостов в нем реализовано. Большего швейцарского ножа, я даже не знаю.
    • –1
      Здесь имелся ввиду не функционал, а размер и требования к системе. Конечно, возможности у nmap огромные.
  • НЛО прилетело и опубликовало эту надпись здесь
    • +8
      Создайте свой хабр и пишите что хотите там, мы придём туда, если будет интересно. А тут в каждом топике хватит негатив писать.
      • НЛО прилетело и опубликовало эту надпись здесь
        • –3
          Лавры ArtemKulyabin покоя не дают?
          • НЛО прилетело и опубликовало эту надпись здесь
            • –1
              поищите в людях на хабре.
        • 0
          Но количество минусиков у вас показывает отношение пользователей хабра к вашим постам. И К.О. подсказывает, что это не из-за обиды.
          • НЛО прилетело и опубликовало эту надпись здесь
            • +2
              Просто каждый отстаивает свою точку зрения
    • 0
      А я не знал про такое, просто потому, что я не специалист по сетям. Вы знаете, чем именно отличаются алгоритмы MaxEnt и SVM? Ну это же элементарно, каждому школьнику известно и уже лет тридцать это не что-то новое!
      • НЛО прилетело и опубликовало эту надпись здесь
  • +11
    Да, и если вдруг вам приспичит просканировать корпоративную ЛВС, скажем, так:
    nmap -sV 192.168.100.0/24
    То сначала убедитесь, что в этом диапазоне нет сетевых принтеров. Был опыт сканирования nmap'ом HP LaserJet 2015, так он, бедный, при этом начинал распечатывать кучу листов со строчкой козябликов на каждом :)
    • +14
      И наоборот, если хотите что бы ХПшники некоторых моделей распечатали крокозябры и появилось больше контактеров просканируйте корпоративную ЛВС, скажем, так: nmap -sV 192.168.100.0/24 :)
    • +2
      А еще если вам приспичит просканировать свою локалку, то можете дождаться в гости админа, если он у вас особо бдительный =)
      • +3
        Вот как надо вызывать админа, чтобы он мышку почистил!
        • 0
          мне подсказали еще один способ вызвать админа (или не админа). подать 220 в незнакомую пару проводов — хозяин, мол, сам отыщется.
          а вызывать админа мышку чистить… хм. может быть чревато… :-)
    • 0
      А может это НЛО?
  • +6
    netherneon никого не слушайте, полезное дело делаете, хороший перевод и с примерами. Приятнее читать чем ман.
  • +1
    Перенесите топик в habrahabr.ru/blogs/infosecurity/ или habrahabr.ru/blogs/linux/ он на главной появится.
  • +2
    Раньше в консоле все писал, теперь больше гуёй Zenmap пользуюсь. Из полезного — история сканирования по хостам.
  • +3
    И не вздумайте использовать ключ -A для сканирования машин на которых стоит Oracle i8: если таковой там был, ляжет.
    • 0
      почему?
  • –1
    Пойду напишу мануал под ping и tracert|traceroute и всех их аналогов :D
    • +1
      Лучше по wget — оно полезнее будет :-)
    • НЛО прилетело и опубликовало эту надпись здесь
      • НЛО прилетело и опубликовало эту надпись здесь
  • +3
    Забыли написать про очень важный параметр — "-P0" — сканирует неотвечающие хосты. И вообще — думаю 80% людей на хабре — знают как пользоваться nmap.
  • 0
    ничего не знал про нмап, заинтересовали)
    • +2
      )) прочитал как «ничего не знал про ман, заинтересовали» ;)
  • НЛО прилетело и опубликовало эту надпись здесь
  • +1
    Cпасибо, добавил в закладки и поставил на nmap на iPhone, как раз сегодня утром пригодилось бы.
  • 0
    А есть ли способы защититься от определения OS?
    • 0
      наверное есть. я свой сервер на определиние ОС просканировал — так в ответ такие матюки получил…
  • 0
    А по-мне, так правильная статья. Далеко не многие, к сожалению, знают даже основ, а уж тем более английского. Данная статья как раз для таких людей. И это хорошо.
  • –3
    Что дальше? команды командной строки Windows?
    • НЛО прилетело и опубликовало эту надпись здесь
      • –1
        Всё в твоих руках…
  • –1
    … данная статья потеряла свою актуальность задолго до появления Хабрахабра.Спасибо, очень ново и изысканно!
  • НЛО прилетело и опубликовало эту надпись здесь
  • +1
    Почему бы на хабре не создать блог «Для самых маленьких» и туда писать статьи, направленные на начинающих и далёких от IT людей? Этакая локальная база основ/знаний.
    • 0
      Да всё относительно. Для кого-то маленький, для кого-то нормальный.
    • 0
      а помоему идея очень не плоха. этакая беседка рядом с песочницей, но для местных.
      Иногда и впрямь нужно узнать о чем то, но погружаться нет времни/нужды/сил, а так прочел быстренько, ввел себя в курс дела, и дальше за дело.
      Обычно я это делаю на википедии, но тут бы тоже не помешала.
  • +1
    кто бы что не говорил, но статья для меня была полезна.
    записал ключи в тетрадку, ведь когда не часто пользуешься, трудно запомнить. А тетрадь всегда в сумке ;)
    Спасибо! жду продолжения
  • 0
    А я нашел на их сайте в списке фильмов один довольно интересный. :) «Nmap makes the leap from Science fiction to soft-core pornography».
    Cтраничка описания на nmap.org
    Торрент на piratebay
  • 0
    Спасибо за перевод!

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