Crypto CTF Workflow
Tip
Apprenez et pratiquez le hacking AWS :
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP :HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d’abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.
Liste de contrôle de triage
- Identifiez ce que vous avez : encoding vs encryption vs hash vs signature vs MAC.
- Déterminez ce qui est contrôlé : plaintext/ciphertext, IV/nonce, key, oracle (padding/error/timing), partial leakage.
- Classez : symmetric (AES/CTR/GCM), public-key (RSA/ECC), hash/MAC (SHA/MD5/HMAC), classical (Vigenere/XOR).
- Appliquez d’abord les vérifications à plus haute probabilité : décoder les couches, known-plaintext XOR, réutilisation de nonce, mauvaise utilisation du mode, comportement de l’oracle.
- Montez en complexité uniquement si nécessaire : lattices (LLL/Coppersmith), SMT/Z3, side-channels.
Ressources en ligne & utilitaires
Ceux-ci sont utiles quand la tâche est l’identification et le pelage des couches, ou quand vous avez besoin d’une confirmation rapide d’une hypothèse.
Hash lookups
- Google the hash (surprisingly effective).
- https://crackstation.net/
- https://md5decrypt.net/
- https://hashes.org/search.php
- https://www.onlinehashcrack.com/
- https://gpuhash.me/
- http://hashtoolkit.com/reverse-hash
Aides à l’identification
- CyberChef (magic, decode, convert): https://gchq.github.io/CyberChef/
- dCode (ciphers/encodings playground): https://www.dcode.fr/tools-list
- Boxentriq (substitution solvers): https://www.boxentriq.com/code-breaking
Plateformes de pratique / références
- CryptoHack (hands-on crypto challenges): https://cryptohack.org/
- Cryptopals (classic modern crypto pitfalls): https://cryptopals.com/
Décodage automatisé
- Ciphey: https://github.com/Ciphey/Ciphey
- python-codext (tries many bases/encodings): https://github.com/dhondta/python-codext
Encodages & chiffrements classiques
Technique
Beaucoup de challenges crypto en CTF sont des transformations en couches : base encoding + simple substitution + compression. L’objectif est d’identifier les couches et de les enlever en toute sécurité.
Encodages : tester de nombreuses bases
Si vous suspectez un encodage en couches (base64 → base32 → …), essayez :
- CyberChef “Magic”
codext(python-codext):codext <string>
Indicateurs courants :
- Base64:
A-Za-z0-9+/=(padding=is common) - Base32:
A-Z2-7=(often lots of=padding) - Ascii85/Base85: ponctuation dense ; parfois encadré par
<~ ~>
Substitution / monoalphabetic
- Boxentriq cryptogram solver: https://www.boxentriq.com/code-breaking/cryptogram
- quipqiup: https://quipqiup.com/
Caesar / ROT / Atbash
- Nayuki auto breaker: https://www.nayuki.io/page/automatic-caesar-cipher-breaker-javascript
- Atbash: http://rumkin.com/tools/cipher/atbash.php
Vigenère
Bacon cipher
Often appears as groups of 5 bits or 5 letters:
00111 01101 01010 00000 ...
AABBB ABBAB ABABA AAAAA ...
Morse
.... --- .-.. -.-. .- .-. .- -.-. --- .-.. .-
Runes
Les runes sont fréquemment des alphabets de substitution ; cherchez “futhark cipher” et essayez des tables de correspondance.
Compression dans les défis
Technique
La compression apparaît constamment comme une couche supplémentaire (zlib/deflate/gzip/xz/zstd), parfois emboîtée. Si la sortie se parse presque mais ressemble à des données illisibles, suspectez la compression.
Identification rapide
file <blob>- Cherchez les octets magiques :
- gzip:
1f 8b - zlib: often
78 01/9c/da - zip:
50 4b 03 04 - bzip2:
42 5a 68(BZh) - xz:
fd 37 7a 58 5a 00 - zstd:
28 b5 2f fd
Raw DEFLATE
CyberChef propose Raw Deflate/Raw Inflate, souvent le chemin le plus rapide lorsque le blob semble compressé mais que zlib échoue.
CLI utiles
python3 - <<'PY'
import sys, zlib
data = sys.stdin.buffer.read()
for wbits in [zlib.MAX_WBITS, -zlib.MAX_WBITS]:
try:
print(zlib.decompress(data, wbits=wbits)[:200])
except Exception:
pass
PY
Constructions cryptographiques courantes pour CTF
Technique
Celles-ci apparaissent fréquemment parce qu’il s’agit d’erreurs réalistes de développeurs ou de bibliothèques courantes mal utilisées. L’objectif est généralement la reconnaissance et l’application d’un flux de travail connu d’extraction ou de reconstruction.
Fernet
Indice typique : deux chaînes Base64 (token + key).
- Décodeur/notes: https://asecuritysite.com/encryption/ferdecode
- En Python:
from cryptography.fernet import Fernet
Shamir Secret Sharing
Si vous voyez plusieurs shares et qu’un seuil t est mentionné, il s’agit probablement de Shamir.
- Reconstructeur en ligne (pratique pour les CTFs): http://christian.gen.co/secrets/
OpenSSL salted formats
Les CTFs fournissent parfois des sorties openssl enc (l’en-tête commence souvent par Salted__).
Bruteforce helpers:
General toolset
- RsaCtfTool: https://github.com/Ganapati/RsaCtfTool
- featherduster: https://github.com/nccgroup/featherduster
- cryptovenom: https://github.com/lockedbyte/cryptovenom
Configuration locale recommandée
Stack pratique pour CTF:
- Python +
pycryptodomepour les primitives symétriques et le prototypage rapide - SageMath pour l’arithmétique modulaire, CRT, les lattices, et le travail RSA/ECC
- Z3 pour les challenges basés sur des contraintes (lorsque la crypto se réduit à des contraintes)
Packages Python suggérés:
pip install pycryptodome gmpy2 sympy pwntools z3-solver
Tip
Apprenez et pratiquez le hacking AWS :
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP :HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d’abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.
HackTricks

