diff --git a/src/generic-methodologies-and-resources/pentesting-network/pentesting-ipv6.md b/src/generic-methodologies-and-resources/pentesting-network/pentesting-ipv6.md index f0fe960c8..6006be92a 100644 --- a/src/generic-methodologies-and-resources/pentesting-network/pentesting-ipv6.md +++ b/src/generic-methodologies-and-resources/pentesting-network/pentesting-ipv6.md @@ -77,20 +77,20 @@ 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) Attacks +### IPv6 中间人攻击 (MitM) -在IPv6网络中执行MitM攻击的几种技术包括: +在 IPv6 网络中执行 MitM 攻击的几种技术包括: -- 冒充ICMPv6邻居或路由器广告。 -- 使用ICMPv6重定向或“数据包过大”消息来操纵路由。 -- 攻击移动IPv6(通常需要禁用IPSec)。 -- 设置恶意DHCPv6服务器。 +- 冒充 ICMPv6 邻居或路由器广告。 +- 使用 ICMPv6 重定向或“数据包过大”消息来操纵路由。 +- 攻击移动 IPv6(通常需要禁用 IPSec)。 +- 设置恶意 DHCPv6 服务器。 -## Identifying IPv6 Addresses in the eild +## 在现场识别 IPv6 地址 -### Exploring Subdomains +### 探索子域 -一种查找可能与IPv6地址相关的子域的方法是利用搜索引擎。例如,使用查询模式`ipv6.*`可能是有效的。具体来说,可以在Google中使用以下搜索命令: +查找可能与 IPv6 地址相关的子域的方法涉及利用搜索引擎。例如,使用类似 `ipv6.*` 的查询模式可能会有效。具体来说,可以在 Google 中使用以下搜索命令: ```bash site:ipv6./ ``` @@ -104,11 +104,11 @@ site:ipv6./ ### 使用 Ping6 进行探测 -在确定与组织相关的 IPv6 地址后,可以使用 `ping6` 工具进行探测。该工具有助于评估已识别的 IPv6 地址的响应能力,并可能帮助发现相邻的 IPv6 设备。 +在确定与组织相关的 IPv6 地址后,可以使用 `ping6` 工具进行探测。该工具有助于评估识别出的 IPv6 地址的响应能力,并可能帮助发现相邻的 IPv6 设备。 ## IPv6 本地网络攻击技术 -以下部分涵盖可以在 **同一 /64 段内** 执行的实际层 2 IPv6 攻击,而无需知道任何全局前缀。下面显示的所有数据包都是 **链路本地** 的,仅通过本地交换机传输,使它们在大多数环境中极其隐蔽。 +以下部分涵盖可以在 **同一 /64 段内** 执行的实际层 2 IPv6 攻击,而无需知道任何全局前缀。下面显示的所有数据包都是 **链路本地** 的,仅通过本地交换机传输,使它们在大多数环境中极为隐蔽。 ### 为稳定实验室进行系统调优 @@ -128,7 +128,7 @@ sudo sysctl -w net.ipv4.tcp_tw_reuse=1 ``` ### 被动 NDP 和 DHCPv6 嗅探 -因为每个 IPv6 主机 **自动加入多个组播组** (`ff02::1`, `ff02::2`, …) 并使用 ICMPv6 进行 SLAAC/NDP,所以你可以在不发送任何数据包的情况下映射整个段。以下 Python/Scapy 单行代码监听最有趣的 L2 消息,并打印出带有颜色和时间戳的日志,显示谁是谁: +因为每个 IPv6 主机 **自动加入多个组播组** (`ff02::1`, `ff02::2`, …) 并使用 ICMPv6 进行 SLAAC/NDP,你可以在不发送任何数据包的情况下映射整个段。以下 Python/Scapy 单行代码监听最有趣的 L2 消息,并打印出带有颜色和时间戳的日志,显示谁是谁: ```python #!/usr/bin/env python3 from scapy.all import * @@ -232,7 +232,7 @@ sudo ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE | 标志 | 意义 | 对客户端行为的影响 | |------|---------|----------------------------| | **M (管理地址配置)** | 当设置为 `1` 时,主机必须使用 **DHCPv6** 来获取其 IPv6 地址。 | 整个地址来自 DHCPv6 – 非常适合 *mitm6* 风格的中毒。 | -| **O (其他配置)** | 当设置为 `1` 时,主机应仅使用 **DHCPv6** 来获取 *其他* 信息(DNS, NTP, …)。 | 地址仍通过 SLAAC,但 DNS 可以通过 DHCPv6 被劫持。 | +| **O (其他配置)** | 当设置为 `1` 时,主机应仅使用 **DHCPv6** 来获取 *其他* 信息(DNS, NTP, …)。 | 地址仍通过 SLAAC 获取,但 DNS 可以通过 DHCPv6 被劫持。 | | **M=0 / O=0** | 纯 SLAAC 网络。 | 仅可能使用 RA / RDNSS 技巧 – 客户端不会发送 DHCPv6。 | | **M=1 / O=1** | 混合环境。 | 同时使用 DHCPv6 和 SLAAC;欺骗的表面最大。 | @@ -248,7 +248,7 @@ sudo tcpdump -vvv -i eth0 'icmp6 && ip6[40] == 134' # capture Router Advertise |--------|--------|------| | **高** | `10` | 客户端更喜欢这个路由器而不是任何 *中*/*低* 的路由器 | | 中(默认) | `01` | 几乎所有合法设备使用 | -| 低 | `00` | 仅在没有更好的路由器存在时选择 | +| 低 | `00` | 仅在没有更好的路由器时选择 | 使用 Scapy 生成数据包时,可以通过 `prf` 参数设置,如上所示(`prf=0x1` → 高)。结合 **高 Prf**、**短间隔** 和 **非零生存时间** 使你的恶意网关异常稳定。 @@ -280,10 +280,10 @@ send(ra,iface=args.interface,loop=1,inter=args.interval) ### DHCPv6 DNS欺骗 (mitm6) -与SLAAC不同,Windows网络通常依赖于**无状态DHCPv6**进行DNS。 [mitm6](https://github.com/rofl0r/mitm6) 自动回复`Solicit`消息,使用**广告 → 回复**流程,将**您的链路本地地址分配为DNS,持续300秒**。 这解锁了: +与SLAAC不同,Windows网络通常依赖于**无状态DHCPv6**进行DNS。[mitm6](https://github.com/rofl0r/mitm6)自动回复`Solicit`消息,使用**Advertise → Reply**流程将**您的链路本地地址分配为DNS,持续300秒**。这解锁了: * NTLM中继攻击 (WPAD + DNS劫持) -* 拦截内部名称解析而不触及路由器 +* 拦截内部名称解析而不触碰路由器 典型用法: ```bash diff --git a/src/network-services-pentesting/pentesting-snmp/cisco-snmp.md b/src/network-services-pentesting/pentesting-snmp/cisco-snmp.md index bda7980e2..8ebc0000f 100644 --- a/src/network-services-pentesting/pentesting-snmp/cisco-snmp.md +++ b/src/network-services-pentesting/pentesting-snmp/cisco-snmp.md @@ -4,7 +4,7 @@ ## Pentesting Cisco Networks -**SNMP** 通过 UDP 在 **161/UDP** 端口上处理一般消息,在 **162/UDP** 端口上处理陷阱消息。该协议依赖于 *community strings*,作为明文“密码”,使 SNMP 代理和管理者之间能够进行通信。这些字符串决定了访问级别,具体为 **只读 (RO) 或读写 (RW) 权限**。 +**SNMP** 通过 UDP 运行,使用 **161/UDP** 端口进行一般消息传递,使用 **162/UDP** 端口进行陷阱消息传递。该协议依赖于 *community strings*,作为明文“密码”,使 SNMP 代理和管理器之间能够进行通信。这些字符串决定了访问级别,具体为 **只读 (RO) 或读写 (RW) 权限**。 一个经典但仍然极其有效的攻击向量是 **暴力破解 community strings**,以便从未认证用户提升为设备管理员 (RW community)。执行此任务的实用工具是 [**onesixtyone**](https://github.com/trailofbits/onesixtyone): ```bash @@ -38,16 +38,16 @@ snmpset -v2c -c private 192.168.66.1 \ 1.3.6.1.4.1.9.9.96.1.1.1.1.6.1234 s \"backup.cfg\" \\ 1.3.6.1.4.1.9.9.96.1.1.1.1.14.1234 i 4 # rowStatus = createAndGo ``` -行标识符是*一次性*的;在五分钟内重复使用会触发`inconsistentValue`错误。 +行标识符是 *一次性* 的;在五分钟内重复使用会触发 `inconsistentValue` 错误。 -一旦文件在您的TFTP服务器上,您可以检查凭据(`enable secret`,`username secret`等),甚至可以将修改后的配置推送回设备。 +一旦文件在您的 TFTP 服务器上,您可以检查凭据(`enable secret`、`username secret` 等)或甚至将修改后的配置推送回设备。 --- -### Metasploit工具 +### Metasploit 资源 -* **`cisco_config_tftp`** – 在滥用相同MIB后,通过TFTP下载运行配置/启动配置。 -* **`snmp_enum`** – 收集设备清单信息、VLAN、接口描述、ARP表等。 +* **`cisco_config_tftp`** – 通过 TFTP 下载运行配置/启动配置,利用相同的 MIB。 +* **`snmp_enum`** – 收集设备清单信息、VLAN、接口描述、ARP 表等。 ```bash use auxiliary/scanner/snmp/snmp_enum set RHOSTS 10.10.100.10 @@ -61,7 +61,7 @@ run | 年份 | CVE | 受影响特性 | 影响 | |------|-----|-----------------|--------| -| 2025 | CVE-2025-20174 | SNMP 子系统 | 精心构造的数据包导致在 IOS/IOS-XE (v1/v2c/v3) 上经过身份验证的 *DoS* (重启)。 | +| 2025 | CVE-2025-20174 | SNMP 子系统 | 构造的数据包导致在 IOS/IOS-XE (v1/v2c/v3) 上经过身份验证的 *DoS* (重启)。 | | 2024 | CVE-2024-20373 | IPv4 ACL 处理 | 配置错误的 **扩展** ACL 静默 *失败*,允许在已知有效社区/用户时进行未经身份验证的 SNMP 轮询。 | | 2025 | (尚无 CVE) | SNMPv3 配置限制绕过 | 有效的 v3 用户可以从应被拒绝的地址进行轮询。 |