comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[TUTO] UDP/IP Spoofing con PERL

  • 0 Respuestas
  • 1732 Vistas

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

Desconectado mr.blood

  • *
  • Underc0der
  • Mensajes: 73
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
  • Skype: red_ink@hotmail.es
« en: Mayo 13, 2013, 07:41:46 pm »
De mr.blood para anonymousfree.com.ar



Hoy tratamos el tema de IP Spoofing sobre el protocolo UDP, pues es mas facil (no tiene comprobaciones) y el concepto es el mismo.

Primero, que es Spoofear una IP:
 Es enviar datos con una IP falsa. Problemas que plantea, no recibiremos la respuesta del servidor, por lo que no es valido para mantener una comunicacion, solo nos puede servir para enviar un paquete "anonimo".
Montaremos un pequeño servidor en Perl que solo nos muestre la IP y los datos.

Codigo servidor.
Código: Perl
  1. #!/usr/bin/perl
  2.  
  3. use IO::Socket::INET;
  4.  
  5. my ($socket, $datos);
  6. $socket = new IO::Socket::INET(LocalPort=>5000, Proto=>"udp");
  7. while(1)
  8. {
  9.         $socket->recv($datos, 1024);
  10.         print $socket->peerhost()." $datos";
  11. }
  12. $socket->close();

 Bien, lo que tenemos que hacer para Spoofear una IP es crear la cabecera IP (y la UDP) cambiando el campo que contiene nuestra IP por la que queramos. Es facil de entender pero programar el cliente me rompio la cabeza
Como no queremos liarnos mas de lo necesario dejamos los checksum a 0.

Codigo cliente.
Código: Perl
  1. #!/usr/bin/perl
  2. use Socket;
  3. use strict;
  4.  
  5. #~ Datos
  6. my $data        =       "Hi!\n";
  7. #~ UDP Header
  8. my %udp         =       (sport=>(rand(3000)+5001), dport=>5000, len=>8+length($data), checksum=>0);
  9. #~ IP Header
  10. my %ip          =       (version=>4, IHL=>"45", ToS=>0, TL=>0, ID=>rand(20000), flags=>"010", FO=>"0"x13, TTL=>64,
  11.                                 Proto=>17, checksum=>0, saddr=>(gethostbyname("111.111.111.111"))[4],
  12.                                 daddr=>(gethostbyname("127.0.0.1"))[4]);
  13.  
  14. #~ Esto es cosa del protocolo IP, los flags y FO van "juntos"
  15. my $ip_flags_FO=$ip{flags}.$ip{FO};
  16.  
  17. #~ Preparamos el paquete
  18. my $paquete=pack("H2H2nnB16C2na4a4", $ip{IHL}, $ip{ToS}, $ip{TL}, $ip{ID},
  19.                         $ip_flags_FO, $ip{TTL}, $ip{Proto},
  20.                         $ip{checksum}, $ip{saddr},      $ip{daddr}).pack("nnnn",$udp{sport},
  21.                         $udp{dport}, $udp{len}, $udp{checksum}).pack("a*", $data);
  22.  
  23. #~ Creamos el descriptor en SOCK del tipo SOCK_RAW
  24. socket(SOCK, AF_INET, SOCK_RAW, 255);
  25. #~ Para que la funcion send sepa donde enviarlo
  26. my $destino = pack('Sna4x8', AF_INET, $udp{dport}, $ip{daddr});
  27. send(SOCK,$paquete,0,$destino);

Fuentes:
http://rhosted.blogspot.com.es/2009/08/creating-udp-packetip-spoofing-through.html (Me apoye para los pack)
http://www.ietf.org/rfc/rfc791.txt (Me apoye para los pack tambien)
Propia (Horas mirando con Wireshark)
http://perldoc.perl.org/functions/pack.html
« Última modificación: Agosto 08, 2014, 10:01:16 pm por Expermicid »

 

¿Te gustó el post? COMPARTILO!



[Uniscan] Scanner de vulnerabilidades hecho en Perl

Iniciado por Stiuvert

Respuestas: 9
Vistas: 6121
Último mensaje Agosto 21, 2012, 05:12:43 pm
por baron.power
(Descarga) Pack de Scripts en python y perl.

Iniciado por morodog

Respuestas: 0
Vistas: 1804
Último mensaje Agosto 20, 2013, 02:33:58 pm
por morodog
Shell finder [perl]

Iniciado por unkdown

Respuestas: 4
Vistas: 2172
Último mensaje Julio 05, 2015, 05:55:01 am
por unkdown
Email checker [perl]

Iniciado por unkdown

Respuestas: 2
Vistas: 2218
Último mensaje Enero 03, 2016, 08:22:36 am
por unkdown
(DNS SPOOFING) Utilizando la herramienta Social Engineering Toolkit

Iniciado por OswireW0rding

Respuestas: 10
Vistas: 6530
Último mensaje Febrero 19, 2016, 02:47:09 pm
por puntoCL