首页
社区
课程
招聘
[原创]通过替换dll实现后门功能的恶意代码
发表于: 2023-7-30 11:37 5011

[原创]通过替换dll实现后门功能的恶意代码

2023-7-30 11:37
5011

该恶意代码存在一个exe可执行文件和一个dll动态链接库,需要分别进行分析


无壳的32位程序,可以直接使用IDA和x32dbg载入。

IDA载入dll程序,查看其字符串和导入,导出函数

dll实现的功能就是与IP为127.26.152.13的主机进行网络通信,并且根据得到的反馈进行相应操作。


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


这里是根据接受到的字符串来做出相应反馈。


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


导入函数有两类是我们现在需要密切关注的:

现在根据之前做出的猜测去找相应的功能。

在命令行输入相应参数运行程序,注意提前在虚拟机当中拍摄快照,使用Procommon检测程序行为,再使用Wireshark进行抓包分析。
但是由于该恶意代码可能比较老了,需要在Windowsxp下才能运行,虚拟机为Win10系统,无法正常运行,有兴趣的可以自行尝试,关注的重点还是Procommon当中的文件操作和Wireshark当中目地IP为127.26.152.13的通信。

  1. 这个恶意代码执行了什么功能?
  2. 通过什么方式实现其功能?
  3. 如何实现长久驻留?
  4. 有什么关键特征,或者说这一类恶意代码有什么关键特征?
  5. 如何清除该恶意代码造成的影响?
  1. 查壳,查看程序类型
    无壳,32位程序
  2. 使用IDA静态分析
    字符串,导入函数,程序逻辑
  3. 使用Procommon函数查看程序行为
  1. 这里可以有一个创建互斥体的函数,猜测是用于创建互斥体来判断是否已经将某文件感染。
  2. 同时存在一个127.26.152.13的IP地址和hello,怀疑是不是存在与该IP存在信息交互,以实现有关后门。

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

    导出函数则显得有些奇怪,作为一个dll却没有导出函数,怀疑不是直接通过该dll提供功能,应该后续还有操作。
  1. 如果收到的前5个字符是sleep,那么会执行sleep函数,休眠60s。
  2. 如果收到的前4个字符是exec则会创建一个新进程,通过动态调试得到创建的新进程的命令行参数就是exec后面的字符串内容。
  3. 倘若不是以上两个情况,则会返回到开始,再次发送hello。
  1. 需要将原Kernel32.dll的功能复制到Kerne132.dll中。
  2. 需要将自带的dll复制到Kerne132.dll中。
  3. 需要将exe文件当中导入表里面的Kernel32.dll替换为Kerne132.dll。
  1. 文件类函数:包括CreateFileA, CreateMappingA 和 MapViewOfFile等。
  2. 文件查找类:包括FindNextFileA和FindFirstFileA等。
  1. 这里是对命令行的参数进行判断,只有当参数个数为2并且参数为WARNING_THIS_WILL_DESTROY_YOUR_MACHINE时程序才可以正常运行。后续进行检测分析的时候需要对此进行额外关注。
  2. 这里将Kernel32.dll中内容复制到自带的dll当中
  3. 创建Kerne132.dll,将自带dll的内容放入其中。

  4. 在c盘下扫描所有的exe程序实现dll的替换。
  1. 该恶意代码实现的功能是一个后门功能,可以与外界进行联系,执行外界输出的命令。
  2. 通过其自带的dll函数实现与目地IP交互功能。
  3. 通过替换Kernel32.dll文件实现长久驻留,创建了一个名为Kerne132.dll,然后进行替换。
  4. 关键特征:
    存在一个目地IP;
    创建了Kerne132.dll;
    创建了一个互斥量
  5. 对该软件打一个补丁,然后反替换一次,即将Kerne132.dll修改为Kernel32.dll。
  • 这个恶意代码执行了什么功能?
  • 通过什么方式实现其功能?
  • 如何实现长久驻留?
  • 有什么关键特征,或者说这一类恶意代码有什么关键特征?
  • 如何清除该恶意代码造成的影响?
  • 查壳,查看程序类型
    无壳,32位程序

  • [培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

    收藏
    免费 0
    支持
    分享
    最新回复 (3)
    雪    币: 25953
    活跃值: (5037)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    2
    是不是应该有图?
    2023-7-30 13:08
    0
    雪    币: 41
    能力值: ( LV1,RANK:0 )
    在线值:
    发帖
    回帖
    粉丝
    3
    抱歉,投的时候没注意,好像md的图片链接没有生效,可以看看https://www.cnblogs.com/ONEZJ/p/17591205.html,这个是有图的
    2023-7-30 13:44
    0
    雪    币: 8397
    活跃值: (3628)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    4
    在你能替换之前,纯属伪命题。
    2023-7-31 10:36
    0
    游客
    登录 | 注册 方可回帖
    返回
    //