yangruiqi 发表于 2020-4-23 03:34

记一次turla样本模块分析练习

本帖最后由 yangruiqi 于 2020-4-23 03:41 编辑

首先去微步下载样本
1 样本概况
1.1样本信息
文件名:a352f93e5f63bbf5cd0905c38f054d27
大小:   176.00KB (180224 bytes)
MD5:a352f93e5f63bbf5cd0905c38f054d27
SHA1: 6d80b8c2b7272edaa9837e611102cd160eb8be94
SHA256:c905f2dec79ccab115ad32578384008696ebab02276f49f12465dcd026c1a615
CRC32:033D7E22
1.2测试环境及工具
运行平台:Windows 7X64
系统监控工具:火绒剑
分析工具:IDA,OD
1.3壳信息
32位无壳
2 功能分析
2.1样本综述
此样本是一个加载器加控制器,使用一些对抗技术感染机器,设置注册表实现自启动,然后反虚拟机,感染其他目录,感染U盘实现摆渡攻击。并且启动tapi32d.exe,typecli.exe,msnet.exe,msnet32.exe使用到的一些对抗技术有反检测有如睡眠5000s,使用注册表项ShellServiceObjectDelayLoad自启动样本。进行U盘摆渡攻击
.2.2局部剖析
首先跟踪样本主函数dllmain

进入第一个函数fn_decrypt_allString,观察发现是解密运用到的字符串

然后dllmain下一个函数fnGetPathsReturnIsGetMouduleFileName,就是获取一些文件的路径,然后返回值是加载此dll的文件完整路径,

下面是这个函数详细操作:获取系统目录,拼接__1.dat,然后尝试创建,然后创建成功的话关闭句柄,删除文件,感觉就是在判断是否是管理员权限。

然后就是获取加载dll的文件完整路径,然后strrchr获取“/”后文件名

然后获取windows目录,然后拼接上system32

然后获取TempPath目录C:\Users\win7_64\AppData\Local\Temp\

紧接着遇到函数fnCheckExistOfWinCom,检查win.com是否存在如下

进去看首先拼接了字符串C:\Windows\system32\win.com,然后去打开这个目录文件。

打开失败,文件不存在。回到上层函数继续。拼接字符串C:\Windows\\system32\mswmpdat.tlb",然后打开事件f0fe,依旧不存在。

拼接字符串"C:\Windows\\system32\wmcache.nld",然后返回dllmain。获取加载dll路径,再获取dll路径。Strrchr获取dll文件名

然后创建共享内存分配内存创建文件映射,映射文件。名字为C745%

然后开启一个线程,dllmain结束,

下面就是观察开启线程的线程回调函数。

然后继续进入内层函数,可见

然后逐步分析此函数。首先睡眠5000s,用来对抗

然后获取样本全路径C:\Users\win7_64\Desktop\c905f2dec79ccab115ad32578384008696ebab02276f49f12465dcd026c1a615.dll进入函数,然后进函数跟踪查看首先获取加载dll的程序文件全路径即这里loaddll.exe,然后获取当前模块句柄


然后注册一个窗口类

然后我们观察一下此窗口类的回调函数

发现这三个消息的回调函数,其中自己定义了WM_QUERYENDSESSION(当结束对话或者一个程序调用系统关闭功能的时候,此消息会被发送给尚未终止的所有窗口),WM_DEVICECHANGE(当设备被插入/拔出的时候,WINDOWS会向每个窗体发送WM_DEVICECHANGE消息)。看下第一个结束对话WM_QUERYENDSESSION的回调函数,这里ShellServiceObjectDelayLoad是一个未公布的注册表项,可以将组件关联到这个键,这样一来,系统启动时间EXPLORER将自动加载目标组件,样本可以将自己将自己注射到EXPLORER的办法。postbootreminder是用来启动shell32.dll,是系统进程, 运行msconfig, 启动项里的启动项目可以全部关闭,不会影响电脑正常启动,可以把需要启动的项再添加进去 !而shell32.dll是Windows壳Shell相关应用程序接口动态链接库文件,用于打开网页和文件。cdburn是系统刻录软件启动程序webcheck是对网站进行监视的COM接口systray是电源管理程序,windows控制节能和恢复启动的,是系统进程

进入函数可知就是功能上实现开机自启,通过此注册表键值,上面提到的注册表键值

然后查键值postbootreminder

查到就退出查不到就创建,这就是WM_QUERYENDSESSION的回调,主要就是做的关闭时候加入键值,让下次开机自启动样本,

然后再看一下WM_DEVICECHANGE的回调。 在Windows当中,当设备被插入/拔出的时候,WINDOWS会向每个窗体发送WM_DEVICECHANGE 消息,当消息的wParam值等于 DBT_DEVICEARRIVAL 时,表示Media设备被插入并且已经可用;如果wParam值等于DBT_DEVICEREMOVECOMPLETE,表示Media设备已经被移出。跟踪此回调,发现就是监测当有新的移动设备插入。复制病毒,设置自启动·

还有复制自己去系统目录等,总体来说就是进行U盘摆渡攻击。

然后回到线程回调函数仅需看下一个函数

进入此函数,再往里进入

然后创建Software\Microsoft\Windows\CurrentVersion\StrtdCfg

查询此键值

依旧是打开事件f0fe,找不到。

打开事件wowmgr_is_loaded, 一般这种都是出信号通知其线程“ wowmgr_is_loaded”事件,将新参数注册表值保存在键“ StrtdCfg”下,加载InternetExplorer进程,

之后继续openevent打开“f0fe”失败,加载IPHLPAPI.DLL,是一个用来获取、设置网络相关参数的动态链接库文件,比如设置IP地址,获取网卡是否被禁用,还有一些和ARP、路由表相关的参数,比如nmap的windows port版本就利用了这个ip helper api。然后获取GetAdaptersInfo/GetPerAdapterInfo函数,分别为获取网卡信息和检索有关与指定接口相对应的适配器的信息。之后就是调用这两个函数获取网卡信息

然后

就返回了线程回调函数

然后拼接函数,拼接C:\Windows\\dmcompos.dat
.
调用

发现上面函数是打开C:\Windows\\dmcompos.dat.的函数

发现线程回调又开启第二个线程。

紧接着执行下面函数,还是再看f0fe那两个事件是否存在。

线程回调接着往下

进去分析,先创建.vd1
.
接着创建C:\Windows\1.txt接着线程回调下看

设置临时文件

发现紧接着的函数都是在创建日志

所以可知上面函数就是在记录日志

线程回调继续拼接C:\Windows\system32\tapi32d.exe,并开启进程运行此程序

同理下面代码运行C:\Windows\system32\typecli.exe.同理下面代码同理运行C:\Windows\system32\msnet.exe。同理下面代码同理运行C:\Windows\system32\msnet32.exe

紧接着线程回调最后就是接受和分发消息。

然后看之前此线程回调创造的子线程的回调

首先调用time函数,紧接着里面生成随机数,记录日志

然后进去分析,样本加载Wininet.dll,然后获取InternetGetConnectedState,返回本地系统的网络连接状态



然后继续往下拼接C:\Windows\\system32\mssysmgr.ocx.等等,此外就没什么操作了。
3 分析总结
3.1总结此样本是一个加载器加控制器,使用一些对抗技术感染机器,设置注册表实现自启动,然后反虚拟机,感染其他目录,感染U盘实现摆渡攻击。并且启动tapi32d.exe,typecli.exe,msnet.exe,msnet32.exe使用到的一些对抗技术有反检测有如睡眠5000s,使用未公布注册表项ShellServiceObjectDelayLoad自启动样本。进行U盘摆渡攻击.
4 IoCs
4.1 文件hash
MD5:a352f93e5f63bbf5cd0905c38f054d27
SHA1: 6d80b8c2b7272edaa9837e611102cd160eb8be94
SHA256:c905f2dec79ccab115ad32578384008696ebab02276f49f12465dcd026c1a615
4.2 文件名
wmcache.nld
75eb0fa6a7078349_xx3
mswmpdat.tlb
d195b1b033e80c75_xx2
6D73776D706461742E746C62FA.tmp
45fda0a7216baf95_xx4
2392619f397925a1_xx6
6D737379736D67722E6F6378FF.tmp
mssysmgr.ocx
4.3 ip
203.208.43.228
203.208.39.32

叫我流浪 发表于 2020-4-23 03:45

大佬这么晚还用功,厉害{:301_1009:}

胖子哦 发表于 2020-4-23 09:01

大佬膜拜

Kinyi_Chan 发表于 2020-4-23 13:06

特洛伊将军 发表于 2020-4-23 15:51

厉害大佬膜拜

Shepherdmyq 发表于 2020-4-23 23:47

谢谢分享
页: [1]
查看完整版本: 记一次turla样本模块分析练习