【网络安全】Qt免杀样本分析

初步研判

SHA256:9090807bfc569bc8dd42941841e296745e8eb18b208942b3c826b42b97ea67ff

我们可以看到引擎0检出,是个免杀样本,不过通过微步云沙箱的行为分析,已经被判为恶意

行为分析

进程行为

可以看到demo显示调用了winver获取了主机的基本信息,然后调起taskmgr,以其身份再次调用自己,可能是一个提权行为

文件行为

没有文件被写入,但是原文件运行完就没了

注册表行为

发现多了一个正常的文件的计划任务,启动权限还是SYSTEM,启动时间每两小时一次

文件还带dll,一看就是白加黑

网络行为

未检出

详细分析

主程序逻辑

主文件是一个pe文件

直接对这个qt样本进行动态调试十分困难,不仅仅是因为采用了Qt框架,还有就是采用PoolParty timer模块,利用内置计时器线程池任务执行shellcode,所以想要一步一步走到shellcode是非常困难的,后续我们使用api断点的方式进行分析

poolparty项目地址

我们在virtualalloc下断就可以发现程序在内存中载入了一个pe文件

这个时候查看调用堆栈就会发现被破坏了,不知道主文件的逻辑哪里调用的shellcode,但是我么可以发现shellcode段的调用还是能看到的,这个时候我们就需要回溯一下了,第一次进入shellcode是什么时候,大概率也是第一个使用virtuallalloc的位置

我们回溯一下,可以发现,第一次载入了一段shellcode,我们把它单独拿出

直接运行shellcode会连接如下ip,不过根据X情报社区的情报,不像是恶意的c2,暂时保留

apihash的味道扑面而来

我们在主程序动调查看堆栈可以看到调用堆栈

shellcode逻辑如图所示

第一段shellcode中创建内存对一段数据的魔改RC4解密,key为数字12345

这里出来的就是上方的dll了

后续shellcode中进行内存对齐并跳转入口段做初始化

然后进入第二个函数

后续找到run函数

最后调用执行dll中的run函数

dll逻辑

逻辑如图所示,获取了主程序的名称,如果不是winlogon就进进入if内,winlogon是用于登录相关的操作的,如果文件名包含winlogon.exe就进入sub_18003c10,这里猜测内部应该是用于常规的权限维持,如果不包含就相当于是初始化,如果是管理员权限就进入sub_180004240不是就进入sub_180001000。

非管理员下运行

因为sub_180001000比较短,所以直接跳转看看这个

首先是拼接出了如下路径

C:\windows\system32\winver.exe

然后凑出了类似UUID的值,貌似是利用RPC通信去做提权操作

用RPCview可以看到是这样一个进程

后续又调用taskmgr.exe

利用taskmgr.exe身份使用CreateProcessAsUserW创建创建子线程,猜测是用于提权的

这样就会有一个是管理员权限的程序,这时候我们回到dll调用位置,以admin身份进入

管理员下运行

首先是赋值了两端code,一段是当前这段shellcode,另一段是RC4未解密的dll数据

紧接着有复制了一段数据,看着有点像之前RC4解密前的dll

然后遍历进程查看是否有winlogon.exe,去获取他的进程号

然后把shellcode写入进程

利用ALPC完成权限维持

这个时候我们就能判断出该进程把shellcode和加密的dll全部写入了winlogon.exe中,然后让shellcode在winlogon中执行,实现行为隐藏。

这个时候我们再回到最初的位置

winlogon.exe内运行

进入后又是一段魔改RC4的解密,解密出的内容居然是一个IP?

非常可疑,这个ip曾经被用于银狐

之后打算创建如下exe并写入数据

C:\Program Files\Common Files\System\Overwolf.exe

貌似是个白文件,可能是白加黑把,我们继续往下看看

然后在同目录下创建"teamspeak_control.dll"和teamspeak_control.bin文件

然后起了一个线程执行shellcode

我们dump出来单独看看,发现就和上面一样的shellcode,执行dll中的run函数,这个放放

流程之后解密获取了计划任务的COM组件CLSID和riid并初始化

然后就是利用COM执行命令了

连接并获取\Microsoft\Windows目录

?Connect@?QITaskService@@TaskServiceImpl@@UEAAJUtagVARIANT@@000@Z

?GetFolder@?QITaskService@@TaskServiceImpl@@UEAAJPEAGPEAPEAUITaskFolder@@@Z

...

结果就是给白加黑创建了计划任务

最后删除自己

至此,关于Qt部分的逻辑就结束了

白加黑分析

经过简单diff,发现他把dll中所有的导出函数内容都设置为了同一个,所以只要随便调用一个就会触发黑行为。。

但是直接在函数下断点无法定位到,我们发现在运行代码后文件被删除了,所以我们可以对文件删除也就是DeleteFileW进行下断,然后回溯找源头

好像有点似曾相识,和我们之前调用dll一样

我们像之前一样在virtualAlloc位置下断,发现堆栈上的并非是导出函数,而是dllentry中创建的线程,不过这都不重要

把同目录下的同名bin文件读取进来了

然后又是解密shellcode并执行dll中的逻辑了,这里就不过多赘述了

至此,逻辑基本成型

逻辑概述

主程序(Qt)利用poolparty timer创建并调用shellcode,shellcode调用dll run函数,run函数给dll提权重新加载,提权后把shellcode注入winlogon.exe,在winlogon.exe中生成白加黑文件并为其创建计划任务(每两小时执行一次),白加黑文件重复前面所有,不过在run时就不需要提权了,因为计划任务是以SYSTEM身份运行的

C2

18.166.104.207

在x情报社区中查询c2可以找到很多同源的样本,而且非常新鲜

木马的类型也被检出,能够帮助我们在初步研判时建立起一个基本框架

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/web/83343.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

window 显示驱动开发-如何查询视频处理功能(六)

D3DDDICAPS_FILTERPROPERTYRANGE请求类型 UMD 返回指向 DXVADDI_VALUERANGE 结构的指针,该结构包含传递D3DDDICAPS_FILTERPROPERTYRANGE请求类型时特定视频流上特定筛选器设置允许的值范围。 Direct3D 运行时在D3DDDIARG_GETCAPS的 pInfo 成员指向的变量中为特定视…

Oracle线上故障问题解决

----重启电脑找不到sid Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor Could not open connection sqlplus "/as sysdba" SQL> shutdown immediate 数据库…

语音信号处理三十——高效多相抽取器(Polyphase+Noble)

文章目录 前言一、Polyphase 多项分解1.定义2.拆分公式3.推导过程1)按模 M M M拆分求和项2)提取因子 4.总结 二、Noble恒等式1. 定义2.Noble恒等式表达方式1)抽取系统的 Noble 恒等式2)插值系统的 Noble 恒等式 2.Nodble恒等式推导…

广告推荐系统中模型训练中模型的结构信息、Dense数据、Sparse数据

下面结合广告推荐系统常见的深度学习模型(比如 Wide & Deep、DeepFM、Two-Tower 等),介绍一下“模型的结构信息”、Dense 数据和 Sparse 数据在训练过程中的角色及处理方式。 模型结构信息 输入层(Input Layer) • Sparse 输入:各类离散高维特征(用户 ID、广告 ID、…

安全生产管理是什么?安全生产管理主要管什么?

安全生产管理是什么?安全生产管理主要管什么? 不管是制造业、建筑业,还是仓储、物流、化工等等,一聊到“安全事故”,大家脑子里最先冒出来的两个词,肯定就是: 人的不安全行为物的不安全状态 …

SecureRandom.getInstanceStrong() 与虚拟机的爱恨情仇

问题描述 使用Ruoyi-cloud 二开,将服务部署到虚拟机上后,准备登录,发现验证码一致加载不出来,接口请求超时! 解决步骤 telnet 虚拟机ipport 发现可以通.curl 接口,发现一致不返回,超时了./code 接口超时&am…

DEM 地形分析与水文建模:基于 ArcGIS 的流域特征提取

技术点目录 一、 GIS理论及ArcGIS认识二、ArcGIS数据管理与转换三、ArcGIS地图制作与发布四、ArcGIS数据制备与编辑五、ArcGIS矢量空间分析及应用六、ArcGIS栅格空间分析及应用七、ArcGIS空间插值及应用八、DEM数据与GIS三维分析九、ArcGIS高级建模及应用十、综合讲解了解更多 …

芯伯乐XBLW GT712选型及应用设计指南

前言 在电子工程领域,精准的电流测量对于众多电路设计与系统监控至关重要。芯伯乐推出的XBLW GT712电流传感器以其独特的优势,成为工程师在诸多应用中的首选工具。本文将深入剖析XBLW GT712的工作原理、性能特点以及应用要点,为工程师提供详…

MySQL查看连接情况

说明:本文介绍如何查看MySQL会话连接情况,方便排查MySQL占用CPU过高或其他问题。 连接数据库 首先,使用命令行连接到MySQL数据库 mysql -u[用户名] -p[密码] -h[主机IP] -P[端口号]如果MySQL就在本机上,那么如下即可 mysql -u…

图文教程——Deepseek最强平替工具免费申请教程——国内edu邮箱可用

亲测有效!只需 4 步即可免费体验最新最强的 AI 助手! 最强AI助手 This account isn’t eligible for Google AI Pro plan Google AI Pro plan isn’t available in some countries or for people under a certain age. 问题终极解决方案: ht…

java转PHP开发需要几步?

PHP基础入门指南(面向Java开发者) 作为Java开发者,你已经掌握了面向对象编程、变量类型和控制结构等核心概念,这将大大加速你学习PHP的过程。下面我将从语法差异和PHP特性两个方面,帮助你快速上手PHP开发。 语法差异…

一种使用 PowerToys 的键盘管理器工具重新映射按键实现在 Windows 上快捷输入字符的方式

文章目录 一、问题背景二、安装 PowerToys三、配置快捷键 一、问题背景 在之前的一篇文章中介绍了使用 Java 程序实现快捷键输入字符的方式(https://blog.csdn.net/TeleostNaCl/article/details/148158298),其原理是利用 后台常驻的 Java 应…

Python环境搭建竞赛技术

Python环境搭建竞赛技术文章大纲 竞赛背景与意义 Python环境搭建竞赛旨在考察参赛者对Python开发环境的熟悉程度,包括工具选择、配置优化和问题解决能力。此类竞赛常见于编程教学、企业内训或技术社区活动,强调实践性和效率。 竞赛核心考察点 环境隔…

Python爬虫实战:研究MarkupSafe库相关技术

1. 引言 在当今信息爆炸的时代,Web 数据爬取与分析已成为获取有价值信息的重要手段。Python 凭借其丰富的库生态(如 requests、BeautifulSoup),成为 Web 爬虫开发的首选语言。然而,爬取的外部数据往往存在安全隐患,特别是当这些数据被用于动态生成 HTML 页面时,可能导致…

Java-43 深入浅出 Nginx - 基本配置方式 nginx.conf Events块 HTTP块 反向代理 负载均衡

点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…

适配器模式深度解析:Java设计模式实战指南与接口兼容性解决方案

适配器模式深度解析:Java设计模式实战指南与接口兼容性解决方案 🌟 嗨,我是IRpickstars! 🌌 总有一行代码,能点亮万千星辰。 🔍 在技术的宇宙中,我愿做永不停歇的探索者。 ✨ 用代码…

类复制.省略 class.copy.elision

class类 复制/移动省略class.copy.elision 类复制省略 (copy elision) 当满足特定条件时,即使所选对象的构造函数和/或析构函数有副作用,实现也被允许省略从相同类型(忽略 cv 限定符)的源对象创建类对象。 在这种情况下&#…

goreplay

1.github地址 https://github.com/buger/goreplay 2.简单介绍 GoReplay 是一个开源的网络监控工具,可以记录用户的实时流量并将其用于镜像、负载测试、监控和详细分析。 3.出现背景 随着应用程序的增长,测试它所需的工作量也会呈指数级增长。GoRepl…

TensorZero:开源 LLM 应用优化与可观测性平台

TensorZero 是一个开源的 LLM(大语言模型)应用全链路优化平台,聚焦于“数据—评估—优化—实验”自动化闭环,极大提升 LLM 产品的可观测性、可优化性和可扩展性。无论你是 GPT 应用开发者,还是需要管理和提升 LLM 服务…

postgreSql数据迁移到openGauss的方案

从postgresql 导出sql 脚本 工具-备份 选择格式为Plain 得到脚本用vscode 打开并编辑 首先使用查找替换功能 语法适配修改‌: 替换不支持的参数如lock_timeout为lockwait_timeout 移除row_security等openGauss不支持的配置 检查并修改物化视图的刷新语法 …