这个假微信软件有点套路
lipiwang 2025-05-21 14:51 3 浏览 0 评论
背景
前几天,在某社群中看到有用户往社群共享盘中上传一个名称为协议微信加好友的应用软件,并且在社群中宣称可以无限加好友和不需要通过对方确认就可以直接加好友。这种软件名称和宣传,从个人角度来看,应该就是个属于用钓鱼或远控的恶意软件。出于好奇心就下载了这个软件,并对这个软件进行了功能分析,也就有了这篇文章。
基础分析
(切记:对未知来源和未知风险的软件不可直接在真机环境分析,上虚拟机!)
拿到样本后先通过杀毒软件直接查杀下,先对软件进行辨别下,一些病毒样本是杀毒软件已能查杀识别出的不安全的风险软件。
Trojan/GameHack.ct:把它归类为木马病毒,这类病毒一般是通过网络或系统漏洞进入到系统并进行隐藏,破坏系统或正常软件的安全性,向外泄露用户的隐私信息。通过下图 ExeInfo Pe 可以很直观看到,该样本不是一个正常的 PE 结构,因为这个 PE 工具第一个区段竟然是 .data(数据区段),正常情况下第一个区段是 .text(代码区段)。结合后面的分析,这个样本是正常的 PE 文件,只不过是将 .text 区段修改成为 daima 区段。
通过 CFF Explorer 工具分析 该样本中的 PE 结构和该样本的依赖模块,发现该样本就是一个正常的 PE 文件,这个样本也并没有依赖样本作者自己实现或者第三方的 dll 模块,都是依赖系统模块进行实现的。
通过 Resource Hacker 资源分析工具 分析了该样本新增了一个自定义的 AAAA 资源数据,正常情况下新增的资源数据都是用于存放要释放的 exe 应用程序或者 dll 模块。
功能分析
通过前面的基本数据的分析,对样本有了大概的了解,接下来就结合 IDA 工具和 ollydbg 工具分析下该样本的实际功能。结合样本的分析,这个微信协议加好友,仅仅是一个通过伪造成为微信图标的加载器,真正的木马病毒功能在于从样本中释放出来的应用程序。下面就进行详细的功能分析。
通过上图的 IDA 中伪代码分析 这个样本的 wWinMain 函数也就是样本的入口函数,发现这个样本的整个函数流程也比较简单,就是通过调用系统函数 FindSourceW 查找自身应用中的 AAAA 的资源部分,找到这部分资源后将资源释放到系统的 TEMP 临时目录中,并进行调用 SellExecuteW 系统函数启动所释放的应用程序。启动后就采用 bat 文件方式进行自删除应用。
上图是该样本中实现自删除应用程序的功能,首先往 system32 目录下通过调用 CreateFileW 函数创建一个 hfblddel.bat 的文件,这个文件的内容就是判断自身样本是否还存在,如果存在就直接 del 掉,最后通过调用 ShellExecuteW 函数采用静默的方式执行 bat 文件的内容。
上图是通过启动样本后释放出来的应用程序:微骑兵配套版本、libcurl。接下来就是对这两个样本的实际功能分析。
通过实际对微骑兵配套版本的样本分析(应用程序的签名信息;比对真实应用的文件大小和大概功能),微骑兵配套版本的应用程序实际上就是微信的一个 2.7.1 旧版本的安装包,并没有做任何任务修改。这个病毒样本也应该就是借助微信应用程序 2.7.1 版本的某个漏洞做对应的所谓无门槛加好友功能。
Libcurl 样本分析
这个 libcurl 程序也是通过基于 MPlayer 这个播放器进行修改伪装的恶意软件,这个应用程序的样本也没做好免杀功能,病毒查杀软件一扫描就被识别出来了,这么多套路下来免杀没做好也是个废材。并且这个应用程序也都没做样本的加壳保护,所以分析起来就没有门槛了,仔细分析下,这些所谓的病毒功能都一览无余了。
通过上图 IDA 的流程图中可以看出,该样本功能还是相对比较简单的,但这个也是假象,这个样本的实际功能还是比较强大的,它会通过调用 CreateToolhelp32Snapshot 创建系统快照,然后查找 qq.exe 进程对其进行实现注入功能,所以也是个注入型的木马病毒。
这个样本中采用 TCP 网络通信方式和服务端 103.229.124.168(动态的 IP,香港的 IP 地址)进行通信,这个通信目标就是通过收集运行环境中的敏感数据上传到服务器中。有了这些敏感信息这个攻击者就可以进行售卖敏感信息或者直接利用敏感信息进行二次攻击了。
总结
1、微信加好友应用程序是个加载器,这个程序启动的时候会在临时目录下释放两个文件,等释放和启动两个文件后,这个程序就自动退出了。
2、微骑兵这个程序是微信正常旧版本的安装程序,就是为了复现旧版本的微信无限加好友漏洞。
3、Libcurl 这个真正病毒功能的应用程序,这个程序有 tcp 的网络通信,这个程序除了操作微信外,还有对指定的程序进行遍历和注入 qq.exe 功能,属于注入类型的木马。当然它也还有一些其他功能,由于篇幅有限,这里就不进行详细展示了。
切记,对于未知来源和未知安全性的软件不可因为好奇心去下载点击,现在的网络钓鱼手段之所以能成功,一个很重要的因素就是借助人的好奇心。所以好奇心是能害死猫的。虽然这个样本的免杀功能没做好,没有躲过杀毒软件的查杀,但是总有那些不安装杀毒软件的用户吧。另外,对于这种不确定安全的软件的分析,还是得在虚拟机环境或者专门用于样本的分析环境中对样本进行分析。样本的分析可以重点关注于样本的构成部分、样本的运行时的动态调试具体功能分析、样本的文件读写行为、样本操作注册表行为(常用于自启动行为)、样本的网络通信行为。通过这几个行为的分析基本可以分析出样本的大部分功能。
来源:小道安全
排版:老李
相关推荐
- WIN10系统如何启用net Framework功能
-
当我们安装一些办公软件或是设计软件时,需要.netFramework运行环境,如果没有安装这个运行环境,软件就会无法运行了。那在哪启用呢?下面,我来和大家分享一下第一步,点击开始--设置--在查找设...
- 玩游戏怎能没有.NET Framework 3.5 但你会安装它吗?
-
前段时间NVIDIA发布的最强“煤气灶”引发的不仅仅是显卡价格的剧烈变动(其实也没啥,老的不降价,新的还死贵),还有就是随之而来的一大波游戏,一部分在STEAM平台上搞促销,另外一部分则是不停的放烟雾...
- .Net Framework还是.Net Core?
-
大家都知道,微软在2016年推出了.NetCore框架。后来为了统一,在.NetFramework到了V4.8后便不再更新,同时.NetCore更名为.Net,版本从5.0开始,目前最新版本是....
- .Net Framework详解
-
相信有不少小伙伴遇到过这种情况:安装软件时提示.NetFramework未安装导致软件无法打开,或者需要安装.NetFramework4.0以上的组件。那.NetFramework是什么呢?....
- 远离报错烦恼!深入全面掌握.NET Framework
-
由于Windows系统对.NETFramework这一系统组件有着极为特殊的要求,而部分应用软件及游戏对其的依赖性也近乎达到了驱动级的水准,使用或安装不当会遭遇许多“未知”的问题,因此如何掌握.NE...
- 系统小技巧:深入全面掌握.NET Framework
-
由于Windows系统对.NETFramework这一系统组件有着极为特殊的要求,而部分应用软件及游戏对其的依赖性也近乎达到了驱动级的水准,使用或安装不当会遭遇许多“未知”的问题,因此如何掌握.NE...
- 小菜鸟学Java--如何拿下数组
-
前面谈及到了引用数据类型,数组就是一种,它还是比较重要的一种,本篇就来详细说说它和向量。数组先来说说数组。那么什么是数组呢?它是在数组的基础上的。数组是一种常用的引用数据类型,相同数据类型的元素按照一...
- Java Class 类文件格式看这一篇就够了
-
本文将揭开JavaClass文件的神秘面纱,带你了解Class文件的内部结构,并从Class文件结构的视角告诉你:为什么JavaClass字节码文件可以“写一次,遍地跑”?为什么常量池的计数从1开...
- 八种经典排序算法总结,妈妈再也不用担心我不会了
-
前言算法和数据结构是一个程序员的内功,所以经常在一些笔试中都会要求手写一些简单的排序算法,以此考验面试者的编程水平。下面我就简单介绍八种常见的排序算法,一起学习一下。一、冒泡排序思路:比较相邻的元素。...
- Java 面试题问与答:编译时与运行时
-
在开发和设计的时候,我们需要考虑编译时,运行时以及构建时这三个概念。理解这几个概念可以更好地帮助你去了解一些基本的原理。下面是初学者晋级中级水平需要知道的一些问题。Q.下面的代码片段中,行A和行B所标...
- Java、Set、Map集合框架知识大全,收藏备用
-
前言Java集合框架的知识在Java基础阶段是极其重要的,我平时使用List、Set和Map集合时经常出错,常用方法还记不牢,于是就编写这篇博客来完整的学习一下Java集合框架的知识,如有遗漏和错误,...
- Java反射+注解实现Entity类与Dto类相互转换
-
作者:Mr_Precious链接:https://www.cnblogs.com/scale-lai/p/10164634.html序言近期在工作中管理代码时发现,在项目中从Dao层到Service层...
- Java 最细的集合类总结
-
数据结构作为每一个开发者不可回避的问题,而Java对于不同的数据结构提供了非常成熟的实现,这一个又一个实现既是面试中的难点,也是工作中必不可少的工具,在此,笔者经历漫长的剖析,将其抽丝剥茧的呈现出...
- 我见过的最糟糕代码
-
本文最初发布于jesuisundev.com网站,经原作者授权由InfoQ中文站翻译并分享。在本文中,我将向你展示我见过的一些最糟糕的代码,它们被称为“魔鬼代码”,会带来很严重的后果。然而,我...
- Java面试中最容易忽略的细节,你中了几个?避坑指南送你
-
今日分享开始啦,请大家多多指教~学习Java要明确自己的需求,知道自己要做什么;分析思路,知道自己要怎么做。确定步骤,每一个思路部分用到哪些方法和对象。最后用代码实现,用具体的java语言把思路体现出...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- maven镜像 (69)
- undefined reference to (60)
- zip格式 (63)
- oracle over (62)
- date_format函数用法 (67)
- 在线代理服务器 (60)
- shell 字符串比较 (74)
- x509证书 (61)
- localhost (65)
- java.awt.headless (66)
- syn_sent (64)
- settings.xml (59)
- 弹出窗口 (56)
- applicationcontextaware (72)
- my.cnf (73)
- httpsession (62)
- pkcs7 (62)
- session cookie (63)
- java 生成uuid (58)
- could not initialize class (58)
- beanpropertyrowmapper (58)
- word空格下划线不显示 (73)
- jar文件 (60)
- jsp内置对象 (58)
- makefile编写规则 (58)