TCP/IP 协议是网络安全的基础 ——所有渗透测试操作(端口扫描、漏洞利用、会话劫持、流量分析)都基于 TCP/IP 协议的设计原理和安全缺陷

一、TCP/IP 协议栈分层

TCP/IP 协议栈分为 4 层(与 OSI 7 层对应),每层的协议、安全风险、渗透测试切入点均不同,需重点关注 传输层(TCP/UDP)和应用层(渗透核心战场):

分层 核心协议 安全风险点 渗透测试应用场景
网络接口层 以太网、PPP MAC 地址欺骗、ARP 欺骗 内网 ARP 毒化(断网攻击、流量劫持)
网络层 IP、ICMP、IGMP IP 欺骗、ICMP 放大、路由欺骗 存活主机探测(ping 扫描)、DDoS 放大攻击
传输层 TCP、UDP 端口暴露、SYN Flood、序列号预测 端口扫描(全连接 / 半连接)、会话劫持、DoS 测试
应用层 HTTP/HTTPS、FTP、SMB 等 协议漏洞(如 SMB 永恒之蓝)、配置不当 漏洞利用、弱口令爆破、应用层协议分析

关键认知:

  • 渗透测试的核心是 “利用协议设计缺陷或配置不当” 突破边界,例如:TCP 三次握手的设计缺陷导致 SYN Flood 攻击,SMB 协议的漏洞导致远程代码执行(永恒之蓝)。
  • 所有工具(nmap、hping3、metasploit)本质是 “按照协议规则发送定制化数据包”,理解协议才能灵活运用工具甚至手动构造攻击包。

二、核心协议深度解析

(一)网络层:IP + ICMP 协议

1. IP 协议(渗透测试中的 “地址基础”)
  • 核心特性:无连接、不可靠(仅负责路由转发,不保证数据完整性)。
  • 安全缺陷与渗透利用
    • IP 源地址欺骗:伪造数据包的源 IP(如伪造服务器 IP 发起攻击),常用于绕过基于 IP 的访问控制(如防火墙白名单)。
      • 实战场景:内网渗透中,伪造网关 IP 向目标主机发送恶意 ARP 包,实现流量劫持。
    • IP 分片攻击:将恶意数据包拆分后绕过 IDS/IPS 的特征检测(部分防火墙未对分片包重组检测),常用于投递漏洞利用 payload。
      • 工具:nmap -f(分片扫描)、hping3 --frag(分片发包)。
2. ICMP 协议(“网络探测的敲门砖”)
  • 核心功能:网络连通性检测(ping)、错误报告(如目标不可达)。
  • 渗透测试核心应用
    • 存活主机探测ping -c 1 192.168.1.0/24(ICMP Echo Request),但很多目标会禁用 ping,需结合其他方式(如 TCP SYN ping、UDP ping)。
    • ICMP 放大攻击(DDoS):利用开放 ICMP 服务的服务器(如路由器),向其发送伪造源 IP 的 ICMP 请求包,服务器回复的数据包会放大流量(放大倍数 10-100 倍),攻击目标主机。
      • 常用放大器:DNS 服务器(更高效)、NTP 服务器,但 ICMP 是最基础的放大手段。
    • ICMP Redirect 欺骗:伪造路由器发送 ICMP Redirect 包,诱导目标主机将流量转发至攻击者主机(中间人攻击)。

(二)传输层:TCP + UDP 协议(渗透测试核心)

1. TCP 协议(“可靠传输的漏洞陷阱”)
  • 核心特性:面向连接、可靠传输(三次握手、四次挥手、序列号、确认号、滑动窗口)。
  • 必记:三次握手与四次挥手(面试高频)

    plaintext

    三次握手(建立连接):
    1. 客户端 → SYN(seq=x) → 服务器(请求连接)
    2. 服务器 → SYN+ACK(seq=y, ack=x+1) → 客户端(同意连接)
    3. 客户端 → ACK(ack=y+1) → 服务器(连接建立)
    
    四次挥手(断开连接):
    1. 客户端 → FIN(seq=x) → 服务器(请求断开)
    2. 服务器 → ACK(ack=x+1) → 客户端(确认断开请求)
    3. 服务器 → FIN(seq=y) → 客户端(服务器准备断开)
    4. 客户端 → ACK(ack=y+1) → 服务器(连接断开)
    
  • 安全缺陷与渗透利用
    • SYN Flood 攻击(DoS)
      • 原理:客户端发送 SYN 包后不回复第三次 ACK,导致服务器半连接队列溢出,无法接收新连接。
      • 实战场景:渗透测试中验证目标服务器的抗 DoS 能力,工具:hping3 --syn -p 80 目标IP
      • 防护:开启 TCP SYN Cookie(服务器无需维护半连接队列,通过 Cookie 验证客户端合法性)。
    • 序列号预测与会话劫持
      • 原理:TCP 会话的安全性依赖序列号的随机性,若序列号可预测,攻击者可伪造服务器 / 客户端的 ACK 包,劫持现有会话(如 telnet、FTP 等明文传输会话)。
      • 实战步骤:1. 用 Wireshark 捕获目标会话的序列号;2. 预测下一个序列号;3. 发送伪造的 ACK 包接管会话。
      • 注意:现代 TCP 协议(如 Linux 2.6+)采用随机序列号生成算法,该攻击难度增加,但仍需掌握原理(面试高频)。
    • 端口扫描(全连接 / 半连接)
      • 全连接扫描(TCP Connect):完成三次握手,准确性高但易被防火墙检测(工具:nmap -sT 目标IP)。
      • 半连接扫描(TCP SYN):发送 SYN 包后不回复 ACK,隐蔽性强(工具:nmap -sS 目标IP),是渗透测试首选扫描方式。
2. UDP 协议(“无连接的攻击窗口”)
  • 核心特性:无连接、不可靠(无需握手,直接发包),适用于实时传输(如 DNS、DHCP)。
  • 渗透测试应用
    • UDP 端口扫描:发送 UDP 包,若目标返回 “端口不可达”(ICMP Type 3 Code 3)则端口关闭,否则可能开放(工具:nmap -sU 目标IP)。
    • UDP 洪水攻击:向目标 UDP 端口发送大量垃圾包,占用带宽(如攻击 DNS 服务器)。
    • 应用层 UDP 协议漏洞:如 DNS 放大攻击、SNMP 弱口令爆破(SNMP 基于 UDP)。

(三)应用层协议(渗透测试 “主战场”)

应用层协议基于 TCP/UDP 实现,是漏洞最集中的层(80% 以上的渗透漏洞来自应用层),重点掌握以下协议的安全风险:

协议 端口 安全风险 实战利用场景
HTTP/HTTPS 80/443 SQL 注入、XSS、未授权访问 Web 渗透(OWASP Top 10)、SSL 证书欺骗
FTP 21 明文传输密码、弱口令、匿名登录 FTP 爆破(工具:hydra)、文件窃取
SMB 445 永恒之蓝(MS17-010)、弱口令 内网横向移动(metasploit 利用)
Telnet 23 明文传输、弱口令 Telnet 爆破、会话劫持
DNS 53 DNS 缓存投毒、域名劫持、放大攻击 中间人攻击、DDoS 放大
SSH 22 弱口令、版本漏洞(如 Heartbleed) SSH 爆破(工具:medusa)、漏洞利用
关键实战技巧:
  • 用 nmap -sV 目标IP 探测应用层协议版本,结合 searchsploit 协议版本 查找漏洞。
  • 针对 SMB、FTP 等协议,优先尝试弱口令爆破(字典:rockyou.txt),工具:Hydra、Medusa、Metasploit 的brute-force模块。

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐