Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2020-11851 — Vulnerabilidade de Execução Remota de Código no ArcSight Logger | Kitploit
Ferramentas/GitHubGitHub/ch1nghz/cve-2020-11851
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoComando e ControleFerramenta de Acesso Remoto
GitHubch1nghz/cve-2020-11851

CVE-2020-11851

Vulnerabilidade de Execução Remota de Código no ArcSight Logger

Ver Repositório
20116há 5 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2020-11851

Vulnerabilidade de Execução Remota de Código no ArcSight Logger (via ArcSight Management Center)

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

Resumo Executivo

Contexto da Vulnerabilidade

O ArcSight Logger é uma solução abrangente de gerenciamento de logs que reduz os encargos de conformidade e permite investigações forenses mais rápidas para profissionais de segurança, unificando e armazenando logs de dados de máquina de toda a organização e facilitando a pesquisa rápida e a geração de relatórios sobre esses dados.

O ArcSight Management Center (ArcMC) é um centro centralizado de gerenciamento de segurança que administra grandes implantações de soluções ArcSight, como ArcSight Logger, ArcSight SmartConnectors (Connectors), ArcSight FlexConnectors e ArcSight Connector Appliance (ConApp), por meio de uma única interface.

A vulnerabilidade pode ser explorada por meio da funcionalidade de backup do ArcSight Management Center (versão: 2.7.1.2065.0). Essa opção de backup funciona usando scripts "expect" do ArcSight Logger, que utilizam a Tool Command Language (Tcl). A vulnerabilidade permite que atacantes executem comandos Tcl arbitrários. Essa vulnerabilidade afeta o produto Micro Focus ArcSight Logger em todas as versões anteriores à 7.1.1.

Conclusão

O servidor que executa o software vulnerável pode ser comprometido por atacantes por meio da vulnerabilidade de RCE e se tornar uma cabeça de ponte a partir da qual um adversário poderia lançar ataques adicionais contra os servidores da organização, culminando em uma violação grave. Essa vulnerabilidade pode resultar em perda, corrupção ou divulgação de dados a partes não autorizadas, perda de responsabilização ou negação de acesso.

Recomendações

Recomenda-se verificar as práticas recomendadas de segurança Tcl para scripts "expect". Basicamente, usar chaves em eval seria seguro, como abaixo:

eval puts $exploit   ;# vulnerável  

eval "puts $exploit" ;# vulnerável

eval {puts $exploit} ;# seguro

Mais informações podem ser encontradas aqui: https://wiki.tcl-lang.org/page/Injection+Attack

Contexto Técnico

Esta seção detalha vetores de injeção de comandos que podem ser usados para detectar a vulnerabilidade no ArcSight Logger. Os títulos abaixo podem ser usados para reproduzir as etapas do ataque.

Explorando a opção de backup vulnerável

Na aba de administração, há uma opção de backup.

1

Como podemos ver, podemos configurar um servidor de backup remoto usando o protocolo SCP. Após clicar no botão "Save", depurei os processos do servidor usando a ferramenta "pspy", que pode ser baixada aqui: https://github.com/DominicBreuker/pspy/releases

Depurando o servidor e análise da causa raiz

Após salvar a configuração de backup, detectei que o aplicativo usa um script bash para verificar o servidor SSH, como abaixo (observe o PID 95427):

2

Aqui está o comando mais detalhado (PID 95427) para explicação:

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

Vamos analisar o conteúdo de "runexpect.sh" e "scp.expect.dir.backup1" (script expect) antes de explicar a lógica de "runexpect.sh".

Aqui está o conteúdo de "runexpect.sh":

#!/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 $? 

E aqui está o conteúdo do script expect chamado "scp.expect.dir.backup1"

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 "\\$ $" 

Como podemos ver, "runexpect.sh" define a variável de ambiente (LD_LIBRARY_PATH) e então executa o binário "expect" usando o script "expect" chamado "scp.expect.dir.backup1". Esse script "expect" recebe 4 argumentos para usá-los no comando "ssh".

A vulnerabilidade real começa na linha 5 do script chamado "scp.expect.dir.backup1". Como mencionamos anteriormente, sem chaves, as entradas fornecidas pelo usuário podem ser muito perigosas em scripts Tcl.

Obtendo a execução de código

Como essa vulnerabilidade de execução de código é completamente cega, usei a maneira mais simples de demonstrar a execução. Usei a ferramenta "pspy" para depurar os processos e ilustrar a execução arbitrária de código enviando a solicitação HTTP maliciosa.

Aqui está a lógica que eu queria que o script "expect" executasse:

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

Vamos explicar como chegar a isso. Se eu colocar espaços entre as "strings" no parâmetro "field-username" da solicitação HTTP relacionada, ela seria interpretada involuntariamente pelo script "expect", porque ele não valida a contagem de argumentos, ou seja, eu poderia injetar [exec como o número da porta e id] como o nome de usuário. Normalmente, eu não poderia injetar o parâmetro de número da porta da solicitação HTTP relacionada por causa da validação de entrada (deveria ser apenas dígitos).

Após enviar a solicitação HTTP abaixo, executei o comando com sucesso e imprimi sua saída com a ferramenta "pspy".

3

4

Aqui está a solicitação CURL correspondente que usei para explorar a vulnerabilidade (por favor, modifique os tokens relacionados à sessão e o alvo):

Baixar ferramenta