Como substituir pacotes udp em tempo real

1

Eu usei o iptables para redirecionar o tráfego para assim , mas parece encaminhar o tráfego para outro local.

Eu usei o hexinject assim:

hexinject -s -i eth0 -c 1 -f 'arp' | replace '06 04 00 01' '06 04 00 02' | hexinject -p -i eth0

mas o problema com o hexinject é que ele só injeta, não substitui o pacote original, apenas envia outro.

Eu também usei ettercap + etterfilter, mas não parece substituir o tráfego:

if (ip.proto == UDP) {
   if (search(DATA.data, "\x1f\x0f\x00\x08\x00\x01")) {
      log(DATA.data, "/tmp/payload");
      drop();
      execinject("/bin/sed s/\x1f\x0f\x00\x08\x00\x01/\x1f\x0f\x00\x08\x00\x00/g' /tmp/payload");
      msg("caught!");   
   }
}

O que eu quero fazer é substituir a representação hexadecimal de 1f 0f 00 08 00 01 to 1f 0f 00 08 00 00 , apenas alterando o último bit para zero, mas não consegui fazer com que o iptables + netsed, hexinject ou ettercap + etterfilter funcionassem. / p>

Aqui está uma visualização:

O servidor tenta enviar 1f 0f 00 08 00 01 para alguém, um programa é alterado para que 1f 0f 00 08 00 00 seja enviado.

O que posso experimentar agora? Ou talvez eu esteja usando esses programas de maneira errada.

    
por David Chen 19.09.2015 / 15:18

1 resposta

0

Você pode usar o HexInject e apenas adicionar uma regra de firewall para bloquear o encaminhamento desse pacote específico.

Fácil e simples.

Um exemplo usando IPTables para bloquear pacotes UDP para a porta 53:

iptables -A FORWARD -p udp --destination-port 53 -j DROP

Se você quiser filtrar em layer2, pode dar uma olhada em EBTables .

É um tipo de firewall para quadros de camada 2.

    
por 05.01.2017 / 01:12