Plutôt que de déployer des fichiers malveillants traditionnels sur le serveur compromis, les attaquants ont utilisé la machine virtuelle Java (JVM) intégrée d'Oracle et l'instruction CREATE JAVA SOURCE pour compiler et stocker l'intégralité du toolkit de post-exploitation sous forme d'objets Java dans la base de données Oracle . Cette approche a rendu le toolkit invisible pour les défenses standard au niveau du système d'exploitation, car les outils EDR et antivirus se concentrent sur les processus, les binaires et les fichiers du système d'exploitation — ils n'inspectent généralement pas les classes Java et les wrappers PL/SQL stockés dans Oracle .
Le toolkit khunt comprenait les composants suivants, chacun stocké en tant qu'objet de base de données :
| Composant | Fonction |
|---|---|
| KhuntCmd | Charge cmd.exe et exécute des commandes système arbitraires en les intégrant dans des instructions SQL envoyées à la base de données |
| KhuntHash | Extrait les noms d'utilisateur et les hachages de mots de passe des tables internes d'Oracle et les sauvegarde dans un fichier |
| KhuntFS / KhuntFS2 | Explorateurs de fichiers pour lister, lire, rechercher et vérifier les tailles de fichiers sur le système compromis |
| KhuntT | Un simple outil « ping » pour confirmer que le toolkit est installé et accessible avant de procéder |
| KhuntUnzip | Utilitaire de décompression de fichiers |
| Wrappers khunt_ PL/SQL* | Procédures wrapper PL/SQL utilisées pour appeler les méthodes Java sous-jacentes |
Les attaquants ne se sont pas arrêtés à un accès au niveau de la base de données. Ils ont utilisé le toolkit khunt pour passer de la couche base de données au système d'exploitation Windows sous-jacent en plusieurs étapes :
cmd.exe /c whoami, ce qui a confirmé qu'ils disposaient de privilèges SYSTEM sur le serveur Windows, établissant une exécution de code à distance (RCE) de la base de données vers le système d'exploitation .reg.exe et copier les ruches de registre SECURITY et SYSTEM, les sauvegardant sous les noms khuntSECURITY.hiv et khuntSYSTEM.hiv dans F:\Oracle\ .tasklist /svc et sauvegardé la sortie sous khunttasks.txt .esentutl.exe pour copier les ruches SAM et une seconde copie des ruches SECURITY, les sauvegardant sous les noms khuntSAM.hiv et khunt_SECURITY.hiv .Les ruches de registre exfiltrées pouvaient être utilisées hors ligne pour extraire et décoder les hachages de mots de passe de tous les comptes locaux du système .
L'enquête de Huntress a révélé plusieurs angles morts critiques qui ont permis à cette attaque de réussir et d'éviter la détection :
Sur la base de cette attaque, Huntress a recommandé plusieurs mesures d'atténuation :
Cette attaque rappelle avec force que les moteurs de base de données dotés d'environnements de programmation intégrés (comme la JVM d'Oracle) peuvent devenir des plateformes d'attaque furtives lorsqu'ils sont combinés à un seul champ d'entrée non validé. Les équipes de sécurité doivent étendre leur surveillance au-delà du système d'exploitation pour inclure la couche des objets de la base de données.