10.19. SSH关键词¶
Suricata提供了多个规则关键词来匹配SSH连接中的不同元素。
10.19.1. 钩子函数¶
SSH可用的钩子函数包括:
请求端(to_server
):
request_in_progress
request_banner_wait_eol
request_banner_done
request_finished
响应端(to_client
):
response_in_progress
response_banner_wait_eol
response_banner_done
response_finished
10.19.2. 帧结构¶
SSH解析器支持以下帧类型:
ssh.record_hdr
ssh.record_data
ssh.record_pdu
这些帧表示SSH记录在横幅之后、加密之前的头部+数据=协议数据单元(PDU)。SSH记录头部长度为6字节:4字节长度,1字节填充,1字节消息代码。
示例:
alert ssh any any -> any any (msg:"hdr帧新密钥"; frame:ssh.record.hdr; content: "|15|"; endswith; bsize: 6; sid:2;)
此规则匹配效果等同于Wireshark的``ssh.message_code == 0x15``。
10.19.3. ssh.proto¶
匹配使用的SSH协议版本。ssh.proto``是粘性缓冲区,可用作快速模式。``ssh.proto``取代了先前的缓冲区名称``ssh_proto
。虽然旧名称仍可使用,但建议将现有规则转换为使用新名称。
格式:
ssh.proto;
示例:
alert ssh any any -> any any (msg:"匹配SSH协议版本"; ssh.proto; content:"2.0"; sid:1000010;)
上例匹配SSH版本为2.0的连接。
10.19.4. ssh.software¶
匹配SSH横幅中的软件字符串。``ssh.software``是粘性缓冲区,可用作快速模式。
格式:
ssh.software;
示例:
alert ssh any any -> any any (msg:"匹配SSH软件字符串"; ssh.software; content:"openssh"; nocase; sid:1000020;)
上例匹配软件字符串包含"openssh"的SSH连接。
10.19.5. ssh.hassh¶
匹配客户端的hassh值(客户端算法组合的MD5哈希)。
示例:
alert ssh any any -> any any (msg:"匹配hassh"; \
ssh.hassh; content:"ec7378c1a92f5a8dde7e8b7a1ddf33d1";\
sid:1000010;)
``ssh.hassh``属于'粘性缓冲区'。
ssh.hassh``可用作``fast_pattern
。
10.19.6. ssh.hassh.string¶
匹配Hassh字符串(客户端的算法组合)。
示例:
alert ssh any any -> any any (msg:"匹配hassh字符串"; \
ssh.hassh.string; content:"none,zlib@openssh.com,zlib"; \
sid:1000030;)
``ssh.hassh.string``属于'粘性缓冲区'。
ssh.hassh.string``可用作``fast_pattern
。
10.19.7. ssh.hassh.server¶
匹配服务端的hassh值(服务端算法组合的MD5哈希)。
示例:
alert ssh any any -> any any (msg:"匹配SSH服务端哈希"; \
ssh.hassh.server; content:"b12d2871a1189eff20364cf5333619ee"; \
sid:1000020;)
``ssh.hassh.server``属于'粘性缓冲区'。
ssh.hassh.server``可用作``fast_pattern
。
10.19.8. ssh.hassh.server.string¶
匹配服务端的hassh字符串(服务端算法组合)。
- 示例::
- alert ssh any any -> any any (msg:"匹配SSH服务端哈希字符串";
ssh.hassh.server.string; content:"umac-64-etm@openssh.com,umac-128-etm@openssh.com"; sid:1000040;)
``ssh.hassh.server.string``属于'粘性缓冲区'。
ssh.hassh.server.string``可用作``fast_pattern
。