一枚感染型木马分析
本帖最后由 Hyabcd 于 2015-11-12 23:21 编辑一.样本信息 文件名称:sQPTEKpJDKByLdE.exe
MD5:1308622496f0fd7a4d6dcb519a06f9f80
SHA-1:110333f17d5c9f848f64c929a226920b82bb8ced
文件大小:139kb
二.样本简介
该类型木马活跃于各高校机房,通过u盘感染的方式快速感染机房计算机,甚至感染个人计算机。如果使用者没有较好的安全防范意识,那么该木马将有极大可能通过u盘感染携带者的个人计算机,使其计算机成为所谓的“肉鸡”。该感染型木马在多年前就被发现,经过诸多次的变种,再加上高校机房计算机杀毒软件更新较为滞后,木马在特定环境下具有免杀效果。这也是该木马在高校机房中泛滥的最根本原因。
三.实现原理
该木马通过多种方式隐藏自身并对计算机上文件进行感染,当发现u盘插入时,对u盘中文件进行感染,以自身替代正常文件夹类型,并隐藏正常文件。在PC端,该木马通过进程注入执行自身代码,并尝试进行远控测试操作。
四.样本行为具体分析
0x1 复制自身到其他文件夹内,产生临时文件或替换正常文件
004029E5 6A 00 push 0x0 ; FALSE
004029E7 8D8D E8FEFFFF lea ecx,dword ptr ss:
004029ED 51 push ecx ; C:\Documents and Settings\Administrator\Application Data\temp.bin和C:\Documents and Settings\Administrator\Application Data\ScreenSaverPro.scr
004029EE 8D95 68F7FFFF lea edx,dword ptr ss:
004029F4 52 push edx ; C:\Documents and Settings\Administrator\桌面\sQPTEKpJDKByLdE.exe
004029F5 FF15 34114000 call dword ptr ds: ; kernel32.CopyFileA
0x2 添加自身到开机启动项
00402B0C 51 push ecx
00402B0D 6A 01 push 0x1
00402B0F 6A 00 push 0x0
00402B11 68 94154000 push sQPTEKpJ.00401594 ; Screen Saver Pro 3.1
00402B16 8B95 E0FCFFFF mov edx,dword ptr ss:
00402B1C 52 push edx ; SOFTWARE\Microsoft\Windows\CurrentVersion\Run
00402B1D FF15 00104000 call dword ptr ds: ; advapi32.RegSetValueExA
0x3创建进程,用于执行进程注入
00402CE7 52 push edx ; C:\WINDOWS\system32\svchost.exe
00402CE8 6A 00 push 0x0
00402CEA 6A 00 push 0x0
00402CEC 6A 04 push 0x4
00402CEE 6A 00 push 0x0
00402CF0 6A 00 push 0x0
00402CF2 6A 00 push 0x0
00402CF4 6A 00 push 0x0
00402CF6 8D85 70F8FFFF lea eax,dword ptr ss:
00402CFC 50 push eax
00402CFD FF15 80104000 call dword ptr ds: ; kernel32.CreateProcessW
0x4 注入进程,自解压代码,并在该进程中创建新线程执行恶意代码
00403338 6A 00 push 0x0
0040333A 8B45 F0 mov eax,dword ptr ss:
0040333D 50 push eax ;21000注入大小
0040333E 8B4D D4 mov ecx,dword ptr ss:
00403341 51 push ecx
00403342 8B55 D0 mov edx,dword ptr ss:
00403345 52 push edx ; 0090000注入的起始位置
00403346 8B45 08 mov eax,dword ptr ss:
00403349 50 push eax ; 0xc4, C:\WINDOWS\system32\svchost.exe的进程句柄
0040334A FF15 5C104000 call dword ptr ds: ; kernel32.WriteProcessMemory
004033DC 6A 00 push 0x0
004033DE 6A 00 push 0x0
004033E0 6A 00 push 0x0
004033E2 8B45 F8 mov eax,dword ptr ss:
004033E5 50 push eax ; 0093030,线程执行的起始地址
004033E6 6A 00 push 0x0
004033E8 6A 00 push 0x0
004033EA 8B4D 08 mov ecx,dword ptr ss:
004033ED 51 push ecx ;0xc4, C:\WINDOWS\system32\svchost.exe的进程句柄
004033EE FF15 58104000 call dword ptr ds: ; kernel32.CreateRemoteThread
00402686 6A 00 push 0x0
00402688 8B0D C47A4000 mov ecx,dword ptr ds:
0040268E 51 push ecx
0040268F 8B15 70754000 mov edx,dword ptr ds: ; sQPTEKpJ.00407AE0
00402695 52 push edx
00402696 8B45 F4 mov eax,dword ptr ss:
00402699 50 push eax ;00c90000和00ca0000.这两处注入用于进行之前注入代码自解压操作
0040269A 8B4D 08 mov ecx,dword ptr ss:
0040269D 51 push ecx ; 0xc4, C:\WINDOWS\system32\svchost.exe的进程句柄
0040269E FF15 5C104000 call dword ptr ds: ; kernel32.WriteProcessMemory
00402EFE 6A 00 push 0x0
00402F00 8B8D 14FDFFFF mov ecx,dword ptr ss:
00402F06 8B51 54 mov edx,dword ptr ds:
00402F09 52 push edx
00402F0A 8B45 0C mov eax,dword ptr ss:
00402F0D 50 push eax
00402F0E 8B8D 14FDFFFF mov ecx,dword ptr ss:
00402F14 8B51 34 mov edx,dword ptr ds:
00402F17 52 push edx
00402F18 8B85 18FDFFFF mov eax,dword ptr ss:
00402F1E 50 push eax ; 0xd4,程序自身句柄,此次注入注入到创建的同名进程中
00402F1F FF15 5C104000 call dword ptr ds: ; kernel32.WriteProcessMemory
0x5 创建新线程,执行恶意代码
00402DE7 6A 00 push 0x0
00402DE9 6A 00 push 0x0
00402DEB 6A 00 push 0x0
00402DED 68 D0354000 push sQPTEKpJ.004035D0 ;线程地址为004035d0和00403720
00402DF2 6A 00 push 0x0
00402DF4 6A 00 push 0x0
00402DF6 FF15 64104000 call dword ptr ds: ; kernel32.CreateThread
0x6 访问相应网址,获取本机ip地址,为远控准备
00403763 6A 00 push 0x0
00403765 6A 00 push 0x0
00403767 8D85 F8FEFFFF lea eax,dword ptr ss:
0040376D 50 push eax ; C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\wipmania.com
0040376E 68 70174000 push sQPTEKpJ.00401770 ; http://api.wipmania.net/icon/n.api,访问该网址会返回本机ip地址
00403773 6A 00 push 0x0
00403775 E8 EE260000 call sQPTEKpJ.00405E68 ; jmp 到 urlmon.URLDownloadToFileA
0x7 删除自身及临时文件夹中创建的临时文件
0040357F 50 push eax
00403580 68 4C174000 push sQPTEKpJ.0040174C ; *.gonewiththewings
00403585 FF15 1C114000 call dword ptr ds: ; kernel32.FindFirstFileA
0040358B 8985 BCFEFFFF mov dword ptr ss:,eax
00403591 83BD BCFEFFFF F>cmp dword ptr ss:,-0x1
00403598 75 02 jnz XsQPTEKpJ.0040359C
0040359A EB 25 jmp XsQPTEKpJ.004035C1
0040359C 8D8D ECFEFFFF lea ecx,dword ptr ss:
004035A2 51 push ecx
004035A3 FF15 48104000 call dword ptr ds: ; kernel32.DeleteFileA
0x8 遍历磁盘,若发现u盘则感染u盘,感染方式为伪装u盘文件并隐藏原文件,伪装文件为快捷方式类型,指向木马本体。这部分在注入的进程中执行
00092042 52 push edx ; 遍历A-Z磁盘
00092043 FF15 50100900 call dword ptr ds: ; kernel32.GetDriveTypeA
00092326 52 push edx
00092327 8D85 D8F2FFFF lea eax,dword ptr ss:
0009232D 50 push eax ; 移动木马文件
0009232E FF15 28110900 call dword ptr ds: ; kernel32.MoveFileA
000923A2 68 80000000 push 0x80
000923A7 8D85 F0F4FFFF lea eax,dword ptr ss:
000923AD 50 push eax ; 设置原文件属性为隐藏
000923AE FF15 2C110900 call dword ptr ds: ; kernel32.SetFileAttributesA
00092485 51 push ecx ; 木马文件
00092486 FF15 34110900 call dword ptr ds: ; kernel32.CopyFileA
0x9 对一些网址进行访问操作,包括a.baerr03.com,a.joerv03.com,a.tproxybaaa.ru。由于程序注入时在api重定向方面出现一些错误导致无法读取api,因此此部分无法进行动态分析。不过根据行为可以推测程序在进行远控前的准备工作,来判断服务器是否能够使用。
五.手杀方法
在对u盘进行手杀时可以通过设置文件夹选项来查看隐藏文件和系统文件,对文件属性为快捷方式或可执行文件,而文件图标却为文件夹的文件进行删除操作。由于木马采用老式的隐藏文件名的方法,也就是在文件名之后加上超长的下划线来隐藏后缀名,在xp及以下系统不会显示此下划线,所以不易发现木马,不过在xp以上系统可以发现下划线,可以通过此特征查杀。而在pc端可通过杀软进行查杀。
让导弹飞 发表于 2015-11-7 13:50
可以修改特征码,文件头,伪装资源,最后再加个加密壳,去掉壳的特征,再加个签名既能过掉杀软又能挡掉你这 ...
这东西也是加了壳的,是个仿造vmp实现方式但没有那么强的壳,断关键地方把壳一跑过还是能分析得到 学习学习下 此贴必火,沙发我坐了 可以修改特征码,文件头,伪装资源,最后再加个加密壳,去掉壳的特征,再加个签名既能过掉杀软又能挡掉你这种分析,加个框架就最好了,杀毒就过的差不多了。 最近学校机房老中毒,这又是一个病毒 楼主辛苦了 完全看不懂的节奏。 辛苦了,看看 楼主坚持下去呀{:301_978:} 希望楼主贴一下链接,让小弟也学学手
页:
[1]
2