⭐ 在 GitHub 上为我们加星标 — 以示支持!
💡 建议在深色模式下查看 :)
SUDO_KILLER 项目已入围 2023 年 SANS 差异奖开放源代码工具类决赛。
SUDO_KILLER 是一款面向网络安全从业人员(渗透测试人员、安全审计员、系统管理员、CTF 玩家和信息安全学生)的工具,用于简化 Linux 环境中的权限提升。它专注于与 SUDO 使用相关的漏洞,包括 sudo 规则配置错误、基于版本的弱点(CVE 及其他漏洞)以及风险二进制部署(GTFOBINS)。这些薄弱点可被利用来获得 ROOT 级别权限或冒充其他用户。
SUDO_KILLER 提供了一个潜在的用于手动提权的命令和本地漏洞利用的目录。重要的是,它避免自动利用漏洞,要求用户根据其预期用途自行执行利用过程。
以下是 SUDO_KILLER 执行的检查列表:
[!WARNING] 上述检查列表并非详尽无遗。
要开始使用 SUDO_KILLER,您可以通过 git clone 或下载 zip 文件。如果您想练习和/或测试它,有一个易受攻击的测试环境(使用 Docker)。请参阅相关视频,其中概述了如何设置 Docker 并运行 SUDO_KILLER。在 Docker 环境中可以设置多个场景,可用于测试不同的配置错误或缺陷。或者,您可以在需要审计的系统上运行它,以检查与 sudo 相关的配置错误和/或缺陷。```shell ./SUDO_KILLERv.sh -c -a -e -r report.txt -p /tmp
可选参数:
</br>-c : 包含 CVE 检查</br>
</br>-a : 包含与第三方应用/设备相关的 CVE</br>
</br>-i : 从 extract.sh 导入(离线模式)</br>
</br>-e : 包含 sudo 规则/sudoers 文件的导出</br>
</br>-r : 报告名称(保存输出)</br>
</br>-p : 保存导出和报告的路径</br>
</br>-s : 提供用户密码用于 sudo 检查(如果当前用户的密码无法获取 sudo 规则时)</br>
</br>-h : 帮助
> [!NOTE]
> 值得注意的是,当使用 -c 参数时,提供了两种检查类型:一种仅根据当前使用的 sudo 版本来识别 CVE,另一种还会检查所需条件。
> 通常情况下,某个 sudo 版本可能存在漏洞,但成功利用可能需要一些先决条件。
> [!NOTE]
> 提供密码:如果运行 sudo -l 需要密码,那么如果不通过 -s 参数提供密码,脚本将无法工作。
<a name="docker"></a>
### Docker(易受攻击的测试环境)
<p align="left">
<img width="25%" src="https://raw.githubusercontent.com/TH3xACE/res/main/SK/docker.gif" alt="-dockerlogo"/>
</p>
提供了一系列 Docker 容器,以提供一个故意设置漏洞的环境,用于测试和动手实验 `SUDO_KILLER` 以及各种漏洞。```shell
service docker start
docker pull th3xace/sudo_killer_demo3
docker run --rm -it th3xace/sudo_killer_demo3
(This docker is only to test the CVE-2019-18634 (pwfeedback))
service docker start
docker pull th3xace/sudo_killer_demo2
docker run --user 1000 --rm -it th3xace/sudo_killer_demo2
```shell
(This docker is only to test the CVE-2025-32463 (chwoot)) -> Credits to author $ git clone https://github.com/pr0v3rbs/CVE-2025-32463_chwoot.git $ cd CVE-2025-32463_chwoot
$ service docker start $ ./run.sh
pwn@f722d9182d1f:~$ ./sudo-chwoot.sh id woot! uid=0(root) gid=0(root) groups=0(root),1001(pwn)
pwn@f722d9182d1f:~$ ./sudo-chwoot.sh woot!
root@f722d9182d1f:/# id uid=0(root) gid=0(root) groups=0(root),1001(pwn)
## 为什么可以无需密码运行 "sudo -l"?
默认情况下,如果对主机上用户的任何条目应用了 NOPASSWD 标签,你就可以无需密码运行 "sudo -l"。此行为可以通过 verifypw 和 listpw 选项覆盖。
但是,这些规则仅影响当前用户,因此如果可以模拟用户(使用 su),也应从该用户启动 sudo -l。
有时,即使没有密码无法访问 sudo -l,文件 /etc/sudoers 仍然可读。
<a name="scenarios"></a>
## 场景
要切换场景(为防止不同场景之间的冲突)在 docker (demo3) 上:```shell
switchScenario <scenario_number>
Available scenarios: 0 to 10
All Scenarios 0 : Conflict might occur!
Scenario 1: [2,3] CVE - Rules
Scenario 2: [4] Excessive permissions
Scenario 2: [5] Excessive permissions (Authentication required)
Scenario 3: [6] User Impersonation
Scenario 4: [7] Common Misconfiguration (Change owner)
Scenario 4: [8,11] Common Misconfiguration (Wildcard)
Scenario 5: [13] Missing scripts from sudo rules
Scenario 6: [17] Dangerous Environment Variables
Scenario 7: [18] Dangerous binaries (gtfobins)
Scenario 8: [19] Recursive Impersonation test
Scenario 9: [20] Environment Path Hijacking
Scenario 10: [21] App Specific sudo vuln/misconfig
Scenario 11: [5] Excessive permissions (Authentication required)
Scenario 12: [16] Backdooring sudo (Credentials Capture)
播放列表可在此处找到:https://www.youtube.com/watch?v=Q8iO9mYrfv8&list=PLQPKPAuCA40FMpMKWZLxQydLe7rPL5bml
[!IMPORTANT] 快速演示如何在提供的 Docker 上进行正确测试的短视频。
[!WARNING] 以下视频列表并不完整,如需查看所有视频,请查看播放列表链接。