Come si fa in remoto BOF senza conoscere il codice sorgente? [chiuso]

1

Ho due domande.

Nota che ho una comprensione molto basilare di come funziona BOF, ma non conosco il meccanismo esatto o qualcosa di diverso da quello che sa un normale utente di computer.

La mia comprensione di BOF è che per ogni programma c'è un secchio che può contenere ricordi. Ad esempio, diciamo che c'è un input A, e può contenere 16 lettere.

E se metti 16 A in là e poi metti un comando dopo come: A = AAAAAAAAAAAAAAAAsso poweroff e il computer dovrebbe spegnersi se viene trovato vulnerabile. (o qualcosa di simile, non cercare di andare troppo in profondità dato che non capisco)

Tuttavia, non sai quanto può contenere il secchio. Dovresti essere in grado di conoscere la dimensione del bucket se hai visto il codice sorgente, ma se intendi attaccare un server remoto sconosciuto, non dovresti sapere nulla a riguardo, o anche nulla su quali programmi il server usa.

Come scopri come dovresti BOF senza conoscere il codice sorgente o alcuna conoscenza del server?

E un'altra domanda. Come trovi gli input e gli input da inviare ai PC remoti? Ho sentito parlare di famosi worm come sasser o conficker, e apparentemente invia qualche tipo di codice ad altri PC, ma i normali PC non dovrebbero avere nessun server in esecuzione. Se eseguono server, potrebbero esserci alcuni input che possono essere vulnerabili a BOF, ma come fa il normale PC a prendere i codici maliziosi da online e ottenere pwned?

Voglio solo capire come funzionano le cose.

    
posta cantfind 06.03.2016 - 03:33
fonte

1 risposta

-1

La tua comprensione di BOF non è accurata, suggerirei di leggere il capitolo sull'utilizzo in The Art of Exploitation per migliorare comprensione.

Ora, per quanto riguarda lo sfruttamento di un'applicazione senza conoscere il codice sorgente, puoi farlo con un processo chiamato "Fuzzing" che implica l'invio di dati arbitrari di lunghezza variabile al punto in cui l'applicazione si aspetta un input e monitora la reazione dell'app -utilizzando un debugger - (dovrai schierare i vulnerabili app su una macchina locale prima in modo da poter sviluppare il tuo exploit) Una volta che il codice di sfruttamento è terminato, è possibile distribuire l'attacco contro la macchina remota (supponendo che non sia protetto con alcuni meccanismi di protezione come ASLR).

    
risposta data 06.03.2016 - 17:15
fonte

Leggi altre domande sui tag