Framework de ataque modular em Python3 para automatizar a exploração de plataformas SIEM (Splunk, Graylog, OSSIM, QRadar, McAfee) através de roubo de credenciais, implantação de payload e módulos de pós-exploração.
MultiSIEM Modular Python3 Attack Framework
Por ElevenPaths https://www.elevenpaths.com/
Uso: python3 ./siemsframework.py
SIEMs são ferramentas defensivas cada vez mais utilizadas no campo da cibersegurança, especialmente por grandes empresas e companhias que monitoram sistemas e redes altamente críticos. No entanto, do ponto de vista de um atacante, as permissões concedidas aos SIEMs em sistemas e contas de redes corporativas são altas. Além disso, o acesso administrativo aos SIEMs pode ser usado para obter execução de código no servidor onde tal SIEM está instalado, e às vezes também em máquinas clientes, considerando que um SIEM coleta eventos como servidores Active Directory, servidores AWS, bancos de dados e dispositivos de rede (por exemplo, Firewalls e Roteadores).
Durante nossa investigação, detectamos uma grande quantidade de vetores de ataque que podem ser usados nos vários SIEMs para comprometê-los, por exemplo:
• Obter contas de usuário e senhas armazenadas no SIEM de sistemas críticos (servidores LDAP/AD, bancos de dados, dispositivos de rede, servidores AWS).
• Desenvolver e instalar aplicações maliciosas como reverse shells Windows/Linux, bind shells Windows/Linux ou scripts maliciosos com o objetivo de comprometer o servidor onde o SIEM está instalado.
• Desenvolver e instalar aplicações maliciosas como reverse shells Windows/Linux, bind shells Windows/Linux ou scripts maliciosos com o objetivo de comprometer as máquinas das quais o SIEM coleta eventos.
• Criar e aplicar ações ou notificações maliciosas que permitam executar comandos quando um determinado evento ocorrer, por exemplo com o propósito de obter uma reverse shell no servidor onde o SIEM está instalado.
• Aproveitar senhas padrão e fraquezas do SIEM nas configurações das imagens OVA para obter credenciais de administrador do servidor, banco de dados ou até mesmo da interface web do SIEM.
• Realizar ataques de dicionário ou ataques de força bruta contra a interface web ou administrativa, ou contra o software cliente do SIEM, para obter credenciais de administrador.
• Ler arquivos arbitrários do servidor onde o SIEM está instalado.
• Obter informações de configuração do SIEM e outros parâmetros relevantes para realizar ataques adicionais.
Com base nos resultados da investigação, foi desenvolvida a ferramenta Open Source SIEMs Framework. É uma ferramenta modular desenvolvida em Python3 pela equipe de Inovação e Laboratório da ElevenPaths. Ela permite automatizar potenciais ataques a vários SIEMs existentes no mercado (tanto comerciais quanto open source).
O SIEMs Framework suporta múltiplos payloads de ataque que podem ser selecionados de acordo com o SIEM a ser atacado e seu sistema operacional. Existem payloads disponíveis em PowerShell, Python, Bash, Exe e mais formatos. Uma vez executado o ataque selecionado, a ferramenta mostra os resultados na tela e é possível retornar e executar qualquer outro ataque no mesmo SIEM ou selecionar outro SIEM para comprometer. Possui uma interface simples, fácil de usar e intuitiva. Atualmente pode ser usado com os seguintes SIEMs: Splunk, Graylog e OSSIM.
O SIEMs Framework pode ser baixado do nosso Github baixando o arquivo .zip ou clonando o repositório, e apresenta os seguintes requisitos que podem ser instalados através de pip3 install -r requirements.txt:
• splunk-sdk
• requests
• python-nmap
• colorama
• pandas
• paramiko
• pymongo
• qradar4py
• requests_mock
• urllib3
Uma vez instalados os requisitos, a ferramenta pode ser usada da seguinte forma: python3 ./siemsframework.py
Quando a ferramenta é executada, o menu principal é exibido, e lá você deve selecionar se deseja escanear um IP específico onde haveria um SIEM ou uma rede para detectar os SIEMs dentro dela. Para escanear e detectar o SIEM dentro de um endereço IP específico você deve usar a opção 1, e para escanear a rede a opção 2.
Ao selecionar a opção 1 “Scan and Detect SIEM”, a ferramenta solicita o endereço IP para escanear as portas específicas dos SIEMs suportados e conectar-se à interface web ou de gerenciamento para verificar que é realmente um SIEM.
Uma vez detectado o SIEM seguindo os métodos acima, a ferramenta mostra o SIEM detectado em vermelho e oferece a opção de lançar o módulo de ataque daquele SIEM.
Ao selecionar a opção 2 “Find SIEMs on the network” a ferramenta solicita a rede a ser escaneada em notação CIDR, por exemplo: 192.168.137.0/24. Uma vez inserida a informação, o SIEMs Framework realiza primeiramente uma descoberta para detectar os sistemas ativos; em seguida, as portas padrão dos SIEMs suportados são escaneadas, e finalmente ele se conecta à interface web ou de gerenciamento de cada um desses sistemas para verificar que é realmente um SIEM.
Uma vez detectados os SIEMs seguindo os métodos acima, a ferramenta mostra os SIEMs detectados em vermelho e solicita o endereço IP do SIEM a ser atacado.
Ao digitar “y” e selecionar o lançamento dos módulos de ataque Splunk, a ferramenta mostra todos os possíveis ataques a serem realizados contra este SIEM. Para os dois primeiros ataques não são necessárias credenciais, mas para o quinto são necessários privilégios de administrador do Splunk.
Este módulo de ataque contém um dicionário específico para Splunk chamado dict.txt, composto pelas 100 senhas mais usadas em 2018 e várias permutações do nome comercial do SIEM e seu usuário admin, em letras maiúsculas e minúsculas, e substituindo vogais por números. Caso deseje usar qualquer outra lista diferente da mencionada acima, /splunk/dict.txt pode ser substituído por qualquer outra lista de palavras, desde que o nome do arquivo seja mantido. A política de senhas do Splunk não se aplica a usuários com função admin, portanto restrições quanto a bloqueio de conta devido a tentativas de acesso sem sucesso não se aplicam. Antes de iniciar o ataque de dicionário, a ferramenta verifica se o Splunk a ser analisado possui a versão Free que não utiliza nenhum tipo de autenticação, ou se ainda mantém a senha padrão “changeme” das versões mais antigas deste software:
Caso o servidor Splunk a ser analisado tenha a interface web ativa, este módulo permite obter informações do servidor e da sessão diretamente da interface web sem necessidade de autenticação. 8000 é a porta padrão da interface web do Splunk; para usar este módulo é necessário saber e informar a porta onde a interface web está publicada.
Este módulo pode ser usado no Splunk Server ou Universal Forwarder. Para usá-lo, são necessárias credenciais de administrador do Splunk, que podem ser obtidas por exemplo através de um ataque de dicionário (1º ataque). O resultado do módulo são as informações da instalação atual do Splunk: versão, sistema operacional, configurações do Splunk e mais.
Este módulo é usado apenas em servidores Splunk. Para usá-lo, são necessárias credenciais de administrador do Splunk, que podem ser obtidas por exemplo através de um ataque de dicionário (1º ataque). O resultado do módulo são todas as credenciais armazenadas pelos aplicativos usados no Splunk para conectar-se aos dispositivos dos quais os eventos são obtidos.