Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
RustTLSX — 🦀 Cliente HTTP sigiloso para Rust. Imita las huellas TLS de navegadores reales para solicitudes indetectables. Rápido, con seguridad de tipos y diseñado para redes de precisión. | Kitploit
Herramientas/GitHubGitHub/d0rb/rusttlsx
Evasión de IDS/IPSRecopilación de InformaciónSeguridad WebPruebas de PenetraciónPrivacidadCrawlerAnti-BotSuplantación de Huella Digital
GitHubd0rb/rusttlsx

RustTLSX

🦀 Cliente HTTP sigiloso para Rust. Imita las huellas TLS de navegadores reales para solicitudes indetectables. Rápido, con seguridad de tipos y diseñado para redes de precisión.

Ver Repositorio
hace 9 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

RustTLSX 🦀

. Un cliente HTTP furtivo avanzado para Rust.

Diseñado para desarrolladores conscientes de la privacidad que necesitan control total sobre su huella de red.

Parece un navegador. Actúa como un navegador. Escrito en Rust.

Crates.io Documentation License

Créditos y Fundamentos

Construido sobre bogdanfinn/tls-client - la biblioteca líder en huellas TLS (TLS fingerprinting) en la que confían profesionales de la seguridad de todo el mundo. Usamos las bibliotecas compartidas probadas en batalla de bogdanfinn (.dll/.so/.dylib) a través de enlaces FFI porque:

  • Años de investigación: Miles de horas perfeccionando la replicación del comportamiento TLS de los navegadores
  • Trayectoria demostrada: Utilizada en producción por empresas de seguridad y herramientas de privacidad a nivel mundial
  • Actualizaciones continuas: Actualizaciones periódicas para igualar la evolución de las huellas de los navegadores
  • Rendimiento optimizado: Implementación nativa en C/Go para máxima velocidad

RustTLSX lleva esta tecnología probada a Rust con una API ergonómica y segura en cuanto a tipos que es 6 veces más rápida que las alternativas de Python.

Por Qué Existe RustTLSX

Las aplicaciones web modernas analizan cada aspecto de tus solicitudes HTTP: no solo las cabeceras y las cookies, sino también las profundas firmas criptográficas de tu handshake TLS. Los clientes HTTP estándar de Rust (reqwest, hyper, ureq) generan patrones fácilmente detectables que identifican de inmediato el tráfico automatizado.

RustTLSX resuelve esto al ofrecer:

  • Imitación perfecta del navegador: Huellas TLS auténticas de navegadores reales
  • Control de modificación de solicitudes: Control granular sobre cabeceras, cookies y tiempos
  • Privacidad por diseño: Tu tráfico aparece como sesiones de navegador legítimas
  • Liderazgo en rendimiento: Significativamente más rápido que cualquier solución alternativa

Capacidades Principales

Privacidad y Control de Solicitudes

  • Identidad de navegador auténtica: Replicación perfecta de las firmas TLS de Chrome, Firefox, Safari y Opera
  • Manipulación de cabeceras: Control total sobre las cabeceras de solicitud, los user agents y los parámetros accept
  • Gestión de cookies: Manejo avanzado de sesiones con soporte de cookies persistentes
  • Control de tiempos: Intervalos de solicitud configurables y agrupación de conexiones (connection pooling)
  • Selección de protocolo: Soporte HTTP/1.1 y HTTP/2 con preferencias precisas como las de un navegador

Ventajas de Rendimiento

  • 6 veces más rápido que Python: Rendimiento nativo de Rust con operaciones zero-copy siempre que sea posible
  • Eficiencia de memoria: Sobrecarga mínima en comparación con los clientes HTTP estándar
  • Solicitudes concurrentes: Optimizado para escenarios de alto rendimiento (high-throughput)
  • Reutilización de conexiones: Agrupación inteligente de conexiones que imita el comportamiento de un navegador

Funciones Avanzadas

  • Más de 30 perfiles de navegador: Amplia colección de huellas reales de navegadores
  • Seguridad de tipos: Garantías completas de Rust en tiempo de compilación con un manejo integral de errores
  • Multiplataforma: Soporte para Windows, Linux y macOS
  • Omisión de protecciones: Como efecto secundario de la imitación perfecta, evita los sistemas de detección

Inicio Rápido

Requisitos Previos

Descarga la biblioteca de cliente TLS necesaria para tu plataforma desde tls-client releases:

  • 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

Coloca el archivo de la biblioteca en la raíz de tu proyecto, en la ruta de bibliotecas del sistema (/usr/local/lib/), o asegúrate de que sea accesible a través del PATH.

Instalación

Añade RustTLSX a tu Cargo.toml:

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

Uso Básico

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

Perfiles de Navegador Disponibles

RustTLSX admite más de 30 perfiles de navegador en los principales navegadores:

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

Uso Avanzado

Cabeceras y Cookies Personalizadas

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

Solicitudes POST

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

Tiempos de Espera de Solicitud

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

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

Arquitectura y Filosofía de Diseño

Por Qué Usamos las Bibliotecas Compartidas de bogdanfinn

RustTLSX está construido sobre una base de excelencia probada en lugar de reinventar la rueda. Usamos las bibliotecas compiladas de bogdanfinn (.dll/.so/.dylib) a través de FFI porque:

Inversión en investigación: Bogdanfinn ha invertido miles de horas en ingeniería inversa del comportamiento TLS de los navegadores. Replicar esta investigación llevaría años y probablemente produciría resultados inferiores.

Fiabilidad probada en batalla: Estas bibliotecas son utilizadas por importantes empresas de seguridad, herramientas de privacidad e instituciones de investigación en todo el mundo. Han sido probadas contra todos los principales sistemas de protección.

Evolución continua: Las huellas de los navegadores cambian constantemente. Las bibliotecas de Bogdanfinn reciben actualizaciones periódicas para igualar las nuevas versiones de navegadores y las actualizaciones de los sistemas de protección.

Optimización del rendimiento: La implementación nativa en C/Go está altamente optimizada para la velocidad y la eficiencia de memoria, ofreciendo un rendimiento que las implementaciones puras de Rust no pueden igualar.

Implementación Técnica

Carga dinámica en tiempo de ejecución: Las bibliotecas se cargan bajo demanda mediante FFI, eliminando la complejidad del enlazado estático y manteniendo el rendimiento.

Gestión de memoria: El modelo de ownership de Rust garantiza una interacción segura con las bibliotecas nativas, evitando fugas de memoria y errores de use-after-free comunes en las implementaciones de C/C++.

Manejo de errores: Un manejo de errores integral basado en Result proporciona diagnósticos detallados manteniendo la seguridad de tipos.

Gestión de conexiones: Agrupación y reutilización inteligente de conexiones TLS con patrones de comportamiento precisos como los de un navegador.

Componentes de Huella Gestionados

Las bibliotecas subyacentes gestionan cada aspecto del comportamiento TLS de los navegadores:

  • Orden de suites de cifrado: Replicación exacta de las preferencias de cifrado del navegador
  • Gestión de extensiones TLS: Orden y valores correctos para todas las extensiones TLS
  • Ajustes HTTP/2: Manejo de tramas y ajustes que coinciden con el comportamiento del navegador
  • Verificación de certificados: Validación de la cadena de certificados precisa como la de un navegador
  • Gestión de sesiones: Reanudación de sesiones TLS y manejo de tickets adecuados
  • Negociación ALPN: Negociación de protocolo a nivel de aplicación (ALPN) acorde a los navegadores

Ejemplos

Solicitud HTTP Básica

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

Verificación de la Huella 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(())
}

Solicitudes Autenticadas

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 Centrado en la Privacidad

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

Modificación Avanzada de Solicitudes

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

Por Qué RustTLSX Supera a Todas las Alternativas

Comparación de Clientes HTTP de Rust

RustTLSX ofrece un rendimiento y una privacidad superiores en comparación con todos los clientes HTTP estándar de Rust:

Ventajas Técnicas de Rendimiento

Operaciones zero-copy: Las llamadas FFI directas a las bibliotecas C/Go optimizadas eliminan las copias de datos innecesarias que afectan a las implementaciones puras de Rust.

Agrupación de conexiones: Reutilización inteligente de conexiones TLS con un comportamiento keep-alive preciso como el de los navegadores, reduciendo la sobrecarga del handshake hasta en un 80%.

Eficiencia de memoria: El modelo de ownership de Rust combinado con bibliotecas nativas optimizadas da como resultado un uso de memoria un 40% menor que las soluciones equivalentes en Python.

Rendimiento concurrente: El soporte nativo de async con una multiplexación adecuada de conexiones se escala linealmente con los núcleos de la CPU.

Comparación entre Lenguajes

frente a los bindings de Python para tls-client:

  • Procesamiento de solicitudes 6-10 veces más rápido
  • Despliegue de un único binario (sin runtime de Python)
  • Seguridad en tiempo de compilación (sin errores de tipo en tiempo de ejecución)
  • Menor uso de recursos (50-70% menos memoria)

frente a tls-client en Go:

  • Ventajas de seguridad de tipos (modelo de ownership de Rust)
  • Mejor manejo de errores (tipos Result frente a excepciones)
  • Garantías de seguridad de memoria (sin sobrecarga de recolección de basura)
  • Integración con el ecosistema (flujo de trabajo fluido con Cargo/crates.io)

frente a las soluciones de Node.js:

  • Sin sobrecarga de V8 (ejecución nativa directa)
  • Rendimiento predecible (sin pausas de recolección de basura)
  • Mejor modelo de concurrencia (concurrencia estructurada frente a callbacks)

Instalación

Paso 1: Descargar la Biblioteca TLS

Descarga el binario apropiado desde tls-client releases:

  • 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

Coloca el archivo de la biblioteca en la raíz de tu proyecto, en el directorio de bibliotecas del sistema, o asegúrate de que sea accesible a través del PATH.

Paso 2: Añadir la Dependencia

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

Paso 3: Implementación Básica

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

Referencia de la API

TlsClient

La interfaz principal del cliente para realizar solicitudes HTTP con huellas TLS similares a las de un navegador.

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

Enumeración de los perfiles de huella de navegador 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

Estructura de respuesta HTTP devuelta por los métodos del cliente:

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
}

Solución de Problemas

Problemas de Carga de la Biblioteca

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

Soluciones:

  1. Coloca el archivo de la biblioteca en el directorio raíz de tu proyecto
  2. Añade la ubicación de la biblioteca al PATH de tu sistema
  3. Cópiala al directorio de bibliotecas del sistema (/usr/local/lib/ en Linux/macOS)
  4. Verifica la arquitectura correcta (64 bits frente a 32 bits)

Respuestas de Acceso Denegado (403)

Incluso con huellas TLS auténticas, pueden ser necesarios factores adicionales:

Componentes Requeridos:

  • User-Agent: Debe coincidir con el perfil de navegador seleccionado
  • Cookies de sesión: Tokens de clearance o sesión válidos
  • Cabeceras de solicitud: Conjunto completo de cabeceras similares a las de un navegador
  • Tiempos de solicitud: Evita solicitudes sucesivas rápidas

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

Compilar desde el Código Fuente

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

Contribuciones

¡Las contribuciones son bienvenidas! Consulta CONTRIBUTING.md para conocer las pautas.

Áreas de mejora:

  • Gestión de sesiones y cookies persistentes
  • Soporte de proxy (HTTP/SOCKS)
  • Creación de perfiles TLS personalizados
  • Ejemplos de uso adicionales
  • Soporte de async/await
  • Manejo de errores y diagnósticos mejorados

Licencia

Licenciado bajo cualquiera de las siguientes:

  • Licencia MIT
  • Licencia Apache, versión 2.0

La biblioteca de cliente TLS subyacente utiliza la licencia BSD-4-Clause.

Proyectos Relacionados

  • tls-client (Go) - Implementación original
  • tls-client (Python) - Enlaces de Python (Python bindings)
  • curl-impersonate - Solución basada en cURL

Soporte

  • Problemas: GitHub Issues
  • Discusiones: GitHub Discussions
  • Documentación: docs.rs
Descargar herramienta
BibliotecaHuella TLSRendimientoNivel de PrivacidadUso de Memoria
reqwest + rustlsFirma Rust detectableLínea baseBajaAlto
reqwest + native-tlsTLS del sistema (detectable)Línea baseBajaAlto
hyper + hyper-tlsHTTP/2 genéricoRápidoBajaMedio
ureqTLS 1.2/1.3 básicoLentoBajaBajo
rust-tlsxImitación perfecta de navegador6 veces más rápidoMáximoOptimizado