
Oculta cosas geniales en imágenes :)
Entrada del blog: https://redteamer.tips/introducing-gg-aesy-a-stegocryptor/
ADVERTENCIA: puede que necesites restaurar los paquetes NuGet y reiniciar Visual Studio antes de compilar. Si alguien sabe cómo puedo deshacerme de este problema, envíame un DM.
Para empezar, recomiendo encarecidamente usar siempre GG-AESY en modo verbose o modo muy verbose, si no lo estás usando en cargadores no administrados, también recomiendo especificar siempre un archivo de salida.
Sin embargo, presta atención al modo muy verbose, especialmente si estás ocultando payloads grandes, ya que el modo muy verbose imprimirá el array de bytes en la consola.
Dicho esto, sumerjámonos en el manual de esta pequeña.
_______ _______ ___ _______ _______.____ ____
/ _____| / _____| / \ | ____| / |\ \ / /
| | __ | | __ ______ / ^ \ | |__ | (----` \ \/ /
| | |_ | | | |_ | |______| / /_\ \ | __| \ \ \_ _/
| |__| | | |__| | / _____ \ | |____.----) | | |
\______| \______| /__/ \__\ |_______|_______/ |__|
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 o --encrypt-only: Solo encriptará un payload dado (-p). Escribirá la clave/IV en la consola si se usa el modo verbose, escribirá la clave/IV/payload en un archivo de salida si se usa la opción de archivo de salida (-o), y finalmente escribirá el flujo de bytes en otro archivo si se usa la opción de archivo encriptado (-ef).
-d o --decrypt: Modo de desencriptación. Puedes especificar los parámetros de desencriptación usando offsets (en caso de que hayas ocultado la clave o la clave y el IV en un JPEG). Los offsets se pasan al programa usando las opciones offset-key (-ok) u offset-key-hex (-okh), puedes usar "-" como separadores o simplemente pegar el hex sin separadores, ambos funcionarán bien. Los IV funcionan de la misma manera usando las opciones -oIV y -oIVh.
Alternativamente, puedes dar el IV y la Clave directamente (en caso de que no estén ocultos en un JPEG), usando las opciones key (-k) e initialization-vectors (-IV). Al igual que con las opciones de offset, "-" se puede usar como separador, GG-AESY acepta tanto valores ASCII como byte.
Para desencriptar, también necesitarás especificar un archivo encriptado (-ef).
Si has ocultado un payload en un JPEG y deseas desencriptarlo, tendrás que especificar el tamaño del payload (-ps) para que GG-AESY extraiga todos los datos correctamente sin falsos positivos/falsos negativos :) .
-u o --unpack: Desempaquetará payloads añadidos sin encriptar (modo =apu) del JPEG.
Si no se proporciona clave/IV, se usarán clave/IV aleatorios para encriptar tus datos. Todos los modos de esteganografía requerirán que pases una imagen JPEG (-i) a GG-AESY. Si has especificado un archivo de salida (-o) para guardar tu información importante sobre la criptografía (como clave, IV, payload), todos los modos de esteganografía también añadirán los lugares de inyección en este archivo.
-rk o --random-key-mode: Este modo de esteganografía ocultará tu clave AES-256 en un punto de inyección aleatorio.
-ra o --random-all-mode: Este modo de esteganografía ocultará tanto tu clave AES-256 como el IV en un punto de inyección aleatorio. Ambos puntos de inyección pueden ser el mismo (es un proceso de selección aleatoria), en ese caso, la clave y el IV se inyectarán uno detrás del otro.
-ak o --append-key-mode: Este modo de esteganografía añadirá la clave AES-256 al final del JPEG.
-aa o --append-all-mode: Este modo de esteganografía añadirá tanto la clave AES-256 como el IV al final del JPEG.
-ap o --append-payload-mode: Este modo de esteganografía añadirá el flujo de bytes del payload encriptado al final del JPEG.
-rp o --random-payload-mode: Este modo de esteganografía inyectará el flujo de bytes del payload encriptado en un punto de inyección aleatorio. PRECAUCIÓN: Esto solo funciona si tu payload no supera los 65,535 bytes, que son aproximadamente 65kB. Si intentas un payload más grande, se te mostrará un error. No hace falta decir que este modo es prácticamente inútil :)
-apu o --append-payload-unencrypted: Este modo de esteganografía añadirá el flujo de bytes del payload tal cual al final del JPEG.
DESCARGO DE RESPONSABILIDAD: Esta herramienta está en BETA TEMPRANA. Aún no ha sido probada en combate, así que por favor envía mejoras mediante PRs o reporta problemas en caso de errores. Sin embargo, debido a mi carga de trabajo actual, no será posible un desarrollo activo de esta herramienta por mi parte en este momento.
Esto no significa que esté abandonando este proyecto :)