2024年Linux最全使用rkhunter检测Linux的rootkit(3),小白看完都学会了

最全的Linux教程,Linux从入门到精通

======================

  1. linux从入门到精通(第2版)

  2. Linux系统移植

  3. Linux驱动开发入门与实战

  4. LINUX 系统移植 第2版

  5. Linux开源网络全栈详解 从DPDK到OpenFlow

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

转载来源 :使用rkhunter检测Linux的rootkit : https://www.jianshu.com/p/9a5fcd4b236b

介绍

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

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

文件级别的rootkit: 一般是通过程序漏洞或者系统漏洞进入系统后,通过修改系统的重要文件来达到隐藏自己的目的。在系统遭受rootkit攻击后,合法的文件被木马程序替代,变成了外壳程序,而其内部是隐藏着的后门程序。通常容易被rootkit替换的系统程序有login、ls、ps、ifconfig、du、find、netstat等。文件级别的rootkit,对系统维护很大,目前最有效的防御方法是定期对系统重要文件的完整性进行检查,如Tripwire、aide等。

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

Rootkit分类和原理

Rootkit的主要功能包括:

  • 隐藏进程
  • 隐藏文件
  • 隐藏网络端口
  • 后门功能
  • 键盘记录器

Rootkit主要分为以下2种:

  • 用户态Rootkit(User-mode Rootkit):一般通过覆盖系统二进制和库文件来实现。它具有如下的特点:
  • 它通常替换的二进制文件为ps、netstat、du、ping、lsof、ssh、sshd等,例如已知的Linux t0rn rootkit(https://www.sans.org/security-resources/malwarefaq/t0rn-rootkit,访问日期:2019年2月11日)替换的文件就包括ps(用于隐藏进程)、du(用于隐藏特定文件和目录)。
  • 它也可能使用环境变量LD_PRELOAD和/etc/ld.so.preload、/etc/ld.so.conf等加载黑客自定义的恶意库文件来实现隐藏。例如,beurk(https://github.com/unix-thrust/beurk)这个Rootkit正是使用了这种技术。
  • 它还可能直接在现有进程中加载恶意模块来实现隐藏。例如,在GitHub上托管的这个项目https://github.com/ChristianPapathanasiou/apache-rootkit就是在Apache进程中注入恶意动态加载库来实现远程控制和隐藏的Rootkit。
  • 它不依赖于内核(Kernel-independent)。
  • 需要为特定的平台而编译。
  • 内核态Rootkit(Kernel-mode Rootkit):通常通过可加载内核模块(LoadableKernel Module,LKM)将恶意代码被直接加载进内核中。它具有如下的特点:
  • 它直接访问/dev/{k,}mem。
  • 更加隐蔽,更难以检测,通常包含后门。

在这里需要指出的是,用于获得root权限的漏洞利用工具不是Rootkit;用于获得root权限的漏洞利用工具被称为提权工具
通常情况下,黑客攻击的动作序列为:

  • (1)定位目标主机上的漏洞,这一般是通过网络扫描和Web应用扫描工具来实现的,使用的工具包括但不限于《Linux系统安全:纵深防御、安全扫描与入侵检测》中《第10章
    Linux安全扫描工具》中提到的相关工具。
  • (2)利用漏洞提权。在步骤(1)中获得的权限可能不是root超级用户权限,此时黑客通过系统中的本地提权漏洞非法的获得root权限。
  • (3)提权成功后安装Rootkit。
  • (4)擦除痕迹,通过删除本地日志、操作历史等擦除痕迹。
  • (5)长期利用被植入了Rootkit的主机。黑客可能会把这些植入了Rootkit的主机作为挖矿机、发动DDoS分布式拒绝服务攻击的僵尸网络等等。

实例

用户反映服务器有被人植入木马的嫌疑,所以安装了rkhunter来检测一下

yum直接安装rkhunter

运行

rkhunter --check

日志可以到/var/log下查看,例如下面

[14:51:42] Warning: Checking for prerequisites [ Warning ]

[14:51:42] Warning: WARNING! It is the users responsibility to ensure that when the '--propupd' option

[14:51:44] /usr/sbin/ifdown [ Warning ]

[14:51:44] Warning: The command '/usr/sbin/ifdown' has been replaced by a script: /usr/sbin/ifdown: Bourne-Again shell sc

ript, ASCII text executable

[14:51:44] /usr/sbin/ifup [ Warning ]

[14:51:44] Warning: The command '/usr/sbin/ifup' has been replaced by a script: /usr/sbin/ifup: Bourne-Again shell script

, ASCII text executable

源码安装rootkit后门检查工具RKHunter

1.下载、安装rkhunter

[root@bogon src]# wget  http://jaist.dl.sourceforge.net/project/rkhunter/rkhunter/1.4.2/rkhunter-1.4.2.tar.gz

安装rkhunter

[root@bogon src]# tar -zxf rkhunter-1.4.2.tar.gz 
[root@bogon src]# cd rkhunter-1.4.2
[root@bogon rkhunter-1.4.2]# ./installer.sh --install

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

[root@bogon rkhunter-1.4.2]# rkhunter --propupd
[ Rootkit Hunter version 1.4.2 ]
[root@bogon rkhunter-1.4.2]# ls /var/lib/rkhunter/db/rkhunter.dat   #样本文件位置
/var/lib/rkhunter/db/rkhunter.dat  

3.运行rkhunter检查系统
它主要执行下面一系列的测试:

1. MD5校验测试, 检测任何文件是否改动.

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

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

4. 检测大多常用程序的文件异常属性.

5. 执行一些系统相关的测试 - 因为rootkit hunter可支持多个系统平台.

6. 扫描任何混杂模式下的接口和后门程序常用的端口.

7. 检测如/etc/rc.d/目录下的所有配置文件, 日志文件, 任何异常的隐藏文件等等. 例如, 在检测/dev/.udev和/etc/.pwd.lock文件时候, 我的系统被警告.

8. 对一些使用常用端口的应用程序进行版本测试. 如: Apache Web Server, Procmail等.

执行检测命令:

[root@bogon rkhunter-1.4.2]# rkhunter --check

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

[root@bogon rkhunter-1.4.2]# /usr/local/bin/rkhunter --check --sk

4.在线升级rkhunter

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

[root@bogon rkhunter-1.4.2]# rkhunter --update
5.检测最新版本

让 rkhunter 保持在最新的版本;

[root@bogon rkhunter-1.4.2]# rkhunter --versioncheck
[ Rootkit Hunter version 1.4.2 ]

Checking rkhunter version...
  This version  : 1.4.2
  Latest version: 1.4.2

扩展

Ubuntu安装两种Rootkit恶意软件的有用检测工具

我以Ubuntu Server 16.04系统为例,向大家介绍两款针对常规Rootkit和恶意软件的有用检测工具。

针对Rookit的检测工具-chkrootkit

安装

sudo apt-get install chkrootkit -y

运行程序

sudo chkrootkit

之后,就是等待检测过程慢慢完成
在这里插入图片描述
如果检测之后出现一些Rookit迹象,可以尝试分析一样,因为有些可能是误报,如在Ubuntu Server 16.04服务器上,会出现以下误报:

Searching for Linux/Ebury - Operation Windigo ssh... Possible Linux/Ebury - Operation Windigo installetd

这是一个与openssh-server package包相关的文件,属于误报,可以忽略。如果出现其它Rookit疑似报告,则要引起重视,认真对照chkrootkit的报告进行分析,查找解决问题,因为chkrootkit工具只提供检测,不提供解决或删除方法。

针对Malware的检测工具-ISPProtect

ISPProtect是一款提供针对Linux网站服务器的恶意软件检测收费工具(每月$7.92),但我们可以使用它的试用版本,安装过程如下:

sudo apt-get install php-cli -y

sudo mkdir -p /usr/local/ispprotect

sudo chown -R root:root /usr/local/ispprotect

sudo chmod -R 750 /usr/local/ispprotect

sudo cd /usr/local/ispprotect

sudo wget http://www.ispprotect.com/download/ispp_scan.tar.gz

sudo tar xzf ispp_scan.tar.gz

sudo rm -f ispp_scan.tar.gz

sudo ln -s /usr/local/ispprotect/ispp_scan /usr/local/bin/ispp_scan

运行程序

sudo ispp_scan

之后,程序提示输入扫描key,如果是试用版本请输入TRIAL:
在这里插入图片描述
下一步,程序将提示输入目标扫描路径,由于ISPProtect是针对网站的扫描工具,所以你必须输入网站的根目录路径,如/var/www,之后,Enter键执行。根据文件多少和数据大小来看,扫描可能会持续时间较长,最后,会给出一个最终检测报告。
在这里插入图片描述
个人推荐可以把该工具设置成每小时自动扫描一次,以sudo nano命令编辑任务列表/etc/cron.d/ispprotect,并复制以下命令进入:

0 \* \* \* \* root /usr/local/ispprotect/ispp_scan --update && /usr/local/ispprotect/ispp_scan --path=/var/www --email-results=EMAIL --non-interactive --scan-key=KEY

以上命令中的EMAIL表示扫描报告发送地址,KEY表示扫描key。–update表示ISPProtect特征库是适时更新的。

如果觉得每小时太过于频繁,你可以在以上命令中进行以下修改:

0 1 \* \* \* – every day at 1 AM

\* \*/2 \* \* \* – every other hour

\* \*/3 \* \* \* – every third hour

扫描最终结果会自动发送到EMAIL中提供的邮箱地址中去。

真实案例记录Linux被植入rootkit导致服务器带宽跑满的解决过程

摘要: 一、关于linux下的rootkitrootkit是Linux平台下最常见的一种木 马后门工具,它主要通过替换系统文件来达到攻 击和和隐蔽的目的,这种木 马比普通木 马后门更加危险和隐蔽,普通的检测工具和检查手段很难发现这种木 马。rootkit攻 击能力极强,对系统的危害很大,它通过一套工具来建立后门和隐藏行迹, …

案例

一次Linux.BackDoor.Gates.5(文件级别rootkit)网络带宽攻 击案例

1.1、问题现象

事情起因是突然发现一台oracle服务器外网流量跑的很高,明显和平常不一样,最高达到了200M左右,这明显是不可能的,因为oracle根本不与外界交互,第一感觉是服务器被入 侵了。被人当做肉鸡了,在大量发包。

这是台centos6.5 64位的系统,已经在线上运行了70多天了。

1.2、排查问题

排查问题的第一步是查看此服务器的网络带宽情况,通过监控系统显示,此台服务器占满了200M的带宽,已经持续了半个多小时,接着第二步登录服务器查看情况,通过ssh登录服务器非常慢,这应该就是带宽被占满的缘故,不过最后还是登录上了服务器,下面是一个top的结果;
在这里插入图片描述
可以看到,有一个异常的进程占用资源比较高,名字不仔细看还真以为是一个Web服务进程。但是这个nginx1确实不是正常的进程。

接着,通过pe -ef命令又发现了一些异常:
在这里插入图片描述
发现有个/etc/nginx1进程,然后查看了这个文件,是个二进制程序,基本断定这就是木 马文件。

同时又发现,/usr/bin/dpkgd/ps -ef这个进程非常异常,因为正常情况下ps命令应该在/bin目录下才对。于是进入/usr/bin/dpkgd目录查看了一下情况,又发现了一些命令,如下图所示:
在这里插入图片描述
由于无法判断,用了最笨的办法,找了一台正常的机器,查看了一下ps命令这个文件的大小,发现只有80K左右,又检查了/usr/bin/dpkgd/ps,发现文件大小不对,接着又检查了两个文件的md5,发现也不一样。

初步判断,这些文件都伪装的外壳命令,其实都是有后门的木 马.

继续查看系统可疑目录,首先查看定时任务文件crontab,并没有发现异常,然后查看系统启动文件rc.local,也没有什么异常,接着进入/etc/init.d目录查看,又发现了比较奇怪的脚本文件DbSecuritySpt、selinux,如下图所示:
在这里插入图片描述
这两个文件在正常的系统下是没有的,所以也初步断定是异常文件。

接着继续查看系统进程,通过ps -ef命令,又发现了几个异常进程,一个是/usr/bin/bsd-port,另一个是/usr/sbin/.sshd,这两个进程时隐时现,在出现的瞬间被我抓到了。

查看发现/usr/bin/bsd-port是个目录,进入目录,发行了几个文件,如下图:
在这里插入图片描述
有getty字眼,这不是终端管理程序吗,它用来开启终端,进行终端的初始化,设置终端,这里出现了终端,马上联想到是否跟登录相关,于是紧接着,又发现了/usr/sbin/.sshd,很明显,这个隐藏的二进制文件.sshd就是个后 门文件,表面像sshd进程,其实完全不是。

最后,又查看了木 马最喜欢出现的目录/tmp,也发现了异常文件,从名字上感觉好像是监控木 马程序的,如下图所示:
在这里插入图片描述
检查到这里,基本查明了系统中可能出现的异常文件,当然,不排除还有更多的,下面的排查就是查找更多可疑文件,然后删除即可。

3、查杀病毒文件

要清楚系统中的牧马病毒,第一步要做的是先清除这些可疑的文件,这里总结了下此类植入牧马各种可疑的文件,供大家参考:

检查是否有下面路径文件

cat /etc/rc.d/init.d/selinux
cat /etc/rc.d/init.d/DbSecuritySpt
ls /usr/bin/bsd-port
ls /usr/bin/dpkgd

检查下面文件大小是否正常,可以和正常机器中的文件做比对:

ls -lh /bin/netstat
ls -lh /bin/ps
ls -lh /usr/sbin/lsof


**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618542503)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 29
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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的安装非常简单,过程如下: 1 2 3 4 5 6 7 [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 使用特定的配置文件 –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 [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 prereq

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值