часть 1 Типы брандмауэров
часть 3 IDS Системы обнаружения вторжений
часть 4 Варианты обхода IDS
часть 5 Honeypot, типы и обнаружение

Обнаружение брандмауэров

Когда атакующий находится на этапе разведки своей атаки, он пытается собрать как можно больше данных о сети, на которую он смотрит. Неизбежно, одна из вещей, о которой он хочет узнать больше, это то, с каким типом брандмауэра он имеет дело. Одна из первых вещей, которую они захотят сделать, — это снять отпечатки с брандмауэра. Так, например, HTTP-отпечатки серверов. Здесь он пытаются посмотреть, как ведет себя устройство. Например, какие порты и протоколы поддерживаются. Продукты брандмауэров конкретных производителей предоставляют службы через разные порты. Например, средства администрирования, как правило, имеют предсказуемые порты, и обнаружение этого порта часто является надежным индикатором того, кто производит продукт. Что-то вроде сканирования портов можно выполнить с помощью такого инструмента, как Nmap, и это действительно канонический продукт для сканирования сетей. Это хорошая отправная точка для сканирования портов и протоколов. Еще один распространенный метод — захват баннера. Это не сильно отличается от того, как мы видим захват баннера на веб-сервере. Сделайте запрос к устройству, получите ответ, и в этом ответе будет указано, кто производит продукт.

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

Каждый раз, когда он увеличивают TTL на единицу, он будет подключаться к другой точке соединения. Он не получет успешный ответ до тех пор, пока TTL не станет достаточно высоким, чтобы попасть на целевой хост. Это то, что известно как увеличение числа переходов. Он продолжают увеличивать TTL, пока не достигнет хоста назначения. Это первая фраза, которая помогает установить точки между хостами. Далее переходит ко второй фазе, и как только он поймет, где находится этот целевой хост с точки зрения правильного счетчика TTL, он могут начать отправлять пакеты TCP или UDP со сканирующего хоста на этот целевой хост, один порт за раз, увеличивая TTL. Атакующий просматривает доступные порты и проверяет каждую точку по пути, чтобы увидеть, будет ли она отвечать.

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

Подмена IP-адреса

Злоумышленникам доступно несколько различных техник уклонения. По мере продвижения вы узнаете, что каждый из них будет иметь смысл в разных обстоятельствах. Начнем с подмены IP-адреса. Это можно использовать как средство запутывания исходного адреса, с которого поступает запрос, но его также можно использовать как способ указания исходного адреса, который брандмауэр разрешит, в отличие от адреса злоумышленников, который брандмауэр не может разрешать. Возьмем пример сценария, где злоумышленник находится на 10.10.2.1. У нас есть целевой хост, и он находится в другой подсети. Это на 10.10.1.1, а не на .2. Неизбежно у нас есть брандмауэр, расположенный между этими двумя устройствами, и в этом случае брандмауэр предназначен для предотвращения доступа подсети этого злоумышленника к целевому хосту. Однако неизбежно существуют и другие доверенные узлы, вероятно, в той же подсети, и узел назначения с радостью разрешит соединения с ними. В сценарии подмены IP-адреса злоумышленник собирается выдать запрос, в котором он указывает исходный адрес как адрес доверенного хоста. Если брандмауэр разрешает соединения на основе этого исходного IP-адреса и передается допустимый IP-адрес, то этот запрос вполне может пройти к хосту. Это довольно примитивная реализация.

Туннелирование

Это можно сделать с помощью различных подходов. Например, используя ICMP через эхо-запросы или трассировки, фазу ACK трехэтапного рукопожатия TCP или напрямую через HTTP. В то время как реализация различается для этих трех, это один и тот же фундаментальный принцип. У нас есть злоумышленник, и у нас есть целевой хост, и у нас есть брандмауэр между ними. Злоумышленник попытается здесь обернуть вредоносную полезную нагрузку внутри протокола. Например, ICMP — это полезная часть пакета ICMP. Некоторые брандмауэры не проверяют эту полезную нагрузку. Если злоумышленник может заставить эту полезную нагрузку пройти весь путь до хоста назначения, а цель распаковать ее, выполнить, повторно обернуть ответ и отправить обратно, то злоумышленник может связаться с хостом. Злоумышленник также должен скомпрометировать хост здесь. Большинство хостов не собираются разворачивать ICMP-пакет и выполнять полезную нагрузку. Поэтому сейчас мы говорим о сценарии, в котором злоумышленник пытается поддерживать связь со скомпрометированным хостом. Например, у них может быть запущено вредоносное программное обеспечение на хосте, и они хотят иметь возможность контролировать его за пределами целевой сети. Это очень часто тот сценарий, с которым пытаются работать злоумышленники. С точки зрения уклонения, подумайте о HTTP. Большинство брандмауэров пропускают протокол HTTP через порт 80. Это вполне может быть ответом на внутренние запросы, которые отправляются извне, потому что вам необходимо иметь возможность поддерживать сотрудников в сети, делающих интернет-запросы.

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

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

Другой вариант — использовать VPN, создавая зашифрованный туннель между хостом на одной стороне брандмауэра и выходным узлом VPN на другой стороне. Брандмауэр также может блокировать VPN-протоколы, но всегда есть возможность использовать Tor, он же The Onion Router. Маршрутизация через Tor может скрыть природу целевого сайта, к которому пытается подключиться злоумышленник. Вполне может быть, что брандмауэр также блокирует Tor, и проблема со всеми этими обходными каналами и всеми методами уклонения, которые мы рассматривали до сих пор, заключается в том, что у каждого из них есть контрмеры. Точно так же, как все они были жизнеспособны много раз в прошлом, и многие из них продолжают оставаться устойчивыми. Будут другие способы туннелирования, другие методы маршрутизации, другие обходные каналы, подобные тем, о которых мы только что говорили.

Инструменты уклонения

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

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

Этот инструмент можно использовать в разумных целях, но он также удобен и для злонамеренных целей. Это очень важное замечание, с точки зрения класса инструмента HTTP-туннель является отличным примером программного обеспечения для туннелирования, специально предназначенного для обхода. Давайте рассмотрим еще один инструмент, который очень полезен, когда вы пытаетесь обойти брандмауэры. Одной из тем, о которой Nmap очень подробно говорит, является обход брандмауэра и IDS, но с его помощью также можно выполнить спуфинг. Nmap — отличный способ установить топологию сети, и не только топологию с точки зрения того, какие ресурсы находятся в этой сети, но и какие порты, протоколы, механизмы связи могут быть доступны для этих машин. В этом случае одна из вещей, на которые способен Nmap, — это фрагментация пакетов. Мы говорили о крошечных фрагментах немного ранее, и в Nmap есть механизм проверки устойчивости целевого брандмауэра к модели уклонения от мелких фрагментов. Есть много вещей, которые Nmap может вам помочь, с точки зрения возможности обхода не только брандмауэров, но и систем обнаружения вторжений. Конечно, этот инструмент — один из первых мест, с которого можно начать изучать методы уклонения.