zoukankan      html  css  js  c++  java
  • rootkit后门检测工具

    1、 关于rootkit

    rootkit是Linux平台下最常见的一种木马后门工具,它主要通过替换系统文件来达到入侵和和隐蔽的目的,这种木马比普通木马后门更加危险和隐蔽,普通的检测工具和检查手段很难发现这种木马。

    rootkit攻击能力极强,对系统的危害很大,它通过一套工具来建立后门和隐藏行迹,从而让攻击者保住权限,以使它在任何时候都可以使用root 权限登录到系统。

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

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

    通常容易被rootkit替换的系统程序有login、ls、ps、ifconfig、du、find、netstat等。文件级别的rootkit,对系统危害很大,目前最有效的防御方法是定期对系统重要文件的完整性进行检查,如Tripwire、aide等。

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

    内核级rootkit主要依附在内核上,它并不对系统文件做任何修改。以防范为主。一般系统镜像要从官网或可信度高的网站下载镜像。

    2、 RKHunter

    rkhunter是Linux系统平台下的一款开源入侵检测工具,具有非常全面的扫描范围,除了能够检测各种已知的rootkit特征码以外,还支持端口扫描、常用程序文件的变动情况检查。

    通过一系列脚本来确认服务器是否已经感染rootkit,主要执行以下测试:

    1)MD5校验测试, 检测文件是否被改动。

    2)检测rootkits使用的二进制和系统工具文件。

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

    4)检测常用程序的文件异常属性。

    5)检测系统相关。如:启动文件、系统用户和组配置、ssh配置、文件系统等。

    6)检测隐藏文件、/etc/rc.d/目录下的所有配置文件、日志文件等。

    7)检测Linux内核监控模块:驱动模块(LKM)。

    8)检测系统已经启动的监听端口:扫描任何混杂模式下的接口和后门程序常用的端口。

    9)检测应用程序版本,如: Apache Web Server, Procmail等。

    10)检测网络。

    1、编译安装rkhunter

    yum -y install gcc gcc-c++ make cmake glibc-static glibc-utils
    
    wget https://jaist.dl.sourceforge.net/project/rkhunter/rkhunter/1.4.6/rkhunter-1.4.6.tar.gz
    tar zxvf rkhunter-1.4.6.tar.gz
    cd rkhunter-1.4.6
    ./installer.sh --install

    2.为基本系统程序建立校对样本,建议系统安装完成后就建立。

    rkhunter --propupd  # 创建样本
    
    ls /var/lib/rkhunter/db/rkhunter.dat   #样本文件位置

    3、rkhunter的使用及检测输出信息说明 

    执行检测命令:

    rkhunter --check

    如果您不想要每个部分都以 Enter 来继续,想要让程序自动持续执行,可以使用:

    rkhunter --check –sk

    检测过程会分为几部分

    ##第一部分:检测系统命令,主要检测系统的二进制文件,这些文件最容易被rootkit攻击;

    #[ OK ]表示正常,[ Warning ]表示有异常,[ None found ]未找到

    ##第二部分:检测rootkit,主要检测常见的rootkit程序;

    #[ Not found ]表示未感染

    ##第三部分:特殊或附加检测:对rootkit文件或目录检测、对恶意软件检测、对指定内核检测等

    ##第四部分:检测网络、系统端口、系统启动文件、系统用户和组配置、ssh配置、文件系统等

    ##第五部分:应用程序版本检测

    ##第六部分:总结服务器目前的安全状态

    4.在线升级rkhunter

    rkhunter是通过一个含有rootkit名字的数据库来检测系统的rootkits漏洞, 所以经常更新该数据库非常重要, 你可以通过下面命令来更新该数据库:

    rkhunter --update

    5.检测最新版本

    让 rkhunter 保持在最新的版本;

    rkhunter --versioncheck

    6.rkhunter其它用法:自动自行、定向任务执行等

    自动执行程序:

    rkhunter --check --skip-keypress

    加入定时任务:

    crontab -e
    
    10 03 * * * /usr/bin/rkhunter --check --skip-keypress >/home/check_rkhunter/chk.txt

    3、 chkrookit

    1、编译安装chkrookit

    yum -y install gcc gcc-c++ make cmake glibc-static glibc-utils
    wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz #下载软件包
    tar zxvf chkrootkit.tar.gz
    make sense
    
    #注意,此处为make sense

    2、chkrookit的使用

    1)Usage: ./chkrootkit [options] [test ...]

    Options:

    -h 显示帮助信息

    -V 显示版本信息

    -l 显示测试内容

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

    -q 安静模式,只显示有问题部分,

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

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

    -p dir1:dir2:dirN 检测指定目录

    -n 跳过NFS连接的目录

    2)检测:直接执行chkrootkit命令即可检测系统

    ./chkrootkit |grep INFECTED

    3)指定使用备份的系统工具检测:

    -p 指定通过哪个检测路径检测

    chkrootkit -p /usr/bin/
    
    chkrootkit -p /usr/share/ | grep INFECTED

    4、解决思路

        如果您的系统经过 rkhunter 的检测之后,却发现很多的『红字』时,该怎么办?

        基本上,官方网站与一般网管老手的建议都一样,如果被 rootkit 之类的程序包攻击后 ( 也就是上一节的检测表中的第二部分所攻击时 ),那么最好直接重新安装系统, 不要存在说可以移除 rootkit 或者木马程序的幻想,因为,『隐藏』本来就是 rootkit 与木马程序的拿手好戏! 我们不知道到底这个 rootkit 或者木马程序有多剽悍,为了保险起见,还是重灌系统吧!如何重灌?简单的说:

        1.将原主机的网络线拔除;

        2.备份您的数据,最好备份成两部分,一部份是全部的系统内容,越详尽越好,包括 binary files 与 logfile 等等, 至于另一部份则可以考虑仅备份重要的数据文件即可!

        3.将上个步骤的数据备份(仅重要数据部分!)进行整体的检查,查看是否有怪异的数据存在(这部分可能会花去不少时间!)

        4.重新安装一部完整的系统,这包括:

        o仅安装需要的套件在服务器上面;

        o先进行 简单的防火墙 设定后才进行联机;

        o以 APT/YUM 之类的工具进行在线更新;

        o执行类似 rkhunter/nessus 之类的软件,检验系统是否处在较为安全的状态

        5.将原本的重要数据移动至上个步骤安装好的系统当中,并启动原本服务器上面的各项服务;

        6.以 rkhunter/nessus 之类的软件检验系统是否处在较为安全的环境,并且加强防火墙的机制!

        7.最后,将原本完整备份的数据拿出来进行分析,尤其是 logfile 部分,试图找出 cracker 是那个服务?那个时间点? 以那个远程 IP 联机进入本机等等的信息,并针对该信息研拟预防的方法,并应用在已经运作的机器上。

           备份chkrootkit使用的系统命令

           chkrootkit在检测rootkit时使用部分系统命令,如果系统被入侵,那么依赖的系统命令也可能已经被入侵者替换,从而导致检测结果不可信。

           所以在服务器对外开放前,建议事先备份chkrootkit使用的系统命令,在chkrootkit做系统检测时使用备份的原始系统命令对rootkit进行检测可以保证结果可信度。

           以下是具体步骤:

    #复制系统命令
    cp `which ssh awk cut echo find egrep id head ls netstat ps strings sed uname` ./commands
    
    #压缩检测用到的系统工具并备份到安全目录
    
    tar zcvf commands.tar.gz ./commands
    sz commands.tar.gz # 下载到本机
    rm -rf commands.tar.gz
  • 相关阅读:
    java实现 洛谷 P1425 小鱼的游泳时间
    java实现 洛谷 P1425 小鱼的游泳时间
    java实现 洛谷 P1425 小鱼的游泳时间
    java实现 洛谷 P1425 小鱼的游泳时间
    Java实现洛谷 P1428 小鱼比可爱
    Java实现洛谷 P1428 小鱼比可爱
    Java实现洛谷 P1428 小鱼比可爱
    阿里面试题总结
    BAT机器学习面试1000题系列
    就目前市面上的面试整理来说,最全的BAT大厂面试题整理在这
  • 原文地址:https://www.cnblogs.com/zhaijiahui/p/10622425.html
Copyright © 2011-2022 走看看