Magic Winmail Server 是安全易用全功能的邮件服务器软件,不仅支持SMTP/POP3/IMAP/Webmail/LDAP(公共地址簿)/多域/发信认证/反垃圾邮件/邮件过滤/邮件组/公共邮件夹等标准邮件功能,还有提供RBL/SPF/Spam Assassin/邮件签核/邮件杀毒/邮件监控/支持IIS,Apache/网络硬盘及共享/短信提醒/邮件备份/SSL(TLS)安全传输协议/邮件网关/动态域名支持/远程管理/Web 管理/独立域管理员/在线注册/二次开发接口等特色功能。 它既可以作为互联网邮件服务器、局域网邮件服务器,也可以作为ADSL宽带、FTTB、有线通(CableModem) 等接入方式的邮件服务器和邮件网关。
Magic Winmail Server程序安装为系统服务,程序一般是在Administrator权限下运行的,而服务程序MailServer.exe是在system权限下运行的,因此当有Webshell时,就可以通过这个漏洞来提升权限了。Magic Winmail Server提供的Webmail是通过PHP脚本来实现管理的,下面就针对该邮件服务器的提权和防范进行探讨。
1.获取Winmail目录地址
通过Webshell找到了Winmail的物理地址“G:/Winmail/server/webmail/www”,如图1所示,寻找Winmail有几种手段:
(1)如果获取的Webshell是asp.net,则可以直接查看进程或者服务来获取Winmail的物理地址;如果IISSPY能用也可以获取Winmail的网站真实路径。
(2)针对目标对象进行mail地址测试,一般提供Winmail的地址多为mail.somesie.com或者webmail.somesite.com。
图1获取Winmail的网站真实路径
2.执行whoami命令
在Webshell中进入“Execute Command”页面,在use中选择“phpfunc”,Command中输入“whoami”命令查看Webshell是什么权限,如图2所示,显示为“nt authority\system”权限。
图2查看Webshell的权限
3.添加用户到管理员组
既然是系统权限,则可以直接执行添加命令,由于系统是Windows 2008 Server,前几次添加用户老是提示不成功,后面分析原因发现Windows 2008 Server系统用户密码对强度有要求,必须具备一定复杂度才能添加成功,如图3所示,执行“net user SQLdebugger WsP%emp2005!* /add”命令成功完成。后面分别执行“net user SQLdebugger Administrators /add”和“net localgroup administrators”命令,将SQLdebugger用户加入到管理员中以及查看管理员用户组中的用户,执行效果如图4,图5所示。
图3添加用户到系统中
图4添加用户到管理员组中
图5查看系统管理员组
4.设置并登陆远程终端服务器
单击“开始”-“运行”,在运行中输入“mstsc”命令,打开远程桌面连接窗口,如图6所示,在计算机中输入目标服务器的IP地址或者域名,在用户名中输入“SQLdebugger”,密码中输入刚才添加的密码,选中“保存密码”复选框,可以在下次连接时不用再次输入密码,当然也可以将此次配置另存为一个3389的文件。最后单击“连接”进行登录测试,如图7所示,成功登录该服务器。
图6设置远程终端桌面
图7进入Windows 2008 Server远程桌面
5.Winmail邮箱用户与口令
Winmail的配置文件保存在“G:/Winmail/server/”目录,也即安装目录下的Server子目录,“userauth.cfg”文件为邮箱用户口令配置,邮箱登陆用户名为之间的字符串,如图8所示,本例中的用户为postmaster,用户密码为md5后的字符串“8ed44440b3e4077a782ff5cc5348e366”,Winmail还有其它加密方式,如果password之间为md5,则表示为md5加密,否则为相应的加密方式。该密码可以通过cmd5等网站进行查询破解,如图9所示,由于该密码位数较长,属于收费类型。
图8Winmail用户配置文件
图9获取Winmail的md5密码
6.进入邮箱
使用破解的密码和用户名进行登录,如图10所示,成功进入登入该邮件系统,通过验证知道Winmail PHP版本的邮件用户密码多采用cmd5加密,通过分析其配置文件userauth.cfg,可以获取该mail邮件服务器的所有用户名和密码。
图10进入邮箱
7.Winmail服务器防范
Winmail服务器本身相对比较安全,但该软件将php脚本环境的权限设置为系统权限就相对危险了,其防范方法有下面一些:
(1)降低Winmail的权限
(2)设置Winmail Web目录为只读,这样即使入侵者获取了Webshell也因为没有写入权限而无法执行脚本命令。