基于ebpf的unix域套接字类tcpdump
unixdump的Python项目详细描述
单泵
“用于Unix域套接字的tcpdump”
unixdump
是一个强大的命令行unix域套接字“packet”捕获器。它
是一个基于ebpf的内核跟踪工具,可以提取、处理和转储所有
通过Unix域套接字跨整个Linux主机发送数据,并支持
用于各种过滤粒度的内核过滤器中的性能。它
允许对进程之间的Unix套接字通信量进行手动流量检查,
包括辅助数据,如文件描述符和unix凭据。
安装
密件抄送
unixdump
依赖于bcc ebpf跟踪工具框架。见
BCC install instructions
为了你的发行。我们建议从
source。
注意:虽然bcc更新可能导致中断,unixdump
已知
使用版本0.8.0
在ubuntu 18.04和0.7.0
在ubuntu 18.04和kali上。如果您对unixdump
有问题,请
确保您没有运行过期的bcc版本。
单泵
sudo -H pip install unixdump
用法
unixdump
最好与过滤器一起使用。其中几个重要的定义
below,其余的可以用--help
列出。转储所有Unix
系统的域套接字通信量(无呈现
输出),不带任何参数运行unixdump
:
注意:unixdump
需要CAP_SYS_ADMIN
权限和对
sysfs
/debugfs
。
sudo unixdump
对于一个示例用例,假设我们知道程序创建了一个unix域
以/tmp/domain-socket-
开头的随机字符的套接字。我们可以
将输出限制为仅以该字符串开头的套接字:
sudo unixdump -b '/tmp/domain-socket'
使用unixdump
过滤器的组合可以进一步限制输出
选项。
选项
unixdump
提供许多不同的参数来过滤输出和微调
表演。下面是一些更值得注意的选项:
-b, --beginswith
:最有用的过滤器之一是匹配开始 套接字路径的序列。当程序创建 以随机字符结尾的套接字路径,但开头是唯一和恒定的。 这使得在不提前知道整个套接字名称的情况下过滤成为可能。-s, --socket
:当用户知道套接字路径的确切名称时,这是 使用的选项。通过指定一个空字符串,比如-s ''
,unixdump
将筛选未命名的套接字。-@, --base64
:要筛选二进制抽象命名空间键,此选项 指示unixdump
将-b
/-s
选项解析为base64。-p, --pid
:在特定进程(以及任何通信 使用此选项。-x, --exclude
:当用户正在监听一般流量并希望 隐藏有噪声的进程,如Xorg
。此参数采用空格分隔的列表 要排除的pids
的。-t, --excludeownterminal
:(需要wmctrl
)尝试排除当前终端进程 从捕获。目前支持wayland和x11,以及tmux
和screen
终端多路复用器。
注意:Wayland当前不支持屏幕-l, --ancillarydata
:对于那些只想监视包含 辅助数据。这将提供文件描述符或unix凭据 是被派来的。-o, --dir
:根据pid
对将输出保存到单独的文件中。这个 选项-c, --color
也可以设置为像在wireshark中一样添加颜色。-B, --extract
:从--dir
保存的文件中提取缓冲区内容 并将其输出到单独的客户机和服务器文件中的二进制文件。