viernes, 26 de julio de 2013

Panoptic - Explotando vulnerabilidad LFI



En esta ocasión vengo a presentar una herramienta algo novedosa, el código fue escrito por nuestros amigos de websec con la ayuda Miroslav Stampar. Esta herramienta que lleva el nombre de Panoptic nos permite buscar en los archivos comunmente conocidos posibles vulnerabilidades LFI (Local File Inclusion).


Requisitos :

  • Python 2.6+


Descargar Panoptic :  https://gist.github.com/stamparm/5335273


Bueno en mi caso voy a instalarlo en mi BaCkTraCk 5R3 ... =)

Panóptic tiene incorporado heurística, esto  para detectar cuando se encuentra un archivo, sin embargo, en raras ocasiones, esto puede fallar. En esta situación, puede utilizar el argumento --bad-string  para especificar una cadena a coincidir en la respuesta HTML cuando no se encuentra un archivo. Si panóptic detecta la mala secuencia en la respuesta, entonces sabe que el archivo no fue encontrado.




Características : 


  • No sólo mostrará panóptico las rutas de archivos encontrados, puede guardar los archivos reales también. Con --write file, el contenido de cada archivo se guardará en la salida output/<domain>/<file path>.txt por lo que no tiene que solicitar de nuevo el archivo para verlo.. También dirige la salida a través de una función de limpieza para eliminar el código HTML deseado.




  • Una gran parte del tiempo la vulnerabilidad de inclusión de LFI será dentro de las carpetas y tienen una extensión añadida al final. En este caso, podemos usar --prefix, --multiplier and --postfix. 


<?php include("Library/Webserver/Documents/" .$_GET["file"]) . ".php); ?>


  • Este código PHP vulnerable es un ejemplo clásico en el que se requiere una nullbyte para terminar el incluir y hacer caso omiso de la extensión de archivo al final. Con el siguiente comando panóptico puede cumplir estos requisitos:


./panoptic.py -url http://localhost/lfi.php?file=x" --prefix "../" --multiplier 3 --postfix "%00"





Mas acerca de Panoptic.


Como algunos de ustedes saben, sin pasar por los filtros es una especie de una de mis aficiones. Al decir esto, no podía excluir la posibilidad de que la solicitud bloqueada por algún firewall y no hay manera alrededor de ella. Por esa razón he incluido el argumento - reemplazo recortar. Este argumento reemplaza las barras inclinadas en la ruta de archivo para lo que usted especifique.


./panoptic.py -u http://localhost/lfi.php?file=x" --replace-slash "/././"


En este caso,/etc/passwd se convertiría /././etc/./passwd . Una excelente herramienta que se puede utilizar para encontrar filtro de pasa por alto y determinar la profundidad de la trayectoria de recorrido para LFI es de DotDotPwn que se incluye en dar marcha atrás.



Una característica interesante que nos incorporamos a panóptico es el análisis de archivos. Aunque es básico en este momento, se puede analizar la actualidad el archivo passwd * NIX para extraer carpetas de inicio de los usuarios y la búsqueda de diferentes combinaciones de archivo comunes, tales como:

  1. . Bash_config
  2. . Bash_history
  3. . Bash_logout
  4. . Ksh_history
  5. . Xauthority

Otro archivo que se analiza es el índice de log binario de MySQL (mysql-bin.index), que se utiliza para obtener la lista de registros binarios. Esta función está activada de forma predeterminada ninguna puede desactivarse con --skip-file-parsing



Bueno a continuacion presento este video hecho por los mismos autores de dicha herramientas....No hay nada mejor que observar a los creadores probar sus propias herramientas.





Bueno creo que esto es todo por el momento....Espero que este pequeño post les sea de utilidad al momento de querer explotar una vulnerabilidad de este tipo. Creo que ya no tengo nada mas que adicionar.........Así que me despido y sera hasta la próxima.....Nos vemos.










Python 2.6 +
Python 2.6 +Python 2.6 +
Python 2.6 +

No hay comentarios:

Publicar un comentario