3-L3-侦查与扫描-day11
侦查与扫描(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-traceroute)
- 2. UDP 模式(Unix/Linux 默认)
- 3. TCP 模式(TCP Traceroute)
- 4. 被动拓扑发现
- 5. SNMP 查询
- 三、流程示例与流程图
- 四、专有名词与专业术语表
侦查与扫描是网络攻击链的第一个环节,本质是攻击者在不触发明显攻击行为的前提下,收集目标网络的“地图信息”——包括存活主机、网络拓扑、操作系统类型、服务特征等,为后续精准攻击铺路
会用大部分其他层级的东西
1.a IP扫描简单介绍(主机发现)
原理:向目标网段批量发送探测包,根据响应判断主机是否在线:
发ICMP Echo(Ping包):收到Echo Reply则主机存活;
发TCP SYN包:收到SYN-ACK说明端口开放,主机在线;
发UDP包:收到ICMP Port Unreachable则主机存活。
辅助指纹识别:通过分析响应包的TTL初始值、IPID序列,可推断目标操作系统:
Windows默认TTL=128,Linux默认TTL=64;
不同系统的IPID生成逻辑(递增/随机)也有差异。
常用工具:
nmap -sP(Ping扫描)、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 Request(Type 8),等待ICMP Echo Reply(Type 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 =64
Windows: 常见初始TTL =128
网络设备(Cisco等): 常见初始TTL =255
IPID(IP标识)序列推断
原理:IP头中的ID字段用于标识数据包片段。不同系统的ID生成策略不同。
规律:
递增型:旧版Windows、某些打印机。
随机型:新版Linux、OpenBSD。
零值:某些老旧系统。
TCP窗口大小(Window Size)
- 原理:TCP头中的Window Size值在SYN-ACK包中,不同OS的默认值不同(如AIX通常为0x3F25,Windows 7为0xFFFF)。
DF标志位(Don’t Fragment)
- 原理:某些Unix系统会在IP头中设置DF位以支持PMTU发现,而Windows通常不会。
四、核心专有名词与术语表
| 术语/缩写 | 英文全称 | 中文解释 |
|---|---|---|
| ICMP | Internet Control Message Protocol | 互联网控制报文协议。用于发送错误消息和操作信息(如Ping、Traceroute)。 |
| Echo Request/Reply | Echo Request / Echo Reply | ICMP回显请求/应答。即Ping包,用于测试网络连通性。 |
| ARP | Address Resolution Protocol | 地址解析协议。将IP地址解析为MAC地址,仅在二层局域网生效。 |
| SYN | Synchronize Sequence Numbers | TCP同步序列编号。用于建立连接的第一个包。 |
| ACK | Acknowledgement | TCP确认字符。用于确认已接收到数据。 |
| RST | Reset | TCP重置位。用于强制断开异常连接。 |
| UDP | User Datagram Protocol | 用户数据报协议。无连接传输协议,常用于DNS、DHCP等服务。 |
| TTL | Time To Live | 生存时间。IP包头的一个值,每经过一个路由减1,减至0时丢弃,防止环路。 |
| IPID | IP Identification | IP标识。用于区分不同的数据包或同一数据包的分片。 |
| MTU | Maximum Transmission Unit | 最大传输单元。网卡能传输的最大数据包大小(通常1500字节)。 |
| PMTU Discovery | Path MTU Discovery | 路径MTU发现。通过DF标志位探测路径上最小的MTU值。 |
| Port Unreachable | Port Unreachable | ICMP目的不可达的一种(Code 3),表示端口未监听。 |
| Raw Socket | Raw Socket | 原始套接字。允许程序直接构造和发送IP/TCP/UDP头部,绕过传输层,常用于编写扫描工具。 |
| Stealth Scan | Stealth Scan | 隐秘扫描。指不完全建立连接(如SYN扫描)以减少被日志记录的风险。 |
2. b 网络拓扑发现简单概括
原理:利用IP协议的TTL机制和ICMP报错功能,通过
traceroute工具实现:向目标发送TTL从1开始递增的探测包(UDP/TCP/ICMP类型均有);
中间路由器收到TTL=0的包时,会返回ICMP Time Exceeded报文,由此获取路径上的每一跳设备IP;
最终绘制出从攻击点到目标的完整网络路径。
价值:帮助攻击者明确网络分区、网关位置、安全设备部署点,规划后续攻击路径。
2.b 网络拓扑发现(Network Topology Discovery)深度详解
网络拓扑发现是侦察阶段的“绘图”过程。如果说IP扫描是找到一栋楼里有哪些房间有人,那么拓扑发现就是搞清楚这些房间之间的走廊、楼梯以及大楼的出口在哪里。它的核心目的是映射出数据包从攻击源到目标之间经过的所有网络设备(路由器、防火墙、负载均衡器等)的路径,从而识别网络瓶颈、安全设备位置和潜在的流量操控点。
一、原理
网络拓扑发现的基石是IP协议的TTL(Time 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的高端口(通常33434+),TTL逐次递增。因为目标端口大概率不存在,最后一跳目标主机通常会返回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跳:发送TTL=1的UDP包。第一台路由器(网关 10.0.0.1)收到后TTL减为0,丢弃包,并向10.0.0.2回复ICMP Time Exceeded。记录:10.0.0.1
第2跳:发送TTL=2的UDP包。包通过10.0.0.1,到达第二台路由器(ISP入口 202.96.1.1),TTL减为0,回复ICMP Time Exceeded。记录:202.96.1.1
…中间跳数:重复上述过程,TTL依次递增(3, 4, 5…),记录每一跳返回的路由器IP。
终点:当TTL值足够大,包到达目标114.114.114.114。由于目标端口未监听,目标主机返回ICMP Port Unreachable。
结束:traceroute收到终点信号,停止探测,打印完整路径。
四、专有名词与专业术语表
| 术语/缩写 | 英文全称 | 中文解释 |
|---|---|---|
| TTL | Time To Live | 生存时间。IP包头字段,限制数据包在网络中的跳数,防止无限循环。 |
| Hop | Hop | 跳数。数据包从源到目的地经过的一个网络段或一个路由器。 |
| ICMP | Internet Control Message Protocol | 互联网控制报文协议。用于传递控制消息(如错误、连通性测试)。 |
| Time Exceeded | Time Exceeded | ICMP类型11。当路由器收到TTL=0的数据包时返回的错误信息。 |
| Port Unreachable | Port Unreachable | ICMP类型3,代码3。当目标主机收到UDP包但端口未监听时返回的错误信息。 |
| **Round-Trip Time (RTT)** | Round-Trip Time | 往返时延。从发送端发送数据开始,到发送端收到来自接收端的确认所经历的时间。 |
| AS | Autonomous System | 自治系统。在一个统一管理域下的一组路由器,使用统一的路由策略。 |
| ASN | Autonomous System Number | 自治系统号。互联网上每个AS的唯一标识符。 |
| MPLS | Multi-Protocol Label Switching | 多协议标签交换。一种在运营商骨干网上使用的快速转发技术,会导致Traceroute出现连续相同IP(隐式空标签)。 |
| PMTU Discovery | Path MTU Discovery | 路径MTU发现。通过TTL机制配合ICMP Fragmentation Needed消息,探测路径上最小的MTU值。 |
| LSRR | Loose Source Record Route | 宽松源站记录路由。IP选项之一,允许指定数据包必须经过的IP地址列表,也可用于拓扑发现。 |
| SNMP | Simple Network Management Protocol | 简单网络管理协议。用于网络设备的管理和监控,通过查询MIB库获取拓扑信息。 |
| MIB | Management Information Base | 管理信息库。存储网络设备管理信息的虚拟数据库。 |
| CDP | Cisco Discovery Protocol | 思科发现协议。思科私有二层协议,用于发现直连的思科设备。 |
| LLDP | Link Layer Discovery Protocol | 链路层发现协议。IEEE标准二层协议,用于发现直连的网络设备。 |
| RIP | Routing Information Protocol | 路由信息协议。一种基于跳数的距离矢量路由协议。 |
| OSPF | Open Shortest Path First | 开放式最短路径优先。一种链路状态路由协议。 |
| BGP | Border Gateway Protocol | 边界网关协议。互联网核心的自治系统间的路由协议。 |
