20145326蔡馨熤《计算机病毒》——静态分析(3)

20145326蔡馨熤《计算机病毒》——静态分析(3)

基于样例代码lab01-03.exe与lab01-04.exe

  • 相比于VirusTotal,我更喜欢用VirScan,因为前者太慢了。我们可以从报告中获得一些常用的杀毒软件病毒库对于这个文件的比对结果,从而判断是否是病毒文件。
  • lab01-03.exe的扫描报告如下,点击"行为分析"看看。

  • lab01-04.exe的扫描报告如下,点击"行为分析"看看。

  • 利用PEiD进行查壳。
  • lab01-03.exe是FSG的壳,我们可以用一款通用工具“WS UNPACKER”来进行脱壳。但不是所有的恶意代码都能用工具直接脱壳,有些必须要手动脱壳,进行OD导入。很麻烦的~ 脱壳后的恶意代码后缀为“WSDump”。

  • 再用PEiD查看脱壳后的代码。

  • lab01-04.exe并未加壳。显示出的是Microsoft Visual C++ 6.0,这是编译器的信息,说明文件没有加壳,是通过Microsoft Visual C++ 6.0进行编译的。

  • 关于样例代码的导入函数。利用Dependency Walker查看。一提到调用函数就要想到Dependency Walker这款工具,它的功能十分强大。

  • lab01-03.exe的导入函数:

  • lab01-03.exe脱壳后:

  • 我们可以发现样例代码脱壳后,导入函数也产生了变化。

  • lab01-04.exe的导入函数:

  • lab01_04.exe中有三个dll文件:KERNEL32.DLL、ADVAPI32.DLL和MSVCRT.DLL。

  • KERNEL32.DLL中的一些关键导入函数:

    • CreateFileA:打开或创建对象
    • CreateRemoteThread:创建一个在其它进程地址空间中运行的线程(也称:创建远程线程)
    • FindResource:确定指定模块中指定类型和名称的资源所在位置
    • GetWindowsDirectory:获取Windows目录的完整路径名
    • LoadLibrary:加载动态连接库
    • LoadResource:装载指定资源到全局存储器
    • SizeofResource:返回指定资源节的大小
    • WinExec:运行指定程序
  • ADVAPI32.DLL中的一些关键导入函数:

    • AdjustTokenPrivileges:用于启用或禁止,指定访问令牌的特权
    • LookupPrivilegeValueA:函数查看系统权限的特权值
    • OpenProcessToken:数用来打开与进程相关联的访问令牌
  • 根据ADVAPI32.DLL导入函数,我们可以判断这个程序应该是进行了提权的操作。再结合KERNEL32.DLL的导入函数,通过FindResource找到一个资源、然后用LoadResource将指定资源装载到全局存储器,然后将其写在其它位置,并用WinExec执行这个文件。

  • 用来在被感染主机上进行该恶意代码的查找的线索。利用PEview查看。

  • lab01-03.exe

  • 这个网址可能是个挂马网址。执行恶意代码后,应该会生成一个网页版的恶意广告。
  • lab01-04.exe

  • 我们可以看到\system32\wupdmgrd.exe和http://www.practicalmalwareanlysis.com/updater.exe两个字串。wupdmgrd.exe是windows update manger的缩写,是Windows自动升级程序。说明代码很有可能从该网站地址中下载了一个恶意代码,其运行后很有可能在\system32\目录下创建或覆盖一个wupdmgrd.exe文件。

posted on 2017-04-09 14:04  20145326蔡馨熠  阅读(382)  评论(0编辑  收藏  举报

导航