[ 钓鱼实战系列-基础篇-6 ] 一篇文章让你了解邮件服务器机制(SMTP/POP/IMAP)-1
🍬 博主介绍
👨🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~
✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!
网络钓鱼不仅是一种网络攻击技术同时也是一项最常见的社会工程技术,更是红队选手和网络犯罪分子的惯用伎俩。
本文我们探讨有邮件邮件服务器机制。
文章目录
- 🍬 博主介绍
- 1.6 邮件服务器机制-1
- 1.6.1 什么是邮件服务器?
- 1.6.2 相关协议介绍
- 1.6.2.1 SMTP
- 1.6.2.1 POP3
- 1.6.2.3 IMAP
- 1.6.3 邮件服务器的工作原理
- 1.6.3.1 SMTP服务器
- 1.6.3.2 POP3/IMAP服务器
- 1.6.3.3 邮件服务器工作流程
- 1.6.4 邮箱系统的组成部分
- 1.6.4.1 邮件用户代理(MUA)
- 1.6.4.2 邮件传输代理(MTA)
- 1.6.4.3 邮件投递代理(MDA)
- 1.6.4.4 邮件接收代理(MRA)
- 1.6.4.5 域名系统(DNS)
- 1.6.4.6 邮件列表数据库
- 1.6.4.7 邮件过滤和反垃圾邮件系统
- 相关资源
1.6 邮件服务器机制-1
1.6.1 什么是邮件服务器?
邮件服务器是一种计算机程序,用于处理和传输电子邮件,它负责接收、存储、发送和路由电子邮件。
邮件服务器也采用的是C/S工作模式,通过SMTP,POP,IMAP协议来是实现邮件的发送和接收的。
1.6.2 相关协议介绍
1.6.2.1 SMTP
SMTP 协议介绍:
SMTP 的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。
SMTP认证:
为了增强安全性并防止垃圾邮件的传播,许多邮件服务器实施了SMTP认证。这意味着用户必须在提供了账户名和密码之后才可以登录SMTP服务器。这一措施有效地阻止了未经授权的用户使用SMTP服务器发送垃圾邮件,从而保护了用户的收件箱不受侵扰。
使用端口:
SMTP使用的端口是25,而经过加密的SMTP(SMTPS)使用的端口是465。通过这些安全措施,SMTP认证不仅提高了邮件传输的安全性,还有助于减少垃圾邮件的数量,为用户提供了更加清洁和安全的电子邮件体验。
1.6.2.1 POP3
POP3 协议介绍:
POP3是Post Office Protocol 3的简称,即邮局协议的第3个版本。它是一种电子协议,用于规定个人计算机如何连接到互联网上的邮件服务器并下载电子邮件。作为因特网电子邮件的第一个离线协议标准,POP3允许电子邮件客户端从服务器上下载邮件。然而,需要注意的是,客户端上的操作(如移动邮件、标记已读等)不会反馈到服务器上。例如,即使您通过客户端收取了邮箱中的3封邮件并将其移动到其他文件夹,这些操作也不会在服务器上同步更新。
使用端口:
POP3使用的端口号是110,而经过加密的POP3(POP3S)则使用端口995。这种加密协议提供了更高的安全性,确保了用户在下载和处理电子邮件时的数据安全。
1.6.2.3 IMAP
IMAP 协议介绍:
IMAP全称是Internet Mail Access Protocol,即交互式邮件存取协议。它是与POP3类似的一种邮件访问标准协议。然而,IMAP的一个显著特点是,当您在电子邮件客户端收取邮件时,这些邮件仍然保留在服务器上。此外,客户端上的任何操作(如删除邮件、标记已读等)都会实时反馈到服务器上,确保服务器上的邮件状态与客户端保持一致。
IMAP 与 POP3 对比:
POP3协议允许电子邮件客户端下载服务器上的邮件,但是在客户端的操作(如移动邮件、标记已读等),不会反馈到服务器上。
而IMAP提供webmail 与电子邮件客户端之间的双向通信,客户端的操作都会反馈到服务器上,对邮件进行的操作,服务器上的邮件也会做相应的动作。
同时,IMAP像POP3那样提供了方便的邮件下载服务,让用户能进行离线阅读。IMAP提供的摘要浏览功能可以让你在阅读完所有的邮件到达时间、主题、发件人、大小等信息后才作出是否下载的决定。
使用端口:
基于TCP/IP协议,IMAP使用的端口号是143,而经过加密的IMAP(IMAPS)则使用端口993。这种加密协议提供了更高的安全性,确保了用户在访问和管理电子邮件时的数据传输安全。
1.6.3 邮件服务器的工作原理
主要有两种类型的邮件服务器:SMTP服务器(用于发送邮件)和POP3/IMAP服务器(用于接收和管理邮件)。
1.6.3.1 SMTP服务器
1、当用户通过客户端软件发送电子邮件时,客户端软件会将邮件发送到SMTP服务器。
2、SMTP服务器接收到邮件后,会将邮件转发到目标收件人的SMTP服务器。
3、目标收件人的SMTP服务器接收到邮件后,会将邮件存储在收件人的邮箱中。
1.6.3.2 POP3/IMAP服务器
1、当用户通过客户端软件访问自己的邮箱时,客户端软件会与POP3/IMAP服务器建立连接。
2、POP3/IMAP服务器会将用户的邮件下载到客户端软件中,用户可以查看、删除或移动邮件。
3、当用户完成操作后,客户端软件会断开与POP3/IMAP服务器的连接。
1.6.3.3 邮件服务器工作流程
1.发送邮件:
当用户尝试发送邮件时,他们的邮件客户端会与MTA通信,将邮件内容提交给MTA。
2.路由邮件:
MTA会根据收件人的地址决定如何路由邮件。如果收件人位于同一域内,MTA会直接将邮件投递到目标邮箱。如果收件人位于不同的域,MTA会查询DNS以找到正确的邮件服务器IP地址。
3.SMTP会话:
MTA之间通过SMTP会话进行通信,使用一系列握手和命令来确保邮件的准确传递。
4.接收邮件:
当邮件到达目标邮件服务器时,该服务器的MTA会处理邮件并存储在用户的邮箱中。
5.访问邮件:
用户可以通过MUA连接到他们的邮箱,使用IMAP或POP3协议检索邮件。
1.6.4 邮箱系统的组成部分
1.6.4.1 邮件用户代理(MUA)
邮件用户代理,即邮件客户端,outlook、foxmail等客户端,在网页端进行访问的网页程序也即可以被称为MUA。
1.6.4.2 邮件传输代理(MTA)
处理邮件传输的软件,如Postfix或Sendmail。它负责接收来自其他服务器的邮件并将其传递给用户的邮箱。
1.6.4.3 邮件投递代理(MDA)
邮件投递代理,当MTA接收到邮件时MDA则负责将邮件保存到邮件服务器的指定位置,同时也进行垃圾邮件处理和防病毒处理等。
1.6.4.4 邮件接收代理(MRA)
邮件接收代理,MRA负责实现IMAP或POP3协议,与MUA进行交互,将邮件通过IMAP或POP3协议传输给客户端
1.6.4.5 域名系统(DNS)
DNS用于将域名解析为IP地址,以便邮件服务器能够找到目标收件人的SMTP服务器。
1.6.4.6 邮件列表数据库
邮件列表数据库用于存储订阅了某个邮件列表的用户信息。
1.6.4.7 邮件过滤和反垃圾邮件系统
邮件过滤和反垃圾邮件系统用于识别和阻止垃圾邮件,保护用户免受垃圾邮件的骚扰。
相关资源
[ 提升篇 ] 钓鱼实战系列
[ 钓鱼实战系列-基础篇-4 ] 一篇文章教会你用红队思维收集目标邮箱信息-1(附邮箱收集自动化脚本)
[ 钓鱼实战系列-基础篇-4 ] 一篇文章教会你用红队思维收集目标邮箱信息-2(附邮箱收集自动化脚本)
[ 钓鱼实战系列-基础篇-4 ] 一篇文章教会你用红队思维收集目标邮箱信息-3(附邮箱收集自动化脚本)
[ 钓鱼实战系列-基础篇-5 ] 一篇文章教会你用红队思维设计钓鱼模板(附常见的钓鱼邮件模板)
相关文章:

[ 钓鱼实战系列-基础篇-6 ] 一篇文章让你了解邮件服务器机制(SMTP/POP/IMAP)-1
🍬 博主介绍 👨🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…...

wordpress伪静态规则
WordPress 伪静态规则是指将 WordPress 生成的动态 URL 转换为静态 URL 的规则,这样做可以提高网站的搜索引擎优化(SEO)效果,并且使得 URL 更加美观、易于记忆。伪静态规则通常需要在服务器的配置文件中设置,不同的服务器环境配置方法有所不同…...

缓存框架JetCache源码解析-缓存定时刷新
作为一个缓存框架,JetCache支持多级缓存,也就是本地缓存和远程缓存,但是不管是使用着两者中的哪一个或者两者都进行使用,缓存的实时性一直都是我们需要考虑的问题,通常我们为了尽可能地保证缓存的实时性,都…...

docker配置mysql8报错 ERROR 2002 (HY000)
通过docker启动的mysql,发现navicat无法连接,后来进入容器内部也是无法连接,产生以下错误 root9f3b90339a14:/var/run/mysqld# mysql -u root -p Enter password: ERROR 2002 (HY000): Cant connect to local MySQL server through socket …...

【Linux】为什么环境变量具有全局性?共享?写时拷贝优化?
环境变量表具有全局性的原因: 环境变量表之所以具有全局性的特征,主要是因为它们是在进程上下文中维护的,并且在大多数操作系统中,当一个进程创建另一个进程(即父进程创建子进程)时,子进程会继承…...

如何在Linux中找到MySQL的安装目录
前言 发布时间:2024-10-22 在日常管理和维护数据库的过程中,了解MySQL的确切安装位置对于执行配置更改、更新或者进行故障排查是非常重要的。本文将向您介绍几种在Linux环境下定位MySQL安装路径的方法。 通过命令行工具快速定位 使用 which 命令 首…...

机器人备件用在哪些领域
机器人备件,作为机器人技术的重要组成部分,被广泛应用于多个领域,以提高生产效率、降低成本、增强产品质量,并推动相关行业的智能化发展。以下是一些主要的应用领域: 制造业: 机器人备件在制造业中的应用最…...

基于单片机优先级的信号状态机设计
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、背景知识二、使用步骤1.定义相应状态和信号列表2.获取最高优先级信号3.通用状态机实现4.灯的控制函数 总结 前言 在嵌入式系统中,设备控制的灵…...

数字电路week3
数字电路学习 九.补充 1.Verilog和fpga verilog是一种描述电路的语言,出现于上世纪80年代 非:~与: &,或: |,异或: ^ fpga:一种可编程逻辑器件 FPGA 由大量的逻辑单元、查找表(LUTs)、触发…...

如何在 Linux 中对 USB 驱动器进行分区
如何在 Linux 中对 USB 驱动器进行分区 一、说明 为了在 Linux 上访问 USB 驱动器,它需要有一个或多个分区。由于 USB 驱动器通常相对较小,仅用于临时存储或轻松传输文件,因此绝大多数用户会选择只配置一个跨越整个 USB 磁盘的分区。但是&a…...

【STM32+HAL】STM32CubeMX学习目录
一、基础配置篇 【STM32HAL】微秒级延时函数汇总-CSDN博客 【STM32HAL】CUBEMX初始化配置 【STM32HAL】定时器功能小记-CSDN博客 【STM32HAL】PWM呼吸灯实现 【STM32HAL】DACDMA输出波形实现-CSDN博客 【STM32HAL】ADCDMA采集(单通道多通道)-CSDN博客 【STM32HAL】三重A…...

PPT自动化:Python如何修改PPT文字和样式!
文章目录 📖 介绍 📖🏡 演示环境 🏡📒 文章内容 📒📝 使用 Python 修改 PPT 文本内容📝 遍历所有幻灯片和文本框📝 设置和修改文本样式📝 复制和保留文本样式⚓️ 相关链接 ⚓️📖 介绍 📖 在日常工作中,PPT 的文字内容和样式修改似乎是一项永无止境的…...

4:Java的介绍与基础4:for语句
4.1for循环 for循环也是一个非常重要的东西,再代码中是一个循环的作用,在python的文章中也介绍过了for循环的使用方法,其实在Java中也是一样的逻辑,但是有着不一样的表达,现在我们来讲一下关于for循环的东西。 因为循…...

R语言机器学习算法实战系列(十二)线性判别分析分类算法 (Linear Discriminant Analysis)
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍LDA的原理LDA的步骤教程下载数据加载R包导入数据数据预处理数据描述数据切割构建模型预测测试数据评估模型模型准确性混淆矩阵模型评估指标ROC CurvePRC Curve保存模型总结优点:缺…...

[LeetCode] 50. Pow(x, n)
题目描述: 实现 pow(x, n) ,即计算 x 的整数 n 次幂函数(即,xn )。 示例 1: 输入:x 2.00000, n 10 输出:1024.00000示例 2: 输入:x 2.10000, n 3 输出…...

Vue学习笔记(七、事件修饰符 .stop .capture .self .once .prevent)
先看一段基本的代码: <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>VueBaseCode</title><script src"./lib/vue.js"></script><style>.inner {width:…...

web网站搭建(静态)
准备工作: 关闭防火墙: [rootlocalhost ~]# systemctl disable --now firewalld 修改enforce为permissive [rootlocalhost ~]# setenforce 0 [rootlocalhost ~]# geten getenforce getent [rootlocalhost ~]# getenforce Permissive 重启服务 [rootloca…...

高效特征选择策略:提升Python机器学习模型性能的方法
高效特征选择策略:提升Python机器学习模型性能的方法 目录 🔍 特征选择的重要性📊 相关性分析🔄 递归特征消除 (RFE)🌳 基于模型的特征选择 1. 🔍 特征选择的重要性 特征选择在机器学习中至关重要&#…...

2024年TI杯E题-三子棋游戏装置方案分享-jdk123团队-第四弹 第一题
#1024程序员节|征文# 往期回顾 前期准备 摄像头bug解决 手搓机械臂 视觉模块的封装 第一问: 需要将一颗黑棋,放入棋盘中的五号位置。 理想思路:依据摄像头,依据机械臂及其传感器。建立机械臂的逆运动学方程。然后完…...

优化多表联表查询的常见方法归纳
目录 一、使用mybatis的嵌套查询 二、添加表冗余字段,减少联表查询需求 三、分表预处理,前端再匹配 一、使用mybatis的嵌套查询 【场景说明】 前端需要展示一张列表,其中的字段来源于多张表,如何进行查询优化? 【…...

Java毕业设计 基于SpringBoot发卡平台
Java毕业设计 基于SpringBoot发卡平台 这篇博文将介绍一个基于SpringBoot发卡平台,适合用于Java毕业设计。 功能介绍 首页 图片轮播 商品介绍 商品详情 提交订单 文章教程 文章详情 查询订单 查看订单卡密 客服 后台管理 登录 个人信息 修改密码 管…...

VRoid Studio 介绍 3D 模型编辑器
VRoid Studio 是由日本公司 pixiv 开发的一款免费 3D 模型创建软件,专门设计用于轻松制作 3D 虚拟角色。它的主要特点是用户友好,允许没有 3D 建模经验的用户创建高质量的 3D 人物角色,尤其是针对虚拟主播(Vtuber)、动…...

软件设计模式------抽象工厂模式
抽象工厂模式(Abstract Factory Pattern),又称Kit模式,属于对象创建型模式。 一:先理解两个概念: (1)产品等级结构: 即产品的继承结构。 通俗来讲,就是不同品…...

基于springboot+微信小程序校园自助打印管理系统(打印1)
👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 基于springboot微信小程序校园自助打印管理系统实现了管理员、店长和用户。管理员实现了用户管理、店长管理、打印店管理、打印服务管理、服务类型管理、预约打印管理和系统管理。店长实现…...

解锁文本数据可视化的无限可能:Wordcloud库全解析
文章目录 **🌟解锁文本数据可视化的无限可能:Wordcloud库全解析🔐**1. **背景介绍**2. **Wordcloud库是什么?**3. **如何安装Wordcloud库?**4. **Wordcloud库的基本函数使用方法**5. **实际应用场景**6. **常见问题及解…...

代码审计-Python Flask
1.Jinjia2模版注入 Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2。jinja2是Flask作者开发的一个模板系统,起初是仿django模板的一个模板引擎,为Flask提供模板支持,由于…...

深度学习:开启人工智能的新纪元
深度学习:开启人工智能的新纪元 深度学习是机器学习的一个子领域,它基于人工神经网络的学习算法,特别是那些具有多个非线性变换的层(即“深度”)。这些算法模仿人脑处理信息的方式,通过学习数据的多层次表…...

第十四章_File类与IO流
目录 1. java.io.File类的使用 1.1 概述 1.2 构造器 1.3 常用方法 1、获取文件和目录基本信息 2、列出目录的下一级 3、File类的重命名功能 4、判断功能的方法 5、创建、删除功能 1.4 练习 2. IO流原理及流的分类 2.1 Java IO原理 2.2 流的分类 2.3 流的API 3. …...

Qml-CheckBox的使用
Qml-CheckBox的使用 CheckBox属性 CheckBox的继承关系: CheckBox – AbstractButton – Control – Item; CheckBox的属性主要继承于AbstractButton。属性checkState:勾选状态,值为:Qt.Unchecked、Qt.Checked、Qt.PartiallyChec…...

Java的RocketMQ使用
在 Spring Boot 中,RocketMQ 和 Kafka 都是常用的消息中间件,它们的使用方法有一些相似之处,也有各自的特点。 一、RocketMQ 在 Spring Boot 中的使用 引入依赖 在项目的pom.xml文件中添加 RocketMQ 的依赖。 <dependency><groupId…...