Caps Services - Forum

K-net => Internet => Discussion démarrée par: bOLEMO le 25 Janvier 2021 à 01:05:05

Titre: [Tuto] Accès ONT HG8010H et EG8010H
Posté par: bOLEMO le 25 Janvier 2021 à 01:05:05
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...
Titre: Re : [Tuto] Accès ONT EG8010H
Posté par: 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.
Titre: Re : Re : [Tuto] Accès ONT EG8010H
Posté par: 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à  ;)
Titre: Re : Re : Re : [Tuto] Accès ONT EG8010H
Posté par: halesk2k le 25 Janvier 2021 à 13:02:22
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.
Titre: Re : [Tuto] Accès ONT EG8010H
Posté par: bOLEMO le 25 Janvier 2021 à 13:05:37
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
Titre: Re : Re : Re : Re : [Tuto] Accès ONT EG8010H
Posté par: 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.
Titre: Re : [Tuto] Accès ONT EG8010H
Posté par: halesk2k le 25 Janvier 2021 à 13:25:53
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.
Titre: Re : Re : Re : Re : Re : [Tuto] Accès ONT EG8010H
Posté par: halesk2k le 25 Janvier 2021 à 13:29:02
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.
Titre: Re : [Tuto] Accès ONT EG8010H
Posté par: halesk2k le 25 Janvier 2021 à 13:32:22
Une petite prez intéressant sur le hack du HG8010H. https://fr.slideshare.net/rfc1036/exploring-the-huawei-hg8010h-gpon-ont
Titre: Re : [Tuto] Accès ONT EG8010H
Posté par: bOLEMO le 25 Janvier 2021 à 13:52:33
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...
Titre: Re : [Tuto] Accès ONT EG8010H
Posté par: 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?
Titre: Re : Re : [Tuto] Accès ONT EG8010H
Posté par: bOLEMO le 25 Janvier 2021 à 15:24:32
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.
Titre: Re : [Tuto] Accès ONT EG8010H
Posté par: bOLEMO le 25 Janvier 2021 à 15:45:39
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...
Titre: Re : Re : Re : [Tuto] Accès ONT EG8010H
Posté par: 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  ;)
Titre: Re : Re : Re : Re : [Tuto] Accès ONT EG8010H
Posté par: bOLEMO le 25 Janvier 2021 à 17:04:14
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
Titre: Re : [Tuto] Accès ONT EG8010H
Posté par: bOLEMO le 25 Janvier 2021 à 18:04:24
Bon, j'ai activé telnet, et la connexion se fait, mais je n'ai pas les identifiants...
D'après le fichier config, l'utilisateur CLI est Eproot
Mais le mot de passe est illisible...
<X_HW_CLIUserInfo NumberOfInstances="1">
<X_HW_CLIUserInfoInstance InstanceID="1" Username="Eproot" Userpassword="$2zvl$$IX(&lt;1$xf9&lt;[d(0-Lwr=JekW&amp;&quot;3un2F_Ic\QMFwC=nk1j05budL4=qROX-@]&amp;Gkr.V!&lt;Dl0d:#iM)=8s6g^j}*.,qr#&amp;60f,$" UserGroup="" ModifyPWDFlag="0" EncryptMode="2" Salt="060ca834eecc30c5de3e1de8"/>
</X_HW_CLIUserInfo>


Par example pour les utilisateurs web, c'est Epuser, et userEp pour le mdp, et Epadmin et adminEp et l'encodage est du même type :


<X_HW_WebUserInfo NumberOfInstances="2">
<X_HW_WebUserInfoInstance InstanceID="1" UserName="Epuser" Password="$2&lt;ejXTNyoj/n{Mu#&lt;Cli,ZVz_HF(,@D&apos;&apos;)vPiIr(&lt;Rb&lt;]&lt;F+p&apos;#JQ*.,9!\LG4y[B&quot;Oqy&quot;1,a~+FZf22T+Y&lt;65|;9*V1Gl:.&gt;t9b+$" UserLevel="1" Enable="1" ModifyPasswordFlag="0" Salt="162e9183cccc2a2faae4093e" PassMode="3"/>
<X_HW_WebUserInfoInstance InstanceID="2" UserName="Epadmin" Password="$2gj:qEMta.,{eIA:,%IMDt&gt;*W2}wYW3N5RHD3*c\7j:V9/:ml&gt;Xm&quot;\&apos;,~8FW&quot;95Oy7XZBY)`&gt;4]FD&quot;piH9g_r,BGN\F(&lt;xC)LM~~-$" UserLevel="0" Enable="1" ModifyPasswordFlag="0" Salt="6510188f7f48c30816faab38" PassMode="3"/>
</X_HW_WebUserInfo>
Titre: Re : [Tuto] Accès ONT EG8010H
Posté par: Steph le 25 Janvier 2021 à 18:30:55
Il y a un hack ici :
https://github.com/logon84/Hacking_Huawei_HG8012H_ONT
avec du MD5 sur le password

Pour le mien : CLI et WEB ont même login : root mais pas le même password.

Je ne sais pas si on peut ajouter une instance avec un mot de passe connu.
Titre: Re : [Tuto] Accès ONT EG8010H
Posté par: bOLEMO le 25 Janvier 2021 à 18:31:58
Bon, j'ai essayé dans le fichier de configuration de modifier l'utilisateur CLI, pour lui donner le même id et mdp que Epadmin. Sans succès... :
Welcome Visiting Huawei Home Gateway
Copyright by Huawei Technologies Co., Ltd.

Login:Epadmin
Password:
User name or password is wrong, please try it again!
Login:epadmin
Password:
User name or password is wrong, please try it again!
Login:Eproot
Password:
User name or password is wrong, please try it again!
Login:
Titre: Re : Re : [Tuto] Accès ONT EG8010H
Posté par: bOLEMO le 25 Janvier 2021 à 18:32:43
Citation de: Steph le 25 Janvier 2021 à 18:30:55
Il y a un hack ici :
https://github.com/logon84/Hacking_Huawei_HG8012H_ONT
avec du MD5 sur le password

Pour le mien : CLI et WEB ont même login : root mais pas le même password.

Je ne sais pas si on peut ajouter une instance avec un mot de passe connu.

Je vais voir de suite, merci
Titre: Re : [Tuto] Accès ONT EG8010H
Posté par: bOLEMO le 25 Janvier 2021 à 19:00:15
Bon, sans succès...
J'ai changé l'utilisateur Eproot pour Epadmin, en copiant aussi le champ salt.

La page du hack propose une ligne non testée qui est censée mettre l'utilisateur root/admin, mais elle contient des " qui rendent le xml peu fiable, et je ne préfère pas essayer et bricked l'ONT.
Titre: Re : [Tuto] Accès ONT EG8010H
Posté par: halesk2k le 25 Janvier 2021 à 22:55:48
Bon je crois que je vais t'éviter des soucis, je me suis mis un coup de fouet et j'ai fini le script (POC) pour extraire les données en passant par l'interface web au lieu de telnet.
Bon, j'ai toujours pas de signal chez moi, d'où les "--"


alex@dagobah:~/exp/workspaces/ontstats$ ./stats_http.py
TxPower: --
RxPower: --
Voltage: 3322
Temperature: 35
BiasCurrent: 0


Code à jour pour dans le futur: https://github.com/loiklo/huawei-onu-to-graphite/

Code POC d'aujourd'hui:
Citation
#!/usr/bin/env python3
import requests
import base64

# User vars
ont_host     = "192.168.100.1"
ont_username = "root"
ont_password = "adminHW"

# Build URL prefix
ont_urlprefix = "http://" + ont_host

# Start http session
ont_session = requests.Session()
# Get the mystery random stuff
req = ont_session.post(ont_urlprefix + "/asp/GetRandCount.asp")
sid = req.text[-32:]
# Session authentication
headers = {"Cookie": "Cookie=body:Language:english:id=-1"}
auth_data = {"UserName": ont_username, "PassWord": base64.b64encode(ont_password.encode()), "x.X_HW_Token": sid}
req = ont_session.post(ont_urlprefix + "/login.cgi", headers=headers, data=auth_data)
# Get optic info
req = ont_session.get(ont_urlprefix + "/html/amp/opticinfo/opticinfo.asp")
# Logout
ont_session.post(ont_urlprefix + "/logout.cgi?RequestFile=html/logout.html")

# Result parsing
for line in req.text.split("\n"):
  if line.startswith('var opticInfos'):
    opticInfos_split = line.split("\",\"")
    print("TxPower: {:s}".format(opticInfos_split[1]))
    print("RxPower: {:s}".format(opticInfos_split[2]))
    print("Voltage: {:s}".format(opticInfos_split[3]))
    print("Temperature: {:s}".format(opticInfos_split[4]))
    print("BiasCurrent: {:s}".format(opticInfos_split[5]))
    break

exit(0)

En terme de temps, c'est plus lent et plus crados que via telnet, mais ca évite de devoir hack l'ONT. Pour comparer:
Citation
alex@dagobah:~/exp/workspaces/ontstats$ time ./stats_http.py
TxPower: --
RxPower: --
Voltage: 3322
Temperature: 35
BiasCurrent: 0

real   0m1,081s
user   0m0,063s
sys   0m0,009s

alex@dagobah:~/exp/workspaces/ontstats$ time ./stats_telnet.py
stats.network.ftth.ont.linkstatus 1 1611611177
stats.network.ftth.ont.linkstatus_up 1 1611611177
stats.network.ftth.ont.voltage_in_mv 3322 1611611177
stats.network.ftth.ont.temperature_in_c 36 1611611177
stats.network.ftth.ont.rxpower_in_mdbm -17000 1611611177
stats.network.ftth.ont.txpower_in_mdbm 2000 1611611177

real   0m0,792s
user   0m0,017s
sys   0m0,006s
Titre: Re : Re : [Tuto] Accès ONT EG8010H
Posté par: bOLEMO le 26 Janvier 2021 à 00:28:35
Citation de: halesk2k le 25 Janvier 2021 à 22:55:48
Bon je crois que je vais t'éviter des soucis, je me suis mis un coup de fouet et j'ai fini le script (POC) pour extraire les données en passant par l'interface web au lieu de telnet.
Bon, j'ai toujours pas de signal chez moi, d'où les "--"

Ça fonctionne, merci ! Et avec l'utilisateur de base Epuser (donc même pas admin). Aucun risque de faire de bêtises.

Après avoir installé python pip et requests :
openhabian@hestia:~$ ./ont_stats_http.py
TxPower:  2.23
RxPower: -17.08
Voltage: 3291
Temperature: 50
BiasCurrent: 15


Il le reste à convertir ce script en Perl, et je pourrai en faire une sonde smokeping  ;)

Par ailleurs, et par curiosité, je vais continuer à creuser la piste telnet.
Titre: Re : [Tuto] Accès ONT EG8010H
Posté par: bOLEMO le 26 Janvier 2021 à 01:30:15
J'ai trouvé !!

Remis l'identifiant telnet par défaut.
Et j'ai vu que pas mal de configurations étaient root/admin.
Comme l'utilisateur ici est Eproot, j'ai essayé le mdp adminEp et sésame s'est ouvert  :)

Donc en plus du script de halesk2k qui fonctionne très bien sur ce modèle aussi, le telnet est également fonctionnel.
Titre: Re : [Tuto] Accès ONT HG8010H et EG8010H
Posté par: ogotro le 31 Janvier 2021 à 11:51:11
Vous êtes des stars ! ;D

Ca fonctionne top en 3 commandes:

Sur le routeur
sudo -s
vbash-4.1# ip addr add 192.168.100.2/24 dev eth0

sur le PC
olivier@HugeDebian:~$ git clone https://github.com/loiklo/huawei-onu-to-graphite.git
olivier@HugeDebian:~$ cd huawei-onu-to-graphite/
olivier@HugeDebian:~/huawei-onu-to-graphite$ chmod +x huawei-onu-stats-http.py
olivier@HugeDebian:~/huawei-onu-to-graphite$ ./huawei-onu-stats-http.py
TxPower:  2.07
RxPower: -15.02
Voltage: 3283
Temperature: 42
BiasCurrent: 8


On va pouvoir surveiller ça


Merci !
Titre: Re : [Tuto] Accès ONT HG8010H et EG8010H
Posté par: bOLEMO le 31 Janvier 2021 à 15:44:16
Super !

De rien, c'est le but de ce tuto  ;)
Titre: Re : [Tuto] Accès ONT HG8010H et EG8010H
Posté par: sebbdu14 le 31 Janvier 2021 à 16:16:41
bonjour
bravo a tous, pour vos investigations.
j'ai pas osé fouiller de peur de bricker mon ONT, avec la chance que j'ai en ce moment........
Titre: Re : Re : [Tuto] Accès ONT HG8010H et EG8010H
Posté par: halesk2k le 31 Janvier 2021 à 17:40:19
Citation de: sebbdu14 le 31 Janvier 2021 à 16:16:41
bonjour
bravo a tous, pour vos investigations.
j'ai pas osé fouiller de peur de bricker mon ONT, avec la chance que j'ai en ce moment........

Le script "http" permet de récupérer les valeurs en simulant un accès via l'interface web, tout ce qu'il y a de plus normal. Strictement aucun risque de briquer quoi que ce soit.
Titre: Re : [Tuto] Accès ONT HG8010H et EG8010H
Posté par: sebbdu14 le 31 Janvier 2021 à 21:02:45
merci,,
je garde ça sous le coude et regarderai un peu plus tard.
encore chapeau a vous d'avoir fouillé ^^
Titre: Re : [Tuto] Accès ONT HG8010H et EG8010H
Posté par: thedark le 03 Février 2021 à 15:20:29
Une personne qui est sur un réseaux Manche chez K-NET a réussir de mettre un SFP directement dans un routeur. (Attention dangereux - Aucun support)
https://lafibre.info/remplacer-livebox/guide-de-connexion-fibre-directement-sur-un-routeur-voire-meme-en-2gbps/msg832816/#msg832816
Titre: Re : [Tuto] Accès ONT HG8010H et EG8010H
Posté par: thedark le 25 Juin 2021 à 21:26:39
Chose amusante chez le logo Rouge.
On n'a accès aux informations de l'ONT par l'API.

http://192.168.1.1/api/?method=ont.getInfo (http://192.168.1.1/api/?method=ont.getInfo)
Citation<rsp stat="ok" version="1.0">
<ont type="I-010G-Q" status="up" sn="" version="">
<info name="slid" value=""/>
<info name="ranging" value="O5"/>
<info name="uptime" value="103884"/>
<info name="receive" value="-21.86561"/>
<info name="transmit" value="2.96724"/>
<info name="bias" value="7.11"/>
<info name="temp" value="45.000000"/>
<info name="vcc" value="3.299990"/>
<info name="lanlos" value="INACTIVE"/>
<info name="lossframe" value="INACTIVE"/>
<info name="lossgem" value="INACTIVE"/>
<info name="losssignal" value="INACTIVE"/>
<info name="errmsg" value="INACTIVE"/>
<info name="omcc" value="INACTIVE"/>
<info name="deactivate" value="INACTIVE"/>
<info name="ranged" value="ACTIVE"/>
<info name="phyerror" value="INACTIVE"/>
<info name="rdi" value="INACTIVE"/>
<info name="failed" value="INACTIVE"/>
<info name="slidattempts" value="0"/>
<info name="updatecounter" value="175"/>
<info name="versionpassive" value=""/>
<info name="ledseqpt" value="GREEN"/>
<info name="ledseqptstate" value="NONE"/>
<info name="ledspon" value="GREEN"/>
<info name="ledsponstate" value="SOLID"/>
<info name="ledsmgnt" value="GREEN"/>
<info name="ledsmgntstate" value="SOLID"/>
<info name="ledslan" value="GREEN"/>
<info name="ledslanstate" value="NONE"/>
<info name="ledsalm" value=""/>
<info name="dlfail" value="INACTIVE"/>
<info name="dlidle" value="ACTIVE"/>
<info name="dlip" value="INACTIVE"/>
<info name="dlstart" value="INACTIVE"/>
</ont>
</rsp>
Titre: Re : [Tuto] Accès ONT HG8010H et EG8010H
Posté par: halesk2k le 26 Juin 2021 à 02:15:16
-21,86 dBm y a encore un peu de marge mais c'est pas foufou, j'espère qu'il n'y aura pas trop de casse/soudure sur ta fibre.

En tout cas c'est cool qu'ils laissent les infos au client via l'api.
Titre: Re : Re : [Tuto] Accès ONT HG8010H et EG8010H
Posté par: thedark le 26 Juin 2021 à 07:06:16
Citation de: halesk2k le 26 Juin 2021 à 02:15:16
-21,86 dBm y a encore un peu de marge mais c'est pas foufou, j'espère qu'il n'y aura pas trop de casse/soudure sur ta fibre.
-21,86 dBm est une bonne moyenne chez le logo Rouge.
J'ai comparer avec 3 connexions chez le logo Rouge c'est toujours entre -20 et - 23 dBm

On m'a dit c'est à cause du coupleur 1:64 qu'on a ce dBm.
https://lafibre.info/gpon/infos-de-lont-bias-rangement-sur-le-pon-intensite/msg516603/#msg516603
Titre: Re : Re : [Tuto] Accès ONT HG8010H et EG8010H
Posté par: Hugues le 26 Juin 2021 à 10:14:02
Citation de: halesk2k le 26 Juin 2021 à 02:15:16
-21,86 dBm y a encore un peu de marge mais c'est pas foufou, j'espère qu'il n'y aura pas trop de casse/soudure sur ta fibre.
-28dBm la limite basse sur du GPON, large :)
Titre: Re : Re : Re : [Tuto] Accès ONT HG8010H et EG8010H
Posté par: halesk2k le 26 Juin 2021 à 10:21:11
Citation de: Hugues le 26 Juin 2021 à 10:14:02
Citation de: halesk2k le 26 Juin 2021 à 02:15:16
-21,86 dBm y a encore un peu de marge mais c'est pas foufou, j'espère qu'il n'y aura pas trop de casse/soudure sur ta fibre.
-28dBm la limite basse sur du GPON, large :)

Quand j'étais sur la fibre pété "lové dans le bon sens pour que ca tombe en marche", j'étais à -24dBm sûre, c'est peut-être descendu à -25dBm sans certitude, mais jamais -26dBm, l'ONT décrochait avant. Après, ca dépend probablement de la sensibilité de l'ONT ou d'autres paramètres mais -28dBm, ca me parait super large.
Titre: Re : [Tuto] Accès ONT HG8010H et EG8010H
Posté par: Steph le 26 Juin 2021 à 10:27:02
Le 8010H donne en Reference Value : Rx -27 to -8 dBm, histoire d'être dans la norme.