Als jouw WordPress-website aangevallen wordt op xmlrpc.php, dan kun je de HTTP-verzoeken eenvoudig blokkeren. In deze post geef ik je 4 manieren om xmlrpc.php-aanvallen op Windows Server IIS te blokkeren. In IIS Manager en web.config.

Je kunt HTTP-verzoeken op een aantal manieren blokkeren, maar ze hebben allemaal hetzelfde resultaat: een stukje XML-code wordt weggeschreven in het web.config-configuratiebestand van IIS. Als je daarmee bekend bent, dan kun je het snelste de betreffende regels toevoegen aan dit bestand in het geval van een XML-RPC aanval.

Xmlrpc.php blokkeren in web.config met requestFiltering

Neem de volgende regels op in een nieuw bestand dat je web.config noemt:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<security>
<requestFiltering>
<denyUrlSequences>
<add sequence="xmlrpc.php" />
</denyUrlSequences>
</requestFiltering>
</security>
</system.webServer>
</configuration>

Dit voegt xmlrpc.php toe aan IIS’ requestFiltering regels, met andere woorden: als xmlrpc.php in het HTTP-verzoek voorkomt, dan wordt die geblokkeerd.

Je kunt deze requestFiltering regel ook in de grafische omgeving van IIS Manager (of Internet Information Services Manager) maken. Dat is vaak wat eenvoudiger.

Een requestFiltering regel maken in Internet Information Services (IIS) Manager

Start Internet Information Services (IIS) Manager – of IIS Manager – met de opdracht InetMgr.exe, of klik op het icoon in het start menu.

InetMgr.exe snelkoppeling op het bureaublad
InetMgr.exe snelkoppeling op het bureaublad

Ik ga er wel van uit dat je bekend bent met het werken met IIS Manager. Ondervind je hiermee problemen, neem dan even contact op met je hostingprovider. Ga naar het onderdeel IIS en dubbel klik op Request Filtering.

Klik de tab “URL“.

In het onderdeel “URL” kunnen al vooraf gedefinieerde regels / URL’s staan, blijf daar vooral van af. Klik op “Deny Sequence…” in het Actions menu rechts.

Vul “xmlrpc.php” in als URL sequence en klik op OK.

Je ziet nu je zojuist gemaakte regel erbij staan.

Als je nu het web.config-bestand bekijkt, dan zie je de eerdere XML-code staan.

Het resultaat op de URL example.nl/xmlrpc.php (waarbij example.nl jouw website-adres is) is een “404 – File or directory not found.”. Dus voor zover de aanvaller kan achterhalen bestaat het adres wat hij probeert te misbruiken niet (meer).

Xmlrpc.php blokkeren met een URL Rewrite regel

Naast een requestFiltering regel kun je ook een URL Rewrite regel maken om HTTP-verzoeken op /xmlrpc.php te blokkeren. In Internet Information Services (IIS) Manager, ga naar het onderdeel URL Rewrite in plaats van Request Filtering.

Als je deze IIS feature kun je al bestaande regels zien, laat die vooral voor wat ze zijn. Klik op “Add Rules(s)…” in het Actions menu aan de rechter kant.

Kies voor Request blocking

Neem daarna de volgende gegevens over:

  • Block access based on: URL Path
  • Block request that: Matches the Pattern
  • Pattern (URL Path): /xmlrpc.php
  • Using: Wildcards
  • How to block: Send an HTTP 403 (Forbidden) Response

Klik daarna op OK.

De URL Rewrite regel is nu gemaakt, als XML ziet dat er als volgt uit:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="RequestBlockingRule1" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions>
<add input="{URL}" pattern="/xmlrpc.php" />
</conditions>
<action type="CustomResponse" statusCode="403" statusReason="Forbidden: Access is denied." statusDescription="You do not have permission to view this directory or page using the credentials that you supplied." />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

Deze XML-code kun je ook rechtstreeks in het web.config-bestand plaatsen. In de browser is het resultaat:

Conclusie aanvallen blokkeren in Windows Server IIS

Windows Server IIS maakt het eenvoudig om snel aanvallen af te kunnen slaan en te weren. In dit artikel gaf ik je twee methoden met een grafische interface (IIS Manager GUI) en twee XML equivalenten voor in een web.config-bestand. Dus vier in totaal. Jij als website-eigenaar plaatst dit binnen je eigen website-omgeving. Een serverbeheerder kan xmlrpc.php in één keer voor de gehele webserver blokkeren door dit op de IIS’ top node uit te voeren.

Show 2 Comments

2 Comments

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *