Invece di distribuire file malware tradizionali sul server compromesso, gli aggressori hanno utilizzato la Java Virtual Machine (JVM) integrata di Oracle e l'istruzione CREATE JAVA SOURCE per compilare e memorizzare l'intero toolkit post-exploitation come oggetti schema Java all'interno del database Oracle . Questo approccio ha reso il toolkit invisibile alle difese standard a livello di sistema operativo, perché gli strumenti EDR e antivirus si concentrano su processi, binari e file del sistema operativo e non ispezionano generalmente le classi Java e i wrapper PL/SQL memorizzati all'interno di Oracle .
Il toolkit khunt includeva questi componenti, ciascuno memorizzato come oggetto del database:
| Componente | Funzione |
|---|---|
| KhuntCmd | Carica cmd.exe ed esegue comandi arbitrari del sistema operativo incorporandoli in istruzioni SQL inviate al database |
| KhuntHash | Estrae nomi utente e hash delle password dalle tabelle interne degli utenti di Oracle e li salva in un file |
| KhuntFS / KhuntFS2 | Esploratori di file per elencare, leggere, cercare e controllare le dimensioni dei file sul sistema compromesso |
| KhuntT | Un semplice strumento "ping" per confermare che il toolkit sia installato e raggiungibile prima di procedere |
| KhuntUnzip | Utility per decomprimere file |
| Wrapper PL/SQL khunt_* | Procedure wrapper PL/SQL utilizzate per chiamare i metodi Java sottostanti |
Gli aggressori non si sono fermati all'accesso a livello di database. Hanno utilizzato il toolkit khunt per passare dal livello del database al sistema operativo Windows sottostante in un processo a più fasi:
cmd.exe /c whoami, che ha confermato che stavano operando con privilegi di livello SYSTEM sul server Windows, stabilendo l'esecuzione di codice remoto (RCE) dal database al sistema operativo .reg.exe e copiare i file del registro SECURITY e SYSTEM, salvandoli come khuntSECURITY.hiv e khuntSYSTEM.hiv in F:\Oracle\ .tasklist /svc e salvato l'output come khunttasks.txt .esentutl.exe per copiare il file SAM e una seconda copia del file SECURITY, salvandoli come khuntSAM.hiv e khunt_SECURITY.hiv .I file del registro esfiltrati potevano essere utilizzati offline per estrarre e decodificare gli hash delle password di tutti gli account locali sul sistema .
L'indagine di Huntress ha rivelato diversi punti ciechi critici che hanno permesso a questo attacco di avere successo e di eludere il rilevamento:
Sulla base di questo attacco, Huntress ha raccomandato diverse misure di mitigazione :
Questo attacco serve come un duro promemoria del fatto che i motori di database con ambienti di programmazione integrati (come la JVM di Oracle) possono diventare piattaforme di attacco furtive se combinati anche con un singolo campo di input non convalidato. I team di sicurezza devono estendere il loro monitoraggio oltre il sistema operativo per includere il livello degli oggetti del database.