Op jacht naar de gehackte site op onze hostingserver
Afgelopen week kregen we een bericht door van Europese autoriteiten dat een van onze hostingservers via een gehackte website een actieve rol speelde in een grootschalig botnet, dat malware verspreidde en aanvallen uitvoerde op het internet. Dat is natuurlijk niet iets waar wij een rol in willen spelen, dus gingen we op onderzoek uit om de website op te sporen en deze hack te stoppen. In deze blogpost laten we zien hoe we dat aangepakt hebben.
Melding gehackte site
Van Europese autoriteiten kregen we een melding binnen die er als volgt uitzag:
2021-02-15 06:49:11Z|bot|Datasource: b, Malware: andromeda/gamarue, C&C Dns: atomictrivia.ru, C&C Ip: 184.105.192.2, C&C Port: 80, Source Port: 49180
Dit betekent dat op 15 februari onze server een uitgaande connectie maakte met de "Command & Control" server van het "andromeda/gamarue" botnet. Een botnet bestaat uit vele gehackte computers en servers, en via zo'n Command & Control server krijgen deze computers en servers nieuwe opdrachten binnen - bijvoorbeeld om een aanval uit te voeren op het internet. In dit geval was deze Command & Control server in beslag genomen door autoriteiten, en informeerden ze alle providers waarvandaan er een connectie binnenkwam, zo ook naar ons. Tijd om dus uit te vinden welke website op deze server de boosdoener is!
Speuren in de logs en connecties
Het enige wat we dus wisten is dat een (of meerdere) websites op onze server een uitgaande connectie heeft gemaakt naar het IP adres van de Command & Control server. We zochten eerst in de webserverlogs welke websites op het moment van de connectie werden opgevraagd, en of daar ook verdachte pagina's en scripts tussen zitten. Helaas zagen we rond dat tijdstip geen rare dingen in de webserverlogs.
Omdat uitgaande connecties niet worden opgeslagen in een log, hebben we een tool ingezet om de connecties naar de Command & Control server te monitoren. Spamhaus - een organisatie die een lijst van spammende en geïnfecteerde servers op het internet bijhoudt en analyseert - heeft een handige tool beschikbaar, genaamd SH Tracer. In deze tool hebben we het IP adres van de Command & Control server ingevoerd, en vervolgens de tool aangezet. De tool houdt dan vervolgens continu in de gaten of en wie een connectie met het IP adres maakt. Na een aantal uur wachten hadden we bingo - we wisten nu welke website de boosdoener was.
Inzoomen op de gehackte website
Nu we wisten welke website het slachtoffer was en onderdeel was geworden van het botnet, was het tijd om de hack op te lossen. Het ging om een WordPress site. Op het eerste gezicht leek er weinig aan de hand: de WordPress site en alle 9 daarop geïnstalleerde plugins waren netjes up-to-date. Ook zagen we geen verdachte bestanden staan in het hostingpakket. Wel zagen we dat als we de website bezochten, er steeds connecties werden gemaakt met de Command & Control server van het botnet.
We besloten om alle plugins uit te zetten, en deze weer een voor een aan te zetten. Toen we een bepaalde plugin weer aanzette, zagen we gelijk weer connecties naar de Command & Control server voorbij komen. De conclusie was dan ook dat de hack dus in deze ene plugin moest zitten.
Kijkende naar de plugin - de Duplicate Page & Post plugin - zagen we dat deze plugin WordPress.org gesloten was. Dat is natuurlijk geen goed teken. Op Google vonden we een blogpost van WordFence, waarin ze aangeven dat deze plugin onderdeel was van een zogenaamde "supply chain attack". De originele maker van deze plugin was door een malafide persoon benaderd om tegen betaling de plugin te verkopen. De nieuwe eigenaar voegde malware toe aan de plugin, en via de normale plugin-updates kwam de malware vervolgens terecht op alle WordPress sites waar deze plugin geïnstalleerd was. Het gaat hier om meer dan 50.000 sites!
We hebben de plugin verwijderd, en vervolgens de klant op de hoogte gebracht.
Moraal van het verhaal
De conclusie is dat je blijkbaar niet elke WordPress plugin blindelings kunt vertrouwen. Ons aanraden zou zijn om:
- Verwijder plugins die je niet meer gebruikt, of alleen heel soms nodig hebt. In het laatste geval kun je het beste de plugin tijdelijk installeren en na het uitvoeren van je taak weer verwijderen.
- Controleer regelmatig of de door jou geïnstalleerde plugins nog regelmatig updates krijgen. Mocht dat niet zo zijn, controleer dan op WordPress.org of de plugin nog actief is.
Heb je hulp nodig bij het beheren van je plugins? Neem gerust contact met ons op als je ergens niet uit komt!