ICMP туннель - ICMP tunnel
An ICMP туннель[1] устанавливает скрытый соединение между двумя удаленными компьютерами (клиентом и прокси), используя ICMP эхо-запросы и ответные пакеты. Пример этой техники: туннелирование полный TCP трафик по запросам и ответам ping.
Технические детали
ICMP-туннелирование работает путем введения произвольных данных в эхо-пакет, отправляемый на удаленный компьютер. Удаленный компьютер отвечает таким же образом, вводя ответ в другой пакет ICMP и отправляя его обратно. Клиент выполняет все коммуникации с использованием пакетов эхо-запроса ICMP, в то время как прокси-сервер использует пакеты эхо-ответа.
Теоретически возможно, чтобы прокси использовал пакеты эхо-запроса (что значительно упрощает реализацию), но эти пакеты не обязательно пересылаются клиенту, поскольку клиент может находиться за переведенным адресом (NAT ). Этот двунаправленный поток данных можно абстрагировать с помощью обычной последовательной линии.
ICMP-туннелирование возможно, потому что RFC 792, который определяет структуру пакетов ICMP, допускает произвольную длину данных для любого типа 0 (эхо-ответ) или 8 (эхо-сообщение) пакетов ICMP.
Использует
ICMP-туннелирование может использоваться для обхода правил брандмауэра через обфускация фактического трафика. В зависимости от реализации программного обеспечения для туннелирования ICMP, этот тип подключения также можно отнести к категории зашифрованная связь канал между двумя компьютерами. Без надлежащего глубокая проверка пакетов или просмотр журнала, сетевые администраторы не смогут обнаружить этот тип трафика в своей сети.[2]
Смягчение
Один из способов предотвратить этот тип туннелирования - заблокировать ICMP-трафик за счет потери некоторых сетевых функций, которые люди обычно принимают как должное (например, определение того, что одноранговый узел отключен, могут занять десятки секунд, а не почти мгновенно). Другой метод защиты от атак этого типа - пропускать через брандмауэры только пакеты ICMP фиксированного размера, что может препятствовать такому поведению или исключать его.[3]
ICMP-туннели иногда используются для обхода брандмауэров, блокирующих трафик между локальной сетью и внешним миром. Например, коммерческими службами Wi-Fi, которые требуют от пользователя оплаты за использование, или библиотекой, которая требует, чтобы пользователь сначала авторизовался на веб-портале. Если оператор сети сделал ошибочное предположение, что достаточно заблокировать только обычные транспортные протоколы, такие как TCP и UDP, но не базовые протоколы, такие как ICMP, то иногда можно использовать ICMP-туннель для доступа в Интернет, несмотря на то, что он не был авторизован для доступа к сети. Шифрование и правила для каждого пользователя, запрещающие пользователям обмениваться пакетами ICMP (и всеми другими типами пакетов, возможно, с помощью IEEE 802.1X ) с внешними узлами до авторизации решает эту проблему.
Смотрите также
Рекомендации
- ^ Даниэль Стёдл. "Ping Tunnel: для тех случаев, когда все остальное заблокировано".
- ^ http://protocol.korea.ac.kr/publication/Covert%20Channel%20Detection%20in%20the%20ICMP%20Payload%20Using%20Support%20Vector%20Machine.pdf[постоянная мертвая ссылка ]
- ^ http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.61.5798&rep=rep1&type=pdf
внешняя ссылка
- RFC 792, Протокол управляющих сообщений Интернета
- itun Простой IP через туннель ICMP
- Ганс ICMP-туннель для Linux (сервер и клиент) и BSD MacOSX (только клиент)
- ICMP-оболочка протокол, подобный telnet, использующий только ICMP
- PingTunnel Туннель TCP через ICMP
- ICMP Крафт Стюарт Томас
- Использование инструмента туннелирования ICMP Ping Tunnel
- Проект Локи Статья о ping-туннелировании в Phrack
- ICMP-туннель с исходным кодом C #
- icmptunnel IP через туннель ICMP от Дхавала Капила