Який інструмент можна використовувати для нюху трафіку HTTP / HTTPS?


23

Я шукаю інструмент командного рядка, який може перехоплювати запити HTTP / HTTPS, витягувати інформацію, таку як: (вміст, призначення тощо), виконувати різні завдання аналізу та, нарешті, визначати, чи слід запит відхилити чи ні. Юридичні запити повинні бути надіслані до програми.

Інструмент , який аналогічний за своєю природою tcpdump, Wireshark або Snort , але працює на рівні HTTP.

Список літератури

Відповіді:


20

Спробуйте mitmproxy .

  • mitmproxy - SSL-проксі-сервер для HTTP. Він надає консольний інтерфейс, що дозволяє перевіряти та редагувати потоки руху на ходу.

  • mitmdump - версія командного рядка mitmproxy, яка має таку ж функціональність, але без користувальницького інтерфейсу. Подумайте tcpdump для HTTP.

Особливості

  • Перехоплюйте HTTP-запити та відповіді та змінюйте їх на ходу.
  • Збережіть цілі HTTP-розмови для подальшого відтворення та аналізу.
  • Відтворіть HTTP-розмови на стороні клієнта.
  • Відтворити відповіді HTTP попередньо записаного сервера.
  • Режим зворотного проксі для переадресації трафіку на вказаний сервер.
  • Внесіть сценарії зміни в HTTP-трафік за допомогою Python.
  • SSL сертифікати на перехоплення генеруються на льоту.

Знімок екрана

   зразок сс

Приклад

Я налаштовую на приклад додаток Jekyll Bootstrap , який прослуховує порт 4000 в моєму локальному хості. Щоб перехопити трафік, я зробив би наступне:

% mitmproxy --mode reverse:http://localhost:4000 -p 4001

Потім підключіться до мого mitmproxy на порту 4001 з мого веб-браузера ( http://localhost:4001), в результаті чого це з'явиться mitmproxy:

   ss mitmproxy w / JB №1

Потім ви можете вибрати будь-який з GETрезультатів, щоб побачити інформацію заголовка, пов’язану з цим GET:

   ss mitmproxy w / JB №2

Список літератури


3

У деяких ситуаціях ви можете використовувати проксі-сервер, який приймає вхідні HTTP-запити та робить вихідні HTTPS-запити. Як приклад, я хотів зафіксувати трафік між gitсайтом та github.com. Я використовував mitmproxy :

mitmproxy -s httpser.py

де httpser.py:

def request(context, flow):
  flow.request.scheme = 'https'
  flow.request.port = 443

Потім я бігав gitтак:

export http_proxy="http://127.0.0.1:8080/"
git clone http://github.com/oxplot/difftr

Тепер, використовуючи wiresharkпрослуховування localhost, можна захопити звичайний трафік. Без проксі-сервера github перенаправить gitна використання HTTPS.


2

mitmproxy/mitmdump

Зрівняльний показник tcpdumpдля HTTPS є mitmdump. Ось такі кроки:

  1. Встановіть mitmproxyпакет (macOS:) brew install mitmproxy.
  2. Встановіть сертифікат mitmproxy CA за допомогою таких команд:

    $ mitmdump --mode reverse:http://mitm.it/ -p 8080
    $ wget --content-disposition http://localhost:8080/cert/pem
    $ open mitmproxy-ca-cert.pem
    # Open, install and mark the certificate as trusted.
    

Тепер ось простий тест щодо тестування зворотного проксі:

  1. Run: mitmdump --mode reverse:https://example.com/ -p 4433.
  2. В іншій оболонки, виконайте наступну команду: curl https://localhost:4433.

    Тепер ви повинні побачити джерело сторінки, і mitmdumpкоманда повинна виводити такі дані:

    Proxy server listening at http://*:4433
    [::1]:49446: clientconnect
    [::1]:49446: GET https://example.com/ HTTP/2.0
              << 200  1.24k
    [::1]:49446: clientdisconnect
    

Для всього трафіку просто запустіть: mitmdumpабо mitmproxy.

Див.: mitmproxyСторінку документів для отримання більш детальної інформації.


Чарльз Проксі

Якщо ви перебуваєте на macOS, є також додаток Charles Proxy (GUI), який дозволяє переглядати весь трафік HTTP та SSL / HTTPS між хостами.

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