Wordpress
Last updated
Last updated
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Koristite Trickest za lako kreiranje i automatizaciju radnih tokova pokretanih najnaprednijim alatima zajednice na svetu. Pribavite pristup danas:
Otpremljeni fajlovi idu na: http://10.10.10.10/wp-content/uploads/2018/08/a.txt
Fajlovi 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 404.php fajlu na: /wp-content/themes/twentytwelve/404.php
Još jedan koristan URL može biti: /wp-content/themes/default/404.php
U wp-config.php možete pronaći root lozinku baze podataka.
Podrazumevani putanje za prijavu koje treba proveriti: /wp-login.php, /wp-login/, /wp-admin/, /wp-admin.php, /login/
index.php
license.txt
sadrži korisne informacije kao što je verzija WordPress-a koja je instalirana.
wp-activate.php
se koristi za proces aktivacije putem e-pošte prilikom postavljanja novog WordPress sajta.
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 fajl koji predstavlja funkciju WordPress-a koja omogućava prenos podataka putem HTTP-a kao transportnog mehanizma i XML-a kao mehanizma kodiranja. Ova vrsta komunikacije je zamenjena 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 otpremljeni na platformu.
wp-includes/
Ovo je direktorijum gde se čuvaju osnovni fajlovi, kao što su sertifikati, fontovi, JavaScript fajlovi i dodaci.
wp-sitemap.xml
U WordPress verzijama 5.5 i većim, WordPress generiše XML fajl mape sajta sa svim javnim postovima i javno upitnim tipovima postova i taksonomijama.
Post eksploatacija
Fajl wp-config.php
sadrži informacije potrebne WordPress-u za povezivanje sa bazom podataka, kao što su ime baze podataka, host baze podataka, korisničko ime i lozinka, ključevi za autentifikaciju i soli, i prefiks tabela baze podataka. Ovaj konfiguracioni fajl se takođe može koristiti za aktiviranje DEBUG moda, što može biti korisno u rešavanju problema.
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
Proverite da li možete pronaći fajlove /license.txt
ili /readme.html
Unutar izvora koda stranice (primer sa https://wordpress.org/support/article/pages/):
grep
meta name
CSS link datoteke
JavaScript datoteke
Koristite Trickest da lako izgradite i automatizujete radne tokove pokretane od strane najnaprednijih alata zajednice. Pribavite pristup danas:
Verovatno nećete moći da pronađete sve moguće dodatke i teme. Da biste otkrili sve njih, biće potrebno da aktivno Brute Force-ujete listu dodataka i tema (na sreću, postoje automatski alati koji sadrže ove liste).
ID Brute: Dobijate validne korisnike sa WordPress sajta tako što Brute Forcujete ID-eve korisnika:
Ako su odgovori 200 ili 30X, to znači da je id validan. Ako je odgovor 400, onda je id nevalidan.
wp-json: Takođe možete pokušati da dobijete informacije o korisnicima upitom:
Još jedan /wp-json/
krajnji tačka koja može otkriti neke informacije o korisnicima je:
Napomena da ovaj krajnji tačka samo izlaže korisnike koji su napravili post. Samo informacije o korisnicima koji imaju ovu funkciju omogućenu će biti pružene.
Takođe napomena da /wp-json/wp/v2/pages može da otkrije IP adrese.
Enumeracija korisničkog imena za prijavu: Kada se prijavljujete u /wp-login.php
, poruka je drugačija u zavisnosti od toga da li je naznačeno korisničko ime postoji ili ne.
Ako je xml-rpc.php
aktivan, možete izvršiti brute-force napad na kredencijale ili ga koristiti za pokretanje DoS napada na druge resurse. (Možete automatizovati ovaj proces koristeći ovo na primer).
Da biste proverili da li je aktivan, pokušajte da pristupite /xmlrpc.php i pošaljite ovaj zahtev:
Proveri
Bruteforce kredencijali
wp.getUserBlogs
, wp.getCategories
ili metaWeblog.getUsersBlogs
su neke od metoda koje se mogu koristiti za bruteforce kredencijale. Ako možete pronaći neku od njih, možete poslati nešto poput:
Poruka "Pogrešno korisničko ime ili lozinka" unutar odgovora sa kodom 200 treba da se pojavi ako akreditivi nisu validni.
Korišćenjem ispravnih akreditiva možete otpremiti datoteku. U odgovoru će se pojaviti putanja (https://gist.github.com/georgestephanis/5681982)
Takođe postoji brži način za brute-force kredencijale koristeći system.multicall
jer možete pokušati sa više kredencijala u istom zahtevu:
Obilaženje 2FA
Ova metoda je namenjena programima, a ne ljudima, i stara je, stoga ne podržava 2FA. Dakle, ako imate važeće kredencijale, ali je glavni ulaz zaštićen 2FA, možda ćete moći da iskoristite xmlrpc.php da se prijavite sa tim kredencijalima obilažeći 2FA. Imajte na umu da nećete moći da izvršite sve radnje koje možete da uradite putem konzole, ali možda ćete i dalje moći da dođete do RCE-a kao što Ippsec objašnjava u https://www.youtube.com/watch?v=p8mIdm93mfw&t=1130s
DDoS ili skeniranje portova
Ako možete pronaći metodu pingback.ping unutar liste, možete naterati Wordpress da pošalje proizvoljan zahtev bilo kom hostu/portu. Ovo se može koristiti da se zatraži hiljade Wordpress sajtova da pristupe jednoj lokaciji (tako da se izazove DDoS u toj lokaciji) ili možete to koristiti da naterate Wordpress da skanira neku internu mrežu (možete naznačiti bilo koji port).
Ako dobijete faultCode sa vrednošću većom od 0 (17), to znači da je port otvoren.
Pogledajte korišćenje system.multicall
u prethodnom odeljku da biste naučili kako da zloupotrebite ovu metodu da izazovete DDoS.
DDoS
Ova datoteka obično postoji u korenu Wordpress sajta: /wp-cron.php
Kada se ova datoteka pristupi, izvršava se "teška" MySQL upit, tako da bi mogla biti korišćena od strane napadača da uzrokuje DoS.
Takođe, po defaultu, wp-cron.php
se poziva pri svakom učitavanju stranice (svaki put kada klijent zatraži neku Wordpress stranicu), što na sajtovima sa visokim prometom može izazvati probleme (DoS).
Preporučuje se da se onemogući Wp-Cron i da se kreira pravi cronjob unutar hosta koji izvršava potrebne radnje u redovnim intervalima (bez izazivanja problema).
Pokušajte da pristupite https://worpress-site.com/wp-json/oembed/1.0/proxy?url=ybdk28vjsa9yirr7og2lukt10s6ju8.burpcollaborator.net i Wordpress sajt može da pošalje zahtev ka vama.
Ovo je odgovor kada ne funkcioniše:
Ovaj alat proverava da li methodName: pingback.ping i za putanju /wp-json/oembed/1.0/proxy i ako postoji, pokušava da ih iskoristi.
Više od pravog napada, ovo je radoznalost. U CTF-u https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man mogli ste da prebacite 1 bit iz bilo kog wordpress fajla. Tako ste mogli da prebacite poziciju 5389
fajla /var/www/html/wp-includes/user.php
da NOP-ujete NOT (!
) operaciju.
Modifikovanje php iz teme koja se koristi (potrebne admin akreditive)
Izgled → Urednik teme → 404 Šablon (s desne strane)
Promenite sadržaj za php shell:
Pretražite internet 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
Možete koristiti:
to get a session.
Možda je moguće uploadovati .php fajlove kao plugin. Kreirajte svoj php backdoor koristeći, na primer:
Zatim dodajte novi plugin:
Uploadujte plugin i pritisnite Install Now:
Kliknite na Procced:
Verovatno ovo neće učiniti ništa očigledno, ali ako odete na Media, videćete vaš shell uploadovan:
Pristupite mu i videćete URL za izvršavanje reverse shell-a:
Ova metoda uključuje instalaciju malicioznog plugina za koji se zna da je ranjiv i može se iskoristiti za dobijanje web shell-a. Ovaj proces se sprovodi kroz WordPress kontrolnu tablu na sledeći način:
Plugin Acquisition: Plugin se dobija iz izvora kao što je Exploit DB kao ovde.
Plugin Installation:
Idite na WordPress kontrolnu tablu, zatim idite na Dashboard > Plugins > Upload Plugin
.
Uploadujte zip fajl preuzetog plugina.
Plugin Activation: Kada je plugin uspešno instaliran, mora se aktivirati kroz kontrolnu tablu.
Exploitation:
Sa instaliranim i aktiviranim pluginom "reflex-gallery", može se iskoristiti jer je poznato da je ranjiv.
Metasploit framework pruža exploit za ovu ranjivost. Učitajte odgovarajući modul i izvršite specifične komande, može se uspostaviti meterpreter sesija, što omogućava neovlašćen pristup sajtu.
Napominje se da je ovo samo jedna od mnogih metoda za iskorišćavanje WordPress sajta.
Sadržaj uključuje vizuelne prikaze koji prikazuju korake u WordPress kontrolnoj tabli za instalaciju i aktivaciju plugina. Međutim, važno je napomenuti da je iskorišćavanje ranjivosti na ovaj način ilegalno i neetično bez odgovarajuće dozvole. Ove informacije treba koristiti odgovorno i samo u legalnom kontekstu, kao što je pentesting sa izričitom dozvolom.
Za detaljnije korake proverite: https://www.hackingarticles.in/wordpress-reverse-shell/
Privilege Escalation: Kreira korisnika u WordPress-u.
(RCE) Custom Plugin (backdoor) Upload: Uploadujte svoj prilagođeni plugin (backdoor) u WordPress.
(RCE) Built-In Plugin Edit: Uredite ugrađene plugine u WordPress-u.
(RCE) Built-In Theme Edit: Uredite ugrađene teme u WordPress-u.
(Custom) Custom Exploits: Prilagođeni exploits za treće strane WordPress plugine/teme.
Izvucite korisnička imena i lozinke:
Promenite admin lozinku:
Znanje o tome kako Wordpress plugin može izložiti funkcionalnost je ključno za pronalaženje ranjivosti u njegovoj funkcionalnosti. Možete pronaći kako plugin može izložiti funkcionalnost u sledećim tačkama i neke primere ranjivih plugin-a u ovom blog postu.
wp_ajax
Jedan od načina na koji plugin može izložiti funkcije korisnicima je putem AJAX handler-a. Ovi handler-i mogu sadržati logiku, greške u autorizaciji ili autentifikaciji. Štaviše, često se dešava da će ove funkcije zasnivati i autentifikaciju i autorizaciju na postojanju Wordpress nonce-a koji bilo koji korisnik autentifikovan u Wordpress instanci može imati (nezavisno od njegove uloge).
Ovo su funkcije koje se mogu koristiti za izlaganje funkcije u plugin-u:
Korišćenje nopriv
čini krajnju tačku dostupnom svim korisnicima (čak i neautentifikovanim).
Pored toga, ako funkcija samo proverava autorizaciju korisnika pomoću funkcije wp_verify_nonce
, ova funkcija samo proverava da li je korisnik prijavljen, obično ne proverava ulogu korisnika. Tako da korisnici sa niskim privilegijama mogu imati pristup akcijama sa visokim privilegijama.
REST API
Takođe je moguće izložiti funkcije iz WordPress-a registrujući REST AP koristeći funkciju register_rest_route
:
permission_callback
je povratna funkcija koja proverava da li je dati korisnik ovlašćen da pozove API metodu.
Ako se koristi ugrađena funkcija __return_true
, jednostavno će preskočiti proveru dozvola korisnika.
Direktan pristup php datoteci
Naravno, Wordpress koristi PHP i datoteke unutar dodataka su direktno dostupne sa veba. Dakle, u slučaju da dodatak izlaže bilo koju ranjivu funkcionalnost koja se aktivira samo pristupanjem datoteci, biće iskorišćena od strane bilo kog korisnika.
Uverite se da su WordPress, dodaci i teme ažurirani. Takođe potvrdite da je automatsko ažuriranje omogućeno u wp-config.php:
Takođe, instalirajte samo pouzdane WordPress dodatke i teme.
Uklonite podrazumevanog admin korisnika
Koristite jake lozinke i 2FA
Periodično proveravajte dozvole korisnika
Ograničite pokušaje prijavljivanja kako biste sprečili Brute Force napade
Preimenujte wp-admin.php
datoteku i dozvolite pristup samo interno ili sa određenih IP adresa.
Koristite Trickest za lako kreiranje i automatizaciju radnih tokova uz pomoć najnaprednijih alata zajednice na svetu. Pribavite pristup danas:
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)