Реакция ос windows на fin сканирование в случае закрытого порта

Ответ на вопрос №288535: Реакцией ОС семейства Windows на FIN-сканирование в случае закрытого порта является … посылка пакета с флагами syn+ack молчание посылка пакета с флагами rst+ack Реакцией ОС семейства Windows на FIN-сканирование в случае закрытого — Ответ на вопрос №288535Реакцией ОС семейства Windows на FIN-сканирование в случае закрытого — Ответ на вопрос №288535

2025-02-242025-02-24СтудИзба

-47%

Вопрос

Реакцией ОС семейства Windows на FIN-сканирование в случае закрытого порта является …

  • посылка пакета с флагами syn+ack
  • молчание
  • посылка пакета с флагами rst+ack

Ответ

Этот вопрос в коллекциях

Картинка-подпись

Гарантия сдачи без лишних хлопот! ✅🎓 Ответы на тесты по любым дисциплинам, базы вопросов, работы и услуги для Синергии, МЭИ и других вузов – всё уже готово! 🚀 🎯📚 Гарантия качества – или возврат денег! 💰✅

Ответы на популярные вопросы

То есть уже всё готово?

Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.

А я могу что-то выложить?

Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.

А если в купленном файле ошибка?

Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!

Добавляйте материалы
и зарабатывайте!

Продажи идут автоматически

317

Средний доход
с одного платного файла

Обучение Подробнее

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

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

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

Первый рассматриваемый вид сканирования — ping-сканирование. Основная задача — обнаружить «живые» узлы в сети. Под ping-сканированием понимают широковещательную рассылку пакетов ICMP. Сканер рассылает пакеты типа Echo REQUEST по указанным IP-адресам и ожидает в ответ пакеты типа Echo REPLY. Если ответ получен, считается, что узел присутствует в сети по указанному IP-адресу.

Протокол ICMP широко используется администраторами сетей для диагностики, поэтому, чтобы избежать разглашения информации об узлах, важна корректная настройка средств защиты периметра. Для корпоративных сетей такой вид сканирования не релевантен при внешнем сканировании, потому что большинство средств защиты по умолчанию блокируют протокол ICMP либо ответы по этому протоколу. При отсутствии нестандартных задач в корпоративной сети на выход, как правило, разрешены следующие виды ICMP-сообщений: Destination Unreachable, Echo REQUEST, Bad IP header, а на вход разрешены Echo REPLY, Destination Unreachable, Source Quench, Time Exceeded, Bad IP header. В локальных сетях не такая строгая политика безопасности, и злоумышленники могут применять этот способ, когда уже проникли в сеть, однако это легко детектируется.

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

Объединим TCP-сканирование и UDP-сканирование под общим названием — сканирование портов. Сканирование этими методами определяет доступные порты на узлах, а затем на основе полученных данных делается предположение о типе используемой операционной системы или конкретного приложения, запущенного на конечном узле. Под сканированием портов понимают пробные попытки подключения к внешним узлам. Рассмотрим основные методы, реализованные в автоматизированных сетевых сканерах:

  1. TCP SYN,
  2. TCP CONNECT,
  3. UDP scan.

Метод TCP SYN — наиболее популярен, используется в 95% случаев. Его называют сканированием с установкой полуоткрытого соединения, так как соединение не устанавливается до конца. На исследуемый порт посылается сообщение SYN, затем идет ожидание ответа, на основании которого определяется статус порта. Ответы SYN/ACK говорят о том, что порт прослушивается (открыт), а ответ RST говорит о том, что не прослушивается.

Если после нескольких запросов не приходит никакого ответа, то сетевой трафик до порта узла назначения фильтруется средствами межсетевого экранирования (далее будем использовать термин «порт фильтруется»). Также порт помечается как фильтруемый, если в ответ приходит сообщение ICMP с ошибкой достижимости (Destination Unreachable) и определенными кодами и флагами.

Метод TCP CONNECT менее популярен, чем TCP SYN, но все-таки часто встречается на практике. При реализации метода TCP CONNECT производится попытка установить соединение по протоколу TCP к нужному порту с процедурой handshake. Процедура заключается в обмене сообщениями для согласования параметров соединения, то есть служебными сообщениями SYN, SYN/ACK, ACK, между узлами. Соединение устанавливается на уровне операционной системы, поэтому существует шанс, что оно будет заблокировано средством защиты и попадет в журнал событий.

UDP-сканирование медленнее и сложнее, чем TCP-сканирование. Из-за специфики сканирования UDP-портов о них часто забывают, ведь полное время сканирование 65 535 UDP-портов со стандартными параметрами на один узел занимает у большинства автоматизированных сканеров до 18 часов. Это время можно уменьшить за счет распараллеливания процесса сканирования и рядом других способов. Следует уделять внимание поиску UDP-служб, потому что UDP-службы реализуют обмен данными с большим числом инфраструктурных сервисов, которые, как правило, вызывают интерес злоумышленников.

На сетевых периметрах часто встречаются UDP-сервисы DNS (53), NTP (123), SNMP (161), VPN (500, 1194, 4500), RDG (3391). Реже встречаются сервисные службы типа echo (7), discard (9), chargen (19), а также DAYTIME (13), TFTP (69), SIP (5060), сервисы NFS (2049), RPC (111, 137-139, 761 и др.), СУБД (1434).

Для определения статуса порта посылается пустой UDP-заголовок, и если в ответ приходит ошибка достижимости ICMP Destination Unreachable с кодом Destination port unreachable, это значит, что порт закрыт; другие ошибки достижимости ICMP (Destination host unreachable, Destination protocol unreachable, Network administratively prohibited, Host administratively prohibited, Communication administratively prohibited) означают, что порт фильтруется. Если порт отвечает UDP-пакетом, значит, он открыт. Из-за специфики UDP и потери пакетов запросы повторяются несколько раз, обычно три и более. Как правило, если ответ не получен, статус порта определяется в состоянии «открыт» или «фильтруется», поскольку непонятно, что стало причиной — блокировка трафика средством защиты или потеря пакетов.

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

Редкие методы сканирования

Методы, которые практически не используются:

  1. TCP ACK,
  2. TCP NULL, FIN, Xmas,
  3. «Ленивое сканирование».

Прямое назначение метода ACK-сканирования — выявить правила средств защиты, а также определить фильтруемые порты. В пакете запроса при таком типе сканирования установлен только ACK-флаг. Открытые и закрытые порты вернут RST-пакет, так как порты достижимы для ACK-пакетов, но состояние неизвестно. Порты, которые не отвечают или посылают в ответ ICMP-сообщение Destination Unreachable с определенными кодами считаются фильтруемыми.

Методы TCP NULL, FIN, Xmas заключаются в отправке пакетов с отключенными флагами в заголовке TCP. При NULL-сканировании не устанавливаются никакие биты, при FIN-сканировании устанавливается бит TCP FIN, а в Xmas-сканировании устанавливаются флаги FIN, PSH и URG. Методы основаны на особенности спецификации RFC 793, согласно которой при закрытом порте входящий сегмент, не содержащий RST, повлечет за собой отправку RST в ответ. Когда порт открыт, ответа не будет. Ошибка достижимости ICMP означает, что порт фильтруется. Эти методы считаются более скрытными, чем SYN-сканирование, однако и менее точны, потому что не все системы придерживаются RFC 793.

«Ленивое сканирование» является самым скрытным из методов, поскольку для сканирования используется другой узел сети, который называется зомби-узлом. Метод применяется злоумышленниками для разведки. Преимущество такого сканирования в том, что статус портов определяется для зомби-узла, поэтому, используя разные узлы, можно установить доверительные связи между узлами сети. Полное описание метода доступно по ссылке.

Процесс выявления уязвимостей

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

Уязвимость регистрируется в MITRE CVE, а подробности публикуются в NVD. Уязвимости присваивается идентификатор CVE, а также общий балл системы оценки уязвимости CVSS, отражающий уровень риска, который уязвимость представляет для конечной системы. Подробно об оценке уязвимостей написано в нашей статье. Централизованный список MITRE CVE — ориентир для сканеров уязвимостей, ведь задача сканирования — обнаружить уязвимое программное обеспечение.

Ошибка конфигурации — тоже уязвимость, но подобные уязвимости нечасто попадают в базу MITRE; впрочем, они все равно попадают в базы знаний сканеров с внутренними идентификаторами. В базы знаний сканеров попадают и другие типы уязвимостей, которых нет в MITRE CVE, поэтому при выборе инструмента для сканирования важно обращать внимание на экспертизу его разработчика. Сканер уязвимостей будет опрашивать узлы и сравнивать собранную информацию с базой данных уязвимостей или списком известных уязвимостей. Чем больше информации у сканера, тем точнее результат.

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

Параметры сканирования

За месяц периметр организации может неоднократно поменяться. Проводя сканирование периметра в лоб можно затратить время, за которое результаты станут нерелевантными. При сильном увеличении скорости сканирования сервисы могут «упасть». Надо найти баланс и правильно выбрать параметры сканирования. От выбора зависят потраченное время, точность и релевантность результатов. Всего можно сканировать 65 535 TCP-портов и столько же UDP-портов. По нашему опыту, среднестатистический периметр компании, который попадает в пул сканирования, составляет две полных сети класса «С» с маской 24.

Основные параметры:

  1. количество портов,
  2. глубина сканирования,
  3. скорость сканирования,
  4. параметры определения уязвимостей.

По количеству портов сканирование можно разделить на три вида — сканирование по всему списку TCP- и UDP-портов, сканирование по всему списку TCP-портов и популярных UDP-портов, сканирование популярных TCP- и UDP-портов. Как определить популярности порта? В утилите nmap на основе статистики, которую собирает разработчик утилиты, тысяча наиболее популярных портов определена в конфигурационном файле. Коммерческие сканеры также имеют преднастроенные профили, включающие до 3500 портов.

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

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

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

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

Параметры определения уязвимостей — наиболее обширный раздел параметров сканирования, от которого зависит скорость сканирования и объем уязвимостей, которые могут быть обнаружены. Например, баннерные проверки не займут много времени. Имитации атак будут проведены только для отдельных сервисов и тоже не займут много времени. Самый долгий вид — веб-сканирование.

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

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

Инструментарий

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

Сетевые сканеры: Masscan, Zmap, nmap. На самом деле утилит для сканирования сети намного больше, однако для сканирования периметра вряд ли вам понадобятся другие. Эти утилиты позволяют решить большинство задач, связанных со сканированием портов и служб.

Поисковики по интернету вещей, или онлайн-сканеры — важные инструменты для сбора информации об интернете в целом. Они предоставляют сводку о принадлежности узлов к организации, сведения о сертификатах, активных службах и иную информацию. С разработчиками этого типа сканеров можно договориться об исключении ваших ресурсов из списка сканирования или о сохранении информации о ресурсах только для корпоративного пользования. Наиболее известные поисковики: Shodan, Censys, Fofa.

Для решения задачи не обязательно применять сложный коммерческий инструмент с большим числом проверок: это излишне для сканирования пары «легких» приложений и сервисов. В таких случаях будет достаточно бесплатных сканеров. Бесплатных веб-сканеров много, и тяжело выделить наиболее эффективные, здесь выбор, скорее, дело вкуса; наиболее известные: Skipfish, Nikto, ZAP, Acunetix, SQLmap.

Для выполнения минимальных задач сканирования и обеспечения «бумажной» безопасности могут подойти бюджетные коммерческие сканеры с постоянно пополняемой базой знаний уязвимостей, а также поддержкой и экспертизой от вендора, сертификатами ФСТЭК. Наиболее известные: XSpider, RedCheck, Сканер-ВС.

При тщательном ручном анализе будут полезны инструменты Burp Suite, Metasploit и OpenVAS. Недавно вышел сканер Tsunami компании Google.

Отдельной строкой стоит упомянуть об онлайн-поисковике уязвимостей Vulners. Это большая база данных контента информационной безопасности, где собирается информация об уязвимостях с большого количества источников, куда, кроме типовых баз, входят вендорские бюллетени безопасности, программы bug bounty и другие тематические ресурсы. Ресурс предоставляет API, через который можно забирать результаты, поэтому можно реализовать баннерные проверки своих систем без фактического сканирования здесь и сейчас. Либо использовать Vulners vulnerability scanner, который будет собирать информацию об операционной системе, установленных пакетах и проверять уязвимости через API Vulners. Часть функций ресурса платные.

Средства анализа защищенности

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

Основные различия между коммерческими средствами анализа защищенности — поддерживаемые стандарты, лицензии государственных структур, количество и качество реализованных проверок, а также направленность на тот или иной рынок сбыта, например поддержка сканирования отечественного ПО. Статья не призвана представить качественное сравнение систем анализа уязвимостей. На наш взгляд, у каждой системы есть свои преимущества и недостатки. Для анализа защищенности подходят перечисленные средства, можно использовать их комбинации: Qualys, MaxPatrol 8, Rapid 7 InsightVM, Tenable SecurityCenter.

Как работают системы анализа защищенности

Режимы сканирования реализованы по трем схожим принципам:

  1. Аудит, или режим белого ящика.
  2. Комплаенс, или проверка на соответствие техническим стандартам.
  3. Пентест, или режим черного ящика.

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

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

Авторизованному пользователю, в роли которого выступает сканер, значительно проще получать детальную информацию об узле, его программном обеспечении и конфигурационных параметрах. При сканировании используются различные механизмы и транспорты операционных систем для сбора данных, зависящие от специфики системы, с которой собираются данные. Список транспортов включает, но не ограничивается WMI, NetBios, LDAP, SSH, Telnet, Oracle, MS SQL, SAP DIAG, SAP RFC, Remote Engine с использованием соответствующих протоколов и портов.

Комплаенс — режим проверки на соответствие каким-либо стандартам, требованиям или политикам безопасности. Режим использует схожие с аудитом механизмы и транспорты. Особенность режима — возможность проверки корпоративных систем на соответствие стандартам, которые заложены в сканеры безопасности. Примерами стандартов являются PCI DSS для платежных систем и процессинга, СТО БР ИББС для российских банков, GDPR для соответствия требованиям Евросоюза. Другой пример — внутренние политики безопасности, которые могут иметь более высокие требования, чем указанные в стандартах. Кроме того, существуют проверки установки обновлений и другие пользовательские проверки.

Пентест — режим черного ящика, в котором у сканера нет никаких данных, кроме адреса цели или доменного имени. Рассмотрим типы проверок, которые используются в режиме:

  1. баннерные проверки,
  2. имитация атак,
  3. веб-проверки,
  4. проверки конфигураций,
  5. опасные проверки.

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

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

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

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

На этом же этапе собираются баннеры CMS и плагинов приложения, по которым проводится баннерная проверка на известные уязвимости. Следующий этап — основные веб-проверки: поиск SQL Injection разных видов, поиск недочетов системы аутентификации и хранения сессий, поиск чувствительных данных и незащищенных конфигураций, проверки на XXE Injection, межсайтовый скриптинг, небезопасную десериализацию, загрузку произвольных файлов, удаленное исполнение кода и обход пути. Список может быть шире в зависимости от параметров сканирования и возможностей сканера, обычно при максимальных параметрах проверки проходят по списку OWASP Top Ten.

Проверки конфигураций направлены на выявление ошибок конфигураций ПО. Они выявляют пароли по умолчанию либо перебирают пароли по короткому заданному списку с разными учетными записями. Выявляют административные панели аутентификации и управляющие интерфейсы, доступные принтеры, слабые алгоритмы шифрования, ошибки прав доступа и раскрытие конфиденциальной информации по стандартным путям, доступные для скачивания резервные копии и другие подобные ошибки, допущенные администраторами IT-систем и систем ИБ.

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

Сканирование и результаты

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

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

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

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

Устранение уязвимостей

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

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

Приоритет устранения уязвимостей

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

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

Итоги

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

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

Автор: Максим Федотов, старший специалист отдела онлайн-сервисов, PT Expert Security Center, Positive Technologies

У этого термина существуют и другие значения, см. Сканер.

Ска́нер порто́в — программное средство, разработанное для поиска хостов сети, в которых открыты нужные порты. Эти программы обычно используются системными администраторами для проверки безопасности их сетей и злоумышленниками для взлома сети. Может производиться поиск как ряда открытых портов на одном хосте, так и одного определённого порта на многих хостах. Последнее характерно для деятельности ряда сетевых червей.

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

Самым распространённым в Интернете стеком протоколов в настоящее время является TCP/IP. Службы, находящиеся на хостах, адресуются двумя идентификаторами: IP-адресом и номером порта. Существует 65536 возможных номеров портов. Большинство сервисов используют ограниченный набор номеров портов (номер порта закрепляется организацией IANA в случае, если сервис становится достаточно значимым[1]).

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

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

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

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

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

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

Технологии сканирования портов исходят из предположения, что хост поддерживает «Протокол управления пересылкой» (ICMP), определённый в RFC 792[2]. Хотя это в большинстве случаев так, тем не менее, хост может посылать в ответ странные пакеты, или даже генерировать ложные положительные срабатывания, когда используемый стек 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-пакеты на открытые порты должны игнорироваться сервером. По этому различию становится возможным отличить закрытый порт от открытого.

Указанной рекомендации RFC 793 придерживаются не все операционные системы. Например, реакция Windows семейства 95/98/NT на приходящий FIN-пакет не различается для открытого и закрытого порта.

Другие типы сканирования[править | править код]

И ещё один способ заключается в том, чтобы отправлять сегменты с флагами FIN(no more data from sender), PSH(push function), URG(urgent pointer field significant) либо вообще с пустым полем code bit. Если порт закрыт, то в ответ придёт сегмент с флагом RST, если ответа не будет, то порт открыт (так как такой сегмент просто игнорируется).

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

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

Некоторые провайдеры реализуют фильтры пакетов или открытые прокси-серверы, которые препятствуют исходящей активности по сканированию портов.

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

Уголовным кодексом Российской Федерации предусмотрена уголовная ответственность за следующие преступления[3]:

  • Неправомерный доступ к компьютерной информации, если это повлекло уничтожение, блокирование, модификацию либо копирование информации, нарушение работы ЭВМ, системы ЭВМ или их сети;
  • Создание, использование и распространение вредоносных программ для ЭВМ;
  • Нарушение правил эксплуатации ЭВМ, системы ЭВМ или их сети, повлёкшее уничтожение, блокирование или модификацию информации.
  • Nmap[4] — один из самых доступных кроссплатформенных сканеров портов.
  • В Mac OS X — встроенное приложение Network Utility.
  • Информационная безопасность
  • TCP/IP
  • Интернет
  • Сканеры уязвимости
  • Список портов TCP и UDP
  1. Список портов, закреплённых организацией IANA Архивная копия от 2 августа 2002 на Wayback Machine (англ.)
  2. [RFC 792 — Internet Control Message Protocol] (англ.)
  3. Уголовный кодекс Российской Федерации. Глава 28. Преступления в сфере компьютерной информации.
  4. http://www.insecure.org (англ.) Архивная копия от 10 июня 2021 на Wayback Machine — сайт разработчиков программы Nmap
  • TCP/IP Security. Дата обращения: 26 января 2010. Архивировано из оригинала 25 июня 2002 года.
  • Реализиция многопоточного сканера портов на C++. Дата обращения: 25 сентября 2012. Архивировано из оригинала 3 июня 2013 года.

110/tcp closed pop3 143/tcp closed imap 179/tcp closed bgp 443/tcp closed https 587/tcp closed submission 993/tcp closed imaps

Nmap done: 1 IP address (1 host up) scanned in 2.03 seconds

Сканирование TCP-портов флагом SYN

Метод SYN-сканирование известен как сканирование с установлением полуоткрытого соединения (Half-open SYN flag scanning), поскольку установление полного соединения с TCP-портом сканируемого узла сети не производится. Метод SYN-сканирования является одним из наиболее популярных. Сканирование в режиме полуоткрытого соединения требует возможности формировать одиночные TCP-сегменты в обход стандартного модуля TCP (необходимы права root).

При SYN-сканировании на порт сканируемого узла сети направляется SYN-сегмент. Получение ответного сегмента с флагами SYN|ACK означает, что порт открыт; получение сегмента с флагом RST означает, что порт закрыт. Получив SYN|ACK, сканер отправляет на обнаруженный порт сегмент с флагом RST, ликвидируя попытку соединения.

Режим SYN-сканирования утилиты nmap

Режим SYN-сканирования сканера nmap устанавливается опцией –sS (scan SYN). Пример применения режима SYNсканирования:

linux:~$ sudo nmap -sS mail.ru [sudo] password for linux:

Starting Nmap 5.21 ( http://nmap.org ) at 2011-09-01 17:13 MSD Nmap scan report for mail.ru (94.100.191.201)

Host is up (0.0089s latency).

Hostname mail.ru resolves to 4 IPs. Only scanned 94.100.191.201 Not shown: 986 filtered ports

PORT

STATE

SERVICE

25/tcp

closed

smtp

53/tcp

closed

domain

80/tcp

open

http

50

88/tcp

closed

kerberos-sec

110/tcp

closed

pop3

143/tcp

closed

imap

179/tcp

closed

bgp

443/tcp

closed

https

587/tcp

closed

submission

993/tcp

closed

imaps

Nmap done: 1 IP

address (1 host up) scanned in 4.29 seconds

Для ускорения процесса опроса портов при сканировании больших сетей совместно с опцией -sS рекомендуется использовать опцию -PS <порт>, позволяющую опросить какой-либо порт на всех активных объектах сканируемой вами сети намного быстрее, чем при использовании одной опции -p:

linux:~$ sudo nmap -sS -n -p 80 -PS mail.ru

Starting Nmap 5.21 ( http://nmap.org ) at 2011-09-01 17:18 MSD Nmap scan report for mail.ru (94.100.191.204)

Host is up (0.0082s latency).

Hostname mail.ru resolves to 4 IPs. Only scanned 94.100.191.204 PORT STATE SERVICE

80/tcp open http

Nmap done: 1 IP address (1 host up) scanned in 0.16 seconds

3.Практическое задание

1.Необходимо обнаружить все открытые порты TCP (22, 23, 80) сети лаборатории (компьютерного класса, экспериментальной установки), с использованием функции connect().

2.Повторите исследование, применяя метод Half-open SYN flag scanning.

3.Сравните время сканирования в первом и втором случае.

4.Повторите исследования с помощью утилиты hping3. Сравните результаты.

51

Практическая работа №10

МЕТОДЫ СКРЫТОГО СКАНИРОВАНИЯ

(STEALTH TCP SCANNING METHODS)

1. Цель работы

Продолжить знакомство с основными методами идентификации TCP-портов. Научиться применять на практике утилиты nmap, hping3 для решения задачи идентификации статуса TCP-портов методами

Stealth TCP scanning.

2. Теоретические сведения. Методические рекомендации

Изначально определение скрытое сканирование (Stealth TCP scanning methods) использовалось для методов сканирования, которые позволяли обходить сетевые системы обнаружения атак (ССОА) и систему протоколирования ОС. Современные ССОА способны обнаруживать Stealth TCP-сканирование. В настоящее время под

Stealth TCP scanning methods понимают множество методов сканирования TCP-пакетами с нестандартным сочетанием флагов (Control Bits — 6 bits). Выделяют три группы методов скрытого сканирования:

Инвертированное сканирование (Inverse TCP flag scanning);

Сканирование пакетом с флагом ACK (ACK flag probe scanning); Сканирование фрагментированными TCP-пакетами (TCP fragmentation scanning).

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

Методы инвертированного сканирования основаны на идентификации закрытых TCP-портов. Рассмотрим виды инвертированного сканирования (Inverse TCP flag scanning):

SYN|ACK-сканирование (ТСР SYN|ACK scanning);

FIN-сканирование (ТСР FIN scanning); XMAS-сканирование (ТСР XMAS scanning);

52

NULL-сканирование (ТСР NULL scanning).

При Inverse TCP flag сканировании используют различные сочетания флагов заголовка отправляемого TCP-пакета. При обращении Inverse TCP пакетов к закрытым TCP-портам, исследуемый узел должен ответить RST-пакетом, все обращения таких пакетов к открытым TCP-портам должны игнорироваться (RFC 793).

Ключевой особенностью Inverse TCP flag scanning является их способность незаметно обойти некоторые не учитывающие состояние (non-stateful) МЭ. Недостатком методов инвертированного сканирования является большая вероятность ошибки, т.к. многие ОС игнорируют стандарты. Некоторые системы отвечают пакетом RST, при сканировании открытых TCP-портов, что противоречит RFC 793. Методы Inverse TCP flag scanning в настоящее время нашли свое применение при идентификации ОС (Remote OS Fingerprinting).

Сканирование TCP SYN|ACK

Метод SYN|ACK scanning считается более скрытым, чем метод SYN-сканирования. На исследуемый TCP-порт узла сети отправляется TCP-пакет с установленными флагами SYN и ACK. В случае закрытого исследуемого TCP-порта ситуация будет следующая:

Сканирующий узел (Client) -> TCP flags=SYN+ACK

TCP flags=RST <- Сканируемый узел (Server)

В ответ на пришедший TCP-пакет с установленными флагами SYN и ACK сервер отвергнет соединение, ответив TCP-пакетом с установленным флагом сброса соединения — RST. В случае, когда исследуемый TCP-порт открыт, ситуация может быть аналогична предыдущей или будет следующая:

Сканирующий узел (Client) -> TCP flags=SYN+ACK

(no response) <- Сканируемый узел (Server)

Пришедший на открытый TCP-порт TCP-пакет с установленными флагами SYN и ACK сервер может проигнорировать.

53

Метод ТСР-сканирования пакетами с установленными флагами SYN и ACK малоинформативен. Если в ответ на отправленный SYN|ACK-пакет приходит RST-пакет, то считают, что фильтрация порта не осуществляется (реакция открытого TCP-порта и закрытого TCP-порта одинакова). Если ответа на отправленный SYN|ACK-пакет не последовало (или пришло ICMP-сообщение о недоступности порта), то TCP-порт считается фильтруемым. Метод SYN|ACK scanning невозможно использовать для определения статуса TCPпорта, однако данный метод позволяет отличить МЭ пакетный фильтр от МЭ экспертного уровня (StateFul Inspection).

Сканирование TCP FIN (FIN scanning)

При FIN scanning на исследуемый TCP-порт узла сети отправляется TCP-пакет с установленным флагом FIN. В соответствии с RFC 793 тестируемая система должна ответить TCPпакетом с установленным флагом RST|ACK для всех закрытых TCPпортов, открытые порты должны игнорировать TCP(FIN)-пакеты.

Сценарий FIN scanning в случае, когда исследуемый TCP-порт закрыт:

Сканирующий узел (Client) -> TCP flags=FIN

TCP flags=RST+ACK <- Сканируемый узел (Server)

Сценарий FIN scanning в случае, когда исследуемый TCP-порт открыт:

Сканирующий узел (Client) -> TCP flags=FIN

(no response) <- Сканируемый узел (Server)

ОС Windows, BSDI, CISCO, HP/UX, MVS, IRIX и др. отвечают одинаково на TCP FIN пакеты во всех случаях, нарушая RFC 793.

Сканирование TCP Xmas

Метод TCP сканирования Xmas (рождественская елка) предполагает отправку TCP-пакета с установленными флагами FIN, URG, PSH. По RFC 793 тестируемая система должна ответить RSTпакетом для всех закрытых TCP-портов. Реакция различных ОС на TCP Xmas сканирование аналогична FIN scanning.

54

Нулевое сканирование (TCP Null scanning)

Метод TCP Null scanning основан на сбрасывании всех флагов отправляемого TCP-пакета. По RFC 793 тестируемая система должна ответить RST-пакетом для всех закрытых TCP-портов. Реакция различных ОС на TCP Null сканирование аналогична предыдущим.

Реализация Stealth scan средствами сканера nmap

Методы Stealth TCP scanning можно реализовать средствами сканера nmap, используя опции: -sF; -sN; -sX (TCP FIN, NULL и Xmas

соответственно).

-sF: FIN сканирование (устанавливается только бит TCP FIN):

linux:~$ sudo nmap -sF yandex.ru –p 11,22,80 -PN

-sN: Null сканирование (флагов в TCP-заголовке 0):

linux:~$ sudo nmap -sN yandex.ru –p 11,22,80 -PN

-sX: Xmas сканирование (устанавливаются флаги FIN, PSH и

URG):

linux:~$ sudo nmap -sX yandex.ru –p 11,22,80 -PN

3.Практическое задание

1.Исследуйте ответ различных ОС на сканирование методами Stealth scanning. Занесите в таблицу (табл. 6) результаты для различных методов сканирования и состояний TCP-порта (порт открыт, порт закрыт, порт открыт и фильтруется, порт закрыт и фильтруется).

Таблица 6

Адрес узла (IP, mac)

ОС

SYN|ACK

FIN

NULL

Xmas

2. Найдите в сети лаборатории (компьютерного класса, экспериментальной установки) узлы, защищаемые МЭ.

55

Практическая работа №11

МЕТОДЫ СКРЫТОГО СКАНИРОВАНИЯ

(ACK PROBE SCANNING, TCP FRAGMENTATION SCANNING)

1. Цель работы

Продолжить знакомство с основными методами идентификации TCP-портов. Научиться применять утилиты nmap, hping3 для решения задачи идентификации статуса TCP-портов методами ACK flag probe scanning, TCP Fragmenting.

2. Теоретические сведения. Методические рекомендации

ACK flag probe scanning

Этот метод сканирования не способен идентифицировать открытый порт (или даже открытый|фильтруемый). ACK flag probe scanning используется для выявления правил МЭ, определения фильтруемых TCP-портов, определения технологии МЭ (stateful, nonstateful).

Пакет запроса при ACK flag probe scanning содержит установленным только ACK-флаг. При сканировании систем, не фильтруемых МЭ, открытые и закрытые порты будут возвращать RST-пакет, т.е. они достижимы для ACK-пакетов (открыт порт или закрыт, определить невозможно). Порты, которые не отвечают при ACK flag probe scanning или отвечают ICMP-сообщением об ошибке

Destination Unreachable (тип 3 — получатель недостижим, код 1, 2, 3, 9,

10 или 13), помечают как фильтруемые.

Сценарий ACK flag probe scanning в случае, когда исследуемый TCP-порт не фильтруется:

Сканирующий узел (Client) -> TCP flags=ACK

TCP flags=RST <- Сканируемый узел (Server)

Сценарий ACK flag probe scanning в случае, когда исследуемый TCP-порт фильтруется МЭ:

56

Сканирующий узел (Client) -> TCP flags=ACK

(no response/ICMP Type=3) <- Сканируемый узел (Server)

Для использования метода ACK flag probe scanning средствами сканера nmap необходимо указать опцию -sA (сканирование TCP ACK):

linux:~$ sudo nmap -sA yandex.ru –p 11,22,80 -PN

Starting Nmap 5.21 ( http://nmap.org ) at 2011-09-22 23:09 MSD Nmap scan report for yandex.ru (yandex.ru)

Host is up (0.000012s latency).

All 3 scanned ports on yandex.ru (yandex.ru) are unfiltered Nmap done: 1 IP address (1 host up) scanned in 0.13 seconds

Analysis of the WINDOW field of received packets

Метод сканирования размера окна (WINDOW field of received packets) основан на анализе поля Initial Window TCP-пакета (полученного в ответ на RST пакет). В некоторых ОС открытые TCPпорты используют положительное значение поля Initial Window (даже в RST пакетах), а закрытые — нулевое. Поэтому при Window сканировании TCP-порты идентифицируют как открытые, если значение поля TCP Window положительно или закрытые, если значение равно нулю.

Для использования метода WINDOW field of received packets

средствами сканера nmap необходимо указать опцию -sW (сканирование TCP Window).

3.Практическое задание

1.Исследуйте ответ различных ОС на сканирование методами ACK flag probe scanning, Window field of received packets. Результаты для различных методов сканирования и состояний TCP-порта (порт открыт, порт закрыт, порт открыт и фильтруется, порт закрыт и фильтруется) занесите в таблицу (табл. 7).

2.Необходимо обнаружить в сети лаборатории (компьютерного класса, экспериментальной установки) узлы, защищаемые МЭ.

57

Таблица 7

Адрес узла

ОС

ACK flag probe scanning

Window field of received

(IP, mac)

packets

58

Практическая работа №12

МЕТОДЫ СКАНИРОВАНИЯ UDP-ПОРТОВ (UDP PORT SCANNING). СКАНИРОВАНИЕ IP ПРОТОКОЛА

1. Цель работы

Освоить основные методы идентификации UDP-портов. Решить задачу идентификации статуса UDP-портов, применяя утилиты nmap, hping3.

2. Теоретические сведения. Методические рекомендации

Наиболее часто используемым транспортным протоколом для сервисов корпоративной сети является TCP. Служб, использующих в качестве транспорта UDP, значительно меньше. Самые распространенные из них: служба доменных имен DNS (Domain Name System, RFC 1034, RFC 1035; UDP-порт 53), служба управления сетью на базе протокола SNMP (Simple Network Management Protocol, RFC 1155, RFC 1212, RFC 1213, RFC 1157; UDP-порты 161/162), служба динамического назначения IP адресов DHCP (Dynamic Host Configuration Protocol, RFC 2131; UDP-порты 67/68), служба на базе простого протокола передачи файлов TFTP (Trivial File Transfer

Protocol, RFC 1350; UDP-порт 69). Инвентаризация UDP-портов — UDP Port Scanning, несмотря на простоту протокола UDP, задача более сложная (в сравнении с TCP). Это связано с концепцией протокола UDP как транспортного протокола с негарантированной доставкой данных, выражающейся как в потере отдельных пакетов данных, так и в их дублировании.

Метод UDP Port Scanning заключается в следующем: на порт исследуемого узла сети отправляется пакет UDP, если узел отвечает сообщением ICMP Port Unreachable, можно делать вывод, что UDPпорт закрыт. В случае отсутствия ответа удаленного узла однозначного вывода сделать нельзя, ситуация может быть следующая: UDP-порт открыт, средствами МЭ фильтруется трафик

59

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Реакция ос windows на fin сканирование в случае закрытого порта

Добрый день! Уважаемые читатели и гости 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.

Источник

Определение активных портов удаленного компьютера

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

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

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

Как и везде, в организации механизма портов имеются свои недостатки. Любой пользователь имеет возможность исследовать сетевое окружения сервера методом опроса его портов. Достаточно лишь послать «лавину» пакетов на все возможные номера портов сервера (1-65535), и по тому, от каких портов будут (или не будут) получены ответы, определить открытые порты и службы, работающие на исследуемом сервере.

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

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

Определение состояния сервера методом ICMP-сканирования

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

В сетях, организованных на базе стека протоколов TCP/IP, для этой цели используется протокол ICMP [1]. Данный протокол является вспомогательным и позволяет маршрутизатору сообщать конечному узлу об ошибках либо непредвиденных ситуациях, которые имели место при передаче IP-дейтаграммы от этого узла.

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

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

Для программной реализации данного метода пользователю необходимо знать некоторые особенности построения подобных запросов. Любое ICMP-сообщение имеет два уровня инкапсуляции в IP-дейтаграмму (см. рис.1).

Область данных IP-дейтаграммы

Область данных кадра

Рисунок 1 : Инкапсуляция ICMP-сообщения

В начале любого ICMP-сообщения находятся три поля: «Тип сообщения», «Код» (причина ошибки) и «Контрольная сумма». Поле “Тип” определяет смысл ICMP-сообщения и соответствующий ему формат. Значения этого поля приведены в таблице 1.

Превышено время дейтаграммы

Ошибка параметров дейтаграммы

Запрос временной метки

Ответ на запрос временной метки

Запрос маски адреса

Ответ на запрос маски адреса

В рассматриваемом методе используются типы сообщений «Запрос эха» (8) и «Ответ на эхо» (0). Обычно запрос эха и связанный с ним ответ используются для проверки достижимости получателя (т.е. сканируемого сервера) IP-дейтаграммы и его способности отвечать на запросы. Формат ICMP-сообщений «запрос эха» и «ответ на запрос эха» показан на рис.2.

Рисунок 2 : Формат сообщения «запрос эха» и ответа на него

Поле «Необязательные данные» имеет переменную длину и содержит данные, которые необходимо вернуть отправителю. Поля «Идентификатор» и «Последовательный номер» используются отправителем для проверки соответствия ответов запросам.

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

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

При сканировании больших сетей задержка во времени между посылкой запроса и получением ответа на него может превысить установленное значение, в результате чего ping может неправильно интерпретировать состояние объекта и указать на отсутствие к нему доступа. Аналогичная ситуация может произойти при «ручном» формировании запроса эха. В обоих случаях этого можно избежать, увеличив время ожидания ответа на ping-запрос.

Сканирование TCP-портов функцией connect()

Данный метод использовался в самом начале развития технологии сканирования, однако до сих пор является основным и единственным в некоторых операционных системах (Windows), поддерживающих механизм сокетов, для сканирования портов по протоколу TCP. Функция connect() позволяет хосту соединиться с любым портом сервера. Если порт, указанный в качестве параметра функции, прослушивается сервером (т.е. порт открыт для соединения), то в результате выполнения функции connect(n) будет установлено соединение с сервером по указанному порту n. В противном случае, если соединение не установлено, то порт с номером n является закрытым.

Этот метод обладает некоторыми преимуществами. Во-первых, его может применить любой пользователь, не обладающий никакими привилегиями на хосте. Во-вторых, данный метод обеспечивает довольно высокую скорость исследования. Последовательный перебор портов путем вызова функции connect() для каждого номера порта, определение его состояния и закрытие соединения – достаточно долгий процесс. Однако его можно ускорить, применив метод «параллельного просмотра» с использованием неблокированного ввода/вывода (non-blocked I/O). Такой метод позволяет практически одновременно определить состояние всех портов сервера.

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

Сканирование TCP-портов флагом SYN

Данный метод известен еще как «сканирование с установлением наполовину открытого соединения» (half-open scanning), поскольку полное установление TCP-соединения не производится. Рассмотрим схему создания TCP-соединения, описанную в протоколе TCP [2]. В исходном состоянии сервер «прослушивает» порты в ожидании соединения. Соединение между хостом и сервером не установлено.

Первый этап (рис.3): хост посылает серверу SYN-пакет с указанием собственного номера очереди.

Рисунок 3: Первый этап установления соединения

Второй этап (рис.4): сервер, приняв запрос на соединение, посылает хосту подтверждание и данные для синхронизации со своей стороны.

Рисунок 4: Второй этап установления соединения

Третий этап (рис.5): хост, приняв пакет синхронизации от сервера, посылает ему подтверждение о приеме.

Рисунок 5: Третий этап установления соединения

Процесс, рассмотренный выше, называется трехступенчатой синхронизацией (3-way handshaking), и служит для установления соединения по протоколу TCP между двумя любыми объектами сети Интернет. После этого хост передает серверу данные (рис.6).

Рисунок 6: Хост передает данные серверу

Как видно, процесс установления соединения предусматривает взаимный обмен пакетами синхронизации между сервером и хостом. Каждая из сторон должна получить первоначальный номер очереди (ISS) «партнера» и послать подтверждение. Пакет синхронизации представляет собой сформированное по правилам протокола TCP сообщение с выставленным в нем флагом SYN (либо SYN и ACK для подтверждения синхронизации). Формат заголовка протокола TCP и назначение флагов приведено на рис.7.

Номер очереди (собственное значение ISS)

Номер подтверждения (ACK=ISS партнера + 1)

Опции (длина переменная)

Поле «Указатель срочности» задействовано

Поле «Номер подтверждения» задействовано

Включена функция «проталкивания»

Сброс текущего соединения

Признак передачи синхропакета

Передача данных завершена

Рисунок 7: Формат TCP-сообщения

Алгоритм сканирования следующий. Хост отправляет на определенный порт сервера SYN-пакет, как бы намереваясь создать соединение, и ожидает ответ. Наличие в ответе флагов SYN|ACK означает, что порт открыт и прослушивается сервером. Получение в ответ TCP-пакета с флагом RST означает, что порт закрыт и не прослушивается.

В случае приема SYN|ACK-пакета хост немедленно отправляет RST-пакет для сброса устанавливаемого сервером соединения и не продолжает процесс обмена синхропакетами. Таким образом, производится проверка способности сканируемого сервера установить соединение по указанному порту.

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

Сканирование TCP-портов флагом FIN

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

В этом методе используются FIN-пакеты, используемые в процедуре закрытия соединения. Пакет предусматривает установку в TCP-сообщении флага FIN. Рассмотрим процедуру закрытия соединения.

В исходном состоянии хост передает серверу данные (рис. 8).

Рисунок 8: Хост передает серверу данные

Первый этап (рис.9): по окончании передачи данных хост посылает серверу FIN-пакет с указанием собственного ISS, ACK и установленными флагами FIN и ACK.

Рисунок 9: Первый этап закрытия соединения

Второй этап (рис.10): сервер, приняв FIN-пакет, посылает хосту подтверждение о приеме.

Рисунок 10: Второй этап закрытия соединения

Третий этап (рис.11): сервер посылает хосту FIN-пакет с указанием собственных данных.

Рисунок 11: Третий этап закрытия соединения

Четвертый этап (рис.12): хост передает серверу подтверждение о приеме FIN-пакета. После этого соединение между сервером и хостом будет закрыто.

Рисунок 12: четвертый этап закрытия соединения

FIN-пакеты способны обойти средства защиты сети. Идея заключается в том, что согласно [2], на прибывший на закрытый порт FIN-пакет сервер должен ответить RST-пакетом (TCP-пакет с установленным в нем флагом RST). FIN-пакеты на открытые порты игнорируются сервером.

Заметим, что не все типы ОС следуют рекомендации [2], и потому данный метод к ним неприменим. Так, ОС Windows 95/98/NT, по всей видимости, имеют иммунитет к такому сканированию, однако большинство ОС являются восприимчивыми. Таким образом, совместно используя SYN и FIN-сканирование можно с успехом обойти средства защиты сервера и просканировать его порты.

Сканирование TCP-портов флагами SYN(FIN) с использованием IP-фрагментации

Данный метод представляет собой комбинацию SYN и FIN-сканирования с небольшим усовершенствованием. Он основан на использовании функциональной особенности протокола IP [3], называемой фрагментацией.

Фрагментация – это процесс разделения большого пакета данных на несколько частей перед непосредственной передачей его в сеть для получения размера фрагмента, соответствующего стандарту используемой сети (т.н. параметр MTU – Maximum Transmission Unit, максимальный размер блока). Фрагментация пакета на стороне источника и его сборка на стороне приемника осуществляется автоматически. Каждая фрагментированная часть исходного пакета имеет одинаковый формат. Этот метод позволяет маршрутизировать фрагменты независимо друг от друга.

Рассмотрим пример фрагментации пакета с приведением конкретных значений полей заголовка дейтаграммы протокола IP. На рис.13 показан исходный заголовок дейтаграммы.

Смещение фрагмента = 0

Контрольная сумма заголовка

Рисунок 13: формат IP-заголовка нефрагментированного пакета

Общая длина фрагментируемой дейтаграммы составляет 472 байта (20 байт заголовок и 452 байта данных). Максимальное значение MTU примем равным 280 байт. На рис.14 приведены значения полей заголовков двух полученных в результате фрагментации дейтаграмм. первый фрагмент возникает после фрагментации исходной дейтаграммы по границе 256 байт.

Поля «Идентификатор», «Флаги» и «Смещение фрагмента» предназначены для управления процессами фрагментации и сборки дейтаграммы.

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

Поле «Флаги» указывает на возможность фрагментации. Нулевое состояние первого бита разрешает выполнять фрагментацию, единичное – запрещает. Второй бит определяет последний пакет дейтаграммы.

Поле «Смещение фрагмента» используется для указания места данного фрагмента в дейтаграмме. Смещение измеряется группами по 8 байт (т.е. в нашем случае смещение составляет 32 группы по 8 байт, или 256 байт). Первый фрагмент всегда имеет нулевое смещение. Значение остальных полей вы найдете в [3].

Смещение фрагмента = 0

Контрольная сумма заголовка

Смещение фрагмента = 32

Контрольная сумма заголовка

Рисунок 14: пример фрагментации дейтаграммы

Таким образом, TCP-пакет (SYN или FIN-пакет, имеющий размер порядка 24 байт) разбивается на стороне хоста на пару IP-фрагментов меньшего размера, и эта пара IP-фрагментов отправляется серверу. На стороне сервера IP-фрагменты «собираются» в один TCP-пакет и производится его обработка (те же действия, как и при SYN или FIN-сканировании).

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

Сканирование TCP-портов методом reverse-ident (обратной идентификации)

Протокол ident [4] позволяет определить имя (username или login, указанное при входе в систему) владельца любого запущенного на сервере процесса, связанного с ним, даже если сам этот процесс не инициализировал TCP-соединение.

Протокол ident иначе называется протоколом аутентификации сервера. За ним зарезервирован 113-й TCP-порт, который используется демоном (синоним драйвера в ОС Windows) identd, выполняющим функции аутентификации согласно протокола ident, для приема запросов и передачи ответов на них. Этот процесс происходит следующим образом.

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

означает, что клиенту необходимо узнать, кто в настоящее время использует 6191 порт на сервере, и передать эту информацию сервер должен на 23-й порт хоста. Ответ сервера выглядит следующим образом:

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

6193, 23 : USERID : UNIX : stjohns

6195, 23 : ERROR : NO-USER

Полный список возможных типов ответов приведен в [4].

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

К сожалению, это может быть сделано только при установлении «полного» TCP-соединения к порту исследуемого сервера, что позволяет системному администратору отследить ваши действия.

Сканирование TCP-портов с использованием атаки «Прорыв через FTP»

Данная особенность (известная, кстати, с 1985 года) может использоваться для похищения почты и новостей, «взлома» серверов, заполнения их дисков, обхода файрволлов, и на практике подобную деятельность очень сложно отследить. В нашем случае можно осуществить сканирование TCP-портов исследуемого сервера с помощью proxy-FTP. Так, пройдя через файрволл, хост соединяется с FTP-сервером, и затем сканируются порты, доступ к которым был заблокирован файрволлом (например, 139-й порт). Кроме того, если FTP-сервер позволяет читать и записывать данные в каталог (например /incoming), имеется возможность отправлять любые данные на обнаруженный открытый порт сервера.

Перед непосредственным сканированием порта необходимо установить соединение с FTP-сервером и использовать команду PORT с указанием номера интересующего порта. Таким образом серверу будет сообщено, что пассивный User-DTP на стороне хоста ожидает приема через некоторый указанный порт. Затем необходимо дать команду LIST для текущего каталога, и FTP-сервер отправит данные о каталоге по каналу Server-DTP, соединенному с User-DTP по указанному порту.

Если указанный в команде PORT порт сервера открыт, результат выполнения LIST будет успешным (код ответа в этом случае будет 150 и 226). В противном случае будет иметь место подобный ответ:

425 Can’t build data connection: Connection Refused

После этого вновь используется команда PORT с указанием другого порта и операция повторяется.

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

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

Сканирование UDP-портов проверкой ICMP-сообщения «Порт недостижим»

Этот метод также предназначен для определения состояния портов сервера. Основным отличием является использование протокола UDP [6] вместо протокола TCP. Не смотря на то, что организация протокола UDP проще, чем TCP, сканировать UDP-порты гораздо труднее. Это связано прежде всего с концепцией протокола UDP как протокола с негарантированной доставкой данных. Поэтому UDP-порт не посылает подтверждение приема запроса на установление соединения, и нет никакой гарантии, что отправленные UDP-порту данные успешно дойдут до него.

Этот метод работает очень медленно из-за использования на некоторых машинах т.н. «компенсации» ([7], раздел 4.3.2.8), ограничивающей частоту генерирования ICMP-сообщений об ошибке. Например, ядро Linux ограничивает частоту генерирования ICMP-сообщения «адресат недостижим» (Destination Unreachable) до 80 сообщений за 4 секунды, с простоем ¼ секунды, если это ограничение было превышено. Кроме того, для использования данного метода (а именно – для обнаружения ICMP-сообщений об ошибке) пользователь должен обладать статусом root на хосте, с которого производится сканирование.

Сканирование UDP-портов с использованием функций recvfrom() и write()

Этот метод используется в случае, когда пользователь, проводящий сканирование, не обладает статусом root на хосте. Поскольку не-root пользователь не может «читать» ICMP-сообщение PU, в ОС, поддерживающих механизм сокетов (например в Linux), имеется возможность получения информации о состоянии UDP-порта косвенным способом. Так, например, попытка вызова функции write() на закрытый порт обычно приводит к возникновению ошибки.

Функция recvfrom() в этом плане более информативна. Вызов ее на неблокированный UDP-сокет сервера обычно возвращает ошибку EAGAIN (Try Again – «попытайтесь еще раз», код 13) в случае, когда ICMP-сообщение не было принято, и ECONREFUSED (Connection Refused – «соединение закрыто», код 111), если ICMP-сообщение было принято.

Может показаться, что сканирование UDP-портов не дает той полноты информации, какую можно получить при сканировании TCP-портов. Однако, принимая во внимание существующие (хотя и не многочисленные) «дыры» в службах, использующих протокол UDP (например, «дыру» в rpcbind-демоне ОС Solaris, который может находится на любом UDP-порту с номером выше 32770), сканирование UDP-портов кажется не таким уж бессмысленным.

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

Программная реализация сканера портов: SYNSCAN

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

Необходимо обратить внимание на то, что программа написана на языке C и работает исключительно под управлением ОС типа Linux. Это связано прежде всего с огромными трудностями при низкоуровневом программировании стека TCP/IP у закрытых коммерческих ОС, каковой является Windows 95/98/NT. В отличие от Windows, операционная система UNIX (и ее разновидность Linux) позволяет весьма гибко управлять TCP/IP, посылать и принимать специфические пакеты а также предоставляет очень богатые возможности по их обработке.

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

Сканер разработан для применения в операционной системе UNIX а также ее клонов типа Linux, FreeBSD и др. Программа полностью совместима с большинством из этих операционных систем. Приведенная версия откомпилирована и протестирована в ОС Linux Mandrake 7.0.

Перед непосредственны запуском программы вам необходимо получить статус root на системе, с которой вы производите ее запуск, а также убедиться в наличии компилятора gcc и библиотек, указанных в разделе #include приведенного исходного кода. Пользователям русской версии необходимо также установить поддержку кириллических шрифтов в кодировке koi-8r для корректного отображения сообщений программы.

После компиляции вы можете запустить программу. Формат вызова следующий:

./ synscan [-f filename]

где: source – IP-адрес вашего хоста

target – IP-адрес сканируемого хоста

max-port-to-scan – верхняя граница диапазона сканируемых портов

[-f filename] – имя файла для записи результатов сканирования (если не указан – результат отображается на экране).

Заключение

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

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

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

ЛИТЕРАТУРА

[1] RFC 792: Internet Control Message Protocol (ICMP). DARPA Internet program. Protocol specification. J. Postel, Network Working Group, 1981.

[2] RFC 793: Transmission Control Protocol (TCP). DARPA Internet program. Protocol specification. Information Sciences Institute, 1981.

[3] RFC 791: Internet Protocol (IP). DARPA Internet program. Protocol specification. Information Sciences Institute, 1981.

[4] RFC 1413: Identification Protocol. M. St. Johns, US Department of Defense, 1993.

[5] RFC 959: File Transfer Protocol (FTP). J. Postel, J. Reynolds, ISI, 1985.

[6] RFC 768: User Datagram Protocol. J. Postel, ISI, 1980.

[7] RFC 1812: Requirements for IP Version 4 Routers. F. Baker, Cisco Systems, 1995.

Источник

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Как перевести учетную запись windows 10 в локальную
  • Как удалить драйвер руля с компьютера windows 10
  • Canon mf4410 scan driver windows 10
  • Please install microsoft windows wlan autoconfig
  • Как сделать иконку этот компьютер на рабочем столе windows 10