LPAR2RRD 8.04 - 远程代码执行(RCE)漏洞利用
漏洞概述
- CVE编号: CVE-2025-54769
- 漏洞类型: 远程代码执行(RCE)和目录遍历
- 影响版本: LPAR2RRD 8.04
- 作者: Byte Reaper
漏洞描述
通过LPAR2RRD的升级端点上传恶意Perl脚本,利用目录遍历漏洞将脚本放置在CGI可执行路径中,从而触发远程命令执行。
利用代码分析
主要功能
-
创建恶意Perl脚本 (
users.pl):
脚本通过CGI参数cmd执行系统命令(如whoami),并返回结果。1 2 3 4 5 6 7 8 9 10 11#!/usr/bin/perl use strict; use warnings; use CGI; my $q = CGI->new; my %PAR = map { $_ => scalar $q->param($_) } $q->param; if ( $PAR{cmd} && $PAR{cmd} eq "commandLinux") { print "Content-type: text/html\n\n"; my $commandW = qx(/usr/bin/whoami 2>&1); print $commandW; } -
上传脚本:
使用curl库通过POST请求将脚本上传到目标服务器的/lpar2rrd-cgi/upgrade.sh端点。 -
目录遍历与RCE触发:
利用目录遍历将脚本写入CGI可执行目录,并通过GET请求访问/lpar2rrd-cgi/users.sh?cmd=commandLinux执行命令。
关键函数
CreateFilePerl(): 生成恶意Perl脚本文件。remoteCode(): 处理脚本上传和HTTP请求。getRequest(): 发送GET请求触发命令执行并检查响应。
命令行参数
-i/--ip: 目标IP地址(必需)-c/--cookies: Cookie文件路径-p/--port: 目标端口(默认基于协议选择80/443)-t/--protocol: 协议类型(http/https)-v/--verbose: 启用详细输出模式
技术细节
- 使用curl库处理HTTP请求,支持Cookie和自定义头部。
- 通过汇编指令实现精确延时(
sleepAssembly)和系统调用(syscallLinux)。 - 检查HTTP响应码(200-299)和关键词(如"root")确认漏洞利用成功。
防御建议
- 升级LPAR2RRD到最新版本。
- 对用户输入进行严格过滤,防止目录遍历。
- 限制CGI目录的执行权限。
备注
- 漏洞利用需网络可达目标服务器。
- 脚本依赖libcurl库,编译时需链接
-lcurl。
本文仅用于安全研究,请勿用于非法用途。