这是 ssldump 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
ssldump - 转储网络上的 SSL 流量
概要
ssdump [ -vTshVq -aAdeHnNqTxXvy [ -i 接口 ]
[ -k 密钥文件 [ -p 密码 [ -r 转储文件 ]
[ -S [加密|d|ht|H|恩罗夫] ] [ 表达 ]
商品描述
ssdump 是一个 SSL/TLS 网络协议分析器。 它识别 TCP 连接
选择的网络接口并尝试将它们解释为 SSL/TLS 流量。 当它
识别 SSL/TLS 流量,它解码记录并以文本形式显示它们以
标准输出。 如果提供了适当的密钥材料,它还将解密
连接并显示应用程序数据流量。
ssldump 已经在 FreeBSD、Linux、Solaris 和 HP/UX 上进行了测试。 由于它基于 PCAP,
它应该适用于大多数平台。 但是,与tcpdump不同的是,ssldump需要能够看到
数据传输的两端,因此您可能无法通过网络分路器使用它
例如不允许您查看传输数据的 SunOS nit。 下 SunOS的 - 尼特 or
bpf: 跑步 转储 你必须有读取权限 /开发/尼特 or /开发/ bpf *. 下 的Solaris
- dlpi: 您必须具有对网络伪设备的读取权限,例如 /开发/文件. 下
HP-UX - dlpi: 你必须是 root 或者它必须安装 setuid 到 root。 下 IRIX -
窥探: 你必须是 root 或者它必须安装 setuid 到 root。 下 Linux的: 你必须
root 或必须安装 setuid 到 root。 下 ULTRIX 和 数字输入型 UNIX: 一旦
超级用户已启用混杂模式操作使用 配置文件(8)、任何用户均可运行
ssdump 下 BSD: 您必须具有读取权限 /开发/ bpf *.
配置
-a 打印裸 TCP ACK(用于观察 Nagle 行为)
-A 打印所有记录字段(默认情况下 ssldump 选择最有趣的字段)
-d 显示应用数据流量。 这通常意味着解密它,但是当 -d
使用 ssldump 还将解码应用程序数据流量 before SSL 会话
发起。 这允许您查看 HTTPS CONNECT 行为以及 SMTP STARTTLS。
作为副作用,由于 ssldump 无法判断明文是否是
启动 SSL 连接或只是常规 TCP 连接,这允许您
使用 ssldump 来嗅探任何 TCP 连接。 ssldump 会自动检测
ASCII 数据并直接显示在屏幕上。 非 ASCII 数据显示为
十六进制转储。 另见-X。
-e 打印绝对时间戳而不是相对时间戳
-H 打印完整的 SSL 数据包头。
-n 不要尝试从 IP 地址解析主机名
-N 当 ASN.1 出现时尝试解析它,例如在证书和 DN 中。
-p 使用 VHDL 语言编写 密码 作为 SSL 密钥文件密码。
-P 不要将界面置于混杂模式。
-q 不要解码单个汇总行之外的任何记录字段。 (静音模式)。
-T 打印 TCP 标头。
-v 显示版本和版权信息。
-x 以十六进制打印每条记录,并对其进行解码。
-X 使用 -d 选项时,二进制数据会自动打印成两列
左侧是十六进制转储,右侧是可打印字符。 -X
抑制可打印字符的显示,从而更容易切割
并将十六进制数据粘贴到其他程序中。
-y 使用 nroff/troff 装饰输出以进行处理。 不是很有用
普通用户。
-i 接口
使用 VHDL 语言编写 接口 作为嗅探 SSL/TLS 流量的网络接口。
-k 密钥文件
使用 VHDL 语言编写 密钥文件 作为 SSL 密钥文件的位置(OpenSSL 格式) 以前的版本
ssldump 自动在 ./server.pem 中查找。 现在您必须指定您的密钥文件
每次。
-p 密码
使用 VHDL 语言编写 密码 作为 SSL 密钥文件密码。
-r 文件
从中读取数据 文件 而不是来自网络。 旧的 -f 选项仍然有效,但
已弃用,可能会在下一个版本中删除。
-S [ 加密 | d | ht | H ]
为 ssldump 指定 SSL 标志。 这些标志包括:
加密 打印加密信息。
d 打印已解码的字段。
ht 打印握手类型。
H 打印握手类型和突出显示。
表达
选择 ssldump 将检查的数据包。 从技术上讲,ssldump 支持
来自 PCAP 和 tcpdump 的完整表达式语法。 其实这里的描述是
摘自 tcpdump 手册页。 但是,由于 ssldump 需要检查完整的 TCP
流,大多数 tcpdump 表达式将选择 ssldump 的流量混合
会直接无视。 只有不会导致不完整 TCP 的表达式
此处列出了流。
这个 表达 由一个或多个 原语. 原语通常包括
an id (姓名或号码)前面有一个或多个限定词。 有三种
不同类型的限定符:
类型 限定词说明 id 名称或编号所指的类型。 可能的
类型是 主持人, 净 和 端口. 例如,`host foo'、`net 128.3'、`port 20'。 如果
没有类型限定符, 主持人 假设。
DIR 限定符指定特定的传输方向和/或来自 ID。
可能的方向是 SRC, DST, SRC or DST 和 SRC 和 DST. 例如,`src
foo'、`dst net 128.3'、`src 或 dst 端口 ftp-data'。 如果没有目录
预选赛, SRC or DST 假设。 对于“空”链接层(即指向
点协议,如滑) 入境 和 出境 预选赛可以是
用于指定所需的方向。
使用单词构建更复杂的过滤器表达式 和, or 和 而不去 至
结合原语。 例如,'host foo 而不是端口 ftp 而不是端口 ftp-data'。 到
保存打字,可以省略相同的限定符列表。 例如,`tcp dst 端口 ftp 或
ftp-data or domain' 与 `tcp dst port ftp 或 tcp dst port ftp- 完全相同
数据或 tcp dst 端口域'。
允许的原语是:
DST 主持人 主持人
如果数据包的 IPv4/v6 目标字段为 True 主持人,可能是
一个地址或一个名字。
SRC 主持人 主持人
如果数据包的 IPv4/v6 源字段为 True 主持人.
主持人 主持人
如果数据包的 IPv4/v6 源或目标是 主持人。 任何
上面的主机表达式中可以加上关键字, ip, ARP,
说唱或 ip6 如:
ip 主持人 主持人
这相当于:
原 \ip 和 主持人 主持人
If 主持人 是具有多个IP地址的名称,每个地址都会被检查
比赛。
DST 主机
如果以太网目标地址为真 主机. 主机 可能是
来自 /etc/ethers 的名称或数字(请参阅 醚(3N) 用于数字格式)。
SRC 主机
如果以太网源地址为真 主机.
主持人 主机
如果以太网源地址或目标地址为真 主机.
网关 主持人
如果使用的数据包为真 主持人 作为网关。 即,以太网源或
目标地址是 主持人 但既不是 IP 来源也不是 IP
目的地是 主持人. 主办方 必须是一个名字,并且必须在两者中都能找到
/ etc / hosts文件 和 /etc/ethers.conf (等价的表达式是
主持人 主机 和 而不去 主持人 主持人
可以与名称或数字一起使用 主持人 / 主机。) 这
语法目前在启用 IPv6 的配置中不起作用。
DST 净 净
如果数据包的 IPv4/v6 目标地址具有网络号,则为真
of 净. 净 可能是一个名字来自 /etc/网络 或网络号(请参阅
网络(4) 了解详细信息)。
SRC 净 净
如果数据包的 IPv4/v6 源地址的网络号为 True
净.
净 净
如果数据包的 IPv4/v6 源地址或目标地址具有
网络号码 净.
净 净 面膜 面膜
如果 IP 地址匹配,则为真 净 与特定的网络掩码。 或许
有资格 SRC or DST. 请注意,此语法对 IPv6 无效 净.
净 净/LEN
如果 IPv4/v6 地址匹配,则为真 净 一个网络掩码 LEN 位宽。 或许
有资格 SRC or DST.
DST 端口 端口
如果数据包是 ip/tcp、ip/udp、ip6/tcp 或 ip6/udp 并且具有
目的端口值 端口。 该 端口 可以是数字或名称
/ etc /服务 (见 TCP(4P) 和 UDP(4P))。 如果使用名称,则端口
检查号码和协议。 如果使用数字或不明确的名称,
只检查端口号(例如, DST 端口 513 将打印两者
tcp/登录流量和 udp/who 流量,以及 端口 域 将打印两者
tcp/域和 udp/域流量)。
SRC 端口 端口
如果数据包的源端口值为 True 端口.
端口 端口
如果数据包的源端口或目标端口为真 端口. 任何
上面的端口表达式可以加上关键字, TCP or UDP,
如:
TCP SRC 端口 端口
仅匹配源端口为的 tcp 数据包 端口.
可以使用以下方法组合原语:
一组带括号的原语和运算符(括号是特殊的
到 Shell 并且必须转义)。
否定 (`!' 或`而不去“)。
串联 (`&&' 或`和“)。
交替(`||' 或`or“)。
否定具有最高优先级。 交替和串联具有相等性
从左到右优先和关联。 注意显式 和 代币,不是
并列,现在需要串联。
如果给出的标识符没有关键字,则假定为最近的关键字。
例如,
而不去 主持人 vs 和 高手
是短期的
而不去 主持人 vs 和 主持人 高手
不应与
而不去 ( 主持人 vs or 高手 )
表达式参数可以作为单个参数或作为
多个参数,以更方便的为准。 一般来说,如果表达式
包含 Shell 元字符,更容易将其作为单个引用
争论。 多个参数在解析之前用空格连接。
示例
监听接口上的流量 le0 端口 443
ssdump -i le0 端口 443
监听到服务器的流量 罗密欧 在港口 443.
ssdump -i le0 端口 443 和 主持人 罗密欧
解密到主机的流量 罗密欧 服务器.pem 和密码 foobar
ssdump -广告 -k 〜/服务器.pem -p foobar -i le0 主持人 罗密欧
OUTPUT FORMAT
所有输出都打印到标准输出。
ssldump 使用如下所示的行打印每个新 TCP 连接的指示
新建 TCP 地都 #2: iromeo.rtfm.com网站(2302) <-> sr1.rtfm.com(4433)
发送第一个 SYN 的主机打印在左侧,响应的主机是
印在右边。 通常,这意味着 SSL 客户端将打印在
左边是 SSL 服务器,右边是 SSL 服务器。 在这种情况下,我们有一个来自
iromeo.rtfm.com网站 (港口 2303),以 sr1.rtfm.com (港口 4433)。 允许用户解开
来自不同连接的流量,每个连接都有编号。 这是连接 2.
每个 SSL 记录的打印输出都以记录行开头。 该行包含
连接和记录编号、时间戳和记录类型,如下所示:
2 3 0.2001 (0.0749) S>C Handshake 认证证书
这是记录 3 连接时 2. 第一个时间戳是从开始的时间
连接。 第二个是自上次记录以来的时间。 两者都在几秒钟内。
记录行中的下一个字段是记录前进的方向。 C>S
表示从客户端传输到服务器的记录和 S>C 表示传输的记录
从服务器到客户端。 ssldump 假设传输第一个 SYN 的主机是 SSL
客户(这几乎总是正确的)。
下一个字段是记录类型,其中之一 Handshake, 警报, 更改密码规范或
应用数据. 最后,ssldump 可能会在该行的其余部分打印特定于记录的数据。
对于 Handshake 记录,它打印握手消息。 因此,这个记录是 认证证书
信息。
ssldump 选择某些记录类型进行进一步解码。 这些是那些有
被证明对调试最有用:
客户您好 - 版本、提供的密码套件、会话 ID
如果提供)
服务器你好 - 版本,session_id,选择的密码套件,
压缩方式
警惕 - 类型和级别(如果可以获得)
各种记录的更完整的解码可以通过使用 -A , -d , -k 和 -p
标志。
解密
如果满足以下两个条件,ssldump 可以解密两台主机之间的流量:
1. ssldump 有密钥。
2. 使用静态RSA。
在任何其他情况下,一旦开始加密,ssldump 将只能确定
记录类型。 考虑跟踪的以下部分。
1 5 0.4129 (0.1983) C>S Handshake 客户端密钥交换
1 6 0.4129 (0.0000) C>S 更改密码规范
1 7 0.4129 (0.0000) C>S Handshake
1 8 0.5585 (0.1456) S>C 更改密码规范
1 9 0.6135 (0.0550) S>C Handshake
1 10 2.3121 (1.6986) C>S 应用数据
1 11 2.5336 (0.2214) C>S 应用数据
1 12 2.5545 (0.0209) S>C 应用数据
1 13 2.5592 (0.0046) S>C 应用数据
1 14 2.5592 (0.0000) S>C 警惕
请注意 客户端密钥交换 消息类型被打印,但其余的 Handshake
消息没有类型。 这些是 完成 消息,但因为它们是
加密的 ssldump 只知道它们的类型 Handshake. 同样,有 警惕 in
记录 14 发生在握手期间,它的类型和级别会被打印出来。
然而,由于它是加密的,我们只能说它是一个警报。
使用 onworks.net 服务在线使用 ssldump
