Hades-52pojie 发表于 2021-4-12 17:54

红队攻击样本之利用宏代码窃取Slack软件的用户信息

本帖最后由 Hades-52pojie 于 2021-4-15 17:25 编辑

背景:
在对境外威胁情报追踪的过程中,我们发现了一个,比较有意思的企业内部的攻击宏代码,为什么说该攻击代码有意思呢,主要是因为该宏代码有于其它宏攻击,其它宏攻击主要以宏为载体,控制EIP权力后,移交给木马,该宏代码的目的也仅仅是需要窃取目标账户的权限令牌,以及cookie信息,也就是说如果目的够明确,可以仅仅通过宏代码去实现恶意行为,这样做的好处是显而易见的,因为目前的检测宏代码恶意行为的主要精力放在,内存执行,进程创建,进程注入上。如果仅仅是特定目的,也未尝不可以使用宏代码构建攻击。


代码流程图:


恶意样本:
恶意样本采用宏攻击的模式,在文档标题中让受害者启用宏已解密被加密的文档,可以看到内容确实被Base64编码了。


通过定义Document_open()函数入口,在宏文档打开时会触发该函数的代码。


该恶意代码首先禁用了函数中的异常报告,随即判断了电脑的操作系统,是否为Mac系统,并弹窗警告已经访问内部的统计器(推测)。


可以看到弹窗的提示,以及通过ActiveDocument对象的FollowHyperlink方法访问公司内部的jira。


由于上述代码在Win环境下不会触发,我们也在Mac上测试了该代码的作用。


在Win系统上则会仅一步窃取Slack通讯软件的用户令牌以及Cookie信息,通过VBA内置Environ$变量获得用户的环境变量,并将其与Slack软件存储令牌与Cookie的路径进行拼接得到完整路径。



随后通过Dir函数,遍历找到存储有.ldb后缀的令牌文件。


找到该文件后调用FindToken函数,该函数内部调用了ReadFile函数以及ExtractRegex函数。


ReadFile函数内部比较简单,就是打开指定文件并返回该文件的数据。


ExtractRegex函数内部,通过设置RegExp对象属性,并调用Execute方法进行正则匹配获取指定的数据并返回(令牌数据)。


我们可以看到它的正则是"(" & TEAM & ")(.+)(token"":"")(+)"。


获取了令牌信息后,通过StealCookie函数窃取Slack软件的Cookie信息。


我们看到StealCookie函数内部与FindToken函数一致通过ReadFile函数读取文件,然后通过ExtractRegex函数进行正则匹配,匹配的规则是"(slack.comd)(+)/"。


在完成窃取后接着调用了GetChannelId函数。


GetChannelId函数内部首先通过字符串拼接,将获取的用户令牌以及CooKie信息拼接成完整的URL。


然后根据传入字符串是self,进行不同的拼接模式,并调用XmlHttpRequest方法。


XmlHttpRequest方法通过CreateObject函数获得了WinHttp.WinHttpRequest对象,并返回网页的相关代码。


在回到GetChannelId函数,将网页返回的代码使用ExtractRegex函数进行正则匹配获得用户的ID信息,正则规则为:"(""user_id"":"")(+)("")"。


完成窃取用户ID后调用SendMessage函数。


SendMessage函数内部调用了URLEncode函数将提示语进行编码并拼接到URL中,根据URL信息可以看出是Jira的API,随后通过XmlHttpRequest方法将窃取的用户信息上传。(令牌,Cookie,用户ID,自定义的提示语)。




URLEncode函数将传入的字符串进行编码,以避免URL传输中的问题。


将字符串SLACKBOT_MESSAGE进行编码。




将字符串SELF_MESSAGE进行编码。




该宏代码分别窃取了2种格式的用户ID,并进行上传。


结束语:
随着网络安全的对抗越发的升级的趋势,近些年已经多次出现了,使用单语言实现的特定目的的木马,这些功能简单木马大多通过VBA,VBS,PowerShell等语言实现,目前由于部分公司的业务无法剥离宏或者是一些脚本的执行权力,使得无法通过禁用脚本或是宏的目的来避免受到攻击,这就要求安全软件能够精准识别恶意的代码和正常的业务代码,而目前安全软件监管脚本语言的方式大多以字符串匹配为主,而重点字符串全部集中在内存执行以及创建进程,进程注入上,就使得该类型的简单木马,往往能够突防安全软件,因为该类型的窃密木马仅仅是访问了url和一些文件并无任何高危操作,也难于将其与普通业务代码进行区分。

IOC:
String:
"\AppData\Roaming\Slack\Local Storage\leveldb\"
"\AppData\Roaming\Slack\Cookies"
"*.ldb"
"self"
"USLACKBOT"
"(" & TEAM & ")(.+)(token"":"")(+)"
"(slack.comd)(+)/"
"(""user_id"":"")(+)("")"
"(""id"":"")(+)("")"
Hash256:
834a5d0e7c23bc76a5336f262eb93477d48069a06a50bca0582b7f76467e78ce

Hmily 发表于 2021-4-12 18:52

Hades-52pojie 发表于 2021-4-12 18:33
从word里面贴图,太痛苦了,我在调整

怪不得,辛苦了,最好比直接粘贴进去,点发帖框右侧的纯文本模式粘贴,再贴图进去这样会好看很多,word直接粘贴会有一堆问题。

Hades-52pojie 发表于 2021-4-14 16:20

Hmily 发表于 2021-4-13 14:38
@Hades-52pojie 剩下的图不需要吗?另外我帮你编辑了下主题,去掉了word里带的不兼容代码。

我看了下,差不多了,谢谢版主

myweb1996 发表于 2021-4-12 18:17

昨天捕获一个直接打包AppData目录上传的样本

Hmily 发表于 2021-4-12 18:29

@Hades-52pojie 怎么尾部还有好多图片没有插入,是不是丢了?

Hades-52pojie 发表于 2021-4-12 18:33

Hmily 发表于 2021-4-12 18:29
@Hades-52pojie 怎么尾部还有好多图片没有插入,是不是丢了?

从word里面贴图,太痛苦了,我在调整

闺蜜丢弃的嗷呜 发表于 2021-4-12 18:52

感谢卤煮!学无止境{:301_997:}

十一不是一 发表于 2021-4-12 22:01

膜拜大佬

chen1860906 发表于 2021-4-13 01:14

膜拜大佬。

deref 发表于 2021-4-13 09:17

学到了学到了

Hmily 发表于 2021-4-13 14:38

@Hades-52pojie 剩下的图不需要吗?另外我帮你编辑了下主题,去掉了word里带的不兼容代码。
页: [1] 2
查看完整版本: 红队攻击样本之利用宏代码窃取Slack软件的用户信息