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

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

1. NVT脚本结构

每个NVT脚本都是一个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

-- 示例:检测企业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. 扫描引擎架构
┌─────────────┐ ┌──────────────┐
│ Web UI │──────>│ GVM Daemon │
└─────────────┘ └──────────────┘
│
▼
┌───────────────────────┐
│ OpenVAS Scanner Engine │
│ - 插件管理器 │
│ - 任务调度器 │
│ - 结果聚合器 │
└───────────────────────┘

2. 性能优化参数

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

# 先进行快速端口扫描,再执行深度漏洞检测
nmap -F 192.168.1.0/24 > nmap_results.xml
openvasmd --import=nmap_results.xml

  • 增量扫描:仅检测新开放端口和服务
  • 认证扫描

    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

    **漏洞**: 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示例:通过REST API获取扫描结果
    import requestsurl = "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. 分布式扫描架构
    ┌─────────────┐ ┌──────────────┐
    │ 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

    # 调整并发扫描数
    openvasmd --set max_parallel_tasks=50# 启用结果缓存
    openvasmd --set cache_ttl=3600
      3. 最新漏洞检测
      • CVE-2024-23923(Apache HTTPd 2.4.62 路径泄露)

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

        本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/pingmian/82119.shtml

        如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

        相关文章

        【HarmonyOS Next之旅】DevEco Studio使用指南(二十六) -> 创建端云一体化开发工程

        目录 1 -> 创建HarmonyOS应用工程 1.1 -> 新建工程 1.1.1 -> 前提条件 1.1.2 -> 选择模板 1.1.3 -> 配置工程信息 1.1.4 -> 关联云开发资源 1.2 -> 工程初始化配置 1.2.1 -> 自动开通云开发服务 1.3 -> 端云一体化开发工程目录结构 1.3.1…

        Python 包管理工具 uv

        Python 包管理工具 uv 是由 Astral 团队&#xff08;知名工具 Ruff 的开发者&#xff09;基于 Rust 开发的新一代工具&#xff0c;旨在通过高性能和一体化设计革新 Python 生态的依赖管理体验。以下是其核心特性、优势及使用指南的全面解析&#xff1a; 一、uv 的核心优势 极致…

        何谓第二大脑?读书笔记

        2025/05/11 发表想法 每个人都是矛盾结合体&#xff0c;既想学到新知识、新的能力&#xff0c;又想没办法专注的学习&#xff0c;既无法专注有渴望学习新技能&#xff0c;逐渐会产生焦虑、失眠等负面症状&#xff0c;这就是现实社会现照&#xff0c;那怎么办&#xff1f;我们能…

        动态防御体系实战:AI如何重构DDoS攻防逻辑

        1. 传统高防IP的静态瓶颈 传统高防IP依赖预定义规则库&#xff0c;面对SYN Flood、CC攻击等常见威胁时&#xff0c;常因规则更新滞后导致误封合法流量。例如&#xff0c;某电商平台遭遇HTTP慢速攻击时&#xff0c;静态阈值过滤无法区分正常用户与攻击者&#xff0c;导致订单接…

        为什么在设置 model.eval() 之后,pytorch模型的性能会很差?为什么 dropout 影响性能?| 深度学习

        在深度学习的世界里&#xff0c;有一个看似简单却让无数开发者困惑的现象&#xff1a; “为什么在训练时模型表现良好&#xff0c;但设置 model.eval() 后&#xff0c;模型的性能却显著下降&#xff1f;” 这是一个让人抓耳挠腮的问题&#xff0c;几乎每一个使用 PyTorch 的研究…

        [爬虫知识] http协议

        相关爬虫专栏&#xff1a;JS逆向爬虫实战 爬虫知识点合集 爬虫实战案例 引言&#xff1a;爬虫与HTTP的不解之缘 爬虫作用&#xff1a;模拟浏览器请求网页为何要懂HTTP&#xff1a;http是网络通信的基石&#xff0c;爬虫抓取数据就是通过HTTP协议进行的&#xff0c;了解http有…

        《Spark/Flink/Doris离线实时数仓开发》目录

        欢迎加入《Spark/Flink/Doris离线&实时数仓开发》付费专栏&#xff01;本专栏专为大数据工程师、数据分析师及准备大数据面试的求职者量身打造&#xff0c;聚焦Spark、Flink、Doris等核心技术&#xff0c;覆盖离线与实时数仓开发的全流程。无论你是想快速上手项目、提升技术…

        事务基础概念

        事务 事务是什么&#xff1f; 事务是一种机制&#xff0c;一个操作序列&#xff0c;包含了一组数据库操作命令&#xff0c;并且把所有命令作为一个整体一起向系统提交或者撤销操作请求&#xff0c;即统一这组命令要么一起执行&#xff0c;要么一起不执行 简短概况就是&#…

        四、【API 开发篇 (上)】:使用 Django REST Framework 构建项目与模块 CRUD API

        【API 开发篇 】&#xff1a;使用 Django REST Framework 构建项目与模块 CRUD API 前言为什么选择 Django REST Framework (DRF)&#xff1f;第一步&#xff1a;创建 Serializers (序列化器)第二步&#xff1a;创建 ViewSets (视图集)第三步&#xff1a;配置 URLs (路由)第四步…

        【北京盈达科技】GEO优化中的多模态了解

        多模态数据处理领域&#xff0c;“模态”指的是不同类型的数据形式&#xff0c;每种模态都具有独特的结构和信息表达方式。以下是12种可能的模态类型&#xff0c;这些模态在实际应用中可以根据具体场景进行组合和处理&#xff1a; 1. 文本模态 描述&#xff1a;以文字形式存在…

        推进可解释人工智能迈向类人智能讨论总结分享

        目录 一、探索“可解释人工智能”&#xff1a;AI如何从“黑箱”走向“透明大师” 二、走进可解释人工智能&#xff1a;让AI的决策变得透明 &#xff08;一&#xff09;几种常见的特征导向方法 &#xff08;二&#xff09;像素级方法 1. 层次相关传播&#xff08;LRP&#…

        【Qt】Qt 5.9.7使用MSVC2015 64Bit编译器

        环境 Qt版本&#xff1a;5.9.7 VS版本&#xff1a;VS2022 步骤 1、安装VS2022 三个必选项&#xff1a; a、使用C的桌面开发 b、Windows10 SDK 版本&#xff1a;10.0.18362.0 c、MSVC v140 VS 2015 生成工具 Windows10 SDK安装完成后&#xff0c;需要增加安装调试器。 2…

        超越OpenAI CodeX的软件工程智能体:Jules

        目前AI编码代理&#xff08;coding agent&#xff09;领域正迅速崛起&#xff0c;Google推出了一款名为Jules的非同步编码代理&#xff08;asynchronous coding agent&#xff09;&#xff0c;主要针对专业开发者&#xff0c;与传统在开发环境中直接辅助编码的Cursor或Windsurf…

        springboot使用xdoc-report包导出word

        背景&#xff1a;项目需要使用xdoc-report.jar根据设置好的word模版&#xff0c;自动填入数据 导出word 框架使用 我的需求是我做一个模板然后往里面填充内容就导出我想要的word文件&#xff0c;问了下chatgpt还有百度&#xff0c;最后选用了xdocreport这个框架&#xff0c;主…

        CodeBuddy实现pdf批量加密

        本文所使用的 CodeBuddy 免费下载链接&#xff1a;腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴 前言 在信息爆炸的时代&#xff0c;PDF 格式因其跨平台性和格式稳定性&#xff0c;成为办公、学术、商业等领域传递信息的重要载体。从机密合同到个人隐私文档&#xff0c…

        如何在PyCharm2025中设置conda的多个Python版本

        前言 体验的最新版本的PyCharm(Community)2025.1.1&#xff0c;发现和以前的版本有所不同。特别是使用Anaconda中的多个版本的Python的时候。 关于基于Anaconda中多个Python版本的使用&#xff0c;以及对应的Pycharm&#xff08;2023版&#xff09;的使用&#xff0c;可以参考…

        STM32F103 HAL多实例通用USART驱动 - 高效DMA+RingBuffer方案,量产级工程模板

        导言 《STM32F103_LL库寄存器学习笔记12.2 - 串口DMA高效收发实战2&#xff1a;进一步提高串口接收的效率》前阵子完成的LL库与寄存器版本的代码&#xff0c;有一个明显的缺点是不支持多实例化。最近&#xff0c;计划基于HAL库系统地梳理一遍bootloader程序开发。在bootloader程…

        【数据结构】栈和队列(上)

        目录 一、栈&#xff08;先进后出、后进先出的线性表&#xff09; 1、栈的概念及结构 2、栈的底层结构分析 二、代码实现 1、定义一个栈 2、栈的初始化 3、入栈 3、增容 4、出栈 5、取栈顶 6、销毁栈 一、栈&#xff08;先进后出、后进先出的线性表&#xff09; 1、…

        Vue 3 官方 Hooks 的用法与实现原理

        Vue 3 引入了 Composition API&#xff0c;使得生命周期钩子&#xff08;hooks&#xff09;在函数式风格中更清晰地表达。本篇文章将从官方 hooks 的使用、实现原理以及自定义 hooks 的结构化思路出发&#xff0c;全面理解 Vue 3 的 hooks 系统。 &#x1f4d8; 1. Vue 3 官方生…

        大语言模型 17 - MCP Model Context Protocol 介绍对比分析 基本环境配置

        MCP 基本介绍 官方地址&#xff1a; https://modelcontextprotocol.io/introduction “MCP 是一种开放协议&#xff0c;旨在标准化应用程序向大型语言模型&#xff08;LLM&#xff09;提供上下文的方式。可以把 MCP 想象成 AI 应用程序的 USB-C 接口。就像 USB-C 提供了一种…