#!/bin/perl use IO::Socket; print("==============================================================\n"); print(" Mail Relay Tester v1.2 por Hugo Martín [www.hackcraft.com] \n"); print("==============================================================\n"); print("Ejecuta: \"perldoc $0\" para más información\n\n"); $victima=$ARGV[0]; $from=$ARGV[1]; $to=$ARGV[2]; $num=$ARGV[3]; if ($ARGV[0] eq "") { print("¿Entrar en modo interactivo? [s/n]: "); $interactive=; chop($interactive); if ($interactive ne "s") { die ("Uso : $0 serverIP from\@mail-falso.com destino\@mail.com NúmeroDeMails\nEjm : $0 200.52.45.3 webmaster\@nasa.org usuario\@hotmail.com 10\n"); } else { print("Servidor : "); $victima=; chop($victima); print("Mensaje de : "); $from=; chop($from); while ($from !~ /@/) { print("\tDirección no válida.\n\tIngrese un remitente válido [user\@mail.com] : "); $from=; chop($from); } print("Para : "); $to=; chop($to); print("¿Cuántos mails? : "); $num=; chop($num); } } print("\n\n\t MAIL RELAY test ..\n\n"); print("\n--------------------------------------------------------\n"); print("\n Conectando con el Servidor [ $victima ] : 25 \n "); print("\n--------------------------------------------------------\n"); for ($count=1; $count <= $num; $count++) { my $sock=IO::Socket::INET->new("$victima:25") or die "IO:Socket:$@"; print $sock "EHLO HACKCRAFT\n"; print $sock "MAIL FROM:<$from>\n"; print $sock "RCPT TO:<$to>\n"; print $sock "DATA\n"; print $sock "Subject: Test #$count\n"; print $sock "Este es el mensaje de prueba número $count\n"; print $sock ".\n"; print $sock "quit\n"; sleep(2); close($sock) || die "close: $!"; print(" ... Enviado Mensaje de prueba #$count\n"); } print("\nPrueba de RELAY terminada. \n"); $~ = "REPORT"; write; format REPORT = @>>> Mensajes fueron enviados con este formato : $num +-----------------------------------------------------¬ | Mensaje de: @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< | $from | Para: @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< | $to | Título: Test # n | +-----------------------------------------------------+ | | | Mensaje: | | | | Este es el mensaje de prueba número n. | | | +-----------------------------------------------------+ . # DOCUMENTATION =head1 NOMBRE relay.pl - Permite conectarse al servidor especificado para hacer pruebas de "mail relay". =head1 SINOPSIS Simplemente usa perl para correr este script y especifica el servidor en el que quieres hacer las puebas, el correo del remitente falso, el correo del usuario al que le llegarán los mensajes y la cantidad de mails que le vas a enviar : $ perl relay.pl 200.36.13.13 mail-falso@mail.com mail@hotmail.com 10 $ perl relay.pl =head1 DESCRIPCION Este script se conecta al servidor especificado para realizar pruebas de envio de mensajes anónimos (mail relay). Si el servidor no es especificado el Script preguntará para entrar al modo interactivo. =head2 Uso Normal $ ./relay.pl =head1 OPCIONES Todas las opciones son preguntadas en el modo interactivo. =head1 BUGS El Script asume que los parámetros ingresados "fuera del modo interactivo" son correctos. Si ingresas una dirección de correo sin "@" el Script no te avisará. Si tienen problemas con esto háganmelo saber y le añadiré una revisión (aunque me parece totalmente innecesaria). =head2 Reportando Fallas (Bugs) Versiones nuevas de este Script pueden ser descargadas de: http://www.hackcraft.com/ Si el bug está en la versión más reciente, envía un reporte al autor. Parches que arreglen problemas o agreguen nuevas características son bienvenidos. =head1 VER TAMBIEN perl(1) http://www.hackcraft.com http://www.perl.com =head1 AUTOR Hugo Martín, hugomartin@hackcraft.com =head1 COPYRIGHT Copyright (c) 2003, Hugo Martín. This script is NOT free software; you can redistribute it without modifying it. If you do so, please inform me. Just want to know who changes my code :) Copyright (c) 2003, Hugo Martín. Este Script NO es software libre; puedes distribuirlo sin modificarlo. Si lo modificas, por favor infórmame. Sólo quiero saber quien cambia mi código :) =head1 VERSION $Id: relay.pl,v 1.2 2003/01/16 23:51:07 mk Exp $ =cut