分析一封钓鱼邮件:从邮件到背后的基础设施

更新于 2026年9月26日

钓鱼邮件看起来像一封匿名信。可它其实到处留下线索:信封上的邮戳、一个回复地址、一个指向某个网站的链接,而这个网站总得托管在某个地方。只要方法得当,我们就能顺着这些线索,找到那些把机器租给诈骗者的公司,而它们往往并不知情。能把一切关掉的,恰恰就是它们。下面就一步步来调查:读懂邮件头,顺着线索找到基础设施,最后决定该向谁举报什么。

拿到完整的邮件头:邮件的“信封”

邮件软件显示的内容(发件人、主题、正文)只是信纸本身。在它外面,还有一个看不见的信封:邮件头,也就是一路上被添加的几十行技术信息。线索就藏在这里。查看方法:

  • Gmail:点邮件的 ⋮ 菜单,再点“显示原始邮件”;
  • Outlook:点邮件的 … 菜单,再选择查看邮件详细信息或源代码的选项;
  • Apple Mail:“显示”菜单,然后“邮件”,再选择显示所有邮件头;
  • Thunderbird:快捷键 Ctrl+U(Mac 上为 Cmd+U),打开邮件源代码。

小提示:不要为了分析而“转发”邮件。转发会生成一封新邮件和新的邮件头,原来的线索就消失了。应该复制完整的源代码,或者把邮件另存为 .eml 文件。

Received 行:邮局盖的邮戳

在所有这些行里,最有价值的是以 Received: 开头的那些。每台经手这封邮件的服务器都会加上自己的一行,而且放在最上面,就像邮件每经过一个邮局,就被盖上一个新邮戳。一封邮件的完整旅程,可以看这篇指南:一封电子邮件如何从发件人到达收件人。

下面是一个简化的邮件头,和真实钓鱼邮件里看到的差不多:

Received: from mx1.provider.example (mx1.provider.example [192.0.2.10])
        by mailbox.provider.example; Tue, 15 Sep 2026 09:14:05 +0200
Received: from vps-4411.host.example (vps-4411.host.example [203.0.113.45])
        by mx1.provider.example with ESMTPS; Tue, 15 Sep 2026 09:14:03 +0200
Received: from mail.mybank.example (unknown [10.0.0.7])
        by vps-4411.host.example; Tue, 15 Sep 2026 07:13:58 +0000
Authentication-Results: mx1.provider.example;
        spf=pass smtp.mailfrom=parcel-mail.example; dkim=none;
        dmarc=fail header.from=mybank.example
Return-Path: <bounce@parcel-mail.example>
From: "我的银行" <security@mybank.example>
Reply-To: mybank.support@freemail.example
Subject: 您的账户将在 24 小时内被冻结

每一行 Received 都可以当成一句短话来读:“从(from)某台机器,由(by)某台服务器,在某个时间收到”。紧跟在 from 后面的,是对方机器自报的名字,没有经过任何验证。括号里的,才是接收服务器亲眼看到的:对面那台机器的 IP 地址,写在方括号里。

从下往上读经过……但从上往下判断可信度

因为每台服务器都把自己的行加在前面几行之上,所以故事要从下往上读:最下面一行讲出发,最上面一行讲到达我们的邮箱。在例子里,邮件从一台自称“mail.mybank.example”的机器出发,经过 vps-4411.host.example,然后进入我们的邮箱服务。

但并不是每一行都同样可信。每一行总是由负责接收的那台服务器写的。所以最上面的几行是我们自己的邮箱服务写的:可以相信。下面的几行是在邮件到达我们之前写的,可能就是诈骗者的机器写的,它想写什么都行。就像寄包裹:我们这边邮局盖的邮戳可靠,而寄出前贴上的标签什么也证明不了。

所以方法很简单:从最上面开始,只要是我们邮箱服务写的行,就一直往下看。停在入口行,也就是我们的邮箱从外部机器接收邮件的那一行。这一行方括号里的 IP,这里是 203.0.113.45,是整个邮件头里最可靠的线索:它就是真正把邮件交过来的那台机器。Baitback 要找的正是它。

那最下面一行呢?它声称邮件来自“mail.mybank.example”,地址是 10.0.0.7,这是一个在互联网上根本不存在的私有地址。这一行是 vps-4411 自己写的:一条故意留下的假线索。

示意图:邮件头里叠放着三行 Received。一条弯曲的箭头从下往上:邮件的经过要从下往上读。另一条箭头从上往下,停在入口行:可信度从上往下判断。最上面一行由我们的邮箱写入,可信;入口行里有要记下的 IP:203.0.113.45;最下面一行在我们之前写入,可能是伪造的。一位拿着放大镜的调查员指着要记下的 IP。
图 1:经过从下往上读,可信度从上往下看。停在入口行:这一行的 IP 最可靠。

哪些可信,哪些可以伪造

邮件头中的内容由谁写入可信度
From(显示的名字和地址)发件人无
Reply-To(回复地址)发件人无……但它常常是一个真实邮箱,由诈骗者查看
Subject、Date、Message-ID发件人低
紧跟在 from 后面自报的名字对面的机器无
入口行以下的 Received 行之前的服务器,可能是诈骗者低
入口行方括号里的 IP我们的邮箱服务高
Authentication-Results我们的邮箱服务高(仅限它检查的内容)

在例子里,Authentication-Results 透露了很多信息。spf=pass 表示这台服务器确实有权发信……但那是替 parcel-mail.example 这个信封域名发,而不是替银行发。dmarc=fail 表示显示出来的地址 mybank.example 没有通过任何验证:“发件人”是假的。那这封邮件为什么还是到了?这正是这篇指南的主题:即使检查显示“通过”,邮件也可能在说谎。

从 IP 到运营商:这个地址属于谁?

IP 地址就是互联网上一台机器的门牌地址。和现实中的地址一样,它们是一大块一大块分配的。负责分配的有五个地区性注册机构:RIPE NCC(欧洲和中东)、ARIN(北美)、APNIC(亚太)、LACNIC(拉丁美洲)和 AFRINIC(非洲)。它们把地址块交给运营商,运营商再租给自己的客户。

这些地址块被组织成一个个网络,每个网络都有一个编号:ASN,例如 AS64500。如果说 IP 是房子的门牌,ASN 就是所在的街区,它指明管理这个街区、负责让流量在其中流通的运营商。

要知道一个 IP 背后是谁,可以用 WHOIS 查询这些注册机构的目录,或者用它的现代版本 RDAP。很多免费网站点一下就能查。在命令行里,大致是这样(简化摘录):

$ whois 203.0.113.45
inetnum:        203.0.113.0 - 203.0.113.255
netname:        HOST-EXAMPLE-VPS
org-name:       Host Example SAS
country:        FR
abuse-mailbox:  abuse@host.example
origin:         AS64500

有三条信息最重要:是谁(组织名称)、在哪里(国家,有助于判断适用哪国法律),以及最关键的滥用举报地址(abuse),也就是接收滥用举报的官方邮箱。IP 的反向解析名称,这里是 vps-4411.host.example,也常常多给一条线索:“vps”说明这是一台租来的虚拟服务器。

一个常见的陷阱:网络运营商并不一定就是最终的托管商。大运营商可能把一个地址块租给转售商,转售商再把服务器租给自己的客户。这时 WHOIS 会显示一个挂在转售商名下的小地址块,带有它自己的 abuse 地址。应该先联系它:它离那台机器最近。

追踪其他线索:发件人、链接、DNS

发送 IP 只是其中一条线。钓鱼邮件还会留下别的线索,每一条都通向不同的角色。

发件人这条线

看看 From、Return-Path 和 Reply-To 里出现的域名:

  • 如果是免费邮箱(比如 Gmail 或 Outlook.com):对应的角色是邮箱服务商,它可以关闭账户。这对 Reply-To 特别有用,因为受害者的回信都会落进这个邮箱;
  • 如果是专门注册的域名:要找它的注册商,也就是卖出这个域名的公司,方法是对域名做 RDAP 或 WHOIS 查询,例如在 lookup.icann.org 上。那里还能看到注册日期:一个三天前才出生的“银行”域名,是非常危险的信号;
  • 如果是某个品牌被冒用的真实域名:品牌本身并无责任,邮件不是它发的。如果它提供钓鱼举报地址,可以通知它。

链接这条线

邮件里的链接通向陷阱页面,而这个页面一定托管在某处。不要点击:复制地址(右键,“复制链接”)。真正要看的是域名,也就是 https:// 之后第一个“/”的正前方那一段;它左边的一切都可以由诈骗者随意编造。链接常常会经过好几次跳转:Baitback 会替我们一路跟下去,并显示完整的跳转链。藏在图片里的链接,请看这篇指南:二维码钓鱼:当网络钓鱼藏在二维码背后。

DNS 这条线

DNS 是互联网的“电话簿”,它告诉我们一个域名的各个部分分别在哪里。问三个问题就够了:

$ dig +short A  secure-login.example    # 网站的 IP(有时是 CDN)
$ dig +short MX secure-login.example    # 接收它邮件的服务器
$ dig +short NS secure-login.example    # 谁在管理它的 DNS

网站的 IP 接下来走和发送 IP 一样的流程:WHOIS、ASN、运营商、abuse 地址。而一个完全没有邮件服务器、却声称在给我们写信的域名,也值得多看一眼:参见 DNS 中的 MX 记录:可信的标志吗?

调查路线图:从可疑邮件出发,三条线索用弯曲的线连接。邮件头通向发送 IP,再到 IP 的 WHOIS(ASN、运营商),最后到托管商,它可以关停服务器。发件人通向域名或免费邮箱,再到域名的 WHOIS,最后到注册商,它可以暂停域名。链接通向网站域名,再到 DNS,最后到 CDN 或托管商,它可以下架页面。Baitback 从粘贴的邮件出发,自动走完这条路。
图 2:三条线索,三类角色。每一条的尽头,都有一个能采取行动的人。

为什么总会牵出好几家服务商

调查到最后,很少只剩下一个名字。这很正常:一次钓鱼行动就像一次全靠租来的东西完成的搬家。域名在一家注册商买,DNS 由另一家管理,页面放在别处租来的服务器上、还藏在 CDN 后面,邮件从第三台服务器发出(参见 网络钓鱼:诈骗者如何让邮件成功送达),而回信落进一个免费邮箱。

诈骗者把一切分散开,自有道理:每项服务都很便宜,常常用偷来的支付方式付款;一家服务商断了,其他的照样运转;网站前面的 CDN 还能隐藏真实服务器的地址。好消息是:每一家服务商同时也是一个抓手。通知到的越多,这次行动就垮得越快。

IP 不等于罪犯

一个常见的冲动:找到 IP,看到某家公司或某个国家的名字,就断定“就是他们干的”。这几乎总是错的。IP 指向的是最后把邮件交出来的那台机器,而不是坐在键盘前的那个人。这台机器可能是:

  • 诈骗者租来用几天的服务器,这是最简单的情况;
  • 某个大型邮箱服务商的服务器,如果诈骗者在那里注册或盗用了账户:这时 IP 属于服务商,它并无过错,但可以关闭账户;
  • 一个被入侵的网站或电脑,它的主人本身也是受害者;
  • 一个 VPN 或中转节点,掩盖了真实的连接。

所以正确的问题不是“谁有罪?”,而是“谁能管得了这台机器?”。我们要写信的,就是这个角色。永远不要联系诈骗者,不要“反击”,也不要公开指责一家服务器可能只是被劫持了的公司。

域名还是服务器:招牌和大楼

想弄清谁负责什么,打个比方会很有帮助。想象街上有一家冒牌的银行营业厅:

  • 域名是门上方的招牌,注册商是把这个名字租出去的机构:它可以把招牌摘下来;
  • 服务器是冒牌营业厅所在的大楼,托管商是大楼的房东:它可以把租户赶出去;
  • IP 地址是门牌上写的地址;
  • CDN 是设在入口前的前台:访客只和前台打交道,前台再把请求转进大楼。从街上看,你只看得到它。
街景插图:一位访客沿着虚线走向前台,前台是坐在大楼前的一个人物。大楼上方的招牌写着域名 secure-login.example;外墙的门牌上写着 IP 地址。图例:招牌是域名,注册商可以暂停它;大楼是服务器,托管商可以下架上面的页面;门牌是 IP 地址,它指向大楼,也可能只指向前台;前台是 CDN,它转交投诉,并可以提醒访客。
图 3:招牌(域名)、大楼(服务器)、门牌(IP)和前台(CDN)。每一个都由不同的人负责。

关停服务器能让页面消失,但诈骗者几分钟内就能把域名指向另一台服务器。反过来,暂停域名会让所有已经发出去的链接全部失效,哪怕服务器还在运行。两者相辅相成。

CDN 的情况

如果网站 IP 的 WHOIS 显示的是 Cloudflare、Akamai 或 Fastly 这类名字,那它几乎从来不是托管商,而是前台。CDN 接受举报,可以向访客显示警告页面,并把投诉转给真正的托管商,因为它知道对方的地址。比如 Cloudflare 就在 abuse.cloudflare.com 提供专门的举报表单。同时也要向域名的注册商举报,CDN 可遮不住它。

服务器被入侵的情况

类似 https://wang-bakery.example/wp-content/uploads/x/login.php 这样的地址,常常暴露出一个被黑的网站。这个域名已经存在多年,属于一家真实的店铺;陷阱页面只是被偷偷塞进了某个角落。这时要求暂停域名既不公平也没用:应该通知托管商,如果能找到网站主人的联系方式也通知他,并给出页面的确切地址。从一个被盗的真实邮箱发出的邮件也是同样道理:通知邮箱服务商,它可以冻结账户,再把账户还给真正的主人。

不同情况该联系谁

我们发现了什么向谁举报对方能做什么
发送 IP 属于某个托管商(租用的服务器)托管商的 abuse 地址(IP 的 WHOIS)关停发信服务器
邮件来自知名邮箱服务该邮箱服务商关闭或冻结账户
Reply-To 是免费邮箱这个邮箱的服务商关闭接收回信的邮箱
专为诈骗注册的域名注册商(域名的 RDAP 或 WHOIS)暂停域名
藏在 CDN 后面的网站CDN,然后是注册商提醒访客,转交托管商
被入侵的正规网站网站的托管商和网站主人下架页面,修复网站
短链接短链接服务停用该链接
任何钓鱼页面Google Safe Browsing、Microsoft、Netcraft……在浏览器中拦截该页面

此外还有官方平台。例如在法国,可以把邮件转给 Signal Spam,并在 PHAROS 举报诈骗;每个国家都有自己的对应渠道。这些平台主要用于统计和调查:它们不会在一小时内关掉服务器,但会留下正式的记录。

建立自己的举报链

一股脑儿向所有人举报所有东西,效果往往不好。最好按顺序来,从最紧急的到最长远的:

  1. 先止损:陷阱页面(托管商或 CDN)以及浏览器的拦截名单。每一小时都很关键:一次行动的大部分受害者,都出现在最初几个小时。
  2. 切断名字:域名的注册商,让已经发出的链接统统失效。
  3. 切断发送:发送 IP 的托管商,以及 Reply-To 邮箱的服务商。
  4. 留下记录:官方平台,供调查使用。

一份好的举报简短而且可以核实。它包括:

  • 邮件的完整邮件头,而不只是一张截图;
  • 与这位收件人相关的具体内容:给托管商的是 IP,给注册商的是域名,给网站托管商的是页面的确切地址;
  • 日期和时间,并注明时区;
  • 经过“去活化”处理的链接,例如写成 hxxps://secure-login[.]example,免得有人误点。

这正是 Baitback 所做的工作:粘贴邮件源代码,工具就会读取 Received 行,找到发信服务器、它的托管商和举报地址,检查 SPF、DKIM 和 DMARC,跟踪链接及其跳转,然后生成可以直接发送的举报邮件。本指南里的整套调查,几秒钟就能完成。

要点回顾
  • 完整的邮件头可以通过“显示原始邮件”或邮件源代码获得;不要转发邮件。
  • Received 行从下往上讲述邮件的经过,但只能相信我们自己的邮箱服务写的那些行。
  • 最可靠的 IP 在入口行,也就是我们的邮箱从外部接收邮件的那一行。
  • IP → WHOIS → 运营商和 abuse 地址;域名 → 注册商;DNS → 网站的服务器。
  • IP 指向的是一台机器,而不是罪犯:要写信给能采取行动的人。
  • 注册商切断名字,托管商切断机器,CDN 负责转交:针对各自负责的部分分别通知它们。

收到可疑邮件了吗?

将其粘贴到 Baitback:工具会找出发送它的服务器及其托管服务商,并一步为您准备好举报内容。

分析邮件

全部指南