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

29.08.2019

Аргументом опции --scanflags может быть числовое значение, например, 9 (PSH и FIN флаги), но использование символьных имен намного проще. Используйте любые комбинации URG , ACK , PSH , RST , SYN и FIN . Например, опцией --scanflags URGACKPSHRSTSYNFIN будут установлены все флаги, хотя это и не очень полезно для сканирования. Порядок задания флагов не имеет значения.

В добавлении к заданию желаемых флагов, вы также можете задать тип TCP сканирования (например, -sA или -sF). Это укажет Nmap на то, как необходимо интерпретировать ответы. Например, при SYN сканировании отсутствие ответа указывает на фильтруемый порт, тогда как при FIN сканировании - на открытый|фильтруемый. Nmap будет осуществлять заданный тип сканирования, но используя указанные вами TCP флаги вместо стандартных. Если вы не указываете тип сканирования, то по умолчанию будет использоваться SYN.

-sI <зомби_хост> [: <порт> ] ("ленивое" idle сканирование)

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

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

Порты также могут быть заданы именами, которым они соответствуют в файле nmap-services . Вы даже можете использовать шаблоны * и? в именах. Например, чтобы просканировать ftp и все порты начинающиеся с http используйте -p ftp,http* . В таких случаях лучше брать аргументы -p в кавычки.

Диапазоны портов заключаются в квадратные скобки; будут просканированы порты из этого диапазона, встречающиеся в nmap-services . Например, с помощью следующей опции будут просканированы все порты из nmap-services равные или меньше 1024: -p [-1024] . В таких случаях лучше брать аргументы -p в кавычки.

-sO (Сканирование IP протокола)

Сканирование такого типа позволяет определить, какие IP протоколы (TCP, ICMP, IGMP и т.д.) поддерживаются целевыми машинами. Технически такое сканирование не является разновидностью сканирования портов, т.к. при нем циклически перебираются номера IP протоколов вместо номеров TCP или UDP портов. Хотя здесь все же используется опция -p для выбора номеров протоколов для сканирования, результаты выдаются в формате таблицы портов, и даже используется тот же механизм сканирования, что и при различных вариантах сканирования портов. Поэтому он достаточно близок к сканированию портов и описывается здесь.

Помимо полезности непосредственно в своей сфере применения, этот тип сканирования также демонстрирует всю мощь открытого программного обеспечения (open-source software). Хотя основная идея довольна проста, я никогда не думал включить такую функцию в Nmap, и не получал запросов на это. Затем, летом 2000-го, Джерард Риджер (Gerhard Rieger) развил эту идею, написал превосходный патч воплощающий ее и отослал его на nmap-hackers рассылку. Я включил этот патч в Nmap и на следующий день выпустил новую версию. Лишь единицы комерческого программного обеспечения могут похвастаться пользователями, достаточно полными энтузиазма для разработки и предоставления своих улучшений!

Способ работы этого типа сканирования очень похож на реализованный в UDP сканировании. Вместо того, чтобы изменять в UDP пакете поле, содержащее номер порта, отсылаются заголовки IP пакета, и изменяется 8 битное поле IP протокола. Заголовки обычно пустые, не содержащие никаких данных и даже правильного заголовка для требуемого протокола. Исключениями явлются TCP, UDP и ICMP. Включение правильного заголовка для этих протоколов необходимо, т.к. в обратном случае некоторые системы не будут их отсылать, да и у Nmap есть все необходимые функции для их создания. Вместо того, чтобы ожидать в ответ ICMP сообщение о недостижимости порта, этот тип сканирования ожидает ICMP сообщение о недостижимости протокола . Если Nmap получает любой ответ по любому протоколу, то протокол помечается как открытый. ICMP ошибка о неостижимости протокола (тип 3, код 2) помечает протокол как закрытый. Другие ICMP ошибки недостижимости (тип 3, код 1, 3, 9, 10 или 13) помечают протокол как фильтруемый (в то же время они показывают, что протокол ICMP открыт). Если не приходит никакого ответа после нескольких запросов, то протокол помечается как открыт|фильтруется

. -b (FTP bounce сканирование)

Интересной возможностью FTP протокола (RFC 959) является поддержка так называемых прокси FTP соединений. Это позволяет пользователю подключиться к одному FTP серверу, а затем попросить его передать файлы другому. Это является грубым нарушением, поэтому многие сервера прекратили поддерживать эту функцию. Используя эту функцию, можно осуществить с помощью данного FTP сервера сканирование портов других хостов. Просто попросите FTP сервер переслать файл на каждый интересующий вас порт целевой машины по очереди. Сообщение об ошибке укажет: открыт порт или нет. Это хороший способ обхода брандмауэров, т.к. организационные FTP сервера обычно имеют больше доступа к другим внутренним хостам, чем какие-либо другие машины. В Nmap такой тип сканирования задается опцией -b . В качестве аргумента ей передается <имя_пользователя> : <пароль> @ <сервер> : <порт> . <Сервер> - это сетевое имя или IP адрес FTP сервера. Как и в случае в обычными URL, вы можете опустить <имя_пользователя> : <пароль> , тогда будут использованы анонимные данные (пользователь: anonymous пароль: -wwwuser@). Номер порта (и предшествующее ему двоеточие) также можно не указывать; тогда будет использован FTP порт по умолчанию (21) для подключения к <серверу> .

Эта уязвимость была широко распространена в 1997, когда была выпущена Nmap, но теперь почти везде исправлена. Уязвимые сервера по-прежнему есть, так что, если ничего другое не помогает, то стоит попробовать. Если вашей целью является обход бранмауэра, то просканируйте целевую сеть на наличие открытого порта 21 (или даже на наличие любых FTP служб, если вы используете определение версии), а затем попробуйте данный тип сканирования с каждым из найденных. Nmap скажет вам, уязвим хост или нет. Если вы просто пытаетесь замести следы, то вам нет необходимости (и, фактически, не следует) ограничивать себя только хостами целевой сети. Перед тем как вы начнете сканировать произвольные Интернет адреса на наличие уязвимого FTP сервера, имейте ввиду, что многим системным администраторам это не понравится.

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

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

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

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

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

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

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

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

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

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

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

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-сервер , и т. д.), установлены номера их версий и используемая операционная система .

Энциклопедичный 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-пакеты на открытые порты должны игнорироваться сервером. По этому различию становится возможным отличить закрытый порт от открытого.

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