您的位置 首页 电路

黑客实例解说木马的剖析办法!

以前有过一款国产木马,它有个好听的名字,叫做“广外女生”。这个木马是广东外语外贸大学“广外女生”网络小组的作品,它可以运行于WIN98,WIN98SE,WINME,WINNT,WIN2000或已经安装

曾经有过一款国产木马,它有个好听的姓名,叫做“广外女生”。这个木马是广东外语外贸大学“广外女生”网络小组的著作,它可以运转于WIN98,WIN98SE,WINME,WINNT,WIN2000或现已装置Winsock2.0的Win95/97上。与以往的木马比较,它具有体积更小、躲藏更为奇妙的特色。可以意料,在将来的日子里它会成为继“冰河”之后的又一盛行的木马种类。

由于“广外女生”这个木马的驻留、发动的办法比较具有典型性,下面我就经过对这种新式木马的具体剖析进程来向咱们论述对一般木马的研讨办法。下面的测验环境为Windows2000中文版。

一、所需东西

1.RegSnap v2.80 监督注册表以及体系文件改变的最好东西

2.fport v1.33 检查程序所翻开的端口的东西

3.FileInfo v2.45a 检查文件类型的东西

4.ProcDump v1.6.2 脱壳东西

5.IDA v4.0.4 反汇编东西

二、剖析进程

悉数东西准备就绪了,咱们开端剖析这个木马。一般的木马的服务器端一旦运转之后都会对注册表以及体系文件做一些四肢,所以咱们在剖析之前就要先对注册表以及体系文件做一个备份。

首要翻开RegSnap,从file菜单选new,然后点OK。这样就对当时的注册表以及体系文件做了一个记载,一瞬间假如木马修正了其间某项,咱们就可以剖析出来了。备份完结之后把它存为Regsnp1.rgs。

然后咱们就在咱们的电脑上运转“广外女生”的服务器端,不要惧怕,由于咱们现已做了比较具体的备份了,它做的四肢咱们都可以照原样改回来的。双击gdufs.exe,然后等一小会儿。假如你正在运转着“天网防火墙”或“金山毒霸”的话,应该发现这两个程序主动退出了,很古怪吗?且听咱们后边的剖析。现在木马就现已驻留在咱们的体系中了。咱们来看一看它终究对咱们的做了哪些操作。从头翻开RegSnap,从file菜单选new,然后点OK,把这次的snap成果存为Regsnp2.rgs。

从RegSnap的file菜单挑选Compare,在First snapshot中挑选翻开Regsnp1.rgs,在Second snapshot中挑选翻开Regsnp2.rgs,并在下面的单选框中选中Show modifiedkey names and key values。然后按OK按钮,这样RegSnap就开端比较两次记载又什么区别了,当比较完结时会主动翻开剖析成果文件Regsnp1-Regsnp2.htm。

看一下Regsnp1-Regsnp2.htm,留意其间的:

Summary info:Deleted keys: 0Modified keys: 15New keys : 1


意思便是两次记载中,没有删去注册表键,修正了15处注册表,新添加了一处注册表。再看看后边的:

File list in C:WINNTSystem32*.*Summary info:Deleted files: 0Modified files: 0New files : 1New filesdiagcfg.exe Size: 97 792 , Date/Time: 2001年07月01日 23:00:12--------------Total positions: 1

这一段话的意思便是,在C:WINNTSystem32目录下面新添加了一个文件diagcfg.exe,这个文件十分可疑,由于咱们在比较两次体系信息之间只运转了“广外女生”这个木马,所以咱们有理由信任diagcfg.exe便是木马留在体系中的后门程序。不信的话你翻开使命管理器看一下,会发现其间有一个DIAGCFG.EXE的进程,这便是木马的原身。但这个时分千万不要删去DIAGCFG.EXE,不然体系就无法正常运转了。

木马一般都会在注册表中设置一些键值以便今后在体系每次从头发动时可以主动运转。咱们再来看看Regsnp1-Regsnp2.htm中哪些注册表项发生了改变,凭仗经历应该留意到下面这条了:

HKEY_LOCAL_MACHINESOFTWAREClassesexefileshellopencommand@Old value: String: %1 %*New value: String: C:WINNTSystem32DIAGCFG.EXE %1 %*

这个键值由本来的%1 %*被修正为了C:WINNTSystem32DIAGCFG.EXE %1 %*,由于其间包含了木马程序DIAGCFG.EXE所以最为可疑。那么这个注册表项有什么效果呢?

它便是运转可履行文件的格局,被改成C:WINNTSystem32DIAGCFG.EXE %1。%*之后每次再运转任何可履行文件时都要先运转C:WINNTSystem32DIAGCFG.EXE这个程序。

本来这个木马便是经过这儿做了四肢,使自己可以主动运转,它的发动办法与一般一般木马不太相同,一般的木马是在

HKLMSOFTWAREMicrosoftWindowsCurrentVersionRun*

键里添加一个键值,使自己可以自发动,但这种办法被杀毒软件所熟知了,所以很简略被查杀。而“广外女生”这个木马就比较奸刁,它把发动项设在了别的的方位。

现在咱们现已把握了这个木马的驻留方位以及在注册表中的发动项,还有重要的一点便是咱们还要找出它终究监听了哪个端口。运用fport可以轻松的完成这一点。在命令行中运转fport.exe,可以看到:

C:toolfport>fportFPort v1.33 - TCP/IP Process to Port MapperCopyright 2000 by Foundstone, Inc.http://www.foundstone.comPid Process   Port Proto Path584 tcpsvcs -> 7   TCP C:WINNTSystem32tcpsvcs.exe584 tcpsvcs -> 9   TCP C:WINNTSystem32tcpsvcs.exe584 tcpsvcs -> 13  TCP C:WINNTSystem32tcpsvcs.exe584 tcpsvcs -> 17  TCP C:WINNTSystem32tcpsvcs.exe584 tcpsvcs -> 19  TCP C:WINNTSystem32tcpsvcs.exe836 inetinfo -> 80  TCP C:WINNTSystem32inetsrvinetinfo.exe408 svchost -> 135 TCP C:WINNTsystem32svchost.exe836 inetinfo -> 443 TCP C:WINNTSystem32inetsrvinetinfo.exe8   System  -> 445 TCP464 msdtc  -> 1025 TCP C:WINNTSystem32msdtc.exe684 MSTask  -> 1026 TCP C:WINNTsystem32MSTask.exe584 tcpsvcs -> 1028 TCP C:WINNTSystem32tcpsvcs.exe836 inetinfo -> 1029 TCP C:WINNTSystem32inetsrvinetinfo.exe8   System  -> 1030 TCP464 msdtc  -> 3372 TCP C:WINNTSystem32msdtc.exe1176 DIAGCFG -> 6267 TCP C:WINNTSystem32DIAGCFG.EXE~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 留意这行!!!836 inetinfo -> 7075 TCP C:WINNTSystem32inetsrvinetinfo.exe584 tcpsvcs -> 7   UDP C:WINNTSystem32tcpsvcs.exe584 tcpsvcs -> 9   UDP C:WINNTSystem32tcpsvcs.exe584 tcpsvcs -> 13  UDP C:WINNTSystem32tcpsvcs.exe584 tcpsvcs -> 17  UDP C:WINNTSystem32tcpsvcs.exe584 tcpsvcs -> 19  UDP C:WINNTSystem32tcpsvcs.exe584 tcpsvcs -> 68  UDP C:WINNTSystem32tcpsvcs.exe408 svchost -> 135 UDP C:WINNTsystem32svchost.exe8   System  -> 445 UDP228 services -> 1027 UDP C:WINNTsystem32services.exe836 inetinfo -> 3456 UDP C:WINNTSystem32inetsrvinetinfo.exe

咱们可以清楚的看到,木马程序监听在TCP的6267号端口上了。咱们到目前为止就可以说把握了“广外女生”这个木马在咱们体系中的悉数动作了,现在咱们可以垂手可得的查杀它了。

三、查杀

经过前面的剖析咱们现已了解了“广外女生”这种木马的作业方式,现在咱们就来铲除它。下面便是彻底铲除“广外女生”的办法,留意:这个进程的次第不能倒置,不然或许无法彻底铲除去此木马。

1.按“开端”菜单,挑选“运转”,输入regedit,按确认。翻开下面键值:

HKEY_LOCAL_MACHINESOFTWAREClassesexefileshellopencommand

可是先不要修正,由于假如这时就修正注册表的话,DIAGCFG.EXE进程依然会马上把它改回来的。

2.翻开“使命管理器”,找到DIAGCFG.EXE这个进程,选中它,按“完毕进程”来关掉这个进程。留意,必定也不要先关进程再翻开注册表管理器,不然履行regedit.exe时就又会发动DIAGCFG.EXE。

3.把

HKEY_LOCAL_MACHINESOFTWAREClassesexefileshellopencommand

的键值由本来的C:WINNTSystem32DIAGCFG.EXE %1 %*改为%1 %*。

4.这时就可以删去C:WINNTSystem32目录下的DIAGCFG.EXE了。牢记万万不可首要删去这个文件,不然的话就无法再体系中运转任何可履行文件了。由于咱们下面还计划进一步深化剖析这个木马,所以现在不删去它,而是把它拷贝到其他的目录以便研讨。

四、深化研讨

咱们现已知道了“广外女生”的根本作业原理、发动流程以及怎么彻底铲除它了,可是还有一点咱们没有彻底弄清楚,那便是它是怎么抵挡“天网防火墙”或“金山毒霸”的。要深化了解这一点,咱们有必要要去看“广外女生”的代码,这个木马并没有发布源代码,可是咱们依然可以经过反汇编它来看个终究。

“广外女生”的服务器端只要96K,显然是运用了压缩软件进行了加壳的,咱们首要就要确认它终究加了什么壳。经过运用FileInfo这个小东西就可以侦测出来。现在咱们就把前面剖析过的那个DIAGCFG.EXE复制到FileInfo的目录下,然后在命令行下fi.exe,然后按回车,就会显现:

  FileInfo v2.45a (c) 1997-2001 from JUN-06-2001FileInfo v2.45a (c) 1997-2001 by Michael Hering - herinmi@tu-cottbus.deC:TOOLFI═─*ASPack v1.06b A.Solodovnikov .data   DIAGCFG.EXE .....98304 01.01.1997aPack v0.98/0.99 (Jibz) {short} ....... EXETOOLS.COM .......895 10.11.2000 !aPack v0.98/0.99 (Jibz) ............... FI.EXE ....135458 06.06.2001 !...................................... FILE_ID.DIZ ......1088 06.06.2001 !?7-bit text ........................... REG.BAT .......280 06.06.2001 !...................................... SUMMER.KEY  .......157 06.06.2001 !* detected 4/6 files in 110 ms──═ FileInfo summary ═──── Date: Mi,01.01.1997 ─ Time: 21:32:15 ─scan path: C:TOOLFIfile mask: *.*all size: 236182 Bytes = 230 KB   4/6 files in 110 ms (18.33 ms/file)

FileInfo就现已检测出DIAGCFG.EXE是运用了ASPack v1.06b进行加壳。知道了它的加密办法咱们就可以运用ProcDump来把它脱壳了。

运转ProcDump,点击Unpack按钮,由于咱们要脱ASPack v1.06b的壳,所以就在其间选中Aspack108,然后按OK。这时它会让你翻开要脱壳的文件,咱们就选DIAGCFG.EXE,翻开。然后略微等几秒种后按“确认”,ProcDump就会把DIAGCFG.EXE脱壳,然后会出个对话框要你把脱壳过的文件存盘,咱们就把它存为gwns.exe。

留意:这时分,木马又在你的体系上运转了一次,所以有必要依照前面的铲除进程从头把它铲除去。由于前面现已写过铲除办法,这儿就不再赘述了。

好了,现在咱们现已得到了这个木马加壳前的原始文件了,看看脱壳过的gwns.exe,有194k之大,比本来的程序大了一倍还多,这便是加壳软件的劳绩了。现在就可以运用反汇编程序对其进行反汇编,然后看它的汇编程序代码了。

咱们就用IDA来反汇编它,趁便说一句,这个IDA是个超强的反汇编东西,是cracker以及Windows hacker所必备的东西。下面咱们就来看看部分反汇编过的代码:

0042B1AC   push  offset aKernel32_dll ; kernel32.dll0042B1B1   call  j_LoadLibraryA0042B1B6   mov   [ebx], eax0042B1B8   push  offset aRegisterservic ; RegisterServiceProcess0042B1BD   mov   eax, [ebx]0042B1BF   push  eax0042B1C0   call  j_GetProcAddress0042B1C5   mov   ds:dword_42EA5C, eax0042B1CA   cmp   ds:dword_42EA5C, 00042B1D1   jz   short loc_42B1E10042B1D3   push  10042B1D5   call  j_GetCurrentProcessId0042B1DA   push  eax0042B1DB   call  ds:dword_42EA5C

木马首要加载了kernel32.dll,然后使用GetProcAddress来得到RegisterServiceProcess这个API的地址,木马首要需求把自己注册为体系服务,这样在Win9x下运转时就不简略被使命管理器发现。然后它会GetCommandLineA来得到运转参数,假如参数是可履行文件的话就调用Winexec来运转。

0042B271   mov   eax, ds:dword_42EA800042B276   mov   edx, offset aSnfw_exe ; snfw.exe0042B27B   call  sub_4039000042B280   jz   short loc_42B2930042B282   mov   eax, ds:dword_42EA800042B287   mov   edx, offset aKav9x_exe ; kav9x.exe

然后木马会查找snfw.exe和kav9x.exe的进程,也便是“天网防火墙”或“金山毒霸”的进程,然后将其杀掉。

0042B6AD   push  ebx0042B6AE   push  00042B6B0   push  00042B6B2   push  offset aSoftwareMicr_0 ; Software\Microsoft\Windows\CurrentVersi...0042B6B7   push  80000002h0042B6BC   call  j_RegOpenKeyExA_00042B6C1   push  offset aKingsoftAntivi ; Kingsoft AntiVirus0042B6C6   mov   eax, [ebx]0042B6C8   push  eax0042B6C9   call  j_RegDeleteValueA0042B6CE   mov   eax, [ebx]0042B6D0   push  eax0042B6D1   call  j_RegCloseKey_0

木马还会修正“天网防火墙”或“金山毒霸”在注册表中的发动项,使其在下次体系从头发动时无法主动运转。

0042B820   mov   dword ptr [esi], 100h0042B826   push  esi0042B827   push  edi0042B828   push  offset a_exe_1 ; .exe0042B82D   push  80000000h0042B832   call  j_RegQueryValueA0042B837   push  80042B839   push  offset a1 ; %1 %*0042B83E   push  10042B840   lea   eax, [ebp+var_10]0042B843   mov   edx, edi0042B845   mov   ecx, 100h0042B84A   call  sub_4037A00042B84F   lea   eax, [ebp+var_10]0042B852   mov   edx, offset aShellOpenComma ; \shell\open\command0042B857   call  sub_4037F80042B85C   mov   eax, [ebp+var_10]0042B85F   call  sub_4039A40042B864   push  eax0042B865   push  80000000h0042B86A   call  j_RegSetValueA0042B86F   push  00042B871   mov   eax, ds:dword_42D0400042B876   mov   eax, [eax]0042B878   push  eax0042B879   call  j_WinExec

下面便是修正木马的注册表发动项,即

HKEY_LOCAL_MACHINESOFTWAREClassesexefileshellopencommand


项,使其可以在每次体系从头发动时可以自行发动。接下来木马就会初始化Winsock dll,绑定端口,等候木马客户端的衔接。

五、总结

截止目前为止,咱们现已完结了对“广外女生”这个木马程序的悉数剖析进程,了解了木马的发动、运转机制。当然,我写本文的意图并不是简略的介绍“广外女生”这一种木马,而是经过对这个具有典型含义的木马的具体剖析,来向咱们介绍对一般木马的剖析办法。使用本文的剖析办法,你彻底对任何一种不知道的木马种类进行剖析。最终咱们再来总结一下对木马剖析的办法及进程:

首要对体系注册表以及体系文件进行备份,然后运转木马服务器端,再对运转过木马的注册表以及体系文件进行记载,使用注册表剖析东西对两次记载成果进行比较,这样就可以了解木马在体系中做了哪些四肢。使用fport来检查木马监听端口。然后使用所获取的信息做出木马的铲除办法。

假如想要对木马进行深化的剖析,还应该对木马服务器端进行脱壳、反汇编。这样就可以彻底把握木马的任何动作,当然,这需求你对汇编语言有适当的把握程度以及必定的耐性,由于冗长的汇编代码不是一般的新手所能彻底阅览的。

假如还想进一步剖析木马报文格局的话,就用sniffer对木马的端口进行监听,然后进行比较剖析,这种剖析办法比较复杂,本文就不举例说明了。

仅仅阅览文章还不可,要想彻底剖析清楚一只木马,还需求实践练习一下!祝你好运!

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/dianlu/185815.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部