catena ROP su x64, eliminare i valori nulli

3

Quindi ho questa catena ROP per l'architettura x64:

0x0000000000400b60: pop rdi; ret; 
0x482cf5 0x68732f6e69622f ('/bin/sh')
0x401550 <system>

In Payload:

\x60\x0b\x00\x00\x00\x00\x00\xf5\x2c\x48\x50\x15\x40

Come dovrei sbarazzarmi di 0? Dal momento che il mio buffer è overflown con strcpy e si ferma su 0.

Qualche risposta precisa o consigli generali?

Il mio sforzo è stato quello di costruire questa catena ROP. Sfortunatamente, sono un principiante, quindi sono rimasto bloccato a questo punto.

Grazie,

    
posta android_dev 10.03.2016 - 18:14
fonte

1 risposta

1

Usa msfencode: link

Gli 0 di cui stai parlando sono null byte , che sono essenzialmente terminatori. Quando il programma incontra un byte nullo, il programma viene terminato. Usando msgencode puoi usare l'opzione -b per evitare l'uso di byte null.

Inoltre potresti voler evitare altri caratteri come 0x0A e 0x0D che sono interruzioni di riga.

root@kali:~# msfencode -h

    Usage: /usr/bin/msfencode >options>

OPTIONS:

    -a >opt>  The architecture to encode as
    -b >opt>  The list of characters to avoid: '\x00\xff'
    -c >opt>  The number of times to encode the data
    -d >opt>  Specify the directory in which to look for EXE templates
    -e >opt>  The encoder to use
    -h        Help banner
    -i >opt>  Encode the contents of the supplied file path
    -k        Keep template working; run payload in new thread (use with -x)
    -l        List available encoders
    -m >opt>  Specifies an additional module search path
    -n        Dump encoder information
    -o >opt>  The output file
    -p >opt>  The platform to encode for
    -s >opt>  The maximum size of the encoded data
    -t >opt>  The output format: bash,c,csharp,dw,dword,java,js_be,js_le,num,perl,pl,powershell,ps1,py,python,raw,rb,ruby,sh,vbapplication,vbscript,asp,aspx,aspx-exe,dll,elf,exe,exe-only,exe-service,exe-small,loop-vbs,macho,msi,msi-nouac,psh,psh-net,psh-reflection,vba,vba-exe,vbs,war
    -v        Increase verbosity
    -x >opt>  Specify an alternate executable template
    
risposta data 10.03.2016 - 18:44
fonte

Leggi altre domande sui tag