NSA方程式Easybee攻击程序漏洞复现与分析

简介:

影子经纪人(Shadow Brokers)最近曝光的NSA方程式Windows攻击程序中有一个针对Mdaemon邮件服务器漏洞的远程攻击程序——Easybee,本文将对Easybee漏洞攻击进行复现,并分析漏洞攻击原理。

环境搭建

Easybee是针对Mdaemon邮件服务器远程逻辑漏洞的攻击程序,它支持对下列版本的Mdaemon服务器进行攻击:

  • 9.5.2
  • 9.6.0
  • 9.6.1
  • 9.6.2
  • 9.6.3
  • 9.6.4
  • 9.6.5
  • 9.6.6
  • 10.0.1
  • 10.0.2
  • 10.0.3
  • 10.0.4
  • 10.0.5
  • 10.1.0
  • 10.1.1
  • 10.1.2

我这里找到一个10.1.1版本的Mdaemon进行测试,首先需要两台测试机:

  • 192.168.1.3——攻击机 Win2003安装Python,运行Fuzzbunch
  • 192.168.1.105——靶机 WindowsXP安装Mdaemon 10.1.1

在靶机上的Mdaemon中添加域名testeasybee.com,由于这个域名并没有在互联网上注册,所以我们自己搭建一个DNS服务器,把testeasybee.com的MX记录设置为192.168.1.105,并在192.168.1.3中设置DNS服务器为我们自己的DNS。然后在Mdaemon的testeasybee.com域名中新建用户admin@testeasybee.com,密码Aa654321。

漏洞利用复现

在攻击机192.168.1.3中运行Fuzzbunch攻击框架,设置Target IP为192.168.1.105,Callback IP为192.168.1.3,Redirection为no。

在攻击机192.168.1.3中运行Fuzzbunch攻击框架

新建Project设置一些log目录之类的常规参数,然后运行Easybee,设置攻击参数:

在攻击机192.168.1.3中运行Fuzzbunch攻击框架

具体攻击参数的意义为:

  • TargetIp —— 目标IP地址,这里是192.168.1.105
  • TargetWCPort —— WorldClient端口,默认为3000
  • TargetWAPort —— WebAdmin端口,默认为1000
  • WorldClientProtocol —— WorldClient协议,默认为http
  • WorldClientDomain —— WorldClient所属域名,这里是testeasybee.com
  • WorldClientPort —— WorldClient端口,默认为3000
  • WebAdminProtocol —— WebAdmin协议,默认为http
  • WebAdminDomain —— WebAdmin所属域名,这里是testeasybee.com
  • WebAdminPort —— WebAdmin端口,默认为1000
  • TargetAcctDomain —— 目标域名,testeasybee.com
  • TargetAcctUsr —— 目标账号,这里是admin
  • TargetAcctPwd —— 账号密码,这里是Aa654321
  • TargetAcctIsAdmin —— 账号是否为管理员,这里是yes
  • CFEmailFrom —— 用于触发内容过滤器的发件人,我是自己发给自己就写admin@testeasybee.com
  • CFEmailSubj —— 用于触发内容过滤器的邮件标题,随便写xxxooo
  • CFEmailFile —— 用于触发内容过滤器的附件名,这个要求是允许的附件类型,最好是.txt类型
  • AREmailFrom —— 同CFEmailFrom即可
  • AREmailSubj —— 发送邮件标题,随便写hahahoho
  • PTEmailFrom —— 同CFEmailFrom即可
  • PTEmailSubj —— 同AREmailSubj即可
  • PayloadName —— 上传到服务器运行的文件名,随便写个t.exe即可
  • PayloadFile —— 要上传的木马程序,我这里只是测试就传个计算器,写C:\windows\system32\calc.exe
  • WorldClientVersion —— Mdaemon的版本,我这里选10.1.1execute之后,经过一系列的攻击,最终攻击成功。

我们看一些靶机上面,我们上传的计算器已经成功执行。

如果Mdaemon是以服务形式运行,那么它的子进程都是SYSTEM权限且没有图形界面,但是计算器也能成功运行。

漏洞分析

经过分析发现,这个漏洞是Mdaemon的Auto Responder(自动应答器)和Content Filter(内容过滤器)的一个逻辑漏洞,具体漏洞利用的步骤是:

1. 通过HTTP协议访问目标3000端口的WorldClient,POST用户名密码进行登录,通过返回Cookie解析出WCSESSIONID

2. 通过HTTP协议访问目标1000端口的WebAdmin,POST用户名密码进行登录,通过返回Cookie解析出WASESSIONID

3. 通过访问WebAdmin的如下URL获取Auto Responder是否开启

http://192.168.1.105:1000/useredit_autoresp.wdm?accountedit=1&user=admin@testeasybee.com

4. 通过POSTXML的方式修改用户自动应答所执行的脚本

运行到这里我们看到自动应答已经被添加了命令执行:

这样一来,每次收到邮件就会把邮件内容中@@后面内容当做CMD命令来执行

5. 以POST方式通过WorldClient发送一封邮件给admin@testeasybee.com去触发自动应答的处理命令,内容是一系列以@@开头的CMD命令:

这段批处理依次执行下面命令:

1)从目标邮箱目录下找到对应的邮件.msg文件,其中iOE4ZuLw44是发送邮件标题中的随机字符串。

2)读取.msg文件的内容。

3)读取UserList.dat文件的内容,这里面有加密过的密码。

4)读取WebAcces.dat文件的内容,把MDaemon@testeasybee.com账号的权限全部打开:Access=YYYYYYYYYYYYYYYYY

5)读取CFRules.dat文件内容,这个是Content Filter内容过滤器规则。

6)读取CFilter.ini文件的内容。Content Filter内容过滤器配置文件。

7)读取MDaemon.ini服务器配置文件。

8)最后把所有内容集合在一起重新写入原邮件的.msg文件中。

可以看出这段批处理的作用是,读取一系列配置文件内容,并且修改MDaemon@testeasybee.com账号的权限为最高。

6. 通过WorldClient确保邮件已收到,读取邮件内容,通过UserList.dat文件内容获取MDaemon@testeasybee.com账号的加密密码,并解出明文密码。

解密算法在trfo-2.dll的TfBase64Decode函数中,就是Base64的一种变形:

 
  1. void *__cdecl TfBase64Decode(int a1, unsigned int a2, int a3) 
  2.   unsigned int v3; // esi@1 
  3.   int v4; // edi@1 
  4.   void *result; // eax@2 
  5.   int v6; // ebx@4 
  6.   unsigned int v7; // ecx@4 
  7.   char v8; // al@6 
  8.   unsigned __int8 v9; // al@8 
  9.   void *v10; // [sp+8h] [bp-10h]@1 
  10.   char v11[4]; // [sp+Ch] [bp-Ch]@16 
  11.   unsigned int v12; // [sp+10h] [bp-8h]@1 
  12.   char Src; // [sp+14h] [bp-4h]@20 
  13.  
  14.   v3 = a2
  15.   v4 = 0
  16.   v12 = 0
  17.   v10 = calloc((3 * a2 >> 2) + 1, 1u); 
  18.   if ( v10 ) 
  19.   { 
  20.     if ( a2 > 0 ) 
  21.     { 
  22.       do 
  23.       { 
  24.         v6 = 0
  25.         v7 = 0
  26.         do 
  27.         { 
  28.           if ( v12 >= v3 ) 
  29.             break; 
  30.           v8 = 0
  31.           do 
  32.           { 
  33.             if ( v8 ) 
  34.               break; 
  35.             v9 = *(_BYTE *)(v12++ + a1); 
  36.             if ( (unsigned __int8)(v9 - 43) > 0x4Fu ) 
  37.               v8 = 0
  38.             else 
  39.               v8 = byte_1000711D[v9]; 
  40.             if ( v8 ) 
  41.               v8 = (v8 - 61) & ((v8 == 36) - 1); 
  42.           } 
  43.           while ( v12 < a2 ); 
  44.           v3 = a2
  45.           if ( v12 >= a2 ) 
  46.           { 
  47.             v11[v7] = 0; 
  48.           } 
  49.           else 
  50.           { 
  51.             ++v6; 
  52.             if ( v8 ) 
  53.               v11[v7] = v8 - 1; 
  54.           } 
  55.           ++v7; 
  56.         } 
  57.         while ( v7 < 4 ); 
  58.         if ( v6 ) 
  59.         { 
  60.           sub_10001000((int)v11, (int)&Src); 
  61.           if ( v6 != 1 ) 
  62.           { 
  63.             memcpy((char *)v10 + v4, &Src, v6 - 1); 
  64.             v4 += v6 - 1; 
  65.           } 
  66.         } 
  67.         v3 = a2
  68.       } 
  69.       while ( v12 < a2 ); 
  70.     } 
  71.     *((_BYTE *)v10 + v4) = 0; 
  72.     if ( a3 ) 
  73.       *(_DWORD *)a3 = v4
  74.     result = v10
  75.   } 
  76.   else 
  77.   { 
  78.     result = 0
  79.   } 
  80.   return result; 

7. 通过CFilter.ini文件内容判断Content Filter是否开启,如果没开启还需要发送一封邮件触发自动应答脚本执行批处理命令写入CFilter.ini文件来开启Content Filter。

8. 以获取到的MDaemon@testeasybee.com账号的密码登录进WebAdmin,通过POSTXML的方式添加一条Content Filter规则:

这条规则就是说,当发现邮件标题中包含xxxooo字符串,就执行命令cmd /c “move /Y uu.txt t.exe & t.exe & del t.exe”,把附件uu.txt文件复制为t.exe并运行。

9. 核心一步,发送标题为xxxooo,带有payload附件的邮件。触发Content Filter规则,运行payload。

10. 最后,发送包含命令的邮件清除所做修改和清除邮件。

可以看出来这个漏洞最关键点在于攻击者可以通过WebAdmin以POSTXML的方式修改用户自动应答脚本,以至发送特定内容邮件就可以达到执行任意命令的目的。

解决方案

升级Mdaemon到最新版本可修复此漏洞。

作者:天择实习生
来源:51CTO

相关实践学习
基于函数计算快速搭建Hexo博客系统
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
相关文章
|
7月前
|
供应链 安全 区块链
安全情报 | Pypi再现窃密攻击投毒
9月10日起,有投毒者持续向官方Pypi仓库中投放urllitelib、urtelib32、graphql32等多个版本的恶意Py包,请及时排查。
105 0
安全情报 | Pypi再现窃密攻击投毒
|
10月前
|
机器学习/深度学习 安全 算法
针对恶意软件分类器的可解释性后门投毒
基于机器学习 (ML) 的恶意软件分类的训练通常依赖于众包威胁源,从而暴露自然攻击注入点。在本文中研究了基于特征的 ML 恶意软件分类器对后门投毒攻击的敏感性,特别关注攻击者无法控制样本标记过程的“干净标签”攻击。建议使用可解释机器学习的技术来指导相关特征和值的选择,从而以与模型无关的方式创建有效的后门触发器。使用多个用于恶意软件分类的参考数据集,包括 Windows PE 文件、PDF 和 Android 应用程序,展示了针对各种机器学习模型的有效攻击,并评估了对攻击者施加的各种约束的影响。为了证明后门攻击在实践中的可行性,为 Windows PE 文件创建了一个水印程序,以保留二进制文件。
94 0
|
11月前
|
安全 API Windows
恶意病毒逆向分析实验1
恶意病毒逆向分析
|
11月前
|
缓存 安全 网络安全
心脏滴血漏洞复现(CVE-2014-0160)
心脏滴血漏洞复现(CVE-2014-0160)
155 0
|
安全 网络安全 Windows
向日葵RCE复现 | CNVD-2022-10270 CNVD-2022-03672
向日葵是一款免费的集远程控制电脑手机、远程桌面连接、远程开机、远程管理、支持内网穿透的一体化远程控制管理工具软件。 于2022年2月5日和2022年2月15日,CNVD公开上海贝锐信息科技股份有限公司的向日葵远控软件存在远程代码执行漏洞(CNVD-2022-10270/CNVD-2022-03672),影响Windows系统使用的个人版和简约版,攻击者可利用该漏洞获取服务器控制权。
347 0
向日葵RCE复现 | CNVD-2022-10270 CNVD-2022-03672
|
安全
各个漏洞文库
漏洞库链接,可收藏!
635 0
|
XML SQL 安全
常见高危Web漏洞原理及检测技术分析与研究
随着计算机技术以及信息网络通信技术的高速发展,人们也逐渐意识到信息安全的重要性,网络安全问题成为社会、国家的关注焦点。本文对Web漏洞的类型与原理、Web漏洞扫描技术的原理与应用进行了研究,分析了计算机网络中安全漏洞检测技术的应用策略。
|
监控 安全
NSA Fuzzbunch中EternalRomance工具复现过程
     自Shadow Brokers公布NSA泄露工具后,各路大神陆陆续续发表复现过程,这几天也仔细试了各种套路,一直想弄明白DoublePulsar中的shellcode到底是如何用的,刚好又在模拟环境中偶遇Windows Server 2003,EternalRomance貌似只能用shellcode方式植入利用,于是各种试错以后有了这篇文章。
1648 0
|
安全 Windows
NSA方程式泄漏工具包浅析
本文讲的是NSA方程式泄漏工具包浅析,前日,臭名昭著的方程式组织工具包再次被公开,TheShadowBrokers在steemit.com博客上提供了相关消息。据此,腾讯云鼎实验室对此进行了分析。本次被公开的工具包大小为117.9MB,包含23个黑客工具,其中部分文件显示NSA曾入侵中东SWIFT银行系统,工具包下载接见文后参考信息。
3069 0
|
人工智能 安全 Windows
CVE-2013-2551样本分析及漏洞利用和防御
本文讲的是CVE-2013-2551样本分析及漏洞利用和防御,VUPEN团队在Pwn2Own 2013黑客大赛上使用漏洞攻破Windows 8环境下的IE10,随后在其博客上公开了技术细节。根据VUPEN描述,该漏洞产生于VGX.
1767 0

热门文章

最新文章