Pentesting IPv6
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
IPv6 주소는 네트워크 조직 및 장치 상호작용을 향상시키기 위해 구조화되어 있습니다. IPv6 주소는 다음과 같이 나뉩니다:
네트워크 접두사: 네트워크 세그먼트를 결정하는 처음 48비트.
서브넷 ID: 네트워크 내 특정 서브넷을 정의하는 데 사용되는 다음 16비트.
인터페이스 식별자: 서브넷 내에서 장치를 고유하게 식별하는 마지막 64비트.
IPv6는 IPv4에서 발견되는 ARP 프로토콜을 생략하지만, 두 가지 주요 메시지를 가진 ICMPv6를 도입합니다:
이웃 요청 (NS): 주소 해결을 위한 멀티캐스트 메시지.
이웃 광고 (NA): NS에 대한 유니캐스트 응답 또는 자발적인 발표.
IPv6는 또한 특별한 주소 유형을 포함합니다:
루프백 주소 (::1
): IPv4의 127.0.0.1
에 해당하며, 호스트 내에서의 내부 통신을 위해 사용됩니다.
링크-로컬 주소 (FE80::/10
): 인터넷 라우팅이 아닌 로컬 네트워크 활동을 위한 것입니다. 동일한 로컬 네트워크의 장치들은 이 범위를 사용하여 서로를 발견할 수 있습니다.
IPv6 네트워크와 상호작용하기 위해 다양한 명령을 사용할 수 있습니다:
링크-로컬 주소 핑: ping6
를 사용하여 로컬 장치의 존재를 확인합니다.
이웃 발견: ip neigh
를 사용하여 링크 계층에서 발견된 장치를 봅니다.
alive6: 동일한 네트워크에서 장치를 발견하기 위한 대체 도구입니다.
아래는 몇 가지 명령 예시입니다:
IPv6 주소는 로컬 통신을 위해 장치의 MAC 주소에서 파생될 수 있습니다. 다음은 알려진 MAC 주소에서 Link-local IPv6 주소를 파생하는 방법에 대한 간단한 가이드와 네트워크 내에서 IPv6 주소를 발견하는 방법에 대한 간략한 개요입니다.
MAC 주소 **12:34:56:78:9a:bc
**가 주어지면, Link-local IPv6 주소를 다음과 같이 구성할 수 있습니다:
MAC을 IPv6 형식으로 변환: 1234:5678:9abc
fe80::
를 앞에 붙이고 중간에 fffe
를 삽입: fe80::1234:56ff:fe78:9abc
왼쪽에서 일곱 번째 비트를 반전시켜 1234
를 1034
로 변경: fe80::1034:56ff:fe78:9abc
Unique Local Address (ULA): 로컬 통신을 위한 것으로, 공용 인터넷 라우팅을 위한 것이 아닙니다. 접두사: FEC00::/7
Multicast Address: 일대다 통신을 위한 것입니다. 멀티캐스트 그룹의 모든 인터페이스에 전달됩니다. 접두사: FF00::/8
Anycast Address: 일대최근접 통신을 위한 것입니다. 라우팅 프로토콜에 따라 가장 가까운 인터페이스로 전송됩니다. 2000::/3
글로벌 유니캐스트 범위의 일부입니다.
fe80::/10: Link-Local 주소 (169.254.x.x와 유사)
fc00::/7: Unique Local-Unicast (10.x.x.x, 172.16.x.x, 192.168.x.x와 같은 사설 IPv4 범위와 유사)
2000::/3: Global Unicast
ff02::1: Multicast All Nodes
ff02::2: Multicast Router Nodes
네트워크 내 장치의 MAC 주소를 얻습니다.
MAC 주소에서 Link-local IPv6 주소를 파생합니다.
멀티캐스트 주소 ff02::1
에 핑을 보내 로컬 네트워크에서 IPv6 주소를 발견합니다.
IPv6 네트워크에서 MitM 공격을 실행하기 위한 여러 기술이 존재합니다. 예를 들어:
ICMPv6 이웃 또는 라우터 광고 스푸핑.
ICMPv6 리디렉션 또는 "패킷이 너무 큽니다" 메시지를 사용하여 라우팅 조작.
모바일 IPv6 공격 (일반적으로 IPSec 비활성화 필요).
악성 DHCPv6 서버 설정.
IPv6 주소와 잠재적으로 연결된 서브도메인을 찾는 방법은 검색 엔진을 활용하는 것입니다. 예를 들어, ipv6.*
와 같은 쿼리 패턴을 사용하는 것이 효과적일 수 있습니다. 구체적으로, 다음 검색 명령을 Google에서 사용할 수 있습니다:
IPv6 주소를 식별하기 위해 특정 DNS 레코드 유형을 쿼리할 수 있습니다:
AXFR: 전체 존 전송을 요청하여 다양한 DNS 레코드를 발견할 수 있습니다.
AAAA: IPv6 주소를 직접적으로 찾습니다.
ANY: 사용 가능한 모든 DNS 레코드를 반환하는 광범위한 쿼리입니다.
조직과 관련된 IPv6 주소를 확인한 후, ping6
유틸리티를 사용하여 탐색할 수 있습니다. 이 도구는 식별된 IPv6 주소의 응답성을 평가하는 데 도움이 되며, 인접한 IPv6 장치를 발견하는 데도 도움이 될 수 있습니다.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)