
Altera aleatoriamente arquivos PE Win32/64 para upload 'mais seguro' para sites de malware e sandbox.
Já teve aquela sensação não tão segura de enviar seus binários de malware para o VirusTotal ou outros sites de AV porque é possível consultar binários por hashes? (Exemplo: https://github.com/mubix/vt-notify)
Sinta-se um pouco mais seguro com o Recomposer!*
O Recomposer pegará seu binário e aleatoriamente fará o seguinte:
A propósito, seu arquivo ainda será executado, então envie à vontade!*
Suporta arquivos PE win32/64!!
Dois modos:
Testado criando 11200 amostras a partir de um binário. Resultados:
./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
Você pode ver este aviso:
[!] Warning, .text section hash is not changed!
[!] No caves available for nop injection.
O que significa que o hash da seção .text será o mesmo do arquivo original e poderá ser pesquisado (na web) assim que o Google indexar os resultados do VT (se você enviar o arquivo, é claro). Se isso acontecer, a codificação upx do arquivo recomposto deve resolver esse problema (a menos que o arquivo já esteja codificado com upx).
Após a conclusão do recompositor, seu arquivo estará no diretório updatedfile. Sinta-se à vontade para enviá-lo para o seu serviço favorito de sandbox de malware!
Um Editor PE simples:
./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':
[...]
Basta seguir o menu e seus resultados estarão no diretório updatedfile como change.filename.exe ou qualquer outro nome de saída que você escolheu ao usar a flag -o.
Se você está confuso sobre onde estão seus arquivos, basta olhar o log_recomposer.txt para localização e hashes dos arquivos alterados:
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
*O Recomposer não impede que o malware notifique o proprietário do malware sobre seu binário sendo executado fora de um ambiente esperado.**
**Ou seja: Seu ambiente.***
***Mas se você não se importa, vá em frente!***