
Prueba de concepto que demuestra una vulnerabilidad de inyección de comandos en la herramienta MS-Agent Shell, que permite la ejecución arbitraria de comandos y una shell inversa mediante la evasión de los controles de seguridad con Python.
Se identificó una vulnerabilidad crítica de inyección de comandos (CVE-2026–2256, CVSS X.X) en el componente de herramienta Shell del framework MS-Agent versión 1.5.2. La vulnerabilidad surge de una sanitización inadecuada de la entrada influenciada por el usuario que se pasa directamente a un contexto de ejecución de shell, lo que permite la evaluación no intencionada de comandos. Un atacante puede explotar esta falla inyectando contenido manipulado en las fuentes de datos consumidas por el agente, como prompts, documentos, registros o entradas de investigación, sin requerir acceso directo al shell ni un uso indebido explícito por parte del operador. Como resultado, se pueden ejecutar comandos arbitrarios con los privilegios del proceso MS-Agent en el sistema host como parte del flujo de ejecución normal del agente, lo que potencialmente conduce al compromiso total del host.
La herramienta Shell es un componente interno de MS-Agent que permite a los agentes ejecutar comandos del sistema operativo en el host. Está diseñada para admitir flujos de trabajo del agente, como gestión de archivos, navegación de directorios y tareas de automatización, delegando la ejecución de comandos al sistema operativo subyacente.
Este PoC simplificado muestra cómo se puede eludir la función check_safe() en la herramienta Shell de ms-agent para establecer una reverse shell usando Python.
nc (netcat)Ejecute el PoC para verificar que el comando elude las comprobaciones de seguridad. Salida esperada: ✓ BYPASS EXITOSO - el comando pasa todas las comprobaciones de seguridad
Abra una NUEVA ventana de terminal y ejecute:
nc -l 1111
Esto inicia un listener en el puerto 1111. Deje esta terminal abierta y en espera.
En su terminal original, ejecute:
./reverse_shell_poc.py --execute
Cuando se le solicite, escriba yes y presione Enter.
Cambie a la terminal con el listener de netcat (del Paso 2). ¡Ahora debería tener un prompt de shell!
Pruebe comandos como:
whoami - ver su nombre de usuariopwd - ver el directorio actualls - listar archivosexit - cerrar la conexiónpython3 para ejecutar código arbitrariopython3 NO está en la lista de comandos bloqueadosLa función check_safe() bloquea comandos como:
sudo, rm -rf /, chmod, curl | bash, etc.Pero NO bloquea:
python3 (ejecución de código arbitrario)nc (netcat - conexiones de red)perl, ruby, node (otros intérpretes)Esto demuestra una vulnerabilidad CRÍTICA:
Después de las pruebas, puede eliminar el directorio de prueba:
rm -rf /tmp/test_output
Esta es una demostración solo para localhost (se conecta a 127.0.0.1). Este PoC evita intencionalmente la conectividad remota para reducir el riesgo de abuso.