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??
¡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 (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.
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 (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 .
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.
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.