Gli exploit SEH sono validi contro Linux?

1

Stavo provando a scrivere un exploit per Crossfire (un gioco su Linux che ha una vulnerabilità BOF) da praticare per un CTF.

Durante la riproduzione del gioco, ho scoperto che se aumenti la dimensione del buffer che invii oltre il valore costante, il gioco nel debugger si comporterà in un modo simile al comportamento delle applicazioni di Windows quando il buffer scrive su SEH. (EIP non viene sovrascritto, i valori di registro sono corrotti e gli arresti di esecuzione)

La soluzione a questo, secondo il CTF, è usare un piccolo buffer puntato da ESP per saltare al resto dello shellcode che risiede all'inizio del buffer.

Tuttavia, questo mi ha portato a una domanda: Linux ha un modo simile di gestire le eccezioni che è sfruttabile?

P.S. Quando ho provato a google "SEH con Linux", le pagine che ho ricevuto menzionavano Linux come macchina attaccante, non la vittima.

    
posta HSN 22.03.2016 - 08:39
fonte

2 risposte

3

No. I Structured Exception Handler (SEH) sono una cosa solo per Windows, quindi Linux non può essere sfruttato allo stesso modo.

    
risposta data 22.03.2016 - 09:09
fonte
1

Ci sono molte istanze di exploit di gestori di eccezioni in Linux:

Gestore di eccezioni in virgola mobile nel kernel linux:

link

questo è un gestore di eccezioni che implica il ritorno a usermode dal kernel:

link

link

etc

PS: Sospetto che il tuo contesto sia basato su Linux. Windows ha usato il nome "SEH", ma alla base di tutto ci sono ancora eccezioni attivate dall'hardware, come elencato qui:

link

E Linux ha il suo modo di gestire l'eccezione - in modalità utente e modalità kernel. E poiché tutti questi sono implementati come puntatori di funzioni, possono sempre essere sovrascritti e sfruttati .

    
risposta data 21.05.2018 - 19:04
fonte

Leggi altre domande sui tag