Emote木马分析
前言:网上找的样本是EXE的,没有邮件样本,所以只做了exe分析。
一、Emote木马相关信息
文件: C:\Users\Desktop\Samp.exe
大小: 249856 bytes
文件版本:1, 4, 2, 50
修改时间: 2018年11月21日, 21:22:50
MD5: 681C62D925ED8024F9104159ACC4068B
SHA1: D16A494A1CD7157C06C1831D5F23EAE52AD56B0B
CRC32: 1E90E446
大致行为:
第一步:木马获取了Getprocaddress和Loadlibrary的地址后获取自己所需要的API地址。之后申请内存,释放恶意代码,通过修改内存属性,跳转至恶意代码。
第二步:加载动态库,获取动态库导出函数的地址。完成后会创建互斥体和事件,之后创建快照,遍历进程。在查找到自身进程后,会创建自身的子进程,之后退出进程。(退出进程前有一个判断是关于下一步能否继续运行的,如果进入了创建进程就不会进入下一步,反之才能下一步)
第三步:子进程的操作。获取windows目录,并查看C盘属性。完成后注册窗口类,创建窗口,设置定时器,定义消息分发机制。定时器的回调是恶意代码。
进入定时器,也有一个判断,首先会获取一个值,这个值是消息分发中赋值的。这个值要大于0小于3,不在范围内返回到消息分发中。
判断完毕后,值会减1,即0,1,2。
值为0时,首先获取自身文件名。在获取C:windows\system32文件夹里的文件名,查找是否有"tlntusbccid"这个文件。有就退出,没有的话在此目录创建这个文件(会失败)。之后获取主机名并保存。然后删除C:windows\system3\chunklayout.exe。接着获取临时目录路径,并创建33D4.tmp文件。在重新创建tlntusbccid.exe。之后创建服务,使exe自启。
值为1时,加载动态库,获取API地址,还有加密操作。
值为2时,获取系统信息,进程信息,然后和主机名一起加密。完成后获取服务器IP,用加密数据生成cookie。接下来用get方式通过cookie连接服务器,连接成功会读取数据(我没获取到数据。。。)。
二、分析过程
1.样本有ZP壳,esp定律过壳后本想脱壳,实验一番后发现这个壳脱壳后还要补代码,就没脱壳。前面略过,直接恶意代码。
接下来就是第二步的流程。
下图可以看见那个判断 JE 003BD020
创建快照,遍历进程。
创建多个互斥体,事件
然后获取自身路径,创建子进程
退出进程
2.子进程操作。
获取windows目录,以及C盘属性
注册窗口类
创建窗口
设置定时器
窗口消息分发
3.定时器
开始有个判断
值为0
详细过程
获取服务句柄
然后获取system32路径,以及文件名
没有"tlntusbccid"这个文件名就创建文件
获取主机名
保存
删除文件
获取临时文件夹路径
在临时文件夹创建33D4.tmp文件
删除文件
打开服务
创建服务自启
运行服务
注册表
然后删除一个名为"C47A8A60"的服务,但我并没发现有这个服务
值为1时,加载动态库。略过。。。
值为2时,加密信息,连接服务器
获取系统信息
创建快照,遍历进程
保存进程信息
整理信息
加密上述数据
获取服务器IP
获取cookie
之后连接服务器
设置http代理
发送连接请求
成功的话就获取数据
结束了。。。
下面放个抓包图
显示连接成功,为什么没有返回信息