黑客如何利用开放端口作为攻击媒介?

信息安全 攻击 港口
2021-08-19 02:30:02

关闭任何连接到互联网的机器上的开放端口是一种普遍的知识,因此也是一种常见的做法。

例如,如果一个典型的程序使用端口 xyz 作为它的通信通道,并且该程序中存在可以通过该端口利用的漏洞,那么为什么相同的攻击不能通过端口 80 成功呢?

鉴于我们的伪程序使用 TCP 888 端口,并且它有一个可以被利用的漏洞,为什么不能通过端口 80 TCP(它是 HTTP,并且几乎在任何机器上都开放)来利用该漏洞?

Web 服务器上的端口 80 是否仅侦听 UNIQUE 类型的 TCP 数据包?它只接受某种数据包吗?

为什么黑客不能尝试使用恶意字符串制作 TCP 数据包,将其封装在 HTTP 数据包中,从而攻击 Web 服务器?

2个回答

服务监听端口。Web 服务器(一种服务)监听端口 80,但这只是一个标准,而不是硬性规则。您可以配置任何服务以侦听任何端口。这不是关于“特殊数据包”,而是关于“拨打正确的端口号”以获得您想要的服务。

如果你的伪程序有漏洞,那么它就可以在分配给它的端口上受到攻击。你不能在它没有监听的端口上攻击一个程序。如果您尝试在另一个端口(例如您的示例中的端口 80)上攻击它,您的程序将无法访问。

那么,您的最后一个问题有点奇怪:“为什么黑客不能尝试使用恶意字符串制作 TCP 数据包,将其封装在 HTTP 数据包中,从而攻击 Web 服务器?” 这就是黑客所做的。但他们针对的是他们想要访问的服务的端口。但也许你可以根据我提供的信息细化这个问题。

那么,为什么要关闭端口?因为您希望减少暴露给 Internet的潜在易受攻击服务的数量

“阻塞端口”只是说明我们真正想做的事情的一种近似方式,即阻止对某些服务的访问。

新安装的操作系统通常会自动运行许多东西,其中一些是具有网络部分的服务。此类服务中的任何网络可利用漏洞都是攻击者的潜在访问门。然而,几乎所有这些服务都可以在整个互联网上被每个人访问是无关紧要的。例如,对于一台应该是 Web 服务器的机器,地球上的任何人都可能尝试访问特定的“Web”服务(这是它的功能)是正常的,而且 SSH 服务通常也是开放的(以便服务器管理员可以管理服务器);但是,该服务器的文件共享服务也广泛开放是没有用的。

阻止对给定端口的访问可以在防火墙上完成,并且被认为比试图说服操作系统不要运行给定服务以及在软件出现时避免重新启动它或发明新服务更省时更新。因此,习惯上会阻止所有端口,除了那些已知与应该在全球范围内访问的服务相对应的端口(例如,分别用于 Web 和 SSH 的 80 和 22)。