10.39. SMTP 关键词

10.39.1. file.name

file.name 关键词可用于 SMTP 应用层。

签名示例:

alert smtp any any -> any any (msg:"SMTP file.name 使用"; file.name; content:"winmail.dat"; classtype:bad-unknown; sid:1; rev:1;)

关于 file.name 关键词的更多信息,请参阅 文件关键词

10.39.2. smtp.helo

SMTP helo 是客户端传递给第一个 HELO 命令的参数。 该关键词按事务匹配,因此即使 helo 仅在流开始时出现一次,它也可能在单个流中多次匹配。

语法:

smtp.helo; content:"localhost";

签名示例:

alert smtp any any -> any any (msg:"SMTP helo localhost"; smtp.helo; content:"localhost"; sid:2; rev:1;)

smtp.helo 是一个 'sticky buffer'。

smtp.helo 可用作 fast_pattern

该关键词映射到 eve.json 日志字段 smtp.helo

10.39.3. smtp.mail_from

SMTP mail from 是客户端传递给第一个 MAIL FROM 命令的参数。

语法:

smtp.mail_from; content:"spam";

签名示例:

alert smtp any any -> any any (msg:"SMTP mail from spam"; smtp.mail_from; content:"spam"; sid:2; rev:1;)

smtp.mail_from 是一个 'sticky buffer'。

smtp.mail_from 可用作 fast_pattern

该关键词映射到 eve.json 日志字段 smtp.mail_from

10.39.4. smtp.rcpt_to

SMTP rcpt to 是客户端传递给某个 RCPT TO 命令的参数之一。

语法:

smtp.rcpt_to; content:"sensitive@target";

签名示例:

alert smtp any any -> any any (msg:"SMTP rcpt to sensitive"; smtp.rcpt_to; content:"sensitive@target"; sid:2; rev:1;)

smtp.rcpt_to 是一个 'sticky buffer'。

smtp.rcpt_to 是一个 'multi buffer'。

smtp.rcpt_to 可用作 fast_pattern

该关键词映射到 eve.json 日志字段 smtp.rcpt_to[]

10.39.5. 帧结构

SMTP 解析器支持以下帧:

  • smtp.command_line

  • smtp.response_line

  • smtp.data

  • smtp.stream

10.39.5.1. smtp.command_line

从客户端到服务器的单行命令。多行命令将每行生成一个帧。SMTP DATA 传输中的行会被排除。

alert smtp any any -> any any ( frame:smtp.command_line; content:"MAIL|20|FROM:"; startswith; sid:1;)

10.39.5.2. smtp.response_line

从服务器到客户端的单行响应。多行响应将每行生成一个帧。

alert smtp any any -> any any ( frame:smtp.response_line; content:"354 go ahead"; startswith; sid:1;)

10.39.5.3. smtp.data

包含从客户端发送到服务器的 DATA 字节的流式缓冲区。

alert smtp any any -> any any ( frame:smtp.data; content:"Reply-To:"; startswith; content:"Subject"; distance:0; sid:1;)

10.39.5.4. smtp.stream

整个 SMTP 会话 TCP 数据的流式缓冲区。

alert smtp any any -> any any (flow:to_client; frame:smtp.stream; content:"250 ok|0d 0a|354 go ahead"; sid:1;)