FreeBuf@关于钓鱼邮件的学习笔记


前段时间公司组织了一次以钓鱼邮件攻击为主题的攻防活动 , 对于攻击方来说 , 目标是提高钓鱼邮件攻击能力 , 包括探索各种钓鱼方式和实战技巧 。 对于防守方来说 , 目标是检验公司钓鱼邮件防护体系 , 包括相关防护设备监测能力、设备运营能力、员工安全意识、应急响应能力等 , 不过听说还有个原因是安全部门到了年终预算没花完~
非常荣幸我能有机会参与此次活动 , 一开始觉得不就是发个钓鱼邮件吗 , 能有多大技术含量 , 文案构造的精美一些就够了 , 但是看师傅们秀各种操作才明白钓鱼攻防虽然只是网络安全中的一个小点 , 但是深入研究还是有很多需要学习的内容 。 因此我也对最近学习的内容进行一次总结 。
攻击事前准备钓鱼邮件的攻击方式通常有两种:
1. 构造钓鱼页面引诱受害者点击 , 获取目标账号密码 , 或者利用浏览器漏洞直接获取权限
2. 发送带有恶意附件的邮件 , 引诱受害者运行
所以事前我们需要准备一个钓鱼网站 , 为了能让钓鱼网站在公网访问 , 还需要一个VPS , 若想获得更好的伪装效果 , 还需要一个用于伪装的域名 。 VPS和域名都到手后 , 还可以搭建属于自己的邮服用于SMTPRelay 。 使用恶意附件的话 , 还需要准备一个恶意样本 , 能做免杀的话就更好了 , 接收shell的话 , 同样需要一个VPS 。
准备阶段恐怕就要花费大量的时间和金钱 , VPS和域名需要购买 , 钓鱼网站需要制作 , VPS需要搭建Web环境挂上我们制作的钓鱼 , 服务端需要单独写接收账号密码请求的功能 , 有的系统是token登录 , 因此密码还有时效性 , 为了保证能第一时间证明钓鱼成功 , 还需要开发自动登录目标截图的功能 。 使用VPS接收shell还需要搭建远控服务端 , 可以选用MSF、CS、Empire或者其他大佬们用着顺手的工具 , 还有各种各样的准备工作 。 最后就是最重要的 , 还要做好信息收集 , 掌握目标的近况 , 比如最近有什么活动、HR经常用什么样的模板发邮件等 , 掌握足够的情报可以帮助我们构造出容易让人上钩的邮件内容 。
从零开始做上述准备工作的话 , 我这种菜鸟一周时间都不够……
如果不具备一些基础设施 , 可以选用现成的工具来辅助发送邮件 , 网上有个公开的网站可以方便的发送伪造邮件:https://emkei.cz/ 。 千里目实验室的一个老哥在Github上也开源了一个邮件伪造工具 , 亲测也很好用:https://github.com/Macr0phag3/email_hack
邮件伪造先介绍一下SMTP , SMTP邮件服务器在进行邮件中转的时候不需要认证 , 利用这个特点攻击者可以进行邮件伪造攻击 , SMTP它是基于TCP协议的 , 因此与TCP协议相同 , SMTP传输邮件主要有以下三步:
1. 建立连接
2. 传输数据
3. 断开连接
第一步就是TCP协议的三次握手 , SMTP协议的命令主要都是在第二步完成 , 常用的通信命令如下
了解了这些命令后 , 直接利用telnet命令就可以实现邮件的发送 , 下面是我用IIS搭建的SMTP中继服务器进行的邮件发送测试 , 返回250则代表发送成功 。
FreeBuf@关于钓鱼邮件的学习笔记
本文插图
其中mail from为实际发件人 , from为邮件中显示的发件人 , 通过上面的例子可以看出 , 在输入发件人的时候 , 我们是可以任意输入的 , 因此可以伪造邮件发件人 , 如果接收方对邮件来源没有做好校验 , 则很有可能显示成为我们伪造的发件人 , 这就是邮件伪造的原理 。
防护SPF说完了攻击再说说防护 。 SPF是 SenderPolicy Framework 的缩写 , 邮件接收方会检查域名的SPF记录 , 来判断发件人的IP地址是否在SPF记录里面 , 如果在 , 就认为是一封正确的邮件 , 否则会认为是一封伪造的邮件 , 一般邮件接收服务器会直接拒绝接收 。