如何进行Kris远控木马的简单分析

这篇文章给大家介绍如何进行Kris远控木马的简单分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

目前创新互联已为1000多家的企业提供了网站建设、域名、雅安服务器托管、网站托管、服务器租用、企业网站设计、昌乐网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

前言

分析一个远程控制木马,它的众多恶意行为之一是操作注册表,实现开机自启动,在注册表中程序为自己命名为Kris。

一、基本情况

样本类型:PE32 executable (GUI) Intel 80386, for MS Windows, UPX compressed

1.1 程序基本流程

在国内某款知名沙箱系统中对恶意程序做自动分析,归纳出的执行流程如下:

如何进行Kris远控木马的简单分析

图1:程序的执行流程

自动分析的结果,归纳出此恶意程序有如下行为:

1.连接域名jesso.3322.org(59.42.71.178,广东省广州市白云区)

2.释放名为BJ.exe的可执行程序

3.创建进程,此进程会创建互斥体,并且连接动态域名

1.2 加壳信息

通过PEiD检查出该病毒被加壳,可以使用upx脱壳。本文后面分析的是利用upx对原程序脱壳后的PE文件。

如何进行Kris远控木马的简单分析

图2:通过PEiD检测恶意程序的加壳情况

1.3 注册表操作

恶意程序会创建HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\Kris,键值为C:\Users\vbccsb\AppData\Local\Temp\sample.exe,此文件为原程序将自身拷贝到这个目录下,用于来实现开机自启动。

恶意程序还会检查注册表中是否有360safe,来判断宿主机器中是否安装了杀毒软件。

二、网络行为

运行恶意程序,并用wireshark抓包,发现恶意程序会发起针对jesso.3322.org的DNS查询:

如何进行Kris远控木马的简单分析

图3:恶意代码的网络行为

但是后续没有实质性的网络通信,经查,此IP地址仍旧存活但是域名已经失效:

如何进行Kris远控木马的简单分析

图4:与C2地址的网络通信

根据国内知名安全厂商的威胁情报显示,域名和IP地址都是恶意的。

如何进行Kris远控木马的简单分析

图5:域名的威胁情报

如何进行Kris远控木马的简单分析

图6:IP地址的威胁情报

三、程序分析

3.1 Main函数分析

程序的Main函数位于0x0040D990,首先会通过sub_47866C函数创建BJ.exe文件,随后调用sub_40D950函数延时60秒执行此文件。

如何进行Kris远控木马的简单分析

图7:创建BJ.exe并延时60s执行

程序会通过注册表查看系统中是否安装了360安全软件,如果没有安装,那么就调用sub_40D630函数,此函数用于实现开机自启动。

如何进行Kris远控木马的简单分析

图8:通过注册表检查目标系统中的360防护软件

通过sub_40D630函数通过注册表项“SOFTWARE\Microsoft\Windows\CurrentVersion\Run”实现开机自启动。

如何进行Kris远控木马的简单分析

图9:通过注册表实现开机自启动

Main函数会连接远程网址jesso.3322.org,通过sub_403300函数发起连接。

如何进行Kris远控木马的简单分析

图10:连接域名jesso.3322.org

3.2 Switch函数分析

恶意代码中的函数sub_40A050通过switch结构,实现了不同的恶意行为分支,即根据得到的指令,执行不同的操作。概述如下:

sub_409C00:创建新用户并添加到管理员组

sub_408070:提升进程权限

sub_4073E0:窃取系统磁盘信息并发送给远程主机

sub_4075A0:窃取桌面信息并发送给远程主机

sub_407760:窃取音频设备信息并发送给远程主机

sub_407920:击键记录器

sub_409320:关闭防火墙

sub_407F80:删除日志文件

3.2.1 创建新用户并添加到管理员组

sub_409C00函数实现创建新用户并添加到管理员组的功能:

如何进行Kris远控木马的简单分析

图11:用于添加用户并添加到管理员组的switch分支

通过调用函数NetUserAdd添加用户账户,随后调用NetLocalGroupAddMember函数,将新建的用户添加到管理员组。

如何进行Kris远控木马的简单分析

图12:sub_409C00函数实现添加用户并添加到管理员组的功能片段

3.2.2 提升权限

sub_408070实现提升进程权限的功能:

如何进行Kris远控木马的简单分析

图13:用于实现提升权限的switch分支

通过OpenProcessToken得到进程的令牌句柄,随后使用LookupPrivilegeValue查询进程权限,最后用AdjustTokenPrivileges函数提升权限。

如何进行Kris远控木马的简单分析

图14:sub_408070函数用于提升进程权限的功能片段

3.2.3 获取驱动器和磁盘卷信息并发送给远端主机

sub_4073E0函数用于获取磁盘以及驱动器的信息并发送给远端系统。它最终通过sub_405AC0来实现获取磁盘信息的功能,通过sub_403300用来实现连接远程主机并发送信息的功能。

如何进行Kris远控木马的简单分析

图15:用于实现获取磁盘信息并发送给远程主机的switch分支

sub_405AC0函数通过调用GetVolumeInformation获取磁盘卷信息,同时通过SHGetFileInfo函数获取文件系统对象的信息。

如何进行Kris远控木马的简单分析

图16:sub_405AC0函数用来获得磁盘信息

sub_403300函数通过一系列套接字函数实现网络通信,将窃取的信息发送给远程主机

如何进行Kris远控木马的简单分析

图17:sub_403300函数用来与远程主机通信

3.2.4 获取桌面信息并发送给远端主机

sub_4075A0通过调用sub_40F780函数实现截屏功能,发送给远端主机的功能仍然是通过sub_403300函数实现的,与3.2.3中相同。

如何进行Kris远控木马的简单分析

图18:用于实现获取桌面信息并发送给远端主机功能的switch分支

sub_40F780函数通过调用GetThreadDesktop得到桌面窗口所在线程,然后调用GetUserObjectInformation获取特殊的窗口站和桌面对象信息。

如何进行Kris远控木马的简单分析

图19:sub_40F780函数实现获取桌面信息的功能

3.2.5 窃取音频设备信息并发送给远端主机

sub_407760函数通过sub_401760函数窃取音频设备信息并通过sub_403300函数来实现连接远程主机并发送的功能,sub_403300在上面已经提到了。

如何进行Kris远控木马的简单分析

图20:用于实现窃取音频设备信息的switch分支

通过调用waveInGetNumDevs获得就绪的波形声音输入设备的数量:

如何进行Kris远控木马的简单分析

图21:sub_401760函数获得系统中波形声音输入设备的数量

3.2.6 击键记录器

sub_407920函数会调用sub_40A580函数实现击键记录功能,并且调用sub_403300函数向远程主机发送信息:

如何进行Kris远控木马的简单分析

图22:用于实现击键记录器的switch分支

sub_40A580函数调用GetKeyState, GetAsyncKeyState, GetKeyState三个函数实现击键记录的功能。

如何进行Kris远控木马的简单分析

图23:sub_40A580函数实现击键记录功能

3.2.7 关闭防火墙

sub_409320函数通过sub_409240函数实现关闭防火墙的操作:

如何进行Kris远控木马的简单分析

图24:用于实现关闭防火墙功能的switch分支

sub_409240函数构造"cmd /c net stop sharedaccess"指令,实现关闭Internet连接共享和防火墙服务的功能:

如何进行Kris远控木马的简单分析

图25:sub_409240函数实现关闭防火墙的功能

3.2.8 删除日志文件

恶意代码通过sub_407F80函数实现删除日志文件的功能:

如何进行Kris远控木马的简单分析

图26:用于实现删除日志文件功能的switch分支

程序首先通过OpenEventLog函数打开日志文件,如果成功打开,就调用ClearEventLog函数清除日志文件中的内容,最后通过CloseEventLog函数关闭日志文件。

如何进行Kris远控木马的简单分析

图27:sub_407F80函数实现删除日志的功能

此样本是一个简单的远控木马,通过访问C2服务器获取指令,然后根据Switch分支操作执行诸如: 创建新用户并添加到管理员组、 提升进程权限、 窃取系统磁盘信息并发送给远程主机、 窃取桌面信息并发送给远程主机、 窃取音频设备信息并发送给远程主机、 击键记录器、 关闭防火墙、 删除日志文件等危险的操作。程序本身还会有拷贝自身、延时执行、查询系统中是否安装安全软件的操作,并以此来确保自身的安全,同时还会通过修改注册表实现开机自启动。

关于如何进行Kris远控木马的简单分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


分享文章:如何进行Kris远控木马的简单分析
当前链接:http://scyanting.com/article/jpopgc.html