一、攻击活动分析
1.恶意载荷分析
本次攻击行动使用的钓鱼文件信息如下所示:
MD5 |
0aa22fa3333c891a139187442ecf0e81 |
文件名称 |
Quran.pdf.lnk |
文件大小 |
3.78 KB (3874字节) |
文件类型 |
lnk |
该lnk打开时会调用powershell执行恶意指令。
该指令的功能为下载诱饵文件(https[:]//quranchapter.t-cdn.org/wp-content/wp-includes/docaegeegrgseffefaa/22-Quran)和恶意载荷(https[:]//quranchapter.t-cdn.org/wp-includes/javascript/juicesdafekohioshfoshfhiofh/quran),并创建计划任务维持持久化。
部分诱饵内容如下:
2.攻击组件分析
lnk文件下载的恶意载荷信息如下:
MD5 |
4f8bd643c59658e3d5b04d760073cbe9 |
文件名称 |
Winver.exe |
文件大小 |
5.36 MB (5619472字节) |
文件类型 |
exe |
Winver.exe是一个由Golang编译的恶意软件,并且带有数字签名“RUNSWITHSCISSORS LTD”,具体如下图所示。
需要说明的是,我们捕获的Golang载荷除了上述签名外,还有个别样本签名为“COMPUTING AND CODING LIMITED”,其信息如下,该签名疑似被盗取,因此后续要提防此类签名信息的样本。
另外查看Winver.exe文件的节发现存在.symtab段,.symtab是Linux系统写ELF文件格式的一部分,猜测该样本还有对应的ELF版本。
Winver样本执行时先获取C2的硬编码值,接着对RC4的密钥和 User-Agent的值进行初始化。
然后使用wmic命令获取UUID的值,若获取失败,则随机生成。
随后获取用户名、主机名、出口IP及国家代码、系统版本及架构、进程名和进程ID等信息。
将获取的信息采用RC4+Base64的方式进行加密,并将Base64结果中的“+”替换成“-”和“/”替换成“_”。
将获取的基本信息进行拼接后采用post的方式发送到C2地址,此时HTTP请求头中用户代理设置为如下值“User-Agent:AGCYRNRWWWFZZSWWFWDYDCVDN”。
当响应的状态码为“200”时,会读取响应数据进行解析解密,若指令为“suzckdwceefc”,则调用cmd进行命令执行,并将执行结果加密回传。
若指令为“xlsvepfstvuv”,则使用开源库进行屏幕截屏。
二、关联分析
基于后台大数据分析关联,我们还发现了该组织针对同一目标使用Quasar RAT的攻击行为。其样本信息如下所示:
MD5 |
1154b7d8bd2e631f8fcd50a53d6173ba |
文件大小 |
238 KB (244,504 字节) |
文件名 |
msedge.exe |
msedge.exe是一个Rust编译的用于内存加载执行最终载荷的加载器,通过使用更加底层的API函数,以创建线程的方式执行ShellCode,然后通过内存加载的方式,最终执行.Net载荷。此外我们也发现了通过NtQueueApcThread执行shellcode的攻击样本,该样本与msedge.exe只是shellcode执行方式不一致,其他均一致。
最终载荷是一个被严重混淆过的C#程序,经过分析该载荷属于Quasar远控程序(https://github.com/quasar/Quasar),程序名为Client.exe,该远控程序也多次被摩诃草组织使用。
Client.exe首先使用Base64解码,以及AES-128的CBC模式解密基本的配置信息,如下表。
ProjectName |
Office04 |
Version |
1.0.0.0 |
rawHosts |
172.81.60.46:1005 |
DirName |
SubDir |
FileName |
Client.exe |
Mutex |
QSR_MUTEX_UCsz1CfvA68LlA0O2s |
SchTaskName |
Quasar Client Startup |
在解密配置信息之后,会根据用户类型的不同创建持久化,如果是管理员用户,就创建计划任务以及通过注册表HKCU\Software\Microsoft\Windows\CurrentVersion\Run进行持久化,如果不是Admin用户,则只是通过注册表进行持久化。
最后通过socket方式连接C2服务器,并通过事件方式用于接收数据以及执行对应的远控操作,具体远控指令如下。
指令 |
含义 |
DoClientDisconnect |
断开连接 |
DoClientUninstall |
卸载客户端 |
GetProcesses |
枚举进程 |
DoProcessKill |
杀死进程 |
DoProcessStart |
创建进程 |
GetDrives |
获取驱动器信息 |
GetDirectory |
获取目录信息和文件信息 |
DoDownloadFile |
下载文件 |
DoUploadFile |
上传文件 |
DoMouseEvent |
鼠标事件 |
DoKeyboardEvent |
键盘事件 |
GetSystemInfo |
获取系统信息 |
DoShellExecute |
执行Shell |
DoPathRename |
重命名 |
DoPathDelete |
删除文件 |
GetStartupItems |
获取启动项信息 |
DoStartupItemAdd |
添加启动项 |
DoStartupItemRemove |
删除启动项 |
DoDownloadFileCancel |
下载文件管道 |
DoLoadRegistryKey |
注册表检索 |
DoCreateRegistryKey |
创建注册表键 |
DoDeleteRegistryKey |
删除注册表键 |
DoRenameRegistryKey |
重命名注册表键 |
DoCreateRegistryValue |
设置注册表值 |
DoDeleteRegistryValue |
删除注册表值 |
GetScreenshot |
截图 |
DoDownloadDirectory |
下载目录 |
三、归属研判
通过对样本整体分析,我们发现本次攻击行动与摩诃草组织之前使用的攻击手段相符合。
1.恶意lnk的参数及使用方式和恶意载荷所携带的签名“RUNSWITHSCISSORS LTD”都与我们之前关于该组织的报道一致[1]。
2.本次载荷通联C2中包含“b-cdn”、“t-cdn”等字符串,这类字符串经常出现在摩诃草组织以往C2中。此外多个C2服务器使用“Let’s Encrypt”颁发的免费证书,这与之前摩诃草的BADNEWS木马服务器也类似。
3.Golang新载荷使用RC4+Base64的算法,该类算法在该组织其他载荷中也被使用过。另外,针对同一目标使用的Quasar RAT之前也被披露过。
4.最后结合样本上传地址为巴基斯坦,符合攻击者目标,综上将其这类攻击归属于APT-C-09(摩诃草)组织。
MD5:
0aa22fa3333c891a139187442ecf0e81
4f8bd643c59658e3d5b04d760073cbe9
dfb97438f0ec94e78a2a1e3d32bc11d5
13dcd6f1fd44f7f15651153167b646cc
1154b7d8bd2e631f8fcd50a53d6173ba
C&C:
https://quranchapter.t-cdn[.]org/wp-includes/javascript/juicesdafekohioshfoshfhiofh/quran
https://ruz98.b-cdn[.]net/22
https://daily-mashriq[.]org/goyxdrkhjilchyigflztv
https://espncrics[.]info/goaimdzfecbgrjjxdamdoo
172.81.60[.]46:1005
[1]https://mp.weixin.qq.com/s/SAt5NU-hCbS0D6jI8gkkFQ
360高级威胁研究院
原文始发于微信公众号(360威胁情报中心):APT-C-09(摩诃草)组织Golang载荷窃密分析