Líder en el Cuadrante Mágico de Gartner® de 2025 para plataformas de protección de Endpoints.Líder en el Cuadrante Mágico™ de GartnerLeer el informe
¿Sufre una brecha de seguridad?Blog
ComenzarContacto
Header Navigation - ES
  • Plataforma
    Resumen de la plataforma
    • Singularity Platform
      Bienvenido a la Seguridad Empresarial Integrada
    • IA para la seguridad
      A la vanguardia en soluciones de seguridad impulsadas por IA
    • Protección de la IA
      Acelere la adopción de IA con herramientas, aplicaciones y agentes de IA seguros.
    • Cómo funciona
      La Diferencia de Singularity XDR
    • Marketplace de Singularity
      Integraciones con un solo clic para liberar la potencia de XDR
    • Precios y Paquetes
      Comparaciones y orientaciones de un vistazo
    Data & AI
    • Purple AI
      Acelerar las operaciones de seguridad con IA generativa
    • Singularity Hyperautomation
      Automatice fácilmente los procesos de seguridad
    • AI-SIEM
      AI SIEM para el SOC autónomo
    • AI Data Pipelines
      Canalización de datos de seguridad para AI SIEM y optimización de datos
    • Singularity Data Lake
      Potenciada por la IA, unificada por el lago de datos
    • Singularity Data Lake for Log Analytics
      Ingesta de datos sin fisuras desde entornos locales, en la nube o híbridos
    Endpoint Security
    • Singularity Endpoint
      Prevención, detección y respuesta autónomas
    • Singularity XDR
      Protección, detección y respuesta nativas y abiertas
    • Singularity RemoteOps Forensics
      Orquestación forense a escala
    • Singularity Threat Intelligence
      Información completa sobre el adversario
    • Singularity Vulnerability Management
      Detección de activos no autorizados
    • Singularity Identity
      Detección de amenazas y respuesta para la identidad
    Cloud Security
    • Singularity Cloud Security
      Bloquee los ataques con un CNAPP basado en IA
    • Singularity Cloud Native Security
      Asegurar la nube y los recursos de desarrollo
    • Singularity Cloud Workload Security
      Plataforma de protección de la carga de trabajo en la nube en tiempo real
    • Singularity Cloud Data Security
      Detección de amenazas mediante inteligencia artificial
    • Singularity Cloud Security Posture Management
      Detectar y corregir errores de configuración en la nube
    Protección de la IA
    • Prompt Security
      Proteger las herramientas de IA en toda la empresa
  • ¿Por qué SentinelOne?
    ¿Por qué SentinelOne?
    • ¿Por qué SentinelOne?
      Ciberseguridad pensada para el futuro
    • Nuestros clientes
      La confianza de las principales empresas del mundo
    • Reconocimiento industrial
      Probado y demostrado por los expertos
    • Quiénes somos
      Líder del sector en ciberseguridad autónoma
    Comparar SentinelOne
    • Arctic Wolf
    • Broadcom
    • CrowdStrike
    • Cybereason
    • Microsoft
    • Palo Alto Networks
    • Sophos
    • Splunk
    • Trend Micro
    • Trellix
    • Wiz
    Industria
    • Energía
    • Administración Pública
    • Finanzas
    • Sanidad
    • Educación
    • Educación K-12
    • Fabricación
    • Comercio
    • Sector público estatal y local
  • Servicios
    Servicios gestionados
    • Visión General de Servicios Gestionados
      Wayfinder Threat Detection & Response
    • Threat Hunting
      Experiencia de clase mundial e Inteligencia de Amenazas.
    • Managed Detection & Response
      Services MDR experts 24/7/365 pour l’ensemble de votre environnement.
    • Incident Readiness & Response
      DFIR, preparación ante brechas & evaluaciones de compromiso.
    Asistencia y despliegue
    • Gestión técnica de cuentas
      Customer success con servicio personalizado
    • SentinelOne GO
      Asesoramiento guiado sobre incorporación y despliegue
    • SentinelOne University
      Formación en directo y a la carta
    • Panorama de los servicios
      Soluciones integrales para operaciones de seguridad sin interrupciones
    • SentinelOne Community
      Inicio de sesión en la comunidad
  • Partners
    Nuestra red
    • Socios MSSP
      Triunfe más rápido con SentinelOne
    • Marketplace de Singularity
      Extender la potencia de la tecnología S1
    • Socios de ciberriesgo
      Incorporar equipos de respuesta y asesoramiento profesional
    • Alianzas tecnológicas
      Soluciones integradas a escala empresarial
    • SentinelOne para AWS
      Alojado en regiones de AWS en todo el mundo
    • Socios de canal
      Aportar juntos las soluciones adecuadas
    • SentinelOne for Google Cloud
      Seguridad unificada y autónoma que brinda a los defensores una ventaja a escala global.
    Descripción general del programa →
  • Recursos
    Centro de recursos
    • Datasheets
    • eBooks
    • Videos
    • Libros blancos
    • Events
    Ver todos los recursos→
    Blog
    • Feature Spotlight
    • For CISO/CIO
    • From the Front Lines
    • Identity
    • Cloud
    • macOS
    • Blog de SentinelOne
    Blog→
    Recursos tecnológicos
    • SentinelLABS
    • Glosario de ransomware
    • Ciberseguridad 101
  • Quiénes somos
    Acerca SentinelOne
    • Acerca SentinelOne
      El líder de la industria en ciberseguridad
    • SentinelLABS
      Investigación de amenazas para el cazador de amenazas moderno
    • Carreras
      Las últimas oportunidades de trabajo
    • Prensa y noticias
      Anuncios de la empresa
    • Blog de ciberseguridad
      Las últimas amenazas a la ciberseguridad, noticias y más
    • FAQ
      Obtenga respuestas a las preguntas más frecuentes
    • DataSet
      La Plataforma de datos en vivo
    • S Foundation
      Asegurar un futuro más seguro para todos
    • S Ventures
      Invertir en la próxima generación de seguridad y datos
ComenzarContacto
Background image for ¿Qué es la inyección de comandos del sistema operativo? Explotación, impacto y defensa
Cybersecurity 101/Ciberseguridad/OS Command Injection

¿Qué es la inyección de comandos del sistema operativo? Explotación, impacto y defensa

La inyección de comandos del sistema operativo (CWE-78) permite a los atacantes ejecutar comandos arbitrarios mediante entradas no saneadas. Conozca técnicas de explotación, CVE reales y defensas.

CS-101_Cybersecurity.svg
Tabla de contenidos
¿Qué es la inyección de comandos del sistema operativo?
¿Cómo funciona la inyección de comandos del sistema operativo?
Subtipo 1: Directa (inyección de separador de comandos)
Subtipo 2: Indirecta (control total del comando)
Flujo del ataque
Operadores y metacaracteres comunes de inyección
Separadores de comandos y ejecución en línea
Causas de la inyección de comandos del sistema operativo
Validación insuficiente de entradas
Uso de ejecución de shell en lugar de APIs nativas del lenguaje
Dependencia de filtrado por lista de denegación
Manipulación de variables de entorno
Violación del principio de mínimo privilegio
Impacto y riesgo de la inyección de comandos del sistema operativo
Gravedad por categoría de impacto
Las puntuaciones CVSS no cuentan toda la historia
Cómo explotan los atacantes la inyección de comandos del sistema operativo
Descubrimiento y enumeración
Inyección directa de salida
Inyección ciega mediante retardos de tiempo
Exfiltración fuera de banda (OAST)
Encadenamiento de bypass de autenticación
Bypass de inyección de argumentos
¿Quiénes se ven afectados por la inyección de comandos del sistema operativo?
Tipos de aplicaciones más vulnerables
Industrias con mayor riesgo
Ejemplos reales de inyección de comandos del sistema operativo
Shellshock (CVE-2014-6271), 2014
Brecha de Equifax (CVE-2017-5638), 2017
Log4Shell (CVE-2021-44228), 2021
Velvet Ant / CVE-2024-20399, 2024
Explotación de firewall Zyxel (CVE-2023-28771), 2023
Línea de tiempo e historia de la inyección de comandos del sistema operativo
Cómo detectar la inyección de comandos del sistema operativo
Pruebas de seguridad de aplicaciones estáticas (SAST)
Pruebas de seguridad de aplicaciones dinámicas (DAST)
Visibilidad de comportamiento a nivel de proceso
Reglas de firewall de aplicaciones web (WAF)
Comparación de métodos
Cómo prevenir la inyección de comandos del sistema operativo
Defensa principal: evitar completamente los comandos del sistema operativo
Utilice APIs de comandos parametrizados
Validación de entradas mediante listas de permitidos
Aplicar el principio de mínimo privilegio (NIST AC-6)
Implemente sandboxing y contenedores
Controles específicos para PHP
Herramientas para la detección y prevención de la inyección de comandos del sistema operativo
Herramientas de pruebas de seguridad de aplicaciones
Protección en tiempo de ejecución y red
Visibilidad en endpoint y comportamiento
Vulnerabilidades relacionadas
CVEs relacionados
Conclusión

Entradas relacionadas

  • ¿Qué es Secure Web Gateway (SWG)? Defensa de red explicada
  • Estadísticas de malware
  • Estadísticas de filtraciones de datos
  • Estadísticas de ataques DDoS
Autor: SentinelOne
Actualizado: May 11, 2026

¿Qué es la inyección de comandos del sistema operativo?

La inyección de comandos del sistema operativo es una vulnerabilidad que permite a los atacantes ejecutar comandos arbitrarios del sistema operativo en un servidor a través de una aplicación vulnerable. Clasificada como CWE-78 por MITRE, ocurre cuando una aplicación construye comandos del sistema operativo utilizando entradas externas sin neutralizar adecuadamente los caracteres especiales que pueden alterar el comando previsto. El resultado es un acceso directo y no autorizado al sistema operativo subyacente.

Esta clase de vulnerabilidad se ha relacionado con ciberataques importantes, desde la explotación masiva de Shellshock en 2014 hasta la focalización continua de dispositivos de red documentada en un aviso de CISA. CWE-78 se encuentra entre los 25 principales de MITRE, situándose junto a escritura fuera de límites, cross-site scripting y SQL injection.

En el OWASP Top 10, la categoría más amplia de Inyección abarca tanto CWE-77 como CWE-78. Comprender cómo funciona la vulnerabilidad a nivel de shell es el primer paso para detenerla.

¿Cómo funciona la inyección de comandos del sistema operativo?

La inyección de comandos del sistema operativo explota una falla fundamental: una aplicación pasa la entrada controlada por el usuario directamente a un comando de shell del sistema operativo sin separar los datos de las instrucciones de control.

MITRE identifica dos subtipos de inyección de comandos del sistema operativo.

Subtipo 1: Directa (inyección de separador de comandos)

La aplicación pretende ejecutar un solo programa fijo, utilizando la entrada externa solo como argumentos. Los atacantes inyectan separadores de comandos (;, |, &&, || o saltos de línea) para agregar comandos adicionales.

Considere una aplicación web que realiza búsquedas DNS:

Java String

Un atacante suministra example.com; cat /etc/passwd como parámetro de dominio. El shell ejecuta tanto nslookup example.com como cat /etc/passwd, devolviendo el archivo de contraseñas del servidor.

Subtipo 2: Indirecta (control total del comando)

La aplicación acepta una entrada que determina completamente qué programa ejecutar. El atacante controla el comando completo, no solo sus argumentos:

Indirect Full Command Control

Si un atacante controla la propiedad SCRIPTNAME, puede apuntar a cualquier ejecutable en el sistema.

Flujo del ataque

Un ataque típico de inyección de comandos del sistema operativo sigue esta secuencia:

  1. El atacante identifica un campo de entrada, como un parámetro de formulario, encabezado HTTP, cookie o cadena de consulta URL, que alimenta un comando del lado del servidor.
  2. El atacante inyecta metacaracteres de shell combinados con un comando malicioso en esa entrada.
  3. La aplicación pasa la entrada no saneada al shell del sistema operativo.
  4. El shell interpreta los metacaracteres y ejecuta el comando inyectado con los mismos privilegios que el proceso de la aplicación. Si la aplicación se ejecuta como root, el atacante obtiene esos mismos privilegios.

Cada uno de estos pasos depende de que el shell interprete caracteres específicos como instrucciones de control. Los operadores que hacen esto posible varían según la plataforma.

Operadores y metacaracteres comunes de inyección

La inyección de comandos del sistema operativo depende de metacaracteres de shell que alteran cómo el sistema operativo interpreta una cadena de comandos. Los operadores disponibles para un atacante dependen de la plataforma objetivo.

Separadores de comandos y ejecución en línea

OperadorFunciónPlataforma
;Ejecuta comandos secuencialmenteUnix
&Ejecuta el segundo comando en segundo planoUnix y Windows
&&Ejecuta el segundo comando solo si el primero tiene éxitoUnix y Windows
||Ejecuta el segundo comando solo si el primero fallaUnix y Windows
|Redirige la salida del primer comando al segundoUnix y Windows
` (backticks)Ejecución en línea; la salida reemplaza la expresiónUnix
$()Ejecución en línea; funcionalmente equivalente a backticksUnix
0x0a (salto de línea)Inicia un nuevo comando en algunos shellsUnix

Cuando la entrada del usuario se encuentra dentro de una cadena entre comillas en el comando original, el atacante debe primero cerrar la comilla (" o ') antes de que cualquier separador surta efecto. Técnicas de codificación como codificación URL, doble codificación y normalización Unicode también pueden evadir filtros que buscan estos caracteres en su forma literal. Estos operadores llegan al shell debido a patrones de codificación específicos que no mantienen separados los datos del usuario de la sintaxis del comando.

Causas de la inyección de comandos del sistema operativo

La inyección de comandos del sistema operativo se origina en prácticas de codificación que permiten que la entrada del usuario llegue a un shell del sistema sin controles adecuados. Cinco causas raíz explican la mayoría de las vulnerabilidades.

Validación insuficiente de entradas

Esta es la causa más directa. Según la guía de OWASP, los ataques de inyección de comandos son posibles cuando una aplicación pasa datos no seguros proporcionados por el usuario, como formularios, cookies y encabezados HTTP, a un shell del sistema sin saneamiento. Cuando se confía en que los usuarios proporcionarán valores esperados, puede omitirse la validación por completo.

Uso de ejecución de shell en lugar de APIs nativas del lenguaje

Llamar a system(), exec(), shell_exec() u os.system() invoca el shell del sistema operativo como intermediario. Cada invocación de shell crea una superficie de inyección. La hoja de referencia de OWASP identifica APIs peligrosas en los principales lenguajes:

LenguajeAPIs peligrosas
JavaRuntime.exec()
C / C++system(), exec(), ShellExecute()
Pythonexec(), eval(), os.system(), os.popen(), subprocess.Popen(), subprocess.call()
PHPsystem(), shell_exec(), exec(), proc_open(), eval(), passthru()
Node.jschild_process.exec(), execSync(), spawn()

Dependencia de filtrado por lista de denegación

Puede intentar bloquear caracteres peligrosos específicos en lugar de definir lo que está permitido. Este enfoque, clasificado como CWE-184 (lista de denegación incompleta), falla de manera consistente. OWASP documenta explícitamente que escapeshellcmd() de PHP previene la ejecución de comandos adicionales pero aún permite la inyección de argumentos. Los atacantes pueden inyectar flags como --output-document= para lograr escritura de archivos sin usar separadores de comandos.

Manipulación de variables de entorno

Cuando las aplicaciones no especifican rutas absolutas para los ejecutables y no limpian las variables de entorno, los atacantes pueden redirigir $PATH para apuntar a binarios maliciosos. Si la aplicación se ejecuta con privilegios setuid root, el binario del atacante se ejecuta con acceso root.

Violación del principio de mínimo privilegio

Las aplicaciones que se ejecutan con privilegios elevados amplifican cada falla de inyección. Una inyección de comandos contra una aplicación que se ejecuta como www-data limita al atacante a los permisos de ese usuario. La misma inyección contra un proceso a nivel root otorga control total del sistema. Cuando cualquiera de estas causas no se aborda, el impacto resultante se extiende mucho más allá de la aplicación vulnerable en sí.

Impacto y riesgo de la inyección de comandos del sistema operativo

La inyección de comandos del sistema operativo obtiene consistentemente las puntuaciones más altas en los sistemas de clasificación de vulnerabilidades. El OWASP Top 10:2021 identifica la inyección como una categoría de riesgo importante y persistente. El impacto funcional es directo: un atacante obtiene la capacidad de ejecutar comandos arbitrarios en su servidor con los mismos privilegios que el proceso de la aplicación comprometida.

Gravedad por categoría de impacto

ImpactoEvidencia
Ejecución remota de códigoCVE-2024-3400
Compromiso completo del sistemaInforme SANS: "compromiso completo del sistema, exfiltración de datos o infiltración de red"
Movimiento lateralAviso de CISA: inyección de comandos del sistema operativo combinada con recorrido de rutas que permite intrusión en múltiples etapas
Reclutamiento de botnetsVariante Mirai
Entrega de ransomwareAviso de CISA; Aviso de CISA

Las puntuaciones CVSS no cuentan toda la historia

CVE-2024-20399 (Cisco NX-OS) tiene una puntuación CVSS relativamente modesta y requiere acceso local y privilegios administrativos. Sin embargo, CISA lo añadió al catálogo de Vulnerabilidades Conocidas Explotadas tras confirmar su explotación por la campaña Velvet Ant vinculada a China. 

Este caso ilustra que las puntuaciones CVSS por sí solas no reflejan el riesgo operativo. La pertenencia al catálogo KEV, la explotación por estados-nación y la posición de red del dispositivo son factores de riesgo independientes que pueden superar con creces una puntuación base. Comprender las técnicas específicas que utilizan los atacantes ayuda a explicar por qué la explotación confirmada es tan común.

Cómo explotan los atacantes la inyección de comandos del sistema operativo

Los atacantes utilizan una progresión de técnicas para encontrar, confirmar y explotar la inyección de comandos del sistema operativo, comenzando con el descubrimiento y escalando a través de inyección ciega y encadenamiento de vulnerabilidades.

Descubrimiento y enumeración

Los atacantes identifican campos de entrada que interactúan con comandos del sistema en el lado del servidor, probando todos los parámetros, encabezados HTTP (User-Agent, Referer), cookies, cadenas de consulta URL y entradas de datos estructurados (JSON, XML, SOAP).

Inyección directa de salida

Un atacante inyecta un separador de comandos seguido de un comando de salida conocido:

Direct Output Injection

Si la respuesta contiene el nombre de usuario del proceso en ejecución, se confirma la inyección y el atacante puede proceder a comandos más dañinos.

Inyección ciega mediante retardos de tiempo

Cuando la salida del comando no aparece en la respuesta HTTP, los atacantes inyectan comandos de retardo de tiempo y miden la latencia de la respuesta. Inyectar & sleep 10 & en un objetivo Linux produce un retardo medible si el comando se ejecuta.

Exfiltración fuera de banda (OAST)

Los atacantes inyectan comandos que desencadenan callbacks DNS a infraestructura que controlan:

Out-of-Band (OAST) Exfiltration

Una consulta DNS que llega al servidor del atacante confirma la ejecución de código, incluso cuando no hay salida ni diferencia de tiempo observable. PortSwigger OAST señala que Burp Collaborator permitió encontrar vulnerabilidades de inyección de comandos del sistema operativo ciegas previamente no identificables por otros medios.

Encadenamiento de bypass de autenticación

CVE-2024-21887 (Ivanti Connect Secure) requiere acceso autenticado de administrador, pero los atacantes lo combinaron con CVE-2023-46805 (bypass de autenticación) para eliminar ese requisito por completo. Según el aviso de CISA, actores patrocinados por el estado chino utilizaron sistemáticamente este patrón de encadenamiento en Ivanti, Cisco y otros dispositivos de red.

Bypass de inyección de argumentos

Cuando los defensores filtran separadores de comandos (;, |, &&), los atacantes recurren a inyección de argumentos (CWE-88). Inyectando flags u opciones precedidas por - o --, manipulan el comportamiento de un programa ya invocado sin introducir nuevos comandos. OWASP documenta que escapeshellcmd() de PHP permite esta vía de ataque incluso cuando los separadores de comandos están bloqueados. La amplitud de estas técnicas significa que el impacto no se limita a un solo tipo de aplicación o industria.

¿Quiénes se ven afectados por la inyección de comandos del sistema operativo?

La inyección de comandos del sistema operativo afecta a cualquier sistema donde el código de la aplicación pasa la entrada del usuario a un shell del sistema operativo. Ciertos tipos de aplicaciones e industrias presentan un riesgo desproporcionado según los datos de explotación confirmada.

Tipos de aplicaciones más vulnerables

  • Dispositivos de red y SSL-VPN: Esta categoría produce la mayor concentración de entradas CWE-78 confirmadas como explotadas en el catálogo KEV de CISA. CVE-2023-44221 (SonicWall SMA100), CVE-2024-8190 (Ivanti Cloud Services Appliance), CVE-2024-40891 (Zyxel CPE) y CVE-2023-28771 (Zyxel Firewall/VPN) involucran interfaces de gestión que pasan entradas directamente a la ejecución de comandos a nivel de sistema operativo.
  • IoT y firmware embebido: Dispositivos NAS de QNAP (CVE-2023-47218), routers TP-Link (CVE-2023-1389) y routers Wavlink presentan vulnerabilidades CWE-78 confirmadas. La variante Mirai armó sistemáticamente CVEs de inyección de comandos del sistema operativo en múltiples plataformas de routers y firmware IoT para reclutamiento de botnets.
  • Aplicaciones web con llamadas a sistemas del lado del servidor: El OWASP Top 10 describe como escenario canónico una aplicación Java que construye un comando del sistema operativo mediante Runtime.getRuntime().exec() con concatenación de cadenas.
  • Interfaces de gestión empresarial: Aviso de CISA documenta la explotación de interfaces de gestión de Ivanti Cloud Service Application mediante inyección de comandos encadenada.

Industrias con mayor riesgo

  • Infraestructura crítica y telecomunicaciones: Un aviso de CISA documenta la explotación por parte de actores estatales chinos de la inyección de comandos en dispositivos de red dirigidos a infraestructura de telecomunicaciones y routers.
  • Gobierno federal: Las entradas KEV de CISA indican explícitamente que "representan riesgos significativos para la empresa federal". Las agencias federales enfrentan plazos KEV para los CVEs de inyección de comandos listados en KEV.

Los datos de explotación en estas categorías muestran cómo la inyección de comandos del sistema operativo se traduce de una falla a nivel de código a un daño a escala organizacional.

Ejemplos reales de inyección de comandos del sistema operativo

Los incidentes confirmados de inyección de comandos del sistema operativo abarcan desde la explotación masiva de software de código abierto hasta campañas dirigidas por estados-nación contra infraestructura de red.

Shellshock (CVE-2014-6271), 2014

GNU Bash hasta la versión 4.3 procesaba cadenas finales después de definiciones de funciones en variables de entorno, permitiendo valores manipulados para inyectar comandos de shell. Esta vulnerabilidad era explotable a través de scripts CGI, clientes DHCP y configuraciones SSH ForceCommand, demostrando la superficie de ataque a escala de Internet de una sola falla de inyección de comandos del sistema operativo.

Brecha de Equifax (CVE-2017-5638), 2017

Apache Struts 2 permitía a los atacantes inyectar expresiones OGNL a través de encabezados Content-Type, habilitando la ejecución arbitraria de código. Según el informe de la Cámara, Apache publicó un parche el 7 de marzo de 2017. Tres días después, el 10 de marzo, los atacantes explotaron por primera vez la vulnerabilidad en la red de Equifax. La brecha resultante llevó a un acuerdo de 700 millones de dólares y la renuncia de ejecutivos.

Log4Shell (CVE-2021-44228), 2021

La función de búsqueda de mensajes JNDI de Apache Log4j2 permitió la ejecución remota de código no autenticada mediante mensajes de registro manipulados, CVSS 10.0. Según un aviso de CISA, actores APT explotaron Log4Shell en servidores VMware Horizon sin parches, lograron movimiento lateral y exfiltraron datos sensibles. Afiliados de LockBit y grupos norcoreanos también explotaron esta vulnerabilidad.

Velvet Ant / CVE-2024-20399, 2024

El informe de Sygnia describió a un grupo de espionaje vinculado a China explotando una vulnerabilidad de inyección de comandos CLI en Cisco NX-OS. A pesar de su puntuación CVSS relativamente baja, el grupo ejecutó código malicioso en el sistema operativo Linux subyacente de los switches Nexus. CISA lo añadió al catálogo KEV, destacando que el riesgo operativo a menudo supera lo que refleja el CVSS.

Explotación de firewall Zyxel (CVE-2023-28771), 2023

El manejo incorrecto de mensajes de error en el firmware de firewall Zyxel permitió la ejecución remota no autenticada de comandos del sistema operativo, CVSS 9.8. Cybersecurity Dive informó de objetivos activos en un solo día sin actividad previa.

Estos incidentes forman parte de un patrón más amplio que se remonta a los primeros días de las aplicaciones web.

Línea de tiempo e historia de la inyección de comandos del sistema operativo

  1. 1988 a 1998: La era CGI. Los primeros servidores web invocaban scripts de shell con entradas de usuario no saneadas, creando las primeras superficies de ataque de inyección de comandos del sistema operativo. El conjunto de datos DARPA Intrusion Detection Evaluation en MIT Lincoln Laboratory catalogó ataques basados en CGI y explotación de sendmail de este período.
  2. 1999: Clasificación formal. CVE-1999-0067 documentó una de las primeras entradas formales de inyección de comandos: un programa CGI que no neutralizaba el metacarácter pipe (|) al invocar un programa de agenda telefónica. MITRE codificó la clase de vulnerabilidad como CWE-78.
  3. 2014: Shellshock. CVE-2014-6271 se convirtió en la primera vulnerabilidad de inyección de comandos del sistema operativo en lograr explotación masiva a escala de Internet.
  4. 2017: Consecuencias empresariales. La brecha de Equifax mediante CVE-2017-5638 demostró que los mecanismos de ejecución de comandos incrustados en frameworks de aplicaciones tienen consecuencias equivalentes a la inyección directa de comandos del sistema operativo a escala empresarial.
  5. 2021: Consolidación de la categoría de inyección. OWASP Top 10:2021 consolidó todos los tipos de inyección bajo la categoría A03 Injection. Log4Shell (CVE-2021-44228) extendió el patrón a una biblioteca de registro ubicua.
  6. 2023 a 2026: Focalización de dispositivos de red. La superficie de ataque se desplazó decisivamente hacia dispositivos perimetrales de red. Según un aviso de CISA, actores estatales chinos explotaron sistemáticamente la inyección de comandos en dispositivos de red entre 2021 y 2025. El OWASP Top 10:2025 añadió explícitamente CWE-88 (inyección de argumentos) como debilidad mapeada.

Con la explotación en curso, la identificación temprana sigue siendo una prioridad en todo el ciclo de vida de la aplicación.

Cómo detectar la inyección de comandos del sistema operativo

Encontrar la inyección de comandos del sistema operativo requiere un enfoque en capas que combine pruebas previas al despliegue con visibilidad en tiempo de ejecución.

Pruebas de seguridad de aplicaciones estáticas (SAST)

Según el OWASP Top 10, la revisión de código fuente es el mejor método para encontrar vulnerabilidades de inyección. Las herramientas SAST marcan llamadas a system(), exec(), popen(), shell_exec() y otras APIs peligrosas cuando reciben entrada controlada por el usuario. Los patrones clave a marcar incluyen la concatenación de cadenas que alimentan funciones de ejecución de comandos del sistema operativo y el uso de escapeshellcmd() en PHP en lugar del más seguro escapeshellarg().

Debe ejecutar SAST en su pipeline CI/CD para detectar fallas de inyección antes del despliegue. Su principal limitación es que no puede encontrar vulnerabilidades que solo se manifiestan en tiempo de ejecución.

Pruebas de seguridad de aplicaciones dinámicas (DAST)

DAST valida lo que realmente es explotable probando la aplicación en ejecución. Web Security Academy documenta tres técnicas DAST:

  1. Inyección directa de salida: Inyecte & echo uniquestring & y verifique si la cadena aparece en la respuesta.
  2. Inyección ciega basada en tiempo: Inyecte & sleep 10 & y mida el retardo de la respuesta.
  3. Inyección fuera de banda (OAST): Inyecte comandos de callback DNS y monitoree solicitudes externas a un servidor controlado. Esta es la técnica más confiable para inyección ciega.

Visibilidad de comportamiento a nivel de proceso

A nivel de host, NIST SP 800-53 (Monitoreo de Sistemas de Información) establece el marco para la identificación de anomalías de comportamiento. Su SOC debe buscar estos indicadores específicos:

  • Procesos de servidor web (apache, nginx, tomcat) que generan procesos de shell (bash, sh, cmd.exe, powershell)
  • Llamadas inesperadas a execve() o system() originadas desde contextos de procesos de aplicaciones web
  • Conexiones de red salientes iniciadas por procesos de aplicación hacia IPs externas

Reglas de firewall de aplicaciones web (WAF)

El OWASP ModSecurity Core Rule Set marca metacaracteres de shell (;, |, &, backticks, $()) y comandos comunes del sistema operativo (whoami, cat /etc/passwd, nslookup) en entradas HTTP. Las reglas WAF pueden ser evadidas mediante codificación y variación de mayúsculas/minúsculas, por lo que deben considerarse solo una fuente de señal, no un control completo.

Comparación de métodos

MétodoMomentoDetecta inyección ciegaLimitación clave
SASTPrevio al despliegueN/A (estático)No puede encontrar problemas solo en tiempo de ejecución
DASTPre/post-despliegueSí (vía OAST)Puede omitir flujos complejos
Visibilidad de comportamientoProducciónSíRequiere ajuste de línea base
WAFProducciónParcialmenteSe puede evadir, no soluciona la causa raíz

Encontrar vulnerabilidades por sí solo es insuficiente. La prevención requiere eliminar la causa raíz en su código y arquitectura.

Cómo prevenir la inyección de comandos del sistema operativo

La prevención se centra en eliminar la causa raíz: la invocación directa del shell del sistema operativo con entrada controlada por el usuario. Cuando no se pueden eliminar las llamadas al shell, los controles en capas reducen la superficie de ataque.

Defensa principal: evitar completamente los comandos del sistema operativo

Según PortSwigger, la prevención más sólida es nunca invocar comandos del sistema operativo desde el código de la capa de aplicación. En casi todos los casos, puede implementar la funcionalidad requerida utilizando APIs nativas de la plataforma más seguras. Si necesita enviar correo electrónico, use una biblioteca SMTP. Si necesita resolución DNS, use una biblioteca DNS. Elimine el shell como intermediario.

Utilice APIs de comandos parametrizados

Cuando la ejecución de comandos del sistema operativo sea inevitable, utilice mecanismos estructurados que impongan la separación entre datos y comando. En Python, esto significa usar la forma de lista de subprocess.run():

Parameterized Command APIs

La forma basada en listas evita que el shell interprete metacaracteres en cualquier argumento.

Validación de entradas mediante listas de permitidos

La hoja de referencia de OWASP recomienda la validación basada en listas de permitidos como la segunda capa de defensa. Defina los caracteres permitidos y la longitud máxima de la cadena utilizando expresiones regulares estrictas. OWASP proporciona el ejemplo ^[a-z0-9]{3,10}$, excluyendo todos los metacaracteres y espacios en blanco.

PortSwigger advierte explícitamente: nunca intente sanear la entrada escapando metacaracteres de shell. Este enfoque es propenso a errores y vulnerable a evasión por atacantes experimentados. La lista de permitidos siempre es preferible.

Aplicar el principio de mínimo privilegio (NIST AC-6)

NIST SP 800-53 exige emplear el principio de mínimo privilegio. Para la defensa contra inyección de comandos:

  • Ejecute los procesos de aplicaciones web como cuentas de servicio dedicadas y no privilegiadas
  • Restrinja los permisos de la cuenta de servicio solo a las rutas de archivos necesarias
  • Deniegue el acceso al shell (/bin/sh, /bin/bash) a las cuentas de servicio de aplicaciones web
  • Aplique perfiles seccomp en Linux para restringir las llamadas al sistema disponibles

Implemente sandboxing y contenedores

El aislamiento mediante contenedores con sistemas de archivos raíz de solo lectura, namespaces y cgroups de Linux, y perfiles de control de acceso obligatorio (AppArmor o SELinux) reducen el radio de impacto si ocurre una inyección. Estos controles se alinean con los principios de mínima funcionalidad de NIST CM-7.

Controles específicos para PHP

Si trabaja en PHP y debe invocar comandos de shell, utilice escapeshellarg() en lugar de escapeshellcmd(), ya que limita la entrada a un solo parámetro y previene la inyección de argumentos.

Estos controles de codificación y arquitectura forman la base, pero las herramientas proporcionan la visibilidad necesaria para aplicarlos a escala.

Herramientas para la detección y prevención de la inyección de comandos del sistema operativo

Una defensa eficaz requiere herramientas que abarquen pruebas de seguridad de aplicaciones, protección en tiempo de ejecución y visibilidad en el endpoint. Una alerta conjunta de CISA y FBI dirigida a la inyección de comandos del sistema operativo recomienda específicamente funciones de biblioteca integradas que separen los comandos de sus argumentos, la parametrización de entradas y la validación de toda entrada proporcionada por el usuario.

Herramientas de pruebas de seguridad de aplicaciones

  • Las herramientas SAST analizan el código fuente en busca de llamadas a APIs peligrosas que reciben entrada del usuario. Puede integrarlas en su pipeline CI/CD para detectar fallas de inyección antes del despliegue.
  • Las herramientas DAST como Burp Suite prueban aplicaciones en ejecución en busca de puntos de inyección explotables. Las capacidades OAST de Burp Suite son especialmente eficaces para encontrar inyección de comandos ciega que no produce salida visible.

Protección en tiempo de ejecución y red

  • Soluciones WAF que utilizan el OWASP ModSecurity Core Rule Set proporcionan filtrado a nivel de red de metacaracteres de shell y cargas de inyección comunes. Actúan como una capa de defensa en profundidad pero no deben reemplazar la corrección de la causa raíz.
  • Las soluciones RASP instrumentan aplicaciones en tiempo de ejecución y pueden bloquear intentos de inyección con contexto completo de la aplicación, sirviendo como control compensatorio para aplicaciones heredadas difíciles de remediar.

Visibilidad en endpoint y comportamiento

Las plataformas de seguridad de endpoint que monitorean la creación de procesos, relaciones padre-hijo y argumentos de línea de comandos son críticas para detectar actividad post-explotación. Cuando un proceso de servidor web genera un shell inesperado, el análisis de comportamiento a nivel de kernel se convierte en su última línea de defensa.

Ciberseguridad impulsada por la IA

Mejore su postura de seguridad con detección en tiempo real, respuesta a velocidad de máquina y visibilidad total de todo su entorno digital.

Demostración

Vulnerabilidades relacionadas

La inyección de comandos del sistema operativo pertenece a una familia de vulnerabilidades de inyección que comparten una causa raíz común: la falta de separación entre los datos del usuario y las instrucciones ejecutables. Varias clases de vulnerabilidad relacionadas pueden encadenarse o superponerse con CWE-78.

  • SQL Injection (CWE-89): Apunta a motores de bases de datos SQL en lugar del shell del sistema operativo. La inyección SQL puede encadenarse con la inyección de comandos del sistema operativo mediante funciones de base de datos como xp_cmdshell.
  • Inyección de código (CWE-94): Apunta al propio entorno de ejecución del lenguaje de la aplicación (PHP eval(), Python exec()). La inyección de código permite al atacante agregar su propio código que luego es ejecutado por la aplicación, y puede escalar a inyección de comandos del sistema operativo si el código inyectado llama a system() o exec().
  • Inyección de argumentos (CWE-88): Una variante hija de CWE-78. En lugar de inyectar nuevos comandos mediante separadores, los atacantes manipulan los argumentos de un programa ya invocado usando caracteres de bandera (-, --). Este ataque tiene éxito incluso cuando se filtran los separadores de comandos.
  • Inyección de plantillas del lado del servidor (CWE-1336): Apunta a motores de plantillas (Jinja2, FreeMarker). SSTI frecuentemente escala a inyección de comandos del sistema operativo porque los motores de plantillas suelen tener acceso al entorno de ejecución del lenguaje subyacente.
  • Inyección de lenguaje de expresiones (CWE-917): Apunta a analizadores de lenguaje de expresiones en frameworks web (OGNL, Spring SpEL). Log4Shell (CVE-2021-44228) es el ejemplo más destacado, encadenándose frecuentemente a la ejecución de comandos del sistema operativo.
VulnerabilidadCWEIntérprete objetivoRuta directa a ejecución en SO
Inyección de comandos del sistema operativoCWE-78Shell del sistema operativoDirecta
SQL InjectionCWE-89Motor SQLIndirecta (vía xp_cmdshell)
Inyección de códigoCWE-94Entorno de ejecución de la aplicaciónIndirecta (vía llamadas al sistema)
Inyección de argumentosCWE-88Analizador de argumentos del shell del SODirecta (manipula el comando invocado)
SSTICWE-1336Motor de plantillasFrecuentemente escala a comandos del SO
Inyección ELCWE-917Analizador de lenguaje de expresionesFrecuentemente escala a comandos del sistema operativos

La tabla anterior muestra que varias clases de vulnerabilidad proporcionan una ruta directa o indirecta a la ejecución a nivel de sistema operativo, lo que hace esencial la defensa en profundidad en todos los tipos de inyección.

CVEs relacionados

ID CVEDescripciónGravedadProducto afectadoAño

CVE-2026-33718

La inyección de comandos en el endpoint API git diff elude los controles de ejecución de agentesCríticaOpenHands AI Platform2026

CVE-2026-25857

Inyección de comandos del sistema operativo en la funcionalidad de diagnóstico WAN mediante parámetro curlCríticaTenda G300-F Router2026

CVE-2026-0631

Inyección de comandos del sistema operativo en módulos VPN; atacante adyacente autenticadoAltaTP-Link Archer BE2302026

CVE-2025-64127

Inyección de comandos del sistema operativo no autenticada en dispositivos de comunicación ICSCríticaZenitel Devices2025

CVE-2025-34041

Inyección de comandos del sistema operativo no autenticada en plataforma de gestión EDR; explotada activamenteCríticaSangfor EDR2025

CVE-2025-11730

Inyección de comandos post-autenticación en configuración CLI de DDNSAltaZyxel ATP/USG FLEX Firewalls2025

CVE-2025-65791

Inyección de comandos mediante entrada no saneada pasada a exec() en image.phpCríticaZoneMinder v1.36.342025

CVE-2025-54123

RCE no autenticada mediante inyección de comandos en endpoint API de middlewareCríticaHoverfly API Simulator2025

CVE-2024-20399

Inyección de comandos CLI en switches Nexus; explotada por la campaña Velvet AntMediaCisco NX-OS2024

CVE-2024-10443

Inyección de comandos del sistema operativo no autenticada en el componente Task ManagerCríticaSynology BeePhotos/Photos2024

CVE-2024-29972

Inyección de comandos no autenticada en el endpoint remote_help-cgiCríticaZyxel NAS326/NAS5422024

CVE-2024-40890

Inyección de comandos post-autenticación mediante HTTP POST en programa CGI; CISA KEVAltaZyxel VMG1312-B10A2024

CVE-2024-12828

Inyección de comandos en solicitud CGI que permite ejecución de código a nivel rootCríticaWebmin2024

CVE-2023-20273

Inyección de comandos a nivel root mediante interfaz web; explotada activamente; CISA KEVCríticaCisco IOS XE2023

CVE-2023-2868

Inyección de comandos mediante nombres de archivos .tar maliciosos; explotada activamente; CISA KEVCríticaBarracuda ESG2023

CVE-2023-27992

Inyección de comandos del sistema operativo previa a la autenticación mediante solicitudes HTTP; CISA KEVCríticaZyxel NAS326/540/5422023

CVE-2023-35138

Inyección de comandos no autenticada en la función show_zysync_server_contentsCríticaZyxel NAS326/NAS5422023

CVE-2023-51385

Inyección de comandos del sistema operativo mediante metacaracteres de shell en nombres de usuario o de hostMediaOpenBSD OpenSSH2023

CVE-2022-44877

Inyección de metacaracteres de shell no autenticada en la interfaz de inicio de sesión; CISA KEVCríticaControl Web Panel 72022

CVE-2022-2068

Inyección de comandos mediante nombres de archivos de certificados maliciosos en el script c_rehashCríticaOpenSSL2022

CVE-2021-4039

Inyección de comandos del sistema operativo no autenticada mediante interfaz de gestión webCríticaZyxel NWA1100-NH2021

CVE-2020-8515

Inyección de comandos previa a la autenticación en firmware de router; CISA KEVCríticaDrayTek Vigor Routers2020

CVE-2020-9054

Inyección de comandos previa a la autenticación mediante weblogin.cgi; escalada a root; CISA KEVCríticaZyxel NAS3262020

CVE-2020-10987

Inyección de comandos mediante el parámetro deviceName en goform/setUsbUnload; CISA KEVCríticaTenda AC15 Router2020

Conclusión

La inyección de comandos del sistema operativo otorga a los atacantes ejecución directa a nivel de sistema operativo a través de aplicaciones que pasan entradas no seguras a intérpretes de shell. Puede reducir la exposición eliminando las llamadas a comandos del sistema operativo cuando sea posible, utilizando APIs parametrizadas cuando sea necesario y aplicando validación por lista de permitidos. 

Si la prevención falla, la visibilidad de comportamiento en el endpoint le ayuda a detectar rápidamente la generación de shells, conexiones salientes y otros signos de explotación.

Preguntas frecuentes

La inyección de comandos del sistema operativo (CWE-78) es una vulnerabilidad en la que una aplicación construye comandos del sistema operativo utilizando entradas externas no saneadas. Los atacantes inyectan metacaracteres de shell (;, |, &&) para añadir comandos maliciosos que el shell del sistema operativo ejecuta con los privilegios de la aplicación. 

La causa raíz es la falta de separación entre los datos del usuario y la sintaxis del comando antes de pasar la entrada a un intérprete de shell.

Sí. La inyección de comandos del sistema operativo está incluida en la categoría de Inyección tanto en OWASP Top 10:2021 como en OWASP Top 10:2025. Tanto CWE-77 como CWE-78 están explícitamente incluidos. 

La edición de 2025 también añadió CWE-88 (Argument Injection) como una debilidad mapeada.

Sí. La mayoría de las vulnerabilidades CWE-78 confirmadas como explotadas en el catálogo CISA KEV no requieren autenticación y son explotables de forma remota. CVE-2014-6271 (Shellshock), CVE-2023-28771 (Zyxel) y CVE-2024-3400 permiten explotación remota sin autenticación.

Los dispositivos de red, incluidos cortafuegos, concentradores VPN y switches empresariales, generan la mayor concentración de entradas CWE-78 confirmadas como explotadas. El firmware IoT y embebido, incluidos los dispositivos NAS y routers, son sistemáticamente atacados para el reclutamiento de botnets. 

Las aplicaciones web que invocan comandos del sistema en el lado del servidor y las interfaces de gestión empresarial también presentan un riesgo elevado.

Los atacantes prueban campos de entrada, cabeceras HTTP, cookies y parámetros de URL inyectando metacaracteres de shell seguidos de comandos de diagnóstico. Para la inyección ciega, utilizan retardos de tiempo (sleep 10) o callbacks DNS a servidores controlados por el atacante. 

Los escáneres y herramientas de fuzzing prueban sistemáticamente todos los vectores de entrada.

Los principales indicadores incluyen procesos de servidor web (apache, nginx, tomcat) que generan procesos de shell inesperados (bash, sh, cmd.exe). Otros signos son conexiones de red salientes desde procesos de la aplicación a IPs desconocidas y llamadas inusuales a execve() o system() desde contextos de procesos de aplicaciones web.

La inyección de comandos del sistema operativo es una clase de vulnerabilidad de alta gravedad porque otorga a los atacantes acceso directo a nivel de sistema operativo, lo que significa que pueden ejecutar cualquier comando que admita el sistema operativo anfitrión. 

CWE-78 se encuentra entre las principales categorías de debilidades de software de MITRE, y los CVE confirmados suelen tener puntuaciones CVSS de 9.0 o superiores.

Sí. SANS informa que CVE-2024-40891 describe explícitamente "compromiso completo del sistema, exfiltración de datos o infiltración de la red." Cuando la aplicación comprometida se ejecuta con privilegios elevados, los atacantes obtienen acceso equivalente a nivel del sistema operativo. 

Las consecuencias confirmadas incluyen la implementación de ransomware, movimiento lateral e instalación persistente de puertas traseras.

Las herramientas SAST detectan de forma fiable llamadas API peligrosas en el código fuente, pero no identifican vulnerabilidades presentes solo en tiempo de ejecución. Las herramientas DAST encuentran puntos de inyección explotables, especialmente al usar técnicas OAST para inyección ciega. 

Las reglas WAF detectan patrones conocidos, pero pueden ser eludidas mediante codificación. La visibilidad del comportamiento a nivel de proceso proporciona la identificación en tiempo de ejecución más fiable. Ninguna herramienta detecta todas las variantes, por lo que es necesario un enfoque en capas.

La infraestructura crítica y las telecomunicaciones enfrentan el mayor riesgo confirmado. Documentos de CISA advierten sobre explotación patrocinada por el estado chino dirigida a telecomunicaciones e infraestructura de routers. 

Las agencias gubernamentales federales enfrentan plazos obligatorios de remediación KEV. Cualquier industria que utilice dispositivos de red expuestos a internet o firmware embebido es un objetivo potencial.

Descubre más sobre Ciberseguridad

Estadísticas de amenazas internasCiberseguridad

Estadísticas de amenazas internas

Obtenga información sobre tendencias, novedades y más acerca de las últimas estadísticas de amenazas internas para 2026. Descubra a qué peligros se enfrentan actualmente las organizaciones, quiénes han sido afectados y cómo mantenerse protegido.

Seguir leyendo
¿Qué es un Infostealer? Cómo funciona el malware de robo de credencialesCiberseguridad

¿Qué es un Infostealer? Cómo funciona el malware de robo de credenciales

Los infostealers extraen de forma silenciosa contraseñas, cookies de sesión y datos del navegador de sistemas infectados. Las credenciales robadas alimentan el ransomware, la toma de cuentas y el fraude.

Seguir leyendo
Estadísticas de ciberseguroCiberseguridad

Estadísticas de ciberseguro

Las estadísticas de ciberseguro para 2026 revelan un mercado de rápido crecimiento. Se observan cambios en los patrones de reclamaciones, una suscripción más estricta y una ampliación de las brechas de protección entre grandes empresas y pequeñas firmas.

Seguir leyendo
¿Qué es la seguridad de aplicaciones? Guía completaCiberseguridad

¿Qué es la seguridad de aplicaciones? Guía completa

La seguridad de aplicaciones protege el software a lo largo del SDLC utilizando herramientas como SAST, DAST, SCA y defensas en tiempo de ejecución. Descubra cómo construir un programa de AppSec.

Seguir leyendo
Experimente la plataforma de ciberseguridad más avanzada

Experimente la plataforma de ciberseguridad más avanzada

Vea cómo la plataforma de ciberseguridad más inteligente y autónoma del mundo puede proteger su organización hoy y en el futuro.

Demostración
  • Comenzar
  • Solicitar una demo
  • Recorrido por el producto
  • Por qué SentinelOne
  • Precios y Paquetes
  • FAQ
  • Contacto
  • Contacto
  • Soporte
  • SentinelOne Status
  • Idioma
  • Plataforma
  • Singularity Platform
  • Singularity Endpoint
  • Singularity Cloud
  • Singularity AI-SIEM
  • Singularity Identity
  • Singularity Marketplace
  • Purple AI
  • Servicios
  • Wayfinder TDR
  • SentinelOne GO
  • Gestión técnica de cuentas
  • Servicios de apoyo
  • Industria
  • Energía
  • Administración Pública
  • Finanzas
  • Sanidad
  • Educación
  • Educación K-12
  • Fabricación
  • Comercio
  • Sector público estatal y local
  • Cybersecurity for SMB
  • Recursos
  • Blog
  • Labs
  • Videos
  • Recorrido por el producto
  • Events
  • Cybersecurity 101
  • eBooks
  • Libros blancos
  • Prensa
  • News
  • Glosario de Ransomware
  • Empresa
  • Quiénes somos
  • Nuestros clientes
  • Carreras
  • Partners
  • Legal & Compliance
  • Declaración de seguridad
  • S Foundation
  • S Ventures

©2026 SentinelOne, Todos los derechos reservados.

Confidencialidad Condiciones de uso

Español