gophish添加二维码
如何设置邮件模版?
先从接口入手/api/templates
controllers/api/template.go
post请求创建新的template
查看结构体
Template结构体里面包含了Attachments结构体
再跟进PostTemplate函数,该函数将结构体里的数据存入数据库中
查看一下数据库里template和attachment表
那么,写一下生成二维码的函数?二维码图片怎么弄?
- 写入数据库或者文件中❌
- go实时生成✅
.URL是怎么在保存邮件时解析成xxx?rid=xxx的
我一看,就是用go模版引擎的占位符,在运行时动态插入的(其实问的gpt)
gpt哥给我说这样用template.New来创建新的模版
我听gpt哥的,全局搜索一下这个函数
封装在ExecuteTemplate函数中,再看看哪里用了ExecuteTemplate函数
你很可疑!让我看看
哟西,找到了,这里设置模版的内容并返回
我直接在里面加二维码生成的函数
记得在PhishingTemplateContext这个结构体上也加上QRCode
让我来试试效果,完美~
再加个自动补全
gophish添加附件
设置自动生成附件名字
添加一个input
在js中传参(不只这一处,envelope-sender出现的地方都加上,dismiss函数里也加上)
最终需要在template.min.js文件中修改,因为gophish用的全是min.js里的。。。。
数据库和结构体添加这个AutoFile字段
json:从json里面的这个字段读取数据
gorm:保存到里面的这个字段的数据库里
添加自动生成附件功能
怎么生成附件?每发个邮件就编译生成一个exe是不是太繁琐了。突发奇想,初始化的全局变量和静态变量不都在data区吗?那不直接拿一个exe,直接替换url就行了
思路:
- 先写一个exe,功能为使用默认浏览器打开指定的url
- gophish每次发送邮件时,获取该exe的字符串值,并将url替换为phishUrl,然后再转换为base64,通过内置函数添加到附件里
如何在发送邮件添加附件?
直接看发送邮件的api
api/campaigns
查看路由,绑定了as.Campaigns函数,跟进看一下
看一眼Campaign的结构体,附件文件的内容就在Campaign->Template->Attachments->Content
附件的结构体
里面2个重要函数
- PostCampaign:保存Campaign
- LaunchCampaign:执行Campaign,就是发邮件
看看LaunchCampaign函数,只有一个地方实现了这个接口,进去看看
代发送的邮件加入了w.mailer
这个对象的队列,这个对象里看看有没有实现发送邮件的方法
跟过来,找到了发送邮件的函数sendmail
Generate函数创建email的内容,在这个函数里应该就可以把自动添加附件的功能加上去了
找找看在哪,跟过去看到这里有三个地方实现了这个抽象方法,去mailog实现的方法去
为什么是maillog呢?
不知道,看注释里EmailRequest貌似是给发送测试邮件用的
发送邮件的时候添加附件的位置就在这儿了
添加自动生成附件功能
上面分析到了发送邮件添加附件的方法,在上面直接加判断,AutoFile不为空时,直接读取写好的exe,将url替换后转换为base64传入Attachment结构体中,用addAttachment函数加到邮件的附件中,顺便把原来的附件也给省略掉了。
我在ptx的结构体加了个phishURL,方便调用钓鱼url
试试看,可以用~