Python渗透测试编程技术:方法与实践(第2版)
上QQ阅读APP看书,第一时间看更新

1.2.1 前期与客户的交流

在这个阶段,渗透测试者需要得到客户的配合来确定整个渗透测试任务的范围,也就是说要确定对目标的哪些设备和哪些问题进行测试。而这些内容是在与客户进行商讨之后得出的。在整个商讨的过程中,重点考虑的因素如下。

1.渗透测试的目标

通常这个目标会是一个包含很多主机的网络。这时需要确定的是渗透测试所涉及的IP地址范围和域名范围。但是客户所使用的Web应用程序和无线网络,甚至安保设备和管理制度,也可能成为渗透测试的目标。同样还应明确客户需要的是全面评估还是只针对其中某一方面或部分评估。

2.进行渗透测试过程所使用的方法

这个阶段可以采用的方法主要有黑盒测试、白盒测试和灰盒测试3种。

3.进行渗透测试所需要的条件

如果采用的是白盒测试,需要客户提供测试必需的信息和权限,客户最好可以接受问卷调查。确定进行渗透的时间,例如,只能在周末进行还是随时都可以进行。如果在渗透测试过程中导致目标受到破坏,应该如何补救等。

4.渗透测试过程中的限制条件

在整个渗透测试过程中,必须与客户明确哪些设备不能进行渗透测试,以及哪些技术不能应用。另外,也需要明确在哪些时间段不能进行渗透测试。

5.渗透测试过程的工期

根据客户的需求,给出整个渗透测试的进度表。客户可以了解渗透测试的开始时间与结束时间,以及在每个时间段进行的工作。

6.渗透测试的费用

这个话题其实很少出现在一本教科书中,但是,在实践中这恰恰是一个很复杂的问题,需要考虑的因素很多。例如,在对一个拥有100台计算机的网络进行渗透测试的时候,收取的费用为10万元,那么每台计算机的费用就是1000元。但这并不是一种线性关系,如果某个客户只要求对一台计算机进行渗透测试,那么费用不能只是1000元,因为工作量明显不同。在计算费用的时候要充分考虑各种成本。

7.渗透测试过程的预期目标

渗透测试者必须牢记的一点是,自己并非黑客。发现目标存在的漏洞、获取目标的控制权限或者得到目标的管理密码只完成了一部分任务,还需要明确客户期望在渗透测试结束时应该实现什么目标,最终的渗透报告应该包含哪些内容。