TP Link Router M7350 V3
CPU en V3: Qualcomm MSM 9625 (árbol de dispositivos aplanado), Modelo: Qualcomm MSM 9625V2.1 MTP
Hay revisiones de hardware posteriores:
Únete a nuestro canal Matrix
./system/etc/{passwd-,shadow}
./system/etc/lighttpd.user
./system/sbin
./META-INF/com/google/android/updater-script
SOC: Qualcomm MDM9225
Nota rápida en los términos de Qualcomm:
Flash: 2Gbit (256Mb) Winbond W71NW20GF3FW
Mobile Wireless: Skyworks Sky77629
Basado en las fuentes oficiales de kernel.org y con el código de proveedor rsync
ed, estamos trabajando para que esto se construya en 2024.
https://github.com/m0veax/tplink_m7350-kernel
Una configuración desde un dispositivo real: kernel/config
Si elimina la batería y el complemento USB, LSUSB muestra:
Bus 001 Device 031: ID 18d1:d00d Google Inc. Xiaomi Mi/Redmi 2 (fastboot)
> fastboot devices
MDM9625 fastboot
Arriba desaparece después de unos segundos.
Si arranca normal, se muestra:
Bus 001 Device 032: ID 2357:0005 TP-Link M7350 4G Mi-Fi Router
Ingrese FastBoot sin Bootloop
fastboot reboot bootloader
Qualcomm documenta sus comandos FastBoot.
Los siguientes comandos getvar
producen resultados:
variable | resultado |
---|---|
version | 0.5 |
kernel | lk |
max-download-size | 0x2f00000 |
product | MDM9625 |
serialno | MDM9625 |
La pantalla está conectada al bus SPI a través del controlador a 0xf992_4000
. Podríamos extraer esa información de los árboles del dispositivo.
La cadena de compat de controlador SPI es qcom,spi-qup-v2
. En el núcleo del proveedor, el controlador SPI es drivers/spi/spi_qsd.c
. En Mainline Linux, es drivers/spi/spi-qup.c
.
Se llama a la pantalla OLED
tplink,oleds90319
(nodo detrás de qcom,spi-qup-v2
)tp,oled_pt
-> qcom,oled_s90319_pt
De hecho, el lado de la pantalla (marco blanco) dice: BLB-S90319B-1
No existe tal cosa en las fuentes del núcleo del proveedor, ni Google o Bing producen nada. Por lo tanto, no está claro qué es exactamente el controlador de visualización. Parece una pantalla monocromática de 128x128, similar a SSD1306 / SH1107 .
Desde la configuración del núcleo, arrojamos:
CONFIG_OLED=y
# CONFIG_OLED_SSD1306_PT is not set
CONFIG_OLED_S90319_PT=y
El binario /usr/bin/oledd
se inicia a través de /etc/init.d/start_oledd
. Accede a la pantalla OLED a través de SYSFS:
/sys/class/display/oled/backlight_on
/sys/class/display/oled/panel_on
/sys/class/display/oled/oled_buffer
Podemos hacer eco 1
a los archivos *_on
0
reproducir con la pantalla. Y podemos escribir en el búfer nosotros mismos, aunque cómo funciona aún no está claro. Jugar mostró que el panel de visualización realmente admite los colores. ?
Si quieres divertirte:
/etc/init.d/start_oledd stop
echo 1 > /sys/class/display/oled/backlight_on
echo 1 > /sys/class/display/oled/panel_on
cat /dev/random > /sys/class/display/oled/oled_buffer
Esto dibujará sin cesar rectángulos y mostrará basura de píxeles. Presione Ctrl+C para detenerse.
spi@f9924000 {
compatible = "qcom,spi-qup-v2";
reg = <0xf9924000 0x1000>;
interrupts = <0x00 0x60 0x00>;
spi-max-frequency = <0x17d7840>;
#address-cells = <0x01>;
#size-cells = <0x00>;
gpios = <0x02 0x07 0x00 0x02 0x05 0x00 0x02 0x04 0x00>;
cs-gpios = <0x02 0x06 0x00>;
qcom-spi-oled@1 {
compatible = "tplink,oleds90319";
reg = <0x01>;
spi-max-frequency = <0x927c00>;
};
};
oled {
compatible = "tp,oled_pt";
qcom,oled_s90319 {
compatible = "qcom,oled_s90319_pt";
qcom,oled-cs-gpio = <0x02 0x06 0x00>;
qcom,oled-rsx-gpio = <0x02 0x15 0x00>;
qcom,oled-reset-gpio = <0x02 0x14 0x00>;
qcom,oled-vdd0-gpio = <0x02 0x16 0x00>;
qcom,oled-vdd1-gpio = <0x02 0x17 0x00>;
qcom,oled-boost-en-gpio = <0x02 0x3d 0x00>;
};
};
[ 2.042245] s90319_spi_probe successed!
[ 2.045067] oled_90319_panel_init success.
[ 2.049204] oled_probe
[ 2.051692] oled_s90319_probe
[ 2.054716] oled init success!
El dispositivo parece ejecutar Android, sin /dev/binder
. Puede obtener el firmware aquí:
Página de soporte de TP-Link
El firmware no está criticado. Puede echar un vistazo más profundo a las configuraciones.
binwalk boot.img
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
0 0x0 Android bootimg, kernel size: 3564792 bytes, kernel addr: 0x308000, ramdisk size: 0 bytes, ramdisk addr: 0x308000, product name: ""
2048 0x800 Linux kernel ARM boot executable zImage (little-endian)
18403 0x47E3 gzip compressed data, maximum compression, from Unix, last modified: 1970-01-01 00:00:00 (null date)
3567616 0x367000 Qualcomm device tree container, version: 1, DTB entries: 55
3569664 0x367800 Flattened device tree, size: 49302 bytes, version: 17
3620864 0x374000 Flattened device tree, size: 49218 bytes, version: 17
3672064 0x380800 Flattened device tree, size: 49088 bytes, version: 17
3721216 0x38C800 Flattened device tree, size: 48730 bytes, version: 17
3770368 0x398800 Flattened device tree, size: 49193 bytes, version: 17
3821568 0x3A5000 Flattened device tree, size: 48516 bytes, version: 17
3870720 0x3B1000 Flattened device tree, size: 47693 bytes, version: 17
./system/etc/{passwd-,shadow}
root:C98ULvDZe7zQ2:0:0:root:/home/root:/bin/sh
La búsqueda rápida del hash nos da oelinux123
como un posible valor. Necesitamos verificar eso más tarde.
Fuente: https://svson.xyz/posts/zte-dongle/part4/
./system/etc/lighttpd.user
admin:admin
./system/sbin
El firmware parece contener un adbd
. Necesitamos encontrar una manera de comenzar.
./META-INF/com/google/android/updater-script
Rutas a los archivos y la creación de enlaces simbólicos para AutoStart ECT. Intentemos modificar eso para activar ADB.
En el hilo del foro 4PDA vinculado hay un POC para un Vuln de ejecución de código remoto que permite iniciar el demonio Telnet. Solo hay scripts de Windows vinculados en este momento. Deberíamos construir un shellscript para invocarlo.
Más sobre esto aquí
Implementamos una herramienta de línea de comandos de óxido y un script de shell basado en curl.
Con Open.Sh, el inicio de sesión se realiza automáticamente.
También hay una implementación de Ruby https://github.com/ecdsa521/tpown/tree/main
Los archivos .dtb de HW Rev V3 y V4 se almacenan en DTB_Files y se pueden visualizar con DTVIS
Se han publicado imágenes en 4PDA para puntos en otras revisiones. Podría ser lo mismo para nuestro dispositivo. Echa un vistazo aquí
4PDA ha encontrado varias formas de hacer una copia de seguridad del firmware instalado.
https://4pda.to/forum/index.php?showtopic=669936&view=findpost&p=110738476
usb_composition
902B
nyy
La conexión ADBD persistente debe ser etable ahora
Por cable en su cliente:
adb shell
Después de un reinicio, el punto de acceso parece estar inactivo. Entonces necesitas desactivar ADBD nuevamente
adb shell
usb_composition
tplink
nyy
adbd