19/11/2008

Obfuscation IPv4

  • Qu'est-ce que l'Obfuscation d'IP
  • Mise en Oeuvre
  • Code Source
Qu'est-ce que l'Obfuscation d'IP. Et bien la manière la plus simple de répondre à une question, et d'y répondre clairement. L'Obfuscation d'IP est une technique, ou plutôt, une subtilité de codage permettant de rendre invisible ce qui est normalement visible et intuitif.

Cet article va ébaucher de la manière de chiffrer une IPv4 en Héxadécimale ainsi qu'en Octale et en Dword. C'est une technique enfantine à entreprendre, seule quelques notions sont nécéssaire à sa mise en oeuvre, mais il n'y a rien de très compliqué au final...

Pour vous faire une idées de cette technique, essayer ces trois URL, et vous verrez par vous-même.

http://www.google.com/
http://64.233.161.104/
http://1089053032/

Pour les explications suivantes, nous allons nous basé sur ceci.

[+] Soit l'IP : 209.85.135.103
[+] IP Décomposé : '209' & '85' & '135' & '103'


.::Héxadécimale::.

La transformation d'une IP sous forme Héxadécimale est assez simple. Il suffit simplement de se dire que l'IP n'est rien d'autre en définitive qu'une concaténation de paquet de chiffre, lié par un point, afin de pouvoir agir mathématiquement sur ces chiffres. Vous allez comprendre...

.:: Chiffrage IP ::.

'209' -> Transformation Héxadécimale -> 0xD1
'85' -> Transformation Héxadécimale -> 0x55
'135' -> Transformation Héxadécimale -> 0x87
'103' -> Transformation Héxadécimale -> 0x67

Résultat : 0xD1.0x55.0x87.0x67




.::Octale::.

La transformation d'une IP sous forme Octale est également enfantin. Seulement au lieu d'établir une transformation Héxadécimale, nous allons mettre en oeuvre une transformation Octale (Numération en Base 8 utilisant les Chiffres de 0 à 7).

'209' -> Transformation Octale -> 321
'85' -> Transformation Octale -> 125
'135' -> Transformation Octale -> 207
'103' -> Transformation Octale -> 147

Résultat : 0000321.0000125.0000207.0000147

On rajoute des zéro afin que le nombre possède une longueur de 7 chiffres consécutif.




.::Dword::.

La transformation d'une IP sous forme Dword (Double Mot) est également enfantin. Seulement au lieu d'établir une transformation Héxadécimale ou Octale, nous allons mettre en oeuvre une transformation Dword. C'est un système de codage prisé par Intel et codé sur 4 Octet.

Ici, il suffira simplement de respecter une formule mathématique simple, qui est celle-ci.

(A * 256^3) + (B * 256^2) + (C * 256) + D

Où : A = '209' & B = '85' & C = '135' & D = '103'
Donc : (209 * 256^3) + (85 * 256^2) + (135 * 256) + 103

Résultat : 3512043367


Il s'agit ici d'une technique simple, et facile à "casser", mais cela permet quelques fois de Bypasser certaines restrictions. À vous de trouver de quelles restrictions il s'agit...

J'ai programmé un Script en Python permettant d'automatiser les Calculs.

#Rentrez une IP
IP = "209.85.135.103"

#Traitement de l'IP
IP = IP.split('.')
A = int(IP[0])
B = int(IP[1])
C = int(IP[2])
D = int(IP[3])


#Calcul Dword
Dword_IP = (A * 256**3) + (B * 256**2) + (C * 256) + D

#Calcul Octal
OA = oct(A)
OB = oct(B)
OC = oct(C)
OD = oct(D)
IA = ''
IB = ''
IC = ''
ID = ''


#Rajout des Zéro
Tablo = [OA, OB, OC, OD]
Tablo_End = [IA, IB, IC, ID]
i = 0
while i < len(Tablo):
Nbr = 7 - len(Tablo[i])
Tablo_End[i] = ('0' * Nbr) + Tablo[i]
i += 1

Octal_IP = Tablo_End[0]+'.'+Tablo_End[1]+'.'+Tablo_End[2]+'.'+Tablo_End[3]

#Calcul Héxadécimale
Hexa_IP = hex(A)+'.'+hex(B)+'.'+hex(C)+'.'+hex(D)

print "IP Hexadecimale : ", Hexa_IP
print "IP Octale : ", Octal_IP
print "IP Dword : ", Dword_IP

Aucun commentaire: