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

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

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

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

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

Категории

Все категории
Loading categories
xtor — Библиотека Python для программного управления экземплярами Tor с поддержкой SOCKS5-прокси, смены идентификаторов, изоляции потоков, скрытых служб, управления цепями и асинхронных HTTP-клиентов. | Kitploit
Инструменты/GitHubGitHub/khalidelborai/xtor
Скриптинг и автоматизацияСетевая безопасностьКонфиденциальностьУтилиты и фреймворкиКраулер
GitHubkhalidelborai/xtor

xtor

Библиотека Python для программного управления экземплярами Tor с поддержкой SOCKS5-прокси, смены идентификаторов, изоляции потоков, скрытых служб, управления цепями и асинхронных HTTP-клиентов.

Репозиторий
116 месяцев назадЕщё не проверено

Популярное

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

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

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

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

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

xtor

Python-библиотека для программного управления экземплярами Tor.

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

Возможности

  • Запускать новые процессы Tor или подключаться к существующим
  • Предварительно настроенные клиенты httpx (синхронные и асинхронные) с прокси SOCKS5
  • Смена идентичности с возможностью ожидания нового IP
  • Изоляция потоков для разделения трафика
  • Управление цепями и потоками
  • Информация о выходном узле (страна, пропускная способность, флаги)
  • Эфемерные скрытые сервисы (.onion)
  • Слушатели событий (события цепей, потоков, пропускной способности)
  • TorPool для управления несколькими экземплярами с циклическим и случайным выбором
  • Именованные экземпляры с управлением через CLI
  • Пользовательская иерархия исключений для точной обработки ошибок

Установка

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

Linux (Debian/Ubuntu):

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

Windows:

Скачайте Tor Expert Bundle с torproject.org.

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 не найден в PATH")
except PortInUseError as e:
    print(f"Порт занят: {e}")

Примечание: Tor.startTor() доступен как псевдоним для Tor.start() для обратной совместимости.

Подключение к существующему экземпляру

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

Новая идентичность

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"Цепь {c.id}: {c.status}, путь: {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"Выходной узел: {info.nickname} ({info.country})")
        print(f"Флаги: {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.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"Прочитано: {event.read}, Записано: {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)

    # Сменить все идентичности
    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

CLI xtor управляет именованными экземплярами 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: {e}")

Лицензия

GPL-3.0-or-later

Скачать инструмент