Hyabcd 发表于 2015-11-7 13:24

一枚感染型木马分析

本帖最后由 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端可通过杀软进行查杀。















Hyabcd 发表于 2015-11-7 14:01

让导弹飞 发表于 2015-11-7 13:50
可以修改特征码,文件头,伪装资源,最后再加个加密壳,去掉壳的特征,再加个签名既能过掉杀软又能挡掉你这 ...

这东西也是加了壳的,是个仿造vmp实现方式但没有那么强的壳,断关键地方把壳一跑过还是能分析得到

冰绿茶 发表于 2016-1-23 12:59

学习学习下                                             

冷陌baby丶 发表于 2015-11-7 13:33

此贴必火,沙发我坐了

让导弹飞 发表于 2015-11-7 13:50

可以修改特征码,文件头,伪装资源,最后再加个加密壳,去掉壳的特征,再加个签名既能过掉杀软又能挡掉你这种分析,加个框架就最好了,杀毒就过的差不多了。

tusdasa翼 发表于 2015-11-7 16:59

最近学校机房老中毒,这又是一个病毒

412660117 发表于 2015-11-7 20:38

楼主辛苦了

松海 发表于 2015-11-7 23:12

完全看不懂的节奏。

qibanggang 发表于 2015-11-8 00:30

辛苦了,看看

Nian 发表于 2015-11-8 09:26

楼主坚持下去呀{:301_978:}

安静的小酒吧 发表于 2015-11-12 08:24

希望楼主贴一下链接,让小弟也学学手
页: [1] 2
查看完整版本: 一枚感染型木马分析