elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
05 Septiembre 2008, 19:10  



+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking Avanzado
| | |-+  Hacking Básico (Moderador: zhyzura)
| | | |-+  Herramienta para listar contenido web
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Imprimir
Autor Tema: Herramienta para listar contenido web  (Leído 477 veces)
winterfuse

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Herramienta para listar contenido web
« en: 18 Junio 2008, 00:41 »

Hola,

en ocasiones, sabemos que una determinada web es vulnerable a algún tipo de ataque, pero localizar el fichero o directorio desde el que se debe realizar no es una tarea siempre sencilla. Yo recientemente he localizado un par de webs que han movido el admin.php y no he logrado encontrarlo.

Me preguntaba si existe alguna herramienta similar a un crawler, pero que además trate de advinar directorios o archivos que no estuvieran indexados desde ninguna parte (mediante brute force, o por diccionario, o como fuere).

Tampoco resultaría demasiado difícil programar algo similar en python, por ejemplo, pero refinarlo para que sea más o menos eficiente es otro tema, por eso, si ya existe algo un poco trabajado, mejor.

¿Alguno conoce algo similar a lo que busco?

Saludos
En línea
andavid

Desconectado Desconectado

Mensajes: 1.223


No tengo todo el conocimiento y eso me tranquiliza


Ver Perfil WWW
Re: Herramienta para listar contenido web
« Respuesta #1 en: 18 Junio 2008, 01:10 »

Lo mas cerca que conozco a una herramienta asi con crawler y spider lo hace el paros, pero igual no es cien por ciento funcional.
En línea


averno

Desconectado Desconectado

Mensajes: 347


Ver Perfil
Re: Herramienta para listar contenido web
« Respuesta #2 en: 18 Junio 2008, 03:44 »


 que tal.

 Lo que buscas es un Scanner. Puedes usar Nessus para *NIX; y hay otros komo Acunetix para Windoze.
 Es, en fin, un scanner de vulnerabilidades lo que kreo que buscas ya que buscan por directorios konocidos
 u ocultos komo adicion. Nikto ( o wikto para windoze ) es un scanner de cgi; pero puede darte bastantes
 False Positives dependiendo de la caonfiguracion del Target. Es, igualmente, configurable.
 Cabe decir que Nessus ( nessus.org ) trae los plugins escritos en un lenguage propio NASL. Si lo aprendes,
 puedes incluir tus propios plugins. Bueno..

 Suerte.
En línea
winterfuse

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Herramienta para listar contenido web
« Respuesta #3 en: 19 Junio 2008, 11:26 »

He ojeado Paros, y tampoco es lo que yo andaba buscando. Desde luego Nessus, Nikto, acunetix y demás no es lo que necesito. Esos ya los uso, lo que me interesa es localizar archivos y directorios no indexados por buscadores ni linkados desde la propia web. Si no encuentro nada similar, pasados los exámenes me codearé algo y os lo comento.

Gracias!
En línea
averno

Desconectado Desconectado

Mensajes: 347


Ver Perfil
Re: Herramienta para listar contenido web
« Respuesta #4 en: 19 Junio 2008, 17:25 »


 que tal.

 Bueno.. yo krei que un scanner te iba a solucionar la papeleta. El kaso, es que para harta configuracion
 y si te kieres ahorrar el codear algo similar, puedes echarle un vistazo a algun Fuzzer.
 Dentro de las herramientas de stressing con alta similitud de scanneo, pueden llegar a ser herramientas
 que, vista la avanzada tecnologia diaria, encuentren bugs u otro tipo de vulnerabilidad de manera rapida
 y fiable.

 Bueno, ante todo Suerte y Saludos.
En línea
ChElAnO

Desconectado Desconectado

Mensajes: 87


Ver Perfil
Re: Herramienta para listar contenido web
« Respuesta #5 en: 19 Junio 2008, 19:45 »


en vez de andar buscando una herramientas
porque no programas una?

que busque directorios y archivos conocidos como

admin.php
admin.asp
admin/
login
..
..
...

es tan simple como hacer la peticion y ver el retorno de la pagina,
si manda HTTP 404 es un error y no ha sido encontrado

si retorna GTTP 200, bingo!

saludos
En línea
averno

Desconectado Desconectado

Mensajes: 347


Ver Perfil
Re: Herramienta para listar contenido web
« Respuesta #6 en: 19 Junio 2008, 22:07 »

 que tal.

 Bueno, ChElAnO, tienes razon,pero lo mismo winterfuse esta de examenes o no kiere kodearlo, o ..
 Al kaso, es que yo estoyde resaka y aburrido y le acabo de ahorrar el codeo.
 Asi que, winterfuse, te he codeado esta tool dedicada para ti! :_)

 /* codigo de averno para winterfuse */

 /*
 * dires-scan.c   By averno. 
 *
 * -  Hecho para el compi: winterfuse, del foro.elhacker.net  -
 *
 *  Compilacion: gcc -O2 -o dires-scan dires-scan.c
 *
 * Uso:
 * # ./dires-scan www.elhost.com fichero_con_directorios_a_probar
 *
 * Ejemplo:
 * # ./dires-scan www.hacktheworld.com file.txt
 *
 * Aki, en el post, cambio los
  • ( no va a salir ) por [~].
*/



#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <fcntl.h>
#include <errno.h>
#include <stdio.h>

#define MAX 1024

u_long resolve(char *);

void tester(char *host, int sock, char *argv[])
{

   FILE *file;

   char buff[MAX];
   char tmp[MAX];
   char tmp2[MAX];
   int readbytes;
 
   if ((file = fopen(argv[2], "r")) == NULL) {
     fprintf(stderr, "[~] Error abriendo archivo %s!\n\n", argv[2]);
     exit(-1);
   }

   while (fgets(buff, sizeof(buff), file) != NULL) {

       if ((buff[0] == '#') || (buff[0] == '\n')) {
         continue;
       } /* kon esto, saltamos a la siguiente linea si el komienzo de la
            linea es un komentario o una line vacia */

       buff[strlen(buff) -1] = '\0'; /* Nos deshacemos del '\n' que pone
                                        fgets() */

       snprintf(tmp, sizeof(tmp), "GET /%s\\\n\n", buff);
       
       if (write(sock, tmp, strlen(tmp)) == -1) {
         perror("write()");
         exit(-1);
       }

       while ((readbytes = read(sock, tmp2, 1024-1)) > 0) {
            tmp2[readbytes] = '\0';
            if (strstr(tmp2, "200") != NULL) {
              printf("[~] Directorio \"%s\" Enkontrado, winterfuse!\n\n", buff);
              break;
            }
   
       }

       memset(&tmp, 0, sizeof(tmp));
       memset(&tmp2, 0, sizeof(tmp2));

   } /* Fin del loop while() de fgets() */

} /* Fin de la funcion tester() */


int main(int argc, char *argv[])
{

   if (argc < 3) {
     fprintf(stderr, "[~] Uso: %s <host> <file>\n\n", argv[0]);
     exit(0);
   }

   struct sockaddr_in client;
   struct hostent *he; /* utilizo gethostbyname(), ya que vamos a usar
                          nombres de dominio! */

   int fd, readbytes, fl;
   char buff[MAX];
   
   if ((fd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
     perror("socket()");
     exit(-1);
   }

   if ((he = gethostbyname(argv[1])) == NULL) {
     error("gethostbyname()");
     exit(-1);
   }

   memset(&client, 0, sizeof(client));
   client.sin_family = AF_INET;
   client.sin_port = htons(80);
   client.sin_addr = *((struct in_addr *)he->h_addr);

   if (connect(fd, (struct sockaddr *)&client, sizeof(struct sockaddr)) == -1) {
        perror("connect()");
        exit(-1);
   }

  /*
   fl = fcntl(fd, F_GETFL);
   fcntl(fd, F_SETFL, fl | O_NONBLOCK); */

   tester(argv[1], fd, argv);

   return 0;

}

 /* EOF */

 Bueno, si kieres, te he subido este kodigo ( komprimido en .tar.gz ) a uno de mis hostings. Este,
 contiene un fichero de ejemplo tambien que te acabo de hacer ( tiene 3 directorio! )
 Solo tienes que aniadirle los dires que veas conveniente a dicho directorio y yasta.
                http://www.geocities.com/shirleylla/winterfuse.tar.gz

 El codigo lo decidi hacer en C. Uso gethostbyname(), asi que no pongas IPs komo segundo argumento!
 El uso es:
 # ./dires-scan www.webaprobar.com file.txt

 Komo ves, el segundo argumento ( argv[2] ) es el fichero conteniendo los directorios.
 Mira el de ejemplo si kieres.

 Bueno,espero que te sirva y Gracias por ser agradecido!

 Saludos, Suerte.


 /**** MODIFIKO ****/

 Bueno, os preguntareis.. Y para que incluyo fcntl.h, si no la ha usado??
 Pues porke pense el hacer el socket non-blocking ( fcntl(socket, F_SETFL, O_NONBLOCK) )
 pero al final, por varios motivos, esta blokeante. Se me ha olvidao kitar la libreria, pero kon la
 resaka que gasto demasiado ha sio ya el poder codearla!

 /**** MODIFIKO2 ****/

 Bueno, pues eso, que he modifikado algo el GET, y he introducido el ultimo "\" del directorio
 escapandolo.Asi, kreo que dara mejores resultados.
« Última modificación: 21 Junio 2008, 17:54 por averno » En línea
winterfuse

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Herramienta para listar contenido web
« Respuesta #7 en: 19 Junio 2008, 22:22 »

Jajaja, ¡gracias averno! Iba a codearlo yo en python, que es algo más sencillo (no obstante me gusta más el C). Como prueba me vale, pero más adelante, a ver si apruebo los exámenes que me quedan) y con tu permiso, cojo ese código y reutilizo las partes que me sirvan para añadirle métodos opcionales de fuerza bruta, para completar los directorios del fichero como hace john the ripper con los diccionarios de pass o similar.

Tampoco estaría de más crear unos diccionarios de cosas útiles a buscar (nombres de paneles de administración de las herramientas más usadas, ficheros interesantes...)

Gracias otra vez.
En línea
averno

Desconectado Desconectado

Mensajes: 347


Ver Perfil
Re: Herramienta para listar contenido web
« Respuesta #8 en: 19 Junio 2008, 22:23 »

 que tal winterfuse.

 De nada hombre, un placer.

 Haz kon el codigo lo que se te plazca. Es para ti, y tuyo es.

 Gracias por ser agradecido! xD!

 Suerte.

 /*** MODIFIKO ***/

 No se si sera totalmente funcional el programa, pero bueno..
 El kaso es que, dado a que la comparacion de strings ( kon strstr() ) la hago en base solamente al "200"
 ( referente al HTTP 200 OK ), puede que obtengas False positives si la respuesta aniade data referente
 momento de la peticion por ejemplo. A ver, si por ejemplo la respuesta del request contiene algo
 como:
 Generated Fri, 20 Jun 2008 ..
 Ahi el scanner daria que el directorio que estaba probando que hizo devolver este string, esta presente
 siendo incierto ( False Positive ). Por que? pues porke al hacer la comparacion kon el "200",
 seria TRUE en este caso dado que existe un "200" en "2008", no? :_)
« Última modificación: 20 Junio 2008, 02:54 por averno » En línea
winterfuse

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Herramienta para listar contenido web
« Respuesta #9 en: 20 Junio 2008, 15:46 »

Bueno averno, don't worry, cuando tenga un rato ya lo pruebo intensivamente y lo modifico y afino lo que haga falta ;)
En línea
averno

Desconectado Desconectado

Mensajes: 347


Ver Perfil
Re: Herramienta para listar contenido web
« Respuesta #10 en: 21 Junio 2008, 18:02 »

 que tal winterfuse.

 Pues nada, que mirando el code antes de ir a trabajar ayer, me di cuenta de que no estaba incluyendo
 el ultimo slash ( \ ) del directorio en el GET. Se lo he incluido kon esperanza de que de
 mejores resultados.. Tambien lo inclui en el .tar.gz ( el comprimido del link ).
 El kaso es que, si la page no esta configurada para devolver los mensajes de estado de HTTP,
 estaremos jo**; ya que nos basamos en el 200 HTTP OK!
 Bueno,solo pedirte que, si modigikas y haces algo "chulo" kon el code, que me lo pases! :_)

 Saludos.

 P.D: Los dires del file, solo son los nombres de los dires komo:
         administrator
          css
          images
          ... ..

 P.D2: Maniana de todas maneras intentare echarle mas rato para mejorarlo, ya que es una chapuza!


 P.D3: Dado que no kreo que veamos nunca el 200 en el resultado, checkea mejor este que acabo
           de corregir:
            http://www.geocities.com/shirleylla/diress-scan.c
« Última modificación: 21 Junio 2008, 19:11 por averno » En línea
741852

Desconectado Desconectado

Mensajes: 1.590


visca la pepaaaaa!


Ver Perfil
Re: Herramienta para listar contenido web
« Respuesta #11 en: 21 Junio 2008, 21:01 »

Citar
que busque directorios y archivos conocidos como

admin.php
admin.asp
admin/
login
..
..
...

Eso lo hace el scanner ACUNETIX

suerte
En línea

since 1992 there's a club wich is making history, seven years later in 1999 it's still kicking!, PONT AERI!
..... and in 2008 IT'S STILL KICKING !!!
pont aeri siempre
hardcore for life [H4L]
Páginas: [1] Ir Arriba Imprimir 
Ir a:  







Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

hard-h2o modding    Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    Foros en español    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.5 | SMF © 2006-2008, Simple Machines LLC