渗透测试(Penetration Testing) 是一种通过模拟攻击者的技术与方法,挫败目标系统的安全控制措施并取得访问控制权的安全测试方式。安全业界采纳的渗透测试执行标准PTES(全称:Penetration Testing Execution Standard),核心理念是建立渗透测试的基本准则基线,定义一次真正的渗透测试过程

以下内容是我学习网络安全知识的笔记整理,由于分享知识点比较特殊,所以以后所有关于网安知识点分享都会带上声明《关于道德伦理的忠告》

★关于道德伦理的忠告★

以下内容摘自《Metasploit渗透测试指南》

作为一名渗透测试者,我们可以击败安全防御机制,但这是仅仅是我们工作的一部分。当你进行渗透攻击时,请记住如下的忠告:

  • 不要进行恶意的攻击;

  • 不要做傻事;

  • 在没有获得书面授权时,不要攻击任何目标;

  • 考虑你的行为将会带来的后果;

  • 如果你干了些非法的事情,天网恢恢疏而不漏,你总会被抓到牢里的。

1、PTES标准的渗透测试阶段

PTES标准中的渗透测试阶段是用来定义渗透测试过程,并确保客户组织能够以标准化的方式扩展一次渗透测试,无论由谁来执行这类型的评估。PTES标准包含7个阶段。

1.1、前期交互

确定范围:测试目标的范围、ip、域名、内外网、测试账户。

确定规则:能渗透到什么程度,所需要的时间、能否修改上传、能否提权等。

确定需求:web应用的漏洞、业务逻辑漏洞、人员权限管理漏洞等。

1.2、情报收集

开放搜索:利用搜索引擎获取:后台、未授权页面、敏感URL等。

基础信息:IP、网段、域名、端口。

应用信息:各端口的应用:例如web应用、邮件应用等。

系统信息:操作系统版本。

版本信息:所有探测到的东西的版本。

服务信息:中间件:各类信息,插件信息。

人员信息:域名注册人员信息,web应用中发帖人的id,管理员姓名等。

防护信息:试着看能否探测到防护设备。

1.3、威胁建模

利用上一阶段获取到的信息进行威胁建模和攻击规划

威胁建模:利用获取到的信息来标识目标组织可能存在的漏洞与缺陷。威胁建模有两个关键要素:资产分析和威胁分析。识别主要和次要资产并对其进行分类,并根据资产识别可能存在的威胁。比如看到28017端口我们要想到是否存在MongoDB未授权访问,看到21端口我们要想到是否存在ftp匿名登录等。

攻击规划:根据威胁模型确定下一步需要搜集的信息和攻击方法。威胁模型建立后,可行的攻击矢量已基本确定,然后是一个一个验证是否可行,在这个过程中可能会伴随信息的收集和威胁模型的调整。

主要使用在信息搜集阶段所获取到的信息,来标识出目标系统上可能存在的安全漏洞与弱点。在进行威胁建模时,确定最高效的攻击方法,需要进一步获取信息和从哪里攻破目标系统。

1.4、漏洞分析

a. 确定最佳攻击方法后,需要考虑如何取得目标系统的访问权,需要考虑哪些攻击是可行的。特别是需要重点分析端口和漏洞扫描结果。

b. 一个发现系统和应用程序漏洞的过程(这些漏洞可能包括主机和服务配置错误,或不安全的应用程序设计)

在进行任何类型的漏洞分析时,测试人员应适当地确定适用深度和广度的测试范围,以满足所需结果的目标和要求。

1.5、渗透攻击

在验证漏洞存在后,后面就是利用发现的漏洞对目标进行攻击,真正入侵系统中,获取访问控制权。(最具魅力的环节)

为实现系统安全,系统一般都会采用很多技术进行防御,比如反病毒(IPS、IDS、WAF……)、编码、加密、白名单等,在渗透期间,需要混淆有效载荷绕过安全限制,以达到成功攻击目的。一般互联网已公开的漏洞利用,可直接拿来使用,但对于一些特殊情况,需要根据实际情况量身定制有效载荷(payload)和漏洞利用(exploit)。

1.6、后渗透攻击

顾名思义,漏洞利用成功后的攻击,就是拿到系统权限后的后续操作。后渗透攻击阶段的操作,可分为两种:权限维持和内网渗透。

权限维持:提升权限和保持对系统的访问。系统最高权限是我们向往的ONEPIECE,如果漏洞利用阶段得到的权限不是系统最高权限,应该继续寻找并利用漏洞进行提权。同时为了保持对系统的访问权限,应该留下后门(木马文件等)并隐藏自己(清除日志、隐藏文件等)。

内网渗透:利用获取的服务器对其所在的内网环境进行渗透。内网环境与外网相比,可以利用获取到的服务器进一步获取目标组织的敏感信息。

在不同的渗透测试场景中,攻击目标与途径可能是变化的,设置是否准备、可行,取决于团队或自身的创新意识、知识范畴、实际经验和技术能力。(一般作为技术的分水岭)

1.7、报告

按需整理:按照之前第一步跟客户确定好的范围、需求整理资料,并将资料形成报告。

补充介绍:需要对漏洞成因,验证过程和带来的危害进行分析。

修补建议:要对产生的问题提出合理高效安全的解决办法。

2、我为什么学习网安了?

我是一个Java语言开发超过7年的程序员,我学习网络安全知识,一方向是给自己找兼职的可能(挖洞),一方面也是想拓宽自己的就业路线。如果你对网安知识感兴趣可以持续关注我,明天我会基于渗透测试写一篇实战的内容。

3、资料获取

如果想系统学习渗透测试知识,关注我的公众号:大象只为你,后台回复:渗透测试,获取《Metasploit(渗透测试指南)》电子版本。

感谢您的阅读,如果对您有帮助,请支持我!请点[推荐]如果有意见或建议,欢迎留言交流!欢迎转载,请保留出处,【大象只为你】感谢您的关注与支持!