《Kali渗透基础》07. 弱点扫描(一)

news2024/11/18 3:48:23

kali渗透

  • 1:漏洞发现
    • 1.1:Exploit-DB
    • 1.2:searchsploit
    • 1.3:nmap
  • 2:漏洞管理
  • 3:弱点扫描类型
  • 4:漏洞基本概念
    • 4.1:CVSS
    • 4.2:CVE
    • 4.3:OVAL
    • 4.4:CCE
    • 4.5:CPE
    • 4.6:CWE
    • 4.7:SCAP
    • 4.8:NVD
  • 5:漏洞管理
  • 6:扫描结果分析


本系列侧重方法论,各工具只是实现目标的载体。
命令与工具只做简单介绍,其使用另见《安全工具录》。

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

1:漏洞发现

如果手工的去发现漏洞:

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

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

知名的弱点扫描器:

  • OpenVAS / GVM
  • Nessus
  • Nexpose

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

  • Exploit-DB
  • searchsploit
  • Nmap

1.1:Exploit-DB

Exploit-DB(www.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.nseStuxnet(震网)蠕虫利用的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(漏报)

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


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

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

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

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

相关文章

TCP概念

文章目录 1.TCP1.1 为什么需要 TCP 协议&#xff1f;TCP 工作在哪一层&#xff1f;1.2 什么是 TCP &#xff1f;1.3 什么是 TCP 连接&#xff1f;1.4 如何唯一确定一个 TCP 连接&#xff1f;1.5 有一个 IP 的服务器监听了一个端口&#xff0c;它的 TCP 的最大连接数是多少&…

nginx的权限问题(13: Permission denied)解决办法

1、查看nginx启动用户和使用用户是否一致 ps aux | grep nginx 如图&#xff1a; 一个是www,一个是root用户 2、打开nginx配置文件 打开 nginx.conf 文件 查找nginx.conf的位置 ps -aux | grep nginx 3、把 nginx 改为 root 4、重启nginx服务 service nginx restart …

性能监控平台 | Prometheus+InfluxDB + Grafana!

在本文中&#xff0c;我将把几个常用的监控部分给梳理一下。前面我们提到过&#xff0c;在性能监控图谱中&#xff0c;有操作系统、应用服务器、中间件、队列、缓存、数据库、网络、前端、负载均衡、Web 服务器、存储、代码等很多需要监控的点。显然这些监控点不能在一个专栏中…

USG6000V 防火墙的策略应用

将G1/0/0划入TRUST区 firewall zone trustadd interface GigabitEthernet1/0/0 将G1/0/1划入UNTRUST区 firewall zone untrustadd interface GigabitEthernet1/0/1在防火墙上配置放行策略 security-policyrule name 1source-zone trustdestination-zone localdestination-z…

2023年船舶、海洋与海事工程国际会议(NAOME 2023) | Ei Scopus双检索

会议简介 Brief Introduction 2023年船舶、海洋与海事工程国际会议(NAOME 2023) 会议时间&#xff1a;2023年10月20日-22日 召开地点&#xff1a;中国镇江 大会官网&#xff1a;NAOME 2023-2023 International Conference on Naval Architecture and Ocean & Marine Engine…

Yolov8方法笔记

目录 1、安装yolov8的虚拟环境 &#xff08;1&#xff09;创建虚拟环境 &#xff08;2&#xff09;安装pytorch ​编辑 2、下载yolov8模型 3、解压缩&#xff0c;解压后的文件 4、将转换数据集&#xff08;以口罩检测为准&#xff09; 5、配置和执行 6、验证 7、测试 1、…

14-C++基本算法-深度优先搜索

&#x1f4da; 从递归阶乘到深度优先搜索 在学习深度优先搜索之前&#xff0c;我们先回顾一下递归阶乘的实现。递归阶乘是一种典型的递归算法&#xff0c;它通过将问题分解为更小的子问题来解决。 #include <iostream> using namespace std;int factorial(int n) {if (…

【PCIE】协议分析之-hot-reset热复位

被上游指定热复位整个通路 当高层&#xff08;higher Layer&#xff09;指示某些通道进行热复位&#xff08;Hot Reset&#xff09;时&#xff0c;以下操作将被执行&#xff1a; 所有在配置的链路中的通道都会发送带有热复位位&#xff08;Hot Reset bit&#xff09;和配置的…

IntelliJ IDEA运行bat脚本,自动taskkill端口进程

在idea运行完程序后&#xff0c;再次重新运行时如果之前的程序仍然占用着端口会导致报错&#xff1a;端口被占用。 因此每次重新运行都需要移除之前的端口所在的进程&#xff0c;这对于调试开发过程是非常频繁的操作。 需要一个快速的办法直接移除端口进程&#xff0c;如下&a…

Haskell 入门学习(一)之安装试用 Haskell

Haskell 入门学习&#xff08;一&#xff09;之安装试用 Haskell 文章目录 Haskell 入门学习&#xff08;一&#xff09;之安装试用 Haskell前言&#xff1a;安装Windows 安装Linux、MacOs 使用 VSCode 进行代码编写创建一个简单的项目使用 Cabal 管理项目项目大致结构运行项目…

Verilog学习笔记3:与非门

1位的与非门 代码&#xff1a; timescale 1ns/10ps module nand_gate( A, B, Y);input A; input B; output Y;assign Y~(A&B);endmodule//testbenchmodule nand_gate_tb; reg A; reg B; wire Y;nand_gate nand_gate(.A(A),.B(B),.Y(Y));initial begin A<0;B<0;#10 …

Ubuntu创建Git项目并push到远程Github

首先在本地创建git仓库 jasminelhl:~/prj$ mkdir Github-test jasminelhl:~/prj$ cd Github-test jasminelhl:~/prj/Github-test$ git init 提示&#xff1a;使用 master 作为初始分支的名称。这个默认分支名称可能会更改。要在新仓库中 提示&#xff1a;配置使用初始分支名&a…

MySQL之CONCAT、CONCAT_WS和GROUP_CONCAT函数用法

目录 一、准备数据 二、concat函数 1.语法格式 2.语法说明 3.场景使用 4.限制条件 三、concat_ws函数 1.语法格式 2.语法说明 3.场景使用 4.限制条件 四、group_conat函数 1.语法格式 2.语法说明 3.场景使用 4.限制条件 一、准备数据 #创建用户表 CREATE TABL…

[已解决]Springboot项目启动时端口被占用

目录 1.打开CMD窗口 2.找到端口号 3.找到对应程序 4.终止任务 5.再次查询端口&#xff0c;没有找到对应的端口号说明进行杀死成功 6. 重新启动项目&#xff0c;可以正常启动 Springboot端口号默认8080&#xff0c;启动时经常会遇到端口号被占用的情况&#xff0c;报错信息…

swift 打包xcframework报错“No ‘swiftinterface‘ files found within“

1、分别编译当前的framework&#xff0c;生成对应的真机framework与模拟器framework 生成对应framework.png 2、新建一个对应接收xcframework的文件夹&#xff0c;以XXX.xcframework格式命名 3、打开终端利用xcodebuild -create-xcframework命令进行生成xcframework。 具体如…

第一章 计算机网络概述【计算机网络】

第一章 计算机网络概述【计算机网络】 前言推荐第一章 计算机网络概述1.1 计算机网络在信息时代中的作用1.2互联网概述1.2.1 网络的网络1.2.2互联网基础结构发展的三个阶段1.2.3互联网的标准化工作 1.3互联网的组成1.3.1互联网的边缘部分1.3.2互联网的核心部分 1.4计算机网络在…

网络——网络排错

https://zhuanlan.zhihu.com/p/607083215 背景 出现网络故障时&#xff0c;我们需要做什么呢&#xff0c;做完网工&#xff08;不如dog&#xff09;&#xff0c;第一时间会被怀疑是网络问题&#xff0c;所以&#xff0c; 前端PC 前端PC能做的东西&#xff0c;不多&#xff0…

Go语言程序设计(十三)方法

Go语言虽然没有类(Class),但同样支持方法(Method),Go语言里的Method其实就是一个带接收者(Receiver)的函数。 一、Method的基本定义 Go语言中的Method类似于一个函数&#xff0c;只是函数名前多了一个绑定类型参数——receiver。 基本格式如下&#xff1a; func (recv recei…

启用 -parameters 编译选项简化 mybatis @Param 注解重复问题

在使用 mybatis 查询的时候, 只需要定义一个查询接口, mybatis 会为我们注入注解实现或是 xml 实现. 但当我们需要传递参数时, 通常需要 Param 来定义一个名称, 但经常的, 我们也不难发现, 这个名称与参数名称通常是一样的: User findUser(Param("username") String…

Docker使用Volumes做数据持久化

场景&#xff1a;docker 安装的 Pgsql 每当电脑重启docker重启 会发现 数据库都没了数据也没了 解决办法&#xff1a;使用docker volumes 做挂载 以PGSQL为例子&#xff0c;理论其他数据库或者项目需要持久化数据 应该都可以 1.创建Volumes 名字自己可以随便取。 2.拉去镜像…