付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
浅谈土木恶意程序的逆向取证方法
1木马恶意程序特洛伊木马恶意软件隐藏在受害者的计算机系统和智能终端上,并秘密记录用户输入的敏感信息,窃取受害者主机上的敏感文件。此外,它还可以收听受害者的声音、视频和通信数据。目前,木马恶意程序常用的取证方法是逆向分析法2lordpe分析木马程序使用不同系统函数进行的关键信息通过对多个木马样本进行分析,我们发现不管是什么类型的木马恶意程序通常都要实现几个特定的核心功能,如进程隐藏、开机自动运行、躲避杀毒软件查杀、绕过防火墙拦截、实现与攻击者的远程通信联络、实现特定的恶意功能等基于“关键函数”断点设置的木马恶意程序取证方法如图1所示,首先取证工具Lordpe分析木马程序使用了哪些系统函数,从一些关键的系统函数可以初步判断出恶意程序采用了哪些功能(例如木马使用了createfile和deletefile函数,说明它很可能向硬盘释放了特定文件,同时还进行了文件删除操作),在关键函数上设置访问断点,动态调试木马程序,程序会自动停在断点位置,从函数的传入参数可以提取出关键的涉案信息(例如创建或删除的文件名称和路径),使用这种方法可以简化木马程序的取证分析工作。本文以一款名为“红蜘蛛”的盗号木马为例,研究基于“关键函数”断点设置的恶意程序取证分析方法。这款木马程序文件的名称是“红蜘蛛v119版.exe”,文件大小为57344字节,文件的MD5值为7C49FF0DE960DC67C1F52C00CD9E3423。本文研究对象为脱壳后的木马恶意程序,具体的脱壳技术不在文章讨论范围内。3木马结果的对比首先使用Loadpe工具打开“红蜘蛛v119版.exe”,查看木马程序使用了哪些系统函数,结果如图2所示。木马程序使用了KERNEL32.dll和ADVAPI32.dll两个动态链接库,点击每个dll文件名,会显示出木马使用了该dll文件中的哪些系统函数。我们首先对CreateFile函数进行分析,函数的原型定义如图3所示。这是一个多功能函数,可打开或创建以下对象:通信资源、控制台、磁盘驱动器、目录、文件、管道、邮槽,返回可访问的句柄。函数共有6个参数,lpFileName表示即将打开的文件名称,通过这个参数可以确定木马创建的文件名称和存储路径。dwDesiredAccess指定访问对象的模式,如果值为GENERIC_WRITE表示允许对设备进行写访问;如果该值为GENERIC_READ表示允许对设备进行读访问;如果值为零,表示只允许获取与一个设备有关的信息。dwShareMode表示共享模式,如果值为零表示不共享,例如值为FILE_SHARE_READ表示读请求可以成功执行;值为FILE_SHARE_DELETE表示删除请求可以成功执行;如果值为FILE_SHARE_WRITE表示写请求可以成功执行。lpSecurityAttributes指向一个SECURITY_ATTRIBUTES结构体指针,定义了文件的安全属性。dwCreationDisposition代表文件如何创建,具体含义结合木马实例分析。dwFlagsAndAttributes表示文件属性。hTemplateFile存储一个文件或设备句柄,表示以这个参数给出的句柄为模板创建文件。它将指定文件的相关属性复制到新创建的文件上,这个参数可用于将某个新创建文件的属性设置成与现有文件属性完全相同,这种情况下函数会自动忽略dwFlagsAndAttributes参数。通常情况下这个参数值设置为NULL,表示不使用任何模板。使用Ollydbg在CreateFileA函数上设置访问断点,当木马程序中断在这个位置时,从lpFileName参数可以获得木马向硬盘释放文件的路径和名称。图4显示的是木马程序第一次中断时Ollydbg显示的系统堆栈状态,通过系统堆栈可以看到木马程序传递给CreateFileA函数的7个参数值。第一个参数FileName显示木马程序向C:\WINDOWS\system32路径释放了一个名为redspider.dll的文件。再次按下F9键,木马程序第二次中断在CreateFileA函数的入口位置。图5显示的是第二次中断时,系统堆栈显示的参数信息。可见木马向C盘根目录释放了一个名为inflexible.wav的文件。从扩展名来看,inflexible.wav应该是一个音频文件。但是,查看该文件属性显示大小只有303字节,显然不符合音频文件的容量特点。使用记事本打开这个文件,查看到的结果如图6所示。这组数据疑似木马设置的相关参数,发送邮件服务器使用的是,发信邮箱是stp888@163.com,邮箱登录密码是86982430。其他信息的含义和作用需要通过汇编代码分析来加以确定。4木马的检测算法设计为了防止恶意程序被发现,木马运行之后通常不会在受害者主机系统内产生一个独立的进程,而是将自身隐藏到某个合法进程之内。目前经常采用的进程隐藏技术是远程线程植入,木马源程序以dll文件形式存在,通过远程线程植入方式进入目标进程运行。这样一来,就可以获得合法进程的相关权限。例如用户计算机上的防火墙软件通常会拦截某个客户程序与因特网的主动连接请求,但是不会拦截IE浏览器进程与外界的通信连接,否则用户将不能浏览任何网页信息。木马程序只要将自身植入IE浏览器进程,就可以合法进程身份通过防火墙的拦截,与外界进行网络通信。使用Loadpe查看到“红蜘蛛v119版.exe”木马程序使用了4个涉及远程线程植入的系统函数:OpenProcess、VirtualAllocEx、WriteProcessMemory和CreateRemoteThread。OpenProcess函数的主要功能是打开一个进程,同时返回该进程的句柄。WriteProcessMemory函数负责将dll恶意程序数据内容写入到合法进程的地址空间里。CreateRemoteThread函数负责远程启动dll恶意程序。从这些系统函数传递的参数里可以获得重要的涉案信息,参数关系分析如图7所示。OpenProcess函数的第三个参数dwProcessId代表被打开的目标进程PID,利用这个数值可以确定木马附着到哪个系统进程上。OpenProcess函数的返回值是一个HANDLE类型的句柄,这个值和WriteProcessMemory函数的第一个参数以及CreateRemoteThread函数的第一个参数值相同,通过该值可以进行关联。WriteProcessMemory函数的第三个参数lpBuffer存储了dll恶意程序的路径和名称,第二个参数存储了恶意程序写入内存的起始地址,这个参数和CreateRemoteThread函数的第五个参数值相同。通过这些函数之间的相互关系,可以确定一个dll恶意程序被加载到哪个系统进程之中。使用Ollydbg对“红蜘蛛v119版.exe”木马程序进行分析,在图7所示3个函数上设置断点,提取出函数中断时传递的内存参数,分析结果如图8所示。OpenProcess函数的ProcessId参数值为3784,调出任务管理器查询到这个PID对应的是explorer进程。函数返回一个句柄,值为0X0028,这个值与WriteProcessMemory函数和CreateRemoteThread函数的第一个参数相同,说明木马使用这两个函数向explorer进程写入数据。WriteProcessMemory函数的第三个参数存储了被写入dll文件的存储路径和名称,查看起始地址为0X00407CFC的内存区域可以看到“C:\WINDOWS\system32
edspider.dll”字符串,可见恶意dll程序被附着到explorer进程。5对木马传递参数值进行分析木马程序为了实现对受害者主机的长久、稳定控制,通常要实现开机自动运行机制,即木马程序在受害者主机每次开机后自动运行。木马自动运行方式的分析对于从主机内清除恶意程序至关重要。使用Loadpe查看“红蜘蛛v119版.exe”,发现在ADVAPI32.dll链接库下存在3个与注册表操作相关的系统函数:RegOpenKeyExA、RegSetValueExA和RegCloseKey函数。对注册表执行写入操作是实现程序开机运行的常用方式,我们先来分析这几个函数的参数关系。图9说明了RegOpenKeyEx和RegSetValueEx函数的参数关系,RegOpenKeyEx函数的第一个参数hKey存储了准备打开的主键、第二个参数lpSubKey存储了准备打开的子键、第三个参数phKResult和RegSetValueEx函数的第一个参数存储的是相同的句柄值,通过这个数值可以确定是对注册表哪个键值进行操作。RegSetValueEx函数的第二个参数lpValueName存储的是写入的变量名称,第五个参数存储写入的变量值。通过在这两个函数上设置断点,可以获得传递的参数值,进而明确木马向那个注册表键值写入了什么数据。使用Ollydbg对“红蜘蛛v119版.exe”木马程序进行分析,在图9所示两个函数上设置断点,提取出函数中断时传递的参数值,分析结果如图10所示。RegOpenKeyEx函数的前两个参数hKey和SubKey指明木马操作的注册表键值为“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”,这个键值存储的是计算机的开机启动项,该键值下的应用程序将在计算机开机后自动运行。第五个参数存储的是打开句柄,本例值为0X00000024,这个数值与RegSetValueEx函数的第一个参数值相同,通过该值可以确定RegSetValueEx函数是对之前打开的键值进行写入操作,写入的变量名为RedSpider,变量值存储在第五个参数中,即内存地址0X00407C84位置。直接查看这个内存位置,可以看到存储的数值为“C:\WINDOWS\system32
edspider.exe”,说明计算机开机后,将自动运行系统目录下的redspider.exe程序,但此时该程序文件还没有生成。6木马主体行为分析“红蜘蛛v119版.exe”主体程序引用的动态链接库中没有使用到网络通信函数和键盘监控等相关函数,因此,对主体程序的分析可以暂时告一段落,分析结论如图11所示。通过文件操作行为分析发现木马向系统目录下释放了一个名为redspiderdll动态链接库文件,向C盘根目录下释放了一个名为inflexible.wav的参数配置文件。通过进程隐藏方式分析发现木马程序通过远程线程植入的方式将redspider.dll植入explorer进程空间运行。通过自动运行方式分析发现木马在注册表启动键下写入键值,实现开机自动运行redspid
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 肌力评估的护理教育
- 静脉给药的标准化操作流程
- 2026 塑型维持期艾窝窝课件
- 自然分娩的护理技巧分享
- 青年护士科研思维培养
- 肾绞痛的急性发作期护理
- 肝硬化腹水的护理伦理
- 脑梗塞康复护理:营养支持与膳食指导
- 《中西医联合防治盆腔炎性疾病临床应用指南》总结2026
- 胶质瘤患者的营养支持护理
- 2023-2024学年高中主题班会 高中生怎样与老师沟通交往 课件
- 2024年全球人工智能在农业领域得到广泛应用
- 2023年安徽省合肥市蜀山区小升初数学真题及答案
- 平面构成-比例与分割课件
- 2023【青岛版】小学三年级数学上册课件-【信息窗2 除减、除加混合运算计算法则】
- 2022年一级注册建筑师考试《建筑材料与构造》真题及详解
- RB/T 089-2022绿色供应链管理体系要求及使用指南
- McKinsey---开发一个综合的供应链绩效指标体系
- LY/T 2083-2013全国营造林综合核查技术规程
- GB/T 10051.3-2010起重吊钩第3部分:锻造吊钩使用检查
- GQY数字实验室实验手册定稿
评论
0/150
提交评论