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

0 Membres et 1 Invité sur ce sujet

obinou

  • AS197422 Tetaneutral.net
  • Expert
  • *
  • Messages: 1 668
  • Montgesty (46150)
    • Tetaneutral.net
Reverse Engineering : Nouveau système de génération de l'option 90 DHCP
« Réponse #72 le: 29 septembre 2018 à 19:02:19 »
j'ai fait un générateur a la vite : https://jsfiddle.net/kgersen/3mnsc6wy/embedded/result/

Ma contribution en bash avec un minimum de dépendances (dd+ md5sum + sed + cut)

merci à tous les 2 !

Si cette méthode est / devient une norme (ou rfc), ptet une implèmentation dans odhcpc serait pertinent, non ?
(edit) En fait, ce message https://lafibre.info/remplacer-livebox/renew-dhcp-daujourdhui-gt-plus-dip/msg580486/#msg580486 propose une solution moins intrusive. A voir si un signal HUP permet de forcer la relecture de la config du client dhcp, mais si c'est le cas un simple script  cron règlement les choses simplement et sans toucher à du code "juste" pour Orange.

Reymouth

  • Abonné Orange Fibre
  • *
  • Messages: 40
  • Lille (59)
Reverse Engineering : Nouveau système de génération de l'option 90 DHCP
« Réponse #73 le: 29 septembre 2018 à 20:35:07 »
@zoc j'ai testé à l'instant et ça fonctionne. Merci ;)

Cette valeur est à régénérer à chaque renew du dhcp, si j'ai bien compris ?

xavierg

  • Abonné Orange Fibre
  • *
  • Messages: 96
Reverse Engineering : Nouveau système de génération de l'option 90 DHCP
« Réponse #74 le: 29 septembre 2018 à 20:43:46 »
@zoc j'ai testé à l'instant et ça fonctionne. Merci ;)

Cette valeur est à régénérer à chaque renew du dhcp, si j'ai bien compris ?

Là, tout de suite... je ne pense pas. Mais si un jour Orange se met à implèmenter une Replay Detection Method digne de ce nom, alors on ne pourra plus se contenter de mettre une chaîne hexa en dur dans la configuration de nos clients DHCP. Il faudra au minimum incrèmenter la valeur du "monotonically-increasing counter" à chaque requête DHCP (actuellement on envoie toujours 0).

En complèment, voici les commentaires que j'ai écrits pour mon fichier de configuration DHCP : ils reprennent ce qu'a trouvé "gucci gang" tout en détaillant les fameux "11 0x00" qu'on se traîne tous depuis un bon moment :
# Option (90) Authentication:
    # First, we have to define that option:
    option authentication code 90 = string;
    # Next, we strive to imitate what a LiveBox would generate, starting with
    # 11 null bytes:
    #   - 1 for the authentication protocol: 0 means "configuration token"
    #   - 1 for the algorithm: 0 means "none"
    #   - 1 for RDM (Replay Detection method) type: 0 means "monotonically-increasing counter"
    #   - 8 for RDM (Replay Detection method) value (here, 0, simply)
    # Then, according to [1], we have a sequence of Type-Length-Value fields:
    #   - Unknown field: type 0x1A, length 9 (1+1+7), value 00:00:05:58:01:03:41
    #   - Username field: type 0x01, length 13 (1+1+11), our Orange PPP login, i.e. "fti/xxxxxxx"
    #   - Salt field: type 0x3C, length 18 (1+1+16), 16-byte random salt
    #   - Hash field: type 0x03, length 19 (1+1+17), 1 random byte followed by the 16-byte MD5 hash of:
    #     - that random byte
    #     - our Orange PPP password
    #     - the salt field
    send authentication 00:00:00:00:00:00:00:00:00:00:00:1a:09:00:00:05:58:01:03:41:01:0d:{{ orange_login_hex }}:3c:12:{{ orange_salt_hex }}:03:13:{{ orange_hash_hex }};
    # [1] https://lafibre.info/remplacer-livebox/cacking-nouveau-systeme-de-generation-de-loption-90-dhcp/
Cela dit, ce serait bien de déterminer ce qu'est ce champ inconnu après les paramètres RDM...

petrus

  • Expert AS206155
  • Expert
  • *
  • Messages: 1 065
Reverse Engineering : Nouveau système de génération de l'option 90 DHCP
« Réponse #75 le: 30 septembre 2018 à 02:06:01 »

    # Then, according to [1], we have a sequence of Type-Length-Value fields:
    #   - Unknown field: type 0x1A, length 9 (1+1+7), value 00:00:05:58:01:03:41
Cela dit, ce serait bien de déterminer ce qu'est ce champ inconnu après les paramètres RDM...

1a:09:00:00:05:58:01:03:41 => 0x0558 = 1368.

1368 = Orange, cf https://www.iana.org/assignments/enterprise-numbers/enterprise-numbers

nivek1612

  • Abonné Orange Fibre
  • *
  • Messages: 344
  • Nice 06
Reverse Engineering : Nouveau système de génération de l'option 90 DHCP
« Réponse #76 le: 30 septembre 2018 à 09:09:56 »

Pour les utilisateurs de FreeBSD, voici un script basé sur le travail de @zoc. Je travaille avec l'équipe OPNsense pour l'intégrer à l'interface graphique

#!/bin/sh

login='fti/abcdef'
pass='hijklmn'

tohex() {
  for h in $(echo $1 | sed "s/\(.\)/\1 /g"); do printf %02x \'$h; done
}
#Fixed Part
f="00000000000000000000001a0900000558010341010d"
#RANDSTRING
r=$(dd if=/dev/urandom bs=1k count=1 2>&1 | md5 | cut -c1-16)
#RANDCHAR
id=${r%${r#??}}
#MD5 HASH (RANDCHAR+pass+RANDSTRING)
h=3c12$(tohex ${r})0313$(tohex ${id})$(echo -n ${id}${pass}${r} | md5 | cut -c1-32)

#Dhcp Authorisation string (FIXED+LOGIN+MD5HASH)
option90=$(echo "${f}$(tohex ${login})${h}" | sed 's/\(..\)/\1:/g' | sed '$s/.$//')

echo $option90

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 092
  • Paris (75)
Reverse Engineering : Nouveau système de génération de l'option 90 DHCP
« Réponse #77 le: 30 septembre 2018 à 12:12:23 »
Ya un bug avec https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.9-1/crypto-js.min.js
ReferenceError: CryptoJS is not defined

avec quel navigateur ? t'as un bloqueur de pub ou de scripts ?

petrus

  • Expert AS206155
  • Expert
  • *
  • Messages: 1 065
Reverse Engineering : Nouveau système de génération de l'option 90 DHCP
« Réponse #78 le: 30 septembre 2018 à 12:22:47 »
Pour les utilisateurs de FreeBSD, voici un script basé sur le travail de @zoc. Je travaille avec l'équipe OPNsense pour l'intégrer à l'interface graphique

Eh, merci, ça fonctionne très bien sous open également, pas de bashismes comme dans la version de zoc (mais merci quand même !).

mirtouf

  • Abonné Bbox fibre
  • *
  • Messages: 1 304
  • Chelles (77)
    • L'antre de la bête
Reverse Engineering : Nouveau système de génération de l'option 90 DHCP
« Réponse #79 le: 30 septembre 2018 à 12:32:47 »
avec quel navigateur ? t'as un bloqueur de pub ou de scripts ?
Effectivement, c'était le bloqueur de pub qui a été trop zélé.

xavierg

  • Abonné Orange Fibre
  • *
  • Messages: 96
Reverse Engineering : Nouveau système de génération de l'option 90 DHCP
« Réponse #80 le: 30 septembre 2018 à 12:54:03 »
1a:09:00:00:05:58:01:03:41 => 0x0558 = 1368.

1368 = Orange, cf https://www.iana.org/assignments/enterprise-numbers/enterprise-numbers.

Excellent ! On est donc clairement sur un champ de type "Vendor information" ; je suppose que 01:03:41 reflète la version du firmware de la Livebox ?

eahlys

  • Expert
  • Abonné Free fibre
  • *
  • Messages: 1 102
  • AS12876
Reverse Engineering : Nouveau système de génération de l'option 90 DHCP
« Réponse #81 le: 30 septembre 2018 à 13:00:27 »
Bonjour !

Merci beaucoup pour vos recherches, j'ai enfin compris pourquoi je n'ai plus internet depuis vendredi soir (je n'étais pas chez moi, en plus)
Le changement est donc valable pour l'option 90 du DHCP. Mais qu'en est-il de l'IPv6, faut il changer la chaîne d'identification aussi ?

Merci !

hj67

  • Abonné Orange Fibre
  • *
  • Messages: 355
  • 67
Reverse Engineering : Nouveau système de génération de l'option 90 DHCP
« Réponse #82 le: 30 septembre 2018 à 13:39:26 »
Oui, pour l'IPv6, c'est l'option 11.
C'est strictement la même valeur pour les 2 (option 90 en IPv4 et option 11 en IPv6).

petrus

  • Expert AS206155
  • Expert
  • *
  • Messages: 1 065
Reverse Engineering : Nouveau système de génération de l'option 90 DHCP
« Réponse #83 le: 30 septembre 2018 à 14:23:49 »
Excellent ! On est donc clairement sur un champ de type "Vendor information" ; je suppose que 01:03:41 reflète la version du firmware de la Livebox ?

Peut-être. Une autre possibilité serait que c'est une valeur en TLV : Type 0x01, Length 0x03, Value 0x41 (ascii A). De là à savoir ce que ça veut dire...