Mostrando entradas con la etiqueta web. Mostrar todas las entradas
Mostrando entradas con la etiqueta web. Mostrar todas las entradas

martes, 4 de febrero de 2020

Cómo configurar las cabeceras de seguridad en servicios web y no morir en el intento.


Autor: @db3rn4l

Este es mi primer artículo en solitario en HoneySec, espero que os guste y sobretodo que os sirva.
Últimamente, mi compañero Raúl Renales y yo, nos hemos encontrado con vulnerabilidades asociadas a la
ausencia de configuración de las cabeceras de seguridad en los servicios web, concretamente Apache2, httpd e IIS.

El motivo principal de realizar este artículo es que hay una gran cantidad de portales web que se encuentran en
esta situación. 

SRI: SubResource Integrity


By @raulrenales


Hace unos días unos amigos que tienen varias plataformas de blogging me consultaron por un problema que estaban comenzando a tener con los recursos de terceros que utilizaban en sus webs. Básicamente el problema era que en un determinado recurso, el fabricante había tenido una brecha de seguridad y el recurso había quedado comprometido, de tal manera que todas las plataformas web que utilizaban el recurso incorporan unas funciones que permiten la subida de archivos y obtención de información.

miércoles, 25 de diciembre de 2019

Viewstate without MAC Signature



by @raulrenales


Si sois usuarios de ZAP y últimamente habéis trabajado en el pentest de aplicaciones web basada en .NET es muy probable que os hayáis topado con esta vulnerabilidad, Viewstate without MAC Signature. En este post vamos a intentar hablar sobre ella y sobre las opciones de explotación que esta vulnerabilidad tiene, intentando aprender un poco como funciona el concepto de viewstate.

jueves, 28 de junio de 2018

Un error en instalaciones estándar permite la eliminación de archivos en wordpress core.



By @raulrenales


En una instalación estándar de WordPress, cualquier usuario que haya iniciado sesión con un rol de autor o superior tiene la capacidad de cargar archivos multimedia adjuntos y editar sus metadatos, como imágenes y sus descripciones. Un error en el proceso de actualización de los metadatos de archivos adjuntos permite que un usuario malintencionado envíe datos no optimizados al definir una miniatura para el archivo multimedia. Al definir rutas relativas a archivos específicos como la "miniatura" de una imagen, estos archivos se eliminarían junto con las miniaturas reales cuando se elimine la imagen de la biblioteca multimedia.

El problema mas importante que causa es que se puede eliminar el archivo wp-config.php de un sitio. Sin wp-config.php en su lugar, WordPress se ve obligado a asumir que se está llevando a cabo una nueva instalación. A partir de este punto, el atacante puede configurar su propia instalación de WordPress consigo mismo como administrador, que luego puede usar para cargar y ejecutar cualquier otro script que desee.

¿Que hacer?

Inicialmente se esta esperando una actualización de urgencia que solucione el problema, por lo que hasta que esta llegue el trabajo de mitigar el problema ha caído en manos de los Firewalls. Algunos de los mas famosos como Wordfence ya han incluido reglas que solucione este problema.

Recuerde también que el error se produce para usuarios con permisos de autor o editor, con lo que una buena opción es revisar los permisos de nuestros usuarios temporalmente.

Recomiendo ver el informe de RIPSTECH para entender el problema en profundidad, puede acceder a él en los enlaces de las fuentes que muestro a continuación.





lunes, 27 de noviembre de 2017

Img con keylogger



Recientemente he leído una noticia que me llamo mucho la atención, "482 de los sitios web más populares registran cada pulsación de teclado realizada por sus usuarios" en la que se denunciaban mas de 480 sitios web que graban las pulsaciones de teclado de sus visitantes con el objetivo de aprender sobre ellos y como no ofrecernos mejores ofertas con un marketing muy agresivo.

sábado, 24 de diciembre de 2016

Ojo con los Robots



Autor: @txambe

El archivo robots.txt es un fichero con una  lista de robots no admitidos, la cual te permite restringir el acceso a tu sitio selectivamente. Si hay páginas que no quieras que se indexen por los buscadores, puedes configurarlo aquí, y si hay un buscador al que quieres denegar el acceso, también.

Los buscadores quieren indexar toda la información posible, y así cuando llegan hasta nuestro sitio web lo rastrean todo. El problema surge cuando quieres evitar que ciertas páginas se incluyan en sus índices, ¿qué hacemos entonces?

martes, 13 de diciembre de 2016

Dame tu email y te diré …


Autor: @RaulRenales

Es conocido desde hace tiempo que es posible el trackeo de emails de tal manera que podamos obtener información de que ocurre con cada uno de los emails que mandamos, el concepto de tracking en emails está muy ligado al marketing, donde prácticamente no hay sistema de envíos masivos que no incluya un “pixel” que obtiene información jugosa sobre los receptores de los emails.

Dentro de los correos tradicionales que casi todo el mundo usa (Gmail por ejemplo) es posible añadir herramientas que nos permiten realizar ese mismo trackeo comercial pero para el seguimiento de nuestros correos personales.

lunes, 5 de diciembre de 2016

SVG Scripting How to



Autor: @RaulRenales

A raíz del artículo hay mucha gente que me ha preguntado sobre las imágenes vectoriales del formato SVG y las implicaciones en seguridad que este tipo de formatos puede acarrear.

Primero de todo repasemos que es una imagen SVG:
Gráficos Vectoriales Redimensionables o SVG es un formato de gráficos vectoriales bidimensionales, tanto estáticos como animados, en formato XML, cuya especificación es un estándar abierto desarrollado por el W3C desde el año 1999.

lunes, 21 de noviembre de 2016

Wordpress, Temas y Botnets

By @elchicodepython (Samuel López)

Cada vez más escucho a más personas decir barbaridades del estilo ¡cómo me voy a infectar con un tema si es solo la parte gráfica! No me preocuparía tanto de no ser porque es en el propio sector del desarrollo web donde lo estoy escuchando actualmente. Esto tiene una explicación y es debido a que como la tendencia en pequeños mercados a abaratar costes muchas veces llega a un punto de desarrollo insostenible.

domingo, 30 de octubre de 2016

Fundamentals: WAF ( Web Application Firewall )



Autor: @txambe


Hoy vamos a ver un tema muy interesante (por lo menos a mí me lo parece) y son las distintas técnicas para realizar un fingerprint de los firewall de aplicaciones web o más conocidos como WAF.

Bueno pues empecemos por el principio ¿Que es un firewall?  es un sistema de seguridad que controla el tráfico de una red, servidor o una aplicación, los puede haber tanto hardware como software.

Se pueden diferenciar dos tipos de firewall :

·         Los firewalls de capa de red funciona a nivel de red (capa 3 del modelo OSI, capa 2 del stack de protocolos TCP/IP) como filtro de paquetes IP. A este nivel se pueden realizar filtros según los distintos campos de los paquetes IP: dirección IP origen, dirección IP destino. En este tipo de firewall se permiten filtrados según campos de nivel de transporte (capa 3 TCP/IP, capa 4 Modelo OSI), como el puerto origen y destino, o a nivel de enlace de datos (no existe en TCP/IP, capa 2 Modelo OSI) como la dirección MAC.

·         Los firewall de aplicaciones web, trabaja en el nivel de aplicación (capa 7 del modelo OSI), de manera que los filtrados se pueden adaptar a características propias de los protocolos de este nivel. Por ejemplo, si se trata de tráfico HTTP, se pueden realizar filtrados según la URL a la que se está intentando acceder.

Un cortafuegos a nivel 7 de tráfico HTTP suele denominarse proxy, y permite que los pc de una organización  entren a Internet de una forma controlada. Un proxy oculta de manera eficaz las verdaderas direcciones de red.

Los WAF funcionan en los siguientes modos::

·         Negative Model (Blacklist based) 
·         Positive Model (Whitelist based) 
·         Mixed/Hybrid Model (Blacklist & whitelist model)


Las formas en que podemos implementar un WAF son:

·         Reverse proxy 
·         Inline 
·        Connected to a Switch (SPAN>Port Mirroring)


Métodos de identificación de WAF

Los métodos mas conocidos que podemos encontrar, se encuetrarn:

·         Drop Action  → Envia un paquete FIN / RST 
·         Reglas Pre-Built  → Cada WAF tiene sus propias  Negative Secutity Signatures  
·         Ataques  Side-Channel  → Basados en Timing behavior


Herramientas de Detección de WAF

Hay muchas herramientas y scripts que pueden detectar la presencia y la huella digital del WAF :

·         imperva detect.py

Realiza un un primer test de base y luego realiza otros 5 test adicionales , sus resultados son muy rápidos.



·         Paradox WAF detection 
·         F5 Cookie Decoder Burp extension 
·         FatCat SQL Injector


  
NMAP scripts

Los scripts de nmap pueden detectar varios productos  IDS, IPS, y WAF. Como los siguientes , BarracudaWAF, PHPIDS, dotDefender, Imperva , Web Firewall, Blue Coat SG 400.

Detectando  WAF usando  NMAP

nmap -p80 --script http-waf-detect


Fingerprinting  de WAF usando NMAP

nmap -p80 --script http-waf-fingerprint

Wafw00f.py

Wafw00f puede identificar los patrones mas comunes de mas de 25 tipos de WAF

Fingerprinting  de WAF usando WAFw00f
wafw00f.py

Un problema que nos podemos encontrar a la hora de la detección es que los WAF oculten su identidad   a partir de los valores de las cookies y así como las respuestas HTTP  de tipo 200 ,  así que será necesario realizar  test adicionales ,  por ejemplo con imperva-detect.py.
 El siguiente enlace es un resumen de las distintas herramientas que hay disponibles para la detección de WAF



Un tema importante a tratar , son las reglas que se implementan ,  ya que tienen un impacto en el funcionamiento de la aplicación web que esta detrás del WAF.

Una mala configuración  puede darnos problemas tales como:
           
            • Bloquear peticiones legitimas  (falsos positivos) 
            • El conjunto de reglas necesita ser revisado.


Y un conjunto de reglas muy laxa sin excepciones puede :

·         Pueda darnos  (falsos negativos) 
·         El atacante eluda el  WAF y por lo tanto haga un exploit de la aplicación.
  
Continuara ….


Happy Hacking.


miércoles, 26 de octubre de 2016

Piratas del corsair



Autor: @toespar

Telegram continúa buscando diferenciarse con funcionalidades que atraigan a los usuarios. Viendo que el mundo de los videojuegos cada vez reúne a más gente en teléfonos, qué mejor que poder hablar y jugar con tus amigos sin salir de la conversación. Por ello, la propia plataforma ha creado varios juegos accesibles desde el propio chat con tan solo poner @gamebot.


Viernes por la tarde, y de repente, me llega una notificación de Telegram en un chat en el que se mostraba el siguiente mensaje:


Se había abierto la veda. Y aunque he de reconocer que no soy muy de jugar, el hecho de tener más puntuación que el resto me impulsaba a ello. Tras unos breves intentos lo consigo.


Evidentemente, esto siguió varias veces más hasta que llegó un punto en el que me resultaba imposible conseguir más puntos que el primero, pero el asunto no podía quedar así. Por ello, me pongo a investigar cómo funciona la puntuación del juego abriendo la versión desktop en el ordenador que, casualmente, todavía no integra el juego en el propio chat sino que lo abre directamente en el navegador.

Lo primero que hacemos es configurar BurpSuite  y Firefox para obtener las distintas peticiones que se realizan en función de los distintos escenarios del juego.

Ahora ya estamos listos para interceptar los paquetes y observar cómo se realizan las peticiones, así que nos ponemos a jugar hasta que nos eliminan. Tras un breve periodo de tiempo, vemos como van llegando distintas peticiones a Burp, tanto del propio dominio que estamos analizando como de otros. Por lo tanto, eliminamos las peticiones que no nos interesan, quedándonos únicamente con aquellas que nos pueden ser de interés:


Tal y como vemos en la captura, la URL más interesante es aquella relacionada con la asignación de puntuación: setScore. Adicionalmente, observamos también que la primera petición se realiza para obtener el código JavaScript que ejecutará las distintas funciones del juego, por lo que si buscamos la función que realiza el setScore podremos entender cómo se realiza la asignación de puntos:


Se realiza un post a la API setScore y se le pasan como parámetros data y score. Si seguimos buscando de donde se obtienen los datos llegamos a la función main:


Dichos datos se obtienen de la URL del juego, la cual contiene una cadena codificada en Base64 que contiene algunos parámetros como el identificador del usuario, su nombre, el nombre del juego, el identificador del chat, entre otros. Esta cadena varía en función del juego y puntuación obtenida en la partida anterior.

Si ahora nos centramos en el parámetro score, podemos ver que este varía en función de las monedas obtenidas durante el juego. No obstante, si nos fijamos en BurpSuite, observamos que el parámetro se pasa sin ningún identificador que compruebe la autenticidad del valor obtenido en el juego.


De esta forma, para obtener la puntuación que queramos únicamente deberemos editar el parámetro score en el cuerpo del mensaje. Para ello, mandamos la petición al repeater de BurpSuite y editamos dicho valor:


Si todo ha ido bien, obtenemos la siguiente respuesta:


Y si nos fijamos en el chat…


Objetivo conseguido! Ahora sí somos los piratas del Corsair ;)

martes, 5 de abril de 2016

¿Debería tu web bloquear usuarios de TOR?



Autor: @RaulRenales

Recientemente un cliente me pregunto por la red TOR, como de costumbre había oído mil cosas y como os podéis imaginar ninguna buena. (Todos mis clientes suelen tener un primo "erudito" que sabe de todo)  La pregunta concreta fue, "¿se pueden bloquear los usuarios de estas redes para que no tengan acceso a mi web? esos usuarios no aportan nada a mi negocio y son un riesgo", la respuesta es obviamente SI, si se puede, pero no un SI al 100%, debemos de contemplar algunos matices.

En un sistema basado en el bloqueo por IP, el bloqueo de usuarios TOR se produce a través de las IPs de los nodos de Salida, si estas ips cambian se podría dar acceso a usuarios de Tor dado que no controlamos estas nuevas ips.

También, el dueño de la web debe evaluar el riesgo potencial para su web, debe valorar los mercados a los que dirige sus productos, etc ... No todo el usuario de Tor es ilícito y se podría incurrir en el trato como usuarios de segunda a usuarios que tan solo quieren preservar su intimidad.

Existen distintas maneras de afrontar el problema, por ejemplo Cloudflare filtra a los usuarios que provienen de nodos Tor y les obliga a resolver un código Captcha, por el contrario Akamai regala a estos usuarios un bonito error 403, bloqueándolos así en el uso de ese contenido.

La realidad es que según el articulo "Do you see what I see?" las 1000 paginas TOP del ranking Alexa, están bloqueando sistemáticamente los usuarios que provienen de nodos TOR, esto supone bloquear aproximadamente el 3,7% de su trafico.

¿Y vosotros que haríais?

Os dejo esta infografía que he encontrado que ilustra muy bien el caso:


¿Debemos bloquear a los usuarios de TOR en nuestra web?