Geschreven door: Martin Knuijsting

De kwetsbaarheid van deze week gaat over ‘wp-file-manager’. Er is een kwetsbaarheid ontdekt die het mogelijk maakt om code op afstand uit te voeren. Deze kwetsbaarheid is het gevolg van de onjuiste opname van een open-source bestands-managementbibliotheek genaamd elFinder. Het blijkt dat het bestand connector.minimal.php-dist wordt opgeslagen in een uitvoerbaar formaat (hernoemd naar .php) en dat het bestand “voor iedereen toegankelijk is”. Een aanvaller zou deze fout kunnen uitbuiten door een speciaal gemaakt verzoek naar het bestand connector.minimal.php te sturen, wat kan leiden tot het op afstand uitvoeren van code in de applicatie. Afhankelijk van de gebruikersrechten die aan de applicatie zijn verbonden, kan een aanvaller vervolgens programma’s installeren, gegevens bekijken, wijzigen of verwijderen en nieuwe accounts aanmaken met volledige gebruikersrechten. Applicatie-accounts die zijn geconfigureerd, om minder gebruikersrechten op het systeem te hebben, kunnen minder worden beïnvloed dan accounts die werken met administratieve gebruikersrechten.

De kwetsbaarheid

Als we kijken naar het WP File Manager bestand lib/php/connector.minimal.php, merken we dat dit bestand een code uitvoert wanneer het wordt benaderd.

$connector = new elFinderConnector(new elFinder($opts)); 

$connector->run();

Deze code is afkomstig van het elFinder-project. Dit is een framework  voor het leveren van een file explorer in een graphical user interface (GUI)  aan webapplicaties. Deze zeer specifieke code was bedoeld als voorbeeld. Maar, zoals we zien, wordt het tot versie 6.9 nog steeds gebruikt. Dit heeft als gevolg dat het mogelijk is om dit deel van de code uit te voeren zonder authenticatie. 

Laten we eens kijken wat er gebeurt als $connector->run(); wordt uitgevoerd.

De inhoud van $src[‘cmd’] en $_FILES (geüploade bestanden) worden gebruikt als argumenten voor $this->elFinder->exec()

Kunnen we een commando uitvoeren of zijn er toch beperkingen? 

Door te kijken naar de implementatie voor exec() in het bestand lib/php/elFinder.class.php,  zien we dat alleen bepaalde voorgedefinieerde commando’s mogen worden uitgevoerd. 

We zijn geïnteresseerd in het upload commando, omdat dit de meest bruikbare manier is om het als een aanvalsvector te gebruiken. Dus met een paar commando’s kunt u elke code op de doellocatie upload en uitvoeren.

De exploitatie

Hieronder zien we een voorbeeld van het uploaden van een webshell. (Een webshell is een script die het verkennen van een website/server makkelijker maakt, zonder verdere vorm van authenticatie, een soort backdoor.)

Als het uitvoeren van het upload commando succesvol is geweest, kunnen we het bestand op de server opvragen.  Hieronder zien we dat dit gelukt is, dus kunnen we verder met het verkennen van de server.

Er zijn ook andere exploits beschikbaar die het proces automatiseren.

https://github.com/3xPr1nc3/wp-file-manager-exploit

En als we terug gaan naar de website zien we de webshell.

Het advies van WordPress

Installeer WordFence om deze kwetsbaarheid op te lossen.

Zowel WordFence Premium gebruikers als sites die nog steeds de gratis versie van Wordfence draaien, zijn beschermd tegen aanvallen die gericht zijn op deze kwetsbaarheid dankzij de ingebouwde File Upload bescherming van de WordFence firewall. WordFence Premium gebruikers hebben op 1 september 2020 ook een extra firewall regel ontvangen die bescherming biedt tegen mogelijke bypasses. Sites die nog steeds gebruik maken van de gratis versie van WordFence ontvangen deze regel op 1 oktober 2020.

Zorg dat u niet kwetsbaar bent

Met een kwetsbaarheid als deze, is het mogelijk dat uw organisatie grote financiële en imagoschade oplopen. Zorg dan ook voor een goed update beleid, waarbij frequent op updates wordt gecontroleerd en dat deze waar nodig 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 eventuele kwetsbaarheden blootgelegd en krijgt u handvatten hoe u uw netwerk beter kunt 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: