SSL证书下的谷歌钓鱼攻击:同形异义词域名的技术剖析

本文详细分析了利用同形异义词域名实施谷歌钓鱼攻击的技术细节,包括域名注册、SSL证书获取、反向代理配置等完整攻击链,并探讨了相应的防御措施。

SSL证书下的谷歌钓鱼攻击:ɢoogle.news不是google.news

背景介绍

2016年,有人购买了域名"ɢoogle.com"(注意首字母G的差异)用于钓鱼攻击。同形异义词字符看起来像ASCII字母,但编码不同,这种差异通常人眼难以察觉。

钓鱼攻击是通过伪装成可信实体来获取敏感信息(如用户名、密码和信用卡详情)的欺诈行为,通常通过电子邮件欺骗或即时消息进行,引导用户在与合法网站外观相似的虚假网站输入个人信息。

技术实验过程

域名获取

通过在任何域名注册商(如Google Domains、NameCheap和GoDaddy)搜索"ɢoogle",发现以下可用域名:

  • ɢoogle.company(类似company.google.com)
  • ɢoogle.email(类似mail.google.com)
  • ɢoogle.tv(类似tv.google.com)
  • ɢoogle.life(类似life.google.com)
  • ɢoogle.live(类似live.google.com)
  • ɢoogle.news(类似news.google.com)
  • ɢoogletranslate.com(类似translate.google.com)

这些域名都是自动推荐的,甚至不需要发挥创造力。Google Domains主动推荐了"ɢoogletranslate.com"!

技术配置

  1. 服务器部署:在云平台(AWS、Google Cloud、Azure等)启动VPS
  2. DNS配置:将DNS路由到该服务器
  3. Web服务器:安装Nginx/Apache HTTP服务器
  4. SSL证书:成功从LetsEncrypt获取SSL证书
1
sudo certbot — nginx certonly — dry-run -d "xn — oogletranslate-u5f.com"

反向代理设置

配置Nginx实现反向代理:

1
2
3
4
5
6
7
server {
    location / {
       proxy_pass https://translate.google.com/;
       add_header NOT-GOOGLE-HEADER OK;
    }
    ...
}

为每个响应添加了HTTP头:NOT-GOOGLE-HEADER OK,可在浏览器开发者工具中检查。

攻击效果

  • 使用https://链接建立信任,同时提供恶意内容
  • 在移动设备上,域名中的"ɢ"看起来像实际的"G"
  • Google的JavaScript从攻击者域名正常运行,无需模仿Google服务
  • 通过社交工程获得有机流量,证明攻击可行性

潜在危害

  1. 中间人攻击:攻击者与用户进行SSL握手,暴露用户流量
  2. 凭证窃取:覆盖HTML中的<a>标签,指向自定义钓鱼登录页面
  3. 代码注入:在HTTP正文中注入恶意<script>标签,在客户端浏览器执行代码

防御建议

  1. 用户层面:对链接中域名的大写/奇怪字母保持警惕
  2. 注册商层面:应禁止包含"ɢoogle"或"oogle"的域名注册
  3. 技术层面
    • JavaScript应检查window.location是否为合法Google域名
    • 服务端可通过验证请求Referrer返回HTTP错误响应
    • 系统管理员应在IDS/IPS中实施网络流量静态分析规则

Google的回应

Google认真对待了安全报告,承认同形异义词攻击在社会工程应用中的趣味性,但部署能欺骗用户和基础设施的攻击更具挑战性。

结论

这种攻击的复现步骤对于具有基本Linux和网络知识的任何人来说都相当简单。在找到解决方案之前,每个大公司或服务都需要通过购买类似域名来保护其域名和资产。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计