Pentesting IPv6
Last updated
Last updated
AWSハッキングの学習と練習:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングの学習と練習: HackTricks Training GCP Red Team Expert (GRTE)
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ネットワークとやり取りするために、さまざまなコマンドを使用できます:
リンクローカルアドレスのPing: ping6
を使用してローカルデバイスの存在を確認します。
Neighbor Discovery: ip neigh
を使用してリンク層で発見されたデバイスを表示します。
alive6: 同じネットワーク上のデバイスを発見するための代替ツール。
以下はいくつかのコマンドの例です:
与えられた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
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: マルチキャストルーターノード
ネットワーク内のデバイスのMACアドレスを取得します。
MACアドレスからリンクローカルIPv6アドレスを導出します。
ローカルネットワーク上のIPv6アドレスを発見するために、マルチキャストアドレス ff02::1
にpingを送信します。
IPv6ネットワークでMitM攻撃を実行するためのいくつかの技術が存在します:
ICMPv6ネイバーやルーター広告のスプーフィング。
ルーティングを操作するためにICMPv6リダイレクトや「パケットが大きすぎる」メッセージを使用する。
モバイルIPv6を攻撃する(通常、IPSecを無効にする必要があります)。
ローグDHCPv6サーバーを設定する。
IPv6アドレスに関連付けられている可能性のあるサブドメインを見つける方法は、検索エンジンを活用することです。たとえば、ipv6.*
のようなクエリパターンを使用することが効果的です。具体的には、Googleで次の検索コマンドを使用できます:
IPv6アドレスを特定するために、特定のDNSレコードタイプをクエリできます:
AXFR: 完全なゾーン転送をリクエストし、幅広いDNSレコードを明らかにする可能性があります。
AAAA: 直接IPv6アドレスを検索します。
ANY: 利用可能なすべてのDNSレコードを返す広範なクエリです。
組織に関連付けられたIPv6アドレスを特定した後、ping6
ユーティリティを使用してプロービングできます。このツールは、特定されたIPv6アドレスの応答性を評価するのに役立ち、隣接するIPv6デバイスを発見するのにも役立つかもしれません。