
侦查与扫描Reconnaissance 文章目录1.a IP扫描简单介绍主机发现1.a IP扫描主机发现深度详解一、原理二、传统扫描方式与可用工具1. ICMP协议扫描Ping扫描2. TCP协议扫描3. UDP协议扫描4. ARP扫描二层扫描5. 高级/组合扫描三、辅助指纹识别OS与特征推断四、核心专有名词与术语表2. b 网络拓扑发现简单概括2.b 网络拓扑发现Network Topology Discovery深度详解一、原理二、实现方式1. ICMP Echo 模式传统Ping-traceroute2. UDP 模式Unix/Linux 默认3. TCP 模式TCP Traceroute4. 被动拓扑发现5. SNMP 查询三、流程示例与流程图四、专有名词与专业术语表侦查与扫描是网络攻击链的第一个环节本质是攻击者在不触发明显攻击行为的前提下收集目标网络的“地图信息”——包括存活主机、网络拓扑、操作系统类型、服务特征等为后续精准攻击铺路会用大部分其他层级的东西1.a IP扫描简单介绍主机发现原理向目标网段批量发送探测包根据响应判断主机是否在线发ICMP EchoPing包收到Echo Reply则主机存活发TCP SYN包收到SYN-ACK说明端口开放主机在线发UDP包收到ICMP Port Unreachable则主机存活。辅助指纹识别通过分析响应包的TTL初始值、IPID序列可推断目标操作系统Windows默认TTL128Linux默认TTL64不同系统的IPID生成逻辑递增/随机也有差异。常用工具nmap -sPPing扫描、fping、masscan高速全网扫描。1.a IP扫描主机发现深度详解IP扫描也称为主机发现Host Discovery是网络侦察阶段的核心任务。其核心目的是在庞大的IP地址空间中快速筛选出存活-在线的主机避免在离线主机上浪费时间和资源。一、原理IP扫描的本质是请求-响应 模型。攻击者向目标IP发送特定的探针包根据返回的响应包类型或无响应来判断目标状态在线Alive收到预期的响应包如ICMP Echo Reply、TCP SYN-ACK。离线Down收到ICMP不可达错误或者在超时时间内无任何响应可能被防火墙拦截。被过滤Filtered通常表现为“无响应”因为中间防火墙丢弃了包此时难以直接判断生死需要换用其他扫描方式绕过。二、传统扫描方式与可用工具根据发送的协议包不同扫描方式主要分为以下几类1. ICMP协议扫描Ping扫描原理发送ICMP Echo RequestType 8等待ICMP Echo ReplyType 0。特点速度最快但最容易受防火墙限制现代网络常禁Ping。工具nmap -PE,ping,fping。2. TCP协议扫描TCP SYN扫描半开放扫描Stealth Scan原理发送TCP SYN包发起连接请求。若收到SYN-ACK说明端口开放主机在线随即发送RST重置连接不建立完整三次握手极其隐蔽。工具nmap -sS(Nmap默认SYN扫描)。TCP ACK扫描原理发送TCP ACK包。即使端口关闭根据RFC规范主机也会回复RST包。因此只要收到RST即可证明主机在线常用于探测防火墙规则。工具nmap -sA。TCP Connect扫描原理完成完整的三次握手SYN - SYN-ACK - ACK。最准确但容易被日志记录且速度慢。工具nmap -sT,telnet。3. UDP协议扫描原理发送UDP包到特定端口。若收到ICMP Port Unreachable说明端口关闭若收到UDP响应说明端口开放若无响应可能端口开放或被防火墙过滤。特点非常慢且不可靠但对于发现DNS、SNMP等服务至关重要。工具nmap -sU。4. ARP扫描二层扫描原理在同一网段内发送ARP Request请求目标IP对应的MAC地址。只要有ARP Reply即证明主机在线。特点局域网内最准因为ARP不可路由不会被路由器拦截也不会被主机防火墙屏蔽。工具nmap -PR,arp-scan,netdiscover。5. 高级/组合扫描列表扫描List Scan不发送任何包仅通过DNS解析判断主机是否存在。nmap -sL跳过主机发现No Ping假设所有主机都在线直接进行端口扫描。nmap -Pn大规模扫描针对整个互联网或超大型网段。工具masscan,zmap(号称每秒可发千万个包)。三、辅助指纹识别OS与特征推断在发现存活主机的同时通过分析返回包的细微特征可以推断出目标的操作系统版本或硬件类型这被称为被动/主动操作系统指纹识别。TTL生存时间初始值推断原理不同操作系统在发送数据包时设置的默认TTL值不同。虽然经过路由跳转TTL会减少但通过观察返回的TTL可以反推初始值。规律Linux/Unix: 常见初始TTL 64Windows: 常见初始TTL 128网络设备Cisco等: 常见初始TTL 255IPIDIP标识序列推断原理IP头中的ID字段用于标识数据包片段。不同系统的ID生成策略不同。规律递增型旧版Windows、某些打印机。随机型新版Linux、OpenBSD。零值某些老旧系统。TCP窗口大小Window Size原理TCP头中的Window Size值在SYN-ACK包中不同OS的默认值不同如AIX通常为0x3F25Windows 7为0xFFFF。DF标志位Don’t Fragment原理某些Unix系统会在IP头中设置DF位以支持PMTU发现而Windows通常不会。四、核心专有名词与术语表术语/缩写英文全称中文解释ICMPInternet Control Message Protocol互联网控制报文协议。用于发送错误消息和操作信息如Ping、Traceroute。Echo Request/ReplyEcho Request / Echo ReplyICMP回显请求/应答。即Ping包用于测试网络连通性。ARPAddress Resolution Protocol地址解析协议。将IP地址解析为MAC地址仅在二层局域网生效。SYNSynchronize Sequence NumbersTCP同步序列编号。用于建立连接的第一个包。ACKAcknowledgementTCP确认字符。用于确认已接收到数据。RSTResetTCP重置位。用于强制断开异常连接。UDPUser Datagram Protocol用户数据报协议。无连接传输协议常用于DNS、DHCP等服务。TTLTime To Live生存时间。IP包头的一个值每经过一个路由减1减至0时丢弃防止环路。IPIDIP IdentificationIP标识。用于区分不同的数据包或同一数据包的分片。MTUMaximum Transmission Unit最大传输单元。网卡能传输的最大数据包大小通常1500字节。PMTU DiscoveryPath MTU Discovery路径MTU发现。通过DF标志位探测路径上最小的MTU值。Port UnreachablePort UnreachableICMP目的不可达的一种Code 3表示端口未监听。Raw SocketRaw Socket原始套接字。允许程序直接构造和发送IP/TCP/UDP头部绕过传输层常用于编写扫描工具。Stealth ScanStealth Scan隐秘扫描。指不完全建立连接如SYN扫描以减少被日志记录的风险。2. b 网络拓扑发现简单概括原理利用IP协议的TTL机制和ICMP报错功能通过traceroute工具实现向目标发送TTL从1开始递增的探测包UDP/TCP/ICMP类型均有中间路由器收到TTL0的包时会返回ICMP Time Exceeded报文由此获取路径上的每一跳设备IP最终绘制出从攻击点到目标的完整网络路径。价值帮助攻击者明确网络分区、网关位置、安全设备部署点规划后续攻击路径。2.b 网络拓扑发现Network Topology Discovery深度详解网络拓扑发现是侦察阶段的“绘图”过程。如果说IP扫描是找到一栋楼里有哪些房间有人那么拓扑发现就是搞清楚这些房间之间的走廊、楼梯以及大楼的出口在哪里。它的核心目的是映射出数据包从攻击源到目标之间经过的所有网络设备路由器、防火墙、负载均衡器等的路径从而识别网络瓶颈、安全设备位置和潜在的流量操控点。一、原理网络拓扑发现的基石是IP协议的TTLTime To Live机制和ICMP协议的差错报告机制。TTL机制IP数据包头中的TTL字段设置了数据包的生命周期跳数。每经过一个三层设备路由器TTL值减1。当TTL值减为0时路由器会丢弃该数据包不再转发。ICMP差错报告当路由器丢弃TTL过期的数据包时它会向数据包的源IP地址发送一个**ICMP Time Exceeded超时**消息Type 11, Code 0。推断逻辑攻击者通过刻意发送TTL值从小到大的探测包诱使路径上的每一个路由器依次返回ICMP Time Exceeded消息。通过分析这些回复包的源IP就能知道路径上每一跳的路由器IP地址。注意除了利用TTL值还有其他方法——L2层协议路由协议二、实现方式根据利用的协议和数据包类型主要有以下几种实现方式1. ICMP Echo 模式传统Ping-traceroute原理发送ICMP Echo Request包逐次递增TTL。优点通用性强几乎所有系统都支持。缺点容易被防火墙拦截某些网络设备不回复ICMP。2. UDP 模式Unix/Linux 默认原理发送UDP包到目标IP的高端口通常33434TTL逐次递增。因为目标端口大概率不存在最后一跳目标主机通常会返回ICMP Port Unreachable端口不可达以此确认到达终点。优点比ICMP更不容易被过滤。缺点需要目标主机允许ICMP Port Unreachable的出站流量。3. TCP 模式TCP Traceroute原理发送TCP SYN包通常指向80或443端口TTL逐次递增。如果中途路由器TTL超时回ICMP Time Exceeded如果到达目标目标回SYN-ACK端口开放或RST端口关闭。优点最隐蔽、最有效。因为80/443是业务端口防火墙通常不会拦截非常适合穿透严格的安全策略。工具traceroute -T,nmap --traceroute。4. 被动拓扑发现原理不直接发包而是监听网络流量如OSPF、BGP、LLDP、CDP等路由或邻居发现协议分析网络结构。优点完全无痕无法被检测为扫描。缺点需要有权限接入流量镜像SPAN且只能看到正在通信的设备。5. SNMP 查询原理如果网络设备的SNMP简单网络管理协议采用默认或弱Community字符串如public可以直接查询其MIB库中的路由表ipRouteTable和ARP表ipNetToMediaTable直接获取完整的网络拓扑。工具snmpwalk,SolarWinds等网管软件。三、流程示例与流程图场景攻击者IP: 10.0.0.2想要探测到目标服务器IP: 114.114.114.114的路径。执行命令traceroute 114.114.114.114流程步骤第1跳发送TTL1的UDP包。第一台路由器网关 10.0.0.1收到后TTL减为0丢弃包并向10.0.0.2回复ICMP Time Exceeded。记录10.0.0.1第2跳发送TTL2的UDP包。包通过10.0.0.1到达第二台路由器ISP入口 202.96.1.1TTL减为0回复ICMP Time Exceeded。记录202.96.1.1…中间跳数重复上述过程TTL依次递增3, 4, 5…记录每一跳返回的路由器IP。终点当TTL值足够大包到达目标114.114.114.114。由于目标端口未监听目标主机返回ICMP Port Unreachable。结束traceroute收到终点信号停止探测打印完整路径。四、专有名词与专业术语表术语/缩写英文全称中文解释TTLTime To Live生存时间。IP包头字段限制数据包在网络中的跳数防止无限循环。HopHop跳数。数据包从源到目的地经过的一个网络段或一个路由器。ICMPInternet Control Message Protocol互联网控制报文协议。用于传递控制消息如错误、连通性测试。Time ExceededTime ExceededICMP类型11。当路由器收到TTL0的数据包时返回的错误信息。Port UnreachablePort UnreachableICMP类型3代码3。当目标主机收到UDP包但端口未监听时返回的错误信息。**Round-Trip Time (RTT)**Round-Trip Time往返时延。从发送端发送数据开始到发送端收到来自接收端的确认所经历的时间。ASAutonomous System自治系统。在一个统一管理域下的一组路由器使用统一的路由策略。ASNAutonomous System Number自治系统号。互联网上每个AS的唯一标识符。MPLSMulti-Protocol Label Switching多协议标签交换。一种在运营商骨干网上使用的快速转发技术会导致Traceroute出现连续相同IP隐式空标签。PMTU DiscoveryPath MTU Discovery路径MTU发现。通过TTL机制配合ICMP Fragmentation Needed消息探测路径上最小的MTU值。LSRRLoose Source Record Route宽松源站记录路由。IP选项之一允许指定数据包必须经过的IP地址列表也可用于拓扑发现。SNMPSimple Network Management Protocol简单网络管理协议。用于网络设备的管理和监控通过查询MIB库获取拓扑信息。MIBManagement Information Base管理信息库。存储网络设备管理信息的虚拟数据库。CDPCisco Discovery Protocol思科发现协议。思科私有二层协议用于发现直连的思科设备。LLDPLink Layer Discovery Protocol链路层发现协议。IEEE标准二层协议用于发现直连的网络设备。RIPRouting Information Protocol路由信息协议。一种基于跳数的距离矢量路由协议。OSPFOpen Shortest Path First开放式最短路径优先。一种链路状态路由协议。BGPBorder Gateway Protocol边界网关协议。互联网核心的自治系统间的路由协议。