网站首页

Linux后门入侵检测工具的使用,linux上rootkits检测工具

17 7月 , 2019  

今天早上收到通知说服务器的root密码被修改了,赶紧测试,果然无法链接登陆,通过其他渠道经过一系列周折恢复密码,经过初步诊断在无人修改密码的情况下被修改了密码,只有系统被入侵的可能性了。然后在使用命令查看进程时出现下面的提示:

本文主要介绍linux上检测rootkit的两种工具: Rootkit Hunter和Chkrootkit.
Rootkit Hunter
中文名叫”Rootkit猎手”,
可以发现大约58个已知的rootkits和一些嗅探器和后门程序.
它通过执行一系列的测试脚本来确认你的机器是否已经感染rootkits.
比如检查rootkits使用的基本文件, 可执行二进制文件的错误文件权限,
检测内核模块等等. Rootkit Hunter由Michael Boelen开发, 是开源(GPL)软件.
安装Rootkit Hunter非常简单, 从网站下载软件包, 解压,
然后以root用户身份运行installer.sh脚本.
成功安装后, 你可以通过运行下面命令来检测你的机器是否已感染rootkit:
# rkhunter -c
二进制可执行文件rkhunter被安装到/usr/local/bin目录,
你需要以root身份来运行该程序. 程序运行后, 它主要执行下面一系列的测试:

安全运维之:Linux后门入侵检测工具的使用

一、rootkit简介

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

rootkit主要有两种类型:文件级别和内核级别,下面分别进行简单介绍。

1、文件级别rootkit

文件级别的rootkit一般是通过程序漏洞或者系统漏洞进入系统后,通过修改系统的重要文件来达到隐藏自己的目的。在系统遭受rootkit攻击后,合法的文件被木马程序替代,变成了外壳程序,而其内部是隐藏着的后门程序。通常容易被rootkit替换的系统程序有login、ls、ps、ifconfig、du、find、netstat等,其中login程序是最经常被替换的,因为当访问Linux时,无论是通过本地登录还是远程登录,/bin/login程序都会运行,系统将通过/bin/login来收集并核对用户的账号和密码,而rootkit就是利用这个程序的特点,使用一个带有根权限后门密码的/bin/login来替换系统的/bin/login,这样攻击者通过输入设定好的密码就能轻松进入系统。此时,即使系统管理员修改root密码或者清除root密码,攻击者还是一样能通过root用户登录系统。攻击者通常在进入Linux系统后,会进行一系列的攻击动作,最常见的是安装嗅探器收集本机或者网络中其他服务器的重要数据。在默认情况下,Linux中也有一些系统文件会监控这些工具动作,例如ifconfig命令,所以,攻击者为了避免被发现,会想方设法替换其他系统文件,常见的就是ls、ps、ifconfig、du、find、netstat等。如果这些文件都被替换,那么在系统层面就很难发现rootkit已经在系统中运行了。

这就是文件级别的rootkit,对系统维护很大,目前最有效的防御方法是定期对系统重要文件的完整性进行检查,如果发现文件被修改或者被替换,那么很可能系统已经遭受了rootkit入侵。检查件完整性的工具很多,常见的有Tripwire、
aide等,可以通过这些工具定期检查文件系统的完整性,以检测系统是否被rootkit入侵。

2、内核级别的rootkit

内核级rootkit是比文件级rootkit更高级的一种入侵方式,它可以使攻击者获得对系统底层的完全控制权,此时攻击者可以修改系统内核,进而截获运行程序向内核提交的命令,并将其重定向到入侵者所选择的程序并运行此程序,也就是说,当用户要运行程序A时,被入侵者修改过的内核会假装执行A程序,而实际上却执行了程序B。

内核级rootkit主要依附在内核上,它并不对系统文件做任何修改,因此一般的检测工具很难检测到它的存在,这样一旦系统内核被植入rootkit,攻击者就可以对系统为所欲为而不被发现。目前对于内核级的rootkit还没有很好的防御工具,因此,做好系统安全防范就非常重要,将系统维持在最小权限内工作,只要攻击者不能获取root权限,就无法在内核中植入rootkit。

二、rootkit后门检测工具chkrootkit

chkrootkit是一个Linux系统下查找并检测rootkit后门的工具,它的官方址:

chkrootkit没有包含在官方的CentOS源中,因此要采取手动编译的方法来安装,不过这种安装方法也更加安全。下面简单介绍下chkrootkit的安装过程。

1.准备gcc编译环境

对于CentOS系统,需要安装gcc编译环境,执行下述三条命令:

1 2 3 [[email protected] ~]# yum -y install gcc [[email protected] ~]# yum -y install gcc-c++ [[email protected] ~]# yum -y install make

2、安装chkrootkit

为了安全起见,建议直接从官方网站下载chkrootkit源码,然后进行安装,操作如下:

1 2 3 [[email protected] ~]# tar zxvf chkrootkit.tar.gz [[email protected] ~]# cd chkrootkit-* [[email protected] ~]# make sense

# 注意,上面的编译命令为make sense

1 2 3 [[email protected] ~]# cd .. [[email protected] ~]# cp -r chkrootkit-* /usr/local/chkrootkit [[email protected] ~]# rm -rf chkrootkit-*

3、使用chkrootkit

安装完的chkrootkit程序位于/usr/local/chkrootkit目录下,执行如下命令即可显示chkrootkit的详细用法:

[[email protected]
chkrootkit]# /usr/local/chkrootkit/chkrootkit -h

chkrootkit各个参数的含义如下所示。

参数含义

-h显示帮助信息

-v显示版本信息

-l显示测试内容

-ddebug模式,显示检测过程的相关指令程序

-q安静模式,只显示有问题的内容

-x高级模式,显示所有检测结果

-r dir设置指定的目录为根目录

-p dir1:dir2:dirN指定chkrootkit检测时使用系统命令的目录

-n跳过NFS连接的目录

chkrootkit的使用比较简单,直接执行chkrootkit命令即可自动开始检测系统。下面是某个系统的检测结果:

1 2 3 4 5 6 7 8 9 10 11 12 13 [[email protected] chkrootkit]# /usr/local/chkrootkit/chkrootkit Checking `ifconfig'... INFECTED Checking `ls'... INFECTED Checking `login'... INFECTED Checking `netstat'... INFECTED Checking `ps'... INFECTED Checking `top'... INFECTED Checking `sshd'... not infected Checking `syslogd'... not tested Checking `tar'... not infected Checking `tcpd'... not infected Checking `tcpdump'... not infected Checking `telnetd'... not found

从输出可以看出,此系统的ifconfig、ls、login、netstat、ps和top命令已经被感染。针对被感染rootkit的系统,最安全而有效的方法就是备份数据重新安装系统。

4、chkrootkit的缺点

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

1 2 3 4 5 6 [[email protected] ~]# mkdir /usr/share/.commands [[email protected] ~]# cp `which --skip-alias awk cut echo find egrep id head ls netstat ps strings sed uname` /usr/share/.commands [[email protected] ~]# /usr/local/chkrootkit/chkrootkit -p /usr/share/.commands/ [[email protected] share]# cd /usr/share/ [[email protected] share]# tar zcvf commands.tar.gz .commands [[email protected] share]# rm -rf commands.tar.gz

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

三、rootkit后门检测工具RKHunter

RKHunter是一款专业的检测系统是否感染rootkit的工具,它通过执行一系列的脚本来确认服务器是否已经感染rootkit。在官方的资料中,RKHunter可以作的事情有:

MD5校验测试,检测文件是否有改动

检测rootkit使用的二进制和系统工具文件

检测特洛伊木马程序的特征码

检测常用程序的文件属性是否异常

检测系统相关的测试

检测隐藏文件

检测可疑的核心模块LKM

检测系统已启动的监听端口

下面详细讲述下RKHunter的安装与使用。

1、安装RKHunter

RKHunter的官方网页地址为:

1 2 3 4 5 6 7 [[email protected] ~]# ls rkhunter-1.4.0.tar.gz [[email protected] ~]# pwd /root [[email protected] ~]# tar -zxvf rkhunter-1.4.0.tar.gz [[email protected] ~]# cd rkhunter-1.4.0 [[email protected] rkhunter-1.4.0]# ./installer.sh --layout default --install

这里采用RKHunter的默认安装方式,rkhunter命令被安装到了/usr/local/bin目录下。

2、使用rkhunter指令

rkhunter命令的参数较多,但是使用非常简单,直接运行rkhunter即可显示此命令的用法。下面简单介绍下rkhunter常用的几个参数选项。

[[email protected]
~]#/usr/local/bin/rkhunter–help

Rkhunter常用参数以及含义如下所示。

参数 含义

-c, –check必选参数,表示检测当前系统

–configfile <file>使用特定的配置文件

–cronjob作为cron任务定期运行

–sk, –skip-keypress自动完成所有检测,跳过键盘输入

–summary显示检测结果的统计信息

–update检测更新内容

-V, –version显示版本信息

–versioncheck检测最新版本

下面是通过rkhunter对某个系统的检测示例:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 [[email protected] rkhunter-1.4.0]# /usr/local/bin/rkhunter -c [ Rootkit Hunter version 1.4.0 ] #下面是第一部分,先进行系统命令的检查,主要是检测系统的二进制文件,因为这些文件最容易被rootkit攻击。显示OK字样表示正常,显示Warning表示有异常,需要引起注意,而显示“Not found”字样,一般无需理会 Checking system commands... Performing 'strings' command checks Checking 'strings' command [ OK ] Performing 'shared libraries' checks Checking for preloading variables [ None found ] Checking for preloaded libraries [ None found ] Checking LD_LIBRARY_PATH variable [ Not found ] Performing file properties checks Checking for prerequisites [ Warning ] /usr/local/bin/rkhunter [ OK ] /sbin/chkconfig [ OK ] ....(略).... [Press <ENTER> to continue] #下面是第二部分,主要检测常见的rootkit程序,显示“Not found”表示系统未感染此rootkit Checking for rootkits... Performing check of known rootkit files and directories 55808 Trojan - Variant A [ Not found ] ADM Worm [ Not found ] AjaKit Rootkit [ Not found ] Adore Rootkit [ Not found ] aPa Kit [ Not found ] Apache Worm [ Not found ] Ambient (ark) Rootkit [ Not found ] Balaur Rootkit [ Not found ] BeastKit Rootkit [ Not found ] beX2 Rootkit [ Not found ] BOBKit Rootkit [ Not found ] ....(略).... [Press <ENTER> to continue] #下面是第三部分,主要是一些特殊或附加的检测,例如对rootkit文件或目录检测、对恶意软件检测以及对指定的内核模块检测 Performing additional rootkit checks Suckit Rookit additional checks [ OK ] Checking for possible rootkit files and directories [ None found ] Checking for possible rootkit strings [ None found ] Performing malware checks Checking running processes for suspicious files [ None found ] Checking for login backdoors [ None found ] Checking for suspicious directories [ None found ] Checking for sniffer log files [ None found ] Performing Linux specific checks Checking loaded kernel modules [ OK ] Checking kernel module names [ OK ] [Press <ENTER> to continue] #下面是第四部分,主要对网络、系统端口、系统启动文件、系统用户和组配置、SSH配置、文件系统等进行检测 Checking the network... Performing checks on the network ports Checking for backdoor ports [ None found ] Performing checks on the network interfaces Checking for promiscuous interfaces [ None found ] Checking the local host... Performing system boot checks Checking for local host name [ Found ] Checking for system startup files [ Found ] Checking system startup files for malware [ None found ] Performing group and account checks Checking for passwd file [ Found ] Checking for root equivalent (UID 0) accounts [ None found ] Checking for passwordless accounts [ None found ] ....(略).... [Press <ENTER> to continue] #下面是第五部分,主要是对应用程序版本进行检测 Checking application versions... Checking version of GnuPG[ OK ] Checking version of OpenSSL [ Warning ] Checking version of OpenSSH [ OK ] #下面是最后一部分,这个部分其实是上面输出的一个总结,通过这个总结,可以大概了解服务器目录的安全状态。 System checks summary ===================== File properties checks... Required commands check failed Files checked: 137 Suspect files: 4 Rootkit checks... Rootkits checked : 311 Possible rootkits: 0 Applications checks... Applications checked: 3 Suspect applications: 1 The system checks took: 6 minutes and 41 seconds

在Linux终端使用rkhunter来检测,最大的好处在于每项的检测结果都有不同的颜色显示,如果是绿色的表示没有问题,如果是红色的,那就要引起关注了。另外,在上面执行检测的过程中,在每个部分检测完成后,需要以Enter键来继续。如果要让程序自动运行,可以执行如下命令:

[[email protected]
~]# /usr/local/bin/rkhunter –check –skip-keypress

同时,如果想让检测程序每天定时运行,那么可以在/etc/crontab中加入如下内容:

30 09 * * * root /usr/local/bin/rkhunter –check –cronjob

这样,rkhunter检测程序就会在每天的9:30分运行一次。

一、rootkit简介
rootkit是Linux平台下最常见的一种木马后门工具,它主要通过替换系统文件来达到…

  1. Unknown HZ value! (288) Assume 100. 
  2. root     15575  0.0  0.0 61116  740 pts/3    S    11:40   0:00 grep httpd 
  1. MD5校验测试, 检测任何文件是否改动.
  2. 检测rootkits使用的二进制和系统工具文件.
  3. 检测特洛伊木马程序的特征码.
  4. 检测大多常用程序的文件异常属性.
  5. 执行一些系统相关的测试 – 因为rootkit hunter可支持多个系统平台.
  6. 扫描任何混杂模式下的接口和后门程序常用的端口.
  7. 检测如/etc/rc.d/目录下的所有配置文件, 日志文件,
    任何异常的隐藏文件等等. 例如, 在检测/dev/.udev和/etc/.pwd.lock文件时候,
    我的系统被警告.
  8. 对一些使用常用端口的应用程序进行版本测试. 如: Apache Web Server,
    Procmail等.
    完成上面检测后, 你的屏幕会显示扫描结果: 可能被感染的文件,
    不正确的MD5校验文件和已被感染的应用程序.
    在我的机器上, 扫描用了175秒. 缺省情况下,
    rkhunter对系统进行已知的一些检测.
    但是你也可以通过使用’–scan-knownbad-files’来执行未知的错误检测:
    # rkhunter -c –scan-knownbad-files
    rkhunter是通过一个含有rootkit名字的数据库来检测系统的rootkits漏洞,
    所以经常更新该数据库非常重要, 你可以通过下面命令来更新该数据库:
    # rkhunter –update
    当然最好是通过cron job定期执行上面的命令,
    你需要用root用户添加下面命令到crontab文件:
    59 23 1 * * echo “Rkhunter update check in
    progress”;/usr/local/bin/rkhunter –update
    上面一行告诉cron程序在每月第一天的下午11:59分执行rkhunter数据库更新工作,
    而且你的root用户会收到一封结果通知邮件.
    Chkrootkit
    Chkrootkit由Nelson Murilo和Klaus Steding Jessen开发. 与Rootkit
    Hunter程序不同的是, chrootkit不需要installer安装程序,
    你只需解开软件包后执行chrootkit即可,
    然后将对一些二进制文件进行一系列的测试, 除了与Rootkit
    Hunter相同的测试外, Chkrootkit还对一些重要的二进制文件进行检测,
    比如搜索入侵者已更改日志文件的特征信息等等. 而且,
    如果你想列出已经测试的所有项目, 你可以运行带有’-l’参数的命令:
    # chkrootkit -l
    在测试过程中, 如果你想在屏幕上看到更多有用的信息, 执行下面命令:
    # chkrootkit -x
    chkrootkit将在专家模式(expert mode)运行.
    在Linux上组合使用Rootkit
    Hunter和Chkrootkit工具是检测rootkis不错的办法.图片 1

Unknown HZ value! (288) Assume
100,这个错误以前还从来没遇到过,搜索一番后得知是应该是系统被入侵后的结果,该提示的说明如下:

  1. Unknown HZ value! (##) Assume 100 — You’ve been hacked! 
  2.   
  3. On RHEL or CentOS 4 or 5, If you run the linux command top and you see something like: 
  4.   
  5. “Unknown HZ value! (75) Assume 100” 
  6.   
  7. Yours might not say “75” — it could be any number. 
  8. If you see this, you should run rkhunter immediately, because your box has probably been taken over by arootkit — either SHV4 or SHV5. 
  9.   
  10. The only reason you see this clue “Unknown HZ value” is because the rootkit replaces the top command (among others)with a substitute top command that will hide its processes. Their replacement top is old (version 1.2) and cannothandle the HZ value of the 2.6 linux kernel. 
  11. Sad to say, but if this happens to you, its time to reinstall your OS! 

按照这个说明,安装了一个rkhunter进行系统检测,发现有很多Warning和Not
Found错误,同时也检测到几个隐藏程序入下:

  1. Rootkit checks… 
  2.     Rootkits checked : 258 
  3.     Possible rootkits: 3 
  4.     Rootkit names    : cb Rootkit, SHV4 Rootkit, SHV5 Rootkit 

有SHV4和SHV5后门程序,google一下,这些后门程序可以替换诸如ls、ifconfig、login、ssh等系统命令。果然是被入侵了,估计想彻底清除这些后门程序还真不简单,暂时也不知道这些后门程序是如何被注入的,是破解root密码还是系统bug?不确定,今天赶紧备份数据先,解决不了这些隐藏后门,只好重装系统了。

图片 2


相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图