[学习笔记] 渗透测试基础

1、概述

        渗透测试(Penetration Testing),就是一种通过模拟恶意攻击者的技术与方法,挫败目标系统安全控制措施,取得访问控制权,并发现具备业务影响后果安全隐患的一种安全测试与评估方法。
        简单来说就是通过各种手段进行一次渗透(攻击),通过渗透来测试目标的安全防护能力和安全防护意识。
        渗透过程最主要的底层基础是目标系统中存在安全漏洞(指信息系统中存在的缺陷或不适当的配置,他们可使攻击者在未授权情况下访问或破坏系统,导致信息系统面临安全风险)。利用安全漏洞来造成入侵或破坏效果的程序就称为渗透代码(Exploit)或者漏洞利用代码。

2、分类

黑盒测试/外部测试:不知道内部结构,更多的是关注输出结果,类似于黑客攻击,发现漏洞的周                                  期会比较长
白盒测试/内部测试:知道内部结构,有哪些功能,测试周期短,适合对某项功能进行测试
灰盒测试/组合测试:两者相结合

3、目标分类

主机操作系统渗透:对Windows、Solaris、AIX、Linux、SCO、SGI等操作系统本身进行渗透测试。
数据库系统渗透:对MS-SQL、Oracle、MySQL、Informix、Sybase、DB2、Access等数据库应用系统进行渗透测试。
应用系统渗透:对渗透目标提供的各种应用,如ASP、CGI、JSP、PHP等组成的WWW应用进行渗透测试。
网络设备渗透:对各种防火墙、入侵检测系统、网络设备进行渗透测试。

4、网络安全生存周期(A Bug's Life)

0day:只有自己或少部分人知道,危害较大
1day:漏洞已经传播了,但是厂家还没反应过来,还没做好相应的补丁,漏洞还能利用

5、安全漏洞的披露方式

①完全公开披露:发现问题,直接公开披露,厂家可能会造成巨大损失
②负责任的披露:告诉厂家,让其赶紧准备补丁
③进入地下经济链:直接进入地下经济链牟利(违法!!)
④小范围利用甚至被动披露:知道后不公开,小范围利用,知道被越来越多人发现,披露

6、渗透测试过程环节

(1)前期交互阶段(Pre-Enganement Interaction)

        该阶段,测试团队与客户组织进行交互讨论,最重要的是确定渗透测试的范围、目标、限制条件以及服务合同环节。通常涉及收集客户需求、准备测试计划、定义测试范围与边界、定义业务目标、项目管理与规划等活动。

(2)情报搜集阶段 (Information Gathering)

        在目标范围确定之后,将进入情报搜集 (nformation Gathering)阶段渗透测试团队可以利用各种信息来源与搜集技术方法,尝试获取更多关于目标组织网络拓扑、系统配置与安全防御措施的信息。
渗透测试者可以使用的情报搜集方法包括公开来源信息查询、GoogleHacking、社会工程学、网络踩点、扫描探测、被动监听、服务查点等。而对目标系统的情报探查能力是渗透测试者一项非常重要的技能,情报搜集是否充分在很大程度上决定了渗透测试的成败,因为如果你遗漏关键的情报信息,你将可能在后面的阶段里一无所获。

(3)威胁建模阶段 (Threat Modeling)

        威胁建模阶段主要是针对在前面两个阶段搜集到的信息进行分析,进行威胁建模与攻击规划,对目标系统进行建模,然后确定最优的攻击路线,后续的渗透攻击则由此展开。

(4)漏洞分析阶段 (Vulnerability Analysis)

        在确定出最可行的攻击通道之后,接下来需要考虑该如何取得目标系统的访问控制权,即漏洞分析(Vulnerability Analysis)阶段。
        在该阶段,渗透测试者需要综合分析前几个阶段获取并汇总的情报信息,特别是安全漏洞扫描结果、服务查点信息等,通过搜索可获取的渗透代码资源找出可以实施渗透攻击的攻击点,并在实验环境中进行验证。在该阶段,高水平的渗透测试团队还会针对攻击通道上的一些关键系统与服务进行安全漏洞探测与挖掘,期望找出可被利用的未知安全漏洞,并开发出渗透代码,从而打开攻击通道上的关键路径。

(5)渗透攻击阶段 (Explitation)

        渗透攻击(Exploitation)是渗透测试过程中最具有魅力的环节。在此环节中,渗透测试团队需要利用他们所找出的目标系统安全漏洞,来真正入侵系统当中,获得访问控制权。
        渗透攻击可以利用公开渠道可获取的渗透代码,但一般在实际应用场景中,渗透测试者还需要充分地考虑目标系统特性来定制渗透攻击,并需要挫败目标网络与系统中实施的安全防御措施,才能成功达成渗透目的。在黑盒测试中,渗透测试者还需要考虑对目标系统检测机制的逃逸,从而避免造成目标组织安全响应团队的警觉和发现。

(6)后渗透攻击阶段 (Post Exploitation)(清除痕迹)

        后渗透攻击(PostExploitation)是整个渗透测试过程中最能够体现渗透测试团队创造力与技术能力的环节。前面的环节可以说都是在按部就班地完成非常普遍的目标,而在这个环节中,需要渗透测试团队根据目标组织的业务经营模式、保护资产形式与安全防御计划的不同特点,自主设计出攻击目标识别关键基础设施,并寻找客户组织最具价值和尝试安全保护的信息和资产最终达成能够对客户组织造成最重要业务影响的攻击途径。
在不同的渗透测试场景中,这些攻击目标与途径可能是千变万化的,而设置是否准确并且可行,也取决于团队自身的创新意识、知识范畴、实际经验和技术能力。

(7)报告阶段 (Reporting)

        渗透测试过程最终向客户组织提交,取得认可并成功获得合同付款的就是一份渗透测试报告 (Reporting)。这份报告凝聚了之前所有阶段之中渗透测试团队所获取的关键情报信息、探测和发掘出的系统安全漏洞、成功渗透攻击的过程,以及造成业务影响后果的攻击途径,同时还要站在防御者的角度上,帮助他们分析安全防御体系中的薄弱环节、存在的问题,以及修补与升级技术方案。

7、渗透测试的意义

        渗透测试是站在第三者的角度来思考企业系统的安全性的,通过渗透测试可以发觉企业潜在却未纸漏的安全性问题。企业可以根据测试的结果对内部系统中的不足以及安全脆弱点进行加固以及改善,从而使企业系统变得更加安全,减低企业的风险。

猜你喜欢

转载自blog.csdn.net/m0_49476792/article/details/134113469