TLS client fingerprinting con Bro

En esta entrada continuamos con Bro IDS, que en esta ocasión utilizaremos como herramienta para la exploración de técnicas de client fingerprinting.

Como es sabido, durante el handshake inicial del protocolo TLS (utilizado, entre otros, por HTTPS en navegadores web), se intercambia un mensaje denominado ClientHello, donde el cliente especifica las primitivas criptográficas que soporta (los llamados ciphersuites).

Por ejemplo, un Firefox 50.1.0 sobre Linux enviaría un ClientHello como el siguiente, tal como lo muestra el disector de Wireshark:
[Read more…]

PoC simple de C2 con domain fronting sobre GAE

En esta entrada seguimos con domain fronting. En esta ocasión vamos a explorar cómo implementar un PoC simple de un servidor de mando y control, y exfiltración sobre Google App Engine (GAE en adelante), y veremos cómo conseguir el domain fronting desde Windows, con un script VBS o PowerShell, para ocultar las interacciones con el servidor C2.

El objetivo

Cuando lo tengamos todo desplegado, dispondremos de un servicio web en myc2server.appspot.com que podremos utilizar desde un equipo Windows comprometido de la siguiente forma: contaremos con un canal de mando y control (sobre la ruta /e2e7765b71c1, a modo de autenticador): [Read more…]

Camuflaje en la capa de cifrado: domain fronting

En la entrada de hoy hablaremos sobre una técnica relativamente vieja (aunque programas como Signal la han empezado a utilizar hace relativamente poco) y que siempre me ha parecido un hack muy “astuto”: el domain fronting.

Por ejemplo, tomemos la dirección IP del frontal que nos sirve www.google.es:

$ host www.google.es
www.google.es has address 216.58.210.227

Vamos a fijarnos en el campo Common Name (CN) del certificado TLS que nos devuelve el servidor: [Read more…]

Bro IDS tips and tricks

Como continuación del excelente post sobre Bro que publicó nuestro compañero Juan Manuel hace un tiempo, en el presente recopilamos diversos tips and tricks para dicha herramienta que esperamos que os sean de utilidad. Nos centraremos en la última versión estable, Bro 2.5, publicada en noviembre del pasado año 2016.

Captura sobre varios interfaces

En algunas ocasiones, el tráfico a monitorizar nos llega por varios interfaces de red diferentes; por ejemplo, en el caso de disponer de dos salidas a Internet. [Read more…]

vFeed: una BD de vulnerabilidades

vFeed es una herramienta muy interesante de ToolsWatch que recolecta información sobre vulnerabilidades utilizando multitud de fuentes; entre otras:

  • Estándares de seguridad, como CVE, CWE, CPE, OVAL, CAPEC, CVSS, etc.
  • Herramientas de explotación y auditoría de vulnerabilidades, como Nessus, NMap, Metasploit, etc., así como páginas web y bases de datos de seguridad ofensiva, como milw0rm o Exploit-DB
  • Alertas de fabricantes: Red Hat, Microsoft, Cisco, Debian, etc.
  • Firmas de sistemas IDS, como Snort o Suricata

[Read more…]

Un honeyclient para CVE-2015-2865

Recientemente se ha publicado una vulnerabilidad (CVE-2015-2865) que afecta a varios modelos de móviles Samsung Galaxy, y que permite la ejecución remota de código como usuario system siempre que sea posible montar un ataque MitM entre el terminal y los servidores de Samsung (normalmente utilizando técnicas como ARP cache poisoning o similares sobre redes wifi de hoteles, restaurantes, etc. a las que estén conectados el atacante y la víctima).

Estos terminales vienen preinstalados con el teclado virtual Swift, de Samsung. Cuando el usuario instala un language pack adicional para este teclado, o cuando se actualiza uno de los existentes, en primer lugar la aplicación descarga el catálogo de packs en formato JSON desde la URL correspondiente:

http://skslm.swiftkey.net/samsung/downloads/v1.3-USA/languagePacks.json

[Read more…]

Introducción al desarrollo de transforms para Maltego

Una de las características más interesantes de Maltego, herramienta ya potente de por sí, es la posibilidad de desarrollar nuestras propias transformadas, o transforms, para ampliar sus capacidades.

De forma simplificada, una transform no es más que una “caja negra” que toma como entrada una entidad (o entity), y produce como salida una o más entities. Estas entities, ya sean de entrada o de salida, son de cierto tipo (por ejemplo, de tipo Person, EmailAddress, etc.) y deben tener un valor (o value) determinado. Adicionalmente, una entidad puede tener cero o más campos (o fields) extra que pueden enriquecer su valor semántico (cada field está formado por un nombre y un valor).

Las transforms pueden ser locales o remotas: las primeras se ejecutan en la misma máquina donde corre el propio programa cliente de Maltego, mientras que las segundas residen en los llamados servidores TDS (Transform Distribution Service), de forma que el programa cliente de Maltego envía la entity de entrada y recibe de los servidores la entity o entities de salida.

Centrándonos ya en la programación en sí de las transformadas, objeto de la presente entrada, el interfaz para el desarrollo de las transforms locales es sumamente sencillo: cualquier programa que reciba como parámetros el value de la entity de entrada (y, opcionalmente, los nombres y valores de los fields extra), y genere código XML en el formato de especificación de las entities de salida (con sus respectivos valores, etc.), puede registrarse en el programa cliente de Maltego y funcionar como una transform más.

[Read more…]

Un Python mareado

Durante el transcurso del análisis forense de una máquina que sospechamos que está contaminada con malware, hemos encontrado el siguiente fichero: cosa.pyc. ... Leer Más

Revisando los parches con MBSA

En ocasiones, en el transcurso del análisis forense de un sistema Windows, puede resultarnos de utilidad conocer el nivel de parcheado del equipo que estamos analizando. En la presente entrada veremos cómo llevar a cabo esta tarea con ayuda de la herramienta Microsoft Baseline Security Analyzer (MBSA).... Leer Más

Reto de reversing

En la entrada de hoy les proponemos un reto dirigido a los aficionados a la ingeniería inversa.... Leer Más