The S-Unit

Infratest op een kassasysteem: zo komen hackers binnen

What the hack- Infratesten

In What The Hack delen onze hackers hoe zij kwetsbaarheden uitbuiten en hoe organisaties dit kunnen voorkomen, aan de hand van anonieme praktijkcases.

In deze editie laat Tijmen, ethisch hacker bij The S-Unit, zien hoe hij tijdens een infratest op een POS-systeem via een slimme chain van kwetsbaarheden administratorrechten bemachtigt. Hoe escaleert zo’n aanval, en hoe doorbreek je deze keten?

Fysieke toegang: het begin van de aanval

Alles begon met fysieke toegang tot het kassasysteem. Het systeem draaide op een Windows desktop, maar zonder muis en toetsenbord. Geen probleem, bij infrastructuurtesten neem ik standaard een bedraadtoetsenbord mee.

Ik sloot een USB-toetsenbord aan en probeerde verschillende toetsencombinaties om uit de kioskmodus te ontsnappen. Na 10 minuten zonder resultaat schakelde ik over op mijn Flipper Zero als BadUSB, in de hoop via automatisering een werkende combinatie te vinden. Geen succes. Dus terug naar het fysieke toetsenbord, met meer ‘exotische’ combinaties dan de standaard payloadlijsten op GitHub. En toen was het raak. Met CTRL + WINDOWS + ENTER opende het configuratiescherm van Windows Narrator. Ik was uit de kioskmodus.

Van browser naar Windows Explorer

De volgende stap was toegang krijgen tot het onderliggende besturingssysteem, met als doel om PowerShell of Command Prompt te openen. In het configuratiescherm ontdekte ik een link die Google Chrome opende, wat direct nieuwe mogelijkheden gaf. Hoewel de file://-functionaliteit geblokkeerd was, bood Chrome alsnog een slimme omweg. Wanneer je een bestand downloadt, kun je namelijk de map openen waarin het bestand is opgeslagen. Door een pagina op te slaan met CTRL + S en vervolgens op “map openen” te klikken, kreeg ik toegang tot Windows Explorer. Vanaf dat moment voelde de systeemovername dichtbij.

Slim omzeilen van beperkingen

Via Windows Explorer probeerde ik PowerShell te openen, maar ik kon niet naar de juiste locaties op de C:-schijf navigeren door gebrek aan rechten. Tijd voor plan B. Ik maakte gebruik van een bekende truc: navigeren via het ‘Open File’-venster. Door een bestand te openen startte WordPad, waarna ik op ‘Open File…’ klikte en een venster kreeg waarin ik wél vrij kon navigeren. Vanuit daar vond ik PowerShell, kopieerde deze naar het bureaublad en opende hem. Het resultaat: volledige commandoregeltoegang als standaard gebruiker.

Privilege escalation

Met PowerShell tot mijn beschikking kreeg ik meer controle over Windows. Tijd om administrator te worden! Ik onderzocht de services en ontdekte dat ik schrijfrechten had op de C:-schijf—ideaal om een service over te nemen. Vervolgens koos ik een service die draaide als NT AUTHORITY/SYSTEM en weinig impact had bij verstoring: de Intel Service. Daarbij hield ik rekening met twee beperkingen: Sentinel One was actief en ik had geen netwerkconnectiviteit.

Daarom koos ik voor een simpele, lokale payload met msfvenom van het Metasploit framework, waarmee ik een nieuwe administratorgebruiker aanmaakte genaamd sunit. Msfvenom wordt meestal gepakt voor antivirus oplossingen, maar ik gokte het erop.

Daarna zette ik de payload op een USB-stick, maakte ik een back-up van de originele service en verving ik deze door mijn eigen payload op de juiste locatie in de C:\ schijf. Na een herstart logde ik in als sunit en was ik administrator. Game over.

De aanval kort samengevat

De volledige aanvalsketen begon met het aansluiten van een USB-toetsenbord, waarna ik uit de kioskmodus wist te ontsnappen. Vervolgens opende ik Windows Explorer, kreeg toegang tot PowerShell en verving ik een service executable. Na het herstarten van het systeem kreeg ik volledige overname van het POS-systeem.

Hoe voorkom je dit soort aanvallen?

Wil je dit soort scenario’s voorkomen, neem dan deze maatregelen:

  • schakel onnodige interfaces zoals USB uit
  • blokkeer ongebruikte toetsencombinaties
  • gebruik AppLocker om toegang tot applicaties zoals PowerShell te beperken.
  • zorg ervoor dat standaardgebruikers geen schrijfrechten hebben in kritieke mappen zoals C:\Program Files
  • test je antivirus regelmatig op effectiviteit
  • minimaliseer het aantal services dat met hoge privileges draait
 

Wil je ook een infrastructuurtest laten uitvoeren op jouw applicatie? Lees hier meer.