Ataques HID (USB) desde dispositivos Android (Kernel Hacking)

Primero que nada, ¿Qué son los dispositivos HID?

HID (Human Interface Device) son básicamente los dispositivos que interactúan  directamente con el usuario, es decir, que son una interfaz entre el usuario y la máquina, por ejemplo un mouse, un teclado, etc.

¿A qué nos referimos exactamente con ataques?

Por ejemplo, si emulamos un mouse, podemos hacer exactamente lo que hace un mouse, mover el puntero, mandar botones (de cada uno de los botones que tiene un mouse). Si emulamos un teclado... obviamente podemos mandar teclas, entre ellas atajos (Ctrl+Supr, Inicio+D, etc) de este modo podemos hacer cualquier cosa que haría un usuario en la computadora, esto sin tocar nosotros directamente la máquina (por ejemplo ejecutar un programa sin necesidad de infectar la máquina, y sin que un antivirus detecte algo sospechoso), estos ataques no duran más de unos segundos (a veces no más de 1 segundo) y se pueden pre-programar, es decir llevar programado el ataque en un dispositivo que simplemente hará falta conectarlo a la máquina (en este caso sería el celular) para que haga todo el trabajo por nosotros.

¿Hacia que plataformas está enfocado esta clase de ataques?

Hacia cualquier cosa que tenga un puerto usb y soporte dispositivos HID, esto no depende del sistema operativo, por lo que puede afectar a windows y a linux por igual (se podría hablar de dispositivos android). Incluso se puede enfocar el ataque a kioskos de auto-servicio y demás dispositivos con un usb descubierto.

Comencemos, para poder realizar estos ataques desde un dispositivo android se necesita parchar el kernel para poder utilizar el usb del celular en crudo (sin pasar por las api's de android) para poder simular cualquier dispositivo que nos de la gana, para esto necesitamos obviamente el código fuente del kernel y las cross-tools correspondientes para compilar el kernel, además de fastboot (o un modo para escribir el kernel), no detallaré este proceso, solo hablaré del código fuente, el proceso de compilar un kernel se habla en “Android Para Hackers Reales pt. 2”.

Usaré un celular M860 para esto, por lo que usaré el código fuente de este dispositivo (ustedes necesitarán el código fuente del kernel del celular que vayan a usar).

El código fuente del USBHacker (esta modificación al kernel) está disponible aquí: http://www.mediafire.com/?clygkt3457odcrb

Parchamos el código fuente:
Zer0-null:/home/xianur0/kernel-2.6.29-M860 # patch < ../parche.patch

can't find file to patch at input line 3

Perhaps you should have used the -p or --strip option?

The text leading up to this was:

--------------------------

|--- drivers/usb/function/msm_hsusb.c   2013-02-22 04:40:41.487025262 -0600

|+++ drivers/usb/function/msm_hsusb.c.back  2013-02-22 04:38:07.597024271 -0600

--------------------------

File to patch: drivers/usb/function/msm_hsusb.c

patching file drivers/usb/function/msm_hsusb.c

Compilamos el kernel como se mostró en el paper pasado (Android Para Hackers Reales pt. 2), compilamos los módulos y arrancar el que nos interese, por ejemplo el mouse:
Zer0-null:/home/xianur0/kernel-2.6.29-M860/xian-modules # make

Make module for target arm

make EXTRA_CFLAGS=-fno-pic -C /home/xianur0/kernel-2.6.29-M860 M=/home/xianur0/kernel-2.6.29-M860/xian-modules ARCH=arm CROSS_COMPILE=/home/xianur0/toolchain-4.6.3/bin/arm-linux-androideabi- modules

/bin/sh: /home/xianur0/kernel-2.6.29-M860/xian-modules/scripts/gcc-version.sh: No existe el fichero o el directorio

make[1]: se ingresa al directorio `/home/xianur0/kernel-2.6.29-M860'

Building modules, stage 2.

MODPOST 2 modules

make[1]: se sale del directorio `/home/xianur0/kernel-2.6.29-M860'

adb push teclado.ko /sdcard/

* daemon not running. starting it now on port 5037 *

* daemon started successfully *

81 KB/s (52093 bytes in 0.622s)

adb push mouse.ko /sdcard/

187 KB/s (51069 bytes in 0.265s)

Disfruta :D!

adb shell

# insmod /sdcard/mouse.ko

 

Nota: modificar el Makefile para colocar la ruta del código fuente del kernel y del toolchain.

Y si todo va bien, el puntero de nuestra máquina comenzará a moverse... de lo contrario bastará con desconectar y volver a conectar el usb.

Para volver a tener adb basta con ejecutar en el celular (desde terminal emulator) el comando: rmmod mouse

El caso del teclado sería algo similar, pero este es un poco más divertido, porque podemos mandar atajos de teclas, y en muchos esos eso nos podría servir para ejecutar programas (Por ejemplo: Windows + R nos serviría para desplegar la ventana de “Ejecutar” y a esa podríamos escribir por ejemplo: “cmd” seguido por un enter y tendríamos ms-dos abierto).

Por el momento no extenderé mucho este paper, debido a que el tema es muy extenso y da para hablar mucho, por lo que continuaremos en otro post.



by xianur0

Penulis : Megabyte ~ Sebuah blog yang menyediakan berbagai macam informasi

Artikel Ataques HID (USB) desde dispositivos Android (Kernel Hacking) ini dipublish oleh Megabyte pada hari lunes, 25 de febrero de 2013. Semoga artikel ini dapat bermanfaat.Terimakasih atas kunjungan Anda silahkan tinggalkan komentar.sudah ada 0 komentar: di postingan Ataques HID (USB) desde dispositivos Android (Kernel Hacking)
 

0 comentarios:

Publicar un comentario