# SMTP Smuggling {{#include ../../banners/hacktricks-training.md}} ## 基本情報 このタイプの脆弱性は[**この投稿で最初に発見されました**](https://sec-consult.com/blog/detail/smtp-smuggling-spoofing-e-mails-worldwide/)。ここでは、メールを最終的に処理する際のSMTPプロトコルの解釈の違いを**悪用することが可能である**と説明されています。これにより、攻撃者は正当なメールの本文に他のメールを密輸し、影響を受けたドメインの他のユーザー(例えばadmin@outlook.com)を偽装することができ、SPFなどの防御を回避します。 ### なぜ これは、SMTPプロトコルでは、メールで送信される**メッセージのデータ**がユーザー(攻撃者)によって制御されており、特別に作成されたデータを送信することで、受信者に追加のメールを密輸するためのパーサーの違いを悪用できるからです。元の投稿からのこの図解例を見てください:

https://sec-consult.com/fileadmin/user_upload/sec-consult/Dynamisch/Blogartikel/2023_12/SMTP_Smuggling-Overview__09_.png

### どのように この脆弱性を悪用するために、攻撃者は**Outbound SMTPサーバーが1通のメールだと考えるデータを送信し、Inbound SMTPサーバーが複数のメールがあると考える必要があります**。 研究者たちは、異なる**Inboundサーバーがメールメッセージのデータの終わりとして異なる文字を考慮する**ことを発見しましたが、Outboundサーバーはそうではありません。\ 例えば、データの通常の終わりは`\r\n.\r`です。しかし、Inbound SMTPサーバーが`\n.`もサポートしている場合、攻撃者は**そのデータをメールに追加し、新しいメールのSMTPコマンドを示し始めることができます**。前の画像のように密輸するためです。 もちろん、これは**Outbound SMTPサーバーがこのデータをメッセージデータの終わりとして扱わない場合にのみ機能します**。そうでない場合、1通ではなく2通のメールとして認識されるため、最終的にはこの脆弱性で悪用される非同期化が発生します。 潜在的な非同期化データ: - `\n.` - `\n.\r` また、SPFが回避されることに注意してください。なぜなら、`user@outlook.com`からのメールで`admin@outlook.com`のメールを密輸すると、**送信者は依然として`outlook.com`だからです。** ## **参考文献** - [https://sec-consult.com/blog/detail/smtp-smuggling-spoofing-e-mails-worldwide/](https://sec-consult.com/blog/detail/smtp-smuggling-spoofing-e-mails-worldwide/) {{#include ../../banners/hacktricks-training.md}}