Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
RustTLSX — 🦀 Client HTTP furtif pour Rust . imite les empreintes TLS de navigateurs réels pour des requêtes indétectables. Rapide, type-safe et conçu pour une mise en réseau de précision. | Kitploit
Outils/GitHubGitHub/d0rb/rusttlsx
Évasion IDS/IPSCollecte d'InformationsSécurité WebTests d'IntrusionProtection de la Vie PrivéeCrawlerAnti-BotUsurpation d'Empreinte Numérique
GitHubd0rb/rusttlsx

RustTLSX

🦀 Client HTTP furtif pour Rust . imite les empreintes TLS de navigateurs réels pour des requêtes indétectables. Rapide, type-safe et conçu pour une mise en réseau de précision.

Voir le dépôt
il y a 9 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

RustTLSX 🦀

. Un client HTTP furtif avancé pour Rust.

Conçu pour les développeurs soucieux de leur confidentialité qui ont besoin d'un contrôle total sur leur empreinte réseau.

Ressemble à un navigateur. Se comporte comme un navigateur. Écrit en Rust.

Crates.io Documentation License

Crédits et fondements

Construit sur bogdanfinn/tls-client — la bibliothèque de référence en matière d'empreintes TLS, plébiscitée par les professionnels de la sécurité du monde entier. Nous utilisons les bibliothèques partagées éprouvées de bogdanfinn (.dll/.so/.dylib) via des liaisons FFI parce que :

  • Des années de recherche : Des milliers d'heures pour perfectionner la réplication du comportement TLS des navigateurs
  • Un parcours éprouvé : Utilisées en production par des sociétés de sécurité et des outils de confidentialité dans le monde entier
  • Mises à jour continues : Des mises à jour régulières pour suivre l'évolution des empreintes des navigateurs
  • Performances optimisées : Implémentation native en C/Go pour une vitesse maximale

RustTLSX apporte cette technologie éprouvée à Rust avec une API type-safe et ergonomique, 6 fois plus rapide que les alternatives Python.

Pourquoi RustTLSX existe

Les applications web modernes analysent chaque aspect de vos requêtes HTTP — non seulement les en-têtes et les cookies, mais aussi les signatures cryptographiques profondes de votre négociation TLS. Les clients HTTP standard de Rust (reqwest, hyper, ureq) génèrent des modèles facilement détectables qui identifient immédiatement le trafic automatisé.

RustTLSX résout ce problème en offrant :

  • Imitation parfaite du navigateur : Des empreintes TLS authentiques provenant de vrais navigateurs
  • Contrôle de la modification des requêtes : Un contrôle fin sur les en-têtes, les cookies et le minutage
  • Confidentialité par conception : Votre trafic apparaît comme des sessions de navigation légitimes
  • Leadership en matière de performances : Significativement plus rapide que toute solution alternative

Fonctionnalités principales

Confidentialité et contrôle des requêtes

  • Identité de navigateur authentique : Réplication parfaite des signatures TLS de Chrome, Firefox, Safari et Opera
  • Manipulation des en-têtes : Contrôle complet sur les en-têtes de requête, les user agents et les paramètres d'acceptation
  • Gestion des cookies : Gestion avancée des sessions avec prise en charge des cookies persistants
  • Contrôle du minutage : Intervalles de requête configurables et mise en commun des connexions
  • Sélection du protocole : Prise en charge de HTTP/1.1 et HTTP/2 avec des préférences conformes aux navigateurs

Avantages en termes de performances

  • 6 fois plus rapide que Python : Performances natives de Rust avec des opérations zéro-copie lorsque c'est possible
  • Efficacité mémoire : Surcoût minimal par rapport aux clients HTTP standard
  • Requêtes simultanées : Optimisé pour les scénarios à fort débit
  • Réutilisation des connexions : Mise en commun intelligente des connexions conforme au comportement des navigateurs

Fonctionnalités avancées

  • Plus de 30 profils de navigateurs : Vaste collection d'empreintes de navigateurs réels
  • Sécurité de type : Garanties complètes de compilation de Rust avec une gestion exhaustive des erreurs
  • Multi-plateforme : Prise en charge de Windows, Linux et macOS
  • Contournement des protections : Effet secondaire de l'imitation parfaite, contourne les systèmes de détection

Démarrage rapide

Prérequis

Téléchargez la bibliothèque cliente TLS requise pour votre plateforme depuis les versions de 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

Placez le fichier de bibliothèque dans la racine de votre projet, dans le chemin des bibliothèques système (/usr/local/lib/), ou assurez-vous qu'il est accessible via le PATH.

Installation

Ajoutez RustTLSX à votre Cargo.toml :

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

Utilisation de base

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

Profils de navigateurs disponibles

RustTLSX prend en charge plus de 30 profils de navigateurs couvrant les principaux navigateurs :

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

Utilisation avancée

En-têtes et cookies personnalisés

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")?;

Requêtes POST

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

Délais d'attente des requêtes

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

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

Architecture et philosophie de conception

Pourquoi nous utilisons les bibliothèques partagées de bogdanfinn

RustTLSX repose sur une fondation d'excellence prouvée plutôt que de réinventer la roue. Nous utilisons les bibliothèques compilées de bogdanfinn (.dll/.so/.dylib) via FFI parce que :

Investissement en recherche : Bogdanfinn a investi des milliers d'heures dans la rétro-ingénierie du comportement TLS des navigateurs. Répliquer cette recherche prendrait des années et produirait probablement des résultats inférieurs.

Fiabilité éprouvée : Ces bibliothèques sont utilisées par les grandes sociétés de sécurité, les outils de protection de la vie privée et les instituts de recherche du monde entier. Elles ont été testées contre tous les principaux systèmes de protection.

Évolution continue : Les empreintes des navigateurs changent constamment. Les bibliothèques de bogdanfinn reçoivent des mises à jour régulières pour correspondre aux nouvelles versions de navigateurs et aux mises à jour des systèmes de protection.

Optimisation des performances : L'implémentation native en C/Go est fortement optimisée pour la vitesse et l'efficacité mémoire, offrant des performances que les implémentations purement Rust ne peuvent pas égaler.

Implémentation technique

Chargement dynamique à l'exécution : Les bibliothèques sont chargées à la demande via FFI, éliminant la complexité de la liaison statique tout en conservant les performances.

Gestion de la mémoire : Le modèle de propriété de Rust garantit une interaction sûre avec les bibliothèques natives, empêchant les fuites de mémoire et les bugs d'utilisation après libération courants dans les implémentations C/C++.

Gestion des erreurs : Une gestion complète des erreurs basée sur Result fournit des diagnostics détaillés tout en maintenant la sécurité de type.

Gestion des connexions : Mise en commun intelligente et réutilisation des connexions TLS avec des modèles de comportement conformes aux navigateurs.

Composants d'empreinte gérés

Les bibliothèques sous-jacentes gèrent tous les aspects du comportement TLS des navigateurs :

  • Ordre des suites de chiffrement : Réplication exacte des préférences de chiffrement des navigateurs
  • Gestion des extensions TLS : Ordre et valeurs corrects pour toutes les extensions TLS
  • Paramètres HTTP/2 : Gestion des trames et paramètres conformes au comportement des navigateurs
  • Vérification des certificats : Validation de la chaîne de certificats conforme aux navigateurs
  • Gestion des sessions : Reprise de session TLS et gestion des tickets conformes
  • Négociation ALPN : Négociation du protocole de couche applicative conforme aux navigateurs

Exemples

Requête HTTP de base

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

Vérification de l'empreinte 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(())
}

Requêtes authentifiées

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

Web scraping axé sur la confidentialité

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

Modification avancée des requêtes

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

Pourquoi RustTLSX surpasse toutes les alternatives

Comparaison des clients HTTP Rust

RustTLSX offre des performances et une confidentialité supérieures à tous les clients HTTP Rust standard :

Avantages techniques en matière de performances

Opérations zéro-copie : Les appels FFI directs aux bibliothèques C/Go optimisées éliminent les copies de données inutiles qui affectent les implémentations purement Rust.

Mise en commun des connexions : Réutilisation intelligente des connexions TLS avec un comportement keep-alive conforme aux navigateurs, réduisant le surcoût de la négociation TLS jusqu'à 80 %.

Efficacité mémoire : Le modèle de propriété de Rust combiné aux bibliothèques natives optimisées permet une utilisation mémoire inférieure de 40 % à celle des solutions Python équivalentes.

Performances simultanées : La prise en charge native de l'asynchrone avec un multiplexage approprié des connexions évolue linéairement avec le nombre de cœurs CPU.

Comparaison des langages

vs les liaisons Python de tls-client :

  • Traitement des requêtes 6 à 10 fois plus rapide
  • Déploiement en binaire unique (pas de runtime Python)
  • Sécurité à la compilation (pas d'erreurs de type à l'exécution)
  • Consommation de ressources réduite (50 à 70 % de mémoire en moins)

vs tls-client en Go :

  • Avantages de la sécurité de type (modèle de propriété de Rust)
  • Meilleure gestion des erreurs (types Result vs exceptions)
  • Garanties de sécurité mémoire (pas de surcoût de ramasse-miettes)
  • Intégration à l'écosystème (flux de travail Cargo/crates.io transparent)

vs les solutions Node.js :

  • Pas de surcoût V8 (exécution native directe)
  • Performances prévisibles (pas de pauses du ramasse-miettes)
  • Meilleur modèle de concurrence (concurrence structurée vs callbacks)

Installation

Étape 1 : Télécharger la bibliothèque TLS

Téléchargez le binaire approprié depuis les versions de 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

Placez le fichier de bibliothèque dans la racine de votre projet, dans le répertoire des bibliothèques système, ou assurez-vous qu'il est accessible via le PATH.

Étape 2 : Ajouter la dépendance

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

Étape 3 : Implémentation de base

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

Référence de l'API

TlsClient

La principale interface client pour effectuer des requêtes HTTP avec des empreintes TLS semblables à celles des navigateurs.

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

Énumération des profils d'empreintes de navigateur disponibles :

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

Structure de réponse HTTP renvoyée par les méthodes du client :

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
}

Dépannage

Problèmes de chargement de la bibliothèque

Erreur : Failed to load library: cannot find tls-client-*.dll

Solutions :

  1. Placez le fichier de bibliothèque dans le répertoire racine de votre projet
  2. Ajoutez l'emplacement de la bibliothèque au PATH de votre système
  3. Copiez-le dans le répertoire des bibliothèques système (/usr/local/lib/ sur Linux/macOS)
  4. Vérifiez la bonne architecture (64 bits vs 32 bits)

Réponses d'accès refusé (403)

Même avec des empreintes TLS authentiques, des facteurs supplémentaires peuvent être nécessaires :

Composants requis :

  • User-Agent : Doit correspondre au profil de navigateur sélectionné
  • Cookies de session : Des jetons de clearance ou de session valides
  • En-têtes de requête : Ensemble complet d'en-têtes semblables à ceux d'un navigateur
  • Minutage des requêtes : Évitez les requêtes successives rapides

Exemple complet :

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");

Compilation à partir des sources

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

Contribution

Les contributions sont les bienvenues ! Veuillez consulter CONTRIBUTING.md pour les directives.

Domaines d'amélioration :

  • Gestion des sessions et cookies persistants
  • Prise en charge des proxys (HTTP/SOCKS)
  • Création de profils TLS personnalisés
  • Exemples d'utilisation supplémentaires
  • Prise en charge d'async/await
  • Gestion améliorée des erreurs et des diagnostics

Licence

Distribué sous l'une ou l'autre des licences suivantes :

  • Licence MIT
  • Licence Apache, version 2.0

La bibliothèque cliente TLS sous-jacente utilise la licence BSD-4-Clause.

Projets associés

  • tls-client (Go) - Implémentation originale
  • tls-client (Python) - Liaisons Python
  • curl-impersonate - Solution basée sur cURL

Assistance

  • Problèmes : GitHub Issues
  • Discussions : GitHub Discussions
  • Documentation : docs.rs
Télécharger l’outil
BibliothèqueEmpreinte TLSPerformancesNiveau de confidentialitéUtilisation mémoire
reqwest + rustlsSignature Rust détectableRéférenceFaibleÉlevée
reqwest + native-tlsTLS système (détectable)RéférenceFaibleÉlevée
hyper + hyper-tlsHTTP/2 génériqueRapideFaibleMoyenne
ureqTLS 1.2/1.3 basiqueLentFaibleFaible
rust-tlsxImitation parfaite du navigateur6x plus rapideMaximumOptimisée