Wikipeando

Port Scanner con Perl

Posteado en Programacion, Seguridad, Perl por situ el 13 de May de 2008

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 strict;
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

Posteado en Programacion, Perl por situ el 19 de April de 2008

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.

#!/usr/bin/perl
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

Posteado en Programacion, Perl por situ el 16 de April de 2008

Les dejo un script el cual tiene como funcion buscar en google.com.ar el string que ingresemos.

googlewiki.png

Conocer nuestra IP Publica mediante linea de comando

Posteado en Programacion, Linux por situ el 11 de April de 2008

Muchas veces necesitamos saber nuestra direccion IP Publica mediante la linea de comandos, siendo nosotros un "cliente".

Aca les dejo una de las soluciones:

# lynx -dump www.whatismyip.com | grep 'Your IP Address Is' | awk '{print $5}'

Como encriptar y desencriptar archivos usando Perl

Posteado en Programacion, Perl por situ el 5 de December de 2007

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 ()

#!/usr/bin/perl

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 ()

#!/usr/bin/perl

my $fix = $ARGV[0];

$fix =~ s/\W.+/.tar/g;

if($ARGV[0] =~ /tar/ && $ARGV[0] =~ /asc/) {
        system("gpg --no-options $ARGV[0]");
       
        if($? != 0) {   
                exit 1;
        }
       
        system("tar -xvvf $fix");
        system("rm $fix");
        system("rm -r $ARGV[0]");
       
} else {
        print "No es una carpeta encriptada valida.\n";
}

Envio de Mail con Python

Posteado en Programacion, Python por situ el 21 de November de 2007

Les dejo un script el cual tiene como funcion el envio de un correo electronico utilizando python.

#!/usr/local/bin/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

Posteado en Programacion, Seguridad, Perl por situ el 6 de November de 2007

Con este script vamos a poder introducir por consola el nombre de un archivo y como resultado vamos obtener el HASH del mismo.

#!/usr/bin/perl
use Digest::MD5;
@ARGV or die "Uso: $0 archivo\narchivo: /etc/passwd por ejemplo\n";
my $file = $ARGV;
my $file= shift;
open(FILE, $file) or die "no se encuentra el archivo '$file': $!";
binmode(FILE);
print Digest::MD5->new->addfile(*FILE)->hexdigest, " $file\n";

Ej:
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

Posteado en Programacion, Seguridad, Perl por situ el 25 de October de 2007

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

#!/usr/bin/perl -w

#
# 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

Posteado en Programacion, Perl por situ el 25 de October de 2007

Este script tiene como objetivo el envío de mails con archivos adjuntos.

#!/usr/bin/perl

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

Posteado en Programacion, Perl por situ el 24 de October de 2007

Les dejo un script el cual nos sirve para hacer un ping a un host y comprobar si este responde.

#!/usr/bin/perl

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.

Next Page »