Туннелирование IP-данных с использованием ICMP-пакетов
ICMP-пакеты используются для инкапсуляции IP-дейтаграмм. Эта дейтаграмма IP может представлять собой: пакет UDP, часть сегмента TCP, часть блока данных протокола SCTP / GRE / MPLS или любой другой протокол выше уровня 2.
Туннелирование данных TCP через ICMP
Пакеты ICMP используются для инкапсуляции сегментов TCP или дейтаграмм IP, которые состоят только из сегментов TCP.
Эхо-запрос ICMP позволяет отправителю указать полезную нагрузку. «Взлом» ICMP может, например, использовать этот факт и поместить пакет TCP в полезную нагрузку. Что-то на принимающей стороне должно было бы знать это и играть в игру. Если вы проявите творческий подход к другим типам запросов ICMP, вы, вероятно, могли бы многое сделать.
Отличным примером искажения протокола в целях, для которых он не предназначен, является iodine
( http://code.kryo.se/iodine/ ), который туннелирует IP через DNS-запросы.
(Примечание: обратите внимание, что в заголовке IP есть «поле протокола», которое определяет, какой протокол верхнего уровня транспортируется. TCP - это протокол № 6, GRE - это протокол № 47 и т. Д. ( Http: //www.iana. org / assignments / protocol-numbers / protocol-numbers.xml ))