浅谈端口扫描技术
字数 2109 2025-08-26 22:11:51

端口扫描技术详解

端口扫描基础

端口类型与范围

  • 一个IP地址有65535(2^16)个端口,范围从0到65535(2^16-1)
  • 端口按协议分为两种类型:
    • TCP端口:面向连接、可靠的字节流服务
    • UDP端口:不可靠的、面向数据报的服务

TCP端口扫描技术

TCP CONNECT扫描

  • 原理:与目标端口完成完整的三次握手
  • 判断标准
    • 成功建立连接:端口开放(open)
    • 收到RST响应:端口关闭(closed)
  • 工具使用
    • MSF模块:use auxiliary/scanner/portscan/tcp
    • Nmap命令:nmap -sT scanme.nmap.org

TCP SYN扫描(半连接扫描)

  • 原理:只发送SYN报文段(三次握手的第一次)
  • 判断标准
    • 收到SYN/ACK:端口开放
    • 收到RST:端口关闭
    • 无响应:端口被过滤(filtered)
    • ICMP不可达错误:端口被过滤
  • 优点
    • 速度快
    • 不易被防火墙记录日志
  • 工具使用
    • MSF模块:use auxiliary/scanner/portscan/syn
    • Nmap命令:nmap -sS scanme.nmap.org

TCP Xmas Tree扫描

  • 原理:发送带有FIN、PSH和URG标志的数据包(不含SYN、RST或ACK)
  • RFC规定:开放端口应丢弃此类报文,关闭端口会返回RST
  • 判断标准
    • 无响应:开放或被过滤(open|filtered)
    • RST响应:端口关闭
    • ICMP不可达错误:端口被过滤
  • 工具使用
    • MSF模块:use auxiliary/scanner/portscan/xmas
    • Nmap命令:
      • Xmas扫描:nmap -sX
      • FIN扫描:nmap -sF
      • NULL扫描:nmap -sN

TCP ACK扫描

  • 特点:不能确定端口开放/关闭状态
  • 用途:探测防火墙配置
    • 收到RST:无状态防火墙
    • 无响应:有状态防火墙
  • 工具使用
    • MSF模块:use auxiliary/scanner/portscan/ack
    • Nmap命令:nmap -sA scanme.nmap.org

TCP Window扫描

  • 原理:类似ACK扫描,但检查RST数据包中的窗口大小
  • 判断标准
    • RST且窗口非零:端口开放
    • RST且窗口为零:端口关闭
    • 无响应:端口被过滤
  • 工具使用nmap -sW docsrv.caldera.com

TCP Idle扫描

  • 特点:完全盲目的端口扫描,不直接向目标发送数据包
  • 原理
    1. 探测僵尸主机(Zombie)的IP ID并记录
    2. 伪造Zombie的IP向目标发送SYN包
    3. 再次探测Zombie的IP ID
  • 判断标准
    • IP ID增加1:端口关闭或被过滤
    • IP ID增加2:端口开放
    • IP ID增加>2:Zombie主机不适合
  • 优点
    • 高度隐蔽
    • 可绕过某些过滤防火墙
  • 缺点
    • 扫描时间长
    • 需要合适的Zombie主机
    • 需要能够发送欺骗包
  • 工具使用nmap -sI <zombie_host> <target>

TCP Maimon扫描

  • 原理:发送FIN/ACK标志的数据包
  • 判断标准
    • BSD系统:开放端口丢弃数据包
    • 其他系统:无论端口状态都返回RST
  • 工具使用nmap -sM

TCP FTP Bounce扫描

  • 原理:利用FTP代理功能通过FTP服务器扫描其他主机
  • 工具使用nmap -b <username>:<password>@<server>:<port>

UDP端口扫描技术

UDP扫描

  • 原理:向目标端口发送UDP数据包
  • 判断标准
    • 收到UDP响应:端口开放(少见)
    • 无响应:开放或被过滤
    • ICMP端口不可达:端口关闭
    • 其他ICMP不可达错误:端口被过滤
  • 特点
    • 扫描速度慢
    • 可靠性较低
  • 工具使用nmap -sU scanme.nmap.org

ICMP扫描技术

ICMP扫描

  • 原理:利用ICMP错误报文机制
  • 常见利用
    • 类型3代码1/2/3/9/10/13:数据包被防火墙过滤

SCTP扫描技术

SCTP INIT扫描

  • 原理:类似TCP SYN扫描,发送INIT块
  • 判断标准
    • INIT-ACK响应:端口开放
    • ABORT响应:端口关闭
    • 无响应:端口被过滤
  • 工具使用nmap -sY

SCTP COOKIE ECHO扫描

  • 原理:发送COOKIE ECHO块
  • 判断标准
    • 无响应:端口开放
    • ABORT响应:端口关闭
  • 工具使用nmap -sZ

IP协议扫描

IP协议扫描

  • 原理:循环通过IP协议号(非端口号)
  • 判断标准
    • 收到响应:协议开放
    • ICMP协议不可达:协议关闭
    • 其他ICMP不可达:协议被过滤
    • 无响应:开放或被过滤
  • 工具使用nmap -sO

总结

端口扫描技术多种多样,各有优缺点和适用场景。选择扫描技术时应考虑:

  1. 扫描的隐蔽性需求
  2. 目标网络的防火墙配置
  3. 扫描速度和效率要求
  4. 扫描结果的准确性需求

熟练掌握各种扫描技术及其原理,有助于在渗透测试和安全评估中选择最合适的扫描方法。

端口扫描技术详解 端口扫描基础 端口类型与范围 一个IP地址有65535(2^16)个端口,范围从0到65535(2^16-1) 端口按协议分为两种类型: TCP端口:面向连接、可靠的字节流服务 UDP端口:不可靠的、面向数据报的服务 TCP端口扫描技术 TCP CONNECT扫描 原理 :与目标端口完成完整的三次握手 判断标准 : 成功建立连接:端口开放(open) 收到RST响应:端口关闭(closed) 工具使用 : MSF模块: use auxiliary/scanner/portscan/tcp Nmap命令: nmap -sT scanme.nmap.org TCP SYN扫描(半连接扫描) 原理 :只发送SYN报文段(三次握手的第一次) 判断标准 : 收到SYN/ACK:端口开放 收到RST:端口关闭 无响应:端口被过滤(filtered) ICMP不可达错误:端口被过滤 优点 : 速度快 不易被防火墙记录日志 工具使用 : MSF模块: use auxiliary/scanner/portscan/syn Nmap命令: nmap -sS scanme.nmap.org TCP Xmas Tree扫描 原理 :发送带有FIN、PSH和URG标志的数据包(不含SYN、RST或ACK) RFC规定 :开放端口应丢弃此类报文,关闭端口会返回RST 判断标准 : 无响应:开放或被过滤(open|filtered) RST响应:端口关闭 ICMP不可达错误:端口被过滤 工具使用 : MSF模块: use auxiliary/scanner/portscan/xmas Nmap命令: Xmas扫描: nmap -sX FIN扫描: nmap -sF NULL扫描: nmap -sN TCP ACK扫描 特点 :不能确定端口开放/关闭状态 用途 :探测防火墙配置 收到RST:无状态防火墙 无响应:有状态防火墙 工具使用 : MSF模块: use auxiliary/scanner/portscan/ack Nmap命令: nmap -sA scanme.nmap.org TCP Window扫描 原理 :类似ACK扫描,但检查RST数据包中的窗口大小 判断标准 : RST且窗口非零:端口开放 RST且窗口为零:端口关闭 无响应:端口被过滤 工具使用 : nmap -sW docsrv.caldera.com TCP Idle扫描 特点 :完全盲目的端口扫描,不直接向目标发送数据包 原理 : 探测僵尸主机(Zombie)的IP ID并记录 伪造Zombie的IP向目标发送SYN包 再次探测Zombie的IP ID 判断标准 : IP ID增加1:端口关闭或被过滤 IP ID增加2:端口开放 IP ID增加>2:Zombie主机不适合 优点 : 高度隐蔽 可绕过某些过滤防火墙 缺点 : 扫描时间长 需要合适的Zombie主机 需要能够发送欺骗包 工具使用 : nmap -sI <zombie_host> <target> TCP Maimon扫描 原理 :发送FIN/ACK标志的数据包 判断标准 : BSD系统:开放端口丢弃数据包 其他系统:无论端口状态都返回RST 工具使用 : nmap -sM TCP FTP Bounce扫描 原理 :利用FTP代理功能通过FTP服务器扫描其他主机 工具使用 : nmap -b <username>:<password>@<server>:<port> UDP端口扫描技术 UDP扫描 原理 :向目标端口发送UDP数据包 判断标准 : 收到UDP响应:端口开放(少见) 无响应:开放或被过滤 ICMP端口不可达:端口关闭 其他ICMP不可达错误:端口被过滤 特点 : 扫描速度慢 可靠性较低 工具使用 : nmap -sU scanme.nmap.org ICMP扫描技术 ICMP扫描 原理 :利用ICMP错误报文机制 常见利用 : 类型3代码1/2/3/9/10/13:数据包被防火墙过滤 SCTP扫描技术 SCTP INIT扫描 原理 :类似TCP SYN扫描,发送INIT块 判断标准 : INIT-ACK响应:端口开放 ABORT响应:端口关闭 无响应:端口被过滤 工具使用 : nmap -sY SCTP COOKIE ECHO扫描 原理 :发送COOKIE ECHO块 判断标准 : 无响应:端口开放 ABORT响应:端口关闭 工具使用 : nmap -sZ IP协议扫描 IP协议扫描 原理 :循环通过IP协议号(非端口号) 判断标准 : 收到响应:协议开放 ICMP协议不可达:协议关闭 其他ICMP不可达:协议被过滤 无响应:开放或被过滤 工具使用 : nmap -sO 总结 端口扫描技术多种多样,各有优缺点和适用场景。选择扫描技术时应考虑: 扫描的隐蔽性需求 目标网络的防火墙配置 扫描速度和效率要求 扫描结果的准确性需求 熟练掌握各种扫描技术及其原理,有助于在渗透测试和安全评估中选择最合适的扫描方法。