恶意代码分析11-2
一.前置
做一些字符的收集 strings.exe .\Lab11-02.dll
这边也可以知道 dll利用 AppInit_DLLs 实现挂钩安装并且关联注册表SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows
strings.exe .\Lab11-02.ini 看样子是个加密值 或者是 钥匙
1.这个恶意的DLL 导出了什么
静态分析 第一个函数 GetModuleFileNameA 检索模块并且加载当前进程
看到调用偏移量是 Installer +76
往下跟进入 到了installer() 函数里 知识点 是 rundll32.exe 模块 来启动 此dll
也就是说这边导出的是 installer 启动命令是 rundll32.exe Lab11-02.dll,installer
使用静态分析就不做动调
2.使用rundll32.exe 安装这个恶意代码后,发生了什么?恶意代码的驻留?
在刚才跟进 偏移位是+76 更进函数是 CopyFileA() 函数中的属性
安装后会把文件拷贝在系统目录
运行后根据上面注册表的自信会是
SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs
C:\Windows\System32\spoolvxx32.dll
在系统system32目录文件spoolvxx32.dll,在注册表AppInit_DLLs里添加了这个dll
安装这个dll ini文件也得放在 C:\Windows\System32\ 这个下面
驻留方式 看到恶意函数AppInit_DLLs
https://learn.microsoft.com/zh-cn/windows/win32/dlls/secure-boot-and-appinit-dlls
AppInit_DLLs基础结构允许将自定义 DLL 加载到每个交互式应用程序的地址空间中,从而提供了一种简单的方法来挂钩系统 API。 应用程序和恶意软件都使用 AppInit DLL 的基本原因相同,即挂钩 API;加载自定义 DLL 后,它可以挂钩已知的系统 API 并实现备用功能。 只有一小部分新式合法应用程序使用此机制来加载 DLL,而大量恶意软件使用此机制来破坏系统。 即使是合法的AppInit_DLLs也会无意中导致系统死锁和性能问题,因此不建议使用AppInit_DLLs
官方回答 也就是说 关于他的全局调用都会被注入,根据学术来看 关于user32.dll 的程序都会被添加
window 8 后可禁用 可能对内网win7伤害大
也就是上面分析出来这一串 C:\Windows\System32\poolvxx32.dll
这是注册表的创建值也就是上面的
SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs
驻留方式是 通过在系统目录创建文件 poolvxx32.dll 对文件进行复制 关联进所添加的 AppInit_DLLs 注册表实现永久驻留
3.恶意代码的采用的用户状态Rookit技术是什么?
从这个部分就使用了 HOOK 技术 可以看到函数 CreateFuLeA 可以用来HOOK如何分辨 HOOK 技术 后面会写一篇HOOK 常用的函数和手法
createFileA 函数 第一个if ReadFile()下 也就是说这边会先读取文件ini 到缓存区 成功的话第二个 就是 对其进行解密
这边的操作可以看CLoseHarndle 关闭打开的对象句柄 会实现一个跳转 尝试跟进去看
是一个inline hook 技术 前面收集到的exe 字符串 都会在这里被调用 sub_100014B6函数首先获取当前进程名
GetModuleFileNameA
会对字符串大写化 https://learn.microsoft.com/zh-cn/cpp/c-runtime-library/reference/toupper-toupper-towupper-toupper-l-towupper-l?view=msvc-170
EXE 大写化 分析EXE
分析上面的jz 判断 跟进其中 看样子是一个暂停进程
HOOK wsock32.dll的send函数
4.HOOK代码做了什么?
跟进被hook的函数 send 的 sub_1000113D
代码大概是 RcptTo_2 复制进缓冲区 在根据上面的 ini 大概是把 ini数据解密后复制进缓冲区
HOOK 做了send 函数 方法 来进行 添加 RCPT TO 2 : INI 文件中的解密数据
5.那些进程执行了恶意攻击,为什么?
针对THEBAT.exe、OUTLOOK.exe、MSIMN.exe进程进行攻击 这次劫持目标是电子邮箱客户端程序
6.ini文件的意义是什么?
ini里面文件进行解密
写出解密脚本
1 | #include<iostream> |
dll -> system32\spoolvxx32.dll -> 设置注册表实现永久驻留 appinit_Dll->user32 >>> spoolvxx32.dll -> hook wsock32.dll >>>>>> billy@malwareanalysisbook.com