Funzioni ROP di Windows 7 mappate su 0x00 ########

1

Attualmente sto lavorando all'apprendimento di Windows Exploitation e sto lavorando su una macchina virtuale Windows 7. Stavo passando alcuni tutorial e mentre hanno funzionato bene su Vista e sotto, non lo faranno su Windows 7 a causa di una nuova restrizione.

La limitazione è che gli indirizzi che potrei usare per ROP sono ora mappati a 0x00 e che contiene un byte NULL. Questo è anche lo stesso con i potenziali gadget come "call esp, jmp esp, etc"

!mona rop

# rop chain generated with mona.py - www.corelan.be
 rop_gadgets = [
   0x0045021d,  # POP EAX # RETN [Eureka Email.exe]
   0x004570a8,  # ptr to &VirtualAlloc() [IAT Eureka Email.exe]
   0x004124d4,  # MOV EAX,DWORD PTR DS:[EAX] # RETN [Eureka Email.exe]
   0x004412d7,  # PUSH EAX # PUSHAD # XOR EAX,EAX # POP ESI # RETN [Eureka Email.exe]
   0x00446d9f,  # POP EBP # RETN [Eureka Email.exe]
   0x00415e82,  # & push esp # ret  [Eureka Email.exe]

Come faccio a ignorare questa nuova restrizione in Windows 7? In Linux so che questo è "ASCII Guard", ma non lo conosco in Windows, né sapevo che era una cosa.

    
posta 0xc0ff33 07.11.2017 - 02:48
fonte

1 risposta

1

A volte non puoi semplicemente ROP se la tua funzione vulnerabile si interrompe su stringhe con terminazione nulla.

Tuttavia, hai ancora altre opzioni:

  • Prova a trovare una condizione di perdita di memoria. Ottieni almeno un indirizzo di ritorno prima che l'ultimo byte null interrompa il payload e costruisca un exploit di seconda fase
  • Potresti scrivere una catena ROP che include ASLR e moduli ri-basati (se usi mona, digli di includere i moduli indipendentemente dalla loro sicurezza: !mona -cm aslr=true,rebase=true e nessun nullo !mona -cp nonull ) e sposta gli offset degli indirizzi di base relativi sui gadget al volo in alcuni tentativi di forza bruta. Potresti essere fortunato e atterrare bene dato che l'entropia dello spazio degli indirizzi a 32 bit è molto ridotta.
risposta data 19.04.2018 - 16:10
fonte

Leggi altre domande sui tag