что такое сканер портов
🔎 Лучшие 10 сканеров открытых портов и инструментов проверки портов
Сканеры портов и инструменты проверки портов являются одной из наиболее важных частей для определения открытых портов и состояния порта.
Открытые порты означают номер порта TCP или UDP, который предназначен для подтверждения пакетов.
Веб-страницы или службы FTP требуют, чтобы их определенные порты были «открыты» на сервере, чтобы они были свободно доступны.
Что такое сканер открытых портов?
Сканер открытых портов – это инструмент, который используется для проверки внешнего IP-адреса и определения открытых портов в соединении.
Он используется для определения, правильно ли настроена переадресация портов или серверные приложения блокируются брандмауэром.
Инструменты проверки портов, используемые для проверки сети на наличие портов, которые обычно пересылаются.
Немногие порты, такие как порт 25, обычно блокируются на уровне ISP, пытаясь перехватить подозрительную задачу.
Каждые данные содержат номер порта, который позволяет протоколам определять их желаемое местоположение и соответственно перенаправлять их.
Является ли сканирование портов незаконным?
Сканирование портов само по себе не является незаконным, но сканирование целевого хоста без авторизации является незаконным, и вы столкнетесь с проблемами.
Сканеры TCP портов помогают администраторам серверов и пентестера проверять, через какие порты поступают данные в сеть, и защищать ее от вторжений.
Самые популярные используемые сетевые порты
Как сканировать открытые порты в Windows?
Сканирование можно выполнить с помощью командной строки.
Риск безопасности из-за открытых портов:
Большинство подозрительного программного обеспечения ведет себя как служба, ожидающая соединения от удаленного злоумышленника, чтобы предоставить ему данные или полномочия над машиной.
Наиболее распространенная практика обеспечения безопасности – закрывать неиспользуемые порты на частных машинах, чтобы заблокировать известный доступ к любой службе, которая может продолжать работать на ПК без информации клиента, независимо от того, была ли неправильно настроена авторизованная служба или из-за подозрительного программного обеспечения.
Сканирование портов компьютера
Регулярно в форумах, и не только в них, поднимается вопрос — «Меня сканируют! Что мне делать?» Причиной возникновения данного вопроса являются модули детектирования атак, которые разработчики персональных файрволов встраивают в свои продукты. Насколько вообще опасно данное явление, чего пытается достичь атакующий, и была ли собственно атака? Для того, чтобы понять это, попробуем сначала разобраться — что такое порты, что такое сканирование этих портов и каким образом выполняется проникновение в систему через сеть.
Предупреждение читателям: авторы осознают, что данный материал охватывает далеко не все возможные типы сетевых угроз. Данный материал ориентирован на домашних пользователей, озабоченных страшными предупреждениями, которыми их радостно снабжает добрый дядя Касперский (или Нортон, или еще кто-либо, в зависимости от используемого продукта). Следует помнить, что сетевые угрозы не ограничиваются описанными здесь.
Для начала — что такое порт. Порт — это поле в tcp- или udp-пакете, идентифицирующее приложение-получателя (и отправителя, в пакете этих полей два) пакета.
Формат пакета данных TCP-протокола:
Формат пакета данных UDP протокола:
Каким образом приложение работает с сетью? Приложение обращается к операционной системе с запросом на создание сокета. Операционная система регистрирует, какое приложение обращается к нему с этим запросом, и формирует привязку приложения к сокету — выделяет порт. Этот порт служит для обмена информацией по сетевым протоколам, и вся информация, полученная из сети для порта с этим номером, в дальнейшем передается нужному приложению.
Сокет — это название программного интерфейса для обеспечения информационного обмена между процессами. Процессы при таком обмене могут исполняться как на одной ЭВМ, так и на различных ЭВМ, связанных между собой сетью. Сокет — абстрактный объект, представляющий конечную точку соединения.
Что из этого вытекает? Из этого вытекает, что если прибыл пакет на порт, которому не сопоставлено никакое приложение, то пакет будет просто выброшен операционной системой, и обрабатываться не будет.
С какой целью выполняется сканирование портов? А вот с этой целью и выполняется — определить, какие порты целевого хоста (хост — узел сети, любая система, участвующая в сетевом обмене) закреплены за приложениями. Сканирование есть подготовительная операция, разведка периметра. После того, как будет составлен список активных («открытых») портов, начнётся выяснение — какие именно приложения используют эти порты.
После определения приложений, а иногда даже их версий, фаза разведки заканчивается, и начинается фаза активных «боевых действий» против вас — атака. Не обязательно, что после первой фазы (разведки) сразу начнётся вторая. Зачастую через некоторое время разведка повторяется, причём с других узлов сети. Это своего рода проверка бдительности «стражи» — администраторов. Либо не начнется, если не обнаружено ни одной потенциально уязвимой точки воздействия. Следует понимать, что сканирование само по себе ничем не может Вам повредить — повредить могут последующие действия, если они последуют.
Каким образом выполняется атака? Как правило — для этого используются уязвимости сетевых сервисов (сетевой сервис — приложение, обслуживающее запросы из сети). Эксплуатация уязвимости сервиса основана на посылке ему пакета данных, сформированного таким образом, что наше приложение обработает его некорректно и его штатная работа будет нарушена. Последствия — прекращение обслуживания сервисом правильных запросов (DoS — denial of service, отказ в обслуживании), или выполнение сервисом действий, которые он выполнять не должен (например, Remote Code Execution — возможность злоумышленнику запустить вредоносный код на цели).
Правда, здесь нужно упомянуть, что существует еще один вид сетевой угрозы, с которой пользователь не может сделать практически ничего. Это — флуд (flood) — одна из разновидностей DoS-атаки. Цель её — «затопить» Вас мусорным трафиком, чаще всего с несуществующих адресов, и лишить Вас или Ваши сервисы возможности отправлять или принимать полезную информацию. Она не угрожает Вашему компьютеру ничем, кроме временной невозможности работать в сети. Если Вы обнаружили, что Вас пытаются «зафлудить» — нужно обязательно сообщить об этом провайдеру. Других вариантов решения этой проблемы нет.
Что мне делать, если мой файрвол рапортует о сканировании? Давайте подумаем. Сканированием определяется наличие приложений, принимающих запросы из сети. Соответственно, если мы не выставляли никаких приложений наружу — беспокоиться вообще не о чем. Просто еще раз проверяем, что файрвол действительно настроен на блокирование всех входящих запросов, и забываем про рапорт.
Если такие приложения есть (например, вы содержите у себя FTP-сервер), то здесь тоже практически нет смысла напрягаться — мы ведь добровольно выставили сервер в общий доступ. Беспокоиться следовало на этапе планирования сервера. Просто соблюдаем общие рекомендации — использовать наиболее новую версию сервера, не предоставлять пользователям больше прав, чем им нужно, отключить ненужные функции сервера, по возможности — запускать сервер от имени ограниченного пользователя. Также возможно использование систем обнаружения вторжений (IDS, Intrusion Detection System), однако их использование выходит за рамки данного материала. Заметим только, что таковые системы основаны на отслеживании обращений к сетевым сервисам извне, и определении потенциально опасных запросов по некоторым критериям. Пример такой системы — SNORT (www.snort.org).
А была ли атака? Еще один часто задаваемый вопрос звучит примерно так: «Почему, когда я подключаюсь к FTP-серверу, файрвол начинает жаловаться на сканирование со стороны FTP-сервера?» Типичный пример ложного срабатывания. Рассмотрим, как работает FTP-протокол. В FTP-протоколе используется не одно соединение, а два — одно из них управляющее, второе непосредственно передает данные. Первое (управляющее) открывает клиент — он подключается на порт 21 сервера. Второе подключение зависит от режима работы клиента. Если клиент в активном режиме, то он передает серверу номер порта, на который сервер должен подключиться, чтобы открыть соединение для передачи данных. В пассивном сервер говорит клиенту, на какой порт клиент должен подключаться, чтобы открыть соединение для передачи данных.
Как следует из этого описания, в активном режиме FTP-сервер открывает подключение к клиенту. Файрвол, а многие из них известные параноики, вполне может реагировать на это, как на попытку атаки.
Подведём итоги: сетевая атака в большинстве случаев представляет собой атаку на какой-либо доступный из сети сервис на вашем компьютере. Если такого сервиса у Вас нет — можно не беспокоиться, что кто-то Вас «взломает». В этом случае опасаться следует других угроз — вирусы, malware (нежелательные программы), и другие внутренние воздействия. Рекомендации по предотвращению — стандартны и описаны много раз. Установите антивирус, регулярно его обновляйте, регулярно устанавливайте обновления операционной системы, не запускайте неизвестные Вам программы и так далее. Но даже и в этом случае наличие персонального файрвола на компьютере может помочь Вам в случае, когда антивирус или обновления операционной системы ещё не в состоянии блокировать новые угрозы. Просто всегда внимательно читайте, что именно предлагает Вам сделать та или иная программа, и старайтесь понять, а нужно ли, чтобы это действие действительно было выполнено.
Хотим отметить, что по умолчанию в настройках Windows систем для работы с приложениями в локальной сети, есть открытые для внешнего доступа «серверные» сервисы, то есть те к которым можно обратится с другого компьютера. Поэтому не стоит отключать встроенный брандмауэр (файрвол), либо не пренебрегайте установкой сторонних продуктов подобной функциональности.
Что такое сканирование портов?
Что такое сканирование портов? Какие существую методы сканирования. Какие угрозы несет?
В сегодняшней статье я постараюсь рассказать о том что такое сканирование открытых портов, расскажу о методах используемых в сканировании портов и том как от этого всего защитится.
Что такое сканирование портов?
Сканирование — это набор процедур, позволяющих идентифицировать узлы, порты и сервисы целевой системы. Сканирование сети позволяет злоумышленнику собрать профиль атакуемой машины.
Согласно руководству по этичному хаккингу (Ethical Hacking and Countermeasures EC-Council) различаются следующие типы сканирования:
На первый взгляд в сканировании никакого вреда нет, тем не менее с таким подходом трудно согласиться, ведь сканирование предваряет атаку, позволяя злоумышленнику выяснить, какие сервисы работают в целевой системе, а значит, подготовить и провести целенаправленную атаку против выявленных сервисов и их уязвимостей. Следовательно, бороться с разведкой злоумышленников необходимо.
Цели сканирования портов
При этом будет нелишним отметить, что само по себе сканирование не всегда злонамеренное действие, все зависит от его целей. Службы информационной безопасности или сотрудники ИТ вполне могут прибегнуть к сканированию для выяснения уязвимостей инфраструктуры или видимости сервисов из внешней сети.
В сущности, нередко все как раз и начинается с сетевого сканирования, именно оно позволяет выявить слабые узлы их IP-адреса, открытые порты, определить операционную систему, а значит, становятся понятны теоретически возможные уязвимости, что уже не так мало для организатора атаки.
Методы сканирования портов
Выявляем структуру сети. Самый простой способ сканирования — ICMP scanning. Принцип работы основан на протоколе ICMP, и такой тип сканирования позволяет выяснить «живые» узлы в сети и построить схему сети с перечнем ее узлов. Суть метода заключается в отправке ICMP-запросов узлам сети, если компьютер или иное устройство, работающее со стеком протоколов TCP/IP, активно, то будет отправлен ответ. Это так называемый ping sweep или ICMP sweep. Существует огромное количество средств, позволяющих выполнить подобное сканирование.
Сканирование ICMP sweep
Сканирование портов. Следующий этап разведки — выявление открытых портов. По сути своей, это дает возможность определить, какие сервисы работают на удаленном узле, список которых мы уже получили в результате предыдущего сканирования. Кроме того, из анализа полученных пакетов можно также выявить операционную систему и ряд других важных параметров (наличие фильтра пакетов, например).
Здесь мы говорим о TCP-сканировании. Его принцип основан на особенностях работы TCP. В сущности, очень похожий механизм взаимодействия принят в авиации при переговорах пилотов с диспетчером, включающий запрос, ответ с указанием, подтверждение полученной инструкции. Такой способ взаимодействия если и не исключает полностью вероятность непонимания, то по крайней мере существенно снижает такую вероятность.
Это могло бы выглядеть так:
Что тут происходит? Пилот обратился к диспетчеру с запросом о разрешении руления и его маршруте. Диспетчер разрешил руление и определил маршрут следования.
Пилот подтвердил маршрут следования и разрешение диспетчера. Все, можно двигаться — маршрут получен.
Очень похожее происходит и в TCP-взаимодействии. Здесь используется схема three-way-handshake или «трехэтапного» согласования, встречается также термин «трехэтапное квитирование», которое позволяет синхронизировать передающий и получающий узлы и установить сессию, что, в сущности, идентично примеру с радиопереговорами.
Установка TCP-сессии
Используя этот легальный алгоритм, злоумышленник может выяснить, какие порты открыты на сервере, то есть понять, какие сервисы используются в системе, какая операционная система. Для этого существует несколько эффективных методик.
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. Задача — выявить информацию о вычислительной системе и ее уязвимостях, что позволит атакующему использовать эти знания для своих последующих деструктивных действий. Любой современный сканер предоставит атакующему эту информацию.
Нетрудно заметить, что все рассмотренные способы сканирования базируются на штатном поведении узлов, а значит, любой компьютер или иное сетевое устройство является потенциально уязвимым.
Злоумышленник обладает возможностью сбора и анализа полученной информации о структуре сети, сервисах, уязвимостях систем. Тем самым предоставляется потенциальная возможность подготовить целевую атаку против определенных узлов и сервисов.
Что такое сканер портов
Добрый день! Уважаемые читатели и гости IT блога Pyatilistnik.org. В прошлый раз мы с вами разобрали, как вычисляется дата установки Windows. В сегодняшней заметке мы рассмотрим информацию, позволяющую запускать у себя сканер портов в локальной сети, мы разберем для чего, это может потребоваться и где вы это сможете применить в своей практике. Материал представлен в исключительно познавательных целей.
Задача
Предположим у вас в компании проходит аудит программного обеспечения и вы выводите из эксплуатации старый софт. Вы посмотрели список программ установленных на сервере, но вам еще необходимо проверить, какие порты случает он. Для увеличения производительности по решению задачи, мы будем использовать специальную утилиту, ее еще называют сканер портов в локальной сети. Ниже я приведу примеры таких программ и описание по их использованию.
Что такое сканер портов?
Сканер портов относится к программному приложению, которое сканирует сервер на наличие открытых портов. Он позволяет аудиторам и сетевым администраторам проверять сетевую безопасность, в то время как злоумышленники и хакеры используют ее для определения открытых портов для использования или запуска вредоносных служб на компьютере или сервере.
Порты различаются по своим назначениям. Они пронумерованы от 0 до 65535, но определенные диапазоны используются чаще. Порты с 0 по 1023 идентифицируются (https://ru.wikipedia.org/wiki/Список_портов_TCP_и_UDP), как «общеизвестные порты» или стандартные порты и были назначены для определенных служб, агентством по присвоению номеров в Интернете (IANA). Некоторые из наиболее известных портов и назначенных им служб включают в себя:
Методы сканирования портов
Сканирование портов отправляет тщательно подготовленный пакет на каждый номер порта назначения. Основные методы, которые может использовать программное обеспечение для сканирования портов:
Сканеры открытых портов
Я могу выделить вот такие бесплатные программы, которые выполняют роль сканеров портов в локальной сети:
Перед описанием каждой утилиты, я напоминаю, что порты есть TCP и UDP, и мы ранее уже проверяли доступность порта и слушает ли его, какая-либо служба. Так же очень наглядную таблицу в режиме реального времени по портам вы можете увидеть через утилиту netstat, но она к сожалению не такая дружелюбная и не умеет сканировать удаленные компьютеры в вашей локальной сети, ее кстати графическим аналогом выступает утилита TCPView.
Использование утилиты Angry IP Scanner
Структура такого файла представлена на картинке, тут ip-адреса идут с новой строки.
Если вы сканируете порты у целой подсети, то вам нужно указать ее префикс (Маску). После чего нажимаем «Старт».
Наш сканер открытых портов начнет планомерно проверять каждого участника. Цветовое обозначение узлов:
Настроим диапазон портов, которые я бы хотел проверить на предмет их прослушивания. Для этого нажмите значок шестеренки. В открывшемся окне перейдите на вкладку порты. В поле выбора порта укажите диапазон, в моем примере, это будет диапазон от 1 до 1024. Именно его мы и будем проверять.
У вас в столбце Ports изменится значение, нажимаем кнопку «Старт».
Начинается процесс обращения к портам, хочу отметить, что сама процедура не быстрая и идет в 100 потоков, но так же у каждой операционной системы свои лимиты и тайминги. В итоге вы увидите в столбце Ports список портов, которые прослушивает ip адрес сервера, к которому было обращение. Мы таким образом определяли порты Active Directory. Angry IP Scanner имеет и дополнительные встроенные утилиты, кликните правым кликом по нужному хосту и из пункта «Открыть» вы можете увидеть их:
Еще интересным моментом у Angry IP Scanner может выступать добавление дополнительных полей. Для этого нажмите кнопку в виде параллельных палочек. В открывшемся окне с помощью стрелок переместите нужные поля. Я для примера добавил TTL и MAC Address.
При необходимости программа сканера портов легко может экспортировать полученные данные в текстовый файл для дальнейшего изучения. Сделать это можно из меню «Сканирование» или нажатие клавиш Ctrl+S.
Отчет будет выглядеть вот в такой форме.
Использование утилиты Advanced Port Scanner
Видим симпатичную девушку хакера, которая намекает нажать зеленую кнопку.
Установка утилита Advanced Port Scanner так же проста и незамысловата, мы ее пропусти. Открываем ваш сканер портов компьютера. Задаем диапазон ip-адресов для поиска, указываем необходимый диапазон портов и нажимаем кнопку «Сканировать».
Advanced Port Scanner работает быстрее Angry IP Scanner, в результате данный сканер нашел 4 компьютера со списком прослушиваемых портов, и самое классное, что есть сводная таблица по конкретному порту и отвечаемой на нем службе.
Вы легко можете экспортировать данный отчет, либо в txt формат или же в html.
Advanced Port Scanner имеет встроенные сетевые утилиты:
Лично мне данный сканер открытых портов нравится больше, чем Angry IP Scanner.