tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
IPv6 基本理論
ネットワーク
IPv6 アドレスは、ネットワークの組織化とデバイスの相互作用を強化するように構造化されています。IPv6 アドレスは次のように分かれています:
- ネットワークプレフィックス:最初の 48 ビットで、ネットワークセグメントを決定します。
- サブネット ID:次の 16 ビットで、ネットワーク内の特定のサブネットを定義するために使用されます。
- インターフェース識別子:最後の 64 ビットで、サブネット内のデバイスを一意に識別します。
IPv6 は IPv4 に見られる ARP プロトコルを省略していますが、ICMPv6 を導入し、2 つの主要なメッセージを持っています:
- 隣接要求 (NS):アドレス解決のためのマルチキャストメッセージ。
- 隣接広告 (NA):NS へのユニキャスト応答または自発的な通知。
IPv6 には特別なアドレスタイプも含まれています:
- ループバックアドレス (
::1
):IPv4 の127.0.0.1
に相当し、ホスト内の内部通信に使用されます。 - リンクローカルアドレス (
FE80::/10
):ローカルネットワーク活動のためのもので、インターネットルーティングには使用されません。同じローカルネットワーク上のデバイスは、この範囲を使用して互いに発見できます。
ネットワークコマンドにおける IPv6 の実用的な使用法
IPv6 ネットワークと対話するために、さまざまなコマンドを使用できます:
- リンクローカルアドレスの Ping:
ping6
を使用してローカルデバイスの存在を確認します。 - 隣接発見:
ip neigh
を使用してリンク層で発見されたデバイスを表示します。 - alive6:同じネットワーク上のデバイスを発見するための代替ツールです。
以下はいくつかのコマンドの例です:
ping6 –I eth0 -c 5 ff02::1 > /dev/null 2>&1
ip neigh | grep ^fe80
# Alternatively, use alive6 for neighbor discovery
alive6 eth0
IPv6アドレスは、ローカル通信のためにデバイスのMACアドレスから導出できます。以下は、既知のMACアドレスからリンクローカルIPv6アドレスを導出するための簡略ガイドと、IPv6アドレスの種類およびネットワーク内のIPv6アドレスを発見する方法の概要です。
MACアドレスからリンクローカルIPv6を導出する
MACアドレス 12:34:56:78:9a:bc
が与えられた場合、リンクローカルIPv6アドレスを次のように構築できます:
- MACをIPv6形式に変換:
1234:5678:9abc
fe80::
を前に付け、中間にfffe
を挿入:fe80::1234:56ff:fe78:9abc
- 左から7ビットを反転し、
1234
を1034
に変更:fe80::1034:56ff:fe78:9abc
IPv6アドレスの種類
- ユニークローカルアドレス (ULA):ローカル通信のためのもので、公共インターネットルーティングには使用されません。プレフィックス:
FEC00::/7
- マルチキャストアドレス:1対多の通信のためのもの。マルチキャストグループ内のすべてのインターフェースに配信されます。プレフィックス:
FF00::/8
- エニキャストアドレス:1対最近接の通信のためのもの。ルーティングプロトコルに従って最も近いインターフェースに送信されます。
2000::/3
グローバルユニキャスト範囲の一部です。
アドレスプレフィックス
- fe80::/10:リンクローカルアドレス(169.254.x.xに類似)
- fc00::/7:ユニークローカルユニキャスト(プライベートIPv4範囲の10.x.x.x、172.16.x.x、192.168.x.xに類似)
- 2000::/3:グローバルユニキャスト
- ff02::1:マルチキャスト全ノード
- ff02::2:マルチキャストルーターノード
ネットワーク内のIPv6アドレスを発見する
方法1:リンクローカルアドレスを使用
- ネットワーク内のデバイスのMACアドレスを取得します。
- MACアドレスからリンクローカルIPv6アドレスを導出します。
方法2:マルチキャストを使用
- マルチキャストアドレス
ff02::1
にpingを送信して、ローカルネットワーク上のIPv6アドレスを発見します。
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) 攻撃
IPv6 ネットワークで MitM 攻撃を実行するためのいくつかの技術が存在します。例えば:
- ICMPv6 隣接またはルーター広告の偽装。
- ICMPv6 リダイレクトまたは「パケットが大きすぎます」メッセージを使用してルーティングを操作。
- モバイル IPv6 を攻撃する(通常、IPSec を無効にする必要があります)。
- 悪意のある DHCPv6 サーバーを設定する。
eild における IPv6 アドレスの特定
サブドメインの探索
IPv6 アドレスに関連する可能性のあるサブドメインを見つける方法は、検索エンジンを活用することです。例えば、ipv6.*
のようなクエリパターンを使用することが効果的です。具体的には、次の検索コマンドを Google で使用できます:
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
- https://www.sans.org/reading-room/whitepapers/detection/complete-guide-ipv6-attack-defense-33904
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。