Inicio > Uncategorized > scripts perl …

scripts perl …

Hola tiempo sin escribir en el blog, hoy les traigo unos pequeños scripts que hice en perl, hace ratico empecé la certificación de oscp y estos son unos ejercicios que pedían realizar, bueno no soy el mas hábil al programar me considero pésimo,  aunque los scripts son algo sencillos quiero compartirlos con ustedes.

El primer ejercicio consistía en extraer todas las url de una web especifica en este caso la de entorno de pruebas,  primero teníamos que descargar index de la pagina web dicha existen formas muy sencillas de hacerlo como solamente aplicando el comando ‘wget’ + la dirección web del sitio a descargar pero como la idea era hacerlo con un lenguaje de scripting mi solución en perl fue la siguiente.

shellfity@shellfity:~/taller$ cat solucion1.pl
#!/usr/bin/perl

use strict;
use Data::Dumper;
use warnings;
use LWP::Simple;

my $url = ‘http://www.offsec.com/pwbonline/icq.html’;

my $rsd = get($url);

open(ARCHIVO,”>icq.txt”);

print ARCHIVO Dumper($rsd);
close ARCHIVO;

El segundo es un poquito mas complejo y consistía en utilizar expresiones regulares para filtrar la información que tenia el archivo descargado y solo mostrar las URL que se encuentran en el archivo descargado anteriormente,  de la misma forma que el anterior utilice perl para hacerlo XD.

#!/usr/bin/perl

use 5.006;
use strict;
use warnings;
#Creo una variable con un string a buscar
my $link = ‘href’;
my $icq = ‘icq.com’;


#abro el archivo
open (ARCHIVO, ‘icq.txt’);
#Leo el archivo y le doy el valor $url a cada linea que lee
while ( my $url = <ARCHIVO>)
{

#Busco si la palabra se encuentra en la variable
if($url =~ /$link/i){

#creo un array con el resultado y lo separo por “/”
@_ split( “/”, $url);
#luego busco en la posición 2 del array si se encuentra el string icq.com y si esta #imprimo los resultados
if ($_[2] =~ /$icq/){
print “$_[2]\n”;
}

}

Con este script logramos filtrar y obtener todas las url que se encuentran en el archivo  aunque nos trae url que se encuentra repetidas,  pero para organizar este problema podemos recurrir a nuestro amigo sort.

y de esta manera tener el resultado deseado 🙂

shellfity@debian:~/taller$ perl solucion.pl | sort -u
blogs.icq.com
chat.icq.com
c.icq.com
company.icq.com
download.icq.com
gallery.icq.com
games.icq.com
greetings.icq.com
groups.icq.com
people.icq.com
search.icq.com
http://www.icq.com

Pero pues aunque esta no es la única forma de realizar esta tarea igualmente con awk también podemos realiza esta labor, lo siguiente era coger las url y hacer resolver las ips de los dominios obtenidos .

#!/usr/bin/perl
use warnings;
use strict;
use Net::DNS::Nslookup;

open(URL, ‘urls.txt’);
my @ips =<URL> ;

foreach (@ips) {
my $dns = Net::DNS::Nslookup->get_ips($_);
@_ = split( “,”, $dns);
print “$_[1]\n”;
}

shellfity@debian:~/taller$ perl resuldns.pl

178.237.23.237

178.237.23.237

178.237.25.84

205.188.27.190

178.237.23.237

178.237.23.237

178.237.23.237

178.237.23.237

178.237.23.237

178.237.23.237

178.237.23.236

178.237.23.237

Anuncios
Categorías:Uncategorized
  1. Aún no hay comentarios.
  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: