通信协议完全指南

本文所有内容仅用于网络安全合规学习、渗透测试面试备考、企业授权安全检测。文中涉及的协议原理、安全缺陷、风险分析内容,仅用于安全防御研究与网络安全认知提升。严禁用于未授权测试、非法入侵、网络攻击等违规违法行为,一切违规使用后果由使用者自行承担。


1. 网络层协议

1.1 IP 协议(Internet Protocol)

基础知识

IP 协议是网络层的核心协议,负责将数据包从源地址路由到目标地址,本身不保证可靠传输(无连接、无状态)。

IPv4 头部结构(20字节固定头):

各字段含义(渗透视角重点):

字段 长度 含义 渗透利用点
TTL(Time to Live) 8bit 每经过一个路由器减1,为0时丢包 通过TTL值推断目标OS(Windows初始128,Linux初始64)
Protocol 8bit 上层协议(1=ICMP, 6=TCP, 17=UDP) 协议隧道构造依据
Source Address 32bit 源IP(可伪造!) IP欺骗、DDoS反射攻击的基础
Flags/Fragment Offset --- IP分片控制 分片绕过IDS/IPS检测
Identification 16bit 分片重组标识 空闲扫描(Idle Scan)依赖IPID自增特性

IPv4 vs IPv6 关键差异:

特性 IPv4 IPv6
地址长度 32位 128位
头部大小 20字节(可变) 40字节(固定)
校验和 无(由上层协议负责)
NAT 依赖
ARP 使用 ARP 使用 NDP(邻居发现协议)

CIDR 子网划分速记:

CIDR 子网掩码 可用主机数
/24 255.255.255.0 254
/25 255.255.255.128 126
/16 255.255.0.0 65534
/8 255.0.0.0 16777214

1.2 ICMP 协议(Internet Control Message Protocol)

基础知识

ICMP 用于传递控制消息和错误报告,封装在 IP 数据包内(Protocol=1)。

重要报文类型:

Type Code 含义
0 0 Echo Reply(ping 回复)
3 0-15 Destination Unreachable(目标不可达)
3 3 Port Unreachable(端口不可达,UDP扫描依赖此返回)
5 0-3 Redirect(重定向)
8 0 Echo Request(ping 请求)
11 0 Time Exceeded(TTL超时,traceroute依赖此)

ICMP 数据包结构


2. 传输层协议

2.1 TCP 协议(Transmission Control Protocol)

基础知识

TCP 是面向连接、可靠传输的协议,提供流量控制、拥塞控制、顺序保证。

TCP 头部结构(20字节固定头):

标志位(Flags)详解:

标志 名称 含义 渗透利用
SYN Synchronize 建立连接,携带初始序列号 ISN SYN Flood、端口扫描
ACK Acknowledge 确认收到数据 半开连接检测
FIN Finish 正常关闭连接 FIN Scan 穿透无状态防火墙
RST Reset 强制终止连接 连接重置、端口关闭标志
PSH Push 立即将数据推送给应用层 ---
URG Urgent 紧急数据指针有效 某些IDS绕过技巧

三次握手

  1. 客户端发送SYN包(请求连接);2. 服务端返回SYN+ACK包(同意连接);3. 客户端发送ACK包(确认连接),连接建立。

核心疑问:为什么不能两次握手?防止失效的连接请求占用服务端资源,避免资源浪费。

四次挥手

  1. 客户端发送FIN包(请求断开);2. 服务端返回ACK包(确认断开请求,继续传输剩余数据);3. 服务端传输完成,发送FIN包(告知客户端可断开);4. 客户端返回ACK包,连接彻底断开。

2.2 UDP 协议(User Datagram Protocol)

基础知识

UDP 是无连接、不可靠的传输协议,没有握手、重传、流量控制,开销极低。

UDP 头部结构(仅 8 字节):

使用 UDP 的常见协议:

协议 端口 备注
DNS 53 查询用UDP,区域传输用TCP
DHCP 67/68 地址分配
SNMP 161/162 网络管理
TFTP 69 简单文件传输
NTP 123 时间同步
Syslog 514 日志
RTP 动态 实时音视频

3. 应用层协议

3.1 HTTP / HTTPS

基础知识

HTTP(HyperText Transfer Protocol)是 Web 通信的基础.

端口:HTTP 80(明文)、HTTPS 443(加密)

传输层:均基于TCP协议

核心区别:HTTP明文传输,所有数据可直接抓包窃取;HTTPS=HTTP+TLS/SSL加密,传输数据加密,防中间人窃听、篡改。

核心版本差异

HTTP1.0:短连接,一次请求一次连接,请求完成立即断开,效率极低;

HTTP1.1:默认长连接(Keep-Alive),支持管线化请求,新增Host请求头,支持断点续传,是目前主流版本;

HTTP2.0:基于HTTPS,支持多路复用、二进制帧传输、头部压缩,解决1.1的队头阻塞问题;

HTTP3.0:基于QUIC协议(UDP),无需三次握手,极速连接,抗网络延迟。

HTTP 方法详解:

方法 含义 渗透意义
GET 获取资源 参数在 URL 中,易被日志记录
POST 提交数据 参数在 body 中
PUT 上传/更新资源 若未鉴权,可上传 webshell
DELETE 删除资源 若未鉴权,可删除文件
OPTIONS 查询支持的方法 信息收集,发现危险方法
TRACE 调试回显请求 XST(Cross-Site Tracing)攻击
PATCH 部分更新资源 ---
HEAD 只获取响应头 探测资源是否存在

重要 HTTP 状态码:

状态码 含义 渗透意义
200 OK 请求成功
301 Moved Permanently 永久重定向
302 Found 临时重定向,开放重定向漏洞
400 Bad Request 请求格式错误
401 Unauthorized 需要认证(返回 WWW-Authenticate 头)
403 Forbidden 无权限(已认证但无授权)
404 Not Found 资源不存在
405 Method Not Allowed 方法不被允许
500 Internal Server Error 服务端错误,可能泄露堆栈信息
502 Bad Gateway 反向代理错误

关键 HTTP 请求头:

头部 含义 渗透意义
Host 目标主机名 Host 头注入(缓存投毒、密码重置链接劫持)
Cookie 会话标识 会话劫持
Authorization 认证信息 Basic/Bearer token 泄露
X-Forwarded-For 代理链中真实IP 伪造 IP 绕过 IP 白名单
Referer 来源页面 CSRF 防御绕过,信息泄露
User-Agent 客户端信息 XSS via User-Agent,指纹欺骗
Content-Type 请求体格式 修改为 text/xml 触发 XXE
Transfer-Encoding 传输编码 HTTP 请求走私的核心

Cookie 安全属性:

属性 含义 缺失的风险
HttpOnly 禁止 JS 读取 缺失则 XSS 可窃取 Cookie
Secure 仅 HTTPS 传输 缺失则明文网络可嗅探
SameSite=Strict 跨站请求不携带 缺失或 Lax 则存在 CSRF 风险
Domain 作用域 设置过宽可能跨子域泄露
Expires/Max-Age 有效期 Session Cookie 应无 Expires
TLS/HTTPS 握手流程

TLS 1.2 握手:

复制代码
Client                                          Server
  |                                               |
  |------- ClientHello(支持的密码套件,随机数) -->|
  |<------ ServerHello(选定密码套件,随机数) ----|
  |<------ Certificate(服务器证书)  ------------|
  |<------ ServerKeyExchange(DH参数,可选)------|
  |<------ ServerHelloDone ----------------------|
  |                                               |
  |  验证证书(CA链 + 域名 + 有效期)              |
  |                                               |
  |------- ClientKeyExchange(预主密钥)  -------->|
  |------- ChangeCipherSpec ---------------------->|
  |------- Finished(握手摘要)  ----------------->|
  |<------ ChangeCipherSpec ----------------------|
  |<------ Finished --------------------------------|
  |                                               |
  |============ 加密通信开始 =====================|

TLS 1.3 改进:

  • 握手从 2-RTT 缩减到 1-RTT(0-RTT 重连)
  • 强制前向保密(DHE/ECDHE)
  • 移除不安全算法(RC4, DES, MD5, SHA-1, RSA 密钥交换)
  • 加密更多握手内容

3.2 DNS(Domain Name System)

基础知识

DNS 将域名解析为 IP 地址,默认使用 UDP 53 端口(查询),当响应超过 512 字节时切换到 TCP 53;区域传输(AXFR)固定使用 TCP 53。

DNS 解析流程(递归 + 迭代):

复制代码
客户端
  │
  │─── 递归查询 ──→ 本地 DNS 服务器(Recursive Resolver)
  │                       │
  │                       │─── 迭代查询 ──→ 根服务器(Root, ".")
  │                       │               ← 返回 .com TLD 服务器地址
  │                       │
  │                       │─── 迭代查询 ──→ TLD 服务器(.com)
  │                       │               ← 返回 example.com 权威服务器地址
  │                       │
  │                       │─── 迭代查询 ──→ 权威服务器(example.com)
  │                       │               ← 返回 A 记录(IP 地址)
  │                       │
  │ ←─── 最终结果 ─────────┘
  │                缓存 TTL 时间内不再查询

DNS 记录类型:

记录类型 含义 渗透意义
A 域名 → IPv4 最基础的记录
AAAA 域名 → IPv6 IPv6 资产发现
CNAME 域名别名 子域名劫持的基础(悬空 CNAME)
MX 邮件服务器 发现邮件基础设施
TXT 文本记录 SPF/DKIM/DMARC 配置,可能泄露敏感信息
NS 权威名称服务器 目标使用的 DNS 服务商信息
PTR IP → 域名(反向解析) 资产发现
SOA 区域授权信息 包含管理员邮箱、序列号等
SRV 服务位置记录 发现服务(如 _ldap._tcp, _kerberos._tcp)

DNS 数据包结构(重要字段):

复制代码
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|                      ID                         |  ← 事务ID(16位),响应与查询ID匹配
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|QR|  Opcode |AA|TC|RD|RA|   Z    |   RCODE      |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  • ID:16位随机事务ID,DNS 缓存投毒的攻击面
  • QR:0=查询,1=响应
  • AA:权威回答标志
  • RD:期望递归标志

3.3 SMB(Server Message Block)

基础知识

SMB 是 Windows 文件共享和网络通信的核心协议。

端口:

  • 445/TCP:直接通过 TCP/IP 运行 SMB(现代 Windows 默认)
  • 139/TCP:通过 NetBIOS 会话服务运行 SMB(旧版兼容)
  • 137/UDP、138/UDP:NetBIOS 名称服务和数据报服务

SMB 版本对照:

版本 系统 安全性 特性
SMBv1 Windows XP/2003 极危险(已废弃) 无加密,无签名要求,EternalBlue漏洞
SMBv2 Windows Vista/2008 中等 引入签名、加密协商
SMBv2.1 Windows 7/2008R2 中等 支持大型 MTU
SMBv3 Windows 8/2012 较好 端到端加密,预身份验证完整性
SMBv3.1.1 Windows 10/2016 最好 强制预身份验证哈希

3.4 LDAP(Lightweight Directory Access Protocol)

基础知识

LDAP 是访问和维护分布式目录信息的协议,Active Directory(AD)基于 LDAP 实现。

端口:

  • 389/TCP:明文 LDAP
  • 636/TCP:LDAPS(LDAP over SSL)
  • 3268/TCP:AD 全局目录
  • 3269/TCP:AD 全局目录(SSL)

LDAP 基本操作:

操作 说明
bind 认证(明文或 SASL,匿名 bind 不提供凭证)
search 搜索目录条目
add / delete / modify 增删改条目
compare 比较属性值

LDAP 搜索过滤器语法:

复制代码
(attribute=value)          基本比较
(&(filter1)(filter2))      AND
(|(filter1)(filter2))      OR
(!(filter))                NOT
(attribute=*)              属性存在
(attribute>=value)         大于等于

示例:
(&(objectClass=user)(sAMAccountName=alice))    查找 alice 用户
(&(objectClass=user)(memberOf=CN=Domain Admins,...))  查找域管理员

3.5 Kerberos

基础知识

Kerberos 是 Active Directory 使用的默认认证协议(LDAP 用于授权),基于对称密钥加密,避免密码在网络中传输。

默认端口:88/TCP 和 88/UDP

三个角色:

角色 全称 职责
Client 客户端 发起认证请求的用户/服务
KDC Key Distribution Center 密钥分发中心(域控制器承担此角色)
AS Authentication Service KDC 的一部分,处理初始认证
TGS Ticket Granting Service KDC 的一部分,颁发服务票据
SS Service Server 提供服务的目标服务器

Kerberos 完整认证流程:

复制代码
Client                    KDC (AS)                 KDC (TGS)              Service Server
  │                          │                          │                        │
  │── AS_REQ ──────────────>│                          │                        │
  │   (用户名 + 时间戳,      │                          │                        │
  │    用用户密码哈希加密时间戳)│                          │                        │
  │                          │ 验证用户名                │                        │
  │                          │ 用用户密码哈希解密时间戳    │                        │
  │<── AS_REP ───────────────│                          │                        │
  │   包含两部分:            │                          │                        │
  │   ① TGT(用 krbtgt 密码   │                          │                        │
  │          哈希加密)        │                          │                        │
  │   ② Session Key(用用户   │                          │                        │
  │          密码哈希加密)    │                          │                        │
  │                          │                          │                        │
  │── TGS_REQ ────────────────────────────────────────>│                        │
  │   (TGT + 想要访问的 SPN  │                          │                        │
  │    + 用 Session Key 加密  │                          │                        │
  │      的认证符)           │                          │                        │
  │                          │                          │ 用 krbtgt 密码解密 TGT  │
  │                          │                          │ 验证 TGT 有效           │
  │<── TGS_REP ────────────────────────────────────────│                        │
  │   包含:                  │                          │                        │
  │   ① 服务票据 ST(用目标    │                          │                        │
  │      服务账户密码哈希加密) │                          │                        │
  │   ② 新 Session Key        │                          │                        │
  │                          │                          │                        │
  │── AP_REQ ──────────────────────────────────────────────────────────────────>│
  │   (服务票据 ST)          │                          │                        │
  │                          │                          │ 用自身密码解密 ST        │
  │                          │                          │ 验证客户端身份           │
  │<── AP_REP ─────────────────────────────────────────────────────────────────│
  │   认证成功,可以访问服务    │                          │                        │

票据加密方式对照:

加密类型 ETYPE 值 安全性 破解难度
RC4-HMAC 23 弱(不推荐) 低(Hashcat可快速破解)
AES128-CTS 17 较强
AES256-CTS 18

关键数据结构:

  • TGT(Ticket Granting Ticket) :用 krbtgt 账户密码哈希加密,客户端无法解密,内含 PAC(特权属性证书,包含用户组信息)
  • Service Ticket:用目标服务账户密码哈希加密
  • PAC(Privilege Attribute Certificate):包含用户的 SID、组成员信息,决定授权

3.6 FTP(File Transfer Protocol)

基础知识

FTP 是用于文件传输的应用层协议,完全明文传输(包括用户名和密码)。

端口:

  • 21/TCP:控制连接(命令)
  • 20/TCP:数据连接(主动模式下)

主动模式 vs 被动模式:

复制代码
【主动模式(PORT)】
客户端 → 服务器21 建立控制连接
客户端告诉服务器:"我在 PORT IP:PORT 等你连接"
服务器:20 → 客户端指定PORT  建立数据连接
问题:客户端防火墙会拦截从外部发起的连接

【被动模式(PASV)】
客户端 → 服务器21 建立控制连接
客户端发送 PASV 命令
服务器回复:"请连接我的 IP:随机高端口"
客户端 → 服务器:随机高端口 建立数据连接
优势:数据连接由客户端发起,防火墙友好

常用 FTP 命令:

命令 含义
USER / PASS 认证
LIST / NLST 列出文件
GET / PUT 下载/上传
PASV / PORT 切换传输模式
CWD / PWD 切换/显示目录
QUIT 退出

FTPS vs SFTP 区别(面试常问):

特性 FTPS SFTP
协议基础 FTP + SSL/TLS SSH 子协议
端口 990(隐式)/ 21(显式) 22
命令兼容 保留 FTP 命令 完全不同的命令集
防火墙友好 较差(多端口) 好(单一端口22)

3.7 SSH(Secure Shell)

基础知识

SSH 提供加密的远程管理通道,是运维和渗透中最常用的协议之一。

端口:22/TCP(可配置)

SSH 认证方式:

方式 安全性 说明
密码认证 中等 易受暴力破解,推荐配合强密码和失败锁定
公钥认证 服务端保存公钥,客户端用私钥签名证明身份
基于证书 最高 CA 签发证书,适合大规模部署
GSSAPI(Kerberos) 企业 AD 环境集成

SSH 密钥交换流程(简化):

复制代码
1. 版本协商:双方交换版本字符串
2. 算法协商:双方交换支持的算法列表(密钥交换/加密/MAC/压缩)
3. 服务器身份认证:
   - 客户端用 known_hosts 验证服务器公钥
   - 防止中间人攻击
4. 密钥交换(DH/ECDH):
   - 双方协商出共享密钥(会话密钥)
   - 会话密钥用于后续加密
5. 用户认证(密码或公钥)
6. 会话开始

SSH 重要文件:

文件 位置 说明
私钥 ~/.ssh/id_rsa 权限必须为 600(否则 SSH 拒绝使用)
公钥 ~/.ssh/id_rsa.pub 上传到服务器
授权密钥 ~/.ssh/authorized_keys 服务器保存已授权的公钥列表
已知主机 ~/.ssh/known_hosts 防止中间人,保存已信任的服务器公钥
客户端配置 ~/.ssh/config 连接快捷方式和选项
服务端配置 /etc/ssh/sshd_config 服务端安全配置

3.9 SNMP(Simple Network Management Protocol)

基础知识

SNMP 用于网络设备(路由器、交换机、服务器)的监控和管理。

端口:

  • 161/UDP:SNMP 查询(Manager → Agent)
  • 162/UDP:SNMP Trap(Agent → Manager,主动上报告警)

版本差异:

版本 认证 加密 安全性
SNMPv1 Community String(明文) 极差
SNMPv2c Community String(明文) 极差
SNMPv3 用户名 + 密码(哈希) 支持 AES/DES 合理

Community String:

  • public:只读(最常见的默认值)
  • private:读写(常见默认值,权限极高!)
  • 相当于 v1/v2c 的"密码",但完全明文传输

MIB(Management Information Base):

MIB 是设备信息的层级数据库,使用 OID(对象标识符)索引:

复制代码
1.3.6.1.2.1.1.1.0  → sysDescr(系统描述,含OS版本)
1.3.6.1.2.1.1.5.0  → sysName(主机名)
1.3.6.1.2.1.25.4.2.1.2  → hrSWRunName(运行中的进程)
1.3.6.1.2.1.4.34.1.3    → IP地址表
1.3.6.1.4.1.77.1.2.25   → Windows用户列表(仅Windows)
1.3.6.1.2.1.17.4.3.1.2  → MAC地址表

3.10 SMTP / POP3 / IMAP

基础知识

SMTP(发邮件):25(明文)、465(加密);

POP3(收邮件):110(明文)、995(加密);

IMAP(邮件同步):143(明文)、993(加密)

端口对照:

协议 明文端口 加密端口 用途
SMTP 25(服务器间)/ 587(客户端提交) 465(SMTPS) 发送邮件
POP3 110 995 接收邮件(下载后删除服务器)
IMAP 143 993 接收邮件(保留在服务器,多设备同步)

SMTP 重要命令:

命令 功能 渗透意义
HELO / EHLO 打招呼,EHLO 返回服务器支持的扩展 版本和功能信息
VRFY 验证邮件地址是否存在 用户名枚举!
EXPN 展开邮件列表 用户名/群组枚举!
RCPT TO 指定收件人 枚举有效用户(根据响应码判断)
AUTH 认证 暴力破解目标

SMTP 响应码:

复制代码
220 Service ready
250 OK(VRFY 确认地址存在时返回 250)
251 User not local(用户存在但在其他服务器)
252 Cannot VRFY(服务器禁用了 VRFY 但邮件可能仍会被接受)
550 No such user(用户不存在)

# 使用 swaks 发送伪造邮件
swaks --from ceo@company.com --to victim@company.com \
  --server mail.company.com \
  --header "Subject: Urgent" \
  --body "Please wire $50,000 to..."

4. SPF / DKIM / DMARC(邮件安全机制)

机制 全称 作用 存储在
SPF Sender Policy Framework 声明哪些 IP 可以发送该域的邮件 DNS TXT 记录
DKIM DomainKeys Identified Mail 对邮件头/体进行数字签名,防篡改 DNS TXT 记录(公钥)
DMARC Domain-based Message Authentication 告诉收件方 SPF/DKIM 失败时的处理策略 DNS TXT 记录

3.11 Telnet 远程登录协议

基础知识

Telnet(Teletype Network)是最早的远程登录协议,提供双向的、面向字节流的交互式终端会话。它是 SSH 出现之前 Unix/网络设备管理的标准方式,目前虽已基本被 SSH 取代,但在老旧设备、工控系统(ICS/SCADA)、嵌入式设备和 IoT 场景中仍大量存在。

端口:23/TCP(默认,部分设备使用其他端口)

最核心的缺陷:完全明文传输。 用户名、密码、所有命令输出在网络中都以明文流动,同网段任何人均可嗅探。

暴力破解:

复制代码
# Hydra
hydra -l admin -P /usr/share/wordlists/rockyou.txt telnet://target

# 带用户名字典
hydra -L users.txt -P passwords.txt telnet://target

# Medusa
medusa -h target -u admin -P passwords.txt -M telnet

# Nmap NSE
nmap -p 23 --script=telnet-brute --script-args userdb=users.txt,passdb=pass.txt target

3.12 DHCP(Dynamic Host Configuration Protocol)

基础知识

DHCP 负责自动为网络中的主机分配 IP 地址及其他网络参数,基于 UDP 协议运行,是局域网的基础服务。DHCP 的无认证机制使其成为内网渗透的重要攻击面。

端口:

  • 67/UDP:DHCP 服务器监听端口
  • 68/UDP:DHCP 客户端监听端口

3.13 MQTT/MQTTS(物联网核心协议)

基于TCP传输层 ,属于应用层协议,是目前物联网设备、智能家居、工业终端最主流的通信协议。

MQTT:1883端口,明文TCP传输,所有设备通信数据、认证信息可直接抓包窃取,无安全防护;

MQTTS:8883端口,基于TLS加密传输,杜绝中间人窃听、篡改,是生产环境标准配置。


4. 无线协议

4.1 WEP(Wired Equivalent Privacy)

完全不安全,已废弃。

致命缺陷:使用 RC4 流密码,IV(Initialization Vector)仅 24 位,IV 空间只有 16,777,216 种,在繁忙网络中几小时内就会出现 IV 重用,导致密钥流复用,可以统计分析破解。

复制代码
# 破解流程(需要 Aircrack-ng 套件)
airmon-ng start wlan0                     # 开启监听模式
airodump-ng wlan0mon                      # 扫描 AP
airodump-ng -c CHANNEL --bssid BSSID -w capture wlan0mon  # 捕获数据包
# 加速 IV 收集:
aireplay-ng -3 -b BSSID -h CLIENT wlan0mon  # ARP 重放攻击
# 破解(至少需要 20,000-40,000 个 IV)
aircrack-ng capture*.cap

4.2 WPA2(Wi-Fi Protected Access 2)

认证方式:

  • WPA2-Personal(PSK):预共享密钥,适用于家庭/小企业
  • WPA2-Enterprise(802.1X):RADIUS 服务器认证,适用于企业

四次握手(PTK 协商):

复制代码
AP(Authenticator)                    Client(Supplicant)
      │                                      │
      │─── EAPOL Message 1 ──────────────>   │  AP发送 ANonce(随机数)
      │                                      │
      │                                      │  Client 生成 SNonce
      │                                      │  PTK = PRF(PMK + ANonce + SNonce + MAC_AP + MAC_Client)
      │                                      │  MIC = HMAC-SHA1(KCK, 握手消息)
      │<── EAPOL Message 2 ─────────────────│  Client发送 SNonce + MIC
      │                                      │
      │  AP 计算 PTK 并验证 MIC              │
      │                                      │
      │─── EAPOL Message 3 ──────────────>   │  AP 发送 GTK(加密)+ MIC
      │<── EAPOL Message 4 ─────────────────│  Client 确认

PTK(Pairwise Transient Key)组成:

  • KCK:Key Confirmation Key(验证 MIC)
  • KEK:Key Encryption Key(加密 GTK)
  • TK:Temporal Key(实际数据加密用)

PMK = PBKDF2(passphrase, SSID, 4096, 256)

因为 PMK 是 WiFi 密码的函数,四次握手可以被离线爆破:

复制代码
# 捕获握手包
airodump-ng -c CHANNEL --bssid BSSID -w capture wlan0mon
# 强制客户端重连(获取握手包)
aireplay-ng -0 5 -a BSSID -c CLIENT wlan0mon

# 破解
aircrack-ng -w rockyou.txt capture.cap
hashcat -m 22000 capture.hc22000 rockyou.txt   # hashcat 格式

# 转换格式
hcxpcapngtool -o capture.hc22000 capture.pcap

4.3 WPA3

主要改进:

  • 使用 SAE(Simultaneous Authentication of Equals / Dragonfly)替代 PSK
  • 前向保密:即使后来密码泄露,历史流量也无法解密
  • 防止离线字典攻击(每次认证需要在线交互)
  • 增强开放网络保护(OWE,Opportunistic Wireless Encryption)

降级攻击:若 AP 同时支持 WPA2 和 WPA3,可以建立仅支持 WPA2 的伪造 AP,诱使客户端以 WPA2 连接,再进行 WPA2 攻击。


5. 工具速查表

类别 工具 主要用途
抓包分析 Wireshark 图形化协议分析,支持几乎所有协议
抓包分析 tcpdump 命令行抓包,tcpdump -i eth0 -w out.pcap
端口扫描 Nmap 端口扫描、服务版本探测、OS识别、NSE脚本
端口扫描 Masscan 超高速端口扫描(百万级/秒),masscan -p 0-65535 --rate=10000 target
Web 测试 Burp Suite HTTP(S) 抓包、改包、重放、扫描
Web 测试 OWASP ZAP 开源 Web 漏扫
SQL注入 sqlmap 自动化 SQL 注入检测与利用
SMB/AD Impacket psexec/smbclient/secretsdump/GetUserSPNs 等
SMB/AD CrackMapExec 内网批量扫描与利用
SMB/AD BloodHound AD 攻击路径图形化分析
SMB/AD Mimikatz Windows 凭证提取(哈希/明文/票据)
SMB/AD Rubeus Kerberos 票据操作
哈希爆破 Hashcat GPU 加速哈希破解
哈希爆破 John the Ripper 通用哈希破解
密码喷射 Hydra 多协议暴力破解(SSH/FTP/HTTP/SMB等)
DNS dig DNS 查询调试
DNS DNSrecon DNS 信息收集和枚举
DNS Subfinder / Amass 子域名枚举
无线 Aircrack-ng WEP/WPA2 破解
无线 hcxdumptool WPA2 PMKID 攻击
SNMP snmpwalk / onesixtyone SNMP 枚举和 community string 猜解
中间人 Responder LLMNR/NBT-NS 投毒,捕获 NTLM 哈希
中间人 Bettercap 多协议中间人攻击框架
综合框架 Metasploit 漏洞利用框架

6. 面试高频题目

Q: 描述 TCP 三次握手,以及为什么是三次而不是两次?

A: 两次握手只能确认服务器收到了客户端的 SYN,但无法确认客户端能收到服务器的响应,客户端的接收能力未被确认。三次握手中,第三步 ACK 使得服务器确认客户端可以正常接收,双方的发送和接收能力都被验证。此外,三次握手防止了历史连接请求的误触发(网络延迟的旧 SYN 到达时,服务器可以收到客户端的 RST 而放弃)。

Q: SYN Scan 为什么比 Connect Scan 更隐蔽?

A: SYN Scan 发送 SYN 后,收到 SYN+ACK 即回 RST,不完成三次握手,应用层日志(如 Apache 访问日志)不会记录此连接;而 Connect Scan 完成完整三次握手,会被目标服务记录。但现代 IDS/防火墙可以检测到大量 RST 或半开连接。

Q: Pass-the-Hash 和 Pass-the-Ticket 有什么区别?

A: PTH 利用 NTLM 认证机制,使用哈希直接认证,绕过了知道明文密码的需求,适用于支持 NTLM 的服务(SMB、WMI、RDP-Restricted Admin 模式)。PTT 则是 Kerberos 环境下的手法,将有效的 TGT 或 Service Ticket 注入当前会话,以持票人身份访问服务,不涉及 NTLM 哈希。

Q: Kerberoasting 和 AS-REP Roasting 的区别?

A: Kerberoasting 目标是有 SPN 的服务账户,需要有效的域账户,请求 Service Ticket(用服务账户密码哈希加密)再离线爆破;AS-REP Roasting 目标是禁用了预认证的用户账户,不需要任何域账户,返回的 AS_REP 包含用该用户密码哈希加密的数据可被离线爆破。

Q: 如何判断一个 HTTPS 站点是否安全?

需要检查:TLS 版本(>= 1.2,推荐 1.3)、密码套件(避免 RC4/DES/MD5/SHA1/RSA密钥交换)、证书有效期和 CA 链、HSTS 头(防降级)、Certificate Transparency 日志、SAN 字段覆盖所有使用的域名。

Q: DNS 隧道如何检测和防御?

检测手段:监控异常高频的 DNS 查询、异常长的子域名(Base32/Base64 编码)、非标准查询类型(NULL/TXT/CNAME)、单个域名的查询量异常。防御:DNS 防火墙、限制解析域白名单、部署 DNS 流量分析(如 Zeek/Bro)。


本文面向渗透测试职位备考,所有内容仅用于合法授权的安全测试和学习目的。

相关推荐
Zyed2 小时前
[STM32]Day11-Part2硬件实现SPI读写W25Q64
stm32·单片机·嵌入式硬件
渡码桑2 小时前
STM32 TinyML实战2026:3步在单片机上跑通AI推理——从TensorFlow到Edge Impulse的嵌入式进化
人工智能·stm32·单片机
HAPPY酷2 小时前
软件模拟 I2C vs 硬件 I2C:核心异同与工程选型指南
stm32·单片机·嵌入式硬件·物联网·microsoft
芯岭技术2 小时前
MH32F103A单片机 主频216MHz,硬件兼容STM32,可以用ST的库开发
stm32·单片机·嵌入式硬件
Szime2 小时前
AD9653 国产替代怎么选?四通道 16 位 125MSPS ADC 选型参考
嵌入式硬件·fpga开发
咖喱年糕2 小时前
KEIL5 编译错误解决:MDK 5.37 及以上版本添加 AC5(ARM Compiler 5)编译器
arm开发·单片机·keil·嵌入式软件·ac5
潜创微科技3 小时前
2026网线延长器服务适配方案指南
嵌入式硬件
Zyed3 小时前
[STM32]Day10-Part2硬件I2C读写MPU6050
stm32·单片机·嵌入式硬件
泡泡糖的中文规格书3 小时前
精准解读 UMW DS18B20:一份经过深度校对的数字温度传感器中文手册
嵌入式硬件·规格说明书·硬件设计·中文数据手册