2020/10/04

DVR: completando el reconocimiento y explorando ataques ajenos

Repasemos y reformulemos tras lo aprendido en la primera ronda de reconocimiento:

Tenemos una computadora de propósito específico (DVR) que no deja de ser atractiva para otros propósitos debido a que tiene:

  • CPU con FPU y SIMD (NEON)
  • SATA
  • USB
  • VGA
  • Ethernet
  • varios puertos GPIO
  • algo que parece ser RS-232 pero puede ser RS-485, según veremos luego
  • RTC con batería
  • aceleración criptográfica
  • todo un subsistema de procesamiento de audio y video 
  • y un lindo gabinete, aunque le falta la tapa

En comparación con una Raspberry Pi, dependiendo del modelo puede tener más o menos poder computacional y si dejamos de lado el subsistema de video, la supera por tener SATA y RTC, convirtiéndola lo primero en apta para hacer un Network Storage.

 

Lo de hoy


En esta entrega, de la Cyber Kill Chain estaremos yendo y viniendo por:

  • Reconnaissance
  • Weaponization
  • Delivery
  • con esperanza de Exploitation

 

UART 

 

En una segunda inspeccion vi unos pines etiqueteados con GTR, apuesto a que este GTR no es, sino:
 
G: Ground
T: Transmit
R: Receive
 

Boot
Boot


Mirá el resultado del decoding, la linea verde y sus letritas.

Me costó darme cuenta que la velocidad de la UART en boot no tiene nada que ver con la que se configura luego.

Fuí probando con diversos dispositivos conectados.


U-Boot 2010.06-svn (Oct 21 2019 - 14:58:50)

Check Flash Memory Controller v100 ... Found
SPI Nor(cs 0) ID: 0xc2 0x20 0x18
Block:64KB Chip:16MB Name:"MX25L128XX"
SPI Nor total size: 16MB
In:    serial
Out:   serial
Err:   serial
USB:   scanning bus for devices... 2 USB Device(s) found
0 Storage Device(s) found
PHY 0x01: OUI = 0x90C3, Model = 0x05, Rev = 0x04 .
ETH0: PHY(phyaddr=1, mii) not link!
higmac init fail!
Press CTRL-C to abort autoboot in 2 seconds

 
Con  el cable de red conectado:


U-Boot 2010.06-svn (Oct 21 2019 - 14:58:50)

Check Flash Memory Controller v100 ... Found
SPI Nor(cs 0) ID: 0xc2 0x20 0x18
Block:64KB Chip:16MB Name:"MX25L128XX"
SPI Nor total size: 16MB
In:    serial
Out:   serial
Err:   serial
USB:   scanning bus for devices... 2 USB Device(s) found
0 Storage Device(s) found
PHY 0x01: OUI = 0x90C3, Model = 0x05, Rev = 0x04 .
port_mode:0x3d
ETH0: PHY(phyaddr=1, mii) link UP: DUPLEX=HALF : SPEED=10M
MAC:   00-0C-1C-xx-xx-xx
Press CTRL-C to abort autoboot in 2 seconds


 
Si oprimo CTRL-C me da un shell sin comandos, con TAB me muestra pero están deshabilitados.


hilinux #
  reset go bootd boot bootm tsload ddr decjpg ext2load
  ext2ls fatinfo fatls fatload getinfo ? help loady loadb
  ...


Si lo dejo correr:
 

Unknown command 'auto' - try 'help'
16384 KiB hi_fmc at 0:0 is now current device

pic load:0x8a000000
pic save:0x8a300000
0ff:0x8a000000
can't find corresponding entry
 data LOAD ERROR<0> !
OpenDev  vo:0 intf_type:36 out_sync:17
OpenDev  vo:1 intf_type:1 out_sync:0

## Booting kernel from Legacy Image at 82000000 ...
   Image Name:   linux
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2062808 Bytes = 2 MiB
   Load Address: 80008000
   Entry Point:  80008000
   Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
�



Ese caracter loco me sugiere que cambió de baudrate...
 
 
Glitch
Glitch
 
 ...no, es nada.
 
 
Para seguir interactuando con el linux ya corriendo o alguna aplicación, fuí probando los modos de RS-232:
  • General: nada
  • InteractCmd: nada
  • Ranging: nada
  • Transparent: nada

 

USB

 

Se me ha ocurrido que quizás si hay USB drive, diga algo:


USB:   scanning bus for devices... 3 USB Device(s) found
usb_stor_get_info->1431,blksz:512
1 Storage Device(s) found
Interface:  USB
  Device 0: Vendor: SMI      Rev: 1100 Prod: USB DISK       
            Type: Removable Hard Disk
            Capacity: 1901.0 MB = 1.8 GB (3893248 x 512)
Partition 1: Filesystem: FAT32 "RIGOL      "
    36033   output.pdf
    63096   ds1z_quickprint1.png
    33421   ds1z_quickprint2.png
            .trash-1000/
            system volume information/

3 file(s), 2 dir(s)

do not need usb update



Buen intento,  ahora necesito saber que busca.  El mensaje "do not need usab update" mi sugiere que hará update, no boot.
 
En varias fuentes he visto archivos tipo auconfig.txt, ya veremos

 

Ataques conocidos

 

Habiendo fallado por este lado e inspirado por un comentario a la primera parte apuntando a:

https://www.exploit-db.com/docs/english/44003-hisilicon-dvr-hack.pdf

y sumado a algunás búsquedas, volví a mirar los puertos, esta vez conectando con netcat, recordemos que eran 9527, 9530 y 34567:


while [ true ] ; do
   echo retry
   nc IP PORT
done

 
Nada. Telnet contra los mismos, nada.

Apliqué el ataque mencionado e implementado en https://github.com/Snawoot/hisilicon-dvr-telnet, nada, no está más el port knocking. El de https://github.com/tothi/pwn-hisilicon-dvr, no tengo paciencia para resolver el pwn.py del que depende.

Es evidente que el firmware que contiene está asegurado, como que el fabricante ha leido lo mismo que yo y lo ha corregido, estos son algunos de los links adicionales:

  • https://www.osm-s.com/en/2017/11/30/ip-camera-security-horror/
  • https://habr.com/en/post/486856/
  • https://ipvm.com/reports/backdoor-9530
Sin embargo, fijate que más arriba decía:

Unknown command 'auto' - try 'help'

Esto me dice que lo arreglaron a hachazos, ¿para qué intentás ejecutar un comando que sabés que no va a estar?

 

Punto de control

 

Como habrás visto, he pasado por 
  • Weaponization
    • Elección y prepararación de cada exploit
  • Delivery
    • Interacciones con el dispositivo
  • Exploitation 
    • Sin éxito

 

RS-485

 

De paso, habiendo resuelto está RS-232, reviendo la señal que previa y erróneamente había asociado con RS-232 y viendo que en PTZ device configuration dice RS-485 y sabiendo que éste último usa par diferencial, apuesto a que ese conector mal identificado es en realidad RS-485, me faltaría saber por que tiene cuatro cables, qué está transmitiendo y si puedo manifestar algo por ahí.
 
 
Evidencia de par diferencial
Evidencia de par diferencial

 
 
 
Es muy tentador pues nunca usé RS-485 y la EDU-CIAA-NXP lo tiene y también he hallado unos chips relacionados en otro dispositivo rescatado de la calle, pero me aleja mucho de mis propósitos.

 

Próximos pasos

 

Todo esto me deja en una encrucijada:
 
  • Lo uso como está
    • No aprendo nada
    • No lo voy a usar por que no tengo cámaras
      • No tengo ganas ni tiempo de instalarlas
      • No tengo motivos para mirarlas luego salvo ver a los perros que defecan en la vereda y si no lo he hecho aún no ha sido por no tener este dispositivo
  • Le plancho un firmware vulnerable
    • Puedo fallar y pierdo todo
    • Pierdo lo que hay ahora que parece ok
  • Obtengo físicamente el firmware
    • Más que puede, probablemente falle y pierda todo
    • Pero aprendo todo


 
Le voy a dar un tiempo más a ver si encuentro algo hecho, en caso contrario, muy a mi pesar, le voy a arrancar el chip con el firmware y terminaré lo que empecé con el router al que le cayó el rayo.

2020/10/03

El sesgo de las certificaciones

Daré contexto para mostrar que no es el resentimiento de no poder hacer una certificación lo que guía mis palabras sino unas ciertas condiciones que sí me provocan resentimiento. Estoy considerando rendir una pronto, publico esto antes por si las dudas me va mal, no quede ligado a ese fracaso.

 Tambien que se trata de pura especulación, no soy experto ni siquiera "associate" de los temas involucrados.

 

Contexto


He tomado una sola certificación, hace 20 años, si no fui el primero fui el segundo del pais, CCNA, lo tomé en ingles lo cual me dio tiempo extra y en menos de ese tiempo extra lo resolví.

Dicho de otra manera, tenia 90 minutos para el examen y 45 adicionales por no tomarlo en mi lenguaje nativo y lo resolví en menos de 45, siendo estos números aproximados.

Creo recordar que el acuerdo de confidencialidad decía que no podía decir que nota había sacado, me imagino que debía ser para no relevar que casi todos sacamos notas muy altas, si a todos nos va muy bien podemos sospechar que el examen es una truchada. Igual fijate que dije "casi".

Contrastando, en la materia Algoritmos 2 con Mandrafina de FIUBA, el examen duraba cuatro horas, de las cuales media correspondía al docente explicar de qué se trataba el examen, que era prácticamente igual al trabajo práctico grupal.

Cuando vas a dar una certificación dice que no podés llevar absolutamente nada, ni siquiera lápiz y papel en blanco. Esto es para la presencial, para la "proctored" ok, es una circunstancia especial, hay múltiples maneras de copiarse, pero si estás ahí y hay alguien mirándote, ¿cuál es el motivo de no poder escribir y dibujar para organizar tu pensamiento?

¿Qué no te lleves información del examen? ok, entregás todo lo que hayas escrito, no hay problema con eso.

Según había leido hace mucho tiempo, hay distintas maneras de representar ideas en tu cabeza, siendo las más comunes mezcla visual y palabras, mayormente visual y sólo palabras.


+-------------+-----------------+--------+
|    muy      |      mezcla     | solo   |
|   visual    |                 |palabras|
+-------------+-----------------+--------+
|     30%     |        45%      |  25 %  |
+-------------+-----------------+--------+


De hecho, se recomienda siempre al enseñar o explicar algo utilizar imágenes.

Me ha contado una persona que a veces se habla a si misma para comprender un problema, lo cual no está permitido en este tipo de examen.

Y si diéramos crédito a la teoría de las inteligencias múltiples, de las doce mencionadas, supongo que tres (Lingüístico-Verbal, Lógico-Matemática, Visual-espacial) estaríamos usando en un examen y una de ellas reprimida.

De un modo u otro, todo me lleva a pensar que estas restricciones segregan a un tercio de la población directamente y quizás un quinto extra, favoreciendo desde un cuarto hasta poco más de la mitad de la población, pues supongo que la mezcla es gradual.

¿Se trata de un daño colateral producto de factores económicos?

  • Cuanto más restrictivo, más barato es el examen
  • Se impide la fuga de información de las preguntas para que no te puedas preparar mejor para la próxima vez

Este segundo factor tambien favorece a quienes tienen buena memoria, independientemente de su capacidad analítica, pero esto ya viene de arrastre de antes al tratarse de un examen y no un trabajo práctico.

Distingo una certificación, o sea, pura medición de modo quizás indirecto de que tenés experiencia en un tema de un examen, como el resultado de una prueba tras un curso, dónde quien lo dicta tiene oportunidad de ajustar el resultado pues ha visto tu desempeño y evolución.

Tambien he aprendido mucho no sólo preparando exámenes sino en el momento mismo de darlos y una certificación es una muy buena excusa u oportunidad para estudiar e investigar.

La verdad es que en cualquier situacion de la vida real, nadie me va impedir usar papel o hablar solo y para el caso tampoco consultar un libro u otra persona, pero ok, aceptemos las dos últimas restricciones como razonables para una situación de examen o certificación.

Sin embargo, algo que he hecho en algún examen de física ha sido, partir de una formula (no recuerdo cuál), desarrollar todas las relacionadas en una hoja aparte, para así durante la resolución sacarme ese problema de la cabeza.

En un examen de AWS probablemente me haría un grafo relacionando servicios, pues es una selva interminable y muchas respuestas dependen de recordar la existencia de esos servicios.

Hasta acá no he dicho nada que no haya sido dicho y discutido antes. Incluso podría estar de acuerdo, que no lo estoy, que un examen de respuestas múltiples es una manera correcta de medir si es que se puede realmente medir.

La verdad verdad es que no me importa mucho, incluso este tipo de exámenes me favorece, pues según he comprobado me va mejor que responder al azar incluso en temas que aún no conozco, como que veo la correlación entre las preguntas y puedo deducir por consistencia las correctas.


 

Por fin al grano 


Lo que si me intriga es si habrá además alguna correlación entre el modo de pensar no visual y otras características de las personas aprobadas que puedan ser útiles de modo directo o indirecto:

  • empatia
  • escrúpulos
  • solidaridad
  • obediencia
  • imaginación

Y de haberla, si esta correlación ha sido descubierta y es usada.

Lo único que se me ocurre es, supongamos que pensar de modo solo palabras está asociado a la falta de imaginación y muchísimas de las certificaciones son para herramientas que requieren sentarse y seguir procedimientos más que tener creatividad.

 

Dejo este tema a quien tenga la formación, experiencia y certificación para tratarlo...