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

231 lines
12 KiB
Markdown
Raw Normal View History

2022-05-24 00:07:19 +00:00
# Moodle
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 15:36:32 +00:00
<summary><strong>Lernen Sie AWS-Hacking von Null auf Held mit</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
2024-02-10 15:36:32 +00:00
Andere Möglichkeiten, HackTricks zu unterstützen:
2023-12-31 01:24:39 +00:00
2024-02-10 15:36:32 +00:00
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories senden.
2022-04-28 16:01:33 +00:00
</details>
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
2022-05-24 00:07:19 +00:00
2024-02-10 15:36:32 +00:00
Wenn Sie sich für eine **Hacking-Karriere** interessieren und das Unhackbare hacken möchten - **wir stellen ein!** (_fließendes Polnisch in Wort und Schrift erforderlich_).
2022-05-24 00:07:19 +00:00
{% embed url="https://www.stmcyber.com/careers" %}
2022-04-28 16:01:33 +00:00
2024-02-10 15:36:32 +00:00
## Automatische Scans
2021-04-05 22:03:17 +00:00
2022-05-24 00:07:19 +00:00
### droopescan
```bash
pip3 install droopescan
droopescan scan moodle -u http://moodle.example.com/<moodle_path>/
2024-02-10 15:36:32 +00:00
[+] Plugins found:
forum http://moodle.schooled.htb/moodle/mod/forum/
http://moodle.schooled.htb/moodle/mod/forum/upgrade.txt
http://moodle.schooled.htb/moodle/mod/forum/version.php
[+] No themes found.
[+] Possible version(s):
2024-02-10 15:36:32 +00:00
3.10.0-beta
[+] Possible interesting urls found:
2024-02-10 15:36:32 +00:00
Static readme file. - http://moodle.schooled.htb/moodle/README.txt
Admin panel - http://moodle.schooled.htb/moodle/login/
[+] Scan finished (0:00:05.643539 elapsed)
```
2022-05-24 00:07:19 +00:00
### moodlescan
2024-02-10 15:36:32 +00:00
`moodlescan` is a tool used for scanning and enumerating Moodle instances. It helps in identifying vulnerabilities and misconfigurations in Moodle installations.
#### Installation
To install `moodlescan`, you can use the following command:
```bash
pip install moodlescan
```
#### Usage
To use `moodlescan`, you need to provide the target Moodle URL. You can use the following command:
```bash
moodlescan -u <target_url>
```
#### Features
`moodlescan` provides the following features:
- **Version Detection**: It can detect the version of Moodle running on the target.
- **Plugin Enumeration**: It can enumerate the installed plugins in Moodle.
- **User Enumeration**: It can enumerate the users in Moodle.
- **Course Enumeration**: It can enumerate the courses in Moodle.
- **Vulnerability Scanning**: It can scan for known vulnerabilities in Moodle.
- **Password Cracking**: It can perform password cracking against Moodle users.
#### Example
Here is an example command to scan a Moodle instance:
```bash
moodlescan -u https://example.com/moodle
```
This will perform a scan on the specified Moodle instance and provide information about the version, installed plugins, users, courses, vulnerabilities, and perform password cracking if possible.
#### Conclusion
`moodlescan` is a useful tool for scanning and enumerating Moodle instances. It can help in identifying vulnerabilities and misconfigurations, allowing for better security assessment and penetration testing of Moodle installations.
```bash
#Install from https://github.com/inc0d3/moodlescan
python3 moodlescan.py -k -u http://moodle.example.com/<moodle_path>/
Version 0.7 - Dic/2020
.............................................................................................................
By Victor Herrera - supported by www.incode.cl
2024-02-10 15:36:32 +00:00
.............................................................................................................
Getting server information http://moodle.schooled.htb/moodle/ ...
server : Apache/2.4.46 (FreeBSD) PHP/7.4.15
x-powered-by : PHP/7.4.15
x-frame-options : sameorigin
last-modified : Wed, 07 Apr 2021 21:33:41 GMT
Getting moodle version...
Version found via /admin/tool/lp/tests/behat/course_competencies.feature : Moodle v3.9.0-beta
Searching vulnerabilities...
Vulnerabilities found: 0
Scan completed.
```
2022-05-24 00:07:19 +00:00
### CMSMap
2024-02-10 15:36:32 +00:00
CMSMap ist ein Open-Source-Tool, das für die Erkennung von Content-Management-Systemen (CMS) auf einer Zielwebsite verwendet wird. Es kann helfen, Informationen über das verwendete CMS, die installierten Plugins und Themes sowie mögliche Sicherheitslücken zu sammeln.
#### Installation
Die Installation von CMSMap ist einfach. Sie können es entweder von GitHub herunterladen oder über den Python Package Manager (pip) installieren:
```bash
pip install cmsmap
```
#### Verwendung
Nach der Installation können Sie CMSMap verwenden, um eine Website auf CMS und verwandte Informationen zu scannen. Hier ist ein Beispielbefehl:
```bash
cmsmap http://example.com
```
Dieser Befehl scannt die Website "http://example.com" auf CMS und gibt die Ergebnisse aus.
#### Funktionen
CMSMap bietet verschiedene Funktionen, darunter:
- Erkennung des verwendeten CMS
- Erkennung von installierten Plugins und Themes
- Überprüfung auf bekannte Sicherheitslücken
- Bruteforce-Login für CMS-Administrationsbereiche
- Generierung von Berichten über die gescannten Informationen
#### Fazit
CMSMap ist ein nützliches Tool für Pentester und Sicherheitsforscher, um Informationen über CMS und mögliche Sicherheitslücken auf einer Zielwebsite zu sammeln. Es kann bei der Identifizierung von Schwachstellen und der Durchführung von Sicherheitsaudits helfen.
```bash
pip3 install git+https://github.com/dionach/CMSmap.git
cmsmap http://moodle.example.com/<moodle_path>
```
2022-05-24 00:07:19 +00:00
### CVEs
2024-02-10 15:36:32 +00:00
Ich habe festgestellt, dass automatische Tools ziemlich nutzlos sind, um Schwachstellen in der Moodle-Version zu finden. Du kannst sie unter [https://snyk.io/vuln/composer:moodle%2Fmoodle](https://snyk.io/vuln/composer:moodle%2Fmoodle) überprüfen.
2024-02-10 15:36:32 +00:00
## RCE
2024-02-10 15:36:32 +00:00
Du musst die Rolle des Managers haben und kannst Plugins innerhalb des Tabs "Site Administration" installieren:
![](<../../.gitbook/assets/image (447).png>)
2024-02-10 15:36:32 +00:00
Wenn du Manager bist, musst du diese Option möglicherweise noch aktivieren. Du kannst sehen, wie es im Moodle-Privileg-Eskalations-PoC gemacht wird: [https://github.com/HoangKien1020/CVE-2020-14321](https://github.com/HoangKien1020/CVE-2020-14321).
2024-02-10 15:36:32 +00:00
Dann kannst du das folgende Plugin installieren, das die klassische Pentest-Monkey PHP-Reverse-Shell enthält (bevor du es hochlädst, musst du es dekomprimieren, die IP und den Port der Reverse-Shell ändern und es wieder komprimieren):
{% file src="../../.gitbook/assets/moodle-rce-plugin.zip" %}
2024-02-10 15:36:32 +00:00
Oder du könntest das Plugin von [https://github.com/HoangKien1020/Moodle\_RCE](https://github.com/HoangKien1020/Moodle\_RCE) verwenden, um eine reguläre PHP-Shell mit dem Parameter "cmd" zu erhalten.
2024-02-10 15:36:32 +00:00
Um das bösartige Plugin zu starten, musst du auf Folgendes zugreifen:
```bash
http://domain.com/<moodle_path>/blocks/rce/lang/en/block_rce.php?cmd=id
```
2024-02-10 15:36:32 +00:00
### Datenbank-Anmeldeinformationen finden
Um die Datenbank-Anmeldeinformationen in Moodle zu finden, können Sie verschiedene Techniken verwenden:
1. **Manuelles Durchsuchen der Konfigurationsdateien**: Überprüfen Sie die Konfigurationsdateien von Moodle, um nach Anmeldeinformationen zu suchen. Die Datei `config.php` enthält normalerweise die Datenbankinformationen. Sie können diese Datei öffnen und nach den Parametern `dbuser` und `dbpass` suchen, um die Benutzername und das Passwort der Datenbank zu finden.
2024-02-10 15:36:32 +00:00
2. **Ausnutzen von Schwachstellen**: Überprüfen Sie, ob Moodle anfällig für bekannte Schwachstellen ist, die es ermöglichen, auf die Datenbank zuzugreifen. Einige Schwachstellen können es Ihnen ermöglichen, die Datenbankanmeldeinformationen direkt abzurufen.
2024-02-10 15:36:32 +00:00
3. **Ausnutzen von LFI (Local File Inclusion)**: Wenn Sie eine LFI-Schwachstelle in Moodle finden, können Sie versuchen, auf die Konfigurationsdateien zuzugreifen, um die Datenbankanmeldeinformationen zu finden. Durchsuchen Sie die Dateien nach den Parametern `dbuser` und `dbpass`.
2024-02-10 15:36:32 +00:00
4. **Ausnutzen von RFI (Remote File Inclusion)**: Wenn Sie eine RFI-Schwachstelle in Moodle finden, können Sie eine externe Datei einbinden, die die Datenbankanmeldeinformationen enthält. Überprüfen Sie, ob Sie eine Datei mit den Anmeldeinformationen finden können.
5. **Brute-Force-Angriff**: Wenn Sie keine Schwachstellen finden können, können Sie einen Brute-Force-Angriff auf die Anmeldeseite von Moodle durchführen. Verwenden Sie eine Liste häufig verwendeter Benutzernamen und Passwörter, um die Anmeldeinformationen zu erraten.
Es ist wichtig zu beachten, dass das unbefugte Zugreifen auf Datenbanken illegal ist, es sei denn, Sie haben die ausdrückliche Erlaubnis des Eigentümers. Führen Sie diese Techniken nur in einer legalen und autorisierten Umgebung durch.
```bash
find / -name "config.php" 2>/dev/null | grep "moodle/config.php"
```
2024-02-10 15:36:32 +00:00
### Zugangsdaten aus der Datenbank extrahieren
Um Zugangsdaten aus einer Datenbank zu extrahieren, können verschiedene Techniken verwendet werden. Hier sind einige gängige Methoden:
2024-02-10 15:36:32 +00:00
1. **SQL-Injection**: Durch Ausnutzen von Schwachstellen in der Webanwendung können Angreifer SQL-Befehle in die Datenbank einschleusen. Dies ermöglicht es ihnen, Zugriff auf die Datenbank zu erhalten und Zugangsdaten abzurufen.
2021-04-05 22:03:17 +00:00
2024-02-10 15:36:32 +00:00
2. **Passwort-Hashing**: Wenn die Zugangsdaten in der Datenbank gehasht sind, können Angreifer versuchen, die Hashes zu brechen und die ursprünglichen Passwörter wiederherzustellen. Dies kann durch den Einsatz von Brute-Force-Angriffen oder dem Vergleichen der Hashes mit vorab berechneten Rainbow-Tables erfolgen.
3. **Datenbank-Exploits**: Es gibt verschiedene Exploits, die speziell auf bestimmte Datenbanken abzielen. Diese Exploits können es Angreifern ermöglichen, Zugriff auf die Datenbank zu erhalten und Zugangsdaten abzurufen.
Es ist wichtig zu beachten, dass das Extrahieren von Zugangsdaten aus einer Datenbank illegal ist, es sei denn, es erfolgt im Rahmen einer autorisierten Penetrationstest. Es ist wichtig, die geltenden Gesetze und Vorschriften zu beachten und nur mit ausdrücklicher Genehmigung des Eigentümers auf Datenbanken zuzugreifen.
2021-04-05 22:03:17 +00:00
```bash
/usr/local/bin/mysql -u <username> --password=<password> -e "use moodle; select email,username,password from mdl_user; exit"
```
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
2022-04-28 16:01:33 +00:00
2024-02-10 15:36:32 +00:00
Wenn Sie an einer **Hackerkarriere** interessiert sind und das Unhackbare hacken möchten - **wir stellen ein!** (_fließendes Polnisch in Wort und Schrift erforderlich_).
2022-05-24 00:07:19 +00:00
{% embed url="https://www.stmcyber.com/careers" %}
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 15:36:32 +00:00
<summary><strong>Lernen Sie AWS-Hacking von Null auf Held mit</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
2024-02-10 15:36:32 +00:00
Andere Möglichkeiten, HackTricks zu unterstützen:
2023-12-31 01:24:39 +00:00
2024-02-10 15:36:32 +00:00
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories senden.
2022-04-28 16:01:33 +00:00
</details>