Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
xtor — Biblioteca Python para gerenciamento programático de instâncias Tor com proxy SOCKS5, rotação de identidade, isolamento de fluxo, serviços ocultos, controle de circuito e clientes HTTP assíncronos. | Kitploit
Ferramentas/GitHubGitHub/khalidelborai/xtor
Scripting e AutomaçãoSegurança de RedePrivacidadeUtilitários e FrameworksRastreador
GitHubkhalidelborai/xtor

xtor

Biblioteca Python para gerenciamento programático de instâncias Tor com proxy SOCKS5, rotação de identidade, isolamento de fluxo, serviços ocultos, controle de circuito e clientes HTTP assíncronos.

Ver Repositório
11há 6 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Site

xtor

Biblioteca Python para gerenciar instâncias Tor programaticamente.

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

Recursos

  • Iniciar novos processos Tor ou conectar-se a existentes
  • Clientes httpx pré-configurados (síncrono + assíncrono) com proxy SOCKS5
  • Rotação de identidade com espera opcional por novo IP
  • Isolamento de fluxo para separação de tráfego
  • Gerenciamento de circuitos e fluxos
  • Informações do nó de saída (país, largura de banda, flags)
  • Serviços ocultos efêmeros (.onion)
  • Ouvintes de eventos (eventos de circuito, fluxo, largura de banda)
  • TorPool para gerenciar múltiplas instâncias com seleção round-robin e aleatória
  • Instâncias nomeadas com gerenciamento via CLI
  • Hierarquia de exceções personalizada para tratamento preciso de erros

Instalação

Pré-requisitos

Linux (Debian/Ubuntu):

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

Windows:

Baixe o Tor Expert Bundle em torproject.org.

Pacote Python

root@kitploit:~
pip install xtor
# ou
uv add xtor

Início Rápido

root@kitploit:~
from xtor import Tor

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

Uso

Iniciar um Novo Processo 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="minhasenha") as tor:
        print(tor.ip)
        resp = tor.client.get("https://api.ipify.org")
        print(resp.text)
except TorNotFoundError:
    print("Tor não encontrado no PATH")
except PortInUseError as e:
    print(f"Porta em uso: {e}")

Nota: Tor.startTor() está disponível como um alias para Tor.start() para compatibilidade com versões anteriores.

Conectar a uma Instância Existente

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

Nova Identidade

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)  # Novo IP

Cliente Assíncrono

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())

Isolamento de Fluxo

root@kitploit:~
with Tor.start(port=9052, control_port=9053, host="127.0.0.1") as tor:
    # Cada chave recebe seu próprio circuito
    client_a = tor.isolated_client("sessao-a")
    client_b = tor.isolated_client("sessao-b")
    # Requisições através de client_a e client_b usam circuitos diferentes

Gerenciamento de Circuitos

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"Circuito {c.id}: {c.status}, caminho: {c.path}")

    # Fechar um circuito específico
    tor.close_circuit(circuits[0].id)

Informações do Nó de Saída

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"Saída: {info.nickname} ({info.country})")
        print(f"Flags: {info.flags}")

Serviços Ocultos

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"Serviço: {service.onion_address}")

    # Remover quando terminar
    tor.remove_hidden_service(service)

Ouvintes de Eventos

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

    tor.add_event_listener("BW", on_bandwidth)
    # ... realizar trabalho ...
    tor.remove_event_listener(on_bandwidth)

TorPool

root@kitploit:~
from xtor import TorPool

with TorPool(size=3, base_port=9100, password="secret") as pool:
    # Round-robin
    tor = pool.next()
    print(tor.client.get("https://api.ipify.org").text)

    # Rotacionar todas as identidades
    pool.rotate_all()

    # Seleção aleatória
    tor = pool.random()

Instâncias Nomeadas (Python)

root@kitploit:~
from xtor import Tor

# Iniciar instância nomeada
tor = Tor.start(port=9052, control_port=9053, host="127.0.0.1", name="meu-tor")

# Depois, reconectar pelo nome
tor = Tor.from_name("meu-tor")
with tor:
    print(tor.ip)

Referência CLI

A CLI xtor gerencia instâncias Tor nomeadas como processos em segundo plano.

root@kitploit:~
# Iniciar uma instância nomeada
xtor start meu-tor --port 9052 --control-port 9053

# Listar instâncias
xtor list

# Detalhes da conexão
xtor connect meu-tor

# Parar instância
xtor stop meu-tor

# Remover instância e dados
xtor remove meu-tor

Exceções Personalizadas

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

Padrão para capturar todas:

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"Erro xtor: {e}")

Licença

GPL-3.0-or-later

Baixar ferramenta