Pentesting IPv6
IPv6 기본 이론
네트워크
IPv6 주소는 네트워크 구성 및 장치 상호 작용을 향상시키기 위해 구조화됈다. IPv6 주소는 다음과 같이 나뉘어진다:
네트워크 접두어(Network Prefix): 네트워크 세그먼트를 결정하는 초기 48비트.
서브넷 ID(Subnet ID): 네트워크 내에서 특정 서브넷을 정의하는 데 사용되는 다음 16비트.
인터페이스 식별자(Interface Identifier): 서브넷 내에서 장치를 고유하게 식별하는 마지막 64비트.
IPv6는 IPv4에서 발견되는 ARP 프로토콜을 생략하고 ICMPv6를 소개한다. ICMPv6에는 두 가지 주요 메시지가 있다:
Neighbor Solicitation (NS): 주소 해상도를 위한 멀티캐스트 메시지.
Neighbor Advertisement (NA): NS에 대한 유니캐스트 응답 또는 자발적인 공지.
IPv6는 또한 특수 주소 유형을 포함한다:
Loopback Address (
::1
): 내부 호스트 간 통신을 위한 IPv4의127.0.0.1
과 동등.Link-Local Addresses (
FE80::/10
): 인터넷 라우팅이 아닌 로컬 네트워크 활동을 위한 것. 동일한 로컬 네트워크의 장치는 이 범위를 사용하여 서로를 발견할 수 있다.
네트워크 명령어에서 IPv6의 실용적 사용
IPv6 네트워크와 상호 작용하기 위해 다양한 명령어를 사용할 수 있다:
Link-Local 주소에 핑 보내기:
ping6
를 사용하여 로컬 장치의 존재를 확인한다.Neighbor Discovery: 링크 계층에서 발견된 장치를 보기 위해
ip neigh
를 사용한다.alive6: 동일한 네트워크의 장치를 발견하기 위한 대체 도구.
아래는 일부 명령어 예시이다:
MAC 주소로부터 Link-local 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
IPv6 주소 유형
고유 로컬 주소 (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와 유사)
2000::/3: 글로벌 유니캐스트
ff02::1: 모든 노드 멀티캐스트
ff02::2: 라우터 노드 멀티캐스트
네트워크 내 IPv6 주소 발견
방법 1: 링크 로컬 주소 사용
네트워크 내 장치의 MAC 주소 획득.
MAC 주소로부터 Link-local IPv6 주소 얻기.
방법 2: 멀티캐스트 사용
로컬 네트워크에서 IPv6 주소를 발견하기 위해 멀티캐스트 주소
ff02::1
로 핑을 보냄.
IPv6 Man-in-the-Middle (MitM) 공격
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