发新话题
打印

[转载]灰鸽子木马来源追踪

[转载]灰鸽子木马来源追踪

文章作者: Loveboom

【目标】:N/A
【工具】:OllyDBG1.1
【任务】:木马来源追踪
【操作平台】:Windowsxpsp2
【作者】:LOVEBOOM[DFCG][FCG][CUG]
【相关链接】:N/A
【简要说明】:今天在硬盘里找到个木马,用几款杀毒软件杀了下没有结果。自己用OD看了下,发现是灰鸽子的修改版(很反感灰鸽子的作者,搞的到处是“垃圾”)。在网上简单的搜索了一下没有发现怎么揪出放木马的者的信息的相关文章,于是乎自己大概的分析了,写出来方便各位以后找源头。
【详细过程】:
今天安装软件时,系统提示没有多少空间可用,于是整理了下硬盘,这一整就整出了这么个东西,在程序文件夹下发现一个可疑的程序,看看生成日期,嗯,不错,程序差不多放了一个月了。看看程序的相关信息先:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
程序路径:c:\programfiles\message\message.exe
属性:隐藏
创建时间:2005年12月12日,16:19:21
修改时间:2005年9月9日,20:25:20
文件大小:301KB(308,920字节)
PEID扫描:ASPack2.x(withoutpoly)->AlexeySolodovnikov
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
一看名字感觉就是不对劲了,十有九是中木马或病毒了,把自己的卡巴更新一下病毒库,查一下提示没有病毒,在网上下一个江民在线查毒,查一下也提示没有病毒。自己想了下,没有可能的我自己在那天根本没有装过这类可疑的软件。看来得自己动手了,用lordpe看看程序信息:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
程序入口:000CA000h
sectionname:fuckyou
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
看来好像有人和我有深仇大恨了(我电脑里没有什么宝贝,最多只能拿我到一些未公布的脱壳和文章而已)。呵呵,既然来了,不管是敌是友,我都会接待的:-)。打开OD看了下入口信息,初步可以判断是和aspack变形版加的壳,是aspack加的壳就好办,把自己的脱壳脚本翻出来,运行到OEP处:
004A5AAC.55PUSHEBP
004A5AAD.8BECMOVEBP,ESP
004A5AAF.B906000000MOVECX,6
004A5AB4>6A00PUSH0
呵呵,DELPHI写的东西,在OEP不远处可以看到很有用的东西了。


004A5ACB.68465E4A00PUSH004A5E46
004A5AD0.64:FF30PUSHDWORDPTRFS:[EAX]
004A5AD3.64:8920MOVDWORDPTRFS:[EAX],ESP
004A5AD6.E899A8FFFFCALL004A0374
004A5ADB.8D55ECLEAEDX,DWORDPTRSS:[EBP-14]
004A5ADE.B8605E4A00MOVEAX,004A5E60;ASCII"www.huigezi.net"
004A5AE3.E824BBFFFFCALL004A160C
004A5AE8.8D55E4LEAEDX,DWORDPTRSS:[EBP-1C]
004A5AEB.33C0XOREAX,EAX
004A5AED.E8AAD0F5FFCALL00402B9C
004A5AF2.8B45E4MOVEAX,DWORDPTRSS:[EBP-1C]
004A5AF5.8D55E8LEAEDX,DWORDPTRSS:[EBP-18]
004A5AF8.E8533DF6FFCALL00409850
004A5AFD.8B55E8MOVEDX,DWORDPTRSS:[EBP-18]
004A5B00.B888BF4A00MOVEAX,004ABF88
004A5B05.E8E6EEF5FFCALL004049F0
004A5B0A.A188BF4A00MOVEAX,DWORDPTRDS:[4ABF88]
004A5B0F.E848F3F5FFCALL00404E5C
004A5B14.50PUSHEAX;/String2=FFFFFFFF???
004A5B15.68705E4A00PUSH004A5E70;|String1="IExplore.exe"
004A5B1A.E86D16F6FFCALL0040718C;\lstrcmpiA
004A5B1F.85C0TESTEAX,EAX
004A5B21.0F94C0SETEAL
上面都显示出是huigezi的网站,那基本上就可以判断出是灰鸽子木马了,到这里我以为就结束了,既然是灰鸽子当然先是去网上把杀灰鸽子木马的软件,下了个灰鸽子vip2005专杀工具,一查软件告诉我没有找到灰鸽子,俺一想也是可能我这里把木马给关掉了所以查不到,那就把程序运行起来,运行起来后,看看进程里多了个iexplorer.exe(看来是注入系统进程了),再查,还是提示没有发现木马。看来是被人改过了,再去找个瑞星的专杀工具和安天的试了下,都提示没有木马,这回真的得手工处理了,既然要我手工处理我就来个更远一点的,揪出放木马的者,看看是谁这么无聊,这么喜欢看别人的隐私。好了,开始想怎么去找线索,程序要把我们的信息给放木马者,放木马者肯定要在放之前配置好,告诉程序走哪条路,怎么走之类的,那么这些信息又存放哪里呢?我想了下一般放这么几个地方吧:
一、放到一个配置文件里,然后和程序文件一起,程序运行后读取信息。既然是木马我想没有谁会这么招摇吧,这样想来,就否认了这种方式。
二、把配置信息和程序绑在一起,这里又有3种常见的方式:
1、用绑定机把配置信息和程序绑成一个文件,但想一下,再加一个shell程序不又得变大多少KB了,因此想来这种方法可能性不大。
2、把配置信息作为程序的附加数据,用PEID看了下,提示并没有附加数据。这样看来,很有可能是第三种方式了。
3、把配置信息作为程序资源的一部分,在读取的时候通过Findresource来读取信息。
好了,初步推测是这样,打开OD来证实下,OD载入目标,下断FindResourceA,运行中断后,观察堆栈信息:
0013FEAC004A11C2/CALLtoFindResourceAfrommessage.004A11BD
0013FEB000400000|hModule=00400000(message)
0013FEB4004A088C|ResourceName="SEVINFO"
0013FEB80000000A\ResourceType=RT_RCDATA
执行到返回,一看没错,可以证实是用2.3的方式把配置信息作为资源来处理。
004A11B5.50PUSHEAX;/ResourceType=250
004A11B6.52PUSHEDX;|ResourceName=000BD000???
004A11B7.A164A64A00MOVEAX,DWORDPTRDS:[4AA664];|
004A11BC.50PUSHEAX;|hModule=00000250
004A11BD.E8B25CF6FFCALL00406E74;\FindResourceA
004A11C2.8BD8MOVEBX,EAX;返回到这里
004A11C4.85DBTESTEBX,EBX
004A11C6.0F84D5000000JE004A12A1;如果没有找到资源则跳去结束处
004A11CC.53PUSHEBX;/hResource=00000250(window)
004A11CD.A164A64A00MOVEAX,DWORDPTRDS:[4AA664];|
004A11D2.50PUSHEAX;|hModule=00000250
004A11D3.E8745EF6FFCALL0040704C;\LoadResource
004A11D8.8BF0MOVESI,EAX;载入自定义资源
004A11DA.85F6TESTESI,ESI;message.004C4BA4
004A11DC.0F84BF000000JE004A12A1;如果载入资源失败跳去结束处
004A11E2.53PUSHEBX;/hResource=00000250(window)
004A11E3.A164A64A00MOVEAX,DWORDPTRDS:[4AA664];|
004A11E8.50PUSHEAX;|hModule=00000250
004A11E9.E8265FF6FFCALL00407114;\SizeofResource
004A11EE.8BD8MOVEBX,EAX
本以为载入后就可以直接看到相关信息,desi看了下就会发现原来木马在配置服务器端的时候进行了加密处理,我们现在看到的只是加密后的东西。
004C4BA444383545364131354633454132453432D85E6A15F3EA2E42
004C4BB43932434635333734424330414546354692CF5374BC0AEF5F
004C4BC4383637394446364145343339343642388679DF6AE43946B8
004C4BD43235353538393232323535443725558922255D7
不管它怎么加密程序最终还是要还原出原来的东西,既然要还原正确的信息,那就就一定行读取加密后的信息了,这样我们就在4C4BA4处下内存访问断点,mr4C4BA4àRUN,运行后中断:
00402A3C|.FDSTD
00402A3D|.F3:A5REPMOVSDWORDPTRES:[EDI],DWORDPTRDS>;第一次中断在这里
00402A3F|.89C1MOVECX,EAX
00402A41|.83E103ANDECX,3
00402A44|.83C603ADDESI,3
00402A47|.83C703ADDEDI,3
00402A4A|.F3:A4REPMOVSBYTEPTRES:[EDI],BYTEPTRDS:[>
00402A4C|.FCCLD
STD逆时针解密,在402a4a处断下后定位到edi所在的地址。然后两次执行到返回(CTRL+F9),返回到如下地址:
004A03A7.BA8C084A00MOVEDX,004A088C;ASCII"SEVINFO"
004A03AC.B902000000MOVECX,2
004A03B1.B80A000000MOVEAX,0A
004A03B6.E8DD0D0000CALL004A1198
004A03BB.84C0TESTAL,AL;返回到这里
004A03BD.0F847F040000JE;如果读取配置信息失败则跳去ExitProcess
004A03C3.B201MOVDL,1
004A03C5.A1F0364100MOVEAX,DWORDPTRDS:[4136F0]
004A03CA.E8AD37F6FFCALL00403B7C
004A03CF.8945F8MOVDWORDPTRSS:[EBP-8],EAX
004A03D2.8D4DF4LEAECX,DWORDPTRSS:[EBP-C]
004A03D5.BA9C084A00MOVEDX,004A089C;ASCII"20050101"
004A03DA.A1E8BE4A00MOVEAX,DWORDPTRDS:[4ABEE8]
004A03DF.E898D3FBFFCALL;这里进去解密出配置文件的信息
004A03E4.8B55F4MOVEDX,DWORDPTRSS:[EBP-C];到了这里d[ebp+c]看到了什么
004A03E7.8B45F8MOVEAX,DWORDPTRSS:[EBP-8]
004A03EA.8B08MOVECX,DWORDPTRDS:[EAX]
004A03EC.FF512CCALLDWORDPTRDS:[ECX+2C]
004A03EF.8D55F0LEAEDX,DWORDPTRSS:[EBP-10]
004A03F2.8B45F8MOVEAX,DWORDPTRSS:[EBP-8]
004A03F5.8B08MOVECX,DWORDPTRDS:[EAX]
004A03F7.FF511CCALLDWORDPTRDS:[ECX+1C]
004A03FA.8B45F0MOVEAX,DWORDPTRSS:[EBP-10];分出端口号
004A03FD.E85A4AF6FFCALL00404E5C
004A0402.50PUSHEAX;/String="4B?
004A0403.E87C6CF6FFCALL00407084;\OutputDebugStringA
004A0408.8D4DECLEAECX,DWORDPTRSS:[EBP-14];把上面的配置信息显示到调试器,到了这里看看OD的状态栏是不是显示出了相关的信息
004A040B.33D2XOREDX,EDX
004A040D.8B45F8MOVEAX,DWORDPTRSS:[EBP-8]
004A0410.8B18MOVEBX,DWORDPTRDS:[EAX]
004A0412.FF530CCALLDWORDPTRDS:[EBX+C];message.004178FC
004A0415.8B55ECMOVEDX,DWORDPTRSS:[EBP-14];取出端口号
004A0418.B820BF4A00MOVEAX,004ABF20
004A041D.E8CE45F6FFCALL004049F0
004A0422.8D4DE8LEAECX,DWORDPTRSS:[EBP-18]
004A0425.BA01000000MOVEDX,1
004A042A.8B45F8MOVEAX,DWORDPTRSS:[EBP-8]
004A042D.8B18MOVEBX,DWORDPTRDS:[EAX]
004A042F.FF530CCALLDWORDPTRDS:[EBX+C];message.004178FC
004A0432.8B55E8MOVEDX,DWORDPTRSS:[EBP-18];取出访问的地址
004A0435.B834BF4A00MOVEAX,004ABF34
004A043A.E8B145F6FFCALL004049F0
004A043F.8D4DE4LEAECX,DWORDPTRSS:[EBP-1C]
004A0442.BA02000000MOVEDX,2
004A0447.8B45F8MOVEAX,DWORDPTRSS:[EBP-8]
004A044A.8B18MOVEBX,DWORDPTRDS:[EAX]
004A044C.FF530CCALLDWORDPTRDS:[EBX+C];message.004178FC
004A044F.8B55E4MOVEDX,DWORDPTRSS:[EBP-1C];取出密码
004A0452.B838BF4A00MOVEAX,004ABF38
004A0457.E89445F6FFCALL004049F0
004A045C.8D4DE0LEAECX,DWORDPTRSS:[EBP-20]
004A045F.BA03000000MOVEDX,3
004A0464.8B45F8MOVEAX,DWORDPTRSS:[EBP-8]
004A0467.8B18MOVEBX,DWORDPTRDS:[EAX]
004A0469.FF530CCALLDWORDPTRDS:[EBX+C];message.004178FC
004A046C.8B55E0MOVEDX,DWORDPTRSS:[EBP-20];取出程序存放的路径
004A046F.B8D4BE4A00MOVEAX,004ABED4
004A0474.E87745F6FFCALL004049F0
004A0479.8D55DCLEAEDX,DWORDPTRSS:[EBP-24]
004A047C.A1D4BE4A00MOVEAX,DWORDPTRDS:[4ABED4]
004A0481.E8BEFBFFFFCALL004A0044
004A0486.8B55DCMOVEDX,DWORDPTRSS:[EBP-24];取出实际路径
004A0489.B8D4BE4A00MOVEAX,004ABED4
004A048E.E85D45F6FFCALL004049F0
004A0493.8D55D8LEAEDX,DWORDPTRSS:[EBP-28]
004A0496.A1D4BE4A00MOVEAX,DWORDPTRDS:[4ABED4]
004A049B.E8B093F6FFCALL00409850;取出EXE文件名
004A04A0.8B55D8MOVEDX,DWORDPTRSS:[EBP-28]
004A04A3.B8D8BE4A00MOVEAX,004ABED8
004A04A8.E84345F6FFCALL004049F0
004A04AD.33C0XOREAX,EAX
004A04AF.55PUSHEBP
004A04B0.68E2044A00PUSH004A04E2
004A04B5.64:FF30PUSHDWORDPTRFS:[EAX]
004A04B8.64:8920MOVDWORDPTRFS:[EAX],ESP
004A04BB.8D4DD4LEAECX,DWORDPTRSS:[EBP-2C]
004A04BE.BA04000000MOVEDX,4
004A04C3.8B45F8MOVEAX,DWORDPTRSS:[EBP-8]
004A04C6.8B18MOVEBX,DWORDPTRDS:[EAX]
004A04C8.FF530CCALLDWORDPTRDS:[EBX+C];message.004178FC
004A04CB.8B45D4MOVEAX,DWORDPTRSS:[EBP-2C];取出端口?
004A04CE.E8518CF6FFCALL<StrtoInt>;转换为数字
004A04D3.A330BF4A00MOVDWORDPTRDS:[4ABF30],EAX;保存端口
004A04D8.33C0XOREAX,EAX
004A04DA.5APOPEDX;0013FEF8
004A04DB.59POPECX;0013FEF8
004A04DC.59POPECX;0013FEF8
004A04DD.64:8910MOVDWORDPTRFS:[EAX],EDX
004A04E0.EB14JMPSHORT004A04F6
004A04E2.^E9653BF6FFJMP0040404C
004A04E7.C70530BF4A00>MOVDWORDPTRDS:[4ABF30],32
004A04F1.E8BE3EF6FFCALL004043B4
004A04F6>8D4DD0LEAECX,DWORDPTRSS:[EBP-30]
004A04F9.BA05000000MOVEDX,5
004A04FE.8B45F8MOVEAX,DWORDPTRSS:[EBP-8]
004A0501.8B18MOVEBX,DWORDPTRDS:[EAX]
004A0503.FF530CCALLDWORDPTRDS:[EBX+C];取出nameinformation
004A0506.8B55D0MOVEDX,DWORDPTRSS:[EBP-30]
004A0509.B82CBF4A00MOVEAX,004ABF2C
004A050E.E8DD44F6FFCALL004049F0
004A0513.8D4DCCLEAECX,DWORDPTRSS:[EBP-34]
004A0516.BA06000000MOVEDX,6
004A051B.8B45F8MOVEAX,DWORDPTRSS:[EBP-8]
004A051E.8B18MOVEBX,DWORDPTRDS:[EAX]
004A0520.FF530CCALLDWORDPTRDS:[EBX+C];message.004178FC
004A0523.8B55CCMOVEDX,DWORDPTRSS:[EBP-34]
004A0526.B8FCBE4A00MOVEAX,004ABEFC
004A052B.E8C044F6FFCALL004049F0
004A0530.33C0XOREAX,EAX
004A0532.55PUSHEBP
004A0533.6865054A00PUSH004A0565
004A0538.64:FF30PUSHDWORDPTRFS:[EAX]
004A053B.64:8920MOVDWORDPTRFS:[EAX],ESP
004A053E.8D4DC8LEAECX,DWORDPTRSS:[EBP-38]
004A0541.BA07000000MOVEDX,7
004A0546.8B45F8MOVEAX,DWORDPTRSS:[EBP-8]
004A0549.8B18MOVEBX,DWORDPTRDS:[EAX]
004A054B.FF530CCALLDWORDPTRDS:[EBX+C];message.004178FC
004A054E.8B45C8MOVEAX,DWORDPTRSS:[EBP-38];取出端口
004A0551.E8CE8BF6FFCALL<StrtoInt>
004A0556.A3D0BE4A00MOVDWORDPTRDS:[4ABED0],EAX
004A055B.33C0XOREAX,EAX
004A055D.5APOPEDX;0013FEF8
004A055E.59POPECX;0013FEF8
004A055F.59POPECX;0013FEF8
004A0560.64:8910MOVDWORDPTRFS:[EAX],EDX
004A0563.EB14JMPSHORT004A0579
004A0565.^E9E23AF6FFJMP0040404C
004A056A.C705D0BE4A00>MOVDWORDPTRDS:[4ABED0],1F40
004A0574.E83B3EF6FFCALL004043B4
004A0579>8D4DC4LEAECX,DWORDPTRSS:[EBP-3C]
004A057C.BA08000000MOVEDX,8
004A0581.8B45F8MOVEAX,DWORDPTRSS:[EBP-8]
004A0584.8B18MOVEBX,DWORDPTRDS:[EAX]
004A0586.FF530CCALLDWORDPTRDS:[EBX+C];message.004178FC
004A0589.8B45C4MOVEAX,DWORDPTRSS:[EBP-3C]
004A058C.BAB0084A00MOVEDX,004A08B0
004A0591.E81248F6FFCALL00404DA8
004A0596.7507JNZSHORT004A059F;判断相关标志
004A0598.C6053CBF4A00>MOVBYTEPTRDS:[4ABF3C],1
004A059F>8D4DC0LEAECX,DWORDPTRSS:[EBP-40]
……(省略N行代码)
到这里我们就可以获取出放木马者的基本信息了,我这个木马作者配置文件的相关信息如下:

***********************************************************************************
Config
10395
softck.oicp.net
8b4ca58172880bbb
$(ProgramFiles)\message\message.exe
83
服装纺织
服装纺织
8000
0
1
0
1
1
1
1
COM+Server
COM+Server
传输客户端和服务器之间的NETSEND和Alerter服务消息。此服务与WindowsMessenger无关。如果服务停止
0
1080
guest
huigezi
0
8080
0
***********************************************************************************
我连了一下放木马者的网上,是用的花生壳,主机还没有开机没连上。
执行到返回后,一路F8看看这里:
004A5DA2./7513JNZSHORT004A5DB7
004A5DA4.|6A40PUSH40;/Style=MB_OK|MB_ICONASTERISK|MB_APPLMODAL
004A5DA6.|68D05E4A00PUSH004A5ED0;|Title="提示"
004A5DAB.|68D85E4A00PUSH004A5ED8;|Text="灰鸽子远程控制服务端安装成功!"
004A5DB0.|6A00PUSH0;|hOwner=NULL
004A5DB2.|E8DD19F6FFCALL00407794;\MessageBoxA
004A5DB7>\A1BC894A00MOVEAX,DWORDPTRDS:[4A89BC]
004A5DBC.803800CMPBYTEPTRDS:[EAX],0
004A5DBF.740EJESHORT004A5DCF
004A5DC1.803D90BF4A00>CMPBYTEPTRDS:[4ABF90],0
004A5DC8.7505JNZSHORT004A5DCF
004A5DCA.E879F2FFFFCALL004A5048
004A5DCF>6A00PUSH0;/ExitCode=0
004A5DD1.E85E10F6FFCALL00406E34;\ExitProcess
004A5DD6.EB53JMPSHORT004A5E2B
004A5DD8>E8B7D5FFFFCALL;这里判断操作系统是否为NT
004A5DDD.3C01CMPAL,1
004A5DDF.7545JNZSHORT
004A5DE1.C60584BF4A00>MOVBYTEPTRDS:[4ABF84],1
004A5DE8.A1188D4A00MOVEAX,DWORDPTRDS:[4A8D18]
004A5DED.803801CMPBYTEPTRDS:[EAX],1
004A5DF0.752DJNZSHORT004A5E1F
004A5DF2.A19C8F4A00MOVEAX,DWORDPTRDS:[4A8F9C]
004A5DF7.8B00MOVEAX,DWORDPTRDS:[EAX]
004A5DF9.E85EF0F5FFCALL00404E5C
004A5DFE.8B15E48C4A00MOVEDX,DWORDPTRDS:[4A8CE4];message.004ABF50
004A5E04.8902MOVDWORDPTRDS:[EDX],EAX;message.004ABF50
004A5E06.A1E48C4A00MOVEAX,DWORDPTRDS:[4A8CE4]
004A5E0B.C7400490554>MOVDWORDPTRDS:[EAX+4],004A5590
004A5E12.A1E48C4A00MOVEAX,DWORDPTRDS:[4A8CE4];如果是WinNT系统则启动服务
004A5E17.50PUSHEAX;/pServiceTable=message.004ABF50
004A5E18.E8CF2AFBFFCALL004588EC;\StartServiceCtrlDispatcherA
004A5E1D.EB0CJMPSHORT004A5E2B
004A5E1F>E828F6FFFFCALL004A544C
……
看看都有些什么吧:-).
004A5E58.FFFFFFFFDDFFFFFFFF
004A5E5C.0F000000DD0000000F
004A5E60.7777772E6>ASCII"www.huigezi.net",0
004A5E70.494578706>ASCII"IExplore.exe",0
004A5E7D00DB00
004A5E7E00DB00
004A5E7F00DB00
004A5E80.564950322>ASCII"VIP2.0_MUTEX",0
004A5E8D00DB00
004A5E8E00DB00
004A5E8F00DB00
004A5E90.FFFFFFFFDDFFFFFFFF
004A5E94.04000000DD00000004
004A5E98.2E4E45570>ASCII".NEW",0
004A5E9D00DB00
004A5E9E00DB00
004A5E9F00DB00
004A5EA0.536F66745>ASCII"SoftWare\Microso"
004A5EB0.66745C576>ASCII"ft\Windows\Curre"
004A5EC0.6E7456657>ASCII"ntVersion\Run",0
如果是直接用OD运行程序的程序,程序就会先获取相关配置信息,然后如果是WinNT系统则启动相关服务,然后自己自身退出。好了,到这里就比较简单的分析出放木马者的信息,因为我自已连不上放木马者的网站,再则对灰鸽子的配置也不懂,因此就此打住,如果你有兴趣的话,可以联系我得到目标文件。下面是大概的清理方法(我的系统重做了,因此只写我自己记得的部分):
删除进程中的iexplorer进程(我从来不用IE上网的),停止服务里的COM+server服务,然后删除服务,删除相关文件。

TOP

发新话题