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 могут быть полезными многим системным администраторам, чтобы улучшить безопасность их систем. Но это далеко не все возможности утилиты. Продолжайте экспериментировать с утилитой чтобы узнать больше только не в чужих сетях!

Тайминг Nmap или как настроить “громкость” сканирования.

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

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

Помимо описываемых в той статье опций, я бы выделил в отдельную тему тайминг nmap, задаваемый в командах флагами T. Так, наш сканер в состоянии регулировать тайминги (время задержек и простоев) в пробах на живучесть удалённой системы. Эта же опция может задавать максимальное число параллельно запущенных потоков сканирования и диапазон задержки для подаваемых в сеть сигналов. Короче говоря, флаги Т в командах Nmap позволят вам проводить сканирование в момент на манер обнаглевшего грабителя или, наоборот, аккуратно и въедливо по примеру неприметного карманника. T помогает отсканировать несколько хостов в течение нескольких минут, или работать единственную жертву часами.

Практически все опции тайминга Nmap разбиты на четыре основные группы:

  • время полного обхода (всего заданного тестором сетевого дерева поиска)
  • параллельное сканирование хоста
  • параллельное сканирование порта
  • собственно, время задержки

Каждая из таких категорий настраивается отдельно. Или же тестирующий может задать общую политику тестирования до процесса сканирования.

Тайминг Nmap: как это выглядит?

Тайминг Nmap задаётся T-опцией:

-T

где громкость сканирования идёт по нарастающей с . Переходим к подробностям.

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

  • Т0 – параноидальный тип
  • Т1 – крадущийся
  • Т2 – вежливый
  • Т3 – нормальный
  • Т4 – агрессивный
  • Т5 – сумасбродный

Вы видите, что, начиная с категории самосохранения, хакер выставит минимальную задержку сканирования по портам аж в 5 минут до в четверть секунды (разведка на манер”подсмотреть в окно и убежать”). Это лирика, но вы понимаете, что работе с удалённой системой тайминг сканирования Nmap приобретает важное значение для результата: в сетях с ограниченной пропускной способностью желательно быть немного потише.

В шапке вышеприведённой таблицы мною указаны параметры задержек в описываемых -T флагах по умолчанию . А имена типов задержек на русском. Применимость в командах описываю ниже.

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

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

  • scan-delay – опция установки времени задержки сканирования (в команде – 1 сек, а в таблице – до 10 мс максимум) – снятие проб будет не таким агрессивным, что, поверьте, часто спасает от раннего обнаружения механизмами безопасности “проверяемых” ресурсов.
  • initial-rtt-timeout – заданная задержка ПКО относительно дефолтной ТХ (по умолчанию 500 мс для Т4, в нашей команде – 170 мс)
  • host-timeout – этот аргумент появляется, если мы захотим прекратить сканирование указанной цели по истечение установленного вами времени (10 мин.)

Тайминг Nmap: что хочу, то и ворочу.

Основательно поднаторев, вы можете использовать тайминги сканера на полную катушку. Так, для установки задержек пинга можно флаг -T вообще не указывать, уделяя внимание заданной величине initial-rtt-timeout. Например:

Nmap конечно же попытается скорректировать работу собственных скриптов на основе получаемых проб, но, как видите по команде сверху, задержку периода обращения сигнала можно задавать жёстко. Поначалу даже можно просто воспользоваться приводимой Таблицей и разбавлять команду сканирования, вообще не применяя лекал -Tx:

установит задержку ПКО на 300 мс дл сайта

позволит сканеру балансировать пробами в указанном интервале. Сразу НО. Аккуратнее с показателем максимального порога задержки max-rtt-timeout: установив это значение очень низким, вы с лёгкостью пролетаете мимо открытых портов.

Тайминг Nmap позволяет запихнуть и команду пинга. Вот, например, так:

Вернёт результаты обхода 25-тью эхо-пакетами ICMP вашей цели, и по окончании сего действа отобразит минимальный, усреднённый и максимальный показатели RTT (ПКО) по сайту. Зачем, спросите вы? Изучаем результаты работы эхо-запросов и, опять же, исходя из опыта, можно будет безошибочно определять время в опциях initial-rtt-timeout и max-rtt-timeout для конкретного сайта, который … ну никак не поддаётся

Вобщем, статью априори не закончить: только опыт вас “под-навтыкает”. По мере появления полезного и интересного буду дополнять.

Сканирование сети с помощью Nmap.

Nmap (Network Mapper) – универсальная программа для сканирования сети. Большой плюс в том, что она применима как на Windows , так и на Linux-системах.
Nmap можно использовать как для помощи в администрировании сети, так и для проверки сети на уязвимости, узнать как порты открыты и что можно узнать по данным портам.
В данной статье мы расскажем про наиболее интересные команды, которые могут вам пригодиться.

Nmap показывает состояния по портам:
– порт открыт для определенного сервиса или приложения;
– порт блокируется фаерволлом;
– порт закрыт;
– невозможно точно определить статус порта;

Перейдем к самим командам и ключам Nmap на примерах.

Для примера мы находимся в локальной сети 192.168.0.0/24 и будем ее сканировать, но так же можно сканировать любой внешний адрес или доменное имя.
Установка namp командой:

Сканирование с помощью NMAP.

Сканируем подсеть на c выводом состояния подключений на каждом ip-адресе.
Если в момент сканирования нажать “Пробел”, то видим в процентах сколько уже про сканировано.

Если нам нужно отобразить только адреса в состоянии UP, то команда будет выглядеть следующим образом:

Команда nmap с ключом -sL сканирует заданную подсеть и выводит информацию о обнаруженных активных хостах в виде списка.
Можно также сканировать несколько подсетей одной командой, например подсети 192.168.0.0/24 и 10.34.100.0/24

либо, первые 100 адресов подсети 192.168.0.0/24

Если задать ключ -sP, то nmap выводит более подробную информацию о ip-адресе в виде:

Мы можем также узнать операционную систему узла 192.168.0.50, через команду:

Сканирование по портам с помощью NMAP.

Можно указать диапазон портов, например 1000-1010 для сканирования адреса 192.168.0.100:

если мы хотим просканировать только tcp-порты, то используем перед портами T:, если UDP-порты, то пишем U:. Например, сканируем только порты U:53, T:23,22 для хоста 192.168.0.0/24:

либо с именем сервиса-порта:

Ключ “-p-” сканировать все 65 тысяч портов, по-умолчанию сканируется только около 1000-топ портов.

Как узнать информацию о запущенных сервисах на сайте или узле локальной сети?

Для поиска информации о сервисах используется ключ -sV.

Который расскажет нам историю про порт (80/tcp), состояние порта (open, closed), имя сервиса (http) и его версию (nginx).
Если вводить команду nmap 192.168.0.201 без каких-либо ключей, то мы видим почти одинаковый вывод как и с ключом -sV, только без колонки VERSION.

Показать только открытые порты.

Работа NMAP со скриптами.

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

Как использовать библиотеку скриптов в nmap?
Через предыдущую команду мы видим в списке скрипт vnc-brute.nse, который по своей библиотеке будет перебирать учетные записи(логи-пароль) для получения доступа к узлу.
Например командой

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

0, которая прогонит адрес всеми скриптами в библиотеке, или

Обновить базу скриптов можно командой:

Далее примеры nmap и возможности коротко, сборки с интернета:

-p- сканирует весь диапазон портов;
-PS80,443 доступность адреса только если проходит ping по доступности tcp-портов 80,;
-n не делать DNS-resolve;
-T4 – быстрое сканирование;
-vvv – порты будут отображаться в онлайн-режиме сканирования, а не по окончанию;
— reason – выясняет почему nmap вывел порт в определенном состоянии

сканируем случайные 10 адресов по 22 порту;
-PN пропускаем обнаружение хостов.

сканер по портам 22,80,443 50 адресов с выводом информации о работающей службе по данным портам.

показывает трасировку до хоста.

Дополнительные ключи для обходи систем защиты:
-f; –mtu : Фрагментировать пакеты (опционально с заданным значением MTU).
-D : Маскировка сканирования с помощью фиктивных хостов.
-S : Изменить исходный адрес.
-e : Использовать конкретный интерфейс.
-g/–source-port : Использовать заданный номер порта.
–data-length : Добавить произвольные данные к посылаемым пакетам.
–ip-options : Посылать пакет с заданным ip опциями.
–ttl : Установить IP поле time-to-live (время жизни).
–spoof-mac : Задать собственный MAC адрес.
–badsum: Посылать пакеты с фиктивными TCP/UDP контрольными суммами.

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

Почти 6 лет назад исследователь в области безопасности Antirez опубликовал новую технику сканирования TCP портов. Idlescan (скрытое сканирование) позволяет полностью просканировать порты компьютера-цели. При чем для этого атакующему не надо посылать ни одного пакета к компьютеру-цели с реального адреса атакующего! При этом системы обнаружения вторжений (IDS) не смогут определить истинного адреса атакующего. Вместо этого источником атаки будет считаться абсолютно «невинный» компьютер.

Техника IdleScan

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

Осознав эти особенности становиться возможным сканировать сеть, прикрываясь чужим адресом. Эта техника описана на рисунке ниже. Атакующий A сканирует цель Target прикрываясь хостом-зомби Z. Прямоугольники представляют компьютеры, стрелки — пакеты.

Как видно, «жертва» по разному отвечает хосту-зомби на якобы пришедшие от него пакеты. Если проверяемый порт открыт, «жертва» посылает пакет SYN|ACK хосту-зомби. Хост-зомби не ожидает никаких пакетов от «жертвы» и отвечает RST пакетом (сброс). Отвечая пакетом RST, хост-зомби увеличивает значение номера IPID (номер фрагмента). Настоящий атакующий определяет это в 3-м пункте рисунка. Если порт закрыт, «жертва» посылает хосту-зомби пакет RST, на который хост-зомби не отвечает (зачем отвечать, если вас послали? ;)), при этом IPID хоста-зомби не меняется. Атакующий проверяет на шаге 3 состояние счетчика IPID: если он увеличился на 2 (пакет RST и проверочный пакет) — порт открыт. Если на 1 — порт закрыт.

Преимущества IdleScan

Техника IdleScan предоставляет атакующему массу преимуществ по сравнению с классическими медодами сканирования, такими, как SYN или FIN-сканирование. Вот почему мы настоятельно рекомендуем обратить внимание на главу «Меры по защите от IdleScan». Ниже мы приводим причины, по которым хакеры могут воспользоваться этим методом:

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

Первым делом необходимо найти подходящий хост-«зомби». Хост не должен гнать большой трафик (отсюда и название — сканирование «вхолостую») и должен иметь предсказываемые значения IPID. Принтеры, ОС Windows, старые Linux-хосты, FreeBSD и MacOS обычно превосходно работают. Последние версии Linux, Solaris и OpenBSD имунны как зомби, однако любой хост может использоваться в качестве жертвы. Один из методов определить уязвимость хоста — это запустить Nmap с параметрами IdleScan. Nmap сам проверит хост-«зомби» и сообщит о его пригодности.

Выполнить эту операцию очень просто. Необходимо лишь указать имя «зомби» после опции -sI — и Nmap сделает все остальное. Вот пример:

# nmap -P0 -p- -sI kiosk.adobe.com www.riaa.com

Starting nmap V. 3.10ALPHA3 ( www.insecure.org/nmap/ )
Idlescan using zombie kiosk.adobe.com (192.150.13.111:80); Class: Incremental
Interesting ports on 208.225.90.120:
(The 65522 ports scanned but not shown below are in state: closed)
Port State Service
21/tcp open ftp
25/tcp open smtp
80/tcp open http
111/tcp open sunrpc
135/tcp open loc-srv
443/tcp open https
1027/tcp open IIS
1030/tcp open iad1
2306/tcp open unknown
5631/tcp open pcanywheredata
7937/tcp open unknown
7938/tcp open unknown
36890/tcp open unknown

Nmap run completed — 1 IP address (1 host up) scanned in 2594.472 seconds

Из приведенного листинга видно, что RIAA не так уж хорошо защищен (заметьте — открыты порты PC Anywhere, Portmapper и Legato nsrexec). Поскольку судя по всему файрволла они не имеют, не похоже, чтобы они имели и какой-нибудь IDS. Но если бы и имели, они бы увидели зомби «kiosk.adobe.com» в качестве источника сканирования. Опция -P0 указывает Nmap не посылать PING-запроса машине RIAA. Это замедляет процесс сканирования, но зато ни один пакет с реальным IP-адресом атакующего не проходит на атакуемую машину. Сканирование проходило очень долго, поскольку были опрошены все 65535 портов. Попустите опцию -p-, чтобы сканировать только первые 1024 порта и остальные известные. И еще: найдите своего «зомби» — «kiosk» не очень подходит для этой цели, он очень часто пропадает, и, похоже, постоянно контролируется.

Защита от IdleScan

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

Поставщики услуг Интернет (Internet Service Providers — ISPs):

Самая основная защита для ISP — это запрет исходящих пакетов с поддельными IP-адресами. Это не только обезопасит Вас от запуска Вашими клиентами IdleScan, но и от использования ими многих других вредоносных программ. Кроме помощи Интернету вцелом, Вы избавите себя и от излишних трат на расследование инциндентов с Вашими клиентами.

Разработчики ОС (OS Vendors):

Один хороший подход к решению проблемы — это использование соединения с условно-постоянными значениями IPID. Solaris сделала это, и несколько ограничила атакующих при сборе информации об остальных соединениях. Linux 2.4 также использует условно-постоянные IPID (см. net/ipv4/inetpeer.c). В добавок ко всему, Linux 2.4 обнуляет IPID в пакетах с флагом DF (Don’t Fragment). После этого значение IPID критично лишь при дефрагментации IP-пакета. Другое решение (используется в OpenBSD) — генерация IPID случайным образом. Трудно реализовать правильно — будьте уверены, что последовательность не повторяется и отдельные значения не используются дважды за короткий промежуток времени.

Проблемы IdleScan

А сейчас давайте обсудим проблемы, могущие возникнуть (и возникшие перед нами) при разработке быстрого и точного Idle-сканера. Лишь немногие из вас пробовали сделать сканер сами, поэтому статья будет еще интересна и тем, кто может читать исходный код Nmap и других сканеров. Итак, мы выделим лишь некоторые основные моменты.

Быстродействие. Последовательное сканирование портов (как показано на диаграмме) — крайне медленный процесс для тысяч портов. В Nmap мы решили отсылать параллельно до 100 тестов. Обычно все порты «жертвы» закрыты и IPID «зомби» не увеличивается. Если Nmap обнаружил, что IPID увеличился, он незамедлительно снижает скорость сканирования.

Активные «зомби». IdleScan основан на подсчете числа пакетов, посланных «зомби», предполагая, что эти пакеты — ответы на пакеты, сгенерированные «жертвой». Таким образом, посторонние пакеты, посланные «иммунным» зомби, могут вызвать существенные нарушения в работе алгоритма. Nmap пытается решить эту проблему путем сверки ретрансмиссии пакетов и некоторых других методов для определения ложных результатов. Например, Nmap знает, что алгоритм нарушен в случае, если при проверке 6 портов IPID увеличился на 10 или 20. Nmap пытается настроить временные параметры сканирования и паралеллизм для компенсации времени при использовании активных хостов или при обнаружении «потерянных» пакетов. Обычно, Nmap не работает с очень активными «зомби». Один из методов работы с высоко активным «зомби» — отсылка большого числа (десятков или сотен) тестов на один порт. Эта техника «грубой силы» может скрыть некоторое число «белого шума» трафика. К сожалению, это выливается в значительное увеличение ширины канала и снижение скорости сканирования, кроме того, существует вероятность SYN-флудинга (переполнение буфера и отказа в обслуживании) «жертвы».

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

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

Еще о технике предсказания IPID

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

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

Определение алиасов хоста. Иногда один хост имеет несколько IP-адресов или сетевых интерфейсов. Вы можете определить, какой IP-адрес соответствует данному хосту путем поиска идентичных значений IPID.

Демультиплексирование балансирующего канального оборудования. Это почти что реверсивная к IdleScan техника. Большие сайты часто используют оборудование балансировки загрузки, так что один адрес соответствует небольшому числу серверов. При помощи IPID Вы можете определить, сколько машин входят в группу балансировки и к какой из них Вы подключены. Например, поле ID в следующем листинге программы hping2 отчетливо показывает, что beta.search.microsoft.com поддерживается двумя машинами под балансировщиком (207.46.197.115):

# hping2 -c 10 -i 1 -p 80 -S beta.search.microsoft.com.
HPING beta.search.microsoft.com. (eth0 207.46.197.115): S set, 40 headers + 0 data bytes
46 bytes from 207.46.197.115: flags=SA seq=0 ttl=56 id=57645 win=16616 rtt=21.2 ms
46 bytes from 207.46.197.115: flags=SA seq=1 ttl=56 id=57650 win=16616 rtt=21.4 ms
46 bytes from 207.46.197.115: flags=RA seq=2 ttl=56 id=18574 win=0 rtt=21.3 ms
46 bytes from 207.46.197.115: flags=RA seq=3 ttl=56 id=18587 win=0 rtt=21.1 ms
46 bytes from 207.46.197.115: flags=RA seq=4 ttl=56 id=18588 win=0 rtt=21.2 ms
46 bytes from 207.46.197.115: flags=SA seq=5 ttl=56 id=57741 win=16616 rtt=21.2 ms
46 bytes from 207.46.197.115: flags=RA seq=6 ttl=56 id=18589 win=0 rtt=21.2 ms
46 bytes from 207.46.197.115: flags=SA seq=7 ttl=56 id=57742 win=16616 rtt=21.7 ms
46 bytes from 207.46.197.115: flags=SA seq=8 ttl=56 id=57743 win=16616 rtt=21.6 ms
46 bytes from 207.46.197.115: flags=SA seq=9 ttl=56 id=57744 win=16616 rtt=21.3 ms

— beta.search.microsoft.com. hping statistic —
10 packets tramitted, 10 packets received, 0% packet loss
round-trip min/avg/max = 21.1/21.3/21.7 ms

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

Определение правил файрволла. IPID может оказать существенную помощь в определении набора правил файрволла. Вот простой пример:

  1. Получаем IPID «жертвы», находящейся под защитой файрволла.
  2. Отправляем PING-пакет «от хоста» той же сети на эту же «жертву».

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

Заключение

В заключении мы хотели бы привести некоторые ссылки на ресурсы по данной тематике:

Hacking Articles

Raj Chandel’s Blog

Nmap Scan with Timing Parameters

Hello everyone, in this article we will have a look at the different parameters that are used together to make a timing template and how to use those parameters individually according to will.

Nmap Timing Template

As we have seen that Nmap has multiple timing templates that can be used differently as according to the requirement. Click here to check the timing scan article. Let’s see what’s inside the timing template. to get the description of timing template we’ll use -d attribute.

Here we have multiple arguments that collectively make a timing template. Let’s have a look at them one by one.

  • Host-groups
  • Rtt-timeouts
  • Scan-delay
  • Max-retires
  • Min-rates
  • Parallelism

Maximum Retries (–max-retries)

–max-retries specifies the number of times a packet is to be resent on a port to check if it is open or closed. If –max-retries is set to 0, the packets will be sent only once on a port and no retries will be done.

Here in Wireshark, we can see that 1-1 TCP SYN packet sent to each port from source: 192.168.1.126 to destination: 192.168.1.139 are not sent again.

Now we will apply a small firewall rule on the target machine so that the packets get blocked if they come at a faster rate.

Now, the normal scan will not show any results with max-retries

As we can see that the ports whose packets got dropped are not sent again so their status is not determined.

here we can increase the max-retries value which will bypass the specified firewall filter so that we can get the exact port status.

Here we can see that TCP SYN packets sent to one port from source: 192.168.1.126 to destination: 192.168.1.139 are sent again and again until the packets return a specified reply or the maximum retry value (here 5) is reached.

Host-timeout

The –host-timeout is an attribute that specifies the scan to give up on a host after the specified time. The lesser the time specified the more are the chances of inaccuracy in scan results.

We can specify the time in milliseconds (ms), seconds (s), minutes (m)

Now we will try to get the result by increasing the timeout value

We can use –host-timeout in other scenarios also like when we need to check if the host system is live or not. Here we have shown how the host-timeout can affect the results of a ping scan.

The output from the above command had given 0 hosts is up.

The output from the above command had given 1 host is up.

Hostgroup

hostgroup attribute is specified to scan a specified number of hosts in the network at a time. You need to specify the minimum number of hosts or maximum number of hosts or both to be scanned at a time

From given below image you can be observed that it has shown only 3 live hosts from inside complete subnet mask and save your time from scanning the complete network.

Scan delay

Scan delay is used to delay the packet to be sent by the specified time. It is very useful in evading time-based firewalls.

here we can see the time difference in between the packets

packet 1: TCP SYN packet on port 25 at 07:58:01 from 192.168.1.126 to 192.168.1.139

packet 2: TCP SYN packet on port 22 at 07:58:12 from 192.168.1.126 to 192.168.1.139

Now if you will count the time difference between these packets you get 11 sec time laps between these two packets.

Maximum rate (max-rate)

Rate is an attribute that specifies at what rate is the packets are to be sent, in other words, number of packets to be sent at a time. Max-rate specifies the maximum number of packets to be sent at once.

wireshark shows that the packets sending rate are less than 2, means the number of packets sent at a time is less than or equal to 2

packet 1: TCP SYN packet on port 21 at 03:17:20 from 192.168.1.126 to 192.168.1.139

packet 2: TCP SYN packet on port 23 at 03:17:21 from 192.168.1.126 to 192.168.1.139

Now if you will count the time difference between these packets you get 1 sec time laps between these two packets indicating that these two packets were not sent together.

Minimum rate (min-rate)

Min-rate specifies the maximum number of packets to be sent at once. Here if we want at least 2 packets must be sent on target’s network at the same time not less than this, then need to execute below command.

wireshark shows that the packets sending rate are greater than 2, means the number of packets sent at a time is equal to or greater than 2

packet 1: TCP SYN packet on port 23 at 03:28:29 from 192.168.1.126 to 192.168.1.139

packet 2: TCP SYN packet on port 22 at 03:28:29 from 192.168.1.126 to 192.168.1.139

Now if you will count the time difference between these packets you get only a fraction of second as time laps between these two packets indicating that these two packets were sent together.

Parallelism

Parallelism attribute is used to send multiple packets in parallel, min-parallelism means that the number of packets to be sent in parallel is to be greater than the value specified and max-parallelism means that the number of packets to be sent in parallel is to be less than or equal to the value specified

Сканирование сетевых портов в 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

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