[HACK] Duplicar/Multiplicar paquetes con Iptables

Pablo Ruiz Garcia pruiz at netway.org
Tue Mar 1 11:41:27 CET 2005


Roman, se que ponerse a hacer kernel coding es costos y complejo de depurar..

Pero antes q usar tcpdump + named pipe + tcpreplay.. no es mas sencillo (a la par que elegante) hacer un desarrollo de no mas de 200 
lineas usando libpcap + libnet.. o libdnet :)
Dicho desarrollo seria en modo usuario y con tecnologias que ya has probado y funcionan.. por no hablar de que seria mas sencillo de 
"depurar" que el modo kernel.. (e incluso que tu solucion actual..)

Att. Pablo (desde el culo del mundo)

--
Pablo Ruiz Garcia (Pci)
Security Consultancy - Tiger Team
Enterasys ESE/CISSP/CISA Certified
Meet just your security needs <pruiz at netway.org>

----- Original Message ----- 
From: "Roman Medina-Heigl Hernandez" <roman at rs-labs.com>
To: "http://www.argo.es/~jcea/artic/hack-faq.htm" <hacking at argo.es>
Sent: Friday, February 25, 2005 8:59 AM
Subject: Re: [HACK] Duplicar/Multiplicar paquetes con Iptables


> Hola,
>
> Lo primero agradecer a todos vuestras respuestas aunque he de decir que más o menos esas ideas ya las había pensado (no es por 
> bajar la moral, ¿eh? xD). El caso es que me pareció ver en Internet hace tiempo alguien que lo hacía de forma "simple" (=sin 
> programar) pero ahora que me he puesto a buscarlo no hay manera, y de hecho tampoco estoy seguro de que no fuera una alucinación 
> mía. Lo mismo no era sólo con iptables, sino que también usaba iproute2 y tal, aunque tb me he repasado el manual y no veo como 
> "generar" copias de paquetes, que es la parte más chunga.
>
> Sobre las soluciones que se han comentado, las que implican tocar kernel+compilador son las más elegantes y quizás las más o menos 
> obvias (de palabra, claro), pero no de implementar. Me parece que hay un howto para desarrollar módulos de iptables pero vamos, 
> que no tengo tiempo, necesito algo más sencillo y rápido; aparte me temo que Netfilter pueda presuponer en algún punto que el 
> paquete entra y sale (como es normal) pero no que se multiplican, y que haya que hacer más cambios que los que a priori pueda 
> parecer. Por cierto, que el target "mirror" (su código) tb lo había mirado ya (muy por encima), pero me remito a mitad del 
> párrafo... aparte me extrañó que venga en el kernel 2.4 y no aparezca en el 2.6... no me fio mucho :-)
>
> Estoy pensando en algo más de la linea que se comenta aquí, estilo pillar el tráfico y generarlo con tcpreplay o similar. De hecho 
> estoy probando una idea que se me ocurrió ayer, que podría funcionar, basada en tcpdump + "named pipe" + tcpreplay. Por ahora 
> consigo regenerar los paquetes en tiempo real con el cotarro anterior, pero estoy mirando un pequeño "detalle": los paquetes 
> inyectados con tcpreplay no parecen atravesar las cadenas de iptables (puse un LOG en todas las cadenas posibles y nada, que 
> parece que no pasa por ahi), y lo necesito pq la cosa es un poquito más complicada de lo que conté (no quería asustar xD): los 
> traps duplicados/triplicados/etc se envian a diferentes IPs según de donde provengan, así que en algún punto debe haber una lógica 
> que discrimine. Yo con que los paquetes que tcpreplay inyecta pasen alguna cadena de iptables (PREROUTING u OUTPUT, que es donde 
> puedo aplicar DNAT) me es suficiente. Yo pensaba que al ser paquetes generados por un proceso local (tcpreplay) deberían atravesar 
> el OUTPUT, pero no parece ser así... cuando tenga otro ratillo seguiré investigando :-). De todas formas, si se os ocurre algo 
> sobre esto último, y os animais a compartirlo...
>
> Saludos,
> -Román
>
> zgor wrote:
>> La verdad es que nunca he tenido que montar nada asi pero se me ocurre una historieta un poco bricolaje:
>> utilizar el target ulog para loguear los paquetes que te interesan y en ulogd utilizar el modulo pcap para que lo guarde en 
>> formato libpcap
>> Y por otra parte tener un scriptillo que cada segundo (si es aceptable ese tiempo) procese el ultimo registro del log y 
>> construya/envie los paquetes clonados (no se si con sendip o similar valdria)
>> Sino, habia pensado tambien en que quizas no sea muy dificil modificar el target mirror de netfilter que hace algo parecido a lo 
>> que quieres pero solo intercambiando origen y destino, podria funcionar cambiando el destino y repitiendo el proceso varias 
>> veces, lo unico que los paqeutes enviados por mirror luego no son vistos por netfilter (aunque en principio no te haria falta)
> _______________________________________________
> Lista - http://mailman.argo.es/listinfo/hacking
> FAQ - http://www.argo.es/~jcea/artic/hack-faq.htm
> "una-al-dia" para estar siempre informado - http://www.hispasec.com/
> 




More information about the hacking mailing list