freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

linux提权思路总结
2023-09-06 21:04:22

0x00 为什么要提权

当我们取得一个简单的命令交互式界面后,往往因为非root权限所作出的操作会被限制,提权所作出的就是进一步扩大我们的执行权限,操作空间。(本文主要分析提权的应对思路,具体操作可以自己进行科普)

0x01 内核提权

在实际环境中,内核提权是最常使用的提权方法,通杀的内核提权很难找到,但是可以根据不同的系统进行针对性的策略

内核提权是利用Linux内核的漏洞进行提权的,内核漏洞进行提权一般包括三个环节:

1、对目标系统进行信息收集,获取到系统内核信息及版本信息;

2、根据内核版本获取其对应的漏洞以及EXP

3、使用找到的EXP对目标系统发起攻击,完成提权操作

1.信息收集

whoami                   # 查看当前用户权限,如果是root用户就不用提权;
uname -a                 # 查看linux操作系统内核信息
uname -r                 # 查看内核版本
cat /proc/version        # 查看linux系统当前操作系统版本信息
cat /etc/issue           # 查看linux当前操作系统发行版本信息
cat /etc/redhat-releas   # 查看linux当前操作系统发行版本信息
cat /etc/*-release       # 查看linux当前操作系统发行版本信息

2.使用SearchSploit(kali自带的工具)

输入searchsploit -m 9479.c就会自动复制该文件到当前目录

3.将文件上传到被攻击机上编译运行

0x02 sudo提权

在Linux/Unix中,/etc/sudoers文件是sudo权限的配置文件,其中储存了一些用户或组可以以root权限使用的命令

受影响版本:

sudo: 1.8.2 - 1.8.31p2
sudo: 1.9.0 - 1.9.5p1

检测方法:

以非root用户登录系统,并运行如下命令:

sudoedit -s /

- 如果响应一个以sudoedit:开头的报错,那么表明存在漏洞。

- 如果响应一个以usage:开头的报错,那么表明补丁已经生效。

cat /etc/sudoers

查看root ALL=(ALL:ALL)ALL附近是否有新的用户痕迹

0x03 suid提权

SUID (Set UID)是Linux中的一种特殊权限,其功能为用户运行某个程序时,如果该程序有SUID权限,那么程序运行为进程时,进程的属主不是发起者,而是程序文件所属的属主。但是SUID权限的设置只针对二进制可执行文件,对于非可执行文件设置SUID没有任何意义.

在执行过程中,调用者会暂时获得该文件的所有者权限,且该权限只在程序执行的过程中有效. 通俗的来讲,假设我们现在有一个可执行文件ls,其属主为root,当我们通过非root用户登录时,如果ls设置了SUID权限,我们可在非root用户下运行该二进制可执行文件,在执行文件时,该进程的权限将为root权限

查找具有 SUID 权限位文件

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 {} ;

0x04 明文root密码提权

[注册名]:[口令]:[用户标识号]:[组标识号]:[用户名]:[用户主目录]:[命令解析程序]

/etc/passwd

Linux系统使用一个专门的文件来将用户的登录名匹配到对应的UID值,我们可以使用命令 sudo nvim /etc/passwd 进行查看,包含了一些与用户相关的信息。

root:x:0:0::/root:/bin/bash
kato:x:1000:1000:kato:/home/kato:/usr/bin/zsh

其实这个文件有很多条信息,我只单独列出这两条。很清晰的看到每条信息由7个字段组成,由:隔开。 字段包含如下信息: 1️⃣ 登录用户名 2️⃣ 用户密码(进行了别的处理,这里x简单表示,加密后存储在/etc/shadow文件中) 3️⃣ 用户账户的UID(数字形式) 4️⃣ 用户账户的组ID(GID)(数字形式) 5️⃣ 用户账户的文本描述(称为备注字段) 6️⃣ 用户HOME目录位置 7️⃣ 用户的默认shell

大多数linux系统的密码都和/etc/passwd和/etc/shadow这两个配置文件息息相关。passwd里面储存了用户,shadow里面是密码的hash。出于安全考虑passwd是全用户可读,root可写的。shadow是仅root可读写的,当管理员的passwd和shadow一些权限配置不当就可能会导致提权

当shadow可读时借助工具john

john --wordlist=字典文件 + shadow文件

0x05 计划任务提权

大概思路就是,对于可能存在的权限配置不当的有root权限的计划任务,使我们普通用户也拥有修改权限,我们修改其中的内容,为bash、less、more等赋予SUID权限,与SUID提权结合,使之提权成功。

系统内可能会有一些定时执行的任务,一般这些任务由crontab来管理,具有所属用户的权限。非root权限的用户是不可以列出root用户的计划任务的。但是/etc/内系统的计划任务可以被列出。

利用如下的命令可以列出一些计划任务。

ls -l /etc/cron*

cat /etc/crontab

这里我们如果遇到有权限配置为777-rwxrwxrwx的计划任务,我们就可以对文件内容进行修改,进行提权。cp /bin/bash /tmp/bash; chmod u+s /tmp/bash;bash赋予SUID权限。 当然,如果对vim、less、find等命令赋权均可cp /bin/vim /tmp/vim ; chmod u+s /tmp/vim; //为vim赋值接下来等到任务执行即可。

0x06第三方服务提权

0x07 rbash

1.什么是rbash

它与一般shell的区别在于会限制一些行为,让一些命令无法执行

2.如何设置一个rbash

cp /bin/bash /bin/rbash # 复制一个bash,重命名为rbash
useradd -s /bin/rbash test # 设置用户test登陆的shell为rbash
mkdir -p /home/test/.bin # 在test用户下新建一个.bin目录存放可以执行的命令

rbash逃逸

https://blog.csdn.net/qq_43168364/article/details/111830233

# web安全 # 系统安全 # 内网渗透
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录