内容简介:最近突然发现服务器出现流量异常,十分卡顿,通过top命令查看内存使用情况,发现可疑的进程:
*本文原创作者:Sampson,本文属于FreeBuf原创奖励计划,未经许可禁止转载
一、背景
最近突然发现服务器出现流量异常,十分卡顿,通过top命令查看内存使用情况,发现可疑的进程:
通过kill -9 pid(116218)命令杀掉后又启动新的进程,名字更换了:
查看etc/crontab定时任务发现定时任务*/3 * * * * root etc/cron.hourly/gcc.sh,每3分钟执行一次以下脚本:
查看gcc.sh脚本,可以看到脚本内容,该脚本的功能是打开网卡,然后启动libudev.so,并启动多个进程来监控libudev.so进程是否被查杀,如果被杀掉了,会再次拷贝libudev.so执行,而且每次启动都会更换进程名,给查杀带来了难度。
二、样本介绍
样本基本信息:
样本名称 | libudev.so |
---|---|
样本类型 | ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.6.9, not stripped |
样本大小 | 662840 |
MD5 | 7d44757d809641646e02ab76ed93ede8 |
SHA256 | 0972688711161e347d08ce1c931eb41904fc6f4e4764548e1f14da132a0d1b5d |
传播方式 | SSH爆破,远程下载执行 |
所属家族 | XorDDoS |
三、详细分析
i3306m样本运行后,首先通过get_self调用readlink来获取当前样本的运行路径:
该样本内置了一个XOR加解密算法,对字符串进行解密:
XOR解密密钥为“B2FA36AAA9541F0”:
通过IDA动态调试监听参数a1,获取解密字符串:
解密的字符串如下, http://www.s9xk32c.com/config.rar 为配置文件:
解密出来的 linux 系统命令如下,这些字符串会在后面用于创建文件、拷贝文件盒系统命令等:
DelService()函数的功能是删除病毒自启动服务,并且删除/etc/rc*.d/ 的S90*文件都是指向/etc/init.d/里的启动脚本的软链接,从rc1.d一直到rc5.d。
创建/usr/bin/,/bin/,/tmp/三个目录。
在之前解密出的系统路径/usr/bin/,/bin/,/tmp/下复制自身并执行,并通过在尾部添加10个随机字符的方式,使得自身的hash值每次都不同,用于对抗检查hash值这一类的扫描。
AddService()函数代码尝试将自身作为服务写入到系统启动目录下,使每次样本都能随着系统自启动。
远程服务器上下载的gcc.sh脚本,写入本地crontab,作为定时任务执行,每3分钟检测程序是否运行,如果不存在就继续执行拷贝并运行。
样本自身还携带了一个rootkit模块,通过HidePidPort、HideFile对端口、文件进行隐藏。
然后创建3个线程,分别执行不同的任务:
kill_process线程的功能是监听配置文件config.rar是否下载成功,如果下载完成,读取每行的内容,根据判断条件对相应进程进行查杀。
tcp_thread线程的功能是获取受控主机的信息,然后发送回来:
daemon_get_kill_process线程的功能是通过http_download_mem()函数下载配置文件kill_cfg,然后解密配置文件,休眠1800s,继续执行该操作:
在tcp_thread线程中,有一个exec_packet函数,控制肉鸡向目标主机发起DDoS攻击,更具不同的参数设置,可以控制肉鸡进行各种威胁操作,包括创建多个线程发起DDoS攻击,下载恶意脚本并执行,发送恶意信息到指定服务器等操作。
样本更新:
四、处理以及加固措施
病毒查杀脚本和加固方法如下:
*本文原创作者:Sampson,本文属于FreeBuf原创奖励计划,未经许可禁止转载
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- DDG僵尸挖矿样本v3016技术分析
- 什么是僵尸进程,如何找到并杀掉僵尸进程?
- BYOB:我的天!又一个僵尸网络开源了BYOB僵尸网络开源代码
- 僵尸扫描
- Linux 系统中僵尸进程
- 追踪分析LiquorBot僵尸网络
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Java多线程编程实战指南(设计模式篇)
黄文海 / 电子工业出版社 / 2015-10 / 59.00
随着CPU 多核时代的到来,多线程编程在充分利用计算资源、提高软件服务质量方面扮演了越来越重要的角色。而 解决多线程编程中频繁出现的普遍问题可以借鉴设计模式所提供的现成解决方案。然而,多线程编程相关的设计模式书籍多采用C++作为描述语言,且书中所举的例子多与应用开发人员的实际工作相去甚远。《Java多线程编程实战指南(设计模式篇)》采用Java(JDK1.6)语言和UML 为描述语言,并结合作者多......一起来看看 《Java多线程编程实战指南(设计模式篇)》 这本书的介绍吧!