[Perl] Emails Extractor 0.2

  • 3 Respuestas
  • 5804 Vistas

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

Desconectado BigBear

  • *
  • Underc0der
  • Mensajes: 543
  • Actividad:
    0%
  • Reputación 3
    • Ver Perfil

[Perl] Emails Extractor 0.2

  • en: Diciembre 27, 2013, 11:35:38 am
Un simple script en Perl para buscar direcciones de correo en :

  • Un archivo de texto cualquiera
  • Una pagina
  • Usando un dork en google para scanear todas las paginas encontradas con el dork
  • Lo mismo que el anterior pero en bing


El codigo.

Código: (perl) You are not allowed to view links. Register or Login
#!usr/bin/perl
#Email Extractor 0.2
#(C) Doddy Hackman 2013
#Credits : Regex based on
#http://stackoverflow.com/questions/15710275/print-email-addresses-to-a-file-in-perl
#Thanks to motherconfessor & amon

use LWP::UserAgent;
use URI::Escape;

my $nave = LWP::UserAgent->new;
$nave->agent(
"Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.12) Gecko/20080201Firefox/2.0.0.12"
);
$nave->timeout(10);

my $buscador = qr/[A-Z0-9._%+-]+\@[A-Z0-9.-]+\.[A-Z]{2,4}/i
  ;    # Thanks to motherconfessor & amon
my @emails;

head();

if ( $ARGV[0] eq "-file" ) {

    print "\n[+] Opening file ...\n";

    if ( -f $ARGV[1] ) {

        my $code = openfile( $ARGV[1] );

        while ( $code =~ /($buscador)/g ) {
            my $email = $1;
            push( @emails, $email );
        }

        my @emails = repes(@emails);

        print "\n[+] Mails Found : " . int(@emails) . "\n";

        for (@emails) {
            savefile( $ARGV[2], $_ );
        }

    }
    else {
        print "\n[-] File not found\n";
    }

}
elsif ( $ARGV[0] eq "-google" ) {

    print "\n[+] Searching in Google ...\n";

    my @links = google( $ARGV[1], $ARGV[2] );

    print "[+] Scanning [" . int(@links) . "] pages ...\n";

    for my $ink (@links) {
        my $code = toma($ink);

        while ( $code =~ /($buscador)/g ) {
            my $email = $1;
            push( @emails, $email );
        }

    }

    my @emails = repes(@emails);

    print "\n[+] Mails Found : " . int(@emails) . "\n";

    for (@emails) {
        savefile( $ARGV[2], $_ );
    }

}
elsif ( $ARGV[0] eq "-bing" ) {

    print "\n[+] Searching in Bing ...\n";

    my @links = bing( $ARGV[1], $ARGV[2] );

    print "[+] Scanning [" . int(@links) . "] pages ...\n";

    for my $ink (@links) {
        my $code = toma($ink);

        while ( $code =~ /($buscador)/g ) {
            my $email = $1;
            push( @emails, $email );
        }

    }

    my @emails = repes(@emails);

    print "\n[+] Mails Found : " . int(@emails) . "\n";

    for (@emails) {
        savefile( $ARGV[3], $_ );
    }

}
elsif ( $ARGV[0] eq "-page" ) {

    my $code = toma( $ARGV[1] );

    print "\n[+] Loading page ...\n";

    while ( $code =~ /($buscador)/g ) {
        my $email = $1;
        push( @emails, $email );
    }

    my @emails = repes(@emails);

    print "\n[+] Mails Found : " . int(@emails) . "\n";

    for (@emails) {
        savefile( $ARGV[2], $_ );
    }

}
else {
    sintax();
}

copyright();

# Functions

sub bing {

    my ( $a, $b ) = @_;
    for ( $pages = 10 ; $pages <= $b ; $pages = $pages + 10 ) {
        my $code =
          toma( "http://www.bing.com/search?q=" . $a . "&first=" . $pages );

        while ( $code =~ /<h3><a href="(.*?)"/mig ) {
            push( @founds, $1 );
        }
    }
    my @founds = repes( cortar(@founds) );
    return @founds;
}

sub google {
    my ( $a, $b ) = @_;
    my @founds;
    for ( $pages = 10 ; $pages <= $b ; $pages = $pages + 10 ) {
        $code = toma(
            "http://www.google.com.ar/search?hl=&q=" . $a . "&start=$pages" );
        while ( $code =~ /(?<="r"><. href=")(.+?)"/mig ) {
            my $url = $1;
            if ( $url =~ /\/url\?q\=(.*?)\&amp\;/ ) {
                push( @founds, uri_unescape($1) );
            }
        }
    }
    my @founds = repes( cortar(@founds) );
    return @founds;
}

sub cortar {
    my @nuevo;
    for (@_) {
        if ( $_ =~ /=/ ) {
            @tengo = split( "=", $_ );
            push( @nuevo, @tengo[0] . "=" );
        }
        else {
            push( @nuevo, $_ );
        }
    }
    return @nuevo;
}

sub toma {
    return $nave->get( $_[0] )->content;
}

sub savefile {

    if ( $_[0] eq "" ) {
        open( SAVE, ">>logs.txt" );
    }
    else {
        open( SAVE, ">>" . $_[0] );
    }

    print SAVE $_[1] . "\n";
    close SAVE;
}

sub openfile {
    open my $FILE, q[<], $_[0];
    my $word = join q[], <$FILE>;
    close $FILE;
    return $word;
}

sub repes {
    my @limpio;
    foreach $test (@_) {
        push @limpio, $test unless $repe{$test}++;
    }
    return @limpio;
}

sub sintax {
    print "\n[+] Sintax : $0 <options> <logs>\n";
    print "\n[+] Examples : \n\n";
    print "[+] $0 -file test.txt logs.txt\n";
    print "[+] $0 -google 50 mailist logs.txt\n";
    print "[+] $0 -bing 50 mailist logs.txt\n";
    print "[+] $0 -page http://localhost/index.php logs.txt\n";
}

sub head {
    print "\n-- == Email Extractor 0.2 == --\n";
}

sub copyright {
    print "\n-- == (C) Doddy Hackman 2013 == --\n\n";
    exit(1);
}

#The End ?

Mostraria un ejemplo de uso pero puedo tener problemas cuando el script devuelve como 500 mails ajenos claramente para spam xD.

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5754
  • Actividad:
    100%
  • Country: ar
  • Reputación 42
  • ANTRAX
  • Twitter: @Underc0de
    • Ver Perfil
    • Underc0de
    • Email

Re:[Perl] Emails Extractor 0.2

  • en: Diciembre 27, 2013, 11:40:09 am
jojojo! Que buena tool Doddy!
Felicitaciones! Vere si la pruebo en estos dias


Desconectado mayer

  • *
  • Underc0der
  • Mensajes: 1
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email

Re:[Perl] Emails Extractor 0.2

  • en: Marzo 17, 2015, 12:22:54 pm
nice too see this sadsadadwdadw

Desconectado AstroLels

  • *
  • Underc0der
  • Mensajes: 1
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email

Re:[Perl] Emails Extractor 0.2

  • en: Abril 07, 2015, 10:17:33 pm
Grand magnum


You are not allowed to view links. Register or Login Advice

You are not allowed to view links. Register or Login Funny

You are not allowed to view links. Register or Login Tech News