rootkit是Linux平台下最常见的一种木马后门工具,线上Linux服务器运维安全策略经验分享

2020-04-04 作者:美高梅-服务器   |   浏览(61)

二、rootkit后门检测工具chkrootkit

chkrootkit是一个Linux系统下查找并检测rootkit后门的工具,它的官方址: chkrootkit没有包含在官方的CentOS源中,因此要采取手动编译的方法来安装,不过这种安装方法也更加安全。下面简单介绍下chkrootkit的安装过程。

1.准备gcc编译环境

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

[root@server ~]# yum -y install gcc
[root@server ~]# yum -y install gcc-c++
[root@server ~]# yum -y install make

2、安装chkrootkit

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

[root@server ~]# tar zxvf chkrootkit.tar.gz
[root@server ~]# cd chkrootkit-*
[root@server ~]# make sense

3、使用chkrootkit

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

[root@server chkrootkit]# /usr/local/chkrootkit/chkrootkit  -h

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

参数含义

-h显示帮助信息

-v显示版本信息

-l显示测试内容

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

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

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

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

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

-n跳过NFS连接的目录

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

[root@server 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进行检测。这个过程可以通过下面的操作实现:

[root@server ~]# mkdir /usr/share/.commands
[root@server ~]# cp `which –skip-alias awk cut echo find egrep id head ls netstat ps strings sed uname` /usr/share/.commands
[root@server ~]# /usr/local/chkrootkit/chkrootkit -p /usr/share/.commands/
[root@server share]# cd /usr/share/
[root@server share]# tar zcvf commands.tar.gz .commands
[root@server share]#  rm -rf commands.tar.gz

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

#tar -zxvf rkhunter-1.3.4.tar.gz

本文主要介绍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身份来运行该程序. 程序运行后, 它主要执行下面一系列的测试:

6、重新安装系统恢复数据

一、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。

运行结果在

  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

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

三、rootkit后门检测工具RKHunter

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

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

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

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

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

检测系统相关的测试

检测隐藏文件

检测可疑的核心模块LKM

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

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

1、安装RKHunter

RKHunter的官方网页地址为:

[root@server ~]# ls
rkhunter-1.4.0.tar.gz
[root@server ~]# pwd
/root
[root@server ~]# tar -zxvf rkhunter-1.4.0.tar.gz
[root@server ~]# cd rkhunter-1.4.0
[root@server rkhunter-1.4.0]# ./installer.sh  –layout default –install

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

2、使用rkhunter指令

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

[root@server ~]#/usr/local/bin/rkhunter–help

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

参数             含义

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

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

–cronjob作为cron任务定期运行

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

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

–update检测更新内容

-V, –version显示版本信息

–versioncheck检测最新版本

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

[root@server 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键来继续。如果要让程序自动运行,可以执行如下命令:

[root@server ~]# /usr/local/bin/rkhunter –check –skip-keypress

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

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

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

安全更新:

今天刚刚爆出Bash安全漏洞,SSH bash紧急安全补丁!重要!

测试是否存在漏洞,执行以下命令:

$ env x=’() { :;}; echo vulnerable’ bash -c “echo this is a test”
vulnerable
this is a test

如果显示如上,那么,很遗憾,必须立即打上安全补丁修复,

临时解决办法为:

yum -y update bash

升级bash后,执行测试:

$ env x=’() { :;}; echo vulnerable’ bash -c “echo this is a test”
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x’
this is a test

如果显示如上,表示已经修补了漏洞。

使用方法

安装好的chkrootkit程序位于 /usr/local/chkrootkit/chkrootkit

直接执行

1 root@vm:~# /usr/local/chkrootkit/chkrootkit

即可对系统rootkit进行全面扫面,并滚动显示出结果,如图:

图片 2

 

安全提示:由于chkrootkit的检查过程使用了部分系统命令。因此,如果服务器被入侵,则依赖的系统命令可能也已经被入侵者做了手脚,chkrootkit的结果将变得完全不可信,甚至连系统ls等查看文件的基础命令也变得不可信。

(3)检查系统中所有suid及sgid文件
find / -user root -perm -2000 -print -exec md5sum {} ;
find / -user root -perm -4000 -print -exec md5sum {} ;

Checking `ifconfig'... INFECTED
Checking `ls'... INFECTED
Checking `netstat'... INFECTED
Checking `ps'... INFECTED
Checking `top'... INFECTED
Searching for Madalin rootkit default files... Possible Madalin rootkit installed
Checking `bindshell'... INFECTED (PORTS:  145)
Checking `lkm'... You have    77 process hidden for readdir command
You have    77 process hidden for ps command
chkproc: Warning: Possible LKM Trojan installed
Checking `sniffer'... eth0: PROMISC

[root@server ~]# dd if=/dev/zero of=/dev/tmpfs bs=1M count=10000
[root@server ~]# mke2fs -j /dev/tmpfs
[root@server ~]# cp -av /tmp /tmp.old
[root@server ~]# mount -o loop,noexec,nosuid,rw /dev/tmpfs /tmp
[root@server ~]# chmod 1777 /tmp
[root@server ~]# mv -f /tmp.old/* /tmp/
[root@server ~]# rm -rf /tmp.old

       这两天突然发现我们的服务器产生大量DNS解析连线。为了查明问题,就下载网上找工具检查问题所在。用了两个工具,一个chkrootkit,另外一个rootkit huntur。在使用了这两个产品后,觉得rootkit的信息更加详细一些。现在就对两个工具的操作和使用写一个记录,也方便之后自己查看。

在Linux下,远程登录系统有两种认证方式:密码认证和密钥认证。

 

(7)恢复数据和连接网络
将备份的数据重新复制到新安装的服务器上,然后开启服务,最后将服务器开启网络连接,对外提供服务。

我使用的安装指令

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

#tar -zxvf chkrootkit.tar.gz

账户安全是系统安全的第一道屏障,也是系统安全的核心,保障登录账户的安全,在一定程度上可以提高服务器的安全级别,下面重点介绍下Linux系统登录账户的安全设置方法。

 

 

Warning: File '/bin/awk' has the immutable-bit set.
Warning: File '/bin/basename' has the immutable-bit set.
Warning: File '/bin/bash' has the immutable-bit set.
Warning: File '/bin/cat' has the immutable-bit set.
Warning: File '/bin/chmod' has the immutable-bit set.
Warning: File '/bin/chown' has the immutable-bit set.
Warning: File '/bin/cp' has the immutable-bit set.
Warning: File '/bin/csh' has the immutable-bit set.
Warning: File '/bin/cut' has the immutable-bit set.
Warning: File '/bin/date' has the immutable-bit set.
Warning: File '/bin/df' has the immutable-bit set.
Warning: File '/bin/dmesg' has the immutable-bit set.
Warning: File '/bin/echo' has the immutable-bit set.
Warning: File '/bin/ed' has the immutable-bit set.
Warning: File '/bin/egrep' has the immutable-bit set.
Warning: File '/bin/env' has the immutable-bit set.
Warning: File '/bin/fgrep' has the immutable-bit set.
Warning: File '/bin/grep' has the immutable-bit set.
Warning: File '/bin/kill' has the immutable-bit set.
Warning: File '/bin/login' has the immutable-bit set.
Warning: File '/bin/ls' has the immutable-bit set.
Warning: File '/bin/mail' has the immutable-bit set.
Warning: File '/bin/mktemp' has the immutable-bit set.
Warning: File '/bin/more' has the immutable-bit set.
Warning: File '/bin/mount' has the immutable-bit set.
Warning: File '/bin/mv' has the immutable-bit set.
Warning: File '/bin/netstat' has the immutable-bit set.
Warning: File '/bin/ps' has the immutable-bit set.
Warning: File '/bin/pwd' has the immutable-bit set.
Warning: File '/bin/rpm' has the immutable-bit set.
Warning: File '/bin/sed' has the immutable-bit set.
Warning: File '/bin/sh' has the immutable-bit set.
Warning: File '/bin/sort' has the immutable-bit set.
Warning: File '/bin/su' has the immutable-bit set.
Warning: File '/bin/touch' has the immutable-bit set.
Warning: File '/bin/uname' has the immutable-bit set.
Warning: File '/bin/gawk' has the immutable-bit set.
Warning: File '/bin/tcsh' has the immutable-bit set.
Warning: File '/usr/bin/awk' has the immutable-bit set.
Warning: File '/usr/bin/cut' has the immutable-bit set.
Warning: File '/usr/bin/env' has the immutable-bit set.
Warning: The command '/usr/bin/GET' has been replaced by a script: /usr/bin/GET: perl script text executable
Warning: The command '/usr/bin/groups' has been replaced by a script: /usr/bin/groups: Bourne shell script text executable
Warning: File '/usr/bin/kill' has the immutable-bit set.
Warning: The command '/usr/bin/ldd' has been replaced by a script: /usr/bin/ldd: Bourne shell script text executable
Warning: File '/usr/bin/top' has the immutable-bit set.
Warning: The command '/usr/bin/whatis' has been replaced by a script: /usr/bin/whatis: Bourne shell script text executable
Warning: File '/usr/bin/gawk' has the immutable-bit set.
Warning: File '/sbin/chkconfig' has the immutable-bit set.
Warning: File '/sbin/depmod' has the immutable-bit set.
Warning: File '/sbin/fuser' has the immutable-bit set.
Warning: File '/sbin/ifconfig' has the immutable-bit set.
Warning: File '/sbin/ifdown' has the immutable-bit set.
Warning: The command '/sbin/ifdown' has been replaced by a script: /sbin/ifdown: Bourne-Again shell script text executable
Warning: File '/sbin/ifup' has the immutable-bit set.
Warning: The command '/sbin/ifup' has been replaced by a script: /sbin/ifup: Bourne-Again shell script text executable
Warning: File '/sbin/init' has the immutable-bit set.
Warning: File '/sbin/insmod' has the immutable-bit set.
Warning: File '/sbin/ip' has the immutable-bit set.
Warning: File '/sbin/lsmod' has the immutable-bit set.
Warning: File '/sbin/modinfo' has the immutable-bit set.
Warning: File '/sbin/modprobe' has the immutable-bit set.
Warning: File '/sbin/nologin' has the immutable-bit set.
Warning: File '/sbin/rmmod' has the immutable-bit set.
Warning: File '/sbin/runlevel' has the immutable-bit set.
Warning: File '/sbin/sulogin' has the immutable-bit set.
Warning: File '/sbin/sysctl' has the immutable-bit set.
Warning: File '/sbin/syslogd' has the immutable-bit set.
Warning: File '/usr/sbin/adduser' has the immutable-bit set.
Warning: No hash value found for file '/usr/sbin/amd' in the rkhunter.dat file.
Warning: File '/usr/sbin/amd' has the immutable-bit set.
Warning: File '/usr/sbin/chroot' has the immutable-bit set.
Warning: File '/usr/sbin/groupadd' has the immutable-bit set.
Warning: File '/usr/sbin/groupdel' has the immutable-bit set.
Warning: File '/usr/sbin/groupmod' has the immutable-bit set.
Warning: File '/usr/sbin/grpck' has the immutable-bit set.
Warning: File '/usr/sbin/kudzu' has the immutable-bit set.
Warning: File '/usr/sbin/lsof' has the immutable-bit set.
Warning: File '/usr/sbin/prelink' has the immutable-bit set.
Warning: File '/usr/sbin/pwck' has the immutable-bit set.
Warning: File '/usr/sbin/sestatus' has the immutable-bit set.
Warning: File '/usr/sbin/tcpd' has the immutable-bit set.
Warning: File '/usr/sbin/useradd' has the immutable-bit set.
Warning: File '/usr/sbin/userdel' has the immutable-bit set.
Warning: File '/usr/sbin/usermod' has the immutable-bit set.
Warning: File '/usr/sbin/vipw' has the immutable-bit set.
Warning: File '/usr/sbin/xinetd' has the immutable-bit set.
Warning: Dreams Rootkit                           [ Warning ]
         File '/usr/bin/sense' found
         File '/usr/bin/sl2' found
         File '/usr/bin/(swapd)' found
Warning: Checking for possible rootkit strings    [ Warning ]
         Found string '/dev/ttyoa' in file '/bin/netstat'. Possible rootkit: Sin Rootkit
Warning: Found possible sniffer log file: /usr/lib/libice.log
Warning: Found enabled xinetd service: /etc/xinetd.d/auth
Warning: Found enabled xinetd service: /etc/xinetd.d/cups-lpd
Warning: Found enabled xinetd service: /etc/xinetd.d/swat
Warning: Found enabled xinetd service: /etc/xinetd.d/vmware-authd
Warning: Possible promiscuous interfaces:
         'ifconfig' command output:
         'ip' command output: eth0
Warning: Account 'test' is root equivalent (UID = 0)
Warning: Account 'james' is root equivalent (UID = 0)
Warning: Account 'master' is root equivalent (UID = 0)
Warning: Account 'admin' is root equivalent (UID = 0)
Warning: The SSH configuration option 'PermitRootLogin' has not been set.
         The default value may be 'yes', to allow root access.
Warning: The SSH configuration option 'Protocol' has not been set.
         The default value may be '2,1', to allow the use of protocol version 1.
Warning: Hidden file found: /usr/share/man/man1/..1.gz: gzip compressed data, from Unix, max compression
Warning: Application 'exim', version '4.43', is out of date, and possibly a security risk.
Warning: Application 'gpg', version '1.2.6', is out of date, and possibly a security risk.
Warning: Application 'openssl', version '0.9.7a', is out of date, and possibly a security risk.
Warning: Application 'php', version '4.3.9', is out of date, and possibly a security risk.

查看系统日志是查找攻击源最好的方法,可查的系统日志有/var/log/messages、/var/log/secure等,这两个日志文件可以记录软件的运行状态以及远程用户的登录状态,还可以查看每个用户目录下的.bash_history文件,特别是/root目录下的.bash_history文件,这个文件中记录着用户执行的所有历史命令。

 

3、/tmp、/var/tmp、/dev/shm安全设定

1.3 chkrootkit参数说明

 

具体可以看 

sudo执行命令的流程是:
将当前用户切换到超级用户下,或切换到指定的用户下,然后以超级用户或其指定切换到的用户身份执行命令,执行完成后,直接退回到当前用户,而这一切的完成要通过sudo的配置文件/etc/sudoers来进行授权。

Project: 

系统的一些欢迎信息或版本信息,虽然能给系统管理者带来一定的方便,但是这些信息有时候可能被黑客利用,成为攻击服务器的帮凶,为了保证系统的安全,可以修改或删除某些系统文件,需要修改或删除的文件有4个,分别是:
/etc/issue、/etc/issue.net、/etc/redhat-release和/etc/motd。

download: 

1、删除特殊的账户和账户组

2.3 指令参数说明

这样就找到了进程对应的完整执行路径。如果还有查看文件的句柄,可以查看如下目录:

Ordered valid parameters:
--help (-h)      : 显示帮助
--examples       : 显示安装实例
--layout <value> : 选择安装模板(安装必选参数).
                   模板选择:
                    - default: (FHS compliant),
                    - /usr,
                    - /usr/local,
                    - oldschool: 之前版本安装路径,
                    - custom: 自定义安装路径,
                    - RPM: for building RPM's. Requires $RPM_BUILD_ROOT.
                    - DEB: for building DEB's. Requires $DEB_BUILD_ROOT.
--striproot      : Strip path from custom layout (for package maintainers).
--install        : 根据选择目录安装

检查文件属性是否发生变化是验证文件系统完好性最简单、最直接的方法,例如可以检查被入侵服务器上/bin/ls文件的大小是否与正常系统上此文件的大小相同,以验证文件是否被替换,但是这种方法比较低级。此时可以借助于Linux下rpm这个工具来完成验证,操作如下:

 

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

 

/tmp目录会有很多应用程序和系统程序需要在这个目录下建立临时文件,也不能设置不可修改属性;

Usage: rkhunter {--check | --update | --versioncheck |
                 --propupd [{filename | directory | package name},...] |
                 --list [{tests | {lang | languages} | rootkits},...] |
                 --version | --help} [options]

可删除的用户,如adm,lp,sync,shutdown,halt,news,uucp,operator,games,gopher等。

#make sense

今天,我为大家讲的,主要分五部分展开:

 

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

#/usr/local/bin/rkhunter

[root@server ~]# ls -al /proc/13276/exe
lrwxrwxrwx 1 root root 0 Oct 4 22:09 /proc/13276/exe -> /usr/sbin/sshd

 

[root@server ~]# /usr/local/bin/rkhunter --check --skip-keypress

Usage: ./chkrootkit [options] [test ...]
Options:
        -h                显示帮助信息
        -V                显示版本信息
        -l                显示测试内容
        -d                debug模式,显示检测过程的相关指令程序
        -q                安静模式,只显示有问题部分,
        -x                高级模式,显示所有检测结果
        -r dir            设定指定的目录为根目录
        -p dir1:dir2:dirN 检测指定目录
        -n                跳过NFS连接的目录

因此su命令在很多人都需要参与的系统管理中,并不是最好的选择,超级用户密码应该掌握在少数人手中,此时sudo命令就派上用场了。

#cd rkhunter-1.3.4

(6)修复程序或系统漏洞
在发现系统漏洞或者应用程序漏洞后,首先要做的就是修复系统漏洞或者更改程序bug,因为只有将程序的漏洞修复完毕才能正式在服务器上运行。

安装

文件级别的rootkit一般是通过程序漏洞或者系统漏洞进入系统后,通过修改系统的重要文件来达到隐藏自己的目的。在系统遭受rootkit攻击后,合法的文件被木马程序替代,变成了外壳程序,而其内部是隐藏着的后门程序。

  1. chkrootkit的使用

/etc/issue和/etc/issue.net文件都记录了操作系统的名称和版本号,当用户通过本地终端或本地虚拟控制台等登录系统时,/etc/issue的文件内容就会显示,当用户通过ssh或telnet等远程登录系统时,/etc/issue.net文件内容就会在登录后显示。在默认情况下/etc/issue.net文件的内容是不会在ssh登录后显示的,要显示这个信息可以修改/etc/ssh/sshd_config文件,在此文件中添加如下内容即可:
Banner /etc/issue.net
其实这些登录提示很明显泄漏了系统信息,为了安全起见,建议将此文件中的内容删除或修改。

2.1 解压安装

sudo命令:允许系统管理员分配给普通用户一些合理的“权利”,并且不需要普通用户知道超级用户密码,就能让他们执行一些只有超级用户或其他特许用户才能完成的任务。

解压

md5sum /sbin/ifconfig 
93f8c878ffb7107b343bcf08e978f6e3 /sbin/ifconfig

 

Q4:请问大神这些内容有没有那本书系统的介绍?
A4:这些内容目前我还没发现有专门的书籍介绍,因为今天的内容偏向系统安全运维,我的高性能linux服务器构建实战前面几章倒是有介绍!可以看看。

 

Q3:但history记录命令并不是实时的 去过通过读取history文件读取并发送日志的话 得到的肯定不是实时的日志?
A3:通过tail等类似方式,实时监控history的输出即可,不用导入到文件中在看,这里有个问题,就是不同终端的命令无法实时获取,所以实时也是相对的

结果就是“中招”,基本上就是重新安装系统的命了。不过从检查的结果来看,可以判断所中的rootkit的类型和被替换的系统文件。同时对一些程序版本进行检测,提供的信息比较多。

Linux服务器一般通过SecureCRT、putty、Xshell之类的工具进行远程维护和管理,密钥认证方式的实现就是借助于SecureCRT软件和Linux系统中的SSH服务实现的。

本文由美高梅赌堵59599发布于美高梅-服务器,转载请注明出处:rootkit是Linux平台下最常见的一种木马后门工具,线上Linux服务器运维安全策略经验分享

关键词: