流程
本次分析的样本为:宏代码释放的dll(也可能被其他的方式代替,初始载荷有多种方式,如压缩包等)→exe加载的.dll(常见的白加黑方式,这个dll才是Beacon)→解密ShellCode2的ShellCode1→ShellCode2→下载文件到本地
根据实际情况,可能有多种组合方式,最核心的问题是快速定位ShellCode并分析。
*由于本人截图没截全或者不满意,所以图片通过调试多次获得,故内存地址稍有不同,请不要太注意不同图片
内存地址一定要对应
推荐Cobalt Strike - Beacon分析文章
结论先行 - 调试重要的断点
Loader:下VirtualAlloc/VirtualProtect断点,通过CreateThread或者CALL 寄存器进入ShellCode1
ShellCode1:LoadLibrary + GetProcAddress通过HASH寻址获取函数地址后,CALL 寄存器进入ShellCode2
ShellCode2:Dump出来的文件通过IDA静态分析配合OD动态分析
宏代码释放Dll1,并执行其导出函数
Dll1有80+MB没法跟: