Den initiala åtkomsten skedde genom en SQL-injektionssårbarhet i en publik Java-applikation som kördes på Apache Tomcat . Applikationens autocomplete-sökfunktion validerade inte användarens indata korrekt, vilket gjorde det möjligt för angriparna att injicera SQL-kommandon via en JDBC-anslutning till Oracle-databasen . Som Huntress forskare påpekade var detta ingen ny sårbarhet – SQL-injektioner har funnits i decennier och beror oftast på bristfällig hantering av användarindata som skickas till SQL-servern . Det räckte med att applikationen inte rensade ett enkelt sökfält för att hela kedjan skulle starta.
Istället för att distribuera traditionell skadlig kod som filer på den komprometterade servern använde angriparna Oracles inbyggda JVM och satsen CREATE JAVA SOURCE för att kompilera och lagra hela post-exploateringssatsen som Java-schemaobjekt inne i Oracle-databasen . Denna metod gjorde verktygslådan osynlig för vanliga OS-försvar, eftersom EDR- och antivirusverktyg fokuserar på processer, binärfiler och filer på operativsystemet – de inspekterar i allmänhet inte Java-klasser och PL/SQL-omslag som lagras i Oracle .
Khunt-verktygslådan innehöll följande komponenter, var och en lagrad som ett databasobjekt:
| Komponent | Funktion |
|---|---|
| KhuntCmd | Laddar cmd.exe och kör godtyckliga OS-kommandon genom att bädda in dem i SQL-satser som skickas till databasen |
| KhuntHash | Extraherar användarnamn och lösenordshashar från Oracles interna användartabeller och sparar dem i en fil |
| KhuntFS / KhuntFS2 | Filutforskare för att lista, läsa, söka och kontrollera filstorlekar på det komprometterade systemet |
| KhuntT | Ett enkelt ”ping”-verktyg för att bekräfta att verktygslådan är installerad och nåbar innan man fortsätter |
| KhuntUnzip | Verktyg för att packa upp zip-filer |
| khunt_ PL/SQL-omslag* | PL/SQL-omslagsprocedurer som används för att anropa de underliggande Java-metoderna |
Angriparna nöjde sig inte med databasnivån. De använde Khunt-verktygslådan för att ta sig från databasen till det underliggande Windows-operativsystemet i flera steg:
cmd.exe /c whoami, vilket bekräftade att de körde med SYSTEM-behörighet på Windows-servern – de hade alltså uppnått fjärrkodexekvering (RCE) från databasen till operativsystemet .reg.exe och kopiera registerdatabaserna SECURITY och SYSTEM, som sparades som khuntSECURITY.hiv och khuntSYSTEM.hiv i F:\Oracle\ .tasklist /svc och sparade resultatet som khunttasks.txt .esentutl.exe för att kopiera SAM och en andra kopia av SECURITY, sparade som khuntSAM.hiv och khunt_SECURITY.hiv .De exfiltrerade registerfilerna kunde användas offline för att extrahera och dekoda lösenordshashar för alla lokala konton på systemet .
Huntress utredning avslöjade flera kritiska blinda fläckar som gjorde attacken möjlig och svår att upptäcka:
Baserat på attacken rekommenderade Huntress följande åtgärder :
Denna attack fungerar som en skarp påminnelse om att databasmotorer med inbyggda programmeringsmiljöer (som Oracles JVM) kan bli smygande attackplattformar om de kombineras med en enda orensad indata. Säkerhetsteam måste utöka sin övervakning bortom operativsystemet till att även omfatta databasobjektlagret.