Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
BinProxy — BinProxy — это прокси для произвольных TCP-соединений. Вы можете определять пользовательские форматы сообщений с помощью гема BinData. | Kitploit
Инструменты/GitHubGitHub/nccgroup/binproxy
Сниффинг и анализ пакетовВеб-прокси и перехватСетевая безопасностьТестирование на Проникновение
GitHubnccgroup/binproxy

BinProxy

BinProxy — это прокси для произвольных TCP-соединений. Вы можете определять пользовательские форматы сообщений с помощью гема BinData.

Репозиторий
176448 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Сайт

Обзор

BinProxy — это прокси для произвольных TCP-соединений. Вы можете определять собственные форматы сообщений с помощью гема BinData.

Установка

Предварительные требования

  • Ruby 2.3 или новее
  • Компилятор C, заголовочные файлы Ruby и т.д. необходимы для компиляции нескольких зависимостей.
    • В Ubuntu подойдёт sudo apt install build-essential ruby-dev.
    • Если вы установили собственную версию Ruby (например, с помощью RVM), у вас, вероятно, уже есть всё необходимое.
  • Бинарный файл openssl для использования --tls без указания сертификата/ключа.
  • Для сборки пользовательского интерфейса требуются node.js и npm. (Не требуется во время выполнения)

Из Rubygems

root@kitploit:~
gem install binproxy

Возможно, потребуется использовать sudo в зависимости от вашей установки Ruby.

Из исходного кода

root@kitploit:~
git clone https://github.com/nccgroup/BinProxy.git binproxy
cd binproxy

# Install ruby dependencies.
# Depending on your setup, one or both of these may require sudo.
gem install bundler && bundle

# The UI is built with a webpack/babel toolchain:
(cd ui && npm install) \
  && rake build-ui

# Confirm that everything works
# run.sh sets up the environment and passes all args to binproxy
./run.sh --help

Чтобы собрать и установить gem-пакет:

root@kitploit:~
gem build binproxy.gemspec

# Again, you may need sudo here
gem install binproxy-1.0.0.gem

Сообщения об ошибках при установке приветствуются!

Использование

Базовое использование

  1. Запустите binproxy без аргументов.
  2. Откройте в браузере http://localhost:4567/
  3. Введите локальное и удалённое имена хостов или IP-адреса и порты, затем нажмите 'update'.
  4. Направьте клиент на локальный сервис и наблюдайте за потоком пакетов.

Параметры командной строки

Полный список параметров можно получить с помощью --help, но вкратце:

root@kitploit:~
binproxy -c <class> [<local-host>] <local-port> <remote-host> <remote-port>

Если опустить аргумент -c, будет показан простой hex-дамп.

Если опустить локальный хост, binproxy предполагает localhost.

С опциями --socks-proxy или --http-proxy удалённый хост и порт определяются динамически и не должны указываться явно.

Примеры

root@kitploit:~
# Proxy from localhost:9000 -> example.com:9000
binproxy localhost 9000 example.com 9000

# Act as a SOCKS proxy on localhost:1080
# MITM and unwrap TLS on the proxied traffic, using a self-signed cert and key
binproxy -S --tls 1080

# "Poor substitute for Burp" mode:
#
# HTTP proxy; MITM TLS w/ pre-generated cert; simple header parsing
# Note: this will only work on HTTPS traffic, not plain HTTP!
# If you're working with the source repo, you generate the certs with:
#   rake makecert[example.com]
# And then import certs/ca-cert.pem into your browser or OS's trust store.
binproxy -H --tls \
  --tls-cert certs/example.com-cert.pem \
  --tls-key certs/example.com-key.pem \
  --class-name DumbHttp::Message \
  localhost 8080

Настройка

По умолчанию прокси использует встроенный класс RawMessage, который просто выдаёт hex-дамп каждого сообщения (при условии соответствия 1:1 между сообщениями и TCP-пакетами).

Вы можете просматривать разобранную информацию протокола, указав подкласс† BinData::Record с аргументом командной строки --class.

Возможно, вы также захотите определить в своём классе следующее:

root@kitploit:~
def summary
  # return a single-line description of this record
end

# currently supported options are
#   - nil : use default display
#   - "anon" : for structs, show contents directly
#   - "hex" : for numbers, display as 0x1234ABCD
#   - "hexdump" : for strings, display like `hexdump -C`
default_parameter display_as: "..."

# TODO: document state stuff
def self.initial_state
end

def current_state
end

def update_state
end

† Технически подойдёт любой подкласс BinData::Base.

Динамическое проксирование

По умолчанию BinProxy перенаправляет весь трафик на статический вышестоящий хост и порт. Его также можно настроить как SOCKS-прокси (v4 или v4a) или HTTP-прокси с помощью флагов --socks-proxy и --http-proxy соответственно.

Примечание: В настоящее время HTTP-прокси поддерживает только соединения, туннелированные с помощью глагола HTTP CONNECT; он не может проксировать обычные HTTP-запросы GET, POST и т.д. На практике это означает, что HTTPS-трафик будет работать, а обычный HTTP-трафик — нет, если только клиент не поддерживает флаг принудительного туннелирования, например curl -p.

TLS / SSL

Используйте флаг --tls, чтобы расшифровать TLS перед обработкой сообщений. По умолчанию BinProxy генерирует самоподписанный сертификат. Вы можете указать PEM-файлы, содержащие сертификат и ключ, с помощью --tls-cert и --tls-key. (Если вы клонировали репозиторий с исходным кодом, используйте rake makecert[example.com] для генерации статического CA и сертификата с соответствующим именем хоста.)

Известные проблемы

  • Функциональность HTTP-прокси была собрана в последнюю минуту и не отличается особой надёжностью.

Смотрите также файл TODO для случайных идей и пожеланий.

Благодарности

Основная функциональность TCP-прокси BinProxy берёт начало в специализированном прокси, написанном Шоном Девлином. Расти Берчфилд создал HTML-интерфейс для этого прокси. Хотя код изменился настолько, что их уже нельзя винить в текущих ошибках, BinProxy, вероятно, не существовал бы без их работы.

Скачать инструмент