好友
阅读权限20
听众
最后登录1970-1-1
|
使用论坛附件上传样本压缩包时必须使用压缩密码保护,压缩密码:52pojie,否则会导致论坛被杀毒软件等误报,论坛有权随时删除相关附件和帖子! 病毒分析分区附件样本、网址谨慎下载点击,可能对计算机产生破坏,仅供安全人员在法律允许范围内研究,禁止非法用途! 禁止求非法渗透测试、非法网络攻击、获取隐私等违法内容,即使对方是非法内容,也应向警方求助!
本帖最后由 Hades-52pojie 于 2021-4-15 17:25 编辑
背景:
在对境外威胁情报追踪的过程中,我们发现了一个,比较有意思的企业内部的攻击宏代码,为什么说该攻击代码有意思呢,主要是因为该宏代码有于其它宏攻击,其它宏攻击主要以宏为载体,控制EIP权力后,移交给木马,该宏代码的目的也仅仅是需要窃取目标账户的权限令牌,以及cookie信息,也就是说如果目的够明确,可以仅仅通过宏代码去实现恶意行为,这样做的好处是显而易见的,因为目前的检测宏代码恶意行为的主要精力放在,内存执行,进程创建,进程注入上。如果仅仅是特定目的,也未尝不可以使用宏代码构建攻击。
1
代码流程图:
2
恶意样本:
恶意样本采用宏攻击的模式,在文档标题中让受害者启用宏已解密被加密的文档,可以看到内容确实被Base64编码了。
3
通过定义Document_open()函数入口,在宏文档打开时会触发该函数的代码。
4
该恶意代码首先禁用了函数中的异常报告,随即判断了电脑的操作系统,是否为Mac系统,并弹窗警告已经访问内部的统计器(推测)。
5
可以看到弹窗的提示,以及通过ActiveDocument对象的FollowHyperlink方法访问公司内部的jira。
6
由于上述代码在Win环境下不会触发,我们也在Mac上测试了该代码的作用。
7
在Win系统上则会仅一步窃取Slack通讯软件的用户令牌以及Cookie信息,通过VBA内置Environ$变量获得用户的环境变量,并将其与Slack软件存储令牌与Cookie的路径进行拼接得到完整路径。
8
9
随后通过Dir函数,遍历找到存储有.ldb后缀的令牌文件。
10
找到该文件后调用FindToken函数,该函数内部调用了ReadFile函数以及ExtractRegex函数。
11
ReadFile函数内部比较简单,就是打开指定文件并返回该文件的数据。
12
ExtractRegex函数内部,通过设置RegExp对象属性,并调用Execute方法进行正则匹配获取指定的数据并返回(令牌数据)。
13
我们可以看到它的正则是"(" & TEAM & ")(.+)(token"":"")([0-9a-zA-Z-]+)"。
14
获取了令牌信息后,通过StealCookie函数窃取Slack软件的Cookie信息。
15
我们看到StealCookie函数内部与FindToken函数一致通过ReadFile函数读取文件,然后通过ExtractRegex函数进行正则匹配,匹配的规则是"(slack.comd)([a-zA-Z0-9%]+)/"。
16
在完成窃取后接着调用了GetChannelId函数。
17
GetChannelId函数内部首先通过字符串拼接,将获取的用户令牌以及CooKie信息拼接成完整的URL。
18
然后根据传入字符串是self,进行不同的拼接模式,并调用XmlHttpRequest方法。
19
XmlHttpRequest方法通过CreateObject函数获得了WinHttp.WinHttpRequest对象,并返回网页的相关代码。
20
在回到GetChannelId函数,将网页返回的代码使用ExtractRegex函数进行正则匹配获得用户的ID信息,正则规则为:"(""user_id"":"")([a-zA-Z0-9-+@.]+)("")"。
21
完成窃取用户ID后调用SendMessage函数。
22
SendMessage函数内部调用了URLEncode函数将提示语进行编码并拼接到URL中,根据URL信息可以看出是Jira的API,随后通过XmlHttpRequest方法将窃取的用户信息上传。(令牌,Cookie,用户ID,自定义的提示语)。
23
24
URLEncode函数将传入的字符串进行编码,以避免URL传输中的问题。
25
将字符串SLACKBOT_MESSAGE进行编码。
26
27
将字符串SELF_MESSAGE进行编码。
28
29
该宏代码分别窃取了2种格式的用户ID,并进行上传。
30
结束语:
随着网络安全的对抗越发的升级的趋势,近些年已经多次出现了,使用单语言实现的特定目的的木马,这些功能简单木马大多通过VBA,VBS,PowerShell等语言实现,目前由于部分公司的业务无法剥离宏或者是一些脚本的执行权力,使得无法通过禁用脚本或是宏的目的来避免受到攻击,这就要求安全软件能够精准识别恶意的代码和正常的业务代码,而目前安全软件监管脚本语言的方式大多以字符串匹配为主,而重点字符串全部集中在内存执行以及创建进程,进程注入上,就使得该类型的简单木马,往往能够突防安全软件,因为该类型的窃密木马仅仅是访问了url和一些文件并无任何高危操作,也难于将其与普通业务代码进行区分。
IOC:
String:
"\AppData\Roaming\Slack\Local Storage\leveldb\"
"\AppData\Roaming\Slack\Cookies"
"*.ldb"
"self"
"USLACKBOT"
"(" & TEAM & ")(.+)(token"":"")([0-9a-zA-Z-]+)"
"(slack.comd)([a-zA-Z0-9%]+)/"
"(""user_id"":"")([a-zA-Z0-9-+@.]+)("")"
"(""id"":"")([a-zA-Z0-9]+)("")"
Hash256:
834a5d0e7c23bc76a5336f262eb93477d48069a06a50bca0582b7f76467e78ce |
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|