Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
RustTLSX — 🦀 Rust向けステルスHTTPクライアント。検出されないリクエストのために、実際のブラウザのTLSフィンガープリントを模倣します。高速で型安全、精密なネットワーキング向けに構築されています。 | Kitploit
ツール/GitHubGitHub/d0rb/rusttlsx
IDS/IPS回避情報収集ウェブセキュリティペネトレーションテストプライバシークローラーアンチボットフィンガープリントスプーフィング
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が存在する理由

現代のWebアプリケーションは、HTTPリクエストのあらゆる側面を分析します。ヘッダーやクッキーだけでなく、TLSハンドシェイクの深層にある暗号署名までも分析します。標準的なRust HTTPクライアント(reqwest、hyper、ureq)は、自動化されたトラフィックを即座に識別する、簡単に検出可能なパターンを生成します。

RustTLSXは以下を提供することでこの問題を解決します:

  • 完璧なブラウザ模倣:実際のブラウザからの本物のTLSフィンガープリント
  • リクエスト変更の制御:ヘッダー、クッキー、タイミングに対するきめ細かな制御
  • プライバシーバイデザイン:トラフィックが正規のブラウザセッションとして表示されます
  • パフォーマンスの優位性:あらゆる代替ソリューションよりも大幅に高速

中核機能

プライバシーとリクエスト制御

  • 本物のブラウザID:Chrome、Firefox、Safari、OperaのTLSシグネチャを完璧に再現
  • ヘッダー操作:リクエストヘッダー、ユーザーエージェント、acceptパラメータを完全に制御
  • クッキー管理:永続的なクッキーをサポートする高度なセッション処理
  • タイミング制御:設定可能なリクエスト間隔と接続プーリング
  • プロトコル選択:ブラウザに正確に一致するプリファレンスを備えたHTTP/1.1およびHTTP/2のサポート

パフォーマンス上の利点

  • Pythonより6倍高速:可能な限りゼロコピー操作を備えたネイティブRustパフォーマンス
  • メモリ効率:標準的なHTTPクライアントと比較して最小限のオーバーヘッド
  • 同時リクエスト:高スループットのシナリオ向けに最適化
  • 接続再利用:ブラウザの動作に一致するインテリジェントな接続プーリング

高度な機能

  • 30以上のブラウザプロファイル:実際のブラウザフィンガープリントの豊富なコレクション
  • 型安全性:包括的なエラー処理を備えた完全なRustコンパイル時の保証
  • クロスプラットフォーム:Windows、Linux、macOSをサポート
  • 保護バイパス:完全な模倣の副次的効果として、検出システムを回避します

クイックスタート

前提条件

tls-clientのリリース から、お使いのプラットフォームに必要なTLSクライアントライブラリをダウンロードしてください:

  • 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ネゴシエーション:ブラウザに一致するアプリケーション層プロトコルネゴシエーション

例

基本的な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(())
}

プライバシー重視のWebスクレイピング

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実装を悩ませる不要なデータコピーを排除します。

接続プーリング:ブラウザに正確なキープアライブ動作による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フィンガープリントを使用していても、追加の要素が必要になる場合があります:

必要なコンポーネント:

  • ユーザーエージェント:選択したブラウザプロファイルと一致している必要があります
  • セッションクッキー:有効なクリアランスまたはセッショントークン
  • リクエストヘッダー:ブラウザのような完全なヘッダーセット
  • リクエストタイミング:連続した高速リクエストを避けます

完全な例:

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倍高速最大最適化