【问题标题】:Can traffic on loopback be packet sniffed?环回上的流量可以被数据包嗅探吗?
【发布时间】:2009-02-06 20:19:57
【问题描述】:

如果 PC 也连接到网络(无线或固定电话),是否可以嗅探使用环回 IP 127.0.0.1 (localhost) 在本地计算机上交换的任何数据?

想知道环回作为本地运行进程的进程间通信手段是否可以被视为交换数据的安全手段(即,不知道任何驻留在网络外部的人一个数据包嗅探器程序)。

针对所有相关的操作系统平台提出了这个问题:

  • Win2K/WinXP
  • 远景
  • Windows 7
  • Mac OS X
  • Linux

【问题讨论】:

    标签: networking tcp


    【解决方案1】:

    是的,这是安全的。 正如 VBNight 所说,流量永远不会撞到电线或空中。

    但是,您实际上可以在本地计算机上嗅探 localhost 流量。例如,在我的 linux 机器上,我做了以下操作:

    sudo tcpdump -i lo
    
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on lo, link-type EN10MB (Ethernet), capture size 96 bytes
    15:29:58.056585 IP localhost.56010 > localhost.16001: S 3572335637:3572335637(0) win 32792 <mss 16396,sackOK,timestamp 132126218 0,nop,wscale 6>
    15:29:58.056604 IP localhost.16001 > localhost.56010: R 0:0(0) ack 3572335638 win 0
    15:29:59.026016 IP localhost.41664 > localhost.41664: UDP, length 1
    15:29:59.026346 IP localhost.41664 > localhost.41664: UDP, length 1
    15:29:59.126838 IP localhost.41664 > localhost.41664: UDP, length 1
    15:29:59.127486 IP localhost.41664 > localhost.41664: UDP, length 1
    

    因此,您可以使用它来嗅探您自己的流量/IPC 消息,但其他人无法在网络上看到它。

    这是在系统中使用 TCP 或 UDP 等协议在 lo 接口上用于本地 IPC 的非常常见的情况。

    【讨论】:

    • 你也能以非 root 用户身份嗅探 localhost 流量吗?比如cuold非root用户A snif非root用户B的环回IPC数据?
    • @kralyk 没有。 tcpdump: lo: You don't have permission to capture on that device (socket: Operation not permitted)
    • @kralyk,您需要拥有 root 权限才能将网络接口置于混杂模式。试试 sudo tcpdump -i lo
    【解决方案2】:

    它应该不会被网络中的数据包嗅探到,因为流量永远不会通过网络(或电波)传输。

    本地机器上的进程可以嗅探数据包。

    【讨论】:

    • +1。但是为什么还要在同一台机器上进行嗅探呢?如果它在同一台机器上,并且您可以劫持环回,您可能已经拥有 root 权限。直接读取进程内存就好了:)
    • 有人告诉我,Windows 环回流量在网络上不可见,但后来我听说 Linux 环回的实现方式不同,并且可能容易在网络上被嗅探。因此试图看看人群的集体智慧说了什么。 :-)
    • 我个人不知道 linux 通过网络发送环回数据包有任何问题。 (如果每个设备都具有相同的环回地址,它如何取回这些数据包?)
    【解决方案3】:

    您可以使用RawCap (a raw socket sniffer) 来嗅探 Windows 中的本地主机流量。 RawCap 将创建一个 pcap 文件,您可以将其加载到 Wireshark、NetworkMiner 或任何您喜欢的文件中。

    您将在此 StackOverflow 线程上找到更多信息: Sniffer for localhost (Windows OS)

    【讨论】:

      【解决方案4】:

      我很确定流行的数据包嗅探器无法嗅探环回接口(在 localhost 上调试内容时会引起很多悲伤和烦恼)。

      【讨论】:

        【解决方案5】:

        环回接口相对于外部网络可以被认为是安全的。在同一主机内不安全。

        【讨论】:

          【解决方案6】:

          到目前为止的答案都是正确的,但我会换一种说法。可以嗅探本地主机本身的环回适配器通信,但通常需要特殊的驱动程序,具体取决于操作系统。不过,环回通信对于外部嗅探器来说是安全的。

          我遇到过需要嗅探环回通信的情况,而且设置起来并不容易,但这是可能的(至少在 Windows 上,我敢打赌在 Linux 上也是如此)。

          【讨论】:

          • Linux 上的环回嗅探从不需要特殊的驱动程序
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-10-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-09-02
          • 2011-09-29
          相关资源
          最近更新 更多