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

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"

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

Copyright © d4m1ts 2023 all right reserved,powered by Gitbook该文章修订时间: 2024-05-09 12:51:20

results matching ""

    No results matching ""