[Tuto] Accès ONT HG8010H et EG8010H

Démarré par bOLEMO, 25 Janvier 2021 à 01:05:05

« précédent - suivant »

0 Membres et 2 Invités sur ce sujet

ATTENTION !!!

CE QUI SUIT S'ADRESSE AUX PERSONNES QUI COMPRENNENT CE QU'ELLES FONT, AINSI QUE LES CONSÉQUENCES D'ACCÉDER DIRECTEMENT À L'ONT.

EN AUCUN CAS, CELA EST REQUIS/NÉCESSAIRE POUR AVOIR UN INTERNET FONCTIONNEL.

L'ACCÈS À L'ONT (PROPRIÉTÉ DE L'OI) EST RÉSERVÉE AUX INGÉNIEURS ET TECHNICIENS DE L'OI.
TOUTE ERREUR DE MANIPULATION PEUT ENTRAÎNER UNE COUPURE PERMANENTE D'INTERNET ET AVOIR DES CONSÉQUENCES SÉRIEUSES.



Je poste ici mon expérience pour me connecter à l'ONT Huawei EG8010H fourni par Covage. Ceci est aussi valide pour le modèle HG8010H (génération précédente) qui a été installé en masse par Covage.

J'ai appelé ce fil un tuto, car il se veut être un point pour centraliser les informations sur ce sujet. Je ne possède pas toutes les réponses, et si je partage mes découvertes, j'ai aussi des questions, et j'espère que petit à petit, nous trouverons tous les morceaux du puzzle.

L'ONT possède une adresse IP, ainsi que des identifiants de connexion. Tout cela est sur l'étiquette sous l'ONT.
L'IP est probablement du genre 192.168.X.1
L'identifiant est dans mon cas Epuser mdp userEp. C'est un accès utilisateur, pas administrateur. Il est suffisant pour avoir déjà pas mal d'informations.

L'accès se fait par un navigateur web. Donc un accès permanent requiers un routeur perso sur lequel on crée un sous-réseau secondaire sur l'interface WAN en CIDR /24 dans lequel se trouve l'adresse IP de l'ONT. Par example, si l'ONT a pour adresse 192.168.20.1, on crée une sous réseau secondaire 192.168.20.2/24 sur le routeur perso.
Commande Unix/Linux pour cela :
ip addr add ADRESSE/24 dev INTERFACE
ADRESSE doit être remplacé par une IP dans le même sous-réseau que celui de l'ONT, mais différente.
INTERFACE doit correspondre à l'interface ethernet WAN du routeur.
Cela doit aussi en principe créer la route pour ce sous-domaine et peut être vérifier avec ip route

Ensuite, on crée une règle iptables SNAT pour que le routeur sache comment router les connexions depuis le LAN vers l'IP de l'ONT. Ainsi avec un navigateur web sur le LAN, on peut se connecter sur l'ONT par son adresse IP, et les identifiants donnés.
iptables -t nat -D POSTROUTING -o INTERFACE -d ONT/24 -j SNAT --to ADRESSE
ADRESSE est la même que celle utilisée plus tôt
INTERFACE aussi
ONT doit être remplacé par l'IP de l'ONT.

Pour ceux qui auraient des règles ebtables pour n'autoriser que la communication entre le routeur et la passerelle de l'OI (et donc éliminer toute la pollution présente dans la boucle de collecte, comme je le fais ici: https://forum.caps.services/index.php/topic,8344.msg106220.html#msg106220 pensez à autoriser aussi la MAC de l'ONT).

Une fois cela fait, il est possible de se connecter à l'interface web de l'ONT via un navigateur sur le LAN en mettant comme URL l'adresse de l'ONT.
Il suffit ensuite s'utiliser les identifiants de connexion donnés sous l'étiquette.

De là, on peut trouver les statistiques optiques qui indiquent la qualité de la connexion fibre à l'OLT.

Ceci est probablement déjà suffisant pour la plupart des intrépides qui ont lu jusque là.


Il est possible s'aller au delà, mais ce n'est pas nécessaire, car il est possible d'automatiser la collecte des données avec les identifiants de l'utilisateur de base, méthode simple et élégante proposée par halesk2k plus loin dans le fil de discussion.

Pour ceux qui voudraient quand même activer un accès telnet, les identifiants admin, dans mon cas Epadmin et mdp adminEp, donnent accès au fichier de configuration, qui permet avec certaines manipulations d'activer telnet.

Ces infos peuvent être trouvées dans le fil de ce sujet...
Abonnement : Covage - Forfait fibre optique 1Gbs (formule AVI)
Routeur : perso ; Netgear R7800, micro logiciel Voxel
Téléphonie : Boîtier SPA112
Télévision : CoreElec - Kodi
Sondes : https://smokeping.brigadoon.fr/
Uptime : https://status.brigadoon.fr/

Tu pourrais ajouter HG8010H (COMMON):

IP: 192.168.100.1/24
username: root
password: adminHW

La technique pour y accéder est la même que celle que tu décris, ajouter une adresse dans le subnet 192.168.100.0/24 (ex: 192.168.100.254/24) et une règle de NAT MASQUERADE (si pas déjà fait) sur l'interface connecté à l'ONT.
Offre: K-Net Pulse 1Gb/s symétrique Sosh 300Mb/s symétrique
Routeur: Mikrotik RB4011
Switch: Netgear GS110TP, Cisco SG200
AP Wi-Fi: Ubiquiti UAP-AC-Lite
Uptime: https://uptime.loiklo.net/

Citation de: halesk2k le 25 Janvier 2021 à 11:32:49
Tu pourrais ajouter HG8010H (COMMON):

IP: 192.168.100.1/24
username: root
password: adminHW

La technique pour y accéder est la même que celle que tu décris, ajouter une adresse dans le subnet 192.168.100.0/24 (ex: 192.168.100.254/24) et une règle de NAT MASQUERADE (si pas déjà fait) sur l'interface connecté à l'ONT.

J'y ai pensé, mais je me suis dis qu'il faudrait peut-être deux tutos séparés.
Si la manière de se connecter à l'interface web est quasi identique, la suite (activer telnet, etc...) semble totalement différente (aucun xml par défaut dans le EG8010H)...
Mais bon, grâce à ton post, les infos de connection du HG8010H sont là  ;)
Abonnement : Covage - Forfait fibre optique 1Gbs (formule AVI)
Routeur : perso ; Netgear R7800, micro logiciel Voxel
Téléphonie : Boîtier SPA112
Télévision : CoreElec - Kodi
Sondes : https://smokeping.brigadoon.fr/
Uptime : https://status.brigadoon.fr/

Citation de: bOLEMO le 25 Janvier 2021 à 12:56:22
Citation de: halesk2k le 25 Janvier 2021 à 11:32:49
Tu pourrais ajouter HG8010H (COMMON):

IP: 192.168.100.1/24
username: root
password: adminHW

La technique pour y accéder est la même que celle que tu décris, ajouter une adresse dans le subnet 192.168.100.0/24 (ex: 192.168.100.254/24) et une règle de NAT MASQUERADE (si pas déjà fait) sur l'interface connecté à l'ONT.

J'y ai pensé, mais je me suis dis qu'il faudrait peut-être deux tutos séparés.
Si la manière de se connecter à l'interface web est quasi identique, la suite (activer telnet, etc...) semble totalement différente (aucun xml par défaut dans le EG8010H)...
Mais bon, grâce à ton post, les infos de connection du HG8010H sont là  ;)

Je ne mettrais pas les détails de comment on active telnet sur le HG8010H, j'ai pas envi d'être responsable si certain brick leur ONT.

A la base, je voulais juste récupérer l'atténuation et j'avais commencé à reverse l'API web de l'ONT, mais c'est un foutoir et assez tordu. J'ai laissé tombé vu que je passe par telnet, mais si on passait par l'API web, ca serait accessible à tout le monde sans modification et sans aucun risque de bricker l'ONT.
Offre: K-Net Pulse 1Gb/s symétrique Sosh 300Mb/s symétrique
Routeur: Mikrotik RB4011
Switch: Netgear GS110TP, Cisco SG200
AP Wi-Fi: Ubiquiti UAP-AC-Lite
Uptime: https://uptime.loiklo.net/

Mon script, sur le routeur perso, pour activer l'accès à l'ONT depuis le routeur et le LAN.
Il est valable pour le HG8010H aussi. Il faut l'échanger dans le script la variable ONTADDR par l'adresse IP de l'ONT (sur son étiquette ventrale).
Après, il suffit d'invoquer le script ainsi :
chemin/du/script up pour activer la connection
chemin/du/script down pour la désactiver
Il est aussi possible de passer l'IP de l'ONT en argument :
chemin/du/script up IP
chemin/du/script down IP

#!/bin/sh
[ "$2" ] && ONTADDR="$2" || ONTADDR=192.168.100.1
BADDR="${ONTADDR%.*}"
RADDR="$BADDR.2"
[ "$RADDR" == "$ONTADDR" ] && RADDR="$BADDR.254"

status() {
  ip -4 addr show dev brwan
  ip route
  iptables -t nat -S POSTROUTING
}

up() {
  if ! ip -4 addr show dev brwan|grep -qF "$RADDR/24"
    then ip addr add $RADDR/24 dev brwan
  fi
  if ! iptables -t nat -C POSTROUTING -o brwan -d $ONTADDR/24 -j SNAT --to $RADDR 2>/dev/null
    then iptables -t nat -I POSTROUTING -o brwan -d $ONTADDR/24 -j SNAT --to $RADDR
  fi
  ip route flush cache
}

down() {
  iptables -t nat -D POSTROUTING -o brwan -d $ONTADDR/24 -j SNAT --to $RADDR
  ip addr del $RADDR/24 dev brwan
  ip route flush cache
}

case $1 in
up) up ;;
down) down ;;
status) status ;;
*)
  echo "Use argument connect, disconnect or status!"
  exit 1
;;
esac
exit 0
Abonnement : Covage - Forfait fibre optique 1Gbs (formule AVI)
Routeur : perso ; Netgear R7800, micro logiciel Voxel
Téléphonie : Boîtier SPA112
Télévision : CoreElec - Kodi
Sondes : https://smokeping.brigadoon.fr/
Uptime : https://status.brigadoon.fr/

Citation de: halesk2k le 25 Janvier 2021 à 13:02:22
Je ne mettrais pas les détails de comment on active telnet sur le HG8010H, j'ai pas envi d'être responsable si certain brick leur ONT.

A la base, je voulais juste récupérer l'atténuation et j'avais commencé à reverse l'API web de l'ONT, mais c'est un foutoir et assez tordu. J'ai laissé tombé vu que je passe par telnet, mais si on passait par l'API web, ca serait accessible à tout le monde sans modification et sans aucun risque de bricker l'ONT.

D'où mon avertissement bien visible au début du post...

Oui, c'est une idée, mais il faut alors être identifié (donc envoyer l'ID et le MDP), et rester identifier... Le foutoir en effet.
Telnet est parfait pour cela, mais comment l'activer sur le EG8010H ? Pour l'instant, je n'ai rien trouvé sur le net, et je ne suis pas chaud pour créer un xml à partir de rien.
Abonnement : Covage - Forfait fibre optique 1Gbs (formule AVI)
Routeur : perso ; Netgear R7800, micro logiciel Voxel
Téléphonie : Boîtier SPA112
Télévision : CoreElec - Kodi
Sondes : https://smokeping.brigadoon.fr/
Uptime : https://status.brigadoon.fr/

#6
En web, voilà ce qu'on observe lors de la phase d'authentification quand on clique sur le bouton Login:
- Le navigateur fait une requête vers /asp/GetRandCount.asp pour récupérer un truc qui à l'air plutôt random
- Le navigateur fait une requête vers la page /login.cgi avec le login, mot de passe et l'id récupéré juste avant, et ca retourne un sid (session id j'imagine)
- Avec ce sid, il faut appeler la page /html/amp/opticinfo/opticinfo.asp, qui contient la ligne suivante:
var opticInfos = new Array(new stOpticInfo("InternetGatewayDevice.X_HW_DEBUG.AMP.Optic","--","--","3322","34","0","--","--","HUAWEI          ","1717Y5021547S   ","170710","1310","1490","20","1"),null);
- Puis appeler la page de logout pour clean la session coté ONT. /logout.cgi, toujours avec le sid en paramètre

Avec une regex, on récupère "--","--","3322","34","0","--","--", qui correspond à TX Optical Power, RX Optical Power, Working Voltage, Bias Current, Working Temperature.

Ca à l'air plutôt simple... faut juste passer un peu de temps à encapsuler ca dans du code propre et ca permettrait de récupérer les infos de la ligne sans avoir besoin d'activer telnet et donc de risquer de bricker l'ONT.
Offre: K-Net Pulse 1Gb/s symétrique Sosh 300Mb/s symétrique
Routeur: Mikrotik RB4011
Switch: Netgear GS110TP, Cisco SG200
AP Wi-Fi: Ubiquiti UAP-AC-Lite
Uptime: https://uptime.loiklo.net/

Citation de: bOLEMO le 25 Janvier 2021 à 13:10:29
Citation de: halesk2k le 25 Janvier 2021 à 13:02:22
Je ne mettrais pas les détails de comment on active telnet sur le HG8010H, j'ai pas envi d'être responsable si certain brick leur ONT.

A la base, je voulais juste récupérer l'atténuation et j'avais commencé à reverse l'API web de l'ONT, mais c'est un foutoir et assez tordu. J'ai laissé tombé vu que je passe par telnet, mais si on passait par l'API web, ca serait accessible à tout le monde sans modification et sans aucun risque de bricker l'ONT.

D'où mon avertissement bien visible au début du post...

Oui, c'est une idée, mais il faut alors être identifié (donc envoyer l'ID et le MDP), et rester identifier... Le foutoir en effet.
Telnet est parfait pour cela, mais comment l'activer sur le EG8010H ? Pour l'instant, je n'ai rien trouvé sur le net, et je ne suis pas chaud pour créer un xml à partir de rien.

Y a pas besoin de rester identifié. Faut juste penser à appeler la page de logout pour éviter que les sessions ouvertes toutes les x secondes/minutes traînent coté ONT.
Offre: K-Net Pulse 1Gb/s symétrique Sosh 300Mb/s symétrique
Routeur: Mikrotik RB4011
Switch: Netgear GS110TP, Cisco SG200
AP Wi-Fi: Ubiquiti UAP-AC-Lite
Uptime: https://uptime.loiklo.net/

Une petite prez intéressant sur le hack du HG8010H. https://fr.slideshare.net/rfc1036/exploring-the-huawei-hg8010h-gpon-ont
Offre: K-Net Pulse 1Gb/s symétrique Sosh 300Mb/s symétrique
Routeur: Mikrotik RB4011
Switch: Netgear GS110TP, Cisco SG200
AP Wi-Fi: Ubiquiti UAP-AC-Lite
Uptime: https://uptime.loiklo.net/

Ah, super tout cela.

wget -qO- ont/asp/GetRandCount.asp me retourne en effet une chaîne de caractères.

Mon fichier hosts sur le router possède une entrée pour l'ONT, d'où « ont » dans l'URL.
Je vais étudier cela...
Abonnement : Covage - Forfait fibre optique 1Gbs (formule AVI)
Routeur : perso ; Netgear R7800, micro logiciel Voxel
Téléphonie : Boîtier SPA112
Télévision : CoreElec - Kodi
Sondes : https://smokeping.brigadoon.fr/
Uptime : https://status.brigadoon.fr/

Citation de: bOLEMO le 25 Janvier 2021 à 01:05:05
Avec les identifiants admin, dans mon cas Epadmin et mon adminEp, on peut accéder au fichier de configuration, qui en théorie permet un accès telnet, mais pour ce modèle, ce fichier n'existe pas par défaut...
Quand t'es en admin, tu n'as pas le bouton download ou le fichier récupéré est vide?
Offre Pulse, Réseau Covage74, Kbox V2b i4850_1.16.3, routeurs Asus AC52U pour AP et secours, PC Zotac Zbox PI223 et VLC sur K-net en secours.
Up-down : http://uptime.stef.cloudns.cl/
Ping : https://prtg.stef.cloudns.cl/public/mapshow.htm?id=2444&mapid=B942004D-735D-4AE6-BF48-70F7DC5EF8A8

Citation de: Steph le 25 Janvier 2021 à 15:05:46
Citation de: bOLEMO le 25 Janvier 2021 à 01:05:05
Avec les identifiants admin, dans mon cas Epadmin et mon adminEp, on peut accéder au fichier de configuration, qui en théorie permet un accès telnet, mais pour ce modèle, ce fichier n'existe pas par défaut...
Quand t'es en admin, tu n'as pas le bouton download ou le fichier récupéré est vide?
En mode admin, dans la section System Tools -> Configuration File il y a :
Une partie Save Configurations and Reset, une partie Download Configuration File avec le bouton pour le faire, et dessous une partie Update Configuration File avec de quoi uploader un fichier.

Quand je clique sur le bouton, la section devient vide (blanche, enfin grise comme la couleur de fond)

Autre indice : dans la section Status -> Service Provisioning Status, il y a cette ligne :
EMS Configuration Status:   No XML configurations applied.
Abonnement : Covage - Forfait fibre optique 1Gbs (formule AVI)
Routeur : perso ; Netgear R7800, micro logiciel Voxel
Téléphonie : Boîtier SPA112
Télévision : CoreElec - Kodi
Sondes : https://smokeping.brigadoon.fr/
Uptime : https://status.brigadoon.fr/

Bon, sans succès pour le moment...
La portion de la page index qui génère le formulaire :
var Form = new webSubmitForm();
if('DT' == CfgMode.toUpperCase())
{
var cookie2 = "Cookie="   "rid="   RndSecurityFormat(""   cnt)   RndSecurityFormat(Username.value   cnt )   RndSecurityFormat(RndSecurityFormat(MD5(Password.value))   cnt)   ":"   "Language:"   Language   ":"  "id=-1;path=/";
}
else
{
var cookie2 = "Cookie=body:"   "Language:"   Language   ":"   "id=-1;path=/";
Form.addParameter('UserName', Username.value);
Form.addParameter('PassWord', base64encode(Password.value));
Form.addParameter('Language', Language);
}

document.cookie = cookie2;
Username.disabled = true;
Password.disabled = true;

if('TRIPLET' == CfgMode.toUpperCase() || 'TRIPLETVOICE' == CfgMode.toUpperCase())
{
Form.addParameter('CheckCode', getValue('VerificationCode'));
Form.setAction('login.cgi?'  '&CheckCodeErrFile=login.asp');
}
else
{
Form.setAction('/login.cgi');
}
Form.addParameter('x.X_HW_Token', cnt);
Form.submit();
return true;
}


Après avoir récupéré le GetRand... j'envoie cela :
wget -qO- ont/login.cgi?UserName=Epuser&PassWord=dXNlckVw&x.X_HW_Token=16b3134cfb0bee35074452d8d4eb5310

Et ça retourne :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<meta content="no-cache" http-equiv="Pragma" />
<title>Waiting...</title>
<script type="text/javascript">
var pageName = '/';
top.location.replace(pageName);
</script>
</head>
<body> </body>
</html>


Il faut peut-être que je retourne impérativement Language, où j'ai pas fait le bon base64encode pour userEp

Je verrai plus tard...
Abonnement : Covage - Forfait fibre optique 1Gbs (formule AVI)
Routeur : perso ; Netgear R7800, micro logiciel Voxel
Téléphonie : Boîtier SPA112
Télévision : CoreElec - Kodi
Sondes : https://smokeping.brigadoon.fr/
Uptime : https://status.brigadoon.fr/

Citation de: bOLEMO le 25 Janvier 2021 à 15:24:32
En mode admin, dans la section System Tools -> Configuration File il y a :
Une partie Save Configurations and Reset, une partie Download Configuration File avec le bouton pour le faire, et dessous une partie Update Configuration File avec de quoi uploader un fichier.

Quand je clique sur le bouton, la section devient vide (blanche, enfin grise comme la couleur de fond)
C'est curieux que le bouton "download configuration file" n'ouvre pas une fenêtre.
Sur le mien HG8010, je récupère le fichier hw_ctree.xml
qui contient entre autre :


<AclServices HTTPLanEnable="1" HTTPWanEnable="0" FTPLanEnable="0" FTPWanEnable="0" TELNETLanEnable="0" TELNETWanEnable="0" SSHLanEnable="0" SSHWanEnable="0" HTTPPORT="80" FTPPORT="21" TELNETPORT="23" SSHPORT="22" HTTPWifiEnable="1" TELNETWifiEnable="1"/>

<X_HW_CLITelnetAccess Access="1" TelnetPort="23"/>


Citation de: bOLEMO le 25 Janvier 2021 à 15:24:32
Autre indice : dans la section Status -> Service Provisioning Status, il y a cette ligne :
EMS Configuration Status:   No XML configurations applied.
Pareil chez moi.
Il me semble que EMS est la configuration poussée par l'OLT.

Je joue dès que j'ai un ONT de rab  ;)
Offre Pulse, Réseau Covage74, Kbox V2b i4850_1.16.3, routeurs Asus AC52U pour AP et secours, PC Zotac Zbox PI223 et VLC sur K-net en secours.
Up-down : http://uptime.stef.cloudns.cl/
Ping : https://prtg.stef.cloudns.cl/public/mapshow.htm?id=2444&mapid=B942004D-735D-4AE6-BF48-70F7DC5EF8A8

Citation de: Steph le 25 Janvier 2021 à 15:58:24
Citation de: bOLEMO le 25 Janvier 2021 à 15:24:32
En mode admin, dans la section System Tools -> Configuration File il y a :
Une partie Save Configurations and Reset, une partie Download Configuration File avec le bouton pour le faire, et dessous une partie Update Configuration File avec de quoi uploader un fichier.

Quand je clique sur le bouton, la section devient vide (blanche, enfin grise comme la couleur de fond)
C'est curieux que le bouton "download configuration file" n'ouvre pas une fenêtre.
Sur le mien HG8010, je récupère le fichier hw_ctree.xml
qui contient entre autre :


<AclServices HTTPLanEnable="1" HTTPWanEnable="0" FTPLanEnable="0" FTPWanEnable="0" TELNETLanEnable="0" TELNETWanEnable="0" SSHLanEnable="0" SSHWanEnable="0" HTTPPORT="80" FTPPORT="21" TELNETPORT="23" SSHPORT="22" HTTPWifiEnable="1" TELNETWifiEnable="1"/>

<X_HW_CLITelnetAccess Access="1" TelnetPort="23"/>


Citation de: bOLEMO le 25 Janvier 2021 à 15:24:32
Autre indice : dans la section Status -> Service Provisioning Status, il y a cette ligne :
EMS Configuration Status:   No XML configurations applied.
Pareil chez moi.
Il me semble que EMS est la configuration poussée par l'OLT.

Je joue dès que j'ai un ONT de rab  ;)

Aha !! J'ai essayé avec Firefox et Chrome (sous iPad), mais après avoir vu ta réponse, je me suis dis que le pop up devait être bloqué. J'ai donc essayé avec Safari et... BINGO  :)

Maintenant, je vais activer telnet
Abonnement : Covage - Forfait fibre optique 1Gbs (formule AVI)
Routeur : perso ; Netgear R7800, micro logiciel Voxel
Téléphonie : Boîtier SPA112
Télévision : CoreElec - Kodi
Sondes : https://smokeping.brigadoon.fr/
Uptime : https://status.brigadoon.fr/