Archive for Forense

Recuperando datos de un Disco Duro Seagate 7200.11 SD81

Vuelvo con este artículo que si bien no tiene mucho de “hacking” propiamente dicho, si que tiene su parte “forense”, que también tiene su encanto. Debido a la suma importancia personal de los datos que contenía el HDD, el poder recuperarlos fue todo un éxito porque además, no se perdió ni un solo documento y es por ello que os lo traslado aquí.

La historia.

Hace pocas semanas un familiar cercano me comunicó que su HDD donde tenía todas las fotos, vídeos y demás “timeline” de su familia tanto actual como los no presentes ya, no lo reconocía su equipo. Tras indicarle lo típico “¿has apagado y encendido el disco duro?, ¿has conectado el disco duro a otro ordenador?, ¿has pintado de verde el disco y tirado al río?, etc…” pude diagnosticarle, atrevidamente por teléfono, que había “cascao”.

Cuando coincidimos en una reunión típica familiar (dichos familiares viven bastante lejos de dónde yo) me dieron el regalito del Disco Duro Seagate 7200.11 con firmware SD81 de 500Gb, con 499Gb ocupados de información valiosa.

Mi idea era la que suelo seguir en caso de que me traigan discos duros que suenan a castañuelas y limitado a los cuatro aparatitos que tengo: o intentar dejar el disco duro en una posición donde la mecánica del mismo permita temporalmente acceso (muchas veces he recuperado así algunos datos) o congelando el disco duro (y también he tenido éxito algunas veces).

Pero una simple navegación por San Google (Duck Duck Go más bien) buscando el modelo por si acaso había algún hilo sobre este disco y bingo!, este modelo con algunos firmware distintos al que calza nuestro disco duro a reparar, contiene un fallo de serie que consiste en que el log se corrompe debido a una serie de eventos que registra el propio HDD.

Read more

Patito Hunter – Detectar y bloquear un USB Rubber Ducky con Python

“Cazando al patito”

Introducción a USB Rubber Ducky

A estas alturas seguro que ya todos habéis visto (o padecido) o habéis escuchado hablar sobre USB Rubber Ducky, conocido familiarmente como el “patito“. Para los que no, simplemente decir que se trata de un dispositivo USB con apariencia similar a un pendrive o flashdrive de toda la vida pero que en realidad es un dispositivo HID (Human Interface Device). En este caso se trata de un teclado que almacena una serie de comandos que son ejecutados cuando el dispositivo se conecta a un ordenador, portátil, tablet o smartphone. Los comercializan los chicos de Hak5, pero en España también tenemos representación de la empresa Phoenix Intelligence & Security que también fabrican dispositivos similares. Como os podéis imaginar las posibilidades son infinitas.

Aquí tenéis dos artículos en nuestro blog mostrando sus posibilidades:

Cuando el pato teclea Cuack Cuack – Parte 1

Cuando el pato teclea Cuack Cuack – Parte 2

Cabe destacar además que a día de hoy, muy pocos fabricantes de malware detectan y bloquean este tipo de dispositivos, solo G-Data con su USB Keyboard Guard. Eso sí, de momento solo para Windows.

USB Rubber Ducky - Ninja

Objetivos

En este caso no he venido aquí para escribir cómo funciona el USB Rubber Ducky y sus posibilidades, que como ya he dicho antes, son muchas desde el punto de vista ofensivo. Los objetivos de este artículo son:

  1. Explicar en qué he basado mi investigación
  2. Presentar la herramienta “Patito Hunter
  3. Aprender, hackear y compartir.

Ya en este blog he ido publicando artículos sobre análisis de dispositivos USB con Wireshark, concretamente los artículos los podéis encontrar en estos enlaces:

Análisis de un dispositivo USB con Wireshark – Parte 1

Análisis de un dispositivo USB con Wireshark – Parte 2

En estos artículos se explica cómo capturar tráfico USB con Wireshark para a continuación analizar la información obtenida y saber cómo funcionan los dispositivos USB; desde que lo conectamos al equipo, se intercambia información del dispositivo, sus configuraciones o interfaces. Desde la publicación del primer artículo, en octubre de 2015, he ido analizando con Wireshark la información de distintos dispositivos USB, y de distintas clases (Mass Storage, Printer, HID, etc).

Esta misma información puede ser usada para analizar otros dispositivos de tipo Bad USB, como puede ser el propio USB Rubber Ducky o LAN Turtle (la famosa tortuga). Como he comentado en la introducción, un “patito” emula el funcionamiento de un dispositivo HID, concretamente un teclado, pero con sus diferencias. Y son precisamente estas diferencias las que me han llevado a desarrollar una pequeña herramienta, a la que he llamado cariñosamente “Patito Hunter” para detectar y bloquear los USB Rubber Ducky, basándome precisamente en esas diferencias. Read more

Análisis de un dispositivo USB con Wireshark – Parte 2

En la primera parte de esta serie de artículos sobre análisis de dispositivos USB con Wireshark, que podéis encontrar aquí, hicimos una primera aproximación a la investigación acerca del funcionamiento de un dispositivo USB. Si no recordáis cómo hacer una captura de tráfico con Wireshark de un USB, os recomiendo leer la primera parte de esta serie.

El primer artículo terminaba con una referencia a los conceptos que vamos a tratar aquí; clases, descriptores, interfaces, endpoints… Estos conceptos son fundamentales tenerlos claros para poder analizar y conocer cómo funcionan, y para ello seguiremos con nuestro análisis USB con Wireshark, cuando conectamos un dispositivo de este tipo a nuestro equipo.

En primer lugar tenemos que tener claro que existen muchos tipos de clases de USB, no solo aquellos con los que estamos más acostumbrados a trabajar, como pueden ser los dispositivos de almacenamiento, o los dispositivos de interfaz humana (HID, Human Interface Device).

Class: Una clase nos permite definer funcionalidades del dispositivo USB. Algunos ejemplos son:

  • Class 1 – Audio
  • Class 3 – HID (Human Interface Device)
  • Class 6 – Image
  • Class 7 – Printers
  • Class 8 – Mass Storage

Los pendrives que utilizamos para almacenar y transportar nuestros ficheros pertenecen a la clase 8 (Mass Storage), mientras que los ratones o teclados USB, pertenecen a la clase 3 (HID).

En las primeras capturas que realizamos con Wireshark ya pudimos observar en algunos de los paquetes cómo los dispositivos y el host utilizaban descriptores para solicitar e intercambiar información. Esta información, como su nombre indica, sirve para describir características y funcionalidades del dispositivo.

Wireshark - Descriptores USB

En la imagen anterior podemos observar en la columna Info que enter el host y el dispositivo (con dirección 7) se intercambian una serie de solicitudes y respuestas. El host solicita información que le describa el dispositivo, la configuración y otras cadenas con información de interés para que el host pueda proponer la configuración más idónea. Read more

Spyware en Android

En el día de hoy os traigo un artículo generado a raíz de una pequeña investigación que realicé al móvil android chino (chino, re-chino, vamos que ni la marca es pronunciable) de un familiar el cual, al utilizarlo yo mismo para realizar una llamada (hay que ahorrar xD), noté, por intuición más bien, que algo en el teléfono no andaba bien.

Llevo usando android hace bastante tiempo, “tuneando” ROMs en mis terminales, haciendole mods y otros “enrreos” así como en el último año, he estado más centrado en probar herramientas de pentesting de Android aunque no haya publicado ni expuesto nada sobre esto.

Bueno pues tras pelearme unos instantes con él detecté que ¡estaba roteado! A partir de ahí os podéis imaginar un poco que posibilidades se puede abrir en el caso de ser infectado por algún malware.

Por lo pronto detecté que, al desbloquearlo, siempre salía una pantallita con un anuncio. Oh Shit! Siempre. Desinstalé alguna APP de estas famosillas de programas de la TV y algún Widgets del tiempo un poco cutre pero el problema seguía. El teléfono mostraba publicidad.

androchina_logo

Read more

Análisis de un dispositivo USB con Wireshark – Parte 1

Introducción

¿Cuantas veces hemos conectado y desconectado un dispositivo USB de un ordenador? ¿Te has preguntado alguna vez qué ocurre en nuestro equipo cuando conectamos un pendrive, webcam o teclado USB? En este nuevo artículo vamos a hacer un análisis de un dispositivo USB con Wireshark, la herramienta por excelencia para la captura y análisis de tráfico.

¿Cuál es la motivación? Quizás la postura más cómoda sería obviar y asumir como simple magia el hecho de que conectemos un pendrive, y el sistema automáticamente lo reconozca, sepa el fabricante, producto, protocolo de comunicación, particiones que tiene y la capacidad de éstas. Pero los hackers van más allá, les gusta saber cómo funcionan las cosas. Además creemos firmemente en esta filosofía; Learn, Hack and Share. Aprende, hackea y comparte.

Nota: Si a estas alturas cuando decimos “hackea” lo entiendes como “comete un delito”, definitivamente, este no es tu blog.

Entorno de trabajo – Herramienta y comandos

¿Por qué Wireshark? ¿Por qué un sniffer? Porque precisamente vamos a analizar el tráfico que se genera entre nuestro dispositivo USB y el host, es decir, nuestro ordenador.  ¿Cómo sabe el host de qué tipo de USB se trata? ¿Trata igual a un pendrive que a un dispositivo HID (Human Interface Device)? Estas y otras cuestiones intentaremos resolverlas en este post y futuros posts.

Como sistema operativo, utilizaremos Linux. Y la razón es muy sencilla, este SO nos aporta muchísima más información a la hora de conectar o desconectar un USB, que por ejemplo Windows. Y aunque recientemente se ha publicado USBPcap para realizar esto mismo en Windows, Linux lleva ya años haciéndolo, por lo tanto nos centraremos en este SO.

Antes de empezar, una breve reseña histórica a las versiones y velocidades en USB, conceptos que nos vendrán bien más adelante durante nuestro análisis:

1996 – USB 1.0 – Velocidad 1,5 Mbps (Low Speed) y 12 Mbps (Full Speed)
1998 – USB 1.1 – Sin cambio en velocidades
2000 – USB 2.0 – Se añade velocidad 480 Mbps (High Speed)
2008 – USB 3.0 – Se añade velocidad 5 Gbps (Super Speed)

Es importante tener esto en cuenta a la hora de ver los controladores USB que tenemos en nuestro equipo, ya que por ejemplo, un controlador USB 3.0 incluye a su vez uno de 2.0, de ahí que pueda llevar a confusión por la duplicidad de buses de conexión. Esta información la podemos extraer en Linux con dos comando básicos del SO; lspci y lsusb.

lspci | grep USB

USB Forensic - lspci

En este caso podemos ver que tengo dos controladores, generados por VMWare (estoy trabajando con máquina virtual), uno de la versión 1.1 y otro de la versión 2.0. La abreviatura que aparece a continuación indica también el tipo de controlador:

UHCI – Universal Hub Controller Interface (1.0 / 1.1)
EHCI – Enhanced Hub Controller Interface (2.0)
XHCI – Extensible Hub Controller Interface (3.0)

Read more