Hola. El tema tratará sobre el envío de paquetes de red, como dice el título.
Estuve filtrando los paquetes que recibo cuando navego y veo que la mayoría no se puede leer. Esto hablando concretamente en los protocolos UDP y TCP (por ahora centrarnos en ellos).
Un ejemplo en TCP es:
Claramente no se puede leer.
Hace un tiempo leí sobre que cada paquete que se envía desde una red debe llevar información acerca del emisor, tales como IP... Pero viendo estos paquetes, no se ve esa información, eso hace plantearme la pregunta: ese código que no se puede leer (hay veces que casi todo se lee como texto plano, a excepción del inicio) es donde va la información del emisor?
En ese caso, como se puede modificar? Osea, manejar a antojo el paquete completo, así hacer IP Spoofing (que si no me equivoco es la falsificación de la IP emisora).
TCP por su lado necesita una conexión, ahí es donde va la IP "solamente"?
UDP debería llevar la IP en todos los paquetes, imagino.
Las pruebas que hice fueron con PHP enviando paquetes TCP y UDP (la mayoría de las veces aparecía en texto plano casi todo el mensaje enviado).
El analizador de paquetes que usé fue Wireshark.
Estuve filtrando los paquetes que recibo cuando navego y veo que la mayoría no se puede leer. Esto hablando concretamente en los protocolos UDP y TCP (por ahora centrarnos en ellos).
Un ejemplo en TCP es:
CitarSu contenido podría ser:
No. Time Source Destination Protocol Length Info
5012 8.161307105 x y TCP 66 x → y [ACK] Seq=1 Ack=1 Win=x Len=0 TSval=y TSecr$
Frame 1084: 66 bytes on wire (528 bits), 66 bytes captured (528 bits) on interface 0
Ethernet II, Src: x, Dst: y
Internet Protocol Version 4, Src: x, Dst: y
Transmission Control Protocol, Src Port: x (x), Dst Port: y (y), Seq: 1, Ack: 1, Len: 0
Citar
0000 16 3f 00 20 03 00 00 00 3f 96 69 63 c7 7a 6c d3 .?. ....?.ic.zl.
0010 13 38 42 cd e5 b4 41 bb a3 19 5a 87 15 63 9c ae .8B...A...Z..c..
0020 c9 0c 4d 74 49 39 9e b3 d0 fc e1 c9 91 bb 41 92 ..MtI9........A.
0030 12 4a c2 5b 96 53 da d9 31 0d 67 a5 f4 6e c9 91 .J.[.S..1.g..n..
0040 01 b6 50 b9 55 03 b0 14 64 4d 7d bd 99 f8 5b 15 ..P.U...dM}...[.
0050 f7 90 75 35 fc e0 9c 27 fe ce 27 dc ce 2a e5 9f ..u5...'..'..*..
0060 1c 66 44 a5 e0 d9 16 31 fa 03 b2 64 4a f9 5a f1 .fD....1...dJ.Z.
0070 49 96 56 8a 0d 35 cf 6d a8 f6 39 49 24 06 ac 42 I.V..5.m..9I$..B
0080 f4 bb d8 b4 86 7f 1b 36 ec 28 52 3e 8d ef 11 db .......6.(R>....
0090 25 fe b8 24 e1 71 5d ba 5e 1d 03 08 e8 25 30 8d %..$.q].^....%0.
00a0 86 c2 0d 58 8e fe 38 49 9d 26 15 94 96 e6 d6 a0 ...X..8I.&......
00b0 5d 2d 21 58 1a 7c 4f fc 6c ff 8f 8c 3f 15 84 a7 ]-!X.|O.l...?...
00c0 dd 54 15 70 a3 3e 00 0c cf c1 2f 99 23 6e 93 20 .T.p.>..../.#n.
00d0 5b 01 ef 78 57 ff 54 10 22 3b 4c a0 a8 67 24 72 [..xW.T.";L..g$r
00e0 86 b7 e4 50 2d 13 3f c8 00 17 39 bc 30 70 65 60 ...P-.?...9.0pe`
00f0 cc 7c 1d 87 10 21 27 a3 b2 c1 c8 7d 60 ac ba 5b .|...!'....}`..[
0100 95 ce 9a 02 a1 8b b6 0b 6d 6a 39 22 b6 9f 5b c1 ........mj9"..[.
Claramente no se puede leer.
Hace un tiempo leí sobre que cada paquete que se envía desde una red debe llevar información acerca del emisor, tales como IP... Pero viendo estos paquetes, no se ve esa información, eso hace plantearme la pregunta: ese código que no se puede leer (hay veces que casi todo se lee como texto plano, a excepción del inicio) es donde va la información del emisor?
En ese caso, como se puede modificar? Osea, manejar a antojo el paquete completo, así hacer IP Spoofing (que si no me equivoco es la falsificación de la IP emisora).
TCP por su lado necesita una conexión, ahí es donde va la IP "solamente"?
UDP debería llevar la IP en todos los paquetes, imagino.
Las pruebas que hice fueron con PHP enviando paquetes TCP y UDP (la mayoría de las veces aparecía en texto plano casi todo el mensaje enviado).
El analizador de paquetes que usé fue Wireshark.
Código (php) [Seleccionar]
#!/usr/bin/php
<?php
## Cliente
##
##
$ip = '';
$port = 1000;
$buf = 'Paquete recibido sin problemas.';
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or die("Conexión erronea. La aplicación se cerrará.\n");
if(!@socket_connect($sock, $ip, $port)) exit("Conexión erronea. La aplicación se cerrará.\n");
else print "Conexión realizada correctamente. Termina con Ctrl + C.\n";
if(socket_write($sock, $buf, strlen($buf))) print "Mensaje recibido correctamente por $ip:$port.\n";
else print "El mensaje no se recibió.\n";
socket_close($sock);
exit("Cerrando la aplicación.\n");
?>