Inngangsporten var en SQL-injeksjon i en Java-applikasjon som kjørte på Apache Tomcat . Applikasjonens søkefelt for autofullføring validerte ikke brukerinndataene skikkelig. Dette gjorde at hackerne kunne sende ondsinnede SQL-kommandoer via en JDBC-tilkobling til Oracle-databasen . Som Huntress påpeker, var dette ingen ny sårbarhet – SQL-injeksjoner har eksistert i flere tiår, og skyldes nesten alltid dårlig håndtering av brukerinndata . Det var nok at applikasjonen ikke renset et enkelt søkefelt, for at hele angrepskjeden kunne starte.
Angriperne brukte Oracles innebygde JVM og CREATE JAVA SOURCE-setningen til å kompilere og lagre verktøykassen som skjemaobjekter i databasen . Dette gjorde verktøyene usynlige for standard OS-sikkerhetsverktøy fordi de ikke etterlot seg spor på disk eller i minnet .
Verktøykassen inneholdt følgende moduler, alle lagret som databaseobjekter:
| Komponent | Funksjon |
|---|---|
| KhuntCmd | Laster cmd.exe og utfører vilkårlige OS-kommandoer ved å legge dem inn i SQL-setninger sendt til databasen |
| KhuntHash | Henter ut brukernavn og passordhasher fra Oracles interne brukertabeller og lagrer dem i en fil |
| KhuntFS / KhuntFS2 | Filutforskere som lister opp, leser, søker og sjekker filstørrelser på det kompromitterte systemet |
| KhuntT | Et enkelt «ping»-verktøy for å bekrefte at verktøykassen er installert og tilgjengelig |
| KhuntUnzip | Verktøy for å pakke ut zip-filer |
| khunt_ PL/SQL-wrapperer* | PL/SQL-prosedyrer som kaller de underliggende Java-metodene |
Hackerne stoppet ikke ved databasetilgang. De brukte khunt-verktøyene til å ta kontroll over det underliggende Windows-operativsystemet:
cmd.exe /c whoami og oppdaget at de allerede hadde SYSTEM-rettigheter på Windows-serveren – det høyeste tilgangsnivået .khuntSECURITY.hiv og khuntSYSTEM.hiv i mappen F:\Oracle\ .tasklist /svc og lagret resultatet som khunttasks.txt .esentutl.exe til å kopiere SAM-registerdatabasen og en ekstra kopi av SECURITY, og lagret dem som khuntSAM.hiv og khunt_SECURITY.hiv .Disse registerdatabasene kunne brukes offline til å hente ut og dekode passordhasher for alle lokale kontoer på systemet .
Huntress' etterforskning avdekket flere kritiske hull i bedrifters sikkerhetsovervåking :
Huntress anbefaler følgende tiltak for å forhindre lignende angrep :
Dette angrepet er en sterk påminnelse om at databasemotorer med innebygde programmeringsmiljøer (som Oracles JVM) kan bli svært effektive angrepsplattformer dersom de kombineres med bare ett enkelt uvalidert inndatafelt. Sikkerhetsteam må utvide overvåkingen utover operativsystemet til også å omfatte databasens objektlag.