@


本系列侧重方法论,各工具只是实现目标的载体。

命令与工具只做简单介绍,其使用另见《安全工具录》。

本文以 kali-linux-2023.2-vmware-amd64 为例。

1:漏洞发现

如果手工的去发现漏洞:

  • 基于端口服务扫描结果、版本信息等(速度慢)
  • 搜索已公开的漏洞数据库(数量大)

所以需要使用弱点扫描器实现漏洞管理。

知名的弱点扫描器:

  • OpenVAS / GVM
  • Nessus
  • Nexpose

对于手工的发现漏洞,包括但不限于以下方式:

  • Exploit-DB
  • searchsploit
  • Nmap

1.1:Exploit-DB

Exploit-DBwww.exploit-db.com)是一个漏洞利用数据库平台。包含大量漏洞利用代码、Shellcode、漏洞报告和技术文章的在线数据库。

1.2:searchsploit

SearchSploit 用于搜索和定位已知的漏洞及相关利用代码。

漏洞信息保存在 /usr/share/exploitdb/exploits/ 目录中。

基本语法

searchsploit 选项

部分选项

参数 说明
服务名 查看与服务相关的漏洞。

示例01

searchsploit tomcat

1.3:nmap

基本语法

nmap 选项

部分选项

参数 说明
--script=<Lua scripts> Lua scripts is a comma separated list of directories, script-files or script-categories
--script-args=<n1=v1,[n2=v2,...]> provide arguments to scripts

nmap 提供了多种脚本。但不是所有脚本都是漏洞扫描脚本。

所有脚本在 /usr/share/nmap/scripts/script.db 文件都有记录。

大致搜索与漏洞扫描相关的脚本:

grep vuln /usr/share/nmap/scripts/script.db | cut -d "\"" -f 2

部分脚本

参数 说明
smb-vuln-ms10-061.nse Stuxnet(震网)蠕虫利用的4个漏洞之一。
Print Spooler 权限不当,打印请求可在系统目录可创建文件、执行任意代码。
LANMAN API枚举共享打印机.
smb-enum-shares.nse 共享枚举。
身份认证参数:smbuser、smbpassword。

示例01:枚举发现目标的共享设备。

nmap -p 445 --script=smb-enum-shares.nse --script-args=smbuser=admin,smbpassword=pass 1.1.1.1

2:漏洞管理

从信息的维度定义漏洞管理:

  • 信息收集

    • 扫描发现 IP、OS、服务、配置、漏洞等
    • 能力需求:定义扫描方式、内容和目标
  • 信息管理

    • 格式化信息,并进行筛选、分组、定义优先级
    • 能力需求:资产分组、指定所有者、向所有者报告漏洞
  • 信息输出

    • 向不同层级的人群展示足够的信息量
    • 能力需求:生成报告、导出数据、SIEM 集成

SIEM(Security Information and Event Management),安全信息与事件管理系统,结合了安全信息管理(SIM)和安全事件管理(SEM)的功能,旨在帮助组织监视、识别和应对网络和信息系统中的安全事件和威胁。

3:弱点扫描类型

  • 主动扫描

    • 有身份验证
    • 无身份验证
  • 被动扫描

    • 镜像端口抓包
    • 其他来源输入
  • 基于 Agent 的扫描

    • 需要先在目标上安装相应软件
    • 支持平台有限

4:漏洞基本概念

4.1:CVSS

CVSS(Common Vulnerability Scoring System),通用漏洞评分系统,描述安全漏洞严重程度的统一评分方案。

是安全内容自动化协议(SCAP)的一部分,也是工业标准。通常 CVSS 与 CVE 一同由美国国家漏洞库(NVD)发布并保持数据的更新。

  • 评分参考:

    • Basic Metric:基础的恒定不变的弱点权重
    • Temporal Metric:依赖时间因素的弱点权重
    • Enviromental Metric:利用弱点的环境要求和实施难度的权重

  • 分值范围:0 - 10

  • 不同机构按 CVSS 分值定义漏洞威胁级别(中、高、低)

  • CVSS 体现弱点的风险,威胁级别(severity)表示弱点风险对企业的影响程度

  • CVSS 分值是工业标准,但威胁级别不是

4.2:CVE

CVE(Common Vulnerabilities and Exposures)是用于标识和跟踪计算机系统中公开的安全漏洞的字典。以唯一的标识符(称为 CVE 编号)来标识每个已知的漏洞。

  • MITRE 公司负责维护(非盈利机构)
  • 扫描器的大部分扫描项都对应一个 CVE 编号
  • 实现不同厂商之间信息交换的统一标准

CVE 发布流程

  1. 发现漏洞
  2. CAN 负责指定 CVE ID
  3. 发布到 CVE List。(例如:CVE-2008-4250)
  4. MITRE 负责对内容进行编辑维护

4.3:OVAL

OVAL(Open Vulnerability and Assessment Language),描述漏洞检测方法的机器可识别语言。

  • 详细的描述漏洞检测的技术细节,可导入自动化检测工具中实施漏洞检测工作
  • OVAL 使用 XML 语言描述,包含了严密的语法逻辑

4.4:CCE

CCE(Common Configuration Enumeration),用于标准化和描述系统配置的框架和规范。

  • 描述软件配置缺陷的一种标准化格式
  • 在信息安全风险评估中,配置缺陷的检测是一项重要内容,使用 CCE 可以让配置缺陷以标准的方式展现出来,便于配置缺陷评估的可量化操作。

4.5:CPE

CPE(Common Product Enumeration),用于标准化描述计算机系统、操作系统、应用程序和硬件设备等信息的命名规范和分类。

4.6:CWE

CWE(Common Weakness Enumeration),用于标准化描述常见软件和系统弱点的分类。

常见漏洞类型的字典,描述不同类型漏洞的特征(访问控制、信息泄露、拒绝服务等)。

4.7:SCAP

SCAP(Security Content Automation Protocol),安全内容自动化协议,旨在帮助组织自动化执行安全管理任务和操作。

  • SCAP 是一个集合了多种安全标准框架
  • 六个元素:CVE、OVAL、CCE、CPE、 CVSS、XCCDF
  • 目的是以标准的方法展示和操作安全数据
  • 由 NIST 负责维护

NIST(National Institute of Standards and Technology,美国国家漏洞数据库)

SCAP 主要解决三个问题:

  • 实现高层政策法规等到底层实施的落地(如 FISMA,ISO27000 系列)
  • 将信息安全所涉及的各个要素标准化(如统一漏洞的命名及严重性度量)
  • 将复杂的系统配置核查工作自动化

SCAP 是美国比较成熟的一套信息安全评估标准体系,其标准化、自动化的思想对信息安全行业产生了深远的影响。

4.8:NVD

NVD(National Vulnerability Database)是一个全球性的公开安全漏洞数据库。

  • 美国政府的漏洞管理标准数据
  • 完全基于 SCAP 框架
  • 实现自动化漏洞管理、安全测量、合规要求
  • 包含以下内容:
    • 安全检查列表
    • 软件安全漏洞
    • 配置错误
    • 产品名称
    • 影响度量

官网:https://nvd.nist.gov/

5:漏洞管理

漏洞管理的要点如下:

  • 周期性扫描跟踪漏洞
  • 高危漏洞优先处理
  • 扫描注意事项
  • 漏洞管理三要素(准确性、时间、资源)

6:扫描结果分析

  • 要根据目标系统版本进行筛选。
  • 补丁是否安装。
  • 是否可被入侵。
  • False positive(误报)
  • False negative(漏报)

有时很难说什么才是准确的扫描结果。应该综合的看待漏洞威胁。


阴生古苔绿,色染秋烟碧。

——《南轩松》(唐)李白

《Kali渗透基础》07. 弱点扫描(一)的更多相关文章

  1. kali渗透-基础篇

    渗透之meterpreter 模拟场景:小明是我室友,整天游戏人生,浑浑噩噩,前途迷茫,每次上课交作业都要看我的,于是我开启了apche服务器,给他下载作业(别问我为什么不用QQ传,因为要装逼!),他 ...

  2. Kali Linux渗透基础知识整理(二)漏洞扫描

    Kali Linux渗透基础知识整理系列文章回顾 漏洞扫描 网络流量 Nmap Hping3 Nessus whatweb DirBuster joomscan WPScan 网络流量 网络流量就是网 ...

  3. Kali Linux渗透基础知识整理(四):维持访问

    Kali Linux渗透基础知识整理系列文章回顾 维持访问 在获得了目标系统的访问权之后,攻击者需要进一步维持这一访问权限.使用木马程序.后门程序和rootkit来达到这一目的.维持访问是一种艺术形式 ...

  4. kali渗透测试之缓冲区溢出实例-windows,POP3,SLmail

    kali渗透测试之缓冲区溢出实例-windows,POP3,SLmail 相关链接:https://www.bbsmax.com/A/xl569l20Jr/ http://4hou.win/wordp ...

  5. kali一些基础工具

    目录 netcat netcat https://blog.csdn.net/fageweiketang/article/details/82833193 网络工具当中的瑞士军刀 -nc指令,nc可以 ...

  6. kali渗透综合靶机(七)--Super-Mario-Host靶机

    kali渗透综合靶机(七)--Super-Mario-Host靶机 靶机百度云下载  链接:https://pan.baidu.com/s/13l1FUgJjXArfoTOfcmPsbA 提取码:a8 ...

  7. Metasploit Framework(5)弱点扫描

    文章的格式也许不是很好看,也没有什么合理的顺序 完全是想到什么写一些什么,但各个方面都涵盖到了 能耐下心看的朋友欢迎一起学习,大牛和杠精们请绕道 当我们发现了目标机器开放的端口,开启的服务等等之后 就 ...

  8. kali渗透综合靶机(一)--Lazysysadmin靶机

    kali渗透综合靶机(一)--Lazysysadmin靶机 Lazysysadmin靶机百度云下载链接:https://pan.baidu.com/s/1pTg38wf3oWQlKNUaT-s7qQ提 ...

  9. kali渗透综合靶机(十八)--FourAndSix2靶机

    kali渗透综合靶机(十八)--FourAndSix2靶机 靶机下载地址:https://download.vulnhub.com/fourandsix/FourAndSix2.ova 一.主机发现 ...

  10. kali渗透综合靶机(十七)--HackInOS靶机

    kali渗透综合靶机(十七)--HackInOS靶机 靶机下载地址:https://www.vulnhub.com/hackinos/HackInOS.ova 一.主机发现 1.netdiscover ...

随机推荐

  1. React-hooks 父组件通过ref获取子组件数据和方法

    我们知道,对于子组件或者节点,如果是class类,存在实例,可以通过 React.createRef() 挂载到节点或者组件上,然后通过 this 获取到该节点或组件. class RefTest e ...

  2. 2023-05-24:为什么要使用Redis做缓存?

    2023-05-24:为什么要使用Redis做缓存? 答案2023-05-24: 缓存的好处 买啤酒和喝啤酒的例子可以帮助我们理解缓存的好处. 假设你在超市里买了一箱啤酒,如果你需要每次想喝啤酒就去超 ...

  3. vue使用import()提示语法错误

    一.使用import 引入 组件 二.编译时提示语法检测错误 三.解决方法 第一种方式:直接安装 D:\YLKJPro\CMWEB\03Implement\CustomMapWeb>npm in ...

  4. vue+iview 动态调整Table的列顺序

    需求:因table列太多,且每个部门关注的信息不一样,拖来拖去不方便观看,客户想让Table列可以拖动,且可以保存顺序. 但是搞动态拖动太难了,我不会,于是改为操作columns数据 思路: < ...

  5. Galaxy Release_20.09 发布,新增多个数据上传组件

    Galaxy Project(https://galaxyproject.org/)是在云计算背景下诞生的一个生物信息学可视化分析开源项目. 该项目由美国国家科学基金会(NSF).美国国家人类基因组研 ...

  6. AI与健康管理:趋势与未来

    目录 引言 随着人工智能技术的不断发展,健康管理也逐渐成为了一个新的研究领域.AI技术可以为健康管理提供智能化.个性化.高效的支持,使得健康管理更加人性化和科学.本文将介绍AI与健康管理的技术原理.实 ...

  7. 一文了解Go语言的匿名函数

    1. 引言 无论是在Go语言还是其他编程语言中,匿名函数都扮演着重要的角色.在本文中,我们将详细介绍Go语言中匿名函数的概念和使用方法,同时也提供一些考虑因素,从而帮助在匿名函数和命名函数间做出选择. ...

  8. .Net全网最简Redis操作

    支持.Net/.Net Core/.Net Framework,可以部署在Docker, Windows, Linux, Mac. Redis作为一款主流的缓存工具在业内已广受欢迎.本文将会介绍操作R ...

  9. 基于DSP的设备振动信号的采集技术方案综述

    前记  在能源领域,由于很多地方都是无人值守,设备故障检测是一个必须面对的问题.笔者通过几个行业案例了解到,由于很多设备发生故障时候会产生特定频谱的声音,所以该行业对振动监测的需求特别强烈,由于涉及到 ...

  10. Linux 图形栈从入门到放弃 --- Linux 图形相关概念简介

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 环境说明   无 前言   在日常生活中,像我们常用的ubunt ...