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

相关推荐
Bruce_Liuxiaowei1 小时前
dict协议在网络安全中的应用与风险分析
网络·安全·web安全·伪协议
FreeBuf_2 小时前
蓝牙协议栈高危漏洞曝光,攻击可入侵奔驰、大众和斯柯达车载娱乐系统
安全·web安全·娱乐
茫忙然6 小时前
【WEB】Polar靶场 Day7 详细笔记
笔记
今天背单词了吗9808 小时前
算法学习笔记:17.蒙特卡洛算法 ——从原理到实战,涵盖 LeetCode 与考研 408 例题
java·笔记·考研·算法·蒙特卡洛算法
浩浩测试一下8 小时前
Windows 与 Linux 内核安全及 Metasploit/LinEnum 在渗透测试中的综合应用
linux·运维·windows·web安全·网络安全·系统安全·安全架构
逐花归海.8 小时前
『 C++ 入门到放弃 』- 多态
开发语言·c++·笔记·程序人生
致***锌9 小时前
期权交易完整版教程简介
笔记
棱镜研途9 小时前
学习笔记丨卷积神经网络(CNN):原理剖析与多领域Github应用
图像处理·笔记·学习·计算机视觉·cnn·卷积神经网络·信号处理
言之。10 小时前
借助ssh实现web服务的安全验证
运维·安全·ssh
前端世界11 小时前
鸿蒙系统安全机制全解:安全启动 + 沙箱 + 动态权限实战落地指南
android·安全·harmonyos