{% hint style="success" %} AWS 해킹 학습 및 실습:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ GCP 해킹 학습 및 실습: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
HackTricks 지원 * [**구독 요금제**](https://github.com/sponsors/carlospolop)를 확인하세요! * 💬 [**Discord 그룹**](https://discord.gg/hRep4RUj7f) 또는 [**텔레그램 그룹**](https://t.me/peass)에 **참여**하거나 **트위터** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**를 팔로우**하세요. * **HackTricks** 및 **HackTricks Cloud** 깃허브 저장소에 PR을 제출하여 해킹 요령을 공유하세요.
{% endhint %} # IPv6 기본 이론 ## 네트워크 IPv6 주소는 네트워크 구성 및 장치 상호 작용을 향상시키기 위해 구조화됈다. IPv6 주소는 다음과 같이 나뉘어진다: 1. **네트워크 접두어(Network Prefix)**: 네트워크 세그먼트를 결정하는 초기 48비트. 2. **서브넷 ID(Subnet ID)**: 네트워크 내에서 특정 서브넷을 정의하는 데 사용되는 다음 16비트. 3. **인터페이스 식별자(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**: 동일한 네트워크의 장치를 발견하기 위한 대체 도구. 아래는 일부 명령어 예시이다: ```bash ping6 –I eth0 -c 5 ff02::1 > /dev/null 2>&1 ip neigh | grep ^fe80 # Alternatively, use alive6 for neighbor discovery alive6 eth0 ``` ## **MAC 주소로부터 Link-local IPv6 얻기** 주어진 MAC 주소 **`12:34:56:78:9a:bc`**를 사용하여 Link-local IPv6 주소를 다음과 같이 구성할 수 있습니다: 1. MAC을 IPv6 형식으로 변환: **`1234:5678:9abc`** 2. `fe80::`를 앞에 추가하고 중간에 `fffe`를 삽입: **`fe80::1234:56ff:fe78:9abc`** 3. 왼쪽에서 일곱 번째 비트를 반전하여 `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: 링크 로컬 주소 사용 1. 네트워크 내 장치의 MAC 주소 획득. 2. MAC 주소로부터 Link-local IPv6 주소 얻기. ### 방법 2: 멀티캐스트 사용 1. 로컬 네트워크에서 IPv6 주소를 발견하기 위해 멀티캐스트 주소 `ff02::1`로 핑을 보냄. ```bash service ufw stop # Stop the firewall ping6 -I ff02::1 # Send a ping to multicast address ip -6 neigh # Display the neighbor table ``` ## IPv6 Man-in-the-Middle (MitM) 공격 IPv6 네트워크에서 MitM 공격을 실행하는 여러 기술이 존재합니다. 이러한 기술로는 다음이 있습니다: - ICMPv6 이웃 또는 라우터 광고를 위조하는 것. - ICMPv6 리다이렉트 또는 "패킷이 너무 큼" 메시지를 사용하여 경로 조작. - 모바일 IPv6 공격 (일반적으로 IPSec 비활성화 필요). - 악의적인 DHCPv6 서버 설정. # IPv6 주소 식별하기 ## 하위 도메인 탐색 IPv6 주소와 관련이 있는 하위 도메인을 찾는 방법으로 검색 엔진을 활용할 수 있습니다. 예를 들어 `ipv6.*`와 같은 쿼리 패턴을 사용하는 것이 효과적일 수 있습니다. 구체적으로 Google에서 다음 검색 명령을 사용할 수 있습니다: ```bash site:ipv6./ ``` ## DNS 쿼리 활용 IPv6 주소를 식별하기 위해 특정 DNS 레코드 유형을 쿼리할 수 있습니다: - **AXFR**: 완전한 존 전송을 요청하여 다양한 DNS 레코드를 발견할 수 있습니다. - **AAAA**: IPv6 주소를 직접 찾습니다. - **ANY**: 모든 가능한 DNS 레코드를 반환하는 넓은 쿼리입니다. ## Ping6로 조사 조직과 연관된 IPv6 주소를 정확히 확인한 후에는 `ping6` 유틸리티를 사용하여 조사할 수 있습니다. 이 도구는 식별된 IPv6 주소의 응답 능력을 평가하는 데 도움을 주며, 인접한 IPv6 장치를 발견하는 데도 도움이 될 수 있습니다. ## 참고 자료 * [http://www.firewall.cx/networking-topics/protocols/877-ipv6-subnetting-how-to-subnet-ipv6.html](http://www.firewall.cx/networking-topics/protocols/877-ipv6-subnetting-how-to-subnet-ipv6.html) * [https://www.sans.org/reading-room/whitepapers/detection/complete-guide-ipv6-attack-defense-33904](https://www.sans.org/reading-room/whitepapers/detection/complete-guide-ipv6-attack-defense-33904) {% hint style="success" %} AWS 해킹 학습 및 실습:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ GCP 해킹 학습 및 실습: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
HackTricks 지원 * [**구독 요금제**](https://github.com/sponsors/carlospolop)를 확인하세요! * 💬 [**디스코드 그룹**](https://discord.gg/hRep4RUj7f) 또는 [**텔레그램 그룹**](https://t.me/peass)에 **참여**하거나 **트위터** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**를 팔로우하세요.** * [**HackTricks**](https://github.com/carlospolop/hacktricks) 및 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) 깃헙 레포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
{% endhint %}