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

Опубликовано: 15 Апреля, 2023

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



  • Что такое сканирование портов?
  • Инструменты торговли
  • Сканирование внешнего интерфейса ISA Server

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


    Что такое сканирование портов?


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


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



  • ICMP-сканирование
  • Сканирование TCP/UDP

  • Давайте рассмотрим их более подробно.


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



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


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




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


    Таким образом, хотя вы можете использовать сканирование ICMP для быстрой разведки, вы, конечно же, не хотите зависеть от них, если вы заинтересованы в подробной разведке сустава. Сканирование TCP/UDP


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



    Сокет — это конечная точка связи TCP/IP. Сокет состоит из следующих компонентов: номера порта, IP-адреса и протокола (TCP или UDP). Это отличается от ICMP, где соединение через сокет не создается (пакеты ICMP не используют номера портов). Существует несколько подходов к сканированию TCP/UDP, но один из них включает следующее:



  • TCP «Полусканирование IP»
  • Сканирование UDP-портов
  • Управление исходным портом

  • TCP «Полусканирование IP»


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


    Клиент: отправляет сообщение с установленным флагом SYN.


    Сервер: отвечает клиенту сообщением с включенными флагами SYN и ACK.


    Клиент: отвечает на сообщение SYN/ACK сервера сообщением ACK.


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


    Если вы хотите знать, какие TCP-порты открыты, вы можете сгенерировать трехстороннее рукопожатие на всех TCP-портах на целевом компьютере. Это может занять много времени, поэтому вы можете ускорить процесс, исследуя только интересующие вас порты.


    Еще один способ ускорить расследование открытых TCP-портов — исключить последнее сообщение ACK, отправленное клиентом. Вам не нужно устанавливать сеанс TCP с целевым компьютером; вам просто нужно знать, открыт ли порт и отвечает ли он на запросы на подключение. Вы можете сделать это, исключив третью фазу трехэтапного рукопожатия. Вы по-прежнему получаете необходимую информацию, потому что все, что вам нужно знать, это ответит ли сервер сообщением SYN/ACK.


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


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


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

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


    Проблема с этим методом сканирования UDP очевидна. Если администратор настроил машину так, чтобы она не возвращала сообщения ICMP Destination Unreachable, сканер будет считать, что все порты UDP доступны. Это затрудняет быструю оценку портов UDP, поскольку вам придется проводить дальнейшие исследования для всех портов, а не для подмножества всех возможных портов.


    Это не означает, что сканирование портов UDP невозможно. Если просто означает, что вы должны быть более осмотрительны в своей процедуре сканирования, когда сообщения ICMP Destination Unreachable отключены. Например, если вы хотите убедиться, открыт ли UDP, вам придется сделать что-то вроде отправки сообщения DNS-запроса на машину по UDP 53.


    Управление исходным портом


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

    Хороший пример — FTP. Если вы пытаетесь настроить маршрутизатор, чтобы разрешить работу FTP-клиентам в режиме PORT, вам потребуется разрешить новые (не ACK) входящие соединения с TCP-порта 20 FTP-сервера на все порты с высоким уровнем (> 1024), входящие в ваш внутренняя сеть. Некоторые администраторы маршрутизаторов/брандмауэров пытаются улучшить ужасную ситуацию с безопасностью, разрешая входящие пакеты без ACK на порты с большими номерами только с TCP-порта 20. Ограничение портов помогает нам справляться с ситуацией, когда FTP-клиенту в режиме PORT требуется сервер для создания нового входящего соединения для завершения канала данных.


    Манипулирование исходным портом позволяет обойти эти проблемы, изменив исходный порт, с которого отправляются запросы. Если вы измените исходный порт со случайного порта с большим номером на TCP-порт 20, маршрутизатор/брандмауэр разрешит входящие запросы на новое подключение к старшему номеру порта. Неплохо! Этот метод можно использовать для проверки любой службы, которая ожидает получения запросов на подключение с определенного номера порта.


    Инструменты торговли



    На рынке представлено огромное количество сетевых сканеров. Для меня было бы невозможно отдать должное даже крошечной части из них или даже части того, что я считаю хорошим. Однако есть два, которые мне особенно нравятся. Один из них — сканер с графическим интерфейсом, а другой — сканер командной строки. Это:



  • Сетевой сканер LANguard
  • Фскан

  • Оба этих сканера бесплатны!


    Сетевой сканер LANguard



    Сетевой сканер LANguard — это мощный и гибкий инструмент сканирования с графическим интерфейсом. Есть также большое количество опций, в том числе:



  • DNS-поиск
  • трассировка
  • SNMP-аудит
  • Взлом пароля
  • Перечисление серверов
  • Возможность сохранения результатов сканирования в формате HTML
  • Обнаружение: имен NetBIOS, имени пользователя, вошедшего в систему, MAC-адреса, данных SNMP, доверенных доменов, доступных общих ресурсов, групп, пользователей, служб, сетевых устройств, локальных дисков, удаленного TOD, политики паролей, записей реестра, исправлений, открытых TCP/UDP порты
  • Оповещения о последнем входе пользователя в систему, уязвимостях реестра, опасных службах и злоупотреблениях CGI — вместе с информацией о статьях Q и идентификаторах ошибок, которые устраняют проблемы.

  • Мы рассмотрим, как работает сетевой сканер LANguard при сканировании нашего компьютера с ISA Server. Вы можете получить сетевой сканер LANguard по адресу http://www.gfi.com/languard/lanscan.htm.


    ФСкан



    FScan — это первый инструмент сканирования портов из командной строки, предоставляемый Foundstone (www.foundstone.com). Возможностей, предоставляемых FScan, не счесть! Некоторые из наиболее полезных функций включают в себя:



  • Вы можете использовать текстовые файлы для загрузки информации в сканер
  • Доступно сканирование исходного порта
  • Скорость сканирования настраивается, что позволяет вам разрушить многие системы IDS.
  • Пользовательские настройки времени ожидания для сканирования портов TCP и UDP
  • Раздельное сканирование ICMP и TCP/UDP (обычно выполняется в сочетании с большинством сканеров).
  • Случайный порядок сканирования портов
  • Захватите баннеры
  • И более!!!!

  • Вы можете получить инструмент FScan по адресу http://www.foundstone.com/knowledge/free_tools.html. Щелкните ссылку СКАНЕР и выберите FScan v1.12 (или любую другую последнюю версию на момент загрузки).


    ПОХВАЛЬНЫЙ ОТЗЫВ



    Вероятно, одним из самых полезных инструментов для сканирования портов и многих других является netcat. Netcat (http://www.atstake.com/research/tools/nc11nt.zip) позволяет выполнять многие действия, в том числе следующие:



  • Исходящие или входящие соединения, TCP или UDP, к любым портам или от них
  • Полная прямая/обратная проверка DNS с соответствующими предупреждениями
  • Возможность использовать любой локальный исходный порт
  • Возможность использования любого локально настроенного сетевого исходного адреса
  • Встроенные возможности сканирования портов с рандомизатором
  • Может читать аргументы командной строки из стандартного ввода
  • Режим медленной отправки, одна строка каждые N секунд
  • Шестнадцатеричный дамп переданных и полученных данных
  • Возможность разрешить другой программе обслуживать установленные соединения
  • Ответчик параметров Telnet
  • Возможность запуска в фоновом режиме без окна консоли
  • Возможность перезапуска в качестве однопоточного сервера для обработки нового подключения

  • Это инструмент, который вы должны проверить, особенно если вы занимаетесь продвинутой разведкой.


    В следующем разделе мы рассмотрим, как выполнить сканирование внешнего интерфейса ISA Server с помощью Fscan.


    Сканирование внешнего интерфейса ISA Server



    Теперь о моменте истины: Сканирование внешнего интерфейса ISA Server. Когда вы впервые устанавливаете ISA Server, на нем должна быть включена фильтрация пакетов. Всегда проверяйте, что это так, щелкнув правой кнопкой мыши узел «Фильтры IP-пакетов», щелкните «Свойства» и установите флажок «Включить фильтрацию пакетов».




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


    При включенной фильтрации пакетов вы должны увидеть следующее:




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



    Открытые порты есть открытые порты! Если вы публикуете службы, порты будут открыты. Они должны быть открыты, если вы хотите, чтобы клиенты внешней сети устанавливали соединения с серверами вашей внутренней сети. Невозможно «скрыть» или иным образом скрыть открытые порты. Похоже, это распространенное заблуждение среди младших администраторов ISA Server, с которым я сталкиваюсь. Сравните результаты вашего приключения по сканированию портов с тем, что вы видите, когда выполняете перечисление портов netstat -na на компьютере с ISA Server.




    Ух ты! Посмотрите на все эти порты, которые прослушиваются на всех интерфейсах. Это те, у которых IP-адрес 0.0.0.0 для локального адреса. Эти порты не отображаются при сканировании портов, потому что фильтры пакетов ISA Server не позволяют им принимать соединения.


    Вы также можете использовать FScan для сканирования внешнего интерфейса ISA Server. В командной строке введите fport /? и вы увидите:




    Имея эту информацию, мы можем выполнить быстрое (ну, может быть, не очень быстрое) сканирование портов на внешнем интерфейсе ISA Server, выполнив следующую команду:


    Fscan -p 1-65535 -u 1-65535 192.168.1.125 -oc:isa.txt


    После завершения сканирования вы увидите следующий вывод:




    Не очень интересно. Это потому, что сканер не нашел открытых портов.


    Теперь отключим фильтрацию пакетов на ISA Server и посмотрим, изменится ли ситуация:




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


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


    Проверь это:


    Когда вы перезагружаете компьютер с ISA Server, он не будет защищен до тех пор, пока не будут инициализированы службы ISA Server. Взгляните на следующее:




    Первое сканирование было запущено, когда машина загружалась. Вы можете видеть, что FScan перечисляет несколько опасных открытых портов. Я остановил сканирование и перезапустил его примерно через 15 секунд. Затем сканирование не обнаруживает открытых портов вообще.


    При запуске ISA Server были отправлены следующие запросы:




    Вы заметите, что в 17:06:43 TCP 25 открыт, но FScan не может захватить баннер (это то, что делает ключ -b). В 17:06:45 срабатывают пакетные фильтры ISA Server. Таким образом, несмотря на то, что порт сообщается как открытый, скорее всего через этот порт не проходит никакая информация, так как во время время его открытия.





    Резюме



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