Моніторинг http і https трафіку в linux

Моніторинг http і https трафіку в linux
Вітання! Не так давно мені знадобилося прослухати http трафік одного
ресурсу в linux. Спочатку я хотів використовувати tcpdump, але трафік передавався через https. Мені потрібно було щось просте, легке в установці, але в той же час підходить під мої завдання. Перерва інтернет в пошуку доступного рішення я нарешті знайшов те що мені потрібно - це mitmproxy. Абревіатура «mitm» означає «людина посередині» - це вид атаки, коли всі запити між клієнтом і сервером проходять через стороннє ПО, яке вбудовується між клієнтом і сервером і прослуховує весь проходить трафік. Mitmproxy вміє прослуховувати http і https трафік в linux, а так само володіє різними корисними функціями.

Установка mitmproxy в ubuntu

Налаштування mitmproxy в ubuntu

Перед запуском mitmproxy необхідно налаштувати браузер, або систему, вказавши в їх налаштуваннях порт mitmproxy. Пояснювати як це зробити в цій статті вважаю зайвим, але по браузеру chromium дещо поясню, коли я зайшов в налаштування проксі в браузері, я побачив це:

Моніторинг http і https трафіку в linux

Довелося правити конфіг файл chromium. Для цього довелося відредагувати файл / etc / chromium-browser / default, додавши туди параметр:

і після перезапустити браузер.

Як вказати проксі сервер для деяких інших додатків в ubuntu, описано тут.

Все, можна приступати до запуску mitmproxy. Запускається він з терміналу:

За замовчуванням mitmproxy запускається на 8080 порту. Для запуску на іншому порту потрібно вказати параметр -p:

Моніторинг http трафіку

Після запуску mitmproxy спробуйте відкрити який-небудь сайт в браузері, наприклад webistore.ru. Якщо ви все правильно налаштували, то в терміналі ви повинні побачити це:

Моніторинг http і https трафіку в linux

Після запиту до сайту, в mitmproxy відобразиться список усіх завантажених з сайту даних, т. Е. Html код сторінки сайту, картинки, java скрипти і інше. Для переміщення між елементами списку використовуйте стрілки на клавіатурі вгору і вниз. Наприклад, на скріншоті вище обраний перший елемент списку, це видно по жовтій стрілкою зліва від елемента. Кожен елемент списку - це окремий http потік. У кожного http потоку відображається його url, код статусу і тип контенту, за яким можна визначити його вміст, наприклад у першого http потоку тип контенту text / html, це означає, що він відображає html код сторінки. Кожен http потік можна переглядати докладно. Для цього потрібно натиснути enter.

Моніторинг http і https трафіку в linux

У цьому вікні відображені http заголовки запиту, а так само тіло запиту, якщо воно є. Для того, щоб подивитися дані http відповіді, потрібно натиснути клавішу tab. З'явиться весь вміст http відповіді - http заголовки і тіло відповіді.

Всі дані про http потоці (http заголовки, тіло запиту / відповіді) прямо звідти можна зберегти в файл, натиснувши комбінацію shift + w, але є один нюанс - якщо http відповідь прийшла в gzip, то він і зберегтися в gzip. Щоб зберегти http потік як звичайний текст, у вкладці http відповіді - response, натисніть клавішу z, тоді рядок content-encoding зникне зі списку http заголовків відповіді, і потік можна буде зберегти в звичайному текстовому форматі:

Моніторинг http і https трафіку в linux

Моніторинг https трафіку за допомогою mitmproxy

З моніторингом http трафіку через mitmproxy ми розібралися, але як бути з https трафіком, адже для того щоб прослухати https трафік, mitmproxy використовує свій https сертифікат. Погано це тим, що при зверненні до сайту по https, браузер буде видавати попередження безпеки, і при цьому не всі сайти можна буде відкрити. Це можна виправити, додавши сертифікат mitmproxy в список довірених сертифікатів браузера. Сертифікат mitmproxy знаходиться в папці .mitmproxy в домашньому каталозі.

Я розповім, як додати сертифікат mitmproxy в браузер chromium. Відкриваємо налаштування, додаткові налаштування, налаштувати сертифікати:

Моніторинг http і https трафіку в linux

Далі відкриваємо вкладку «Центри сертифікації»:

Моніторинг http і https трафіку в linux

Внизу в цій же вкладці натискаємо кнопку «імпорт»:

Моніторинг http і https трафіку в linux

У новоствореному вікні вибираємо домашній каталог, в ньому відкриваємо папку .mitmproxy і вибираємо файл «mitmproxy-ca.pem»:

Моніторинг http і https трафіку в linux

Папка .mitmproxy за замовчуванням не видно, якщо ви не можете її знайти в домашньому каталозі, натисніть комбінацію клавіш ctrl h для відображення всіх прихованих файлів і папок.

Після вибору сертифіката має з'явитися вікно, поставте галочку навпроти фрази «довіряти цьому сертифікату для ідентифікації сайтів» і натисніть «ОК»:

Моніторинг http і https трафіку в linux

Тепер спробуйте зайти на https сайт, попередження має зникнути. Все, на цьому настройка mitmproxy для https завершена.

Схожі статті