ShadowHS: Um Framework de Pós-Exploração Linux Sem Arquivos Construído em um Hackshell Armazenado
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
ShadowHS é um framework de pós-exploração para Linux sem arquivos que executa um hackshell armado totalmente na memória. Um pequeno carregador decripta uma carga AES-256-CBC, a reconstrói através de descritores de arquivos anônimos e a executa sem tocar no disco. Uma vez em execução, oferece um shell interativo além de módulos para roubo de credenciais, movimento lateral, mineração de criptomoedas e exfiltração silenciosa. O design prioriza furtividade, controle do operador e persistência duradoura em diversos ambientes Linux.
Investigação
Analistas da Cyble desmontaram o carregador encenado, recuperaram um script shell criptografado, mapearam uma cadeia de decriptação baseada em Perl e confirmaram a execução através dos caminhos /proc/*/fd/. Eles documentaram verificações amplas de EDR/AV, lógica anti-competição e módulos sob demanda para força bruta SSH, exploração de kernel e mineração em GPU, com resultados repetíveis em testes. O relatório também lista endpoints C2 codificados e um método de exfiltração rsync-over-GSocket.
Mitigação
Observe a execução de ELF a partir de /proc//fd/, cadeias de decriptação estranhas em OpenSSL/Perl e artefatos de falsificação de argv. Obtenha visibilidade de binários deletados ou apoiados em memfd, ferramentas de despejo de memória e transportes rsync não padrão. Bloqueie pools de mineração conhecidos e restrinja túneis GSocket para controlar abusos. Alerta para uso suspeito de memfd_create em escala.
Resposta
Se detectado, isole o host, capture a memória para investigação, termine o framework na memória e qualquer wrapper de mineração, e bloqueie os IPs/domínios C2 referenciados. Faça um inventário de credenciais expostas, gire chaves e senhas, e fortaleça o sistema. Acompanhe tentativas de movimento lateral e atividade de varredura, incluindo o uso de rustscan e spirit, para dimensionar a propagação e evitar reinfecção.
Fluxo de Ataque
Ainda estamos atualizando esta parte. Inscreva-se para ser notificado
Notifique-MeDetecções
Despejo de Memória Linux via Modo Lote GDB (via cmdline)
Visualizar
Possível Decriptação Linux OpenSSL AES-256-CBC via Pipeline (via cmdline)
Visualizar
Possível Execução Sem Arquivo Linux via /proc/self/fd (via cmdline)
Visualizar
IOCs (HashSha256) para detectar: ShadowHS: Um Framework de Pós-Exploração Linux Sem Arquivo Construído em um Hackshell Armado Parte 1
Visualizar
IOCs (HashSha256) para detectar: ShadowHS: Um Framework de Pós-Exploração Linux Sem Arquivo Construído em um Hackshell Armado Parte 2
Visualizar
IOCs (DestinationIP) para detectar: ShadowHS: Um Framework de Pós-Exploração Linux Sem Arquivo Construído em um Hackshell Armado
Visualizar
IOCs (SourceIP) para detectar: ShadowHS: Um Framework de Pós-Exploração Linux Sem Arquivo Construído em um Hackshell Armado
Visualizar
Detecção do Framework de Pós-Exploração Sem Arquivo ShadowHS [Criação de Processos Linux]
Visualizar
Detectar Uso Indevido de AES-256-CBC -nosalt e Enumeração /proc/*/exe [Evento de Arquivo Linux]
Visualizar
Execução de Simulação
Pré-requisito: O Check pré-voo de Telemetria & Baseline deve ter passado.
Justificativa: Esta seção detalha a execução precisa da técnica do adversário (TTP) projetada para acionar a regra de detecção. Os comandos e a narrativa DEVEM refletir diretamente os TTPs identificados e visam gerar a telemetria exata esperada pela lógica de detecção. Exemplos abstratos ou não relacionados levarão a um diagnóstico incorreto.
-
Narrativa & Comandos de Ataque:
Um atacante que já obteve uma base no host Linux comprometido deseja (1) descriptear um blob de dados previamente exfiltrado usando OpenSSL sem sal para evitar a verificação de entropia extra, e (2) enumerar todos os executáveis em execução via/proc/*/exepara descobrir processos privilegiados que podem conter credenciais ou identificar ferramentas de segurança para desabilitar posteriormente. O atacante executa os seguintes comandos em uma sessão Bash:-
Decriptação OpenSSL (AES‑256‑CBC, sem‑sal) – reproduz a string exata que a regra Sigma monitora:
openssl enc -d -aes-256-cbc -nosalt -in /tmp/stolen.enc -out /tmp/secret.txt -
Enumeração Proc‑exe – itera sobre todos os diretórios numéricos de PID, imprimindo o alvo do
exelink simbólico:for pid in /proc/[0-9]*; do readlink "$pid/exe" done
Essas ações geram dois eventos distintos de criação de processo que satisfazem as
aesandcondições proc_enum.condições. -
-
Script de Teste de Regressão:
#!/usr/bin/env bash set -euo pipefail # ==== 1. Decriptação OpenSSL (AES-256-CBC, sem‑sal) ==== # Crie um arquivo criptografado fictício para o teste echo "SensitiveData123" > /tmp/plain.txt openssl enc -aes-256-cbc -nosalt -salt -out /tmp/stolen.enc -pass pass:TestPass < /tmp/plain.txt # Decrypte usando o padrão exato de detecção openssl enc -d -aes-256-cbc -nosalt -in /tmp/stolen.enc -out /tmp/secret.txt -pass pass:TestPass # ==== 2. Enumere links simbólicos /proc/*/exe ==== for pid in /proc/[0-9]*; do readlink "$pid/exe" done echo "Simulação concluída. Verifique SIEM para alertas." -
Comandos de Limpeza:
#!/usr/bin/env bash set -euo pipefail rm -f /tmp/plain.txt /tmp/stolen.enc /tmp/secret.txt echo "Limpeza finalizada."