渗透测试导论

渗透测试-概述

渗透测试(Penetration Testing),就是一种
通过模拟恶意攻击者的技术与方法,挫败目标
系统安全控制措施,取得访问控制权,并发现
具备业务影响后果安全隐患的一种安全测试与
评估方法
简单来说渗透测试是通过各种⼿段对⽬标进
⾏⼀次渗透(攻击),通过渗透来测试⽬标的
安全防护能⼒和安全防护意识。
渗透过程最主要的底层基础是目标系统中存在安全漏洞(指信息系统中存
在的缺陷或不适当的配置,他们可使攻击者在未授权情况下访问或破坏系
统,导致信息系统面临安全风险)。
利用安全漏洞来造成入侵或破坏效果的程序就称为渗透代码(Exploit),
或者漏洞利用代码。
渗透测试分类
黑盒测试/外部测试
白盒测试/内部测试
灰盒测试/组合测试
1、黑盒测试
黑盒测试(Black-box Testing)也称为外部测试(External Testing)
。采用这种方式时,渗透测试者将从一个远程网络位置来评估目标网络基
础设施,并没有任何目标网络内部拓 扑等相关信息。他们完全模拟真实
网络环境中的外部攻击者,采用流行的攻击技术与工具, 有组织、有步
骤地对目标组织进行逐步渗透和入侵,揭示目标网络中一些已知或未知的
安 全漏洞,并评估这些漏洞能否被利用,以获取控制权或者操作业务造
成资产损失等。
黑盒测试的缺点是测试较为费时和费力,同时需要渗透测试者具备较高的
技术能力。
优点在于,这种类型的测试更有利于挖掘出系统潜在的漏洞,以及脆弱环
节和薄弱点等。
2、白盒测试
白盒测试(White-box Testing)也称为内部测试(Internal Testing)
。进行白盒测试的渗透测试者可以了解到关于目标环境的所有内部和底层
信息。这可以让渗透测试人员以最小的代价发现和验证系统中最严重的漏
洞。白盒测试的实施流程与黑盒测试类似,不同之处在于无须进行目标定
位和情报收集。渗透测试人员可以通过正常渠道从被测试机构取得 各种
资料,如网络拓扑、员工资料甚至网站程序的代码片段等,也可以和单位
其他员工进 行面对面沟通。白盒测试的缺点是无法有效地测试客户组织
的应急响应程序,也无法判断出他们的安全防护计划对特定攻击的检测效
率。这种测试的优点是发现和解决安全漏洞所花费的时间 和代价要比黑
盒测试少很多。
3、灰盒测试
灰盒测试(Grey-box Testing)是白盒测试和黑盒测试基本类型的组合,
它可以提供对目标系统更加深入和全面的安全审查。组合之后的好处就是
能够同时发挥这两种渗透测试 方法的优势。在采用灰盒测试方法的外部
渗透攻击场景中,渗透测试者也类似地需要从外部逐步渗透进目标网络,
但他所拥有的目标网络底层拓扑与架构将有助于更好地选择攻击 途径与
方法,从而达到更好的渗透测试效果。
渗透测试-目标分类
1 、主机操作系统渗透
Windows Solaris AIX Linux SCO SGI 等操作系统本身进行渗透测试。
2 、数据库系统渗透
MS-SQL Oracle MySQL Informix Sybase DB2 Access 等数据库应
用系统进行渗透测试。
3 、应用系统渗透
对渗透目标提供的各种应用,如 ASP CGI JSP PHP 等组成的 WWW 应用进
行渗透测试。
4 、网络设备渗透
对各种防火墙、入侵检测系统、网络设备进行渗透测试。
渗透测试过程环节
1. 前期交互阶段(Pre-Engagement Interaction)
2. 情报搜集阶段(Information Gathering)
3. 威胁建模阶段(Threat Modeling)
4. 漏洞分析阶段(Vulnerability Analysis)
5. 渗透攻击阶段(Exploitation)
6. 后渗透攻击阶段(Post Exploitation)(清除痕迹)
7. 报告阶段(Reporting)
1、前期交互阶段
在前期交互(Pre-Engagement Interaction)阶段,渗透测
试团队与客户组织进行交互讨论,最重要的是确定渗透测试
的范围、目标、限制条件以及服务合同细节。
该阶段通常涉及收集客户需求、准备测试计划、定义测试范
围与边界、定义业务目标、项目管理与规划等活动。
2、情报搜集阶段
在目标范围确定之后,将进入情报搜集(Information Gathering)阶段,
渗透测试团队可以利用各种信息来源与搜集技术方法,尝试获取更多关于目
标组织网络拓扑、系统配置与安全防御措施的信息。
渗透测试者可以使用的情报搜集方法包括公开来源信息查询、Google
Hacking、社会工程学、网络踩点、扫描探测、被动监听、服务查点等。而
对目标系统的情报探查能力是渗透测试者一项非常重要的技能,情报搜集是
否充分在很大程度上决定了渗透测试的成败,因为如果你遗漏关键的情报信
息,你将可能在后面的阶段里一无所获。
3、威胁建模阶段
在搜集到充分的情报信息之后,渗透测试团队的成员们停下敲击键盘,大家
聚到一起针对获取的信息进行威胁建模(Threat Modeling)与攻击规划。
这是渗透测试过程中非常重要,但很容易被忽视的一个关键点。
通过团队共同的缜密情报分析与攻击思路头脑风暴,可以从大量的信息情报
中理清头绪,确定出最可行的攻击通道。
4、漏洞分析阶段
在确定出最可行的攻击通道之后,接下来需要考虑该如何取得目标系统的访
问控制权,即漏洞分析(Vulnerability Analysis)阶段。
在该阶段,渗透测试者需要综合分析前几个阶段获取并汇总的情报信息,特
别是安全漏洞扫描结果、服务查点信息等,通过搜索可获取的渗透代码资源
,找出可以实施渗透攻击的攻击点,并在实验环境中进行验证。在该阶段,
高水平的渗透测试团队还会针对攻击通道上的一些关键系统与服务进行安全
漏洞探测与挖掘,期望找出可被利用的未知安全漏洞,并开发出渗透代码,
从而打开攻击通道上的关键路径。
01
5、渗透攻击阶段
渗透攻击(Exploitation)是渗透测试过程中最具有魅力的环节。在此环节
中,渗透测试团队需要利用他们所找出的目标系统安全漏洞,来真正入侵系
统当中,获得访问控制权。
渗透攻击可以利用公开渠道可获取的渗透代码,但一般在实际应用场景中,
渗透测试者还需要充分地考虑目标系统特性来定制渗透攻击,并需要挫败目
标网络与系统中实施的安全防御措施,才能成功达成渗透目的。在黑盒测试
中,渗透测试者还需要考虑对目标系统检测机制的逃逸,从而避免造成目标
组织安全响应团队的警觉和发现。 01
6、后渗透攻击阶段
后渗透攻击(Post Exploitation)是整个渗透测试过程中最能够体现渗透测
试团队创造力与技术能力的环节。前面的环节可以说都是在按部就班地完成
非常普遍的目标,而在这个环节中,需要渗透测试团队根据目标组织的业务
经营模式、保护资产形式与安全防御计划的不同特点,自主设计出攻击目标
,识别关键基础设施,并寻找客户组织最具价值和尝试安全保护的信息和资
产,最终达成能够对客户组织造成最重要业务影响的攻击途径。
在不同的渗透测试场景中,这些攻击目标与途径可能是千变万化的,而设置
是否准确并且可行,也取决于团队自身的创新意识、知识范畴、实际经验和
技术能力。
0
7、报告阶段
渗透测试过程最终向客户组织提交,取得认可并成功获得合同付款的就是一
份渗透测试报告(Reporting)。这份报告凝聚了之前所有阶段之中渗透测
试团队所获取的关键情报信息、探测和发掘出的系统安全漏洞、成功渗透攻
击的过程,以及造成业务影响后果的攻击途径,同时还要站在防御者的角度
上,帮助他们分析安全防御体系中的薄弱环节、存在的问题,以及修补与升
级技术方案。
渗透测试神器metasploit
Metasploit中的专业术语:
Exploit(渗透攻击):渗透攻击是指由攻击者或渗透测试者利用一个系统、应用或服务
中的安全漏洞,所进行的攻击行为。流行的渗透攻击技术包括缓冲区溢出、WEB应用程
序漏洞攻击(例如:SQL注入、XSS等),以及利用配置错误等。
Payload(攻击载荷):攻击载荷是我们期望目标系统在被渗透攻击之后去执行的代码
,在Metasploit框架中可以自由地选择、传送和植入。
ShellCode:ShellCode是渗透攻击时作为攻击载荷运行的一组机器指令。ShellCode
通常用汇编语言编写。
Module(模块):在Metasploit中一个模块是指Metasploit框架中所使用的一段软件代
码组件。
Listener(监听器):监听器是Metasploit中用来等待接入网络连接主机的组件。

你可能感兴趣的:(安全,web安全,网络安全)