SOC Prime Bias: Crítico

05 Fev 2026 19:59

ShadowHS: Um Framework de Pós-Exploração Linux Sem Arquivos Construído em um Hackshell Armazenado

Author Photo
Ruslan Mikhalov Chefe de Pesquisa de Ameaças na SOC Prime linkedin icon Seguir
ShadowHS: Um Framework de Pós-Exploração Linux Sem Arquivos Construído em um Hackshell Armazenado
shield icon

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-Me

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/*/exe para 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:

    1. 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
    2. Enumeração Proc‑exe – itera sobre todos os diretórios numéricos de PID, imprimindo o alvo do exe link 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 aes and condiçõ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."