xor DDOS木马分析

阅读量100791

发布时间 : 2022-08-10 10:30:57

 

1、样本功能

“XOR.DDoS”木马一款经典的linux dos木马,该木马能够感染32位和64位的Linux系统,通过安装rootkit来隐藏自身,并可通过DDoS攻击形成僵尸网络,该木马首次曝光是在2014年,时隔这么多年该木马依然盛行。

 

2、样本信息

样本名称

0972688711161e347d08ce1c931eb41904fc6f4e4764548e1f14da132a0d1b5d

样本类型

ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.6.9, not stripped

样本大小

662840

MD5

7d44757d809641646e02ab76ed93ede8

SHA1

332f38022f433a472dc5aa6683c9b9ccccf46e0d

SHA256

0972688711161e347d08ce1c931eb41904fc6f4e4764548e1f14da132a0d1b5d

SSDeep

12288:RBRO1UmJJ0nHgBL9YfJip2qm+x4h1TonHp6y07l7mtBDvnD/u9hMHDB:RBRpmJ+HyL9AiAqm+x4h1mH6wvnDWXMN

 

3、动态分析

1、查看该病毒类型

2、网络连接行为

运行后,通过netstat执行发现,存在一条 103.115.42.70的请求记录,该ip地址归属地为香港

3、top查看系统进程,发现该异常异常,但是该名称会随机发生变化,每当执行kill会,会有进程名称启动

3.1样本静态分析

1、通过readlink读取程序的当前路径

调用readlink函数,在函数中调用传入的filename参数,即/proc/self/exe

备注:readlink定义函数:ssize_t readlink(const char path, char buf, size_t bufsiz);readlink()会将参数path的 符号链接内容存储到参数buf所指的内存空间,linux系统中有个符号链接:/proc/self/exe 它代表当前程序,所以可以用readlink读取它的源路径就可以获取当前程序的绝对路径。具体用法如下

#include <unistd.h>
#include <stdio.h>

int main(int argc , char* argv[])
{
    char buf[1024] = { 0 };
    int n;

    n = readlink("/proc/self/exe" , buf , sizeof(buf));
    if( n > 0 && n < sizeof(buf))
    {
        printf("%s\n" , buf);
    }
}

2、调用dec_conf函数解密字符串<br />对main函数进行进一步分析发现,会调用大量dec_conf函数对字符串进行解密

跟进dec_conf函数发现,系统主要是利用encrypt_code函数进行解密

获取xorkeys为BB2FA36AAA9541F0

可利用脚本对加密后的参数进行解密

key="BB2FA36AAA9541F0"
pwd=["m4S4nAC/nA","m4S4nAC/n2_AD","m.[$nFR$7nLQQGF",">#S' RW   X\x1BFTp\a&#Ah\"\\[{ty","*6F6{"]
result=list()
#pwd为密文
def canshu(aa):
    result = list()
    for i in range(len(aa)):
        result.append(chr(ord(aa[i])^ord(key[i % len(key)])))
    result=''.join(result)
    print(result)

for i in range(len(pwd)):
    canshu(aa=pwd[i])

3、样本自我复制与删除

通过分析main函数发现,当传入参数argc为2时,样本会自动进行删除

样本进行自我复制,复制到lib/udev/udev目录下

4、设置自启动以及定时任务

AddService函数设置病毒为系统服务并随系统启动而启动

写入本地crontab,作为定时任务执行,每3分钟执行一次cron.sh

cron.sh具体内容如下

5、样本通信

样本a在ddservice函数实现自启动,在函数decrypt_remotestr解密服务器的ip地址,最后开启两个线程调用tcp_thread实现和服务器的通信,并且自身含有rootkit模块,通过HidePidPort、HideFile对端口、文件进行隐藏

tcp_thread线程会依次获取计算机的内核版本,处理器,cpu核数,时钟频率,key,static

daemondown函数,设置dns通信地址103.25.9.229,并访问url下载数据包,该数据包中包含的用于控制肉鸡进行ddos指令的命令等,再次调用pthread_create,向目标主机发起dos攻击

 

4、加固措施

1、首先利用kill -stop pid 挂起父进程;

2、删除/lib/udev/ 下的udev 和/lib/libedev.so;

3、删除/etc/cron.hourly下的cron.sh,删除crontab定时任务

4、删除etc/init.d下的系统启动项;

5、杀掉挂起的父进程。

参考链接:

https://www.cnblogs.com/goabout2/p/4888669.html

https://www.freebuf.com/articles/terminal/204444.html

本文由Tide安全团队原创发布

转载,请参考转载声明,注明出处: https://www.anquanke.com/post/id/277186

安全客 - 有思想的安全新媒体

分享到:微信
+10赞
收藏
Tide安全团队
分享到:微信

发表评论

Tide安全团队

Tide安全团队正式成立于2019年1月,是新潮信息旗下以互联网攻防技术研究为目标的安全团队,目前聚集了十多位专业的安全攻防技术研究人员,专注于网络攻防、Web安全、移动终端、安全开发、IoT/物联网/工控安全等方向。

  • 文章
  • 68
  • 粉丝
  • 61

热门推荐

内容需知
  • 投稿须知
  • 转载须知
  • 官网QQ群8:819797106
  • 官网QQ群3:830462644(已满)
  • 官网QQ群2:814450983(已满)
  • 官网QQ群1:702511263(已满)
合作单位
  • 安全客
  • 安全客
Copyright © 北京奇虎科技有限公司 360网络攻防实验室 安全客 All Rights Reserved 京ICP备08010314号-66