SkypeACLKeyGen.exe 分析(供黑客团队使用)
那么……
今天我们要分析什么呢?嗯,今天我们要分析黑客团队(Hacking Team)的一个软件。它跟 Skype 有关?为什么会分析这个?不知道,我觉得它很有趣。
总之,我们先从检查运行时行为开始。如你所见,它需要一个用户名和一个插件路径,然后输出一个 ACL?所以,这到底是怎么回事?查看这份文档 https://airbus-seclab.github.io/skype/vskype-part2.pdf,里面告诉我们——“Skype 实现了一种类似 ACL 的系统,用来允许或拒绝插件附加到正在运行的实例上。插件”签名“会根据用户对警告对话框的回复被添加到配置文件中”——。那么,这个软件的文件夹里有什么呢?
嗯……好吧……还是什么都看不出来。对,我们看到那个文件夹里有一个以 office 结尾的 stage 1 shellcode,这可能表明是一个 office 漏洞利用(尚未确认);还有 fakeport(一个 C# 应用)、tracer.exe 以及其他东西。酷,我的直觉是真正会被注册的插件是 tracer.exe。为什么这么说?同样根据那份 PDF——“如果设置了 Logging 和 Logging2,Skype 语音引擎可以生成加密的跟踪文件。加密很简单,就是用一个 31 字节的密钥做基本的 XOR”——。所以,我们先来分析一下 ACL 的实际生成器,然后接着看 tracer,也许在另一篇文章里再分析 shellcode 😉
我们从这个开始
然后进入这里
最后流入这些
从那里再流入这里
酷,另一个动态的彩蛋行为是:当你输入要运行的用户和插件时,你会得到 .png)
不管怎样,我们继续深入分析
因此,从自顶向下的视角来看,它计算文件内容的 sha2,并将其内容映射到内存中。不幸的是,在我这边的动态调试中它失败了,所以它没有执行任何操作 :/ 我们能怎么办呢。我们继续往下走。我们进入 probably_do_hash_based_function_function_recovery。
不幸的是,这和前面的情况一样,我们无法将其映射到内存中,于是从该函数退出。不过我们仍然只计算了 md5,并且可能会基于 md5 比较来做一些函数恢复。
然后我们继续进行一些 malloc 和 memset
.png)
接着我们把文件名转换为大写
用户名也同样处理
酷,接下来我们做这个:
基本上就是构造我们自己的 ACL,以允许我们运行自己的插件。在这种情况下,我猜会是 Tracer.exe,理论上它应该会记录 Skype 语音引擎生成的跟踪文件。

上述图片中函数的输出结果

上述图片中函数的输出结果
目前就先到这里。今天稍后我会回来更新这篇文章。现在剩下的只是分析这个只进行了一半的函数
另外,等我回来时,我们会为了好玩深入看下 some_decode 函数,然后从那里再进入 tracer.exe 二进制文件。祝黑客快乐,回头见。