渗透测试方法论
在此之前,欢迎关注波比网络 培训、环境、资料、考证
波比网络 官方公众号:blbinet
波比网络工作室 官方公众号:blbistudio
获取技术支持访问:https://www.blbi.cn/form/
技能大赛各赛项交流群:https://www.blbi.cn/threads/40/
更多正式赛题源文件访问:https://www.blbi.cn
NISP、CIPS、PTE证书可咨询各大群群主

0x01 渗透测试-Penetration Test
简称为 Pentest
渗透测试 (penetration test)并没有一个标准的定义,国外一些安全组织达成共识的通用说法是:渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析,这个分析是从一个攻击者可能存在的位置来进行的,并且从这个位置有条件主动利用安全漏洞。
0x02 Pentest 分类
黑盒测试
在进行黑盒测试时,安全审计员在不清楚被被测单位的内部技术构造的情况下,从外部评估网络基础设施的安全性。在渗透测试的各个阶段,黑盒测试借助真实世界的黑客技术,暴露出目标的安全问题,甚至可以揭露尚未被他人利用的安全弱点。渗透测试人员应能理解安全弱点,将之分类并按照风险级别(高、中、低)对其排序。通常来说,风险级别取决于相关弱点可能形成的危害的大小。老练的渗透测试专家应能确定可引发安全事故的所有攻击模式。当测试人员完成黑盒测试的所有测试工作之后,他们会把与测试对象安全状况有关的必要信息进行整理,并使用业务的语言描述这些被识别出来的风险,继而将之汇总为书面报告。黑盒测试的市场报价通常会高于白盒测试。
白盒测试
白盒测试的审计员可以获取被测单位的各种内部资料甚至不公开资料,所以渗透测试人员的视野更为开阔。若以白盒测试的方法评估安全漏洞,测试人员可以以最小的工作量达到最高的评估精确度。白盒测试从被测系统环境自身出发,全面消除内部安全问题,从而增加了从单位外部渗透系统的难度。黑盒测试起不到这样的作用。白盒测试所需的步骤数目与黑盒测试不相上下。另外,若能将白盒测试与常规的研发生命周期相结合,就可以在入侵者发现甚至利用安全弱点之前,尽可能最早地消除全部安全隐患。这使得白盒测试的时间、成本,以及发现、解决安全弱点的技术门槛都全面低于黑盒测试。
0x03 脆弱性评估与渗透测试
脆弱性评估
脆弱性评估通过分析企业资产面临威胁的情况和程度,评估内部和外部的安全控制和安全性
这种技术上的信息系统评估,不仅要揭露现有防范措施里存在的风险,而且要提出多重备选的补救策略,并将这些策略进行比较。
其作用如下:
内部的脆弱性评估可保证内部系统的安全性,而外部的脆弱性评估则用于验证边界防护(perimeter defenses)的有效性。
其与渗透测试的区别如下:
脆弱性评估和渗透测试两者最大的区别就是:渗透测试不仅要识别目标的弱点,它还涉及在目标系统上进行漏洞利用、权限提升和访问维护。换句话说,脆弱性评估虽然可以充分发现系统里的缺陷,但是不会考虑去衡量这些缺陷对系统造成的危害。另外,相比脆弱性评估,渗透测试更倾向于入侵,会刻意使用各种技术手段利用安全漏洞;所以渗透测试可能对生产环境带来实际的破坏性影响。而脆弱性评估则是以非入侵性的方式,定性、定量地识别已知安全弱点。
0x04 通用渗透测试框架
以下我们介绍通用 Pentest 框架,我们可以借鉴,但也可以根据这个框架形成一套属于自己的渗透测试方法和步骤,仅仅是一个参考作用,我们将之学习形成自己的一套方法才是正确的做法。
人员可以根据被测目标的具体情况对上述测试方法进行相应调整。这一方法论由一系列相关步骤所组成。要想成功完成安全评估项目,必须在测试的初始化阶段、测试进行阶段以及测试结束阶段全面遵循这些步骤。这些步骤包括:
● 范围界定
● 信息收集
● 目标识别
● 服务枚举
● 漏洞映射-模糊测试
● 社会工程学[^ 该步骤可视具体情况是否进行]
● 漏洞利用
● 提升权限
● 访问维护
● 文档报告
1.范围界定
在开始技术性安全评估之前,务必要观察、研究目标环境的被测范围。同时还要了解,这个范围牵扯到多少个单位,是单个单位还是多个单位会参与到安全评估的工作中来。在范围界定阶段,需要考虑的典型因素如下。
● 测试对象是什么?
● 应当采取何种测试方法?
● 有哪些在测试过程中需要满足的条件?
● 哪些因素可能会限制测试执行的过程?
● 需要多久才能完成测试?
● 此次测试应当达成什么任务目标?
审计人员只有确切理解被评估系统所使用的技术,理解其基本功能,以及相关技术与网络之间的相互影响,才能成功达成渗透测试的目标。因此,无论是进行什么类型的安全评估项目,审计人员的知识结构都将起着至关重要的作用。
2.信息收集
在划定了测试范围之后,就需要进入信息收集阶段。在这个阶段,渗透测试人员需要使用各种公开资源尽可能地获取测试目标的相关信息。他们从互联网上搜集信息的互联网渠道主要有:
● 论坛
● 公告板
● 新闻组
● 媒体文章
● 博客
● 社交网络
● 其他商业或非商业性的网站
此外,他们也可借助各种搜索引擎中获取相关数据,例如谷歌、雅虎、MSN必应、百度等。进一步说,审计人员可以使用 Kali Linux 收录的各种工具在测试目标的网络系统里挖掘信息。这些运用漏洞数据挖掘技术的工具能够收集可观信息,包括DNS服务器、路由关系、whois数据库、电子邮件地址、电话号码、个人信息以及用户账户。收集到的信息越多,渗透测试成功的概率就越高。
3.目标识别
这个阶段的主要任务是识别目标的网络状态、操作系统和网络架构。该阶段工作旨在完整地展现目标网络里各种联网设备或技术的完整关系,以帮助测试人员在接下来的工作里枚举目标网络的各种服务。Kali Linux 提供的一系列先进的网络工具,可以轻松探测到联网主机,识别这些主机运行的操作系统,并根据每个设备在网络系统中的不同角色对它们进行归类。这些工具通常采用了基于上层网络协议的主动和被动的检测技术。它们能够通过不同的方式巧妙地利用各种协议获取许多有用的信息,比如操作系统指纹等。
4.服务枚举
这一阶段会根据前面各个阶段的成果,进一步找出目标系统中所有开放的端口。一旦找到了所有开放的端口,就可以通过这些端口来列出目标系统上运行的服务。有很多扫描端口的技术,如全开(full-open)扫描、半开(half-open)扫描、隐蔽式(stealth)扫描等。这些技术都可用来检测端口的开放情况,甚至可以扫描处于防火墙或者入侵检测系统保护下的主机。主机上开放的端口都有相应的服务程序,对这些信息进行深度分析之后,可进一步发掘目标网络基础设施中可能存在的漏洞。因此,这个阶段为其后的测试工作打下了基础,有助于测试人员继而发现各种网络设备上可能会造成严重危害的安全漏洞。Kali Linux收录的部分自动化工具可以辅助审计人员完成这一阶段的目标。
5.漏洞映射
至此为止,我们已经充分收集了目标网络的各种信息。接下来,我们就可以根据已经发现的开放端口和服务程序,查找、分析目标系统中存在的漏洞。Kali Linux 系统中提供的一系列自动化的网络和应用漏洞评估工具可以担任完成这个阶段的任务。当然,人工(手动)完成这些任务未尝不可,只是人工操作极为耗时,而且需要有关人员拥有专家级的知识。但是,如果能够将自动和手动这两种不同的测试方法结合起来,审计人员对目标系统的认知就会更为清晰、透彻,并能够仔细地检查任何已知和未知的漏洞。否则,被遗漏的漏洞将会一直残留在目标网络系统里。
6.社会工程学
如果目标网络没有直接的入口,欺骗的艺术将起到抛砖引玉的重要作用。对目标组织中的人员进行定向攻击,很有可能帮助我们找到渗透目标系统的入口。例如,诱使用户运行会安装后门的恶意程序,就可能为审计人员的渗透工作形成突破。社会工程学渗透分为多种不同实现形式。伪装成网络管理员,通过电话要求用户提供自己的账户信息;发送钓鱼邮件来劫持用户的银行账户;甚至是诱使某人出现在某个地点——这些都属于社会工程学攻击。在社会工程学中,达成同一既定目标的实现方式应有尽有。需要注意的是,在对目标实施欺骗以达成渗透目标之前,多数情况下需要长时间研究目标人员的心理。另外,在开展这个阶段的工作之前,您需要事先研究国内的法律是否有关于社会工程学的相关条款。
7.漏洞利用
在仔细检查和发现目标系统中的漏洞之后,就可以使用已有的漏洞利用程序对目标系统进行渗透。某些情况下不得不对漏洞利用程序(exploit)进行额外的研究和修改,否则它可能就无法正常工作。虽然这听起来就很麻烦,但是先进的漏洞利用(修改)工具可使这项工作容易得多,而且Kali Linux 已经收录了这种工具。此外,审计人员可以把客户端漏洞利用程序和社会工程学进行结合,进而控制目标系统。这个阶段的主要任务是控制目标系统。整个流程可以分为3步,涉及攻击前、攻击、攻击后的相关行动。
8.提升权限
获取目标系统的控制权是渗透成功的标志。接下来,审计人员就可以依据其所拥有的访问权限,在被测系统中自由发挥。审计人员也可以使用适用于目标系统的本地漏洞来提升自己的权限。只要他们能够在目标系统上运行提权漏洞利用程序,就可以获得主机上的超级用户权限或者系统级权限。审计人员还可以以该主机为跳板,进一步攻击局域网络。根据之前对渗透范围的界定,审计人员接下来会开展的攻击可能是受限制的,也可能是不受限的。而后,他们很有可能以各种方式获得与被控制系统有关的更多信息。具体的说,他们可能使用嗅探手段截获网络数据包,破解各种服务的密码,在局域网络中使用网络欺骗手段。所以说,提升权限的最终目的是获得目标系统的最高访问权限。
9.访问维护
多数情况下,审计人员需要在一段时间内维护他们对目标系统的访问权限。例如,在演示越权访问目标系统的时候,安装后门将节省重新渗透目标系统所耗费的大量时间。这些情况下,访问维护将节约获取目标系统访问权限所需要的时间、花费和资源。审计人员可以通过一些秘密的通信隧道,在既定时间内维持对目标的访问权限。这些隧道往往基于特定协议、代理或者点对点通信方法的后门程序。这种对系统的访问方法可以清楚地展示,入侵人员在目标系统实施攻击时隐匿行踪的具体方法。
10.文档报告
耗费的大量时间。这些情况下,访问维护将节约获取目标系统访问权限所需要的时间、花费和资源。审计人员可以通过一些秘密的通信隧道,在既定时间内维持对目标的访问权限。这些隧道往往基于特定协议、代理或者点对点通信方法的后门程序。这种对系统的访问方法可以清楚地展示,入侵人员在目标系统实施攻击时隐匿行踪的具体方法。
10.文档报告
在渗透测试的最后一个环节里,审计人员要记录、报告并现场演示那些已经识别、验证和利用了的安全漏洞。被测单位的管理和技术团队会检查渗透时使用的方法,并会根据这些文档修补所有存在的安全漏洞。所以从道德角度来看,文档报告的工作十分重要。为了帮助惯例人员和技术人员共同理解、分析当前IT基础架构中的薄弱环节,可能需要给不同的部门撰写不同措辞的书面报告。此外,这些报告还可以用来获取和比较渗透测试前后目标系统的完整性。


1010

被折叠的 条评论
为什么被折叠?



