Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
smtp-tunnel-proxy — 一个高速隐蔽隧道,将TCP流量伪装为SMTP电子邮件通信,以绕过深度包检测(DPI)防火墙。 | Kitploit
工具/GitHubGitHub/x011/smtp-tunnel-proxy
加密/解密工具IDS/IPS规避网络安全身份验证红队
GitHubx011/smtp-tunnel-proxy

smtp-tunnel-proxy

一个高速隐蔽隧道,将TCP流量伪装为SMTP电子邮件通信,以绕过深度包检测(DPI)防火墙。

查看仓库
1.8k1647个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

📧 SMTP 隧道代理

一种高速隐蔽隧道,将 TCP 流量伪装成 SMTP 电子邮件通信,以绕过深度包检测 (DPI) 防火墙。

root@kitploit:~
┌─────────────┐      ┌─────────────┐      ┌─────────────┐      ┌──────────────┐
│ 应用程序     │─────▶│ 客户端      │─────▶│ 服务器      │─────▶│ 互联网       │
│  (浏览器)    │ TCP │ SOCKS5:1080 │ SMTP │  端口 587   │ TCP  │              │
│             │◀─────│             │◀─────│             │◀─────│              │
└─────────────┘      └─────────────┘      └─────────────┘      └──────────────┘
                            │                    │
                            │   看上去像         │
                            │   电子邮件流量      │
                            ▼                    ▼
                     ┌────────────────────────────────┐
                     │     DPI 防火墙                  │
                     │  ✅ 看到:正常 SMTP 会话        │
                     │  ❌ 无法看到:隧道数据          │
                     └────────────────────────────────┘

🎯 功能特性

功能描述
🔒 TLS 加密所有流量在 STARTTLS 后使用 TLS 1.2+ 加密
🎭 DPI 绕过初始握手模仿真实 SMTP 服务器(Postfix)
⚡ 高速传输握手后采用二进制流协议 - 极低开销
👥 多用户每个用户独立密钥、IP 白名单和日志设置
🔑 身份验证基于预共享密钥的 HMAC-SHA256 认证
🌐 SOCKS5 代理标准代理接口 - 适用于任何应用程序
📡 多路复用单隧道内支持多个连接
🛡️ IP 白名单按 IP 地址/CIDR 对用户进行访问控制
📦 易安装一键服务器安装,集成 systemd 服务
🎁 客户端包自动为每个用户生成 ZIP 文件
🔄 自动重连客户端在连接丢失时自动重新连接

📚 如需了解详细技术细节、协议规范和安全分析,请参阅 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(你的 VPS IP)

第 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
🐧 Linux

启动器将自动安装依赖并启动客户端。

✅ 你应该看到:

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. ✅ 勾选“使用 SOCKS v5 时代理 DNS”

🌐 Chrome

  1. 安装“Proxy SwitchyOmega”扩展
  2. 创建配置文件,SOCKS5:127.0.0.1:1080

🪟 Windows(系统全局)

设置 → 网络和 Internet → 代理 → 手动设置 → 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:~
# 应该显示你的 VPS IP
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 的活动
选项描述默认值
secret用户的认证密钥必填

💻 客户端选项


📋 服务管理

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 <用户名> [-u USERS_FILE] [-c CONFIG] [--no-zip]
    添加新用户并生成客户端包

smtp-tunnel-deluser <用户名> [-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 单元文件
├── 🔧 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

🔧 故障排除

❌ “连接被拒绝”

  • 检查服务器是否运行:systemctl status smtp-tunnel 或 ps aux | grep server.py
  • 检查端口是否开放:netstat -tlnp | grep 587
  • 检查防火墙:ufw status

❌ “认证失败”

  • 验证 username 和 secret 是否与 users.yaml 中的匹配
  • 检查服务器时间是否准确(5 分钟内)
  • 运行 smtp-tunnel-listusers -v 确认用户存在

❌ “IP 不在白名单中”

  • 检查 users.yaml 中该用户的白名单
  • 你的当前 IP 必须匹配白名单条目
  • 支持 CIDR 表示法(例如 10.0.0.0/8)

❌ “证书验证失败”

  • 确保你使用的是域名,而非 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。


📄 许可证

本项目仅供教育和授权使用。请负责任地使用,并遵守适用法律。


⚠️ 免责声明

本工具专为合法的隐私保护和审查规避用途而设计。用户有责任确保其使用符合适用法律法规。


❤️ 为互联网自由而制作

下载工具
运行 ./start.sh
🍎 macOS运行 ./start.sh
选项描述默认值
host监听接口0.0.0.0
port监听端口587
hostnameSMTP 主机名(必须与证书匹配)mail.example.com
cert_fileTLS 证书路径server.crt
key_fileTLS 私钥路径server.key
users_file用户配置文件路径users.yaml
log_users全局日志记录设置true
whitelist
允许访问该用户的 IP(支持 CIDR)
所有 IP
logging是否记录该用户的活动true
选项描述默认值
server_host服务器域名必填
server_port服务器端口587
socks_port本地 SOCKS5 端口1080
socks_host本地 SOCKS5 接口127.0.0.1
username你的用户名必填
secret你的认证密钥必填
ca_cert用于验证的 CA 证书推荐