Un recente attacco informatico ha mostrato come una semplice vulnerabilita di SQL injection in una web application possa trasformarsi rapidamente in un accesso completo al server Windows con privilegi SYSTEM, passando attraverso il database Oracle. Il punto di ingresso e stato un campo di ricerca con autocomplete esposto pubblicamente, che inoltrava input non validato al database tramite connessione JDBC.
Laccount usato dallapplicazione aveva permessi eccessivi, sufficienti a creare oggetti Java nel database, aprendo la strada a una fase di post exploitation invisibile ai controlli tradizionali.
Gli attaccanti hanno evitato di scrivere un eseguibile su disco. Invece hanno caricato codice sorgente Java direttamente dentro Oracle e lo hanno fatto compilare dal motore del database in oggetti di schema. Questa tecnica sfrutta la Java Virtual Machine integrata in Oracle e la possibilita di usare istruzioni come CREATE JAVA SOURCE per trasformare il database in un vero e proprio punto di appoggio operativo. In questo scenario il database non e piu solo un sistema da interrogare, ma diventa una piattaforma da cui eseguire comandi sul sistema operativo.
Il toolkit osservato, identificabile da nomi che iniziano con Khunt, era composto da piu oggetti Java e wrapper PL SQL khunt. Tra le funzioni principali cera lesecuzione di comandi tramite cmd.exe, la raccolta di hash password da tabelle interne di Oracle, e operazioni sul file system come elenco, lettura e ricerca file. Un oggetto era dedicato a verificare la raggiungibilita del toolkit e un altro a decomprimere archivi.
Una volta ottenuta lesecuzione comandi, il controllo ha restituito privilegi SYSTEM sul server Windows sottostante. Da li sono state avviate azioni tipiche di furto credenziali e raccolta forense offensiva, come la copia degli hive di registro SECURITY e SYSTEM, la generazione di un elenco servizi con tasklist e la copia di SAM e SECURITY usando esentutl. I file sono stati preparati localmente in una directory Oracle, senza conferma certa di esfiltrazione.
Dal punto di vista della sicurezza, non esiste una patch Oracle che risolva un difetto applicativo o un eccesso di privilegi. La mitigazione passa da query parametrizzate e validazione input, piu un approccio least privilege che impedisca a un account web di creare sorgenti Java o eseguire procedure non necessarie. Per lindividuazione servono controlli mirati su installazione Oracle, oggetti con prefisso Khunt e log SQL con pattern KHUNT.