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

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

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

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

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

Категории

Все категории
Loading categories
smtp-tunnel-proxy — Высокоскоростной скрытый туннель, маскирующий TCP-трафик под SMTP-переписку для обхода межсетевых экранов с глубоким анализом пакетов (DPI). | Kitploit
Инструменты/GitHubGitHub/x011/smtp-tunnel-proxy
Инструменты шифрования/дешифрованияОбход IDS/IPSСетевая безопасностьАутентификацияRed Teaming
GitHubx011/smtp-tunnel-proxy

smtp-tunnel-proxy

Высокоскоростной скрытый туннель, маскирующий TCP-трафик под SMTP-переписку для обхода межсетевых экранов с глубоким анализом пакетов (DPI).

Репозиторий
1.8k1647 месяцев назадПроверено Kitploit

Популярное

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

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

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

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

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

📧 SMTP Tunnel Proxy

Высокоскоростной скрытый туннель, маскирующий TCP-трафик под SMTP-почтовое сообщение для обхода DPI-брандмауэров.

root@kitploit:~
┌─────────────┐      ┌─────────────┐      ┌─────────────┐      ┌──────────────┐
│ Application │─────▶│   Client    │─────▶│   Server    │─────▶│  Internet    │
│  (Browser)  │ TCP  │ SOCKS5:1080 │ SMTP │  Port 587   │ TCP  │              │
│             │◀─────│             │◀─────│             │◀─────│              │
└─────────────┘      └─────────────┘      └─────────────┘      └──────────────┘
                            │                    │
                            │   Выглядит как     │
                            │   почтовый трафик  │
                            ▼                    ▼
                     ┌────────────────────────────────┐
                     │     DPI Firewall               │
                     │  ✅ Видит: Обычная SMTP-сессия │
                     │  ❌ Не видит: Туннельные данные│
                     └────────────────────────────────┘

🎯 Возможности

📚 Подробные технические детали, спецификации протокола и анализ безопасности см. в TECHNICAL.md.


⚡ Быстрый старт

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

  • Сервер: Linux VPS с Python 3.8+, открытый порт 587
  • Клиент: Windows/macOS/Linux с Python 3.8+
  • Доменное имя: Требуется для проверки TLS-сертификата (бесплатные варианты: DuckDNS, No-IP, FreeDNS)

🚀 Настройка сервера (VPS)

Шаг 1️⃣: Получить доменное имя

Получите бесплатный домен, указывающий на ваш VPS:

  • 🦆 DuckDNS — Рекомендуется, просто и бесплатно
  • 🌐 No-IP — Есть бесплатный тариф
  • 🆓 FreeDNS — Множество вариантов доменов

Пример: myserver.duckdns.org → 203.0.113.50 (IP вашего VPS)

Шаг 2️⃣: Запустить установщик

root@kitploit:~
curl -sSL https://raw.githubusercontent.com/x011/smtp-tunnel-proxy/main/install.sh | sudo bash

Установщик:

  1. 📥 Скачает и установит всё необходимое
  2. ❓ Спросит ваше доменное имя
  3. 🔐 Автоматически сгенерирует TLS-сертификаты
  4. 👤 Предложит создать первого пользователя
  5. 🔥 Настроит брандмауэр
  6. 🚀 Запустит сервис

Всё! Ваш сервер готов.

➕ Добавление новых пользователей позже

root@kitploit:~
smtp-tunnel-adduser bob      # Добавить пользователя + сгенерировать клиентский ZIP
smtp-tunnel-listusers        # Список всех пользователей
smtp-tunnel-deluser bob      # Удалить пользователя

🔄 Обновление сервера

root@kitploit:~
smtp-tunnel-update           # Обновляет код, сохраняя настройки/сертификаты/пользователей

💻 Настройка клиента

Вариант A: Простой способ (рекомендуется)

  1. Получите файл username.zip от администратора сервера
  2. Распакуйте ZIP-файл
  3. Запустите лаунчер:
ПлатформаКак запустить
🪟 WindowsДважды щёлкните start.bat

Лаунчер автоматически установит зависимости и запустит клиент.

✅ Вы должны увидеть:

root@kitploit:~
SMTP Tunnel Proxy Client
User: alice

[INFO] Starting SMTP Tunnel...
[INFO] SOCKS5 proxy will be available at 127.0.0.1:1080

Connecting to myserver.duckdns.org:587
Connected - binary mode active
SOCKS5 proxy on 127.0.0.1:1080

Вариант B: Вручную

root@kitploit:~
cd alice
pip install -r requirements.txt
python client.py

Вариант C: Своя конфигурация

root@kitploit:~
# Скачать файлы
scp [email protected]:/etc/smtp-tunnel/ca.crt .

# Создать config.yaml:
cat > config.yaml << EOF
client:
  server_host: "myserver.duckdns.org"
  server_port: 587
  socks_port: 1080
  username: "alice"
  secret: "your-secret-from-admin"
  ca_cert: "ca.crt"
EOF

# Запустить клиент
python client.py -c config.yaml

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

🌐 Настройка ваших приложений

Установите SOCKS5-прокси: 127.0.0.1:1080

🦊 Firefox

  1. Настройки → Сетевые настройки → Настроить
  2. Ручная настройка прокси
  3. SOCKS-хост: 127.0.0.1, Порт: 1080
  4. Выберите SOCKS v5
  5. ✅ Отметьте «Прокси DNS при использовании SOCKS v5»

🌐 Chrome

  1. Установите расширение «Proxy SwitchyOmega»
  2. Создайте профиль с SOCKS5: 127.0.0.1:1080

🪟 Windows (системный)

Параметры → Сеть и Интернет → Прокси → Ручная настройка → socks=127.0.0.1:1080

🍎 macOS (системный)

Системные настройки → Сеть → Дополнительно → Прокси → SOCKS-прокси → 127.0.0.1:1080

🐧 Linux (системный)

root@kitploit:~
export ALL_PROXY=socks5://127.0.0.1:1080

💻 Командная строка

root@kitploit:~
# curl
curl -x socks5h://127.0.0.1:1080 https://ifconfig.me

# git
git config --global http.proxy socks5://127.0.0.1:1080

# Переменная окружения
export ALL_PROXY=socks5://127.0.0.1:1080

✅ Проверка соединения

root@kitploit:~
# Должен показать IP вашего VPS
curl -x socks5://127.0.0.1:1080 https://ifconfig.me

⚙️ Справочник по конфигурации

🖥️ Параметры сервера (config.yaml)

👥 Параметры пользователей (users.yaml)

Каждый пользователь может иметь индивидуальные настройки:

root@kitploit:~
users:
  alice:
    secret: "auto-generated-secret"
    # whitelist:              # Опционально: ограничить определённые IP
    #   - "192.168.1.100"
    #   - "10.0.0.0/8"        # Поддерживается нотация CIDR
    # logging: true           # Опционально: отключить логирование для этого пользователя

  bob:
    secret: "another-secret"
    whitelist:
      - "203.0.113.50"        # Bob может подключаться только с этого IP
    logging: false            # Не логировать действия Bob
ПараметрОписаниеПо умолчанию

💻 Параметры клиента


📋 Управление сервисом

root@kitploit:~
# Проверка статуса
sudo systemctl status smtp-tunnel

# Перезапуск после изменений конфигурации
sudo systemctl restart smtp-tunnel

# Просмотр логов
sudo journalctl -u smtp-tunnel -n 100

# Удаление
sudo /opt/smtp-tunnel/uninstall.sh

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

🖥️ Сервер

root@kitploit:~
python server.py [-c CONFIG] [-d]

  -c, --config    Файл конфигурации (по умолчанию: config.yaml)
  -d, --debug     Включить отладочное логирование

💻 Клиент

root@kitploit:~
python client.py [-c CONFIG] [--server HOST] [--server-port PORT]
                 [-p SOCKS_PORT] [-u USERNAME] [-s SECRET] [--ca-cert FILE] [-d]

  -c, --config      Файл конфигурации (по умолчанию: config.yaml)
  --server          Переопределить домен сервера
  --server-port     Переопределить порт сервера
  -p, --socks-port  Переопределить локальный SOCKS-порт
  -u, --username    Ваше имя пользователя
  -s, --secret      Переопределить секрет
  --ca-cert         Путь к CA-сертификату
  -d, --debug       Включить отладочное логирование

👥 Управление пользователями

root@kitploit:~
smtp-tunnel-adduser <username> [-u USERS_FILE] [-c CONFIG] [--no-zip]
    Добавить нового пользователя и сгенерировать клиентский пакет

smtp-tunnel-deluser <username> [-u USERS_FILE] [-f]
    Удалить пользователя (используйте -f для пропуска подтверждения)

smtp-tunnel-listusers [-u USERS_FILE] [-v]
    Список всех пользователей (используйте -v для подробной информации)

smtp-tunnel-update
    Обновить сервер до последней версии (сохраняет настройки/сертификаты/пользователей)

📁 Структура файлов

root@kitploit:~
smtp_proxy/
├── 📄 server.py               # Сервер (запускается на VPS)
├── 📄 client.py               # Клиент (запускается локально)
├── 📄 common.py               # Общие утилиты
├── 📄 generate_certs.py       # Генератор сертификатов
├── 📄 config.yaml             # Конфигурация сервера/клиента
├── 📄 users.yaml              # База данных пользователей
├── 📄 requirements.txt        # Зависимости Python
├── 📄 install.sh              # Установщик сервера одной командой
├── 📄 smtp-tunnel.service     # Systemd unit-файл
├── 🔧 smtp-tunnel-adduser     # Скрипт добавления пользователя
├── 🔧 smtp-tunnel-deluser     # Скрипт удаления пользователя
├── 🔧 smtp-tunnel-listusers   # Скрипт списка пользователей
├── 🔧 smtp-tunnel-update      # Скрипт обновления сервера
├── 📄 README.md               # Этот файл
└── 📄 TECHNICAL.md            # Техническая документация

📦 Пути установки (после install.sh)

root@kitploit:~
/opt/smtp-tunnel/              # Файлы приложения
/etc/smtp-tunnel/              # Файлы конфигурации
  ├── config.yaml
  ├── users.yaml
  ├── server.crt
  ├── server.key
  └── ca.crt
/usr/local/bin/                # Команды управления
  ├── smtp-tunnel-adduser
  ├── smtp-tunnel-deluser
  ├── smtp-tunnel-listusers
  └── smtp-tunnel-update

🔧 Устранение неполадок

❌ «Connection refused»

  • Проверьте, работает ли сервер: systemctl status smtp-tunnel или ps aux | grep server.py
  • Проверьте, открыт ли порт: netstat -tlnp | grep 587
  • Проверьте брандмауэр: ufw status

❌ «Auth failed»

  • Убедитесь, что username и secret совпадают в users.yaml
  • Проверьте точное время на сервере (разница не более 5 минут)
  • Запустите smtp-tunnel-listusers -v для проверки существования пользователя

❌ «IP not whitelisted»

  • Проверьте whitelist пользователя в users.yaml
  • Ваш текущий IP должен совпадать с записью в whitelist
  • Поддерживается нотация CIDR (например, 10.0.0.0/8)

❌ «Certificate verify failed»

  • Убедитесь, что вы используете доменное имя, а не IP-адрес
  • Проверьте, что server_host соответствует имени хоста в сертификате
  • Убедитесь, что у вас правильный ca.crt с сервера

🐛 Режим отладки

root@kitploit:~
# Включить подробное логирование
python server.py -d
python client.py -d

# Просмотр systemd-логов
journalctl -u smtp-tunnel -f

🔐 Замечания по безопасности

  • ✅ Всегда используйте доменное имя для правильной проверки TLS
  • ✅ Всегда используйте ca_cert для предотвращения атак типа «человек посередине»
  • ✅ Используйте smtp-tunnel-adduser для автоматической генерации надёжных секретов
  • ✅ Используйте IP-белые списки для каждого пользователя, если вы знаете IP клиентов
  • ✅ Защищайте users.yaml — он содержит все секреты пользователей (chmod 600)
  • ✅ Отключайте логирование для конфиденциальных пользователей с помощью logging: false

📚 Подробный анализ безопасности и модель угроз см. в TECHNICAL.md.


📄 Лицензия

Этот проект предоставляется только для образовательного и авторизованного использования. Используйте ответственно и в соответствии с действующим законодательством.


⚠️ Отказ от ответственности

Этот инструмент предназначен для законной защиты конфиденциальности и обхода цензуры. Пользователи несут ответственность за обеспечение соответствия их использования применимым законам и правилам.


Сделано с ❤️ для свободы интернета

Скачать инструмент
ВозможностьОписание
🔒 TLS-шифрованиеВесь трафик шифруется с помощью TLS 1.2+ после STARTTLS
🎭 Обход DPIНачальное рукопожатие имитирует реальные SMTP-серверы (Postfix)
⚡ Высокая скоростьБинарный потоковый протокол после рукопожатия — минимальные накладные расходы
👥 Многопользовательский режимСекреты для каждого пользователя, IP-белые списки и настройки логирования
🔑 АутентификацияПредустановленные ключи для каждого пользователя с HMAC-SHA256
🌐 SOCKS5-проксиСтандартный интерфейс прокси — работает с любыми приложениями
📡 МультиплексированиеНесколько соединений через один туннель
🛡️ IP-белый списокКонтроль доступа для каждого пользователя по IP-адресу/CIDR
📦 Простая установкаУстановка сервера одной командой с systemd-сервисом
🎁 Клиентские пакетыАвтоматически генерируемые ZIP-файлы для каждого пользователя
🔄 АвтоподключениеКлиент автоматически переподключается при потере соединения
🐧 LinuxЗапустите ./start.sh
🍎 macOSЗапустите ./start.sh
ПараметрОписаниеПо умолчанию
hostИнтерфейс прослушивания0.0.0.0
portПорт прослушивания587
hostnameSMTP-имя хоста (должно совпадать с сертификатом)mail.example.com
cert_fileПуть к TLS-сертификатуserver.crt
key_fileПуть к закрытому ключу TLSserver.key
users_fileПуть к файлу конфигурации пользователейusers.yaml
log_usersГлобальная настройка логированияtrue
secretСекрет аутентификации пользователяОбязательный
whitelistРазрешённые IP для этого пользователя (поддерживается CIDR)Все IP
loggingВключить логирование активности для этого пользователяtrue
ПараметрОписаниеПо умолчанию
server_hostДоменное имя сервераОбязательный
server_portПорт сервера587
socks_portЛокальный порт SOCKS51080
socks_hostЛокальный интерфейс SOCKS5127.0.0.1
usernameВаше имя пользователяОбязательный
secretВаш секрет аутентификацииОбязательный
ca_certCA-сертификат для проверкиРекомендуется