ohrwurm如何使用libpcap和arpspoof来破坏RTP流量?

时间:2012-01-06 17:18:21

标签: c rtp libpcap corrupt arp

我正在尝试评估名为ohrwurm的工具,该工具声称能够破坏两个SIP端点之间的RTP流量。通过阅读its source code我不相信它有效,并且在我尝试之前想要其他人的意见。

前提很简单:

  • 假设端点A的IP地址为192.168.0.11,端点B的IP地址为192.168.0.22。
  • 在与A和B相同的子网上的第三个方框C上,在两个SSH会话中执行以下命令:
    • arpspoof 192.168.0.11
    • arpspoof 192.168.0.22
  • 执行ohrwurm。

看一下ohrwurm's source code,它会做以下事情:

  • 将/ proc / sys / net / ipv4 / ip_forward设置为1。
  • 在混杂模式下使用libpcap拦截上面两个框之间的所有IP数据包。
  • 对于那些SIP的数据包,请抓取RTP端口号。
  • 对于那些UDP以及之前抓取的两个RTP端口之间的数据包,请对RTP内容进行模糊处理。

这是我没有得到的。我接受arpspoof'ing将导致A和B之间的所有IP流量通过C.然后,通过将/ proc / sys / net / ipv4 / ip_forward设置为1,我们得到内核正确转发此IP流量我们。

但我认为libpcap是只读的吗?怎么可能修改我们在原地混杂模式中嗅探的数据包?您会注意到ohrwurm.c line 401我们甚至试图丢弃RTCP数据包!这可能吗?

我对libpcap一无所知,我很想知道更多!请教育我。感谢。

1 个答案:

答案 0 :(得分:0)

Libpcap无法修改数据包。它只能用于审核它们。您可以将其视为将数据包从接口传送到内核的基础。

Arpspoof需要其他库(如“Libnet”)来执行ARP欺骗。 http://arpspoof.sourceforge.net/(请参阅“与arpspoof相关的链接”一节)

Libnet引入了一个API,可以访问多个协议。它可用于创建任意数据包或动态修改数据包。 http://libnet.sourceforge.net/

可以在以下位置找到一个很好的教程: http://networksecurity.org.ua/0596007949/networkst-chp-11-sect-4.html