Auteur Sujet: Reverse Engineering : Nouveau système de génération de l'option 90 DHCP  (Lu 216093 fois)

0 Membres et 1 Invité sur ce sujet

Mastah

  • Abonné Orange Fibre
  • *
  • Messages: 292
  • XGS-PON et G-PON
Comme vous le savez, orange à modifié la manière dont l'authentification DHCP est réalisé.

Ancienne échange hexa DHCP (option 90)
00:00:00:00:00:00:00:00:00:00:00:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx

Nouvel échange hexa DHCP (option 90)
00:00:00:00:00:00:00:00:00:00:00:1a:09:00:00:05:58:01:03:41:01:0d:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:3c:12:sa:lt:sa:lt:sa:lt:sa:lt:sa:lt:sa:lt:sa:lt:sa:lt:03:13:zz:ha:sh:ha:sh:ha:sh:ha:sh:ha:sh:ha:sh:ha:sh:ha:sh

Je vous propose donc de mettre en commun nos cerveaux et de chercher quelle pourrait être la manière de génération des deux parties qui sont ajouté avant et après l'identifiant.


Edit:
Le pattern qui semble fonctionner
00:00:00:00:00:00:00:00:00:00:00:1a:09:00:00:05:58:01:03:41:01:0d:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx



Info disponible

Salut les loulous.

Il se trouve que j'avais reversé la partie concernée du firmware Livebox 3 qui génère cette option DHCP, je vais donc vous faire part de mes notes.

  • Les 11 premiers octets sont mis à 0 : il s'agit d'un emplacement de la taille de l'en-tête de l'option 90 DHCP standard, telle que définie dans la RFC 3118. Ces paramètres n'étant pas utilisés, ils sont mis à 0.
  • Ensuite, il s'agit d'une séquence de champs TLV (type-length-value). Autrement dit, il s'agit d'une séquence de paramètres propriétaires définis par Orange qui suivent ce motif : 1 octet de type, 1 octet de taille (comprenant les octets de type, de taille et de valeur), suivi d'un certain nombre d'octets de valeur en fonction de la taille.

    • D'abord, il y a cette séquence d'octets définie en dur dans le binaire, je ne sais pas à quoi elle correspond : 1a0900000558010341 (1a est donc le type et 09 la taille)
    • Ensuite, un autre champ fixe dont la valeur est "A", peut-être une version de format... : 010341 (01 est le type, 03 est la taille, 41 est la valeur "A" en ASCII)
    • Ensuite, un champ dont le type est étrangement aussi 01, et la valeur est l'identifiant PPP Orange (appelons-le USERNAME), je ne vous fais pas de dessin : 010dXXXXXXXXXXXXXXXXXXXXXX
    • Ensuite, un champ dont le type est 3c, qui contient 16 octets aléatoires (appelons-les RANDSTRING) est généré par le client DHCP si je me souviens bien : 3c12XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    • Enfin, un champ dont le type est 03, et qui contient 17 octets de valeur :

      • 1 octet aléatoire, appelons-le RANDCHAR, immédiatement suivi de
      • 16 octets qui sont un hash MD5 généré avec la formule suivante : MD5(RANDCHAR + PASSWORD + RANDSTRING), où PASSWORD est le mot de passe PPP

Voilà pour mes notes les kidz ! Amusez-vous bien


Le xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx correspond à la chaine fti/xxxxx orange
« Modifié: 29 septembre 2018 à 15:58:42 par Mastah »

Aize147

  • Abonné Orange Fibre
  • *
  • Messages: 985
  • Orange FTTH 2G/800M - Free FTTH 8G/700M
Cacking: Nouveau système de génération de l'option 90 DHCP
« Réponse #1 le: 26 septembre 2018 à 21:26:47 »
Pour moi cela remarche après sniffing sur le port WAN de l'option 90 et 11 (IPv6), après remis dans le Mikrotik avec "0x22_zeros_avant_le_nouveau_code_hexa".

zoc

  • Abonné Orange Fibre
  • *
  • Messages: 4 258
  • Antibes (06) / Mercury (73)
Cacking: Nouveau système de génération de l'option 90 DHCP
« Réponse #2 le: 26 septembre 2018 à 21:28:12 »
Alors 2 infos:
  • La partie avant le fti est fixe (identique pour tout le monde) Edit: Si j'ai bien compris le post de @Aize147, si on met tout à 00 ça marche quand même
  • La partie après le fti change à chaque renew.... mais ils semble que pour l'instant on peut obtenir une IP même si on réutilise plusieurs fois la même

Je vais essayer de capturer ce que fait la box sur plusieurs jours afin d'avoir plusieurs échantillons de la partie variable...

Du coup, question: Est-ce que par hasard ça ne marcherait pas avec simplement 22 fois 00 + le fti/xxxxx sans tout le bordel pseudo random qui suit ?


Mastah

  • Abonné Orange Fibre
  • *
  • Messages: 292
  • XGS-PON et G-PON
Cacking: Nouveau système de génération de l'option 90 DHCP
« Réponse #3 le: 26 septembre 2018 à 21:37:24 »
Je teste sans tout le bordel derrière.

Mastah

  • Abonné Orange Fibre
  • *
  • Messages: 292
  • XGS-PON et G-PON
Cacking: Nouveau système de génération de l'option 90 DHCP
« Réponse #4 le: 26 septembre 2018 à 21:40:47 »
C'est ok avec

00:00:00:00:00:00:00:00:00:00:00:1a:09:00:00:05:58:01:03:41:01:0d:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx

zoc

  • Abonné Orange Fibre
  • *
  • Messages: 4 258
  • Antibes (06) / Mercury (73)
Cacking: Nouveau système de génération de l'option 90 DHCP
« Réponse #5 le: 26 septembre 2018 à 21:41:46 »
Lol, tout ça pour ça, franchement  ;D

Quoi qu'il en soit, étant donné que actuellement ma Livebox est client DHCP de mon routeur, je crois qu'elle va devenir mon générateur officiel de code d'auhentification, au cas où un jour la partie "random" devient obligatoire et doit changer régulièrement...

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 078
  • Paris (75)
Cacking: Nouveau système de génération de l'option 90 DHCP
« Réponse #6 le: 26 septembre 2018 à 21:45:25 »
regardez la norme pour l'option 90, https://tools.ietf.org/html/rfc3118. Orange s'est peut-etre mis a jour pour être  rentrer dans la norme (ce qui n'était pas le cas avant) ? (on parle de rumeur de routeurs du commerce qui seraient bientot compatibles avec les connexions Orange).

le truc qui change a chaque renew ca serait  pas le Replay Detection de la norme ?

Mastah

  • Abonné Orange Fibre
  • *
  • Messages: 292
  • XGS-PON et G-PON
Cacking: Nouveau système de génération de l'option 90 DHCP
« Réponse #7 le: 26 septembre 2018 à 21:45:36 »
OK
00:00:00:00:00:00:00:00:00:00:00:1a:09:00:00:05:58:01:03:41:01:0d:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx

KO
00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx

zoc

  • Abonné Orange Fibre
  • *
  • Messages: 4 258
  • Antibes (06) / Mercury (73)
Cacking: Nouveau système de génération de l'option 90 DHCP
« Réponse #8 le: 26 septembre 2018 à 21:48:15 »
le truc qui change a chaque renew ca serait  pas le Replay Detection de la norme ?
Non, le replay detection devrait être avant le fti si j'ai bien compris la RFC (à la place des 00).

Mastah

  • Abonné Orange Fibre
  • *
  • Messages: 292
  • XGS-PON et G-PON
Cacking: Nouveau système de génération de l'option 90 DHCP
« Réponse #9 le: 26 septembre 2018 à 21:49:18 »
regardez la norme pour l'option 90, https://tools.ietf.org/html/rfc3118. Orange s'est peut-etre mis a jour pour être  rentrer dans la norme (ce qui n'était pas le cas avant) ? (on parle de rumeur de routeurs du commerce qui seraient bientot compatibles avec les connexions Orange).

le truc qui change a chaque renew ca serait  pas le Replay Detection de la norme ?

C'est possible... Je ne suis pas assez calé en DHCP cela dit ^^
Par contre, si ce que tu dis est vrai, c'est une très bonne nouvelle pour l'ouverture avec un remplacement de la box orange par autre chose !

Gucci gang

  • Abonné Orange Fibre
  • *
  • Messages: 1
Cacking: Nouveau système de génération de l'option 90 DHCP
« Réponse #10 le: 26 septembre 2018 à 22:13:11 »
Salut les loulous.

Il se trouve que j'avais reversé la partie concernée du firmware Livebox 3 qui génère cette option DHCP, je vais donc vous faire part de mes notes.

  • Les 11 premiers octets sont mis à 0 : il s'agit d'un emplacement de la taille de l'en-tête de l'option 90 DHCP standard, telle que définie dans la RFC 3118. Ces paramètres n'étant pas utilisés, ils sont mis à 0.
  • Ensuite, il s'agit d'une séquence de champs TLV (type-length-value). Autrement dit, il s'agit d'une séquence de paramètres propriétaires définis par Orange qui suivent ce motif : 1 octet de type, 1 octet de taille (comprenant les octets de type, de taille et de valeur), suivi d'un certain nombre d'octets de valeur en fonction de la taille.

    • D'abord, il y a cette séquence d'octets définie en dur dans le binaire, je ne sais pas à quoi elle correspond : 1a0900000558010341 (1a est donc le type et 09 la taille)
    • Ensuite, un autre champ fixe dont la valeur est "A", peut-être une version de format... : 010341 (01 est le type, 03 est la taille, 41 est la valeur "A" en ASCII)
    • Ensuite, un champ dont le type est étrangement aussi 01, et la valeur est l'identifiant PPP Orange (appelons-le USERNAME), je ne vous fais pas de dessin : 010dXXXXXXXXXXXXXXXXXXXXXX
    • Ensuite, un champ dont le type est 3c, qui contient 16 octets aléatoires (appelons-les RANDSTRING) est généré par le client DHCP si je me souviens bien : 3c12XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    • Enfin, un champ dont le type est 03, et qui contient 17 octets de valeur :

      • 1 octet aléatoire, appelons-le RANDCHAR, immédiatement suivi de
      • 16 octets qui sont un hash MD5 généré avec la formule suivante : MD5(RANDCHAR + PASSWORD + RANDSTRING), où PASSWORD est le mot de passe PPP

Voilà pour mes notes les kidz ! Amusez-vous bien

Mastah

  • Abonné Orange Fibre
  • *
  • Messages: 292
  • XGS-PON et G-PON
Cacking: Nouveau système de génération de l'option 90 DHCP
« Réponse #11 le: 26 septembre 2018 à 22:20:21 »
Thanks !