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

160 lines
11 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
* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
2023-06-06 18:56:34 +00:00
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
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).png" alt="" data-size="original">
2022-05-24 00:07:19 +00:00
Se você está interessado em uma **carreira de hacking** e hackear o inquebrável - **estamos contratando!** (_fluência em polonês escrita e falada é necessária_).
2022-05-24 00:07:19 +00:00
{% embed url="https://www.stmcyber.com/careers" %}
2022-04-28 16:01:33 +00:00
## Scans Automáticos
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)
```
O comando `moodlescan` é uma ferramenta de linha de comando usada para realizar a varredura de vulnerabilidades em instalações do Moodle. Essa ferramenta é especialmente útil durante testes de penetração em ambientes Moodle, permitindo identificar possíveis falhas de segurança que podem ser exploradas por hackers.
O `moodlescan` é capaz de verificar várias vulnerabilidades conhecidas no Moodle, incluindo problemas de configuração, falhas de autenticação, injeção de SQL, cross-site scripting (XSS) e muito mais. Ele também pode ser usado para verificar a versão do Moodle instalada e fornecer informações detalhadas sobre a configuração do sistema.
2023-06-06 18:56:34 +00:00
Para usar o `moodlescan`, basta executar o comando seguido pelo URL da instalação do Moodle que deseja verificar. Por exemplo:
2023-06-06 18:56:34 +00:00
```
moodlescan https://example.com/moodle
```
Após a execução, o `moodlescan` fornecerá um relatório detalhado das vulnerabilidades encontradas, juntamente com recomendações para corrigir essas falhas de segurança. É importante lembrar que o `moodlescan` deve ser usado apenas em ambientes autorizados e com permissão do proprietário do sistema.
```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.
```
O CMSMap é uma ferramenta de código aberto usada para realizar testes de penetração em sistemas de gerenciamento de conteúdo (CMS). Ele é projetado para identificar e explorar vulnerabilidades em CMS populares, como o Moodle. O CMSMap pode ser usado para descobrir informações sobre a instalação do Moodle, como versão, plugins instalados e temas ativos. Ele também pode ajudar a identificar possíveis pontos fracos que podem ser explorados durante um teste de penetração. O CMSMap é uma ferramenta poderosa para hackers éticos e profissionais de segurança que desejam avaliar a segurança de um site baseado em Moodle.
```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
Descobri que as ferramentas automáticas são bastante **inúteis para encontrar vulnerabilidades que afetam a versão do Moodle**. Você pode **verificá-las** em [**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-06 18:56:34 +00:00
Você precisa ter a função de **gerente** e **pode instalar plugins** dentro da guia **"Administração do site"**\*\*:\*\*
![](<../../.gitbook/assets/image (447).png>)
Se você for gerente, talvez ainda precise **ativar essa opção**. Você pode ver como fazer isso no PoC de escalonamento de privilégios do Moodle: [https://github.com/HoangKien1020/CVE-2020-14321](https://github.com/HoangKien1020/CVE-2020-14321).
Em seguida, você pode **instalar o seguinte plugin** que contém o clássico shell reverso em PHP do pentest-monkey (_antes de fazer o upload, você precisa descompactá-lo, alterar o IP e a porta do revshell e compactá-lo novamente_)
{% file src="../../.gitbook/assets/moodle-rce-plugin.zip" %}
2023-06-06 18:56:34 +00:00
Ou você pode usar o plugin de [https://github.com/HoangKien1020/Moodle\_RCE](https://github.com/HoangKien1020/Moodle\_RCE) para obter um shell PHP regular com o parâmetro "cmd".
2023-06-06 18:56:34 +00:00
Para acessar o plugin malicioso, você precisa acessar:
```bash
http://domain.com/<moodle_path>/blocks/rce/lang/en/block_rce.php?cmd=id
```
2023-06-06 18:56:34 +00:00
### Encontrar credenciais do banco de dados
Durante um teste de penetração em um site Moodle, uma etapa importante é encontrar as credenciais do banco de dados. Essas informações são essenciais para acessar e manipular os dados armazenados no banco de dados do Moodle.
Uma maneira comum de encontrar as credenciais do banco de dados é explorar o código-fonte do site Moodle. Procure por arquivos de configuração que possam conter as informações de conexão com o banco de dados. Esses arquivos geralmente têm extensões como `.php` ou `.cfg`.
Outra abordagem é realizar uma análise de tráfego para capturar as solicitações HTTP enviadas pelo site Moodle. Durante essa análise, procure por solicitações POST que possam conter as credenciais do banco de dados. Ferramentas como o Wireshark podem ser úteis nesse processo.
Além disso, é importante verificar se há alguma vulnerabilidade conhecida no Moodle que possa expor as credenciais do banco de dados. Pesquise por vulnerabilidades conhecidas e aplique os patches necessários para corrigi-las.
Uma vez que as credenciais do banco de dados sejam obtidas, você poderá usá-las para acessar o banco de dados do Moodle e realizar atividades de manipulação de dados, como adicionar, modificar ou excluir registros. No entanto, é importante lembrar que essas atividades devem ser realizadas apenas com permissão legal e ética.
```bash
find / -name "config.php" 2>/dev/null | grep "moodle/config.php"
```
### Extrair Credenciais do banco de dados
To dump credentials from a database, you can follow these steps:
1. Identify the target database: Determine the type of database being used by the web application. Common databases include MySQL, PostgreSQL, Oracle, and Microsoft SQL Server.
2. Enumerate database users: Use techniques such as SQL injection or brute-forcing to identify the database users.
2023-06-06 18:56:34 +00:00
3. Exploit database vulnerabilities: Exploit any known vulnerabilities in the database to gain unauthorized access. This could include exploiting weak passwords, default credentials, or unpatched vulnerabilities.
4. Dump the credentials: Once access to the database is obtained, use SQL queries or tools like mysqldump or pg_dump to extract the credentials from the database tables.
5. Analyze the dumped data: Review the dumped data to identify usernames, passwords, and other relevant information. This data can be used for further exploitation or to gain unauthorized access to other systems.
It is important to note that performing these actions without proper authorization is illegal and unethical. Always ensure you have the necessary permissions and legal authorization before attempting any database credential extraction.
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).png" alt="" data-size="original">
2022-04-28 16:01:33 +00:00
Se você está interessado em uma **carreira de hacking** e hackear o inquebrável - **estamos contratando!** (_fluência em polonês escrita e falada é necessária_).
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
* Você trabalha em uma **empresa de cibersegurança**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
2023-06-06 18:56:34 +00:00
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
2022-04-28 16:01:33 +00:00
</details>