当前位置: 首页 > news >正文

Linux权限提升

Linux提权

和Windows一样,Linux拿到的web经常是www-data权限,需要想办法提到root权限

内核漏洞

最直接的办法,根据Linux的内核漏洞直接一把梭,可通过 uname -r 查看内核版本

  • Dirty COW(CVE-2016-5195):Linux kernel >= 2.6.22(2007年发行,到2016年10月18日才修复),Linux内核的内存子系统在处理写入时复制(copy-on-write, COW)时产生了竞争条件(race condition)。恶意用户可利用此漏洞,来获取高权限,对只读内存映射进行写访问。
  • Dirty Pipe(CVE-2022-0847):5.8 <= Linux kernel < 5.16.11 / 5.15.25 / 5.10.102,攻击者利用该漏洞可以覆盖任意只读文件中的数据。这样将普通的权限提升至root权限,因为非特权进程可以将代码注入到root进程。
  • Dirty Cred(CVE-2022-2588):3.17 <= Linux kernel <= 5.19.1,该漏洞是netlink协议中的CLS_ROUTE4模块中的route4_change函数中的UAF/double free漏洞。使用漏洞作者的dirty cred方法可以完成不依赖内核版本(特定地址)的本地提权。和之前的dirty pipe 系列利用方法一样,实现无地址依赖的本地提权攻击。
  • Linux Polkit、pkexec(CVE-2021-4034):2009年5月至今发布的大多数 Polkit 版本,pkexec是一个Linux下的setuid工具,允许授权用户在预定的策略下以其他用户身份执行命令。 由于当前版本的pkexec无法正确处理调用参数计数,并最终会尝试将环境变量作为命令执行。

除了这个常用的,还可以使用searchsploit搜索看看

searchsploit Linux Kernel 2.6.22

密码复用

通过当前权限拿到的一些密码,可能就是root的密码,可以试试碰碰运气。

sudo滥用

可以通过 sudo -l 查看哪些账号有sudo权限,权限范围是哪些,再看能不能拿下这些账号,通过权限范围允许的工具进行提权。

感觉有点鸡肋,如果拿到的账号sudo权限是ALL,那不就和root一样了吗?

部分权限工具如wgetgit啥的可以参考 Linux提权——SUDO

SUID提权

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

寻找suid权限的文件(具有suid权限的文件在ls -la 时会多一个 s 字段如 -rwsr-xr-x

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

再根据找到的具有suid权限的文件去网上找怎么提权,不过我测试下来很多有suid权限能进去shell,但权限上不去,可能是我操作不对?

假设我发现 /usr/bin/find 存在suid权限,那么我执行如下操作就直接是以root身份去执行的:

find ./ -exec whoami \;

如在SUID找到对应的应用后,要想确认是否可以提权,以及如何操作,可参考 GTFOBins


扩展: 如何设置suid

chmod u+s filename #设置suid
chmod u-s filename #去除suid

第三方服务提权

这个和windows一样了,看上面运行了哪些服务,如 Redis、Mysql 这类的,再去拿下这个应用的权限执行shell

配置错误提权

这里只是做一个简单的示例,来抛砖引玉。

如果管理员配置存在问题,比如给计划任务、运行脚本等文件权限配置为了 777,那么我们就可以用低权限去编辑

# 2346在最后一位表示有写权限
find ./ -type f -exec stat -c "%a %n" {} + | grep -E "[2367]\s"
find /etc/cron* -type f -exec stat -c "%a %n" {} + | grep -E "[2367]\s"

等下次对应的东西运行的时候就可以提权了

http://www.dtcms.com/a/310670.html

相关文章:

  • shell编程练习,实现循环创建账户、测试主机连通性、批量修改主机root密码等功能
  • Linux 用户与组管理:从配置文件到实操命令全解析
  • Lecture 7: Processes 4, Further Scheduling
  • 嵌入式系统中常用通信协议
  • 高压大电流与低压大电流电源的设计难点
  • QT中重写事件过滤失效(返回了多个事件)
  • Jetpack Compose Column组件之focusProperties修饰符
  • 基于C#和NModbus4库实现的Modbus RTU串口通信
  • 【工具分享】模拟接口请求响应的Chrome插件ModResponse
  • 光伏运维数据透明化,发电量提高45%
  • Cursor免费使用工具
  • 配置多数据源dynamic-datasource 开箱即用方案​
  • ubuntu使用man手册中文版办法
  • 同品牌的系列广告要如何保证宣传的连贯性?
  • C语言(02)——标准库函数大全(持续更新)
  • 精品可编辑PPT | 集团整体架构与商务智能解决方案
  • Klipper-配置解析
  • 「一键召唤 007」:开源多智能体 JoyAgent-JDGenie 如何让你的 AI 产品从 Demo 到 真香 只差 Ctrl+C / Ctrl+V?
  • 电商客服协同中,智能处理哪些问题,人工专攻哪些需求?
  • 日志管理工具 ——ELK Stack
  • 开源工具FossFLOW,绘制技术图表
  • 告别软件残留!IObit Uninstaller Pro 让电脑彻底干净!
  • GPS定位 JT808 / 视频监控 - JT1078 技术剖析(1)
  • 《文明5》错误代码0xc0000142修复方法
  • JavaScript 中的 new 关键字和函数调用方法详解,apply、call 和 bind 的区别
  • 解决MySQL不能编译存储过程的问题
  • session和cookie作用详解
  • 如何使用AI+工单实现高效率高质量的服务?
  • python 断点pdb
  • 选择美颜sdk时应该关注什么?美白滤镜效果与兼容性对比评测