hacktricks/generic-methodologies-and-resources/pentesting-network/pentesting-ipv6.md
2023-08-03 19:12:22 +00:00

124 lines
7.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
- 你在一家**网络安全公司**工作吗你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
</details>
# IPv6基础理论
## 网络
在IPv6地址中**前48位是网络前缀**。**接下来的16位是子网ID**,用于定义子网。**最后的64位是接口标识符**也称为接口ID或设备ID用于设备。如果需要通常保留给设备ID的位可以用于额外的子网掩码。
IPv6中没有ARP。相反有**ICMPv6 NS邻居请求和NA邻居通告**。**NS**用于解析地址,因此它发送**多播**数据包。**NA**是**单播**的用于回答NS。不需要NS数据包也可以发送NA数据包。
**0:0:0:0:0:0:0:1** = 1IPv4中的`::1`- 这是IPv4中的127.0.0.1的等效地址。
**链路本地地址:**这些是私有地址不适用于在互联网上路由。它们可以由私有或临时局域网在局域网上共享和分发文件。使用此类地址的本地局域网中的其他设备可以通过向多播地址ff02::01发送ping命令来找到。
**FE80::/10** - 链路本地单播地址范围。
```bash
ping6 I eth0 -c 5 ff02::1 > /dev/null 2>&1
ip neigh | grep ^fe80
#Or you could also use
alive6 eth0
```
如果你**知道与你在同一网络中的主机的MAC地址**你可以通过ping其IPv4地址并查看arp表来找到其MAC地址你可以计算出他的链路本地地址以与他通信。\
假设**MAC地址**是**`12:34:56:78:9a:bc`**
1. 转换为IPv6表示法**`1234:5678:9abc`**
2. 在开头添加`fe80::`,并在中间插入`fffe`**`fe80::`**`1234:56`**`ff:fe`**`78:9abc`
3. 将从左边数第七位的位反转从0001 0010变为0001 0000`fe80::1`**`0`**`34:56ff:fe78:9abc`
4. `fe80::1034:56ff:fe78:9abc`
**唯一本地地址:**这种类型的IPv6地址也不打算在公共互联网上进行路由。唯一本地地址是站点本地地址的替代品允许在站点内进行通信同时可路由到多个本地网络。\
**FEC00::/7** - 唯一本地地址范围。
**组播地址:**也可以称为一对多。发送到组播地址的数据包将传递到由组播地址标识的所有接口。组播地址类型通常以FF开头因此很容易识别。\
**FF00::/8** - 组播范围。
**任播地址:**这种形式的IPv6地址与组播地址类似但有一点不同。任播地址也可以称为一对最近。它可以用于寻址发送到多个接口的数据包但通常它会将数据包发送到根据路由距离定义的第一个接口。这意味着它将数据包发送到由路由协议确定的最近接口。\
**20000::/3** - 全局单播地址范围。
fe80::/10--> 唯一链路本地地址 (169.254.x.x) \[fe80:0000:0000:0000:0000:0000:0000:0000,febf:ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]\
fc00::/7 --> 唯一本地单播地址 (10.x.x.x, 172.16.x.x, 192.168.x.x) \[]\
2000::/3 --> 全局单播地址\
ff02::1 --> 组播所有节点\
ff02::2 --> 组播路由器节点
## **猜测机器的IPv6地址**
**方法1**
fe80::/10的IPv6地址是基于MAC地址的。如果你有网络中某个设备的IPv6地址并且你想猜测网络中另一个设备的IPv6地址你可以使用ping命令在arp表中获取其MAC地址。
**方法2**
你可以发送ping6到组播地址并在arp表中获取IPv6地址。
```bash
service ufw stop #Stop firewall
ping6 -I <IFACE> ff02::1 #You could also make: ping6 -I <IPV6> ff02::1 if you want to make a ping to a specific IP Address
ip -6 neigh
alive6
use auxiliary/scanner/discovery/ipv6_neighbor_router_advertisement; set INTERFACE eth1; run
```
# IPv6中间人攻击
使用伪造的ICMPv6邻居通告进行中间人攻击。
* 使用伪造的ICMPv6路由器通告进行中间人攻击。
* 使用ICMPv6重定向或ICMPv6过大来插入路由进行中间人攻击。
* 中间人攻击移动IPv6但需要禁用IPSec。
* 使用恶意DHCPv6服务器进行中间人攻击。
# 在互联网上发现IPv6地址
## 子域名
您可以使用Google和其他浏览器搜索子域名例如"ipv6.\*"
```bash
site:ipv6./
```
## DNS
您还可以尝试在DNS中搜索“**AXFR**”(区域传输)、“**AAAA**”IPv6甚至“**ANY**”全部记录以查找IPv6地址。
## Ping6
一旦找到组织的一些IPv6设备您可以尝试使用`ping6`来检查附近的地址。
# 参考资料
* [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)
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
- 您在**网络安全公司**工作吗您想在HackTricks中看到您的**公司广告**吗?或者您想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或在**Twitter**上**关注**我[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享您的黑客技巧**。
</details>