Bueno.. Muchas veces cuando auditamos una Web, en Busca de Vulnerabilidades, buscamos Solamente en la Web en Cuestion, Pero No nos damos cuenta que Talves La Pagina Web se encuentra en un Servidor Compartido , en Donde Existen Muchas Otras Paginas Web, las Cuales nos Pueden Ayudar a Ingresar al Servidor, Asi Si Hacemos un Reverse Dns a la Pagina Web. Podemos Busca una Web "vecina" que se encuentra en el mismo servidor y Poder Ingresar, y Luego de Estar Adentro Poder Nada Mas "Saltarnos" a la Carpeta en Donde se Encuentra la Pagina Web que Queriamos en un Principio.
Asi Las Opciones de Ingresar a Una Web se Incrementan.
#=====================================================================#
Idea Original (El Fue el Primero que me la Comento yo no Tenia idea XD')
http://www.c0debreak.net/cb/reversedns.html#======================================================================#
Al Inicio Ingresaba a la Web de Code Pero Luego Algunos Ratos ya se me hacia algo tedioso, tener q ingresar a la web y cuanta cosa, y que mejor que tenerlo en modo consola :=)
(****La Aplicacion esta basado en el Motor de http://www.seologs.com/ip-domains.html)
En Accion ¡
Al Ingresar la Url. Este visita la web de
http://www.seologs.com/ip-domains.html y Nos Entrega el Resultado, el Programa Filtra Todo el Contenido lo Ordena y Guarda el Resultado en un Archivo de Texto Llamado REVERSE-DNS.txt
Y Perfecto Tenemos Nuestro Programa Funcionando ¡En Palabras como Funciona. :=)
Se Ingresa la Url.
Chequea Si Tiene http:// o no, y si es falso, le incorpora la Direccion a la Variable $domain que tiene la Url.
Luego Chequea el Estado del Servidor, Si Responde con Codigo 200 Significa que Esta Up, y Procedemos a Hacer la peticion, y si Esta Down la Web, Este Vuelve al Menu Para Poder Probar otra Url.Creo que es Bastante bueno porque asi evitamos Procesar Url que no Existen.
Luego Hacemos la Peticion Via Post, y Guardar el Resultado (html) en un Archivo "codeurl.txt", el cual luego se pasa al array codeurl todo el contenido. asi tenemos cada linea en una variable.
$codeurl[0],$codeurl[1], y asi, cada una es una linea de la pagina html, asi es mucho mas facil procesar la informacion .
Luego Estuve Pensando como Puedo Saber el Resultado , en cuanto a las url obtenidas, como saber donde empieza y donde termina, por ende opte por la logica.
buscar en los array, donde empieza a entregar la informacion importante, y tambien buscar el final, como es un template, ya tiene un orden.
Siempre Empezaba la Informacion con :<font face="arial"><b>
y Terminaba de Entregar la Informacion con:</font> </td></tr></table>
Asi ya tenia dos parametros , el Inicio y el Final. Si calzaba en la Busqueda guardaba en una variable en que linea se encontraba, entonces luego se restaba el inicio y el final, teniendo en consecuencia el largo de la lista.
Luego de Tener esa Variable, recorria nuevamente el array pero ahora teniendo los paremetros en donde buscar, ahora tenia que filtrar el codigo html.
Esta parte siempre es algo tediosa porque hay que ir provando cada cosa hasta que se llega con el resultado deseado.
Ahora que Tengo El Codigo Limpio, Voy a ingresar el resultado "limpio" en un txt para poder procesarlo y borrar el codigo anterior, luego vuelvo a pasarlo en un array para poder tener las variables linea a linea.
Luego Nada mas Lo Ordeno Para poder Mostrar la Informacion en pantalla, se guarda en un archivo de texto el contenido, y se muestra automaticamente el resultado en la pantalla y en un archivo txt.
COMPILADO:
http://rapidshare.com/files/87764462/REVERSEDNS.rar.htmlCODIGO:
use LWP::UserAgent;
use HTTP::Request;
#Programado por OzX a las 4:57 Am 30 Enero. ZZzzzZzzZzzZzzZz XD¡
#Idea Basada en la Utilidad Online de
www.C0debreak.net Reverse Dns.
menu:
system ("cls");
system ("COLOR 02");
system ("title ReverseDns 0.1
WwW.New-Bytes.Net By OzX");
print q(
.:.
WwW.New-Bytes.net .:.
____ ____ ____ ___ _
| _ \ _____ _____ _ __ ___ ___| _ \ _ __ / ___| / _ \ / |
| |_\) / _ \ \ / / _ \ '__/ __|/ _ \ | | | '_ \\___ \ | | | || |
| _ < __/\ V / __/ | \__ \ __/ |_| | | | |___\) | | |_| || |
|_| \_\___| \_/ \___|_| |___/\___|____/|_| |_|____/ \___\(_\)_|
By OzX
);
print "Ingrese Direccion Url: ";
$domain=<STDIN>;
chop ($domain);
if ( $domain !~ /^http:/ ) {
$domain = 'http://' . $domain;
}
$ua = LWP::UserAgent->new();
$request = HTTP::Request->new('HEAD',$domain);
$response = $ua->request($request);
if ($response->code == 200) {
print "
- El Servidor Responde Ok: ", $response-> code,"\n";
}else {
print "[-]El Servidor no Responder: ", $response->code,"\n";
print "[-]Presione Una Tecla Para Volver al Menu: ";
$oz=<STDIN>;
goto menu;
}
my $query = "domainname=$domain";
my $ua = LWP::UserAgent->new;
$ua->agent("Windows; U; Windows NT 5.1; es-ES; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11");
my $req = HTTP::Request->new(POST => "
http://www.seologs.com/ip-domains.html");
$req->content_type('application/x-www-form-urlencoded');
$req->content($query);
my $response = $ua->request($req);
my $content = $response->content(); #contenido de la respuesta
open(CODEURL,"> codeurl.txt") || die "No pudo crearse: $!";
print CODEURL"$content";
close (CODEURL);
open(CODEURL2,"codeurl.txt");
@codeurl=<CODEURL2>;
$a=0;$b=0;$c=0;
foreach $codeurl ( @codeurl){
if ($codeurl[$a]=~/(<font face="arial"><b>)/){
$c=$a+$c;
}
if ($codeurl[$a]=~/(<\/font> <\/td><\/tr><\/table>)/){
$b=$a+$b;
}
$a++;
}
close (CODEURL2);
system ("erase codeurl.txt");
#+ ? . * ^ $ ( ) [ ] { } | & \ , cualquier q sea deve ir procedida de \
$a=($b-$c);
open (REVERSE,">REVERSE-DNS-URL.TXT");
for ($x=$c;$x<=$b;$x++){
if ($codeurl[$c]=~s/(<font face="arial"><b>)/\n/){
($codeurl[$c]=~s/(<\/b> has address <b>)/\n/);
($codeurl[$x]=~s/(<br>)/\n/);
($codeurl[$c]=~s/(<br><br><font face="arial" size="-1">)/\n/);
($codeurl[$c]=~s/<\/b>/ /);
($codeurl[$c]=~s/<small>Found/ /);
($codeurl[$c]=~s/<\/b><\/small>/ /);
}
($codeurl[$x]=~s/(<b>)/ /);
($codeurl[$x]=~s/(<br>)/ /);
($codeurl[$x]=~s/(<\/td><\/tr><\/table>)/ /);
($codeurl[$x]=~s/(<\/font>)/ /);
print REVERSE"$codeurl[$x]";
}
close (REVERSE);
#si llegaste leyendo hasta aka significa que estas motivado o muy aburrido XXXXXXXD¡
open (URL,"REVERSE-DNS-URL.txt");
@url=<URL>;
$q=0;
foreach $url ( @url){
$q++;
}
close (URL);
open (DNS,">REVERSE-DNS.txt");
print "
print "
print "[-]$url[3]\n\n";
print DNS"
print DNS"
print DNS"[-]$url[3]\n";
for ($x=4;$x<=$q;$x++){
print "$url[$x]";
print DNS"$url[$x]";
}
print DNS"Visita:
http://www.New-Bytes.net [Dns Reverse Tool 0.1 By OzX] \n";
close (DNS);
system ("erase REVERSE-DNS-URL.txt");
system ("start REVERSE-DNS.txt");
print "
- Se Creo un Archivo TxT (REVERSE-DNS.txt) Con el Resultado del Reverse Dns\n";
print "[-]Presione Una Tecla Para Salir ";
$op=<STDIN>;
Bug: Aveces Muestra Url Extrañas por ej:
http://www.seologs.com/ip-domains.html Busken
www.googl.eswww.google.es has address 64.233.167.104
Found 100 websites with the IP 64.233.167.104
1) FTOOGLE.COM" gping="&POS=25&CM=WPU&CE=3&CS=AWP&SR=3&sample=0
2) adsense.google.ca
3) adsense.google.de
Casi siempre lo Entrega con
gping="&POS=78&CM=WPU&CE=43&CS=AWP&SR=56&sample=0
pero buee en la prox version le meto mas caña y veo eso XD¨. pero hasta coo esta funciona perfecto... una q otra vez vas a tener que sacar algo de codigo pero buee XD
Es por la Misma web que entrega el Resultado asi...
Siempre pasa con Google y Otras webs importantes.
Pero para web Normales funciona de pelos.
Bue seria todo. Por OzX, SI van a Copiar el Codigo para optimizarlo, PERFECTO¨ pero dejando el derecho de autor XXXD¨.
NB