我已经sshd
在我的计算机(Ubuntu-12.10)中开始让其他 PC(let pc2)通过本地端口转发连接到我的访客帐户中。
现在如何从我的 PC 监控该 pc2 的流量,即他/她正在打开哪个网站或他/她正在下载什么数据以及通过我的计算机的其他流量?
我已经sshd
在我的计算机(Ubuntu-12.10)中开始让其他 PC(let pc2)通过本地端口转发连接到我的访客帐户中。
现在如何从我的 PC 监控该 pc2 的流量,即他/她正在打开哪个网站或他/她正在下载什么数据以及通过我的计算机的其他流量?
您无法“看到”来自 pc2 的流量,因为 ssh 对其进行了加密。但是,您将能够在使用任何隧道流量时看到其出站部分,因为这是由本地 sshd 生成的。
使用 lsof 命令,查看当来自 pc2 的用户使用 ssh 连接到您时会发生什么。lsof -i TCP|grep pc2
将向您展示类似的内容:-
sshd 14466 root 3u IPv4 327724762 0t0 TCP pc1:ssh->pc2:40781 (ESTABLISHED)
sshd 19170 pc2user 3u IPv4 327724762 0t0 TCP pc1:ssh->pc2:40781 (ESTABLISHED)
第一行代表 sshd 服务本身,第二行代表运行 pc2 用户连接的 sshd 部分(Ubuntu 和希望现在其他所有人都默认使用权限分离)。
从这个视图中,您看不到任何端口转发,因为它还没有被使用。但是我们可以使用 pc2user 的 ssh 会话的进程 ID (PID),这里是 19170。我们现在可以lsof
再次使用来查看该过程在做什么。lsof -p 19170 -a -i TCP
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 19170 pc2user 3u IPv4 327724762 0t0 TCP pc1:ssh->pc2:40785 (ESTABLISHED)
这应该给你与上面第二行相同的输出;但是当用户开始使用他们声明的端口转发隧道时,你会从这个 PID 中看到它...
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 19170 pc2user 3u IPv4 327724762 0t0 TCP pc1:ssh->pc2:40785 (ESTABLISHED)
sshd 19170 pc2user 10u IPv4 327873368 0t0 TCP localhost:55678->google.com:http (ESTABLISHED)
一旦检测到第二个连接,您就可以通过指定连接的任一端开始为其收集网络流量:在这里,我们将使用 localhost 端:-
tcpdump -i lo src port 55678
现在您已经看到通过 ssh 传输的流量是如何可见的,您可能需要一种更自动的方法来捕获它。iptables
允许我们使用所有者匹配工具匹配来自特定用户的所有流量 - 参见http://www.frozentux.net/iptables-tutorial/iptables-tutorial.html#OWNERMATCH
来自 pc2user 的 ssh 连接的所有出站网络流量都将归 pc2user 所有——您可以使用 iptables 在某处记录所有这些,或者决定允许/拒绝什么,或者做其他事情,例如将所有 HTTP 流量推送到特定代理你设置的。
您可能还需要查看 ps2user 的 authorized_keys 文件,您可以在其中使用 permitopen="host:port" 语句控制允许用户首先请求的端口转发。man sshd
会在那里帮助你。
Secure Socket Shell 的重点是加密连接实体之间的流量。它实际上实现了一种协议级别的加密形式。这是使用它的好处之一。
关于您的 SSH,需要注意的是它本身是如何工作的。
尽管它的主要目标是保护数据,但通过 SSH 关联连接的最简单方法就像一系列管道。这些管子包含一个开始,一个结束。
当您创建此隧道时,您指定一个地址和端口,一旦正确握手,它将回复。
如果您有一台位于防火墙后面的机器,则需要该机器通过暴露连接的“远程”端的“入口”点来物理连接到外部世界。
显然,暴露这个端口的好处是更多的项目将开始通过普通的旧文本出现,这公然暴露了任何数据。
现在有不同的工具可以监控此类信息:
代理服务器:这种可爱的方法旨在接收任何访问您网络的流量;过滤,监控,然后将其传递出去。因此,从某种意义上说,您将能够监控所有传入和传出的流量请求。
连接本身可能是安全的,这将隐藏传输,但代理仍将暴露目标或传入请求。
网络和协议分析器:这些分析器旨在配置为监控网络流量,因此它们将针对针对三件事的每个端口和协议:
目标将是监视从机器发送的所有网络数据包,因此一旦填充了该数据包,它将沿 OSI 模型向下移动。现在这些分析器的好处是,它们会将所有需要的信息从一个 IP 暴露给另一个。这些位部分暴露。
对于渗透测试,一种常见的策略是毒化路由器表,一旦它们暴露出来,就很容易拦截这些数据包,然后用不同的信息重新注入它们。
以下是一些网络和协议分析仪:
代理:
安全实用程序:
有很多信息要做,我采取了一些比 Satish 更友好的方法,但你也可以使用不同的攻击变体来获取信息。您可能想尝试的另一件事是渗透测试。其中一些实用程序也将满足您的要求。
希望这至少可以帮助您指出正确的方向。
简短的回答你不能。ssh 的全部意义在于拥有一个安全(加密)的连接。唯一的方法是通过 pc1 上的 root 帐户监控来宾帐户。您可以通过将来宾配置为使用代理(例如用于 Internet 连接)来做到这一点,并且您可以访问代理的日志。
但是有更简单的方法来做这些事情。
如果您真的愿意这样做,那么唯一的方法就是Man-In-The-Middle
(MITM)攻击。虽然 ssh 会话已加密,但您无法使用嗅探器查看流量,因此您必须以某种方式将其放在attacker machine
计算机和 PC2 之间,以便轻松嗅探流量。有一些工具可以帮助您实施 MITM 攻击。