LPAR2RRD 8.04 远程代码执行漏洞利用分析

本文详细分析了LPAR2RRD 8.04中的远程代码执行漏洞(CVE-2025-54769),包括漏洞原理、利用方法及Perl脚本上传与执行过程,涉及目录遍历和CGI路径操纵技术。

LPAR2RRD 8.04 - 远程代码执行(RCE)漏洞利用

漏洞概述

  • CVE编号: CVE-2025-54769
  • 漏洞类型: 远程代码执行(RCE)和目录遍历
  • 影响版本: LPAR2RRD 8.04
  • 作者: Byte Reaper

漏洞描述

通过LPAR2RRD的升级端点上传恶意Perl脚本,利用目录遍历漏洞将脚本放置在CGI可执行路径中,从而触发远程命令执行。

利用代码分析

主要功能

  1. 创建恶意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;
    }
    
  2. 上传脚本:
    使用curl库通过POST请求将脚本上传到目标服务器的/lpar2rrd-cgi/upgrade.sh端点。

  3. 目录遍历与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")确认漏洞利用成功。

防御建议

  1. 升级LPAR2RRD到最新版本。
  2. 对用户输入进行严格过滤,防止目录遍历。
  3. 限制CGI目录的执行权限。

备注

  • 漏洞利用需网络可达目标服务器。
  • 脚本依赖libcurl库,编译时需链接-lcurl

本文仅用于安全研究,请勿用于非法用途。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计