简单逆向了下今天发布的APT-C-63的入侵痕迹检测特征,大致如下:
工具内嵌的检测痕迹是加密的数据,如下。
很好解密的,本来就需要在进程内存中搜索有没有这个特征来判断系统是否遭到入侵。看到加密特征的第一眼的想法是想避免后续被杀毒软件检出来报毒吧?于是先把特征给简单混淆下?想得很周到。
花了一个小时逆向完了,最终发现这个工具是模拟杀毒扫描的方法检测的,利用的是片段哈希比对的方式。
原理比较简单,就是利用获取当前所有进程快照API方法遍历系统的所有可见进程获取到每个进程存在的可读可写可执行的进程内存区域(0x80),同时内存区域的最大空间不超过0x3000,符合这些条件后便读取此进程内存区域的前0xF0大小数据然后计算md5值,得到的md5值与内嵌的md5值进行比较,相等则认为存在被入侵的痕迹。
更倾向于内存驻留,可能本地的落地文件是加密状态没法直接扫描。使用的内嵌md5值如下:
32FA09E3392A66A3AD0D5D071FEDF733
D75D394A9C4597E9577C249A96FD7115
348DEEEB73D69B8144DBB06C7C9B99BB
D1792DED8A36C787BB5E79EE8DE1A344
5723EBF487F66E63305EB973C3D0AAE4
C21EAF01D5670488648AF17181748E50
0BE806248961530A521177F14B1C922C
以为可以还原出来自己扫下,不过是模拟杀毒的方法检测的,就很单一了。?
原文始发于微信公众号(OnionSec):MFC逆向的小练习