Skip to content
Wireshark Wiki 中文翻译整理专题首页原始页面

远程执行协议 (exec)

exec 协议(有时称为 rexec)用于在远程服务器上运行程序,就像该程序在本地计算机上运行一样。这是通过在连接中重定向标准输入/输出和标准错误来实现的。运行 exec 的服务器通过打开 socket 接收来自客户端的连接。服务器会等待四个以 null 结尾的字符串(这些字符串可能分布在 2、3 或 4 个数据包中):

  • 标准错误流端口
  • 用户名
  • 密码
  • 要在服务器上运行的命令

收到这些字符串后,控制权会传递给“要在服务器上运行的命令”字符串中指定的程序。

历史

exec 协议最早被加入 4.2BSD,后来被认定为不安全。该协议的主要安全问题是它不加密数据,因此用户名和密码可以被 packet sniffer 查看。

协议依赖

  • TCP:exec 协议通常运行在 IANA 分配的 TCP port 512 上。

示例流量

Wireshark

exec dissector 功能完整。在某些情况下,例如数据包丢失时,连接状态无法被正确跟踪。如果状态丢失,字段可能会以错误的顺序显示(例如,密码显示为 username 字段)。

首选项设置

exec 协议在 Wireshark 中有两个首选项设置:

  • 在 info 列中显示用户名?控制是否在 info 列中显示会话的用户名。只有在本次 capture session 中看到了包含它的数据包时才会显示。

  • 在 info 列中显示命令?控制是否在 info 列中显示本会话在服务器上运行的命令。只有在本次 capture session 中看到了包含它的数据包时才会显示。

示例捕获文件

exec-sample.pcap

显示过滤器

exec 显示过滤器字段的完整列表可在 display filter reference 中找到

只显示 exec 流量:

 exec

捕获过滤器

捕获时不能直接过滤 exec 协议。不过,如果你知道所使用的 TCP port(见上文),可以对该端口进行过滤。

只捕获默认端口 (512) 上的 exec 流量:

 tcp port 512

外部链接

  • FreeBSD rexecd 源代码

  • FreeBSD rexecd man page

讨论

导入自 https://wiki.wireshark.org/Exec ,时间为 2020-08-11 23:13:56 UTC

原始页面图片

wireshark-exec-capture.png
wireshark-exec-capture.png

相关 Wireshark Wiki 页面

网络分析技术档案