Auteur Sujet: Test Glasfaser-modem 2 telekom ONT 2.5Gbe Synchro OK / IPV4 OK / IPV6 OK  (Lu 16518 fois)

0 Membres et 2 Invités sur ce sujet

sylv1s

  • Abonné Bbox fibre
  • *
  • Messages: 12
  • Valdahon (25)
Test Glasfaser-modem 2 telekom ONT 2.5Gbe Synchro OK / IPV4 OK / IPV6 OK
« Réponse #72 le: 10 mai 2023 à 21:11:15 »
Bonjour, alors j'ai un udm se. Pour la gestion de l'IPV6 coté Wan, tu passes un DHCPv6 avec un délégation de préfix à 60.

Bonjour, c'est bien ce que j'ai fait mais ça fonctionne pas :/


sylv1s

  • Abonné Bbox fibre
  • *
  • Messages: 12
  • Valdahon (25)
Test Glasfaser-modem 2 telekom ONT 2.5Gbe Synchro OK / IPV4 OK / IPV6 OK
« Réponse #73 le: 10 mai 2023 à 21:12:02 »
Y'a un post intéressant sur le fait que Bouygues utilise un mode un peu particulier du DHCPv6 (ce n'est pas sur l'UDM mais pour ma config debian ca m'avait bien aidé): https://lafibre.info/bbox-les-news/firewall-ipv6-delegation-de-prefixe-dans-la-nouvelle-maj-bbox-18-2-12/msg1005704/#msg1005704

Merci benoitm974 je vais creuser :)

hwti

  • Abonné Orange Fibre
  • *
  • Messages: 2 237
  • Chambly (60)
Test Glasfaser-modem 2 telekom ONT 2.5Gbe Synchro OK / IPV4 OK / IPV6 OK
« Réponse #74 le: 15 mai 2023 à 03:38:40 »
J'ai fait quelques tests avec l'ONT donné par benoitm974.

La broche RX de l'UART fonctionne matériellement, mais semble ignorée logiciellement.
Il y a un écho pendant quelques secondes après le boot du kernel (début du boot userspace je suppose), mais je n'ai pas réussi à en faire quelque chose (j'ai essayé entrée, Ctrl+C, root).

Le serveur HTTP a un comportement très étrange :
 - sans header Accept-Language, il répond un "UNKNOWN 400 Bad Request" invalide (ou alors c'est du HTTP 0.9), et pourtant il ne semble pas se servir de cette valeur (les pages sont toujours en allemand par défaut)
 - un "GET / HTTP/1.1" retourne une redirection "HTTP/1.1 302 Found", vers /ONT/client/html/content/overview/index.html qui répond en HTTP/1.0
 - "http://192.168.100.1/ONT redirige vers /ONT/ en disant "Directories must end with a slash.", mais le listing ne fonctionne pas (ça permet quand même de savoir si un chemin existe ou pas)
Ce mélange de versions est étrange, je vois aussi beaucoup de réponses non conformes.

Les JSON référencés dans les pages web :
 - http://192.168.100.1/ONT/client/data/FirmwareUpdate.json
 - http://192.168.100.1/ONT/client/data/FirmwareInstall.json
 - http://192.168.100.1/ONT/client/data/Reboot.json
 - http://192.168.100.1/ONT/client/data/Router.json
 - http://192.168.100.1/ONT/client/data/Status.json

Le code de mise à jour de firmware utilise http://192.168.100.1/upload.cgi, avec comme FormData :
 - MAX_FILE_SIZE (taille du fichier)
 - uploadType=image
 - uploadedfile (contenu)

uploadType=config est reconnu, et la réponse redirige vers settings.html (qui n'existe pas)

Il existe aussi http://192.168.100.1/download.cgi (que j'ai testé par analogie).
Un simple POST sans données répond "CONTENT_LENGTH is NULL" (dans les headers, ce qui est invalide), ce qui confirme la validité de l'URL.
En revanche, je ne suis pas arrivé à trouver des paramètres qu'il accepte, dès que j'en ajoute (-F downloadType=config par exemple) la réponse est vide.

benoitm974

  • Abonné Bbox fibre
  • *
  • Messages: 104
  • chatillon 92
Test Glasfaser-modem 2 telekom ONT 2.5Gbe Synchro OK / IPV4 OK / IPV6 OK
« Réponse #75 le: 17 mai 2023 à 16:59:41 »

Le code de mise à jour de firmware utilise http://192.168.100.1/upload.cgi, avec comme FormData :
 - MAX_FILE_SIZE (taille du fichier)
 - uploadType=image
 - uploadedfile (contenu)
Oui par contre je ne sais pas si tu as remarqué mais dans les header de réponse du POST il y a parfois un header 'sh: rm not found' si le fichier n'est pas reconnu ou trop volumineux mais en envoyant un .bin quelconque ce header n'apparait pas. Est-ce qu'il y aurait un script déclanché à la fin de l'upload qui utilise la commande rm ? Je n'ai pas réussi à trouver un escaping qui permette d'exploiter une injection sur cette commande rm ... :(

uploadType=config est reconnu, et la réponse redirige vers settings.html (qui n'existe pas)

Ha j'avais pas vu ça,  est-ce cela existe sur d'autre routeurs connus ? On pourrait exploiter un fichier de config ? une idée du format du fichier de config ?

hwti

  • Abonné Orange Fibre
  • *
  • Messages: 2 237
  • Chambly (60)
Test Glasfaser-modem 2 telekom ONT 2.5Gbe Synchro OK / IPV4 OK / IPV6 OK
« Réponse #76 le: 18 mai 2023 à 00:30:15 »
Oui par contre je ne sais pas si tu as remarqué mais dans les header de réponse du POST il y a parfois un header 'sh: rm not found' si le fichier n'est pas reconnu ou trop volumineux mais en envoyant un .bin quelconque ce header n'apparait pas. Est-ce qu'il y aurait un script déclanché à la fin de l'upload qui utilise la commande rm ? Je n'ai pas réussi à trouver un escaping qui permette d'exploiter une injection sur cette commande rm ... :(
Oui, j'ai vu quelques traces de shell comme ça, c'est soit un script, soit un system().


Ha j'avais pas vu ça,  est-ce cela existe sur d'autre routeurs connus ? On pourrait exploiter un fichier de config ? une idée du format du fichier de config ?
J'ai trouvé "config" en essayant différentes valeurs de uploadType.
A ce moment là, je me suis dit que si on peut envoyer une config, on peut peut-être faire une sauvegarde.
C'est donc pour ça que j'ai testé download.cgi, mais je n'ai uniquement pu confirmer sa présence, sans trouver comment l'appeler.

En cherchant les différents paramètres, je viens de trouver https://github.com/DaH4uk/emulators/tree/main/public/routers/sercomm.
Il s'agit d'une UI Sercomm extraite d'un routeur, mais probablement un peu modifiée pour faire un "simulateur".
Tout ne semble pas présent, et il y a des pages avec du contenu généré enregistré.
Il y a plusieurs usages du upload.cgi (image, config, et crt pour le TR-069), mais malheureusement pas de download.cgi.

Ca permet de découvrir :
 - http://192.168.100.1/ONT/client/data/user_lang.json => "1"
 - http://192.168.100.1/ONT/client/data/login.json => "[ ]"
 - http://192.168.100.1/ONT/client/data/Login.json => partie commune + {"vartype":"status","varid":"loginstate","varvalue":"0"}
Malheureusement ce n'est pas très intéressant.

hwti

  • Abonné Orange Fibre
  • *
  • Messages: 2 237
  • Chambly (60)
Test Glasfaser-modem 2 telekom ONT 2.5Gbe Synchro OK / IPV4 OK / IPV6 OK
« Réponse #77 le: 18 mai 2023 à 01:16:41 »
https://github.com/nikolas-n/Speedport-Plus-Cosmote-Router-hacks

On a le Login.json, mais toute tentative retourne une réponse vide : je ne sais pas si ça veut dire que c'est désactivé (puisque l'UI n'a pas de fonction de login), ou si le login est incorrect, ou s'il manque un paramètre.

De même, SecureStatus.json retourne une réponse vide, mais après 200ms, donc je me demande s'il n'y a pas quelque chose derrière.
Si ce sont des endpoints protégés par login, je ne sais pas quel est le comportement attendu sans cookie (même si une réponse vide, c'est bizarre, puisque ce n'est du HTTP valide).

benoitm974

  • Abonné Bbox fibre
  • *
  • Messages: 104
  • chatillon 92
Test Glasfaser-modem 2 telekom ONT 2.5Gbe Synchro OK / IPV4 OK / IPV6 OK
« Réponse #78 le: 23 mai 2023 à 02:34:08 »
Petit update sur les perf de la boite, j'ai finalement réussi à compiler une version openwrt pour le nanopi R5C (le mini routeur que j'utilise derrière l'OLT) à partir de ce github: https://github.com/mj22226/openwrt en y ajoutant les drivers propriétaires realtek depuis ce github:  https://github.com/csrutil/OpenWrt-NIC-Drivers

Ensuite en forçant ethtool en 2.5Gb/s (à priori un soucis dans l'auto-neg dans la version que j'ai compilé) et en passant openwrt en governeur "performance" et non "powersave", on fini par atteindre la limite des 2Gbit/s promise par Bouygues sur sur offre Utlym. Le Glasfaser-modem 2 tient bien ses promesses en 2.5GB/s !

commande (les résultats sont identiques en ipv6 et varient peu si on change le nombre de connection en // passé 4):
iperf3 -p 9203 -c paris.testdebit.info -R -P 10 -4
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   233 MBytes   196 Mbits/sec  37384             sender
[  5]   0.00-10.00  sec   229 MBytes   192 Mbits/sec                  receiver
[  7]   0.00-10.00  sec   243 MBytes   204 Mbits/sec  36856             sender
[  7]   0.00-10.00  sec   239 MBytes   201 Mbits/sec                  receiver
[  9]   0.00-10.00  sec   234 MBytes   197 Mbits/sec  40449             sender
[  9]   0.00-10.00  sec   230 MBytes   193 Mbits/sec                  receiver
[ 11]   0.00-10.00  sec   194 MBytes   163 Mbits/sec  29046             sender
[ 11]   0.00-10.00  sec   191 MBytes   160 Mbits/sec                  receiver
[ 13]   0.00-10.00  sec   230 MBytes   193 Mbits/sec  35676             sender
[ 13]   0.00-10.00  sec   226 MBytes   190 Mbits/sec                  receiver
[ 15]   0.00-10.00  sec   303 MBytes   254 Mbits/sec  49246             sender
[ 15]   0.00-10.00  sec   298 MBytes   250 Mbits/sec                  receiver
[ 17]   0.00-10.00  sec   197 MBytes   165 Mbits/sec  35903             sender
[ 17]   0.00-10.00  sec   194 MBytes   163 Mbits/sec                  receiver
[ 19]   0.00-10.00  sec   304 MBytes   255 Mbits/sec  53496             sender
[ 19]   0.00-10.00  sec   299 MBytes   251 Mbits/sec                  receiver
[ 21]   0.00-10.00  sec   166 MBytes   139 Mbits/sec  25274             sender
[ 21]   0.00-10.00  sec   163 MBytes   137 Mbits/sec                  receiver
[ 23]   0.00-10.00  sec   222 MBytes   186 Mbits/sec  32974             sender
[ 23]   0.00-10.00  sec   218 MBytes   183 Mbits/sec                  receiver
[SUM]   0.00-10.00  sec  2.27 GBytes  1.95 Gbits/sec  376304             sender
[SUM]   0.00-10.00  sec  2.23 GBytes  1.92 Gbits/sec                  receiver

hwti

  • Abonné Orange Fibre
  • *
  • Messages: 2 237
  • Chambly (60)
Test Glasfaser-modem 2 telekom ONT 2.5Gbe Synchro OK / IPV4 OK / IPV6 OK
« Réponse #79 le: 23 mai 2023 à 08:33:39 »
commande (les résultats sont identiques en ipv6 et varient peu si on change le nombre de connection en // passé 4):
J'en déduis que sur une seule connexion TCP (donc un cœur), le routeur ne suit pas.
Est-ce que c'est avec le "software flow offloading", qui limite les traitements sur les flux établis ?

benoitm974

  • Abonné Bbox fibre
  • *
  • Messages: 104
  • chatillon 92
Test Glasfaser-modem 2 telekom ONT 2.5Gbe Synchro OK / IPV4 OK / IPV6 OK
« Réponse #80 le: 23 mai 2023 à 14:26:15 »
J'en déduis que sur une seule connexion TCP (donc un cœur), le routeur ne suit pas.
Est-ce que c'est avec le "software flow offloading", qui limite les traitements sur les flux établis ?

Alors c’est avec software off load désactive. Ensuite avec 1 seul thread les résultats ont proches les irq et cpu ne sont pas à 100%. Par contre est ce que le serveurs ipeef3 en face ne priorise pas ? Est ce que quelqu’un a déjà obtenu >2gbs sur une connection sur les serveurs 40gb de Bouygues ?

hwti

  • Abonné Orange Fibre
  • *
  • Messages: 2 237
  • Chambly (60)
Test Glasfaser-modem 2 telekom ONT 2.5Gbe Synchro OK / IPV4 OK / IPV6 OK
« Réponse #81 le: 01 juin 2023 à 05:15:14 »
Bon j'ai dessoudé et dumpé la NAND.

binwalk ne dit pas grand chose :
...
1703866       0x19FFBA        Sercomm firmware signature, version control: 0, download control: 1, hardware ID: "DHP", hardware version: 0x4100, firmware version: 0x1, starting code segment: 0x0, code size: 0x7300
2097152       0x200000        UBI erase count header, version: 1, EC: 0x0, VID header offset: 0x800, data offset: 0x1000
5898170       0x59FFBA        Sercomm firmware signature, version control: 0, download control: 1, hardware ID: "DHP", hardware version: 0x4100, firmware version: 0x0, starting code segment: 0x0, code size: 0x7300
10092474      0x99FFBA        Sercomm firmware signature, version control: 0, download control: 1, hardware ID: "DHP", hardware version: 0x4100, firmware version: 0x0, starting code segment: 0x0, code size: 0x7300
12713984      0xC20000        JFFS2 filesystem, little endian
101449728     0x60C0000       JFFS2 filesystem, little endian
Il n'arrive pas à extraire les images UBI, et les deux images JFFS2 semblent mal extraites :
drwxr-xr-x 3 loic loic  4096 Jun  1 03:49 ./
drwxr-xr-x 5 loic loic  4096 Jun  1 03:49 ../
-rwxr-xr-x 1 loic loic 13868 Jun  1 03:49 1*
-rw-r--r-- 1 loic loic 13868 Jun  1 03:49 2
-rw------- 1 loic loic   892 Jun  1 03:49 config
-rw-r--r-- 1 loic loic   892 Jun  1 03:49 config.b
-rwxr-xr-x 1 loic loic 13868 Jun  1 03:49 ftcmd*
-rwxr-xr-x 1 loic loic  9684 Jun  1 03:49 ftd*
-rw-r--r-- 1 loic loic   864 Jun  1 03:49 fw_info_0
-rw-r--r-- 1 loic loic   864 Jun  1 03:49 fw_info_1
-rw-r--r-- 1 loic loic   864 Jun  1 03:49 mt_fw_info_1
-rw-r--r-- 1 loic loic   864 Jun  1 03:49 .pxx
-rw------- 1 loic loic  8192 Jun  1 03:49 scratchpad
-rw------- 1 loic loic   380 Jun  1 03:49 support
-rw-r--r-- 1 loic loic   380 Jun  1 03:49 support.b
drwxr-xr-x 4 loic loic  4096 Jun  1 03:49 sys_monitor/
-rw------- 1 loic loic   380 Jun  1 03:49 user
-rw-r--r-- 1 loic loic   380 Jun  1 03:49 user.b
-rw-r--r-- 1 loic loic   608 Jun  1 03:49 valid_file

En revanche un usage direct du ubireader_extract_images semble plus intéressant (malgré pas mal de traces d'erreur quand on les active) :
 - img-1886710111_vol-filestruct_cfe.bin.ubifs (1116Ko) : image CFE RAM (peut-être un peu gros) ?
 - img-1886710111_vol-METADATA.ubifs (124Ko) : quasiment vide, "committed", "cferam.000.998"
 - img-1886710111_vol-METADATACOPY.ubifs (124Ko) : identique
 - img-309480860_vol-lib_squashfs.ubifs (3,8Mo) : image squashfs (unsquashfs échoue à l'extraire entièrement)
 - img-901840304_vol-filestruct_full.bin.ubifs (2,7Mo) : image Broadcom visiblement, 96856.dtb (device-tree) + vmlinux.lz (kernel compressé en LZMA)
 - img-901840304_vol-rootfs_ubifs.ubifs (9,3Mo) : malgré son nom, c'est une image squashfs (unsquashfs échoue à l'extraire entièrement)

La 2ème image squashfs semble avoir tout d'un rootfs, mais avec parfois des liens symboliques comme /lib/libgcc_s.so.1 => /mnt/rootfs/lib/libgcc_s.so.1.
Peut-être que ce sont des fichiers dans l'autre image, mais c'est assez étrange comme méthode.

Le /etc/inittab semble indiquer le support d'une console série :
::sysinit:/etc/rcS
#::respawn:-/bin/sh
::respawn:-/sbin/getty -L ttyS0 115200 vt100
::restart:/sbin/init

/etc/cli_pw :
superadmin:$1$SERCOMM$P5ixtvfh7VICWbrLpIMXE1:0:0:Root:/:/bin/sh
/etc/shadow :
root:$1$qGmxLn8v$yTzaaXdb6.6QLLgS0Euz.1:12571:0:99999:7:::
...
=> si c'est utilisé, le mot de passe de "root" est "root"
« Modifié: 01 juin 2023 à 07:23:28 par hwti »

benoitm974

  • Abonné Bbox fibre
  • *
  • Messages: 104
  • chatillon 92
Test Glasfaser-modem 2 telekom ONT 2.5Gbe Synchro OK / IPV4 OK / IPV6 OK
« Réponse #82 le: 01 juin 2023 à 09:09:17 »
Bon j'ai dessoudé et dumpé la NAND.

binwalk ne dit pas grand chose :
...
1703866       0x19FFBA        Sercomm firmware signature, version control: 0, download control: 1, hardware ID: "DHP", hardware version: 0x4100, firmware version: 0x1, starting code segment: 0x0, code size: 0x7300
2097152       0x200000        UBI erase count header, version: 1, EC: 0x0, VID header offset: 0x800, data offset: 0x1000
5898170       0x59FFBA        Sercomm firmware signature, version control: 0, download control: 1, hardware ID: "DHP", hardware version: 0x4100, firmware version: 0x0, starting code segment: 0x0, code size: 0x7300
10092474      0x99FFBA        Sercomm firmware signature, version control: 0, download control: 1, hardware ID: "DHP", hardware version: 0x4100, firmware version: 0x0, starting code segment: 0x0, code size: 0x7300
12713984      0xC20000        JFFS2 filesystem, little endian
101449728     0x60C0000       JFFS2 filesystem, little endian
Il n'arrive pas à extraire les images UBI, et les deux images JFFS2 semblent mal extraites :
drwxr-xr-x 3 loic loic  4096 Jun  1 03:49 ./
drwxr-xr-x 5 loic loic  4096 Jun  1 03:49 ../
-rwxr-xr-x 1 loic loic 13868 Jun  1 03:49 1*
-rw-r--r-- 1 loic loic 13868 Jun  1 03:49 2
-rw------- 1 loic loic   892 Jun  1 03:49 config
-rw-r--r-- 1 loic loic   892 Jun  1 03:49 config.b
-rwxr-xr-x 1 loic loic 13868 Jun  1 03:49 ftcmd*
-rwxr-xr-x 1 loic loic  9684 Jun  1 03:49 ftd*
-rw-r--r-- 1 loic loic   864 Jun  1 03:49 fw_info_0
-rw-r--r-- 1 loic loic   864 Jun  1 03:49 fw_info_1
-rw-r--r-- 1 loic loic   864 Jun  1 03:49 mt_fw_info_1
-rw-r--r-- 1 loic loic   864 Jun  1 03:49 .pxx
-rw------- 1 loic loic  8192 Jun  1 03:49 scratchpad
-rw------- 1 loic loic   380 Jun  1 03:49 support
-rw-r--r-- 1 loic loic   380 Jun  1 03:49 support.b
drwxr-xr-x 4 loic loic  4096 Jun  1 03:49 sys_monitor/
-rw------- 1 loic loic   380 Jun  1 03:49 user
-rw-r--r-- 1 loic loic   380 Jun  1 03:49 user.b
-rw-r--r-- 1 loic loic   608 Jun  1 03:49 valid_file

Bien joué !

A priori je sais pas si tu avais vu ce post d'un mec qui avait eu un souci avec une image UBI et binwalk : https://bytemeta.vip/repo/jrspruitt/ubi_reader/issues/49

EDIT/
à priori d'autre personnes ont dumpé un modem sercom avec un superuser et indiquent que le mot de passe est le CSN du modem: https://www.ispreview.co.uk/talk/threads/three-4g-hub-sercomm-lte2122gr-modding-discussions.39724/page-2

aussi une page qui parle du modem Three-4G du meme vendeur qui pourrait avoir des similitudes niveau firmware: https://github.com/shantur/Three-4G-Hub-Firmware-Analysis


« Modifié: 01 juin 2023 à 09:32:48 par benoitm974 »

hwti

  • Abonné Orange Fibre
  • *
  • Messages: 2 237
  • Chambly (60)
Test Glasfaser-modem 2 telekom ONT 2.5Gbe Synchro OK / IPV4 OK / IPV6 OK
« Réponse #83 le: 01 juin 2023 à 09:51:25 »
Avec les multiples couches (squashfs, UBI, probablement un format d'ECC dans les spares), modifier la NAND risque d'être compliqué.
En plus, je ne suis pas sûr de pouvoir la faire fonctionner sans la ressouder (et le préfère éviter d'avoir à faire ça en boucle).

Donc là il faut soit :
 - que je regarde côté CFE, pour l'UART
 - que j'arrive à extraire les squashfs, pour essayer de trouver un point d'entrée côté rootfs, ou le format des images à flasher

Déjà la bonne nouvelle est que tout semble être en clair (ce qui ne veut pas dire qu'il n'y a pas de signature).