公开文集
0x01 信安之路安全产品
0x01 SRC 资产管理系统
001 企业资产有那些?
002 订阅最新 POC
003 IP 域名关联查询
004 公益权重数据
0x02 安全学习成长平台
001 成长平台视频参考
100 百分成就-学习心得-TOP 21 小伙伴
101 百分成就-学习心得-不想起床
102 百分成就-学习心得-不驚
103 百分成就-学习心得-aiDa0
104 百分成就-学习心得-起十二
105 百分成就-学习心得-Eyes
201 你为什么选择信安之路!
0x03 安全知识库
001 蜜罐运营专辑
0x04 自研蜜罐系统
0x02 Web 漏洞案例库
0x01 配置安全
001 header 安全配置
002 首页信息泄露
003 HTTP 访问控制 (CORS)
0x02 安全控制缺失
001 速率限制绕过
0x03 应用逻辑
0x03 小程序漏洞案例库
第一章:小程序渗透基础
1.1 微信小程序反编译与动态调试
1.2 微信小程序强制开启开发者模式
0x04 星球讨论知识问答
信息安全入门
学习方向选择
学习经验分享
安全产品研发
代码审计
物联网安全
APT
安全防御建设
安全建设经验
数据泄露监控
网络安全
终端安全
主机安全
产品安全
安全意识
数据安全
内部资产管理
安全管理
应急响应
网络安全架构
安全运营
业务安全
运维安全
渗透测试技术
信息收集
EXP/POC
web 测试
APP测试
内网渗透
0x05 代码审计小挑战
01 前端安全问题
101 script 标签下的 XSS
102 消息事件引发的 DOM XSS
104 常规评论 xss 漏洞
105 页面开放重定向漏洞
106 部分过滤的 xss 漏洞绕过
107 基于 DOM 的 XSS
108 CORS 配置错误
109 退出登录出 XSS
110 URL 重定向漏洞
111 CSRF 漏洞利用
112 JavaScript 代码注入
113 xss 绕过括号和反引号检测
02 文件操作类问题
201 Django 任意文件读取漏洞
202 php 后缀黑名单验证绕过上传
203 jsp 任意文件上传
204 jsp 代码中的 SSRF 漏洞
205 jsp 目录穿越漏洞
206 PHP文件包含漏洞
207 Django 本地文件包含
208 文件包含功能绕过
209 SSRF 跨服务端请求伪造
210 本地文件包含漏洞 windows
211 目录穿越漏洞
212 文件上传绕过
213 php 文件包含漏洞
03 注入类问题
301 由 SQL 注入引发的命令执行
302 php8 XML 实体注入
303 正则问题导致验证绕过
304 XPath 注入
305 典型认证 SQL 注入
306 数字型 SQL 注入
307 主机头(host header)注入
308 LDAP 注入
309 典型的万能密码漏洞
310 Ldap 注入漏洞代码
04 命令执行类问题
401 调用第三方工具时被劫持
402 原型污染导致命令执行
403 php array_map 代码执行
404 命令执行绕过检测
405 SSTI 模板注入
406 文件名注入 RCE
407 无防护命令执行
408 python eval 注入
409 绕过多个黑名单命令
05 业务逻辑类问题
501 django 认证 jwt 未验证 token
502 绕过权限检测执行命令
503 密码找回邮箱地址大小写绕过
504 DNS 重绑定问题
505 权限比对逻辑问题
506 越权访问其他用户的记录
507 用户注册问题
508 用户权限验证逻辑问题
509 PHP 判断两个变量相等逻辑问题
06 反序列化类问题
601 php 反序列化漏洞
602 python 反序列化漏洞
09 C语言问题
901 c 条件竞争
902 缓冲区溢出
903 通配符注入提权
0x99 AI 教你学安全
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-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-185-漏洞扫描技术详解
# Day 213: 漏洞扫描技术详解 > 渗透测试系列第 3 天 | 预计阅读时间:55 分钟 | 难度:★★★★☆ --- ## 清单 目录 1. [漏洞扫描概述](#漏洞扫描概述) 2. [漏洞扫描与渗透测试的关系](#漏洞扫描与渗透测试的关系) 3. [漏洞扫描原理](#漏洞扫描原理) 4. [Nmap 漏洞扫描](#nmap 漏洞扫描) 5. [Nessus 漏洞扫描器](#nessus 漏洞扫描器) 6. [OpenVAS 开源扫描器](#openvas 开源扫描器) 7. [Nuclei 现代化扫描器](#nuclei 现代化扫描器) 8. [Web 应用漏洞扫描](#web 应用漏洞扫描) 9. [数据库漏洞扫描](#数据库漏洞扫描) 10. [漏洞扫描实战案例](#漏洞扫描实战案例) 11. [漏洞扫描最佳实践](#漏洞扫描最佳实践) 12. [总结与思考](#总结与思考) 13. [参考资料](#参考资料) --- ## 漏洞扫描概述 ### 什么是漏洞扫描 漏洞扫描(Vulnerability Scanning)是使用自动化工具对目标系统进行系统性检测,识别已知安全漏洞、配置错误和弱点的过程。 **漏洞扫描的核心定义**: ``` ┌─────────────────────────────────────────────────────────────┐ │ 漏洞扫描定义 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ 漏洞扫描 = 资产发现 + 漏洞检测 + 风险评估 + 报告生成 │ │ │ │ 关键要素: │ │ 1. 资产发现(Asset Discovery) │ │ - 识别存活主机 │ │ - 发现开放端口 │ │ - 识别运行服务 │ │ - 识别操作系统 │ │ │ │ 2. 漏洞检测(Vulnerability Detection) │ │ - 匹配已知漏洞(CVE) │ │ - 检测配置错误 │ │ - 识别弱密码策略 │ │ - 发现补丁缺失 │ │ │ │ 3. 风险评估(Risk Assessment) │ │ - CVSS 评分 │ │ - 可利用性分析 │ │ - 业务影响评估 │ │ │ │ 4. 报告生成(Reporting) │ │ - 漏洞清单 │ │ - 修复建议 │ │ - 合规性报告 │ │ │ └─────────────────────────────────────────────────────────────┘ ``` ### 漏洞扫描类型 **按扫描方式分类**: ``` ┌─────────────────────────────────────────────────────────────┐ │ 漏洞扫描分类 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ 主动扫描(Active Scanning) │ │ ├── 定义:直接向目标发送探测包 │ │ ├── 优势:准确、详细 │ │ ├── 劣势:可能被检测、影响性能 │ │ ├── 工具:Nmap、Nessus、OpenVAS │ │ └── 适用:授权测试、内部评估 │ │ │ │ 被动扫描(Passive Scanning) │ │ ├── 定义:监听网络流量分析漏洞 │ │ ├── 优势:隐蔽、不影响业务 │ │ ├── 劣势:覆盖有限、依赖流量 │ │ ├── 工具:Nessus Passive、PassiveTotal │ │ └── 适用:持续监控、生产环境 │ │ │ │ 认证扫描(Credentialed Scanning) │ │ ├── 定义:使用系统凭证进行深度扫描 │ │ ├── 优势:发现本地漏洞、配置问题 │ │ ├── 劣势:需要凭证、权限要求高 │ │ ├── 检测:补丁状态、注册表、本地策略 │ │ └── 适用:内部系统、深度评估 │ │ │ │ 非认证扫描(Non-Credentialed Scanning) │ │ ├── 定义:无需凭证的外部扫描 │ │ ├── 优势:简单、快速 │ │ ├── 劣势:只能发现外部漏洞 │ │ ├── 检测:开放端口、服务版本、外部漏洞 │ │ └── 适用:外部评估、初步扫描 │ │ │ └─────────────────────────────────────────────────────────────┘ ``` **按扫描目标分类**: | 类型 | 目标 | 工具 | |------|------|------| | **网络扫描** | 网络设备、服务器 | Nmap、Nessus | | **Web 扫描** | Web 应用、API | Burp Suite、OWASP ZAP、Nuclei | | **数据库扫描** | 数据库系统 | SQLMap、DbProtect | | **主机扫描** | 操作系统配置 | Lynis、CIS-CAT | | **容器扫描** | Docker、K8s | Trivy、Clair | | **云扫描** | 云资源配置 | Prowler、ScoutSuite | --- ## 漏洞扫描与渗透测试的关系 ### 区别与联系 很多人混淆漏洞扫描和渗透测试,两者有本质区别: ``` ┌─────────────────────────────────────────────────────────────┐ │ 漏洞扫描 vs 渗透测试 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ 漏洞扫描: │ │ ├── 目标:发现尽可能多的漏洞 │ │ ├── 方法:自动化扫描 │ │ ├── 深度:表面检测 │ │ ├── 误报:较高(需人工验证) │ │ ├── 时间:数小时 │ │ ├── 成本:低 │ │ └── 输出:漏洞列表 + 修复建议 │ │ │ │ 渗透测试: │ │ ├── 目标:验证漏洞可利用性,评估业务影响 │ │ ├── 方法:人工分析 + 工具 + 创意 │ │ ├── 深度:深度利用,链式攻击 │ │ ├── 误报:低(确认可利用) │ │ ├── 时间:数天至数周 │ │ ├── 成本:高 │ │ └── 输出:攻击路径 + 业务影响分析 + 完整报告 │ │ │ └─────────────────────────────────────────────────────────────┘ ``` **我的观点**: ``` 漏洞扫描是渗透测试的前置步骤,但不能替代渗透测试。 最佳实践流程: 1. 漏洞扫描 → 发现潜在漏洞 2. 人工分析 → 排除误报、评估优先级 3. 渗透测试 → 验证关键漏洞、评估业务影响 4. 修复建议 → 提供可执行的修复方案 5. 复测验证 → 确认修复效果 企业安全建设: - 漏洞扫描:每周/每月定期执行(持续监控) - 渗透测试:每年 1-2 次(深度评估) ``` ### 漏洞扫描在渗透测试中的位置 ``` ┌─────────────────────────────────────────────────────────────┐ │ 漏洞扫描在 PTES 流程中的位置 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ PTES 阶段 1: 前期交互 │ │ ↓ │ │ PTES 阶段 2: 情报收集 │ │ ↓ │ │ PTES 阶段 3: 威胁建模 │ │ ↓ │ │ PTES 阶段 4: 漏洞分析 ←── 漏洞扫描在此阶段 │ │ ├── 自动化扫描(Nessus、Nuclei) │ │ ├── 手动验证(排除误报) │ │ └── 优先级排序(CVSS 评分) │ │ ↓ │ │ PTES 阶段 5: 漏洞利用 │ │ ↓ │ │ PTES 阶段 6: 后渗透攻击 │ │ ↓ │ │ PTES 阶段 7: 报告 │ │ │ └─────────────────────────────────────────────────────────────┘ ``` --- ## 漏洞扫描原理 ### 扫描技术原理 **端口扫描技术**: ``` ┌─────────────────────────────────────────────────────────────┐ │ 端口扫描技术 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ TCP SYN 扫描(半开放扫描) │ │ ├── 过程:发送 SYN → 收到 SYN/ACK → 发送 RST │ │ ├── 特点:不建立完整连接、速度快 │ │ ├── 检测:可能被 IDS 检测 │ │ └── 命令:nmap -sS target │ │ │ │ TCP Connect 扫描(全连接扫描) │ │ ├── 过程:三次握手建立完整连接 │ │ ├── 特点:准确、但慢、易被检测 │ │ └── 命令:nmap -sT target │ │ │ │ UDP 扫描 │ │ ├── 过程:发送 UDP 包 → 分析响应 │ │ ├── 特点:慢(UDP 无连接)、易被过滤 │ │ └── 命令:nmap -sU target │ │ │ │ FIN/XMAS/NULL 扫描 │ │ ├── 过程:发送异常标志位包 │ │ ├── 特点:绕过简单防火墙 │ │ └── 命令:nmap -sF/-sX/-sN target │ │ │ └─────────────────────────────────────────────────────────────┘ ``` **漏洞检测原理**: ``` ┌─────────────────────────────────────────────────────────────┐ │ 漏洞检测原理 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ 1. 版本匹配(Version Matching) │ │ ├── 识别服务版本(如:Apache 2.4.49) │ │ ├── 匹配 CVE 数据库 │ │ ├── 优点:快速 │ │ └── 缺点:可能误报(打了补丁但未改版本号) │ │ │ │ 2. 特征检测(Signature Detection) │ │ ├── 发送特定探测包 │ │ ├── 匹配响应特征 │ │ ├── 优点:准确 │ │ └── 缺点:需要持续更新特征库 │ │ │ │ 3. 行为分析(Behavior Analysis) │ │ ├── 发送异常输入 │ │ ├── 观察系统行为 │ │ ├── 优点:可发现未知漏洞 │ │ └── 缺点:可能影响系统稳定性 │ │ │ │ 4. 凭证验证(Credentialed Verification) │ │ ├── 登录系统检查配置 │ │ ├── 检查补丁状态 │ │ ├── 优点:最准确 │ │ └── 缺点:需要凭证 │ │ │ └─────────────────────────────────────────────────────────────┘ ``` ### CVSS 评分系统 CVSS(Common Vulnerability Scoring System)是漏洞严重性评分标准。 **CVSS 3.1 指标**: ``` ┌─────────────────────────────────────────────────────────────┐ │ CVSS 3.1 评分指标 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ 基础指标(Base Metrics)- 漏洞固有特性 │ │ ├── 攻击向量(AV) │ │ │ ├── Network (N) - 网络攻击:0.85 │ │ │ ├── Adjacent (A) - 相邻网络:0.62 │ │ │ ├── Local (L) - 本地:0.55 │ │ │ └── Physical (P) - 物理:0.20 │ │ ├── 攻击复杂度(AC) │ │ │ ├── Low (L) - 低复杂度:0.77 │ │ │ └── High (H) - 高复杂度:0.44 │ │ ├── 权限要求(PR) │ │ │ ├── None (N) - 无需权限:0.85 │ │ │ ├── Low (L) - 低权限:0.62 │ │ │ └── High (H) - 高权限:0.27 │ │ ├── 用户交互(UI) │ │ │ ├── None (N) - 无需交互:0.85 │ │ │ └── Required (R) - 需交互:0.62 │ │ ├── 机密性影响(C) │ │ │ ├── None (N): 0.00 │ │ │ ├── Low (L): 0.22 │ │ │ └── High (H): 0.56 │ │ ├── 完整性影响(I) │ │ │ ├── None (N): 0.00 │ │ │ ├── Low (L): 0.22 │ │ │ └── High (H): 0.56 │ │ └── 可用性影响(A) │ │ ├── None (N): 0.00 │ │ ├── Low (L): 0.22 │ │ └── High (H): 0.56 │ │ │ │ 评分等级: │ │ ├── 0.0: None(无) │ │ ├── 0.1-3.9: Low(低危) │ │ ├── 4.0-6.9: Medium(中危) │ │ ├── 7.0-8.9: High(高危) │ │ └── 9.0-10.0: Critical(严重) │ │ │ └─────────────────────────────────────────────────────────────┘ ``` --- ## Nmap 漏洞扫描 ### Nmap 基础扫描 **Nmap 是渗透测试人员的瑞士军刀**,虽然主要是端口扫描器,但也可用于漏洞检测。 ```bash # 基础扫描 $ nmap target.com # 综合扫描(推荐起点) $ nmap -sS -sV -O -sC target.com # -sS: TCP SYN 扫描 # -sV: 版本检测 # -O: 操作系统检测 # -sC: 默认脚本 # 全端口扫描 $ nmap -p- target.com # 快速扫描 $ nmap -F target.com # 指定端口 $ nmap -p 80,443,8080,22,3306 target.com # 端口范围 $ nmap -p 1-1000 target.com # 扫描整个网段 $ nmap -sS 192.168.1.0/24 # 扫描多个目标 $ nmap target1.com target2.com 192.168.1.0/24 # 从文件读取目标 $ nmap -iL targets.txt ``` ### Nmap 脚本引擎(NSE) Nmap 脚本引擎是强大的漏洞检测工具。 **脚本分类**: | 类别 | 说明 | 示例 | |------|------|------| | **auth** | 认证相关 | `nmap --script=auth target` | | **broadcast** | 广播发现 | `nmap --script=broadcast` | | **brute** | 暴力破解 | `nmap --script=brute target` | | **default** | 默认脚本 | `nmap -sC target` | | **discovery** | 服务发现 | `nmap --script=discovery target` | | **dos** | DoS 检测(慎用) | `nmap --script=dos target` | | **exploit** | 漏洞利用 | `nmap --script=exploit target` | | **external** | 外部查询 | `nmap --script=external target` | | **intrusive** | 侵入性脚本 | `nmap --script=intrusive target` | | **malware** | 恶意软件检测 | `nmap --script=malware target` | | **safe** | 安全脚本 | `nmap --script=safe target` | | **vuln** | 漏洞检测 | `nmap --script=vuln target` | **漏洞扫描脚本**: ```bash # 使用 vuln 类别扫描 $ nmap --script=vuln target.com # 使用特定漏洞脚本 $ nmap --script=http-vuln-cve2017-5638 target.com # Struts2 $ nmap --script=http-vuln-cve2014-3704 target.com # Drupal $ nmap --script=smb-vuln-ms17-010 target.com # EternalBlue $ nmap --script=smb-vuln-ms08-067 target.com # Conficker # 多个脚本组合 $ nmap --script=vuln,exploit target.com # 排除特定脚本 $ nmap --script=vuln --script-args=unsafe=0 target.com # 脚本参数 $ nmap --script=http-vuln-* --script-args=http.useragent="Mozilla" target.com ``` **常用漏洞检测脚本**: ```bash # Web 应用漏洞 $ nmap --script=http-sql-injection target.com $ nmap --script=http-xssed target.com $ nmap --script=http-vuln-cve2017-5638 target.com # SMB 漏洞 $ nmap --script=smb-vuln-ms17-010 target.com $ nmap --script=smb-vuln-ms08-067 target.com $ nmap --script=smb-vuln-regsvc-dos target.com # 数据库漏洞 $ nmap --script=mysql-vuln-* target.com $ nmap --script=ms-sql-* target.com # SSL/TLS 漏洞 $ nmap --script=ssl-heartbleed target.com $ nmap --script=ssl-poodle target.com $ nmap --script=ssl-dh-params target.com ``` ### Nmap 输出与报告 ```bash # 正常输出 $ nmap -oN output.txt target.com # XML 输出(便于解析) $ nmap -oX output.xml target.com # Grep 输出(便于处理) $ nmap -oG output.gnmap target.com # 所有格式 $ nmap -oA output target.com # 解析 XML 输出 $ xmllint --format output.xml # 使用 nmap-parse 脚本 $ python3 parse_nmap.py output.xml ``` **Nmap 报告模板**: ```markdown # Nmap 扫描报告 ## 扫描信息 - 目标:target.com - 时间:2024-01-15 10:00 - 命令:nmap -sS -sV -O -sC --script=vuln target.com ## 主机发现 - 存活主机:X 台 - 关闭主机:X 台 ## 开放端口汇总 | 端口 | 服务 | 版本 | 风险 | |------|------|------|------| | 22 | SSH | OpenSSH 7.6 | 中 | | 80 | HTTP | Apache 2.4.49 | 高 | | 443 | HTTPS | Apache 2.4.49 | 高 | ## 漏洞发现 ### CVE-2021-41773 (Apache 路径遍历) - CVSS: 7.5 (高危) - 影响:Apache 2.4.49 - 建议:升级到 2.4.50+ ``` --- ## Nessus 漏洞扫描器 ### Nessus 概述 Nessus 是全球最流行的商业漏洞扫描器,由 Tenable 公司开发。 **Nessus 版本**: | 版本 | 价格 | 特点 | 适用场景 | |------|------|------|----------| | **Nessus Essentials** | 免费 | 16 个 IP、基础插件 | 个人学习、小网络 | | **Nessus Professional** | $3,990/年 | 无限 IP、全部插件 | 专业渗透测试 | | **Nessus Enterprise** | 定制 | 企业级功能 | 大型企业 | ### Nessus 安装与配置 ```bash # 下载 Nessus(需要注册) $ wget https://www.tenable.com/downloads/api/v2/pages/nessus/files/Nessus-10.x.x-debian10_amd64.deb # 安装 $ sudo dpkg -i Nessus-10.x.x-debian10_amd64.deb # 启动服务 $ sudo systemctl start nessusd # 访问 Web 界面 https://localhost:8834/ # 初始化配置 1. 选择版本(Essentials/Professional) 2. 获取激活码(https://www.tenable.com/products/nessus/nessus-essentials) 3. 创建管理员账号 4. 更新插件库 ``` ### Nessus 扫描策略 **内置策略**: | 策略 | 用途 | |------|------| | **Basic Network Scan** | 基础网络扫描 | | **Advanced Scan** | 高级自定义扫描 | | **Web Application Tests** | Web 应用测试 | | **Malware Scan** | 恶意软件检测 | | **Shellshock Detection** | Shellshock 检测 | | **PCI DSS Scan** | PCI DSS 合规扫描 | | **Software Update** | 软件更新检查 | | **CIS Policy Audit** | CIS 基准审计 | **创建自定义策略**: ``` 1. 登录 Nessus Web 界面 2. Policies → New Policy 3. 选择模板(Advanced Scan) 4. 配置扫描选项: Settings → Discovery: - Host Discovery: Ping + Port Scan - Port Scan: 1-65535 - Service Detection: Enabled Settings → Assessment: - Safe Checks: Enabled(生产环境) - Credentialed Patch Audit: Enabled(如有凭证) - Web Application Tests: Enabled Settings → Report: - Report Format: HTML + PDF - Vulnerability Details: Full 5. 保存策略 ``` ### Nessus 扫描执行 **Web 界面操作**: ``` 1. Scans → New Scan 2. 选择策略(或自定义) 3. 配置目标: - Targets: 192.168.1.0/24 - Excluded Targets: 192.168.1.100(关键服务器) 4. 配置调度(可选): - One Time: 立即执行 - Scheduled: 定时执行 5. 启动扫描 ``` **命令行扫描(Nessus CLI)**: ```bash # 获取 API 密钥 $ curl -k -X POST \ -H "Content-Type: application/json" \ -d '{"username":"admin","password":"password"}' \ https://localhost:8834/session # 创建扫描 $ curl -k -X POST \ -H "X-Cookie: token=YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "uuid":"policy-uuid", "settings": { "name":"My Scan", "text_targets":"192.168.1.0/24" } }' \ https://localhost:8834/scans # 启动扫描 $ curl -k -X POST \ -H "X-Cookie: token=YOUR_TOKEN" \ https://localhost:8834/scans/SCAN_ID/launch # 下载报告 $ curl -k -X GET \ -H "X-Cookie: token=YOUR_TOKEN" \ https://localhost:8834/scans/SCAN_ID/export/REPORT_ID/download \ -o report.pdf ``` ### Nessus 漏洞分析 **漏洞详情页面包含**: ``` ┌─────────────────────────────────────────────────────────────┐ │ Nessus 漏洞详情 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ 漏洞信息: │ │ - 名称:Apache 2.4.49 Path Traversal │ │ - CVE: CVE-2021-41773 │ │ - CVSS: 7.5 (高危) │ │ - 插件 ID: 154018 │ │ │ │ 描述: │ │ Apache 2.4.49 存在路径遍历漏洞,攻击者可读取文件内容 │ │ │ │ 受影响资产: │ │ - 192.168.1.10:80 │ │ - 192.168.1.20:80 │ │ │ │ 验证方法: │ │ GET /.%2e/.%2e/.%2e/.%2e/etc/passwd │ │ │ │ 修复建议: │ │ 1. 升级到 Apache 2.4.50 或更高版本 │ │ 2. 如无法升级,配置 WAF 规则拦截 │ │ 3. 限制 Directory 权限 │ │ │ │ 参考资料: │ │ - https://httpd.apache.org/security/vulnerabilities.html │ │ - https://nvd.nist.gov/vuln/detail/CVE-2021-41773 │ │ │ └─────────────────────────────────────────────────────────────┘ ``` ### Nessus 报告导出 **报告格式**: | 格式 | 用途 | |------|------| | **HTML** | 交互式报告、适合在线查看 | | **PDF** | 正式交付、打印 | | **CSV** | 数据分析、导入其他工具 | | **Nessus DB** | 备份、后续对比 | **报告定制**: ``` 1. 进入扫描结果页面 2. Export → 选择格式 3. 选择章节: - Executive Summary(执行摘要) - Vulnerability Details(漏洞详情) - Host Information(主机信息) - Compliance(合规性) 4. 导出 ``` --- ## OpenVAS 开源扫描器 ### OpenVAS 概述 OpenVAS(Open Vulnerability Assessment System)是 Nessus 的开源替代品。 **OpenVAS vs Nessus**: | 特性 | OpenVAS | Nessus | |------|---------|--------| | **价格** | 免费 | $3,990+/年 | | **插件更新** | 免费 | 需订阅 | | **易用性** | 中等 | 优秀 | | **检测率** | 良好 | 优秀 | | **误报率** | 较高 | 较低 | | **适用场景** | 预算有限、开源偏好 | 企业级、专业需求 | ### OpenVAS 安装 ```bash # Kali Linux 预装 $ sudo apt update $ sudo apt install openvas # 初始化配置 $ sudo greenbone-nutrap-setup # 启动服务 $ sudo systemctl start greenbone-* # 访问 Web 界面 https://localhost:9392/ # 默认账号 用户名:admin 密码:安装时生成 ``` ### OpenVAS 扫描 ```bash # 使用 GVM Tools 命令行 $ gvm-cli --gmp-username admin --gmp-password password socket \ --xml "<create_target><name>target</name><hosts>192.168.1.0/24</hosts></create_target>" # Web 界面操作 1. 登录 Greenbone Security Assistant 2. Scans → Tasks → New Task 3. 配置目标、策略 4. 启动扫描 5. 查看结果、导出报告 ``` --- ## Nuclei 现代化扫描器 ### Nuclei 概述 Nuclei 是 ProjectDiscovery 开发的现代化漏洞扫描器,基于 YAML 模板。 **Nuclei 优势**: ``` ┌─────────────────────────────────────────────────────────────┐ │ Nuclei 优势 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ 1. 模板化扫描 │ │ - 基于 YAML 模板 │ │ - 易于编写和分享 │ │ - 社区贡献模板库 │ │ │ │ 2. 快速轻量 │ │ - Go 语言编写 │ │ - 并发扫描 │ │ - 资源占用低 │ │ │ │ 3. 高度可定制 │ │ - 自定义模板 │ │ - 灵活匹配条件 │ │ - 支持多种协议 │ │ │ │ 4. 持续更新 │ │ - 每日更新模板 │ │ - 快速响应新漏洞 │ │ - 社区活跃 │ │ │ └─────────────────────────────────────────────────────────────┘ ``` ### Nuclei 安装 ```bash # 使用 Go 安装 $ go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest # 或使用包管理器 $ apt install nuclei # Kali $ brew install nuclei # macOS # 更新模板 $ nuclei -update-templates # 查看版本 $ nuclei -version ``` ### Nuclei 基础使用 ```bash # 基础扫描 $ nuclei -u https://target.com # 多目标扫描 $ nuclei -l targets.txt # 使用特定模板 $ nuclei -u https://target.com -t vulnerabilities/ $ nuclei -u https://target.com -t exposures/ $ nuclei -u https://target.com -t misconfiguration/ # 按严重程度过滤 $ nuclei -u https://target.com -s critical $ nuclei -u https://target.com -s high $ nuclei -u https://target.com -s critical,high # 按标签过滤 $ nuclei -u https://target.com -t cves/2023/ $ nuclei -u https://target.com -t cves/2022/ $ nuclei -u https://target.com -tags apache # 输出报告 $ nuclei -u https://target.com -o report.txt $ nuclei -u https://target.com -json-export report.json # 并发控制 $ nuclei -u https://target.com -c 50 # 50 并发 $ nuclei -u https://target.com -rate-limit 100 # 每秒 100 请求 # 静默模式 $ nuclei -u https://target.com -silent ``` ### Nuclei 模板结构 **模板示例**: ```yaml id: cve-2021-41773 info: name: Apache 2.4.49 Path Traversal author: projectdiscovery severity: high description: Apache 2.4.49 path traversal vulnerability reference: - https://nvd.nist.gov/vuln/detail/CVE-2021-41773 tags: cve,cve2021,apache,lfi requests: - method: GET path: - "{{BaseURL}}/.%2e/.%2e/.%2e/.%2e/etc/passwd" matchers-condition: and matchers: - type: regex regex: - "root:.*:0:0:" condition: and - type: status status: - 200 ``` **模板字段说明**: | 字段 | 说明 | |------|------| | `id` | 唯一标识符 | | `info.name` | 漏洞名称 | | `info.author` | 作者 | | `info.severity` | 严重程度(critical/high/medium/low/info) | | `info.description` | 描述 | | `info.reference` | 参考链接 | | `info.tags` | 标签 | | `requests` | 请求定义 | | `matchers` | 匹配条件 | ### Nuclei 高级功能 **工作流**: ```yaml id: workflow-example workflows: - template: technologies/tech-detect.yaml subtemplates: - tags: apache template: vulnerabilities/cve-2021-41773.yaml - tags: nginx template: vulnerabilities/cve-2020-11724.yaml ``` **条件逻辑**: ```yaml requests: - method: GET path: - "{{BaseURL}}/admin" matchers: - type: word words: - "Admin Panel" - "Login" condition: or - type: status status: - 200 part: header ``` **提取器**: ```yaml requests: - method: GET path: - "{{BaseURL}}" extractors: - type: regex name: version regex: - "Server: Apache/([0-9.]+)" group: 1 ``` ### Nuclei 模板编写 **编写自定义模板**: ```yaml id: custom-vuln-check info: name: Custom Vulnerability Check author: your_name severity: medium description: Check for custom vulnerability tags: custom requests: - method: GET path: - "{{BaseURL}}/vulnerable-endpoint" headers: User-Agent: "Mozilla/5.0" payloads: param: - "' OR '1'='1" - "<script>alert(1)</script>" matchers: - type: word words: - "vulnerable" - "error" condition: or - type: status status: - 200 ``` --- ## Web 应用漏洞扫描 ### Burp Suite **Burp Suite 是 Web 应用测试的行业标准**。 **扫描流程**: ``` 1. 配置代理 - 浏览器代理:127.0.0.1:8080 - 安装 CA 证书 2. 爬取网站 - Target → 选择目标 - Spider → 爬取网站 - 或手动浏览 3. 主动扫描 - Target → 选择 URL - 右键 → Scan - 选择扫描策略 4. 分析结果 - Dashboard → 查看漏洞 - 验证误报 - 生成报告 ``` **扫描策略**: | 策略 | 用途 | |------|------| | **Normal Scan** | 常规扫描 | | **Passive Scan** | 被动扫描(不发送请求) | | **Active Scan** | 主动扫描 | | **Custom Scan** | 自定义策略 | ### OWASP ZAP **OWASP ZAP 是免费的 Web 应用扫描器**。 ```bash # 启动 ZAP $ zap.sh # 命令行扫描 $ zap-cli quick-scan -s all https://target.com # 主动扫描 $ zap-cli active-scan -s all https://target.com # 生成报告 $ zap-cli report -o report.html -f html ``` ### Nikto **Nikto 是经典的 Web 服务器扫描器**。 ```bash # 基础扫描 $ nikto -h https://target.com # 指定端口 $ nikto -h https://target.com -p 8080 # 使用代理 $ nikto -h https://target.com -useproxy http://127.0.0.1:8080 # 输出报告 $ nikto -h https://target.com -o report.html # 跳过特定检查 $ nikto -h https://target.com -Skip 12345 # 更新数据库 $ nikto -update ``` --- ## 数据库漏洞扫描 ### SQLMap **SQLMap 是 SQL 注入自动化测试工具**。 ```bash # 基础检测 $ sqlmap -u "https://target.com/page?id=1" # 指定参数 $ sqlmap -u "https://target.com/page?id=1" -p id # 数据库枚举 $ sqlmap -u "https://target.com/page?id=1" --dbs # 表枚举 $ sqlmap -u "https://target.com/page?id=1" -D database --tables # 列枚举 $ sqlmap -u "https://target.com/page?id=1" -D database -T users --columns # 数据提取 $ sqlmap -u "https://target.com/page?id=1" -D database -T users --dump # 获取 shell $ sqlmap -u "https://target.com/page?id=1" --os-shell # 使用 Tamper 脚本绕过 WAF $ sqlmap -u "https://target.com/page?id=1" --tamper=space2comment ``` ### 数据库安全基线 **MySQL 安全扫描**: ```bash # 使用 mysqlsecureinstallation $ mysql_secure_installation # 检查默认账户 $ mysql -u root -p -e "SELECT user,host FROM mysql.user;" # 检查权限 $ mysql -u root -p -e "SHOW GRANTS FOR 'user'@'host';" # 检查插件 $ mysql -u root -p -e "SHOW PLUGINS;" ``` --- ## 漏洞扫描实战案例 ### 案例背景 **客户**:某电商企业 **测试范围**: - 外部网络:官网、API 服务器 - Web 应用:电商网站、管理后台 - 数据库:MySQL、Redis ### 扫描过程 #### 第 1 阶段:Nmap 初步扫描 ```bash # 发现存活主机 $ nmap -sS -sn 203.0.113.0/24 # 综合扫描 $ nmap -sS -sV -O -sC --script=vuln 203.0.113.10 结果: PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.6p1 80/tcp open http Apache httpd 2.4.49 443/tcp open ssl/http Apache httpd 2.4.49 3306/tcp open mysql MySQL 5.7.35 6379/tcp open redis Redis 5.0.7 漏洞发现: - CVE-2021-41773 (Apache 路径遍历) - 高危 - CVE-2021-42013 (Apache 路径遍历) - 高危 - Redis 未授权访问 - 严重 ``` #### 第 2 阶段:Nessus 深度扫描 ``` Nessus 扫描策略:Advanced Scan 目标:203.0.113.0/24 认证:无(外部扫描) 扫描结果: ┌─────────────────────────────────────────────────────────────┐ │ 漏洞汇总 │ ├─────────────────────────────────────────────────────────────┤ │ 严重:2 个 │ │ - Redis 未授权访问 │ │ - MongoDB 未授权访问 │ │ │ │ 高危:5 个 │ │ - Apache CVE-2021-41773 │ │ - Apache CVE-2021-42013 │ │ - SSL/TLS 弱加密套件 │ │ - MySQL 弱密码 │ │ - SSH 弱密码 │ │ │ │ 中危:8 个 │ │ - HTTP 方法启用 │ │ - 目录列表启用 │ │ - 敏感信息泄露 │ │ │ │ 低危:12 个 │ │ - 信息泄露 │ │ - 配置问题 │ └─────────────────────────────────────────────────────────────┘ ``` #### 第 3 阶段:Nuclei Web 扫描 ```bash # Web 应用扫描 $ nuclei -l web-targets.txt -t vulnerabilities/ -t exposures/ # CVE 扫描 $ nuclei -l web-targets.txt -t cves/2021/ # 自定义模板 $ nuclei -l web-targets.txt -t custom-vulns/ 发现: - CVE-2021-41773 (Apache 路径遍历) - XSS 漏洞(存储型) - 敏感文件暴露(.git、.env) - 默认后台路径 ``` #### 第 4 阶段:SQLMap 注入测试 ```bash # 检测注入点 $ sqlmap -u "https://target.com/search?q=test" # 发现注入点 [INFO] GET parameter 'q' is vulnerable to SQL injection # 获取数据库 $ sqlmap -u "https://target.com/search?q=test" --dbs 可用数据库: - information_schema - ecommerce_db - mysql # 提取用户数据 $ sqlmap -u "https://target.com/search?q=test" -D ecommerce_db -T users --dump ``` ### 扫描结果汇总 | 漏洞 | 风险等级 | CVSS | 受影响资产 | 状态 | |------|----------|------|------------|------| | Redis 未授权访问 | 严重 | 9.8 | 203.0.113.40 | 已验证 | | MongoDB 未授权访问 | 严重 | 9.8 | 203.0.113.50 | 已验证 | | Apache CVE-2021-41773 | 高危 | 7.5 | 203.0.113.10 | 已验证 | | Apache CVE-2021-42013 | 高危 | 7.5 | 203.0.113.10 | 已验证 | | SQL 注入 | 高危 | 8.6 | Web 应用 | 已验证 | | XSS 存储型 | 中危 | 6.1 | Web 应用 | 已验证 | | SSL/TLS 弱加密 | 中危 | 5.3 | 203.0.113.10 | 已验证 | --- ## 漏洞扫描最佳实践 ### 扫描策略 **扫描前准备**: ``` ┌─────────────────────────────────────────────────────────────┐ │ 扫描前检查清单 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ □ 获得书面授权 │ │ □ 明确扫描范围(IP、域名) │ │ □ 确定扫描时间窗口 │ │ □ 通知相关人员 │ │ □ 准备回滚计划 │ │ □ 备份关键数据 │ │ □ 准备紧急联系人 │ │ │ └─────────────────────────────────────────────────────────────┘ ``` **扫描策略选择**: | 场景 | 推荐策略 | |------|----------| | **生产环境** | 被动扫描 + 安全检查 | | **测试环境** | 主动扫描 + 完整检测 | | **外部评估** | 非认证扫描 | | **内部评估** | 认证扫描 | | **合规审计** | CIS/PCI DSS 策略 | | **新系统上线** | 全面扫描 | ### 误报处理 **误报常见原因**: ``` 1. 版本检测误报 - 原因:服务版本号未更新但已打补丁 - 解决:人工验证、检查补丁状态 2. 配置检测误报 - 原因:补偿性控制未识别 - 解决:检查实际配置 3. 特征匹配误报 - 原因:响应包含关键词但非漏洞 - 解决:人工验证 4. 环境差异 - 原因:扫描器假设与实际环境不符 - 解决:调整扫描策略 ``` **误报验证流程**: ``` 1. 查看漏洞详情 2. 检查受影响版本 3. 验证补丁状态 4. 手动测试漏洞 5. 检查补偿性控制 6. 标记为误报/确报 7. 记录验证结果 ``` ### 报告编写 **报告结构**: ```markdown # 漏洞扫描报告 ## 执行摘要 - 扫描概述 - 风险概览 - 关键发现 - 整体评级 ## 扫描范围 - 目标列表 - 扫描时间 - 扫描策略 ## 漏洞统计 - 按严重程度分布 - 按类型分布 - 按资产分布 ## 详细发现 ### [漏洞名称] - 风险等级 - CVSS 评分 - 受影响资产 - 漏洞描述 - 验证步骤 - 修复建议 - 参考资料 ## 修复建议 - 短期措施(1 周内) - 中期措施(1 月内) - 长期措施(3 月内) ## 附录 - 扫描工具版本 - 完整漏洞列表 - 技术细节 ``` ### 工具组合建议 **推荐工具组合**: ``` ┌─────────────────────────────────────────────────────────────┐ │ 漏洞扫描工具组合 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ 基础组合(个人/小团队): │ │ ├── Nmap(端口扫描) │ │ ├── Nuclei(漏洞检测) │ │ └── OWASP ZAP(Web 扫描) │ │ │ │ 专业组合(企业/渗透测试): │ │ ├── Nessus(综合扫描) │ │ ├── Burp Suite(Web 扫描) │ │ ├── Nmap(网络扫描) │ │ └── SQLMap(数据库测试) │ │ │ │ 开源组合(预算有限): │ │ ├── OpenVAS(综合扫描) │ │ ├── Nuclei(漏洞检测) │ │ ├── OWASP ZAP(Web 扫描) │ │ └── Nmap(网络扫描) │ │ │ └─────────────────────────────────────────────────────────────┘ ``` --- ## 总结与思考 ### 核心要点回顾 1. **漏洞扫描是渗透测试的基础**,但不能替代渗透测试 2. **选择合适的工具**: - Nmap:网络扫描、端口发现 - Nessus:综合漏洞扫描 - Nuclei:现代化 Web 扫描 - Burp Suite:Web 应用测试 3. **理解扫描原理**比盲目使用工具更重要 4. **人工验证必不可少**,不要完全依赖自动化结果 5. **报告质量决定价值**,清晰的报告帮助客户真正提升安全 ### 深入思考 **问题 1:漏洞扫描的局限性在哪里?** 我的观点: - 只能发现已知漏洞(基于特征库) - 无法发现业务逻辑漏洞 - 无法评估漏洞链式利用 - 无法替代人工渗透测试 **问题 2:如何平衡扫描深度和业务影响?** 我建议: - 生产环境使用安全扫描策略 - 避开业务高峰期 - 限制扫描速率 - 准备应急方案 **问题 3:漏洞扫描频率应该是多少?** 我推荐: - **外部扫描**:每周 1 次 - **内部扫描**:每月 1 次 - **全面扫描**:每季度 1 次 - **重大变更后**:立即扫描 ### 实战建议 **给新手的建议**: ``` 1. 掌握基础工具 - Nmap(必须精通) - Nessus/OpenVAS(熟悉) - Nuclei(推荐学习) 2. 理解漏洞原理 - CVE 编号系统 - CVSS 评分系统 - 常见漏洞类型 3. 建立扫描 SOP - 扫描前检查清单 - 标准扫描策略 - 报告模板 4. 持续学习 - 关注新漏洞 - 更新工具模板 - 参加安全社区 ``` **给企业的建议**: ``` 1. 建立漏洞管理流程 - 定期扫描 - 漏洞跟踪 - 修复验证 2. 选择合适的工具 - 根据预算和需求 - 考虑集成能力 - 评估技术支持 3. 培训安全团队 - 工具使用培训 - 漏洞分析培训 - 报告编写培训 4. 持续改进 - 定期评估扫描效果 - 优化扫描策略 - 引入新工具新技术 ``` --- ## 参考资料 ### 学习资源 | 资源 | 类型 | 链接 | |------|------|------| | **Nmap 官方指南** | 文档 | https://nmap.org/book/ | | **Nessus 文档** | 文档 | https://docs.tenable.com/nessus/ | | **Nuclei 文档** | 文档 | https://docs.nuclei.sh/ | | **OWASP 测试指南** | 指南 | https://owasp.org/www-project-web-security-testing-guide | | **CVSS 计算器** | 工具 | https://www.first.org/cvss/calculator/3.1 | ### 工具资源 | 工具 | 官网 | 用途 | |------|------|------| | **Nmap** | https://nmap.org | 网络扫描 | | **Nessus** | https://www.tenable.com/products/nessus | 漏洞扫描 | | **OpenVAS** | https://www.greenbone.net | 开源扫描 | | **Nuclei** | https://nuclei.sh | 模板扫描 | | **Burp Suite** | https://portswigger.net/burp | Web 扫描 | | **OWASP ZAP** | https://www.zaproxy.org | Web 扫描 | | **SQLMap** | https://sqlmap.org | SQL 注入测试 | | **Nikto** | https://cirt.net/nikto2 | Web 服务器扫描 | ### 漏洞数据库 | 数据库 | 链接 | |--------|------| | **NVD** | https://nvd.nist.gov | | **CVE** | https://cve.mitre.org | | **Exploit-DB** | https://exploit-db.com | | **GitHub Advisories** | https://github.com/advisories | ### 书籍推荐 | 书名 | 作者 | 难度 | |------|------|------| | 《Nmap Network Scanning》 | Gordon Lyon | 入门 | | 《Nessus Network Scanning》 | various | 入门 | | 《The Web Application Hacker's Handbook》 | Dafydd Stuttard | 进阶 | | 《Penetration Testing》 | Georgia Weidman | 实战 | --- *365 天信息安全技术系列 | Day 213 | 漏洞扫描技术详解 | 字数:约 22,000 字*
myh0st
2026年4月13日 23:20
分享文档
收藏文档
上一篇
下一篇
微信扫一扫
复制链接
手机扫一扫进行分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码