第 2 章 侦察
侦察 (reconnaissance)这个术语源自军事战略,意为摸清友军占领范围以外区域的情况,收集敌方情报以便后续分析或攻击。对计算机系统的侦察本质上与此类似,即渗透测试人员或黑客在对目标系统发起攻击之前先尝试掌握尽可能多有关目标环境和系统特征的信息。这也称作确立目标的足迹 。侦察本质上一般是被动的,在许多情况下只要你没有跟非授权系统进行三次握手就不算非法(不过,我们不是律师,没法提供法律上的建议)。
侦察的例子太多了。在公共资源(比如谷歌)上研究目标,监测公司雇员的活动以了解其工作模式,扫描网络或系统以收集信息(如生产商类型、操作系统和打开的通信端口),这些都算。收集到的有关目标的信息越多,找到最简便和最快速方法完成渗透目标的概率就越大,找到避开现有安全部署的最佳方法的概率也越大。还有,惊动了目标很有可能导致特定的攻击路径被关闭(加强戒备)。Kali的官方口号说得非常贴切:
The quieter you become, the more you are able to hear.(越是安静,侦察的收获就越多。)
侦察服务应该包含大量的文档记录,因为侦察阶段发现的数据有可能会跟渗透测试活动后面的某个点关联。客户也想知道特定数据是怎么得到的,他们可能会问数据的来源。这里有个客户提问的例子。客户会问这些数据是通过哪些工具获得的,或者是通过哪些公共资源获得的(比如,在谷歌中通过提交的特定搜索查询就能获得数据)。只告诉客户“我已经完成了目标”是不够的,因为渗透测试的目的就是为了找出薄弱环节,以便将来修补。