Skip to content

rektsu/hardware_hacking_es

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Hardware Hacking ES Comunidad


Encontrar puerto COM para el Bus Pirate

Importante hacer estos pasos antes de conectar el Bus Pirate

La manera más rápida y eficaz es abrir el Administrador de Dispositivos (device manager) buscándolo en el sistema.

También podemos usar la secuencia win+r escribiendo devmgmt.msc

Una vez se nos abra el administrador de dispositivos nos interesa la parte Puertos (COM y LPT).

Al desplegarlo obtendremos los puertos previos a conectar el Bus Pirate

Al conectar el Bus Pirate aparece el nuevo puerto COM que tendremos que utilizar. En el caso de la imagen USB Serial Port (COM4).


Hacking EEPROM AT24C256 I2C 5V

Material Requerido:

Paso 1: Conectar pinzas a EEPROM

Usamos este esquema para conectarnos:

schema by David Sánchez

Tiene que quedar asi:


Paso 2: Conectarse al I2C con BusPirate

Ahora nos conectaremos usando algun software como TeraTerm o Putty, en mi caso usare TeraTerm.

  1. Lo abrimos y seleccionamos la interfaz COM correspondiente del BusPirate

  1. Ahora configuramos la interfaz serial dentro de Setup->Serial Port

  1. Y lo dejamos con esta configuracion de 115200 baudios de velocidad, 8 bits de datos, ninguno de paridad y uno de stop.

  1. Ahora para no quedarnos ciegos vamos a la configuración de fuente y aumentamos el tamaño y lo dejamos en 14.

  1. Abrimos el menu del buspirate presionando m+enter

  1. Presionamos el 4 y damos enter, dos veces

Presionamos W mayúscula y P mayúscula y ya podriamos leer la memoria y escribir


Paso 3: Localizar direcciones I2C

Usamos la macro de búsqueda de direcciones de 7bit para obtener la dirección de escritura y de lectura.

Escribimos (1) y damos a enter

Paso 4: Como leer y escribir con I2C

Como escribir I2C

Con los corchetes indicamos el principio y el final de cada comando I2C.

El primer byte en hexadecimal es la dirección que indica si escribimos o leemos.

Los dos siguientes bytes son la direccion donde se va a escribir.

Los bytes 0x41 0x41 0x41 son el contenido que se escribira en la dirección selecionada de manera consecutiva.

Como leer I2C

Para leer una dirección tenemos que usar la direccion de escritura de la eeprom.

Hay que escribir la direccion para luego poder leer el contenido aunque no sobreescribamos nada.

Se sigue el mismo patrón que escribiendo pero sin Bytes de contenido.

[0xA0 0x00 0x69]

Después de seleccionar la direccion 0x69 escribimos el byte de lectura y una r para leer un byte, en el caso que queramos leer varios bytes escribimos 'r:(numero de veces)' para que sea una lectura secuencial.

[0xa1 r:20]

Tenemos flasheado el CTF de Dreg, para leer la flag de la EEPROM introducimos estos comandos:

[0xA0 0x00 0x69]

[0xa1 r:20]

Para saber mas sobre el protocolo I2C con el bus pirate lee esto.

Usamos un conversor de hexadecimal y obtenemos este resultado.


Hacking Router TP-Link TL-WR841N

Material Requerido:

  • TP-Link TL-WR841N
  • Soldador Estaño
  • FLux
  • USB a TTL o Buspirate
  • Multimetro
  • Cable Ethernet o Wifi
  • Pines para UART
  • Ordenador

Paso 1: Comprar el router.

El modelo que vamos a analizar es el TP-Link TL-WR841N V14


Paso 2: Abriendo el router.

Lo primero que debemos hacer es quitar los dos tornillos que hay en la parte inferior y después haremos palanca con algún trozo de plástico, yo he usado una púa de guitarra.

Y ya tendríamos acceso directo a la PCB del router.


Paso 3: Identificar componentes y UART.

Una vez abierto el router hay que identificar todos los componentes posibles.

Cada circulo es una parte interesante de la pcb para nosotros:

  • Circulo Rojo: Es la memoria RAM. Mirando la ficha técnica de la Versión 14 en OpenWRT podemos ver que tiene 32 MiB.

  • Circulo Amarillo: Es el SOC (System-On-Chip) MT7628NN.

  • Circulo Azul: Es la memoria flash EN25Q32(A/B). Aquí es donde se guarda el bootloader y el sistema de archivos etc.

  • Circulo Rosa: Es la Interfaz UART que usaremos para obtener terminal de root y obtener el sistema de archivos. La resistencia R18 bloquea la escritura UART, luego habrá que quitarla.


Paso 4: Soldar pines a UART y ELIMINAR R18.

Soldar pines a UART no es complicado simplemente necesitaremos:

Aqui vemos como se ha eliminado la R18 que impide la escritura a través de UART y los pines listos para conectarnos. En este caso hemos conectado el RX, el TX y el GND. El VCC no es necesario porque la alimentación la daremos usando el adaptador de corriente del router.


Paso 5: Conectarse al UART.

Usando USB-to-TTL

Aqui podemos ver como he conectado todos los pines desde el USB_UART-to-TTL, una cosa IMPORTANTE es que para que funcione la escritura necesitamos que el cable de datos TX vaya a 5V, porque si lo ponemos a 3,3V no funcionara correctamente.

Ahora para conectarnos correctamente lo primero es entender el protocolo SERIAL ,lo mas importante es que el pin RX del adaptador TTL-USB tiene que ir al TX del router y el TX del adaptador TTL-USB al RX del router además de conectar los dos GNDs.

Ahora nos conectaremos usando algun software como TeraTerm o Putty, en mi caso usare TeraTerm.

  1. Lo abrimos y seleccionamos la interfaz COM correspondiente del TTL-USB

  1. Ahora configuramos la interfaz serial dentro de Setup->Serial Port

  1. Y lo dejamos con esta configuracion de 115200 baudios de velocidad, 8 bits de datos, ninguno de paridad y uno de stop.

  1. Ahora para no quedarnos ciegos vamos a la configuración de fuente y aumentamos el tamaño y lo dejamos en 14.

  1. Tras esto enchufamos el router a la corriente y veremos el bootloader cargando.

Tras esto ya podemos escribir comandos pero antes vamos a ver como se haría con el bus pirate.

Usando Bus Pirate

Ahora explicaremos paso a paso con el bus pirate:

La configuración del emulador de terminal es la misma que en el USB-to-TTL ahora lo importante es como conectemos los cables, aqui tenemos un esquema de que es cada color:

  1. Ahora debemos conectar el MOSI(GRIS) al RX y el MISO(NEGRO) al TX, el GND(MARRON) al GND del router además de conectar el VPU(VERDE) al 5V(NARANJA) del propio bus pirate

  1. Lo siguiente es conectarse usando TeraTerm y con la misma configuración de antes e interactuar con el menu del bus pirate.

Escribimos 'm' y pulsamos intro

Elegimos el modo 3 (UART)

Pulsamos enter 4 veces para elegir todo por defecto es decir: Sin bit de paridad, 1 bit de parada , y con el colector abierto (Open Drain) para meterle por VPU esos 5V que necesita.

Pulsamos 'W' mayúscula para dar corriente, pulsamos 'P' mayúscula para activar las resistencias pull-up y solo nos falta activar el live monitor para recibir la shell de UART.

Esto lo haremos usando la macro (1) que es el Transparent bridge aunque si ponemos (0) nos saldra la lista de macros.

Ahora conectamos el router a la corriente y obtendremos shell.


Paso 6: Extraer Sistema de archivos y Firmware

Lo primero que haremos para extraer el sistema de archivos es instalar un servidor TFTP (Trivial FIle Transfer Protocol), en mi caso instale la version Tftpd64-4.62-setup.exe una vez instalada hay que abrirlo y dejar la configuración de esta manera:

Tras configurarlo nos conectamos al router por wifi o por cable y revisamos que ip nos ha dado:

Con esto ya sabemos que desde el terminal del router tenemos transferir por TFTP a 192.168.0.100

Para comprobar que estamos conectados al router por red introducimos la puerta de enlace en el navegador:

Una vez conectados es el momento de extraer el sistema de archivos y el firmware completo.

Tenemos una terminal muy limitada, para tener mas herramientas hay que subir una copia de busybox-mipsel.

Obtención de la flash via MTD

Este router utiliza el subsistema MTD, que se divide en bloques. Concatenamos todos los bloques en orden para obtener el contenido de la flash, para más información de MTD.

Los bloques se encuentran en el directorio /dev y empiezan por la palabra mtd:

Copiamos todos los archivos de mtd con el script transfer.sh.


Paso 7: Extraccion del Firmware

Metemos los archivos en kali y los concatenamos siguiendo estos comandos:

cat mtdblock0 > firmware

cat mtdblock1 >> firmware

cat mtdblock2 >> firmware

cat mtdblock3 >> firmware

cat mtdblock4 >> firmware

Descomprimimos y extraemos con binwalk para después poder analizarlo:

binwalk -eM firmware

About

Hardware Hacking ES Comunidad

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Shell 100.0%