mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-25 14:10:41 +00:00
126 lines
8.8 KiB
Markdown
126 lines
8.8 KiB
Markdown
<details>
|
||
|
||
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||
|
||
HackTricksをサポートする他の方法:
|
||
|
||
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](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** 🐦 [**@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 Solicitation(NS)**:アドレス解決のためのマルチキャストメッセージ。
|
||
- **Neighbor Advertisement(NA)**: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>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||
|
||
HackTricksをサポートする他の方法:
|
||
|
||
* **HackTricksで企業を宣伝したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](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** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)をフォローする。
|
||
* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
|
||
|
||
</details>
|