[Tuto] Accès ONT HG8010H et EG8010H

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

« précédent - suivant »

0 Membres et 1 Invité sur ce sujet

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>
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/

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.
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

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:
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: 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
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...
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.
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/

#20
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
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 à 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.
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/

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.
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/

#23
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 !

Super !

De rien, c'est le but de ce tuto  ;)
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/

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........

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.
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/

merci,,
je garde ça sous le coude et regarderai un peu plus tard.
encore chapeau a vous d'avoir fouillé ^^

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

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
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>