本文分析一个PE感染木马病毒行为, 澄清基本功能和加载方式,并给出受损文件修复方案。 该木马病毒通过感染系统原有PE和移动介质驻留系统进行复制传播,窃取文件。
前不久一入行不久的朋友种了木马病毒,自己分析了启动方式和病毒本体,清除了病毒本体和其启动项,以为打完收工,可诡异的 iexplore.exe 进程杀了又起周而复始,随求助我来看看,初步查看行为,怀疑是早年灰鸽子常用的进程替换,创建一个挂起状态(SUSPEND)的进程, 填充恶意代码,设置主线程的上下文,启动主线程,自身退出。都是老套路找出本体干掉相关启动项即可解决问题,随着分析深入发现此木马病毒手法虽老,强在巧妙集成,环环相扣,功能较多,应为团队所为,详细跟进了下,随有此文记录下分析过程。
OD继续,步过初始化和花指令,申请内存空间,解密关键代码拷贝到新空间,push 首地址,ret 返回执行,
新进程进行必要的初始化拷贝自身到启动目录后先后创建4个线程,分别完成不同的功能
断下4个线程逐个分析各线程功能分别为
1 模拟浏览器伪装http流量访问 google.com、bing.com、yahoo.com
2 遍历盘符,判断磁盘类型,进行相应操作
3 连接特定域名进行木马数据交互
4 创建ftp服务器将本机所有磁盘设为ftp服务目录
以下是对四个线程的简要分析
设定 User-agent 伪装浏览器流量访问网站,略过。
如为移动介质写 autorun.inf 及相关传染组件
调用 GetLogicalDriveString 获取磁盘列表,GetDriveType获取磁盘类型
.cpl文件为控制面板项,实为PE文件,OD加载起来…
supnewdmn.com 指向ip为 82.112.184.197,归属地俄罗斯
tvrstrynyvwstrtve.com
rtvwerjyuver.com
wqerveybrstyhcerveantbe.com
就supnewdmn.com进行简要分析,其指向Ip为 82.112.184.197,归属俄罗斯
82.112.184.197 对应域名及相关域名解析记录..
木马病毒伪装流量访问大站、移动介质写autorun.inf传染、木马域名回连常见,明目张胆开21端口ftp服务的还比较少见。
ftp用户名口令是明文,找起来比较简单,用户名密码均为:supnewdmn , explorer.exe 访问 ftp://127.0.0.1 所有磁盘皆可访问。
经观察分析,ie并不是杀掉进程后立即启动,而是不定期起来,用Procmon观察,与用户行为有关系,具体到木马中分析,除了写启动目录外,木马调用OpenProcessToken、LookupPrivilegeValue、AdjustTokenPrivileges提升自身权限后,获取进程列表,对相应模块PE进行写操作,对进程需要加载模块添加段。
例如 Acunetix、Wireshark、WinHex、FileZilla 加载的dll zlib.dll
当宿主进程加载该模块时,释放命名为“原进程名+mgr.exe” 的PE文件并执行。
搜 mgr.exe ,最近打开的几个进程都已有模块被感染。
按照添加段的二进制代码特征搜索C盘内 .exe *.dll 文件,已感染485个.
病毒遍历系统所有进程模块,修改PE文件增加段将恶意代码存储在新段中。其修改PE文件以下位置,
struct IMAGE_FILE_HEADER FileHeader
WORD NumberOfSections //段数量加1
struct IMAGE_OPTIONAL_HEADER32 OptionalHeader
DWORD AddressOfEntryPoint //入口点指向新节内
DWORD SizeOfImage //映像大小
DWORD CheckSum //校验和
以上4项,NumberOfSections、SizeOfImage、CheckSum好处理,清除恶意节后计算相应结果修改即可,新入口地址指向新段,在执行完恶意代码后会返回原入口点,通常会存在新段内,跟踪验证。
如上图所示新旧入口地址偏移存储在新加段结尾位置,同时存储了宿主进程的全路径供释放时使用。
以上几个位置,写个简单的python程序就可恢复,恢复完数据记得恢复原文件时间。
与时下的无文件木马相比,传统木马病毒因有文件驻留,更注意自身加壳、加密、PE感染驻留,Dll劫持、白加黑等方法的运用,只要细心分析澄清不难。澄清机理彻底清除,只是攻击追踪溯源的第一步,后续还有大量的工作需要做……