[ 钓鱼实战系列-基础篇-6 ] 一篇文章让你了解邮件服务器机制(SMTP/POP/IMAP)-2
🍬 博主介绍
👨🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~
✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!
网络钓鱼不仅是一种网络攻击技术同时也是一项最常见的社会工程技术,更是红队选手和网络犯罪分子的惯用伎俩。
本文我们探讨有邮件邮件服务器的认证机制。
文章目录
- 🍬 博主介绍
- 1.6 邮件服务器机制-2
- 1.6.5 SPF 简介
- 1.6.5.1 SPF 是什么
- 1.6.5.2 SPF 的核心功能
- 1.6.5.3 SPF 的工作原理
- 1.6.5.4 SPF 的优势
- 1.6.5.5 为什么搭建个人邮件服务器也需要设置SPF?
- 1.6.6 DKIM 简介
- 1.6.6.1 什么是 DKIM
- 1.6.6.2 DKIM 有什么作用
- 1.6.6.3 DKIM 工作原理
- 16.7 DMARC 简介
- 1.6.7.1 什么是 DMARC
- 1.6.7.2 DMARC 有什么作用
- 1.6.7.3DMARC 工作原理
- 1.6.8 为什么设置 SPF、DKIM、DMARC 三个解析?
- 1.6.8.1.为什么自建邮件服务器也需要搭建SPF ?
- 1.6.8.2.安装了SPF为什么还要按照DKIM ?
- 1.6.8.3.rDNS作用是什么 ?
- 1.6.8.4 rDNS介绍
- 相关资源
1.6 邮件服务器机制-2
1.6.5 SPF 简介
1.6.5.1 SPF 是什么
Sender Policy Framework(发件人策略框架)是一种电子邮件认证机制,旨在减少垃圾邮件和伪造邮件的问题。由于SMTP协议在发送邮件时不会对发件人的信息进行校验,这导致了垃圾邮件和伪造邮件的泛滥。为了应对这一问题,SPF应运而生。
1.6.5.2 SPF 的核心功能
1.确认邮件来源
SPF通过DNS记录来验证发件人的邮件服务器是否被授权发送该邮件。具体来说,它使用TXT类型的DNS记录来存储发件人的邮件策略,这些策略定义了哪些邮件服务器被允许为该域发送邮件。
2.防止伪造邮件
通过检查邮件的“返回路径”(即邮件头中的“Received”字段),SPF可以确定邮件是否真的来自声称的发件人。如果邮件的“返回路径”与SPF记录不匹配,那么该邮件很可能就是伪造的。
1.6.5.3 SPF 的工作原理
当一封邮件被发送到接收方的邮件服务器时,接收方会检查邮件的"返回路径",并尝试从发件人域名的DNS记录中获取SPF信息。然后,接收方会检查邮件的"返回路径"是否包含在SPF记录所列出的IP地址或域名中。如果包含,那么邮件被认为是合法的;如果不包含,那么邮件可能会被认为是伪造的或垃圾邮件。

1.6.5.4 SPF 的优势
1.提高安全性
SPF可以有效地防止伪造邮件和垃圾邮件的发送,从而提高电子邮件系统的安全性。
2.增强信任
对于合法发件人来说,拥有SPF记录可以增加其邮件的信任度,因为接收方更容易验证其身份。
3.易于实施
SPF的实施相对简单,只需要在DNS记录中添加相应的TXT记录即可。
1.6.5.5 为什么搭建个人邮件服务器也需要设置SPF?
虽然自建邮服不是伪造,但是很多厂商会进行查询邮件网关,他会误认为是发垃圾邮件的机器人等影响邮件发送效率
1.6.6 DKIM 简介
1.6.6.1 什么是 DKIM
DomainKeys Identified Mail(域名密钥识别邮件),是一种电子邮件认证机制,旨在检测寄件者、主旨、内文、附件等部分是否被伪造或篡改。
是一套电子邮件认证机制,使用公开密钥加密的基础提供了数字签名与身份验证的功能,以检测寄件者,主旨,内文,附件等有没有被篡改,是TXT类型的DNS记录
1.6.6.2 DKIM 有什么作用
加密邮件目的是防止中间人劫持,攻击等,使用Opendkim安装配置即可
1.6.6.3 DKIM 工作原理
发送方会在电子邮件标头中插入DKIM-Signature及电子签名资讯,而接收方则通过DNS查询得到公开金钥后进行验证
16.7 DMARC 简介
1.6.7.1 什么是 DMARC
Domain-based Message Authentication Reporting & Conformance(基于域的消息认证,报告和一致性)
一套电子邮件认证机制,和SPF,DKIM结合使用,用于检测寄存者、主旨、内文、附件等被伪造篡改等
DMARC是TXT类型的DNS记录
1.6.7.2 DMARC 有什么作用
DMARC通过验证邮件来源,阻止未经授权的服务器冒充域名发送邮件,从而减少钓鱼攻击。它建立在DKIM和SPF协议上,并添加了域名对齐检查和报告发送功能
1.6.7.3DMARC 工作原理
DMARC建立在DKIM(DomainKeys Identified Mail)和SPF(Sender Policy Framework)两大主流电子邮件安全协议之上。
域名所有者在DNS中声明采用DMARC协议,当接收方收到该域发送的邮件时,会进行DMARC校验,若校验失败则发送报告到指定邮箱账号
1.6.8 为什么设置 SPF、DKIM、DMARC 三个解析?
1.6.8.1.为什么自建邮件服务器也需要搭建SPF ?
自建邮件服务器虽然不是伪造但是很多厂商会进行查询邮件网关,网关会有一定概率误认为我们发送的邮件是机器人推送或者广告垃圾文章等拒收.
1.6.8.2.安装了SPF为什么还要按照DKIM ?
加密邮件,防止中间人劫持,攻击,安装可使用Openkim安装配置.
1.6.8.3.rDNS作用是什么 ?
它是反向dns解析通过IP查询域名,查询语句 nslookup -qt=ptr yourIP
由于很多人使用动态IP发送垃圾邮件,用来躲避踪迹,所以设置rDNS,接收方邮件服务器网关可以通过此方式查询到发送的邮件域名和IP相互匹配的,提高发送率.
1.6.8.4 rDNS介绍
可逆DNS(rDNS,reverse DNS)是一种把一个IP地址分解成一个域名的方法,正像域名系统(DNS)把域名分解成关联的IP地址。
可逆DNS的一个应用是作为垃圾邮件过滤器。它是这样工作的:代表性的,一个垃圾邮件使用一个无效IP地址,即不和域名匹配的IP地址。可逆DNS查找程序把引入信息的IP地址输入一个DNS数据库。如果没有找到和IP地址匹配的有效域名,服务器就阻止那条消息。
尽管可逆DNS(rDNS)在过滤垃圾邮件方面是相当有效的,但至少在技术环境下,它有时也会阻止有效的电子邮件。许多问题,包括网络延迟和没有适当配置的网络或者服务器,都可以阻止合法的消息通过过滤器。2003年1月,AT&T WorldNet开始把可逆DNS和其他反垃圾邮件软件一起使用。公司在配置24小时后被迫移出了过滤器,因为客户报告说消息不能传送。
相关资源
[ 提升篇 ] 钓鱼实战系列
[ 钓鱼实战系列-基础篇-4 ] 一篇文章教会你用红队思维收集目标邮箱信息-1(附邮箱收集自动化脚本)
[ 钓鱼实战系列-基础篇-4 ] 一篇文章教会你用红队思维收集目标邮箱信息-2(附邮箱收集自动化脚本)
[ 钓鱼实战系列-基础篇-4 ] 一篇文章教会你用红队思维收集目标邮箱信息-3(附邮箱收集自动化脚本)
[ 钓鱼实战系列-基础篇-5 ] 一篇文章教会你用红队思维设计钓鱼模板(附常见的钓鱼邮件模板)
[ 钓鱼实战系列-基础篇-6 ] 一篇文章让你了解邮件服务器机制(SMTP/POP/IMAP)-1
相关文章:
[ 钓鱼实战系列-基础篇-6 ] 一篇文章让你了解邮件服务器机制(SMTP/POP/IMAP)-2
🍬 博主介绍 👨🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…...
在 Docker 中搭建 PostgreSQL16 主从同步环境
1. 环境搭建 本文介绍了如何在同一台机器上使用 Docker 容器搭建 PostgreSQL 的主从同步环境。通过创建互联网络和配置主库及从库,详细讲解了数据库初始化、角色创建、数据同步和验证步骤。主要步骤包括设置主库的连接信息、创建用于复制的角色、使用 pg_basebacku…...
SpringCloud无介绍快使用,sentinel服务熔断功能与持久化(二十四)
TOC 问题背景 从零开始学springcloud微服务项目 注意事项: 约定 > 配置 > 编码IDEA版本2021.1这个项目,我分了很多篇章,每篇文章一个操作步骤,目的是显得更简单明了controller调service,service调dao默认安装ngi…...
判断浏览器环境,前端打开微信浏览器
我们知道微信浏览器有自带针对微信的组件(比如:微信JSAPI支付使用的WeixinJSBridge),那么,有办法在普通浏览器中打开微信浏览器并跳转页面吗?(似乎微信已禁用外部浏览器调用的普通页面直接跳转,只能通过“weixin://前缀…...
【算法笔记】前缀和算法原理深度剖析(超全详细版)
【算法笔记】前缀和算法原理深度剖析(超全详细版) 🔥个人主页:大白的编程日记 🔥专栏:算法笔记 文章目录 【算法笔记】前缀和算法原理深度剖析(超全详细版)前言一.一维前缀和1.1题…...
linux之网络子系统- 地址解析协议arp 源码分析和邻居通用框架
一、arp 的作用 ARP(Address Resolution Protocol,地址解析协议)是将IP地址解析为以太网MAC地址(物理地址)的协议。在局域网中,当主机或其他网络设备有数据要发送给另一个主机或设备时,它必须知…...
经典动态规划问题:含手续费的股票买卖【从 O(n) 到 O(1) 的优化解析】
题目理解 我们要在给定的股票价格数组 prices 中进行买卖操作,并尽可能多次交易以获取最大利润。每次交易都需要支付一定的手续费 fee,因此我们必须考虑如何通过合适的交易策略最大化利润。 在本题中,每一天可以选择: 不进行任…...
Python画笔案例-088 绘制 滚动的汉字
1、绘制 滚动的汉字 通过 python 的turtle 库绘制 滚动的汉字,如下图: 2、实现代码 绘制 滚动的汉字,以下为实现代码: """滚动的汉字.py """ import time from turtle import * from write_patch import *width,height...
Redis 5.0 安装配置(Windows)
Redis 5.0之后支持Redis Stream等功能 下载地址:Releases tporadowski/redis GitHub 点击运行redis-server.exe 此外:Redis 6.0及以后版本目前都没有Windows版...
金融行业:办公安全防护专属攻略
在中国金融市场快速迈向数字化转型的进程中,数据安全与隐私保护成为了不容忽视的关键议题。面对不断升级的网络威胁和日益严格的监管要求,构建一个既能支持创新又能提供坚实防护的信息安全体系变得尤为重要。亿格云不断深耕办公安全领域,为金…...
python如何基于numpy pandas完成复杂的数据分析操作?
数据分析是现代数据科学的重要组成部分,Python作为一种强大的编程语言,提供了许多库来简化数据分析过程。 其中,NumPy和Pandas是两个最常用的库。NumPy主要用于数值计算,而Pandas则提供了强大的数据结构和数据分析工具。 本文将深入探讨如何利用这两个库进行复杂的数据分…...
Linux中定时任务调度工具——crontab
1.简介 crontab是Unix和类Unix操作系统(如Linux)中用于定时任务调度的工具。其名称来源于“cron”这个守护进程,它负责周期性地执行任务,并且“tab”表示这个工具的配置文件。用户可以通过配置crontab文件来设定定时任务…...
思维+差分,CF 1884C - Medium Design
目录 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1884C - Medium Design 二、解题报告 1、思路分析 考虑 最大值 和 最小值…...
简单介绍冯诺依曼体系
现代的计算机, 大多遵守冯诺依曼体系结构 CPU中央处理器:进行算术运算和逻辑判断。存储器:分为外存和内存,用于存储数据(使用二进制方式存储)。输入设备:用户给计算机发号施令。输出设备:计算机…...
kernel32.dll下载地址:如何安全地恢复系统文件
关于从网络上寻找kernel32.dll的下载地址,这通常不是一个安全的做法,而且可能涉及到多种风险。kernel32.dll是Windows操作系统的核心组件之一,负责内存管理、进程和线程管理以及其他关键系统功能。因为kernel32.dll是系统的基础文件ÿ…...
【高等数学】多元微分学 (一)
偏导数 偏导数定义 如果二元函数 f f f 在 x 0 , y 0 x_0,y_0 x0,y0 的某邻域有定义, 且下述极限存在 lim Δ x → 0 f ( x 0 Δ x , y 0 ) − f ( x 0 , y 0 ) Δ x \lim_{\Delta x\to 0} \frac{f(x_0\Delta x,y_0)-f(x_0,y_0)}{\Delta x} Δx→0limΔxf(x0Δ…...
Python爬取京东商品信息,详细讲解,手把手教学(附源码)
Python 爬虫爬取京东商品信息 下面我将逐一解释每一部分的代码 导入库 from selenium import webdriver from selenium.webdriver.edge.service import Service from selenium.webdriver.edge.options import Options import time import random import csv from selenium.c…...
大家有没有了解过TLKS-PLGS这款接地电阻在线监测装置?它在电力系统中能发挥什么作用呢?
接地电阻在线监测仪(输电铁塔接地电阻监测装置、变电站接地电阻监测装置、三极法接地网电阻监测装置)在电力系统中发挥着至关重要的作用,具体来说,有以下几个方面: 一、实时监测预警。该装置采用激励脉冲技术…...
Shell中的函数
目录 一、系统函数 (一)前言 (二)常用的函数 basename [string/pathname] [suffix] 二、自定义函数 (一)语法 (二)脚本例子 三、函数实际案例 过程中的报错: …...
通过IP地址或者主机名添加打印机20241023
文印室打印机连接方式20241023 Win键盘搜索打印机和扫描仪点击添加打印机或扫描仪,等候片刻点击“我需要的打印机不在列表中”添加打印机,选择使用IP地址或主机名添加打印机点击下一步,设备类型选择自动检测输入主机名:即打印机有…...
优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...
短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...
Git常用命令完全指南:从入门到精通
Git常用命令完全指南:从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...
人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent
安全大模型训练计划:基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标:为安全大模型创建高质量、去偏、符合伦理的训练数据集,涵盖安全相关任务(如有害内容检测、隐私保护、道德推理等)。 1.1 数据收集 描…...
Pydantic + Function Calling的结合
1、Pydantic Pydantic 是一个 Python 库,用于数据验证和设置管理,通过 Python 类型注解强制执行数据类型。它广泛用于 API 开发(如 FastAPI)、配置管理和数据解析,核心功能包括: 数据验证:通过…...
如何通过git命令查看项目连接的仓库地址?
要通过 Git 命令查看项目连接的仓库地址,您可以使用以下几种方法: 1. 查看所有远程仓库地址 使用 git remote -v 命令,它会显示项目中配置的所有远程仓库及其对应的 URL: git remote -v输出示例: origin https://…...
2.2.2 ASPICE的需求分析
ASPICE的需求分析是汽车软件开发过程中至关重要的一环,它涉及到对需求进行详细分析、验证和确认,以确保软件产品能够满足客户和用户的需求。在ASPICE中,需求分析的关键步骤包括: 需求细化:将从需求收集阶段获得的高层需…...
深度解析:etcd 在 Milvus 向量数据库中的关键作用
目录 🚀 深度解析:etcd 在 Milvus 向量数据库中的关键作用 💡 什么是 etcd? 🧠 Milvus 架构简介 📦 etcd 在 Milvus 中的核心作用 🔧 实际工作流程示意 ⚠️ 如果 etcd 出现问题会怎样&am…...
【PX4飞控】mavros gps相关话题分析,经纬度海拔获取方法,卫星数锁定状态获取方法
使用 ROS1-Noetic 和 mavros v1.20.1, 携带经纬度海拔的话题主要有三个: /mavros/global_position/raw/fix/mavros/gpsstatus/gps1/raw/mavros/global_position/global 查看 mavros 源码,来分析他们的发布过程。发现前两个话题都对应了同一…...
算法250609 高精度
加法 #include<stdio.h> #include<iostream> #include<string.h> #include<math.h> #include<algorithm> using namespace std; char input1[205]; char input2[205]; int main(){while(scanf("%s%s",input1,input2)!EOF){int a[205]…...
