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リダイレクトや「パケットが大きすぎる」メッセージを使用する。
モバイルIPv6を攻撃する(通常、IPSecを無効にする必要があります)。
ローグDHCPv6サーバーを設定する。
IPv6アドレスの特定
サブドメインの探索
IPv6アドレスに関連付けられている可能性のあるサブドメインを見つける方法は、検索エンジンを活用することです。たとえば、ipv6.*
のようなクエリパターンを使用することが効果的です。具体的には、Googleで次の検索コマンドを使用できます:
DNSクエリの利用
IPv6アドレスを特定するために、特定のDNSレコードタイプをクエリできます:
AXFR: 完全なゾーン転送をリクエストし、幅広いDNSレコードを明らかにする可能性があります。
AAAA: 直接IPv6アドレスを検索します。
ANY: 利用可能なすべてのDNSレコードを返す広範なクエリです。
Ping6を使用したプロービング
組織に関連付けられたIPv6アドレスを特定した後、ping6
ユーティリティを使用してプロービングできます。このツールは、特定されたIPv6アドレスの応答性を評価するのに役立ち、隣接するIPv6デバイスを発見するのにも役立つかもしれません。
参考文献
Last updated