Differenza tra l'iniezione del codice, l'iniezione del comando e l'esecuzione del codice remoto

4

Se si deve descrivere la differenza fondamentale tra questi tre termini (ad esempio Code Injection, Command Injection e Remote Code Execution) quale sarà?

Quanto sono diversi gli uni dagli altri in termini di approccio per eseguire l'attacco e il suo comportamento sul computer di destinazione?

    
posta Khopcha 28.08.2017 - 12:53
fonte

2 risposte

5

Hmm fammi provare:

  • L'iniezione di codice consiste nella modifica di un'unità / script di esecuzione / compilazione in modo che contenga codice dannoso in cima alle funzioni previste. Il codice può essere inserito localmente in esso e quindi può essere caricato su Internet, forum, server di notizie, ecc. È una forma piuttosto semplice di exploit e simile a un cavallo di troia. I primi virus sono stati creati in questo modo e si diffondono tramite gli utenti che condividono file eseguibili. Probabilmente lo trovate ancora oggi in "generatori di chiavi" e altri software illegali, così come in file di dati come i famigerati Windows sreensavers ".scr" e altri formati che non sono eseguibili di per sé ma possono essere caricati con codice che viene eseguito .

  • L'iniezione di comandi è IMHO che utilizza la debolezza di un sistema non protetto per consentire l'esecuzione di comandi arbitrari per modificare o danneggiare il sistema di destinazione. Questo potrebbe essere ad esempio per iniettare istruzioni tramite URL web e farle eseguire dal server remoto. Le stringhe SQL non protette sono diventate famose per questo. O possono danneggiare il database o persino eseguire codice sul sistema operativo sottostante.

  • L'esecuzione di codice in modalità remota è in realtà di nuovo la creazione di codice dannoso ma questa volta non è collegata all'unità binaria, ma invia tramite la rete. La differenza con il comando di iniezione potrebbe essere vista in quanto, oltre al codice / script dannoso, ha anche bisogno di una debolezza o di un errore del processo di ricezione, come se si inviasse un'istruzione errata, si arresti il processo e si utilizzi l'arresto gestore per eseguire il codice che è stato consegnato insieme al tuo "pacchetto di crash". I più moderni exploit "zero day" funzionano in questo modo.

Penso che la terminologia sia usata in modo sfocato, quindi altre persone potrebbero vederlo in modo diverso.

    
risposta data 28.08.2017 - 14:18
fonte
1

Iniezione codice: quando un'applicazione dannosa utilizza una vulnerabilità per sfruttare un'applicazione già in esecuzione per inserire codice dannoso nell'applicazione sfruttata; cambiando il percorso di esecuzione.

Iniezione comandi: quando usi un qualche tipo di input in un sistema per eseguire un comando sistema . Ciò può verificarsi quando l'input non è correttamente disinfettato o controllato. Wikipedia ha un bel esempio

Esecuzione di codice in modalità remota : quando un codice può eseguire qualsiasi istruzione desiderata su un sistema. Ci sono molte vulnerabilità là fuori, ma non tutte consentiranno a un utente malintenzionato di eseguire codice arbitrario su un sistema. Ottenere l'esecuzione di codice remoto è l'ultimo passo per sfruttare un sistema.

Per metterli tutti insieme. Una vulnerabilità viene utilizzata per sfruttare un sistema per eseguire l'iniezione di codice o comando per ottenere l'esecuzione di codice in modalità remota. Si noti che non è necessario codice / comando di iniezione per ottenere esecuzione di codice remoto. Sono semplicemente esempi di come potrebbe essere usato il codice dannoso.

    
risposta data 28.08.2017 - 15:50
fonte