悪意のあるバイナリをVirusTotalや他のAVサイトにアップロードする際、ハッシュでバイナリを検索できるため(例:https://github.com/mubix/vt-notify)、不安な気持ちになったことはありませんか?
Recomposerを使えば、もう少し安心できます!*
Recomposerは、あなたのバイナリに対してランダムに以下の処理を行います。
ところで、ファイルは引き続き実行可能なので、安心してアップロードしてください!*
win32/64 PEファイルをサポート!!
2つのモード:
1つのバイナリから11200サンプルを作成してテスト。結果:
./recomposer.py -f live.sysinternals.com/Tcpview.exe -a
Old file name: live.sysinternals.com/Tcpview.exe
New file name: zYmycO4NO2LYW.exe
[*] Checking if binary is supported
[*] Gathering file info
1 Section: .text | SectionFlags: 0x60000020
2 Section: .rdata | SectionFlags: 0x40000040
3 Section: .data | SectionFlags: 0xc0000040
4 Section: .rsrc | SectionFlags: 0x40000040
[*] Changing Section .text Name
[*] Changing Section .rdata Name
[*] Changing Section .data Flags
[*] Changing Section .data Name
[*] Changing Section .rsrc Name
Updated Binary:
updatedfile/zYmycO4NO2LYW.exe
[*] Checking if binary is supported
[*] Gathering file info
1 Section: .mhz | SectionFlags: 0x60000020
2 Section: .p1k | SectionFlags: 0x40000040
3 Section: .FSr0U | SectionFlags: 0xd0000443
4 Section: .q2X | SectionFlags: 0x40000040
Writing to log_recomposer.txt
次のような警告が表示される場合があります:
[!] Warning, .text section hash is not changed!
[!] No caves available for nop injection.
つまり、.textセクションのハッシュは元のファイルと同じになり、ファイルをアップロードすると、GoogleがVTの結果をインデックス化した後に(Web上で)検索可能になります。その場合は、Recomposerで処理したファイルをUPXエンコードすれば問題が解決するはずです(ファイルが既にUPXエンコードされていない場合)。
Recomposerの完了後、ファイルはupdatedfileディレクトリに格納されます。お気に入りのマルウェアサンドボックスサービスにアップロードしてください!
シンプルなPEエディター:
./recomposer.py -f live.sysinternals.com/Tcpview.exe -m
[*] Checking if binary is supported
[*] Gathering file info
[?] What sections would you like to change:
1 Section: .text | SectionFlags: 0x60000020
2 Section: .rdata | SectionFlags: 0x40000040
3 Section: .data | SectionFlags: 0xc0000040
4 Section: .rsrc | SectionFlags: 0x40000040
Section number:1
[-] You picked the .text section.
[?] Would you like to (A) change the section name or (B) the section flags? b
[-] You picked: b
=========================
[*] Current attributes:
.text | 0x60000020
[-] IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_EXECUTE
[-] IMAGE_SCN_CNT_CODE
=========================
[*] Commands 'zero' out the flags, 'help', 'write', or ('exit', 'quit', 'q', 'done')
[*] Use 'write' to commit your changes or 'clear' to start over.
[?] Enter an attribute to add or type 'help' or 'exit':
[...]
メニューに従うだけで、結果はupdatedfileディレクトリに、change.filename.exeまたは-oフラグで指定した出力名で保存されます。
ファイルの場所がわからない場合は、log_recomposer.txtを確認してください。変更されたファイルの場所とハッシュが記録されています:
filename|filename_hash|changedfile|changedfile_hash
psinfo.exe|ae1554f2c1b1454a91c5610747603824|updatedfile/8dV5.exe|791ff4d4b2010accebc718afda58f83a
psexec.exe|d0df366711c8b296680002840336b6fd|updatedfile/udi6ieIVFi.exe|6fafa108d697a46a271a918436e60cd5
live.sysinternals.com/Tcpview.exe|9aa5a93712c584acdcaa7eef9d25ef4d|updatedfile/zYmycO4NO2LYW.exe|fd984b833443c457668a480a37cf9904
live.sysinternals.com/Tcpview.exe|9aa5a93712c584acdcaa7eef9d25ef4d|updatedfile/change.Tcpview.exe|c43eeec089a3e4f9e6fd0218a27ca4c2
*Recomposerは、予期しない環境でバイナリが実行されたことをマルウェアの所有者に通知することを防ぐものではありません。**
**つまり、あなたの環境のことです。***
***でも気にしないなら、どうぞ!***