我想评价一个名为工具ohrwurm ,号称能够腐败RTP流的两个SIP端点之间。 通过阅读它的源代码 ,我不相信它的工作原理,想别人的意见之前,我尝试一下。
它的前提很简单:
- 假设端点A的IP地址为192.168.0.11,和端点B的IP地址为192.168.0.22。
- 关于A和B两个SSH会话执行以下命令同一子网中的第三个框C:
- arpspoof 192.168.0.11
- arpspoof 192.168.0.22
- 执行ohrwurm。
考虑看看ohrwurm的源代码,它执行以下操作:
- 设置的/ proc / SYS /网/的IPv4 / IP_FORWARD为1。
- 使用处于混杂模式的libpcap拦截上面的两个箱子之间的所有IP数据包。
- 对于那些SIP数据包,抢RTP端口号码的开出。
- 对于那些UDP和两个RTP端口之间早抓起,模糊化的RTP数据包的内容。
下面是我不明白不过。 我承认这arpspoof'ing会引起A和B之间的所有IP流量通过C.旅行此外,通过设置的/ proc / SYS /网/的IPv4 / IP_FORWARD 1我们得到内核转发此IP流量为正确我们。
但我认为libpcap的是只读的? 这怎么可能改变我们在原位混杂模式嗅探数据包? 你会发现在ohrwurm.c线401 ,我们正在试图连砸RTCP包! 这可能吗?
我什么都不知道libpcap的,并且很想知道更多! 请教育我。 谢谢。