Diferencia entre Inyección de código, Inyección de comando y Ejecución remota de código

3

Si uno tiene que describir una diferencia fundamental entre estos tres términos (es decir, Inyección de código, Inyección de comando y Ejecución remota de código), ¿cuál será?

¿En qué se diferencian entre sí en términos de enfoque para realizar el ataque y su comportamiento en la máquina de destino?

    
pregunta Khopcha 28.08.2017 - 12:53
fuente

2 respuestas

4

Hmm, déjame intentarlo:

  • La inyección de código consiste en modificar una unidad / script ejecutable / de compilación para que contenga código malicioso en la parte superior de sus funciones previstas. El código se puede inyectar localmente y luego se puede cargar en Internet, foros, servidores de noticias, etc. Es una forma bastante fácil de explotar y similar a un caballo de Troya. Los primeros virus se crearon así, y se propagaron a través de usuarios que comparten ejecutables. Probablemente encuentre esto aún hoy en "generadores de claves" y otro software ilegal, así como en archivos de datos como el notorio sreensavers de windows ".scr" y otros formatos que no son ejecutables en sí, pero se pueden cargar con código que se ejecuta. .

  • La inyección de comandos es IMHO utilizando la debilidad de un sistema no protegido para permitir la ejecución de comandos arbitrarios para modificar o dañar el sistema de destino. Esto podría ser, por ejemplo, inyectar instrucciones a través de URL web y hacer que el servidor remoto las ejecute. Las cadenas de SQL sin vigilancia se hicieron famosas por esto. O bien pueden dañar la base de datos o incluso ejecutar código en el sistema operativo subyacente.

  • La ejecución remota de código es en realidad volver a crear código malicioso, pero esta vez no se adjunta a la unidad binaria, sino que se envía a través de la red. La diferencia con la inyección de comandos se puede ver en que, además del código / script malicioso, también necesita una debilidad o falla del proceso de recepción, como si enviara una instrucción incorrecta, haga que el proceso se bloquee y luego haga uso del bloqueo. controlador para ejecutar el código que se ha entregado junto con su "paquete de bloqueo". La mayoría de las explotaciones modernas de "día cero" funcionan así.

Creo que la terminología se usa de forma difusa, por lo que otras personas podrían ver esto de manera diferente.

    
respondido por el flohack 28.08.2017 - 14:18
fuente
1

Inyección de código: cuando una aplicación maliciosa utiliza una vulnerabilidad para explotar una aplicación que ya se está ejecutando para insertar código malicioso en la aplicación explotada; cambiando el camino de ejecución.

Inyección de comandos: cuando utiliza algún tipo de entrada en un sistema para ejecutar un comando sistema . Esto puede ocurrir cuando la entrada no está correctamente desinfectada o verificada. Wikipedia tiene un buen ejemplo

Ejecución remota de código : cuando un código puede ejecutar cualquier instrucción que desee en un sistema. Existen muchas vulnerabilidades, pero no todas permitirán que un atacante ejecute código arbitrario en un sistema. Obtener la ejecución remota de código es el último paso para explotar un sistema.

Para ponerlos todos juntos. Se utiliza una vulnerabilidad para explotar un sistema para realizar una inyección de código o comando para obtener la ejecución remota de código. Se debe tener en cuenta que no se necesita inyección de código / comando para obtener Ejecución remota de código. Son simplemente ejemplos de cómo se puede usar el código malicioso.

    
respondido por el RoraΖ 28.08.2017 - 15:50
fuente

Lea otras preguntas en las etiquetas