Los archivos .htaccess son archivos ocultos en texto plano utilizados en los servidores web Apache, que sirven para definir las directivas especificas que deseamos utilizar para una carpeta o en las diferentes subcarpetas que nacen de ella.

HTExploit
Los .htaccess son muy utilizados en la red por los webmasters y administradores de aplicaciones web, algunos de los usos más comunes de los archivos son:

  • Impedir listados de archivos en directorios
  • Redirecciones de trafico
  • Crear mensajes de error personalizados
  • Proteger carpetas
  • y un largo etc..

Precisamente el uso de los .htaccess para proteger carpetas es uno de los mas utilizados por los webmasters para salvaguardar información sensible de miradas no autorizadas y los fallos en la configuración de estos archivos son los que explota HTExploit.

HTExploit es una herramienta desarrollada en python por el argentino Matías Katz (quien participo con nosotros en el ACK Security Conference) en colaboración con Maximiliano Soler, la cual fue recientemente expuesta en BlackHat 2012  y que hace parte desde la versión R3 de las herramientas para seguridad web incluidas en BackTrack 5, HTExploit nos permite saltarnos (bypassear) la protección realizada con .htaccess a carpetas sensibles en un servidor apache con php y descargar la informacion que se estaba protegiendo.

¿Cómo funciona HTexploit?

El fallo o “funcionalidad de Apache+PHP” que explota la herramienta no es nuevo, como el mismo Matías dice abiertamente, ya existía documentación sobre el tema en los foros de apache desde el año 1997 y consiste en enviarle una petición que el servidor Apache no entienda, por ejemplo DJAR, como esa petición no es conocida por Apache, este se la manda a el PHP para ver si lo sabe interpretar, como el servidor PHP tampoco conoce esa petición la toma como una petición GET, por tanto estaríamos realizando una petición GET con un método X como es el caso de DJAR.

Sabiendo esto ahora podemos entender por que protecciones como la siguiente, es vulnerable a la herramienta, ya que no estamos mandando una peticion “GET” pero al final el resultado es el mismo.

AuthUserFile /home/pagina/www/.htpasswd
AuthGroupFile /dev/null
AuthName “Password Protected Area”
AuthType Basic

<limit GET POST> //limita la autenticación de usuario SOLO a los métodos “GET” y “POST” por tanto al método DJAR no se le aplica.
require valid-user
</limit>

Codigos como los mostrados anteriormente son generados automáticamente cuando utilizamos servicios como .htaccess Generator y en ejemplos de configuracion de .htaccess sin saber que estos archivos son vulnerables a ataques como el realizado por HTExploit.

Ahora que sabemos lo que hace HTExploit por debajo, vamos a ver sus parámetros y funcionamiento.

  • -h //Saca el menú de ayuda de la herramienta
  • -m // nos permite definir un modulo especifico que deseamos utilizar
    detect
    // identificar si el directorio es vulnerable
    full
    // opción por defecto y que escanea toda la carpeta en busca de archivos conocidos que estén en su diccionario
  • -u // url que deseamos atacar
  • -o // definir la carpeta de salida de los archivos
  • -w // definir el diccionario de archivos que vamos a utilizar *
  • -v // activar modo verbose para ver en todo momento que esta haciendo la herramienta

* El que la herramienta requiera un diccionario no quiere decir que se hagan ataques de fuerza bruta, el diccionario contiene nombres de archivos que posiblemente tenga la carpeta protegida, al igual que webscarab o dirbuster para encontrar archivos.

Lanzamos la herramienta con el parámetro ./htexploit -m detect -u http://www.mipagina.com/directorioprotegido/ y verificamos que la pagina realmente tenga una configuración de .htaccess vulnerable.

Una vez sabemos que la carpeta es vulnerable, lanzamos la herramienta pasándole como parámetro la el diccionario de archivos, la url vulnerable ./htexploit -w res/FullList -u http://www.mipagina.com/directorioprotegido/ y la herramienta automáticamente genera una carpeta con un nombre aleatorio donde se almacenará la información descargada.

En vez del archivo FullList que incluye htexploit podríamos usar el diccionario de DirBuster incluido en BackTrack 5 R3 cuya ruta es /pentest/web/dirbuster/directory-list-2.3-big.txt , teniendo en cuenta que entre mas grande sea el diccionario de archivos a buscar, mas posibilidades de éxito tendrías, pero también tardará mas.

¿Como configuro adecuadamente mi .htaccess?

Para que la configuración de tu .htaccess no sea vulnerable a htexploit, debes limitar aún más los métodos que puedes recibir, cambiando el “pida validacion a los métodos POST y GET” por “pida validacion a los métodos POST y GET y además deniegue el acceso a todo lo que no sea POST y GET” , esto se consigue añadiendo estas simples líneas de código a tu archivo .htaccess

AuthUserFile /home/pagina/www/.htpasswd
AuthGroupFile /dev/null
AuthName “Password Protected Area”
AuthType Basic

<limit GET POST>
require valid-user
</limit>

<LimitExcept POST GET>
Order deny,allow
Deny from all
</LimitExcept>

¿Que incluirá la herramienta en un futuro?

En próximas versiones se piensa añadir un explorador de enlaces dentro de los archivos descargados, para poder descargar mas archivos de los encontrados con los diccionarios, también se piensa implementar la recursividad, para no tener que ejecutar la herramienta varias veces, añadir los módulos de SQL Injection, RFI y LFI, entre otras funcionalidades.

Les dejo un video con la entrevista que hizo ToolsWatch a Matías y Maximiliano.

Y los slides de la charla sobre la herramienta en BlackHat 2012

Para mas información y descargar la herramienta, visita la Pagina Oficial de HTExploit

La ultima version publica del HTExploit fue la 0.77 codename Caipirinha y se puede bajar de:

HTExploit v0.77 [50 KB]

Code Name: Caipirinha

Date: 10.20.2012

SHA-1: c8219a52367f114f3756233187e30d132be17949

GPG Signature