
Blogpost: https://redteamer.tips/introducing-gg-aesy-a-stegocryptor/
警告: コンパイル前に NuGet パッケージを復元し、Visual Studio を再起動する必要があるかもしれません。この問題を解決する方法をご存知の方は、DM でご連絡ください。
最初に、 GG-AESY は常に verbose モードまたは very verbose モードで使用することを強くお勧めします。管理されていないローダーで使用していない場合は、必ず出力ファイルを指定することもお勧めします。
ただし、very verbose モードには注意してください。特に大きなペイロードを隠している場合です。very verbose モードではバイト配列がコンソールに出力されるためです。
とはいえ、この子のマニュアルを見ていきましょう。
_______ _______ ___ _______ _______.____ ____
/ _____| / _____| / \ | ____| / |\ \ / /
| | __ | | __ ______ / ^ \ | |__ | (----` \ \/ /
| | |_ | | | |_ | |______| / /_\ \ | __| \ \ \_ _/
| |__| | | |__| | / _____ \ | |____.----) | | |
\______| \______| /__/ \__\ |_______|_______/ |__|
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 または --encrypt-only: 指定されたペイロード (-p) のみを暗号化します。verbose モードを使用している場合はキー/IV をコンソールに書き出し、outfile (-o) フラグを使用している場合はキー/IV/ペイロードを出力ファイルに書き出し、さらに encrypted file (-ef) フラグを使用している場合はバイトストリームを別のファイルに書き出します。
-d または --decrypt: 復号モードです。オフセットを使用して復号パラメータを指定できます (キーまたはキーと IV を JPEG に隠した場合)。オフセットは offset-key (-ok) または offset-key-hex (-okh) フラグを使用してプログラムに渡します。区切り文字として "-" を使用するか、区切り文字なしで 16 進数をそのまま貼り付けることもできます。どちらでも問題ありません。IV も同様に -oIV および -oIVh フラグを使用します。
あるいは、IV とキーを直接指定することもできます (JPEG に隠されていない場合)。その場合は key (-k) および initialization-vectors (-IV) フラグを使用します。オフセットフラグと同様に、"-" を区切り文字として使用でき、GG-AESY は ASCII とバイト値の両方を受け入れます。
復号するには、暗号化ファイル (-ef) も指定する必要があります。
JPEG にペイロードを隠して復号したい場合は、ペイロードサイズ (-ps) を指定する必要があります。これにより、GG-AESY が誤検出や見逃しなく正しくデータを抽出できます。
-u または --unpack: JPEG から暗号化されていない追加ペイロード (=apu モード) を展開します。
キー/IV が指定されていない場合、ランダムなキー/IV がデータの暗号化に使用されます。すべてのステガノグラフィモードでは、GG-AESY に JPEG 画像 (-i) を渡す必要があります。出力ファイル (-o) を指定して暗号化に関する重要な情報 (キー、IV、ペイロードなど) を保存する場合、すべてのステガノグラフィモードはこのファイルに挿入場所も追加します。
-rk または --random-key-mode: このステガノグラフィモードは、AES-256 キーをランダムな挿入ポイントに隠します。
-ra または --random-all-mode: このステガノグラフィモードは、AES-256 キーと IV の両方をランダムな挿入ポイントに隠します。両方の挿入ポイントは同じになる可能性があります (ランダムな選択プロセスです)。その場合、キーと IV は連続して挿入されます。
-ak または --append-key-mode: このステガノグラフィモードは、AES-256 キーを JPEG の末尾に追加します。
-aa または --append-all-mode: このステガノグラフィモードは、AES-256 キーと IV の両方を JPEG の末尾に追加します。
-ap または --append-payload-mode: このステガノグラフィモードは、暗号化されたペイロードのバイトストリームを JPEG の末尾に追加します。
-rp または --random-payload-mode: このステガノグラフィモードは、暗号化されたペイロードのバイトストリームをランダムな挿入ポイントに注入します。注意: これはペイロードが 65,535 バイト (約 65KB) を超えない場合にのみ機能します。より大きなペイロードを試すと、エラーが発生します。言うまでもなく、このモードは実質的に役に立ちません。
-apu または --append-payload-unencrypted: このステガノグラフィモードは、ペイロードのバイトストリームをそのまま JPEG の末尾に追加します。
免責事項: このツールは初期ベータ版です。まだ実戦でテストされていません。改善点があれば PR で提出するか、バグがあれば Issue を報告してください。ただし、現在の作業量の都合上、私からの積極的な開発は現時点ではできません。
とはいえ、このプロジェクトを放棄するわけではありません。