Port Scanner con Perl
Leyendo el sitio http://www.gnucitizen.org/blog/agile-hacking-a-homegrown-telnet-based-portscanner me encontre con un script realizado en perl el cual tiene objetivo mediante el uso del modulo "IO::Socket::INET" realizar un scan de ports tcp de una direccion ip.
El resultado del mismo es muy elemental pero nos pueden sacar de muchos apuros.
use IO::Socket;
my ($target,$remote,$results,$port,@ports);
unless (@ARGV> 0) { die "usage: $0 [ip]" }
$target = shift(@ARGV);
for ($port = 0; $port<65536; $port++)
{
$remote = IO::Socket::INET->new(
Proto => "tcp",
PeerAddr => $target,
PeerPort => $port,
);
if ($remote) {print "$port is open\n" };
}
Uso: perl script.pl ip
Tomar el output de un switch cisco con Perl
Les dejo un pequeño script el cual tiene como objetivo tomar la salida del comando "show version" de un equipo Cisco y guardarlo en un log.
use strict;
use Net::Telnet::Cisco;
use POSIX qw(strftime);
my $hora= strftime("%Y-%m-%d", localtime);
my $session = Net::Telnet::Cisco->new(Host => 1.1.1.1);
$session->login('user', 'password');
# Ejecuta el comando show version
my @output = $session->cmd('show version');
open (F,">> log-cisco.txt");
print F "---- $hora ----\n";
print F "@output";
print F "---- ----";
$session->close;
close (F);
Saludos
Buscar en google argentina usando perl
Les dejo un script el cual tiene como funcion buscar en google.com.ar el string que ingresemos.
Conocer nuestra IP Publica mediante linea de comando
Muchas veces necesitamos saber nuestra direccion IP Publica mediante la linea de comandos, siendo nosotros un "cliente".
Aca les dejo una de las soluciones:
Como encriptar y desencriptar archivos usando Perl
Les dejo 2 scripts los cuales gentilmente fueron dados por Norther de perlenespanol.baboonsoftware.com.
Script Encryptf: Tiene como funcion comprimir una carpeta utilizando TAR, luego nos genera un archivo encriptado del mismo y por ultimo nos elimina el archivo comprimido que no esta encriptado.
Script Decrypt: Con este script vamos a desencriptar el archivo que creamos con el script anterior.
Encryptf ()
my $error = 1;
my $aux = $ARGV[0];
$aux =~ s/\W//g;
my $encript = "$aux.tar";
if (-d $ARGV[0]) {
system("tar -cvvf $encript $ARGV[0]") || ($error = 0);
if($error =~ 0) {
system("gpg -ac --no-options $encript");
if($? != 0) {
system("rm $encript");
exit 1;
}
system("rm -r $ARGV[0]");
system("rm -r $encript");
} else {
print "Se ha abortado debido a un error.\n";
}
} else {
print "No es una carpeta!!!\n";
}
Decryptf ()
Envio de Mail con Python
Les dejo un script el cual tiene como funcion el envio de un correo electronico utilizando python.
import smtplib
de = 'direccion@origen.com'
to = 'direccion@destino.com'
men = 'Mensaje a enviar en modo texto'
server = smtplib.SMTP('localhost')
server.set_debuglevel(0)
server.sendmail(de, to, men)
server.quit()
Gracias 'calvin' por el script =D
Comprobar Hash MD5 con perl
Con este script vamos a poder introducir por consola el nombre de un archivo y como resultado vamos obtener el HASH del mismo.
root@tux2:/tmp# perl md5.pl /etc/passwd
b5066f11ad12b18949eec843634ae9fe /etc/passwd
root@tux2:/tmp# perl md5.pl
Uso: md5.pl archivo
archivo: /etc/passwd por ejemplo
Script para cifrar archivos usando gnupg
Les dejo un script el cual tiene como funcion cifrar todos los archivos de un directorio, incluyendo los que esta alojando en subdirectorios.
Cabe aclarar que esta realizado para plataformas Windows y para que funcione debemos tener instalada la aplicación GnuPG.
GnuPg -> http://www.gnupg.org/(es)/index.html
El script pertenece al usuario Gasfed. =D
#
# GasFed Nov 2006
my $gpg='C:\Program Files\GNU\GnuPG\gpg.exe';
########### you probably don't need to edit below this line. ###########
use Cwd;
use Getopt::Std;
if ( $#ARGV <1 ) {
print "\nUso: perl $0 DirOrigen DirDestino\n\n";
print " DirOrigen Directorio donde se encuentran las archivos a ser encriptados\n";
print " DirDestino Directorio donde se guardaran los arrchivos encriptados\n";
exit();
}
my $src=$ARGV[0];
my $dst=$ARGV[1];
if ( -x $gpg ) {
print "\nEncriptando..\n";
print "Por favor espere, esto puede tardar unos minutos..\n";
$home=getcwd;
&encript($src, $dst);
chdir($home);
print "\nDone!\n\n";
}
sub encript ()
{
my $src = shift;
my $dst = shift;
(-d $src) or die "No puedo abrir el directorio $src\n";
(-d $dst) or mkdir($dst) or die "No puedo abrir el directorio $dst\n";
$base = getcwd;
chdir("$dst");
$dst=getcwd;
chdir("$base");
opendir( DIR, "$src" );
@contents = readdir(DIR);
closedir(DIR);
chdir("$src");
$src = getcwd;
$src =~ s/\//\\/g;
$dst =~ s/\//\\/g;
# No hidden files and ".." directories:
@contents = grep {!/^\./} @contents;
# Get directories:
my @dirs = grep {-d} @contents;
# Get files:
my @files = grep {-f} @contents;
# Get images:
if (@dirs==0 and @files==0)
{
rmdir($dst);
} else {
foreach my $f (sort(@files)) {
$ejecutar=("\"$gpg\" --yes --output \"$dst\\$f.gpg\" --recipient seguridad --encrypt \"$src\\$f\"");
$status=system($ejecutar);
if ($status != 0) { print "$ejecutar\n"; }
}
foreach my $d (sort(@dirs)) {
&encript("$src\\$d", "$dst\\$d");
}
}
}
Tengamos en cuenta que el script usa nuestra clave privada para realizar el procedimiento de cifrado.
Les dejo un link donde van a encontrar el manual de la aplicación:
http://webber.dewinter.com/gnupg_howto/spanish/index.html
Envio de mail con archivo adjunto usando Perl
Este script tiene como objetivo el envío de mails con archivos adjuntos.
use MIME::Lite;
# Envío de correo
$msg = MIME::Lite->new(
From =>'micuenta@dominio.com.ar',
To =>'lacuentadel@destinario.com.ar',
Subject =>'Test',
Type =>'multipart/mixed'
);
$msg->attach(
Type =>'TEXT',
Data =>"Cuerpo del mensaje"
);
$msg->attach(
Type =>'text/html',
Path =>'prueba.txt',
Filename =>'nuevo_nombre_de_prueba.txt',
Disposition => 'attachment'
);
$msg->send('smtp', 'servidor');
Como hacer PING usando Perl
Les dejo un script el cual nos sirve para hacer un ping a un host y comprobar si este responde.
use Net::Ping;
$servidor = "127.0.0.1";
$p = Net::Ping->new();
print "$El servidor responde.\n" if $p->ping($servidor);
$p->close();
Gracias nuevamente al foro de perl por su ayuda.








