通过替换dll实现后门功能的恶意代码
通过替换Kernel32.dll来实现的后门功能的恶意代码。
该恶意代码存在一个exe可执行文件和一个dll动态链接库,需要分别进行分析
一.待解决问题
- 这个恶意代码执行了什么功能?
- 通过什么方式实现其功能?
- 如何实现长久驻留?
- 有什么关键特征,或者说这一类恶意代码有什么关键特征?
- 如何清除该恶意代码造成的影响?
二.分析流程
- 查壳,查看程序类型
无壳,32位程序 - 使用IDA静态分析
字符串,导入函数,程序逻辑 - 使用Procommon函数查看程序行为
三.具体分析
首先使用Exeinfo PE查看程序类型和是否有加壳保护。

无壳的32位程序,可以直接使用IDA和x32dbg载入。
对dll进行基础静态分析
IDA载入dll程序,查看其字符串和导入,导出函数

- 这里可以有一个创建互斥体的函数,猜测是用于创建互斥体来判断是否已经将某文件感染。
- 同时存在一个127.26.152.13的IP地址和hello,怀疑是不是存在与该IP存在信息交互,以实现有关后门。

导入函数便十分清晰了,存在大量与网络连接有关的API函数,说明该dll实现的就是后门功能,用于和外界进行信息交互。

导出函数则显得有些奇怪,作为一个dll却没有导出函数,怀疑不是直接通过该dll提供功能,应该后续还有操作。
对该dll进行进一步静态分析,理清运行逻辑
dll实现的功能就是与IP为127.26.152.13的主机进行网络通信,并且根据得到的反馈进行相应操作。


通信过程比较简单就是利用网络API函数建立相应连接然后发送信息。
重要的是接下来如何实现后门操作。


这里是根据接受到的字符串来做出相应反馈。
- 如果收到的前5个字符是sleep,那么会执行sleep函数,休眠60s。
- 如果收到的前4个字符是exec则会创建一个新进程,通过动态调试得到创建的新进程的命令行参数就是exec后面的字符串内容。
- 倘若不是以上两个情况,则会返回到开始,再次发送hello。
现在已经将dll所实现的后门功能分析清楚了,接下来需要分析的就是主函数如何利用将该dll载入,并且实现驻留。
IDA载入程序,分析其字符串和导入函数

在字符串当中,发现几个比较关键的地方。存在两个Kernel32.dll的地址,但是仔细观察我们会发现其实一个是Kernel32另一个则是Kerne132。到这里我们可以猜到,恶意程序应该是又创建了一个Kerne132.dll替换了原来的kernel32.dll,新的dll实现的功能不仅有原来Kernel32.dll的功能还应该有自带的那个dll的功能。
我们可以猜测一下要是实现该功能需要几步:
- 需要将原Kernel32.dll的功能复制到Kerne132.dll中。
- 需要将自带的dll复制到Kerne132.dll中。
- 需要将exe文件当中导入表里面的Kernel32.dll替换为Kerne132.dll。

导入函数有两类是我们现在需要密切关注的:
- 文件类函数:包括CreateFileA, CreateMappingA 和 MapViewOfFile等。
- 文件查找类:包括FindNextFileA和FindFirstFileA等。
静态分析函数逻辑
现在根据之前做出的猜测去找相应的功能。

- 这里是对命令行的参数进行判断,只有当参数个数为2并且参数为WARNING_THIS_WILL_DESTROY_YOUR_MACHINE时程序才可以正常运行。后续进行检测分析的时候需要对此进行额外关注。

- 这里将Kernel32.dll中内容复制到自带的dll当中

- 创建Kerne132.dll,将自带dll的内容放入其中。


- 在c盘下扫描所有的exe程序实现dll的替换。
静态分析到此结束,基本上搞清楚了恶意代码的流程,接下来进行行为检测。
在命令行输入相应参数运行程序,注意提前在虚拟机当中拍摄快照,使用Procommon检测程序行为,再使用Wireshark进行抓包分析。
但是由于该恶意代码可能比较老了,需要在Windowsxp下才能运行,虚拟机为Win10系统,无法正常运行,有兴趣的可以自行尝试,关注的重点还是Procommon当中的文件操作和Wireshark当中目地IP为127.26.152.13的通信。
四. 问题解答
- 该恶意代码实现的功能是一个后门功能,可以与外界进行联系,执行外界输出的命令。
- 通过其自带的dll函数实现与目地IP交互功能。
- 通过替换Kernel32.dll文件实现长久驻留,创建了一个名为Kerne132.dll,然后进行替换。
- 关键特征:
存在一个目地IP;
创建了Kerne132.dll;
创建了一个互斥量 - 对该软件打一个补丁,然后反替换一次,即将Kerne132.dll修改为Kernel32.dll。
通过替换dll实现后门功能的恶意代码的更多相关文章
- 恶意代码分析实战-启动一个恶意的DLL
如果不能把恶意代码运行起来,那么动态分析基础技术没有什么用. Windows版本中包含rundll32.exe程序,提供了一个运行DLL的平台. rundll32.exe Dllname,Export ...
- 金蝶KIS专业版替换SXS.dll 遭后门清空数据被修改为【恢复数据联系QQ 735330197,2251434429】解决方法 修复工具。
金蝶KIS专业版 替换SXS.dll 遭后门清空数据(凭证被改为:恢复数据联系QQ 735330197,2251434429)恢复解决方法. [客户名称]:山东青岛福隆发纺织品有限公司 [软件名称]: ...
- rootkit——一种特殊的恶意软件,它的功能是在安装目标上隐藏自身及指定的文件、进程和网络链接等信息,一般都和木马、后门等其他恶意程序结合使用
Rootkit是指其主要功能为隐藏其他程式进程的软件,可能是一个或一个以上的软件组合:广义而言,Rootkit也可视为一项技术. 目录 1 rootkit是什么 2 rootkit的功能 root ...
- NetSarang软件中nssock2.dll模块被植入恶意代码技术分析与防护方案
原文地址:http://blog.nsfocus.net/nssock2-dll-module-malicious-code-analysis-report/ NetSarang是一家提供安全连接解决 ...
- 2017-2018-2 20155314《网络对抗技术》Exp4 恶意代码分析
2017-2018-2 20155314<网络对抗技术>Exp4 恶意代码分析 目录 实验要求 实验内容 实验环境 基础问题回答 预备知识 实验步骤 1 静态分析 1.1 使用virsca ...
- 20155229《网络对抗技术》Exp4:恶意代码分析
实验内容 使用schtasks指令监控系统运行 schtasks指令:允许管理员在本地或远程系统上创建计划任务. SCHTASKS /Create [/S system [/U username [/ ...
- 20155339 Exp4 恶意代码分析
20155339 Exp4 恶意代码分析 实验后回答问题 (1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什么方法来监控 ...
- 20165223《网络对抗技术》Exp4 恶意代码分析
目录 -- 恶意代码分析 恶意代码分析说明 实验任务目标 实验内容概述 schtasks命令使用 实验内容 系统运行监控 恶意软件分析 静态分析 virscan分析和VirusTotal分析 PEiD ...
- Exp4 恶意代码分析
一.原理与实践说明 1. 实践目标 1.1 监控你自己系统的运行状态,看有没有可疑的程序在运行. 1.2 分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工具尽量使用原生指令或sysin ...
- 20164305 徐广皓 Exp4 恶意代码分析
实践目标 1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行. 1.2是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工具尽量使用原生指令或sysinternals,systr ...
随机推荐
- Django4全栈进阶之路12 render 函数和 redirect 函数
在 Django 中,你可以使用 render 函数来渲染模板并将其返回给客户端,也可以使用 redirect 函数来重定向到其他 URL. 在 Django 中,render 函数和 redirec ...
- Windows服务程序管理器 - 开源研究系列文章
这些天弄了一个Windows服务程序管理器,主要是对需要的Windows服务程序进行管理.这个也能够将自己开发的服务程序注册到操作系统里去运行. 1. 项目目录: 目录见下图,对代码进行 ...
- DevEco Studio 3.1 Release | 动态共享包开发,编译更快,包更小
原文:https://mp.weixin.qq.com/s/qPvHZNZuLccAsviBcXtPWw,点击链接查看更多技术内容. 动态共享包(HSP)开发是DevEco Studio 3.1 ...
- 为什么 GPU 更适用于时域算法,而 CPU 更适用于频域算法?
对于懂电脑的人来讲,他们可以简单地区分出电脑的GPU和CPU的应用范畴及其优势,而今天我们要讨论的问题是"为什么 GPU 更适用于时域算法,而 CPU 更适用于频域算法?"在讨论这 ...
- Ubuntu 18.04 (Bionic) 简单快速的安装mongodb
按步骤走,不带脑子式安装(注意4.0版本mongodb官方已经不再支持,以下代码中可以修改mongodb版本号安装,目前最新版为6.0,如果懒得改直接用也可以,文章后边第三章第一条代码会直接升级为最新 ...
- OWASP移动应用安全测试指南中文版
OWASP移动应用安全测试指南(MASTG)是OWASP移动应用安全(MAS)旗舰项目的一部分,是一本涵盖移动应用安全分析过程.技术和工具的综合手册,也是一套详尽的测试案例,用于验证OWASP移动应用 ...
- 你是怎么学习 Java 技术的?
一.Java 语言 Java 语言不只是一门语言. Java 学习不是一蹴而就就可以达成的,它是一个循序渐进,由浅入深,由表及里的过程.尤其需要注意的是不能有浅尝辄耻,不求甚解的态度.每个地方只抓一点 ...
- 国标GB28181协议客户端开发(一)整体流程和技术选型
国标GB28181协议客户端开发(一)整体流程和技术选型 本系列文章将介绍国标GB28181协议设备端的开发过程.本文旨在探讨整体设计和技术选型方面的考虑,为开发人员提供指导和参考.文章将从设备端开发 ...
- 基于 canal 的 RDS Mysql 数据实时同步到 Es 服务器
背景 考虑到我们的数据在密码变大,与数据分析的需求,前面我们是一直在使用 Sphinx 来做全文搜索.主要也是这块我们也没有更为核心的Sphinx 开发人员,从而我们在这块的使用上,一直都还是还有比较 ...
- 2023-06-17:说一说redis中渐进式rehash?
2023-06-17:说一说redis中渐进式rehash? 答案2023-06-17: 在Redis中,如果哈希表的数组一直保持不变,就会增加哈希冲突的可能性,从而降低检索效率.为了解决这个问题,R ...