En este blog informático está reflejada mi experiencia en el mundo de la informática. Mis publicaciones serán sobre seguridad informática e Internet. Las técnicas y herramientas aquí explicadas son para fomentar la seguridad de la información dentro de la filosofía del hacking ético. En línea desde 2005.

Herramientas para test de penetración en CAPTCHA.

En este post tratare sobre aplicaciones gratuitas para test de penetración en CAPTCHA (Prueba de Turing pública y automática para diferenciar máquinas y humanos). En concreto de tres herramientas: clipcaptcha, TesserCap v1.0  y CIntruder.


Clipcaptcha:

Programada por Foundstone es una herramienta de suplantación de proveedores de firma CAPTCHA basado en el código base sslstrip de Moxie Moulinsart. En función de su modo de empleo se puede aprobar, rechazar o desviar las solicitudes de verificación de CAPTCHA.

Todos los proveedores de CAPTCHA son básicamente servicios web personalizados basados en HTTP. Estos servicios aceptan solicitudes de validación de CAPTCHA en un formato concreto y responden con un conjunto finito de respuestas que permiten a los clientes tomar decisiones booleanos para permitir o no la solicitud. Clipcaptcha se aprovecha de esta solicitud finita y predecible y de los datos de respuesta establecidos para implementar la detección basada en firmas de la solicitud y respuesta.

Para ejecutar Clipcaptcha es necesario: Python 2.5 o más reciente y módulo Python Twisted. Los cuatro pasos para hacer funcionar esto en Linux son:

1- Activar el modo de transmisión de la máquina.

echo "1"> /proc/sys/net/ipv4/ip_forward

2- Configurar iptables para redirigir el tráfico HTTP a clipcaptcha.

iptables -t nat -A PREROUTING -p tcp –destination -port 80 -j REDIRECT --to-port

3- Ejecutar arpspoof para redirigir el tráfico a la máquina utilizando técnicas de envenamiento de la cache ARP.

arpspoof –i -t

4- Ejecutar clipcaptcha en uno de su modo de funcionamiento.
clipcaptcha.py -l

Clipcaptcha se puede ejecutar en uno de los cinco modos de operación siguientes:
  • Modo Monitor: detección de proveedor base de firma CAPTCHA, todas las solicitudes de validación de CAPTCHA se registran en un archivo local. Se permite completar sin ninguna modificación las solicitudes de validación y las respuestas correspondientes.
  • Modo Avalancha: Se devuelve al proveedor CAPTCHA la respuesta de éxito para todas las solicitudes de validación. Se recomienda que no se ejecute clipcaptcha en este modo porque puede producir un aumento de los registros de éxito de validación.
  • Modo invisible: Es el modo recomendado para correr clipcaptcha. Este modo se basa en el hecho de que todos los API de validación de CAPTCHA que envía el usuario para su validación solo se devuelven las validadas con éxito para las peticiones que contienen una cadena secreta. En la implementación actual, clipcaptcha analiza toda la solicitud de validación CAPTCHA  (línea inicial, cabeceras y el cuerpo) y valida con éxito si se encuentra la cadena secreta o permite la solicitud para validar sin ninguna modificación.
  • Modo DOS: Se devuelve fallo en validación como respuesta a todas las solicitudes de validación de CAPTCHA. Esto conduce a una denegación de servicio en la aplicación web de destino para todos los formularios que requieren la validación CAPTCHA.
  • Modo aleatorio: Se devuelven éxito y fracaso como respuestas al azar al proveedor CAPTCHA  para todas las solicitudes de validación.
Cuando clipcaptcha comienza a funcionar, todas las solicitudes de validación de CAPTCHA serán administrados por clipcaptcha. La configuración predeterminada contiene las firmas de reCAPTCHA, opencaptcha y captchator.


Ejemplos de ejecución:

Ejecutar clipcaptcha en modo monitor escucha en el puerto 7777:

clipcaptcha.py –m -l 7777

Ejecutar clipcaptcha en modo avalancha y aprobar todos los CAPTCHA (para los que las firmas están disponibles):

clipcaptcha.py –a -l 8888

Ejecutar clipcaptcha en modo oculto y aprobar todos los CAPTCHA de solicitudes que contengan la cadena secreta "clipcaptcha":

clipcaptcha.py -s clipcaptcha


Más información y descarga de Clipcaptcha:
http://www.mcafee.com/us/downloads/free-tools/clipcaptcha.aspx


TesserCap v1.0:

TesserCap de Foundstone es una herramienta de análisis CAPTCHA muy flexible y potente con las siguientes características:
  • Posee un motor de pretratamiento de imagen genérica que se puede configurar según el tipo de CAPTCHA a ser analizado.
  • Con un modulo llamado Tesseract funciona como motor OCR para recuperar el texto de CAPTCHA pretratados.
  • Con Proxy Web y soporte para cabeceras HTTP.
  • Motor de análisis estadístico CAPTCHA.
  • Posibilidad de elección del juego de caracteres para el motor de OCR.

Más información y descarga de TesserCap v1.0:
http://www.mcafee.com/us/downloads/free-tools/tessercap.aspx



CIntruder:

Es una herramienta para test de penetración CAPTCHA automática, que incluye un modulo OCR y con opciones de realizar ataques de fuerza bruta por medio de un diccionario local o online. Requiere Python y las siguientes bibliotecas para su correcta ejecución:

  • Python-pycurl - Enlaces de Python para libcurl.
  • Python-libxml2 - Enlaces de Python para la biblioteca XML de GNOME.
  • Python-imaging - Python Imaging Library.


Ejemplos de modos de empleo:


Atacar un archivo con fuerza bruta:

$ python cintruder --crack "captcha.gif"

Atacar una imagen de URL con fuerza bruta:

$ python cintruder --crack "http://host.com/path/captcha.gif"

Ataque con fuerza bruta y exportar los resultados a un archivo xml:

$ python cintruder --crack "captcha.gif" --xml "test.xml"

 Ataque de fuerza bruta, a través proxy TOR  y salida detallada:

$ python cintruder --crack "http://host.com/path/captcha.gif" --proxy="http://127.0.0.1:8118" -v

Ataque con motor OCR de una URL, a través de proxy TOR y salida detallada

$ python cintruder --train "http://host.com/path/captcha.gif" --proxy "http://127.0.0.1:8118" -v

 Seguimiento de 50 CAPTCHA  de URL a través de proxy TOR:

$ python cintruder --track "http://host.com/path/captcha.gif" "50" --proxy "http://127.0.0.1:8118"

 Lista de módulos disponibles (de core/mods/):

$ python cintruder --list

 Lanzar un módulo de OCR para atacar un CAPTCHA local específico:

$ python cintruder --train "inputs/easycaptcha.gif" --mod easy

Lanzar un módulo de OCR para romper un CAPTCHA de URL especifica, con salida detallada:

$ python cintruder --crack "http://host.com/path/captcha.gif" --mod easy -v

Reemplazar palabra sugerida por CIntruder después del ataque, en los comandos de entrada de otra herramienta (por ejemplo: XSSer) :

$ python cintruder --crack "http://host.com/path/captcha.gif" --tool "xsser -u http://host.com/path/param1=foo¶m2=bar&txtCaptcha=CINT"

Ataque de fuerza bruta a URL con diccionario online  (CINET):

$ python cintruder --crack "http://host.com/path/captcha.gif" --send-net

Visitar diccionario online (CINET http://cintruder.sf.net/cinet ):

$ python cintruder --view-net


Más información y descarga de CIntruder:
http://cintruder.sourceforge.net/



Hoy en día implementar un CAPTCHA seguro requiere métodos más complejos que requieren más recursos: ancho de banda, capacidad de proceso del servidor… Pero hay métodos para dificultar a los programas OCR. Uno de estos métodos es el «método del tachado». Este método consiste en tachar las letras del CAPTCHA de manera que un humano sepa identificarlas pero un software OCR no pueda separar las unas de las otras. Aunque actualmente este método también está siendo vulnerado, el futuro se encuentra en el  CAPTCHA en formato de video. Los videos mantienen la sencillez de identificación para el usuario (el humano), pero a la vez dificulta a los sistemas informáticos automatizados burlar la medida de seguridad, ya que la identificación de texto en imágenes es un campo mucho más avanzado que sobre video
Herramientas para test de penetración en CAPTCHA. Herramientas para test de penetración en CAPTCHA. Reviewed by Álvaro Paz on miércoles, octubre 30, 2013 Rating: 5
Publicar un comentario
Este Blog sobre Seguridad Informática está bajo una licencia de Creative Commons, Álvaro Paz. Con la tecnología de Blogger.