# 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)*