hacktricks/generic-methodologies-and-resources/pentesting-network/pentesting-ipv6.md

127 lines
7.7 KiB
Markdown
Raw Normal View History

2022-04-28 16:01:33 +00:00
<details>
2024-02-10 21:30:13 +00:00
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong>를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요<strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 21:30:13 +00:00
HackTricks를 지원하는 다른 방법:
2022-04-28 16:01:33 +00:00
2024-02-10 21:30:13 +00:00
* **회사를 HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드**하려면 [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)를 확인하세요!
* [**공식 PEASS & HackTricks 스웨그**](https://peass.creator-spring.com)를 얻으세요.
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)를 발견하세요. 독점적인 [**NFTs**](https://opensea.io/collection/the-peass-family) 컬렉션입니다.
* 💬 [**Discord 그룹**](https://discord.gg/hRep4RUj7f) 또는 [**텔레그램 그룹**](https://t.me/peass)에 **참여**하거나 **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)를 **팔로우**하세요.
* **HackTricks**와 **HackTricks Cloud** github 저장소에 PR을 제출하여 **해킹 트릭을 공유**하세요.
2022-04-28 16:01:33 +00:00
</details>
2024-02-10 21:30:13 +00:00
# IPv6 기본 이론
2024-02-10 21:30:13 +00:00
## 네트워크
2024-02-10 21:30:13 +00:00
IPv6 주소는 네트워크 조직 및 장치 상호 작용을 향상시키기 위해 구조화됩니다. IPv6 주소는 다음과 같이 나누어집니다:
2024-02-10 21:30:13 +00:00
1. **네트워크 접두사(Network Prefix)**: 네트워크 세그먼트를 결정하는 초기 48비트입니다.
2. **서브넷 ID(Subnet ID)**: 네트워크 내에서 특정 서브넷을 정의하는 데 사용되는 16비트입니다.
3. **인터페이스 식별자(Interface Identifier)**: 서브넷 내에서 장치를 고유하게 식별하는 마지막 64비트입니다.
2024-02-10 21:30:13 +00:00
IPv6는 IPv4에서 발견되는 ARP 프로토콜을 생략하고 **ICMPv6**을 도입합니다. ICMPv6에는 두 가지 주요 메시지가 있습니다:
- **Neighbor Solicitation (NS)**: 주소 해결을 위한 멀티캐스트 메시지입니다.
- **Neighbor Advertisement (NA)**: NS 또는 자발적인 공지에 대한 유니캐스트 응답입니다.
2024-02-07 04:06:18 +00:00
2024-02-10 21:30:13 +00:00
IPv6는 특수한 주소 유형도 포함합니다:
- **Loopback Address (`::1`)**: 내부 통신을 위한 IPv4의 `127.0.0.1`과 동등합니다.
- **Link-Local Addresses (`FE80::/10`)**: 인터넷 라우팅이 아닌 로컬 네트워크 활동에 사용됩니다. 동일한 로컬 네트워크의 장치는 이 범위를 사용하여 서로를 발견할 수 있습니다.
2024-02-07 04:06:18 +00:00
2024-02-10 21:30:13 +00:00
### 네트워크 명령어에서 IPv6의 실제 사용
2024-02-07 04:06:18 +00:00
2024-02-10 21:30:13 +00:00
IPv6 네트워크와 상호 작용하기 위해 다양한 명령어를 사용할 수 있습니다:
- **링크 로컬 주소에 대한 Ping**: `ping6`를 사용하여 로컬 장치의 존재 여부를 확인합니다.
- **Neighbor Discovery**: `ip neigh`를 사용하여 링크 계층에서 발견된 장치를 확인합니다.
- **alive6**: 동일한 네트워크에서 장치를 발견하기 위한 대체 도구입니다.
2024-02-10 21:30:13 +00:00
아래는 일부 명령어 예시입니다:
```bash
ping6 I eth0 -c 5 ff02::1 > /dev/null 2>&1
ip neigh | grep ^fe80
2024-02-07 04:06:18 +00:00
# Alternatively, use alive6 for neighbor discovery
alive6 eth0
```
2024-02-10 21:30:13 +00:00
## **MAC 주소로부터 링크 로컬 IPv6 얻기**
2024-02-10 21:30:13 +00:00
알려진 MAC 주소로부터 링크 로컬 IPv6 주소를 구성하는 간단한 가이드입니다:
2024-02-10 21:30:13 +00:00
1. MAC 주소를 IPv6 형식으로 변환합니다: **`1234:5678:9abc`**
2. `fe80::`를 앞에 추가하고 중간에 `fffe`를 삽입합니다: **`fe80::1234:56ff:fe78:9abc`**
3. 왼쪽에서 일곱 번째 비트를 반전시켜 `1234``1034`로 변경합니다: **`fe80::1034:56ff:fe78:9abc`**
2024-02-10 21:30:13 +00:00
## **IPv6 주소 유형**
2024-02-10 21:30:13 +00:00
- **고유 로컬 주소 (ULA)**: 공용 인터넷 라우팅을 위한 것이 아닌 로컬 통신용입니다. 접두사: **`FEC00::/7`**
- **멀티캐스트 주소**: 일대다 통신용입니다. 멀티캐스트 그룹의 모든 인터페이스로 전달됩니다. 접두사: **`FF00::/8`**
- **애니캐스트 주소**: 일대근접 통신용입니다. 라우팅 프로토콜에 따라 가장 가까운 인터페이스로 전송됩니다. **`2000::/3`** 글로벌 유니캐스트 범위의 일부입니다.
2024-02-10 21:30:13 +00:00
## **주소 접두사**
- **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**: 멀티캐스트 라우터 노드
2024-02-10 21:30:13 +00:00
## **네트워크 내 IPv6 주소 탐색**
2024-02-10 21:30:13 +00:00
### 방법 1: 링크 로컬 주소 사용
1. 네트워크 내 장치의 MAC 주소를 얻습니다.
2. MAC 주소로부터 링크 로컬 IPv6 주소를 얻습니다.
2024-02-10 21:30:13 +00:00
### 방법 2: 멀티캐스트 사용
1. 로컬 네트워크에서 IPv6 주소를 탐색하기 위해 멀티캐스트 주소 `ff02::1`로 핑을 보냅니다.
```bash
2024-02-07 04:06:18 +00:00
service ufw stop # Stop the firewall
ping6 -I <IFACE> ff02::1 # Send a ping to multicast address
ip -6 neigh # Display the neighbor table
```
2024-02-10 21:30:13 +00:00
## IPv6 중간자 공격 (MitM) 공격
IPv6 네트워크에서 MitM 공격을 실행하기 위해 여러 기술이 존재합니다. 이러한 기술에는 다음이 포함됩니다:
2024-02-10 21:30:13 +00:00
- ICMPv6 이웃 또는 라우터 광고 스푸핑
- ICMPv6 리다이렉트 또는 "패킷이 너무 큼" 메시지를 사용하여 라우팅 조작
- 모바일 IPv6 공격 (일반적으로 IPSec 비활성화 필요)
- 위조 DHCPv6 서버 설정
2024-02-10 21:30:13 +00:00
# IPv6 주소 식별하기
2024-02-10 21:30:13 +00:00
## 서브도메인 탐색
IPv6 주소와 관련된 서브도메인을 찾는 방법으로 검색 엔진을 활용할 수 있습니다. 예를 들어, `ipv6.*`와 같은 쿼리 패턴을 사용하는 것이 효과적일 수 있습니다. 구체적으로, 다음과 같은 검색 명령을 Google에서 사용할 수 있습니다:
```bash
site:ipv6./
```
2024-02-10 21:30:13 +00:00
## DNS 쿼리 활용
IPv6 주소를 식별하기 위해 특정 DNS 레코드 유형을 쿼리할 수 있습니다:
- **AXFR**: 완전한 존 전송을 요청하여 다양한 DNS 레코드를 발견할 수 있습니다.
- **AAAA**: 직접 IPv6 주소를 찾습니다.
- **ANY**: 모든 사용 가능한 DNS 레코드를 반환하는 넓은 쿼리입니다.
2024-02-10 21:30:13 +00:00
## Ping6로 조사하기
조직과 연결된 IPv6 주소를 정확히 파악한 후, `ping6` 유틸리티를 사용하여 조사할 수 있습니다. 이 도구는 식별된 IPv6 주소의 응답성을 평가하는 데 도움이 되며, 인접한 IPv6 장치를 발견하는 데도 도움이 될 수 있습니다.
2024-02-10 21:30:13 +00:00
## 참고 자료
* [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)
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 21:30:13 +00:00
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong>를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요<strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 21:30:13 +00:00
HackTricks를 지원하는 다른 방법:
2022-04-28 16:01:33 +00:00
2024-02-10 21:30:13 +00:00
* **회사를 HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드**하려면 [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)를 확인하세요!
* [**공식 PEASS & HackTricks 스웨그**](https://peass.creator-spring.com)를 얻으세요.
* 독점적인 [**NFTs**](https://opensea.io/collection/the-peass-family)인 [**The PEASS Family**](https://opensea.io/collection/the-peass-family)를 발견하세요.
* 💬 [**Discord 그룹**](https://discord.gg/hRep4RUj7f) 또는 [**텔레그램 그룹**](https://t.me/peass)에 **참여**하거나 **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**를** 팔로우하세요.
* **HackTricks**와 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 저장소에 PR을 제출하여 여러분의 해킹 기법을 공유하세요.
2022-04-28 16:01:33 +00:00
</details>