钓鱼演练方案设计与实践
近期客户有钓鱼演练方案需求,我们安服团队进行了方案设计与实施,给客户带来的直观效果极佳,所以作为一次案例进行分享。
方案准备
首先我们参考了文章 甲方利用开源工具进行钓鱼演练 里面的一些大致思路,分为:演习前准备、演习中实施、演习后工作三个方向来设计。
演习前准备工作,需要跟客户确定时间周期、规范性、资源等内容。
时间周期
需要先了解企业员工上下班时间、最易查看邮件时间等作为参考来决定我们的钓鱼邮件什么时候发送。
了解到员工上下班时间大致为:早上8点至晚上五点半。
一天当中,经常查看邮件时间为上午10点-11:30,下午2点-3点期间。
与甲方交流后将演练时间定为一周,并且发送邮件时间我们自行掌握。
规范性
规范性确定的事项主要是:演练人员、钓鱼邮件类型、钓鱼邮件功能。
演练人员
可以分为广撒网和定向针对。
定向针对分为:领导层、HR、财务、运维人员、底层员工
广撒网就是随机发送。
钓鱼邮件类型
由于之前遇到某些攻防比赛中,一些攻击队未事先报备就发送举报信、吃瓜邮件等类型邮件,为了博人眼球诱引点击邮件。但造成了极其恶劣的影响,所以现在禁止发送这类邮件,虽然是一种很好的思路,但在此次演练中不具备适用性。
大致我们提供的邮件类型为三种:通知类(漏洞预警、修改口令、红头文件等)、福利类(节日礼包、礼卷等)、热点新闻类(防疫新闻、俄乌战争等)。
钓鱼邮件功能
这里需要确定我们邮件中附件exe的功能和图片功能。可以做成探测员工是否点开邮件链接、探测员工是否下载附件📎并打开运行等。
与甲方交流后钓鱼人员名单他们筛选后提供,邮件的类型不允许以时事、政策、公告等相关内容为主题,因为这样有可能会被投诉和诟病。邮件功能这方面讨论后决定此次演练不附带exe木马程序,只为了获取员工信息为主。
资源
资源方面需要商讨需不需要一个内部身份或者测试邮箱,并且邮件网关加白处理等。模拟攻击人员通过其他手法,获取到一个员工信息后,利用邮箱发送钓鱼邮件的场景。
以及确定一下高仿域名、员工外网常用系统等,方面我们在做钓鱼网站时的真实性。
甲方提供的常用系统是外网的outlook邮箱系统。
演习中实施阶段主要分配组内队员分工,以及使用哪些开源软件等。演习后工作主要有钓鱼攻击危害宣传、信安部处理攻击培训、敏感信息定义等。
方案实施
方案实施阶段,我们分为制作邮件模版、搭建钓鱼网站并测试、搭建钓鱼软件以及最终的发送钓鱼邮件环节。
制作邮件模版
根据演练方案,我们制定了两款钓鱼邮件模版。
1.通知类——XX集团邮箱更新通知
这类通知一般看起来比较具有官方性和真实性,比较好用。
2.节日礼卷类——园区发放福利
配合第三方问卷系统,诱导员工输入相关信息。
问卷效果:
搭建钓鱼网站并测试
根据多次在攻防比赛中获取到的经验,我们利用高仿域名和反向代理技术来搭建钓鱼网站。
具体可以参考:红队技巧:基于反向代理的水坑攻击
我们为了方便,直接使用宝塔搭建VPS的网站环境。
安装Nginx-openresty
然后申请一个高仿域名的SSL证书,再设置反向代理即可。整套下来10分钟就能搞定,非常的快捷。
搭建好的钓鱼网站效果:
接下来设置LUA脚本,进行登录拦截。
在/www/server/nginx/lualib/ngx
路径下,新建lanjie.lua脚本。
内容:
function writefile(logfile,msg)
local fd = io.open(logfile,"ab") if fd == nil then return end fd:write(msg)
fd:flush()
fd:close() end
local url=ngx.var.request_uri
local method=ngx.req.get_method()
if method == "POST" and ngx.re.match(ngx.var.request_uri,"auth.owa") then
ngx.req.read_body()
local data33 = ngx.req.get_body_data() writefile("/home/www/POST.txt", data33.. "rn")
end
这里我们的脚本大致功能是匹配url为auth.owa的POST请求中的请求体。将请求体保存在/home/www/POST.txt
内。
经测试后,可以正常记录用户输入到文件,并且用户能正常使用Outlook邮件系统。
搭建钓鱼软件
钓鱼软件我们使用的是Gophish
,这款工具满足我们此次钓鱼演练的需求,可以显示良好的攻击时间线,方便后期的汇总工作。
邮箱服务我们并没有采取自建方案,因为考虑到现阶段垃圾邮件策略和SPF值的问题,自建的邮箱服务不容易发送到Outlook邮箱。我们使用的是第三方域名邮箱服务,例如:阿里云、Godaddy等。
这里需要注意的是,就算是第三方邮件服务,也会有防止大量发送邮件机制。这里可以购买多个账号就行,使用多个Sending profile来解决。
正式发送
在规定日期的上午十一点,我们开始正式发送钓鱼邮件,由于客户给的是2000个邮箱地址,我们采取分批次发送的方式。
大约在11点40分开始,就有人陆续点开邮件,并且打开钓鱼网站输入邮箱账号密码了。
后期工作
可以说这次演练是成功的,因为一旦只要我们攻击人员获取到一个员工账号,就可以展开后续很多工作。并且这次演练并没有加入木马程序,一旦员工是直接点击木马程序,给企业带来的危害就是巨大的。
后期需要根据Gophish平台的数据生成一份报告和制作PPT进行汇报工作,以及开展员工安全意识培训和长期化钓鱼演练的可行性判断。
欢迎关注我们团队的公众号“渝安服”,分享原创技术文章和及时的漏洞通告,给你最优质的安服体验。
原文始发于微信公众号(渝安服):钓鱼演练方案分享与实践
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论