Wordpress
Last updated
Last updated
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Gebruik Trickest om maklik te bou en werkvloei te automate wat deur die wêreld se mees gevorderde gemeenskap gereedskap aangedryf word. Kry Toegang Vandag:
Gelaaide lêers gaan na: http://10.10.10.10/wp-content/uploads/2018/08/a.txt
Temas lêers kan gevind word in /wp-content/themes/, so as jy 'n paar php van die tema verander om RCE te kry, sal jy waarskynlik daardie pad gebruik. Byvoorbeeld: Met tema twentytwelve kan jy toegang kry tot die 404.php lêer in: /wp-content/themes/twentytwelve/404.php
Nog 'n nuttige url kan wees: /wp-content/themes/default/404.php
In wp-config.php kan jy die wortel wagwoord van die databasis vind.
Standaard aanmeldpade om te kontroleer: /wp-login.php, /wp-login/, /wp-admin/, /wp-admin.php, /login/
index.php
license.txt
bevat nuttige inligting soos die weergawe van WordPress wat geïnstalleer is.
wp-activate.php
word gebruik vir die e-pos aktiveringsproses wanneer 'n nuwe WordPress webwerf opgestel word.
Aanmeldmappies (kan hernoem word om dit te verberg):
/wp-admin/login.php
/wp-admin/wp-login.php
/login.php
/wp-login.php
xmlrpc.php
is 'n lêer wat 'n kenmerk van WordPress verteenwoordig wat data toelaat om met HTTP oorgedra te word as die vervoermeganisme en XML as die koderingmeganisme. Hierdie tipe kommunikasie is vervang deur die WordPress REST API.
Die wp-content
gids is die hoofgids waar plugins en temas gestoor word.
wp-content/uploads/
Is die gids waar enige lêers wat na die platform gelaai word, gestoor word.
wp-includes/
Dit is die gids waar kernlêers gestoor word, soos sertifikate, lettertipes, JavaScript-lêers, en widgets.
wp-sitemap.xml
In WordPress weergawes 5.5 en groter, genereer WordPress 'n sitemap XML-lêer met al openbare plasings en publiek navraagbare plasings tipes en taksonomieë.
Post eksplorasie
Die wp-config.php
lêer bevat inligting wat deur WordPress benodig word om met die databasis te verbind, soos die databasisnaam, databasis gasheer, gebruikersnaam en wagwoord, autentikasiesleutels en sout, en die databasis tabel voorvoegsel. Hierdie konfigurasielêer kan ook gebruik word om DEBUG-modus te aktiveer, wat nuttig kan wees in probleemoplossing.
Administrateur
Redigeerder: Publiseer en bestuur sy en ander plasings
Skrywer: Publiseer en bestuur sy eie plasings
Bydraer: Skryf en bestuur sy plasings maar kan dit nie publiseer nie
Tekenaar: Blaai deur plasings en redigeer hul profiel
Kyk of jy die lêers /license.txt
of /readme.html
kan vind
Binne die bronskode van die bladsy (voorbeeld van https://wordpress.org/support/article/pages/):
grep
meta name
CSS skakel lêers
JavaScript lêers
Gebruik Trickest om maklik te bou en werkvloei te outomatiseer wat aangedryf word deur die wêreld se mees gevorderde gemeenskapstoestelle. Kry Toegang Vandag:
Jy sal waarskynlik nie in staat wees om al die Plugins en Temas te vind nie. Om al hulle te ontdek, sal jy aktief 'n lys van Plugins en Temas te Brute Force (hopelik is daar outomatiese gereedskap wat hierdie lyste bevat).
ID Brute: Jy kry geldige gebruikers van 'n WordPress-webwerf deur gebruikers-ID's te Brute Force:
As die antwoorde 200 of 30X is, beteken dit dat die id geldige is. As die antwoord 400 is, dan is die id ongeldige.
wp-json: Jy kan ook probeer om inligting oor die gebruikers te verkry deur te vra:
'n Ander /wp-json/
eindpunt wat 'n bietjie inligting oor gebruikers kan onthul, is:
Let wel dat hierdie eindpunt slegs gebruikers blootstel wat 'n pos gemaak het. Slegs inligting oor die gebruikers wat hierdie funksie geaktiveer het, sal verskaf word.
Neem ook kennis dat /wp-json/wp/v2/pages IP-adresse kan lek.
Inlog gebruikersnaam enumerasie: Wanneer jy inlog in /wp-login.php
is die boodskap anders as die aangeduide gebruikersnaam bestaan of nie.
As xml-rpc.php
aktief is, kan jy 'n geloofsbriewe brute-force uitvoer of dit gebruik om DoS-aanvalle op ander hulpbronne te loods. (Jy kan hierdie proses outomatiseer deur dit te gebruik, byvoorbeeld).
Om te sien of dit aktief is, probeer om toegang te verkry tot /xmlrpc.php en stuur hierdie versoek:
Kontroleer
Geloofsbriewe Bruteforce
wp.getUserBlogs
, wp.getCategories
of metaWeblog.getUsersBlogs
is sommige van die metodes wat gebruik kan word om geloofsbriewe te brute-force. As jy enige van hulle kan vind, kan jy iets soos stuur:
Die boodskap "Onjuiste gebruikersnaam of wagwoord" binne 'n 200 kode antwoord moet verskyn as die geloofsbriewe nie geldig is nie.
Met die korrekte geloofsbriewe kan jy 'n lêer oplaai. In die antwoord sal die pad verskyn (https://gist.github.com/georgestephanis/5681982)
Ook is daar 'n sneller manier om akrediteer te brute-force met system.multicall
aangesien jy verskeie akrediteer op dieselfde versoek kan probeer:
Om 2FA te omseil
Hierdie metode is bedoel vir programme en nie vir mense nie, en is oud, daarom ondersteun dit nie 2FA nie. So, as jy geldige akrediteer het maar die hoofingang is beskerm deur 2FA, kan jy dalk xmlrpc.php misbruik om in te log met daardie akrediteer terwyl jy 2FA omseil. Let daarop dat jy nie al die aksies wat jy deur die konsole kan doen, kan uitvoer nie, maar jy mag steeds in staat wees om RCE te verkry soos Ippsec dit verduidelik in https://www.youtube.com/watch?v=p8mIdm93mfw&t=1130s
DDoS of poort skandering
As jy die metode pingback.ping in die lys kan vind, kan jy die Wordpress dwing om 'n arbitrêre versoek na enige gasheer/poort te stuur. Dit kan gebruik word om duisende Wordpress webwerwe te vra om toegang tot een plek te kry (so 'n DDoS word in daardie plek veroorsaak) of jy kan dit gebruik om Wordpress te laat skandeer van 'n interne netwerk (jy kan enige poort aandui).
As jy faultCode met 'n waarde groter as 0 (17) kry, beteken dit die poort is oop.
Kyk na die gebruik van system.multicall
in die vorige afdeling om te leer hoe om hierdie metode te misbruik om DDoS te veroorsaak.
DDoS
Hierdie lêer bestaan gewoonlik onder die wortel van die Wordpress-webwerf: /wp-cron.php
Wanneer hierdie lêer geïndekseer word, word 'n "zware" MySQL navraag uitgevoer, wat deur aanvallers gebruik kan word om 'n DoS te veroorsaak.
Ook, standaard, word die wp-cron.php
op elke bladsy-laai (wanneer 'n kliënt enige Wordpress-bladsy versoek) aangeroep, wat op hoë-verkeer webwerwe probleme kan veroorsaak (DoS).
Dit word aanbeveel om Wp-Cron te deaktiveer en 'n werklike cronjob binne die gasheer te skep wat die nodige aksies op 'n gereelde interval uitvoer (sonder om probleme te veroorsaak).
Probeer om https://worpress-site.com/wp-json/oembed/1.0/proxy?url=ybdk28vjsa9yirr7og2lukt10s6ju8.burpcollaborator.net te benader en die Wordpress-webwerf mag 'n versoek aan jou maak.
Dit is die antwoord wanneer dit nie werk nie:
Hierdie hulpmiddel kontroleer of die methodName: pingback.ping en vir die pad /wp-json/oembed/1.0/proxy bestaan, en as dit bestaan, probeer dit om dit te benut.
Meer as 'n werklike aanval is dit 'n nuuskierigheid. IN die CTF https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man kon jy 1 bietjie van enige wordpress-lêer omdraai. So jy kon die posisie 5389
van die lêer /var/www/html/wp-includes/user.php
omdraai om die NOT (!
) operasie te NOP.
Wysig 'n php van die tema wat gebruik word (admin geloofsbriewe benodig)
Uiterlik → Tema Redigeerder → 404 Sjabloon (aan die regterkant)
Verander die inhoud na 'n php shell:
Soek op die internet hoe jy toegang kan kry tot daardie opgedateerde bladsy. In hierdie geval moet jy hier toegang kry: http://10.11.1.234/wp-content/themes/twentytwelve/404.php
Jy kan gebruik:
to get a session.
Dit mag moontlik wees om .php-lêers as 'n plugin op te laai. Skep jou php backdoor met behulp van byvoorbeeld:
Voeg dan 'n nuwe plugin by:
Laai die plugin op en druk Installeer Nou:
Klik op Voortgaan:
Waarskynlik sal dit niks doen nie, maar as jy na Media gaan, sal jy jou shell opgelaai sien:
Toegang daartoe en jy sal die URL sien om die omgekeerde shell uit te voer:
Hierdie metode behels die installasie van 'n kwaadwillige plugin wat bekend is om kwesbaar te wees en wat benut kan word om 'n web shell te verkry. Hierdie proses word deur die WordPress-dashboard uitgevoer soos volg:
Plugin Verkryging: Die plugin word verkry van 'n bron soos Exploit DB soos hier.
Plugin Installasie:
Navigeer na die WordPress-dashboard, gaan dan na Dashboard > Plugins > Upload Plugin
.
Laai die zip-lêer van die afgelaaide plugin op.
Plugin Aktivering: Sodra die plugin suksesvol geïnstalleer is, moet dit deur die dashboard geaktiveer word.
Eksploitering:
Met die plugin "reflex-gallery" geïnstalleer en geaktiveer, kan dit benut word aangesien dit bekend is om kwesbaar te wees.
Die Metasploit-raamwerk bied 'n eksploit vir hierdie kwesbaarheid. Deur die toepaslike module te laai en spesifieke opdragte uit te voer, kan 'n meterpreter-sessie gevestig word, wat ongeoorloofde toegang tot die webwerf verleen.
Dit word opgemerk dat dit net een van die vele metodes is om 'n WordPress-webwerf te exploiteer.
Die inhoud sluit visuele hulpmiddels in wat die stappe in die WordPress-dashboard vir die installasie en aktivering van die plugin uitbeeld. Dit is egter belangrik om op te let dat die benutting van kwesbaarhede op hierdie manier onwettig en oneties is sonder behoorlike magtiging. Hierdie inligting moet verantwoordelik gebruik word en slegs in 'n wettige konteks, soos penetrasietoetsing met eksplisiete toestemming.
Vir meer gedetailleerde stappe kyk: https://www.hackingarticles.in/wordpress-reverse-shell/
WPXStrike: WPXStrike is 'n skrip wat ontwerp is om 'n Cross-Site Scripting (XSS) kwesbaarheid na Remote Code Execution (RCE) of ander kritieke kwesbaarhede in WordPress te eskaleer. Vir meer inligting kyk hierdie pos. Dit bied ondersteuning vir WordPress weergawes 6.X.X, 5.X.X en 4.X.X. en laat toe om:
Privilegie Eskalasie: Skep 'n gebruiker in WordPress.
(RCE) Aangepaste Plugin (backdoor) Oplaai: Laai jou aangepaste plugin (backdoor) na WordPress op.
(RCE) Ingeboude Plugin Wysig: Wysig 'n Ingeboude Plugin in WordPress.
(RCE) Ingeboude Tema Wysig: Wysig 'n Ingeboude Tema in WordPress.
(Aangepas) Aangepaste Eksploite: Aangepaste Eksploite vir Derdeparty WordPress Plugins/Themes.
Trek gebruikersname en wagwoorde uit:
Verander admin wagwoord:
Om te weet hoe 'n Wordpress-plugin funksionaliteit kan blootstel, is sleutel om kwesbaarhede in sy funksionaliteit te vind. Jy kan vind hoe 'n plugin funksionaliteit mag blootstel in die volgende opsommingstekens en 'n paar voorbeelde van kwesbare plugins in hierdie blogpos.
wp_ajax
Een van die maniere waarop 'n plugin funksies aan gebruikers kan blootstel, is via AJAX-handlers. Hierdie kan logika, magtiging of outentikasie foute bevat. Boonop is dit 'n soort van gereeldheid dat hierdie funksies beide die outentikasie en magtiging op die bestaan van 'n wordpress nonce sal baseer wat enige gebruiker wat in die Wordpress-instantie geoutentiseer is, mag hê (ongeag sy rol).
Dit is die funksies wat gebruik kan word om 'n funksie in 'n plugin bloot te stel:
Die gebruik van nopriv
maak die eindpunt toeganklik vir enige gebruikers (selfs nie-geverifieerde nie).
Boonop, as die funksie net die magtiging van die gebruiker met die funksie wp_verify_nonce
nagaan, kyk hierdie funksie net of die gebruiker ingelogde is, dit kyk gewoonlik nie na die rol van die gebruiker nie. So lae bevoorregte gebruikers mag toegang hê tot hoë bevoorregte aksies.
REST API
Dit is ook moontlik om funksies van wordpress bloot te stel deur 'n rest AP te registreer met die register_rest_route
funksie:
Die permission_callback
is 'n terugroep funksie wat nagaan of 'n gegewe gebruiker gemagtig is om die API-metode aan te roep.
As die ingeboude __return_true
funksie gebruik word, sal dit eenvoudig die gebruikerstoestemmingskontrole oorslaan.
Direkte toegang tot die php-lêer
Natuurlik gebruik Wordpress PHP en lêers binne plugins is direk vanaf die web toeganklik. So, in die geval dat 'n plugin enige kwesbare funksionaliteit blootstel wat geaktiveer word deur net die lêer te benader, sal dit deur enige gebruiker uitgebuit kan word.
Maak seker dat WordPress, plugins, en temas op datum is. Bevestig ook dat outomatiese opdatering geaktiveer is in wp-config.php:
Ook, installeer slegs betroubare WordPress-inproppe en temas.
Verwyder standaard admin gebruiker
Gebruik sterk wagwoorde en 2FA
Periodiek hersien gebruikers toestemmings
Beperk aanmeldpogings om Brute Force-aanvalle te voorkom
Hernoem wp-admin.php
lêer en laat slegs interne toegang of toegang vanaf sekere IP-adresse toe.
Gebruik Trickest om maklik te bou en automate werkvloei aangedryf deur die wêreld se mees gevorderde gemeenskapstoestelle. Kry Toegang Vandag:
Leer & oefen AWS Hacking:HackTricks Opleiding AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Opleiding GCP Red Team Expert (GRTE)