Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
RustTLSX — 🦀 Client HTTP stealth per Rust. Imita le impronte TLS reali dei browser per richieste non rilevabili. Veloce, type-safe e progettato per un networking di precisione. | Kitploit
Strumenti/GitHubGitHub/d0rb/rusttlsx
Evasione IDS/IPSRaccolta InformazioniSicurezza WebPenetration TestingPrivacyCrawlerAnti-BotSpoofing dell'Impronta Digitale
GitHubd0rb/rusttlsx

RustTLSX

🦀 Client HTTP stealth per Rust. Imita le impronte TLS reali dei browser per richieste non rilevabili. Veloce, type-safe e progettato per un networking di precisione.

Vedi Repository
9 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

RustTLSX 🦀

. Un client HTTP stealth avanzato per Rust.

Progettato per gli sviluppatori attenti alla privacy che necessitano di un controllo completo sulla propria impronta di rete.

Sembra un browser. Si comporta come un browser. Scritto in Rust.

Crates.io Documentation License

Crediti e Fondamenta

Costruito su bogdanfinn/tls-client - la libreria leader del settore per l'impronta TLS, considerata affidabile dai professionisti della sicurezza in tutto il mondo. Utilizziamo le librerie condivise collaudate sul campo di bogdanfinn (.dll/.so/.dylib) tramite binding FFI perché:

  • Anni di Ricerca: Migliaia di ore per perfezionare la replica del comportamento TLS dei browser
  • Track Record Comprovato: Utilizzata in produzione da aziende di sicurezza e strumenti per la privacy a livello globale
  • Aggiornamenti Continui: Aggiornamenti regolari per corrispondere alle impronte dei browser in evoluzione
  • Prestazioni Ottimizzate: Implementazione nativa in C/Go per la massima velocità

RustTLSX porta questa tecnologia comprovata in Rust con un'API type-safe ed ergonomica che è 6 volte più veloce delle alternative Python.

Perché Esiste RustTLSX

Le applicazioni web moderne analizzano ogni aspetto delle tue richieste HTTP - non solo header e cookie, ma anche le profonde firme crittografiche dell'handshake TLS. I client HTTP standard di Rust (reqwest, hyper, ureq) generano pattern facilmente rilevabili che identificano immediatamente il traffico automatizzato.

RustTLSX risolve questo problema fornendo:

  • Perfetta Mimica del Browser: Impronte TLS autentiche provenienti da browser reali
  • Controllo sulla Modifica delle Richieste: Controllo granulare su header, cookie e temporizzazione
  • Privacy by Design: Il tuo traffico appare come sessioni browser legittime
  • Leadership nelle Prestazioni: Significativamente più veloce di qualsiasi soluzione alternativa

Funzionalità Principali

Privacy e Controllo delle Richieste

  • Identità Browser Autentica: Perfetta replica delle firme TLS di Chrome, Firefox, Safari e Opera
  • Manipolazione degli Header: Controllo completo su header, user agent e parametri accept
  • Gestione dei Cookie: Gestione avanzata delle sessioni con supporto ai cookie persistenti
  • Controllo della Temporizzazione: Intervalli di richiesta configurabili e connection pooling
  • Selezione del Protocollo: Supporto HTTP/1.1 e HTTP/2 con preferenze accurate rispetto ai browser

Vantaggi in Termini di Prestazioni

  • 6 volte più veloce di Python: Prestazioni native Rust con operazioni zero-copy dove possibile
  • Efficiente in Termini di Memoria: Sovraccarico minimo rispetto ai client HTTP standard
  • Richieste Concorrenti: Ottimizzato per scenari ad alta produttività
  • Riutilizzo delle Connessioni: Connection pooling intelligente che rispecchia il comportamento dei browser

Funzionalità Avanzate

  • Oltre 30 Profili Browser: Vasta collezione di impronte browser reali
  • Type Safety: Garanzie complete a tempo di compilazione di Rust con gestione degli errori esaustiva
  • Cross-Platform: Supporto per Windows, Linux e macOS
  • Bypass delle Protezioni: Come effetto collaterale della perfetta mimica, aggira i sistemi di rilevamento

Avvio Rapido

Prerequisiti

Scarica la libreria client TLS richiesta per la tua piattaforma dalle release di 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

Posiziona il file della libreria nella root del tuo progetto, nel percorso delle librerie di sistema (/usr/local/lib/), oppure assicurati che sia accessibile tramite PATH.

Installazione

Aggiungi RustTLSX al tuo Cargo.toml:

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

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

Profili Browser Disponibili

RustTLSX supporta oltre 30 profili browser dei principali browser:

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

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

// Versioni Safari
BrowserProfile::Safari15_6_1
BrowserProfile::Safari16_0
BrowserProfile::SafariIos16_0

// Opera e altri
BrowserProfile::Opera89
BrowserProfile::Opera90

Utilizzo Avanzato

Header e Cookie Personalizzati

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

Richieste POST

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

Timeout delle Richieste

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

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

Architettura e Filosofia di Progettazione

Perché Utilizziamo le Librerie Condivise di bogdanfinn

RustTLSX è costruito su fondamenta di eccellenza comprovata piuttosto che reinventare la ruota. Utilizziamo le librerie compilate di bogdanfinn (.dll/.so/.dylib) tramite FFI perché:

Investimento nella Ricerca: Bogdanfinn ha investito migliaia di ore nel reverse engineering del comportamento TLS dei browser. Replicare questa ricerca richiederebbe anni e produrrebbe probabilmente risultati inferiori.

Affidabilità Collaudata sul Campo: Queste librerie sono utilizzate da importanti aziende di sicurezza, strumenti per la privacy e istituti di ricerca in tutto il mondo. Sono state testate contro ogni principale sistema di protezione.

Evoluzione Continua: Le impronte dei browser cambiano costantemente. Le librerie di Bogdanfinn ricevono aggiornamenti regolari per corrispondere alle nuove versioni dei browser e agli aggiornamenti dei sistemi di protezione.

Ottimizzazione delle Prestazioni: L'implementazione nativa in C/Go è fortemente ottimizzata per velocità ed efficienza della memoria, offrendo prestazioni che le implementazioni pure in Rust non possono eguagliare.

Implementazione Tecnica

Caricamento Dinamico a Runtime: Le librerie vengono caricate su richiesta tramite FFI, eliminando la complessità del linking statico pur mantenendo le prestazioni.

Gestione della Memoria: Il modello di ownership di Rust garantisce un'interazione sicura con le librerie native, prevenendo memory leak e bug use-after-free comuni nelle implementazioni C/C++.

Gestione degli Errori: Una gestione degli errori completa basata su Result fornisce diagnostiche dettagliate pur mantenendo la type safety.

Gestione delle Connessioni: Pooling e riutilizzo intelligente delle connessioni TLS con pattern di comportamento accurati rispetto ai browser.

Componenti dell'Impronta Gestiti

Le librerie sottostanti gestiscono ogni aspetto del comportamento TLS del browser:

  • Ordinamento delle Cipher Suite: Replica esatta delle preferenze delle cipher dei browser
  • Gestione delle Estensioni TLS: Ordinamento e valori corretti per tutte le estensioni TLS
  • Impostazioni HTTP/2: Gestione dei frame e impostazioni che corrispondono al comportamento dei browser
  • Verifica dei Certificati: Validazione della catena di certificati accurata rispetto ai browser
  • Gestione delle Sessioni: Corretta ripresa delle sessioni TLS e gestione dei ticket
  • Negoziazione ALPN: Application-Layer Protocol Negotiation che corrisponde ai browser

Esempi

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

Verifica dell'Impronta 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!("Analisi dell'impronta TLS:\n{}", response.body);
    
    Ok(())
}

Richieste Autenticate

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!("Successo: {}", response.body),
        401 => eprintln!("Autenticazione fallita"),
        _ => eprintln!("Richiesta fallita con stato {}: {}", response.status, response.body),
    }
    
    Ok(())
}

Web Scraping Orientato alla Privacy

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

fn main() -> anyhow::Result<()> {
    // Crea un client che appare come un vero browser Firefox
    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") // Orientato alla privacy: Do Not Track
        .timeout(30);
    
    // Includi i cookie di sessione per le richieste autenticate
    let client = client.cookie("session_id", "your_session_token");
    
    let response = client.get("https://example-site.com/data")?;
    
    match response.status {
        200 => println!("Dati recuperati con successo con una privacy simile a quella di un browser"),
        403 => println!("Autenticazione richiesta - controlla i cookie di sessione"),
        _ => println!("Risposta: {}", response.status),
    }
    
    Ok(())
}

Modifica Avanzata delle Richieste

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

fn main() -> anyhow::Result<()> {
    // Simula uno specifico ambiente browser
    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);
    
    // Effettua una richiesta indistinguibile da un browser reale
    let response = client.get("https://api.example.com/sensitive-data")?;
    
    println!("Dati recuperati con una perfetta mimica del browser");
    println!("Protocollo utilizzato: {}", response.used_protocol);
    
    Ok(())
}

Perché RustTLSX Supera Ogni Alternativa

Confronto con i Client HTTP di Rust

RustTLSX offre prestazioni e privacy superiori rispetto a tutti i client HTTP standard di Rust:

Vantaggi Tecnici in Termini di Prestazioni

Operazioni Zero-Copy: Chiamate FFI dirette a librerie C/Go ottimizzate eliminano la copia superflua dei dati che affligge le implementazioni pure in Rust.

Connection Pooling: Riutilizzo intelligente delle connessioni TLS con comportamento keep-alive accurato rispetto ai browser, riducendo l'overhead dell'handshake fino all'80%.

Efficienza della Memoria: Il modello di ownership di Rust combinato con librerie native ottimizzate comporta un utilizzo della memoria inferiore del 40% rispetto a soluzioni Python equivalenti.

Prestazioni Concorrenti: Supporto nativo async con un corretto multiplexing delle connessioni che scala linearmente con i core della CPU.

Confronto tra Linguaggi

vs binding Python di tls-client:

  • Elaborazione delle richieste da 6 a 10 volte più veloce
  • Deploy di un singolo binario (niente runtime Python)
  • Sicurezza a tempo di compilazione (niente errori di tipo a runtime)
  • Minor utilizzo delle risorse (dal 50 al 70% di memoria in meno)

vs tls-client in Go:

  • Vantaggi in termini di type safety (modello di ownership di Rust)
  • Migliore gestione degli errori (tipi Result vs eccezioni)
  • Garanzie di sicurezza della memoria (nessun overhead del garbage collector)
  • Integrazione con l'ecosistema (flusso di lavoro Cargo/crates.io senza interruzioni)

vs soluzioni Node.js:

  • Nessun overhead V8 (esecuzione nativa diretta)
  • Prestazioni prevedibili (nessuna pausa del garbage collector)
  • Miglior modello di concorrenza (concorrenza strutturata vs callback)

Installazione

Passo 1: Scarica la Libreria TLS

Scarica il binario appropriato dalle release di 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

Posiziona il file della libreria nella root del tuo progetto, nella directory delle librerie di sistema, oppure assicurati che sia accessibile tramite PATH.

Passo 2: Aggiungi la Dipendenza

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

Passo 3: Implementazione 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(())
}

Riferimento API

TlsClient

L'interfaccia client principale per effettuare richieste HTTP con impronte TLS simili a quelle dei browser.

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

Enumerazione dei profili di impronta browser disponibili:

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

Response

Struttura della risposta HTTP restituita dai metodi del client:

root@kitploit:~
pub struct Response {
    pub status: i32,                              // Codice di stato HTTP
    pub used_protocol: String,                    // Protocollo utilizzato ("h2" o "http/1.1")
    pub body: String,                             // Contenuto del corpo della risposta
    pub headers: HashMap<String, Vec<String>>,    // Header della risposta
    pub cookies: HashMap<String, String>,         // Valori Set-Cookie
}

Risoluzione dei Problemi

Problemi di Caricamento della Libreria

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

Soluzioni:

  1. Posiziona il file della libreria nella directory root del tuo progetto
  2. Aggiungi la posizione della libreria al PATH di sistema
  3. Copia nella directory delle librerie di sistema (/usr/local/lib/ su Linux/macOS)
  4. Verifica l'architettura corretta (64-bit vs 32-bit)

Risposte Access Denied (403)

Anche con impronte TLS autentiche, potrebbero essere richiesti fattori aggiuntivi:

Componenti Richiesti:

  • User-Agent: Deve corrispondere al profilo browser selezionato
  • Cookie di Sessione: Token di clearance o sessione validi
  • Header della Richiesta: Set completo di header simili a quelli di un browser
  • Temporizzazione delle Richieste: Evita richieste rapide e successive

Esempio Completo:

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

Compilazione dal Codice Sorgente

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

# Scarica la libreria TLS richiesta
wget https://github.com/bogdanfinn/tls-client/releases/download/v1.3.3/tls-client-windows-64-1.3.3.dll

# Compila il progetto
cargo build --release

# Esegui i test
cargo test
cargo run --example simple_request

Contribuire

I contributi sono benvenuti! Consulta CONTRIBUTING.md per le linee guida.

Aree di miglioramento:

  • Gestione delle sessioni e cookie persistenti
  • Supporto proxy (HTTP/SOCKS)
  • Creazione di profili TLS personalizzati
  • Esempi di utilizzo aggiuntivi
  • Supporto async/await
  • Gestione degli errori e diagnostica migliorate

Licenza

Concesso in licenza con una delle seguenti:

  • Licenza MIT
  • Apache License, Versione 2.0

La libreria client TLS sottostante utilizza la licenza BSD-4-Clause.

Progetti Correlati

  • tls-client (Go) - Implementazione originale
  • tls-client (Python) - Binding Python
  • curl-impersonate - Soluzione basata su cURL

Supporto

  • Problemi: GitHub Issues
  • Discussioni: GitHub Discussions
  • Documentazione: docs.rs
Scarica lo strumento
LibreriaImpronta TLSPrestazioniLivello di PrivacyUtilizzo di Memoria
reqwest + rustlsFirma Rust rilevabileBaselineBassaAlto
reqwest + native-tlsTLS di sistema (rilevabile)BaselineBassaAlto
hyper + hyper-tlsHTTP/2 genericoVeloceBassaMedio
ureqTLS 1.2/1.3 di baseLentoBassaBasso
rust-tlsxPerfetta mimica del browser6 volte più veloceMassimaOttimizzato