martes, mayo 31, 2016

WiFiKill: Ataque D.o.S. a conexiones WiFi desde Android

Como parte de un estudio sobre los riesgos de seguridad en redes WiFi explotables por aplicaciones publicadas en el market oficial del Google Play para Android, hoy voy a hablaros de una otra app que pone al alcance de cualquier usuario realizar ataques de Denegación de Servicio (DoS: Denial of Service). En un artículo anterior os hablé de Intercepter-NG, una herramienta que es como una navaja suiza para hacer ataques en una red WiFi al estilo de cómo se pueden hacer con DSploit. Hoy toca hablar de WiFiKill, por petición de uno de los lectores.

Figura 1: WiFiKill - Ataque D.o.S. a conexiones WiFi desde Android

WiFiKill es una herramienta para Android que nos permite inhabilitar la conexión a Internet a otros dispositivos que estén conectados a nuestra misma red y que también nos permite conocer las páginas que se están visitando durante su sesión de navegación. Podremos obtenerlo por medio de Play Store bajando una aplicación que nos dará acceso a la descarga de la APK, o directamente buscando la APK por Internet. Si elegimos buscarla por Internet directamente debemos ser conscientes del aumento del riesgo de ejecutar alguna copia maliciosamente manipulada con malware. Eso sí, para que la aplicación funcione correctamente nuestro dispositivo Android deberá estar rooteado.

Figura 2: WiFiKill en Play Store

Uno de los objetivos de la aplicación es conseguir “echar” de la red a todos los dispositivos que se encuentran en ella. Se podrá elegir qué dispositivos son los que son expulsados, provocando una denegación de servicio solo sobre los dispositivos elegidos.

Usando WiFiKill

Tras descargar la aplicación y darle permisos de root podremos comenzar a usarla. Al abrirla accederemos al menú principal , en el que podremos observar cinco iconos en la parte superior. El primero de ellos es el botón de “Play”, el cual pulsaremos para analizar la red a la que estemos conectados en búsqueda de usuarios. En el momento en el que sea pulsado comenzara la búsqueda cambiando el símbolo de “Play” a “Stop” y nos aparecerá el icono de WiFiKill en la barra de tareas con la frase “WiFiKill is running”. Esto nos indicara que la aplicación está ejecutándose correctamente. Una vez finalizada la búsqueda nos aparecerán en pantalla todos los dispositivos conectados a nuestra red WiFi, indicándonos su dirección IP y su dirección MAC.

Esto es posible gracias a que la aplicación realiza un broadcast con ARP Request, esto consiste en enviar un ARP Request a todas las direcciones IP del mismo rango; los equipos conectados a la red contestaran a esta petición con un ARP reply indicando cuál es su dirección física o MAC, confeccionando así una tabla ARP.

Figura 3: Descubrimiento de equipos con WiFiKill

A continuación seleccionaremos los objetivos de nuestro ataque pulsando sobre ellos. Podremos ponerles nombre para identificarlos posteriormente. Al pulsar sobre “Grab” comenzaran a aparecernos en pantalla las rutas de las páginas visitadas por la víctima, pulsando sobre ellas nos mostrará algunos detalles sobre la sesión.

Esto se debe a que estamos realizando un ataque ARP Spoofing clásico, que al final es el esquema de Man In The Middle más famoso. Por medio de un ARP Spoofing envenenaremos las tablas ARP de los equipos conectados a la red y así podremos interceptar los paquetes enviados entre el router y el equipo de la víctima sin ser detectados. ¿Cómo funciona esto? Sencillo, nuestro dispositivo Android enviará un ARP Reply a las direcciones IP que le indiquemos indicando que la dirección MAC del router ha cambiado. En esta respuesta ARP se indica la dirección IP origen del router original y la dirección MAC de nuestro dispositivo. De esta forma quién reciba esta información actualizará su caché ARP envenenándola. En este instante, cuando el dispositivo spoofeado consulte la tabla para enviarle información al router, por ejemplo una petición hacia Internet, dicha petición pasará por nosotros.

Si pulsamos sobre “Kill” inhabilitaremos la conexión a Internet del dispositivo seleccionado. En este caso lo que ocurre es que se desactiva la función forward (reenvío) para esa dirección de origen en el equipo del atacante - que está haciendo de man in the middle -  provocando que todos los paquetes interceptados sean desechados. Al desecharse los paquetes la comunicación entre el Gateway y el equipo se cortará el tráfico de y hacia Internet provocando la denegación del servicio sin que el cliente se haya desconectado de la red WiFi.

Figura 4: Interceptación de conexión. Se puede grabar o cancelar

Otra forma de obtener el mismo resultado sería realizando un Ataque 0. Este tipo de ataque consiste en el envío de paquetes deauth (paquetes de desautentificación) a uno o más usuarios que estén asociados a un punto de acceso. Si estos paquetes se siguiesen enviando de manera indefinida el usuario no podría conectarse a la red. También podremos realizar un ataque múltiple utilizando las funciones “Grab all” y “Kill all

El segundo icono - Refresh - nos servirá para detectar nuevos dispositivos que hayan podido conectarse a nuestra red desde que comenzamos nuestro ataque, volviendo realizar un ARP Request. El tercer icono - Lupa - nos sirve para buscar palabras clave dentro de la aplicación. Al pulsar sobre el cuarto icono – Llave inglesa - podremos configurar las opciones generales del programa, opciones como la de activar el modo de pantalla completa o decidir si queremos que nos muestre el fabricante de la tarjeta de red, la dirección IP y la dirección física. El último icono - Tres puntos - corresponde a los apartados de ayuda e información de la aplicación.

Figura 5: Opciones de visualización de WiFiKill

Para finalizar nuestro ataque solo tendremos que volverá pulsar el botón “Stop” y automáticamente finalizarán todos los ataques en curso con lo que desaparecerá el icono de WFiKill de la barra de tareas. En caso de no pulsar el botón de "Stop” la aplicación seguirá funcionando en segundo plano aunque hayamos salido de ella.

Con esta aplicación podremos comprobar si hay inquilinos conectados a nuestra red y, en caso de haberlos, seremos capaces de expulsarlos con un simple clic. Interesante herramienta de monitorización y control del uso de la WiFi. Este tipo de herramientas en manos maliciosas pueden causar también un gran daño, ya que automatizando el ataque se podría denegar el acceso a la WiFi de forma prolongada o afectar a la privacidad de los usuarios de la red, así que no te olvides de fortificar correctamente tu red WiFi.

Autor: Sergio Sancho Azcoitia

lunes, mayo 30, 2016

Cómo saber quién y para qué ha utilizado "WeTransfer"

Wetransfer es un servicio en Internet que permite enviar ficheros de gran tamaño sin la necesidad de darse de alta en el servicio o instalar una aplicación. En su versión gratuita permite transferir un máximo de 2 GB de información en forma de ficheros adjuntos junto a un breve mensaje para el destinatario de un mensaje de correo electrónico.

Figura 1: Cómo saber quién y para qué ha utilizado We Transfer

El servicio permite enviar la información adjunta a un correo electrónico de la persona destinataria o generar un enlace de descarga para enviarlo a una o más direcciones de correo electrónico, o simplemente tener ese contenido en el servidor del servicio para descargarlo cuando sea necesario. Eso sí, el contenido tiene un tiempo de vida máximo de 7 días, momento a partir del cual el contenido es eliminado y deja de estar disponible.

Figura 2: Forma de indicar en WeTransfer el destinatario de la información adjunta

En la siguiente Prueba de Concepto (PoC) se mostrará cómo terceras partes podrían:
• Obtener contenido enviado por WeTransfer o almacenado en sus servidores.
• Obtener URLs y parámetros enviados por GET a través de Archive.org.
• Obtener direcciones de correo de los destinatarios de los contenidos junto a sus mensajes.
• Obtener nombres de usuarios bajo ciertos nombres de dominio.
1.- Obtener contenido enviado por WeTransfer o almacenado en sus servidores

Como se ha comentado, la información que se envía adjunta por WeTransfer tiene un tiempo de vida de 7 días, momento en el cual desaparece de sus servidores. Una primera aproximación se basa en comprobar la existencia del fichero robots.txt y ver qué rutas no quiere el servicio que sean indexadas por los motores de búsqueda.

Figura 3: Fichero robots.txt de wetransfer.com

Si hacemos un poco de hacking con buscadores para ver si las opciones de indexación de la web son correctas, y preguntamos a Google qué contenidos tiene indexados referentes a la URL downloads observamos cómo únicamente devuelve un resultado, pero permite repetir la búsqueda e incluir los resultados que han sido omitidos.

Figura 4: Resultados devueltos inicialmente por Google

De esta forma, pasamos inicialmente de 1 resultado a 15000 resultados aproximadamente.

Figura 5: Resultados omitidos por Google en la primera consulta

Aquí he de indicar que no todas las URLs devueltas por Google permiten la descarga de contenido, pero algunas de ellas sí, y es posible acceder a este contenido si aún no ha caducado buscando la URL adecuada.

Figura 6: Descarga de un fichero ZIP - y su contenido - con fotografías indexado por Google

Se observa cómo es posible, en este ejemplo, acceder a más de 25MB de fotografías enviadas por WeTransfer, aunque no es posible conocer quién es el emisor y/o destinatarios de las mismas - sin utilizar servicios de terceros -, pero en ellas aparecen rostros de personas que puede que no hayan dado permiso para estar presentes en Internet.

2.- Obtener URLs y parámetros enviados por GET a través de Archive.org

Lo realizado en el punto anterior me parecía el “método clásico” de comprobar si cierto contenido era accesible a través de los buscadores, así que decidí enfocarlo desde otra manera para intentar que fuera algo más original. Para ello pensé en analizar las peticiones realizadas al servidor en el envío de la información adjunta para intentar obtener parámetros enviados por GET o POST, y a partir de ahí intentar obtener información un poco más sensible.

Figura 7: Ruptura de la cadena de certificación SSL a través de ZAP Proxy

Lo primero fue intentar capturar en el momento de envío de información adjunta las peticiones HTTP/HTTPS con ZAP y Burp Suite y no obtuve ningún resultado, ya que como se ve en la siguiente figura, la página no es capaz de cargarse de manera correcta al reenviar las peticiones HTTP/S a ZAP. Con Burp Suite los resultados fueron idénticos a los anteriores:

Figura 8: Ruptura de la cadena de certificación SSL a través de Burp Suite

A partir de aquí decidí consultar, sacando partido a las opciones que tiene Archive.org para hacer hacking, qué URLs bajo en nombre de dominio wetransfer.com habían sido capturadas por archive.org. En total, 2404 URLs.

Figura 9: URLs capturadas por archive.org

Pueden observase parámetros enviados por GET, como la dirección de correo de un destinatario de información enviada por WeTransfer. A partir de este momento, ya es muy sencillo buscar direcciones de correo electrónico de destinatarios de información, incluso los mensajes que le han sido enviados y nombres de usuarios bajo ciertos nombres de dominio.

3.- Obtener direcciones de correo de los destinatarios de los contenidos junto a sus mensajes

Llegados a este punto, es trivial extraer direcciones de correos de destinatarios de mensajes. Para ello únicamente habría que hacer búsquedas dentro de archive.org con patrones como to=, @gmail, %40, etcétera.

Figura 10: Direcciones de correo electrónico extraídas con el patrón "to="

Figura 11: Cuentas de correo electrónico extraídas con el patrón "@gmail"

Para la obtención del mensaje enviado a una cuenta de correo electrónico, podría utilizarse el patrón msg=:

Figura 12: Mensaje enviado junto con la cuenta de correo electrónico del destinatario

4.- Obtener nombres de usuarios bajo ciertos nombres de dominio

Para terminar, si queremos buscar, por ejemplo, si existe algún username con valor "admin" bajo un nombre de dominio, podemos utilizar el patrón admin@

Figura 13: Envío hacia el usuario admin@netwise.es

Pero esto se puede hacer con cualquier nombre de usuario del dominio y buscar si ha habido, por ejemplo alguna filtración hacia un determinado destinatario.

Conclusiones Finales

Como se ha visto, es posible acceder a información que aún no haya sido eliminada del todo en WeTransfer haciendo un poco de hacking con buscadores, así que no es una buena idea mandar información que pudiera llegar a comprometerte si cae en manos de un cibercriminal.

Tampoco utilices cuentas de correo de carácter corporativo para enviar información utilizando este servicio, ya que como se ha visto es posible conocer usuarios que están bajo ese nombre de dominio y puede que a veces coincida con el nombre de usuarios de servicios como Apache, FTP, SSH, etc. Además, no es una buena idea tener cuentas de correo corporativas del tipo admin@, ya que da una idea de cuál es el nivel de madurez en seguridad informática con el que cuenta esa organización.

Autor: Amador Aparicio de la Fuente (@amadapa)

domingo, mayo 29, 2016

Cursos y conferencias para la primera quincena de Junio

Con la llegada del mes de Junio bajan un poco las actividades, y con el comienzo en mi nuevo rol no he querido comprometerme con más conferencias, por lo que no hay muchas actividades en las que yo vaya a estar presente. No obstante, desde Eleven Paths y Telefónica estaremos en varios sitios, y los libros de 0xWord estarán en algunos cursos. Éste es el calendario para la primera quincena de este mes:

Figura 1: Cursos y conferencias par la primera quincena de Junio

Eleven Paths Talks  [Online]

Este mes cerramos el calendario de charlas que damos online antes de tener el parón veraniego, pero aún nos quedan cuatro charlas pendientes. Como sabéis, las damos los jueves a las 15:30 hora de España. Estas son las charlas a las que puedes apuntarte durante la primera quincena.
02: OSINT - The power of public information con Diego Samuel Espitia.
08: Análisis de riesgos con Gabriel Bergel.
En la web de Eleven Paths Talks puedes acceder a todas las charlas anteriores, que ya hay una buena cantidad de temas tocados en ellas, desde el pentesting, hasta la Deep Web, pasando por la biometría o los estándares de gestión de la seguridad informática.

InfoSecurity, ISACA y Open Expo [Madrid, Sao Paulo & Londres]

Durante esta primera quincena estaremos en varios eventos den Madrid y Londres. El día 2 estaré yo dando una charla en OpenExpo en Madrid con un juguete nuevo en el que hemos estado trabajando mi compañero Pablo González y yo. El día 7 estaremos hablando de Seguriad IoT en el InfoSecurity de Londres y los días 7 a 9, en Telefónica (Madrid), tendrá lugar una reunión de ISACA en la que hablarán los principales miembros de esta organización, y en la participaremos. 
02 - OpenExpo [Madrid]
07 - InfoSecurity [Londres]
07 - CNASI [Sao Paolo]
08 - ISACA [Madrid]
Como veis, también nuestro compañero CSA de Eleven Paths en Brasil estaré en el evento CNSAI el día 7 de Junio participando en un panel.

Cursos Online en "The Security Sentinel"

Además del curso que da comienzo este lunes orientado al Análisis Forense, durante la primera quincena del mes de Junio comenzarán dos cursos más con libros de 0xWord. En este caso:
06: Curso Online Python para Pentesters
   [libro de Python para Pentesters]
13: Curso Online Hacking Ético de dispositivos móviles
   [libro de Hacking de Comunicaciones Móviles]
Y esto es todo lo que tenemos para la primera quincena del mes. Si hay alguna novedad lo anunciaremos en la web de Eleven Paths en la sección de Eventos, en nuestra Comunidad de Eleven Paths o en nuestra cuenta Twitter (@elevenpaths). Yo, aviso de todas formas siempre con algo de tiempo por mi Canal Telegram.

Saludos Malignos!

sábado, mayo 28, 2016

SNMPChat: Chatear en un canal encubierto sobre SNMP

En esta entrada quiero presentar una herramienta de mensajería instantánea llamada SNMPchat, la cual utiliza el protocolo SNMP (Simple NetWork Monitoring Protocolo) para intercambiar mensajes de texto entre dos personas. Recordemos que SNMP es un protocolo de monitorización  que se utiliza como parte de la estrategia en la administración de sistemas de todo tipo de elementos, que puede ir desde los routers de una organización, pasando por los servidores, firewalls, para llegar a administrar también los terminales móviles y una gran cantidad de dispositivo en entornos corporativos.

Figura 1: SNMPChat. Chatear en un canal encubierto sobre SNMP

Sobre el uso del protocolo SNMP en el mundo de la autidoría ya se publicaron por aquí muchos artículos que explican cómo sacarle partido al protocolo SNMP para obtener información de la red, los servidores, los dispositivos móviles e incluso los procesos que están corriendo y con qué parámetros fueron lanzados. Los tenéis aquí:
- Auditando Hosts Windows y *NIX* con SNMP (Parte I)
- Auditando Hosts Windows y *NIX* con SNMP (Parte II)
- Descubrir la red de una organización con consultas SNMP
- Shodan y agentes SNMP: Administrando el mundo
- Servidores Novell Netware con agentes SNMPv1 en Shodan
Pero aunque el uso de un protocolo de comunicación fue pensado para monitorear dispositivos y no para intercambiar mensajes de texto, el que esté tan extendido SNMP por los diferentes sistemas y dispositivos convierte a este protocolo en un medio perfecto para crear un canal encubierto (covert channel), ya que esta comunicación podría pasar desapercibida, y oculta en cualquier red. Al igual que cuando se usan técnicas de esteganografía en TCP o las de exfiltración de datos en ICMP, no sería raro ver tramas SNMP en una red, por lo que si no hay mecanismos de seguridad extra no se generaría ninguna alerta por el tráfico SNMP.

Chatear sobre SNMP con SNMPChat

SNMPchat está escrita en Python y fue diseñado sobre una arquitectura cliente-cliente poco convencional en redes de datos que dificulta aún más su detección. Es cliente-cliente ya que no utiliza sockets, es decir, no tiene servicios escuchando en la capa de transporte. Muchos se preguntaran en este momento, ¿bueno, entonces cómo funciona? … bien tanto para el envió como recepción de mensajes utiliza la librería Scapy de Python, la recepción y decodificación de los mensajes la hace a través de sniff, una función de scapy que permite que la tarjeta de red trabaje en modo promiscuo para escuchar el tráfico que esta recibe y gracias a la versatilidad de la función se puede filtrar solamente el tráfico que nos interesa, es decir el trafico SNMP.

Esta arquitectura no utiliza servidores intermedios como hacen los servicios de mensajería instantánea o IRC y se aprovecha de los paquetes SNMP para ocultar la información enviada. Pero se requiere que, si se quiere usar a través de Internet, en los dos extremos se configure en el firewall o router un NAT y una regla para permitir que el tráfico del puerto SNMP vaya hacia cada cliente. Para ello utiliza los mensajes tipo Get-Request de SNMP los cuales son utilizados normalmente para solicitar a través de los OID (Object ID) algún recurso de la MIB (Managment Information Base) en el dispositivo a monitorear. En este caso utilizaremos los OID para ocultar los mensajes de texto.

Figura 2: Mensaje en texto plano camuflado como OID

Los OID se utilizan para definir las ontologías en una comunicación entre dos servicios SNMP, de tal manera que conociendo el OID del objeto que se envía, cada extremo de la comunicación conoce automáticamente la estructura de los atributos. Para ello, tienen un formato del estilo: 1.3.6.1.2.1.1.1, que sirve para identificar de qué objetos extiende su estructura. Como en este caso no vamos a comunicar dos servidores SNMP, lo que hace SNMP  es convertir cada letra del mensaje de texto en su valor ASCII decimal correspondiente y acomodarlos en el OID, conservando el formato del valor y enviando el paquete.

Como ya se explicó, en el otro extremo el receptor realizara el sniffing del tráfico y decodificaraá el mensaje que llego en la OID. Esta es una prueba de concepto que muestra cómo meter datos en los paquetes SNMP sin llamar mucho la atención, los datos van en texto claro y su valor ASCII, así que para garantizar mayor confidencialidad los mensajes deberían ir cifrados extremo a extremo. Aquí tenéis un vídeo que muestra cómo sería la experiencia del sistema.


Figura 3: Configuración y uso de SNMPChat

Al ser un canal encubierto, el riego es generar un tráfico grande entre dos servidores y llamar la atención de los sistemas de monitorización por la cantidad de paquetes enviados, así que, para evitar cifrados de gran peso - que cada uno decide qué quiere utilizar - tal vez sería interesante volver a poner en práctica los sistemas de cifrado clásicos, menos robustos frente a ataques de criptoanálisis, pero menos ruidos en cuanto al número de paquetes que sería necesario enviar.

Configuración y uso de SNMPChat

SNMPchat utiliza la comunidad SNMP para autenticar los mensajes, por lo tanto, esta debe ser configurada igual en los dos extremos, de igual forma que el puerto UDP. La herramienta funciona en Kali Linux perfectamente y no es necesario instalar ninguna dependencia o librería adicional. En las siguiente imagen siguiente se ve la ayudar de la herramienta.

Figura 4: Ayuda de SNMPChat

Es obligatorio para que funcione especificar la dirección IP local (-l) y la dirección IP destino (-d), mientras que la comunidad SNMP (-c) como el puerto (-p) vienen con valores por defecto, Sin embargo se pueden especificar unos diferentes, y si quieres cifrar los mensajes con AES - incorporado por defecto en la herramienta - lo puedes hacer con la opción (-e) para pasarle la key que debe usarse para el cifrado. Luego de especificar los argumentos, la herramienta solicitara ingresar tu nombre para la comunicación y a chatear sobre SNMP se dijo:

Figura 5: Ingreso de nombre para comenzar la conversación

Si quieres abandonar basta con que teclees "q" y de esta forma el otro extremo quedara notificado de que cerraste la sesión. En la siguiente imagen se ve el interfaz de comunicación usando SNMPChat.

Figura 6: Conversación con SNMPChat

El script lo pueden descargar de mi repositorio en Github,y espero que les sirva para poder avanzar en las técnicas de canales encubiertos, esteganografía, estegonanálisis o, simplemente, para chatear un rato.

Saludos desde Colombia.

Autor: Juan Esteban Valencia Pantoja

viernes, mayo 27, 2016

Mi nueva vida como Chief Data Officer en Telefónica

La verdad es que no esperaba que se generara tanto revuelo con mi nuevo rol dentro de Telefónica, pero el impacto en la sociedad de esta compañía es mucho más grande de lo que uno se imagina, que hasta Andreu Buenafuente se ha disfrazado como si fuera yo - con el que tuve la suerte de estar en un programa -. Han aparecido muchos artículos y en algunos de ellos, los datos no eran del todo correctos. Para los que no os haya llegado aún la noticia, desde el martes he tomado el rol de Chief Data Officer en Telefónica para ocuparme de una serie de iniciativas dentro del grupo que circulan alrededor del mundo del Big Data y la Seguridad de la Información, principalmente.

Figura 1: Mi nueva vida como CDO en Telefónica

La verdad es que no pensaba hablar mucho de este nuevo rol y esperar, como hice con el lanzamiento de Eleven Paths, unos meses hasta que me hubiera dado tiempo a organizarme bien, pero viendo que salió en tantos medios de comunicación, e incluso en el Telediario Nacional de TVE1, creo que no va a ser posible esperar ese tiempo, así que os cuento un poco en resumen qué he estado haciendo en Telefónica estos años y qué voy a hacer ahora.

Figura 2: El popular presentador Andreu Buenafuente con el gorro de rallas y las melenas

Dese que llegué a la casa hace ya más de 4 años - como sabéis no acabo de fichar precisamente - he estado cambiando de rol varias veces, pero siempre llevando la tecnología y la seguridad informática como epicentro. Primero estuve como asesor/consultor de nuestro hoy presidente D. José María Álvarez-Pallete, dentro de una iniciativa de la que os he hablado ya muchas veces llamada Talentum Startups. Allí estuve poco más de un año desde Febrero de 2012 hasta que pasé a mi siguiente ocupación.

Figura 3: Año 20102. Con Javier Santiso (mi compañero en la creación de  Telefónica Talentum) en la primera
selección de jóvenes para los programas de Talentum Startups Short Track & Long Track

En Abril de 2013, con la incorporación de todo mi equipo de Informática 64 en Telefónica lanzamos Eleven Paths, una empresa filial de Telefónica enfocada en la innovación en tecnologías de seguridad de la información - aunque estuvimos en modo silencioso hasta Junio. Allí, comenzamos a construir Faast, Latch, MetaShield Protector o Tacyt, por citar los productos principales que creamos durante la primera etapa. No solo creamos productos, sino que también incorporamos tecnologías provenientes de la compañía SmartAccess, como fueron SmartID y SealSign


Figura 4: KeyNote Security Innovation Day 2014. Resumen de dos años en Eleven Paths

En Abril de 2015, dos años después, fusionamos todos los equipos de seguridad de la información globales en Telefónica Business Solutions, y he estado trabajando como Director de Seguridad de la Información B2B.  En esta nueva unidad global lanzamos los programas de alianzas estratégicas que firmamos con Palo Alto, BlueCoat, Alien Vault, Intel Security, Vaultive, RSA y que ahora hemos extendido a Fortinet y Spamina. Además, incorporamos los productos Sinfonier, SandaS y Mobile Connect, y los servicios de CyberSeguridad basados en Vamps, CyberThreats y AntiFraud. También adquirimos SandaS GRC, un porcentaje de otras compañías de seguridad como Alise Devices (Liliac) y algoritmos biométricos provenientes de la Universidad Carlos III.


Figura 5: KeyNote Security Innovation Day 2015. Resumen del año en Eleven Paths

En estos tres últimos años hemos estado, además de sacando las patentes tecnológicas para las nuevas ideas y de desarrollar todos los productos que os he citado, creando los servicios de seguridad dede la red, los servicios de seguridad en los Data Centers, trabajando en Seguridad IoT y ampliando la red de SOCs por todo el mundo, llegando a montar los de Etisalat o Turk Telekom que ahora hemos firmado. Entre ellos, la última alianza con CheckPoint para integrar MTP y Tacyt en la seguridad de dispositivos móviles en entornos corporativos.

Ahora, en Mayo de este año, dentro de la unidad CDO hemos unido los equipos de Big Data y Cyberseguridad debido a las sinergias que tienen ambos y la importancia que para Telefónica es su visión de devolver a los usuarios el control de sus datos. Y ese es mi nuevo rol dentro de la compañía, como ya dejé publicado en mi perfil de Linkedin, ocuparme de los productos y servicios de seguridad de la información tanto para B2B como para B2C, además de toda la estrategia alrededor de los datos, es decir, los servicios de Business Intelligence, Big Data y nuestras estrategias destinadas a transformar la relación de nuestros clientes con sus datos.


Figura 6: Conferencia de Big Data y Privacidad en Fundación Telefónica

Para la compañía, esta evolución es muy importante, y por eso el puesto de CDO está dentro del comité ejecutivo desde su concepción. Ahora soy yo el que tengo que continuar el buen hacer de Ian Small, quien se ha ocupado del rol de CDO desde que se constituyó el año pasado, además de continuar con el buen hacer que desde hace años los equipos de Seguridad de la Información y BI / Big Data han hecho en Telefónica.

Curiosamente para mí se da una vuelta la vida, pues cuando estudié en la universidad mi interés iba enfocado al mundo de las bases de datos - trabajé mucho con Oracle y SQL Server - y no me interesaba tanto la seguridad, como expliqué en el pequeño discurso que di cuando me hicieron embajador honorífico de mi escuela.


Figura 7: Discurso de "la servilleta", el día que me hicieron embajador
honorífico de la Escuela de Informática de la UPM

Después, gracias a la aparición de las técnicas de SQL Injection, todo ese conocimiento en el lenguaje SQL me llevó al mundo de la seguridad informática y a hacer mi doctorado en técnicas de inyección de comandos a ciegas - muy motivado por el conocimiento en bases de datos que tenía -. Ahora, el mundo de la seguridad se movió hacia el Big Data y se cierra un círculo que me llevó de la gestión de los datos a la seguridad de la información y ahora a la gestión segura de grandes volúmenes de datos. Y no solo estoy contento, estoy contento e ilusionado por comenzar a disfrutar de todas estas tecnologías juntas.

Saludos Malignos!

jueves, mayo 26, 2016

Cómo infiltrar malware o herramientas de hacking en una empresa usando Excel

Últimamente, con la proliferación de malware del tipo ransomware, las empresas que no tenían ya bloqueada la descarga de ficheros ejecutables en su Firewall o Proxy, la han bloqueado. La medida es efectiva por la mecánica de infección de este tipo de malware, que en muchos casos implica la descarga de un fichero ejecutable que es el que se encarga de cifrar la valiosa información del usuario y de la empresa. Sin embargo, esta medida no tiene porque ser eficaz frente a un ataque dirigido y hecho a medida como suelen ser los APT, como vamos a ver.

Figura 1: Cómo infiltrar malware o herramientas de hacking en una empresa con Excel

Bloquear la descarga de ejecutables en el firewall de perímetro por el que los usuarios de la empresa navegan en Internet es una medida a tener en cuenta por los responsables de seguridad dentro de la política de Defensa en Profundidad de la red, pero una vez bloqueada esta descarga de ficheros, inevitablemente surgen preguntas. ¿Puede un atacante saltársela fácilmente? ¿Y si se salta, es posible implementar de forma sencilla un ataque automatizado?

HTTPs Inspection: Canal cifrado o canal abierto

Supongo que hay varios enfoques para conseguir saltarse la detección de un fichero EXE por parte del firewall en cuestión. Uno sería, por ejemplo, cifrar el canal de comunicación de las descarga punto a punto para que no se pueda analizar ese tráfico, pero desde hace años los sistemas de navegación empresariales pueden implementar medidas de Bridging HTTPs - como implementa desde hace años Forefront TMG - para inspeccionar el tráfico de descarga que hacen los clientes. Es decir, los clientes para poder navegar por Internet necesitan configurar un certificado raíz del firewall y este hace de man in the middle para inspeccionar tráfico HTTPs.

Figura 2: HTTPs Inspection en Forefront TMG

En esta prueba de concepto, vamos a intentar engañar al firewall para que la descarga de los ejecutables no sea considerada como tal, aún cuando el tráfico pueda ser inspeccionado porque venga por HTTP o porque se esté haciendo una inspección HTTPs.

Infiltrando binarios por partes

Por empezar por algún sitio me voy a centrar en los archivos EXE y como solución perimetral un firewall con inspección de tráfico y bloqueo de ficheros. Lo primero es averiguar qué partes del ficheros son la firma de un EXE para el firewall. Esto puede ser solo la cabecera inicial del binario con los Magic Numbers que se buscan, o algo mucho más elaborado donde se comprueben más partes del binario.

Figura 3: Primera parte del fichero EXE es detectada

Como primera prueba empírica, vamos a partirlo en dos y ver si una, ninguna o las dos partes son detectadas por el firewall y lo bloquea o lo deja pasar. El resultado que se obtiene es que el primer trozo, al descargarlo, es considerado como un EXE y el segundo no:

Figura 4: La segunda parte del fichero sí es descargada

Ya tenemos pistas. En el primer “trozo” del fichero EXE se encuentra la firma que se busca como patrón para detectarlo y bloquear la descarga. ¿Será un patrón? Si lo es, ¿se podría trocear el fichero en partes lo suficientemente pequeñas para que ese patrón quedara diluido? La idea es que si lo troceamos lo suficiente, podríamos llegar a ofuscarle la firma. Después de algunas iteraciones jugando con el tamaño de las partes del archivo, con 29 partes de 200 bytes del principio del EXE y otra parte más con el resto del fichero, llegamos a un escenario como éste.

Figura 5: Fichero dividido en 30 partes

Una vez subidas al servidor web de turno se intentan descargar y todas bajan. Hemos conseguido descargar un EXE estando prohibido. Ahora solo queda volver a juntar las partes para conseguir reconstruir nuestra "herramienta de hacking" Putty.

Figura 6: Putty se ejecuta correctamente una vez reconstruido el binario

Automatizando la infiltración del binario con Excel

Ahora queda la segunda parte, en la que vamos a intentar automatizar el proceso de recomponerlo. Para ello vamos a utilizar la potencia de Excel y sus macros - que ya vimos que un atacante se puede llevar uno la base de datos completa de la empresa con solo habilitar las macros - y que se han puesto de moda últimamente otra vez. Solo hay que programar una macro que descargue las partes del EXE de la web donde estén colgados y que después los junte otra vez. Ese archivo Excel tendría que descargar las partes, después cargar esas partes en orden en un string y después escribir ese string en un archivo binario que nivel de código no es muy difícil. Y usar después la función Auto_Open(), por ejemplo, para que se ejecute todo simplemente abriendo el Excel.

Figura 7: A partir del Excel se descargan las partes y se monta el archivo final

Con solo abrir el Excel - y conseguir que se ejecute la macro - el fichero Excel descarga todas las partes del servidor desde la máquina interna de la red detrás del firewall, las une y después ejecuta el binario resultante.

Figura 8: Ejecución de Putty con solo ejecutar la macro del fichero Excel

Protección en el end-point

Ya hemos conseguido que el fichero Excel con macros se baje un binario saltándose el bloqueo de ficheros EXE en el firewall. La siguiente pregunta es si un fichero de estas características será muy llamativo para las protecciones de end-point como los antivirus. Para la mayoría no es significativo, pero además el código se puede mejorar y ofuscar en diferentes iteraciones hasta que se evada el motor antivirus en concreto que tenga la empresa objetivo de este ataque.

Figura 9: El fichero Excel no llama la atención de muchos Antivirus

Un posible problema es que el usuario si puede, tiene que habilitar las macros para que esto funcione, pero con una campaña de Spear Phishing contra los empleados de la empresa objetivo con este fichero Excel adjunto ¿estaríais completamente seguros de que ningún usuario le va a dar a activar macros? Por supuesto, existen políticas a nivel de Active Directory para que las macros vayan firmadas, pero esto ya vimos hace tiempo que se puede saltar si el usuario de Excel quiere o cae engañado para hacerlo, con las técnicas de "Hacking Remote Apps: Jailbreaking con Excel".

Owning con Metasploit

Ahora imaginad que en vez de el Putty el archivo fuera un script de Phyton compilado a EXE con un cliente que devolviera una shell remota a través de HTTP, o un ransomware distribuido de esta forma o directamente un Meterpreter para hacer diabluras con Metasploit, tal y como hicieron Chema Alonso y Pablo González en la conferencia del Security Innovation Day de 2014. Aquí os dejo el vídeo con el instante de tiempo de esta demo con Excel.


Figura 10: Metiendo una shell con Excel

No quiere decir este artículo que las medidas de bloqueo de ficheros EXE en los firewalls por los que se navega sean inútiles. Ni mucho menos, proporcionan una protección adecuada para evitar que el malware pueda entrar fácilmente. Pero estas medidas deben acompañarse de muchas otras. En este caso concreto hemos hecho una división del binario para evadir las firmas, pero el atacante podría haber cifrado el fichero completamente en lugar de meterlo por partes, o encontrar otra estrategia para saltarse el fichero.

Así que, dentro de la estrategia de defensa de una empresa, habría que aplicar medidas de protección a todos los niveles, y fortificar Windows correctamente, incluidas las opciones de Excel. Este artículo, solo es un ejercicio para probar cómo un APT puede acabar encontrando el camino si tiene tiempo para aprender cuáles son tus defensas y preparar un ataque diseñado especialmente para ti. No te olvides de eso.

Saludos.

Autor: Xavier Nogues García

miércoles, mayo 25, 2016

OSINT Framework: Dónde buscar datos de tus objetivos

Hace unos meses llevé a cabo una pequeña investigación dónde pude observar lo fácil que sería para los malos aprovecharse de las fuentes abiertas para tomar el control de máquinas, a través de la explotación de vulnerabilidades conocidas. Con ello hice la charla de "Cómo los malos pueden conquistar el mundo". ¿Cómo obtener la relación vulnerabilidad – máquina? Fácil, el secreto está en la disciplina OSINT (Open Source INTelligence).

Figura 1: OSINT Framework {Dónde buscar datos de tus objetivos}

Fuentes como scans.io proporcionan los resultados de escaneos semanales a diferentes puertos en todo el espacio de direccionamiento IPv4, por lo que si conocemos vulnerabilidades de ciertas versiones de software, tenemos toda la información necesaria y cruzada. Nuestros compañeros Rafa y Fran de Eleven Paths han creado MrLooquer, el cual es un servicio para generar inteligencia y poder realizar ataques en IPv6. Un servicio orientado al descubrimiento de direcciones IPv6 y servicios que ejecutan sobre éstas. Esto provoca que MrLooquer sea una fuente de información, la cual con un trabajo similar al realizado en mi trabajo sobre IPv6 se podrían lograr resultados sorprendentes.


Figura 2: Cómo los malos pueden conquistar el mundo

En el artículo de hoy hablaré sobre OSINT Framework. Es un recurso bastante interesante para llevar a cabo búsquedas de fuentes de información abiertas. La clasificación sobre diferentes temáticas y objetivos de la información propuesta es muy grande y puede dar muchas ideas sobre diferentes investigaciones partiendo del campo OSINT. Además, conocer los diferentes recursos que propone OSINT Framework es importante para un pentester, ya que puede involucrar OSINT Framework en la etapa de Footprinting.

Observando el árbol que OSINT Framework proporciona al usuario podemos ver cómo existe una clasificación que comienza orientada a la persona. Si pinchamos en cada nodo se desplegarán los sitios dónde se podrá acceder a la información.

Figura 3: Lugares para localizar nombres de usuarios en redes sociales

La búsqueda de usuarios, la búsqueda de direcciones de correo electrónico, direcciones IP, recursos multimedia o perfiles en redes sociales son casos típicos de OSINT. He descubierto un gran número de recursos y fuentes gracias a esta recopilación que hace OSINT Framework. Como ejemplo sencillo podemos encontrar en la categoría “Email Address”, la rama Breach Data. Aquí encontramos dos recursos, aunque podríamos sumar sitios como Have I been Pwned? o ¿He sido hackeado?

Las categorías de nombres de dominio y direcciones IP proporcionan sitios dónde el usuario podrá obtener gran cantidad de información. Por ejemplo, en el caso de las direcciones IP podemos ver cómo existen fuentes de información sobre reputación, geolocalización, puertos abiertos, direccionamiento IPv4 e IPv6, incluso, mapas de redes wireless. En el caso de “Cómo los malos pueden conquistar el mundo” una fuente de información como scans.io podría encajar en la subcategoría “Open Ports” de “IP Address”.

Figura 4: Mapas de redes Wireless

En el caso de los nombres de dominio tenemos otras subcategorías interesantes y que proporciona información sobre los dominios. Por ejemplo, el Whois, todo un clásico, la reputación de los dominios, subdominios almacenados de los propios dominios, etcétera. Uno que me llama la atención es la subcategoría “vulnerabilities” dónde encontramos sitios como Shodan, Zone-H o XSSPosed.

Figura 5: Categoría de vulnerabilidades

Otra categoría que puede proporcionar mucho juego son las redes sociales. Solo con Facebook y Twitter tenemos diferentes funcionalidades y fuentes de información disponibles, en función de lo que se quiera en cada momento. Por ejemplo, en Facebook tenemos la posibilidad de buscar desde fotografías, cuentas, archivos, personas a través del directorio de personas de Facebook. En el caso de Twitter, la posibilidad de buscar patrones, usuarios, localizaciones y geolocalizaciones, etcétera, hacen que se pueda extraer gran cantidad de información a través de estos sitios.

Figura 6: Información que se puede sacar a partir de Facebook

La parte inferior del árbol clasifica las fuentes de información más orientada a contenidos no personales. En otras palabras, podemos encontrar fuentes de información orientadas a vulnerabilidades, OpSec, análisis de malware, análisis de código, metadatos - como MetaShield Analyzer -, foros o máquinas del tiempo como Archive.

Figura 7: Reconocimiento de frameworks

Al ver la parte de “Exploits & Advisories” me vino a la mente la parte para localizar exploits públicos con la que tuve que trabajar en “Cómo los malos pueden conquistar el mundo”. La categoría “Code Search” presenta sitios que permiten realizar búsquedas en millones de líneas de código, pudiendo realizar búsquedas de código de empresas, proyectos, funciones inseguras como hacía OSB Rastreator o Gitrob. Gitrob se encuentra entre las herramientas que se recomienda en “Code Search”.

Figura 8: En exploit & Advisories tienes los CVEs documentados. Entre ellos CVE Details

Otra categoría realmente interesante y que puede ayudar a muchos a lograr encauzar investigaciones interesantes es la de “Malicious File Analysis”. Existen cuatro subcategorías como son las fuentes de análisis de host automatizado, ficheros ofimáticos - donde se puede utilizar MetaShield Analyzer -, PDFs o PCAPs con sitios tipo Immunity Stalker.

Figura 9: Análisis de documentos

Como se refleja en el sitio web de OSINT Framewor,k el mundo de Open Source INTelligence es muy grande, y realmente podemos tener fuentes abiertas de cualquier tipo. Lo único que importa es cómo procesemos esa información y la inteligencia que le aportemos. Esto es lo que hicimos en la construcción de nuestra querida FOCA. ¿Estás pensando en llevar algún tipo de investigación tomando como punto de partido un gran volumen de información público? Ya sabes dónde tienes que buscar información.

Autor: Pablo González Pérez (@pablogonzalezpe)
Escritor de los libros "Metasploit para Pentesters", "Ethical Hacking" y “Pentesting con Powershell

martes, mayo 24, 2016

Esteganografía con ficheros de audio: Enviar documentos secretos en tus canciones preferidas #Esteganografía

Las técnicas de esteganografía nos permiten ocultar elementos (mensaje, objetos, etc…) dentro de otros elementos de modo que el primero sea imperceptible a primera vista. Por ejemplo, se puede ocultar información dentro de una imagen utilizando los bits menos significativos para componer el mensaje oculto. Pues bien, en la siguiente prueba de concepto, vamos a realizar algo parecido ocultando archivos “dentro del sonido” de un fichero WAV.

Figura 1: Esteganografía con ficheros de audito

Para entender mejor esta prueba, vamos a explicar un poco algunos conceptos básicos necesarios. Todos nosotros cuando éramos pequeños, seguro que hemos cogido plantillas de dibujo en las cuales habían unos puntos numerados, los cuales teníamos que seguir con el lápiz para formar la silueta del dibujo. Pues bien, con el sonido digital ocurre algo parecido. Cuando estamos grabando una sesión de sonido, nosotros elegimos el samplerate (muestras de valores de sonido tomadas en un segundo) y la resolución de dicha muestra (cantidad de bits con los que se miden dichos valores). De esta manera, cuando el reproductor, procese el audio grabado, lo hará como si escribiera una figura de puntos numerados, creando así las ondas sonoras que se reproducirán en nuestros altavoces.

Figura 2: Los puntos indican en qué momento del eje X (tiempo) se ha tomado una muestra de sonido,
 y en eje Y se dibuja la resolución captada en ese momento (negativo o positivo)

Vale, pero entonces, ¿cómo podemos ocultar la información “dentro del sonido”? Pues la verdad, es que es bastante sencillo de realizar. Teniendo en cuenta, que la resolución de cada muestra puede ser de por ejemplo 16 bits, vamos a coger los 8 bits menos significativos (valores comprendidos entre 0-255, lo cual hace que la modificación de onda de sonido sea imperceptible) de la muestra para almacenar cada byte del fichero que queremos ocultar, además, éstos se van a intercalar entre el canal derecho e izquierdo (stereo) y en un intervalo de X muestras (para evitar posible deterioro en el audio).

Figura 3: Valores de los bits de audio en 16bits

Figura 4: Valores máximos por profundidad de bits:

Además, para poder tener una estructura la cual podamos desenglosar y recuperar, añadiremos las siguientes funcionalidades:
- Generaremos una cabecera dentro del audio modificado para poder identificar que ahí se está escondiendo “algo” (con un tamaño que determinaremos nosotros). 
- Un byte para indicar si el fichero está cifrado con GPG (Añadir una capa de cifrado al documento oculto nos dará más garantía) 
- Una trama de 4 bytes para identificar el tamaño del fichero a extraer (número de 32bits, además, nunca llegará a ser tar alto por las limitaciones de un fichero wav, pero 24 bits podrían quedarse cortos). 
- Y finalmente la trama de bytes del fichero oculto.

Figura 5: Estructura de la trama de datos ocultos

Para poder visualizar mejor lo que se pretende hacer, he creado un script en Python que utiliza la librería wave y gnupg para este fin, del cual explicaremos los bloques más importantes (recalcar que el script está diseñado para ser funcional a sabiendas de los errores que puede causar por no estar diseñado para un uso constante). El script y demás material lo podéis descargar del siguiente repositorio de github: Estewav y en este vídeo tenéis un ejemplo de su funcionamiento:

Figura 6: Funcionamiento de Estewav

Analizando el script para ocultar documentos en ficheros wav

Sólo vamos a repasar los apartados clave del mismo y para seguirlo es muy recomendable tener el script a mano. Vamos a ver el codificador - encargado de codificar y cifrar el archivo que queremos ocultar en el archivo wav - y luego el decodificador podéis ver en el script como es exactamente la función inversa.

codificador.py 

jumpsData = 10
#Espacio de muestras del framerate para la toma de datos válidos, al hacer esto, hacemos que los cambios en el audio se noten menos aun si se puede...

numFraSize = 4
# numero de bytes con el que se compondrá el número decimal final que indica la cantidad de bytes que ocupa el fichero oculto

cipher = CIPHER_ON
# establecemos si se va a cifrar o no

header = ["S", "Y", "L", "M"]
# 1 byte por cada caracter (contra menos caracteres, más posibilidades de error por accidente), pasaremos el valor de cada string a su valor ascii para poder manipularlo como bytes.



# Obtenemos los datos del fichero de audio original para que sean iguales en el audio wav destino:

channels = fileWav.getnchannels() # canales de audio (1 mono, 2 stereo)
sampleWidth = fileWav.getsampwidth() # número de bytes para las muestras del samplerate
frameRate = fileWav.getframerate() # obtenemos el número de muestras (frames) por segundo que realiza



# Si el cifrado está activo, lo ciframos (nos guardamos también el fichero cifrado original)

if cipher == CIPHER_ON:

gpg_home = "gnupg"
gpg = gnupg.GPG(gnupghome=gpg_home)
encrypted_ascii_data = gpg.encrypt_file(fileToHide, None, passphrase=passphrase_cipher, symmetric=True, output=pathFileToHideCipher)
fileToHide.close()

fileToHideEncripted = open(pathFileToHideCipher, 'rb')
bytesFileToHide = bytearray(fileToHideEncripted.read()) # guardamos todos los bytes del archivo en un array
fileToHideEncripted.close()
else:
bytesFileToHide = bytearray(fileToHide.read()) # guardamos todos los bytes del archivo en un array
fileToHide.close()



startIn = 0 # índice del byte del sample de audio donde se empieza a contar

# A tener en cuenta:
#
# bytem = byte menos significativo
# byteM = byte más significativo
#
# si se un sistema estereo el muestreo comienza así -> bytem_ch1 - byteM_ch1 - bytem_ch2 - byteM_ch2 .....
# si se un sistema mono el muestreo comienza así -> bytem_ch1 - byteM_ch1 - bytem_ch1 - byteM_ch1 .....
#
# ----------------



# Este será el espaciado (saltos) con el que intercalemos cada uno de los bytes de toda la trama (cabecera, etc...)
jump = (sampleWidth * jumpsData) # salto para grabar en los bytes correctos



# Al tratarse de bytes no podemos poner un número entero muy alto en cada valor, para ello separamos el número total de bytes que se tienen que guardar en 4 octetos (32bits), mediante desplazamiento binario:
# grabamos el tamaño bytes que ocupa el fichero oculto en los bytes asignados para ello
# utilizamos desplazamiento de bits para guardarlo en bloques de un octeto (byte) y luego poder recomponerlo
desplazamiento = 0
for i in range(numFraSize):

#print bytes(len(bytesFileToHide)>>24 & 0xFF) , bytes(len(bytesFileToHide)>>16 & 0xFF) , bytes(len(bytesFileToHide)>>8 & 0xFF) , bytes(len(bytesFileToHide)>>0 & 0xFF)
bytesfileWav[indexSampleWav] = len(bytesFileToHide)>>desplazamiento & 0xFF
desplazamiento += 8
indexSampleWav += jump

Tal y como están diseñados los scripts, podéis clonaros el repositorio y ejecutarlo cambiando los valores de los ficheros de origen y destino o simplemente ejecutarlo y ver los resultados. Al ejecutar el script codificador.py veremos lo siguiente en la salida:

Figura 7: Salida del codificador

Nos proporciona datos sobre el audio de origen como el número de canales, el ancho de muestra en bytes y el número total de frames que tiene el ficheros. Además, nos calcula en base a esos datos y en base a los saltos que tenemos configurados, cuantos bytes podemos ocultar dentro de él. A parte, nos analiza si el tamaño del fichero que queremos ocultar es inferior a la capacidad máxima y de ser así nos lo oculta, tiendo en cuenta, que si hemos activado el cifrado GPG nos lo ocultará cifrado con el passphrase que hayamos configurado en el script.

A continuación escucháis el fichero .wav original (por defecto audioBase3.wav) y a continuación escucharéis el fichero estego.wav el cual lleva oculto el fichero (por defecto oculta el archivo calico.jpg cifrado). Es muy probable que no notéis ninguna diferencia entre los dos archivos de sonido. Para hacernos una idea de la viabilidad de esta técnica de esteganografía, vamos a realizar la visualización gráfica del sonido, y para ello nos ayudaremos de la herramienta audacity. A continuación mostraré una imagen de dos tomas de tiempo de un audio musical (audioBase3.wav) y el mismo aplicándole la esteganografía (estego.wav).

Figura 8: Audio de fichero original y con esteganografía

Como podéis ver, ni si quiera aumentando hasta ver los puntos de muestreo podemos detectar una diferencia visual apreciable (menos aún nuestro oído). Para acercarnos más y poder ver algo con más claridad, en las siguientes dos imágenes pondré un captura de audio con una frecuencia constante de 1Hz y otra imagen de audio nulo (plano), para que podamos ver que aunque la diferencia de valores es minúscula, estos, claramente existen.

Figura 9: Imagen de toma con 1Hz con un ciclo completo.

Aquí ya podemos ver pequeños cambios en el alisado de la onda, pero tenemos que tener en cuenta que la onda de arriba es una onda perfecta generada por código y en la grabación de audio real no es tan perfecto.

Figura 10: Imagen de toma nula (silencio completo)

En este último ejemplo, al ser un audio totalmente nulo, podemos ver sin problemas la dimensión que tiene un byte de datos dentro del audio, el cual es insignificante, ya que hay que tener en cuenta que todo el audio es nulo excepto el dato oculto. Y esto es todo. Espero que os haya gustado y hasta la próxima.

Saludos!

Autor: Christian Prieto Bustamante

Entrada destacada

10 maneras de sacarle el jugo a tu cuenta de @MyPublicInbox si eres un Perfil Público

Cuando doy una charla a algún amigo, conocido, o a un grupo de personas que quieren conocer MyPublicInbox , siempre se acaban sorprendiendo ...

Entradas populares