Day 0017:Web漏洞扫描(OpenVAS)解析

一、NVT脚本解析:漏洞检测的"DNA"

1. NVT脚本结构

每个NVT脚本都是一个Lua脚本,包含以下核心模块:

lua

Lua 复制代码
-- 示例:检测Apache HTTPd 2.4.49路径穿越漏洞(CVE-2021-41773)
script_id = "1.3.6.1.4.1.25623.1.0.10001" -- 唯一标识符
script_version = "$Revision: 12345 $"
script_tag(name:"cvss_base", value:"9.8")
script_tag(name:"cvss_base_vector", value:"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H")


-- 漏洞检测逻辑
http_port = get_kb_item("Services/www")
if not http_port then http_port = 80 end


-- 发送恶意请求
res = http_send_recv(
port:http_port,
data:"GET /cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd HTTP/1.1\r\nHost: " .. get_host_name() .. "\r\n\r\n"
)


-- 响应分析
if res and res:match("root:.*:0:0:") then
report = "Vulnerable to CVE-2021-41773 - Path Traversal"
security_message(port:http_port, data:report)
end
2. 脚本执行流程
  1. 服务发现:通过Nmap或Banner抓取识别目标服务
  2. 协议交互:根据服务类型选择对应协议插件(HTTP/FTP/SMB等)
  3. 特征匹配
    • 发送畸形请求(如SQL注入测试' OR 1=1 --
    • 分析响应时间、返回码、错误信息等特征
  4. 结果判定:结合CVSS评分决定是否记录漏洞
3. 自定义NVT开发

当检测内部业务系统时,可开发专属NVT:

lua

Lua 复制代码
-- 示例:检测企业OA系统未授权访问
script_category(ACT_ATTACK)
script_family("Web Application Abuses")


-- 定义检测逻辑
if http_get_cache(item:"/oa/api/v1/user/info") then
if res.body:match('"username":"admin"') then
security_message(port:80, data:"Unauthorized admin access detected")
end
end

二、扫描过程深度优化:精准与效率的平衡

1. 扫描引擎架构
bash 复制代码
┌─────────────┐ ┌──────────────┐
│ Web UI │──────>│ GVM Daemon │
└─────────────┘ └──────────────┘
│
▼
┌───────────────────────┐
│ OpenVAS Scanner Engine │
│ - 插件管理器 │
│ - 任务调度器 │
│ - 结果聚合器 │
└───────────────────────┘
2. 性能优化参数

bash

bash 复制代码
# 调整扫描速度(0-5,5为最快)
openvasmd --modify-scanner=scanner_id --speed=3


# 设置超时时间(单位:秒)
openvasmd --modify-target=target_id --alive-tests=Consider Alive


# 启用多线程扫描
openvasmd --modify-scanner=scanner_id --max-checks=20
3. 高级扫描策略
  • 混合扫描

    bash

bash 复制代码
# 先进行快速端口扫描,再执行深度漏洞检测
nmap -F 192.168.1.0/24 > nmap_results.xml
openvasmd --import=nmap_results.xml
  • 增量扫描:仅检测新开放端口和服务

  • 认证扫描

    bash

bash 复制代码
# 使用SSH密钥认证扫描Linux服务器
openvasmd --ssh-credential=ssh_key_id 192.168.1.100

三、报告解读实战:从数据到行动方案

1. 漏洞生命周期管理

|------------------------------------|
| ┌─────────────┐ ┌──────────────┐ |
| │ 扫描发现 │──────>│ 漏洞确认 │ |
| └─────────────┘ └──────────────┘ |
| |
| |
| ┌─────────────┐ ┌──────────────┐ |
| │ 风险评估 │──────>│ 修复跟踪 │ |
| └─────────────┘ └──────────────┘ |

2. 关键报告字段解析
  • QoD(Quality of Detection):检测置信度(0-100)
  • BID:Bugtraq ID(历史漏洞追踪号)
  • CPE:通用平台枚举(精确描述受影响组件)
  • XREF:交叉引用其他漏洞库(如OSVDB、MSRC)
3. 修复建议落地示例

markdown

bash 复制代码
**漏洞**: CVE-2023-28432 - Apache ActiveMQ 反序列化漏洞


**修复步骤**:
1. 立即升级到5.16.3+版本
2. 临时缓解措施:
- 限制管理接口访问:`iptables -A INPUT -p tcp --dport 8161 -j DROP`
- 禁用JMX控制台:修改`activemq.xml`中`<managementContext>`配置
3. 验证修复:
- 重新扫描确认漏洞消失
- 检查日志文件:`tail -f /var/log/activemq/activemq.log`

四、高级应用场景:超越基础扫描

1. API集成开发

python

python 复制代码
# Python示例:通过REST API获取扫描结果
import requests


url = "https://openvas:9390/api/v1/get_report"
headers = {
"X-API-Key": "your_api_key",
"Content-Type": "application/json"
}


response = requests.post(url, headers=headers, json={"report_id": "123e4567-e89b-12d3-a456-426614174000"})
print(response.json())
2. 分布式扫描架构
bash 复制代码
┌─────────────┐ ┌──────────────┐
│ Manager │──────>│ Scanner 1 │
└─────────────┘ └──────────────┘
│
│
▼
┌──────────────┐
│ Scanner 2 │
└──────────────┘
  • 负载均衡:自动分配扫描任务
  • 结果聚合:统一展示多节点扫描结果
  • 故障转移:节点失效自动任务迁移
3. 合规性检查
  • PCI DSS合规:检测支付系统漏洞
  • GDPR合规:识别数据泄露风险
  • 等保2.0:生成符合中国网络安全等级保护要求的报告

五、实战避坑指南

1. 常见误报处理
  • 场景:检测到已修复的CVE-2017-5638(Struts2漏洞)
  • 解决
    1. 确认组件版本:curl -s http://target/struts2-showcase/index.action | grep "Struts 2.5.22"
    2. 验证补丁应用:检查WEB-INF/lib/struts2-core-2.5.22.jar文件哈希
    3. 添加例外:在OpenVAS中标记为"False Positive"
2. 性能瓶颈优化
  • 问题:扫描1000+主机时CPU占用过高

  • 解决

    bash

bash 复制代码
# 调整并发扫描数
openvasmd --set max_parallel_tasks=50


# 启用结果缓存
openvasmd --set cache_ttl=3600
3. 最新漏洞检测
  • CVE-2024-23923(Apache HTTPd 2.4.62 路径泄露)

    bash

bash 复制代码
# 手动更新NVT库
greenbone-nvt-sync --rsync


# 创建自定义扫描任务
openvasmd --create-target=new_target --hosts=192.168.1.0/24
openvasmd --create-task=new_task --config="Full and Fast Ultimate" --target=new_target

掌握了OpenVAS从底层原理到高级应用的完整知识体系。建议在实际环境中部署演练,通过"扫描-分析-修复-验证"的完整闭环,真正将理论知识转化为安全防护能力。

相关推荐
用户9623779544822 分钟前
DVWA 靶场实验报告 (High Level)
安全
数据智能老司机4 小时前
用于进攻性网络安全的智能体 AI——在 n8n 中构建你的第一个 AI 工作流
人工智能·安全·agent
数据智能老司机4 小时前
用于进攻性网络安全的智能体 AI——智能体 AI 入门
人工智能·安全·agent
用户962377954485 小时前
DVWA 靶场实验报告 (Medium Level)
安全
red1giant_star5 小时前
S2-067 漏洞复现:Struts2 S2-067 文件上传路径穿越漏洞
安全
用户962377954489 小时前
DVWA Weak Session IDs High 的 Cookie dvwaSession 为什么刷新不出来?
安全
cipher2 天前
ERC-4626 通胀攻击:DeFi 金库的"捐款陷阱"
前端·后端·安全
一次旅行5 天前
网络安全总结
安全·web安全
西岸行者5 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
red1giant_star5 天前
手把手教你用Vulhub复现ecshop collection_list-sqli漏洞(附完整POC)
安全