Сканирование открытых портов по ip. Инструменты для сканирования портов

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

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

Сканирование IP-адресов

сли говорить о механизмах, которые используются в утилитах сканирования IP-адресов, то, как правило, речь идет о рассылке широковещательных пакетов ICMP. Утилиты отправляют пакеты типа ICMP ECHO по указанному IP-адресу и ожидают ответного пакета ICMP ECHO_REPLY. Получение такого пакета означает, что в данный момент компьютер подключен к сети по указанному IP-адресу.

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

Здесь возникает закономерный вопрос: можно ли защититься от такого рода сканирования? Собственно, все, что для этого нужно, — это заблокировать ответы на ICMP-запросы. Именно такой подход зачастую используется системными администраторами, которые заботятся о безопасности своих сетей. Однако, несмотря на блокировку пакетов ICMP, существуют и другие методы, позволяющие определить, подключен ли данный узел к сети.

В тех случаях, когда обмен данными по протоколу ICMP заблокирован, используется метод сканирования портов (port scanning). Просканировав стандартные порты каждого потенциального IP-адреса сети, можно определить, какие узлы подключены к сети. Если порт открыт (opened port) или находится в режиме ожидания (listening mode), это значит, что по данному IP-адресу имеется компьютер, подключенный к сети.

Прослушивание сети методом сканирования портов относится к разряду так называемого TCP-прослушивания.

Защита от сканирования IP-адресов

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

Как уже отмечалось, ICMP- и TCP-прослушивание — это общепринятые методы исследования сети перед непосредственной попыткой проникновения. Поэтому выявление факта прослушивания очень важно с точки зрения возможности получения информации о потенциальном месте проникновения и источнике угрозы.

Впрочем, получить возможность своевременного обнаружения факта прослушивания сети — еще не значит решить проблему. Не менее важно в этом случае уметь предотвратить возможность прослушивания сети. Первый шаг в этом направлении — оценить, насколько важен обмен данными по протоколу ICMP между узлами конкретной локальной сети. Имеется множество разнообразных типов пакетов ICMP, и упоминавшиеся выше пакеты ICMP ECHO и ICMP ECHO_REPLY — всего два из них. В большинстве случаев нет никакой необходимости разрешать обмен данными между узлами сети и Интернетом с использованием всех имеющихся типов пакетов. Практически все современные брандмауэры (как аппаратные, так и программные) обладают возможностью отфильтровывать пакеты ICMP. Поэтому, если в силу ряда причин невозможно полностью блокировать все типы сообщений ICMP, следует обязательно заблокировать те типы сообщений, которые не требуются для нормального функционирования сети. К примеру, если в корпоративной сети имеется сервер, размещенный в демилитаризованной зоне (DMZ-зона), то для нормального функционирования сервера вполне достаточно разрешить ICMP-сообщения типа ECHO_REPLY, HOST UNREACABLE и TIME EXCEEDED. Кроме того, во многих случаях брандмауэры позволяют создавать список IP-адресов, по которым разрешен обмен сообщениями по протоколу ICMP. В этом случае можно разрешить обмен сообщениями ICMP только в провайдером Интернета. Это, с одной стороны, позволит провайдеру производить диагностику соединения, а с другой — затруднит несанкционированное прослушивание сети.

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

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

ледующий тип сетевого сканирования — сканирование портов. Механизм сканирования портов основан на попытке пробного подключения к портам TCP и UDP исследуемого компьютера с целью определения запущенных служб и соответствующих им портов. Обслуживаемые порты могут находиться в открытом состоянии или в режиме ожидания запроса. Определение портов, находящихся в режиме ожидания, позволяет выяснить тип используемой операционной системы, а также запущенные на компьютере приложения.

Существует сравнительно много способов сканирования портов, но для систем Windows наиболее часто встречаются следующие:

  • TCP-сканирование подключением (TCP connect scan);
  • TCP-сканирование с помощью сообщений SYN (TCP SYN scan);
  • TCP нуль-сканирование (TCP Null sсan);
  • TCP-сканирование с помощью сообщений ACK (TCP ACK scan);
  • UDP-сканирование (UDP scan).

Метод TCP-сканирования подключением (TCP connect scan) заключается в попытке подключения по протоколу TCP к нужному порту с прохождением полной процедуры согласования параметров соединения (процедура handshake), заключающейся в обмене служебными сообщениями (SYN, SYN/ACK, ACK) между узлами сети.

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

В методе TCP-нуль-сканирования (TCP Null sсan) осуществляется отправка пакетов с отключенными флагами. Исследуемый узел в ответ должен отправить сообщение RST для всех закрытых портов.

Метод TCP-сканирования с помощью сообщений ACK (TCP ACK scan) позволяет установить набор правил, используемых брандмауэром, и выяснить, выполняет ли брандмауэр расширенную фильтрацию пакетов.

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

Защита от сканирования портов

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

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

WS PingPro 2.30

Платформа: Windows 98/Me/NT/2000/XP

Цена : 80 долл.

Демо-версия: 30 дней

Одной из самых известных утилит для сканирования IP-адресов сети является WS PingPro 2.30 (рис. 1).

Сканер WS PingPro 2.30 позволяет определить список всех IP-адресов, по которым имеются подключенные к сети узлы, а также выяснить их сетевые имена. Кроме того, сканер WS PingPro 2.30 определяет запущенные на компьютере службы и дает возможность просканировать порты сетевого компьютера в заданном диапазоне (в демо-версии программы данная возможность заблокирована).

Для настройки на различные по производительности сети сканер WS PingPro 2.30 позволяет задавать время, в течение которого ожидается ответ от хоста сети (по умолчанию — 300 мс).

Отметим, что сетевой сканер — это всего одна из возможностей пакета WS PingPro 2.30. В дополнение к сетевому сканеру пакет WS PingPro 2.30 предоставляет в распоряжение пользователя такие утилиты, как SNMP tool, WinNet, Time tool, Throughput, Info tool, и др.

Так, утилита SNMP tool позволяет получить информацию о сетевом узле (как правило, речь идет о коммутаторах и маршрутизаторах), поддерживающем протокол SNMP.

Утилита WinNet позволяет просканировать локальную сеть и отобразить NetBEUI-имена всех узлов сети, доменов и разделяемых ресурсов.

Утилита Time tool синхронизирует время локального компьютера с временем ближайшего сервера времени.

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

Advanced IP Scanner v.1.4

Платформа: Windows

Цена: бесплатно

Утилита Advanced IP Scanner 1.4 является одним из самых скоростных на данный момент IP-сканеров (рис. 2). К примеру, сканирование сети класса C занимает всего несколько секунд. В дополнение к IP-сканированию утилита Advanced IP Scanner 1.4 позволяет получить информацию о сетевых именах узлов, а кроме того, обеспечивает удаленное выключение или перезагрузку компьютеров. В случае поддержки компьютерами функции Wake-On-Lan имеется возможность их удаленного включения. Отметим, что такие функции, как удаленное выключение, перезагрузка или включение компьютеров, могут быть реализованы одновременно для всех или для группы сетевых компьютеров.

Advanced LAN Scanner v1.0 BETA

Платформа: Windows

Цена: бесплатно

Еще одна утилита, позволяющая сканировать IP-адреса, — Advanced LAN Scanner v1.0 BETA (рис. 3). В сравнении с Advanced IP Scanner 1.4 данная утилита представляет собой сочетание IP-сканера и сканера портов и позволяет не только определять IP-адреса, но и собирать подробную информацию о сетевых именах компьютеров, об установленной на них операционной системе, об открытых портах, о принадлежности пользователя к той или иной группе, о пользователях, которые имеют санкционированный доступ к компьютеру, и массу другой информации, которая может оказаться весьма полезной как системному администратору, так и злоумышленнику. Кроме того, данный сканер имеет широкие возможности настройки и позволяет задавать количество одновременно выполняемых потоков, диапазон сканируемых портов, а также управлять временем ожидания ответа на запрос. В заключение отметим, что данный сканер позволяет подключаться к выбранному узлу либо используя текущую учетную запись пользователя, либо задавая имя пользователя и пароль.

Но самое главное достоинство сканера Advanced LAN Scanner v1.0 BETA заключается в том, что на данный момент это один из самых скоростных сканеров. Добавим сюда то, что сканер этот бесплатный, и станет понятно, почему его просто необходимо иметь под рукой любому системному администратору (и не только ему).

Advanced Port Scanner v1.2

Платформа: Windows

Цена: бесплатно

Утилита Advanced Port Scanner v1.2 (рис. 4) по своим функциональным возможностям во многом схожа с Advanced LAN Scanner v1.0 BETA. Так, сканер Advanced Port Scanner v1.2 позволяет собирать информацию об IP-адресах узлов, об их сетевых именах и открытых портах. Возможности по настройке этого сканера заключаются в задании диапазона сканируемых IP-адресов и портов. Кроме того, имеется возможность задавать количество одновременно выполняемых потоков и управлять временем ожидания ответа на запрос.

Отметим, что данный сканер, так же как сканер Advanced LAN Scanner v1.0 BETA, является очень скоростным и позволяет собрать детальную информацию о сети в кратчайшие сроки.

IP-Tools v2.50

Платформа: Windows

Цена: бесплатно

Пакет IP-Tools v2.50 представляет собой набор из 19 сетевых утилит, объединенных общим интерфейсом (рис. 5). В этом смысле IP-сканер и сканер портов — всего одна из возможностей утилиты IP-Tools v2.50.

В состав пакета IP-Tools v2.50 входят:

  • Local Info — утилита, отображающая информацию о локальном компьютере (тип процессора, память и т.д.);
  • Connection Monitor — утилита, отображающая информацию о текущих TCP- и UDP-соединениях;
  • NetBIOS Info — утилита, отображающая информацию о NetBIOS-интерфейсах локального и удаленного компьютера;
  • NB Scanner — сканер разделяемых сетевых ресурсов;
  • SNMP Scanner — сканер SNMP-устройств в сети;
  • Name Scanner — сканер сетевых имен компьютеров;
  • Port Scanner — TCP-сканер портов;
  • UDP Scanner — UDP-сканер портов;
  • Ping Scanner — IP-сканер с использованием процедуры пингования;
  • Trace — утилита для отслеживания маршрута прохождения пакетов;
  • WhoIs — утилита, позволяющая собирать информацию об узлах в Интернете;
  • Finger — утилита, собирающая и предоставляющая информацию о пользователях удаленного ПК по протоколу Finger;
  • NS LookUp — утилита, позволяющая поставить в соответствие IP-адрес и имя домена;
  • GetTime — утилита, позволяющая синхронизировать время локального ПК и заданного сервера времени;
  • Telnet — утилита для поиска клиентов сети, у которых установлена служба Telnet;
  • HTTP — утилита для поиска клиентов сети, у которых установлена служба HTTP;
  • IP-Monitor — утилита для отображения IP-трафика в реальном времени;
  • Host Monitor — утилита для отслеживания состояния узлов сети (подключен/отключен).

Следует отметить, что, в отличие от рассмотренных выше утилит Advanced Port Scanner v1.2, Advanced LAN Scanner v1.0 BETA и Advanced IP Scanner 1.4, сканеры, встроенные в пакет IP-Tools v2.50, назвать скоростными довольно сложно. Процесс сканирования занимает много времени, поэтому если ставится задача именно IP-сканирования или сканирования портов, то лучше использовать более скоростные утилиты.

Angry IP Scanner 2.21

Платформа: Windows

Цена: бесплатно

Angry IP Scanner 2.21 — это небольшая утилита, объединяющая в себе IP-сканер и сканер портов (рис. 6). К несомненным достоинствам этой утилиты следует отнести то, что она не требует инсталляции на ПК. Кроме того, встроенные в нее сканеры являются очень скоростными и позволяют обследовать всю локальную сеть всего за несколько секунд.

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

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

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

SuperScan 4

Платформа: Windows 2000/XP

Цена: бесплатно

Утилита SuperScan 4 (рис. 7) — это новая версия хорошо известного сетевого сканера SuperScan. Данная утилита представляет собой еще один быстрый и гибкий сканер IP-адресов и портов. Утилита позволяет гибко задавать перечень IP-адресов исследуемых узлов и сканируемых портов. Отметим, что, как и сканер Angry IP Scanner 2.21, SuperScan 4 не требует инсталляции на компьютер.

В сравнении с предыдущей версией в новом варианте SuperScan 4 увеличена скорость сканирования, поддерживается неограниченный диапазон IP-адресов, улучшен метод сканирования с использованием ICMP-запросов, добавлен метод сканирования портов TCP SYN и многое другое.

При работе со сканером SuperScan 4 возможен как ручной ввод IP-адресов сканирования, так и экспорт адресов из файла. Поддерживается ввод одиночных адресов, диапазона адресов и диапазона в формате CIDR (10.0.0.1/255). Кроме того, IP-адреса можно вставлять непосредственно из буфера обмена.

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

Утилита SuperScan 4 имеет встроенный UDP-сканер, поддерживающий два типа сканирования: Data и Data+ICMP. В методе Data исследуемому узлу посылаются пакеты данных UDP, которые требуют ответов от сервисов, использующих хорошо известные порты. В методе Data+ICMP применяется аналогичный метод сканирования. Если порт не отвечает сообщением «ICMP Destination Port Unreachable», то он рассматривается как открытый. Далее используется сканирование известных закрытых портов на предмет генерации ими ответных сообщений. Отметим, что данный метод может иногда приводить к ложным результатам, особенно если ответы на ICMP-запросы заблокированы.

Утилита SuperScan 4 поддерживает два типа TCP-сканирования портов: TCP-connect и TCP SYN. Настройки сканера позволяют выбрать тип TCP-сканирования. Из возможностей настройки сканера SuperScan 4 можно отметить управление скоростью сканирования (скорость, с которой сканер посылает в сеть пакеты).

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

NEWT Professional v.2.0

Платформа: Windows 95/98/NT/2000/XP

Цена: в зависимости от количества поддерживаемых ПК в сети

Возможно, мы выскажем субъективное мнение, но, на наш взгляд, из всех рассмотренных нами утилит NEWT Professional v.2.0 (рис. 8) — самая функциональная. Впрочем, ее трудно рассматривать как IP-сканер или сканер портов. Скорее, это комплексный сетевой сканер, позволяющий автоматизировать сбор информации о компьютерах локальной сети. Для системных администраторов, которым время от времени приходится заниматься инвентаризацией сети, он будет незаменимым инструментом.

К сожалению, в отличие от других рассмотренных нами утилит, NEWT Professional v.2.0 является платной, а демо-версия программы имеет 30-дневный срок действия и ограниченную функциональность (например, поддерживается сканирование только 10 сетевых компьютеров).

OstroSoft Internet Tools v.5.1

Платформа: Windows 95/98/NT/2000/XP

Цена: 29 долл.

Утилита OstroSoft Internet Tools v.5.1 (рис. 9) представляет собой комплексный сетевой сканер, включающий 22 утилиты: Scan Wizard, Domain Scanner, Port Scanner, Netstat, Ping, Traceroute, Host Resolver, NS Lookup, Network Info, Local Info, Finger, FTP, HTML Viewer, Ph, Simple Services, TCP Clients, WhoIs, Connection Watcher, Host Watcher, Service Watcher, Mail Watcher, HTML Watcher.

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

Утилита Domain Scanner позволяет определить те хосты внутри сетевого домена, которые используют ту или иную службу. К примеру, задав адрес домена, можно выяснить, на каких компьютерах установлен Web-сервер, Mail-сервер, FTP-сервер и т.д.

Утилита Port Scanner — это сканер портов, но, в отличие от Scan Wizard, в данном случае речь идет о сканировании отдельного компьютера. Утилита позволяет задавать диапазон сканируемых портов, настраивать скорость сканирования и время timeout. Результатом сканирования является не только список открытых портов или портов в режиме ожидания, но и соответствующие им службы или приложения, а также краткое описание этих служб.

Утилита Ping — это вариант использования команды ping, но с возможностью настройки с использованием графического интерфейса.

Traceroute — это вариант команды tracert с возможностью настройки с использованием графического интерфейса.

Утилита Netstat позволяет отобразить информацию об активных соединениях локального компьютера.

Host Resolver определяет по сетевому имени или URL-адресу IP-адрес, и наоборот.

Остальные утилиты, интегрированные в пакет OstroSoft Internet Tools v.5.1, достаточно просты и не требуют комментариев.

Стоит отметить, что пакет OstroSoft Internet Tools v.5.1 является платным. Учитывая, что существует множество бесплатных аналогов, не уступающих данному пакету в плане функциональности, вряд ли OstroSoft Internet Tools v.5.1 сможет когда-нибудь завоевать популярность. К тому же демонстрационная версия программы имеет очень ограниченную функциональность и не позволяет изменять настройку сканера.

3D Traceroute v. 2.1.8.18

Платформа: Windows 2000/2003/XP

Цена: бесплатно

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

Утилита не требует инсталляции на компьютер и, что не менее приятно, абсолютно бесплатная.

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

Рис. 11. Встроенный сканер портов 3D Traceroute v. 2.1.8.18

Сканер портов позволяет задавать диапазоны исследуемых IP-адресов и сканируемых портов. Назвать данный сканер скоростным вряд ли возможно. Сканирование сети класса С на предмет наличия открытых портов в диапазоне 1-1024 занимает у него более часа. Кроме того, как выяснилось в ходе тестирования, достоверность результатов, выдаваемых данным сканером, весьма сомнительна. В частности, на всех ПК в нашей тестовой сети этот сканер упорно определял порт 21 как открытый, что не соответствовало действительности.

Кроме встроенного сканера портов, пакет 3D Traceroute имеет и другие встроенные утилиты, которые, впрочем, являются вполне стандартными и не имеют отношения к теме сетевых сканеров. В целом же, несмотря на то что данная утилита является бесплатной, в сравнении с другими сетевыми сканерами она явно проигрывает.

Регулярно в форумах, и не только в них, поднимается вопрос - «Меня сканируют! Что мне делать?» Причиной возникновения данного вопроса являются модули детектирования атак, которые разработчики персональных файрволов встраивают в свои продукты. Насколько вообще опасно данное явление, чего пытается достичь атакующий, и была ли собственно атака? Для того, чтобы понять это, попробуем сначала разобраться - что такое порты, что такое сканирование этих портов и каким образом выполняется проникновение в систему через сеть.

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

Для начала - что такое порт. Порт - это поле в tcp- или udp-пакете, идентифицирующее приложение-получателя (и отправителя, в пакете этих полей два) пакета.

Формат пакета данных TCP-протокола:

Формат пакета данных UDP протокола:

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

А была ли атака? Еще один часто задаваемый вопрос звучит примерно так: «Почему, когда я подключаюсь к FTP-серверу, файрвол начинает жаловаться на сканирование со стороны FTP-сервера?» Типичный пример ложного срабатывания. Рассмотрим, как работает FTP-протокол. В FTP-протоколе используется не одно соединение, а два - одно из них управляющее, второе непосредственно передает данные. Первое (управляющее) открывает клиент - он подключается на порт 21 сервера. Второе подключение зависит от режима работы клиента. Если клиент в активном режиме, то он передает серверу номер порта, на который сервер должен подключиться, чтобы открыть соединение для передачи данных. В пассивном сервер говорит клиенту, на какой порт клиент должен подключаться, чтобы открыть соединение для передачи данных.

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

Подведём итоги : сетевая атака в большинстве случаев представляет собой атаку на какой-либо доступный из сети сервис на вашем компьютере. Если такого сервиса у Вас нет - можно не беспокоиться, что кто-то Вас «взломает». В этом случае опасаться следует других угроз - вирусы, malware (нежелательные программы), и другие внутренние воздействия. Рекомендации по предотвращению - стандартны и описаны много раз. Установите антивирус, регулярно его обновляйте, регулярно устанавливайте обновления операционной системы, не запускайте неизвестные Вам программы и так далее. Но даже и в этом случае наличие персонального файрвола на компьютере может помочь Вам в случае, когда антивирус или обновления операционной системы ещё не в состоянии блокировать новые угрозы. Просто всегда внимательно читайте, что именно предлагает Вам сделать та или иная программа, и старайтесь понять, а нужно ли, чтобы это действие действительно было выполнено.

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

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

На любом компьютере присутствует около 65500 портов. Через них компьютера могут обмениваться сообщениями. Стандартизация потоков информации и взаимодействие различных объектов осуществляется посредством специальных протоколов TCP/IP и UDP. Если пользователь желает обеспечить сохранность информации на жестком диске, ему нужно контролировать порты своего компьютера.

Скачать Сканер портов бесплатно

Скачать Сканер портов (0,6 МБ)

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

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

Энциклопедичный YouTube

    1 / 5

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

    Nmap для начинающих - Урок 1 | Timcore

    Пишем простой и быстрый сканер IP адресов и открытых портов на Ruby (с использованием потоков)

    Advanced IP Scanner 2.3 - как легко просканировать сеть и узнать IP, Mac-адреса всех устройств.

    Как Проверить Открыт ли Порт средствами Windows

    Субтитры

Протокол TCP/IP

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

Результат сканирования порта обычно подпадает под одну из трёх категорий:

  • Открыт , или соединение принято (англ. open ): хост послал ответ, подтверждающий, что хост «слушает» - принимает соединения на данный порт.
  • Закрыт , запрещено [ ] , не слушает (closed ): хост послал ответ, показывающий, что соединения на данный порт будут отвергнуты.
  • Заблокирован , отфильтрован (filtered , firewalled ): от хоста не поступило ответа.

Уязвимости, связанные с открытыми портами, подразделяются на:

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

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

Техническая сторона

Технологии сканирования портов исходят из предположения, что хост поддерживает «Протокол управления пересылкой» (ICMP), определённый в RFC 792 . Хотя это в большинстве случаев так, тем не менее, хост может посылать в ответ странные пакеты, или даже генерировать ложные положительные срабатывания, когда используемый стек TCP/IP не соответствует RFC или был подвергнут изменениям.

Типы сканирований

Проверка онлайна

В ряде случаев, прежде чем начать собственно сканирование, является полезной проверка наличия работающей системы на целевом IP-адресе. Эта задача может быть решена путём посылки Echo-сообщений протокола ICMP с помощью утилиты ping c последовательным перебором всех адресов сети или отправкой Echo-сообщения по широковещательному адресу.
Анализируя трафик и отслеживая Echo-сообщения, посылаемые за короткий промежуток времени всем узлам, можно выявить попытки сканирования. Вместо Echo-сообщений могут применяться TCP -сегменты с code bit RST , ответы на несуществующие DNS -запросы. Если сканер получит в ответ ICMP Destination Unreachable пакет с кодом 1 (host unreachable), то значит, тестируемый узел выключен или не подключен к сети.

Следует иметь в виду, что (на практике) неполучение ответа на запросы не гарантирует несуществование хоста, поскольку многие системные администраторы ради «безопасности» идут на нарушение сетевых стандартов.

SYN-сканирование

Данный тип сканирования является наиболее популярным. Вместо использования сетевых функций операционной системы, сканер портов сам генерирует IP пакеты, и отслеживает ответы на них. Эту технику часто называют сканированием с использованием полуоткрытых соединений, поскольку полное соединение TCP/IP никогда не открывается. Сканер портов генерирует пакет SYN. Если порт на целевом хосте открыт, с него придёт пакет SYN-ACK. Хост сканера отвечает пакетом RST, закрывая тем самым соединение до того, как процесс установления соединения завершился.

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

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

TCP-сканирование

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

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

UDP-сканирование

Сканирование с помощью пакетов UDP также возможно, хотя имеет ряд особенностей. Для UDP отсутствует понятие соединения, и нет эквивалента TCP-пакету SYN. Тем не менее, если послать UDP-пакет на закрытый порт, система ответит сообщением ICMP «порт недоступен». Отсутствие такого сообщения истолковывается как сигнал того, что порт открыт. Однако, если порт блокируется брандмауэром , метод неверно покажет, что порт открыт. Если заблокированы ICMP-сообщения о недоступности порта, все порты будут казаться открытыми. Также, может быть установлено ограничение на частоту использования ICMP-пакетов, что также влияет на результаты, даваемые методом.

Альтернативным подходом является отправка UDP-пакетов, специфичных для приложения, в расчёте на получения ответа с уровня приложения. Например, отправка запроса DNS на порт 53 приведёт к ответу, если по запрашиваемому адресу имеется DNS-сервер. Проблема в данном случае состоит в наличии соответствующего «пробного» пакета для каждого из портов. В некоторых случаях, сервис может присутствовать, но быть сконфигурирован таким образом, чтобы не отвечать на известные «пробные» пакеты.

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

ACK-сканирование

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

FIN-сканирование

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

Сканирование с использованием FIN-пакетов позволяет обойти подобные средства защиты. Согласно RFC 793 , на прибывший FIN-пакет на закрытый порт сервер должен ответить пакетом RST. FIN-пакеты на открытые порты должны игнорироваться сервером. По этому различию становится возможным отличить закрытый порт от открытого.

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

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

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

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

Согласно руководству по этичному хаккингу (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

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

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