1. CNVD-2021-30167漏洞初探与复现
用友NC系统作为国内主流的企业管理软件,其安全性一直备受关注。2021年曝光的CNVD-2021-30167漏洞就是一个典型的远程代码执行漏洞,影响范围广泛。这个漏洞的核心在于BeanShell组件的未授权访问问题,攻击者可以通过特定URL直接调用系统内置的脚本解释器。
我第一次复现这个漏洞时,发现整个过程比想象中简单得多。只需要在目标系统的URL后追加/servlet/~ic/bsh.servlet.BshServlet路径,如果出现一个带有输入框的界面,就说明存在漏洞风险。记得当时我在本地测试环境输入print("hello world");后看到返回结果时,那种"原来漏洞利用这么直接"的惊讶感至今记忆犹新。
不过要注意的是,有些系统虽然会返回这个界面,但实际可能做了权限控制无法执行命令。这种情况我遇到过几次,后来发现是因为管理员只修补了部分功能。所以真正的漏洞验证必须走到命令执行那一步,常见的验证方式是执行exec("whoami");查看当前用户权限。
2. 漏洞批量挖掘实战技巧
掌握了单个漏洞的验证方法后,接下来就是如何高效地发现更多存在漏洞的系统。这里的关键在于精准的搜索引擎语法运用。我常用的组合是intitle:"Yonyou NC" inurl:8080,这个查询能快速锁定用友NC系统的Web管理界面。
在实际操作中,我发现几个提高效率的技巧:
- 使用site:edu.cn限定教育行业目标,这类目标往往系统更新不及时
- 配合filetype:jsp等过滤条件缩小范围
- 设置合理的搜索时间范围,避免老旧的无效结果
批量验证时一定要做好记录工作。我习惯用Excel表格记录每个目标的URL、验证状态、响应特征等信息。这样既方便后续提交漏洞报告,也能避免重复测试。记得有次因为没做好记录,同一个目标提交了两次,差点被平台判定为重复提交。
3. 授权环境下的深度利用链
在获得合法授权的前提下,我们可以进一步探索漏洞的深度利用。从简单的命令执行到完整的控制链建立,这个过程涉及多个关键步骤。
首先是命令执行环节的突破。很多新手会卡在命令执行的回显问题上,这里有个小技巧:如果直接exec执行命令看不到回显,可以尝试将输出重定向到web目录下的临时文件,然后通过浏览器访问查看。比如:
exec("ipconfig > webapps/ROOT/temp.txt");接下来是Webshell上传。我建议优先使用内存马的方式,这样不会在磁盘留下明显痕迹。如果必须上传文件,可以考虑使用编码后的命令直接写入,避免被安全设备检测到文件上传行为。比如:
exec("echo '<%...jsp代码...%>' > webapps/ROOT/shell.jsp");4. 后渗透阶段的关键技术
获得初步控制权后,真正的挑战才刚刚开始。如何维持访问、提升权限、横向移动,每一步都需要精心设计。
冰蝎连接是最常见的操作,但要注意版本选择。新版冰蝎的流量特征已经被很多安全设备识别,我推荐使用自定义的加密密钥和协议。连接成功后,第一件事就是收集系统信息:补丁情况、安装的软件、网络配置等。
Meterpreter会话的建立是另一个关键点。在实战中我发现,直接反弹shell经常会被拦截。这时候可以尝试以下几种方法:
- 使用HTTPS协议反弹
- 设置合理的会话间隔时间
- 对流量进行分段传输
内网渗透阶段,我习惯先用简单的netstat -ano查看网络拓扑,然后再决定下一步动作。切记不要在未经授权的情况下进行扫描或攻击,这不仅是法律问题,也可能触发目标的安全警报。
5. 漏洞修复与防御建议
作为负责任的安全研究人员,我们不仅要会找漏洞,还要知道如何防护。对于CNVD-2021-30167漏洞,官方早已发布补丁,但现实中仍有很多未修复的系统。
给管理员的具体建议包括:
- 立即升级到最新版本的用友NC系统
- 删除或限制访问/servlet/~ic/bsh.servlet.BshServlet路径
- 在WAF中添加针对BeanShell组件的防护规则
- 定期检查系统日志中的可疑访问记录
对于安全研究人员,我的经验是:发现漏洞后先确认影响范围,然后立即通知厂商。同时做好漏洞细节的保密工作,避免被恶意利用。记得保留完整的验证过程记录,这对后续的漏洞评级和修复都很重要。
6. 法律与道德边界
在漏洞挖掘过程中,法律红线绝对不能触碰。我始终坚持三个原则:
- 绝不测试未经授权的系统
- 发现漏洞后第一时间报告
- 不公开未修复漏洞的利用细节
曾经有朋友问我:"找到漏洞不利用,怎么证明它的危害性?"我的做法是在本地搭建完全相同的测试环境进行验证。这样既能证明漏洞的危害,又不会触犯法律。
提交漏洞时,完整的复现步骤和危害证明非常重要。我通常会准备:
- 详细的漏洞描述
- 分步骤的复现过程
- 清晰的危害证明截图
- 可行的修复建议
这样不仅能提高漏洞审核通过率,也能帮助厂商更快地解决问题。