欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

一份来源未知的数据,揭秘了OilRig组织的全部信息(下)

来源:本站整理 作者:佚名 时间:2019-05-09 TAG: 我要投稿

Webshells
Webshell用于与受感染服务器交互。泄露数据中包含了三个webshell,分别为HyperShell、HighShell和Minion,Minion很可能是HighShell的一个变体,在代码、文件名和功能上都有重叠。HyperShell和HighShell则是TwoFace的变体,其中HyperShell与TwoFace的加载器相关,HighShell与TwoFace的payload相关,这点我们在2017年7月也有记载。除了OilRig使用的Webshell外,泄露数据中还有一个Webshell部署列表。如图8所示,列出了超过100个Webshell的链接,覆盖了四大洲26个国家的87个组织。

图8.受影响组织的Webshell的地理位置
Hypershell
HyperShell(SHA256:e483eee77fcc5ef11d5bf33a4179312753b62ec9a247dd14528cc797e7632d99)与的TwoFace加载器的3DES变体(我们也叫它TwoFace++)有关,我们曾在2017年7月报道过。
我们曾用强制技术来提取TwoFace加载器嵌入式payload,但同样的方法在TwoFace ++加载器上行不通。
TwoFace加载器样本需要密钥来解密嵌入的webshell,密钥是通过简单的算术运算符(大多是“+”或“ – ”)和webshell中的盐字符串进行修改的,所以使用简单的算术运算符就能解密,逆运算来强制提取密钥,进而提取嵌入式webshell。
而TwoFace ++加载器则使用3DES密码和攻击者提供的字符串的SHA256哈希并用作密钥,因此我们无法提取嵌入式webshell。但是,转储数据中的提供了HyperShell的重要信息。与许多TwoFace加载器样本一样,HyperShell样本在HTML标记
和中包含一个字符串,如果未提供密码,和/或TwoFace ++加载程序无法提取嵌入的webshell,则会在浏览器中显示该字符串。HyperShell样本中的pre标签是:
7a”) %>
图9显示了HyperShell在浏览器中“pre”标签内容。

图9.HyperShell在
标签内显示密码
我们认为,pre标签中的字符串正是攻击者提供的密码,webshell将其作为密钥来加密嵌入的payload,这一点可通过下列过程来验证:
· 密码上附加一个充当盐的字符串
· 获取包含密码和盐的结合字符串的SHA1哈希值
· 对SHA1哈希进行Base64编码
· 将Base64编码后的哈希与硬编码的base64字符串进行比较
· 如果匹配,则对入站请求进行身份验证
· 生成密码字符串的SHA256哈希值
· Base64对SHA256哈希进行编码,并使用前24个字符作为密钥
· 使用24个字符的密钥和3DES密码来解密嵌入的webshell
现在让我们看看攻击者提供的密码如何与TwoFace ++加载器样本中的值一起使用。样本中,攻击者使用的密码为“NxKK7a”,并附加了硬编码盐字符串“aqB2nU65TgFoEfdVqiAddBQLInc9”,两者结合的字符串为“NxKK7aaqB2nU65TgFoEfdVqiAddBQLInc9”,SHA1哈希为“9d3ff106fbc3508b8453c7d6f285543d0b9c2721”,base64编码后为“nT/xBvvDUIuEU8fW8oVUPQucJyE=”。而样本中base64硬编码后的密码是“NT / xBvvDUIuEU8fW8oVUPQucJyE =”,这也就能证明我们上面的观点。
经过身份验证后,TwoFace ++加载程序使用密码来解密嵌入式webshell。要使用密码作为密钥进行3DES解密,TwoFace ++会生成密码“NxKK7a ”的SHA256,哈希为“11f66b55f3d24303621e5ef9565b02a576cc58bc5f8789cae96c3d400064b90e”,接着对哈希进行base64编码,产生的字符串为“EfZrVfPSQwNiHl75VlsCpXbMWLxfh4nK6Ww9QABkuQ4 =”,其中前24个字符被用作3DES密钥,并解密webshell (SHA256: d2b835b102117e327fdc4905ead24d45f46e82dd5ae525e90cca0a685d307619) 。此webshell似乎也是HighShell(版本v5.0)的变种。
我们将HighShell的v5.0版本与TwoFace的payload(SHA256:54c8bfa0be1d1419bf0770d49e937b284b52df212df19551576f73653a7d061f)进行了比较。如图10所示,基本是一致的,但HighShell有两个不一样的地方,右上角的版本号“v5.0”和左下角用于显示错误消息和命令结果的三个小框。


图10.HighShell v5.0和TwoFace payload之间差异性
接着我们对两个webshell的代码进行了分析。这两个webshell大部分代码相同,差异在于变量和函数名称上略有不同。最显着的区别是HighShell v5.0 webshell包含一个盐值“di2zag7wZHTK9YR0NGq”,它应用于身份验证的密码。图11左侧显示了TwoFace的payload(SHA256:54c8bfa0be1d1419bf0770d49e937b284b52df212df19551576f73653a7d061f),右侧则是HighShell v5.0(SHA256:d2b835b102117e327fdc4905ead24d45f46e82dd5ae525e90cca0a685d307619),而同样的盐在左侧的TwoFace代码中就没有。

图11. HighShell v5.0和TwoFace payload之间的比较
我们认为TwoFace的 payload是HighShell v5.0 webshell的前身,后者是OilRig在其整个运营过程中创建的。
HighShell
转储数据还包括一个名为HighShell的webshell,它由HyperShell植入,如上一节所述。转储数据中包含了许多不同的HighShell样本,我们已经确定了至少三个不同的版本,如表4所示。不断增加的版本数量表明OilRig在持续不断开发HighShell。

[1] [2] [3] [4]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载