Routeur de liaison TP M7350 V3
CPU dans V3: Qualcomm MSM 9625 (arbre de périphérique aplati), modèle: Qualcomm MSM 9625V2.1 MTP
Il y a des révisions matérielles ultérieures:
Rejoignez notre canal matriciel
./system/etc/{passwd-,shadow}
./system/etc/lighttpd.user
./system/sbin
./META-INF/com/google/android/updater-script
SOC: Qualcomm MDM9225
Note rapide sur les termes Qualcomm:
Flash: 2gbit (256 Mo) WinBond W71NW20GF3FW
Mobile Wireless: Skyworks Sky77629
Sur la base des sources officielles de Kernel.org et avec le code du fournisseur rsync
ED, nous travaillons à faire en sorte que cela se construit en 2024.
https://github.com/m0veax/tplink_m7350-kernel
Une configuration à partir d'un réel périphérique: kernel/config
Si vous retirez la batterie et le plugin USB, LSUSB montre:
Bus 001 Device 031: ID 18d1:d00d Google Inc. Xiaomi Mi/Redmi 2 (fastboot)
> fastboot devices
MDM9625 fastboot
Ci-dessus disparaît après quelques secondes.
Si vous démarrez normal, cela montre:
Bus 001 Device 032: ID 2357:0005 TP-Link M7350 4G Mi-Fi Router
Entrez Fastboot sans bootloop
fastboot reboot bootloader
Qualcomm documente leurs commandes FastBoot.
Les commandes getvar
suivantes rendent les résultats:
variable | résultat |
---|---|
version | 0.5 |
kernel | lk |
max-download-size | 0x2f00000 |
product | MDM9625 |
serialno | MDM9625 |
L'affichage est attaché au bus SPI via le contrôleur à 0xf992_4000
. Nous pourrions extraire ces informations des arbres de l'appareil.
La chaîne de compat Contrôleur SPI est qcom,spi-qup-v2
. Dans le noyau du vendeur, le pilote SPI est drivers/spi/spi_qsd.c
. Dans Mainline Linux, ce sont drivers/spi/spi-qup.c
.
L'affichage OLED est appelé
tplink,oleds90319
(nœud derrière qcom,spi-qup-v2
)tp,oled_pt
-> qcom,oled_s90319_pt
En effet, le côté de l'écran (cadre blanc) se lit comme: BLB-S90319B-1
Il n'y a rien de tel dans les sources du noyau des fournisseurs, et Bing ne donne rien. Il n'est donc pas clair quel est exactement le pilote d'affichage. Il ressemble à un écran monochrome 128x128, similaire à SSD1306 / SH1107 .
À partir de la configuration du noyau, nous avons vidé:
CONFIG_OLED=y
# CONFIG_OLED_SSD1306_PT is not set
CONFIG_OLED_S90319_PT=y
Le binaire /usr/bin/oledd
est démarré via /etc/init.d/start_oledd
. Il accède à l'écran OLED via SYSFS:
/sys/class/display/oled/backlight_on
/sys/class/display/oled/panel_on
/sys/class/display/oled/oled_buffer
Nous pouvons faire écho 1
aux fichiers *_on
0
lire avec l'affichage. Et nous pouvons écrire au tampon nous-mêmes, bien que la façon dont cela fonctionne n'est pas encore claire. Le jeu a montré que le panneau d'affichage prend vraiment en charge les couleurs. ?
Si vous voulez vous amuser:
/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
Cela dessinera sans cesse des rectangles et montrera des ordures de pixels. Appuyez sur Ctrl + C pour s'arrêter.
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!
L'appareil semble exécuter Android, sans /dev/binder
. Vous pouvez obtenir le firmware ici:
Page de support TP-Link
Le firmware n'est pas crypté. Vous pouvez jeter un aperçu plus profond des configurations.
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 recherche rapide du hachage nous donne oelinux123
comme valeur possible. Nous devons vérifier cela plus tard.
Source: https://svson.xyz/posts/zte-dongle/part4/
./system/etc/lighttpd.user
admin:admin
./system/sbin
Le firmware semble contenir un adbd
. Nous devons trouver un moyen de le démarrer.
./META-INF/com/google/android/updater-script
Chemins vers les fichiers et création de SymLinks pour Autostart ECT. Essayons de modifier cela pour activer la BAD.
Dans le thread de forum 4PDA lié est un POC pour une Vuln d'exécution de code distant qui permet de démarrer le démon Telnet. Il n'y a que des scripts Windows liés dès maintenant. Nous devons construire un shellscript pour l'invoquer.
En savoir plus à ce sujet ici
Nous avons implémenté un outil de ligne de commande Rust et un script de shell basé sur Curl.
Avec open.sh, la connexion est effectuée automatiquement.
Il y a une implémentation Ruby aussi https://github.com/ecdsa521/tpown/tree/main
Les fichiers .DTB de HW Rev V3 et V4 sont stockés dans DTB_FILES et peuvent être visualisés avec DTVIS
Il y a eu des images publiées sur 4PDA à des points dans une autre révision. Cela pourrait être le même pour notre appareil. Jetez un œil ici
4PDA a trouvé plusieurs façons de sauvegarder le firmware installé.
https://4pda.to/forum/index.php?showtopic=669936&view=FindPost&p=110738476
usb_composition
902B
nyy
La connexion ADBD persistante devrait être etable maintenant
Par câble sur votre client:
adb shell
Après un redémarrage, le point d'accès semble être en baisse. Vous devez donc désactiver à nouveau ADBD
adb shell
usb_composition
tplink
nyy
adbd