为什么这个网站要扫描我的端口?

2020-05-20 21:28:29

最近,我得到消息说某些网站对访问者执行本地主机端口扫描,大概是作为用户指纹识别和跟踪或机器人检测的一部分。这让我很不舒服,所以我开始调查这种做法,似乎许多网站都是出于可疑的原因而对端口进行扫描的访问者。

端口扫描是渗透测试者和黑客经常使用的一种对抗性技术,用于扫描面向互联网的机器并确定哪些应用程序或服务正在侦听网络,从而通常可以执行特定的攻击。安全软件检测活动端口扫描并将其标记为潜在滥用是很常见的。

大多数家庭路由器没有任何开放的端口,因此扫描互联网用户的IP地址不太可能返回任何有意义的数据。但是,由于各种原因,许多用户在其计算机上运行侦听端口的软件-在线游戏、媒体共享和远程连接只是消费者可能在家用PC上安装的几个功能。

端口扫描可以向网站提供有关您正在运行的软件的信息。许多端口都有一组定义良好的服务来使用它们,因此打开的端口列表可以很好地显示正在运行的应用程序。例如,STEAM(游戏商店和平台)已知在端口27036上运行,因此看到该端口打开的扫描仪可以合理地确信用户在访问网站时也打开了STEAM。

在过去,我研究过一些安全产品,这些产品特别担心员工网络浏览器的端口扫描问题。像BEAM这样的攻击框架包括端口扫描功能,可用于危害用户机器或其他网络设备。因此,我希望能够在机器上的任何端口扫描上发出警报,作为一种潜在的危害,并且站点扫描的本地主机可能会触发这些警报。

另一方面,这是在过去的几次报告,因为银行有时端口扫描访客,我听说威胁矩阵提供这作为一个客户恶意软件检测检查。

我被告知易趣是一个包含端口扫描的网站,但当我最初导航到那里时,我没有看到任何可疑的行为。我认为他们可能会使用一些启发式方法来确定要扫描谁,所以尝试了几个不同的浏览器和欺骗设置,但没有任何运气。

我想这可能是因为我运行的是Linux,所以我创建了一个新的Windows VM,果然,我从eBay主页上看到了浏览器工具中的端口扫描:

查看他们正在扫描的端口列表,他们正在查找主机上正在运行的VNC服务,这与银行站点报告的情况相同。我标出了端口和它们以什么闻名(对于我不熟悉的端口,有几个空格):

VNC有时作为僵尸网络或病毒的一部分运行,作为远程登录到用户计算机的一种方式。有几个恶意软件服务利用VNC实现这些目的。但是,它也是管理员用于远程访问计算机或某些最终用户支持软件的有效工具,因此VNC的存在不能很好地指示恶意软件。

此外,当我安装并运行VNC服务器时,我没有检测到站点行为有任何不同-那么它为什么要寻找它呢?

WebSocket旨在允许站点像传统网络套接字一样创建双向通信。这允许站点在没有用户交互或前端轮询的情况下定期向客户端浏览器发送信息,这是可用性的胜利。

配置Web套接字时,它会指定目标主机和端口,它们不必与提供脚本的域相同。要执行端口扫描,脚本只需指定私有IP地址(如localhost)和它希望扫描的端口。

不过,WebSocket只会说HTTP,所以除非被扫描的主机和端口是Web Socket服务器,否则连接不会成功。为了绕过此问题,我们可以使用连接计时来确定端口是否打开。在浏览器中打开的端口需要更长时间,因为有一个TLS协商步骤。

您还可能收到不同的错误消息。如果安装了Python,请尝试运行以下命令以创建在端口8080上运行的本地Web服务器:

现在,打开浏览器开发人员控制台(通常是Options->;Web Developer->;Console),然后直接键入一些JavaScript。下面是我在Chrome中执行此操作时看到的内容:

>;var s=新建WebSocket(";ws://127.0.0.1:8080";)<;unfinedVM1131:1WebSocket连接到';ws://127.0.0.1:8080/';失败:WebSocket握手期间出错:意外响应代码:200(匿名)@VM1131:1>;var s=到';的新WebSocket(";ws://127.0.0.1:8081";)<;undefinedVM1168:1 WebSocket连接。ws://127.0.0.1:8081/';失败:连接建立错误:NET::ERR_CONNECTION_REJECTED。

在错误消息自省和计时攻击之间,站点可以很好地了解给定端口是否打开。

无论端口扫描是作为感染的一部分使用,还是作为电子商务或银行或安全检查的一部分使用,它显然都是恶意行为,可能会触犯法律。

如果您观察到这种行为,我鼓励您向执行扫描的机构投诉,并安装尝试在您的浏览器中阻止此类现象的扩展,通常是通过从一开始就阻止加载这些类型的脚本来实现的。

该评论系统是使用Mozilla Coral Talk平台自托管的,不与任何可能收集数据的第三方连接。您可以随时完全删除存储的所有评论和数据,包括您的电子邮件地址。除了您要求的密码重置电子邮件外,我永远不会给您发送电子邮件。