吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 13005|回复: 29
收起左侧

[PC样本分析] “魔术远控”木马分析

  [复制链接]
安静的小酒吧 发表于 2015-12-25 21:45
使用论坛附件上传样本压缩包时必须使用压缩密码保护,压缩密码:52pojie,否则会导致论坛被杀毒软件等误报,论坛有权随时删除相关附件和帖子!
病毒分析分区附件样本、网址谨慎下载点击,可能对计算机产生破坏,仅供安全人员在法律允许范围内研究,禁止非法用途!
禁止求非法渗透测试、非法网络攻击、获取隐私等违法内容,即使对方是非法内容,也应向警方求助!
本帖最后由 安静的小酒吧 于 2015-12-29 15:15 编辑

魔术远控分析报告--我在吾爱的第四个样本分析

安静的小酒吧
基本信息名称:魔术远控

类型:木马

运行环境:XP、Vista

开发语言:Microsoft  Visual C++ ver. ~6.0~7.10

分析环境:XP

分析时间:2015-12-23

MD5:

主模块(名称任意):40D9BF6C01917C5871F773DE0D0701E7

dll390.dll: 157083B14C66FB03FC7B4A0CF653E9BB


简介
“魔术远控”如此有名,以至于百度百科都有词条了(http://baike.baidu.com/link?url=f1nRKOCRmRbQPwI8JWLnJ0XaaiySZsVz1Os9RB_0BScAYNksdlc2Esxxgouncyd63twYUq9xT9DHnfmUQs0TgQsInlnte7drK48yPLAD_jxh_FvotDdjc_T9Sow-vHKb),好像是一款专业级的远程协助软件一样,搞得我都不敢把它当木马来分析。
我拿到的应该是2009年的一个版本的,控制端服务端都有,甚至还有一个魔术远控白皮书。所以这是一个老马了,分析的目的就是拿来练练手,这是一个商业木马,是专门用来卖钱的木马,白皮书里有各种标价,我拿到的可能不是最牛逼的版本,至少白皮书里的有些功能没有看到。
样本声称很牛逼,但是连最基本的免杀处理都没有,IDA直接使用F5插件代码十分清晰,都不用动态调试就知道样本的基本流程。


执行流程
0x00 释放并加载DLL
样本在一开始直接释放了一个保存在资源部分的dll文件到temp目录,然后加载。
image1.png
释放dll文件
image2.png
加载dll文件
0x01 主模块sleep一段时间后删除自身,并退出
image3.png
通过释放执行一个bat文件来删除自身
接下来的工作都是在释放的dll入口函数里面执行
0x02 通过当前的路径是否在系统目录中,来判断自身是否已经驻扎到系统中
image4.png
0x03 枚举进程,查找卡巴斯基的avp.exe进程
avp.exe属于Kaspersky卡巴斯基杀毒软件相关程序。有两个avp.exe属正常现象,一个用户名是电脑名字,一个用户名是系统,一个是实时监控的进程(也就是监控其他的),另一个是卡巴自我保护的进程。
image5.png
0x04 释放文件到系统驱动目录,并创建相关服务
释放的文件名为MgicRc.sys,是一个驱动文件,我对驱动不是很熟悉。简单根据分析应该是用来做特定文件驱动级隐藏的。
image6.png
image7.png

0x05 将自身拷贝到系统目录下,命名为chike.dll
image8.png
0x06 创建自启动服务,并启动
%SystemRoot%\system32\svchost.exe-k netsvcs
通过修改注册表,用自身来替换netsvcs
image9.png

[Asm] 纯文本查看 复制代码
710022B7  |.  5>push eax                                          ; /pDisposition = 0012F31C
710022B8  |.  8>lea eax,[local.1]                                 ; |
710022BB  |.  5>push eax                                          ; |pHandle = 0012F31C
710022BC  |.  5>push ebx                                          ; |pSecurity = NULL
710022BD  |.  6>push 0x2                                          ; |Access = KEY_SET_VALUE
710022BF  |.  5>push ebx                                          ; |Options = REG_OPTION_NON_VOLATILE
710022C0  |.  5>push ebx                                          ; |Class = NULL
710022C1  |.  5>push ebx                                          ; |Reserved = 0x0
710022C2  |.  8>lea eax,[local.205]                               ; |
710022C8  |.  5>push eax                                          ; |Subkey = "SYSTEM\CurrentControlSet\Services\6to4\Parameters"
710022C9  |.  6>push 0x80000002                                   ; |hKey = HKEY_LOCAL_MACHINE
710022CE  |.  8>mov [local.1],ebx                                 ; |
710022D1  |.  F>call dword ptr ds:[<&ADVAPI32.RegCreateKeyExA>]   ; \RegCreateKeyExA

0x07 服务启动时dll已经处于系统目录中,此时样本的自启动、隐藏等工作已经完成,接下来就是主要的连接工作。
创建线程,主要用于回连控制端。
image10.png
r_开头的函数名是我识别后按照自己的命名习惯,重新命名的)
0x08 接下来的工作就是一个常见的远控木马的工作了,以下简单列举(其中回连的方式、地址、端口都是服务端配置时设置的参数)。
(1) 通过http下载文件
image11.png
(2) socket连接
image12.png
(3) 收集并回传系统的基本信息,包括设备信息、操作系统版本等
image13.png
(4) 消息及其对应的功能实现都是采用启动新线程或者下载可执行文件实现,如下:
  
[C] 纯文本查看 复制代码
switch ( *(_BYTE *)(v3 + 1) )[/size][/align][size=4]  {
    case 2:
      r_createthread(a1, v6, 0);
      break;
    case 5:
      r_createthread(a1, v6, 1);
      break;
    case 8:
      r_createthread(a1, v6, 2);
      break;
    case 0xB:
      r_createthread(a1, v6, 3);
      break;
    case 0x10:
      r_createthread(a1, v6, 4);
      break;
    case 0x13:
      r_createthread(a1, v6, 5);
      break;
    case 3:
      r_download_dll_run_fun(a1, v6, v7, 0);
      break;
    case 6:
      r_download_dll_run_fun(a1, v6, v7, 1);
      break;
    case 9:
      r_download_dll_run_fun(a1, v6, v7, 2);
      break;
    case 0xC:
      r_download_dll_run_fun(a1, v6, v7, 3);
      break;
    case 0x11:
      r_download_dll_run_fun(a1, v6, v7, 4);
      break;
    case 0x14:
      r_download_dll_run_fun(a1, v6, v7, 5);
      break;
    case 0xD:
      v8 = LoadLibraryA("Shell32.dll");
      v9 = (void (__stdcall *)(_DWORD, const char *, int, _DWORD, _DWORD, _DWORD))GetProcAddress(v8, "ShellExecuteA");
      if ( v9 )
        v9(0, "open", v6, 0, 0, 0);
      break;
    case 0xE:
      v10 = CreateThread(0, 0, r_download_run_pe, v6, 0, 0);
      CloseHandle(v10);
      break;
    default:
      return 0;
  }
其他
这是一个老马,也是一个传统中规中矩的木马,不是很有新意,但是功能齐全,自身比较小巧的木马。
分析不合理的地方还请大牛指出,共同学习进步。
样本、idb文件、分析报告都在这(解压密码52pojie): 魔术远控.zip (232.99 KB, 下载次数: 190)




对了,今天是圣诞节哦!!!

   /\~~~~~~~~~~~~~\   ▓  ^*^   ☆  $$  .☆
  ./ \~~~▓~  ~~~~\ ◆  圣诞 .快乐  *  $◢◣$  *
  / ^^ \ ══════\.◆    * *  *  $◢★◣$  *
 ..▎[] ▎田 田 ▎ |┃◆  .     *  $◢■■◣$  *
 &&▎  ▎    ▎'|'▎ @       * $◢■■■◣$ *
# ■■■■■■■■■■〓▄▃▂▁愿你圣诞快乐︸︸||︸︸


免费评分

参与人数 7热心值 +7 收起 理由
ssynihao + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
华夏小荧虫 + 1 谢谢@Thanks!
睡觉吃饭打豆豆 + 1 谢谢分享
苦涩_ + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
chenghan121213 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
zpfttkl + 1 谢谢@Thanks!
1094483658 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 安静的小酒吧 发表于 2015-12-27 22:12
dongwenqi 发表于 2015-12-26 11:57
卡巴斯基可以杀了

这是比较老的木马了,本身也没有太多免杀处理,杀软基本都会杀吧
 楼主| 安静的小酒吧 发表于 2015-12-26 06:25
xiaorui 发表于 2015-12-26 00:07
楼主,这个控制端有后门吗?

控制端没有分析,不太清楚,有时间分析下。
Dorian_Zo 发表于 2015-12-25 21:49
FantasyOwl 发表于 2015-12-25 21:50
分析的很详细,学习了——圣诞快乐
lzk88 发表于 2015-12-25 21:50
小白 不明觉厉
一生情独醉 发表于 2015-12-25 21:53
感谢分享
waszwlc 发表于 2015-12-25 21:56
技术贴,很好,受教了,谢谢楼主!
1094483658 发表于 2015-12-25 22:30
感谢分享,学习了
普通用户 发表于 2015-12-25 23:26
分析的不错  就是看不懂啊
Minker 发表于 2015-12-25 23:39
感谢分享技术贴,圣诞快乐
xiaorui 发表于 2015-12-26 00:07
楼主,这个控制端有后门吗?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-24 19:07

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表