LINUX.ORG.RU
ФорумAdmin

Модификация или перехват исходящего трафика

 


0

1

Всем привет. Я пишу программу на c++ и у меня есть несколько вопросов.

Сейчас моя программа умеет:

  1. Принимать пакет, расшифровывать, изменять заголовок IP и отправлять нужному приложению.

Приложение в свою очередь отвечает не моей программе, а тому, кого я указал в заголовке IP пакета. (это важно)

Дак вот вопрос, как можно модифицировать или перехватить трафик от приложение, которое отвечает?

Мое приложение и обычное приложение работают на одной машине.

Читал про неразборчивый режим, но как я понял - он мне не очень подходит. Прошу знающий людей помочь с данным вопросом.

Спасибо.

Ответ на: комментарий от sparks

Принимаю через recvfrom, следовательно протокол UDP, далее расшифровываю, изменяю заголовок IP и отправляю приложению. В заголовок IP ставлю разных клиентов, от которых пришел пакет (изначально они не стоят в заголовке). И конечно, же приложение отвечает этим клиентам, а не мне. Мне по идее надо перехватить исходящий пакет, его модифицировать и отправить в сеть, только вот как - пока не очень понятно

WeSTMan
() автор топика
Последнее исправление: WeSTMan (всего исправлений: 1)
Ответ на: комментарий от WeSTMan

Что мешает поставить в заголовок IP «своего приложения», получить пакет от «приложения», модифицировать и переправить его клиенту?

frob ★★★★★
()
Ответ на: комментарий от WeSTMan

«Твоё приложение» назовём… ну, например «прокси»…

Клиенты шлют что-то на «прокси», где с присланным выполняются некие изменения и происходит отправка «приложению». Зачем ты заставляешь приложение отвечать клиенту, если этот ответ надо тоже изменить? Пусть приложение присылает свои ответы на «прокси», ты будешь их менять и отправлять клиентам.

frob ★★★★★
()
Ответ на: комментарий от frob

Если я так буду делать, то сервер не узнает ИП адрес клиента. Он узнает ИП адрес прокси. А должен узнать ИП клиента. Он узнаёт ИП клиента из ИП заголовка. Это обязательно. Мое приложение что то типа прокси. Осталось реализовать только перехват или модификацию пакета

WeSTMan
() автор топика
Ответ на: комментарий от frob

Я думал через цепочки пост роутинг и пре роутинг, но нет. Буду учить policy based routing

WeSTMan
() автор топика
Последнее исправление: WeSTMan (всего исправлений: 1)

то что ты хочешь это же обычный mitm tcp вот это и гугли.

anonymous
()
Ответ на: комментарий от WeSTMan

тебе кстати все верно говорят, есть такая прекрасная вещь как прозрачное проксирование, при правильном заворачивании трафика твой клиент и сервер будут думать что между ними ничего нет.

anonymous
()
Ответ на: комментарий от anonymous

Если не хочешь возиться с этим питонячим кодом, можно просто посмотреть реализацию того как происходит перехват пакетов в том же wireshark, если так подумать таких инструментов валом, даже с открытыми исходными текстами, то же https://www.ettercap-project.org/get-involved.html в общем гугли все по поводу mitm и инструментарию для перехвата сетевых пакетов.

anonymous
()
Ответ на: комментарий от WeSTMan

если сервер отправит пакет на ИП клиента, этот пакет никогда не придет к вам на ваш якобы прокси, потому что существует маршрутизация

а все кто выше участвовали, они тоже про это не знают, к сожалению….

anonymous2 ★★★★★
()
Ответ на: комментарий от frob

Мне подошёл вариант через модуль ядра - пишу свой модуль, прямо там можно модифицировать пакет и отправить в сеть

WeSTMan
() автор топика

Либо netfilter NFQUEUE, либо TPROXY.

ValdikSS ★★★★★
()

Хотя схема, надо признать, упоротая.

Либо клиенты шлют пакеты тебе и ожидают ответ от тебя - ты выступаешь в роли прокси, либо клиенты шлют пакеты на сервер и ждут пакеты с сервера, а ты в этой схеме шлюз, осуществляющий MitM.

anonymous
()
Ответ на: комментарий от anonymous

Я хочу сделать что то типа udp прокси, чтобы спрятать за ним основной сервер

WeSTMan
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.