Pentesting IPv6
IPv6基本理論
ネットワーク
IPv6アドレスはネットワークの構成とデバイス間の相互作用を向上させるために構造化されています。IPv6アドレスは次のように分割されます:
ネットワークプレフィックス:ネットワークセグメントを決定する最初の48ビット。
サブネットID:次の16ビットで、ネットワーク内の特定のサブネットを定義するために使用されます。
インターフェース識別子:最後の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:同じネットワーク上のデバイスを発見するための代替ツール。
以下はいくつかのコマンドの例です:
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アドレスの種類
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:リンクローカルアドレスの使用
ネットワーク内のデバイスのMACアドレスを取得する。
MACアドレスからリンクローカルIPv6アドレスを導出する。
方法2:マルチキャストの使用
ローカルネットワーク上のIPv6アドレスを発見するために、マルチキャストアドレス
ff02::1
にpingを送信する。
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で次の検索コマンドを使用できます:
DNSクエリの利用
IPv6アドレスを特定するために、特定のDNSレコードタイプをクエリできます:
AXFR: 完全なゾーン転送をリクエストし、幅広いDNSレコードを明らかにする可能性があります。
AAAA: 直接IPv6アドレスを検索します。
ANY: 利用可能なすべてのDNSレコードを返す広範なクエリです。
Ping6を使用したプロービング
組織に関連付けられたIPv6アドレスを特定した後、ping6
ユーティリティを使用してプロービングできます。このツールは、特定されたIPv6アドレスの応答性を評価するのに役立ち、隣接するIPv6デバイスを発見するのにも役立つかもしれません。
参考文献
Last updated