Chiunque si interessi di ethical hacking sarà venuto a contatto con uno strumento di estremo interesse quale Impacket, progetto open source di SecureAuth (dal 2017 fusa con Core Security e dal 2019 entrambe in HelpSystem, produttrice di Cobalt Strike, discusso software di penetration test, apparentemente molto amato anche dagli agenti di minaccia).
Ebbene, lo stesso destino di critiche può essere intravisto anche per lo strumento più primitivo quale Impacket, ad oggi sempre più visibile nelle tracce lasciate da agenti di minaccia durante le loro scorribande.
Ma cosa è Impacket. Come premesso si tratta di un progetto open source, ovvero essenzialmente una raccolta di moduli Python, capace di agire su un considerevole insieme di protocolli di rete. Nulla di particolarmente interessante se non fosse per tutti quei protocolli che invece consentono attività su sistema remoto quali esecuzione codice, scarico delle credenziali, sniffing di pacchetti e la manipolazione di protocolli di autenticazione come Kerberos. A questo punto anche un solo semplice strumento capace di queste cose minute (ma precise) può inserirsi in una più complessa strategia di attacco di cui rendersi protagonista in una specifica “nicchia” tattica.
Per esempio, uno strumento di Impacket molto popolare nelle squadre rosse è wmiexec.py, uno strumento che, utilizzando protocolli nativi di Windows e dunque ivi presenti (in effetti utilizza WMI, Windows Management Instrumentation, attraverso una connessione DCOM/RPC tramite il protocollo Server Message Block sulla porta 135) consente legittimamente di eseguire comandi su sistemi remoti attraverso una shell semi-interattiva senza il bisogno di predisporre preventivamente nulla sull’obiettivo.
La connessione richiesta da wmiexec.py e la conseguente esecuzione di comandi richiedono però un utente e password validi su sistema (o equivalentemente un hash NTLM), ma questo evidentemente è un requisito da risolvere in una altra fase strategica: lo strumento wmiexec.py è dunque solo inteso per la realizzazione della tecnica di movimento laterale, che evidentemente è frutto di una qualche altra azione sul perimetro già in uno stato avanzato di attacco.
In questo senso dunque wmiexec.py non è di per sé uno strumento di attacco, ma è evidente come questo possa integrarsi in una più ampia strategia di attacco ricoprendo il ruolo dello strumento atto alla realizzazione di tattiche di movimento laterale. Una differenza piccola, ma significativa.
Sebbene possa destare qualche sorpresa, il rilevamento in natura di tracce di utilizzo di uno strumento di tal genere da parte di agenti di minaccia non è più una novità, e ne sottolinea l’efficacia tattica, dimostrando ancora una volta come il comportamento degli agenti di minaccia sia “opportunistico”, ossia capace di interpretare le proprie esigenze con qualsiasi elemento possa essere efficace.
Gli analisti di CrowdStrike hanno per esempio identificato attori di minaccia nell’uso di wmiexec.py per l’esecuzione remota di strumenti di esfiltrazione (Rclone) o strumenti di beaconing (derivato da Cobalt Strike), il tutto impacchettato come eseguibile mediante PyInstaller, strumento che raggruppa un'applicazione Python e tutte le sue dipendenze in un unico pacchetto che può assumere appunto la forma di eseguibile binario.
Impacket diventa così un insieme di strumenti molto interessante, capace di essere estremamente versatile e al contempo capace di un basso impatto sulle infrastrutture obiettivo, cosa che ne rende difficile il rilevamento rispetto ad altri strumenti più “canonici” rispetto alla postura di attacco.
Le tracce di utilizzo di un tale insieme di strumenti devono dunque essere da subito prese in considerazione da parte dei team di Incident Response.