Appearance
Appearance
Secure Shell (SSH) 是较旧的远程 shell 程序(例如 telnet)的替代品。SSH 使用加密来保护通过其连接发送的内容(最显著的是密码)。
XXX - 添加 SSH 历史的简要描述
XXX - 在此处添加示例流量(纯文本或 Wireshark 截图)。
Wireshark 中的 SSH dissector 功能可用,可以解析大多数未加密的连接建立数据包。
与 TLS dissector 不同,目前尚未编写用于解密加密 SSH 数据包/载荷的代码。这也不可能做到,除非从 SSH 服务器或客户端中提取共享密钥(来自 Diffie-Hellman 密钥交换)(可参见 TLS 中 "SSLKEYLOGFILE" 方法作为提取此类内部信息机制的示例)。SSH2 解密工作的跟踪地址为 https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=16054
SSH dissector 有一个首选项,用于确定它是否应重新组装分布在多个 TCP 段中的 PDU。要使其工作,必须启用 TCP 选项 "Allow subdissectors to reassemble TCP streams"。
XXX - 向 SampleCaptures 页面添加一个简单的示例捕获文件,并从此处链接。保持简短,最好也将其 gzip 压缩以进一步减小体积,因为 Wireshark 可以自动打开 gzip 压缩文件。
完整的 SSH 显示过滤器字段列表可在显示过滤器参考中找到
仅显示基于 SSH 的流量:
ssh捕获时不能直接过滤 SSH 协议。不过,如果你知道所使用的 TCP 端口(见上文),可以按该端口进行过滤。
可以通过提供密钥日志文件来启用解密。该文本文件必须遵循以下格式:
每一行由 cookie、key type 和 key 组成,三者以一个空格分隔。cookie 是十六进制编码的(client 或 server)16 字节 cookie(32 个字符),可在算法协商期间由公开其 private random 的端点发送的 SSH_MSG_KEXINIT 中找到。key type 是 SHARED_SECRET 或 PRIVATE_KEY。key 采用十六进制编码,要么是共享密钥(RFC 4253 中的 'K'),要么是在 DH 密钥交换期间用于生成共享密钥的 private random number(RFC 4253 中客户端称为 'x',服务器称为 'y');其长度取决于算法。
cookie 用于标识会话,并且要么直接使用 SHARED_SECRET,要么从双方的 PRIVATE_KEYs 派生。
密钥日志文件可以嵌入到 pcapng Decryption Secrets Block 中。
RFC 4250 - Secure Shell (SSH) Protocol Assigned Numbers
RFC 4251 - Secure Shell (SSH) Protocol Architecture
RFC 4252 - Secure Shell (SSH) Authentication Protocol
RFC 4253 - Secure Shell (SSH) Transport Layer Protocol
RFC 4254 - Secure Shell (SSH) Connection Protocol
RFC 4419 - Diffie-Hellman Group Exchange for the Secure Shell (SSH) Transport Layer Protocol
RFC 5656 - Elliptic Curve Algorithm Integration in the Secure Shell Transport Layer
已结束的 Secure Shell (secsh) IETF 工作组的其他文档
IANA:Secure Shell (SSH) Protocol Parameters
Imported from https://wiki.wireshark.org/SSH on 2020-08-11 23:25:52 UTC