Дамп мережевого трафіку одного додатка (схожий на страйк)


11

Я шукаю спосіб скинути pcap мережевих даних, згенерованих додатком, по-простому straceскидає системні дзвінки тощо, наприклад:

net-strace somecommand -args

somecommandзробив би щось по мережі і net-straceврятував би дамп pcap усього трафіку, генерованого цим додатком (+ відповіді та пов'язаний трафік).

Чи можна цього досягти?


Проблема полягає в тому, що програми не надсилають пакети (за винятком тих, хто використовує необроблені сокети, такі як ping), але використовують мережевий API, який змушує ядро ​​надсилати пакети (і отримувати пов'язані з ними) від свого імені.
Стефан Шазелас

Так, але є програми (наприклад, proxychains - proxychains.sourceforge.net ), які запускають усі дані програми через проксі. Не знаєте, як вони це роблять, але вони можуть захопити і надіслати через проксі. Можливо, якщо є простий проксі (запустити локально), який може скидати pcap, для отримання дампа можна використовувати проксі-ланцюги + проксі-комбо.
gesti

Вони швидше викрадають API (з LD_PRELOAD), ніж пакети. Сказавши це, можливо, можна буде ввести деякі програми setockopt (SO_MARK) у додатки та використовувати netfilter для реєстрації пакетів для реєстрування.
Стефан Шазелас

3
Створіть нове мережеве простір імен для програми та зафіксуйте весь трафік там, можливо, буде прийнятний підхід і для деяких випадків використання.
Стефан Шазелас

Відповіді:


3

Як щодо використання страз?

strace -f -e trace=network -o output_file -s 10000 somecommand -args

Командний рядок, який ви надали, відображає лише запити DNS. -eЧасто опція strace не вибирає те, що ви насправді хочете.
Робін Грін

2

Ви можете скидати згенерований програмою трафік різними методами:

Якщо ви знаєте порти, якими користується програма, ви можете запустити tcpdump або wireshark з певними правилами фільтрації для цих портів.

Якщо це не варіант, ви можете позначити пакети програм за допомогою правила iptables , що відповідає власнику процесу. Вам може знадобитися створити новий обліковий запис користувача, щоб повністю ізолювати процес. Тоді ви можете захопити трафік, який відповідає лише правилу.

Ви можете знайти більш повну інформацію щодо цієї теми: /ubuntu/11709/how-can-i-capture-network-traffic-of-a-single-process

Також вам може здатись цікава програма цієї програми , про яку йдеться у попередній темі. http://mutrics.iitis.pl/tracedump

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.