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