Geschreven door: Patrick Maes

In samenwerking met pentester Martin Knuijsting

De kwetsbaarheid van deze week is Salt. Salt is een software pakket dat wordt gebruikt om de toestand van het netwerk te controleren en te updaten. Elke server die verbinding maakt met deze software heeft een agent die een “volgeling” (client) wordt genoemd en die verbinding maakt met een “meester” (server). 

Een Salt server verzamelt statusrapporten van volgelingen en publiceert update-berichten waarop clients kunnen handelen. Normaal gesproken zijn dergelijke update-berichten voor de configuratie van een selectie van servers. Maar het is ook mogelijk om hetzelfde update commando uit te voeren over alle beheerde systemen. 

Authentication bypass

De kwetsbaarheden met de toegewezen CVE id’s CVE-2020-11651 en CVE-2020-11652 hebben een hoge score van 9.8 (kritiek). Eén daarvan is de authenticatie bypass waar de

“root key” functionaliteit onbedoeld werd blootgesteld aan niet-geauthenticeerde netwerk cliënten.

De ClearFuncs class process legt de methode prep auth_info() bloot. Deze methode die de “root key” retourneert, wordt gebruikt om commando’s van de lokale root gebruiker op de server te authenticeren. Deze “root key” kan dan gebruikt worden om op afstand administratieve commando’s op de server op te roepen. Dit stelt een niet geauthenticeerde aanvaller in staat de Salt server te comprimeren.

Hieronder ziet u de PoC van de root key exploit

Remote command execution als root

De authentication bypass zorgt ervoor dat er een RCE mogelijk is als root. Door middel van een NC (NetCat) reverse shell command kan een aanvaller makkelijk een root shell spawnen. Dit betekent dat de aanvaller na het spawnen van de shell volledige toegang heeft tot het systeem. 

Hieronder ziet u de PoC van de RCE.

Path traversal

Path traversal is mogelijk omdat vertrouwelijke input niet correct wordt gezuiverd. Een aanvaller kan hierdoor ongehinderd toegang krijgen tot het volledige bestandssysteem van de server. De wheel module bevat commando’s die worden gebruikt om bestanden te lezen en te schrijven onder specifieke directory-paden. 

De invoer van deze functies wordt samengevoegd met de doelmap. Het resulterende pad is niet goed ingesteld, wat leidt tot een ontsnapping aan de beoogde pad restrictie. De get_token() methode van de salt.tokens.localfs klasse (die blootgesteld is aan niet-geauthenticeerde verzoeken van de ClearFuncs klasse) slaagt er niet in om de token-invoerparameter te saneren. Deze wordt dan gebruikt als een bestandsnaam. Hierdoor is het invoegen van “…” pad elementen en dus het lezen van bestanden buiten de bedoelde directory mogelijk wordt. 

Hieronder ziet u de PoC van de Path traversal

File upload 

Bestanden kunnen worden geüpload met –upload-src en –upload-dest. Houd er rekening mee dat de bestemming een relatief pad moet zijn. 

Hieronder ziet u de PoC van de file upload

Advies Salt

SaltStack heeft deze kwetsbaarheden in versie 3000.2 gepatcht. Ook heeft SaltStack de gebruikers van Salt aangemoedigd ervoor te zorgen dat hun installaties zijn geconfigureerd, om automatisch updates van de SaltStacks repository server te halen. Meer informatie kan u hier vinden. Een patch release voor de vorige grote release versie is ook beschikbaar, met versienummer 2019.2.4.

Mitigatie is ook mogelijk door netwerk beveiligingscontroles toe te voegen die de toegang tot de Salt server beperken tot bekende clients (poorten 4505 en 4506 zijn de standaard).

Zorg dat u niet kwetsbaar bent

Met een kwetsbaarheid als deze kan uw organisatie grote financiële schade oplopen. Zorg dan ook voor een goed update beleid, waarbij frequent updates worden geïnstalleerd op kritische systemen. 

Om er zeker van te zijn dat uw netwerk zo min mogelijk kwetsbaarheden bevat, is het scannen van uw systemen noodzakelijk. Tijdens deze scan worden kwetsbaarheden blootgelegd en krijgt u handvatten hoe u uw netwerk beter te beveiligen tegen incidenten. Onze pentesters hebben de juiste kennis en kunde in huis om u hierbij van dienst te zijn. Zij zullen zorgvuldig uw netwerk scannen op kwetsbaarheden en u voorzien van een duidelijk advies waarmee u direct aan de slag kunt. 

Meer weten

Wil u meer informatie over onze pentesten of vulnerability scans? Kijk dan even op onze diensten pagina. Of bel direct met onze medewerkers via: 020 7881030, we zijn u graag van dienst.


Deel artikel via: