injectar paquete tcp en puerto utilizado por un proceso

Iniciado por urcamana, 8 Mayo 2012, 06:02 AM

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

urcamana

Hola, soy nuevo... Es mi primer pregunta espero que puedan ayudarme:
Estoy intentando mandar un paquete de datos por un puerto TCP (66378) con el "vsniffer portable" y este puerto esta siendo utilizado por un proceso en mi pc, pero no deberia cerrarlo, lo necesito en ejecucion... tampoco es la solucion cambiar el puerto a ninguno de los 2 programas (ni el vsniffer ni el otro proceso).
Mi idea es algo como una especie de injeccion de datos en ese puerto sin cerrar el proceso... ¿es posible? ¿se puede utilizar el mismo puerto para los 2 procesos simultaneamente? ¿o hay alguna forma?
por las dudas si no me explique bien:
un proceso en mi pc envia y recibe paquetes TCP con su servidor (y por lo que veo los paquetes no estan cifrados ya que puedo leer los caractereas ASCI con claridad y es algo legible) lo que me gustaria es mandar datos con el vsniffer haciendome pasar por este proceso. Siempre utilizando el puerto TCP (66378) en los 2 programas simultaneamente... ¿ALGUNA IDEA? estuve leyendo y averiguando mucho y no me salio nada hasta ahora
Desde ya muchas gracias!

adastra

Si, envialo utilizando Scapy.

>>>ans, unans=sr(IP(src="direccion-origen", dst="direccion-destino")/TCP(dport=<puerto-destino>, sport=66378));
>>>ans.show();

Con las lineas anteriores desde el interprete de Scapy, podras enviar tu paquete utilizando el puerto 66378 como origen, en realidad puedes especificar cualquier puerto, aunque dicho puerto este siendo utilizado en tu máquina local, el paquete es enviado por Scapy y el destinatario lo va a recibir con los campos que le incluyas.

Breixo

También puedes utilizar esta herramienta, es estilo scapy pero con interfaz gráfica. http://xonet.sourceforge.net/

adastra

Cita de: Breixo en  8 Mayo 2012, 15:04 PM
También puedes utilizar esta herramienta, es estilo scapy pero con interfaz gráfica. http://xonet.sourceforge.net/
Si, tambien es otra muy buena opción.

urcamana

MUCHISIMAS GRACIAS BREIXO Y ADASTRA POR SU RESPUESTA... VOY A VER QUE PASA... EN REALIDAD TENGO WINDOWS Y NECESITO HACERLO DESDE WINDOWS, Y ESOS PROGRAMAS SON DE LINUX PERO VEMOS QUE PASA... SI RESUELVO LES AVISO XD

urcamana

no encontre forma de usar esos programas en windows... intente con "scapy" con "xonet" en windows usando estos programas "OPENLINA" y "ANDLINUX" no tuve ningun resultado al momento de mandar el paquete, no los manda...

Si alguien conoce un programa parecido al SCAPY o XONET pero que sean para windows (32 o 64 bits, no hay problema) como por ejemplo VSNIFER,  SMSNIFF, NSNIFER, WIRESHARK o ETHEREAL por favor que me diga! desde ya muchas gracias a todos!

Breixo

Quizás puedas con hping http://www.hping.org/, nunca lo he usado pero me suena que son las librerías que utiliza nmap para crear los paquetes.

adastra

Tienes Python para windows. Seguro que funciona con scapy.

toxeek

Hmm..

y que pasa con los sequence numbers?! No viene mal leer algo sobre como TCP maneja el flow de datos ! si TCP ve un paquete que no pertenece a la conexion actual lo descartara?

"La envidia es una declaración de inferioridad"
Napoleón.

adastra

Cita de: TRICKY en 10 Mayo 2012, 13:57 PM
Hmm..

y que pasa con los sequence numbers?! No viene mal leer algo sobre como TCP maneja el flow de datos ! si TCP ve un paquete que no pertenece a la conexion actual lo descartara?


En el caso de que en una misma sesión entre un emisor y un destinatario, el emisor reciba un paquete cuyo sequence number no corresponde con el esperado, el destinatario responderá con un paquete RST (reset). Los sequence numbers existen para ayudar a "garantizar" la integridad, la consistencia y sobre todo el orden de los paquetes intercambiados en una sesión determinada (ademas de ser vitales cuando se utiliza fragmentación de paquetes) , en este caso concreto no se habla de inyectar paquetes en una sesión existe, sino de crear una nueva, solamente que desde el emisor se utiliza el mismo sport, pero en el modelo de referencia TCP, se identifican como dos sesiones distintas.
Si, tienes razón, no viene mal leer sobre como funciona TCP/IP.  :laugh: :laugh: :laugh: