1. Blog
  2. Advise & architect
  3. Pentesting Stories: Can I get a quote?

Pentesting Stories: Can I get a quote?

Blog door: Paul van der Haas, Security Specialist.

Uit gewoonte, gebruiken wij een standaard ‘checklist’ om te testen op privilege escalation binnen een werkplek. Er zijn een aantal websites beschikbaar die een ​​dergelijke checklist beschikbaar hebben, waarvan fuzzysecurity.com een bijvoorbeeld van is.

Een van de tests die penetratietesters ‘altijd’ moeten doen, is controleren op ‘unquoted service paths’. Services met een witruimte (spatie) in de BinaryPathName kunnen gebruikt worden voor escalatie van privileges. Hieronder wordt een voorbeeld gegeven.

Veronderstel dat een service de volgende “BinaryPathName” heeft:

C:\Program Files(x86)\tool\tool.exe

Let op de witruimte tussen ‘Program’ en ‘Files’ en het ontbreken van aanhalingstekens (“”). Wanneer de Service Control Manager (SCM) de service start, behandelt het de BinaryPathName-waarde als een opdracht en probeert deze uit te voeren. Aanhalingstekens zouden Windows vertellen welk deel van de tekst het pad van het uitvoerbare bestand vertegenwoordigd en welke delen eventueel command line arguments zijn.

Bij afwezigheid van aanhalingstekens gaat Windows ervan uit dat spaties scheidingstekens zijn. Dus eerst wordt C:\Program uitgevoerd en zoekt het naar C:\Program.com, C:\Program.exe, C:\Program.bat, etc. Het ontbreken van aanhalingstekens betekent dat als er een C:\Program.exe zou zijn, Windows dat programma zou uitvoeren in plaats van het beoogde doelprogramma.

Om hier misbruik van te kunnen maken moet een bestand (Program.exe) in de map ‘C:\’ worden geplaatst. Niet iedere gebruiker kan bestanden in de map ‘C:\’ plaatsen, wat meestal betekent dat je een Administrator moet zijn. Een andere optie is dat fysieke toegang tot het systeem mogelijk is en schijfversleuteling niet is ingeschakeld. In sommige gevallen kan de werkplek met een ander besturingssysteem opstarten, bijvoorbeeld Kali, en zo het uitvoerbare programma Program.exe op de schijf plaatsen.

Wel is het zo dat wanneer je eenmaal Administrator bent, er waarschijnlijk meer (lees: betere) opties zijn om ‘NT AUTHORITY\SYSTEM’ rechten te verkrijgen. En toegang tot een systeem zonder schijf versleuteling is meestal een groter probleem dan escalatie naar ‘NT AUTHORITY\SYSTEM’.

In de echte wereld

Onlangs hebben we een onderzoek op een werkplek uitgevoerd en hebben we een eerdergenoemde checklist doorgelopen. Verrassend genoeg werden er twee services gevonden met een service path zonder aanhalingstekens. Aangezien we al fysieke toegang hadden en de schijf natuurlijk niet versleuteld was, kon deze kwetsbaarheid worden misbruikt om ‘NT AUTHORITY\SYSTEM’ rechten te verkrijgen.

Bij het reproduceren van deze kwetsbaarheid in mijn lokale Virtual Machine met Windows 10 (waar ik alle Windows features geïnstalleerd heb), werd het volgende resultaat getoond:

microsoft-vulnerability-pentest

Betekent dit dat Microsoft Windows 10-features bestaan ​​met unquoted service paths? Jazeker! Snel heb ik een rapport opgesteld om het vervolgens in te dienen in de MSRC-portal. Onderstaande tekst is een deel van een rapport dat ik geschreven heb.

Description:

The ‘Wms’ and ‘WmsRepair’ services runs as Local System, have auto start enabled and has an unquoted service path which could lead to privilege escalation. By placing Program.exe at the C:\ drive, code can be executed as SYSTEM.

To be able to exploit this vulnerability an attacker should have local administrator rights or physical access to the system (without disk encryption).

Below you can find a Proof of Concept for one of the services found.

Unquoted service ‘WmsRepair’ (notice that the service runs as SYSTEM and is on auto start):

microsoft-vulnerability-pentest

Steps for exploitation:

1) Create a payload and name it ‘Program.exe’

msfvenom -p windows/x64/exec cmd=’cmd.exe /c net user Elevation Elevate2019! /add && net localgroup Administrators Elevation /add’ -f exe > Program.exe

2) Place the payload (Program.exe) in ‘C:\’ as a local admin

microsoft-vulnerability-pentest

3) Start the service ‘Windows MultiPoint Server’ (Wms)

microsoft-vulnerability-pentest

Expected Result:

The service should not start Program.exe.

Observed Result:

The service started Program.exe and run as ‘SYSTEM’. The payload was executed, and a new local administrator was born:

microsoft-vulnerability-pentest

Recommendation:

It is recommended to automatically test services for unquoted service paths. Place quotes at the start and end of the path.

Is dit een spannende bevinding?

Het vinden van een ‘kwetsbaarheid’ is altijd spannend! Zoals u misschien wel gemerkt heeft, wordt het woord kwetsbaarheid tussen quotes gezet. De unquoted service path bevinding met betrekking tot de Windows features is gerapporteerd aan Microsoft. Het volgende antwoord wordt gegeven door Microsoft:

Thank you for sending us this report. Our team was able to reproduce the issue you reported, but this does not meet our bar for servicing via a security update. Instead, this is something we may address in a future release of Windows, so we will be closing this case.

This issue requires that the attacker has administrator privileges which reduces the likelihood of a successful attack. We have a blog post from a few years that details why we don’t prioritize service path issues – https://blogs.msdn.microsoft.com/aaron_margosis/2014/11/14/it-rather-involved-being-on-the-other-side-of-this-airtight-hatchway-unquoted-service-paths/

Moeten wij penetratietesters dit dan niet meer testen, aangezien dit als een laag risico kan worden beschouwd? Het is nog steeds de moeite waard om te zoeken naar unquoted service paths Het kan een kenmerk zijn van een gebrek aan kwaliteitscontrole of gebrek aan secure design, en in sommige gevallen is het een eenvoudige manier voor escalatie van privileges. Het rapporteren van deze bevinding zou echter niet (standaard) een risicovolle classificatie moeten hebben. Zoals een collega ooit zei (ik weet het, dit is niet hoe het gezegde gaat): “Ze hebben grotere vissen te braden.”

hacker-thumb

Zelf een penetratietest aanvragen?


ASR

Meer Pentesting Stories in het Annual Security Report


vulnerability-management

Meer over Vulnerability Management


Delen