hacktricks/network-services-pentesting/pentesting-web/moodle.md
2024-02-10 15:36:32 +00:00

12 KiB

Moodle

Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

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

{% embed url="https://www.stmcyber.com/careers" %}

Automatische Scans

droopescan

pip3 install droopescan
droopescan scan moodle -u http://moodle.example.com/<moodle_path>/

[+] 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):
3.10.0-beta

[+] Possible interesting urls found:
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)

moodlescan

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:

pip install moodlescan

Usage

To use moodlescan, you need to provide the target Moodle URL. You can use the following command:

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:

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.

#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

.............................................................................................................

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.

CMSMap

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:

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:

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.

pip3 install git+https://github.com/dionach/CMSmap.git
cmsmap http://moodle.example.com/<moodle_path>

CVEs

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 überprüfen.

RCE

Du musst die Rolle des Managers haben und kannst Plugins innerhalb des Tabs "Site Administration" installieren:

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.

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" %}

Oder du könntest das Plugin von https://github.com/HoangKien1020/Moodle_RCE verwenden, um eine reguläre PHP-Shell mit dem Parameter "cmd" zu erhalten.

Um das bösartige Plugin zu starten, musst du auf Folgendes zugreifen:

http://domain.com/<moodle_path>/blocks/rce/lang/en/block_rce.php?cmd=id

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.

  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.

  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.

  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.

find / -name "config.php" 2>/dev/null | grep "moodle/config.php"

Zugangsdaten aus der Datenbank extrahieren

Um Zugangsdaten aus einer Datenbank zu extrahieren, können verschiedene Techniken verwendet werden. Hier sind einige gängige Methoden:

  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.

  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.

/usr/local/bin/mysql -u <username> --password=<password> -e "use moodle; select email,username,password from mdl_user; exit"

Wenn Sie an einer Hackerkarriere interessiert sind und das Unhackbare hacken möchten - wir stellen ein! (fließendes Polnisch in Wort und Schrift erforderlich).

{% embed url="https://www.stmcyber.com/careers" %}

Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen: