039 渗透测试导论

一:概述

渗透测试(penetration testing pentest)是实施安全评估(即审计)的具体手段。
方法论是在制定、实施信息安全审计方案时,需要遵循的规则、惯例和过程。
人们在评估网络、应用、系统或三者组合的安全状况时,不断摸索各种务实的理念和成熟的做法,并总结了一套理论–渗透方法测试论。

二:渗透测试的种类

1:黑盒测试(网络,应用,系统)
在进行黑盒测试时,安全审计员在不清楚被测单位的内部技术构造的情况下,从外部评估网络基础设施的安全性。在渗透测试的各个阶段,
黑盒测试借助真实世界的黑客技术,暴露出目标的安全问题,甚至可以揭露尚未被他人利用的安全弱点。渗透测试人员应能理解安全弱点,将之分类
并按照风险等级(高中低)对其排序。通常来说,风险级别取决于相关弱点可能形成危害的大小。老练的渗透测试专家应能够确定可引发安全事故的所有攻击模式。
当测试人员完成黑盒测试的所有测试工作之后,他们会把与测试对象安全状况有关的必要信息进行整理,并使用业务的语言描述这些被识别出来的风险,
继而将之汇总为书面报告。黑盒测试的市场报价通常会高于白盒测试。

2:白盒测试
白盒测试的审计员可以获取被测单位的各种内部资料甚至不公开资料,所以渗透测试人员的视野更为开阔。若以白盒测试的方法评估安全漏洞,测试人员可以以最小的工作量达到最高的评估精确度。白盒测试从被测系统环境自身出发,全面消除内部安全问题。从而增加了从单位外部渗透系统的难度。黑盒测试起不到这样的作用。
白盒测试所需要的步骤数目与黑盒测试不相上下。另外,若能将白盒测试与常规的研发生命周期相结合,就可以在入侵发现甚至利用安全弱点之前,尽可能最早的消除全部安全隐患,这使得白盒测试的时间,成本,以及发现,解决安全弱点的技术门槛都全面低于黑盒测试。

脆弱性评估(漏洞扫描之上提出防御策略)与渗透测试
脆弱性评估通过分析企业资产面临安全威胁的情况和程度,评估内部和外部的安全控制的安全性。这种技术上的信息系统评估,不仅揭露现有防范措施里存在的风险,而且要提出多重备选的补救策略,并将这些策略进行比较。内部的脆弱性评估可保证内部系统的安全性,而外部的脆弱性评估则是验证边界防护(perimeter defenses)的有效性。无论进行内部脆弱性评估还是进行外部脆弱性评估,评估人员都会采用各种攻击模式来严格测试网络资产的安全性,从而验证信息系统处理安全威胁的能力,进而确定应对措施的有效性。不同类型的脆弱性评估需要的测试流程,测试工具和自动化测试技术也不相同。这可以通过一体化的安全弱点管控(vulnerability management)平台来实现。现在的安全弱点管理平台带有可自动更新的漏洞数据库,能够测试不同类型的网络设备,而且不会影响配置管理和变更管理的完整性。

脆弱性评估和渗透测试两者最大的区别:
渗透测试不仅要识别目标的弱点,他还设计在目标系统上进行漏洞利用,权限提升和访问维护,换句话说,脆弱性评估虽然可以充分发现系统里面的缺陷,但是不会考虑去衡量这些缺陷对系统造成的危害。另外,相比脆弱性评估,渗透测试更倾向于入侵,会刻意使用各种技术手段利用安全漏洞,所以渗透测试可能对生产环境带来实际的破坏性影响。而脆弱性评估以非入侵的方式,定性,定量的识别已知安全弱点。

三:安全测试方法论

开放式Web 应用程序安全项目(Open Web Apolication Security Project,OWASP)http://www.owasp.org.cn/
测试指南:https://www.owasp.org/index.php/OWASP_Testing_Project
开发人员指南:https://www.owasp.org/index.php/OWASP_Guide_Project
代码审查指南(重点)(OWASP TOP 10:中国网址:http://www.owasp.org.cn/OWASP-CHINA/owasp-project/2021-owasp-top-10/ ):
https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project
这是2017年的十大威胁:http://www.owasp.org.cn/OWASP-CHINA/owasp-project/OWASPTop102017v1.1.pdf
通用缺陷列表(漏洞类别的编号)(Common Weakness Enumeration,CWE)CWE-79:XSS 漏洞:http://cwe.mitre.org/data/definitions/79.html
CWE-89:SQLi http://cwe.mitre.org/data/definitions/89.html
通用漏洞与披露(Common Vulnerabilities and Exposures,CVE) http://cve.scap.org.cn http://cve.mitre.org/
MS17-010:微软在17年发布的安全公告:MS17-010更新修复了 Microsoft Windows中的漏洞。 如果攻击者向 Microsoft 服务器消息块 1.0 (SMBv1) 服务器发送经特殊设计的消息,则其中最严重的漏洞可能允许远程代码执行。
一个安全公告就是一个安全漏洞
struts2:APACHE 开源开发java的框架

四:其他方法论

开源安全测试方法论(OSSTMM)
http://www.isecom.org/research/osstmm.html
信息系统安全评估框架 (ISSAF)
http://www.oissg.org/issaf
Web 应用安全联合威胁分类(WASC-TC)
http://projects.webappsec.org

五:渗透测试流程

渗透测试执行标准:
渗透测试执行标准(Penetration Testing Execution Standard, PTES)的先驱都是渗透测试行业的精英,这个标准有渗透测试7个阶段的标准组成,可以在任意环境中进行富有成果的渗透测试。http://www.pentest-standard.org/index.php/Main_Page
7个阶段
1:事前互动
2:情报搜集
3:威胁建模
4:漏洞分析
5:漏洞利用
6:深度利用
7:书面报告

六:PTES的主要优势

PTES的主要特性和优势如下:
1:是非常全面的渗透测试框架,涵盖了渗透测试的技术方面和其他重要方面,如范围蔓延(scope creep)报告,以及渗透测试人员保护自身的方法。
2:介绍了多数测试任务的具体方法,可以指导您准确测试目标系统的安全状态。
3:汇聚了多名日行一“渗”的渗透测试专家的丰富经验。
4:包含了最常用的以及很罕见的相关技术
5:浅显易懂,可根据测试工作的需要对相应测试步骤进行调整。

七:通用渗透测试框架

从技术管理的角度来看,遵循正规的测试框架对安全测试极为重要。通用渗透测试框架涵盖了典型的审计测试工作和渗透测试工作会涉及到各个阶段。
相关阶段如下:
1:范围界定
在开始技术性安全评估之前,务必要观察,研究目标环境的被测范围。同时还要了解,这个范围牵扯多少个单位,是单个单位还是多个单位会参与到安全评估的工作中来,在范围界定阶段,需要考虑的典型因素如下:
1:测试对象是什么
2:应当采取何种测试方法
3:有哪些再测试过程中需要满足的条件
4:哪些因素可能会限制测试执行的过程
5:需要多久才能完成测试
6:此次测试应该达成什么样的任务目标
2:信息搜集
在划定了测试范围之后,就需要进入信息收集阶段。在这个阶段,渗透人员需要使用各种公开资源,尽可能的获取测试目标的相关信息。他们从互联网上搜集信息的渠道有:论坛,公告板,新闻组,媒体文章,博客,社交网络,其他商业或非商业性的网站。此外,他们也可以借助各种搜索引擎,从中获取相关数据,如谷歌,雅虎,必应,百度等。收集的信息主要包括DNS服务器,路由关系,whois,数据库,电子邮件地址,电话号码,个人信息以及用户账户。收集的信息越多,渗透测试成功率越高。
3:目标识别
这个阶段的主要任务是识别目标的网络状态,操作系统和网络架构。该阶段工作旨在完整的展现目标网络里各种联网设备或技术的完整关系,以帮助测试人员在接下来的工作里枚举目标网络的各种服务。
4:服务枚举
这一阶段会根据前面各个阶段的成果,进一步找出目标系统中所有开放的端口。一旦找到了所有开放的端口,就可以通过这些端口来列出目标系统上运行的服务。主机上开放的端口都有相应的服务程序,对这些信息进行深度分析之后,可进一步发掘目标网络基础设施中可能存在的漏洞。
5:漏洞映射
可以根据已经发现的开放端口和服务程序,查找,分析目标系统中存在的漏洞。如果能够采用自动和手动这两种不同的测试方法结合起来,审计人员对目标系统的认知就会更为清晰,透彻,并能够仔细的检查任何已知和未知的漏洞。
6:社会工程学
如果目标网络没有直接的入口,欺骗的艺术将起到抛砖引玉的重要作用。对目标组织中的人员进行定向攻击,很有可能帮助我们找到渗透目标系统的入口。例如:诱使用户运行安装后门的恶意程序,就可能为审计人员的渗透工作形成突破。社会工程学渗透分为多种不同实现形式。伪装成网络管理员,通过电话要求用户提供自己的账户信息;发送钓鱼邮件来劫持用户的银行账户,甚至诱使某人出现在某个地方——这些都属于社会工程学攻击。在社会工程学中,达成同一既定目标的实现方式应有尽有。需要注意的是,在对目标实施欺骗以达成渗透目标之前,多数情况下需要长时间研究目标人员的心理,另外,在开展这个阶段的工作之前,您需要实现研究过的法律是否有关于社会工程学的相关条款。
7:漏洞利用
在仔细检查和发现目标系统中的漏洞之后,就可以使用已有的漏洞利用程序对目标系统进行渗透。审计人员可以把客户端漏洞利用程序和社会工程学进行结合,进而控制目标系统。这个阶段的主要任务是控制目标系统。这个流程可以分为三步,涉及攻击前,攻击,攻击后的相关行动。
8:权限提升
获取目标系统的控制权是渗透成功的标识。接下来,审计人员就可以根据其所拥有的访问权限,在被测系统中自由发挥。审计人员也可以使用适用于目标系统的本地漏洞来提升自己的权限。只要他们能在目标系统上运行提权漏洞利用程序,就可以获得主机的超级用户权限或者系统级权限。审计人员还可以以该主机为跳板,进一步攻击局域网络。根据之前渗透范围的界定,审计人员接下来会开展的攻击可能是受限制的,也可能是不受限制。然后,以各种方式获得与控制系统有关的更多信息。具体地说,可能是用嗅探手段截获网络数据包,破解各种服务的密码,在局域网中使用网络欺骗手段。所以说,提升权限的最终目的就是获得目标系统的最高访问权限。
9:访问维护
多数情况下,审计人员需要在一段时间内维护他们对目标系统的访问权限。例如,在演示越权访问目标系统的时候,安装后门将节省重新渗透目标系统所耗费的大量时间。这种情况下,访问维护将节约获取目标系统访问权限所需要的时间,花费和资源。审计人员可以通过一些秘密的通信隧道,在既定时间内维持对目标的访问权限。这些隧道往往基于特定协议,代理或者点对点方法的后门程序。这种对系统的访问方法可以清楚的展示,入侵人员在目标系统实施攻击时隐藏行踪的具体方法。
10:文档报告
在渗透测试的最后一个环节里,审计人员要记录,报告并现场演示那些已经识别,验证和利用了的安全漏洞。在被测单位的管理和技术团队会检查渗透时使用的方法,并会根据这些文档修补所有存在的安全漏洞。所以从道德角度来看,文档报告的工作十分重要。并为了帮助管理人员和技术人员共同理解,分析当前IT基础架构中的薄弱环节,可能需要给不同的部门撰写不同措辞的书面报告。此外,这些报告还可以用来获取和比渗透测试前后系统目标的完整性。

无论是进行白盒测试还是黑盒测试,选择和使用测试步骤都是测试人员的责任。在测试开始前,测试人员需要根据目标系统的实际环境和已掌握的相关目标系统的情况,再指定最佳的测试策略。

八:黑客攻击步骤

请添加图片描述

九:简化渗透测试流程

请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值