在CentOS 7上使用RKHunter搜索XOR DDoS和其他恶意软件
企鹅我们好,在本文中,我们将学习使用Rootkit Hunter来搜寻rootkit,以及其他威胁,我们将能够使用它来查找XOR.DDoS恶意软件的某些变种的迹象,该迹象目前已用于创建僵尸网络。
与Linux系统一起进行大规模的分布式拒绝服务攻击。
安装
下载Rkhunter,尝试使用cURL进行此操作。
curl http://nbtelecom.dl.sourceforge.net/project/rkhunter/rkhunter/1.4.2/rkhunter-1.4.2.tar.gz -o rkhunter-1.4.2.tar.gz
然后提取包中的内容。
tar zxvf rkhunter-1.4.2.tar.gz
输入tar包目录。
cd rkhunter-1.4.2
补丁(可选)
此步骤将对rkhunter脚本及其数据库进行修补,以查找XOR DDoS Linux恶意软件。
该补丁基于Akamai,Avast和Malware Must Die的报告中找到的端口和文件。
在rkthunter目录下的files目录中输入。
cd files
使用yum安装补丁实用程序。
yum install patch
现在下载补丁。
curl http://sourceforge.net/p/rkhunter/patches/44/attachment/rkhunter.patch -o rkhunter.patch
或者,我们可以从此处复制并粘贴rkhunter.patch文件的内容。
--- rkhunter 2014-03-12 17:54:55.000000000 -0300 +++ rkhunter.new 2014-10-02 17:01:25.040000000 -0300 @@ -7797,6 +7797,19 @@ #+ # XOR.DDoS + XORDDOS_FILES="/lib/udev/udev + /lib/udev/debug + /etc/cron.hourly/cron.sh + /etc/cron.hourly/udev.sh + /lib/libgcc4.so + /var/run/udev.pid + /var/run/sftp.pid" + XORDDOS_DIRS= + XORDDOS_KSYMS= + + + # 55808 Variant A W55808A_FILES="/tmp/.../r /tmp/.../a" @@ -11907,6 +11920,13 @@ return fi + # XOR.DDoS Rootkit + SCAN_ROOTKIT="XOR.DDoS - Rootkit" + SCAN_FILES=${XORDDOS_FILES} + SCAN_DIRS=${XORDDOS_DIRS} + SCAN_KSYMS=${XORDDOS_KSYMS} + scanrootkit + # 55808 Trojan - Variant A --- backdoorports.dat 2010-11-13 20:41:19.000000000 -0300 +++ backdoorports.dat.new 2014-10-02 17:10:24.086000000 -0300 @@ -12,6 +12,7 @@ 2001:Scalper:UDP: 2006:CB Rootkit or w00tkit Rootkit SSH server:TCP: 2128:MRK:TCP: +3502:Possible XOR.DDoS Botnet Malware:TCP: 6666:Possible rogue IRC bot:TCP: 6667:Possible rogue IRC bot:TCP: 6668:Possible rogue IRC bot:TCP:
使用以下命令将补丁程序应用于rkhunter脚本和backdoors.dat文件。
patch < rkhunter.patch
rkhunter.patch输出
补丁已完成,现在返回tar包根目录以继续安装。
cd ..
安装文件
使用以下参数运行安装程序脚本,以将其安装在/usr/local下。
./installer.sh --install --layout /usr/local
我们也可以使用--examples标志显示更多的布局信息和示例,或者使用--show选项而不是--install来显示要在布局上安装的内容。
安装取消隐藏(推荐)
unhide和unhide-tcp实用程序将查找隐藏的进程和端口,虽然不是强制性的,但强烈建议这样做,因为大多数复杂的rootkit都会隐藏它们的存在。
首先,我们需要安装GNU Compiler Collection。
yum install gcc
安装创建条带化二进制文件所需的glibc-static。
yum install glibc-static
编译unhide-linux。
gcc -Wall -O2 --static -pthread unhide-linux*.c unhide-output.c -o unhide-linux
编译unhide-tcp。
gcc -Wall -O2 --static unhide-tcp.c unhide-tcp-fast.c unhide-output.c -o unhide-tcp
将文件安装在/usr/local/bin下,并创建一个符号链接以取消隐藏。
cp unhide-linux unhide-tcp /usr/local/bin && cd /usr/local/bin/&& ln -s unhide-linux unhide && cd
配置
在本节中,我将显示在rkhunter.conf文件中找到的一些选项,这些选项按组分开,并且它们的描述得以简化,请阅读文件上的实际描述,如果不确定,请忽略,因为默认选项应该足够了,其中大多数都被注释了。
建议我们先进行首次运行,然后再对配置文件进行实际更改,这将使我们更好地理解rkhunter的工作方式,并有可能确定一些误报,将其列入白名单。
只需使用-c或者--check参数调用rkhunter。
rkhunter -c
运行rkhunter
如上图所示,将会出现一些有关警告的信息,例如egrep或者ifup成为脚本而不是ELF二进制文件,但是它们是合法的系统文件,并且配置文件上的大多数选项都有关rkhunter如何忽略此类信息发生。
测验
以下选项ENABLE_TESTS和DISABLE_TESTS设置要制作的睾丸类型,全部启用,然后禁用不需要的睾丸。
最好至少在默认情况下禁用suspscan,因为它很容易出现误报。
ENABLE_TESTS=ALL DISABLE_TESTS=suspscan
安全shell
在SSH连接上启用root登录永远不是一个好主意,而是使用su/sudo,否则将其设置为yes。
ALLOW_SSH_ROOT_USER=no
已知SSH协议的版本1不安全,请将其设置为1需要忽略此协议检查
ALLOW_SSH_PROT_V1=0
网络端口
允许的格式为protocol:port的网络端口
PORT_WHITELIST
使用语法path_to_binary:protocol:port_number设置某些程序的白名单
PORT_PATH_WHITELIST=/usr/sbin/squid:TCP:3801
应用版本
此选项使我们可以运行一些过时的应用程序,通常不建议这样做,并且在将其放入此列表之前,必须确保该应用程序是安全的。
APP_WHITELIST=openssl:0.9.7d gpg httpd:1.3.29
嗅探器
允许使用嗅探器(捕获网络数据包的软件)。
允许以下过程侦听网络,如下行。
ALLOWPROCLISTEN=/usr/sbin/snort-plain
这将允许列出的网络接口以混杂模式侦听网络。
ALLOWPROMISCIF=eth0
档案文件
我们将需要为rkhunter创建的测试创建一些例外,以下选项使我们可以将测试绕过特定对象,例如文件,目录。
允许一些隐藏目录。
ALLOWHIDDENDIR=/etc/.java
允许一些隐藏文件。
ALLOWHIDDENFILE=/usr/share/man/man1/..1.gz ALLOWHIDDENFILE=/usr/share/man/man5/.k5identity.5.gz ALLOWHIDDENFILE=/usr/share/man/man5/.k5login.5.gz
此白名单将允许某些文件成为脚本而不是ELF二进制文件。
SCRIPTWHITELIST=/usr/sbin/ifdown SCRIPTWHITELIST=/usr/sbin/ifup SCRIPTWHITELIST=/usr/bin/egrep SCRIPTWHITELIST=/usr/bin/fgrep SCRIPTWHITELIST=/usr/bin/ldd
允许文件可全局写入。
WRITEWHITELIST=/usr/bin/date
允许文件具有属性更改。
ATTRWHITELIST=/usr/bin/date
允许进程查询已删除的文件。
ALLOWPROCDELFILE=/sbin/cardmgr
日志选项
这将定义要登录的文件。
LOGFILE=/var/log/rkhunter.log
如果我们希望每次rkhunter每次运行时都继续登录同一文件,请将此值设置为1,默认值为0,它将在日志文件后添加“ .old”并创建一个新文件。
APPEND_LOG=0
如果要在出现问题时保留日志文件,请将以下选项设置为1.
COPY_LOG_ON_ERROR=0
如果要使用syslog,请取消注释并设置日志工具。
USE_SYSLOG=authpriv.warning
默认情况下,列入白名单的itens将报告测试正常,如果要突出显示列入白名单的项目,则必须将此选项设置为1.
WHITELISTED_IS_WHITE=0
操作系统选项
在Red Hat之类的系统(包括CentOS)上,将软件包管理器选项设置为RPM。
PKGMGR=RPM
启用此选项可在操作系统更改版本/发行版时报告警告。
WARN_ON_OS_CHANGE
操作系统更改时是否应该更新数据库?
UPDT_ON_OS_CHANGE
其中找到操作系统发行文件,在CentOS上设置为/etc/redhat-release。
OS_VERSION_FILE=/etc/redhat-release
锁定
如果我们可能同时运行多个rkhunter,则应启用此选项以启用锁定文件的使用并避免数据库损坏。
USE_LOCKING=0
如果启用了使用锁,则应设置超时以避免死锁。
LOCK_TIMEOUT
我们应该警告锁定的会议吗?
SHOW_LOCK_MSGS
创业与超级恶魔
inetd的配置文件其中。
INETD_CONF_PATH=/etc/inetd.conf
哪些服务被允许通过inetd运行。
INETD_ALLOWED_SVC=/usr/sbin/rpc.metad /usr/sbin/rpc.metamhd
Xinetd配置文件。
XINETD_CONF_PATH=/etc/xinetd.conf
RC启动文件路径。
STARTUP_PATHS=/etc/rc.d /etc/rc.local
账号Accounts
包含隐形密码的文件:
PASSWORD_FILE=/etc/shadow
允许除root以外的用户帐户具有UID 0。
UID0_ACCOUNTS=toor rooty
允许没有密码的帐户。
PWDLESS_ACCOUNTS=abc
系统日志
Syslog配置文件。
SYSLOG_CONFIG_FILE=/etc/syslog.conf
允许syslog远程登录。
ALLOW_SYSLOG_REMOTE_LOGGING=0
Reports
报告警告数量
SHOW_SUMMARY_WARNINGS_NUMBER
显示运行测试所需的总时间?
SHOW_SUMMARY_TIME
要在rkhunter发现某些内容时接收邮件报告,我们必须设置以下选项以及拥有邮件应用程序。
谁将收到电子邮件。
[email protected]
用于发送电子邮件的命令。
MAIL_CMD=mail -s "[rkhunter] Warnings found for ${HOST_NAME}"
运行rkhunter
好的,在这一点上,我们应该已经至少运行过rkhunter一次,现在看看可以与rkhunter一起使用的其他标志。
检查更改
完成配置后,请使用-C或者--check-config标志运行rkhunter,以检查文件中是否存在任何错误。
rkhunter -C
属性更新
现在,每次更改配置文件时,请确保更新文件属性数据库。
rkhunter --propupd
仅报告警告。
rkhunter --rwo
有时我们只想运行一个特定的测试,为此,请尝试--list测试以获取可用测试的名称,然后使用--enable标志后跟测试名称。
rkhunter --list tests
rkhunter检查网络
以下选项将禁用按键提示。
rkhunter --sk
要在cronjob上运行rkhunter,请使用--cronjob标志,使用以下内容创建可执行文件/etc/cron.daily/rkhunter.sh进行日常检查
#!/bin/sh ( /usr/local/bin/rkhunter --versioncheck /usr/local/bin/rkhunter --update /usr/local/bin/rkhunter --cronjob -c ) >> /dev/null 2>&1