个人学习日记

NANOCORE的分析

Word count: 921Reading time: 3 min
2020/10/21 Share

0x00 概述

NanoCore是一款知名的商业马,网上也有破解版。这个RAT在2013年第一次在野外出现,从那个时候起,它就变得非常流行。作为一个模块化的恶意软件,NanoCore后门的功能可以通过插件大大扩展。这使得它更具有破坏的潜力。

0x01 描述

可以看到该软件拥有许多功能,并有丰富的插件可供使用。但由于作者已经入狱了,所以1.2.2.0应该是最后一个版本了。接下来该以这个版本进行分析。

image-20201020150537323

image-20201020151110657

0x02 开始分析

样本名 evaline.us.exe
MD5 1dc5260a0506aa9a55f47a36477f443e
创建时间 2015-02-22 00:49:37
第一次在VT上传时间 2020-10-20 00:07:01

通过VT上的报毒以及程序的特征,我们可以确定,该木马是NanoCore商业马的客户端。

image-20201020154358511

image-20201020154501705

原始的NanoCore木马是具有混淆的,我们使用de4dot来对其进行去混淆就好了。

image-20201020154611033

去混淆后,我们找到入口点:

image-20201020154705940

在逐层分析后(Class1.smethod_3().method_0–>ClientLoaderForm()–>this.ClientLoaderForm_Shown–>Class8.smethod_0()),我们可以得知,Class8.smethod_0()是一个关键函数。

image-20201020155332423

  • 在Class8.smethod_13()中,木马初始化一些配置信息。可以看到,该木马连接的是evalineusxero7[.]ddns[.]net:5353。初始化失败的话,会调用Class8.method_17()。

    image-20201020155625122

  • 在Class8.smethod_20()中

    检查了是否启用了EnableDebugMode。

    无标题

  • 在Class8.smethod_21()中,会创建互斥体,如果创建失败的话,则退出。

    image-20201020162221642

  • 在Class8.smethod_22()中

    根据Run Delay字段而休眠。

    image-20201020163501058

    image-20201020163648211

  • 在Class8.smethod_2()中

    通过注册表来获取到计算机的guid。

    image-20201020165247637

    通过修改注册表来关闭UAC。

    image-20201020165312084

    以guid为路径创建文件夹。

    image-20201020165601653

    image-20201020164833513

    将第一次运行时间写入到run.dat文件里

    image-20201020165753910

  • 在Class8.smethod_11()中

    拼接出后面使用到的字符串。

    image-20201020170238969

  • 在Class8.smethod_12()中

    查看是否存在这个文件夹。如果存在的话,则遍历文件夹下的.dat文件,并将它们的路径放到一个队列中。

    image-20201020170416336

  • 在Class8.smethod_3()中

    会将一些配置信息写到文件中。由于这里没开启,就没法展示了。

    test

  • 在Class8.smethod_25()中

    通过RunOnStartup字段来决定是否开机启动(修改注册表启动项)。

  • 在Class8.smethod_28()中

    根据BypassUserAccountControl字段来决定是否bypass UAC。

    3

  • 在Class8.smethod_23()中

    除去”publisher could not be verified“的警告

    3

  • 在Class8.smethod_24()中

    去除UAC警告窗口

    image-20201020174642609

  • 在Class8.smethod_26()中

    就执行以下功能。

    image-20201020174930280

  • 在Class8.smethod_27()中

    就执行了以下功能。

    image-20201020180030755

    image-20201020180045846

  • 在Class8.smethod_29()中

    image-20201020180249770

  • 在Class8.smethod_30()中

    执行以下功能,阻止计算机睡眠。

    image-20201020180530767

    3

  • 在Class8.smethod_4()中

    读取目录下的catalog.dat文件

    image-20201020180835607

  • 在Class8.smethod_6()中

    读取目录下的storage.dat文件

    image-20201020181003954

  • 如果Class8.byte_1不是空的话,则进入Class8.smethod_9()和Class8.smethod_8()函数。而Class8.byte_1存放的是一个PE文件。

    image-20201021105716510

    Class8.smethod_9()函数主要是读取了setting.bin文件的内容,里面存放了客户端的信息

    3

    Class8.smethod_8()函数主要是初始化并加载功能插件。(RAT要实现的功能都在这些插件里了)

    3

  • 接下来调用Class8.smethod_63()

    按照字符串的提示,就是做了重建host cache,这里看来,就是配置了一下host信息。

    image-20201021113239559

  • 在Class8.smethod_1()中,配置了一下客户端网络信息,包括DNS之类的。

    image-20201021113446460

    image-20201021113543123

  • 在Class8.smethod_44()中,开始连接黑客的服务器。

  • 分析就到这结束了,由于已经有破解版的流出,可以直接查看到该木马有什么功能。

0x03 总结

Nanocore是一个广为流行的远控商业木马,但在黑客论坛已经有破解版了,而且作者已经入狱,所以已经没有更新了,并且被研究透彻了。

CATALOG
  1. 1. 0x00 概述
  2. 2. 0x01 描述
  3. 3. 0x02 开始分析
  4. 4. 0x03 总结