免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章读。
目录
用友nc的命令执行漏洞
0x01 前言
用友NC BeanShell漏洞的详细情况
用友NC是一款广泛应用于大中型企业的企业级管理软件,它提供了一体化的IT解决方案,包括建模、开发、集成、运行和管理等功能。然而,这款软件存在一个严重的安全隐患,即CNVD-2021-30167漏洞,该漏洞允许攻击者通过远程执行命令获取服务器权限12345。
漏洞详细描述
该漏洞存在于用友NC的
bsh.servlet.BshServlet
组件中,这是一个使用BeanShell脚本语言编写的servlet。BeanShell是一种嵌入Java应用程序中的脚本语言,它允许直接执行Java语句。攻击者可以利用该漏洞通过构造恶意的BeanShell脚本发送到服务器,执行远程命令。技术原理
用友NC的
BshServlet
组件在处理请求时,并未对脚本执行的命令进行严格过滤或限制。攻击者可以利用此漏洞构造特殊的请求,嵌入恶意的BeanShell代码。
当服务器执行这些恶意代码时,攻击者可以执行任意的Java方法,这通常会导致远程代码执行(RCE)。
漏洞影响范围
该漏洞影响用友NC的6.5版本。攻击者利用该漏洞可以完全控制受影响的服务器,进行数据窃取、系统破坏或进一步的网络攻击。
漏洞利用条件
为了成功利用此漏洞,攻击者需要满足以下条件:
攻击者需要了解目标系统的用友NC部署环境和网络架构。
需要能够访问到运行有漏洞版本
BshServlet
的用友NC服务器。攻击者必须能够构造恶意请求,且该请求能够通过任何网络过滤或防护措施。
防御措施
为了防范该漏洞,建议采取以下措施:
升级用友NC系统到最新版本,确保漏洞已经被修复。
在无法立即升级的情况下,可以暂时禁用
BshServlet
组件的远程访问功能,直到官方发布补丁。对所有进入系统的请求进行严格的访问控制和输入验证,确保不会执行未经验证的脚本代码。
定期进行安全审计和渗透测试,以便及时发现和修补可能存在的安全漏洞。
漏洞的发现和修补
用友NC官方已经意识到此漏洞,并可能已经发布补丁或升级包来修复该问题。用户应该密切关注官方的安全更新公告,并及时安装更新以保护系统安全。
结语
用友NC BeanShell远程代码执行漏洞是一个典型的企业级应用软件远程执行漏洞案例。它再次提醒广大企业,定期的安全更新和漏洞修补是防止网络攻击的有效手段。同时,对于安全研究人员和白帽子来说,识别和报告此类漏洞是保护企业和个人用户免受网络攻击的重要职责。通过共同努力,可以提高整个行业的安全防护水平。
0x02 漏洞举例
这里以前几天爆出来的用友nc的命令执行漏洞为例
http://xxx.xxxx.xxxx.xxxx/servlet//~ic/bsh.servlet.BshServlet
文本框里可以命令执行
0x03 漏洞的批量检测
在知道这个漏洞详情之后,我们需要根据漏洞的特征去fofa里寻找全国范围里使用这个系统的网站,比如用友nc在fofa的搜索特征就是
app="用友-UFIDA-NC" && country="CN"
可以看到一共有5395条结果,接下来我们需要采集所有站点的地址下来,这里推荐密探
然后导出所有站点到表格文件中。