TCP/IP 协议 (上)
摘要:TCP/IP协议是网络安全的核心基础,渗透测试主要利用其分层设计中的安全缺陷。网络层(IP/ICMP)存在IP欺骗、ICMP放大攻击等风险;传输层(TCP/UDP)的SYN Flood、会话劫持及端口扫描是渗透重点;应用层(HTTP/SMB等)集中了80%以上漏洞。理解协议原理才能有效使用工具(如nmap、metasploit)进行端口扫描、漏洞利用和流量分析。渗透本质是"利用协议
·
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(分片发包)。
- 工具:
- IP 源地址欺骗:伪造数据包的源 IP(如伪造服务器 IP 发起攻击),常用于绕过基于 IP 的访问控制(如防火墙白名单)。
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),是渗透测试首选扫描方式。
- 全连接扫描(TCP Connect):完成三次握手,准确性高但易被防火墙检测(工具:
- SYN Flood 攻击(DoS):
2. UDP 协议(“无连接的攻击窗口”)
- 核心特性:无连接、不可靠(无需握手,直接发包),适用于实时传输(如 DNS、DHCP)。
- 渗透测试应用:
- UDP 端口扫描:发送 UDP 包,若目标返回 “端口不可达”(ICMP Type 3 Code 3)则端口关闭,否则可能开放(工具:
nmap -sU 目标IP)。 - UDP 洪水攻击:向目标 UDP 端口发送大量垃圾包,占用带宽(如攻击 DNS 服务器)。
- 应用层 UDP 协议漏洞:如 DNS 放大攻击、SNMP 弱口令爆破(SNMP 基于 UDP)。
- UDP 端口扫描:发送 UDP 包,若目标返回 “端口不可达”(ICMP Type 3 Code 3)则端口关闭,否则可能开放(工具:
(三)应用层协议(渗透测试 “主战场”)
应用层协议基于 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模块。
更多推荐


所有评论(0)