Nmap — это очень популярный сканер сети с открытым исходным кодом, который может использоваться как в Windows, так и в Linux. Программа Nmap или Network Mapper была разработана Гордоном Луоном и на данный момент используется специалистами по безопасности и системными администраторами по всему миру.

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

Например, с помощью скриптов можно автоматически обнаруживать новые уязвимости безопасности в вашей сети. Namp может использоваться с хорошими и плохими намерениями, будьте аккуратны, чтобы не использовать nmap против закона. В этой инструкции мы рассмотрим как пользоваться namp для сканирования портов в операционной системе Linux. Но сначала нужно попытаться понять как работает эта утилита.

Как работает Nmap?

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

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

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

Синтаксис Nmap

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

$ nmap опции адрес

Теперь давайте рассмотрим основные опции, которые понадобятся нам в этой статье.

  • -sL — просто создать список работающих хостов, но не сканировать порты nmap;
  • -sP — только проверять доступен ли хост с помощью ping;
  • -PN — считать все хосты доступными, даже если они не отвечают на ping;
  • -sS/sT/sA/sW/sM — TCP сканирование;
  • -sU — UDP сканирование nmap;
  • -sN/sF/sX — TCP NULL и FIN сканирование;
  • -sC — запускать скрипт по умолчанию;
  • -sI — ленивое Indle сканирование;
  • -p — указать диапазон портов для проверки;
  • -sV — детальное исследование портов для определения версий служб;
  • -O — определять операционную систему;
  • -T[0-5] — скорость сканирования, чем больше, тем быстрее;
  • -D — маскировать сканирование с помощью фиктивных IP;
  • -S — изменить свой IP адрес на указанный;
  • -e — использовать определенный интерфейс;
  • —spoof-mac — установить свой MAC адрес;
  • -A — определение операционной системы с помощью скриптов.

Теперь, когда мы рассмотрели все основные опции, давайте поговорим о том, как выполняется сканирование портов nmap.

Как пользоваться Nmap для сканирования портов в Linux

Дальше рассмотрим примеры nmap. Сначала давайте рассмотрим как найти все подключенные к сети устройства, для этого достаточно использовать опцию -sL и указать маску нашей сети. в моем случае это 192.168.1.1/24. Маску вашей локальной сети вы можете найти, выполнив команду:

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

nmap -sL 192.168.1.1/24

Иногда это сканирование может не дать никаких результатов, потому что некоторые операционные системы имеют защиту от сканирования портов. Но это можно обойти, просто использовав для сканирования ping всех ip адресов сети, для этого есть опция -sn:

nmap -sn 192.168.1.1/24

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

sudo nmap 192.168.1.1

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

Чтобы узнать более подробную информацию о машине и запущенных на ней сервисах вы можете использовать опцию -sV. Утилита подключится к каждому порту и определит всю доступную информацию:

sudo nmap -sV 192.168.1.1

На нашей машине запущен ftp, а поэтому мы можем попытаться рассмотреть эту службу подробнее с помощью стандартных скриптов nmap. Скрипты позволяют проверить порт более детально, найти возможные уязвимости. Для этого используйте опцию -sC и -p чтобы задать порт:

sudo nmap -sC 192.168.56.102 -p 21

Мы выполняли скрипт по умолчанию, но есть еще и другие скрипты, например, найти все скрипты для ftp вы можете командой:

sudo find /usr/share/nmap/scripts/ -name ‘*.nse’ | grep ftp

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

sudo nmap —script-help ftp-brute.nse

Этот скрипт будет пытаться определить логин и пароль от FTP на удаленном узле. Затем выполните скрипт:

sudo nmap —script ftp-brute.nse 192.168.1.1 -p 21

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

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

sudo nmap -A 192.168.1.1

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

Выводы

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

20 Потрясающих Примеров Команды Nmap

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

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

Вы увидите, как удаленно определить операционную систему с помощью отпечатков стека TCP/IP и как узнать версию программного обеспечения запущенного на удаленном сервере.

Я так-же покажу как с помощью Nmap осуществить скрытое сканирование, как определить фаервол и как подменить MAC адрес.

Дельный Совет: Хотите сохранить анонимность? Узнайте как использовать ПРОКСИ из командной строки в Linux. Читать далее →

1. Сканирование Одного Хоста или IP Адреса

Сканировать Отдельный IP Адрес:

Сканировать сервер по Имени Хоста:

Увеличить Уровень Детализации результатов сканирования:

2. Сканирование Множества IP Адресов

Сканировать Множество IP Адресов:

Сканировать Подсеть:

Сканировать Диапазон IP Адресов (192.168.1.0 — 192.168.1.200):

3. Поиск Активных Компьютеров в Сети

Дельный Совет: Сканируйте сеть с помощью одной лишь команды ping ! Вычислите все активные компьютеры! Читать далее →

Сканировать сеть в поиске Активных Хостов:

4. Сканирование Списка Хостов из Файла

Сканирование списка хостов/сетей из Файла:

5. Исключение IP/Хостов/Сетей из Сканирования

Исключить Цели из сканирования Nmap-ом:

Исключить Список хостов, взятых из файла:

Формат файла с исключенными хостами аналогичен приведенному выше.

6. Сканирование Определенных Портов

Сканировать Один Порт:

Сканировать Несколько Портов:

Сканировать Диапазон Портов:

Сканировать Все Порты:

Сканировать несколько самых Распространенных Портов:

7. Определение Поддерживаемых IP Протоколов

Определить какие IP Протоколы (TCP, UDP, ICMP, и т.д.) поддерживает сканируемый хост:

8. Сканирование TCP/UDP Портов

Сканировать все TCP Порты:

Сканировать определенные TCP Порты:

Сканировать все UDP Порты:

Сканировать определенные UDP Порты:

Объединение сканирования разных портов:

9. Быстрое Сканирование

Активировать Быстрый Режим сканирования:

* Сканирует меньшее кол-во портов, чем при обыкновенном сканировании.

10. Показывать Причину Состояния Порта

Показать Причину, по которой Nmap считает что порт находится в определенном состоянии:

11. Показывать Только Открытые Порты

Показать Только Открытые Порты (либо возможно открытые):

12. Определение ОС

Nmap посылает серию TCP и UDP пакетов на удаленный хост и изучает ответы.

После проведения множества тестов, Nmap сравнивает результаты со своей базой данных и, при нахождении соответствий, выводит информацию об ОС.

Включить Определение ОС:

13. Определение Версии Сервисов

Включить Определение Версии Сервисов:

* Определяет версии программ, запущенных на удаленном сервере.

14. Обнаружение Фаервола

Узнать, защищен ли компьютер какими-либо Пакетными Фильтрами или Фаерволом:

15. Подмена MAC Адреса

Подменить MAC Адреса:

Подменить MAC Адрес Случайным MAC-ом:

16. Сканирование Фаервола на Уязвимости

Когда сканируется система отвечающая требованиям RFC, любой пакет, не содержащий установленного бита SYN, RST или ACK, повлечет за собой отправку RST в ответ в случае, если порт закрыт, или не повлечет никакого ответа, если порт открыт.

Т.к. ни один из этих битов не установлен, то любая комбинация трех оставшихся (FIN, PSH и URG) будет являться правильной.

TCP Null сканирование:

* Не устанавливаются никакие биты (Флагов в TCP заголовоке 0).

TCP Fin сканирование:

* Устанавливается только TCP FIN бит.

TCP Xmas сканирование:

* Устанавливаются FIN, PSH и URG флаги (пакет светится как новогодняя елка).

17. Скрытое Сканирование

Дельный Совет: Сохраняйте анонимность во время сканирования портов! Используйте Nmap + Tor + ProxyChains ! Безопасное и простое тестирование на проникновение! Читать далее →

TCP SYN сканирование:

* Известное как сканированием с использованием полуоткрытых соединений, так как не отрывает полных TCP соединений.

18. Отключение Обнаружения Хостов (No Ping)

Не пинговать хосты перед сканированием:

19. Отключение Использования DNS

Дельный Совет: Необходимо усилить безопасность в Linux? Шифруйте DNS трафик для защиты от спуфинга! Читать далее →

Никогда не производить обратное преобразование DNS имен для каждого обнаруженного активного IP адреса:

20. Сохранение Результатов Сканирования Nmap в Файл

Сохранить результат сканирования Nmap в Текстовый Файл:

Сохранить результат сканирования Nmap в XML Файл:

Nmap : сканирование портов – как это работает?

Сканирование портов через Nmap .

Nmap предназначена для сканирования сетей и вычленения компьютера-хоста, что делает инструмент незаменимым на некоторых этапах тестирования на проникновение. В своих возможностях nmap не ограничена лишь сбором информации и составлением реестра компьютеров в сетке. Она используется как «определялка» уязвимостей и сканер безопасности. Последнее и очень важное – идёт на всех операционных системах (в Линуксе, на мой взгляд, гораздо быстрее).

СРАЗУ . Если вам срочно потребовалось проверить какой-то сайт, а вы не собираетесь тратить время на поиски и установку программы, или просто хотите ознакомиться с предварительными результатами работы сканера, вы можете воспользоваться он-лайн сервисами по сканированию портов. Результаты будут схожи с теми, что выводит на экран Nmap. Вот один из них:

Укажите в строке ввода адрес сайта на манер сайт.ru и увидите результаты по 6 основным портам требуемого сайта. В статье же я описываю работу Nmap с машинами в локальной сети : здесь нет надобности пробивать роутер, брутить к нему пароль. Здесь быстрые скорости. Вы, создав на компьютере множество виртуальных машин, вольны практиковаться c командами вдоволь.

Что такое nmap?

Сокращение от словосочетания Network Mapping (вольный перевод – составление сетевой карты). Её основные функции – найти рабочий компьютер в сети, определить версию ОС и открытые порты, запущенные на удалённом хосте службы; и самая главная фишка Nmap – скриптовое взаимодействие с системой. А значит…

Что умеет nmap ? Она поможет:

  • Найти работающий хост-компьютер в сети (это и нижеследующее касается другого сетевого оборудования: вебкамера, принтер)
  • Найти запущенные службы и открытые на нём порты
  • Определить какое программное обеспечение запущено, его версию на каждом из рабочих портов
  • Сообщить о версиях установленного оборудования, производителе
  • Определить саму операционную систему, mac адрес компьютера
  • Найти лазейку или дырку в защите
  • Забрутить пароль

И это всё усилиями одной лишь Nmap.

Как использовать сканирование портов через эффективно?

Nmap умеет использовать сразу несколько отличных друг от друга техник, с помощью которых сканирование портов пройдёт успешно. Самое трудное, что нас поджидает, это обход фаервола и (сейчас внимание!) внедрение программы в систему противника. Учтём и тот факт, что скрипты Nmap постоянно пополняются, и просто невозможно охватить все её возможности. Но это в другой раз, а сейчас только про порты. Да, и не забываем – по умолчанию программа сканирует только первую тысячу портов.

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

Простые команды Nmap.

Самый прямой способ узнать в сети компьютер или нет, это тот самый пинг. Он используется во всех самых простых и самых сложных (по умолчанию) утилитах сканирования. Пинг – это не что иное как ICMP запрос с ожиданием эха (одна из целей его создания, один из главных принципов – машина должна на него ответить). Ping адрес-сайта – самая простая и знакомая всем команда. Её суть – начало простого диалога с компьютером (“Ты здесь? – Да/Нет”). Своим названием она обязана сонару, исследующему подводные объекты. В компьютерах сетях всё тоже самое. Большинство наиболее применимых команд Nmap можно найти в статье Самые употребляемые команды Nmap.

Кстати, для начала стоит убедиться, установлена ли сама Nmap. Для этого в терминале Линукс наберите:

Терминал вернёт номер текущей версии продукта. В Кали Nmap предустановлена.

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

где ваша_цель – ресурс, который вы сканируете. Эта команда проверит состояние самых используемых портов на этом хосте, запустив сканер TCP портов.

Несмотря на всю кажущуюся простоту, Nmap проводит огромную работу. И это можно немного изменить. Так, утилита начинает с того, что конвертирует имя хоста, приводя его в IPv4 вид, используя DNS. Вы можете использовать иной DNS сервер, например DNS Google:

Для чего я это всё пишу… Это и следующее движение можно вообще пропустить. Делается это установкой флага -n . Ведь следующим шагом Nmap будет обратная конвертация IPv4 адреса в имя хоста на латинице. Повторяю, это “дело” можно пропустить:

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

И вот запускается само сканирование TCP портов и, чтобы указать, какие порты вас интересуют, можно придать команде вид типа:

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

Если вы нацелились на ещё куда более обширный объём работ, можете опускать целые ранги в указанных диапазонах с помощью символа * (этот символ прекрасно “прокатывает” в поисковых сиситемах, если вы не уверены в вводимых символах, которые ищете):

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

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

Далее. Допустим, у вас целый список машин, которые вы собираетесь атаковать. Сканер можно заставить просканировать весь список:

…если вы, конечно, абсолютно уверены, что составленный список корректен.

Флаги в Nmap.

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

А вот иногда хакеру нужно просканировать сеть ЗА ИСКЛЮЧЕНИЕМ некоторых адресов (для него это может быть опасно – об этом потом). Тогда в команде нужно использовать параметр исключения:

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

Подберёмся чуть ближе. Сканируем порты. Если нужно «понюхать» конкретные порты на известных машинах (например, на предмет работы протоколов HTTP, FTP, Telnet – это всё реже), используйте в команде параметр релевантности:

Как вы поняли, в сканируемой сети будут исследоваться порты 80, 21 и 23.

Сканирование портов на службы UDP

Проблема сервисов (в смысле посканировать) UDP состоит в том, что с ними трудно установить связь. Порой для того, чтобы установить соединение, необходимо использовать специальный протокол, чтобы удалённая машина хоть что-то нам ответила. Плюс ко всему время: сканирование UDP сервисов отнимает времени гораздо больше, нежели на обычные TCP порты. Однако многие VPN открывают для “прослушки” только именно порты UDP. Похожим образом действуют NTP и DNS. И здесь можно применить такую стратегию: сначала работаем порты TCP, вторым заходом – UDP. Эффект – чисто психологический: собираем предварительный урожай из TCP портов, а потом фоном тратим МНОГО времени на UDP сервисы.

Команда сканирования UDP имеет вид (кстати, процесс требует прав):

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

Какие команды сканирования портов доступны?

Как вы поняли, ключевым параметром скриптового движка Nmap при сканировании портов (NSE) является добавление именно флага -p. Вот какие вариации с этим флагом возможны:

Сканирует два порта – 80 и 443

Сканирует порты с первого по сотый

Сканирует все порты

Сканирует порт 25 TCP и 53 UDP

Сканирует порты на предмет запущенного сервиса (в нашем случае smtp)

Сканирование портов из числа тех, что зарегистрированны только в службах Nmap

Немного поглубже или виды сканирования

Программа Nmap несёт в себе сразу несколько техник сканирования. В том числе сканирование по методу соединения по протоколу TCP. Рассмотрим метод поближе.

К СВЕДЕНИЮ

Обычно, когда запускается сканер Nmap, и начинается скнирование портов, сначала идёт запрос пингом, а затем поэтапно сканируются и порты. В этом и смысл защиты: не ответив на пинг, хост сканироваться не будет (что искать по адресу, который не в сети?). Вот, в Nmap для пропуска первоначального пинга добавим флаг -Pn и вектор сканирования будет смещён. Предупреждаю, это отнимет время: сканер будет принудительно “шерстить” действительно отключённые машины. Однако порой для сканирования машин, которые Nmap обычным пингованием пропустила бы, такой вариант может оказаться полезным. Особенно это касается сканирования большого количества адресов в сетях класса B – можно выцепить некоторые компьютеры, которые маскируются под DEAD. Сюда же можно отнести и использование флага -sL, с помощью которого можно обнаружить спрятавшиеся поддомены.

И, наконец, нельзя не упомянуть о сканировании пингованием TCP SYN. Он, в отличие от простого пинга (запроса ICMP) щупает хосты на предмет ответа порта на SYN запрос. Например, если мы сканируем целый блок IP адресов, на которых запущены SSL серверы, добавления флага -PS 443 пощупает указанный порт на вероятность ответа.

Сканирование портов: а что в Nmap есть ещё?

SYN Scan (-sS) – базовое сканирование портов. Иногда оно называется полуоткрытым, так как позволяет получать информацию от удалённого хоста без подтверждения установленного соединения по протоколу. Nmap отсылает так называемые пакеты SYN – символы синхронизации в компьютер назначения. Но фишка в том, что сессии никакой создано не будет, а потому логи соединения на принимающем пакеты компьютере созданы не будут – сессии-то нет – что придаёт этому методу определённые преимущества.

Как это выглядит в команде?

Да никак. Если команде в терминале не придать специфический вид, этот тип сканирования TCP SYN проводится по умолчанию. Но права root (или админа) понадобятся всё равно:

TCP connect scan (-sT) – техника сканирования по умолчанию БЕЗ ROOT (АДМИНИСТРАТОРА) ПРАВ. Так что будьте внимательны. В отличие от предыдущего типа (TCP SYN), соединение по протоколу TCP идёт по всем правилам, ваш компьютер будет просить соединения по портам TCP (не UDP) официально:

UDP Scan (-sU)

По названию вы уже поняли, что работа будет проводиться с портами UDP. Об этом разговор уже шёл. Сразу к делу: поиск открытых портов будет эффективнее, если использовать опции -sS вместе с –sU. В этом режиме Nmap отсылает UDP пакеты на компьютер-жертву и ждёт ответа. Если возвращается сообщение об ошибке, что ICMP недоступен, значит порт закрыт. Напротив, если сообщение подходящего характера, порт открыт:

FIN Scan (-sF) и иже с ним

О двух типах сканирования портов TCP вы уже знаете: “полноразмерный” пинг (-sT) и “половинчатый” SYN (-sS). Они запомнятся сами по себе, так как будут нас сопровождать почти в каждой из операций сканирования. Однако есть смысл попробовать и дополнительные варианты сканирования. О них я уже упоминал в одной из предыдущих статей: FIN, Xmas Tree и Null сканирования. Против серверов на базе ОС от Microsoft они не прокатят.

Смысл применения каждого из трёх вариантов прост: сканируя “мёртвый” порт, Nmap видит RESET пакет – своеобразную попытку перезагрузить связь со стороны закрытого порта, который этот пакет нам и присылает. А что делает открытый порт? Он роняет или сбрасывает это пинг. Потому, что большинство систем обнаружения вторжений (IDS) внимательно следят за входящими SYN пакетами.

Если на компьютере пользователя установлен фаерволл, простые TCP пакеты не «прокатят». Сканирование IDS и IPS ещё куда ни шло, но вот пакеты синхронизации бранмауэр заблокирует обязательно. Сканирование портов с флагом FIN не требует полноценного обмена данными между вашими компьютерами.

В этом случае компьютер жертвы не сможет создать лог соединения с компьютером хакера. Это тоже преимущество FIN сканирования. На тот же манер можно использовать сканирование с атрибутами xmas (-sX) и Null (-sN). Смысл тот же, но есть небольшая разница. FIN сканирование посылает пакеты с пометкой FIN, Null сканирование не отсылает ни одного бита информационных пакетов, а вот Xmas отсылает пакеты с флагами FIN, PSH и URG.

Ping Scan (-sP) – этот вид сканирования предназначен только для того, чтобы определить, работает ли хост. Открытые порты он не обнаруживает.

Version Detection (-sV)

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

Idle Scan (-sI)

Самый, видимо, популярный тип сканирования, так позволяет проводить сканирование портов анонимно. Nmap не отправляет пакеты с вашего IP – программа использует другой компьютер из той же сети.

nmap -sI компьютер-зомби компьютер-жертва

Эти команды используются для того, чтобы обнаружить открытые порты на компьютере с IP адресом 192.168.1.1 при одновременном использовании компьютера-зомби с адресом 192.168.1.6. Идеальная техника сканирования в анонимном режиме.

Чем закончится сканирование портов ?

Nmap разделяет порты по следующим категориям:

  • Open (открыт) – означает, что некое приложение слушает соединения именно через этот порт
  • Closed (закрыт) – означает, что пробы получены, однако ни одна из программ не собирается соединятся с сетью через этот порт
  • Filtered (фильтруется) – пробы на пинг даже не прошли, следовательно, состояние порта (открыт или закрыт) установить на этом этапе не удалось; возможно, система безопасности фильтрует порт от прослушки
  • Unfitered (не фильтруется) – означает, что пробы на пинг положительные, но на данный момент установить состояние порта невозможно
  • Open/Filtered (открыт, но отфильтрован) – сканер не сможет установить состояние порта
  • Closed/Filtered (закрыт и отфильтрован) – тоже самое, но порту предшествовало открытое состояние.

Ладно, техник сканирования ещё немало. Но те, какими можно воспользоваться с максимальным результатом, я перечислил.

Блог о Linux и Windows

Записки по настройке Debian Ubuntu и Microsoft Windows

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

Несколько примеров использования nmap.

Методом TCP connect nmap будет сканировать диапазон портов (1-65535) компьютера с IP-адресом, опция -sV служит для получения версий запущенных сервисов:

$ nmap -sV ххх.ххх.ххх.ххх -p 1-65535

Так же стоит обратить внимания что у нас в поле SERVICE и STATE.

В поле SERVICE — всегда отображается значение из файла /etc/services, соответствующее номеру порта. Это отнюдь не означает, что по данному порту будет запущен тот сервис, который указан в поле SERVICE. Можно запустить Web-сервер по 22 порту, а сервер SSH — по 80, но nmap все будет писать, что 22 порт — это ssh, a 80 — это HTTP.

В поле STATE — В одном случае порт ssh открыт (open), другом — отфильтрован (filtered). Значение Filtered значит, что порт отклоняет (reject) или отбрасывает (drop) трафик. Это не говорит о том, запущен ли на этом порту сервис или нет.

UDP-порты надо обязательно сканировать. При поиске уязвимостей UDP-сервисы обычно упускают из виду, но многие UDP-сервисы (echo, chargen, DNS — работает как по TCP, так и по UDP, а также RPC (Remote Procedure Call)) работают по протоколу UDP. Некоторые из них известны своим огромным списком эксплоитов, позволяющим получить права root’a. UDP-сканирование делается с помощью опции -sU сканера nmap:

$ nmap -sU xxx.xxx.xxx.xxx -p 1-65535

Время сканирования UDP-портов довольно большое примерно 1 секунда на порт.Отчего так долго ? Система ограничила отправку ICMP-ответов: не более 1 в секунду. При UDP-сканировании нужно использовать опцию -Т. Она позволяет указать агрессивность сканирования. Есть 6 скоростей сканирования: Paranoid, Sneaky, Polite, Normal, Aggressive и Insane ( -T Polite). Первая скорость самая медленная, последняя — самая быстрая.

Описания методов типов сканирования.

-sT — сканирование TCP портов в обычном режиме. Сканирование происходит на основе функции connect() присутствующей во всех полноценных ОС. Если соединение с удалённым портом установлено, то данный порт открыт, иначе порт закрыт либо фильтруется.

-sS — использование метода TCP CYN. Это так называемое стелс сканирование. Nmap отправляет на удалённый порт SYN-пакет и ожидает ответа. В зависимости от ответа определяется состояние порта. При этом полноценное соединение не устанавливается. Благодаря этому определить факт сканирования очень сложно. Для запуска этого метода требуются рутовские привилегии на Вашей тачке.

-sF,-sX,-sN (scan FIN, scan Xmas, scan NULL) — эти совместные методы используется например если если не помогло -sS или -sT сканирование.

-sU — сканирование UDP портов. На удалённый порт отправляется UDP-пакет и ожидается ответ. Если ответ содержит ICMP-сообщение «порт недоступен» значит порт закрыт либо режется файерволом, иначе порт открыт. Для запуска опять же требуются рутовские привилегии на вашем компе.

-sО — похоже на -sU, только для IP портов.

-sR — использование RCP-сканированиея. Этот метод позволяет определить прогу обслуживающую RCP-порт и её версию. При этот если на удалённом серваке установлен файервол, Nmap его пробивает не оставляя логов.

-sP — ping-сканирование. Данный метод позволяет узнать все адреса активных хостов в сети. Nmap отправляет на указанный IP ICMP-запрос, если в сети есть активные хосты, они отправят нам ответ, тем самым указав на свою активность. Если Вы пингуете сети лучше не указывать больше никаких методов сканирования.

Описания некоторых опций.

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

-O — так называемый режим «снятия отпечатков» TCP/IP для определения удалённой ОС (OS fingerprints). Работает это следующим образом: Nmap отправляет удалённой системе запросы и в зависимости от ответов («отпечатков» стека) определяется ОС и её версия.

-p «диапазон» — сканирование определённого диапазона портов. Например: ‘-p 21, 22, 25, 80, 31337’. Это уменьшает время сканирования за счёт уменьшения диапазона портов.

-F — сканирование стандартных портов записанных в файл services (1-1024). Это так называемое быстрое сканирование.

-P0 — отмена ping-опросов перед сканированием портов хоста. Полезна в тех случаях, если Вы сканируете сети типа microsoft.com, так как в них ICMP-запрос режется файерволом.

-6 — сканирование через протокол IPv6. Работает значительно быстрее чем через IPv4.

-T «Paranoid|Sneaky|Polite|Normal|Aggressive|Insane» — настройка временных режимов. При «Paranoid» сканирование будет длиться очень долго, но тогда у Вас больше шансов остаться не обнаруженными скан-детекторами. И наоборот «Insane» используёте при сканировании быстрых либо слабо защищённых сетей.

-oN/-oM «logfile» — вывод результатов в logfile в нормальном (-oN) или машинном (-oM) виде.

-oS «logfile» — эта опция позволяет возобновить сканирование если оно было по каким-либо причинам прервано и результат записывался в файл (была включена опция -oN «logfile» или -oM «logfile»). Для продолжения работы нужно запустить Nmap с указанием только этой функции и файла в которой записывалось предыдущее сканирование («logfile»).

-D «host_1, host_2. host_n» — это очень полезная функция. Она позволяет запутать удалённую систему и сделать видимость что её сканируют с нескольких хостов («host_1, host_2. host_n»), тем самым стараясь скрыть Ваш реальный адрес.

nmap -A -T4 192.168.100.123 — самый распространенный метод сканирования.

20 Потрясающих Примеров Команды Nmap

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

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

Вы увидите, как удаленно определить операционную систему с помощью отпечатков стека TCP/IP и как узнать версию программного обеспечения запущенного на удаленном сервере.

Я так-же покажу как с помощью Nmap осуществить скрытое сканирование, как определить фаервол и как подменить MAC адрес.

Дельный Совет: Хотите сохранить анонимность? Узнайте как использовать ПРОКСИ из командной строки в Linux. Читать далее →

1. Сканирование Одного Хоста или IP Адреса

Сканировать Отдельный IP Адрес:

Сканировать сервер по Имени Хоста:

Увеличить Уровень Детализации результатов сканирования:

2. Сканирование Множества IP Адресов

Сканировать Множество IP Адресов:

Сканировать Подсеть:

Сканировать Диапазон IP Адресов (192.168.1.0 — 192.168.1.200):

3. Поиск Активных Компьютеров в Сети

Дельный Совет: Сканируйте сеть с помощью одной лишь команды ping ! Вычислите все активные компьютеры! Читать далее →

Сканировать сеть в поиске Активных Хостов:

4. Сканирование Списка Хостов из Файла

Сканирование списка хостов/сетей из Файла:

5. Исключение IP/Хостов/Сетей из Сканирования

Исключить Цели из сканирования Nmap-ом:

Исключить Список хостов, взятых из файла:

Формат файла с исключенными хостами аналогичен приведенному выше.

6. Сканирование Определенных Портов

Сканировать Один Порт:

Сканировать Несколько Портов:

Сканировать Диапазон Портов:

Сканировать Все Порты:

Сканировать несколько самых Распространенных Портов:

7. Определение Поддерживаемых IP Протоколов

Определить какие IP Протоколы (TCP, UDP, ICMP, и т.д.) поддерживает сканируемый хост:

8. Сканирование TCP/UDP Портов

Сканировать все TCP Порты:

Сканировать определенные TCP Порты:

Сканировать все UDP Порты:

Сканировать определенные UDP Порты:

Объединение сканирования разных портов:

9. Быстрое Сканирование

Активировать Быстрый Режим сканирования:

* Сканирует меньшее кол-во портов, чем при обыкновенном сканировании.

10. Показывать Причину Состояния Порта

Показать Причину, по которой Nmap считает что порт находится в определенном состоянии:

11. Показывать Только Открытые Порты

Показать Только Открытые Порты (либо возможно открытые):

12. Определение ОС

Nmap посылает серию TCP и UDP пакетов на удаленный хост и изучает ответы.

После проведения множества тестов, Nmap сравнивает результаты со своей базой данных и, при нахождении соответствий, выводит информацию об ОС.

Включить Определение ОС:

13. Определение Версии Сервисов

Включить Определение Версии Сервисов:

* Определяет версии программ, запущенных на удаленном сервере.

14. Обнаружение Фаервола

Узнать, защищен ли компьютер какими-либо Пакетными Фильтрами или Фаерволом:

15. Подмена MAC Адреса

Подменить MAC Адреса:

Подменить MAC Адрес Случайным MAC-ом:

16. Сканирование Фаервола на Уязвимости

Когда сканируется система отвечающая требованиям RFC, любой пакет, не содержащий установленного бита SYN, RST или ACK, повлечет за собой отправку RST в ответ в случае, если порт закрыт, или не повлечет никакого ответа, если порт открыт.

Т.к. ни один из этих битов не установлен, то любая комбинация трех оставшихся (FIN, PSH и URG) будет являться правильной.

TCP Null сканирование:

* Не устанавливаются никакие биты (Флагов в TCP заголовоке 0).

TCP Fin сканирование:

* Устанавливается только TCP FIN бит.

TCP Xmas сканирование:

* Устанавливаются FIN, PSH и URG флаги (пакет светится как новогодняя елка).

17. Скрытое Сканирование

Дельный Совет: Сохраняйте анонимность во время сканирования портов! Используйте Nmap + Tor + ProxyChains ! Безопасное и простое тестирование на проникновение! Читать далее →

TCP SYN сканирование:

* Известное как сканированием с использованием полуоткрытых соединений, так как не отрывает полных TCP соединений.

18. Отключение Обнаружения Хостов (No Ping)

Не пинговать хосты перед сканированием:

19. Отключение Использования DNS

Дельный Совет: Необходимо усилить безопасность в Linux? Шифруйте DNS трафик для защиты от спуфинга! Читать далее →

Никогда не производить обратное преобразование DNS имен для каждого обнаруженного активного IP адреса:

20. Сохранение Результатов Сканирования Nmap в Файл

Сохранить результат сканирования Nmap в Текстовый Файл:

Сохранить результат сканирования Nmap в XML Файл:

Сканирование сетевых портов в Linux – команда nmap

Системы Linux и UNIX являются сетевыми операционными системами (ОС). Поэтому их эксплуатация неразрывно связана с администрированием и обслуживанием сетей. Независимо от сложности и масштабов сети необходимо проводить постоянный мониторинг окружения сети на предмет качества связи и соединений. А также для определения признаков или даже фактов вредительства в ней или несанкционированных атак. Одним из эффективных инструментов для выполнения подобных задач является команда nmap.

Зачем нужна команда nmap?

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

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

Синтаксис команды nmap и особенности её работы

Команда nmap довольно проста в использовании и каким-то сложным синтаксисом не отличается:

Чего нельзя сказать о количестве, функциональности её ключей и неисчерпаемых возможностях их применения. Официальная документация, доступная на страницах man-руководства (команда man nmap), кроме того, что очень подробная (трудно встретить ещё подробнее), так ещё и имеет качественный перевод (локализации, в том числе и на русском языке) в большинстве Linux-дистрибутивов.

Не всегда утилита nmap предустановлена в системе, поэтому для её использования требуется установка соответствующего пакета, который обычно имеет имя nmap:

Или в Centos/Redhat

Столбец STATE показывает состояние порта: он может быть открыт (open), когда связан с использующими его службами (соединениями), закрыт (closed), когда порт не используется ни одним сервером. Также доступны состояния: unfiltered, когда nmap не смогла определить состояние порта. А также filtered – когда порт защищён (или заблокирован) брандмауэром.

Для задания хоста можно также использовать цифровую запись в виде IP-адреса. Отчёт из данного примера сформирован для самого обычного компьютера, для которого не была сконфигурирована какая-то защита. Как можно видеть, для прослушивания 80 и 443 портов для работы протоколов HTTP и HTTPS соответственно, запущен веб-сервер. Сервер баз данных (БД) MySQL также работает по стандартному порту.

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

Если посмотреть на отчёт команды nmap для более защищённого узла, то он будет выглядеть примерно так:

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

Однако, одна из особенностей nmap заключается в том, что эту команду можно использовать в «хакерском» режиме. Другими словами она позволяет сканировать порты без установки реальных соединений. Это достигается путём использования неквитирующих пакетов, т. е. тех, которые похожи на имеющиеся в существующих соединениях. Но в ответ на такие пакеты можно получать пакеты диагностические. Т. е. получать информацию о соединении, при этом не быть «замеченным» брандмауэром или другим сетевым фильтром. Которые следят за «сканировщиками» портов.

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

Как можно видеть, компьютер с IP-адресом 192.186.0.101 работает под управлением ОС Windows, предположительно Windows 7. Информация в отчёте довольно подробная, определён даже MAC-адрес сканируемого сетевого устройства.

Стоит рассмотреть некоторые примеры для команды nmap, которые могут пригодиться администраторам в их работе. Сканирование нескольких адресов:

Определение активных узлов в сети:

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

Записи адресов в файле указываются также, как и в командной строке. И разделяться должны одним или несколькими пробелами или символами перевода строки. Для сканирования определённых портов:

или диапазона портов:

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

Сканирование определённых типов портов (TCP или UDP):

Соответственно для указания UDP-портов следует указывать опцию -U. Для объединённого сканирования портов:

Для скрытого сканирования:

Сохранение результатов сканирования в файл:

Определить (с высокой степенью вероятности), работает ли на сканируемом узле брандмауэр или другой пакетный фильтр:

Определение только открытых портов:

Определение версии ОС, а также трассировки маршрутов:

Чтобы исключить из сканирования определённые адреса или подсети нужно использовать опцию —exclude:

Чтобы использовать для этой цели данные из файла, применяется опция —excludefile:

Заключение

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

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

Источник: softaltair.ru

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