web-dev-qa-db-fra.com

Différence entre l'injection de code, l'injection de commande et l'exécution du code à distance

Si l'on doit décrire la différence fondamentale entre ces trois termes (c'est-à-dire une injection de code, une injection de commande et une exécution de code à distance), que sera-ce?

Comment ils sont différents les uns des autres en termes d'approche pour effectuer l'attaque et son comportement sur la machine cible?

5
Khopcha

Hmm laissez-moi essayer:

  • L'injection de code consiste à modifier une unité/script exécutable/compilation afin qu'elle contienne du code malveillant sur les fonctions prévues. Le code peut être injecté localement dans et puis il pourrait être téléchargé sur Internet, les forums, les serveurs de presse, etc. Il s'agit d'une forme d'exploitation assez facile et semblable à un cheval de Troie. Des virus précoces ont été fabriqués comme celui-ci et se sont propagés via des utilisateurs partageant des exécutables. Vous trouvez probablement cela encore aujourd'hui dans "Clé générateurs" et autres logiciels illégaux, ainsi que dans des fichiers de données tels que les windows notoires Sreensavers ".SCR" et d'autres formats qui ne sont pas exécutables en soi mais peuvent être chargés avec du code qui est exécuté .

  • L'injection de commandes est imho à l'aide de la faiblesse d'un système non protégé pour permettre l'exécution de commandes arbitraires de modifier ou d'endommager le système cible. Cela pourrait être par exemple pour injecter des instructions via des URL Web et rendre le serveur distant les exécuter. Les cordes SQL non gardées sont devenues célèbres pour cela. Soit ils peuvent corrompre la base de données ou même exécuter du code sur le système d'exploitation sous-jacent.

  • L'exécution de code à distance est de nouveau embarrasser du code malveillant, mais cette fois, il n'est pas attaché à l'unité binaire, mais envoyez via le réseau. La différence d'injection de commandement pourrait être vue en ce sens que, en outre au code/script malveillant, il a également besoin d'une faiblesse ou d'une faute du processus de réception, comme si vous envoyez une mauvaise instruction, faites le crash de processus, puis utilisez l'accident. Hangler pour exécuter du code qui a été livré avec votre "paquet de crash". Le plus moderne "Zero Day" exploite des exploits comme celui-ci.

Je pense que la terminologie est utilisée de manière floue, de sorte que d'autres personnes puissent voir cela différent.

6
flohack

Injection de code: Lorsqu'une application malveillante utilise une vulnérabilité pour exploiter une application déjà exécutée pour insérer un code malveillant dans l'application exploitée; changer le chemin d'exécution.

Injection de la commande: Lorsque vous utilisez un type d'entrée sur un système pour exécuter A System Commande. Cela peut se produire lorsque l'entrée n'est pas correctement désinfectée ou vérifiée. Wikipedia a un beau exemple

Exécution du code à distance : Lorsqu'un code peut exécuter toute instruction qu'il souhaite sur un système. Il y a beaucoup de vulnérabilités là-bas, mais tous ne permettront pas à un attaquant d'exécuter du code arbitraire sur un système. Gagner l'exécution de code à distance est la dernière étape exploitant un système.

Pour les mettre tous ensemble. une vulnérabilité est utilisée pour exploiter un système pour effectuer une injection de code ou de commande pour obtenir une exécution du code à distance. Il convient de noter que vous ne devez pas besoin Injection de code/de commande pour obtenir l'exécution du code à distance. Ils sont simplement des exemples de la manière dont le code malveillant pourrait être utilisé.

1
RoraΖ