第四章 互联网信息收集
永远不要低估渗透测试中信息收集阶段的重要性。我承认我曾经低估了这个阶段,这个阶段是多么重要。有一次,我正在处理一个尚未部署到生产环境中的项目,因此实际上,在internet上还没有任何信息,对吧?本章的重点是渗透测试阶段的主要方法。你不应该在不知道你要找什么之前盲目地运行扫描器。我们在前一章已经讨论过的一个步骤是搜索子域。这个任务也是被动信息收集的一部分(如果你使用网络作为数据源来获取结果)。如果你需要复习,可以回到上一章。
一、使用互联网搜索引擎来获取结果
二、使用Shodan
三、使用谷歌查询
四、了解如何使用 Whois 数据库显示有关域的信息
五、看看被动足迹的基本工具是如何在Kali上工作的,包括六 TheHarvester, Dmitry和Maltego
被动足迹和侦察
将 DNS 主服务器记录复制到另一个 DNS 服务器,称为 DNS 传输。我们可以利用这个过程让我们定义一些关于这个主题的术语。利用互联网的公共信息收集信息有很多技术名称。有人似乎出现,也有人称用户足迹或用户信息收集。有时您会听到 OSINT 的名称,它代表开源情报。使用您喜欢的任何技术术语,但请确保不要与所有这些术语发生冲突,因为它们的含义都是相同之处:使用公开来源收集有关您的目标的数据。不要对足迹和指纹之间的区别感到惊讶,因为睡眠用于识别睡眠。
您的足迹中最关键的任务之一是知道您在寻找什么。有大量工具可以完成工作,但您需要了解它们在后台执行的操作。因此,在执行信息收集任务时,需要查找以下项目:通过询问主 DNS(称为 NS 服务器,例如 ns1.ethicalhackingblog.com)来获取所有子域的列表给我们目标域名列表。此查询减轻作业,但如果成功,您将收到一份包含所有子域及其关联IP地址的礼物。
公司子域
网站
公共IP地址(包括云端AWS/Azure上的IP地址)
泄露的内部IP地址
公共DNS记录(MX邮件记录等)
泄露的资源(主要在GitHub或Pastebin上)
此前的泄露
事件重大业务变化(例如收购)
企业财务信息(这可能会泄露秘密合作伙伴)
公司电话号码(用于社会工程)员工公共信息(用于社会工程)
公司在社交媒体上的存在(例如LinkedIn)
互联网搜索引擎
公共搜索引擎是你搜索目标弱点的入口。在下一节中,您将详细了解如何利用这一优势谷歌搜索引擎,以获得所有必要的信息(泄漏)。话虽如此,除了谷歌,你还可以使用很多搜索引擎。这些搜索引擎会在你告诉他们你在找什么后为你指明正确的方向。它们是一座金矿,可以揭示你的目标在野外泄露的信息。这里有一个搜索引擎列表,你应该添加到你的武器库工具包:
搜索引擎:google.com
Shodan在线扫描仪:shodan。
duckduckgo搜索引擎:duckduckgo.com
Shodan
Shodan是一个很棒的在线工具,它会为你扫描互联网。你可以在这个怪物身上使用无限的选择。这里有一个简单的例子:假设你想找到在互联网上可见的Docker引擎,并且监听端口2375 (Docker守护进程的默认端口号)。
谷歌查询
谷歌是一个强大的搜索引擎,如果您知道如何正确使用它,它可以让您找到您正在寻找的信息(例如,有关您的客户/雇主的泄漏记录)。谷歌使您能够使用高级过滤条件查询其数据库。有些人称“谷歌黑客”。数据库(GHDB),而其他人则称Google dorks。让我们从第一个站点开始:我在开始使用时总是使用的查询,如图4.2所表示。此特定查询将允许您查找与您的目标域名关联的所有网页和网站(此查询也将显示子域)。
现在所有的东西都在GitHub上公开发布。这里有一个有趣的查询,您可以在谷歌上使用它来查找发布在GitHub上的有趣信息。图4.3显示了当使用关键词Gus Khawaja搜索GitHub .com时,查询得到的一些结果:
使用扩展名搜索
您可以使用Exploit-db上的GHDB查询来可视化最新的想法。检查www.exploit-db.com/google-hacking-database,如图4.4所示。(Exploit-db属于攻击性安全团队,Kali Linux的创始人。)
使用Kali Linux收集信息
许多工具都有共同的功能,其中一些是免费的(例如 Dmitry),而其他工具则只能完全有限地使用功能,除非您每年付费订阅(例如 Maltego)。在接下来的部分中,您将了解可用于扫描仪扫描的典型应用程序。不过,这样做的主要目的是向您展示基础知识,以便您不会在不了解其目标的情况下盲目使用这些扫描仪。
Whois 库
每个购买域名的实体(公司或个人)都需要在注册过程之前输入其个人信息。大部分。信息将在Whois数据库中公开发布。现在不要对此感到太兴奋,因为域名提供商(例如GoDaddy)将允许你通过收费来保护你在Whois数据库上的个人信息(这就是我为我的博客网站ethicalhackingblog.com所做的)。要利用Whois数据库的弱点,您可以在Kali Linux上使用Whois命令。
whois [域名]
以下是whois查询输出的示例(以下信息是虚构的):
总之,以下是Whois将作为公共信息显示的内容:
注册人名称
联系电话
e -mail
地址
实体地址
域名过期日期
(Name Servers)服务器
TheHarvester
如果要进行社会工程攻击或网络钓鱼练习,查找电子邮件地址是至关重要的。如果你是内部人士,就不难找出电子邮件地址,因为你已经知道电子邮件的格式是什么样子的。, firstname.lastname@domain.tld)有很多工具可以实现这个目的。一个是旧的工具,它仍然做得很好;它被称为收割机。这个工具将使用流行的搜索引擎,如谷歌来过滤结果:
theHarvester -d [域名] -b [来源] -s
theHarvester -d ethicalhackingblog.com -b all -s
-d用于指定目标的名称。(如果您使用如图所示的ethicalhackingblog .com域名,如果您找不到任何结果,请不要感到惊讶,因为该域名对此类攻击是安全的。)
-s是在Shodan web引擎上搜索。
-b为在线数据源名称;在图中,我选择了全部。以下是您可以选择的列表(使用帮助命令-h获取更多选项):
DMitry
dmitry -wnse [domain-name.com]
>DMitry 代表“deepmagic 信息收集工具”,是另一个同时执行开源操作的应用程序
-w:执行Whois查找。
-n:从Netcraft.com上检索目标器的记录。
-s:查找子域。
-e:搜索电子邮件地址。
-p:扫描TCP开放端口(这不是被动的)。
Maltego
Maltego非常适合被动信息收集。关于这个工具可以写一整本书,因为它包含了完成工作所需的一切。如果您想使用完整的功能,那么您必须支付年度许可证。如果你是专业人士,这个工具是必须的,但你仍然可以使用有限的版本,并得到一些不错的结果。
变换中心
是Maltego将去获取数据的站点集合(例如Shodan、Kaspersky、Virus Total等)。默认情况下,没有安装这些数据源中的大多数;你必须点击你想要安装的每一个。有多种类型的数据源:
单独付费:您将需要为这些web服务直接付费;他们不包括在马耳他的执照费里。
免费:许多数据源是完全免费的。
经过身份验证的API:其中一些服务将要求您打开一个帐户;然后他们会给你一个API令牌来验证你自己并使用他们的数据。
创建图形
这张图Maltego的中心。在本节中,您将执行被动扫描。在开始扫描之前,您需要首先选择一个实体(例如,一个人、一个公司、一个域名等)。你可以从域名或公司名称开始,从那里,你可以选择你想要扫描的东西。让我们来看一个实际的例子;我们将选择Ethical Hacking Blog DNS作为实体
这里的选项是无穷无尽的:您可以选择每种实体类型并右键单击它,以可视化您可以从互联网上查询的不同类型的信息。请注意,这个演示展示的是付费版Maltego 4.2.9,但您也可以在免费版中执行大多数场景。一些安全人员使用免费工具,如recconng,其工作类似于在马耳他执行的任务。(recon-ng是一个Python扫描器,用于信息收集,它使用web API服务来获取数据。)出于教育目的,尝试这些免费工具是无害的。然而,如果一个组织指望你的工作,那么钱不应该是一个障碍,在这种情况下,建议你利用年度许可证。这不仅适用于Maltego,而且适用于大多数安全工具(例如Nessus, Burp Suite Pro等)。如果你想显示专业的结果,你必须付出相应的代价才能正确完成工作。
总结
信息收集是交战过程中的主要组成部分之一。即使你不打算进行社会工程攻击,这个阶段也会给你一个不同的角度来看待你的目标领域/公司。网络总是隐藏着一些秘密,比如泄露的密码、机密数据等。有了本章所学的知识,你应该能够像专业人士一样开始进行侦察