containerscrew/rootisnaked

GitHub: containerscrew/rootisnaked

基于 eBPF 技术的 Linux 内核级提权检测工具,通过监控 commit_creds 函数实时捕获 root 提权行为并支持告警推送。

Stars: 35 | Forks: 5

rootisnaked

使用 eBPF 进行简单的 root 提权检测

GitHub code size in bytes GitHub last commit GitHub issues GitHub pull requests GitHub Repo stars GitHub watchers License License

# rootisnaked `Rootisnaked` 是一个简单的 [eBPF](https://ebpf.io/) 程序,旨在监控 Linux 系统上用户凭据(具体而言是 UID)的更改。它挂钩到 `commit_creds` 内核函数,该函数在进程的凭据被更新时调用。该程序检测进程的 UID 何时更改为 0 (root),并将此事件记录到环形缓冲区,以便在用户空间进行进一步分析。 例如,它可用于检测潜在的 Linux 提权行为。 ![example](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/9d86c586f4134254.png) ``` 2025-09-24 11:06:30 [INFO]: Starting rootisnaked 2025-09-24 11:06:30 [INFO]: eBPF program loaded and attached. Waiting for commit_creds_events... 2025-09-24 11:06:33 [INFO]: event=file_perm, pid=35890, user=root, uid=0, comm=chmod, mode=777, filename=/etc/test, hostname=arch 2025-09-24 11:06:41 [INFO]: event=commit_creds, user=dcr, tgid=36064, old_uid=1000, new_uid=0, cmdline=sudo su - , executable_path=/usr/bin/sudo, hostname=arch ```

Alerting using alertmanager and telegram

logo

# 运行 `rootisnaked` ## 安装系统依赖 (Ubuntu) ``` sudo apt install -y linux-headers-$(uname -r) vim gcc make clang libbpf-dev curl clang-format libcurl4-openssl-dev build-essential libelf-dev ``` ## 可选:配置 Alertmanager 以实现集中告警(通过 Telegram) ``` cp docker/.env.example docker/.env # 编辑 docker/.env 并设置 TELEGRAM_BOT_TOKEN 和 TELEGRAM_CHAT_ID set -a; source docker/.env; set +a envsubst < docker/alertmanager/alertmanager.yml.tpl > docker/alertmanager/alertmanager.yml docker-compose -f docker/compose.yml up -d ``` ## 编译并运行 ``` make # Using all available threads # 或者仅使用 1 个线程 # make -j1 # make -j4 # 使用 4 个线程 DEBUG=false ALERTS=true sudo -E ./bin/rootisnaked # 或者禁用 alerts DEBUG=false ALERTS=false sudo -E ./bin/rootisnaked ``` ## 使用 Docker ``` sudo docker build -f docker/Dockerfile -t containerscrew/rootisnaked:latest . ``` ``` sudo podman run -itd --restart always --name rootisnaked --privileged \ -v /proc:/proc:ro \ -v /sys:/sys:ro \ -e DEBUG=false \ -e ALERTS=false \ containerscrew/rootisnaked:latest ``` ## 使用 `scripts/install.sh` 脚本和 systemd 服务 目前我还没有创建任何软件包(deb, rpm...),因此我创建了一个简单的脚本来安装和配置 systemd 服务,以便在系统启动时运行 `rootisnaked`。 ``` ./scripts/install.sh ``` # 许可证 **`rootisnaked`** 根据 [GPL3](./LICENSE-GPL3) 和 [MIT](./LICENSE-MIT) 许可证的条款进行分发。
标签:commit_creds, CSV导出, Docker镜像, root检测, SQLite数据库, UID监控, Web截图, 内核监控, 协议分析, 客户端加密, 容器安全, 提权检测, 权限提升, 网络安全, 请求拦截, 隐私保护