{Obfuscation} – Dissimuler l’adresse ip d’un serveur

 

Bonjour à tous,

 

J'espère que tout se passe bien par chez vous !
Comme certains d'entre vous, j'ai vu passer cette actualité relatant qu'un certain nombre de spammeurs exploitaient une particularité assez méconnue de la rfc791.
Cette particularité c'est qu'il est possible aujourd'hui de se connecter sur internet a une machine via son adresse ip, mais ... que celle-ci peut être écrite de plusieurs façons !

  • En Octale (chaque chiffre/nombre de l'adresse ipV4 est converti en base 8)
  • En Hexadécimale (chaque chiffre/nombre de l'adresse ipV4 est converti en base 16)
  • En Décimale (D'abord Hexadécimale, puis conversion en décimal)

En gros, si vous avez votre petit serveur sur votre ordinateur, et que vous avez l'habitude de saisir dans votre navigateur : "http://127.0.0.1", il est possible de s'y connecter également avec :

  • Décimale : http://2130706433
  • Hexadécimale : http://0x7f000001
  • Octale : http://0177.0000.0000.0001

A quoi ça sert ?

Pour le commun des mortels, je pense que ça ne sert pas à grand chose, si ce n'est que ça rallonge une information qui est relativement courte.
Mais il en est tout autrement pour les vilains chenapans.
En effet, il s'agit d'un moyen de passer sous les radars d'antispam ou d'antivirus peu évolué (ce n'est pas le cas de la majorité).

Souvent dans mon métier, je suis amené à bosser avec des composants récupérés sur internet.
Avant de faire entrer un composant inconnu chez moi, je vérifie s'il n'est pas de nature dangereuse...
Pour cela, je procède en analysant un peu le code source de ces composants... (Si cela est possible, sinon il y faut passer par des sandbox ... mais ça mériterait l'écriture d'un article dédié traitant de ce sujet).
Parmi les actions que je serais amené à faire dans cette analyse il y a pas exemple la recherche de certains patterns, afin de détecter d'éventuels noms de domaines, des adresses ip, etc ...

Le fait d'exploiter ce genre de format, pourrait être qualifié d'obfuscation.
Il s'agit pour un pirate, de complexifier la lecture d'une information, et ainsi de me compliquer la tâche (à moi et à d'autres) dans la recherche d'éventuelle menace.

 

Un peu de code !

Je vous vois venir bande de mécréants ! Vous souhaitez savoir comment convertir facilement une IP dans l'un de ces formats ! J'ai donc pensé à vous, et je vous ai concocté un petit morceau de Javascript qui fera le job.
Cependant, il s'agit là d'un partage à but ludique, je ne vous invite en aucun cas à truander qui que ce soit.

Comme d'habitude, il vous faudra un navigateur, sur n'importe quelle page de celui-ci ouvrez la console (touche F12), onglet "console", et copiez-collez cette fonction. Validez ensuite par la touche "entrée".

 

ObfuscateHttpIpAddress = (ip) => {
    let ipSplit = ip.split('.'),
        hex = ipSplit.map(e=> '0'.concat((~~e).toString(16)).substr(-2)).join(''),
        oct = ipSplit.map(e=> '000'.concat((~~e).toString(8)).substr(-4)).join('.'),
        dec= parseInt(hex, 16).toString();
        return {
            ip:  'http://'.concat(ip),
            hex: hex.replace(/^/, 'http://0x'),
            dec: dec.replace(/^/, 'http://'),
            oct: oct.replace(/^/, 'http://')
     };
}

Voilà la fonction est chargée !
Toujours dans la console, vous allez pouvoir saisir ceci  :

ObfuscateHttpIpAddress("127.0.0.1");

Remplacez 127.0.0.1 par l'ip de votre choix ! Validez par la touche "entrée".
Et .....

 

Conclusion

J'espère que cet article vous aura intéressé, et que vous aurez pu apprendre, comprendre et vous essayer à l'art de l'obfuscation.
Souvent il est intéressant de comprendre l'attaque pour préparer la défense.
N’hésitez pas en commentaire à me faire part de vos expériences sur le sujet et ou de toutes idées en lien avec celui-ci de ce qu'on pourrait tirer comme avantage d'utiliser ces écritures d'ip.

Bonne semaine à tous !

Partagez ce contenu

Laisser une réponse

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *