首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >禁用服务版本检测

禁用服务版本检测
EN

Unix & Linux用户
提问于 2022-05-16 12:32:43
回答 1查看 309关注 0票数 0

nmap可用于检测与其关联的开放端口和服务。此外,我们还可以使用-sV标志来确定服务版本。

是否有任何方法禁用此服务器版本检测?如果黑客知道版本的详细信息,他就可以攻击系统。

例如,在Ubuntu-20.04上,以下是在给定范围内检测服务版本的结果

代码语言:javascript
复制
SHW@system:~$ nmap -sV -p 631 localhost
Starting Nmap 7.80 ( https://nmap.org ) at 2022-05-16 18:11 IST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00022s latency).
rDNS record for 127.0.0.1: view-localhost

PORT    STATE  SERVICE   VERSION
631/tcp open   ipp       CUPS 2.3   <== Version detected

Service detection performed. Please report any incorrect results 
at https://nmap.org/submit/.
Nmap done: 1 IP address (1 host up) scanned in 7.58 seconds

在这里,我应该对Ubuntu进行哪些更改来阻止631端口的服务版本?

EN

回答 1

Unix & Linux用户

发布于 2022-05-16 14:39:49

您会发现cups本身很高兴地在通过端口631通过HTTP请求/时交付了HTML的D1属性中的版本。

这是从您的CUPS附带的配置模板文件中读取的--很可能类似于/usr/share/cups/www/index.html。因此,删除这个获取版本字符串的方法非常简单--只需修改配置文件:)

然而,这实际上只是化妆品--从文件中的链接来看,即使您决定完全重写它,您也可以非常微不足道地推断它是一个CUPS (而不是其他一些IPP服务器)。

此外,CUPS的存在是为了实现一个目的;它所做的方式可能足以正确地识别它的版本。在这样的细节中,版本是不同的--这就是为什么它们是不同的版本。只要不费太大力气,有人就可以查看CHANGELOGs/git历史,找出它要查询的端点是什么,从而触发允许一个人确定版本的响应。

这就是问题所在:任何协议,即使只留下一点点的自由(如果它只是在时间上,或者在响应中被忽略的空格数!)将允许不同的实现(对于此,不同的版本是不同的实现)行为不同,可见如此。由此你可以推断出版本。

唯一的版本将是一个协议是非常小和限制,并只允许一种行为。(如果您有这样的协议,那么提供实现的服务器可能也不会看到任何新版本。)这些协议非常罕见,IPP当然正好相反:灵活的传输(基于HTTP的复杂协议!),具有灵活的检测和灵活的应答功能。该协议的任何两个实现都不会是相同的!

TL;DR:一般来说,你不能。特别是对于IPP这样复杂的协议(这是CUPS在那个端口上提供的),您不可能完全混淆版本;唯一的选择就是以不同的方式重新实现CUPS的重要部分。然后你就会用它做一个不同的软件,得到你自己的可探测版本,还有你自己的安全问题。

我对这句话有些意见:

如果黑客知道版本的详细信息,他就可以攻击系统。

真的不是这么回事。管理员可以修复系统,如果他知道哪些服务需要升级,但攻击者只是想利用一个漏洞,如果它在那里。攻击者根本不关心版本--只关心漏洞的存在,这个漏洞通常和版本号一样难搞清楚,所以通常攻击者只是尝试几个已知的漏洞,而不是试图找出所使用的软件的版本--这些漏洞可能已经或者可能还没有修补以不包含该漏洞!

所以,隐藏这个版本并没有多大用处。如果我知道我正在交谈的杯子有一个双自由漏洞,我可以通过触发打印机的本地扫描来利用这个漏洞,那么我就会尝试跳槽--这只是一个请求。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/702733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档