Modificar el Agente de Usuario con User Agent Switcher

Body

User Agent Switcher o “Conmutador de Agente de Usuario” es una extensión que añade un menú y un botón en la barra de herramientas para conmutar el agente de usuario del navegador.

User-Agent

El campo de la cabecera de solicitud “User-Agent” contiene información sobre el agente de usuario que origina la petición. Esto es por propósitos estadísticos, rastreo de violaciones al protocolo, y reconocimiento automático de agentes de usuario para la correcta adaptación en las respuestas y evitar limitaciones particulares de agentes de usuario. Este campo contiene varios tokens de productos y comentarios para identificar el agente y cualquier subproducto que formen parte significativa del agente de usuario. Por convención, los tokens de productos son listados en orden de relevancia para identificar la aplicación.

Se inicia OWASP Webscarab y se le indica al navegador web Firefox su utilización como Proxy, con la extensión FoxyProxy.

Se intercepta y visualiza la información contenida en la cabecera de la petición enviada por el navegador web Firefox, centrando el análisis en el campo “User-Agent”. El cual contiene el texto “User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:28.0) Gecko/20100101 Firefox/28.0”

Para la siguiente práctica se utilizará la extensión “User Agent Switcher” para modificar la información del agente de usuario dentro de la cabecera correspendiente a la solicitud.

Se procede a hacer clic en “Tools -> Default User Agent -> Internet Explorer -> Internet Explorer 8”. Ante lo cual el texto contenido en el campo “User-Agent” de la cabecera de solicitud ha sido modificado a “User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)”. Texto que identifica a un Navegador Web Internet Explorer 8.

Para corroborar la recepción de la información modificada en el campo “User-Agent” en el servidor web objetivo, se procede a visualizar parte del archivo de registro (logs) del servidor web. Anotar el cambio entre las primeras líneas y la últimas dos ubicadas en la parte inferior.

Para la siguiente práctica se utilizará el sitio web de nombre "User Agent String" donde es factible analizar y obtener información más detallada sobre la cadena del Agente de Usuario.

Primero se visita este sitio web con el Agente de Usuario Real que proporciona el navegador web Firefox.

Se modifican el campo User-Agent utilizando la extensión “User Agent Swithcer” para simular ser un navegador web de un iPhone.

El modificar los valores del agente de usuario permite evaluar si la aplicación web objetivo despliega contenido diferente en base la información enviada en el campo “User-Agent” dentro de la cabecera de solicitud. Las pruebas básicas a realizar implicar cambiar la información del Agente de Usuario para simular ser un navegador web de un dispositivo móvil, como un iPhone o Android, un motor de búsqueda como GoogleBot, y navegadores web de otros sistemas operativos, como Windows o GNU/Linux.

En los enlaces presentados a continuación se listan un par de sitios web conteniendo extensos listados de cadenas de agentes de usuario. Los cuales incluyen navegadores web, crawlers, navegadores móviles, entre otros.

Fuentes:

https://addons.mozilla.org/en-US/firefox/addon/user-agent-switcher/
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
https://www.owasp.org/index.php/Category:OWASP_WebScarab_Project
http://www.useragentstring.com/pages/useragentstring.php
http://www.user-agents.org/

OWASP Latam Tour - Lima, Perú 2014

Body

El día viernes 25 de Abril del año 2014 estaré dictando en la ciudad de Lima Perú, un Taller totalmente práctico sobre “Hacking Aplicaciones Web”, el cual tendrá una duración de ocho (8) horas. Esto con motivo de realizarse el OWASP Latam Tour Perú, evento que incluye talleres dictados el día Viernes 25 de Abril, y conferencias el día Sábado 26 de Abril.

Pueden obtener la información detallada sobre los Talleres y Conferencias en la página del evento.

https://www.owasp.org/index.php/Peru#tab=OWASP_Latam_Tour_2014

OWASP LATAM TOUR, es una gira por Latino América que promueve la seguridad en aplicaciones web en diversas instituciones, como: universidades, organismos gubernamentales, empresas de TI y entidades financieras, buscando crear conciencia sobre la seguridad en las aplicaciones y puedan tomar decisiones informadas sobre los verdaderos riesgos de seguridad.

Fuentes:

https://www.owasp.org/index.php/Peru#tab=OWASP_Latam_Tour_2014
https://www.regonline.com/Register/Checkin.aspx?EventID=1492427

Crear Macros con iMacros

Body

iMacros fue diseñado para automatizar las tareas más reiterativas en la web. Si existe una actividad a realizar repetidamente, solo se debe registrarla con iMacros. Cuando se necesite realizarla la siguiente vez, se ejecutará el macro completo con el clic de un botón. Con iMacros, se puede rápida y sencillamente llenar formularios web, recordar contraseñas, crear un notificador de correo electrónico vía web, descargar información desde otros sitios web, arrastrar la Web (para obtener datos desde varios sitios), y más. Se puede mantener los macros en la computadora para uso personal, o compartirlos con otros en paginas web, blogs, intranets empresariales o cualquier servicio social de marcadores.

En la siguiente práctica se creará un macro con el navegador web Firefox. Un macro es cualquier secuencia de tareas que necesitan ser realizadas regularmente.

Después de instalar la extensión en Firefox, se añadirá en la barra inferior un nuevo ícono de nombre “iOpus iMacros”. Al hacer clic sobre este ícono se abrirá un panel en el lado izquierdo.

Para registrar la Macro se debe hacer clic en la pestaña de nombre “Rec” del nuevo panel aperturado.

Al hacer clic en el botón de nombre “Record” o Grabar, se iniciará el proceso para registrar la Macro.

Las siguientes acciones realizadas con el navegador web serán registradas y mostradas en la parte superior del panel izquierdo.

Finalizadass las acciones que se requieren grabar, hacer clic en el botón de nombre “Stop”.

Para guardar el registro de las acciones realizadas hacer clic en el botón de nombre “Save”. Luego de lo cual se presentará una nueva ventana solicitando ingresar el nombre del archivo y el directorio donde será almacenado. Luego de escribir estos datos, hacer clic en el botón “OK”.

La acciones realizadas con Firefox y registradas con iMacro, se presentan a continuación:

  • Dentro de la página de OWASP BWAP hacer clic en el enlace con el texto “WordPress”
  • Hacer clic en el enlace con el texto “Login” ubicado en el menú derecho de Wordpress
  • Completar el campo “Username” o nombre de usuario del formulario
  • Completar el campo “Password” o contraseña del formulario
  • Hacer clic en el botón “Login”

Se procede a eliminar y limpiar todo el historial y cache de Firefox, para luego reiniciar el navegador web.

Para ejecutar la macro guardada, seleccionarla haciendo clic en el nombre de la macro; en este caso “wordpress1.im”; para luego hacer clic en el botón de nombre “Play”. Realizada esta acción se llegará a la página de Wordpress mostrada luego de ingresar el nombre usuario y contraseña correcta para el usuario administrador.

Si se desea editar la Macro manualmente, hacer clic derecho sobre la Macro y seleccionar la opción “Edit”o Editar.

Mencionar también que iMacros permite automatizar diversas tareas o pruebas realizadas con un navegador web como, completar formularios y gestionar contraseñas, Descargar y Subir archivos automáticamente, Extraer datos, Realizar minería de datos, Evaluaciones Web, Scripting Social (Marcadores Sociales), entre otros usos.

Fuentes:

https://addons.mozilla.org/en-US/firefox/addon/imacros-for-firefox/
http://wiki.imacros.net/Firefox

Generar Listas Personalizadas de Palabras con CeWL

Body

CeWL permite crear listas de palabras personalizadas haciendo “spidering” en los sitios web objetivos y capturando palabras únicas. CeWL es una aplicación escrita en ruby la cual recorre una URL definida con una profundidad específica, opcionalmente siguiendo enlaces externos, y retorna una lista de palabras las cuales pueden ser utilizadas con herramientas para tratar de “romper” contraseñas como John the Ripper.

CeWL también tiene una aplicación asociada en linea de comando, FAB (Files Already Bagged) o “Archivos ya embolsados”, la cual utiliza la misma técnica de extracción de meta datos para crear listas desde archivos descargados.

La versión más reciente de CeWL; al momento de escribir el presente texto; es la versión 5. Se procede a su descarga, para luego descomprimir y desempaquetar el archivo.

$ wget http://www.digininja.org/files/cewl_5.0.tar.bz2

Antes de proceder con la ejecución de CeWL, se requiere satisfacer una dependencia.

$ gem install mime

Se ejecuta el comando "cewl" con la opción “--help” para obtener la ayuda del programa.

$ cewl --help

Para la siguiente práctica se utilizará como aplicación web objetivo BadStore.

Se procede a ejecutar CeWL utilizando la opción “--depth”, la cual permite definir la profundidad del proceso de “spidering”, en este caso se define este valor a "2". También se utiliza la opción “--write”, la cual define un archivo donde se escribirá la lista de palabras generada por CeWL.

$ cewl -v --depth 2 --write /tmp/lista.txt http://192.168.0.19/

Se visualiza parte del archivo creado, de nombre “lista.txt”.

CeWL incluye otras opciones interesantes. La opción “--meta” la cual permite incluir metadatos, la opción “--meta_file”, la cual define un archivo de salida para los metadatos, la opción “--email” que incluye direcciones de correo electrónico, y la opción “--email_file”, la cual define un archivo de salida para las direcciones de correo electrónico extraídas.

$ cewl --depth 2 --write /tmp/lista1.txt --meta --meta_file /tmp/lista_meta.txt --email --email_file /tmp/lista_email.txt http://192.168.0.19

Finalizada la ejecución de CeWL se generan tres archivos, el archivo de nombre “lista1.txt” contiene una lista de palabras generadas desde la aplicación web objetivo. El archivo de nombre “lista_email.txt” contiene las direcciones de correo electrónico extraídas. Y el archivo de nombre “lista_meta.txt” contiene los metadatos extraídos en caso existan archivos que los contengan.

Estas listas de palabras o datos obtenidos pueden ser utilizados posteriormente para realizar ataques por fuerza bruta, e intentar “romper” o adivinar contraseñas utilizando herramientas como THC-Hydra, John The Ripper, Cain, entre otros.

Fuentes:

http://www.digininja.org/projects/cewl.php
http://www.openwall.com/john/
http://www.badstore.net/
https://www.gnu.org/software/wget/
http://www.thc.org/thc-hydra/
http://www.oxid.it/cain.html

Fuzzing contra un Formulario de Registro utilizando ZAP

Body

Las pruebas de fuzzing son una técnica de pruebas de caja negra para software, las cuales consisten básicamente en encontrar fallas de implementación utilizando inyección de datos malformados de manera automática.

Un fuzzer es un programa que inyecta automáticamente datos semi aleatorios dentro de un programa o pila y permite detectar fallas.

La parte de generación de datos es realizada por generadores, y la identificación de vulnerabilidades se basa en las herramientas de depuración. Los generadores usualmente utilizan combinaciones de vectores de fuzzing estáticos (conocidos por ser valores peligrosos), o datos totalmente aleatorios. Los fuzzers de nueva generación utilizan algoritmos genéticos para enlazar datos inyectados y observar su impacto.

Para la siguiente práctica se utilizará el formulario de registro (login) de DVWA (Damn Vulnerable Web Application). Además se usará la funcionalidad de Fuzzer que incluye OWASP ZAP (Zed Attack Proxy).

Ejecutar OWASP ZAP e indicarle al navegador web; en este caso Firefox; que se utilizará como proxy por medio del plugin FoxyProxy.

En el formulario de registro correspondiente a DVWA, se ingresa en el campo “Username” o Nombre de Usuario el texto admin y en el campo “Password” o Contraseña 12345. Anotar que para la presente práctica es irrelevante la contraseña ingresada en este campo.

OWASP ZAP ya está registrando toda la interacción entre el navegador y la aplicación web objetivo. El interés se centra en la pestaña “History” o Historial, y puntualmente en el método POST. El cual es seleccionado, para luego hacer clic en la pestaña “Request” o Petición ubicado en el panel superior derecho. Aquí se pueden observar y analizar los parámetros enviados hacia la aplicación.

La presente práctica se centra en hacer fuzzing al valor enviado en el campo “password” o contraseña. Por tal razón se selecciona todo el valor; en este caso “12345”, para luego hacer clic derecho sobre esta selección. Resultado de esta acción se desplegará un menú, en el cual se debe seleccionar la opción “Fuzz...”

Se apertura una nueva ventana, dentro de la cual se selecciona un archivo creado a medida de nombre “words.txt”. Este archivo contiene un listado de 25 palabras que serán utilizadas para el procedimiento de Fuzzing. Luego de seleccionar este archivo hacer clic en el botón “Fuzz”.

El Fuzzer de OWASP ZAP empieza a funcionar, mostrando sus resultados de manera inmediata.

La pregunta en esta etapa del procedimiento es; ¿Cómo puedo saber si alguna de las palabras utilizadas corresponde con la contraseña correcta?.

Para responder esta pregunta se debe analizar el tamaño del archivo de respuesta (Columna de nombre "Size" o Tamaño), o también utilizar la característica de búsqueda que incluye OWASP ZAP, mediante la pestaña de nombre “Search” o Búsqueda. Para utilizar esta última opción mencionada, se requiere buscar por un texto que indique el ingreso satisfactorio hacia la aplicación web. En el caso de DVWA, al ingresar a la aplicación web; después de haber ingresado un usuario y contraseña válida; se es redireccionado a una nueva página donde se incluye el texto “Damn Vulnerable Web App (DVWA) v1.8 :: Welcome” en el título. Tal como se puede visualizar en la pestaña “Response” o Respuesta ubicado en el panel superior derecho.

La lista de palabras a ser utilizada en este procedimiento de Fuzzing, puede descargarse desde algún sitio en Internet o crear una lista de palabras personalizada utilizando una herramienta como “cewl”.

Adicionalmente considerar la gran cantidad de peticiones realizadas por el Fuzzer contra la aplicación web objetivo. Por lo tanto se sugiere realizar configuraciones en el Fuzzer que minimicen las probabilidades de impactar seriamente con el normal funcionamiento de la aplicación web, o el bloqueo de las pruebas realizadas por parte de los mecanismos de seguridad desplegados en el objetivo.

Fuentes:

https://www.owasp.org/index.php/Fuzzing
http://www.dvwa.co.uk/
http://getfoxyproxy.org/
https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project
http://www.digininja.org/projects/cewl.php

Generar Tokens con Zed Attack Proxy - ZAP

Body

Zed Attack Proxy (ZAP) es una herramienta integrada y de fácil uso para realizar pruebas de penetración, la cual permite encontrar vulnerabilidades en las aplicaciones web. Esta diseñada para ser utilizada por personas con un amplio espectro de experiencia en seguridad, y como tal es ideal para los desarrolladores y evaluadores funcionales, nuevos en el campo de las pruebas de penetración. ZAP proporciona escaners automáticos y también un conjunto de herramientas que permite encontrar vulnerabilidades de seguridad manualmente.

Para la siguiente práctica se utilizará una extensión para ZAP de nombre “Token generation and analysis” o Generación y Análisis de Tokens. Esta extensión permite generar y analizar tokens pseudo aleatorios, como los utilizados para el manejo o gestión de sesiones y protección CSRF (Cross Site Request Forgery).

Se procede a limpiar o borrar todo el historial y las Cookies del navegador a utilizar, para luego ejecutar ZAP.

Se define a ZAP como proxy en el navegador web; en este caso Firefox; utilizando el plugin FoxyProxy.

Visitar la aplicación web objetivo utilizando el navegador web. En la ventana correspondiente a ZAP se visualizará el tráfico que está siendo interceptado.

Verificar que la solicitud realizada hacia la aplicación web objetivo ha sido realiza sin Cookies.

De la misma manera, verificar que la respuesta devuelta por la aplicación web objetivo contiene el campo “Set-Cookie” para el ID de sesión dentro de la cabecera.

Dado que ZAP no incluye la extensión que se requiere utilizar “Token generation and analysis”, se procede a descargarlo en el directorio de nombre “/plugin/” dentro de la carpeta donde reside ZAP.

Para instalar la extensión requerida, hacer clic en la opción “File -> Load Add-on file”. Seleccionar el archivo de nombre “tokengen-beta-6.zap”, para luego hacer clic en el botón “Open”.

En la pestaña “History” o Historial, hacer clic derecho en la petición en análisis y seleccionar la opción “Generate tokens..” o Generar Tokens...


Esta acción apertura una nueva ventana, donde es factible seleccionar el tipo de token, el nombre, y el número de tokens a capturar. Luego de definir estas opciones, hacer clic en el botón “Generate” o Generar.

El proceso de captura y análisis de tokens se ha iniciado.

Al finalizar el proceso se presentará una nueva ventana con un resumen de las pruebas realizadas, adicionalmente una pestaña sobre errores y detalles.

Sugiero revisar también la publicación de nombre "Análisis de Sesión con Burp Suite", donde se detalla más información de los IDs de sesión, las Cookies, y sobre la herramienta Burp Suite.

Fuentes:

http://www.reydes.com/d/?q=Analisis_de_Sesion_con_Burp_Suite
https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project
http://code.google.com/p/zap-extensions/downloads/detail?name=tokengen-…
https://www.owasp.org/index.php/Cross-Site_Request_Forgery_%28CSRF%29
http://getfoxyproxy.org/

Análisis de Sesión con Burp Suite

Body

Los tokens de sessión (Cookies, SessionID, o Campo Oculto) deben ser examinados para asegurar su calidad desde la perspectiva de la seguridad. Estos deben ser evaluados por criterios como aleatoriedad, unicidad, resistencia a análisis estático o criptográfico y fuga de información.

El análisis de la predictibilidad y aleatoriedad de ID de sesión debe ser emprendido para establecer la existencia de cualquier patrón reconocible o predecible. Estos análisis pueden ser realizados manualmente o con herramientas hechas a la medida para poder deducir cualquier patrón. Las pruebas manuales deben incluir comparaciones de ID de sesión entregados por las mismas condiciones de login, por ejemplo el mismo nombre de usuario, contraseña, y dirección IP. El tiempo es un factor importante que también debe ser controlado. Se debe realizar un alto número de conexiones simultaneas para obtener muestras en la misma ventana de tiempo y mantener la variable constante. Incluso una cuantificación de 50ms o menos puede ser demasiado y una muestra tomada de esta manera puede revelar componentes basados en el tiempo que de otra manera se perderían. Los elementos variables deben ser analizados sobre el tiempo para determinar si son incrementales por naturaleza. Cuando son incrementales, los patrones relacionados a un tiempo absoluto o transcurrido deben ser investigados. Varios sistemas usan el tiempo como una semilla para sus elementos pseudo aleatorios. Cuando los patrones son aparentemente aleatorios, hashes de una sola vía del tiempo u otras variaciones del entorno deben ser considerados como una posibilidad. Típicamente, el resultado de una hash criptográfico es un número decimal o hexadecimal, así es que debe ser identificable. En el análisis de secuencias de sesión, patrones o ciclos, elementos estáticos y dependencias del cliente deben ser todas consideradas como posibles elementos contribuyendo a la estructura y función de la aplicación.

Burp Suite

Burp Suite es una plataforma integrada para realizar evaluaciones de seguridad contra aplicaciones web. Sus diversas herramientas trabajan juntas a la perfección para apoyar el proceso completo de las pruebas, desde el mapeo inicial y análisis de la superficie de ataque de la aplicación web, hasta encontrar y explotar vulnerabilidades de seguridad. Burp Suite proporciona completo control, permitiendo combinar técnicas manuales avanzadas con automatización del estado del arte, para hacer el trabajo más rápido, más efectivo y más divertido.

Para la siguiente práctica se realizará un Análisis de Sesión utilizando Burp Suite contra DVWA (Damn Vulnerable Web Application).

Se sugiere en primera instancia limpiar o eliminar todas las Cookies del navegador utilizado. En el caso de Firefox, utilizar la opción “Edit -> Preferences -> Privacy -> Remove individual cookies -> Remove all Cookies”.

Configurar el uso de Burp Suite en Firefox utilizando FoxyProxy

Visitar la aplicación web objetivo utilizando el navegador web.

Se debe verificar que la petición se ha realizado sin Cookies.

Luego verificar que la respuesta contiene en la cabecera el campo “Set-Cookie” para el ID de sesión.

Ingresar a la pestaña “History” o Historial y hacer clic derecho sobre la solicitud adecuada. Sobre la nueva ventana aperturada seleccionar la opción “Send to Sequencer” o Enviar al Secuenciador.

La pestaña “Secuencer” será resaltada en color amarillo o anaranjado. Aquí se verifica que Burp Suite ha identificado correctamente el Cookie de Sesión.

Para iniciar el análisis, proceder a hacer clic en el botón “Start live capture” o Iniciar captura en vivo.

En el momento que se crea conveniente, es factible hacer clic en el botón “Analyze now” o Analizar ahora, para indicar a Burp Suite proceder con el análisis de todas las Cookies de Sesión capturadas hasta el momento.

Según los resultados obtenidos. La calidad total de aleatoriedad dentro del muestreo está estimado a ser: excelente. A un nivel de significancia del 1%, la cantidad de entropía efectiva está estimada en ser: 119 bits. La entropía es la medida de la incertidumbre ante un conjunto de mensajes, de los cuales se recibirá uno solo.

Sobre la Fiabilidad, se menciona que el análisis se basa en una muestra de 1235 tokens. La fiabilidad de los resultados es: razonable. Anotar que estas pruebas estáticas proporcionan solo una guía indicativa para la aleatoriedad de los datos de la muestra. Los resultados obtenidos pueden contener falsos positivos y negativos, y pueden no corresponder con la predictibilidad práctica de los Tokens de la muestra.

Fuentes:

http://www.portswigger.net/burp/
https://www.owasp.org/index.php/Testing_for_Session_Management_Schema_%…
http://www.dvwa.co.uk/
http://getfoxyproxy.org/
http://www.portswigger.net/burp/help/sequencer_tests.html

Modificar Datos de Cookies con Cookies Manager+

Body

Cookies Manager+, o por su traducción al español "Gestor de Cookies", permite editar y crear nuevas cookies. También muestra información adicional sobre las Cookies, permitiendo editar varias cookies a la vez y respaldarlas o restaurarlas. Este add-on está disponible para Firefox.

Una vez instalado Cookies Manager+, este puede ser accedido mediante “Botón App -> Web Developer -> Cookies Manager +” o mediante “Tools -> Cookies Manager +”.

¿Qué es una Cookie?

Una Cookie es una pequeña pieza de datos enviados desde el sitio web y almacenada en el navegador web del usuario mientras el usuario navega en el sitio web. Cada vez que el usuario carga el sitio web, el navegador envía la Cookie de retorno al servidor para notificar al sitio web sobre la actividad previa del usuario. Las principales funciones de una Cookie usualmente son el de ser utilizadas como un token de autorización y autenticación o como un contenedor de datos temporales.

¿Qué es OWASP Mutillidae?

Es un aplicación web libre y open source deliberadamente vulnerable que proporciona un objetivo de evaluación para los entusiastas en seguridad web. Mutillidae puede ser instalado en GNU/Linux y Windows utilizando LAMP, WAMP, y XAMMP. Y ya viene pre instalado en Samurai-WTF, Metasploitable 2 y OWASP BWA.

Para la siguiente práctica se utilizará NOWASP (Mutillidae), es por ello la mención realizada en el párrafo anterior.

Utilizando un navegador web como Firefox se ingresa a la opción “Login/Register”, para luego escribir los datos de autenticación pertinentes.

Luego de hacer clic en el botón “Login” del formulario de autenticación de Mutillidae, se ha ingresado a la aplicación. Notar el texto ubicado en la parte superior derecha “Logged in User: John”, donde se indica que se ha realizado un registro válido en la aplicación utilizando el usuario de nombre “John”.

Se apertura Cookies Manager+ y se aplica un filtro en base a la dirección IP donde reside el objetivo de evaluación (Mutillidae). La prueba se realizará con la información de la Cookie resaltada en color celeste.

Al hacer doble clic sobre la Cookie seleccionada, se abrirá una nueva ventana con la información detallada de la Cookie. En este caso el nombre “uid” se percibe bastante descriptivo, dado que sugiere corresponder a un “User IDdentification” o Identificador del Usuario.

La pregunta es; ¿Que sucede si se cambia el valor actual 3 por un 1?. La razón de elegir el número 1 se debe a la existencia de escenarios donde el primer usuario creado o definido en una aplicación web, corresponde a un usuario con los máximos privilegios como un administrador del sistema.

Para que los cambios realizados en la Cookie sean efectivos se debe presionar el botón “Save” o Guardar.

De regreso a la aplicación web objetivo (Mutillidae), se procede a refrescar la página web. Luego de lo cual es factible observar y leer en la parte superior derecha de la aplicación web el texto “Logged In Admin: admin (root)”. Lo cual indica que ahora se está autenticado con el usuario “Admin”, el cual tiene los máximos privilegios en el sistema. Y todo esto sencillamente con analizar y manipular los datos almacenados en la Cookie.

Las Cookies son con frecuencia un vector de ataque clave para los usuarios maliciosos; teniendo típicamente como objetivo a otros usuarios; por lo tanto la aplicación web debe siempre tomar las medidas pertinentes para proteger las Cookies.

Fuentes:

https://addons.mozilla.org/en-US/firefox/addon/cookies-manager-plus/
http://en.wikipedia.org/wiki/HTTP_cookie
https://www.owasp.org/index.php/Testing_for_cookies_attributes_%28OWASP…
http://sourceforge.net/projects/mutillidae/

Obtener un Shell Reverso con Laudanum

Body

Laudanum es una colección de archivos inyectables, diseñados para ser utilizados en pruebas de penetración cuando se encuentran vulnerabilidades en la subida de archivos, interfaces administrativas, y fallas de inyección SQL. Estos archivos están escritos en diversos lenguajes para diferentes entornos. Proporcionan funcionalidades como una shell, consulta DNS, recuperación LDAP y otros escenarios

Se procede a descargar el archivo más reciente publicado por el proyecto, desde su repositorio ubicado en sourceforge.

Luego de realizada la descompresión y desempaquetado del archivo, se tiene una estructura de directorios ordenados por “extensiones” fácilmente identificables con los lenguajes de programación más utilizados en el entorno web. El único disímil en esta estructura, es el directorio de nombre wordpress.

Para la presente práctica se utilizará el archivo de nombre “php-reverse-shell.php” ubicado en el directorio de nombre “/php/". Como el nombre del archivo lo indica, cuando se solicite este archivo; el cual debe residir en el servidor web objetivo; este establecerá una conexión hacia nuestro sistema o el sistema del atacante. De allí el nombre de shell reverso o inverso.

El primer inconveniente a superar es almacenar este archivo en el servidor web del objetivo. Para propósito de la presente práctica se utilizará DVWA (Damn Vulnerable Web Application) incluida en OBWAP (OWASP Broken Web Applications Project).

Antes de intentar explotar una vulnerabilidad que permita copiar un archivo hacia servidor web objetivo, se requiere modificar algunos datos en el archivo. Esencialmente la dirección IP y el puerto del sistema hacia el cual se conectará el objetivo de evaluación.

Se utilizará la opción “Upload” incluida en DVWA, para explotar una vulnerabilidad que permite subir archivos de manera irrestricta hacia el servidor web objetivo.

Al hacer clic en el botón “Browse” se aperturará una nueva ventana donde se debe ubicar el archivo que se requiere subir. Para este caso puntual será el archivo de nombre “php-reverse-shell.php”, ubicado en el directorio de nombre “/php/” dentro del directorio “/laudanum/”.

Al seleccionar el archivo, su nombre será mostrado en la parte derecha del botón “Browse...”.

Luego de hacer clic en el botón “Upload” el archivo ha sido subido al servidor web objetivo. Inmediatamente después se expondrá un texto indicando la ruta donde se almacenó el archivo y el éxito del proceso de subida.

Antes de solicitar el archivo de nombre “php-reverse-shell.php” desde el servidor web objetivo, es necesario ejecutar la herramienta netcat para que atienda la conexión TCP entrante que establecerá el servidor web objetivo hacia nuestro sistema.

$ nc -n -vv -l 7777

Se procede a solicitar el archivo de nombre “php-reverse-shell.php” utilizando un navegador web como Firefox. Luego de realizada esta acción, se tiene acceso shell sobre el objetivo de evaluación con los privilegios del usuario pertinente, en este caso el usuario “www-data”.

Fuentes:

http://laudanum.professionallyevil.com/
http://sourceforge.net/projects/laudanum/
http://www.dvwa.co.uk/
https://www.owasp.org/index.php/OWASP_Broken_Web_Applications_Project
https://www.owasp.org/index.php/Unrestricted_File_Upload

ProxyStrike

Body

ProxyStrike es un proxy activo para aplicaciones web. Esta herramienta está diseñada para encontrar vulnerabilidades mientras se navega una aplicación. Fue creada debido a los problemas que enfrentan las personas que realizan pruebas de penetración contra aplicaciones web que dependen mucho de Javascript, es por ello que se creo este proxy.

Están disponibles plugins para inyección SQL, y XSS (Cross Site Scripting). Ambos plugins están diseñados para atrapar tantas vulnerabilidades como puedan, esto debido a que el plugin de inyección SQL ha sido portado en python desde “Sqlibf”.

El proceso es muy sencillo, ProxyStrike se ejecuta como un proxy atendiendo o escuchando en el puerto TCP 8008 por defecto, así es que se tiene que navegar el sitio web deseado definiendo en el navegador el uso de ProxyStrike como proxy, y ProxyStrike analizará todos los parámetros en modo de segundo plano. Para el usuario es un proxy pasivo debido a que no visualizará nada diferente en el comportamiento de la aplicación, pero el segundo plano es muy activo.

Características

  • Motor de Plugin
  • Interceptor de Petición
  • Diferenciador de Petición
  • Repetidor de Petición
  • Proceso de crawling automático
  • Historial de peticiones y Respuestas HTTP
  • Estadísticas de parámetros en la Petición
  • Estadísticas de valores de los parámetros en la Petición
  • Firma de los parámetros en la URL de la Petición y firma de los campos en la cabecera
  • Uso de proxy alternos (Por ejemplo Tor)
  • Ataques SQL (plugin)
  • Server Side Includes (plugin)
  • Ataques XSS (plugin)
  • Registros (logs) de Ataques
  • Exportar resultados a HTML o XML

Para la presente práctica se ejecuta ProxyStrike en un Sistema Windows 7. Esto implica sencillamente descargar el archivo zip correspondiente, descomprimir el contenido en algún directorio, y hacer clic en el ejecutable indicado.

Se configura al navegador web; en esta caso Firefox; para que utilice a ProxyStrike como Proxy.

Se visita el sitio web objetivo y ProxyStrike empieza a procesar toda la información.

Para ejecutar un procedimiento de crawling, ingresar a la pestaña “Crawler”, escribir la URL del objetivo en el campo precedido por “Url:”, para luego hacer clic en el botón “Stopped”. Los resultados de los formularios encontrados se mostrarán en el lado derecho.

Se navega por la aplicación web objetivo, y se detecta que una de sus páginas que la constituyen permite enviar comentarios. En la siguiente imagen se visualiza el envío utilizando el método POST.

Al ingresar en la pestaña “Plugins” se seleccionan los plugins relacionados a Ataques XSS (Cross Site Scripting) y SSI (Server Side Includes),

Tal como lo indica la herramienta, existen inyecciones disponibles en las diferentes variables que componen el formulario “Comentarios” de la aplicación web.

Para realizar una prueba de XSS se utilizará el Repetidor de Peticiones (Repeat Request). En primera instancia se hace clic en la pestaña “Comms” para seleccionar la petición que se repetirá, y luego se deber hacer clic en el botón “Repeat”.

Esta acción automáticamente dirigirá a la pestaña “Repeat Request”, donde es factible realizar cualquier modificación sobre la petición que se enviará. Luego de realizadas las modificaciones, hacer clic en el botón “Perfom”.

La Respuesta se presentará en la parte inferior de la misma ventana, donde se puede observar incluida en la fuente HTML de la página web devuelta por la aplicación web, el típico código Javascript que se realiza para evaluar un XSS.

Fuentes:

http://www.edge-security.com/proxystrike.php
http://code.google.com/p/proxystrike/
https://www.owasp.org/index.php/SQL_Injection
https://www.owasp.org/index.php/Cross-site_Scripting_%28XSS%29
https://www.owasp.org/index.php/Server-Side_Includes_%28SSI%29_Injection