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.

sábado, 19 de noviembre de 2016

Fundamentales. Directorios


Hoy vamos a ver dos cosas: como movernos en el árbol de directorios y otros comandos útiles para manipularlos

Que es un directorio

Pues de forma básica es eso que conocemos en Windows como carpeta (para mí siempre serán directorios a pesar de Microsoft J). En la Wikipedia podemos encontrar esta definición de directorio:
“En informática, un directorio es un contenedor virtual en el que se almacenan una agrupación de archivos informáticos y otros subdirectorios, atendiendo a su contenido, a su propósito o a cualquier criterio que decida el usuario. Técnicamente, el directorio almacena información acerca de los archivos que contiene: como los atributos de los archivos o dónde se encuentran físicamente en el dispositivo de almacenamiento.”

lunes, 14 de noviembre de 2016

Presentada el aula movil de HoneySEC en #HoneyCon16 (Proyecto Recycling)



El pasado 12 de noviembre se presento el resultado del proyecto Recycling de HoneySEC. Un proyecto iniciado hacia el mes de febrero con un simple Tweet que pedía la entrega de portátiles que la gente no usase en sus casas o trabajos.

Rápidamente comenzaron a contestar personas anónimas de diferentes puntos del país, incluso de sudamerica solicitando información para donar sus equipos. En pocas semanas llegaron una docena de portátiles y de esta manera arrancamos el proceso de Recycling.

domingo, 13 de noviembre de 2016

Mini-Resumen: HoneyCon2016

El pasado viernes 11 de noviembre se inauguró el 2º Congreso de seguridad Ciudad de Guadalajara, Jornadas que prácticamente clausuran el año 2016 para la asociación HoneySec, un año en el que el denominador común fue la continua actividad de la misma, con 60 eventos dentro y fuera de nuestra ciudad.

Las jornadas se inauguraron por Raúl Renales como representante de HoneySec, Jesús de Andres como Director del centro asociado de la UNED en Guadalajara, Lucas Castillo como Diputado de la Excelentísima Diputación de Guadalajara y Jaime Carnicero como vice-alcalde de Guadalajara, en el acto se dio la bienvenida a ponentes y asistentes y se repasó la implicación de estas entidades en las jornadas.

domingo, 6 de noviembre de 2016

Fundamentals: HTTP – REFERER



Autor: @txambe

En el articulo de hoy vamos a revisar el tema de las cabeceras de HTTP REFERER , para aquello que desconozcáis de que son , os pongo el resumen que hay en la wikipedia.

Fuente:  WiKipedia

HTTP referer (inicialmente un error ortográfico del término referrer) es una cabecera HTTP que identifica la dirección de la página web (es decir, la URI o IRI) que creó el vínculo con el recurso que está siendo solicitado. A través del chequeo del campo referer, la nueva página web puede determinar dónde se originó la solicitud.

En la mayoría de los casos esto significa que cuando un usuario hace clic a un hipervínculo en un navegador web, el navegador envía una solicitud al servidor que hospeda la página web destino y dicha solicitud incluye el campo referer, que indica la última página que el usuario visitó (aquella donde el usuario hizo clic al vínculo).

El registro del campo referer es utilizado con propósitos estadísticos y promocionales por los sitios web y servidores web, pues les permite identificar desde qué localización están siendo visitados.1
También es muy recomendable revisarse la RFC 2616, sección 14.36  que explica en detalle el HTTP Referer y en la sesión 15.1.3 se ven las  consideraciones de seguridad que deben cumplir los agentes de usuario como por ejemplo no incluir el Referer cuando se pase de HTTPS a HTTP por los problemas de exposición de información sensible.

En la siguiente imagen podemos ver un encabezado HTTP y como el navegador web esta informando al servidor , a través de referer ,  que esta solicitando el recurso htaccess.html  
se está realizando desde la portada de  /http-headers-tool


No hay que confundirse con el  metadato HTML Referrer  que se ocupa de especificar que valores va a contener el campo de encabezado  de petición Referer, según la política de Referrer de la W3C  que se aplique. El Referer, al igual que el Etag  han suscitado bastantes sospechas respecto a su uso, utilizados por afectar la privacidad de los usuarios. Mediante el Referer puede registrarse los hábitos de navegación de las personas a través de la recolección de los saltos realizados entre páginas, estableciéndose patrones de comportamiento en Internet.

  Al realizar una prueba de pentesting es importante revisar cual es el Referer entre peticiones ,  para lo cual podemos aplicar la prueba de seguridad  OTG-AUTHN-001  para entender si las credenciales son enviadas a través de un canal seguro.

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 ;)