Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
RustTLSX — 🦀 Rust용 스텔스 HTTP 클라이언트. 감지되지 않는 요청을 위해 실제 브라우저 TLS 지문을 모방합니다. 빠르고, 타입 안전하며, 정밀한 네트워킹을 위해 설계되었습니다. | Kitploit
도구/GitHubGitHub/d0rb/rusttlsx
IDS/IPS EvasionInformation GatheringWeb SecurityPenetration TestingPrivacyCrawlerAnti-BotFingerprint Spoofing
GitHubd0rb/rusttlsx

RustTLSX

🦀 Rust용 스텔스 HTTP 클라이언트. 감지되지 않는 요청을 위해 실제 브라우저 TLS 지문을 모방합니다. 빠르고, 타입 안전하며, 정밀한 네트워킹을 위해 설계되었습니다.

저장소 보기
9개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

RustTLSX 🦀

. Rust를 위한 고급 스텔스 HTTP 클라이언트입니다.

네트워크 핑거프린트를 완벽하게 제어해야 하는 프라이버시 중시 개발자를 위해 제작되었습니다.

브라우저처럼 보입니다. 브라우저처럼 동작합니다. Rust로 작성되었습니다.

Crates.io Documentation License

크레딧 및 기반

bogdanfinn/tls-client 기반으로 구축됨 - 전 세계 보안 전문가들이 신뢰하는 업계 최고의 TLS 핑거프린팅 라이브러리입니다. FFI 바인딩을 통해 bogdanfinn의 전투 검증된 공유 라이브러리(.dll/.so/.dylib)를 사용하는 이유는 다음과 같습니다:

  • 수년간의 연구: 브라우저 TLS 동작 복제를 완성하기 위한 수천 시간의 노력
  • 입증된 실적: 전 세계 보안 기업과 프라이버시 도구에서 프로덕션 환경으로 사용 중
  • 지속적인 업데이트: 진화하는 브라우저 핑거프린트에 맞춘 정기 업데이트
  • 성능 최적화: 최대 속도를 위한 네이티브 C/Go 구현

RustTLSX는 이 검증된 기술을 Rust에 적용하여 Python 대안보다 6배 빠른 타입 세이프하고 사용하기 편리한 API를 제공합니다.

RustTLSX가 필요한 이유

최신 웹 애플리케이션은 HTTP 요청의 모든 측면을 분석합니다. 헤더와 쿠키뿐만 아니라 TLS 핸드셰이크의 심층 암호화 서명까지 분석합니다. 표준 Rust HTTP 클라이언트(reqwest, hyper, ureq)는 자동화된 트래픽을 즉시 식별하는 쉽게 탐지 가능한 패턴을 생성합니다.

RustTLSX는 다음을 제공하여 이 문제를 해결합니다:

  • 완벽한 브라우저 모방: 실제 브라우저의 정품 TLS 핑거프린트
  • 요청 수정 제어: 헤더, 쿠키 및 타이밍에 대한 세밀한 제어
  • 프라이버시 중심 설계: 트래픽이 합법적인 브라우저 세션으로 표시됨
  • 성능 우위: 대체 솔루션보다 훨씬 빠름

핵심 기능

프라이버시 및 요청 제어

  • 실제 브라우저 신원: Chrome, Firefox, Safari 및 Opera TLS 서명의 완벽한 복제
  • 헤더 조작: 요청 헤더, 사용자 에이전트 및 accept 파라미터에 대한 완전한 제어
  • 쿠키 관리: 영구 쿠키 지원을 통한 고급 세션 처리
  • 타이밍 제어: 구성 가능한 요청 간격 및 연결 풀링
  • 프로토콜 선택: 브라우저와 정확히 일치하는 기본 설정으로 HTTP/1.1 및 HTTP/2 지원

성능 이점

  • Python보다 6배 빠름: 가능한 경우 제로카피 연산을 사용하는 네이티브 Rust 성능
  • 메모리 효율성: 표준 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를 통해 액세스할 수 있는지 확인하세요.

설치

Cargo.toml에 RustTLSX를 추가하세요:

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

고급 사용법

사용자 정의 헤더 및 쿠키

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는 바퀴를 재발명하는 대신 입증된 우수성의 기반 위에 구축되었습니다. FFI를 통해 bogdanfinn의 컴파일된 라이브러리(.dll/.so/.dylib)를 사용하는 이유는 다음과 같습니다:

연구 투자: Bogdanfinn은 브라우저 TLS 동작을 리버스 엔지니어링하는 데 수천 시간을 투자했습니다. 이 연구를 재현하려면 수년이 걸리고 결과물의 품질도 떨어질 가능성이 높습니다.

전투 검증된 신뢰성: 이 라이브러리는 전 세계 주요 보안 기업, 프라이버시 도구 및 연구 기관에서 사용됩니다. 모든 주요 보호 시스템에 대해 테스트되었습니다.

지속적인 진화: 브라우저 핑거프린트는 끊임없이 변화합니다. Bogdanfinn의 라이브러리는 새로운 브라우저 버전과 보호 시스템 업데이트에 맞춰 정기적으로 업데이트됩니다.

성능 최적화: 네이티브 C/Go 구현은 속도와 메모리 효율성을 위해 대폭 최적화되어 순수 Rust 구현이 따라올 수 없는 성능을 제공합니다.

기술 구현

런타임 동적 로딩: FFI를 사용하여 라이브러리를 온디맨드로 로드하므로 정적 링킹의 복잡성을 제거하면서 성능을 유지합니다.

메모리 관리: Rust의 소유권 모델은 네이티브 라이브러리와의 안전한 상호 작용을 보장하여 C/C++ 구현에서 흔한 메모리 누수 및 use-after-free 버그를 방지합니다.

오류 처리: 포괄적인 Result 기반 오류 처리는 타입 안전성을 유지하면서 상세한 진단 정보를 제공합니다.

연결 관리: 브라우저와 정확히 일치하는 동작 패턴으로 TLS 연결을 지능적으로 풀링하고 재사용합니다.

처리되는 핑거프린트 구성 요소

기반 라이브러리는 브라우저 TLS 동작의 모든 측면을 관리합니다:

  • 암호화 스위트 순서: 브라우저 암호화 기본 설정의 정확한 복제
  • TLS 확장 처리: 모든 TLS 확장에 대한 올바른 순서 및 값
  • HTTP/2 설정: 브라우저 동작과 일치하는 프레임 처리 및 설정
  • 인증서 검증: 브라우저와 정확히 일치하는 인증서 체인 검증
  • 세션 관리: 올바른 TLS 세션 재개 및 티켓 처리
  • ALPN 협상: 브라우저와 일치하는 ALPN(Application-Layer Protocol Negotiation)

예제

기본 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 클라이언트보다 우수한 성능과 프라이버시를 제공합니다:

기술적 성능 이점

제로카피 연산: 최적화된 C/Go 라이브러리에 대한 직접 FFI 호출은 순수 Rust 구현에서 문제가 되는 불필요한 데이터 복사를 제거합니다.

연결 풀링: 브라우저와 정확히 일치하는 keep-alive 동작으로 TLS 연결을 지능적으로 재사용하여 핸드셰이크 오버헤드를 최대 80%까지 줄입니다.

메모리 효율성: Rust의 소유권 모델과 최적화된 네이티브 라이브러리의 결합으로 동급 Python 솔루션보다 메모리 사용량이 40% 낮습니다.

동시성 성능: 적절한 연결 멀티플렉싱을 갖춘 네이티브 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

브라우저와 유사한 TLS 핑거프린트로 HTTP 요청을 수행하기 위한 기본 클라이언트 인터페이스입니다.

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. 시스템 라이브러리 디렉터리(Linux/macOS의 /usr/local/lib/)에 복사하세요
  4. 올바른 아키텍처(64비트 vs 32비트)인지 확인하세요

액세스 거부(403) 응답

정품 TLS 핑거프린트를 사용하더라도 추가 요소가 필요할 수 있습니다:

필수 구성 요소:

  • User-Agent: 선택한 브라우저 프로필과 일치해야 함
  • 세션 쿠키: 유효한 clearance 또는 세션 토큰
  • 요청 헤더: 브라우저와 유사한 완전한 헤더 세트
  • 요청 타이밍: 빠른 연속 요청을 피하세요

전체 예제:

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를 참조하세요.

개선이 필요한 영역:

  • 세션 관리 및 영구 쿠키
  • 프록시 지원 (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배 빠름최대최적화됨