[4] 常见提权的方式

提权

提权(Privilege Escalation)是指攻击者通过利用系统的漏洞或错误配置,获得比其当前权限更高的访问权限或控制权的过程。

SUID提权

利用文件的Set User ID,当文件设置了SUID位,即使执行该文件的用户不是文件的拥有者,该用户也会在执行时临时获得文件拥有者的权限。

每个进程运行通常有会有三个与用户身份相关的UID

  • Real Uid:启动这个进程的真实用户。
  • effective UID: 决定进程实际运行时的权限,有效身份ID是进程当前以哪个用户身份运行,决定了它能访问哪些文件和资源。
  • save set-user-id: 保存一个进程的原始有效用户ID,以便稍后可以恢复。当进程发生特权切换,可以用保存的用户ID来恢复到之前的有效用户id。
# 查看命令运行时的有效id
ps -eo pid,uid,euid,cmd

常见可以使用提权的命令

# find
find / -exec "/bin/bash" -p \
# vim

sudo提权

sudo命令可以让普通用户拥有root权限,一般需要输入用户命令,通过sudoer文件进行配置可以让用户不需要输入命令就可以使用sudo命令,从而导致权限提升的问题出现。配置文件位置/etc/sudoer

# sudoer配置的基本语法
user host=(run_as_user) command

user: 指定可以使用sudo的用户
host: 允许在哪些主机执行命令,ALL表示不限制主机
run_as_user:表示以哪个用户的身份运行命令,ALL表示可以以任意用户身份
command:允许执行的命令,ALL表示所有命令

特殊,不用输入命令
user ALL=(ALL) NOPASSWD: ALL

# 列出当前用户能够以sudo身份执行的命令和权限配置
sudo -l
# 查看指定用户
sudo -l -U bob

内核漏洞提权

利用系统内核漏洞提权步骤:

  • 获取目标系统的信息,获取系统内核信息及版本信息。
# 查看linux内核版本
uname -a
lsb_release -a
  • 根据内核版本获取对应漏洞以及exp
# 利用exploitdb搜索相关漏洞
searchsploit Ubuntu 16.04
  • 使用exp对目标进行攻击,提权.

定时任务提权

/etc/crontabcrontab -e命令的区别:

  • 权限:/etc/crontab用于系统管理员设置全局的定时任务,crontab -e是普通用户自定义自己的定时任务。
  • 优先级:互不干扰
  • 作用范围: /etc/crontab中的任务可以指定以任意用户执行。
# 查看配置权限
ls -l /etc/crontab
cat /etc/crontab
# 根据配置定时任务进行应对,提权

环境变量提权

环境变量时影响进程行为的键值对。程序在启动时会继承父进程的环境变量,并可以读取或修改这些变量。环境变量可以用于配置程序的行为、路径、权限等

一般通过以下几种方式进行提权:

  • PATH环境变量劫持:
    • 系统在查找可执行文件时,会根据PATH环境变量的路径顺序进行搜索。在PATH插入一个恶意程序的路径,确保在合法程序之前,系统将优先执行恶意程序
  • LD_PRELOAD环境变量
    • LD_PRELOAD环境变量指定一个动态链接库,该库会执行任何程序时被优先加载。可以重写某些程序中某些函数的实现,从而实现提权。
  • 使用sudoers中的环境变量
    • 在sudo配置中,某些环境变量可能被允许传递给被执行的命令,如果可以控制这些变量的值,可以通过利用这个实现提权。

利用/etc/passwd提权

/etc/passwd存储系统中每个用户的基本信息。

# 每一行配置的含义 7个
username:password placeholder:uid:gid:gecos:home directory:default shell
gecos:用户全名或其它描述信息

利用方式,前提可以修改/etc/passwd:

  • suid程序,将某个用户的默认shell修改为suid权限的shell
  • 修改用户id,用户组id,比如变更为0
  • 如果用户密码存储在/etc/passwd中,可以获取到用户的明文密码进行破解。一般默认用户密码存储在/etc/shadow
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值