LINUX.ORG.RU

Mac OS Перехват трафика от определённого приложения.

 


0

1

Приветствую! У меня возникла нужда захвата - анализа трафика от определённого приложения. Собственно как это можно реализовать? Пробовал в связке nettop + wireshark но получается сплошная каша.

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

Так, есть приложение с названием «track» и с пидом «313». Дай пожалуйста наводку как прослушать именно его трафик.

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

А в макоси strace есть? Юниксообразное ведь, должно быть. Вот strace и натрави на твоё приложение с -e trace=network.

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

Так, есть приложение с названием «track» и с пидом «313». Дай пожалуйста наводку как прослушать именно его трафик.

Посмотреть в lsof, какие порты оно открывает и слушать эти порты.

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

Да, была такая идея НО каждый раз он открывает соединение по новым портам! Такое чувство что он работает в диапазоне!

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

но получается сплошная каша

Ну это же вроде не винда, откуда каша то?
Останови всё ненужное, обмажь сверху вайршарковскими фильтрами и вперёд

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

Хорошо, я перехватил трафик, как теперь из всего мне отсеять именно тот который сгенерировала мне нужная программа ?

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

Да, была такая идея НО каждый раз он открывает соединение по новым портам! Такое чувство что он работает в диапазоне!

Если порты клиентские, то так и должно быть. Но можно автоматизировать как-то так от рута в оболочке bash:

ngrep $(lsof -i -P | grep track | awk '{print $9}' | awk -F: '{print $2 " " $3}' | awk -F- '{print $1 " " $2}' | awk '{print $1 " " $3}' | tr ' ' '\n' | sort | uniq | tr '\n' ' ' | sed 's/^ *//;s/ *$//;s/ / or port /g;s/\(^.*$\)/port \1/')

Здесь программе ngrep передаётся bpf-фильтр, формирующийся bash-выражением внутри $(...). Если в macos не bash и не поддерживается $(выражение), то включи выражение в обратные одинарные кавычки `выражение` (обратная кавычка на клавиатуре сверху слева под esc'эйпом, там, где «ё»). Если фильтр надо передать wireshark'у — аналогично, но заключи его в двойные кавычки после опции -f.

wireshark -i имя_интерфейса -f "`то же самое bash-выражение`"

Приведённый мною фильтр включает все порты, открытые любой программой, содержащей в названии цепочку track, а также все порты, к которым эти программы обращаются, в форме «port N1 or port N2 ... or port Nx».

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

Благодарю вас! Чётко , ясно и по полочкам.

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

Хз. Никогда не задавался таким вопросом.

rumgot ★★★★★
()

есть некий Debookee вроде как можно устраивать MitM как для локальных так и для других клиентов, но я его особо не тыкал

Novell-ch ★★★★★
()
Ответ на: комментарий от fornlr

Я могу поставить корневой сертификат от него и снифать https?

Ага

И каким образом, учитывая, что сниффер только слушает трафик, а не подменяет пакеты? И подменить пакеты без использования доп. ПО у него нет возможности.

aureliano15 ★★
()

Charles Web Debugging Proxy попробуй, если это что-то, что он способен распарсить. Есть free trial. Даже по истечению 30 дней у меня работал, но под онтопиком. Умеет в MitM, если доверять его сертификату (на каждой машине он генерируется с нуля, и в меню Help его можно посмотреть и установить) и если включить его в настройках, добавив в список хостов звёздочку, либо выборочные хосты для ssl proxying.

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

По истечению 30 дней триала он начинает автоматически закрываться каждые 30 минут с утерей всех несохранённых данных, но это легко решить – включить в настройках автосохранение и/или обязательный запрос сохранения сессии перед выходом. Тогда он позволит сохраниться перед закрытием, а после рестарта сессию можно будет открыть и продолжить работу.

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