# T1562.003 - Impair Command History Logging > [!abstract] Técnica MITRE ATT&CK > **ID:** T1562.003 | **Tática:** Defense Evasion | **Plataformas:** Linux, macOS, Windows, ESXi, Network Devices > **Técnica pai:** [[t1562-impair-defenses|T1562 - Impair Defenses]] ## Descrição Adversários podem comprometer o registro do histórico de comandos para ocultar as ações executadas em um sistema comprometido. Interpretadores de linha de comando - como Bash, Zsh, PowerShell e shells de equipamentos de rede - mantêm logs das sessões para fins de auditoria e troubleshooting. Ao suprimir ou manipular esses registros, o adversário elimina uma das principais trilhas forenses disponíveis para analistas de resposta a incidentes. Essa subtécnica é especialmente perigosa porque atua na fase de **pós-comprometimento**: o invasor já obteve acesso interativo e precisa garantir que suas ações de reconhecimento, movimento lateral e exfiltração não fiquem registradas no sistema. É comumente empregada por atores de ameaça com foco em **persistência silenciosa** e operações de longa duração (long-haul operations), como as típicas de grupos de espionagem estatal. A técnica é um sub-componente de [[t1562-impair-defenses|T1562 - Impair Defenses]], que agrupa o conjunto de táticas para degradar as capacidades de detecção e resposta do defensor. O impacto forense é direto: sem o histórico de comandos, investigadores perdem visibilidade sobre quais ferramentas foram invocadas, quais arquivos foram acessados e qual sequência de ações o adversário executou durante a intrusão. --- ## Como Funciona ### Linux e macOS - Variáveis de Ambiente Bash/Zsh O mecanismo mais explorado em sistemas Unix-like envolve a manipulação de variáveis de ambiente que controlam o comportamento do histórico de shell: | Variável | Função Normal | Abuso pelo Adversário | |----------|--------------|----------------------| | `HISTFILE` | Aponta para `~/.bash_history` | `unset HISTFILE` - desabilita gravação | | `HISTFILESIZE` | Tamanho máximo do arquivo | `export HISTFILESIZE=0` - trunca para zero | | `HISTSIZE` | Linhas mantidas em memória | `export HISTSIZE=0` - sem buffer em RAM | | `HISTCONTROL` | Filtragem de entradas | `ignorespace` - ignora comandos precedidos por espaço | O método mais discreto é o uso de `HISTCONTROL=ignorespace`: basta adicionar um espaço antes de cada comando para que ele nunca sejá gravado. Isso não altera arquivos de configuração, não exige privilégios elevados e não deixa rastro óbvio nas verificações de auditoria. Outros vetores incluem redirecionar `HISTFILE` para `/dev/null` ou para um arquivo temporário que é excluído ao final da sessão. ### Windows - PowerShell PSReadLine No Windows, o módulo `PSReadLine` mantém o histórico de todas as sessões PowerShell em: ``` %APPDATA%\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt ``` Adversários utilizam os seguintes comandos para desabilitar o logging: ```powershell # Redirecionar histórico para arquivo falso Set-PSReadLineOption -HistorySavePath "C:\Windows\Temp\null.txt" # Desabilitar completamente o salvamento Set-PSReadlineOption -HistorySaveStyle SaveNothing # Limpar histórico em memória durante a sessão Clear-History ``` ### Equipamentos de Rede Cisco (IOS/IOS-XE) Em dispositivos de rede, o adversário com acesso privilegiado pode desabilitar o logging via CLI: ``` Router(config)# no logging buffered Router(config)# no logging console Router(config)# no logging monitor ``` Essa abordagem é associada à técnica [[t1059-008-network-device-cli|T1059.008 - Network Device CLI]] e é frequentemente combinada com implantação de implantes como [[s1186-line-dancer|Line Dancer]] e [[s1161-bpfdoor|BPFDoor]] em dispositivos perimetrais. ### ESXi Em hipervisores VMware ESXi, o `HISTFILE` é utilizado de forma similar ao Bash em Linux. O grupo [[g1048-unc3886|UNC3886]] foi documentado suprimindo o histórico de shell em hosts ESXi durante operações de espionagem de longa duração contra alvos de infraestrutura crítica. --- ## Attack Flow ```mermaid graph TB A([Acesso Inicial Obtido]) --> B[Estabelece Sessão Interativa<br/>SSH / RDP / Console] B --> C{Plataforma Alvo} C -->|Linux/macOS| D[Manipula Variáveis de Ambiente<br/>unset HISTFILE<br/>export HISTSIZE=0] C -->|Windows| E[Desabilita PSReadLine<br/>Set-PSReadlineOption<br/>-HistorySaveStyle SaveNothing] C -->|Cisco IOS| F[Executa no logging<br/>via CLI privilegiado] C -->|ESXi| G[Manipula HISTFILE<br/>no shell de gestão] D --> H[Comandos de Reconhecimento<br/>Movimento Lateral<br/>Exfiltração Executados] E --> H F --> H G --> H H --> I[Sessão Encerrada] I --> J{Rastros Disponíveis\npara Forense?} J -->|Histórico suprimido| K([Trilha Forense Eliminada<br/>Responsers sem visibilidade]) J -->|Auditoria alternativa presente| L([Detecção via auam / syslog<br/>auditd / Sysmon]) style A fill:#d9534f,color:#fff style K fill:#d9534f,color:#fff style L fill:#5cb85c,color:#fff style H fill:#f0ad4e,color:#333 ``` --- ## Exemplos de Uso por Atores Reais ### Sea Turtle - Espionagem via DNS Hijacking O grupo [[g1041-sea-turtle|Sea Turtle]] (também conhecido como Teal Kurma), vinculado à Turquia e ativo desde 2017, utiliza T1562.003 como parte de seu modus operandi pós-comprometimento em campanhas de DNS hijacking contra alvos no Oriente Médio e Europa. Após obter acesso a servidores Linux de registradores de DNS e provedores de telecomúnicações, o grupo suprime o histórico de shell para ocultar as etapas de modificação de registros DNS e coleta de credenciais. A combinação com [[s1161-bpfdoor|BPFDoor]] - um backdoor passivo para Linux - permite operações de longa duração sem gerar ruído em logs de autenticação. ### APT38 - Cobertura de Trilhas Pós-Roubo Financeiro O [[g0082-apt38|APT38]], braço financeiro do grupo norte-coreano Lazarus, aplica T1562.003 específicamente na fase de limpeza após operações de fraude em sistemas SWIFT e plataformas bancárias. Documentado pelo Mandiant em múltiplas investigações de resposta a incidentes em bancos da América Latina e Sudeste Asiático, o grupo executa `unset HISTFILE` e `export HISTSIZE=0` nos primeiros segundos de uma sessão interativa, antes de iniciar qualquer atividade de reconhecimento interno. Isso reduz drasticamente a quantidade de evidências disponíveis para perícia forense pós-incidente. ### UNC3886 - Persistência em Ambientes ESXi O grupo [[g1048-unc3886|UNC3886]], rastreado pelo Mandiant como ator de espionagem com possível nexo à China, foi documentado em 2023 e 2024 comprometendo hosts VMware ESXi e appliances de segurança de rede (FortiGaté, Ivanti). Em sistemas ESXi, o grupo manipula o `HISTFILE` do shell de gerenciamento e implanta [[s1217-virtualpita|VIRTUALPITA]] e [[s1218-virtualpie|VIRTUALPIE]] como backdoors persistentes. A supressão do histórico de shell complementa a estratégia de living-off-the-land do grupo, que evita ferramentas de ataque convencionais detectáveis por EDR. ### Medusa Group - Ransomware com Anti-Forense O [[g1051-medusa-ransomware|Medusa Group]] (não confundir com Medusa ransomware) incorpora T1562.003 em playbooks de pré-ransomware. Durante a fase de dwell time - que pode durar semanas - o grupo opera silenciosamente em ambientes Windows e Linux, utilizando `Set-PSReadlineOption -HistorySaveStyle SaveNothing` em sessões PowerShell para ocultar a enumeração de domínio, exfiltração de dados e implantação de beacons [[s0154-cobalt-strike|Cobalt Strike]] antes de ativar o payload de criptografia. --- ## Detecção ### Estrategia de Detecção em Camadas > [!warning] Paradoxo de Detecção > A técnica remove exatamente a evidência que seria usada para detectá-la. A detecção eficaz requer fontes alternativas de telemetria independentes do histórico de shell - como auditd, EDR e SIEM com coleta em tempo real. **Fontes de dados primárias:** - `auditd` (Linux) - syscalls `execve`, `openat`, modificações em variáveis de ambiente - Sysmon (Windows) - `ProcessCreaté` com linha de comando PowerShell - Windows Event Log - PowerShell Script Block Logging (Event ID 4104) - EDR - captura de linha de comando em tempo de execução ### Regra Sigma - Manipulação de HISTFILE (Linux) ```yaml title: Manipulação de Histórico Shell Linux (T1562.003) id: a3c1f8e2-9b44-4d77-8f12-bc3e7a901234 status: stable description: > Detecta tentativas de suprimir o histórico de comandos Bash/Zsh através de manipulação de variáveis de ambiente HIST*. Cobertura: unset HISTFILE, HISTSIZE=0, HISTFILESIZE=0, redirecionamento para /dev/null. references: - https://attack.mitre.org/techniques/T1562/003/ author: RunkIntel Detection Engineering daté: 2026-03-25 tags: - attack.defense_evasion - attack.t1562.003 logsource: product: linux category: process_creation detection: selection_unset: CommandLine|contains: - 'unset HISTFILE' - 'unset HISTSIZE' - 'unset HISTCONTROL' selection_zero: CommandLine|re: 'HIST(FILE|SIZE|FILESIZE)\s*=\s*(0|/dev/null)' selection_ignorespace: CommandLine|contains: - 'HISTCONTROL=ignorespace' - 'HISTCONTROL=ignoreboth' condition: 1 of selection_* falsepositives: - Scripts de configuração de ambiente legítimos (verificar contexto de usuário) - Ambientes de CI/CD com configurações de shell customizadas level: high ``` ### Regra Sigma - Desabilitação PSReadLine (Windows) ```yaml title: Desabilitação de Histórico PowerShell PSReadLine (T1562.003) id: b7e2d4a1-3c88-4f99-a012-de5f8b234567 status: stable description: > Detecta uso de Set-PSReadLineOption com HistorySaveStyle SaveNothing ou redirecionamento do HistorySavePath para suprimir histórico PowerShell. references: - https://attack.mitre.org/techniques/T1562/003/ author: RunkIntel Detection Engineering daté: 2026-03-25 tags: - attack.defense_evasion - attack.t1562.003 logsource: product: windows category: ps_script definition: PowerShell Script Block Logging habilitado (Event ID 4104) detection: selection_savestyle: ScriptBlockText|contains|all: - 'Set-PSReadLineOption' - 'SaveNothing' selection_savepath: ScriptBlockText|contains|all: - 'Set-PSReadLineOption' - 'HistorySavePath' selection_clearhistory: ScriptBlockText|contains: 'Clear-History' condition: 1 of selection_* falsepositives: - Scripts de hardening que desabilitam histórico intencionalmente (documentar baseline) level: medium ``` --- ## Mitigação | ID | Mitigação | Implementação | |----|-----------|---------------| | [[m1028-operating-system-configuration\|M1028 - Operating System Configuration]] | Configurar shell para logging forçado via `/etc/profile.d/` ou política de GPO; desabilitar alterações de `HISTFILE` por usuários não-privilegiados. Usar `readonly HISTFILE` no `/etc/profile`. | | [[m1039-environment-variable-permissions\|M1039 - Environment Variable Permissions]] | Restringir permissões de modificação de variáveis de ambiente críticas. Em Linux, usar PAM com `pam_env.so` para fixar valores. Em Windows, restringir Set-PSReadLineOption via Constrained Language Mode no PowerShell. | | Centralização de Logs | Implementar soluções de logging centralizado (auditd + SIEM, Sysmon + Sentinel/Splunk) que capturem execução de processos independentemente do histórico de shell. Logs centralizados são imunes à manipulação local. | | PowerShell Logging | Habilitar Script Block Logging (HKLM\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging) para capturar todo código PowerShell em tempo de execução, independente de PSReadLine. | | Least Privilege | Limitar acesso SSH interativo a contas de serviço; preferir acesso auditado via bastions com gravação de sessão (session recording) - soluções como CyberArk, Teleport ou AWS Session Manager. | --- ## Contexto Brasil/LATAM > [!info] Relevância Regional > A técnica tem presença documentada em campanhas que afetam o Brasil, especialmente em operações contra o setor financeiro e infraestrutura de telecomúnicações. ### Exposição do Setor Financeiro Brasileiro O setor financeiro brasileiro - alvo prioritário do [[g0082-apt38|APT38]] e grupos de crime organizado como [[prilex|Prilex]] - é particularmente vulnerável a esta técnica. Bancos operam grandes ambientes Linux (servidores de aplicação, mainframes com interface Unix-like) onde o controle de histórico de shell é frequentemente negligenciado nas políticas de hardening. A LGPD e as regulações do Banco Central (BACEN) exigem trilha de auditoria, mas raramente específicam controles técnicos para imutabilidade do histórico de shell. ### Infraestrutura de Telecomúnicações O grupo [[g1041-sea-turtle|Sea Turtle]] tem histórico de comprometer provedores de DNS e empresas de telecomúnicações. O Brasil, como maior mercado de telecomúnicações da América Latina, é um alvo atrativo. Roteadores e equipamentos de rede de fabricantes como Cisco rodam IOS - exatamente a plataforma descrita no comportamento de T1562.003 para suprimir logs via `no logging`. ### Recomendações para SOCs Brasileiros - Implementar **auditd** com regras para monitorar `EXECVE` de comandos shell críticos - o histórico de shell é redundante quando auditd está ativo - Configurar **SIEM** para alertar em tempo real sobre modificações em `/etc/profile`, `~/.bashrc`, `~/.bash_profile` e `~/.zshrc` - Adotar **session recording** em acessos privilegiados, especialmente em sistemas de pagamento e infraestrutura SWIFT - Revisar a política de **PSReadLine** em ambientes Windows Server / Active Directory - a maioria dos ambientes brasileiros mantém configurações padrão sem logging reforçado --- ## Referências - [MITRE ATT&CK - T1562.003](https://attack.mitre.org/techniques/T1562/003/) - [Mandiant - APT38 Financial Crime TTPs](https://www.mandiant.com/resources/apt38-details-on-new-north-korean-regime-backed-clandestine-operations) - [Mandiant - UNC3886 ESXi Intrusions (2023)](https://www.mandiant.com/resources/blog/vmware-esxi-zero-day-bypass) - [Microsoft - PSReadLine Documentation](https://docs.microsoft.com/en-us/powershell/module/psreadline/) - [NSA/CISA - Network Infrastructure Security Guide](https://media.defense.gov/2022/Jun/15/2003018261/-1/-1/0/CTR_NSA_NETWORK_INFRASTRUCTURE_SECURITY_GUIDE_20220615.PDF) **Técnicas Relacionadas:** [[t1562-impair-defenses|T1562 - Impair Defenses]] · [[t1059-001-powershell|T1059.001 - PowerShell]] · [[t1059-008-network-device-cli|T1059.008 - Network Device CLI]] · [[t1070-003-clear-command-history|T1070.003 - Clear Command History]] · [[t1542-005-tftp-boot|T1542.005 - TFTP Boot]] **Software Associado:** [[s1186-line-dancer|Line Dancer]] · [[s1161-bpfdoor|BPFDoor]] · [[s1217-virtualpita|VIRTUALPITA]] · [[s0692-silenttrinity|SILENTTRINITY]] --- *Fonte: [MITRE ATT&CK - T1562.003](https://attack.mitre.org/techniques/T1562/003)*