当前位置: 首页 > news >正文

网络安全渗透测试的相关理论和工具

网络安全

  • 一、引言
  • 二、网络安全渗透测试的概念
    • 1、黑盒测试
    • 2、白盒测试
    • 3、灰盒测试
  • 三、网络安全渗透测试的执行标准
    • 1、前期与客户的交流阶段
      • 1.1 渗透测试的目标网络
      • 1.2 进行渗透测试所使用的方法
      • 1.3 进行渗透测试所需要的条件
      • 1.4 渗透测试过程中的限制条件
      • 1.5 渗透测试的工期
      • 1.6 渗透测试的费用
      • 1.7 渗透测试的预期目标
    • 2、情报的搜集阶段
      • 2.1 被动扫描
      • 2.2 主动扫描
    • 3、威胁建模阶段
    • 4、漏洞分析阶段
    • 5、洞利用阶段
    • 6、后渗透攻击阶段
    • 7、报告阶段
  • 三、网络安全渗透测试的常用工具
    • 1、Nmap
    • 2、Maltego
    • 3、Recon-NG
    • 4、OpenVAS
    • 5、Metasploit
    • 6、SET
    • 7、Ettercap
    • 8、Burp Suite
    • 9、Wireshark
  • 四、渗透测试报告的编写
    • 1、编写渗透测试报告的目的
    • 2、编写渗透测试报告的内容摘要
    • 3、编写渗透测试报告包含的范围
    • 4、安全交付渗透测试报告
    • 5、渗透测试报告应包含的内容

一、引言

在电影《金蝉脱壳》中,雷·布雷斯林( Ray Breslin)是这个世界上最强的“越狱高手”之一,他用 8 年时间成功地从 14 所守卫高度森严的重型监狱中逃脱。但是,雷·布雷斯林并不是一个罪犯,他真实的身份是美国国家安全局的一位监狱安全专家。雷·布雷斯林以罪犯的身份进入监狱,寻找监狱的漏洞。他的每一次成功越狱,都代表着他已经找出了这个监狱安全方面的漏洞。当然,雷·布雷斯林并不是为了破坏,而是为了确保监狱中每一个服刑的罪犯都无法逃脱。他的每一次成功越狱,都会使监狱变得更加坚固,因此他是一个合法的越狱者。
随着网络的迅猛发展,人们也越来越重视网络的安全问题。无论网络的安全机制设计得多么好,都可能存在不易察觉的漏洞。因此,与雷·布雷斯林工作性质类似的网络安全渗透测试应运而生。

  • 网络安全渗透测试的概念。
  • 网络安全渗透测试的执行标准
  • 网络安全渗透测试的常用工具。
  • 渗透测试报告的编写。

二、网络安全渗透测试的概念

首先我们先来了解一下网络安全渗透测试。长期以来,很多人都认为网络安全渗透测试就是使用扫描工具找出目标网络的漏洞,甚至有一些入行不久的渗透测试人员也这样认为。基于这样的理解,很多人在渗透测试过程中仅仅使用漏洞扫描工具对目标网络进行扫描。漏洞扫描的确很重要,但它只是整个网络安全渗透测试的一部分。实际上,大多数时候的漏洞扫描结果也仅仅能够反映出目标网络是否及时进行了系统更新。
实际上,网络安全渗透测试严格的定义是一种针对目标网络进行安全检测的评估。 通常这种测试由专业的渗透测试人员完成,目的是发现目标网络存在的漏洞和安全机制方面的隐患,并提出改善方法。渗透测试人员会采用和黑客相同的方式对目标网络进行入侵,这样就可以检测目标网络现有的安全机制是否足以抵挡恶意的攻击。
根据事先对目标网络的了解程度,网络安全渗透测试的方法有黑盒测试、白盒测试及灰盒测试3种。

1、黑盒测试

黑盒测试也被称作外部测试。在进行黑盒测试时,事先假定渗透测试人员对目标网络的内部结构和所使用的程序完全不了解,从网络外部对其网络安全进行评估。黑盒测试中需要耗费大量的时间来完成对目标网络的信息的搜集。除此之外,黑盒测试对渗透测试人员的要求也是最高的。

2、白盒测试

白盒测试也被称作内部测试。在进行白盒测试时,渗透测试人员必须事先清楚地知道目标网络的内部结构和技术细节。相比黑盒测试,白盒测试的目标是明确定义好的,因此白盒测试无须进行目标范围定义、信息搜集等操作。进行这种渗透测试的目标网络往往是某个特定业务对象,相比黑盒测试,白盒测试往往能够给目标网络带来更大的价值。

3、灰盒测试

将白盒测试和黑盒测试组合,就是灰盒测试。在进行灰盒测试时,渗透测试人员只能了解部分目标网络的信息,但不会掌握网络内部的工作原理和某些限制信息。
网络安全渗透测试的测试对象包括一切和网络相关的基础设施,其中包括以下几个方面。

  • 网络设备,主要包含连接到网络的各种物理实体,如路由器、交换机、防火墙、无线接入点、服务器、个人计算机等。
  • 操作系统,指管理和控制计算机硬件与软件资源的计算机程序,如个人计算机上0常使用的Windows7、Windows 10等,服务器上常使用的Windows Server 2012和各种Linux等。
  • 物理安全,主要是指机房环境、通信线路等方面的安全0
  • 应用程序,主要是针对某种应用目的所使用的程序。
  • 管理制度,这部分其实是全部测试对象中最为重要的,指的是为保证网络安全不用户提出的要求和做出的限制。网络安全渗透测试的成果通常是一份报告。这份报告中应当给出目标网络中存在的威胁和威胁的影响程度,并给出对这些威胁的改进建议和修复方案。

另外,需要注意的一点是,网络安全渗透测试并不能等同于黑客行为。相比黑客行为网络安全渗透测试具有以下几个特点。

  • 网络安全渗透测试是商业行为,要由客户主动提出,并给予授权许可才可以进行。
  • 网终安全渗透测试必须对目标网络进行整体评估和尽可能全面的分析。
  • 网络安全渗透测试的目的是改善用户的网络安全机制。

三、网络安全渗透测试的执行标准

作为网络安全渗透测试的执行者,我们首先要明确在整个渗透测试过程中需要完成的工作。当我们接收到客户的渗透测试任务时,往往对所要进行测试的目标网络知之甚少甚至一无所知。而在渗透测试结束的时候,我们对目标网络的了解程度往往已经远远超过了客户。在此期间,我们要做大量的研究。整个渗透测试过程可以分成以下7个阶段。

  • 前期与客户的交流阶段。
  • 情报的搜集阶段。
  • 威胁建模阶段。
  • 漏洞分析阶段。
  • 漏洞利用阶段。
  • 后渗透攻击阶段。
  • 报告阶段。

1、前期与客户的交流阶段

在前期与客户的交流阶段中,渗透测试人员需要与客户进行商讨来确定整个渗透测试的范围,也就是说要确定对目标网络的哪些设备和哪些问题进行测试。在整个商讨的过程中,我们重点要考虑的因素主要有以下几个。

1.1 渗透测试的目标网络

通常这个目标网络是一个包含很多主机的网络。这时我们需要确定的是渗透测试所涉及的IP 地址范围和域名范围。但是客户所使用的 Web 应用程序和无线网络,甚至安保设备和管理制度也可能会是渗透测试的测试对象。同样需要明确的还有,客户需要的是全面评估,还是只针对其中某一方面或部分的评估。

1.2 进行渗透测试所使用的方法

这个阶段我们可以采用的方法主要有黑盒测试、白盒测试及灰盒测试 3 种

1.3 进行渗透测试所需要的条件

如果采用的是白盒测试,就需要客户提供测试所必需的信息和权限,客户最好可以按受我们的问卷调查。确定可以进行渗透测试的时间,是只能在周末进行,还是随时可以进行。如果在渗透测试过程中导致测试对象受到了破坏,应该如何补救等。

1.4 渗透测试过程中的限制条件

在整个渗透测试过程中,必须与客户明确哪些设备不能进行渗透测试,哪些技术不能应用等。另外,也需要明确在哪些时间点不能进行渗透测试。

1.5 渗透测试的工期

根据客户的需求,我们需要给出整个渗透测试的进度表,让客户了解渗透测试的开始时间与结束时间,以及我们在每个时间段所进行的工作。

1.6 渗透测试的费用

这个话题其实很少出现在书中,但这恰恰是一个在实践中很复杂的问题,需要考虑的因素很多。如果我们对一个拥有 100 台计算机的网络进行渗透测试,收取的费用为 10万元,那么平均每一台计算机的费用就是 1000 元。但这并不是一种线性的关系,如果某个客户只要求我们对一台计算机进行渗透测试,那么费用可能不只是 1000 元了,因为平均工作量明显不同。在计算费用的时候要充分考虑各种成本。

1.7 渗透测试的预期目标

渗透测试人员必须牢记的一点是,我们并非黑客。发现目标网络存在的漏洞,获取目标网络的控制权限,或者得到目标网络的管理密码只是完成了一部分任务。我们还需要明确客户期望在渗透测试结束时应该达到什么目标,最终的渗透测试报告应该包含哪些内容

2、情报的搜集阶段

这里的“情报”指的是目标网络、服务器、应用程序等的所有信息。渗透测试人员需要使用各种资源尽可能地获取测试对象的相关信息。
如果我们采用的是黑盒测试,那么情报的搜集阶段(也称为信息搜集阶段)可以说是救个渗透测试过程中最为重要的一个阶段。所谓“知己知彼,百战不殆”也正说明了情报搜集的重要性。这个阶段所使用的技术可以分成两种。

2.1 被动扫描

这种扫描方式通常不会被对方发现。如果我们希望了解某个人,那么可以向他身边的人询问,如他的邻居、他的同事,甚至他所在社区的工作人员等。搜集到的信息包括哪些呢?可能包括他的名字、年龄、职业、籍贯、兴趣、学历等。
同样,对于一个目标网络,我们也可以获得很多信息。如现在我们仅仅知道客户的-个域名,通过这个域名我们就可以使用 Whois 查询到这个域名所有者的联系方式(包括电话号码、电子邮箱、公司所在地等 ,以及域名的注册和到期时间等。通过搜索引擎可查找与该域名相关的电子邮箱、博客、文件等。

2.2 主动扫描

这种扫描方式的技术性比较强,通常会使用专业的扫描工具来对目标网络进行扫描扫描之后将会获得的信息包括目标网络的结构、目标网络所使用设备的类型、目标主机上运行的操作系统、目标主机上所开放的端口、目标主机上所提供的服务、目标主机上所运行的应用程序等。

3、威胁建模阶段

如果将开展一次渗透测试看作指挥一场对抗赛,那么威胁建模阶段就像是在制定策略。在这个阶段有两个关键性的要素一一资产和攻击者(攻击群体)。首先我们要对客户的资产进行评估,找出其中的重要资产。如果我们的客户是一家商业机构,那么这家机构的客户信息就是重要资产之一。
在这个阶段主要考虑以下问题。

  • 哪些资产是目标网络中的重要资产
  • 攻击时采用的技术和手段。
  • 哪些攻击者可能会对目标网络造成破坏
  • 这些攻击者会使用哪些方法进行破坏。

分析不同攻击者发起攻击的可能性,可以更好地帮助我们确定渗透测试时所使用的技术和工具。通常这些攻击者可能是以下几种。

  • 有组织的恶意机构。
  • 黑客。
  • “脚本小子”。
  • 内部员工。

4、漏洞分析阶段

漏洞分析阶段是从目标网络中发现漏洞的过程。漏洞可能位于目标网络的任何一个位置,从服务器到交换机、从所使用的操作系统到 Web 应用程序等都是我们要检查的对象。我们在这个阶段会根据之前搜集的情报发现的目标网络的操作系统、开放端口及服务程序等信息,查找和分析目标网络中存在的漏洞。这个阶段如果单纯依靠手动分析来完成,是十分耗时、耗力的。不过 Kali Linux 2 操作系统提供了大量的网络和应用漏洞评估工具利用这些工具可以自动化地完成这些任务。另外,需要注意的一点是,对目标网络的漏洞分析不仅限于软件和硬件,还需要考虑人的因素,也就是长时间地研究目标人员的心理以便对其实施“欺骗”,从而达到渗透目标。

5、洞利用阶段

找到目标网络上存在的漏洞之后,就可以利用漏洞渗透程序对目标网络进行测试了在漏洞利用阶段,我们关注的重点是,如何绕过目标网络的安全机制来控制目标网络或访问目标资源。如果我们在漏洞分析阶段顺利完成了任务,那么漏洞利用阶段就可以准确、顺利地进行。漏洞利用阶段的渗透测试应该具有精准的范围。漏洞利用的主要目标是获取我们之前评估的重要资产。进行渗透测试时还应该考虑成功的概率和对目标网络可能造成的最大破坏。
目前较为流行的漏洞渗透程序工具是 Metasploit。通常这个阶段也是最为激动人心的因为渗透测试人员可以针对目标网络使用对应的入侵模块获得控制权限。

6、后渗透攻击阶段

后渗透攻击阶段和漏洞利用阶段连接得十分紧密,作为渗透测试人员,必须尽可能地将目标网络被渗透后可能产生的后果模拟出来。在后渗透攻击阶段可能要完成的任务包括以下几个。

  • 控制权限的提升。
  • 登录凭证的窃取。
  • 重要信息的获取。
  • 利用目标网络作为跳板。
  • 建立长期的控制通道。

这个阶段的主要目的是向客户展示当前网络存在的问题可能会带来的风险

7、报告阶段

报告阶段是整个渗透测试的最后一个阶段,同时也是最能体现我们工作成果的一个阶段,我们要将之前的所有发现以报告的形式提交给客户。实际上,这份报告也是客户唯一的需求。我们必须以简单、直接且尽量避免大量专业术语的报告向客户汇报测试的目标网络中存在的问题,以及可能产生的风险。这份报告应该包括目标网络最重要的威胁、使用渗透数据生成的表格和图标,以及对目标网络存在问题的修复方案、当前安全机制的改进建议等。

三、网络安全渗透测试的常用工具

在 BackTrack(也就是 KaliLinux 的前身)出现之前,执行网络安全渗透测试的方法很难统一。这主要是因为在 Linux 操作系统上存在大量的渗透测试工具,而渗透测试人员又往往会有不同的选择。这种情况的后果就是在进行渗透测试的教学或者培训时,很难有统规范的体系。
BackTrack 集成了大量的优秀工具,而且 BackTrack 按照这些T具的用途进行了分类这样我们在进行网络安全渗透测试时就无须面对数量众多的工具了。下面我们对几款较为流行的渗透测试工具进行简单介绍,这些工具也将会在本书的实例中讲解到。

1、Nmap

如果规定只能使用一款工具进行渗透测试,我的选择一定会是 Nmap,这是一款富有“传奇色彩”的渗透测试工具。Nmap 在国外已经被大量的渗透测试人员所使用,它的“身影”其至出现在了很多的影视作品中,其中影响力较大的是《黑客帝国》系列。在《黑客帝国2》中,崔妮蒂(Tritnity)就曾使用 Nmap 攻击安全外壳协议( Secure Shel1,SSH)服务,从而破坏了发电厂的工作。Nmap 是由Gordon Lyon 设计并实现的,于1997 年发布最初设计 Nmap 的目的只是希望打造一款强大的端口扫描工具,但是随着时间的推移Nmap的功能越来越全面。2009年7月17日,开源网络安全扫描工具Nmap 正式发布了5.00版,这是自1997年以来最重要的发布代表着Nmap 从简单的网络扫描工具变身为全方位的安全工具组件。可以毫不夸张地说,在 Nmap 面前,网络是没有“隐私”的。网经中有多少台主机、每台主机运行的操作系统、每台主机运行的应用程序,甚至每台主机上存在的漏洞等信息都可以利用Nmap 获得。

2、Maltego

Maltego和Nmap一样都是信息搜集工具,但是两者的工作方式全然不同。Nmap 是典型的主动扫描工具,而Maltego 则是被动扫描工具。和Nmap 获取的操作系统、端口、服务等信息不同,Maltego获取的往往是网络用户的信息。利用 Maltego,我们可以仅仅从个域名找到和它有关联的大量信息,并把这些信息整合。此外,Maltego 支持用户操作上的自定义行为,从而整合出最适合用户的“情报拓扑”

3、Recon-NG

Recon-NG是一个由 Python 编写的全面 Web 探测工具集,目前这个工具集中包含 80多个独立的模块。注意,不能简单地将 Recon-NG 看作一个主动扫描工具或者被动扫描工具,因为它提供了强大的开源 Web 探测机制可帮助透测试人员快速、彻底地进行探测。

4、OpenVAS

OpenVAS 是一个开放式漏洞评估系统,这是一款强大的工具。一般来说,这款工具也是大多数人眼中最为“神奇”的工具。因为你只需要把要测试的目标主机的 IP 地址填入OpenVAS,它就会把目标主机的操作系统(以下简称目标系统)上存在的漏洞显示出来也就是说你需要做的,仅仅是填写一个 IP 地址,而得到的却是一份关于目标系统存在漏洞的详细报告。OpenVAS 可以分成两个核心部分,一个是网络漏洞测试引擎,另一个是网络漏洞库。它的工作原理就是由网络漏洞测试引擎向目标主机发送特制的数据包,然后将目标主机的回应与网络漏洞库中的样本进行比较,如果匹配成功,则可以认为存在该漏洞。

5、Metasploit

Metasploit 可以说是当今最负盛名的渗透测试工具之一,在网络安全行业无人不知。如果说OpenVAS的用途是发现目标网络的漏洞,那么Metasploit 就是开启漏洞的“钥匙”拥有这把钥匙的人,可以轻而易举完成对目标网络的渗透。这款强大的工具是 H.D.Moore在 2003 年开发的,当时它只集成了少数几个可用于渗透测试的工具。这是一个革命性的突破,因为在 Metasploit 出现之前,渗透测试人员需要自已去编写漏洞渗透模块,或者通过各种途径寻找漏洞渗透模块。而 Metasploit 都助渗透测试人员从这样的工作中解放了出来,它集成了大量的漏洞渗透模块,统一了这些模块的使用方法,并且提供了大量的攻击载荷(Pavload)和辅助功能。可以这样说,“有了 Metasploit,几乎任何人都可以如同电影中的黑客一样轻松地入侵目标网络。”

6、SET

社会工程学是一门新兴的学科,近年来这门学科得到了迅速发展。越来越多的黑客入侵事件与社会工程学分不开。
我们经常会听说钓鱼邮件、钓鱼网站之类的说法,这些其实都是社会工程学的典型应用。David Kenned 使用 Python 编写了一个功能众多的社会工程学工具包-SET。SET利用人们的好奇心、信任、贪婪及一些错误来进行攻击。这个工具包提供了大量功能,如发送木马邮件、生成假冒网站、利用V 盘传播后门等。目前该工具包已经成为渗透测试行业部署实施社会工程学攻击的标准工具包。

7、Ettercap

Ettercap 的功能主要是实现对目标主机的欺骗和监听,这种工具的应用范围有限,但是在其应用范围之内功能极为强大。在一个网络中,有的计算机安全性能较高,因而难以渗透;而有的计算机安全性能较差,因而容易渗透。这时我们就可以首先选择安全性能较差的计算机进行渗透,然后就是 Ettercap 这类工具“大显身手”的时候,可以说利用 Ettercap渗透同一子网内的其他计算机是一件易如反掌的事情。

8、Burp Suite

随着互联网的快速发展,网络安全的侧重点已经向 We 应用程序转移。近年来,我们在进行网络安全渗透测试时主要的对象大都是 Web 应用程序目前几乎所有的企业都会对自身所使用的 Web 应用程序进行严格的测试。同时,Web 应用程序的问题也是近年来网络安全的“重灾区”。SQL 注入、跨站、Cookie 盗取等问题层出不穷。Burp Suite 就是一款专门测试 Web 应用程序的集成平台。Burp Suite 分为试用版和专业版,其中包含大量针对 Web 应用程序进行测试的工具,而且 Burp Suite 为这些工具设计了许多接口,我们还可以自行编写脚本以完善这些接口的功能。

9、Wireshark

严格来说,Wireshark 并不是一款专门的渗透测试工具,它的作用是监控网络的流量。但是我每次都会跟我的学生说,熟练使用 Wireshark 是网络渗透测试人员的必备技能之一Wireshark 主要有两个功能:一是可以监控网络,发现网络中的恶意流量,并找出这些恶意流量的源头;二是可以对应用的工具进行调试,有些时候我们在进行渗透测试的时候,运行了工具却完全没有反应,这时很难判断到底是这个工具本身的问题,还是目标网络的问题。利用 Wireshark 我们可以查看这个工具是否正常地发送了数据包,从而找到问题的源头。另外,通过这种调试也可以帮助我们学习这些工具的设计原理。

四、渗透测试报告的编写

对目标网络发起攻击并不是渗透测试的最终目的。正确的做法应该是将发现的问题以报告的形式提交给客户,让客户能够理解问题的严重性,并对此做出正确的回应,及时进行改正。这一切需要通过沟通才能完成,除了与客户之间的交流之外,还必须向客户提供份易于理解的渗透测试报告。渗透测试的最后一个也是最为重要的一个阶段就是报告阶段。一个合格的渗透测试人员应该具备良好的报告编写能力。渗透测试人员在编写渗透测试报告的时候应该保证报告的专业性,但是这份报告最后的阅读者往往是并不具备专业领域知识的管理人员,因此需要避免使用过于专业的术语,要易于理解。

1、编写渗透测试报告的目的

如果将整个渗透测试的过程看作工厂中的生产过程,那么渗透测试报告就是最后的产品。很多初入职场的渗透测试人员认为编写渗透测试报告是一项技术含量不高的工作,但这其实是一个错误的观点。渗透测试人员需要将整个渗透测试过程中完成的工作以报告的形式整理出来,这份报告必须以通俗易懂的语言全面地总结渗透测试过程中的工作。一种比较糟糕的情况就是我们对目标网络进行了大量的渗透测试工作,而且也发现了目标网络中存在的问题,但是目标网络的管理人员却无法理解我们的报告,或者对我们提出的问题没有给予足够的重视,这样我们在渗透测试时所花费的时间和精力都被浪费了。份合格的渗透测试报告应该让所有的人员都能够看懂,而且轻而易举地发现报告中指出的问题的重要性。这样一来,渗透测试人员就不能只具备渗透技能,还应具备安全问题的修复能力、表达能力等。

2、编写渗透测试报告的内容摘要

渗透测试报告的内容摘要其实就是对最终报告的一个概述,这部分内容必须避免长篇大论,应该以高度精练的语言概述我们在整个渗透测试过程的工作。另外,在描述时采用的语言也应该尽量简单,避免使用过于专业的术语,侧重描述目前目标网络中的漏洞可能带来的风险。
渗透测试报告的内容摘要应该以发现的漏洞作为切入点,结合客户的实际安全需求来完成。如果我们现在为一家银行做测试,那么银行可能最关注的就是所有客户的信息,黑客可能会利用银行对外发布 HTTP 服务的 Web 应用程序来窃取这些信息。我们在编写报告的过程中就应该重点描述在渗透测试过程中发现的与此相关的漏洞。如果在渗诱测试讨程中没有发现这一类的漏洞,就应该明确地说明这个事实。内容摘要中还应该说明为什么要进行这次渗透测试。

3、编写渗透测试报告包含的范围

当我们对目标网络进行测试的时候,不太可能会遇见所有的设备都存在问题的情形如我们对一个企业的所有服务器进行渗透测试时,可能只在其中一两台设备发现了问题当我们在编写渗透测试报告时,是将所有服务器的信息都写入渗透测试报告,还是只需要将有问题的设备的信息写入渗透测试报告呢?
和这一点类似的是,我们在编写渗透测试报告的时候,是将渗透测试过程中的全部测试都写入渗透测试报告,还是只将发现问题的测试写入渗透测试报告呢?
实际上,目前对这两个问题并没有一个权威的答案,不同的机构或者专家对此可能会有截然不同的看法,两种做法各有利弊

4、安全交付渗透测试报告

渗透测试的最后一个步骤就是将编写好的渗透测试报告交付给客户。一般来说,每一个机构都会使用专业的加密软件,如果你所在的是一个创业型企业,没有购买这方面的软件,那么你也可以使用 ZIP 格式来对报告进行加密。虽然这样做看起来不是十分专业,但是要比一份明文的报告好得多。
我们将加密之后的报告和密钥分开传递给客户,如通过电子邮件或者 盘将报告传递给客户,而密钥则以一个更安全的方式传递。

5、渗透测试报告应包含的内容

由于目前网络安全行业中并没有一份完全统一的标准,这一点给渗透测试人员在编写渗透测试报告时带来了困难。而刚刚进入这个行业的渗透测试人员可能会困惑,在一份渗透测试报告中应该包含哪些内容,这些内容又是如何组织的呢?
由于一次渗透测试需要的时间比较长,在此期间完成了大量的工作,我们可以使用WAPITI模型来将这些工作成果组织在一起
WAPITI模型一共包括以下6 点。

  • w(Why):进行渗透测试的原因。
  • A(Approach):在渗透测试过程中使用的方法
  • P(Problem):在渗透测试过程中发现的问题。
  • I(Interface):这些发现的问题会给目标网络带来的影响。
  • T(Tinker):给目标网络提出改进的方案。
  • I(Interpretation):明确指出客户应清楚了解的内容。

相关文章:

网络安全渗透测试的相关理论和工具

网络安全 一、引言二、网络安全渗透测试的概念1、黑盒测试2、白盒测试3、灰盒测试 三、网络安全渗透测试的执行标准1、前期与客户的交流阶段1.1 渗透测试的目标网络1.2 进行渗透测试所使用的方法1.3 进行渗透测试所需要的条件1.4 渗透测试过程中的限制条件1.5 渗透测试的工期1.…...

C 语言 xml 库的使用

在C语言中,可以使用多种库来处理XML文件,其中最常用的是libxml2库。libxml2是一个用于解析XML和HTML文档的C语言库,它提供了许多功能,包括解析XML文档、创建XML文档、验证XML文档等等。下面是一个简单的示例,演示读取l…...

群晖(Synology)云备份的方案是什么

群晖云备份方案就是在本地的 NAS 如果出现问题,或者必须需要重做整列的时候,保证数据不丢失。 当然,这些是针对有价值的数据,如果只是电影或者不是自己的拍摄素材文件,其实可以不使用云备份方案,因为毕竟云…...

Flask 中的跨域难题:定义、影响与解决方案深度解析

跨域(Cross-Origin)是指在浏览器中,一个页面的脚本试图访问另一个页面的内容时发生的安全限制。Flask 作为一种 Web 应用框架,也涉及到跨域问题。本文将详细介绍跨域的定义、影响以及解决方案,涵盖如何在 Flask 中处理…...

汽车IVI中控开发入门及进阶(十二):V4L2视频

前言 汽车中控也被称为车机、车载多媒体、车载娱乐等,其中音频视频是非常重要的部分,比如播放各种格式的音乐文件、播放蓝牙接口的音乐、播放U盘或TF卡中的音视频文件,看起来很简单。如果说音频来源于振动,那么图片图像就是光反射的一种表象。模拟信号表示在空间上是连续…...

gitlab下载安装

1.下载 官网rpm包 gitlab/gitlab-ce - Results in gitlab/gitlab-ce 国内镜像 Index of /gitlab-ce/yum/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 2.安装 rpm -ivh gitlab-ce-16.4.3-ce.0.el7.x86_64.rpm 3.配置 vim /etc/gitlab/gitlab.rb 将 externa…...

Jmeter,提取响应体中的数据:正则表达式、Json提取器

一、正则表达式 1、线程组--创建线程组; 2、线程组--添加--取样器--HTTP请求; 3、Http请求--添加--后置处理器--正则表达式提取器; 4、线程组--添加--监听器--查看结果树; 5、线程组--添加--取样器--调试取样器。 响应体数据…...

【SpringBoot篇】基于布隆过滤器,缓存空值,解决缓存穿透问题 (商铺查询时可用)

文章目录 🍔什么是缓存穿透🎄解决办法⭐缓存空值处理🎈优点🎈缺点🎍代码实现 ⭐布隆过滤器🎍代码实现 🍔什么是缓存穿透 缓存穿透是指在使用缓存机制时,大量的请求无法从缓存中获取…...

Gitlab基础篇: Gitlab docker 安装部署、Gitlab 设置账号密码

文章目录 1、环境准备2、配置1)、初始化2)、修改gitlab配置文件3)、修改docker配置的gitlab默认端口 gitlab进阶配置gitlab 设置账号密码 1、环境准备 安装docker gitlab前确保docker环境,如果没有搭建docker请查阅“Linux docker 安装文档” docker 下载 gitlab容…...

c++常见函数处理

1、clamp clamp&#xff1a;区间限定函数 int64_t a Clamp(a, MIN_VALUE, MAX_VALUE); #include <iomanip> #include <iostream> #include <sstream>int main() {std::cout << "no setw: [" << 42 << "]\n"<&l…...

MYsql第二次作业

目录 问题 解答 1.显示所有职工的基本信息。 2.查询所有职工所属部门的部门号&#xff0c;不显示重复的部门号。 3.求出所有职工的人数。 4.列出最高工和最低工资。 5.列出职工的平均工资和总工资。 6.创建一个只有职工号、姓名和参加工作的新表&#xff0c;名为工作日…...

SQLAlchemy 第三篇

使用insert语句 from sqlalchemy import Table, Column, Integer, String, MetaDatametadata_obj MetaData() user_table Table("user_account",metadata_obj,Column("id", Integer, primary_keyTrue),Column("name", String(255)),Column(&q…...

交互过程中影响信息质量好坏的因素

人机交互是指人与计算机之间的交流和互动&#xff0c;而人人交流是指人与人之间的交流和互动。在信息质量方面&#xff0c;人机交互通常更为准确和精确&#xff0c;而人人交流可能存在误解、模糊和歧义。 人机交互的信息传递往往通过明确的界面、符号和指令等方式进行。计算机可…...

服务器上配置jupyter,提示Invalid credentials如何解决

我是按照网上教程在服务器上安装的jupyter以及进行的密码配置&#xff0c;我利用 passwd()这个口令生成的转译密码是"argon...."。按照教程配置jupyter notebook配置文件里面的内容&#xff0c;登陆网页提示"Invalid credentials"。我谷歌得到的解答是&…...

Axure中动态面板使用及轮播图多种登录方式左侧导航栏之案列

&#x1f3ac; 艳艳耶✌️&#xff1a;个人主页 &#x1f525; 个人专栏 &#xff1a;《产品经理如何画泳道图&流程图》 ⛺️ 越努力 &#xff0c;越幸运 目录 一、轮播图简介 1、什么是轮播图 2、轮播图有什么作用 3、轮播图有什么特点 4、轮播图适应范围 5、…...

大数据之旅-问题反思

1.谈谈你对MR执行流程各个阶段的理解&#xff08;提示里面涉及到排序&#xff0c;快速排序或者归并排序知道两种实现形式&#xff09;&#xff1f; 2.hadoop 1.0和hadoop 2.0明显的差异如何理解&#xff1f; hadoop2.0与hadoop1.0区别体现在在架构、性能、功能和组件方面&…...

系统级基础信号知识【Linux】

目录 一&#xff0c;什么是信号 进程面对信号常见的三种反应概述 二&#xff0c;产生信号 1.终端按键产生信号 signal 2. 进程异常产生信号 核心转储 3. 系统调用函数发送信号 kill raise abort 小结&#xff1a; 4. 由软件条件产生 alarm 5. 硬件异常产生信号…...

Excel单元格隐藏如何取消?

Excel工作表中的有些单元格隐藏了数据&#xff0c;如何取消隐藏行列呢&#xff1f;今天分享几个方法给大家 方法一&#xff1a; 选中隐藏的区域&#xff0c;点击右键&#xff0c;选择【取消隐藏】就可以了 方法二&#xff1a; 如果工作表中有多个地方有隐藏的话&#xff0c;…...

Visual Studio(VS)常用快捷键(最详细)

Visual Studio常用快捷键 一、生成&#xff1a;常用快捷键二、调式&#xff1a;常用快捷键三、编辑&#xff1a;常用快捷键四、文件&#xff1a;常用快捷键五、项目&#xff1a;常用快捷键六、重构&#xff1a;常用快捷键七、工具&#xff1a;常用快捷键八、视图&#xff1a;常…...

UDP特性之组播(多播)

UDP特性之组播 1. 组播的特点2. 设置主播属性2.1 发送端2.2 接收端 3. 组播通信流程3.1 发送端3.2 接收端 4. 通信代码 原文链接 在公司测试广播和多播有一点问题。。。 1. 组播的特点 组播也可以称之为多播这也是UDP的特性之一。组播是主机间一对多的通讯模式&#xff0c;是…...

ElasticSearch之cat shards API

命令样例如下&#xff1a; curl -X GET "https://localhost:9200/_cat/shards?vtrue&pretty" --cacert $ES_HOME/config/certs/http_ca.crt -u "elastic:ohCxPHQBEs5*lo7F9"执行结果输出如下&#xff1a; index shard prirep state docs s…...

Thread-Per-Message设计模式

Thread-Per-Message是为每一个消息的处理开辟一个线程&#xff0c;以并发方式处理&#xff0c;提高系统整体的吞吐量。这种模式再日常开发中非常常见&#xff0c;为了避免线程的频繁创建和销毁&#xff0c;可以使用线程池来代替。 示例代码如下&#xff1a; public class Requ…...

运筹学经典问题(一):指派问题

问题描述 有 N N N个任务&#xff0c;需要 N N N个人去完成&#xff0c;每个人完成不同工作的效率不同&#xff08;或者资源、收益等等&#xff09;&#xff0c;需要怎么分配使得整体的效率最高&#xff08;成本最低等等&#xff09;呢&#xff1f;这就是经典的指派问题啦&…...

产品经理之如何编写竞品分析(医疗HIS系统管理详细案例模板)

目录 一.项目周期 二.竞品分析的目的 三.竞品分析包含的维度 四.如何选择竞品 五.竞品画布 六.案例模板 一.项目周期 在整个项目的周期&#xff0c;产品经理所做的事情主要在项目前期做市场分析、需求调研等&#xff0c;下面一张图概况了整个项目周期产品经理、开发工程师…...

虚拟内存管理

虚拟内存管理 页面置换算法 功能和目标&#xff1a; 功能&#xff1a;当缺页中断发生&#xff0c;需要调入新的页面而内存已经满时&#xff0c;选择内存当中哪个物理页面被置换。目标&#xff1a;尽可能的减少页面的换进换出次数&#xff08;即缺页中断的次数&#xff09;。具…...

ssh时怎么同时指定其端口号,以及scp文件到远程的指定端口

如果想要通过 SSH 连接到指定端口的远程服务器&#xff0c;可以在 SSH 命令中使用 -p 或 --port 参数来指定端口号。以下是相应的用法&#xff1a; $ ssh -p <port> userhost其中&#xff0c; 是要连接的端口号&#xff0c;user 是远程服务器上的用户名&#xff0c;host…...

Redis过期淘汰策略

一. Redis过期淘汰策略 当Redis已用内存超过maxmemory限定时&#xff0c;触发主动清理策略。 主动清理策略在Redis 4.0之前一共实现了 6 种内存淘汰策略&#xff0c;在 4.0 之后&#xff0c;又增加了 2 种 策略&#xff0c;总共8种&#xff1a; 针对设置了过期时间的key做处理…...

微信小程序---自定义组件

目录 1.局部引用组件 2.全局引用组件 3.组件和页面的区别 4.自定义组件样式 5.properties属性 6.data和properties的区别 7.数据监听器 8.纯数据字段 9.自定义组件-组件的生命周期 lifetimes节点 10.组件所在的页面的生命周期 pageLifetimes节点 11.插槽 &#x…...

CGAL的最优传输曲线重构

1、介绍 此程序包实现了一种重建和简化二维点集的方法。输入是一组具有质量属性的二维点&#xff0c;可能受到噪声和离群值的干扰。输出是一组线段和孤立点&#xff0c;它们近似于输入点&#xff0c;如下图所示。质量属性与每个点的近似重要性有关。 左&#xff1a;输入点集受到…...

使用Docker本地安装部署Draw.io绘图工具并实现远程访问协作办公

前言 提到流程图&#xff0c;大家第一时间可能会想到Visio&#xff0c;不可否认&#xff0c;VIsio确实是功能强大&#xff0c;但是软件为收费&#xff0c;并且因为其功能强大&#xff0c;导致安装需要很多的系统内存&#xff0c;并且是不可跨平台使用。所以&#xff0c;今天给…...