渗透测试学习-概述
1.渗透测试
渗透测试( Penetration Testing )是指受信任的第三方通过模拟黑客的攻击技术与手段对目标网络、系统进行攻击测试,发现目标的安全隐患并给出安全加固建议的一种安全测试与评估方法。
具体来讲,渗透人员在不同的位置(比如从内网、从外网等位置)利用各种手段对业务系统进行全面深入的安全测试,以此挖掘可能存在的安全缺陷和漏洞,并输出渗透测试报告提交给企业。企业会根据渗透测试报告的漏洞风险、详情与修复方案等信息,对系统进行修复与加固。
2.渗透测试的分类
黑盒测试
1.渗透测试人员在事前完全不了解任何目标内部信息,例如网络拓扑、应用、系统等信息,对目标系统进行渗透测试。
2.黑盒测试所使用的时间相对较长,并且对于渗透人员的技术能力要求相对高一些。
白盒测试
1.渗透测试人员在事前已经获取目标内部信息,例如网络拓扑、应用、系统、源代码等信息,对目标系统进行渗透测试。
2.对比黑盒测试,白盒测试往往能用最小的代价,发现目标更多的安全隐患。
灰盒测试
介于上面两者之间
3.渗透测试流程
1前期交互
在进行渗透测试之前,渗透测试团队需要与客户组织交互讨论,确定渗透测试目标、渗透测试范围、渗透测试限制条件、服务合同等细节进行商议,达成一致协议。
需要收集客户需求,根据商定的目标、范围、限制条件,项目管理与规划等信息来确定渗透测试方案。
2信息收集
根据确定的渗透测试目标以及范围,使用各种手段尽可能的收集与测试目标相关的信息。例如开源情报( OSINT )、 Google Hacking 、扫描探测等。收集到的信息越充分对之后的渗透测试越有利。
3威胁建模
渗透测试团队需要对收集到的信息进行分析并且做出攻击的规划,确定出最有效、最可行的攻击方案。
4漏洞分析
1.根据攻击方案,需要挖掘可利用的漏洞来获取目标系统的访问控制权限。
2.通过分析信息收集到的数据,比如系统信息、漏洞扫描结果等,进行验证并发现漏洞。
3.挖掘目标系统中可利用的潜在漏洞,并开发 EXP 脚本。
5渗透攻击
利用发现的安全漏洞或编写好的漏洞利用程序( Exploit )来入侵目标系统,获得访问控制权。
渗透攻击过程中可能会因为 Exp 的兼容性,需要对其进行修改或额外研究。还需要考虑对目标系统的安全机制进行逃逸,避免被发现。
6后渗透攻击
需要渗透测试团队根据目标组织的业务经营模式、资产保护模式和安全防御规划的不同特点,资助设计出攻击目标,识别关键基础设施,并寻找客户组织组织最具价值和尝试安全保护的信息和资产,最终达到能够对客户组织造成最重要业务影响的攻击途径。
7渗透报告
渗透测试报告中会涵盖之前所有阶段所收集的关键情报信息、挖掘出的安全漏洞、成功渗透攻击的过程、造成业务影响后果的攻击途径。从防御角度考虑的安全防御体系存在的薄弱点、风险以及修复建议。
4.Payload 、 POC 、 EXP
1.POC ( Proof of Concept ):概念验证,用于验证安全漏洞是否存在,能否被利用。
2.EXP ( Exploit ):漏洞利用程序,利用安全漏洞造成入侵或破坏效果的程序。
3.Payload ,有效荷载、攻击载荷,目标系统被渗透攻击之后所执行的代码。
5.安全漏洞生命周期
安全漏洞是存在生命周期的,简单的可以分为几个阶段:
1.漏洞被发现
2.漏洞/ Exploit 信息披露公布
3.漏洞具有官方补丁或修复方案
同时也繁生出几个概念,分为是:
Oday ,漏洞信息未公布时,这时利用 EXP 可以通杀。
1day,漏洞信息被公布,但漏洞没有官方补丁或者修复方案,这时利用 EXP 可以入侵大部分系统。
Nday ,漏洞已有官方补丁或者修复方案,这时利用 EXP 只能入侵还未及时修复的系统。