Cercando di sbarcare una shell su un servizio remoto

1

Ecco lo scenario, parte di un esercizio di tipo wargame / CTF. Esiste un programma vulnerabile in esecuzione come servizio sull'host remoto. Ho accesso a una copia del file binario, che ha un overflow dello stack da uno scanf non controllato.

Sono in grado di attivare il codice di overflow ed esecuzione, ma non riesco a capire cosa usare per l'indirizzo di ritorno. Se eseguo il binario sulla mia macchina di prova, posso ottenere con successo una shell solo se conosco all'incirca l'indirizzo del mio shellcode nello stack. Al momento dell'overflow, nessuno dei registri contiene la posizione dello shellcode. Il mio pensiero era che dovessi essere in grado di forzare la forza dell'indirizzo di ritorno, ma questo non ha funzionato né sull'istanza di test (ASLR disabilitato) né sul servizio remoto (stato ASLR sconosciuto).

    
posta Tyler 06.02.2012 - 23:09
fonte

1 risposta

2

Cerca di ottenere il maggior numero di informazioni sulla macchina remota e associarla all'istanza di prova. La macchina remota probabilmente esegue una versione leggermente diversa del sistema operativo, ad esempio una versione o un livello di patch diverso o, a volte, persino un pacchetto di lingue che potrebbe eliminare gli indirizzi. Potrebbe esserci anche una differenza di 32 bit contro 64 bit. Anche l'uso di un indirizzo di ritorno all'interno della propria sezione di codice / dati dell'applicazione può essere d'aiuto.

Se la tua istanza di test corrisponde perfettamente al software di destinazione, se hai dovuto disabilitare manualmente ASLR sull'istanza di test, allora c'è una buona probabilità che sia abilitata sulla destinazione.

Inoltre, prova a utilizzare una slitta NOP di grandi dimensioni (una stringa di istruzioni 0x90 o nessuna operazione) in modo da non dover avere l'esatto indirizzo di memoria. Potresti essere fuori da un certo numero di byte ma fintanto che atterri nella slitta colpisci lo shellcode.

Buona fortuna!

    
risposta data 04.05.2012 - 18:28
fonte

Leggi altre domande sui tag