
最新的360免杀技术,采用壳码字符混淆方法
5星
- 浏览量: 0
- 大小:None
- 文件类型:PDF
简介:
本文章介绍了一种新的360免杀技术,利用壳码字符混淆方法来提高代码的安全性和隐蔽性。该技术能够有效避开安全软件的检测。
基于Shellcode的字符混淆是一种常见的技术手段,用于使恶意代码避开反病毒软件及其他安全解决方案的检测。壳代码(Shellcode)是一段简洁且直接执行特定功能的小型机器码片段,常被用来创建后门或运行命令行操作等任务。由于其精简性和直接性,使得它难以被识别和拦截,尤其是当它经过混淆处理之后。
字符混淆的基本原理
字符混淆的目标是改变壳代码的外观形态而不影响其实现的功能。以下是几种常见的字符混淆方法:
1. **异或(XOR)加密**:
- 原理:通过将密钥与Shellcode中的每个字节进行异或运算,来对Shellcode进行加密。
- 特点:由于两次相同的异或操作会相互抵消,因此可以用来实现加解密过程。
2. **插入随机字符**:
- 方法:在关键的壳代码字节之间加入随机生成的字符或指令。
- 处理:这些额外添加的内容需要被跳过或者忽略掉,在执行过程中不会影响到Shellcode的实际功能。
3. **编码解码**:
- 实现方式:将原始的Shellcode转换成不同的格式,比如Base64编码的形式。
- 解码过程:在开始运行前必须先对已编码的数据进行适当的解码操作以恢复原版代码。
4. **变形和动态加载**:
- 动态生成技术的应用使得每次执行时所使用的壳代码都是独一无二的版本。
- 加载机制:使用特别设计的加载器来处理这些变化中的Shellcode,并在内存中正确设置好后运行它。
实现示例
下面是一个简单的Python异或混淆例子:
```python
import struct
# 原始Shellcode数据
shellcode = b\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69
key = 0x42 # 密钥设置为0x42
# 加密过程
encrypted_shellcode = bytes([b ^ key for b in shellcode])
# 解密过程
decrypted_shellcode = bytes([b ^ key for b in encrypted_shellcode])
print(原始Shellcode:, shellcode)
print(加密后的Shellcode:, encrypted_shellcode)
print(解密后的Shellcode:, decrypted_shellcode)
```
通过上述方法,恶意软件可以有效地避开现有的安全防护措施。本段落不仅介绍了几种常见的混淆技术及其工作原理,并且还提供了一个具体的实现示例来帮助读者理解这些概念的实际应用情况。
以S-240622-90d8c3样本为例,这是一个名为`hoshino.exe`的恶意程序,SHA256值为`90d8c3bab03272b395e4f9aa9f67f723a843b00a68837c715df08b39546ec3c8`,大小约为1.26MB。此样本被多个安全引擎识别为CobaltStrike木马家族的一员,并通过静态分析、动态分析等多种手段确认了其恶意性质。
该样本中可能应用的混淆技术包括但不限于:
- **异或加密**:用于对Shellcode进行加密处理,从而增加检测难度。
- **随机字符插入**:在关键位置加入额外的内容以进一步提高混淆效果。
- **动态生成**:采用这种方法使得每次执行时所使用的代码都不同。
通过对Shellcode实施字符混淆技术,恶意软件能够显著提升其隐蔽性。这不仅对安全研究人员提出了挑战,也增加了网络安全威胁的复杂性和严重程度。因此,在面对这些高级别攻击手段时,了解并掌握相应的防御措施和技术至关重要。
全部评论 (0)


