Chkrootkit 0.49本地提权漏洞利用与防范研究

原创
安全 网站安全
最近研究Linux rootkit检查,发现很多文章都推荐使用Chkrootkit,但是Chkrootkit0.49以及以下版本均存在本地提权漏洞,只要提权上传一个文件到tmp目录,管理员再次运行Chkrootkit后,即可获取root权限,本文就chrootkit本地提权漏洞进行分析和再现,最后给出了防范方法,希望对系统管理员有所帮助。

【51CTO.com原创稿件】最近研究Linux rootkit检查,发现很多文章都推荐使用Chkrootkit,但是Chkrootkit0.49以及以下版本均存在本地提权漏洞,只要提权上传一个文件到tmp目录,管理员再次运行Chkrootkit后,即可获取root权限,本文就chrootkit本地提权漏洞进行分析和再现,最后给出了防范方法,希望对系统管理员有所帮助。

一、漏洞分析

Thomas Stangner在chkrootkit包中发现了一个严重的漏洞,允许本地攻击者在某些情况下获得对根框的访问权限配置(/ tmp不挂载noexec),漏洞位于函数slapper()中:

Chkrootkit 0.49本地提权漏洞利用与防范研究

如果$ file_port为空,因为变量赋值缺少引号,'file_port = $ file_port $ i'行将执行其中指定的所有文件,$ SLAPPER_FILES作为用户(通常是root)chkrootkit正在运行,因此获取root权限。使用notepad打开chkrootkit文件,其代码位于第93~120行,如图1所示。

Chkrootkit 0.49本地提权漏洞利用与防范研究

图1存在漏洞代码处

二、漏洞利用条件

1.在/ tmp中放入一个名为'update'的非root所有者的可执行文件

2.以Root身份运行chkrootkit

Chkrootkit 版本小于0.49,其文件/ tmp /update将以root身份执行。

如果攻击者知道管理员是定期运行chkrootkit(通过查看cron.daily获知),并且对/ tmp(没有挂载noexec)有写访问权限,就可以利用该漏洞获取root权限。

漏洞可利用代码update.c:

Chkrootkit 0.49本地提权漏洞利用与防范研究

三、实际测试

1、编译update.c

将update.c文件放在tmp目录,执行gcc –o update update.c进行编译,编译后通过ls –al update进行查看,如图2所示。

Chkrootkit 0.49本地提权漏洞利用与防范研究

图2编译update程序

2、执行chkrootkit

上传一个chkrootkit版本为0.49的程序,解压缩后,使用make sense进行编译,尽管编译会出错,不用管它,使用命令执行:./chkrootkit,如图3所示,顺利执行chkrootkit程序。执行完毕后到tmp目录查看update,明显程序已经被设置了root权限,如图4所示。

Chkrootkit 0.49本地提权漏洞利用与防范研究

图3执行rootkit程序

Chkrootkit 0.49本地提权漏洞利用与防范研究

图4检查update程序权限

3、执行提权

以普通用户登录,到tmp目录执行./update可以直接获取root权限,如图5所示,分别执行id和cat /etc/shadow | grep ‘root’命令来获取当前用户权限和shadow值。

Chkrootkit 0.49本地提权漏洞利用与防范研究

图5获取root权限

4、扩展漏洞利用

◆搜索漏洞chkrootkit

在exploit-database中对漏洞chkrootkit进行搜索,执行命令:“searchsploit chkrootkit”查看目前所有能够利用的漏洞,如图6所示,只有两个,exploit-db网站给出了相关的利用方法和文章:

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

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

Chkrootkit 0.49本地提权漏洞利用与防范研究

图6搜索exploit-database漏洞库

◆使用msf查看可利用漏洞

在kali Linux中打开msf漏洞利用平台,如图7所示,执行“search chkrootkit”,其结果仅一项,使用“use exploit/unix/local/chkrootkit”、“show options”命令使用和查看漏洞模块的相关情况,该漏洞为本地利用型,即查看/usr/sbin/目录是否存在chkrootkit程序,如果存在则可以利用。

Chkrootkit 0.49本地提权漏洞利用与防范研究

图7查看msf平台中的chkrootkit漏洞

四、利用与防范方法探讨

1.查看系统是否存在chkrookit

在centos下查看是否存在chkrootkit:

updated

locate chkrootkit

ls –al /usr/sbin/chkrootkit

2.查找高权限用户命令

查找具备高权限执行文件命令“find / -perm +4000 –ls>20170309.txt”,将会找出目前具备root权限的可执行文件,如图8所示,明显tmp目录下的update比较可疑。

Chkrootkit 0.49本地提权漏洞利用与防范研究

图8查找高权限用程序

3.设置tmp目录无执行权限

4.使用最新版0.51版本

官方最新版本下载地址:http://www.chkrootkit.org/download/

【51CTO原创稿件,合作站点转载请注明原文作者和出处为51CTO.com】

责任编辑:蓝雨泪 来源: 51CTO.com
相关推荐

2016-05-17 09:42:16

2010-02-02 15:40:11

2023-06-11 17:24:26

2020-11-16 10:55:41

Windows

2020-10-06 13:58:25

漏洞

2023-10-09 18:22:35

2017-03-15 10:00:15

2009-04-24 14:34:51

2009-04-24 14:08:25

2021-05-01 20:52:30

漏洞网络安全网络攻击

2013-11-29 15:34:00

2015-03-13 10:06:55

2019-12-01 22:34:42

提权web安全漏洞

2022-04-28 10:54:52

恶意软件漏洞微软

2010-01-23 21:25:34

2022-03-10 09:41:15

漏洞Linux内核

2010-12-10 15:23:49

Linux漏洞

2010-12-28 11:17:50

chkrootkitrootkit检测器

2012-11-21 14:39:34

2015-08-13 15:56:44

HTML5本地存储Localstorag
点赞
收藏

51CTO技术栈公众号