hacktricks/network-services-pentesting/pentesting-web/moodle.md
2023-06-03 13:10:46 +00:00

10 KiB

Moodle

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

Si vous êtes intéressé par une carrière de piratage et que vous voulez pirater l'impossible - nous recrutons ! (polonais courant écrit et parlé requis).

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

Scans automatiques

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 est un outil de reconnaissance pour Moodle. Il peut être utilisé pour identifier les versions de Moodle, les plugins installés et les utilisateurs. Il peut également être utilisé pour trouver des vulnérabilités connues dans les versions de Moodle et les plugins installés.

Pour utiliser moodlescan, il suffit de spécifier l'URL de la page d'accueil de Moodle. moodlescan effectuera ensuite une série de requêtes pour identifier les informations pertinentes. Les résultats seront affichés dans la console.

Voici un exemple d'utilisation de moodlescan:

python3 moodlescan.py -u https://example.com/moodle

Cela affichera les informations suivantes:

Moodle version: 3.9.2
Installed plugins:
- mod_forum
- mod_assign
- local_statistics
- theme_boost

moodlescan peut également être utilisé pour trouver des utilisateurs de Moodle. Pour ce faire, il suffit d'utiliser l'option -f et de spécifier un fichier contenant une liste de noms d'utilisateurs. moodlescan effectuera ensuite une série de requêtes pour déterminer si les utilisateurs sont présents sur le site Moodle spécifié.

Voici un exemple d'utilisation de moodlescan pour trouver des utilisateurs:

python3 moodlescan.py -u https://example.com/moodle -f users.txt

Cela affichera les informations suivantes:

User found: alice
User found: bob
User not found: charlie
#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 est un outil open source qui permet de scanner les sites web pour détecter les CMS (systèmes de gestion de contenu) utilisés. Il peut également être utilisé pour trouver des vulnérabilités connues dans ces CMS. CMSMap prend en charge de nombreux CMS populaires tels que WordPress, Joomla, Drupal, Magento, et bien d'autres. Il peut également être utilisé pour trouver des plugins vulnérables et des thèmes utilisés sur le site. CMSMap est un outil utile pour les tests de pénétration et les audits de sécurité des sites web.

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

CVEs

J'ai constaté que les outils automatiques sont assez inutiles pour trouver des vulnérabilités affectant la version moodle. Vous pouvez les vérifier sur https://snyk.io/vuln/composer:moodle%2Fmoodle

RCE

Vous devez avoir le rôle de manager et vous pouvez installer des plugins dans l'onglet "Administration du site"**:**

Si vous êtes un manager, vous devrez peut-être activer cette option. Vous pouvez voir comment faire dans la preuve de concept d'escalade de privilèges moodle: https://github.com/HoangKien1020/CVE-2020-14321.

Ensuite, vous pouvez installer le plugin suivant qui contient le shell php rev classique de pentest-monkey (avant de le télécharger, vous devez le décompresser, changer l'IP et le port du revshell et le recompresser)

{% file src="../../.gitbook/assets/moodle-rce-plugin.zip" %}

Ou vous pouvez utiliser le plugin de https://github.com/HoangKien1020/Moodle_RCE pour obtenir un shell PHP régulier avec le paramètre "cmd".

Pour accéder au lancement du plugin malveillant, vous devez accéder à:

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

POST

Trouver les identifiants de la base de données

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

Extraire les identifiants de la base de données


Description

Dans certains cas, il est possible d'extraire les identifiants de la base de données de Moodle en utilisant des vulnérabilités ou des erreurs de configuration.

Procédure

  1. Tout d'abord, il est nécessaire de trouver les informations de connexion à la base de données. Cela peut être fait en examinant le fichier config.php situé dans le répertoire racine de Moodle.

  2. Une fois que vous avez les informations de connexion, vous pouvez utiliser des outils tels que mysql ou phpMyAdmin pour accéder à la base de données.

  3. Recherchez la table mdl_user qui contient les informations d'identification des utilisateurs.

  4. Si les mots de passe sont stockés en clair, vous pouvez simplement les extraire. Sinon, vous devrez utiliser des techniques de craquage de mot de passe pour les récupérer.

Contre-mesures

  • Assurez-vous que les informations de connexion à la base de données sont correctement sécurisées et ne sont pas accessibles publiquement.
  • Utilisez des algorithmes de hachage forts pour stocker les mots de passe des utilisateurs.
  • Restreignez l'accès à la base de données uniquement aux utilisateurs autorisés.
/usr/local/bin/mysql -u <username> --password=<password> -e "use moodle; select email,username,password from mdl_user; exit"

Si vous êtes intéressé par une carrière de hacker et souhaitez hacker l'impénétrable - nous recrutons ! (maîtrise du polonais à l'écrit et à l'oral requise).

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

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥