XML rpc steht für Extensible Markup Language Remote Procedure Call und ist eine Schnittstelle, die es ermöglicht, eine Verbindung zu WordPress aufzubauen und Daten zu verändern, ohne im WordPress-Dashboard eingeloggt zu sein. Durch diesen Artikel will ich dir zeigen, wie Hacker sie ausnutzen können, um die Kontrolle über deine WordPress Installation zu erhalten. Außerdem lernst du, was du tun kannst, um dich dagegen abzusichern. Generell kann die XMLrpc Schnittstelle eine sehr nützliche Funktionalität sein, da sie erst die Verwaltung deiner Website über die WordPress Mobile App ermöglicht und da zudem viele Funktionen von einem der wohl bekanntesten Plug-Ins Jetpack darauf aufbauen. Da die Schnittstelle allerdings per Default aktiviert ist, ist sie auch ein beliebtes Angriffsziel für Hackangriffe auf deine Website. Jeder sollte sich daher fragen, ob er sie wirklich benötigt. Ich für meinen Teil wüsste zum Beispiel nicht, dass ich schon einmal einen Blogbeitrag über die Smartphone App veröffentlicht habe. So praktisch es im ersten Moment erscheint, so unpraktisch ist es dann schlussendlich in der Praxis. Metatags und sonstige Zusatzeinstellungen, die nicht über die Core-Funktionalität gepflegt werden können, fehlen bei der Veröffentlichung über die App und müssen am Ende doch über den Browser gepflegt werden. Auch das Thema Jetpack ist spätestens seit der DSGVO etwas kritischer zu betrachten. Mir persönlich reicht es, den Traffic über Google Analytics zu tracken. Die Jetpack Statistiken stellen keinen großen Nutzen für mich da. Geschwindigkeitsoptimierungen der Website kann man auch erreichen, ohne Bilder auf den Jetpack Server in den USA zu laden. Daher ist bei mir diese Schnittstelle inzwischen deaktiviert.

Doch was sind nun konkret die Probleme mit der Schnittstelle und wie werden ausgenutzt? Generell gibt es zwei Wege, deine Website über die XML rpc Schnittstelle anzugreifen:

1. Denial of Service (DDoS)-Attacke

Der Hacker nutzt dabei die Schnittstelle und schickt per Script oder Bot-Netz gleichzeitig so viele Anfragen an deine Seite, dass der Server unter der Last zusammenbricht. Dem Angreifer geht es dabei nicht darum, die Kontrolle über deine Seite zu erlangen, sondern wirklich nur darum, die Seite unerreichbar zu machen. Moderne Anti-Spam Plug-Ins oder auch gute Webhoster erkennen dies aber meist und blocken die Requests. Die Chance, dass der Angreifer so deine Website zum Absturz bringt, ist also eher gering.

2. Brute-Force-Angriff

Bei Brute-Froce-Angriff geht es darum, systematisch Passwortlisten durchzutesten und Zugang zu deiner Website zu erhalten. Bevor man zum Beispiel über die WordPress App Inhalte pflegen kann, muss man sich im Dashboard anmelden. Auch dies ist mit der Schnittstelle möglich. Der Angreifer nutzt genau diese Funktion, um so pro Minute Tausende Requests zu senden. Über den wp-admin Link im Browser verschiedenste Passwörter nach dem „Try and Error Prinzip“ zu testen, ist denkbar uneffektiv und die Erfolgschancen, auf diese Weise Zugang zu erhalten, sind entsprechend gering. Bei  mehreren tausend, voll automatisierten Requests pro Minute steigt die Chance natürlich ungemein. Hat der Hacker so erstmal Zugang erhalten, ist es ihm möglich, fast alle Inhalte deiner Website zu verändern oder neue Inhalte zu veröffentlichen. Deine Website wird dann nicht nur für die typischen Spam Zwecke missbraucht und voll mit Werbung und unseriösen Inhalten geladen, es werden auch sämtliche Daten deiner User und Kunden für den Angreifer ersichtlich.

Was kannst du jetzt also tun, um dich gegen diese beiden Arten der Angriffe auf deine Website zu schützen?

1. Zugriffe auf die XMLrpc-Schnittstelle per XML einschränken

Durch ein einfaches, kleines .htaccess File lässt sich der Zugriff auf die Schnittstelle entweder ganz der teilweise verbieten.

.htaccess
<Files xmlrpc.php>
Order allow,deny
Deny from all
</Files>

Der gezeigte Code beschränkt den kompletten Zugriff. Durch Hinzufügen der Bedingung „Allow from 10.1.75.“ kann zum Beispiel der IP Bereich aus deinem Heimnetzwerk freigeschaltet werden.

2. Per Plug-In deaktivieren

Als zweite Möglichkeit kannst du die Schnittstelle über das Plug-In Disable-XML-rpc deaktivieren. Wenn du meinen Blog regelmäßig verfolgst, weißt du inzwischen sicher, dass ich kein Freund von Plug-Ins bin, wenn es auch ohne geht. Jedes Plug-In selbst kann wieder eine Schwachstelle darstellen und Probleme machen. Dieses Plug-In ist allerdings recht simpel und macht keine Probleme. Auch wenn es inzwischen sogar veraltet ist, tut es das, was es soll, und ist recht schlank. Nach der Installation muss es einfach nur aktiviert werden – und schon ist die XML-rpc Schnittstelle deaktiviert.

Die WordPress Schwachstelle XMLrpc

von Benjamin Scheidt benötigte Zeit: 4 min
0