Das freie Content-Management-System WordPress ist weit verbreitet und oft werden nach einer Erstinstallation keine neuen Releases bzw. Security Updates mehr eingespielt. Hierdurch ergeben sich über die XML-RPC Schnittstelle in Verbindung mit der REST-API Möglichkeiten für eine Brute-Force-Attacke.
1. Schritt: REST-API Wordpress User herausfinden
- Unter der URL http://DOMAIN.DE/wp-json/wp/v2/users lassen sich die User der Wordpress Installation auslesen, sofern die API von Wordpress nicht deaktiviert wurde.
- Gleichzeitig lassen sich hier ggf. massenhaft E-Mail Adressen abgreifen, wenn die User als E-Mail Adressen angelegt wurden.
- Beheben lässt sich dies durch anpassen der functions.php, siehe auch https://wordpress.stackexchange.com/questions/252328/wordpress-4-7-1-rest-api-still-exposing-users oder alles unter dem Pfad "/wp-json" auf dem Webserver selber mit Hilfe von HTTP-Basic-Auth absichern.
2. Brute-Force-Angriff über die XML-RPC Schnittstelle
- Über die xmlrpc.php lassen sich Anfragen zur Authentifizierung per Webservice mit Benutzernamen und das Passwort senden.
- Benötigt man diese Schnittstelle nicht, sollte man die xmlrpc.php deaktivieren. Mit Hilfe des WordPress XML-RPC Validation Service kann man überprüfen, ob der Service aktiv ist.
- Bei GitHub finden sich viele xmlrpc-bruteforcer, mit nur wenigen Schritten, lassen sich so mit Hilfe von einem Python-Script Brute-Force-Angriffe starten.
- Passende Listen mit Passwörtern finden sich z.B. unter https://github.com/danielmiessler/SecLists/blob/master/Passwords/Common-Credentials/10k-most-common.txt.
- Die 10 Tausend am häufigsten verwendeten Passwörter lassen sich so in nur wenigen Sekunden mit dem Script überprüfen.
- Deswegen auch hier der Tipp, Passwörter am Besten mit einer Länge von mind. 12 Zeichen immer per Zufall generieren lassen!
Ähnlich lassen sich auch ältere Versionen von Joomla angreifen. Siehe https://book.hacktricks.xyz/network-services-pentesting/pentesting-web/joomla .
AntwortenLöschen