Come vengono eseguiti i payload arbitrari sulla macchina remota?

3

Capisco di eseguire qualcosa come un reverse TCP bind tramite shell si basa sulle risorse disponibili sulla macchina vittima ... e nel caso di esecuzione di uno script, dovremmo dire, Ruby dalla riga di comando verrà interpretato fino a codice macchina ed eseguito ...

La mia domanda è, quando si rilascia il codice macchina direttamente nella macchina remota tramite exploit via Metasploit o altro, e se il codice non corrisponde alla CPU? Come viene interpretato ed eseguito? O si tratta di "attaccante" che sa quale payload usare?

Per favore perdonami la domanda di alto livello, sono relativamente nuovo ai test di penetrazione.

    
posta DawnFreeze 10.12.2013 - 00:58
fonte

2 risposte

4

Supponendo di aver individuato un sovraccarico del buffer (o equivalente), se il codice della macchina non corrisponde alla lingua della macchina remota, il risultato atteso è che l'applicazione con l'overrun si bloccherà.

Il sovraccarico funzionerà come "normale", cercando di eseguire il codice nel blob binario di un carico utile. Il sistema della vittima tenterà di eseguire le istruzioni, ma le istruzioni non funzioneranno come previsto per il sistema di destinazione - qualsiasi istruzione data probabilmente significherà qualcosa di diverso per il sistema di destinazione rispetto allo sviluppatore di payload previsto. Nondimeno, il sistema delle vittime tenterà l'esecuzione. Alcune operazioni potrebbero funzionare perfettamente. Alcune operazioni potrebbero essere istruzioni illegali, potenzialmente causando un'eccezione o un arresto anomalo. Alla fine, è probabile che la combinazione di istruzioni danneggi l'applicazione in esecuzione oltre il ripristino, o esegua a priori un'istruzione valida in un contesto illegale e il processo si interromperà.

    
risposta data 10.12.2013 - 01:59
fonte
1

Come afferma la risposta di atk, fornire codice binario errato causerà molto probabilmente un arresto anomalo.

Tuttavia, è possibile formulare ipotesi ragionevoli sulla CPU: il codice x86 di base è compatibile con quasi tutti i sistemi desktop; ed è abbastanza probabile che il tuo exploit / overrun originale sia in qualche particolare software che funziona solo su x86 e non, ad esempio, sui processori ARM usati in molti dispositivi mobili.

    
risposta data 26.01.2014 - 18:14
fonte

Leggi altre domande sui tag