一、基本信息

样本名称:hmieuy.exe
样本编译时间:
样本类型:PE32 executable
样本文件大小:315,912 字节
样本文件MD5 校验值(md5、certutil):f42774332fb637650ff0e524ce1b1685
样本文件SHA-256校验值(shasum、certutil):15846ed8f38c0fac876b96a9d2eb55c3c98a428147ae372ade22efb854cfc4aa
壳信息:无
可能受到威胁的系统:Windows 32位操作系统
样本图标:
image.png
样本功能:
image.png

二、样本行为分析

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位字符随机值

image.png

  • 在C:\Documents and Settings\Administrator\Application Data\Microsoft\Crypto\RSA\目录下创建了一个公钥文件(?),但是实际查看时不存在,发现后续该文件又被删除。

image.png
image.png

  • 加密文件

    • 指定不加密目录和特殊文件目录
    • strcpy+strcat:拼接出新的文件名

      2)注册表行为

  • 在“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 下的键值只执行一次,操作执行后会被自动删除。

image.png

  • 通过相关API函数和查询注册表键值得到系统信息,包括用户名,主机名,处理器类型,操作系统版本,IP地址,磁盘空间,系统语言等,会对得到的信息拼接,通过调用RtlComputerCrc32函数得到一个加密值


3)进程行为

  • 不断调用nslookup.exe程序
    • nslookup.exe:查询Internet域名信息

      image.png

      三、样本执行过程

image.png

image.png
image.png

  • 解密后的shellcode,dump下来继续分析

image.png

  • shellcode分配空间,将PE释放到新空间中,dump

image.png
image.png
image.png

  • 重建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)下,通过注册表实现自启动
  • 结束指定进程(遍历进程)

image.png

四、加密算法分析

  • CRC32:RtlComputerCrc32
  • XOR
  • 公钥密码
  • Base62: 得到可见字符串,不然太明显了,很容易被识别为密文
    • crypt32.CryptBinaryToStrings

      五、通信协议分析

      六、自我保护技术分析

      1、大数据量循环,减慢向下的动态分析速度。

      image.png
      image.png
      image.png

七、IOC

八、预防及修复措施

九、总结

十、分析工具