URL 预览是大多数消息传递应用程序中的一个很好的功能。它们允许您将 URL 粘贴给朋友或同事,并具有您将要查看的网站的微缩视图。
缺点是,许多应用程序生成了这些预览而不知道幕后发生了什么。因为在某些情况下,这可能等同于您已经以自己不想要的方式泄露了 IP 地址。
不要忘了:当您浏览网站时,您的公共 IP 地址会被暴露。除非您使用 Tor 或 VPN 来隐藏它,否则这就是 Internet 的工作原理。
与消息传递应用程序中的 URL 预览的不同之处在于,您正在向网站所有者广播您正在讨论该网站,而不是仅仅浏览它。
上下文中这种微小而微妙的变化实际上是一个非常重要的区别。你很快就会明白为什么……
几年前,我正在进行一项渗透测试,我尝试在欧洲一家知名公司担任高管。他们拥有我见过的最杰出的首席信息安全官之一,以及一支非常出色的事故响应团队。
在我发送了第一轮钓鱼邮件之后,我正在监视命令和控制服务器,以查找来自用户的连接。几个小时都没有太多活动,直到我的网络服务器从一个解析回Skype的 IP 地址收到了连接。这对我来说是一个WTF时刻,因为我的网络钓鱼服务器是全新的,似乎没有一个很好的理由解释为什么会出现这个连接。
几分钟后,又出现了来自另一台 Skype 服务器的另一次点击。现在我真的很想知道发生了什么。
我忽然明白了,有人在 Skype 聊天期间讨论我的命令和控制系统,Skype 正在生成我设置的网络钓鱼站点的预览。我使用自己的 Skype 帐户进行了几次快速测试,果然,我可以轻松地重现这种状况。后来我才知道是事件响应小组在讨论我的钓鱼链接。
但在涉及在线调查、事件响应和运行秘密在线操作时,这种情况会引发更大的问题。
这里有两个观点:一个是从调查的角度来看,第二个是从你通过网站进行秘密行动的角度来看。从调查的角度来看,如果您与其他调查员来回传递 URL,您最终可能会通知您的目标您正在谈论他们。这正是我在测试期间发现的,你可能不希望这种情况发生。
第二个观点是您运行网站进行隐蔽的在线操作。您可以监控这些网址预览,并确定有人正在讨论您的网站,可能会让您知道您的诡计正在发挥作用,或者您是不是有可能被抓获(同样,上下文非常重要且基于任务)。
无论哪种方式,它都是可以被观察到的一组独特的行为,而不是一般的浏览活动。
我对各种消息传递客户端和服务进行了快速测试。测试只是在 Digital Ocean Droplet 上设置一个 Python Web 服务器(每月5美元计划就足够了)。 Python Web 服务器只打印出连接客户端的 IP 地址和标头。我还设置了特定于此测试的 DNS 记录以便我可以尝试使用IP地址与域名。 WhatsApp 是唯一经过测试的对IP地址和域名响应不同的服务。其他所有服务都很乐意为IP地址生成预览。使用 HTTP 或 HTTPS URL 也没有区别。
以下是调查结果摘要:
Slack:Slack 很高兴生成URL预览并使用以下 User-Agent 标识自己:User-Agent: Slackbot-LinkExpanding 1.0 (+https://api.slack.com/robots) 请求的IP地址来自我公开的IP地址,通过我的办公室连接,在移动和桌面版本的 Slack 中。
Apple Messages:Messages 是一个有趣的测试,有一些非常独特的行为。如果您在桌面/笔记本电脑上的 Messages 发布链接,它将直接从您的公共 IP 地址生成预览,如预期的那样。User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/601.2.4 (KHTML, like Gecko) Version/9.0.1 Safari/601.2.4 facebookexternalhit/1.1 Facebot Twitterbot/1.0 非常有趣的是你在那里可以看到 Facebot 和 Twitterbot !
如果您要向目标发送 SMS 网络钓鱼,您可以通过确保您拥有一个名为 apple-touch-icon-precomposed.png 的文件来增强 URL 预览体验。消息应用程序将在确定可以成功访问目标网页后尝试检索此文件。此文件将用于生成的预览中,并有助于吸引目标点击该链接。它也可以是一种确认 Messages 是首先进行 URL 预览的应用程序的方法。
Wire:很有趣,当您从桌面和移动电话上的应用程序发布 URL 时,您的公共IP地址将显示在日志中。但是,没有显示的 User-Agent 标头。事实上,Wire 发送的唯一标头是:Connection: close 所以这本身很有趣,因为你的许多 HTTP 客户端(浏览器,抓取工具,bots 等)都会发送额外的标头。通过 Wire 后确实变成了“告诉”,也许某人正在 Wire 应用程序中讨论目标站点。
请注意,在 Wire 中,首选项 →选项中有一个设置,名为“为您发送的链接创建预览”。如果禁用此选项,将阻止 Wire 执行这些 URL 预览。我建议你这样做。感谢 Michael Bazzell 对此提供的帮助。
Facebook:它使用 Facebook 拥有的基础设施来访问该网站进行预览。User-Agent: facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php) 它不使用您的公共IP地址,但确实表明有人在其 Facebook 个人资料上发布了指向目标网站的链接,或者已经通过 Facebook Messenger 发送了该链接。您看到的IP地址将被注册到 Facebook,因此您可以使用 ipintel.io 等网站进行查找。
WhatsApp:WhatsApp 的行为与其他服务有所不同。它不直接预览P地址,但如果您键入域名(和任何端口)它将尝试进行 URL 预览。此外,当您键入目标页面的 URI 时,它会执行连续请求,从而产生大量流量。看起来是这样的:User-Agent: WhatsApp/0.3.1649 N 请求来自您的公共IP地址。
对其他应用来说在粘贴链接或键入 URL 时未生成任何预览或流量。当然你应该自己测试一下来验证。
您可以采取一些措施来帮助降低风险:
取消 URL — 只是用其他字符替换点和冒号或使用括号的方法。一个例子:
正常是这样:https://www.hunch.ly
改装后是这样:hxxps://www[.]hunch[.]ly
使用安全的VPN — 这是次要的建议,因为它不能缓解原始问题,但对于正在暴露您的公共IP的服务,至少能掩盖。
How To Blow Your Online Cover With URL Previews? The difference with URL previews in messaging applications is that you are broadcasting to the website owner that you are discussing the website, as opposed to just browsing to it.