某远控木马样本分析-1

1、样本信息

使用virustotal和virscanhttp网站对恶意样本进行分析,应该是Siscos家族的远控木马

所属家族:Siscos

MD5值:67DFC7730A6D14715DE7B28DB5F23C0B

SHA1值:D958DAEEF153D07F1B5013EC2E2D8833360874C3

SHA256值:47adf8083f73c20364fb88abce106f4e2126dbb08be18d0a066a9a8fc10ec436

CRC32:1CF02C4A

1.2 测试环境及工具

    测试环境:Windows7 专业版

    测试工具:Hash、PEID、OD、IDA、火绒剑、PCHunter、010Editor

1.3 分析目标

    分析样本的主要恶意行为

2.具体分析

2.1 主要行为分析

使用PCHunter查看,对比运行前后异常的地方:

  1. 可疑进程

没有使用cmd命令,conhost.exe却启动,应该是恶意样本执行了cmd的命令

2.查看启动项(注册表、计划任务等)

没有发现可疑信息

3.查看驱动、服务等可疑项

    可疑服务:conhost

4. 查看其他杂项,网络连接

没有发现可疑信息

5. 使用抓包工具(WSExplorer)查看可疑流量

    没有发现可疑信息

使用火绒剑,对样本进行监控:

  1. 文件操作,主要看文件创建、修改、删除等操作

创建、并写入了dll文件,并删除了恶意样本文件

   

2.注册表操作,主要看注册表设置、创建等操作

创建了注册表键,并且设置了一些键值

   

3. 进程操作,主要看创建进程、写入内存等操作

   

4.网络操作,主要看网络连接地址、IP等信息

        无

5.行为操作

    释放pe文件、注册服务动态库、自我删除

   

    查看执行监控,记录了进程启动、模块加载、进程提出

   

2.2 恶意代码详细分析

   将样本拖入IDA中进行分析,找到WinMain函数,再使用OD找到对应的位置

       进入进行分析,前几个函数是mfc的库函数,第5个call 40102D,然后jmp 4015A9,跳到入口点

      

       在IDA中找到相应位置,对其进行具体分析:

       1、先初始化了winsocket,又初始化应用程序的OLE支持,初始化了COM库

       2、获取命令行参数中是否有Gupdate字符串,如果找到,返回该字符串地址。获取其后面的字符串(后面分析可知是conhost),注册键值,设置SYSTEM\CurrentControlSet\Services\conhost的显示名为:System Remote Data Simulation Layer 描述为:管理基于组件对象模型的核心服务。如果服务被禁用,计算机将无法正常运行。创建SYSTEM\CurrentControlSet\Services\conhost\Parameters,并设置servicedll的值。

       然后将逆序存放的恶意代码再逆序回来,再在恢复后的代码中找到:.HL.,然后用0x411A20开始的0x214个字节替换找到的.HL.处,最后,创建文件,将得到的恶意代码写入到刚才的dll属性值下

       逆序恢复过程:

       逆序存放的恶意代码

       恢复正常的恶意代码

       在逆序后的代码中找到:.HL.,并进行替换

       将得到的恶意代码,写入到传入的路径下

       3、如果命令行中没有参数Gupdate,则执行下面的操作。加载shell32.dll、kernel32.dll模块,创建互斥体cloudbase-init.pw:8000:conhost,防止多开。

       然后获取系统版本信息,获取ProgramFiles\Google目录,如果获取失败就获取临时目录Temp

       获取系统启动的毫秒数,然后以此为恶意dll名,拼成路径:C:\ProgramFile\Google\系统启动毫秒数.dll,将逆序后以及替换0x214个字节的恶意代码,写入到该路径的dll中

       遍历进程,查找360trayexe是否存在,如果存在返回1

加载刚才创建的恶意dll,如果360tray.exe正在运行,则不执行恶意dll的install函数;如果360tray.exe没有运行,则执行install函数。

360tray.exe存在,获取恶意文件路径,获取系统目录,获取系统运行毫秒数,然后将恶意文件复制到系统目录下,名称为:系统目录\系统启动毫秒数.bak。系统如果重启,则删除系统目录下的恶意文件。使用命令:rundll32.exe 恶意dll,MainThread,执行DLL中的MainThread函数。

       最后删除自身,获取当前可执行文件的完整路径,获取当前进程并设置为最高优先级,获取当前线程并设置优先级为15,执行cmd命令,隐藏执行删除自身的命令。

       大致流程图:

       下面对生成的恶意dll进行分析,观察其导出表,发现有六个导出函数,需要逐个对其进行分析

  1. DllEntryPoint

Dll被加载时,会自动执行,该函数进行初始化操作,动态加载了一些模块,并且获取了一函数的地址,以便后面使用

        

  1. Install

经过分析,该函数主要时创建了conhost服务,设置相关的注册表键及其键值

创建并启动服务:

其中,参数不同,执行的操作不同:

       使用OD动态分DLL,得到相关的函数名,启动服务,并且只要服务在运行,就一直循环:

             

      

      设置SYSTEM\CurrentControlSet\Services\conhost\Remark,

获取系统时间,并设置Install时间为:Year-Month-Day Hour Minute

      

3、Unistall

       获取当前文件路径,获取了系统目录,获取了系统启动时间。将自身复制到系统目录下,名称为:系统启动时间.bak,。MoveFileExA传入参数是4,重启时会删除自身文件

       停止了conhost服务,然后删除了该服务,并删除了相关的键值

4、DllUpdate函数

Dll更新的函数,先是停止了服务,然后将自身复制到系统下,系统重启时删除自己。创建新的进程并运行,获取当前模块路径,然后重新启动conhost服务

       5、ServiceMain

      

      

      

6、MainThread

主要线程,待更新

      

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值