有没有办法根据发件人的电子邮件标头被动地指纹(推断)电子邮件发件人正在使用的操作系统或邮件客户端?
是的,但是它们非常容易出错并且很容易被有意或无意地欺骗(例如,一些高端防火墙系统会在删除/清理附件、修改某些信息后“重新打包”消息)。
除了 X-Mailer 标头之外,您还可以从其他字段中收集一些信息,例如消息 ID 和多部分边界(如果存在)。两者都应该包含一个独特的序列,不同的系统以不同的方式生成它。一些 MUA 会生成自己的 message-id,而另一些则将琐事留给服务器;因此,您看到“DE9E2BFC.12345@gmail.com”,您就知道它是 GMail 客户,仅此而已,而o8xp315ahi3207wv6gbl5tfiedsaelntas@4ax.comID 是由仅在 Microsoft Windows 上运行的软件 Forté Agent 生成的。
高达 6.1 的旧 Eudora 有一个 X-Sender 标头,它还显示了用于发送电子邮件的“角色”。
我认为,Microsoft Outlook 使用 _NextPart_XXX_0000_HHHHHHHH.HHHHHHHH 形式的边界,其中 H 是十六进制数字,XXX 表示内部序列号(从 000 开始),而 Mozilla Thunderbird(还添加了 User-Agent 标头)使用“ ------------0x0x0x0x0x0x0x0x0x0x0x0x" 其中 x 是 0-9 位。
在某些情况下,您会看到 uniqueid 的一部分实际上是时间戳,它也可以兼作日期标头的验证。
所以,有一些信息——但你需要建立一个指纹数据库。另外,正如我所说,修改单个标头甚至可能全部都相对容易;您必须考虑到这一点,看看该策略是否仍然符合您的目的。