Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
smtp-tunnel-proxy — TCP 트래픽을 SMTP 이메일 통신으로 위장하여 심층 패킷 검사(DPI) 방화벽을 우회하는 고속 은밀 터널입니다. | Kitploit
도구/GitHubGitHub/x011/smtp-tunnel-proxy
Encryption/Decryption ToolsIDS/IPS EvasionNetwork SecurityAuthenticationRed Teaming
GitHubx011/smtp-tunnel-proxy

smtp-tunnel-proxy

TCP 트래픽을 SMTP 이메일 통신으로 위장하여 심층 패킷 검사(DPI) 방화벽을 우회하는 고속 은밀 터널입니다.

저장소 보기
1.8k1647개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

📧 SMTP 터널 프록시

TCP 트래픽을 SMTP 이메일 통신으로 위장하여 심층 패킷 검사(DPI) 방화벽을 우회하는 고속 은닉 터널입니다.

root@kitploit:~
┌─────────────┐      ┌─────────────┐      ┌─────────────┐      ┌──────────────┐
│ Application │─────▶│   Client    │─────▶│   Server    │─────▶│  Internet    │
│  (Browser)  │ TCP  │ SOCKS5:1080 │ SMTP │  Port 587   │ TCP  │              │
│             │◀─────│             │◀─────│             │◀─────│              │
└─────────────┘      └─────────────┘      └─────────────┘      └──────────────┘
                            │                    │
                            │   Looks like       │
                            │   Email Traffic    │
                            ▼                    ▼
                     ┌────────────────────────────────┐
                     │     DPI Firewall               │
                     │  ✅ Sees: Normal SMTP Session  │
                     │  ❌ Cannot see: Tunnel Data    │
                     └────────────────────────────────┘

🎯 기능

기능설명
🔒 TLS 암호화STARTTLS 이후 모든 트래픽 TLS 1.2+로 암호화
🎭 DPI 우회초기 핸드셰이크가 실제 SMTP 서버(Postfix)를 모방
⚡ 고속핸드셰이크 후 바이너리 스트리밍 프로토콜 - 오버헤드 최소화
👥 다중 사용자사용자별 비밀, IP 화이트리스트, 로깅 설정
🔑 인증HMAC-SHA256을 사용한 사용자별 사전 공유 키
🌐 SOCKS5 프록시표준 프록시 인터페이스 - 모든 애플리케이션과 호환
📡 멀티플렉싱단일 터널을 통한 여러 연결
🛡️ IP 화이트리스트IP 주소/CIDR에 따른 사용자별 접근 제어
📦 간편 설치systemd 서비스를 통한 원라인 서버 설치
🎁 클라이언트 패키지각 사용자에 대해 자동 생성된 ZIP 파일
🔄 자동 재연결연결 끊김 시 클라이언트 자동 재연결

📚 자세한 기술적 세부 사항, 프로토콜 사양 및 보안 분석은 TECHNICAL.md를 참조하세요.


⚡ 빠른 시작

📋 사전 요구 사항

  • 서버: Python 3.8+가 설치된 Linux VPS, 포트 587 개방
  • 클라이언트: Python 3.8+가 설치된 Windows/macOS/Linux
  • 도메인 이름: 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. 실행 프로그램을 실행하세요:
플랫폼실행 방법
🪟 Windowsstart.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 (시스템 전체)

설정 → 네트워크 및 인터넷 → 프록시 → 수동 설정 → 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 <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 유닛 파일
├── 🔧 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"

  • users.yaml의 사용자 whitelist 확인
  • 현재 IP가 화이트리스트 항목과 일치해야 함
  • 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를 참조하세요.


📄 라이선스

이 프로젝트는 교육 및 승인된 목적으로만 제공됩니다. 책임감 있게 사용하고 관련 법률을 준수하십시오.


⚠️ 면책 조항

이 도구는 합법적인 프라이버시 및 검열 회피 목적으로 설계되었습니다. 사용자는 자신의 사용이 관련 법률 및 규정을 준수하는지 확인할 책임이 있습니다.


인터넷 자유를 위한 ❤️로 제작됨

도구 다운로드
./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 인증서권장