Pentesting IPv6

ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)

HackTricksをサポートする他の方法:

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ネットワークとやり取りするために、さまざまなコマンドを使用できます:

  • リンクローカルアドレスのPingping6を使用してローカルデバイスの存在を確認します。

  • Neighbor Discoveryip 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

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番目のビットを反転させ、12341034に変更: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を送信する。

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で次の検索コマンドを使用できます:

site:ipv6./

DNSクエリの利用

IPv6アドレスを特定するために、特定のDNSレコードタイプをクエリできます:

  • AXFR: 完全なゾーン転送をリクエストし、幅広いDNSレコードを明らかにする可能性があります。

  • AAAA: 直接IPv6アドレスを検索します。

  • ANY: 利用可能なすべてのDNSレコードを返す広範なクエリです。

Ping6を使用したプロービング

組織に関連付けられたIPv6アドレスを特定した後、ping6ユーティリティを使用してプロービングできます。このツールは、特定されたIPv6アドレスの応答性を評価するのに役立ち、隣接するIPv6デバイスを発見するのにも役立つかもしれません。

参考文献

ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)!

HackTricksをサポートする他の方法:

Last updated