hacktricks/network-services-pentesting/pentesting-smtp/smtp-smuggling.md

5.1 KiB
Raw Blame History

SMTP Smuggling

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

基本情報

このタイプの脆弱性は、この投稿で最初に発見されました。ここでは、メールを最終的に送信する際の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だからです。

参考文献

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}