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

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

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

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

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

Категории

Все категории
Loading categories
Venom — Venom - Многошаговый прокси для тестировщиков на проникновение | Kitploit
Инструменты/GitHubGitHub/dliv3/venom
Инструменты шифрования/дешифрованияКартирование сетиТестирование на ПроникновениеКомандование и УправлениеRed TeamingИнструмент Удаленного Доступа
GitHubdliv3/venom

Venom

Venom - Многошаговый прокси для тестировщиков на проникновение

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

Популярное

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

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

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

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

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

Venom - A Multi-hop Proxy for Penetration Testers

简体中文 | English

Venom — это многоуровневый прокси-инструмент, написанный на Go, предназначенный для специалистов по тестированию на проникновение.

Venom позволяет соединять несколько узлов, используя их как перемычки для построения многоуровневого прокси.

Специалисты по пентесту могут легко маршрутизировать сетевой трафик через несколько внутренних сетей и управлять прокси-узлами.

Этот инструмент предназначен исключительно для исследований в области безопасности и обучения. Пользователь несет полную ответственность за все юридические и связанные с этим последствия, возникающие в результате использования данного инструмента! Автор не несет никакой юридической или иной ответственности!

Возможности

  • Визуализация сетевой топологии
  • Многоуровневый прокси SOCKS5
  • Многоуровневое перенаправление портов
  • Повторное использование портов (apache/mysql/...)
  • SSH-туннели
  • Интерактивная оболочка
  • Загрузка и скачивание файлов
  • Шифрование связи между узлами
  • Поддержка нескольких платформ (Linux/Windows/MacOS) и архитектур (x86/x64/arm/mips)

Поскольку устройства IoT (архитектуры arm/mips/...) обычно имеют ограниченные ресурсы, для уменьшения размера двоичного файла в скомпилированных для IoT версиях отключены функции повторного использования портов и SSH-туннелей, а также ограничены количество одновременных соединений и размер буфера для снижения потребления памяти.

Установка

Вы можете напрямую скачать скомпилированные исполняемые файлы из релиза.

Если вы хотите скомпилировать проект из исходного кода, необходимо установить go >= 1.11, а затем выполнить следующие команды:

go get -u github.com/Dliv3/Venom/...

# $GOPATH — это переменная окружения, заданная при установке Go, её можно проверить через go env
cd $GOPATH/src/github.com/Dliv3/Venom

# Скомпилированные двоичные файлы помещаются в папку release в текущей директории
./build.sh

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

Видео-демонстрация на YouTube: https://www.youtube.com/playlist?list=PLtZO9vwOND91vZ7yCmlAvISmEl2iQKjdI

1. Параметры командной строки admin/agent

  • Узлы admin и agent могут как прослушивать соединения, так и инициировать их

    Admin прослушивает порт, agent инициирует соединение:

    ./admin_macos_x64 -lport 9999
    
    ./agent_linux_x64 -rhost 192.168.0.103 -rport 9999
    

    Agent прослушивает порт, admin инициирует соединение:

    ./agent_linux_x64 -lport 8888
    
    ./admin_macos_x64 -rhost 192.168.204.139 -rport 8888
    
  • Узел agent поддерживает повторное использование портов

    Agent предоставляет два метода повторного использования портов:

    1. Повторное использование через опции SO_REUSEPORT и SO_REUSEADDR
    2. Повторное использование через iptables (только для Linux)

    С помощью функции повторного использования портов Venom можно повторно использовать порты сервисов Apache, MySQL и других в Windows (но не RDP, IIS и некоторые другие), а в Linux — большинство сервисов. Повторно используемый порт продолжает нормально предоставлять свой оригинальный сервис.

    Первый метод повторного использования портов

    # Пример с Apache под Windows
    # Повторно используем порт 80 Apache, не влияя на нормальную работу HTTP-сервиса
    # -lhost указывает локальный IP узла; нельзя указывать 0.0.0.0, иначе повторное использование не сработает
    ./agent.exe -lhost 192.168.204.139 -reuse-port 80
    
    ./admin_macos_x64 -rhost 192.168.204.139 -rport 80
    

    Второй метод повторного использования портов

    # Пример с Apache под Linux
    # Требуются права root
    sudo ./agent_linux_x64 -lport 8080 -reuse-port 80
    

    При этом методе на узле создаются правила iptables, перенаправляющие трафик с порта, указанного в -reuse-port, на порт -lport, а затем agent распределяет трафик.

    Важно: если программа завершается по сигналу SIGTERM или SIGINT (kill или Ctrl-C), она автоматически удаляет правила iptables. Если agent убит через kill -9, правила не удаляются автоматически, так как agent не может обработать сигнал SIGKILL. В этом случае их нужно удалять вручную.

    Чтобы избежать ситуации, когда правила iptables не удаляются автоматически и пентестер не может получить доступ к сервису порта 80, второй метод использует iptables -m recent для управления включением/выключением правил перенаправления с помощью специальных TCP-пакетов.

    Реализация основана на https://threathunter.org/topic/594545184ea5b2f5516e2033

    # Запуск agent с настройкой правил iptables на узле Linux
    # Если rhost находится во внутренней сети, можно использовать SOCKS5-прокси для трафика скрипта (см. ниже)
    python scripts/port_reuse.py --start --rhost 192.168.204.135 --rport 80
    
    # Подключение к узлу agent
    ./admin_macos_x64 -rhost 192.168.204.135 -rport 80
    
    # Отключение правил перенаправления
    python scripts/port_reuse.py --stop --rhost 192.168.204.135 --rport 80
    
  • Шифрование связи между узлами

    Venom предоставляет возможность шифрования связи между узлами. Пользователь может задать пароль с помощью опции -passwd, который используется для генерации ключа AES.

    # Указание пароля dlive@dubhe через -passwd
    ./admin_macos_x64 -lport 8889 -passwd dlive@dubhe
    
    # Agent указывает тот же пароль для подключения к узлу admin
    ./agent_macos_x64 -rhost 192.168.0.103 -rport 8889 -passwd dlive@dubhe
    

2. Встроенные команды узла admin

  • help — вывод справки

    (admin node) >>> help
    
      help                                     Справка.
      exit                                     Выход.
      show                                     Отображение сетевой топологии.
      getdes                                   Просмотр описания целевого узла.
      setdes     [info]                        Добавление описания целевому узлу.
      goto       [id]                          Выбор узла с указанным id как целевого.
      listen     [lport]                       Прослушивание порта на целевом узле.
      connect    [rhost] [rport]               Подключение нового узла через целевой узел.
      sshconnect [user@ip:port] [dport]        Подключение нового узла через SSH-туннель.
      shell                                    Запуск интерактивной оболочки на целевом узле.
      upload     [local_file] [remote_file]    Загрузка файла на целевой узел.
      download   [remote_file] [local_file]    Скачивание файла с целевого узла.
      socks      [lport]                       Запуск SOCKS5-сервера.
      lforward   [lhost] [sport] [dport]       Перенаправление локального порта на удалённый порт.
      rforward   [rhost] [sport] [dport]       Перенаправление удалённого порта на локальный порт.
      
    
  • show — отображение сетевой топологии

    A — узел admin, цифры — узлы agent.

    Пример топологии ниже показывает, что узел admin имеет подключённый узел 1, узел 1 имеет подключённые узлы 2 и 4, а узел 2 — узел 3.

    (node 1) >>> show
    A
    + -- 1
         + -- 2
              + -- 3
         + -- 4
    

    Внимание: чтобы управлять новым узлом, сначала на узле admin выполните команду show для синхронизации топологии и идентификаторов узлов.

  • goto — переход к узлу

    (admin node) >>> goto 1
    (node 1) >>> 
    

    После перехода к узлу вы можете использовать команды, описанные ниже.

  • getdes/setdes — получение/установка описания узла

    (node 1) >>> setdes linux x64 blahblahblah
    (node 1) >>> getdes
    linux x64 blahblahblah
    
  • connect/listen/sshconnect — соединение между узлами

    Узел 1 подключается к порту 9999 на 192.168.0.103:

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