
Cachez des trucs sympas dans des images :)
Blogpost: https://redteamer.tips/introducing-gg-aesy-a-stegocryptor/
ATTENTION : il peut être nécessaire de restaurer les packages NuGet et de redémarrer Visual Studio avant la compilation. Si quelqu'un sait comment résoudre ce problème, envoyez-moi un DM.
Pour commencer, je recommande vivement d'utiliser GG-AESY toujours en mode verbeux ou très verbeux. Si vous ne l'utilisez pas dans des chargeurs non gérés, je recommande également de toujours spécifier un fichier de sortie.
Faites attention avec le mode très verbeux, surtout si vous cachez de gros payloads. Le mode très verbeux affichera le tableau d'octets dans la console.
Cela dit, plongeons dans le manuel de ce bébé.
_______ _______ ___ _______ _______.____ ____
/ _____| / _____| / \ | ____| / |\ \ / /
| | __ | | __ ______ / ^ \ | |__ | (----` \ \/ /
| | |_ | | | |_ | |______| / /_\ \ | __| \ \ \_ _/
| |__| | | |__| | / _____ \ | |____.----) | | |
\______| \______| /__/ \__\ |_______|_______/ |__|
V1.0.0 by twitter.com/Jean_Maes_1994
Encryptor and (optional) stegano
Usage:
-h, -?, --help Show Help
-e, --encrypt-only Only encrypts given payload
-d, --decrypt decryption mode
--ps, --payload-size=VALUE
only needed if extracting payload from image for
decryption
--ef, --encrypted-file=VALUE
ENCRYPTION: The outfile for encrypted data
DECRYPTION:The inputfile needed to decrypt the
payload.
-p, --payload=VALUE The path to the payload you want to encrypt
-o, --outfile=VALUE The path to the outfile where all important data
will be written to (key,iv and encrypted
payload)
-i, --image=VALUE The image file to hide the key and/or IV in,
currently only supports JPEG (JPG) format!
--ok, --offset-key=VALUE
The offset to search for the key in image (in
decimal)
--okh, --offset-key-hex=VALUE
The offset to search for the key in image (in
hex)
--oIV, --offset-IV=VALUE
The offset to search for the IV in image (in
decimal)
--oIVh, --offset-IV-hex=VALUE
The offset to search for the IV in image (in
hex)
--op, --offset-payload=VALUE
The offset to search for the payload in image
(in decimal)
--oph, --offset-payload-hex=VALUE
The offset to search for the payload in image
(in hex)
-v, --verbose write all the good stuff to console,recommended
you actually always use this.
--vv, --very-verbose prints encrypted payload array to console
-k, --key=VALUE in case you want to use your own key value!
--IV, --initialization-vector=VALUE
in case you want to use your own IV
--rk, --random-key-mode
will hide your key in a random insertion point
in the provided image, without breaking said
image. will print the offset to console
--ra, --random-all-mode
will hide both Key and IV in a random insertion
point of the image.
--ak, --append-key-mode
will hide the key at the end of the image file
--aa, --append-all-mode
will hide the key and the IV at the end of the
image file.
--ap, --append-payload-mode
will hide the payload at the end of the image
file
--rp, --random-payload-mode
will hide the payload at a random insertion
point.
--apu, --append-payload-unencrypted
appends your payload without crypto, useful for
very quick and dirty data exfil.-e ou --encrypt-only : Chiffre uniquement un payload donné (-p). Écrira la clé/IV dans la console si le mode verbeux est utilisé, écrira la clé/IV/payload dans un fichier de sortie si le flag outfile (-o) est utilisé, et enfin écrira le flux d'octets dans un autre fichier si le flag encrypted file (-ef) est utilisé.
-d ou --decrypt : Mode déchiffrement. Vous pouvez spécifier les paramètres de déchiffrement en utilisant des offsets (si vous avez caché la clé ou la clé et l'IV dans un JPEG). Les offsets sont passés au programme via les flags offset-key (-ok) ou offset-key-hex (-okh). Vous pouvez utiliser "-" comme séparateur ou simplement coller l'hex sans séparateur, les deux fonctionneront. Les IV fonctionnent de la même manière avec les flags -oIV et -oIVh.
Vous pouvez aussi donner l'IV et la clé directement (s'ils ne sont pas cachés dans un JPEG) via les flags key (-k) et initialization-vector (-IV). Comme pour les offsets, "-" peut être utilisé comme séparateur ; GG-AESY accepte à la fois les valeurs ASCII et les valeurs en octets.
Pour déchiffrer, vous devez aussi spécifier un fichier chiffré (-ef).
Si vous avez caché un payload dans un JPEG et souhaitez le déchiffrer, vous devrez spécifier la taille du payload (-ps) afin que GG-AESY extraie correctement toutes les données sans faux positifs/faux négatifs :) .
-u ou --unpack : Déballe les payloads ajoutés non chiffrés (mode -apu) du JPEG.
Si aucune clé/IV n'est fournie, des clés/IV aléatoires seront utilisés pour chiffrer vos données. Tous les modes de stéganographie nécessitent de passer une image JPEG (-i) à GG-AESY. Si vous avez spécifié un fichier de sortie (-o) pour sauvegarder les informations importantes sur le chiffrement (comme la clé, l'IV, le payload), tous les modes de stéganographie ajouteront également les emplacements d'injection dans ce fichier.
-rk ou --random-key-mode : Ce mode de stéganographie cachera votre clé AES-256 à un point d'injection aléatoire.
-ra ou --random-all-mode : Ce mode de stéganographie cachera à la fois votre clé AES-256 et votre IV à un point d'injection aléatoire. Les deux points d'injection peuvent être identiques (il s'agit d'un processus de sélection aléatoire) ; dans ce cas, la clé et l'IV seront injectés l'un après l'autre.
-ak ou --append-key-mode : Ce mode de stéganographie ajoutera la clé AES-256 à la fin du JPEG.
-aa ou --append-all-mode : Ce mode de stéganographie ajoutera à la fois la clé AES-256 et l'IV à la fin du JPEG.
-ap ou --append-payload-mode : Ce mode de stéganographie ajoutera le flux d'octets du payload chiffré à la fin du JPEG.
-rp ou --random-payload-mode : Ce mode de stéganographie injectera le flux d'octets du payload chiffré à un point d'injection aléatoire. ATTENTION : Cela ne fonctionne que si votre payload ne dépasse pas 65 535 octets, soit environ 65 Ko. Si vous essayez un payload plus volumineux, une erreur vous sera renvoyée. Inutile de dire que ce mode est pratiquement inutile :)
-apu ou --append-payload-unencrypted : Ce mode de stéganographie ajoutera le flux d'octets du payload tel quel à la fin du JPEG.
AVERTISSEMENT : Cet outil est en BÊTA PRÉCOCE. Il n'a pas encore été testé en conditions réelles. Merci de soumettre des améliorations via des PRs ou de signaler des bugs en ouvrant des issues. Cependant, en raison de ma charge de travail actuelle, un développement actif de cet outil de ma part ne sera pas possible pour le moment.
Cela ne signifie pas que j'abandonne ce projet cependant :)