EquationDrug: Sophisticated, stealthy data theft for over a decade

ramnit-header-imagecredsymantec.jpg
Far beyond the capabilities of traditional cybercriminals, The Equation Group’s EquationDrug platform is used to target select victims worldwide.

Kaspersky has published additional details concerning The Equation Group’s toolset, and has revealed the EquationDrug cyberespionage platform as a potent and long-lasting campaign.

Originally revealed at the Kaspersky Labs Security Analyst Summit in February, the security firm said a cybercriminal group dubbed “The Equation Group” surpasses all others in complexity and techniques. Deemed the “ancestor” of Stuxnet and Flame, as Zero Days were used by The Equation Group before other threat actors — and potentially shared by them — additional details concerning the group’s activities now suggest the group may have been in operation since the 1990’s.

According to Kaspersky Lab researchers, The Equation Group uses expensive tools and sophisticated Trojans to steal data from their victims, and they also use “classic” spying techniques to deliver malicious payloads. Tools used by the group include EquationLaser, EquationDrug, DoubleFantasy, TripleFantasy, Fanny and GrayFish.

The threat actors use a command and control (C&C) center compromising of over 300 domains and more than 100 servers hosted in countries including the US and UK. One part of the network is EquationDrug, a full cyberespionage platform which dates back to 2003. Kaspersky says EquationDrug is the main platform used by the group in cyberespionage. EquationDrug is the main platform used by the group in cyberespionage.

EquationDrug includes a framework which allows specific modules to be deployed on the machines of victims. The platform can be extended through plugins and modules, but is pre-built with a default set of plugins which support basic spying activities — such as file theft and screenshot capture.

However, the EquationDrug platform does show elements of sophistication through the storage of stolen data inside a custom-encrypted virtual file system before it is sent to the C&C center.

When it comes to platform architecture, EquationDrug includes dozens of executables, configurations and protected storage locations. EquationDrug resembles a “mini operating system,” according to Kaspersky, due to the use of kernel-mode and user-mode components which interact with each other via a custom message-passing interface. The platform also includes a set of drivers, a platform core and individually labeled plugins. Some modules are statically linked to the platform core, while others load on demand, according to the team.

equationdrug1.jpg

To date, Kaspersky has uncovered 30 unique plugin IDs, but admits that up to 86 other modules are still in the wild and have yet to be discovered.

“The plugins we discovered probably represent just a fraction of the attackers’ potential. Each plugin is assigned a unique plugin ID number (WORD), such as 0x8000, 0x8002, 0x8004, 0x8006, etc. All plugin IDs are even numbers and they all start from byte 0x80. The biggest plugin ID we have seen is 0x80CA,” Kasperksky says.

The most interesting modules which have been uncovered to date contain functions such as network traffic interception and rerouting and reverse DNS resolution. In addition, some modules focus on computer management and are able to start and stop processes, load drivers and libraries, and gather information about a victim including OS version, location, keyboard layout and timezone. Other interesting functionalities include:

  • Collection of cached passwords.
  • Enumeration of processes and other system objects.
  • Monitoring live user activity in web browsers.
  • Low-level NTFS filesystem access based on the popular Sleuthkit framework.
  • Monitoring removable storage drives.
  • Passive network backdoor (runs Equation shellcode from raw traffic).
  • HDD and SSD firmware manipulation.
  • Keylogging and clipboard monitoring.
  • Browser history, cached passwords and form auto-fill data collection.

The Equation Group is not the only threat actor to use an espionage platform. Regin and Epic Turla also use the same tactic in their campaigns.

An analysis of the platform suggests that developers are English-speaking. However, as noted by Kaspersky, there is a limit number of text strings so its hard to tell if the developers were native. Kaspersky also says the working hours of Equation developers tend to be within the Monday to Friday bracket, and in the UTC timezone, hours worked appear to relate to the traditional 9-5 working day.

EquationDrug has been in use for at least the past 10 years, but considering the existence of components designed to run on Windows 9x, the security researchers believe The Equation Group may have been in operation since the 1990’s. The platform, potentially used by nation-state attackers considering its sophistication, budget and size, separates itself from traditional cybercriminals due to the groups’ sophisticated framework and selection of particular victims. Kaspersky says:

“It is clear that nation-state attackers are looking for better stability, invisibility, reliability and universality in their cyberespionage tools. You can make a basic browser password-stealer or a sniffer within days. However, nation-states are focused on creating frameworks for wrapping such code into something that can be customized on live systems and provide a reliable way to store all components and data in encrypted form, inaccessible to normal users.

While traditional cybercriminals mass-distribute emails with malicious attachments or infect websites on a large scale, nation-states create automatic systems infecting only selected users. While traditional cybercriminals typically reuse one malicious file for all victims, nation-states prepare malware unique to each victim and even implement restrictions preventing decryption and execution outside of the target computer.”

Fuente: http://www.zdnet.com/

 

Anuncios

“CON LA IMPLANTACIÓN DE HTTP 2.0 SE PUEDEN GENERAR ATAQUES ENCRIPTADOS QUE POCAS TECNOLOGÍAS PUEDEN DETECTAR”: RICARDO MATÉ, F5


La seguridad de las aplicaciones es una de las mayores preocupaciones actuales de las empresas, una preocupación que seguirá creciendo. Los ataques DDoS son los que más suenan, pero no los que más daño hacen, “los ataques al DNS por ejemplo están haciendo mucho más daño”, afirma Maté.

Con la implantación de HTTP 2.0 se pueden generar ataques encriptados que pocas tecnologías pueden detectar, es necesario tener mecanismos para manejar este contenido encriptado. “Las empresas están trazando planes para protegerse, pero todo lo que se haga es poco”.

En cuanto a las tendencias de las amenazas, como explica el director general de F5, es difícil prever qué tipo de ataques va a haber, ya no se trata de aficionados, sino de mafias organizadas en busca de los datos y el dinero. 

También hablamos con Ricardo Maté sobre la evolución hacia la seguridad de F5 desde su posición como proveedor de disponibilidad de las aplicaciones. Más del 30% de su negocio actualmente proviene de la seguridad.

Fuente: http://globbsecurity.com/

Prueba de Penetración (PenTest)

La Prueba de Penetración (Penetration Test o PenTest en Inglés) consiste en una evaluación activa de las medidas de seguridad de la información. El propósito es detectar los puntos débiles que puedan ser capitalizados para violar cualquiera de las tres condiciones necesarias de la información: confidencialidad, integridad y disponibilidad.

Generalmente, las vulnerabilidades potenciales resultan de: fallas en el software, de configuraciones inapropiadas de los sistemas,  de la operación deficiente en los procesos o protecciones técnicas y del factor humano.

La Prueba de Penetración se realiza desde la posición de un atacante potencial de manera remota y local, buscando explotar activamente las vulnerabilidades de seguridad para obtener información relevante. Tal como lo intentaría un intruso con propósitos adversos para la organización, pero sin dañar la información, sistemas e infraestructura informática.

En código verde nos distinguimos por realizar las Pruebas de Penetración evaluando la gente, procesos, tecnología, controles técnicos y administrativos. Nuestro método es exhaustivo y por lo tanto más certero.

¿Qué beneficios aporta una Prueba de Penetración?

  • Se determina la factibilidad real de un ataque y su impacto en el negocio.
  • Provee la información necesaria para enfocar la implementación de controles de seguridad y mitigar los riesgos descubiertos.
  • Eleva la conciencia de la alta gerencia acerca de la seguridad de la información.

Entregables

  1. Clasificación y priorización de las vulnerabilidades encontradas
  2. Crónica del ataque
  3. Evidencias obtenidas durante la penetración
  4. Plan de remediación
  5. Recomendaciones para elevar el nivel de Seguridad Informática
  6. Presentación para la Alta Dirección
  7. Presentación Técnica

Principales razones para realizar una Prueba de Penetración:

  1. Es el método más efectivo para determinar el nivel real de seguridad de la información. Sólo con un ataque simulado es posible identificar las vulnerabilidades que plantean riesgos significativos para la organización, tales como:
    • Pérdidas financieras por fraude (hackers, extorsión o empleados molestos) o debido a sistemas de información y procesos poco confiables.
    • Pérdida de confianza de los clientes o cualquier otra parte interesada.
    • Crisis de relaciones públicas si el caso trasciende a los medios masivos.
  2. Ofrece un punto de vista independiente y analítico por un tercero, enriqueciendo la labor del equipo interno responsable de la seguridad de la información.

Cómo detectar direcciones web maliciosas (sin pincharlas)

Las infecciones causadas por enlaces o sitios web maliciosos son uno de los mayores problemas a los que se enfrenta la seguridad informática actualmente. Estas URLs acostumbran a ejecutar programas en el ordenador del usuario, en la mayor parte de los casos furtivamente. Por lo que a este le parece que el sitio funciona con total normalidad. Pero nada más lejos de la realidad.

El malware explota vulnerabilidades en los programas instalados de nuestro ordenador para, de esta forma, sustraer nuestra información, datos personales, desviarnos hacia contenidos indeseables, ilegales o spam, o llevar a cabo cualquier otra actividad con alguna finalidad fraudulenta.

Hacer click en algunos de estos links es más fácil de lo que parece. Sin embargo, existen algunas claves que nos pueden ayudar a no caer en la trampa.

Alterando letras o caracteres

Es una de las prácticas más habituales. Puede parecer que estamos entrando en una dirección web determinada, pero hacerlo en realidad en otra maliciosa. El error se produce porque no hemos leído detenidamente la URL.

Un ejemplo de esto lo tenemos en el dominio http://www.rnicrosoft.com en lugar del correcto http://www.microsoft.com. ¿Les ha resultado complicado distinguirlos? No se preocupen. Es normal. La r y la n juntas parecen una m. Y como este caso hay mil más. Algo de lo que se valen los ciberdelincuentes para crear dominios fraudulentos. Ahora supongan que les sucede con la dirección web de su banco.

No es el único efecto visual del que se aprovechan. En otras ocasiones directamente cambian el tipo de letra logrando que ni el ojo más experto se percate. “Estamos hablando de aquellos hackers que utilizan enlaces con caracteres Unicode pertenecientes a otros alfabetos como el cirílico, pero que pueden confundirse con el nuestro”, ha explicado a Teknautas Josep Albors, director de Comunicación y Laboratorio de Eset España.

Veamos un ejemplo: http://www.exɑmple.com. Aparentemente no hay nada extraño en este enlace, ¿verdad?. Pero en realidad sí que lo hay. “Si nos fijamos con atención veremos que el carácter que nosotros identificamos como una a es en realidad una ɑ. Puede que para nosotros esto no suponga mucha diferencia, pero cuando hablamos de ordenadores que se comunican entre sí hay todo un mundo entre el carácter Unicode U+0061 (a) y el carácter U+0251 (ɑ)”, ha concluido el experto en informática.

Direcciones abreviadas

Cada vez hay más direcciones abreviadas en internet. Sin embargo, esto conlleva muchos peligros. “No sabes dónde estás entrando. Puedes estar metiéndote en una página falsa que te lleve a otra maliciosa y no saberlo. Todos los peligros de los que hablamos cuando navegamos por la red están reunidos en una dirección abreviada. Es como entrar a ciegas. Pero la gente se fía”, ha argumentado a este diario Fernando de la Cuadra, director de Educación de Eset España.

La clave en estos casos está en comprobar la procedencia en aquellos supuestos en los que sospechamos.

Ahora mismo el riesgo más elevado de infección se encuentra en los acortadores de URLsSegún Daniel Creus, informático de Kaspersky: “Ahora mismo el riesgo más elevado de infección se encuentra en los acortadores de URLs. Se aconseja tener en cuenta el contexto en el que nos llega. Si nos hace sospechar lo recomendable es comprobar que la dirección es segura acudiendo al proveedor”. Por ejemplo, el servidor bit.ly ofrece la posibilidad de ver un preliminar de la dirección. Te dice hacia qué sitio apunta e incluso ofrece una captura de pantalla. Esto es una buena medida cautelar, aunque también es cierto que resulta algo incómodo.

En este último caso también se puede además copiar y pegar la URL en el navegador añadiendo un símbolo + al final. De esta forma se accede a la vista preliminar de bit.ly en lugar de ir al destino.

“Si el proveedor no ofrece este servicio se puede buscar en Google y escribir la URL que nos han enviado. Puede ser que haya sido denunciada por el resto de usuarios”, ha añadido Creus.

Por otro lado existen complementos para navegadores que hacen la traducción a la URL larga. Un ejemplo lo tenemos en longURL.

Trampas imposibles de distinguir

Por último, también es habitual que los ciberdelincuentes se aprovechen de la característica de la escritura derecha-a-izquierda de la codificación Unicode para ocultar la verdadera extensión de un fichero malicioso. Es decir, que creen ficheros con una terminación determinada, pongamos por caso, fdp en hebreo, y que al convertirlo nuestro navegador lo transforme en pdf.

“Con esto consigues engañar al usuario y que se crea que está abriendo un documento pdf seguro, cuando en realidad está accediendo a un troyano”, ha explicado Fernando de la Cuadra. No podemos detectar a simple vista este tipo de malware pero sí hacer uso de webs que analizan ficheros como por ejemplo VirusTotal o URL X-ray.

Fuente:http://www.elconfidencial.com/

5 Mejores Herramientas – Seguridad y Hacking

En general, todas estas herramientas que describiremos a continuación son herramientas de seguridad y hacking. Estas se utilizan para fines tanto legales como ilegales, y por lo tanto, la mayoría de las personas piensan que estas herramientas son solo utilizadas por hackers maliciosas (algo totalmente fuera de la realidad), cuando en realidad están diseñadas para ayudar a los administradores y profesionales de seguridad a asegurar las redes y los sistemas de información.

1.-Nmap

nmap

Nmap (“Network Mapper”) es una herramienta gratuita de código abierto para la exploración de la red o la auditoría de seguridad. Fue diseñado para analizar rápidamente grandes redes, aunque funciona muy bien contra equipos individuales. Nmap utiliza paquetes IP para determinar qué hosts están disponibles en la red, qué servicios (nombre de la aplicación y la versión) estos equipos ofrecen, qué sistemas operativos (y versiones del sistema operativo) se están ejecutando, qué tipo de filtros de paquetes o cortafuegos están en uso, y docenas de otras características. Nmap se ejecuta en la mayoría de los ordenadores y la consola y versiones gráficas están disponibles. Nmap es libre y de código abierto.

Clic aquí descargar la versión de Linux

Clic aquí para descargar la versión de Windows

2.-John the Ripper

jhonthe ripper

John the Ripper es esencialmente una herramienta de descifrado de contraseñas que se desarrolló para sistemas tipo UNIX. También sus desarrolladores han extendido su apoyo a los sistemas Windows y MAC.

El software es utilizado por muchos usuarios para probar la fortaleza de la contraseña elegida. Obviamente, esta herramienta también puede ser usada para descifrar las contraseñas y entrar en un sistema. Es compatible tanto con ataque de diccionario (probando todas las palabras en el diccionario, de ahí que nunca se debe elegir una palabra que se ha encontrado en el diccionario) y ataque de fuerza bruta (en este caso todas las posibles combinaciones son juzgados – por lo tanto, si usted elige una contraseña que es alfanumérico y largo plazo, será difícil romperlo).

Clic aquí para descargar la versión de Linux

Clic aquí para descargar la versión de Windows

3.-Wireshark

wireshark

Wireshark es un programa analizador de protocolos de red o sniffer, que le permite capturar y navegar de forma interactiva por los contenidos de los paquetes capturados en la red. El objetivo del proyecto fue crear un analizador de calidad comercial para Unix. Funciona muy bien en Linux y Windows (con una interfaz gráfica de usuario), fácil de utilizar y puede reconstruir flujos TCP / IP y VoIP!

Clic aquí para descargar la versión de Linux

Clic aquí para descargar la versión de Windows

4.-NetStumbler

netstunbler

NetStumbler es una herramienta de detección de redes inalámbricas para Windows. NetStumbler es una herramienta para Windows que permite detectar redes de área local (WLAN), usando 802.11b, 802.11ay 802.11g.

Algunos de los usos de esta herramienta son:

  • Verificar que su red esta configurada de la manera segura.
  • Buscar lugares con baja cobertura en su WLAN.
  • Detectar otras redes que puedan estar causando interferencias en la red.
  • Detectar AP no autorizados “rogue” en su lugar de trabajo.
  • Ayudar a apuntar antenas direccionales para enlaces de larga distancia WLAN.

El equivalente de NetStumbler para Linux se llama Kismet.

Clic aquí para descargar la versión de Linux (Kismet)

Clic aquí para descargar la versión de Windows

5.-Metasploit

metasploit_logo

El Proyecto Metasploit es un proyecto de seguridad informática que proporciona información sobre las vulnerabilidades, ayuda en las pruebas de penetración y en la ejecución de la explotación de vulnerabilidades de seguridad. Metasploit representa un conjunto de herramientas que ayuda a los profesionales de seguridad y hacker a llevar a cabo ataques informáticos de manera sistematizada y automatizada.

Su más conocido sub-proyecto es el marco de código abierto Metasploit, una herramienta para el desarrollo y ejecución de código de explotación en contra de un equipo o sistema de información destino remoto. Otros importantes sub-proyectos son la base de datos Opcode, archivo shellcode, e investigaciones de seguridad.

Clic aquí para descargar la versión de Linux

Click aquí para descargar la versión de Windows

Recuerda que para prevenir estos ataques no basta con el conocimiento teórico sino ponerlo en practica, para prevenir ser victima de algun metodo de hacking te recomendamos tomes tus medidas de seguridad. Si consideras que este articulo agrega valor a tu vida, te invito a compatirlo con todas aquellas personas que les pueda interesar ser mejores profesionales.

UMAP To Test the Security Of USB Host Implementations

UMAP To Test the Security Of USB Host Implementations. Its is a tool which allows you to test the security of USB host implementations i.e. something you plug a USB device into, like a PC or a tablet. Its primary function at the moment is a fuzzer with test cases based on a combination of data from standards documentation and the author’s experience of where USB bugs are commonly found. However, it also has additional functionality that will be expanded further in future versions, for example:

> Operating system identification
> Installed application identification
> Vendor-specific driver enumeration
> Endpoint Protection System assessment

Running Umap

umap is written in Python so to run it just type:
$ sudo python3 umap.py
(umap must be run as root)
---------------------------------------
 _   _ _ __ ___   __ _ _ __
| | | | '_ ` _ \ / _` | '_ \
| |_| | | | | | | (_| | |_) |
 \__,_|_| |_| |_|\__,_| .__/
                      |_|

The USB host assessment tool
Andy Davis, NCC Group 2013
Version: 1.01

Based on Facedancer by Travis Goodspeed

For help type: umap.py -h
---------------------------------------

Error: Facedancer serial port not supplied
As you can see, it complains that you haven’t supplied the serial port to which the Facedancer is connected. By typing umap.py -h you can see how to do this:
Usage: umap.py

Options:
  --version    show program's version number and exit
  -h, --help   show this help message and exit
  -P SERIAL    Facedancer serial port **Mandatory option** (SERIAL=/dev/ttyX
               or just 1 for COM1)
  -L           List device classes supported by umap
  -i           identify all supported device classes on connected host
  -c CLS       identify if a specific class on the connected host is supported
               (CLS=class:subclass:proto)
  -O           Operating system identification
  -e DEVICE    emulate a specific device (DEVICE=class:subclass:proto)
  -v VID       specify Vendor ID (hex format e.g. 1a2b)
  -p PID       specify Product ID (hex format e.g. 1a2b)
  -r REV       specify product Revision (hex format e.g. 1a2b)
  -f FUZZC     fuzz a specific class (FUZZC=class:subclass:proto:E/C/A[:start
               fuzzcase])
  -s FUZZS     send a single fuzz testcase
               (FUZZS=class:subclass:proto:E/C:Testcase)
  -d DLY       delay between enumeration attempts (seconds): Default=1
  -l LOG       log to a file
  -R REF       Reference the VID/PID database (REF=VID:PID)
  -u           update the VID/PID database (Internet connectivity required)

  Experimental Options:
    -A APPLE   emulate an Apple iPhone device (APPLE=VID:PID:REV)
    -b VENDOR  brute-force vendor driver support (VENDOR=VID:PID)

The only mandatory option is -P to provide the serial port that the Facedancer board is connected to e.g.
$ sudo python3 umap.py -P /dev/ttyUSB0

First – what drivers are supported?

In order to fuzz a USB host you need to emulate the process of physical insertion and removal of your virtual device. The USB design is expecting this process to be performed by a human and therefore, attempting to perform the operation too quickly results in the host getting confused (…but that a whole different area of potential research). As a result, USB fuzzing can be very slow (7-10 seconds per fuzz test case) so it’s very important to be able to enumerate what classes of USB device are supported by the host before you start fuzzing.
To display which device classes umap can emulate use the -L option, which results in something like this:
XX:YY:ZZ - XX = Class : YY = Subclass : ZZ = Protocol
01:01:00 - Audio : Audio control : PR Protocol undefined
01:02:00 - Audio : Audio streaming : PR Protocol undefined
02:02:01 - CDC Control : Abstract Control Model : AT commands V.250
02:03:ff - CDC Control : Telephone Control Model : Vendor specific
02:06:00 - CDC Control : Ethernet Networking Control Model : No class-specific protocol required
03:00:00 - Human Interface Device : No subclass : None
06:01:01 - Image : Still image capture device : Bulk-only protocol
07:01:02 - Printer : Default : Bidirectional interface
08:06:50 - Mass Storage : SCSI : BBB
09:00:00 - Hub : Default : Default
0a:00:00 - CDC Data : Default : Default
0b:00:00 - Smart Card : Default : Default
As you can see, USB class information is represented by three bytes, the first being the base class e.g. 08 = Mass Storage class, the second is the sub-class e.g. 06 = SCSI (for Mass Storage) and the third is the protocol e.g. BBB (for Mass Storage).
In order to identify which of these virtual devices is supported by the USB host that your are testing, use the following command:
$ sudo python3 umap.py -P /dev/ttyUSB0 -i

01:01:00 - Audio : Audio control : PR Protocol undefined
 **SUPPORTED**
01:02:00 - Audio : Audio streaming : PR Protocol undefined
 **SUPPORTED**
02:02:01 - CDC Control : Abstract Control Model : AT commands V.250
 
02:03:ff - CDC Control : Telephone Control Model : Vendor specific
 
02:06:00 - CDC Control : Ethernet Networking Control Model : No class-specific protocol required
 
03:00:00 - Human Interface Device : No subclass : None
 **SUPPORTED**
06:01:01 - Image : Still image capture device : Bulk-only protocol
 **SUPPORTED**
07:01:02 - Printer : Default : Bidirectional interface
 
08:06:50 - Mass Storage : SCSI : BBB
 **SUPPORTED**
09:00:00 - Hub : Default : Default
 **SUPPORTED**
0a:00:00 - CDC Data : Default : Default
 **SUPPORTED**
0b:00:00 - Smart Card : Default : Default
The output above shows that the Audio device class is supported, but CDC is not. The -c option allows you to test if specific device classes are supported by the host rather than cycling through all of them.

Emulating a virtual USB device

Now that we know what classes are supported we can emulate a device and virtually connect it to the USB target host. Below is output of umap emulating a Still image capture device connected to an Ubuntu Linux host, which concluded with Linux starting the Shotwell application and displaying an image that is stored on the virtual USB camera device:
$ sudo python3 umap.py -P /dev/ttyUSB0 -e 06:01:01

Emulating 06:01:01 - Image : Still image capture device : Bulk-only protocol
Facedancer reset
GoodFET monitor initialized
MAXUSB initialized
MAXUSB enabled
MAXUSB revision 19
MAXUSB connected device USB image device
USB image device received request dir=1, type=0, rec=0, r=6, v=256, i=0, l=64
USB image device received GET_DESCRIPTOR req 1, index 0, language 0x0000, length 64
MAXUSB wrote 12 01 00 02 00 00 00 40 da 04 74 23 10 00 01 02 03 01 to endpoint 0
USB image device received request dir=0, type=0, rec=0, r=5, v=15, i=0, l=0
USB image device received SET_ADDRESS request for address 15
USB image device received request dir=1, type=0, rec=0, r=6, v=256, i=0, l=18
USB image device received GET_DESCRIPTOR req 1, index 0, language 0x0000, length 18
MAXUSB wrote 12 01 00 02 00 00 00 40 da 04 74 23 10 00 01 02 03 01 to endpoint 0
USB image device received request dir=1, type=0, rec=0, r=6, v=1536, i=0, l=10
USB image device received GET_DESCRIPTOR req 6, index 0, language 0x0000, length 10
MAXUSB wrote 0a 06 00 02 00 00 00 40 01 00 to endpoint 0
USB image device received request dir=1, type=0, rec=0, r=6, v=512, i=0, l=9
USB image device received GET_DESCRIPTOR req 2, index 0, language 0x0000, length 9
MAXUSB wrote 09 02 27 00 01 01 04 e0 32 to endpoint 0
USB image device received request dir=1, type=0, rec=0, r=6, v=512, i=0, l=39
USB image device received GET_DESCRIPTOR req 2, index 0, language 0x0000, length 39
MAXUSB wrote 09 02 27 00 01 01 04 e0 32 09 04 00 00 03 06 01 01 00 07 05 01 02 40 00 00 07 05 82 02 40 00 00 07 05 83 03 08 00 10 to endpoint 0
USB image device received request dir=1, type=0, rec=0, r=6, v=768, i=0, l=255
USB image device received GET_DESCRIPTOR req 3, index 0, language 0x0000, length 255
MAXUSB wrote 04 03 09 04 to endpoint 0
USB image device received request dir=1, type=0, rec=0, r=6, v=770, i=1033, l=255
USB image device received GET_DESCRIPTOR req 3, index 2, language 0x0409, length 255
MAXUSB wrote 10 03 44 00 4d 00 43 00 2d 00 46 00 53 00 37 00 to endpoint 0
USB image device received request dir=1, type=0, rec=0, r=6, v=769, i=1033, l=255
USB image device received GET_DESCRIPTOR req 3, index 1, language 0x0409, length 255
MAXUSB wrote 14 03 50 00 61 00 6e 00 61 00 73 00 6f 00 6e 00 69 00 63 00 to endpoint 0
USB image device received request dir=1, type=0, rec=0, r=6, v=771, i=1033, l=255
USB image device received GET_DESCRIPTOR req 3, index 3, language 0x0409, length 255
MAXUSB wrote 3e 03 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 31 00 58 00 30 00 32 00 30 00 39 00 30 00 33 00 30 00 37 00 35 00 34 00 to endpoint 0
USB image device received request dir=0, type=0, rec=0, r=9, v=1, i=0, l=0
USB image device received SET_CONFIGURATION request
USB image device received request dir=1, type=0, rec=0, r=6, v=772, i=1033, l=255
USB image device received GET_DESCRIPTOR req 3, index 4, language 0x0409, length 255
MAXUSB wrote 0c 03 49 00 6d 00 61 00 67 00 65 00 to endpoint 0
USB image interface handling 16 bytes of Image class data
USB image interface got OpenSession
USB image interface sent Image:OK
USB image interface responding with 12 bytes: 0c 00 00 00 03 00 01 20 00 00 00 00
USB image interface handling 12 bytes of Image class data
USB image interface got GetDeviceInfo
USB image interface sent Image:OK
USB image interface responding with 211 bytes: d3 00 00 00 02 00 01 10 01 00 00 00 64 00 06 00 00 00 64 00 00 00 00 10 00 00 00 01 10 02 10 03 10 04 10 05 10 06 10 07 10 08 10 09 10 0a 10 0c 10 0d 10 14 10 15 10 16 10 1b 10 04 00 00 00 04 40 05 40 08 40 09 40 02 00 00 00 06 d4 07 d4 00 00 00 00 06 00 00 00 01 30 02 30 06 30 0d 30 01 38 0d 38 0a 50 00 61 00 6e 00 61 00 73 00 6f 00 6e 00 69 00 63 00 00 00 08 44 00 4d 00 43 00 2d 00 46 00 53 00 37 00 00 00 04 31 00 2e 00 30 00 00 00 20 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 31 00 58 00 30 00 32 00 30 00 39 00 30 00 33 00 30 00 37 00 35 00 34 00 00 00 00 00
USB image interface responding with 12 bytes: 0c 00 00 00 03 00 01 20 01 00 00 00
USB image interface handling 12 bytes of Image class data
USB image interface got GetStorageIDs
USB image interface sent Image:OK
USB image interface responding with 20 bytes: 14 00 00 00 02 00 04 10 02 00 00 00 01 00 00 00 01 00 01 00
USB image interface responding with 12 bytes: 0c 00 00 00 03 00 01 20 02 00 00 00
USB image interface handling 16 bytes of Image class data
USB image interface got GetStorageInfo
USB image interface sent Image:OK
USB image interface responding with 40 bytes: 28 00 00 00 02 00 05 10 03 00 00 00 04 00 03 00 00 00 00 00 18 78 00 00 00 00 00 80 da 77 00 00 00 00 00 00 00 00 00 00
--truncated for brevity--

Emulating a specific device

Specific USB devices are identified by three 16-bit numbers: Vendor ID (VID), Product ID (PID) and Revision number (Rev – although this is often not used and just left as zero). This information is registered with and maintained by the USB Implementers Forum. If you wish to emulate a specific device of a certain class you can specify the VID, PID and REV using the -v, -p and -r options respectively. Furthermore, umap maintains a local copy of the VID/PID/REV database and lookups can be performed using the -R option (the local copy can be updated with -u). An example is shown below:
$ sudo python3 umap.py -P /dev/ttyUSB0 -R 04da:2374

Looking up VID= 04da / PID= 2374
Panasonic (Matsushita) Lumix Camera (PTP mode)

$ sudo python3 umap.py -P /dev/ttyUSB0 -e 06:01:01 -v 04da -p 2374 -r 0000

VID = 04da
PID = 2374
REV = 0000
Emulating 06:01:01 - Image : Still image capture device : Bulk-only protocol
Facedancer reset
GoodFET monitor initialized
MAXUSB initialized
MAXUSB enabled
MAXUSB revision 0
MAXUSB connected device USB image device
USB image device received request dir=1, type=0, rec=0, r=6, v=256, i=0, l=64
USB image device received GET_DESCRIPTOR req 1, index 0, language 0x0000, length 64
MAXUSB wrote 12 01 00 02 00 00 00 40 da 04 74 23 00 00 01 02 03 01 to endpoint 0
USB image device received request dir=0, type=0, rec=0, r=5, v=16, i=0, l=0
USB image device received SET_ADDRESS request for address 16
USB image device received request dir=1, type=0, rec=0, r=6, v=256, i=0, l=18
USB image device received GET_DESCRIPTOR req 1, index 0, language 0x0000, length 18
MAXUSB wrote 12 01 00 02 00 00 00 40 da 04 74 23 00 00 01 02 03 01 to endpoint 0
USB image device received request dir=1, type=0, rec=0, r=6, v=1536, i=0, l=10
USB image device received GET_DESCRIPTOR req 6, index 0, language 0x0000, length 10
MAXUSB wrote 0a 06 00 02 00 00 00 40 01 00 to endpoint 0
USB image device received request dir=1, type=0, rec=0, r=6, v=512, i=0, l=9
USB image device received GET_DESCRIPTOR req 2, index 0, language 0x0000, length 9
MAXUSB wrote 09 02 27 00 01 01 04 e0 32 to endpoint 0
--truncated for brevity--

Operating system identification

umap can perform simple operating system identification (this will be extended in future versions of the tool) using the -O option. More information about techniques that can be used to identify operating systems and applications via USB can be found in the Revealing Embedded Fingerprintswhite paper. An example is shown below:
$ sudo python3 umap.py -P /dev/ttyUSB0 -O

Fingerprinting the connected host - please wait...

OS Matches: Apple iPad/iPhone

Fuzzing

The primary function of umap is fuzzing. So if you wish to fuzz a specific device class on the target host you can use either the -f (fuzz) or -s (single-shot) options. The class information is provided as usual, but you also need to specify if you want to fuzz just the enumeration phase (‘E’), just the class-specific test cases (‘C’) or everything (‘A’). In single-shot mode you then need to provide the test case number to use and if a test case number if provided in fuzz mode, the fuzzer will start at the specified test case. Examples are shown below (note that in both modes umap first performs a test to confirm that the device class is supported by the target):
$ sudo python3 umap.py -P /dev/ttyUSB0 -s 01:01:00:E:6

Fuzzing:
01:01:00 - Audio : Audio control : PR Protocol undefined
 **SUPPORTED**
2013/10/10 15:35:26 Enumeration phase: 0006 - Device_bMaxPacketSize0_null
$ 
$ sudo python3 umap.py -P /dev/ttyUSB0 -f 01:01:00:C

Fuzzing:
01:01:00 - Audio : Audio control : PR Protocol undefined
 **SUPPORTED**
Class-specific data...
2013/10/10 15:38:04 Audio class: 0000 - CSInterface1_wTotalLength_null
2013/10/10 15:38:15 Audio class: 0001 - CSInterface1_wTotalLength_lower
2013/10/10 15:38:26 Audio class: 0002 - CSInterface1_wTotalLength_higher
2013/10/10 15:38:37 Audio class: 0003 - CSInterface1_wTotalLength_max
2013/10/10 15:38:47 Audio class: 0004 - CSInterface1_baInterfaceNr1_null

*** No response from host - check if the host is still functioning correctly ***
$
In the second example above, the target crashed as a result of the fourth test case (CSInterface1_wTotalLength_max), as there is no response to the fifth test case that was sent. The test cases are stored in testcases.py and therefore can easily be changed or added to.

Logging

The output can be logged to a file using the -l option:
-l LOG       log to a file

Delay

It’s highly unlikely you’ll need this option, but if you wish to add a delay between test cases then the -d option can be used:
-d DLY       delay between enumeration attempts (seconds): Default=1

Download – See more at: http://blog.hackersonlineclub.com/2014/06/umap-to-test-security-of-usb-host.html#sthash.7QqMNws9.dpuf