侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

Linux后门入侵检测工具以及最新bash漏洞解决方法

linux  /  管理员 发布于 7年前   195

  一、什么是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 mak

  

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  -hchkrootkit各个参数的含义如下所示。

  参数含义

  -h显示帮助信息

  -v显示版本信息

  -l显示测试内容

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

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

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

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

  -p dir1:dir2:dirN指定chkrootkit检测时使用系统命令的目录-n跳过NFS连接的目录

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


复制代码代码如下:  [root@server chkrootkit]# /usr/local/chkrootkit/chkrootkitChecking `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–helpRkhunter常用参数以及含义如下所示。

  参数             含义

  -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”表示系统未感染此


复制代码代码如下:  rootkitChecking for rootkits…
  Performing check of known rootkit files and directories55808 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 interfacesChecking 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 attemptbash: error importing function definition for `x’
  this is a test

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

  以上就是Linux后门入侵检测工具以及最新bash漏洞解决方法,谢谢阅读,希望能帮到大家,请继续关注,我们会努力分享更多优秀的文章。


  • 上一条:
    Linux下常用安全策略设置的六个方法
    下一条:
    Linux系统开机启动过程分解
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在Linux系统中使用Iptables实现流量转发功能流程步骤(0个评论)
    • vim学习笔记-入门级需要了解的一些快捷键(0个评论)
    • 在centos7系统中实现分区并格式化挂载一块硬盘到/data目录流程步骤(0个评论)
    • 在Linux系统种查看某一个进程所占用的内存命令(0个评论)
    • Linux中grep命令中的10种高级用法浅析(0个评论)
    • 近期文章
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • Laravel 11.15版本发布 - Eloquent Builder中添加的泛型(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-11
    • 2017-07
    • 2017-10
    • 2017-11
    • 2018-01
    • 2018-02
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2021-02
    • 2021-03
    • 2021-04
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2021-12
    • 2022-01
    • 2022-03
    • 2022-04
    • 2022-08
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-06
    • 2023-07
    • 2023-10
    • 2023-12
    • 2024-01
    • 2024-04
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客