Сканирование сети онлайн. Как узнать, какие порты открыты на компьютере? Как проверить открыт ли порт на сервере

18.05.2019

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

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

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

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

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

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

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

I. ПРОВЕРКА ОТКРЫТЫХ ПОРТОВ НА ЛОКАЛЬНОМ КОМПЬЮТЕРЕ

Способ 1. Для того, чтобы проверить открытые порты на локальном (своем) компьютере, можно воспользоваться «Командной строкой» операционной системы Windows (

Для вызова этой строки необходимо нажать сочетание клавиш Win+R и прописать команду «cmd», после чего нажать «ОК».

В открывшемся окне пропишите специальную команду «netstat -a» и ознакомьтесь со списком открытых портов на Вашем компьютере.

Способ 2. Если Вы подключены к интернету, то проверить, открыт ли порт, можно на сайте

whatsmyip.org/port-scanner/

Данный ресурс сам определит Ваш IP-адрес, а сканировать порты можно через специальное поле «Custom Port Test ».

Введите интересующий Вас порт и нажмите кнопку «Check Port », после чего Вы получите ответ, открыт или закрыт данный порт.

II. ПРОВЕРКА ОТКРЫТЫХ ПОРТОВ НА УДАЛЕННОМ КОМПЬЮТЕРЕ

Теперь рассмотрим, как проверить, открыт ли порт на удаленном компьютере или сервере. Воспользуйтесь все той же «Командной строкой» в системе Windows, но теперь пропишите команду telnet в формате:

telnet IP-адрес порт

Нажмите клавишу «Enter». Если нет записи «Could not open …», то запрашиваемый порт открыт, иначе - закрыт.

Мы вкратце рассмотрели, как проверить, открыт ли порт на компьютере. Если остались, какие либо вопросы, то задайте их в поле для комментариев.

Что означает результат проверки порта?

Статус Порт закрыт

Подключиться к этому порту в данный момент невозможно. Вредоносные программы или злоумышленники не могут воспользоваться данным портом для атаки или получения конфиденциальной информации (Вам поможет материал 4 лучших бесплатных антивируса для Windows 10). Если все неизвестные порты имеют статус "закрыт", то это означает хороший уровень защищенности компьютера от сетевых угроз.

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

Результат "порт закрыт" также можно получить, если порт открыт, но время отклика вашего компьютера в сети (пинг) завышено. Подключится к порту в таких условиях практически не представляется возможным.

Статус Порт открыт

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

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

F.A.Q.

Что за порты? Для чего они нужны?

Порты, которые проверяет PortScan.ru, — это не физические, а логические порты на компьютере или сетевом устройстве.
В случае, если программа или служба планирует работать с сетью, она открывает порт с уникальным номером, через который она может работать с удаленными клиентами/серверами. Фактически, сетевая программа резервирует для себя определенное число, которое позволяет понять, что пришедшие данные предназначаются именно этой программе.

На человеческом языке это звучало бы примерно так: "Я, программа-сервер, открываю порт номер 1234. Если по сетевому кабелю придут данные с номером порта 1234 — это мне. "

Какие номера портов может открывать программа?

Порты идентифицируются номерами от 0 до 65535 включительно. Любой другой порт открыть нельзя, соответственно и проверить тоже. Это ограничения TCP/IP протокола.

Стоит отметить, что клиентская программа всегда должна знать номер порта, к которому ей нужно подключаться на сервере или другом удаленном сетевом устройстве. По этой причине для наиболее популярных протоколов зарезервированы порты в диапазоне от 0 до 1023.

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

Для каких ситуаций возможна проверка открытых портов?

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

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

Что такое проброс портов?

Проброс портов (Port Forwarding, иногда Virtual Servers) — специальная настройка на роутере, позволяющая перенаправить внешние запросы (из интернета) на компьютеры локальной сети. По сути это способ указать, на какой локальный компьютер пересылать данные и запросы подключения, пришедшие на определенный порт.

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

Если ваш компьютер подключен к интернету напрямую (без роутера/маршрутизатора), то выполнять проброс портов не требуется. Все ваши открытые порты должны быть доступны из интернета (естественно, при наличии выделенного IP).

Как узнать, какие порты открыты на компьютере?

Для Windows: Пуск → "cmd" → Запустить от имени администратора → "netstat -bn"
Для Linux: В терминале выполнить команду: "ss -tln"

Как закрыть порт?

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

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

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

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

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

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

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

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

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

Помимо, собственно, открытых портов сканеры позволяют определить установленную на хосте операционную систему и работающие службы (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 , имеется каталог статей, посвященных безопасной работе в Интернет-сети.

Сам процесс называется скани́рованием портов или (в случае, когда осуществляется проверка многих хостов) сканированием сети́ . Сканирование портов может являться первым шагом в процессе взлома или предупреждения взлома, помогая определить потенциальные цели атаки. С помощью соответствующего инструментария путём отправления пакетов данных и анализа ответов могут быть исследованы работающие на машине службы (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-пакеты на открытые порты должны игнорироваться сервером. По этому различию становится возможным отличить закрытый порт от открытого.

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

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