一、基本信息
样本名称:hmieuy.exe
样本编译时间:
样本类型:PE32 executable
样本文件大小:315,912 字节
样本文件MD5 校验值(md5、certutil):f42774332fb637650ff0e524ce1b1685
样本文件SHA-256校验值(shasum、certutil):15846ed8f38c0fac876b96a9d2eb55c3c98a428147ae372ade22efb854cfc4aa
壳信息:无
可能受到威胁的系统:Windows 32位操作系统
样本图标:
样本功能:
二、样本行为分析
1、网络行为分析
- 伪装火狐浏览器向“ipv4bot[.]whatismyipaddress.com”发送数据并接收
- InternetConnect
- HttpOpenRequest
- HttpAddRequest
- HttpSendRequest
- InternetReadFile
- 创建进程,使用nslookup来对服务器地址进行解析,并且利用管道通信技术读取创建的子进程信息,解析成功则会得到病毒的服务器地址
- CreatePipe
- ReadPipe
- WritePipe
2、本地行为分析
1)文件行为
- 在C:\Users\xxx\AppData\Roaming\Microsoft\缓存目录下创建exe文件,文件名为6位字符随机值
- 在浏览器目录下发现临时缓存文件
- 在C:\Documents and Settings\Administrator\Application Data\Microsoft\目录下创建exe文件,文件名为6位字符随机值
- 在C:\Documents and Settings\Administrator\Application Data\Microsoft\Crypto\RSA\目录下创建了一个公钥文件(?),但是实际查看时不存在,发现后续该文件又被删除。
加密文件
在“HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce\”下新建一个注册表项,以达到开机自启的目的。注册表内容如下图所示,键为11位随机值,值为此前创建的exe文件的路径。
注意: “HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\”和“HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce\”这对注册表路径都是病毒程序常用的自启动路径,区别就是RunOnce 下的键值只执行一次,操作执行后会被自动删除。
- 通过相关API函数和查询注册表键值得到系统信息,包括用户名,主机名,处理器类型,操作系统版本,IP地址,磁盘空间,系统语言等,会对得到的信息拼接,通过调用RtlComputerCrc32函数得到一个加密值
3)进程行为
- 解密后的shellcode,dump下来继续分析
- shellcode分配空间,将PE释放到新空间中,dump
- 重建IAT
- 找到IAT中的位置,用GetProcAddress的地址填充
- 反射注入的方式来让核心Dll自动运行(ReflectiveLoader)
- 通过PEB结构,找到ntdll.dll和kernel32.dll基址,遍历导出函数,对比HASH值,找到ntdll.dll中的NtFlushInstructionCache()函数,kernel32.dll中的LoadLibraryA函数,GetProcAddress函数以及VirtualAlloc函数
- 调用VirtualAlloc,得到一块新的内存空间
- 复制PE各部分
- 修正IAT表
- ReflectiveLoader,这个函数实现的功能就是加载自身。所以我们将Dll写入目标进程后,只需要通过Dll的导出表找到ReflectiveLoader函数并调用它,就可以了
- 创建新线程执行恶意程序
- 创建互斥体防止程序多开
- 创建一个线程来查找卡巴斯基的klif.sys、kl1.sys,F-secure的Fsdfw.sys,赛门铁克的Srtsp.sys、strsp64.sys,诺顿的Navex15.sys、naveng.sys的驱动程序,如果上面的驱动程序存在则退出,否则将自身写入到缓存目录(GetModuleFileName->GetTempPath)下,通过注册表实现自启动
- 结束指定进程(遍历进程)
四、加密算法分析
- CRC32:RtlComputerCrc32
- XOR
- 公钥密码
- Base62: 得到可见字符串,不然太明显了,很容易被识别为密文