Tunneling IP data using ICMP packets
Pacotes ICMP são usados para encapsular datagramas IP. Esse datagrama IP pode ser: um pacote UDP, parte de um segmento TCP, parte de uma unidade de dados de protocolo SCTP / GRE / MPLS ou qualquer outro protocolo superior à camada 2.
Tunneling TCP data via ICMP
Os pacotes ICMP são usados para encapsular segmentos TCP, ou datagramas IP que consistem apenas em segmentos TCP.
Uma solicitação de eco ICMP permite que o remetente especifique uma carga útil. Um "hack" do ICMP poderia, por exemplo, explorar esse fato e colocar um pacote TCP no payload. Algo na ponta receptora teria que saber disso e jogar o jogo também. Se você for criativo com os outros tipos de solicitação do ICMP, provavelmente poderá fazer muito.
Um ótimo exemplo de torcer um protocolo para um uso que não era pretendido é iodine
( link ) que túneis IP sobre solicitações de DNS.
(Nota: observe que há um "campo de protocolo" no cabeçalho IP que identifica qual o protocolo da camada superior está sendo transportado. TCP é o protocolo nº 6, GRE é o protocolo nº 47, etc. ( link )