Welkom terug mede beveiligingsenthousiastelingen! Vandaag laat ik je zien hoe je een WordPress website kunt hacken met de Mr. Robot CTF als voorbeeld. Ik heb net zelf deze uitstekende CTF doorgenomen en daarbij een ton geleerd. Ik wilde mijn Web Vulnerability Analysis spel een inkeping levelen en begon met deze CTF.
Als je echt Cybersecurity wilt leren, raad ik je ten zeerste aan mijn enorme Aan de slag met Cybersecurity in 2019 beginnersgids te lezen, waar ik je leer hoe je moet beginnen, helemaal gratis! Ook de moeite waard om te controleren is het Beste Hacking Boeken in 2019 artikel.
DISCLAIMER: Deze “hoe een WordPress website te hacken” is een Ethical Hacking Tutorial en gericht op Security Professionals. Gebruik deze technieken niet, ik herhaal, gebruik ze niet zonder schriftelijke toestemming van de ontvangende partij. Als u deze handleiding in een onwettige context gebruikt, kan u een aanklacht en/of gevangenisstraf te wachten staan. Gebruik deze technieken alleen in een afgesloten laboratoriumomgeving.
Een CTF is een zogenaamd Capture the Flag spel, waarbij het je doel is om een bepaald aantal vlaggen (of sleutels, for that matter) te verzamelen. CTF’s worden gebruikt om je hack-vaardigheden te oefenen in een veilige en legale omgeving. Ik kan Vulnhub aanbevelen als een bron voor een selectie van uitstekende CTF’s.
Ok, laten we beginnen.
- Stap 1 – Evalueren of een website WordPress gebruikt
- Stap 2 – Code pakken met Burpsuite
- Stap 3 – Het vinden van de juiste gebruikersnaam
- Stap 4 – Usernames bruteforcen met Hydra
- Stap 5 – Brute Forcing van het wachtwoord
- Stap 6 – De kwaadaardige code in WordPress implementeren
- Stap 7 – Start een Netcat listener
- Gelieve te delen!
Stap 1 – Evalueren of een website WordPress gebruikt
Als je niet weet of een website WordPress gebruikt of niet, is er meestal een heel gemakkelijke manier om dat uit te vinden.
U kunt gewoon typen: www.addressofthewebsite.com/wp-admin
Wat in de meeste gevallen een wp-admin login gui tevoorschijn zal brengen, behalve dat de admin het heeft uitgeschakeld.
Een andere goede manier om te controleren of een website WordPress gebruikt is door gebruik te maken van wpscan. Wpscan is voorgeïnstalleerd in zowel Kali als ParrotSec.
wpscan -u www.addressofyourtarget.com
In mijn geval levert het scannen van de Mr. Robot VM het volgende op.
Zoals u kunt zien, geeft het duidelijk aan dat de site WordPress gebruikt. Ook worden 46 geïdentificeerde kwetsbaarheden weergegeven. De meeste hosters en recente versies van WordPress zullen een scan als deze standaard blokkeren. Dus hoogstwaarschijnlijk zal dit alleen werken met verouderde WordPress versies zonder enige bescherming van een hoster.
Ok, tot zover alles goed. Nu kunnen we controleren of de login pagina bestaat door naar de website URL + /wp-admin te gaan:
En ja hoor, het Login masker verschijnt.
Stap 2 – Code pakken met Burpsuite
Nu komt het moeilijke gedeelte, het achterhalen van de gebruikersnaam. Je zou kunnen beginnen met admin, maar WordPress genereert meestal een willekeurige gebruikersnaam, dus het kan moeilijk te achterhalen zijn en je moet misschien wat verder onderzoek doen naar het doelwit.
In het Mr. Robot voorbeeld weet ik dat de gebruikersnaam Elliot is (niet te moeilijk om te raden). Je zou ook kunnen proberen om hydra tegen een paar gebruikersnaam lijsten te gebruiken, maar eerst moeten we burpsuite gebruiken om wat code van de login pagina te halen.
Start burpsuite door te typen
sudo burpsuite
Maak een nieuw Tijdelijk Project met behulp van de Burp standaards.
Navigeer naar de Doel -> Scope Tab en klik op Toevoegen om de wp-login pagina aan de scope toe te voegen. Selecteer Ja in het pop-upvenster.
Volgende, ga naar het voorkeurenmenu van Firefox en scrol helemaal naar beneden totdat u Netwerkproxy vindt. Klik op Instellingen.
Selecteer Handmatige proxyconfiguratie en voer het IP 127.0.0.1 en de poort 8080 in. Vink “Gebruik deze proxyserver voor alle protocollen” aan. Klik op OK.
Terug naar Burpsuite. Open het tabblad Proxy. Ga nu terug naar de WP-Login pagina. Voer een willekeurige gebruikersnaam en wachtwoord in en klik op Log in. Zorg ervoor dat Privacy Badger, uBlock Origins en NoScript zijn uitgeschakeld voor de site.
Als u op inloggen hebt geklikt, gaat u terug naar Burpsuite en bekijkt u de uitvoer.
log=root&pwd=1234&wp-submit=Log+In&redirect_to=http%3A%2F%2F192.168.1.109%2Fwp-admin%2F&testcookie=1
Nu hebben we iets wat we aan Hydra kunnen voeren.
Stap 3 – Het vinden van de juiste gebruikersnaam
Laten we eens wat leuks doen om u een idee te geven hoe u een gebruikersnaam voor uw doelwit zou kunnen achterhalen. De VM die we gebruiken voor dit voorbeeld, zoals hierboven vermeld, is Mr. Robot gethematiseerd. Het is dus zeer waarschijnlijk dat de gebruikersnaam te vinden zal zijn in een of andere trivia die te maken heeft met Mr. Robot.
Ga eerst terug naar je Burpsuite en sluit het. We hebben het nu niet meer nodig. Ga ook terug naar je Proxy-instellingen en schakel de Proxy weer uit.
Nu ga ik naar de Mr. Robot Wikipedia pagina: https://en.wikipedia.org/wiki/Mr._Robot
En ik zal een gebruikersnaamlijst maken van deze exacte pagina met behulp van CeWL.
Open een nieuw Terminal venster en typ
sudo cewl -w usernames.txt -d1 -m4 https://en.wikipedia.org/wiki/Mr._Robot
Laten we dit even uitsplitsen.
- -w gebruikersnamen.txt – zou vrij duidelijk moeten zijn, dit is de naam van de woordenlijst die zal worden gemaakt
- -d1 – Bepaalt de diepte waarin CeWL de website zal crawlen. 1 geeft aan dat het precies op deze site zal blijven en er geen links zal openen.
- -m4 – Bepaalt de minimum lengte van het woord dat in de lijst zal komen
- https://en.wikipedia.org/wiki/Mr._Robot – uiteraard de website die we gaan crawlen.
Zoals u ziet, kunt u deze techniek op iedere relevante website toepassen.
Het uitvoeren van een snelle
ls
Het laat ons zien, dat onze usernames.txt is aangemaakt.
In sommige gevallen heb je geluk als je wpscan gebruikt om de gebruikersnaam op te sommen, dus probeer dit ook altijd:
wpscan --url http://www.targetwebsite.com --enumerate u
Nu gaan we Hydra gebruiken om deze lijst te bruteforcen tegen de wp-login pagina.
Stap 4 – Usernames bruteforcen met Hydra
Al goed, tijd om de usernames aan onze Hydra te voeren. Ik heb deze methode gevonden op een van de vele Walkthroughs van Vulnhub, hoewel ik niet meer precies weet welke, maar ik geef credit waar credit verschuldigd is. Open een nieuw terminal venster en typ:
hydra -V -L usernames.txt -p whatever 192.168.1.109 http-post-form '/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log:F=Invalid username'
Laten we dit even uitsplitsen.
- -V – Verbose
- -L – Our usernames.txt list
- -p whatever – Het wachtwoord, het maakt ons niet uit, want we willen de gebruikersnaam achterhalen
- http-post-form – Het type Brute Force aanval dat we willen uitvoeren
- /wp-login.php – Het pad naar het inlogformulier
- log = ^USER^&pwd=^PASS^&wp-submit=Log+In – De waarden die naar het formulier gestuurd zullen worden, waar ^USER^ en ^PASS^ plaatshouders zijn voor onze -L en -p opties
- F=Ongeldige gebruikersnaam – Vertelt hydra dat de poging mislukt is als het Ongeldige gebruikersnaam retourneert
Goed, laten we dat commando uitvoeren, zullen we?
En inderdaad, we krijgen terug dat de login met de gebruikersnaam elliot succesvol was (wat het niet was, het bevestigde alleen dat het webformulier geen ongeldige gebruikersnaam teruggaf).
Dus we moeten nog steeds het wachtwoord achterhalen. Maar we hebben tenminste een gebruikersnaam.
Stap 5 – Brute Forcing van het wachtwoord
Nu zouden we ook Hydra kunnen gebruiken om het wachtwoord van de gebruiker te Brute Forcen, maar ik gebruik liever wpscan omdat de syntax eenvoudiger is.
wpscan --url http://192.168.1.109/wp-login.php --passwords /usr/share/wordlists/rockyou.txt.gz --usernames elliot --wp-content-dir http://192.168.1.109/wp-login.php
rockyou.txt.gz is slechts een voorbeeld, vervang het door de wachtwoordenlijst die je wilt gebruiken.
En voila, we hebben de gebruikersnaam en het wachtwoord.
Stap 6 – De kwaadaardige code in WordPress implementeren
Okee, nu we Admin-toegang tot WordPress hebben gekregen, kunnen we vanaf hier op een paar manieren te werk gaan. Ik zal u een van de makkelijkere laten zien.
Op uw aanvallende computer gaat u naar Plaatsen -> Bestandssysteem -> usr -> delen -> webshells -> php en opent u php-reverse-shell.php
Kopieer de volledige inhoud:
Navigeer nu in WordPress naar Uiterlijk -> Editor en selecteer het 404.php-sjabloon. Dit is slechts een voorbeeld, u kunt de code op veel verschillende manieren implementeren.
Plak nu uw code hierin zodat deze er ongeveer zo uitziet:
Bewerk de geel gemarkeerde regels zodat het IP-adres naar uw aanvallende computer wijst en kies een poort.
Stap 7 – Start een Netcat listener
Nu terug op de aanvallende computer, starten we een Netcat listener:
nc -lvp 443
Daarna opent u de 404 pagina zoals u gewoon naar de link gaat: www.yourtargetwebsite.com/404
En we zijn binnen! We hebben niet alleen het WordPress Admin Account gehackt, we hebben ook toegang gekregen tot de server zelf. Vanaf hier moet je je vaardigheden gebruiken om een hogere toegang te krijgen, maar dat zou nu niet al te moeilijk meer moeten zijn.
Je ziet het, CTF’s zijn een geweldige manier om nieuwe dingen te leren.
Tot de volgende keer, blijf hacken.
*Alle technieken die in de tutorials op ceos3c.com worden gegeven, zijn uitsluitend bedoeld voor educatieve doeleinden.
Alle technieken die hier worden aangeleerd zijn alleen bedoeld om te gebruiken in een gesloten laboratorium omgeving of in samenspraak met een tweede partij.
Als je een van deze technieken gebruikt voor illegale doeleinden, kan Ceos3c niet verantwoordelijk worden gehouden voor eventuele legale gevolgen.