Программы для сканирования IP-адресов и портов. Сканирование открытых портов по ip

И дома, и на работе мы постоянно сталкиваемся с компьютерными сетями. Простой Wi-Fi роутер и подключенный к нему лаптоп – уже локальная сеть. В офисах в общую сеть часто оказываются объединенными множество устройств – роутеры, компьютеры (настольные и ноутбуки), планшеты и смартфоны, принтеры, сканеры, сетевые накопители и так далее. Пользуясь общим сетевым подключением, мы часто даже не догадываемся о том, какие еще устройства имеются в нашей локальной сети.

Для того чтобы определить, какие компьютеры (или иное оборудование) используют общую с нами сеть, служат IP-сканеры. IP-адрес (айпи-адрес, сокращение от англ. Internet Protocol Address) - уникальный сетевой адрес узла в компьютерной сети, построенной по протоколу IP. … в случае работы в локальной сети требуется уникальность адреса в пределах сети - Википедия. Ниже мы рассмотрим несколько бесплатных программ – IP-сканеров: Free IP Scanner, Free Port Scanner, 10-Страйк: Сканирование Сети, Advanced IP Scanner, Angry IP Scanner .

Free IP Scanner.

Free IP Scanner 2.1 – программа для быстрого сканирования IP-адресов и портов. Предназначена для управления и мониторинга сетей, как системными администраторами, так и обычными пользователями. В Free IP Scanner 2.1 использована системы многопоточного сканирования, что позволяет очень быстро обнаруживать сотни компьютеров, подключенных к сети. Для каждого из обнаруженных компьютеров определяется MAC-адрес, NetBIOS и открытые порты.

К несомненным плюсам Free IP Scanner можно отнести:

  • быстроту сканирования IP-адресов и портов;
  • простой, понятный интерфейс;
  • широкие возможности для настройки сканирования.

На современных компьютерах Free IP Scanner 2.1 работает быстро и стабильно, однако запуск этого приложения на старых ПК может значительно замедлить их работу.

Free Port Scanner.

Free Port Scanner 3.1.5 – бесплатная программа, позволяющая быстро просканировать выбранные порты в определенном диапазоне IP-адресов.

Для начала сканирования требуется указать IP-адрес и порты, которые будут проверяться (по умолчанию задан IP-адрес 192.168.0.1 и порты 21-23, 25, 53, 80, 110, 135, 137-139, 443, 445, 1080, 1433 ,3128, 3306, 8080). Процесс сканирования протекает достаточно быстро, в нижней части окна программы будет отображена подробная информация о каждом из указанных портов:

  • IP-адрес;
  • номер порта;
  • имя порта;
  • статус порта;
  • описание.

К сожалению, иногда работа программы Free Port Scanner 3.1.5 на компьютере под управлением операционной системы Windows 7 приводила к зависанию ПК, приходилось запускать Диспетчер задач (комбинация CTRL + Alt + Delete) для остановки Free Port Scanner.

10-Страйк: Сканирование Сети.

10-Страйк: Сканирование Сети – бесплатный сетевой сканер, позволяющий обнаруживать все устройства (компьютеры, серверы и хосты), подключенные к локальной сети.


Сканирование сети осуществляется многопоточно, что дает возможность достаточно быстро обнаружить все устройства, подключенные к локальной сети. Поддерживается множество протоколов, в частности, ICMP-пинг, поиск открытых TCP-портов, NetBios, SNMP, UPnP.

Кроме обнаружения сетевых устройств, с помощью 10-Страйк: Сканирование Сети можно также:

  • просматривать информацию об обнаруженных компьютерах (установленные программы, реестр Windows, запущенные процессы и службы);
  • включать и выключать компьютеры по сети;
  • находить открытые порты;
  • получать информацию о MAC-адресах.

Advanced IP Scanner.

Advanced IP Scanner – бесплатное приложение, предназначенное для быстрого многопоточного сканирования локальной сети. Advanced IP Scanner позволяет собрать большое количество информации обо всех устройствах, подключенных к сети (в том числе и о Wi-Fi-роутерах) и получить доступ к общим папкам и другим ресурсам.


К достоинствам Advanced IP Scanner можно отнести:

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

Результаты сканирования, полученные программой Advanced IP Scanner, можно сохранить в виде фала форматов HTML или CSV.

Angry IP Scanner.

Angry IP Scanner – бесплатная программа с открытым исходным кодом для сканирования IP-адресов и портов. Это приложение работает на компьютерах под управлением операционной системы Windows, Linux, Mac OS X.


Angry IP Scanner пингует все IP-адреса и определяет их статус. По каждому IP-адресу собирается данные о MAC-адресе, хосте, открытых портах. Кроме того, отображается и информация из NetBIOS (имя компьютера и рабочей группы, пользователь). Для ускорения сканирования применена многопоточная технология. Результаты сканирования можно экспортировать в файлы форматов CSV, TXT, XML.

Функциональные возможности Angry IP Scanner можно расширять с помощью плагинов.

Программы - сетевые сканеры в первую очередь предназначены для сетевых администраторов и IT-специалистов, но и простой пользователь компьютера может извлечь пользу от применения IP-сканера. Например, с помощью сетевого сканера можно обнаружить халявщика, подключившегося к нашему Wi-Fi-роутеру и использующего наше Интернет-подключение, или узнать, какие устройства подключены к офисной сети – из чистого любопытства, конечно.

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

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

Возможности Nmap включают:

  • сканирование портов
  • определение операционной системы удалённого хоста
  • определение служб, программного обеспечения и их версий на удалённом хосте

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

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

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

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

В поле Цель нужно указать адрес сайта (URL), IP или диапазон IP адресов для сканирования.

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

Как указать Цель в Zenmap (Nmap)

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

  • mi-al.ru
  • suip.biz

Неправильной было бы указание вида https://mi-al.ru

IP адреса можно указывать по-одному, например, 192.168.0.1; используя адресацию CIDR, например, 192.168.0.1/24; а также указывая диапазоны в одном или нескольких октетах, например, 192.168.0.1-100, или 192.160-170.50-100.1

Что означают Профили в Zenmap

Профили в главном окне Zenmap - это набор опций типичных сканирований. Рассмотрим все профили Zenmap.

  • Intense scan (Интенсивное сканирование)

Интенсивное всестороннее сканирование. Опция -A включает сразу несколько других опций: определение версии ОС (-O ), определение версий запущенных служб (-sV ), сканирование с использованием скриптов (-sC ) и трассировку (--traceroute ). Без привилегий администратора запускается только определение версии и сканирование с помощью скриптов. Это считается интрузивным (навязчивым) сканированием.

  • Intense scan plus UDP (Интенсивное сканирование плюс UDP)

Делает определение ОС (-O ), определение версий (-sV ), сканирование с помощью скриптов (-sC ) и трассировку (--traceroute ) в дополнение к сканированию портов TCP и UDP.

  • Intense scan, all TCP ports (Интенсивное сканирование, все TCP порты)

Сканирует все TCP порты, затем делает определение ОС (-O ), определение версий (-sV ), сканирование скриптами (-sC ) и трассировку (--traceroute ).

  • Intense scan, no ping (Интенсивное сканирование без пинга)

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

  • Ping scan (Пинг)

Это сканирование только определяет, какие цели работают и не выполняет сканирование портов.

  • Quick scan (Быстрое сканирование)

Это сканирование быстрее обычного сканирования, поскольку оно использует агрессивный шаблон тайминга и сканирует меньше портов.

  • Quick scan plus (Быстрое сканирование плюс)

Быстрое сканирование, плюс определение ОС

  • Quick traceroute (Быстрая трассировка)

Трассирует пути до целей без выполнения полного сканирования их портов.

  • Regular scan (Обычное сканирование)

Базовое сканирование без дополнительных опций.

  • Slow comprehensive scan (Медленное всестороннее сканирование)

Это всестороннее, медленное сканирование. Сканируется каждый TCP и UDP порт. Выполняется определение ОС (-O ), определение версии (-sV ), сканирование скриптами (-sC ) и трассировка (--traceroute ). Отправляется множество запросов зондирования для обнаружения хостов. Это очень интрузивное сканирование.

Например, если я хочу узнать, какие узлы подсети пингуются, то я выбираю профиль Ping scan .

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

Хотя использование редактора профиля содержит описание выполняемых действий и, следовательно, не требует знания опций Nmap, для более глубокого понимания программы вы можете познакомиться с описанием всех опций Nmap на странице https://kali.tools/?p=1317

Если вы хотите просканировать все TCP порты, то укажите цель и в качестве команды введите nmap -p 1-65535

Результаты сканирования

Результаты, полученные при последнем сканировании видны во вкладке Вывод Nmap. В левой части вы можете переключаться между Узлами и Сервисами . При клике на определённый узел, вы увидите предыдущие результаты сканирования. При клике на сервис, вы увидите узлы, на которых данных сервис был обнаружен:

Для просмотра обобщённой информации по узлу, кликните на него и выберите вкладку Детали узла :

Во вкладке Топология вы увидите информацию о связях между просканированными/обнаруженными узлами:

Использование Nmap на Windows в командной строке

Если вам нужна консольная версия Nmap, то вы можете использовать её на Windows точно также, как и на Linux. При установке Nmap добавляет в переменные окружения путь до исполнимого файла Nmap, поэтому в командной строке вам достаточно указать имя программы:

Заключение

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

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

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

Добрый день уважаемые читатели и гости блога, вновь рад вас приветствовать в разделе про безопасность, в прошлый раз мы с вами научились удалять screenup вирус, сегодня тема будет поинтереснее, а именно как проверить открытые порты на Windows или Linux. Опишу свою ситуацию, у меня есть проект, заказчик предоставил 20 виртуальных машин, в рамках которой моя организация должна развернуть там сервис, некоторые виртуалки находятся в разных сетях и пока на них программисты не успели все развернуть, мне необходимо с помощью специальной утилиты сделать прослушивание порта на одном сервере и проверить, что он отвечает на другом, так сказать сетевое взаимодействие. Давайте этим и займемся.

Вешаем службу отвечающую по нужному порту

Как я и писал выше, пока сервисы не развернуты, то и порты никто не слушает, но нам необходимо произвести проверку, чтобы потом к этому не обращаться. Нам необходимо с помощью специальной утилиты, эмулировать прослушивание нужного нам порта (сокета) , те кто из вас знает такую операционную систему , как Centos 7, то они помнят, в ней была отличная утилита под названием netcat. Она позволяла с помощью определенных команд слушать нужный администратору порт.

netcat - утилита Unix, позволяющая устанавливать соединения TCP и UDP, принимать оттуда данные и передавать их. На Windows платформах, она так же присутствует.

Распаковываем архив на сервере, где в будущем будет работать служба. В папке вам будут необходимы файлы nc.exe и nc64.exe. Далее зажимаете Shift и щелкаете правым кликом по папке, из контекстного меню выбираете пункт "Открыть окно команд"

Теперь представим, что я хочу чтобы на сервере работал 80 порт, ну типа IIS сервер . Открываем netcat, для начала посмотрите справку:

  • -d detach from console, background mode
  • -e prog inbound program to exec
  • -g gateway source-routing hop point[s], up to 8
  • -G num source-routing pointer: 4, 8, 12, ...
  • -h this cruft
  • -i secs delay interval for lines sent, ports scanned
  • -l - слушать входящие соединения
  • -L listen harder, re-listen on socket close
  • -n numeric-only IP addresses, no DNS
  • -o file hex dump of traffic
  • -p - какое соединение будет прослушивать
  • -r randomize local and remote ports
  • -s - задать локальный адрес назначения
  • -t answer TELNET negotiation
  • -c send CRLF instead of just LF
  • -u - UDP режим
  • -v verbose
  • -w secs timeout for connects and final net reads
  • -z zero-I/O mode

Нас интересует команда вот такого вида:

netcat-win32-1.12>nc.exe -l -p 80

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

Как проверить открыт ли порт на сервере

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

telnet 10.242.17.134 80

Как видите я указал нужный мне ip адрес и нужный номер порта

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

telnet localhost номер 80

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

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

Через внешние утилиты

Проверить открыть ли порт, можно и внешними утилитами, тут главное требование, чтобы у вас был белый ip имеющий доступ в интернет. Представим себе, все туже ситуацию, что вам необходимо протестировать 80 соединение, на котором будет сайт компании. Вы его развернули, но он почему-то не работает. Не так давно, я вам рассказывал про сервис ping.eu (). Одним из пунктов этого инструментария был port check (проверка открытых портов). В поле "ip address or host name" вы пишите ip адрес или dns имя сервиса, что требует проверки, а в соседнем поле, необходимый номер сокета, в моем случае 80, нажимаете "Go". Через секунду, вы получите результат, открыты порты 80 или 443 у сайта или нет. В моем случае статус "open".

Массовая проверка открытых портов в сети и локально

Существуют специальные утилиты, в задачи которых входит сканирование компьютера или сервера, на предмет доступных портов, по которым есть соединение, они называются сканеры портов. Таких программ очень много, я приведу пример в виде XSpider 7.7. Как проверить открыт ли порт в утилите XSpider 7.7. Щелкаем правым кликом по "сканированные хосты" и добавляем хост или диапазон ip адресов.

Прописываете, что именно будет подвергаться проверке.

Нажимаем значок запуска и запускаем процедуру.

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

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

Сканер портов. Общие сведения

Сканер портов - программное обеспечение, разработанное с целью поиска хостов , имеющих открытые порты.

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

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

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

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

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

Помимо, собственно, открытых портов сканеры позволяют определить установленную на хосте операционную систему и работающие службы (Web-сервер, FTP-сервер , Mail-сервер), включая номера их версии.

Совет! Для определения открытых портов своего компьютера, под управлением операционной системы:

  • Windows, следует зайти в командную строку (Пуск, «cmd», запустить от имени администратора) и ввести команду «netstat -bn», без кавычек.
  • Linux , следует зайти в терминал и выполнить команду «ss -tln», также без кавычек.

PortScan.Ru

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

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

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

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

Помимо сканирования портов сервис позволяет измерить пинг, узнать WHOIS-информацию о домене, получить информацию на основе HTTP-запроса от удаленного веб-сервера.

Ресурс предоставляет 2 бесплатные утилиты «Открытые порты» и «PortCheker» для использования на ПК и в качестве расширения для браузера Google Chrome соответственно.

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

HideMe.Ru

Онлайн сканер открытых портов HideMe.Ru , более универсален по сравнению с PortScan.Ru , позволяя сканировать не только свой компьютер, но и любой другой хост Интернет-сети.

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

Интерфейс HideMe.Ru онлайн сканера портов имеет русскую, английскую и испанскую локализацию, довольно прост, а его использование не вызывает лишних вопросов.

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

Сканирование довольно долгое, в случае, если вы хотите проверить наиболее популярные порты, время ожидания составит около 3 минут (на PortScan.Ru на это уходило около 30 секунд).

Судя по всему, сервис сканирует первую 1000 портов, в отличие от PortScan.Ru, где в общем случае сканируется лишь 5-6 десятков.

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

Из дополнительных опций имеется функция измерения скорости Интернет-соединения и определения IP-адреса.

Так же как и у PortScan.Ru , имеется каталог статей, посвященных безопасной работе в Интернет-сети.

Что такое сканирование портов? Какие существую методы сканирования. Какие угрозы несет?

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

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

Согласно руководству по этичному хаккингу (Ethical Hacking and Countermeasures EC-Council) различаются следующие типы сканирования:

  • сетевое сканирование — определение находящихся в сети узлов;
  • сканирование портов — выявление открытых портов и функционирующих сервисов;
  • сканирование безопасности системы — выявление известных уязвимостей системы.

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

Цели сканирования портов

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

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

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

Выявляем структуру сети. Самый простой способ сканирования — ICMP scanning. Принцип работы основан на протоколе ICMP, и такой тип сканирования позволяет выяснить «живые» узлы в сети и построить схему сети с перечнем ее узлов. Суть метода заключается в отправке ICMP-запросов узлам сети, если компьютер или иное устройство, работающее со стеком протоколов TCP/IP, активно, то будет отправлен ответ. Это так называемый ping sweep или ICMP sweep. Существует огромное количество средств, позволяющих выполнить подобное сканирование.


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

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

Это могло бы выглядеть так:

  • Пилот: Шереметьево-Руление, Аэрофлот 502, разрешите предварительный.
  • Диспетчер: Аэрофлот 502, 25 правая1 по РД2 10, магистральной, РД5 предварительный разрешаю.
  • Пилот: Аэрофлот 502, 25 правая, по РД 10, магистральной, РД5 предварительный разрешили.

Что тут происходит? Пилот обратился к диспетчеру с запросом о разрешении руления и его маршруте. Диспетчер разрешил руление и определил маршрут следования.

Пилот подтвердил маршрут следования и разрешение диспетчера. Все, можно двигаться — маршрут получен.

Очень похожее происходит и в TCP-взаимодействии. Здесь используется схема three-way-handshake или «трехэтапного» согласования, встречается также термин «трехэтапное квитирование», которое позволяет синхронизировать передающий и получающий узлы и установить сессию, что, в сущности, идентично примеру с радиопереговорами.


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

Full Connect Scan

Некоторые методики сканирования портов. Самый эффективный и несложный способ сканирования — Full Connect Scan (Full Open Scan). Его принципы как раз показаны на рисунке 3. Происходит попытка выполнить трехэтапное согласование (three-way-handshake) с интересующими исследователя узлами. Если искомый порт открыт, то мы получаем от него сообщение SYN+ACK, после этого посылаем узлу RST (сброс сессии), если закрыт, то нам приходит RST от проверяемого узла. Надо отметить, что такой способ сканирования легко идентифицируется, стало быть, противостоять ему несложно.

Stealth Scan

Другой способ сканирования сети называется Stealth Scan (Half-open Scan). В этом случае атакующий старается обойти защиту брандмауэра и замаскироваться под обычный сетевой трафик с тем, чтобы избежать фиксации события сканирования в логах системы. Здесь речь не идет о согласовании, исследователь просто отправляет SYN-пакет на интересующий порт требуемого сервера. Если в ответ приходит SYN+ACK, то порт открыт, если RST, то порт закрыт.

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

Xmas Scan

Не менее известные методы сканирования — Xmas Scan и Null Scan, однако мы не будем их рассматривать ввиду того, что защита от них реализована в рамках современных операционных систем Microsoft, поэтому они не будут представлять для нас большого интереса. Особенность этих типов сканирования — стелс режим работы, то есть без установки сессии. Впрочем, посмотреть детали можно в курсе Ethical Hacking или в книге «Network Security Test Lab». Эти типы сканирования эффективны только для операционных систем, где TCP-стек работает на основе RFC 793. Все современные операционные системы от Windows Vista и старше не подвержены этому риску.

Idle Scan

Пожалуй, наиболее интересным способом сканирования является Idle Scan. Основная идея заключается в том, что злоумышленник может просканировать жертву, не показывая ей своего IP-адреса, то есть с точки зрения сканируемого узла злоумышленник с ней как бы и не общается. Используется «подставной» узел, который и может быть определен системами противодействия вторжениям в качестве источника атаки. Это весьма разумная методика, так называемый спуфинг, когда адрес отправителя подменяется на адрес другого устройства. Надо сказать, что «подставным» узлом или «зомби» может стать компьютер, который обладает определенными уязвимостями. Операционные системы, как правило, должны быть обновлены, однако это не всегда так, и атакующий всегда может найти «помощников», кроме того, в качестве «зомби» может быть использован сетевой принтер или другое сетевое устройство, которое работает с базовой функциональностью стека TCP/IP.

Это сканирование использует поле Identification в IP-заголовке (IPID). Значение IPID увеличивается на единицу в каждом следующем пакете, который отправляет узел. В сущности, это и есть уязвимость, поскольку появляется возможность предсказать, какое количество пакетов было передано между двумя пакетами, которые были получены. Современные операционные системы используют случайное значение для поля IPID, однако, как уже было упомянуто выше, всегда можно найти решение. Для современных Unix и Windows систем от Windows Vista и старше эта проблема уже потеряла свою актуальность.

Рассмотрим рисунок 4 и 5. На первом шаге (1) атакующий обращается к подставному устройству со стандартным SYN-пакетом. Устройство отвечает пакетом SYN ACK (2) или SYN RST, что более вероятно, однако из заголовка пакета атакующему становится виден IPID. Его-то и надо запомнить (3). Далее атакующий обращается к интересующему его серверу (4), при этом подменяет свой IP-адрес на адрес подставного узла, то есть маскируется, используя спуфинг (подмену адресов). В ответ на этот запрос сервер, если порт открыт, посылает SYN/ACK на подставной адрес (5). Мы ведь выполнили подмену. Не зная, что делать с этим пакетом, подставной компьютер в ответ пошлет RST (сброс сессии), при этом увеличит значение своего IPID. В нашем случае он станет равным 30132 (6). Если порт закрыт, то сервер пошлет сброс сессии (RST) — смотрите рисунок 5 (5).


Idle-сканирование (порт на сервере открыт)

Idle-сканирование (порт на сервере закрыт)

IPID подставного узла остался неизменным, в нашем случае 30131, поскольку «зомби» никому больше ничего не отправлял. Теперь останется еще раз обратиться к «зомби», как мы это уже делали выше, выявить его IPID, сравнить его с имеющимся у нас значением. Если IPID увеличился на 2, то порт открыт.

Еще один важный момент, который хотелось бы отметить, — операционные системы имеют свою специфику при работе со стеком TCP/IP. Используя эти особенности при анализе пакетов, полученных при сканировании, вполне возможно выяснить, с какой ОС мы имеем дело, на этих принципах построены методики сканирования Banner Grabbing. Задача — выявить информацию о вычислительной системе и ее уязвимостях, что позволит атакующему использовать эти знания для своих последующих деструктивных действий. Любой современный сканер предоставит атакующему эту информацию.

Операционные системы, как правило, должны быть обновлены, однако это не всегда так, и атакующий может найти «помощников», кроме того, в качестве «зомби» может быть использован сетевой принтер или другое сетевое устройство, которое работает с базовой функциональностью стека TCP/IP

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

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