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

1.2.2 收集情报

这里的“情报”指的是目标网络、服务器、应用程序的所有信息。渗透测试人员需要使用各种资源尽可能地获取测试目标的相关信息。

如果现在采用黑盒测试的方式,那么可以说这是整个渗透测试过程中最为重要的一个阶段,所谓“知己知彼,百战不殆”也正说明了情报收集的重要性。这个阶段所使用的技术可以分成以下两种。

1.被动扫描

这种扫描方式通常不会被对方所发现,打一个比方,如果希望了解某一个人的信息,那么可以向他身边的人询问,如他的邻居、同事甚至他所在社区的工作人员。那么收集到信息又有什么呢?可能是他的名字、年龄、职业、籍贯、兴趣、学历等。

对一个目标网络来说,也可以获得很多信息,例如,现在仅仅知道客户的一个域名(例如www.testfifire.net,这是美国IBM公司提供的一个专门用来进行渗透测试训练的目标,所以对该目标进行扫描无须担心法律问题),通过这个域名就可以使用Whois查询到这个域名所有者的联系方式(包括电话号码、电子邮箱、传真、公司所在地等信息,以及域名的注册和到期时间),通过搜索引擎还可以查找与该域名相关的电子邮箱地址、博客、文件等。

2.主动扫描

这种扫描方式的技术性比较强,通常会使用专业的扫描工具对目标进行扫描。扫描之后获得的信息包括目标网络的结构、使用设备的类型,以及目标主机上运行的操作系统、开放的端口、提供的服务、运行的应用程序等。