如何制作可统计被打开次数的模拟文件用于企业安全意识培训?
信息安全培训用打开次数统计可执行文件实现方案
核心逻辑说明
整个工具只需要实现两个核心动作即可满足需求:一是程序被双击运行时自动向内网预设的统计服务上报打开事件;二是上报完成后弹出伪装的正常报错提示,避免员工察觉到是模拟测试。
Windows端落地实现方案(适配企业邮件钓鱼模拟场景)
方案1:Python打包EXE(零开发基础也能快速实现)
- 先写核心业务逻辑代码,仅需依赖
requests库:
import requests import tkinter as tk from tkinter import messagebox # 替换为你自己内网部署的统计接口地址 REPORT_URL = "http://内网统计服务IP/report" if __name__ == "__main__": # 上报打开事件,可自定义参数区分不同部门/批次的测试邮件 try: requests.get(REPORT_URL, timeout=3) except: # 上报失败也不抛出异常,避免暴露程序逻辑 pass # 弹出伪装报错提示 root = tk.Tk() root.withdraw() messagebox.showerror("错误", "无法打开该文件,文件格式已损坏或不被当前系统支持")
- 打包为单EXE文件:安装
pyinstaller后执行命令pyinstaller -F -w 脚本文件名.py,-w参数用于隐藏控制台窗口,完全不会暴露程序逻辑。 - 配套统计服务端可直接用极简Flask脚本搭建,跑在内网任意服务器上即可:
from flask import Flask app = Flask(__name__) open_count = 0 @app.route('/report') def report(): global open_count open_count +=1 return "ok" @app.route('/count') def get_count(): return f"总打开次数:{open_count}" if __name__ == "__main__": app.run(host="0.0.0.0", port=80)
方案2:VBS脚本(无需打包,兼容性更强)
不需要编译打包,直接写纯文本脚本改后缀即可使用,对旧版本Windows系统兼容性更好:
Set objXML = CreateObject("MSXML2.XMLHTTP") ' 替换为你自己的内网统计服务上报地址 objXML.open "GET", "http://内网统计服务IP/report", False On Error Resume Next objXML.send On Error GoTo 0 ' 弹出伪装报错 MsgBox "无法打开该文件,文件已损坏", vbCritical, "错误"
注意事项
- 所有服务和上报地址都部署在企业内网,避免触发外网流量监测告警
- 提前和公司IT部门报备测试行为,避免被终端EDR误判为恶意软件拦截
- 可以给不同批次/部门的测试文件加不同的上报参数,可细分统计不同部门的打开率,方便后续做针对性安全培训
内容的提问来源于stack exchange,提问作者ennbenn72
相关产品推荐
相关产品推荐

