实验环境:

实验设备环境:windows xp
实验工具:IDAPro,processmonitor,processexplore

实验过程

首先我们采用IDA打开exe程序,进入imports导入函数窗口:
恶意代码分析实战—实验12-1
以上圈出的函数很有可能会是有关于进程注入。
在IDA中查看strings窗口:
恶意代码分析实战—实验12-1
我们会观察到很多不常见的dll文件,可能会和注入有关。
1、在你运行恶意代码可执行文件时,会发生什么?
恶意代码分析实战—实验12-1
我们会看到会弹出来一个窗口,其会一分钟弹出来一次。
2、哪个进程会被注入?
查看IDA:
恶意代码分析实战—实验12-1
可以看到其会调用LoadLibraryA加载psapi.dll文件,解析枚举函数,并将解析出的函数保存在dword_408714中,同理下面调用的那两次。
下面就可以进行名称的修改,这样会更加容易识别:
恶意代码分析实战—实验12-1
继续向下分析:
恶意代码分析实战—实验12-1
这里调用了这个函数,这个函数可以获取系统所有进程的PID值,下面掉用了sub_401000这个函数,点击进入:
恶意代码分析实战—实验12-1
这个进程的目的就是查找当前进程是不是explore.exe进程。
返回上一层,如果说找到此进程的话,就会打开此程序的句柄,获得了句柄以后就可以利用这个句柄操纵这个进程:
恶意代码分析实战—实验12-1
操作过程中调用了VirtualAllocEx函数,调用结束以后一个指向被调用进程的指针就会保存在lpBaseAddress中。
恶意代码分析实战—实验12-1
之后会利用WriteProcessMemory向explore.exe中写入数据,写入的数据就是缓冲区中的数据,缓冲区中的数据经过向上分析我们知道其是系统根目录拼接Lab12-01.dll字符串。
向下使用了GetModuleHandleA以及GetProcAddress两个函数获取LoadLibrary函数的地址,并将其保存在了lpStartAddress中,之后会作为CreateRemoteThread函数的参数被调用,这样就可以强制explore.exe强制运行LoadLibrary这个函数,这个函数会加载Lab12-01.dll文件。
总结来说此程序会在远程进程explore.exe程序中创建一个线程,线程的作用就是调用loadlibrary函数,这个函数会调用Lab12-01.dll,也就是远程注入Lab12-01.dll文件。
3、你如何让恶意代码停止弹出窗口?

利用processexplore软件:
恶意代码分析实战—实验12-1
查找Lab12-01.dll:
恶意代码分析实战—实验12-1
其存在于explore.exe程序里面。
现在我们可以关闭此进程,之后File->Run:
恶意代码分析实战—实验12-1
重新启动此程序。
4、这个恶意代码样本时如何工作的?

在IDA分析Lab12-01.dll:
恶意代码分析实战—实验12-1
其主要调用了**CreateThread**函数,此函数主要参数就是lpStartAddress,点击进入:
恶意代码分析实战—实验12-1
可以看到这个函数也是每隔60秒就会创建一次线程,所创建的线程点击进入:
恶意代码分析实战—实验12-1
可以看到此字符串就是弹出窗口中显示的字符串。

相关文章:

  • 2021-07-03
  • 2022-01-06
  • 2021-10-17
  • 2022-01-07
  • 2021-09-24
  • 2021-08-21
猜你喜欢
  • 2021-10-10
  • 2021-10-15
  • 2021-06-26
  • 2021-11-25
  • 2021-12-18
  • 2021-08-05
  • 2021-04-23
相关资源
相似解决方案