Estoy jugando un poco con el ensamblador y decidí probar cómo las metasploit codifican una carga útil en caracteres en mayúscula de Unicode como instrucciones de ensamblaje que deben decodificarse por sí mismas. Así que he escrito código de shell simple que consta de 10 nops y una ret. Lo coloqué en un archivo 1.payload.
Estoy usando metasploit:
: 4.17.4-dev-4744fb01d9c4234a60c35dc78b9a8710fc19fa01 Consola: 4.17.4-dev-4744fb01d9c4234a60c35dc78b9a8710fc19fa01
en Windows 10.
Intenté codificar mi carga útil de esta manera (desde cmd.exe):
msfvenom -a x86 --platform windows -p generic/custom PAYLOADFILE=c:\test.payload -e x86/unicode_upper -o c:/out/encoded.bin
Y me sale este error:
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.
No tengo ningún cero bytes en mi "carga útil", es solo un 10% de instrucciones nop
y una instrucción ret
. El codificador para alphs
funciona bien, pero por alguna razón genera caracteres extraños no latinos al comienzo de la salida. ¿Puede alguien ayudar, lo uso bien? ¿Cómo puedo codificar mi carga útil del ensamblador x86 en las instrucciones en mayúsculas de Unicode?