Shellcode Segfault a metà esecuzione?

0

Nel fare un incarico universitario, stiamo lanciando una shell su un server remoto. Va tutto bene, ho collegato il codice shell e quando eseguo l'hardcode della stringa di attacco esadecimale nel server e salto ad esso, si avvia. (Lo stack è eseguibile, quindi non è questo il problema (anche se è stato per un po '!))

Tuttavia, quando lo passo (compresso usando Perl) sulla connessione TCP, esegue solo parte della strada. Usando gdb, sono stato in grado di determinare che ha configurato socket e connessione, ma segfaulted al punto in cui stava premendo "/ bin / sh" nello stack, in particolare, colpendo un \ x89 (mov ebx, esp).

Qualche idea su cosa sta succedendo qui?

Grazie!

    
posta Richard 11.12.2012 - 00:55
fonte

1 risposta

3

Questa non è una domanda di sicurezza, è un'architettura di basso livello. Ma per iniziare, suggerirei di vedere cosa rappresenta in realtà un errore di segmentazione .

In particolare, si verifica un tentativo di leggere o scrivere su un indirizzo di memoria a cui il processo non accede. L'atto di copiare un registro su un altro non accede alla memoria, quindi non dovrebbe essere in grado di attivare un segfault. Assicurati di eseguire effettivamente l'operazione che pensi di essere. Assicurati che il problema non sia in realtà l'istruzione precedente o successiva . Infine, un'altra opzione è guardare la posizione in memoria di EIP. Probabilmente non è un problema, ma potrebbe essere utile verificare a quale memoria si acceda come un effetto collaterale di ciò che sta accadendo.

    
risposta data 11.12.2012 - 02:59
fonte

Leggi altre domande sui tag