Cancellazione Cronologia Comandi: Clear Command History (T1070.003)

La cancellazione della cronologia dei comandi rientra nella tattica Defense Evasion (TA0005) del framework MITRE ATT&CK e rappresenta una delle tecniche più basilari — ma persistenti — con cui un attaccante prova a coprire le proprie tracce dopo aver operato su una shell interattiva.

Ogni interprete di comandi moderno tiene traccia dei comandi digitati per consentire all'utente di rivederli. Su Linux e macOS questo avviene tramite il file puntato dalla variabile HISTFILE, tipicamente ~/.bash_history o ~/.zsh_history, popolato al logout della sessione. Su Windows convivono due meccanismi PowerShell: la history built-in, volatile e legata alla sessione, e quella persistente gestita dal modulo PSReadLine, che scrive su ConsoleHost_history.txt sotto %APPDATA%. Anche gli hypervisor ESXi conservano l'attività shell in /var/log/shell.log, mentre i dispositivi di rete espongono comandi come clear history e clear logging.

L'impatto operativo è duplice. Sul piano tattico, azzerare la cronologia ostacola il triage rapido durante un incident e priva l'analista di uno dei primi elementi di contesto sulle azioni post-exploitation. Sul piano strategico, la tecnica è stata osservata in 8 gruppi APT documentati e 3 famiglie malware, con mitigazioni codificate in M1022, M1029 e M1039. La detection ufficiale prevede cinque analitiche comportamentali che coprono Linux, macOS, Windows, ESXi e apparati di rete.

Dal punto di vista offensivo, la cancellazione della cronologia è uno degli ultimi step di una catena post-exploitation, generalmente eseguita subito prima del logout o della chiusura della reverse shell. L'errore tipico del principiante è invocare history -c dimenticando che il file su disco viene comunque riscritto al termine della sessione: è quindi necessaria una procedura più accurata.

Su Linux, la sequenza operativa in un contesto red team lab-safe prevede innanzitutto di disabilitare la scrittura futura della history con unset HISTFILE oppure export HISTFILE=/dev/null, poi svuotare il buffer in memoria con history -c e infine rimuovere il file persistente con shred -u ~/.bash_history per evitare recuperi banali. Un attaccante avanzato può anche impostare export HISTSIZE=0 all'inizio della sessione, evitando del tutto la registrazione. La variante osservata in TeamTNT (G0139) e nel malware Hildegard (S0601) si limita al semplice history -c, che rimane il pattern più comune ma anche il più rumoroso.

Su macOS vale la stessa logica, con l'accortezza di gestire ~/.zsh_history dato che Zsh è la shell di default dalle versioni recenti di macOS.

Su Windows, la simulazione di Medusa Group (G1051) riproduce il comportamento reale eseguendo Remove-Item (Get-PSReadlineOption).HistorySavePath, che elimina ConsoleHost_history.txt. Il solo Clear-History non basta perché pulisce unicamente la sessione corrente. Un red teamer completo aggiunge anche Set-PSReadlineOption -HistorySaveStyle SaveNothing per disattivare la scrittura futura e valuta la rimozione dei log di script block logging tramite wevtutil cl "Microsoft-Windows-PowerShell/Operational", tattica documentata per menuPass (G0045).

Su ESXi, come replicato da APT5 (G1023), si agisce direttamente su /var/log/shell.log con echo "" > /var/log/shell.log oppure cat /dev/null > /var/log/shell.log, evitando rm che genera pattern audit distintivi.

Sui network device Cisco-like, i comandi canonici sono clear logging e clear history, con eventuale clear counters per rimuovere metadati aggiuntivi.

Per esercizi controllati sono utili framework come Atomic Red Team (open source) di Red Canary, che include test specifici per T1070.003 su tutte le piattaforme citate, e Caldera (open source) di MITRE per orchestrare la sequenza in un playbook adversary emulation completo.

Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?

Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo

TEST GRATUITO
2 minuti · 7 domande Che professionista cyber sei? Scopri il profilo più vicino al tuo modo di pensare e inizia dal percorso giusto.