好友
阅读权限10
听众
最后登录1970-1-1
|
使用论坛附件上传样本压缩包时必须使用压缩密码保护,压缩密码:52pojie,否则会导致论坛被杀毒软件等误报,论坛有权随时删除相关附件和帖子! 病毒分析分区附件样本、网址谨慎下载点击,可能对计算机产生破坏,仅供安全人员在法律允许范围内研究,禁止非法用途! 禁止求非法渗透测试、非法网络攻击、获取隐私等违法内容,即使对方是非法内容,也应向警方求助!
静态数据
- 病毒文件来源:Practical Malware Analysis书中的lab11-01。
- md5 value:
md5,A9C55BB87A7C5C3C923C4FA12940E719
sha1,D971656C6C605A6E2130AB83A38420E655428F94
sha256,57D8D248A8741176348B5D12DCF29F34C8F48EDE0CA13C30D12E5BA0384056D7
- no packer - vc++ 6.0
- compiler-stamp,0x00000000,Mon Nov 07 02:55:06 2011
- import APIs:
TerminateProcess,0x29E,0x7734,execution,implicit,-,x,kernel32.dll
GetEnvironmentStrings,0x106,0x77C2,execution,implicit,-,x,kernel32.dll
- strings:
ascii,53,0x0000808A,-,registry,-,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
unicode,53,0x0000C6AE,-,registry,-,Software\Microsoft\Windows NT\CurrentVersion\Winlogon
- resource区存在PE标志头:4D5A,可能是藏有病毒文件。
动态数据
- 启动lab11-01.exe时,
- 创建进程: Explorer.EXE, Lab11-01.exe, svchost.exe.
- 在lab11-01.exe同一路径下创建文件msginal32.dll.
IDA 分析
分析 lab11-01.exe
- 释放lab11-01.exe的resource区, 创建名为msgina32.dll的文件,把resource的内容复制到msgina32.dll中.
mov edx, [ebp+hResData]
push edx ; hResData
call ds:LockResource ; Retrieves a pointer to the specified resource in memory.
打开msgina32.dll文件复制resource内容
push offset aWb ; "w" Opens an empty file for writing.
; b Open in binary (untranslated) mode.
push offset aMsgina32Dll ; "msgina32.dll"
call _fopen
写入内容:
mov [ebp+pFile], eax
mov ecx, [ebp+pFile]
push ecx ; FILE *
mov edx, [ebp+dwSize]
push edx ; size_t
push 1 ; size_t
mov eax, [ebp+pResData]
push eax ; void *
call _fwrite ; write data from pResData to pFile named msgina32.dll
- 获得当前执行模块的完整路径;
push ecx ; lpFilename
push 0 ; hModule
call ds:GetModuleFileNameA
- 操作注册表: 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon',意味着每次系统启动的时候都会加载msgina32.dll。
- 键 = "GinaDLL".
- 值 = msgina32.dll full path.
mov ecx, [ebp+size]
push ecx ; cbData
mov edx, [ebp+filename]
push edx ; lpData
push 1 ; dwType
push 0 ; Reserved
push offset ValueName ; "GinaDLL"
mov eax, [ebp+phkResult]
push eax ; hKey
call ds:RegSetValueExA
分析 msgina32.dll
DllMain
- 加载msgina.dll,由于注册表被修改的原因,每次系统启动会自动加载该DLL。
lea ecx, [esp+20Ch+pFilePath]
push offset String2 ; "UTF-16LE", '\MSGina',0
push ecx ; lpString1
call ds:lstrcatW ; pFilePath = syspath + "\\MSGina"
lea edx, [esp+20Ch+pFilePath]
push edx ; lpLibFileName
call ds:LoadLibraryW
分析export函数WlxLoggedOutSAS。
- 获得WlxLoggedOutSAS函数地址。
push esi
push edi
push offset aWlxloggedoutsa_0 ; "WlxLoggedOutSAS"
call get_func_address
- 调用标准msgina.dll中的WlxLoggedOutSAS函数。
mov eax, [esp+0Ch+pProfile]
mov esi, [esp+0Ch+pNprNotifyInfo]
mov ecx, [esp+0Ch+phToken]
mov edx, [esp+0Ch+pdwOptions]
add esp, 4
push eax
mov eax, [esp+0Ch+pLogonSid]
push esi
push ecx
mov ecx, [esp+14h+pAuthenticationId]
push edx
mov edx, [esp+18h+dwSasType]
push eax
mov eax, [esp+1Ch+pWlxContext]
push ecx
push edx
push eax
call edi
- 打开并写入名为msutil32.sys的log文件。
push offset Mode ; Mode
push offset Filename ; "msutil32.sys"
call _wfopen
总 结
病毒文件lab11-01首先创建文件msgina32.dll,并将藏于其resource区的PE文件二进制内容复制到msgina32.dll;下一步病毒修改注册表使得每次系统启动都可以自动加载msgina32.dll。在msgina32.dll中,加载系统文件msgina,这样在每次密码输入时就自动写入msutil32.sys。
|
免费评分
-
查看全部评分
|