hacktricks/generic-methodologies-and-resources/pentesting-network/pentesting-ipv6.md

126 lines
8.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<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** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)をフォローする
* **ハッキングトリックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。**
</details>
# IPv6基本理論
## ネットワーク
IPv6アドレスはネットワークの構成とデバイス間の相互作用を向上させるために構造化されています。IPv6アドレスは次のように分割されます
1. **ネットワークプレフィックス**ネットワークセグメントを決定する最初の48ビット。
2. **サブネットID**次の16ビットで、ネットワーク内の特定のサブネットを定義するために使用されます。
3. **インターフェース識別子**最後の64ビットで、サブネット内のデバイスを一意に識別します。
IPv6はIPv4に見られるARPプロトコルを省略していますが、**ICMPv6**を導入しています。ICMPv6には2つの主要なメッセージがあります
- **Neighbor SolicitationNS**:アドレス解決のためのマルチキャストメッセージ。
- **Neighbor AdvertisementNA**NSへのユニキャスト応答または自発的なアナウンス。
IPv6には特別なアドレスタイプも組み込まれています
- **ループバックアドレス(`::1`**内部通信用にIPv4の`127.0.0.1`に相当します。
- **リンクローカルアドレス(`FE80::/10`**:インターネットルーティング用ではなく、ローカルネットワーク活動用です。同じローカルネットワーク上のデバイスは、この範囲を使用して互いを発見できます。
### ネットワークコマンドでのIPv6の実用的な使用
IPv6ネットワークとやり取りするために、さまざまなコマンドを使用できます
- **リンクローカルアドレスのPing**`ping6`を使用してローカルデバイスの存在を確認します。
- **Neighbor Discovery**`ip neigh`を使用してリンク層で発見されたデバイスを表示します。
- **alive6**:同じネットワーク上のデバイスを発見するための代替ツール。
以下はいくつかのコマンドの例です:
```bash
ping6 I eth0 -c 5 ff02::1 > /dev/null 2>&1
ip neigh | grep ^fe80
# Alternatively, use alive6 for neighbor discovery
alive6 eth0
```
## **MACアドレスからリンクローカルIPv6アドレスを導出する**
与えられたMACアドレス **`12:34:56:78:9a:bc`** から、次のようにリンクローカルIPv6アドレスを構築できます
1. MACをIPv6形式に変換**`1234:5678:9abc`**
2. `fe80::`を前置し、中央に`fffe`を挿入:**`fe80::1234:56ff:fe78:9abc`**
3. 左から7番目のビットを反転させ、`1234`を`1034`に変更:**`fe80::1034:56ff:fe78:9abc`**
## **IPv6アドレスの種類**
- **Unique Local Address (ULA)**:公共インターネット経由ではなく、ローカル通信用。プレフィックス:**`FEC00::/7`**
- **マルチキャストアドレス**:一対多の通信用。マルチキャストグループ内のすべてのインターフェースに配信される。プレフィックス:**`FF00::/8`**
- **エニーキャストアドレス**:一番近いインターフェースに送信される、一対最寄りの通信用。**`2000::/3`** グローバルユニキャスト範囲の一部。
## **アドレスプレフィックス**
- **fe80::/10**リンクローカルアドレス169.254.x.xに類似
- **fc00::/7**ユニークローカルユニキャスト10.x.x.x、172.16.x.x、192.168.x.xなどのプライベートIPv4範囲に類似
- **2000::/3**:グローバルユニキャスト
- **ff02::1**:マルチキャスト全ノード
- **ff02::2**:マルチキャストルーターノード
## **ネットワーク内のIPv6アドレスの発見**
### 方法1リンクローカルアドレスの使用
1. ネットワーク内のデバイスのMACアドレスを取得する。
2. MACアドレスからリンクローカルIPv6アドレスを導出する。
### 方法2マルチキャストの使用
1. ローカルネットワーク上のIPv6アドレスを発見するために、マルチキャストアドレス`ff02::1`にpingを送信する。
```bash
service ufw stop # Stop the firewall
ping6 -I <IFACE> ff02::1 # Send a ping to multicast address
ip -6 neigh # Display the neighbor table
```
## IPv6 Man-in-the-Middle (MitM) Attacks
IPv6ネットワークにおけるMitM攻撃を実行するためのいくつかの技術が存在します:
- ICMPv6ネイバーやルーター広告のスプーフィング。
- ルーティングを操作するためにICMPv6リダイレクトや「Packet Too Big」メッセージを使用する。
- モバイルIPv6を攻撃する通常、IPSecが無効になっている必要があります
- ローグDHCPv6サーバーを設定する。
# Identifying IPv6 Addresses in the Wild
## Exploring Subdomains
IPv6アドレスに関連付けられているサブドメインを見つける方法として、検索エンジンを活用する方法があります。例えば、`ipv6.*`のようなクエリパターンを使用することが効果的です。具体的には、Googleで次の検索コマンドを使用できます:
```bash
site:ipv6./
```
## DNSクエリの利用
IPv6アドレスを特定するために、特定のDNSレコードタイプをクエリできます:
- **AXFR**: 完全なゾーン転送をリクエストし、幅広いDNSレコードを明らかにする可能性があります。
- **AAAA**: 直接IPv6アドレスを検索します。
- **ANY**: 利用可能なすべてのDNSレコードを返す広範なクエリです。
## Ping6を使用したプロービング
組織に関連付けられたIPv6アドレスを特定した後、`ping6`ユーティリティを使用してプロービングできます。このツールは、特定されたIPv6アドレスの応答性を評価するのに役立ち、隣接するIPv6デバイスを発見するのにも役立つかもしれません。
## 参考文献
* [http://www.firewall.cx/networking-topics/protocols/877-ipv6-subnetting-how-to-subnet-ipv6.html](http://www.firewall.cx/networking-topics/protocols/877-ipv6-subnetting-how-to-subnet-ipv6.html)
* [https://www.sans.org/reading-room/whitepapers/detection/complete-guide-ipv6-attack-defense-33904](https://www.sans.org/reading-room/whitepapers/detection/complete-guide-ipv6-attack-defense-33904)
<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** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)をフォローする。
* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
</details>