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
        繁體地址,請注明出處:http://hk.pswp.cn/pingmian/82119.shtml
        英文地址,請注明出處:http://en.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 提供了一種…