16 octubre 2015

SbD te lleva a las 8.8 en Chile y Bolivia!



Como decía ayer, a lo largo de las dos próximas semanas se van a celebrar los Congresos de Seguridad 8.8 en Chile (que será su quinta edición ya), y en ciudad de La Paz en Bolivia. 

Por ser ponente en ambos eventos, la organización me ha regalado dos entradas (una para cada evento). Como tengo muchos compromisos de gente a quien me gustaría regalárselas, he decidido que ni para un@s ni para otr@s. Las voy a sortear entre los lectores de Security By Default.

Al hilo de como hemos hecho otras veces, pido a quienes estén interesados en asistir a alguno de los dos eventos, que dejen un comentario en este post, indicando un correo electrónico válido, y en el campo del comentario, la razón de por qué te mereces una entrada a la 8.8. Recuerda decir si aplicas para la de Chile o para la de Bolivia.

Sobre los comentarios que haya, decidiré el comentario que mejor me parezca para cada evento y me comunicaré con los ganadores. 

Es requisito indispensable que los participantes del sorteo sean de Chile, Bolivia o estén en disposición de viajar a los destinos de los eventos. 

Tenéis hasta el Lunes 19 de Octubre a las 23:59 hora peninsular española, para optar a la entrada para la edición de Chile.

Y tenéis hasta el Viernes 23 de Octubre a las 23:59 hora peninsular española, para optar a entrada para la edición de Bolivia.

Espero vuestros comentarios y nos vemos en Chile y Bolivia! 
Leer más...

14 octubre 2015

En 2015, la 8.8 se multiplica por dos!



Nada más y nada menos que cinco son ya las ediciones que lleva el evento de seguridad informática anual más importante de Chile. He tenido la oportunidad de participar en dos de ellas en los últimos años, y si Dios quiere lo haré en su próxima edición, que se celebrará en la ciudad de Santiago los días 22 y 23 de Octubre. Los que me conocéis, sabéis que es un total placer viajar a eventos en Latinoamérica, pero Chile además tiene para mí un significado especial. No sólo porque el ambiente de 8.8 es una auténtica pasada, sino porque al tener raíces chilenas, aprovecho para visitar a familiares y amigos.


En esta ocasión, el cartel de ponentes es impresionante. Desde Chema Alonso que dará la keynote del evento, hablando sobre fallos de programación en aplicaciones Android disponibles en Google Play (tuve la oportunidad de ver esta charla en Navaja Negra ConectaCON en Albacete y es sorprendente la cantidad de fallos que se cometen). 

Otra charla que me consta muy interesante es la Hugo Bayona, que ví en DragonjarCON, sobre PNL. Igualmente será instructiva la que dará Daniel Echeverri (Adastra), que sacará a la luz los internals de TOR. Fraph, otro de los colegas que conocí en Colombia este año, dará una charla sobre vulnerabilidades que ha encontrado en pasarelas de pago. 

Además, vendrá mi buen amigo Claudio Caracciolo que seguro que trae algo interesante para contarnos (y en la que seguro que aprovecha para trollearme :D) 

Por mi parte, continuaré con la saga de "Memorias de un Perito Informático Forense Vol. II", en la que contaré la experiencia en un par de peritajes que me tocó defender y que espero que guste al público chileno.

Como dice el título del post, la 8.8 este año se multiplica por dos. Y es que resulta que este año se celebrará en La Paz, capital de en Bolivia, la primera edición de este evento. Gracias al apoyo de la organización de 8.8 de Chile, pero a través de organización local de Bolivia, se llevará a cabo un evento que pretende ser el más importante del país en materia de seguridad.... Se celebrará el lunes 26 y martes 27 de Octubre.


Así, viajaré desde Santiago a La Paz para participar en la primera edición de este evento. Por lo que se puede ver en el cartel, esta primera edición estará genial. Ponentes como Jaime Andrés Restrepo, Diego Bruno (que dará una charla sobre las diversas vulnerabilidades en la historia de SSL, que pude ver en Colombia por parte de Javier Antunez), Gabriel Bergel, etc,... Además, espero ver una charla que dará el boliviano Elvin Mollinedo, al que conocí como alumno en el taller de Seguridad en Entornos Corporativos que dí en Colombia, y de la que me dio un adelanto allí, sobre creación de BTS falsas mediante Linux. 

Será todo un honor participar en esta primera edición, y además por partida doble, puesto que daré el keynote y el cierre del evento. En ambos casos, las charlas serán de Análisis Forense y Peritaje Informático, en las que expondré diversos casos en los que me he visto implicado.

Serán dos semanas de viajes y aventuras en CONs por Latinoamérica, en las que espero disfrutar como siempre de un continente y un público que me encanta por su hospitalidad y humildad, así como sus ganas de compartir, aprender y generar comunidad.

Os dejo los enlaces a las webs de ambos eventos bajo estas líneas:


Nos vemos en Chile y Bolivia!
Leer más...

06 octubre 2015

¡Hola criaturas de la noche varias!


Después de muchos años en IOActive, recorriendo medio mundo rompiendo cosas, tenemos la alegría de poder anunciar que IOActive va a abrir un laboratorio en Madrid, principalmente centrado en seguridad hardware.
Foto del interior del Hardware Research Lab de IOActive en Madrid
A medida que nos vayamos estableciendo esperamos poder contribuir con la comunidad. De momento este jueves 8 de octubre queremos invitaros a visitar nuestro laboratorio mientras os tomáis algo. Para los que quieran conocer la cara más lúdica de la seguridad ;) ese mismo día por la noche, y hasta que el cuerpo aguante, organizamos una fiesta con comida, bebida, banderas piratas y ¡música en directo!

Durante el jueves tendremos las siguientes actividades:
  • Hardware Lab Open House – Visita y presentación del laboratorio y su equipamiento a cargo de Ruben Santamarta y Gabriel Gonzalez.
  • Hardware Lab Launch Party – Fiesta al más puro estilo IOActive, con comida, bebidas y música en directo.

El laboratorio se encuentra en la siguiente dirección:

Calle del Conde de Serrallo, 1
Portal 3, 1° Puerta 7
Madrid


Además de todo esto, en IOActive actualmente tenemos vacantes disponibles por lo que, si lo tuyo es romper todo aquello que se te ponga por delante: web, binarios, redes, embebidos, etc.. ¡pásate y déjanos tu CV!

Las plazas para esta fiesta de apertura son limitadas y gratuitas, por lo que realizad el registro lo antes posible para que no os quedéis sin vuestra entrada, utilizando el siguiente enlace:


Contribución por: 
Ruben Santamarta (@reversemode)
Principal Security Consultant at IOActive
Leer más...

05 octubre 2015

Bases y formulario de inscripción para el Hackathon de CyberCamp 2015

Como anunciamos en un post anterior, durante el CyberCamp 2015 entre el 26 y 29 de Noviembre, se celebrará un Hackathon. Pues bien, ya tenemos más información al respecto.


A continuación publicamos un resumen de lo más destacado de las bases, cuyo documento completo podrés encontrar en este enlace:
  • El Hackathon de CyberCamp 2015 es una competición o evento presencial de desarrollo colaborativo de software en un corto periodo de tiempo, centrado en el desarrollo y/o mejora de herramientas de ciberseguridad de código abierto.
  • Podrán participar todas aquellas personas mayores de 14 años que dispongan de DNI/NIF o pasaporte, en vigor, u otro documento que, conforme a la legislación española, acredite la identidad y edad del participante.
  • El proceso de inscripción se inició el 2 de Octubre, y finalizará el 2 de Noviembre.
  • Para participar en el Hackathon, los interesados (individualmente o por equipos) deberán seleccionar la herramienta de ciberseguridad de código abierto sobre la que desean realizar sus desarrollos, mejoras y contribuciones
  • Es necesario utilizar este formulario de inscripción
  • El Hackathon tendrá una duración estimada de unas 42 horas, distribuidas en los diferentes días asociados al evento CyberCamp 2015, y considerando un periodo diario de descanso recomendado de 8 horas
  • Los premios consisten en: 
    • Primer premio: un ordenador portátil para cada integrante del equipo ganador.
    • Segundo premio: un smartphone para cada integrante del segundo equipo. 
    • Tercer premio: un smartwatch para cada integrante del tercer equipo.
Toda la información referente al Hackathon la podréis encontrar en los siguientes enlaces:










Leer más...

04 octubre 2015

Enlaces de la SECmana - 296

Leer más...

02 octubre 2015

Seguridad Bluetooth: Instalando Ubertooth en Kali Linux 2.0.0


El proyecto Ubertooth es una plataforma de desarrollo de código abierto, con componentes tanto hardware como software, que permite experimentar y profundizar en la seguridad de las tecnologías inalámbricas Bluetooth. Ubertooth proporciona capacidades de captura e inyección de tráfico, y dispone tanto de un sniffer para BLE (Bluetooth Low Energy o Bluetooth Smart) como para las conexiones Bluetooth clásicas que emplean el estándar de trasmisión básico (o Basic Rate, BR).

El proyecto Ubertooth está constituido por tres componentes:
  • Dispositivo hardware Ubertooth One, que se puede construir (al ser un proyecto hardware de código o diseño abierto) o comprar. Su potencia de transmisión y sensibilidad de recepción son similares a las de un dispositivo Bluetooth de Clase 1.
  • Firmware: Software que ejecuta en el procesador ARM del propio Ubertooth One, compuesto por el gestor de arranque (bootloader) y el firmware de recepción y transmisión de Bluetooth (bluetooth_rxtx).
  • Software (o host code): Software que ejecuta en un ordenador de propósito general (por ejemplo, Linux) al que está conectado el Ubertooth One mediante un puerto USB. 

El proyecto Ubertooth estaba disponible originalmente en Sourceforge, pero se ha movido a GitHub. La documentación oficial está disponible en el Wiki, dónde se dispone tanto de la guía de instalación como, adicionalmente, de las instrucciones para actualizar el firmware del dispositivo Ubertooth One.

La última versión de Ubertooth disponible en la actualidad es la 2015-09-R2, vinculada a la librería libbtbb, una librería de decodificación de la banda base de Bluetooth (Bluetooth Baseband, btbb), identificada con el mismo número de versión.

Instalación del proyecto Ubertooth en Kali Linux 2.0.0

El proyecto Ubertooth tiene numerosas dependencias o prerrequisitos necesarios para su instalación. Las siguientes instrucciones hacen uso de Kali Linux 2.0.0 como plataforma para instalación de la última versión de Ubertooth disponible, 2015-09-R2, ya sea directamente en un sistema real o en una máquina virtual.

En primer lugar se debe actualizar Kali Linux 2.0.0 con las últimas versiones de los paquetes y aplicaciones existentes por defecto en Kali Linux mediante los dos comandos siguientes:
$ sudo apt-get update
$ sudo apt-get dist-upgrade

A continuación se deben instalar todas las dependencias de Ubertooth. Este proceso se puede llevar a cabo manualmente, o automatizarse mediante un script (referenciado posteriormente):
$ sudo apt-get install cmake libusb-1.0-0-dev make gcc g++ libbluetooth-dev pkg-config libpcap-dev python-numpy python-pyside python-qt4

Es necesario instalar previamente la librería libbtbb para que las herramientas de Ubertooth puedan decodificar paquetes Bluetooth (por defecto, en "/usr/local/lib/libbtbb.so"), junto al fichero de cabeceras ("/usr/local/include/btbb.h") y a la herramienta "btapbtap" (bajo "/usr/local/bin"), un sniffer para teclados Bluetooth:
$ wget https://github.com/greatscottgadgets/libbtbb/archive/2015-09-R2.tar.gz -O libbtbb-2015-09-R2.tar.gz
$ tar xf libbtbb-2015-09-R2.tar.gz
$ cd libbtbb-2015-09-R2
$ mkdir build
$ cd build
$ cmake ..
$ make
$ sudo make install

NOTA: Si se desea instalar libbtbb en una ubicación diferente se podría hacer uso del siguiente comando, en lugar de utilizar simplemente "cmake ..":
$ cmake -DINSTALL_DIR=/path/to/install -DINCLUDE_DIR=/path/to/include ..

A continuación se deben instalar las herramientas de Ubertooth, que incluyen (entre otros) el software para la captura de tráfico Bluetooth (referenciado como host code), para configurar el dispositivo Ubertooth y para actualizar el firmware:
$ wget https://github.com/greatscottgadgets/ubertooth/releases/download/2015-09-R2/ubertooth-2015-09-R2.tar.xz -O ubertooth-2015-09-R2.tar.xz
$ tar xf ubertooth-2015-09-R2.tar.xz
$ cd ubertooth-2015-09-R2/host
$ mkdir build
$ cd build
$ cmake ..
$ make
$ sudo make install
$ sudo ldconfig

Este paso instalará la librería "/usr/local/lib/libubertooth.so", junto a nuevos ficheros de cabeceras (bajo "/usr/local/include/ubertooth*.h") y múltiples herramientas bajo "/usr/local/bin/ubertooth*". Adicionalmente se instalará el fichero de reglas de detección y acceso al dispositivo Ubertooth One (y Zero), tanto en modo de funcionamiento estándar como DFU (Device Firmware Upgrade) bajo "/etc/udev/rules.d/40-ubertooth.rules".

NOTA: Los comandos de la presente guía (instalación y uso) pueden ser ejecutados como "root", opción desaconsejada desde el punto de vista de seguridad ;-) Sin embargo, las reglas de Ubertooth creadas permiten el acceso al dispositivo por parte de cualquier usuario perteneciente al grupo "plugdev".

Instalación del plugin de Ubertooth para Kismet

La versión de Kismet disponible por defecto en Kali Linux 2.0.0 es la "2013-03-R0":
$ kismet -v 
Kismet 2013-03-R0

Para poder hacer uso de Ubertooth en Kismet es necesario compilar Kismet a partir de su código fuente, incluyendo todas las dependencias necesarias:
$ sudo apt-get install libpcap0.8-dev libcap-dev pkg-config build-essential libnl-dev libncurses-dev libpcre3-dev libpcap-dev libcap-dev
$ wget https://kismetwireless.net/code/kismet-2013-03-R1b.tar.xz
$ tar xf kismet-2013-03-R1b.tar.xz
$ cd kismet-2013-03-R1b
$ ln -s ../ubertooth-2015-09-R2/host/kismet/plugin-ubertooth .
$ ./configure
$ make dep && make && make plugins
$ sudo make suidinstall
$ sudo make plugins-install

Como resultado se dispondrá del plugin de Ubertooth bajo "/usr/local/lib/kismet_client/ubertooth_ui.so".

Adicionalmente, es necesario añadir "pcapbtbb" a la línea "logtypes=..." en "/etc/kismet/kismet.conf" para que Kismet genere ficheros de log con el formato de captura de Bluetooth.

Instalación de los plugins de Ubertooth para Wireshark 

La versión de Wireshark disponible por defecto en Kali Linux 2.0.0 es la "1.12.6":
$ wireshark -v 
wireshark 1.12.6 … 

Por un lado, desde la versión 1.12 de Wireshark (en concreto desde la versión de desarrollo 1.12.0-rc2) se incluye por defecto el plugin de Ubertooth para BLE (Bluetooth Low Energy o Bluetooth Smart).

Por otro lado, los plugins de Ubertooth para BTBB (BlueTooth BaseBand) y BR/EDR (Basic Rate / Enhanced Data Rate), más nuevo, permiten analizar y diseccionar (o decodificar) desde Wireshark el tráfico de banda base Bluetooth que ha sido capturado mediante Kismet y las herramientas de Ubertooth, respectivamente.

En el caso de Kali Linux 2.0.0 (64 bits), el directorio de instalación indicado en "cmake" a través de "MAKE_INSTALL_LIBDIR" que corresponde con la ubicación de los plugins de Wireshark debe ser "/usr/lib/x86_64-linux-gnu/wireshark/plugins/1.12.6".

Para poder hacer uso de Ubertooth en Wireshark y, por ejemplo, analizar el tráfico generado por Kismet, es necesario compilar los dos plugins de Bluetooth a partir de su código fuente, incluyendo todas las dependencias necesarias, aparte del resto de herramientas de Ubertooth y de la librería libbtbb.

NOTA: Antes de llevar a cabo los siguientes pasos es necesario consultar los detalles del siguiente apartado, debido a la existencia de un conflicto en los plugins de Ubertooth para Wireshark.

En primer lugar, debe instalarse el plugin BTBB:
$ sudo apt-get install wireshark wireshark-dev libwireshark-dev cmake
$ cd libbtbb-2015-09-R2/wireshark/plugins/btbb
$ mkdir build
$ cd build
$ cmake -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu/wireshark/plugins/1.12.6 ..
$ make
$ sudo make install

A continuación, debe instalarse el plugin Bluetooth (BT) BR/EDR:
$ sudo apt-get install wireshark wireshark-dev libwireshark-dev cmake
$ cd libbtbb-2015-09-R2/wireshark/plugins/btbredr
$ mkdir build
$ cd build
$ cmake -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu/wireshark/plugins/1.12.6 ..
$ make
$ sudo make install

Este proceso instalará los plugins "btbb.so" y "btbredr.so" en el directorio de plugins de Wireshark indicado previamente.

Conflicto de nombres duplicados en los plugins de Ubertooth para Wireshark

Ambos plugins actualmente (en la última versión oficial de libbtbb, 2015-09-R2) emplean el mismo nombre completo de plugin, "Bluetooth Baseband" y el mismo nombre corto, "BT Baseband" (aunque hacen uso de referencias diferentes para los filtros de visualización de tráfico, "btbb" y "btbredr"), por lo que es necesario modificar los mismos para poder utilizar Wireshark.

Una futura versión de libbtbb y de los plugins de Wireshark asociados evitará este conflicto, al disponerse ya de una solución (commit) en la última versión de libbtbb disponible en GitHub.

Sino se lleva a cabo ninguna modificación, al ejecutar Wireshark se obtiene el siguiente mensaje de error que indica que hay un nombre de protocolo duplicado en Wireshark para el tráfico de banda base Bluetooth:
$ wireshark & 
… 
Err Duplicate protocol name "Bluetooth Baseband"! This might be caused by an inappropriate plugin or a development error. 

Sin embargo, es posible evitarlo aplicando el parche asociado a ese commit concreto que soluciona el problema de nombres duplicados en los plugins de Ubertooth/libbtbb para Wireshark. El parche puede ser generado mediante Git:
$ mkdir Ubertooth-git 
$ cd Ubertooth-git/ 
$ git clone https://github.com/greatscottgadgets/libbtbb.git 
Cloning into 'libbtbb'... 
remote: Counting objects: 1460, done. 
remote: Compressing objects: 100% (4/4), done. 
remote: Total 1460 (delta 0), reused 0 (delta 0), pack-reused 1456 
Receiving objects: 100% (1460/1460), 415.78 KiB | 508.00 KiB/s, done. 
Resolving deltas: 100% (880/880), done. 
Checking connectivity... done. 
S cd libbtbb/ 
$ git format-patch -1 ae840325b61ad74181b079db288b4309ce96746b 0001-Fix-Ubertooth-issue-112-duplicate-plugin-names.patch 

Posteriormente, sólo es necesario copiar y aplicar ese parche sobre la versión 2015-09-R2 oficial de libbtbb antes de compilar e instalar los plugins:
$ cd libbtbb-2015-09-R2/ 
$ ls 0001-Fix-Ubertooth-issue-112-duplicate-plugin-names.patch 
… 
$ patch -p1 < 0001-Fix-Ubertooth-issue-112-duplicate-plugin-names.patch 
patching file wireshark/plugins/btbb/CMakeLists.txt 
patching file wireshark/plugins/btbb/packet-btbb.c 
patching file wireshark/plugins/btbb/packet-btbrlmp.c 
patching file wireshark/plugins/btbb/packet-btlmp.c 
patching file wireshark/plugins/btbredr/packet-btbredr.c

Automatizando el proceso de instalación del proyecto Ubertooth

Con el objetivo de automatizar el proceso de instalación de Ubertooth en Kali Linux 2.0.0, se ha publicado el siguiente script, "ubertooth_install.sh", en el repositorio GitHub de DinoSec.

Una vez se dispone de conexión a Internet, su ejecución automatiza todo el proceso de instalación de Ubertooth descrito previamente:
$ sudo ./ubertooth_install.sh

El parche previamente descrito está también disponible en el repositorio GitHub de DinoSec y ya es utilizado directamente por el script de instalación.

Instrucciones para actualizar el firmware del dispositivo Ubertooth One 

Tras obtener e instalar la última versión del software de Ubertooth disponible (proceso detallado previamente), se recomienda verificar la versión actual de firmware desde el modo estándar (no DFU), tras conectar el Ubertooth One a un puerto USB:
$ ubertooth-util -v 
Firmware revision: 2014-02-R2 
$ ubertooth-util -V
ubertooth 2014-02-R2 (dominicgs@mercury) Thu Feb 20 13:28:01 GMT 2014 

NOTA: En el caso de no disponer de una conexión USB suficientemente rápida, por ejemplo, al emplear un cable USB de mala calidad o especialmente al hacer uso de una máquina virtual, pueden obtenerse errores de temporización USB:
$ ubertooth-util -v
libUSB Error: Timeout: (-7)
Firmware revision: error: -7

Se recomienda encarecidamente utilizar el Ubertooth One directamente desde Linux empleando un ordenador físico y no hacer uso de una máquina virtual.

En el modo de funcionamiento estándar, por defecto, se encienden los leds verdes de 1V8 y RST, y el led rojo de USB:



Tras cambiar al directorio asociado al firmware, se recomienda hacer uso de la herramienta de actualización del firmware de Ubertooth, "ubertooth-dfu", para cambiar el Ubertooth One al modo DFU (Device Firmware Upgrade) y hacer una copia de seguridad del firmware instalado actualmente en el dispositivo:
$ cd ubertooth-2015-09-R2/
$ cd ubertooth-one-firmware-bin/
$ ls -l
total 228
-rwxrwxr-x 1 1000 inetsim 14732 Sep 5 13:44 assembly_test.bin
-rw-rw-r-- 1 1000 inetsim 41484 Sep 5 13:44 assembly_test.hex
-rwxrwxr-x 1 1000 inetsim 34344 Sep 5 13:44 bluetooth_rxtx.bin
-rw-rw-r-- 1 1000 inetsim 34360 Sep 5 13:44 bluetooth_rxtx.dfu
-rw-rw-r-- 1 1000 inetsim 96633 Sep 5 13:44 bluetooth_rxtx.hex
$ ubertooth-dfu -u bluetooth_rxtx.2014-02-R2.dfu -r
Switching to DFU mode
..................................................................................................................................................................
Detached
$ ls -l
-rw-r--r-- 1 dino dino 245760 Sep 29 11:44 bluetooth_rxtx.2014-02-R2.dfu

Posteriormente, se recomienda actualizar (o flashear) el nuevo firmware en el dispositivo:
$ ubertooth-dfu -d bluetooth_rxtx.dfu -r
Switching to DFU mode...
Checking firmware signature
.......................................................................................................................................
Detached
$ ubertooth-util -v
Firmware revision: 2015-09-R2
$ ubertooth-util -V
ubertooth 2015-09-R2 (dominicgs@hydrogen) Sat Sep 5 12:44:21 BST 2015

En el modo de funcionamiento DFU, por defecto, se encienden los leds verdes de 1V8 y RST, el led rojo de USB parpadea, y los leds de TX, RX y USR parpadean con un patrón de persecución secuencial.

La opción "-r" permite resetear el dispositivo y pasar del modo DFU al modo estándar tras completar la operación, mostrando el mensaje "Detached". Adicionalmente se puede desconectar y volver a reconectar el dispositivo, o llevar a cabo un reset del mismo mediante el comando "ubertooth-util -r".

Si te interesa la seguridad y el hacking ético de tecnologías inalámbricas, como Bluetooth y Wi-Fi, podrás profundizar mucho más, entre muchos otros temas, en el uso del Ubertooth One como un analizador de espectro básico, o emplearlo para la captura de tráfico Bluetooth y BLE desde Kismet o desde Wireshark, descubrir dispositivos Bluetooth ocultos o investigar la seguridad de cualquier dispositivo Bluetooth, como por ejemplo analizar el proceso de emparejamiento entre un Apple Watch y un iPhone, en el Curso online de Hacking Ético de Securízame, donde impartiré el módulo "Módulo V Hacking Ético de tecnologías inalámbricas: Bluetooth y Wi-Fi".

Colaboración por cortesía de Raúl Siles

Leer más...