1. 基本信息

样本文件:st22a.exe

MD5:c293c2842789a7a391c9ca82271b861e

SHA-1:f2d4afa85dd0d9ab853de79663668e03bc0cfffe

VT首次上传时间:2017-12-30 01:56:32

2. 详细分析

2.1. 程序的流程:

病毒数据与未来的关系(病毒分析实战远控病毒分析)(1)

(1)st22a.exe解密字符串:"http://211.160.166.209:9998/NetSyst96.dll"

(2)下载这个文件(加密的数据),放在C盘的某个路径下,载入文件进内存,解密运行dllmain->脱壳;

(3)调用dllFuUpgradrs 这个导出函数,对文件进行校验,确定文件没有被修改或损坏;

(4)创建Event:Aluzem iaxnkghr (判断有没有该程序运行),有的话则会执行自我删除等清理操作;

(5)判断程序Module是不是 C:\Program Files\Microsoft Pyanqd\Ajlybob.exe(判断是不是要被注册为服务的进程),如果不是则创建这个文件并执行,添加进注册表;

(6)如果这个文件,则会检查注册表添加注表册HKEY_LOCAL_MACHINE\System\CurrentControlSet\services\Wskhlo agzvturb\ConnectGroup =new?,如果=new,这说明第一次运行Ajlybob.exe,则会将其注册为服务;

(7)如果不是new,则说明已经是服务,注册启动服务主程序;

(8)则启动socket,接收远控命令;

(9)执行远控命令;

接下来进行详细分析。

2.2. st22a.exe分析

先使用PEID查看程序,掌握程序基本的静态信息,PEID显示st22a.exe没有加壳:

病毒数据与未来的关系(病毒分析实战远控病毒分析)(2)

使用IDA加载st22a.exe,了解程序流程。IDA自动定位到WinMain:

病毒数据与未来的关系(病毒分析实战远控病毒分析)(3)

只有两个call,很开心,分析这两个call就可以了。

祭出神器OD,IDA OD分析效率提升5000000000%。

(1)sub_402070

上图中可以看出sub_402070的参数是offset_szUrl,是一段没有意义的字符串。sub_402070的作用就是解密这段字符串:

病毒数据与未来的关系(病毒分析实战远控病毒分析)(4)

解密分为三个过程:

①sub_401980中首先对数据进行BASE64解密,(Base64的介绍和这部分的分析过程请看笔者的《算法逆向5》,在那篇文章中,笔者就是使用该程序分析的)

Base64解码出的数据:

\xe2 \x33 \x67 \x22 \x2c \xfb \x01 \x8b

\x14 \xa8 \x5d \x1f \x0d \x97 \x18 \x6c

\xd3 \x37 \x2a \x90 \xfe \x89 \x6d \x8f

\xb7 \xa6 \xe9 \x11 \xfe \xad \x11 \x3a

\x0e \x24 \xc6 \x0d \x16 \x80 \x79 \x56

\xde \x8a

②接着程序继续处理这部分数据,首先每个字节加上0x7A并异或0x59;

③最后以“Geting538”为密钥计算出置换表,从置换表中取值进行异或,解密出最终的数据:

http://211.160.166.209:9998/NetSyst96.dll

在浏览器中访问http://211.160.166.209:9998/,发现是一个HFS文件服务器,目前可能已经有794台主机感染该病毒,除了NetSyst96.dll,攻击者似乎还有其他攻击手段(笔者还没来得及分析,这个链接就挂了):

病毒数据与未来的关系(病毒分析实战远控病毒分析)(5)

(2) sub_401F50

①sub_401F50首先判断C:\Program Files\AppPatch\文件夹下是否存在NetSyst96.dll文件,如果不存在从上述链接中下载,并写入C:\Program Files\AppPatch\NetSyst96.dll

病毒数据与未来的关系(病毒分析实战远控病毒分析)(6)

使用二进制查看工具查看NetSyst96.dll,发现它被加密:

病毒数据与未来的关系(病毒分析实战远控病毒分析)(7)

②解密的过程和之前使用“Geting538”解密过程相同,不过此时使用的是“Kother599”进行解密。

病毒数据与未来的关系(病毒分析实战远控病毒分析)(8)

③之后根据“MZ”和“PE”标志判断是否成功解密,如果成功解密,则将其以内存对齐方式存放进内存:

病毒数据与未来的关系(病毒分析实战远控病毒分析)(9)

病毒数据与未来的关系(病毒分析实战远控病毒分析)(10)

④随后定位NetSyst96.dll的OEP,并运行DllEntryPoint。

使用PEid分析NetSyst96.dll,发现它加了UPX的壳,DllEntryPoint就是脱壳的过程。

病毒数据与未来的关系(病毒分析实战远控病毒分析)(11)

⑤脱壳之后,程序调用NetSyst96.dll的导出函数DllFuUpgradrs

病毒数据与未来的关系(病毒分析实战远控病毒分析)(12)

接下来主要是分析DllFuUpgradrs。

2.3. DllFuUpgradrs 分析

①函数一开始就会将程序版本号写进数据,接下来会判断程序版本:

病毒数据与未来的关系(病毒分析实战远控病毒分析)(13)

②接着程序使用变形的MD5计算NetSyst96.dll的校验值,并进行校验,确保程序没有被修改。

③DllFuUpgradrs的参数中有一串字符串“/cUllm946...”,程序对其进行解密,解密出程序之后会使用的字符串信息,如果解密失败,则函数退出:

病毒数据与未来的关系(病毒分析实战远控病毒分析)(14)

④随后创建名为“Aluzem iaxnkghr”的Event,如果创建失败,则说明系统中还有一个本程序实例在运行,程序将删除自身并结束运行:

病毒数据与未来的关系(病毒分析实战远控病毒分析)(15)

病毒数据与未来的关系(病毒分析实战远控病毒分析)(16)

程序调用VBS脚本删除自身

dim wsh.. On Error Resume Next set wsh=createObject("WScript.Shell").. Set objFSO = CreateObject("Scripting.FileSystemObject").. wscript.sleep 1000.. objFSO.DeleteFile("C:\Users\14215\Desktop\st22a.exe"), True.. createobject("scripting.filesystemobject").deletefile wscript.scriptfullname

如果创建Event成功,则说明本次运行的程序是系统中的唯一本程序实例。

⑤程序将继续判断,本次运行的程序路径是不是“ C:\Program Files\Microsoft Pyanqd\Ajlybob.exe”

病毒数据与未来的关系(病毒分析实战远控病毒分析)(17)

如果不是,则将创建自身拷贝“ C:\Program Files\Microsoft Pyanqd\Ajlybob.exe”,并执行

病毒数据与未来的关系(病毒分析实战远控病毒分析)(18)

程序将自身程序路径加入注册表HKEY_LOCAL_MACHINE\System\CurrentControlSet\services\Wskhlo agzvturb\DeleteFiles,随后删除自身,结束运行。

病毒数据与未来的关系(病毒分析实战远控病毒分析)(19)

⑥如果程序就是Ajlybob.exe,则会检查HKEY_LOCAL_MACHINE\System\CurrentControlSet\services\Wskhlo agzvturb\ConnectGroup 的值,如果是第一次运行Ajlybob.exe,则注册表中没有该键,如果不是第一次运行,则会检测到该键值是new:

病毒数据与未来的关系(病毒分析实战远控病毒分析)(20)

如果是第一次运行Ajlybob.exe,则会将自己注册为服务:

病毒数据与未来的关系(病毒分析实战远控病毒分析)(21)

服务信息:

病毒数据与未来的关系(病毒分析实战远控病毒分析)(22)

⑦如果不是第一次运行,则会注册服务主程序:

病毒数据与未来的关系(病毒分析实战远控病毒分析)(23)

⑧随后准备启动Socket通信,通信之前先通过www.ip138.com和dns.aizhan.com获取C&C服务器的IP。

如图,服务器的域名是yizaiwl.cc

病毒数据与未来的关系(病毒分析实战远控病毒分析)(24)

病毒数据与未来的关系(病毒分析实战远控病毒分析)(25)

获取上线IP后,程序会去连接这个IP与远控的控制端进行通信:

病毒数据与未来的关系(病毒分析实战远控病毒分析)(26)

⑨程序接收远控的数据并执行指定功能(每个函数的具体功能,笔者还没分析完成):

病毒数据与未来的关系(病毒分析实战远控病毒分析)(27)

3. 总结

这个远控的姿势很骚,恶意行为都在NetSyst96.dll中,NetSyst96.dll却是加密存储在本地,躲避杀软扫描。百度NetSyst96.dll,可以发现该远控应该是大灰狼远控,远控的功能也很齐全,虽然笔者没分析完,但可以看到有30条case语句,也就是说这个远控至少有30条远控命令,是一款成熟的远控。

最后,如果你也对网络安全感兴趣,或者致力于成为一名白帽子,或者仅仅想吃瓜看调戏黑阔和骗子的日常,请关注我,不会让你们失望~

,