详细介绍渗透测试与漏洞扫描
一、概念
渗透测试:
渗透测试并没有一个标准的定义,国外一些安全组织达成共识的通用说法;通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动的主动分析,这个分析是从一个攻击者可能存在的位置来及进行的,并且从这个位置有条件主动利用安全漏洞。
渗透测试有两个显著特点:
1、渗透测试是一个渐进的并且逐步深入的过程,由浅入深,一步一步的刺向目标的心脏,就是所谓的夺取靶机。2、渗透测试一方面从攻击者的角度,检验业务系统的安全防护措施是否有效,各项安全策略是否得到惯切实施,另一方面渗透测试会将潜在的安全风险以真实事件的方式凸显出来,渗透测试结束后,编写渗透测试报告反馈给客户,立即进行安全加固,解决测试发现的安全问题。
渗透测试分类:
通常分为黑盒测试、白盒测试、灰盒测试。
漏洞扫描:
漏洞扫描简称漏扫是指基于漏洞数据库,通过扫描等手段对指定的远程或者本地计算机系统的安全脆弱性进行检测,发现可利用漏洞的一种安全检测。
漏扫的工具:
我们在工作中一般都是使用NESSUS、awvs、OpenVAS、NetSparker、OWASP ZAP等工具。
漏洞扫描分类:
一般分为网络扫描和主机扫描。
通过漏洞扫描,扫描者能够发现远端网络或主机的配置信息、TCP/UDP端口的分配、提供的网络服务、服务器的具体信息等。

二、工作流程
渗透测试的一般过程:
主要有明确目标、信息收集、漏洞探测、漏洞验证、信息分析、获取所需、信息整理、形成测试报告。
渗透测试操作难度大,而且渗透测试的范围也是有针对性的,而且是需要人为参与。听说过漏洞自动化扫描,但你绝对听不到世界上有自动化渗透测试。渗透测试过程中,信息安全渗透人员小使用大量的工具,同时需要非常丰富的专家进行测试,不是你培训一两月就能实现的。
漏洞扫描是在网络设备中发现已经存在的漏洞,比如防火墙,路由器,交换机服务器等各种应用等等,该过程是自动化的,主要针对的是网络或应用层上潜在的及已知漏洞。漏洞的扫描过程中是不涉及到漏洞的利用的。漏洞扫描在全公司范围进行,需要自动化工具处理大量的资产。其范围比渗透测试要大。漏洞扫描产品通常由系统管理员或具备良好网络知识的安全人员操作,想要高效使用这些产品,需要拥有特定于产品的知识。
漏洞扫描主要通过ping扫描、端口扫描、OS探测、脆弱性探测、防火墙扫描五种主要技术,其中每一种技术实现的目标和运用的原理都是不相同的,ping扫描工作在互联网层;端口扫描、防火墙探测工作在传输层;OS探测、脆弱性探测工作在互联网测试层、传输层、应用层。ping扫描主要是确定主机的IP地址,端口扫描探测目标主机的端口开放情况,然后基于端口扫描的结果,进行OS探测和脆弱点扫描。

一般大型公司会采购自动化的漏洞扫描产品,每天或者每周都能定期的进行漏洞扫描,类似于在电脑上安装杀毒软件,每天只需要扫一扫就可以,定期的进行杀毒。而渗透测试的在新产品上线,或者发现公司有非常重要的数据在服务器上,害怕泄露,被窃取,让专业的安全厂商,定期进行人工的渗透测试。
可见两者并不是独立存在的,也是需要结合使用,才能达到最佳的效果,确保公司的信息化安全。
三、性质
渗透测试的侵略性要强很多,它会试图使用各种技术手段攻击真实生产环境;相反,漏洞扫描只会以一种非侵略性的方式,仔细地定位和量化系统的所有漏洞。
我们可以结合案例来说一下漏洞扫描与渗透测试的区别:
这里我们已Nessus为例做漏洞扫描测试,现在的Nessus扫描的IP地址的个数做了限制,貌似只能扫描16个主机IP,但是小白我在朋友的帮助下搞到了一个Nessus的虚机版本。首先先本地打开https://192.168.205.149:8834,Nessus登陆的端口一般是8834,我本地扫描了一下我的虚机主机。

扫描的结果可以导出来进行本地查看的:



以上就是Nessus漏洞扫描的步骤,一般会发现主机开启的端口、运行的服务、系统漏洞、溢出漏洞、中间件(低版本的会输出中高低漏洞标识)、ssl版本低的问题,这些漏扫主要的输出成果。就如同上述所说漏洞扫描是仔细地定位和量化系统的所有漏洞,而渗透测试则是利用各种攻击手段(在授权的情况下)对真实环境或者测试环境进行攻击。不限于社会工程学。相比漏洞扫描要做的工作多的多。
一般做漏洞扫描在内网做的比较多,客户给你主机资产列表,然后你根据资产列表的ip地址添加到漏洞扫描设备中进行自动化的扫描。而渗透测试(白盒、黑盒、灰盒),我在渗透测试中主要做黑盒测试,相比大家都知道黑盒测试前期是非常枯燥的,需要自己去寻找目标的相关资产。比如挖子域名、跑敏感目录、扫端口等,前期收集信息的多少就决定后期渗透的程度。一般的渗透测试报告输出格式为一下:

四、消耗成本以及时间
相比大家都知道渗透测试与漏洞扫描的成本以及消耗的时间,一般来说渗透测试需要前期的各种准备工作,前期信息资产收集的越全面,后期的渗透就会越深入,不仅是一个由浅入深的过程,更是一个连锁反应;相比漏洞扫描这个消耗的时间就要小的多了,漏洞扫描一般都是定时自动化扫描的。
总而言之,漏洞扫描和渗透测试二者结合,才能得到最佳的效果,帮助确定最适合于公司、部门或实践的控制措施——无论是漏洞扫描还是渗透测试都非常重要,应用于不同的目的,产生不同的结果。
如果你对网络安全入门感兴趣,那么你点击这里👉CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
如果你对网络安全感兴趣,学习资源免费分享,保证100%免费!!!(嘿客入门教程)
👉网安(嘿客)全套学习视频👈
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
👉网安(嘿客红蓝对抗)所有方向的学习路线👈
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
学习资料工具包
压箱底的好资料,全面地介绍网络安全的基础理论,包括逆向、八层网络防御、汇编语言、白帽子web安全、密码学、网络安全协议等,将基础理论和主流工具的应用实践紧密结合,有利于读者理解各种主流工具背后的实现机制。
面试题资料
独家渠道收集京东、360、天融信等公司测试题!进大厂指日可待!
👉嘿客必备开发工具👈
工欲善其事必先利其器。学习嘿客常用的开发软件都在这里了,给大家节省了很多时间。
这份完整版的网络安全(嘿客)全套学习资料已经上传至CSDN官方,朋友们如果需要点击下方链接也可扫描下方微信二v码获取网络工程师全套资料【保证100%免费】
如果你有需要可以点击👉CSDN大礼包:《嘿客&网络安全入门&进阶学习资源包》免费分享
相关文章:
详细介绍渗透测试与漏洞扫描
一、概念 渗透测试: 渗透测试并没有一个标准的定义,国外一些安全组织达成共识的通用说法;通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动的主动分析…...
Scikit-learn聚类方法代码批注及相关练习
一、代码批注 代码来自:https://scikit-learn.org/stable/auto_examples/cluster/plot_dbscan.html#sphx-glr-auto-examples-cluster-plot-dbscan-py import numpy as np from sklearn.cluster import DBSCAN from sklearn import metrics from sklearn.datasets …...
C#程序的启动显示方案(无窗口进程发送消息) - 开源研究系列文章
今天继续研究C#的WinForm的实例显示效果。 我们上次介绍了Winform窗体的唯一实例运行代码(见博文:基于C#的应用程序单例唯一运行的完美解决方案 - 开源研究系列文章 )。这就有一个问题,程序已经打开了,这时候再次运行该应用程序,…...
java泛型和通配符的使用
泛型机制 本质是参数化类型(与方法的形式参数比较,方法是参数化对象)。 优势:将类型检查由运行期提前到编译期。减少了很多错误。 泛型是jdk5.0的新特性。 集合中使用泛型 总结: ① 集合接口或集合类在jdk5.0时都修改为带泛型的结构② 在实例化集合类时…...
【网络】自定义协议 | 序列化和反序列化 | 以tcpServer为例
本文首发于 慕雪的寒舍 以tcpServer的计算器服务为例,实现一个自定义协议 阅读本文之前,请先阅读 tcpServer 本文完整代码详见 Gitee 1.重谈tcp 注意,当下所对tcp的描述都是以简单、方便理解起见,后续会对tcp协议进行深入解读 …...
06-3_Qt 5.9 C++开发指南_多窗体应用程序的设计(主要的窗体类及其用途;窗体类重要特性设置;多窗口应用程序设计)
文章目录 1. 主要的窗体类及其用途2. 窗体类重要特性的设置2.1 setAttribute()函数2.2 setWindowFlags()函数2.3 setWindowState()函数2.4 setWindowModality()函数2.5 setWindowOpacity()函数 3. 多窗口应用程序设计3.1 主窗口设计3.2 QFormDoc类的设计3.3 QFormDoc类的使用3.…...
(力扣)用两个栈实现队列
这里是栈的源代码:栈和队列的实现 当然,自己也可以写一个栈来用,对题目来说不影响,只要符合栈的特点就行。 题目: 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、pe…...
【自动化测试框架】关于unitttest你需要知道的事
一、UnitTest单元测试框架提供了那些功能 1.提供用例组织和执行 如何定义一条“测试用例”? 如何灵活地控制这些“测试用例”的执行? 2.提供丰定的断言方法 当测试用例的执行结果与预期结果不一致时,判定测试用例失败。在自动化测试中,通过“断言”…...
手机便签中可以打勾的圆圈或小方块怎么弄?
在日常的生活和工作中,很多网友除了使用手机便签来记录灵感想法、读书笔记、各种琐事、工作事项外,还会用它来记录一些清单,例如待办事项清单、读书清单、购物清单、旅行必备物品清单等。 在按照记录的清单内容来执行的时候,为了…...
【Linux】gdb 的使用
目录 1. 使用 gdb 的前置工作 2. 如何使用 gdb 进行调试 1、如何看到我的代码 2、如何打断点 3、怎么运行程序 4、如何进行逐过程调试 5、如何进行逐语句调试 6、如何监视变量值 7、如何跳到指定位置 8、运行完一个函数 9、怎么跳到下一个断点 10、如何禁用/开启…...
C++11之右值引用
C11之右值引用 传统的C语法中就有引用的语法,而C11中新增了的 右值引用(rvalue reference)语法特性,所以从现在开始我们之前学习的引用就叫做左值引用(lvalue reference)。无论左值引用还是右值引用&#…...
【PHP的设计模式】
PHP的设计模式 一、策略模式二、工厂模式三、单例模式四、注册模式五、适配器模式六、观察者模式 一、策略模式 策略模式是对象的行为模式,用意是对一组算法的封装。动态的选择需要的算法并使用。 策略模式指的是程序中涉及决策控制的一种模式。策略模式功能非常强…...
React 之 Redux - 状态管理
一、前言 1. 纯函数 函数式编程中有一个非常重要的概念叫纯函数,JavaScript符合函数式编程的范式,所以也有纯函数的概念 确定的输入,一定会产生确定的输出 函数在执行过程中,不能产生副作用 2. 副作用 表示在执行一个函数时&a…...
集合转数组
首先,我们在看到集合转数组的时候可能第一个想到的就是toArray(),但是我们在调用 toArray()的时候,可能会遇到异常 java.lang.ClassCastException;这是因为 toArray()方法返回的类型是 Obejct[],如果我们将其转换成其他类型&#…...
使用Python将Word文档转换为PDF的方法
摘要: 文介绍了如何使用Python编程语言将Word文档转换为PDF格式的方法。我们将使用python-docx和pywin32库来实现这个功能,这些库提供了与Microsoft Word应用程序的交互能力。 正文: 在现实生活和工作中,我们可能会遇到将Word文…...
Java 判断一个字符串在另一个字符串中出现的次数
1.split实现 package com.jiayou.peis.official.account.biz.utils;public class Test {public static void main(String[] args) {String k"0110110100100010101111100101011001101110111111000101101001100010101" "011101100101011010100011111010111001001…...
设计模式十三:代理(Proxy Pattern)
代理模式是一种结构型设计模式,它允许通过在对象和其真实服务之间添加一个代理对象来控制对该对象的访问。代理对象充当了客户端和真实服务对象之间的中介,并提供了额外的功能,如远程访问、延迟加载、访问控制等。 代理模式的使用场景包括&a…...
Redis基础 (三十八)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、概述 1.1 NoSQL 1.2 Redis 二、安装 2.1 安装方式 : 三、目录结构 3.1 rpm -ql redis 3.2 /etc/redis.conf 主配置文件 3.3 /var/lib/redis …...
maven中的scope
1、compile:默认值,可省略不写。此值表示该依赖需要参与到项目的编译、测试以及运行周期中,打包时也要包含进去。 2、test:该依赖仅仅参与测试相关的工作,包括测试代码的编译和执行,不会被打包,…...
【网络基础实战之路】实现RIP协议与OSPF协议间路由交流的实战详解
系列文章传送门: 【网络基础实战之路】设计网络划分的实战详解 【网络基础实战之路】一文弄懂TCP的三次握手与四次断开 【网络基础实战之路】基于MGRE多点协议的实战详解 【网络基础实战之路】基于OSPF协议建立两个MGRE网络的实验详解 PS:本要求基于…...
Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...
1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...
【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...
mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包
文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...
