gotr00t0day/privwatch

GitHub: gotr00t0day/privwatch

一款Linux进程审计工具,通过扫描正在运行的进程,检测root进程执行非root所有且可写文件的风险,从而发现潜在的权限提升漏洞。

Stars: 4 | Forks: 1

# privwatch ![Alt text](https://github.com/gotr00t0day/privwatch/blob/main/zczxczxc.jpeg) Linux 进程审计工具,遍历 `/proc`,打印每个正在运行的进程及其 PID、命令名称、所属用户、完整命令行,并在进程以 **root** 身份运行但解析后的路径**不**归 root 所有且**组可写或全局可写**时,标记**可写执行目标**。这种模式是一种常见的权限提升信号(root 正在执行他人可修改的代码)。 作者:c0d3Ninja(参见源文件头)。 ## 功能说明 - 枚举 `/proc` 中的数字条目,并读取 `comm`、`status` (UID) 和 `cmdline`。 - 构建一组**执行目标**:主可执行文件(如果是绝对路径)、传递给已知解释器(Python、shell、Node 等)的脚本,以及其他非 `key=value` 风格的绝对路径参数。 - 尽可能使用 `realpath` 解析路径。 - 对于每个目标,使用 `stat(2)`:如果进程的真实 UID 为 `0`,文件所有者**不**是 `0`,且模式包含 `S_IWGRP` 或 `S_IWOTH`,则该行会标注 **HIGH RISK** 消息。 **没有 CLI**:直接运行二进制文件并读取 stdout。 ## 输出格式 每一行均为彩色终端输出: `PID -> comm -> username -> cmdline -> [HIGH RISK: path]` 如果未找到匹配的目标,风险后缀为空。 ## 系统要求 - 带有 `/proc`(进程文件系统)的 Linux。 - C++20 编译器(`std::filesystem`)。 ## 构建(独立) 从仓库根目录: ``` g++ -DPROCESSMONITOR_STANDALONE -std=c++20 privwatch.cpp -I. -o privwatch ``` 除了 C++ 标准库和 POSIX(`unistd`、`pwd`、`sys/stat`)之外,不需要额外的库。 请仅在您获得授权评估的系统上使用。
标签:Bing搜索, C++20, Linux内核, Root权限, SQL, Std::filesystem, Web报告查看器, XML 请求, 协议分析, 可写执行文件, 安全开发, 提权检测, 文件系统监控, 权限提升, 系统审计, 路径解析, 进程分析, 进程审计, 高危风险识别