Google日历事件注入与MailSniper
作者:Beau Bullock & Michael Felch
概述
Google日历是企业员工仅次于电子邮件的第二大生产力工具。其自动添加事件的功能存在安全隐患:攻击者无需发送邮件即可直接向目标日历注入事件,且能绕过Google的多项安全控制。本文将通过MailSniper工具演示该漏洞的利用方法。
技术细节
攻击方法
-
基础凭证注入(Invoke-InjectGEvent)
1
PS C> Invoke-InjectGEvent -EmailAddress 'attacker@gmail.com' -Password 'pwd' -EventTitle '紧急会议' -Targets 'victim@gmail.com'
- 要求:有效的Google账号凭证
- 限制:目标需开启"自动添加事件"功能
-
API高级注入(Invoke-InjectGEventAPI)
1
PS C> Invoke-InjectGEventAPI -AccessToken 'API_TOKEN' -Targets "victim@gmail.com" -EventTitle "全员会议"
- 关键突破:通过API强制设置
attendees[].responseStatus = 'accepted'
- 完全绕过"仅显示已接受邀请"的安全设置
- 关键突破:通过API强制设置
安全设置绕过
安全设置 | 默认状态 | 绕过方法 |
---|---|---|
来自Gmail的事件 | 启用 | 直接创建事件不发送邮件 |
自动添加邀请 | 严格模式 | 通过API标记为"已接受" |
实战案例
在某次红队评估中,攻击者注入标题为"10分钟后召开全员会议"的事件,并在事件描述中嵌入伪造的Google认证页面链接。当用户点击查看"会议议程"时,其凭证即被窃取。
时间线披露
- 2017年10月9日:向Google提交漏洞
- 10月17日:Google静默更新日历设置
- 10月31日:Google最终回应称此为"设计特性"
防御建议
- 禁用所有自动添加事件功能
- 对日历API调用实施严格监控
- 培训员工识别异常日历事件
下篇预告:将介绍CredSniper框架如何窃取双重认证令牌