Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive
 

 

Xortool pour analyser le chiffrement XOR

 

xortool.py
A tool to do some xor analysis:

guess the key length (based on count of equal chars)
guess the key (base on knowledge of most frequent char)
Usage
xortool [-h|--help] [OPTIONS] [<filename>]
Options:
-l,--key-length length of the key (integer)
-c,--char most possible char (one char or hex code)
-m,--max-keylen=32 maximum key length to probe (integer)
-x,--hex input is hex-encoded str
-b,--brute-chars brute-force all possible characters
-o,--brute-printable same as -b but will only use printable
characters for keys
Example
# xor is xortool/xortool-xor
tests $ xor -f /bin/ls -s "secret_key" > binary_xored

tests $ xortool binary_xored
The most probable key lengths:
2: 5.0%
5: 8.7%
8: 4.9%
10: 15.4%
12: 4.8%
15: 8.5%
18: 4.8%
20: 15.1%
25: 8.4%
30: 14.9%
Key-length can be 5*n
Most possible char is needed to guess the key!

 

 

 

  

Une question? Posez-la ici

Aide pentest d'applications

# 00 is the most frequent byte in binaries
tests $ xortool binary_xored -l 10 -c 00
...
1 possible key(s) of length 10:
secret_key

# decrypted ciphertexts are placed in ./xortool_out/Number_<key repr>
# ( have no better idea )
tests $ md5sum xortool_out/0_secret_key /bin/ls
29942e290876703169e1b614d0b4340a xortool_out/0_secret_key
29942e290876703169e1b614d0b4340a /bin/ls
The most common use is to pass just the encrypted file and the most frequent character (usually 00 for binaries and 20 for text files) - length will be automatically chosen:

tests $ xortool tool_xored -c 20
The most probable key lengths:
2: 5.6%
5: 7.8%
8: 6.0%
10: 11.7%
12: 5.6%
15: 7.6%
20: 19.8%
25: 7.8%
28: 5.7%
30: 11.4%
Key-length can be 5*n
1 possible key(s) of length 20:
an0ther s3cret \xdd key

 

 

Une question? Posez-la ici

Aide pentest d'applications


Here, the key is longer then default 32 limit:

tests $ xortool ls_xored -c 00 -m 64
The most probable key lengths:
3: 3.3%
6: 3.3%
9: 3.3%
11: 7.0%
22: 6.9%
24: 3.3%
27: 3.2%
33: 18.4%
44: 6.8%
55: 6.7%
Key-length can be 3*n
1 possible key(s) of length 33:
really long s3cr3t k3y... PADDING
So, if automated decryption fails, you can calibrate:

(-m) max length to try longer keys
(-l) selected length to see some interesting keys
(-c) the most frequent char to produce right plaintext
Author: hellman ( This email address is being protected from spambots. You need JavaScript enabled to view it. )

License: MIT License (opensource.org/licenses/MIT)

 

 

  

Une question? Posez-la ici

Aide pentest d'applications

 

 

 

Renseigner le résultat dans le champ ci-dessous (Pour concaténation et rapport à la fin)

Analyser, se poser des questions sur le résultat. Noter aussi les remarques sur le résultats s'il semble étrange

et passer à la phase suivante