Iptables soltar hex-string udp

3
00:00:40.283608 IP (tos 0x0, ttl 116, id 49680, offset 0, flags [none], proto UDP (17), length 32)
ip > ip: UDP, length 4
0x0000: 4500 0020 c21a 0000 6f11 1a1e 902b 4cdb E.......o....+L.
0x0010: ------ 000c c12f 0870 ac49 .....0.(.../.p.I
0x0020: 0000 0000 0000 0000 0000 **2664 94d4** ..........&d..

Como dropar com o iptables "2664 94d4" no pacote?

-I INPUT -p udp --dport 7777 -m string --algo bm --from 28 --hex-string 266494d4 -j DROP 

Não funciona.

    
por user221069 24.05.2014 / 21:48

1 resposta

3

Faz sentido que o iptables não filtre esses bytes porque eles não fazem parte do pacote IP.

Esse pacote é menor que o comprimento mínimo de quadro da Ethernet. Portanto, 14 bytes de preenchimento eram necessários para formar um quadro Ethernet válido. A sequência 0000 0000 0000 0000 0000 2664 94d4 é preenchimento. Parece razoável que esta parte seja removida do pacote antes que o iptables comece a filtrá-lo.

A carga útil do UDP é de apenas 4 bytes, como também é indicado pela sua saída. A carga útil é 0870 ac49 .

Não tenho certeza se o padrão especifica como os quadros Ethernet devem ser preenchidos. Eu esperava que o preenchimento fosse todos os bytes NUL. Mas os últimos quatro bytes de preenchimento não são NUL. Na verdade, pode haver um vazamento de informações no dispositivo, que estava enviando esse quadro Ethernet.

    
por 25.05.2014 / 00:08