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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
xtor — Tor 인스턴스를 프로그래밍 방식으로 관리하는 Python 라이브러리로, SOCKS5 프록시, 아이덴티티 로테이션, 스트림 격리, 히든 서비스, 회로 제어 및 비동기 HTTP 클라이언트를 지원합니다. | Kitploit
도구/GitHubGitHub/khalidelborai/xtor
Scripting & AutomationNetwork SecurityPrivacyUtilities & FrameworksCrawler
GitHubkhalidelborai/xtor

xtor

Tor 인스턴스를 프로그래밍 방식으로 관리하는 Python 라이브러리로, SOCKS5 프록시, 아이덴티티 로테이션, 스트림 격리, 히든 서비스, 회로 제어 및 비동기 HTTP 클라이언트를 지원합니다.

저장소 보기
116개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

xtor

Tor 인스턴스를 프로그래밍 방식으로 관리하는 Python 라이브러리입니다.

PyPI version Python 3.10+ License: GPL-3.0-or-later CI

기능

  • 새 Tor 프로세스 시작 또는 기존 프로세스에 연결
  • SOCKS5 프록시가 포함된 사전 구성된 httpx 클라이언트 (동기 + 비동기)
  • 새 IP를 기다리는 옵션을 포함한 ID 회전
  • 트래픽 분리를 위한 스트림 격리
  • 회로 및 스트림 관리
  • 종료 노드 정보 (국가, 대역폭, 플래그)
  • 임시 히든 서비스 (.onion)
  • 이벤트 리스너 (회로, 스트림, 대역폭 이벤트)
  • 라운드 로빈 및 무작위 선택을 지원하는 여러 인스턴스 관리를 위한 TorPool
  • CLI 관리를 지원하는 명명된 인스턴스
  • 정확한 오류 처리를 위한 사용자 정의 예외 계층 구조

설치

사전 요구 사항

Linux (Debian/Ubuntu):

root@kitploit:~
sudo apt-get install tor obfs4proxy

Windows:

torproject.org에서 Tor Expert Bundle을 다운로드하세요.

Python 패키지

root@kitploit:~
pip install xtor
# 또는
uv add xtor

빠른 시작

root@kitploit:~
from xtor import Tor

with Tor.start(port=9052, control_port=9053, host="127.0.0.1") as tor:
    print(f"Connected through IP: {tor.ip}")
    resp = tor.client.get("https://api.ipify.org")
    print(resp.text)

사용법

새 Tor 프로세스 시작

root@kitploit:~
from xtor import Tor
from xtor.exceptions import TorNotFoundError, PortInUseError

try:
    with Tor.start(port=9052, control_port=9053, host="127.0.0.1", password="mypass") as tor:
        print(tor.ip)
        resp = tor.client.get("https://api.ipify.org")
        print(resp.text)
except TorNotFoundError:
    print("Tor not found on PATH")
except PortInUseError as e:
    print(f"Port in use: {e}")

참고: Tor.startTor()는 하위 호환성을 위해 Tor.start()의 별칭으로 사용할 수 있습니다.

기존 인스턴스에 연결

root@kitploit:~
with Tor(password="mypass", port=9050, control_port=9051) as tor:
    print(tor.ip)

새 ID

root@kitploit:~
with Tor.start(port=9052, control_port=9053, host="127.0.0.1") as tor:
    print(tor.ip)
    tor.new_identity(wait=True, timeout=30)
    print(tor.ip)  # 새 IP

비동기 클라이언트

root@kitploit:~
import asyncio
from xtor import Tor

async def main():
    with Tor.start(port=9052, control_port=9053, host="127.0.0.1") as tor:
        async with tor.async_client as client:
            resp = await client.get("https://api.ipify.org")
            print(resp.text)

asyncio.run(main())

스트림 격리

root@kitploit:~
with Tor.start(port=9052, control_port=9053, host="127.0.0.1") as tor:
    # 각 키는 고유한 회로를 사용합니다
    client_a = tor.isolated_client("session-a")
    client_b = tor.isolated_client("session-b")
    # client_a와 client_b를 통한 요청은 서로 다른 회로를 사용합니다

회로 관리

root@kitploit:~
with Tor.start(port=9052, control_port=9053, host="127.0.0.1") as tor:
    circuits = tor.get_circuits()
    for c in circuits:
        print(f"Circuit {c.id}: {c.status}, path: {c.path}")

    # 특정 회로 닫기
    tor.close_circuit(circuits[0].id)

종료 노드 정보

root@kitploit:~
with Tor.start(port=9052, control_port=9053, host="127.0.0.1") as tor:
    info = tor.exit_node
    if info:
        print(f"Exit: {info.nickname} ({info.country})")
        print(f"Flags: {info.flags}")

히든 서비스

root@kitploit:~
with Tor.start(port=9052, control_port=9053, host="127.0.0.1") as tor:
    service = tor.create_hidden_service({80: 8080})
    print(f"Service: {service.onion_address}")

    # 완료 후 제거
    tor.remove_hidden_service(service)

이벤트 리스너

root@kitploit:~
with Tor.start(port=9052, control_port=9053, host="127.0.0.1") as tor:
    def on_bandwidth(event):
        print(f"Read: {event.read}, Written: {event.written}")

    tor.add_event_listener("BW", on_bandwidth)
    # ... 작업 수행 ...
    tor.remove_event_listener(on_bandwidth)

TorPool

root@kitploit:~
from xtor import TorPool

with TorPool(size=3, base_port=9100, password="secret") as pool:
    # 라운드 로빈
    tor = pool.next()
    print(tor.client.get("https://api.ipify.org").text)

    # 모든 ID 회전
    pool.rotate_all()

    # 무작위 선택
    tor = pool.random()

명명된 인스턴스 (Python)

root@kitploit:~
from xtor import Tor

# 명명된 인스턴스 시작
tor = Tor.start(port=9052, control_port=9053, host="127.0.0.1", name="my-tor")

# 나중에 이름으로 다시 연결
tor = Tor.from_name("my-tor")
with tor:
    print(tor.ip)

CLI 참조

xtor CLI는 명명된 Tor 인스턴스를 백그라운드 프로세스로 관리합니다.

root@kitploit:~
# 명명된 인스턴스 시작
xtor start my-tor --port 9052 --control-port 9053

# 인스턴스 목록 보기
xtor list

# 연결 세부 정보
xtor connect my-tor

# 인스턴스 중지
xtor stop my-tor

# 인스턴스 및 데이터 제거
xtor remove my-tor

사용자 정의 예외

root@kitploit:~
XtorError (base)
├── TorNotFoundError
├── PortInUseError
├── IdentityChangeTimeout
├── ConnectionError
└── AuthenticationError

모든 예외 처리 패턴:

root@kitploit:~
from xtor.exceptions import XtorError

try:
    with Tor.start(port=9052, control_port=9053, host="127.0.0.1") as tor:
        ...
except XtorError as e:
    print(f"xtor error: {e}")

라이선스

GPL-3.0-or-later

도구 다운로드