Какой инструмент я могу использовать для сниффинга HTTP/трафика HTTPS?

$ cat test
1234
ABCD
EFGH
$ awk -F "" '{print $2$3$4$1}' test
2341
BCDA
FGHE

Можно изменить разделитель через "-F" согласно данным и расположить порядок полей произвольно.

24
23.05.2017, 15:39
3 ответа

Попробуйте mitmproxy.

  • mitmproxy является способным к SSL прокси man-in-the-middle для HTTP. Это обеспечивает консольный интерфейс, который позволяет потокам трафика быть осмотренными и отредактированными на лету.

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

Функции

  • Запросы HTTP прерывания и ответы и изменяют их на лету.
  • Сохраните полные переговоры HTTP для более позднего воспроизведения и анализ.
  • Воспроизведите клиентский из HTTP переговоры.
  • Воспроизведите ответы HTTP ранее зарегистрированного сервера.
  • Обратный режим прокси для передачи трафика к указанному серверу.
  • Внесите заданные сценарием изменения в Трафик HTTP с помощью Python.
  • Сертификаты SSL для перехвата сгенерированы на лету.

Снимок экрана

   sample ss

Пример

Я устанавливаю пример приложение Начальной загрузки Jekyll, которое слушает на порте 4000 на моем localhost. Для прерывания это - трафик, я сделал бы следующее:

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

Затем соединитесь с моим mitmproxy на порте 4001 от моего веб-браузера (http://localhost:4001), приводя к этому в mitmproxy:

   ss of mitmproxy w/ JB #1

Можно затем выбрать любой из GET результаты для наблюдения информации о заголовке связались к этому GET:

   ss of mitmproxy w/ JB #2

Ссылки

20
27.01.2020, 19:41

Для некоторых ситуаций, вы можете использовать полномочие, которое признает, что поступающий 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.

3
27.01.2020, 19:41

mitmproxy /mitmdump

Эквивалентом tcpdumpдля HTTPS является mitmdump. Вот шаги:

  1. Установите mitmproxyпакет (macOS:brew install mitmproxy).
  2. Установите сертификат ЦС mitmproxy с помощью следующих команд:

    $ 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. Выполнить: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 между хостами.

3
27.01.2020, 19:41

Теги

Похожие вопросы