Linux后门入侵检测工具,附bash漏洞解决方法

简介:
 一、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后门的工具,它的官方址: http://www.chkrootkit.org/。 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
  # 注意,上面的编译命令为make sense
  [root@server ~]# cd ..
  [root@server ~]# cp -r chkrootkit-* /usr/local/chkrootkit
  [root@server ~]# rm -rf chkrootkit-*
   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”参数指定这个路径进行检测即可。
   三、rootkit后门检测工具RKHunter
  RKHunter是一款专业的检测系统是否感染rootkit的工具,它通过执行一系列的脚本来确认服务器是否已经感染rootkit。在官方的资料中,RKHunter可以作的事情有:
  MD5校验测试,检测文件是否有改动
  检测rootkit使用的二进制和系统工具文件
  检测特洛伊木马程序的特征码
  检测常用程序的文件属性是否异常
  检测系统相关的测试
  检测隐藏文件
  检测可疑的核心模块LKM
  检测系统已启动的监听端口
  下面详细讲述下RKHunter的安装与使用。
   1、安装RKHunter
  RKHunter的官方网页地址为:http://www.rootkit.nl/projects/rootkit_hunter.html,建议从这个网站下载RKHunter,这里下载的版本是rkhunter-1.4.0.tar.gz。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]

最新内容请见作者的GitHub页:http://qaseven.github.io/
相关文章
|
10天前
|
存储 Shell Linux
Linux Bash 脚本中的 IFS 是什么?
【4月更文挑战第25天】
18 0
Linux Bash 脚本中的 IFS 是什么?
|
1天前
|
监控 安全 Linux
Linux系统入侵排查(三)
本文介绍了Linux系统入侵排查的相关知识。首先解释了进行系统入侵排查的原因,即当企业遭受黑客攻击、系统崩溃或其他安全事件时,需要迅速恢复系统并找出入侵来源。接着,重点讲述了日志入侵排查的重要性,因为日志文件记录了系统的重要活动,可以提供入侵行为的线索。
|
1天前
|
安全 Linux Shell
Linux系统入侵排查(二)
本文介绍了Linux系统入侵排查的步骤,包括检查历史命令记录、可疑端口和进程、开机启动项以及定时任务。作者强调了了解这些技能对于攻防两端的重要性,并提供了相关命令示例,如查看`/root/.bash_history`记录、使用`netstat`分析网络连接、检查`/etc/rc.local`和`/etc/cron.*`目录下的可疑脚本等。此外,还提到了如何查看和管理服务的自启动设置,以判断是否被恶意篡改。文章旨在帮助读者掌握Linux服务器安全维护的基本技巧。
|
1天前
|
缓存 安全 Linux
Linux系统入侵排查(一)
本文探讨了在遭遇黑客入侵或系统异常时进行应急响应和排查的必要性,重点介绍了基于Kali Linux的入侵排查步骤。排查的目标是找出潜在的恶意活动,恢复系统的安全性,并防止未来攻击。总结来说,进行Linux系统入侵排查需要密切关注账号安全,跟踪历史命令,及时识别并消除安全隐患。同时,保持对最新攻击手段和技术的了解,以便更好地防御和应对潜在的网络安全威胁。
|
3天前
|
安全 Linux Python
Volatility3内存取证工具安装及入门在Linux下的安装教程
Volatility3内存取证工具安装及入门在Linux下的安装教程
Volatility3内存取证工具安装及入门在Linux下的安装教程
|
4天前
|
数据可视化 小程序 Linux
【Linux】自动化构建工具make/Makefile和git介绍
【Linux】自动化构建工具make/Makefile和git介绍
12 0
|
5天前
|
缓存 Linux
linux性能分析之内存分析(free,vmstat,top,ps,pmap等工具使用介绍)
这些工具可以帮助你监视系统的内存使用情况、识别内存泄漏、找到高内存消耗的进程等。根据具体的问题和需求,你可以选择使用其中一个或多个工具来进行内存性能分析。注意,内存分析通常需要综合考虑多个指标和工具的输出,以便更好地理解系统的行为并采取相应的优化措施。
24 6
|
9天前
|
Shell Linux
【Linux】Bash支持各种指令选项的原理:命令行参数
【Linux】Bash支持各种指令选项的原理:命令行参数
|
10天前
|
Linux
Linux课程四课---Linux开发环境的使用(自动化构建工具-make/Makefile的相关)
Linux课程四课---Linux开发环境的使用(自动化构建工具-make/Makefile的相关)