Linux提权总结

8 分钟

前言

一、内核漏洞提权

(1)例子:

二、SUID提权

(1)SUID的解释

(2)例子:

三、计划任务提权

(2)任务提权步骤:

四、环境变量劫持提权

(1)例子:

总结


前言

提示:这里可以添加本文要记录的大概内容:

如今的操作系统一般都为多用户操作系统,用户之间都有权限控制,当你控制了一个低权限的shell,还需要通过一些操作系统漏洞或错误配置进行提权,本文主要做个Linux系统提权的简单总结。


提示:以下是本篇文章正文内容,下面案例可供参考

一、内核漏洞提权

内核漏洞提权指的是普通用户访问操作系统内核,利用内核漏洞将权限提高为root权限,一般首先需要知晓操作系统的内核,内核的版本等信息,再寻找内核漏洞的EXP进行提权



linux常用查看系统信息命令

uname -a 查看系统全部信息
uname -r 查看内核版本
cat /proc/version 查看内核信息
cat /etc/*-realease 查看CentOS版本
cat /etc/issue 查看Ubuntu版本
cat /etc/redhat-release 查看RedHat版本
env 查看环境变量
echo $PATH 查看当前环境变量
awk -F: '($3==0){print $1}' /etc/passwd 查找UID为0的用户
find / -user root -perm -4000 -exec ls -ldb {} \;  查找设置了SUID的文件

(1)例子:

1,查看系统的内核版本

2,使用kali的searchsploit寻找对应的内核漏洞或网上寻找相应的内核漏洞


3,使用gcc将C语言程序编译成可执行文件,上传至靶机,执行即可提权至root权限

二、SUID提权

SUID是对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有宿主的权限,若是对一些特殊命令设置了SUID,存在被提权的风险。常见的SUID提权命令有vim,find,bash,more,less等

(1)SUID的解释

标记:当 s 标志出现在文件拥有者的 x 权限 上时,就被为SUID的特殊权限

SUID 权限对于一个文件的特殊功能如下:

  • SUID 权限仅对二进制程序( binary program) 有效
  • 执行者对于该程序需要具有 x 的可执行权限
  • 本权限仅在执行该程序的过程中有效 ( run-time)
  • 执行者将具有该程序拥有者 ( owner) 的权限

举个例子:

9 8 7 6 5 4 3 2 1

- r w s r - x r - x

第9位表示文件类型,可以为p、d、l、s、c、b和-:
p表示命名管道文件
d表示目录文件
l表示符号连接文件
-表示普通文件
s表示socket文件
c表示字符设备文件
b表示块设备文件

第8-6位、5-3位、2-0位分别表示文件所有者的权限,同组用户的权限,其他用户的权限。

x表示可执行,w表示可写,r表示可读,例中8-6位文件所有者权限的x被s标记替换,为SUID权限,当文件所有者为root,普通账户在使用这个命令的时候会暂时获得其拥有者(root)的权限。

(2)例子:

1,先查找目标机上设置了SUID的权限文件

find / -user root -perm -4000 -exec ls -l {} \;

2,存在sudo,su,phexec命令被设置了SUID权限,存在phexec漏洞提权

当前用户暂时变成了root

三、计划任务提权

linux的计划任务提权与windows的思路一致,查找权限配置不当的计划任务,前提条件是执行的某个计划任务以root身份运行,并且此计划任务可以被低权限用户编辑。

(2)任务提权步骤:

1,通过命令查看计划任务

cat /etc/crontab 或 crontab -l

2,查找是否有可编辑的root用户执行的定时任务文件,比如存在test.py

3,修改编辑文件,如test.py,将bash命令设置为SUID



import os
import sys
try:
    os.system('chmod u+s bin/bash')
except:
    sys.exit()

4,定时计划的脚本执行后,查看是否设置了SUID,运行bash -p,新开的shell提权成root

四、环境变量劫持提权

linux的环境变量提权跟window的环境变量提权的思路也是一致的,当执行某个命令时,Shell会按PATH环境变量的路径依次搜索命令,搜到即停止。因此,可以将同名命令加入到PATH中,实现环境变量的劫持提权。

(1)例子:

1,先搜索设置了SUID命令的文件

find -user root -perm -4000 -exec ls -l {} \;

2,查看clean,发现clean文件中调用了 cat命令,尝试劫持cat命令

export是将环境变量设置为当前目录变量,chmod 777是赋予文件权限。

第一个数字表示文件所有者的权限。
第二个数字表示与文件所有者同属一个用户组的其他用户的权限。
第三个数字表示其它用户组的权限。
权限分为三种:读(r=4),写(w=2),执行(x=1)
chmod 4755与chmod 755 的区别在于开头多了一位,这个4表示其他用户执行文件时,具有与所有者相当的权限。

3,再运行clean文件时,它会调用cat首先找当前目录下的cat,当前的cat为/bin/bash为新开shell,从而以新身份打开一个Shell,因为clean文件设置了SUID权限
,运行clean文件具有与root相当权限。书中成功了,演示时未成功,可能由于版本变化,有待探究。


总结

不管是Window还是linux,提权的思路都差不多,根据系统信息寻找EXP是比较靠谱的,其它方式的提权源于管理员疏忽或错误的配置,可以成为一种拓展。

~  ~  The   End  ~  ~


 赏 
承蒙厚爱,倍感珍贵,我会继续努力哒!
logo图像
tips
文章二维码 分类标签:Web安全Web安全
文章标题:Linux提权总结
文章链接:https://aiwin.fun/index.php/archives/863/
最后编辑:2024 年 1 月 4 日 17:12 By Aiwin
许可协议: 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)
(*) 4 + 4 =
快来做第一个评论的人吧~