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

12 KiB

Moodle

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

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

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

Scans Automáticos

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)

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.

Para usar o moodlescan, basta executar o comando seguido pelo URL da instalação do Moodle que deseja verificar. Por exemplo:

moodlescan https://example.com/moodle

O moodlescan irá então iniciar a varredura e exibir os resultados na tela. É importante ressaltar que essa ferramenta deve ser usada apenas em ambientes autorizados e com permissão do proprietário do sistema. O uso indevido do moodlescan pode ser considerado ilegal e resultar em consequências legais.

Em resumo, o moodlescan é uma ferramenta poderosa para testar a segurança de instalações do Moodle e identificar possíveis vulnerabilidades.

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

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

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

RCE

Você precisa ter a função de gerente e pode instalar plugins dentro da guia "Administração do site"**:**

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.

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

Ou você pode usar o plugin de https://github.com/HoangKien1020/Moodle_RCE para obter um shell PHP regular com o parâmetro "cmd".

Para acessar o plugin malicioso, você precisa acessar:

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

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 como config.php ou config-dist.php, que geralmente contêm as informações de conexão com o banco de dados.

Outra abordagem é explorar as configurações do servidor web. Verifique se há arquivos de configuração do servidor web, como httpd.conf ou nginx.conf, que possam conter as credenciais do banco de dados.

Além disso, é possível explorar vulnerabilidades conhecidas no Moodle que possam expor as credenciais do banco de dados. Por exemplo, verifique se o site está executando uma versão desatualizada do Moodle que possa ser afetada por uma vulnerabilidade conhecida.

Uma vez que as credenciais do banco de dados sejam encontradas, elas podem ser usadas para acessar o banco de dados do Moodle e realizar atividades maliciosas, como exfiltrar dados confidenciais ou modificar registros.

É importante ressaltar que a busca por credenciais do banco de dados deve ser realizada apenas em um ambiente controlado e autorizado, como parte de um teste de penetração ético. O acesso não autorizado a sistemas ou dados é ilegal e pode resultar em consequências legais graves.

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, such as MySQL, PostgreSQL, or Oracle.

  2. Enumerate the database: Use tools like Nmap or SQLMap to identify the database server and its version.

  3. Exploit vulnerabilities: Exploit any known vulnerabilities in the database server or its associated web application to gain unauthorized access.

  4. Gain database access: Once you have gained access to the database server, you can use various techniques to extract credentials. These techniques may include:

    • Dumping the user table: Retrieve the usernames and hashed passwords from the user table.

    • Extracting configuration files: Look for configuration files that may contain credentials, such as database connection strings or API keys.

    • Exploiting weak encryption: If the passwords are stored using weak encryption algorithms, you can attempt to decrypt them.

    • Exploiting SQL injection: If the web application is vulnerable to SQL injection, you can execute queries to extract credentials from the database.

    • Brute-forcing credentials: Use tools like Hydra or Medusa to perform brute-force attacks and guess weak passwords.

  5. Analyze the extracted credentials: Once you have extracted the credentials, analyze them to determine their validity and potential impact.

It is important to note that extracting credentials from a database without proper authorization is illegal and unethical. These techniques should only be used for legitimate purposes, such as penetration testing or securing your own systems. Always ensure you have proper authorization and follow ethical guidelines when performing any security assessments.

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

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

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

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