Я пытаюсь оценить инструмент под названием ohrwurm , который утверждает, что может испортить трафик RTP между двумя конечными точками SIP. Читая его исходный код , я не верю, что это работает, и хотел бы узнать мнение других, прежде чем я попробую.
Это просто:
- Предположим, что конечная точка A имеет IP-адрес 192.168.0.11, а конечная точка B имеет IP-адрес 192.168.0.22.
- В третьем блоке C в той же подсети, что и A и B, выполните следующие команды в двух сеансах SSH:
- arpspoof 192.168.0.11
- arpspoof 192.168.0.22
- Выполнить Орвурм.
Взглянув на исходный код ohrwurm , он делает следующее:
- Установите / proc / sys / net / ipv4 / ip_forward в 1.
- Используйте libpcap в случайном режиме для перехвата всех IP-пакетов между двумя вышеуказанными полями.
- Для пакетов, которые являются SIP, извлеките номера портов RTP.
- Для тех пакетов, которые являются UDP и между двумя портами RTP, захваченными ранее, распускают содержимое RTP.
Вот что я не понимаю, хотя. Я принимаю, что arpspoof'ing заставит весь IP-трафик между A и B проходить через C. Более того, установив / proc / sys / net / ipv4 / ip_forward в 1, мы получим ядро для правильной пересылки этого IP-трафика для нам.
Но я думал, что libpcap только для чтения? Как можно изменить пакеты, которые мы прослушали, в случайном режиме на месте? В строке ohrwurm.c 401 вы заметите, что мы даже пытаемся отбрасывать пакеты RTCP! Возможно ли это?
Я ничего не знаю о libpcap, и мне интересно узнать больше! Пожалуйста, просветите меня. Спасибо.