Overflow del buffer: come viene effettivamente implementato in un ambiente di test della penna?

2

Sfondo:

Quindi, quando si sfrutta una vulnerabilità di Buffer Overflow, l'hacker deve farlo  non solo genera il carico utile (diciamo per creare una shell vincolante), ma imposta anche il buffer danneggiato con il suddetto payload da inviare alla macchina della vittima. (ad esempio un server tcp echo che utilizza una chiamata di funzione BoF vulnerabile in esecuzione su Windows XP OS). E come parte della configurazione del buffer, ci devono essere determinati parametri presi dalla macchina della vittima; come

  • lo scostamento EIP al momento dello schianto
  • la posizione di memoria dell'EIP corrotto (puntato al payload in essere eseguito).

La mia domanda è:

In un ambiente professionale di test delle penne, in che modo il pen tester può accedere ai due parametri precedenti senza avere accesso alla macchina della vittima? Significato senza dover installare un disassemblatore e un debugger nel PC della vittima e analizzare effettivamente il programma nel debugger.

C'è un altro modo per simulare questo attacco senza avere accesso al computer della vittima?

    
posta Rennitbaby 05.04.2018 - 05:52
fonte

1 risposta

3

La maggior parte delle volte dovrai emulare il sistema del bersaglio e sviluppare localmente il tuo exploit. Informazioni su come conoscere il sistema del bersaglio, che ha a che fare con il processo di enumerazione . Ovviamente, a seconda del binario che stai cercando di sfruttare, potrebbe essere possibile ottenere una perdita di informazioni e in questo modo sarai in grado di far funzionare il tuo exploit anche da remoto anche se il tuo sistema è leggermente diverso da quello del target. sistema ( ovviamente se il tuo target usa, ad esempio, linux, dovrai usare anche linux, ma non la versione esatta ).

Ad esempio, in caso di vulnerabilità format string potresti essere in grado di perdere libc da remoto. Ma ci sono anche altri casi, ad esempio se il binario utilizza una funzione di scrittura stringa , come puts ( o printf ecc ... ), potrebbe essere possibile usa quella funzione per individuare l'indirizzo di base di libc da una voce GOT in runtime in modo da poter costruire un exploit a più fasi che ignori anche aslr. Ora su come si può calcolare l'indirizzo di base di libc da una perdita, ci sono molti modi ( si può usare database di libc o un wrapper web di libc-database qui ecc. . ).

    
risposta data 05.04.2018 - 15:32
fonte

Leggi altre domande sui tag