
Мониторинг произвольного TCP-трафика с помощью вашего любимого HTTP-перехватывающего прокси
Мониторинг произвольного TCP-трафика с помощью вашего любимого HTTP-прокси для перехвата
socksmon — это SOCKSv4-сервер на основе Twisted, который туннелирует входящий TCP-трафик через HTTP-прокси. socksmon делает это, запуская внутренний веб-сервер на порту 2357, отправляя трафик в прокси «человек посередине» для его редактирования, а затем пересылая его к месту назначения.
socksmon имеет предварительную поддержку перехвата SSL, то есть любой SSL-зашифрованный TCP-трафик может быть проанализирован с помощью вашего любимого прокси для перехвата.
Сначала вам нужно создать сертификат в формате PEM для использования с socksmon и поместить его в /tmp/server.pem. Если вы используете BURP, экспортируйте закрытый ключ и сертификат, а затем объедините их. (например, cat server.crt server.key > /tmp/server.pem)
Во-вторых, запустите ваш прокси для перехвата на порту 8080 на localhost.
В-третьих, отправляйте SOCKSv4-трафик на yourip:9050. Убедитесь, что используете SOCKSv4 — SOCKSv5 не будет работать из-за реализации SOCKS-сервера Twisted. Для перенаправления трафика я рекомендую Proxifier1 под Windows и Redsocks2 или Proxychains3 под Linux.
Патчи и PR приветствуются.
В настоящее время сертификаты для конкретных конечных точек не создаются, например, указанный ключ используется напрямую для всех сайтов. Это проблематично для клиентов, которые проверяют общее имя (CN) или список отзыва в сертификате.
Должна поддерживаться поддержка вышестоящих прокси для всего трафика. HTTP должен получать особую обработку, чтобы можно было использовать прокси, которые запрещают CONNECT.
Параметры командной строки должны использоваться для установки порта прокси, сертификатов и портов веб-сервера.
Реализовать модульную платформу, позволяющую обрабатывать TCP-трафик. Должно быть легко реализовать декодеры и перекодировщики для различных протоколов и форматов (например, десериализовать Java-объект в XML).