
リフレクティブPEパッカー。
Amber は、位置独立(リフレクティブ)な PE ローダーであり、ネイティブ PE ファイル(EXE、DLL、SYS など)をメモリ内で実行できるようにします。これにより、アンチウイルス、ファイアウォール、IDS、IPS 製品、およびアプリケーションホワイトリスト化対策を回避するためのステルス性の高いメモリ内ペイロード展開が可能になります。Amber によって生成されたリフレクティブペイロードは、リモートサーバーからステージングするか、一般的なシェルコードと同様にメモリ内で直接実行できます。デフォルトでは、生成されたすべてのペイロードは、新しい世代の SGN エンコーダ を使用してエンコードされます。Amber は CRC32_API および IAT_API を使用して、Windows API 関数のアドレスを目立たない方法で解決します。PE ファイルがメモリにロードされて実行された後、リフレクティブペイロードはメモリスキャナーを回避するために消去されます。
プリコンパイル済みのバイナリは リリース から入手できます。
ソースからのビルド
ソースをビルドするための唯一の依存関係は keystone engine です。ライブラリをインストールするにはこちらの手順に従ってください。libkeystone がシステムにインストールされたら、あとは go get するだけです ツ
go install github.com/EgeBalci/amber@latest
Docker インストール
docker pull egee/amber
docker run -it egee/amber
以下の表は amber がサポートするスイッチを示しています。
使用例
amber -f test.exe
amber -e 10 --iat -f test.exe
Docker での使用例
docker run -it -v /tmp/:/tmp/ amber -f /tmp/file.exe
| スイッチ | 型 | 説明 |
|---|---|---|
| -f,--file | string | 入力 PE ファイル。 |
| -o,--out | string | 出力バイナリペイロードファイル名。 |
| -e | int | 生成されたリフレクティブペイロードをエンコードする回数 |
| --iat | bool | CRC API リゾルバブロックの代わりに IAT API リゾルバブロックを使用する |
| -l | int | 難読化の最大バイト数(デフォルト 5) |
| --sys | bool | Raw システムコールを実行する(x64 のみ)。 |
| --scrape | bool | PE からマジックバイトと DOS スタブをスクレイピングする。 |