problemas al inyectar paquetes con scapy en una conexion UDP

Iniciado por ameise_1987, 21 Noviembre 2012, 19:58 PM

0 Miembros y 1 Visitante están viendo este tema.

ameise_1987

hola, estoy intentando realizar unas pruebas de concepto en local con netcat y con scapy, el escenario es el siguiente.

pongo el netcat a la escucha en el puerto 34098 esperando paquetes UDP.

nc -vv -l -u 34098

ahora con scapy creo un paquete ip y otro udp

capa_ip=IP(src='127.0.0.1',dst='127.0.0.1')
capa_udp=UDP(sport=20343,dport=34098)
datos="esto es una prueba!!"
send(capa_ip/capa_udp/datos)


envio el paquete generado por scapy y no pasa nada, netcat al parecer no lo toma en cuenta, ya que he revizado el paquete con 'ngrep' y envia los datos correctamente, tambien he echo la prueba con 2 netcat uno a la escucha y el otro conectandose, y resulta que antes de entablar una conexion el cliente envia 5 paquetes con el caracter 'X' y luego aparece conectado, entonces intente emular esta accion con scapy y aun asi no pasa nada.

alguien tiene alguna idea de lo que podria ser??
firma retirada por insultar/cachondearse de (anelkaos) del staff.

soyloqbuskas

¡Buenas ameise_1987!

Creo que tu problema esta en esta linea:
Citarsend(capa_ip/capa_udp/datos)

Por lo que he leido en esta web: http://crysol.org/es/node/540 la funcion send() envia paquetes de la capa de transporte, y deberias usar la funcion sendp() para enviar los datos de la capa de enlace.

Un saludo.
"Si tienes 1 manzana y yo tengo otra manzana...
y las intercambiamos, ambos seguiremos teniendo 1 manzana.
Pero...si tu tienes 1 idea y yo tengo otra idea...
y las intercambiamos, ambos tendremos 2 ideas."


George Bernard Shaw

ameise_1987

Cita de: soyloqbuskas en 22 Noviembre 2012, 23:42 PM
¡Buenas ameise_1987!

Creo que tu problema esta en esta linea:
Por lo que he leido en esta web: http://crysol.org/es/node/540 la funcion send() envia paquetes de la capa de transporte, y deberias usar la funcion sendp() para enviar los datos de la capa de enlace.

Un saludo.

gracias por la respuesta y por el tutorial, pero al parece no es es el problema, ya que estoy trabajando con la capa 3 y 4 de modelo osi , red y transporte respectivamente, por ende no necesito la capa de enlace que en realidad la genera scapy :p , quizas exista una proteccion en el kernel que me impida inyectar trafico, desconozco completamente si es asi.

tengo la version 3.4.9 del kernel(como han avanzado  ;-)  ;-)  ;-) ), nose si exista lo que dije anteriormente, de todos modos gracias :D .

firma retirada por insultar/cachondearse de (anelkaos) del staff.

Forest-Mortum

hola.
mira has lo siguiente
---------------------------------
nc -vv -u -l -p 34098  // te falto el -p  indica el puerto a abrir

//crear paquete

capa_ip=IP(dst="127.0.0.1") // no es necesario el src
capa_udp=UDP(sport=20343,dport=34098)
datos="esto es una prueba!!"
paquete=capa_ip/capa_udp/datos  // aca unes todos los paquetes con "/"
send(paquete)  // de esta forma queda mas ordenado


Saludos.

ameise_1987

gracias man, pero ese no es el problema creo que hay otras cosas que debemos tomar en cuenta como el IPID y además que el netcat si te fijas con tcpdump, genera mal el checksum, por lo menos eso pasa en el "nc.traditional", y quizás que otras cosillas mas debemos tomar en cuenta.
firma retirada por insultar/cachondearse de (anelkaos) del staff.