Sto giocando un po 'con l'assemblatore e ho deciso di provare come metasploit codifica un carico utile in caratteri maiuscoli Unicode come istruzioni di assemblaggio che devono essere decodificate da sole. Quindi ho scritto un codice shell semplice composto da 10 nops e un ret. L'ho inserito in un file 1.payload.
Sto usando metasploit:
Framework: 4.17.4-dev-4744fb01d9c4234a60c35dc78b9a8710fc19fa01 Console: 4.17.4-dev-4744fb01d9c4234a60c35dc78b9a8710fc19fa01
su Windows 10.
Ho provato a codificare il mio payload in questo modo (da cmd.exe):
msfvenom -a x86 --platform windows -p generic/custom PAYLOADFILE=c:\test.payload -e x86/unicode_upper -o c:/out/encoded.bin
E ottengo questo errore:
Found 1 compatible encoders
Attempting to encode payload with 1 iterations of x86/unicode_upper
x86/unicode_upper failed with An encoding exception occurred.
Error: An encoding exception occurred.
Non ho zero byte nel mio "payload" sono solo istruzioni del 10 nop
e un'istruzione ret
. L'encoder per alphs
funziona bene ma per qualche motivo genera strani caratteri non latini all'inizio dell'output. Qualcuno può aiutarti, lo uso giusto? Come posso codificare il payload del mio assemblatore x86 in istruzioni maiuscole Unicode?