Dirb – Herramienta para descubrimiento de contenido web

Dirb es un escáner de contenidos web que utiliza el mecanismo de fuerza bruta para descubrir directorios y archivos ocultos en servidores web.
El objetivo principal de DIRB es ayudar en la auditoría profesional de aplicaciones web, especialmente en pruebas relacionadas con la seguridad

página oficial:

página oficial: https://dirb.sourceforge.net/

¡Dirb no es un escáner de vulnerabilidades!

COMANDOS DE DIRB

Cuando se instala dirb, este paquete proporciona 3 herramientas como ser:

  • dirb
  • dirb-gendict
  • html2dic

Comando dirb

Este comando permite ejecutar una lista de palabras (diccionario) a un objetivo especifico

opciones de dirb

Comando dirb-gendict

Este comando permite generar diccionarios utilizando, para ver las opciones, simplemente ejecute “dirb-gendict”

opciones de dirb-gendict

Comando html2dic

html2dic permite dumpear todas las palabras de un archivo hmtl, el siguiente ejemplo se muestra la salida de palabras filtradas de un archivo HTML

Se tiene un archivo html de ejemplo con el siguiente contenido

CÓDIGO HTTP

Este fragmento define códigos de estado HTTP y sus correspondientes descripciones en formato de cadena.

archivo: http_codes.h

#include "global.h"


// HTTP Code

#define HTTP_CONTINUE                      100
#define HTTP_SWITCHING_PROTOCOLS           101
#define HTTP_OK                            200
#define HTTP_CREATED                       201
#define HTTP_ACCEPTED                      202
#define HTTP_NON_AUTHORITATIVE             203
#define HTTP_NO_CONTENT                    204
#define HTTP_RESET_CONTENT                 205
#define HTTP_PARTIAL_CONTENT               206
#define HTTP_MULTIPLE_CHOICES              300
#define HTTP_MOVED_PERMANENTLY             301
#define HTTP_MOVED_TEMPORARILY             302
#define HTTP_SEE_OTHER                     303
#define HTTP_NOT_MODIFIED                  304
#define HTTP_USE_PROXY                     305
#define HTTP_BAD_REQUEST                   400
#define HTTP_UNAUTHORIZED                  401
#define HTTP_PAYMENT_REQUIRED              402
#define HTTP_FORBIDDEN                     403
#define HTTP_NOT_FOUND                     404
#define HTTP_METHOD_NOT_ALLOWED            405
#define HTTP_NOT_ACCEPTABLE                406
#define HTTP_PROXY_AUTHENTICATION_REQUIRED 407
#define HTTP_REQUEST_TIME_OUT              408
#define HTTP_CONFLICT                      409
#define HTTP_GONE                          410
#define HTTP_LENGTH_REQUIRED               411
#define HTTP_PRECONDITION_FAILED           412
#define HTTP_REQUEST_ENTITY_TOO_LARGE      413
#define HTTP_REQUEST_URI_TOO_LARGE         414
#define HTTP_UNSUPPORTED_MEDIA_TYPE        415
#define HTTP_INTERNAL_SERVER_ERROR         500
#define HTTP_NOT_IMPLEMENTED               501
#define HTTP_BAD_GATEWAY                   502
#define HTTP_SERVICE_UNAVAILABLE           503
#define HTTP_GATEWAY_TIME_OUT              504
#define HTTP_VERSION_NOT_SUPPORTED         505
#define HTTP_VARIANT_ALSO_VARIES           506


// HTTP Code Strings

static struct code code2message[] = {
  { HTTP_OK,                      "Ok" },
  { HTTP_MOVED_PERMANENTLY,       "Moved Permanently" },
  { HTTP_MOVED_TEMPORARILY,       "Moved Temporarily" },
  { HTTP_BAD_REQUEST,             "Bad Request"},
  { HTTP_UNAUTHORIZED,            "Auth Required" },
  { HTTP_FORBIDDEN,               "Forbidden" },
  { HTTP_NOT_FOUND,               "Not Found" },
  { HTTP_UNSUPPORTED_MEDIA_TYPE,  "Unsupported Media Type" },
  { HTTP_METHOD_NOT_ALLOWED,      "Method Not Allowed" },
  { HTTP_INTERNAL_SERVER_ERROR,   "Internal Server Error" },
  { HTTP_SERVICE_UNAVAILABLE,     "Service Temporarily Unavailable" },
  { 0xff,                         "Unknown"},
};

Ejemplo de diccionario

Dirb utiliza un diccionario de palabras para complementar la URL y así descubrir contenidos web interesante es decir:

Ejemplo del diccionario “small.txt” , este diccionario cuenta con aprox. 959 palabras:

Existen mas diccionarios con otros propósitos similares en ese mismo directorio

Algunas palabras utilizadas que utiliza para identificar las URL

$ tail small.txt 
~mail
~operator
~root
~sys
~sysadm
~sysadmin
~test
~user
~webmaster
~www

tail es un comando que nos permite ver las ultimas lineas de un archivo (default: 10)

Como funciona

Dirb utiliza este mecanismo simple pero efectivo:

TARGET = http://example.com

DIC    = small.txt

phpmyadmin   <- esta palabra esta en el diccionario       

# Combina la URL + PALABRA
http://example.com/phpmyadmin  

# Valida la URL  según su código HTTP

http://examplecom/phpmyadmin = 200 

# Si el código es 200, entonces quiere decir que la URL es valida

Fuente

https://www.kali.org/tools/dirb/
https://salsa.debian.org/pkg-security-team/dirb

Resumen

Esta herramienta es muy útil para quienes estén aprendiendo a meterse en el área de seguridad informática o ramas a fines, conocer esta herramienta nos permite comprender como funcionan su mecánicos internos usando que son simples pero útiles, en este capitulo se aprendió varios puntos, atentos al siguiente capitulo!

Comments are closed.