渗透测试中的子网划分应用范围

在进行授权的网络基础设施渗透测试时,精确确定测试范围的网络边界至关重要。正确的子网计算能够识别目标范围内的所有活跃节点,便于规划扫描阶段,并防止对相邻网络段进行未授权访问。测试人员必须建立清晰的网络边界以确保工作范围符合授权要求。

理解子网结构对于流量路由分析、入口和出口点识别以及防火墙和入侵检测系统日志检查至关重要。这使安全专业人员能够系统地工作,准确记录范围,并向利益相关者和审计员提供授权测试边界的明确证据。

  • 识别网络分段边界和VLAN分配
  • 规划内部测试活动的路由路径
  • 确定系统分析的主机IP范围

CIDR记号法和掩码计算

CIDR(无类域间路由)记号法将子网表示为IP地址、斜杠和前缀长度的组合。例如,192.168.1.0/24表示掩码为255.255.255.0的网络,前24位定义网络地址。主机可用性使用2^(32-前缀)计算:/24网络包含256个总地址,减去两个保留地址(网络地址和广播地址),得到254个可用主机。

每个前缀位数使可用子网数量翻倍。/25将/24分成两个128地址的网络;/26创建四个64地址的网络。在CIDR记号法和十进制掩码表示法之间快速转换对于有效的范围规划至关重要。渗透测试人员应能够快速识别任何给定范围的网络地址和广播地址。

  • /24 = 256个地址(254个可用主机):255.255.255.0
  • /25 = 128个地址(126个可用主机):255.255.255.128
  • /26 = 64个地址(62个可用主机):255.255.255.192
  • /30 = 4个地址(2个可用主机):255.255.255.252

确定子网边界和主机范围

对于任何子网,需要计算:网络地址(第一个地址)、广播地址(最后一个地址)和可用主机范围。方法是:将IP和掩码转换为二进制,在IP和掩码之间进行按位与运算以获得网络地址。将一加到网络地址得到第一个可用主机;从广播地址减一得到最后一个可用主机。这提供了范围内地址的完整清单。

实际示例:子网10.0.50.0/24产生网络地址10.0.50.0、第一个主机10.0.50.1、最后一个主机10.0.50.254、广播地址10.0.50.255。在测试期间,这定义了哪些地址需要扫描,并识别出分段边界处的路由器接口。准确的边界计算防止扫描与超出范围的网络重叠,并提供受控测试的证明。

超级网络和路由聚合

超级网络将多个相邻子网合并成一个更大的网络,使用更短的前缀长度。两个子网192.168.0.0/25和192.168.0.128/25可以汇聚为192.168.0.0/24。这在防火墙规则中经常出现,其中汇聚记号法控制对地址块的访问。测试人员必须分解汇聚规则以理解实际范围和限制。

超级网络识别需要找到相邻子网的最短公共前缀。实际应用:段间路由规则经常使用汇聚记号法。在防火墙策略审查期间,测试人员必须展开汇聚以识别落在授权范围内和外的特定范围,确保准确的覆盖评估和与任务条款的合规性。

实际计算示例

问题1:将子网172.16.0.0/22分成四个等量子网用于部门测试。前缀/22 = 1024个地址。分成四个得到/24个(每个子网256个地址)。结果:172.16.0.0/24、172.16.1.0/24、172.16.2.0/24、172.16.3.0/24。在测试期间,每个子网分别扫描,并记录其功能、访问控制和发现的漏洞。

问题2:确定主机10.20.30.50和10.20.31.100是否驻留在同一个/23子网中。掩码/23 = 255.255.254.0。应用按位与运算:两者都解析为10.20.30.0网络。答案:是的,在同一子网。这种知识有助于连接性分析,识别潜在的直接通信路径,并确定流量是否遍历路由器或在共享的第2层分段上运行。

工具和计算自动化

计算速度通过工具提高:ipcalc(Linux)、sipcalc、在线子网计算器、Python ipaddress模块。Bash提供grep、awk、sed用于IP操作。通过Python脚本自动化生成扫描主机列表、验证地址隶属关系、按分段汇聚结果,并识别覆盖中的重叠或缺口。CIDR记号法简化了对IP范围的批量操作。

Metasploit和Nmap接受CIDR记号法用于自动范围扫描。Python的ipaddress模块提供:网络主机枚举、子网交集测试、超级网络计算和地址验证。这些功能简化了扫描计划生成、结果分析和范围文档。自动验证在扫描开始前捕获配置错误,确保范围准确性。

文档和报告

渗透测试报告必须清楚地记录测试的子网,包括CIDR记号法、地址数量、可用范围和发现的服务。这向利益相关者演示了范围,并为工作量分配提供了合理性。明确列出排除项(根据协议未扫描的地址)可以防止纠纷并澄清测试边界。

报告表应包括:子网(CIDR)、总地址数、活跃主机数、分段功能、发现的漏洞。这种结构使管理层能够评估每个分段的风险并确定补救优先级。准确的子网计算和文档编制增强了测试可信度,便于客户沟通,并减少了关于覆盖范围和范围遵从性的测试后纠纷。

参考资料

PENTEST.RED / RED JOURNAL