voilà
j'ai un fichier dans un format binaire générée par une application X. ce fichier contient plusieurs informations. Qd on ouvre le fichier au notepad, la plupart des infos sont en clair, mais on voit bien que certains passages sont encodés ou plus vraisemblablement cryptés.
Or la personne qui m'a filé ce fichier (c'est un backup en fait) m'a dit que l'application qui a généré ce backup lui a demandé un mot de passe avant de créer le fichier.
or son application au moment de restaurer ce fichier de backup lui demande le mot de passe en question. si le mot de passe n'est pas bon, l'appli ne restaure pas le backup.
mon intuition est que l'appli a encrypté un valeur précise attendue dans le fichier de backup, elle cherche à décrypter le contenu, si elle retrouve la valeur précise attendue dans la data décryptée, alors elle considère que c'est bon et restore au passage tout le backup ainsi decrypté.
j'ai le mot de passe (12345), j'ai la data, j'ai une idée du format de sortie décryptée ==> à tous les coups il y a de l'ascii dedans, et je suis meme assez sur que "Raj" devrait se trouver dans le resultat decrypté (c'est un prenom)...
il reste à trouver l'algo d'encryption et l'algo de rérivation de clé à partir du password.
je me dis que ca doit pouvoir s'imaginer de tenter tous les cypher de openssl avec le fichier et le password, voir si derrière on voit de l'ascii sortir ou pas. N'étant pas tres à l'aise avec sed, j'ai fait un petit script ruby qui filtre stdin pour m'attraper ce qui ressemble à un mot ([A-Za-z]+).
au final ca donne :
j'ai essayé avec tous les cyphers par défaut, mais plusieurs points me laissent supposer que le programmeur a probablement utilisé des3 ou AES.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62 openssl.exe enc -d -aes-128-cbc -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -aes-128-cfb8 -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -aes-192-cbc -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -aes-192-cfb8 -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -aes-256-cbc -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -aes-256-cfb8 -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -aes128 -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -bf -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -bf-ecb -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -cast -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -cast5-cfb -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -des -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -des-cfb1 -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -des-ede -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -des-ede-ofb -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -des-ede3-cfb -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -des-ede3-ofb -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -desx -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -rc2-40-cbc -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -rc2-cfb -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -rc4 -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -aes-128-cfb -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -aes-128-ecb -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -aes-192-cfb -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -aes-192-ecb -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -aes-256-cfb -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -aes-256-ecb -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -aes192 -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -bf-cbc -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -bf-ofb -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -cast-cbc -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -cast5-ecb -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -des-cbc -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -des-cfb8 -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -des-ede-cbc -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -des-ede3 -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -des-ede3-cfb1 -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -des-ofb -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -desx-cbc -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -rc2-64-cbc -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -rc2-ecb -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -rc4-40 -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -aes-128-cfb1 -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -aes-128-ofb -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -aes-192-cfb1 -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -aes-192-ofb -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -aes-256-cfb1 -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -aes-256-ofb -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -aes256 -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -bf-cfb -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -blowfish -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -cast5-cbc -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -cast5-ofb -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -des-cfb -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -des-ecb -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -des-ede-cfb -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -des-ede3-cbc -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -des-ede3-cfb8 -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -des3 -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -rc2 -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -rc2-cbc -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb openssl.exe enc -d -rc2-ofb -in decodeme.crypt -pass pass:13245 -nosalt | ./countWord.rb
je précise que j'ai essayé avec et sans salt au cas où.
mais bon je n'ai que du bruit avec cette approche, ca ne suffit pas.
y'a-t'il un moyen d'utiliser le parametre -pass autrement (pour lui mettre un autre algo de dérivation de clé à partir du pass peut-etre) ?
qqn a une idée là dessus ?
Partager