Remote Code Execution (RCE)

Ejecución remota de código

La ejecución remota de código es un tipo de vulnerabilidad de seguridad que permite a los atacantes ejecutar código arbitrario en una máquina remota, conectándose a ella a través de redes públicas o privadas.

RCE es posiblemente el tipo más grave de ACE, porque pueden explotarse incluso si un atacante no tiene acceso previo al sistema o dispositivo . RCE equivale a un compromiso total del sistema o aplicación afectado y puede tener consecuencias graves, como pérdida de datos , interrupción del servicio, implementación de ransomware u otro malware y movimiento lateral del atacante a otros sistemas de TI sensibles.

Explotar una vulnerabilidad RCE para un pentester es una especie de Santo Grial. Dependiendo del contexto, existen numerosas técnicas para ejecutar código de forma remota y así explotar un RCE.

Las ejecuciones remotas de código (RCE) generalmente ocurren debido a malware malicioso descargado por el host y pueden ocurrir independientemente de la ubicación geográfica del dispositivo.

Permite que un actor de amenazas ejecute este código remoto en una máquina de destino a través de Internet, una red de área amplia (WAN) o una red de área local (LAN).

Además, RCE permite que un actor de amenazas controle una computadora o servidor mediante la ejecución de software malicioso.

La ejecución de una secuencia de ataque RCE es bastante básica. Primero, el actor de la amenaza escanea las computadoras en Internet en busca de vulnerabilidades conocidas que puedan respaldar un ataque exitoso. Una vez que se identifica una vulnerabilidad específica, el actor de la amenaza realiza el exploit para obtener acceso. Ahora que están dentro, pueden ejecutar el código malicioso para alcanzar sus objetivos, incluida la extracción de datos, el desvío de fondos, la realización de vigilancia detallada y la interrupción del servicio.

El código a menudo se inyecta utilizando el lenguaje de la aplicación de destino. Luego, el intérprete del lado del servidor lo ejecuta para ese idioma. Los lenguajes suelen incluir Python, Java, Perl, Ruby y PHP. Las aplicaciones que evalúan directamente entradas no validadas suelen ser vulnerables a la inyección de código. Es cierto que las aplicaciones web públicas son un objetivo principal para los actores de amenazas.

La ejecución del código malicioso generalmente se logra mediante el uso de comandos de terminal o quizás scripts bash. Un script bash es un archivo de texto que contiene comandos que normalmente se usarían en una línea de comandos.

Tipos de ataques RCE

  • Ataque de inyección : varias aplicaciones permiten la entrada proporcionada por el usuario para ejecutar comandos. Los atacantes pueden proporcionar datos de entrada deliberadamente mal formados para ejecutar código arbitrario.

  • Ataque de deserialización: las aplicaciones suelen utilizar la serialización para organizar datos y facilitar la comunicación. Los programas de deserialización pueden interpretar los datos serializados proporcionados por el usuario como código ejecutable.

  • Escritura fuera de límites: las aplicaciones suelen asignar fragmentos de memoria fijos para almacenar datos. Las fallas en la asignación de memoria permiten a los atacantes proporcionar entradas que escriben fuera del búfer: la memoria almacena código ejecutable, incluido código malicioso.

Recursos

Última actualización