
Malicious PixelCodeは、実行可能ファイルをピクセルデータにエンコードし、画像や動画の内部に格納する隠密手法を実証するセキュリティ研究プロジェクトです。軽量ローダーがメディアファイルを取得し、元のバイナリを再構築してメモリ内で実行します。このプロジェクトは、型にはまらないデータ配信手法に焦点を当てています。
Malicious PixelCode は、実行ファイルをピクセルデータにエンコードし、画像や動画の中に保存する隠密な手法を実証するセキュリティ研究プロジェクトです。軽量なローダーがメディアファイルを取得し、元のバイナリを再構築してメモリ上で実行します。このプロジェクトは、教育および研究目的に限った、型にはまらないデータ配信と難読化の手法に焦点を当てています。
この研究は Cyber Security News で取り上げられました: https://cybersecuritynews.com/pixelcode-attack/

[!CAUTION] 重要なお知らせ: このプロジェクトは教育・研究・防御的なセキュリティ目的にのみ利用できます。これらの技術を無断で使用すると、法律に違反し、重大な法的結果を招く恐れがあります。
Pixel Code は、バイナリデータを視覚的なピクセルとして表現する研究コンセプトです。各ピクセルは元のファイルの一部をエンコードし、実行可能なバイトを構造化されたカラーマトリクスに変換することで、データの生の形を晒すことなく画像や動画の中に保存・送信・埋め込むことができます。
この手法は、データの難読化、隠密ストレージ、型にはまらないエンコードチャネルの研究のためにしばしば探求されます。ピクセルベースのエンコードにより、研究者はマルチメディアコンテンツ内に情報を隠し、後でデコードアルゴリズムを使って再構築する方法を分析できます。
また、画像や動画共有サービスなどの一般的なプラットフォームを介してエンコードされたデータを転送することのセキュリティ的影響を理解するのにも役立ちます。全体として Pixel Code は、デジタルファイルを対応するデコーダで復元できる視覚的表現に変換することに焦点を当てています。

悪意のある攻撃者は、有害なバイナリやスクリプトを画像やビデオフレームなどの視覚データにエンコードすることで、Pixel Code を悪用する可能性があります。マルウェアをピクセルベースの表現に変換することで、攻撃者はペイロードを無害なマルチメディアコンテンツに見せかけようとするかもしれません。
これらのエンコードされたファイルは、YouTube のような正当なプラットフォームにアップロードされ、信頼できる外観を与え、従来のセキュリティフィルタを回避する可能性があります。
攻撃者の制御下にあるローダーまたはデコーダは、後でビデオを取得し、元の悪意のあるファイルを再構築できます。この悪用シナリオは、型にはまらないデータエンコード技術がどのように新しい攻撃ベクトルを生み出し、既存の検出メカニズムに挑戦するかを浮き彫りにします。
この研究プロセスでは、まずコマンド&コントロール通信を担う C++ ペイロードから始めます。それを EXE にコンパイルした後、Python ベースのツールを使ってバイナリを Pixel Code MP4 に変換します。生成された Pixel Code ビデオは YouTube にアップロードされ、その URL は C++ ローダー内に埋め込まれます。
C++ には Pixel Code を逆変換するために必要なマルチメディアライブラリがなかったため、代わりに Python ステージャーが使用されました。これは EXE にコンパイルされ、Base64 エンコードされた上で、YouTube URL とともにローダーに直接埋め込まれました。
ターゲット環境で実行されると、ローダーは YouTube から Pixel Code MP4 をダウンロードし、埋め込まれた Python ステージャーを使用して元のペイロードを再構築して実行します。最終的に研究環境は BEAR-C2 を通じてコマンド&コントロールを再確立できるようになります。

これは、C++ で書かれたステルス型 Windows リバースシェルペイロードで、コマンド&コントロールサーバーに永続的に接続し、すべての通信にハードコードされた静的キーとランダムな IV を使用した AES-CBC 暗号化を採用し、一意の識別子で認証し、受信したコマンドを cmd.exe または PowerShell("EP" プレフィックス付き)で実行し、ディレクトリ移動をサポートし、長さプレフィックス付きの暗号化チャンクを使用してコマンド出力をリアルタイムでストリーミングし、可視のコンソールウィンドウなしで実行され、障害時には自動的に再接続します。完全な機能を備えた暗号化リモートアクセス型トロイの木馬であり、侵害後の制御用に設計されています。
ペイロードがコンパイルされると、結果の EXE はバイナリデータを Pixel Code に変換するために特別に設計された Python ベースのツールで処理されます。このツールは実行可能ファイルを視覚的な MP4 表現に変換し、バイナリのバイトがビデオフレーム全体のピクセル値として埋め込まれます。
Pixel Code MP4 ファイルの生成後、それは標準のビデオとして YouTube にアップロードされます。エンコードされたバイナリを正当なプラットフォームでホストすることで、外部の信頼されたサービスが型にはまらないエンコード済みデータをどのように扱うかを研究で評価できます。YouTube ビデオの URL は次の段階で使用するために収集されます。
Pixel Code を YouTube 上の場所から取得するために、C++ で書かれたカスタムローダーが準備されます。前のステップで取得したビデオ URL はこのローダーに直接埋め込まれ、実行中に MP4 をダウンロードできるようにします。
C++ には Pixel Code をバイナリ形式にデコードするために必要なマルチメディアライブラリがないため、再構築を処理するために Python ステージャーが使用されます。この Python スクリプトは EXE にコンパイルされ、次に Base64 エンコードされます。エンコードされたステージャーは、YouTube URL とともに C++ ローダー内に直接埋め込まれます。
Stager.py -> Stager.exe -> base64 -> Loader.cpp -> Loader.exe
Python ステージャーはダウンロードした MP4 ビデオをフレームごとに処理し、エンコードされたピクセルデータを抽出して、元の C++ ペイロードをメモリ上で再構築します。
復元されると、ペイロードが実行され、最終的に研究環境で使用される BEAR-C2 サーバーとのコマンド&コントロール通信が再確立されます。
https://github.com/user-attachments/assets/1dcb1570-b116-438e-b826-4ce639a1c13c
これは研究・啓発・教育を目的としています。この技術を違法な目的で使用した場合、私は一切責任を負いません。