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

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

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

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

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

Категории

Все категории
Loading categories
RustTLSX — 🦀 Стелс-HTTP-клиент для Rust. Имитирует TLS-отпечатки реальных браузеров для необнаруживаемых запросов. Быстрый, типобезопасный и создан для точной сетевой работы. | Kitploit
Инструменты/GitHubGitHub/d0rb/rusttlsx
Обход IDS/IPSСбор информацииВеб-безопасностьТестирование на ПроникновениеКонфиденциальностьКраулерАнти-БотПодмена Цифрового Отпечатка
GitHubd0rb/rusttlsx

RustTLSX

🦀 Стелс-HTTP-клиент для Rust. Имитирует TLS-отпечатки реальных браузеров для необнаруживаемых запросов. Быстрый, типобезопасный и создан для точной сетевой работы.

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

Популярное

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

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

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

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

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

RustTLSX 🦀

. Продвинутый скрытный HTTP-клиент для Rust.

Создан для разработчиков, заботящихся о конфиденциальности, которым нужен полный контроль над своим сетевым отпечатком.

Выглядит как браузер. Работает как браузер. Написан на Rust.

Crates.io Documentation License

Благодарности и основа

Построен на основе bogdanfinn/tls-client — ведущей библиотеки TLS-отпечатков, которой доверяют специалисты по безопасности по всему миру. Мы используем проверенные в бою общие библиотеки bogdanfinn (.dll/.so/.dylib) через FFI-привязки, потому что:

  • Годы исследований: Тысячи часов, потраченных на совершенствование воспроизведения TLS-поведения браузеров
  • Проверенная репутация: Используется в производственной среде компаниями по безопасности и инструментами конфиденциальности по всему миру
  • Постоянные обновления: Регулярные обновления для соответствия изменяющимся отпечаткам браузеров
  • Оптимизация производительности: Нативная реализация на C/Go для максимальной скорости

RustTLSX привносит эту проверенную технологию в Rust с типобезопасным и эргономичным API, который в 6 раз быстрее Python-альтернатив.

Зачем существует RustTLSX

Современные веб-приложения анализируют каждый аспект ваших HTTP-запросов — не только заголовки и cookie, но и глубокие криптографические сигнатуры вашего TLS-рукопожатия. Стандартные HTTP-клиенты на Rust (reqwest, hyper, ureq) создают легко обнаруживаемые паттерны, которые сразу выдают автоматизированный трафик.

RustTLSX решает эту проблему, предоставляя:

  • Идеальная имитация браузера: Аутентичные TLS-отпечатки реальных браузеров
  • Контроль модификации запросов: Тонкая настройка заголовков, cookie и тайминга
  • Конфиденциальность по замыслу: Ваш трафик выглядит как легитимные браузерные сессии
  • Лидерство по производительности: Значительно быстрее любого альтернативного решения

Основные возможности

Конфиденциальность и контроль запросов

  • Аутентичная идентичность браузера: Идеальное воспроизведение TLS-сигнатур Chrome, Firefox, Safari и Opera
  • Манипуляция заголовками: Полный контроль над заголовками запросов, пользовательскими агентами и параметрами Accept
  • Управление cookie: Расширенная обработка сессий с поддержкой постоянных cookie
  • Контроль тайминга: Настраиваемые интервалы запросов и пул соединений
  • Выбор протокола: Поддержка HTTP/1.1 и HTTP/2 с точными предпочтениями браузеров

Преимущества производительности

  • В 6 раз быстрее Python: Нативная производительность Rust с zero-copy операциями, где это возможно
  • Эффективность памяти: Минимальные накладные расходы по сравнению со стандартными HTTP-клиентами
  • Параллельные запросы: Оптимизировано для сценариев с высокой пропускной способностью
  • Повторное использование соединений: Интеллектуальный пул соединений, соответствующий поведению браузера

Расширенные возможности

  • Более 30 профилей браузеров: Обширная коллекция реальных отпечатков браузеров
  • Типобезопасность: Полные гарантии времени компиляции Rust с исчерпывающей обработкой ошибок
  • Кроссплатформенность: Поддержка Windows, Linux и macOS
  • Обход защиты: Как побочный эффект идеальной имитации, обходит системы обнаружения

Быстрый старт

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

Загрузите необходимую библиотеку TLS-клиента для вашей платформы из релизов tls-client:

  • Windows: tls-client-windows-64-1.3.3.dll
  • Linux: tls-client-linux-ubuntu-amd64-1.3.3.so
  • macOS: tls-client-darwin-amd64-1.3.3.dylib

Поместите файл библиотеки в корень вашего проекта, системный путь библиотек (/usr/local/lib/) или убедитесь, что он доступен через PATH.

Установка

Добавьте RustTLSX в ваш Cargo.toml:

root@kitploit:~
[dependencies]
rust-tlsx = "0.1"

Базовое использование

root@kitploit:~
use rust_tlsx::{TlsClient, BrowserProfile};

fn main() -> anyhow::Result<()> {
    let client = TlsClient::new(BrowserProfile::Firefox120)
        .header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0")
        .timeout(30);
    
    let response = client.get("https://example.com")?;
    
    println!("Status: {}", response.status);
    println!("Body: {}", response.body);
    
    Ok(())
}

Доступные профили браузеров

RustTLSX поддерживает более 30 профилей браузеров среди основных браузеров:

root@kitploit:~
// Chrome versions
BrowserProfile::Chrome103
BrowserProfile::Chrome107  
BrowserProfile::Chrome109
BrowserProfile::Chrome120

// Firefox versions
BrowserProfile::Firefox102
BrowserProfile::Firefox105
BrowserProfile::Firefox108
BrowserProfile::Firefox120

// Safari versions
BrowserProfile::Safari15_6_1
BrowserProfile::Safari16_0
BrowserProfile::SafariIos16_0

// Opera and others
BrowserProfile::Opera89
BrowserProfile::Opera90

Расширенное использование

Пользовательские заголовки и cookie

root@kitploit:~
let client = TlsClient::new(BrowserProfile::Chrome109)
    .header("Accept", "application/json")
    .header("Accept-Language", "en-US,en;q=0.9")
    .cookie("session", "abc123")
    .cookie("token", "xyz789");

let response = client.get("https://api.example.com")?;

POST-запросы

root@kitploit:~
let body = r#"{"username": "user", "password": "pass"}"#;
let response = client.post("https://example.com/login", Some(body.to_string()))?;

Таймауты запросов

root@kitploit:~
let client = TlsClient::new(BrowserProfile::Firefox120)
    .timeout(60); // seconds

let response = client.get("https://slow-api.example.com")?;

Архитектура и философия дизайна

Почему мы используем общие библиотеки bogdanfinn

RustTLSX построен на фундаменте проверенного превосходства, а не на изобретении велосипеда. Мы используем скомпилированные библиотеки bogdanfinn (.dll/.so/.dylib) через FFI, потому что:

Инвестиции в исследования: Bogdanfinn вложил тысячи часов в обратную разработку TLS-поведения браузеров. Повторение этих исследований заняло бы годы и, скорее всего, дало бы худшие результаты.

Проверенная в бою надежность: Эти библиотеки используются крупными компаниями по безопасности, инструментами конфиденциальности и исследовательскими институтами по всему миру. Они протестированы против каждой крупной системы защиты.

Непрерывная эволюция: Отпечатки браузеров постоянно меняются. Библиотеки bogdanfinn получают регулярные обновления для соответствия новым версиям браузеров и обновлениям систем защиты.

Оптимизация производительности: Нативная реализация на C/Go сильно оптимизирована по скорости и эффективности памяти, обеспечивая производительность, которую чистые реализации на Rust не могут превзойти.

Техническая реализация

Динамическая загрузка во время выполнения: Библиотеки загружаются по требованию через FFI, устраняя сложность статической компоновки и сохраняя производительность.

Управление памятью: Модель владения Rust обеспечивает безопасное взаимодействие с нативными библиотеками, предотвращая утечки памяти и ошибки use-after-free, распространенные в реализациях на C/C++.

Обработка ошибок: Исчерпывающая обработка ошибок на основе Result предоставляет подробную диагностику, сохраняя типобезопасность.

Управление соединениями: Интеллектуальный пул и повторное использование TLS-соединений с точными паттернами поведения браузера.

Обрабатываемые компоненты отпечатка

Базовые библиотеки управляют каждым аспектом TLS-поведения браузера:

  • Порядок наборов шифров: Точное воспроизведение предпочтений браузера в шифрах
  • Обработка TLS-расширений: Правильный порядок и значения для всех TLS-расширений
  • Настройки HTTP/2: Обработка кадров и настройки, соответствующие поведению браузера
  • Проверка сертификатов: Точная проверка цепочки сертификатов как в браузере
  • Управление сессиями: Корректное возобновление TLS-сессий и обработка билетов
  • Согласование ALPN: Согласование протокола прикладного уровня, соответствующее браузерам

Примеры

Базовый HTTP-запрос

root@kitploit:~
use rust_tlsx::{TlsClient, BrowserProfile};

fn main() -> anyhow::Result<()> {
    let client = TlsClient::new(BrowserProfile::Chrome109);
    let response = client.get("https://httpbin.org/get")?;
    
    println!("Status: {}", response.status);
    println!("Body: {}", response.body);
    
    Ok(())
}

Проверка TLS-отпечатка

root@kitploit:~
use rust_tlsx::{TlsClient, BrowserProfile};

fn main() -> anyhow::Result<()> {
    let client = TlsClient::new(BrowserProfile::Firefox120);
    let response = client.get("https://tls.peet.ws/api/all")?;
    
    println!("TLS Fingerprint Analysis:\n{}", response.body);
    
    Ok(())
}

Аутентифицированные запросы

root@kitploit:~
use rust_tlsx::{TlsClient, BrowserProfile};

fn main() -> anyhow::Result<()> {
    let client = TlsClient::new(BrowserProfile::Chrome109)
        .header("Authorization", "Bearer YOUR_TOKEN")
        .header("Content-Type", "application/json");
    
    let response = client.get("https://api.example.com/data")?;
    
    match response.status {
        200 => println!("Success: {}", response.body),
        401 => eprintln!("Authentication failed"),
        _ => eprintln!("Request failed with status {}: {}", response.status, response.body),
    }
    
    Ok(())
}

Веб-скрапинг с фокусом на конфиденциальность

root@kitploit:~
use rust_tlsx::{TlsClient, BrowserProfile};

fn main() -> anyhow::Result<()> {
    // Create a client that appears as a real Firefox browser
    let client = TlsClient::new(BrowserProfile::Firefox120)
        .header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0")
        .header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8")
        .header("Accept-Language", "en-US,en;q=0.5")
        .header("Accept-Encoding", "gzip, deflate, br")
        .header("DNT", "1") // Privacy-focused: Do Not Track
        .timeout(30);
    
    // Include session cookies for authenticated requests
    let client = client.cookie("session_id", "your_session_token");
    
    let response = client.get("https://example-site.com/data")?;
    
    match response.status {
        200 => println!("Data retrieved successfully with browser-like privacy"),
        403 => println!("Authentication required - check session cookies"),
        _ => println!("Response: {}", response.status),
    }
    
    Ok(())
}

Расширенная модификация запросов

root@kitploit:~
use rust_tlsx::{TlsClient, BrowserProfile};
use std::collections::HashMap;

fn main() -> anyhow::Result<()> {
    // Simulate a specific browser environment
    let mut headers = HashMap::new();
    headers.insert("User-Agent".to_string(), 
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36".to_string());
    headers.insert("Sec-Fetch-Site".to_string(), "same-origin".to_string());
    headers.insert("Sec-Fetch-Mode".to_string(), "navigate".to_string());
    headers.insert("Sec-Fetch-Dest".to_string(), "document".to_string());
    
    let client = TlsClient::new(BrowserProfile::Chrome120)
        .headers(headers)
        .timeout(45);
    
    // Make request that's indistinguishable from real browser
    let response = client.get("https://api.example.com/sensitive-data")?;
    
    println!("Retrieved data with perfect browser mimicry");
    println!("Protocol used: {}", response.used_protocol);
    
    Ok(())
}

Почему RustTLSX превосходит все альтернативы

Сравнение Rust HTTP-клиентов

RustTLSX обеспечивает превосходную производительность и конфиденциальность по сравнению со всеми стандартными Rust HTTP-клиентами:

Технические преимущества производительности

Zero-Copy операции: Прямые FFI-вызовы оптимизированных C/Go библиотек устраняют ненужное копирование данных, от которого страдают чистые реализации на Rust.

Пул соединений: Интеллектуальное повторное использование TLS-соединений с точным поведением keep-alive, как в браузере, снижающее накладные расходы на рукопожатие до 80%.

Эффективность памяти: Модель владения Rust в сочетании с оптимизированными нативными библиотеками обеспечивает на 40% меньшее использование памяти по сравнению с эквивалентными решениями на Python.

Параллельная производительность: Нативная async-поддержка с правильным мультиплексированием соединений масштабируется линейно с числом ядер CPU.

Сравнение языков

По сравнению с Python-привязками tls-client:

  • В 6-10 раз быстрее обработка запросов
  • Развертывание в виде одного бинарного файла (без Python-рантайма)
  • Безопасность на этапе компиляции (без ошибок типов во время выполнения)
  • Меньшее потребление ресурсов (на 50-70% меньше памяти)

По сравнению с Go tls-client:

  • Преимущества типобезопасности (модель владения Rust)
  • Лучшая обработка ошибок (типы Result против исключений)
  • Гарантии безопасности памяти (без накладных расходов сборщика мусора)
  • Интеграция с экосистемой (бесшовный рабочий процесс Cargo/crates.io)

По сравнению с Node.js-решениями:

  • Без накладных расходов V8 (прямое нативное выполнение)
  • Предсказуемая производительность (без пауз сборщика мусора)
  • Лучшая модель конкурентности (структурированная конкурентность против колбэков)

Установка

Шаг 1: Загрузите TLS-библиотеку

Загрузите подходящий бинарный файл из релизов tls-client:

  • Windows: tls-client-windows-64-1.3.3.dll
  • Linux: tls-client-linux-ubuntu-amd64-1.3.3.so
  • macOS: tls-client-darwin-amd64-1.3.3.dylib

Поместите файл библиотеки в корень проекта, системную директорию библиотек или убедитесь, что он доступен через PATH.

Шаг 2: Добавьте зависимость

root@kitploit:~
[dependencies]
rust-tlsx = "0.1"
anyhow = "1.0"

Шаг 3: Базовая реализация

root@kitploit:~
use rust_tlsx::{TlsClient, BrowserProfile};

fn main() -> anyhow::Result<()> {
    let client = TlsClient::new(BrowserProfile::Firefox120);
    let response = client.get("https://example.com")?;
    println!("Status: {}", response.status);
    Ok(())
}

API-справочник

TlsClient

Основной интерфейс клиента для выполнения HTTP-запросов с TLS-отпечатками, как у браузера.

root@kitploit:~
impl TlsClient {
    pub fn new(profile: BrowserProfile) -> Self
    pub fn header(self, key: &str, value: &str) -> Self
    pub fn headers(self, headers: HashMap<String, String>) -> Self
    pub fn cookie(self, name: &str, value: &str) -> Self
    pub fn cookies(self, cookies: Vec<CookieInput>) -> Self
    pub fn timeout(self, seconds: i32) -> Self
    pub fn get(&self, url: &str) -> Result<Response>
    pub fn post(&self, url: &str, body: Option<String>) -> Result<Response>
}

BrowserProfile

Перечисление доступных профилей отпечатков браузеров:

root@kitploit:~
pub enum BrowserProfile {
    // Chrome versions
    Chrome103, Chrome104, Chrome105, Chrome106,
    Chrome107, Chrome108, Chrome109, Chrome120,
    
    // Firefox versions  
    Firefox102, Firefox104, Firefox105, Firefox106,
    Firefox108, Firefox120,
    
    // Safari versions
    Safari15_6_1, Safari16_0,
    SafariIpad15_6, SafariIos15_5, SafariIos15_6, SafariIos16_0,
    
    // Opera versions
    Opera89, Opera90, Opera91,
}

Response

Структура HTTP-ответа, возвращаемая методами клиента:

root@kitploit:~
pub struct Response {
    pub status: i32,                              // HTTP status code
    pub used_protocol: String,                    // Protocol used ("h2" or "http/1.1")
    pub body: String,                             // Response body content
    pub headers: HashMap<String, Vec<String>>,    // Response headers
    pub cookies: HashMap<String, String>,         // Set-Cookie values
}

Устранение неполадок

Проблемы с загрузкой библиотеки

Ошибка: Failed to load library: cannot find tls-client-*.dll

Решения:

  1. Поместите файл библиотеки в корневую директорию вашего проекта
  2. Добавьте расположение библиотеки в системный PATH
  3. Скопируйте в системную директорию библиотек (/usr/local/lib/ на Linux/macOS)
  4. Проверьте правильность архитектуры (64-бит против 32-бит)

Ответы с отказом в доступе (403)

Даже с аутентичными TLS-отпечатками могут потребоваться дополнительные факторы:

Необходимые компоненты:

  • User-Agent: Должен соответствовать выбранному профилю браузера
  • Сессионные cookie: Действительные токены доступа или сессий
  • Заголовки запросов: Полный набор заголовков, как у браузера
  • Тайминг запросов: Избегайте быстрых последовательных запросов

Полный пример:

root@kitploit:~
let client = TlsClient::new(BrowserProfile::Firefox120)
    .header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0")
    .header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
    .header("Accept-Language", "en-US,en;q=0.5")
    .header("Accept-Encoding", "gzip, deflate, br")
    .header("Connection", "keep-alive")
    .header("Upgrade-Insecure-Requests", "1");

Сборка из исходного кода

root@kitploit:~
git clone https://github.com/yourusername/rust-tlsx
cd rust-tlsx

# Download required TLS library
wget https://github.com/bogdanfinn/tls-client/releases/download/v1.3.3/tls-client-windows-64-1.3.3.dll

# Build the project
cargo build --release

# Run tests
cargo test
cargo run --example simple_request

Участие в разработке

Вклад приветствуется! Пожалуйста, ознакомьтесь с CONTRIBUTING.md для получения рекомендаций.

Области для улучшения:

  • Управление сессиями и постоянные cookie
  • Поддержка прокси (HTTP/SOCKS)
  • Создание пользовательских TLS-профилей
  • Дополнительные примеры использования
  • Поддержка async/await
  • Улучшенная обработка ошибок и диагностика

Лицензия

Лицензировано на условиях одного из:

  • Лицензия MIT
  • Лицензия Apache, версия 2.0

Базовая библиотека TLS-клиента использует лицензию BSD-4-Clause.

Связанные проекты

  • tls-client (Go) — оригинальная реализация
  • tls-client (Python) — Python-привязки
  • curl-impersonate — решение на основе cURL

Поддержка

  • Проблемы: GitHub Issues
  • Обсуждения: GitHub Discussions
  • Документация: docs.rs
Скачать инструмент
БиблиотекаTLS-отпечатокПроизводительностьУровень конфиденциальностиИспользование памяти
reqwest + rustlsОбнаруживаемая сигнатура RustБазовый уровеньНизкийВысокое
reqwest + native-tlsСистемный TLS (обнаруживаемый)Базовый уровеньНизкийВысокое
hyper + hyper-tlsОбобщенный HTTP/2БыстраяНизкийСреднее
ureqБазовый TLS 1.2/1.3МедленнаяНизкийНизкое
rust-tlsxИдеальная имитация браузерав 6 раз быстрееМаксимальныйОптимизированное