10.39. SMTP 关键词¶
10.39.1. file.name¶
file.name
关键词可用于 SMTP 应用层。
签名示例:
alert smtp any any -> any any (msg:"SMTP file.name 使用";
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 (
sid:1;)10.39.5.2. smtp.response_line¶
从服务器到客户端的单行响应。多行响应将每行生成一个帧。
alert smtp any any -> any any (
sid:1;)10.39.5.3. smtp.data¶
包含从客户端发送到服务器的 DATA 字节的流式缓冲区。
alert smtp any any -> any any (
sid:1;)10.39.5.4. smtp.stream¶
整个 SMTP 会话 TCP 数据的流式缓冲区。
alert smtp any any -> any any (flow:to_client;
sid:1;)