前些天买了shodan的会员玩的特别开心,直到某一天看到了这个东西。这是什么呢?
在百度一查原来是一个邮件系统的中间件叫电子邮件网关系统,说白了就是过滤邮件的,那么他的重要性可想而知了,所有的邮件都从这台服务器进出。
基本上没什么漏洞不过17年有一个远程命令执行 还有个任意文件读取
不过权限很低,只能看到网关里面的账户下的,而且从官方试用的镜像来看,官方给的账户是一个权限极低的账户。
那么只能从命令执行下手了。官方文档说利用了两个漏洞,先看第一个漏洞。
通过向/brightmail/action1.do?method=method_name发出GET请求,如果method_name是公共方法,则可以执行LoginAction.method_name。
存在一个notificationLogin方法 该方法存在缺陷。
从官方的LoginAction类中可以看到notificationLogin方法。
他会接收notify参数的值赋值给encryptedEmailAddress,然后通过BrightmailDecrypt类下decrypt方法解密赋值给emailAddress,然后用emailAddress创建个UserTO对象,之后什么过滤“**<>**”创建username就不谈了,最后他会创建个session 这个session会有web管理界面的一些权限。
然而官方给的例子是
解密失败。。。 看来作者不想全部放出去啊。
那么只能自己分析一波了
他会切割传进来的值前十二位为盐 12位到末尾为加密内容 之后会用到PBEWithMD5AndDES加密算法。而这个算法是对称加密的,那么这么看来就好办了,只要用他的加密方法生成一个加密串能被他解密就可以了。而他的加密方法在使用10.6.1的任意文件读取可以获得
好的成功了!
然后需要做的是获取一个token
common.jsp会或缺一个symantec.brightmail.key.TOKEN
而在symantec封装的镜像中存在一个db-restore脚本,该脚本存在调用/usr/bin/du命令注入。
于是可以愉快的反弹shell了
看成功反弹shell :)