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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
dnsx — dnsxは、高速で多目的なDNSツールキットであり、ユーザーが指定したリゾルバのリストを使用して、任意の複数のDNSクエリを実行できます。 | Kitploit
ツール/GitHubGitHub/projectdiscovery/dnsx
偵察DNSおよびサブドメイン列挙情報収集ユーティリティとフレームワークDNS分析
GitHubprojectdiscovery/dnsx

dnsx

dnsxは、高速で多目的なDNSツールキットであり、ユーザーが指定したリゾルバのリストを使用して、任意の複数のDNSクエリを実行できます。

リポジトリを見る
2.8k3274日前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
ウェブサイト

dnsx

高速かつ多目的なDNSツールキット。DNSクエリの実行向けに設計されています

機能 • インストール • 使い方 • `dnsx`の実行 • ワイルドカード • 注意事項 • Discordに参加


dnsxは、retryabledns ライブラリを通じて様々なプローブを実行するために設計された、高速かつ多目的なDNSツールキットです。複数のDNSクエリ、ユーザー指定のリゾルバー、shuffledns のようなDNSワイルドカードフィルタリングなどをサポートしています。

機能

dnsx

  • DNSレコードをクエリするためのシンプルで便利なユーティリティ
  • A, AAAA, CNAME, PTR, NS, MX, TXT, SRV, SOA クエリ対応
  • DNS 解決 / ブルートフォース 対応
  • カスタム リゾルバー 入力対応
  • 複数リゾルバー形式 (TCP/UDP/DOH/DOT) 対応
  • stdin および stdout 対応
  • 自動 ワイルドカード 処理対応

インストール方法

dnsx のインストールには go1.21 が必要です。以下のコマンドで最新バージョンをインストールしてください。

root@kitploit:~
go install -v github.com/projectdiscovery/dnsx/cmd/dnsx@latest

使い方

root@kitploit:~
dnsx -h

これでツールのヘルプが表示されます。以下がサポートされているすべてのスイッチです。

root@kitploit:~
INPUT:
   -l, -list string      list of sub(domains)/hosts to resolve (file or stdin)
   -d, -domain string    list of domain to bruteforce (file or comma separated or stdin)
   -w, -wordlist string  list of words to bruteforce (file or comma separated or stdin)

QUERY:
   -a                       query A record (default)
   -aaaa                    query AAAA record
   -cname                   query CNAME record
   -ns                      query NS record
   -txt                     query TXT record
   -srv                     query SRV record
   -ptr                     query PTR record
   -mx                      query MX record
   -soa                     query SOA record
   -any                     query ANY record
   -axfr                    query AXFR
   -caa                     query CAA record
   -recon                   query all the dns records (a,aaaa,cname,ns,txt,srv,ptr,mx,soa,axfr,caa)
   -e, -exclude-type value  dns query type to exclude (a,aaaa,cname,ns,txt,srv,ptr,mx,soa,axfr,caa) (default none)

FILTER:
   -re, -resp          display dns response
   -ro, -resp-only     display dns response only
   -rc, -rcode string  filter result by dns status code (eg. -rcode noerror,servfail,refused)

PROBE:
   -cdn  display cdn name
   -asn  display host asn information

RATE-LIMIT:
   -t, -threads int      number of concurrent threads to use (default 100)
   -rl, -rate-limit int  number of dns request/second to make (disabled as default) (default -1)

UPDATE:
   -up, -update                 update dnsx to latest version
   -duc, -disable-update-check  disable automatic dnsx update check

OUTPUT:
   -o, -output string           file to write output
   -j, -json                    write output in JSONL(ines) format
   -omit-raw, -or               omit raw dns response from jsonl output
   -ot, -output-template string custom output template (e.g. -ot '{{host}} {{a}}')

DEBUG:
   -hc, -health-check  run diagnostic check up
   -silent             display only results in the output
   -v, -verbose        display verbose output
   -raw, -debug        display raw dns response
   -stats              display stats of the running scan
   -version            display version of dnsx
   -nc, -no-color      disable color in output

OPTIMIZATION:
   -retry int                number of dns attempts to make (must be at least 1) (default 2)
   -hf, -hostsfile           use system host file
   -trace                    perform dns tracing
   -trace-max-recursion int  Max recursion for dns trace (default 32767)
   -resume                   resume existing scan
   -stream                   stream mode (wordlist, wildcard, stats and stop/resume will be disabled)
   -timeout value            maximum time to wait for a DNS query to complete (default 3s)

CONFIGURATIONS:
   -auth                         configure projectdiscovery cloud (pdcp) api key (default true)
   -r, -resolver string          list of resolvers to use (file or comma separated)
   -wt, -wildcard-threshold int  wildcard filter threshold (default 5)
   -auto-wildcard                automatically detect wildcard domains for filtering
   -wd, -wildcard-domain string  domain name for manual wildcard filtering (mutually exclusive with -auto-wildcard; other flags will be ignored - json output recommended)

dnsxの実行

DNS解決

様々なソースから取得したパッシブサブドメインのリストからアクティブなホスト名をフィルタリングします。

root@kitploit:~
subfinder -silent -d hackerone.com | dnsx -silent

a.ns.hackerone.com
www.hackerone.com
api.hackerone.com
docs.hackerone.com
mta-sts.managed.hackerone.com
mta-sts.hackerone.com
resources.hackerone.com
b.ns.hackerone.com
mta-sts.forwarding.hackerone.com
events.hackerone.com
support.hackerone.com

指定したサブドメインのリストに対し A レコードを出力します。

root@kitploit:~
subfinder -silent -d hackerone.com | dnsx -silent -a -resp

www.hackerone.com [104.16.100.52]
www.hackerone.com [104.16.99.52]
hackerone.com [104.16.99.52]
hackerone.com [104.16.100.52]
api.hackerone.com [104.16.99.52]
api.hackerone.com [104.16.100.52]
mta-sts.forwarding.hackerone.com [185.199.108.153]
mta-sts.forwarding.hackerone.com [185.199.109.153]
mta-sts.forwarding.hackerone.com [185.199.110.153]
mta-sts.forwarding.hackerone.com [185.199.111.153]
a.ns.hackerone.com [162.159.0.31]
resources.hackerone.com [52.60.160.16]
resources.hackerone.com [3.98.63.202]
resources.hackerone.com [52.60.165.183]
resources.hackerone.com [read.uberflip.com]
mta-sts.hackerone.com [185.199.110.153]
mta-sts.hackerone.com [185.199.111.153]
mta-sts.hackerone.com [185.199.109.153]
mta-sts.hackerone.com [185.199.108.153]
gslink.hackerone.com [13.35.210.17]
gslink.hackerone.com [13.35.210.38]
gslink.hackerone.com [13.35.210.83]
gslink.hackerone.com [13.35.210.19]
b.ns.hackerone.com [162.159.1.31]
docs.hackerone.com [185.199.109.153]
docs.hackerone.com [185.199.110.153]
docs.hackerone.com [185.199.111.153]
docs.hackerone.com [185.199.108.153]
support.hackerone.com [104.16.51.111]
support.hackerone.com [104.16.53.111]
mta-sts.managed.hackerone.com [185.199.108.153]
mta-sts.managed.hackerone.com [185.199.109.153]
mta-sts.managed.hackerone.com [185.199.110.153]
mta-sts.managed.hackerone.com [185.199.111.153]

指定したサブドメインのリストから A レコードを抽出します。

root@kitploit:~
subfinder -silent -d hackerone.com | dnsx -silent -a -resp-only

104.16.99.52
104.16.100.52
162.159.1.31
104.16.99.52
104.16.100.52
185.199.110.153
185.199.111.153
185.199.108.153
185.199.109.153
104.16.99.52
104.16.100.52
104.16.51.111
104.16.53.111
185.199.108.153
185.199.111.153
185.199.110.153
185.199.111.153

指定したサブドメインのリストから CNAME レコードを抽出します。

root@kitploit:~
subfinder -silent -d hackerone.com | dnsx -silent -cname -resp

support.hackerone.com [hackerone.zendesk.com]
resources.hackerone.com [read.uberflip.com]
mta-sts.hackerone.com [hacker0x01.github.io]
mta-sts.forwarding.hackerone.com [hacker0x01.github.io]
events.hackerone.com [whitelabel.bigmarker.com]

指定したサブドメインのリストから ASN レコードを抽出します。

root@kitploit:~
subfinder -silent -d hackerone.com | dnsx -silent  -asn

b.ns.hackerone.com [AS13335, CLOUDFLARENET, US]
a.ns.hackerone.com [AS13335, CLOUDFLARENET, US]
hackerone.com [AS13335, CLOUDFLARENET, US]
www.hackerone.com [AS13335, CLOUDFLARENET, US]
api.hackerone.com [AS13335, CLOUDFLARENET, US]
support.hackerone.com [AS13335, CLOUDFLARENET, US]

dnsステータスコード を使って(サブ)ドメインのリストをプローブします。

root@kitploit:~
subfinder -silent -d hackerone.com | dnsx -silent -rcode noerror,servfail,refused

ns.hackerone.com [NOERROR]
a.ns.hackerone.com [NOERROR]
b.ns.hackerone.com [NOERROR]
support.hackerone.com [NOERROR]
resources.hackerone.com [NOERROR]
mta-sts.hackerone.com [NOERROR]
www.hackerone.com [NOERROR]
mta-sts.forwarding.hackerone.com [NOERROR]
docs.hackerone.com [NOERROR]

指定したネットワーク範囲から PTR クエリを使ってサブドメインを抽出します。

root@kitploit:~
echo 173.0.84.0/24 | dnsx -silent -resp-only -ptr

cors.api.paypal.com
trinityadminauth.paypal.com
cld-edge-origin-api.paypal.com
appmanagement.paypal.com
svcs.paypal.com
trinitypie-serv.paypal.com
ppn.paypal.com
pointofsale-new.paypal.com
pointofsale.paypal.com
slc-a-origin-pointofsale.paypal.com
fpdbs.paypal.com

指定したASNから PTR クエリを使ってサブドメインを抽出します。

root@kitploit:~
echo AS17012 | dnsx -silent -resp-only -ptr 

apiagw-a.paypal.com
notify.paypal.com
adnormserv-slc-a.paypal.com
a.sandbox.paypal.com
apps2.paypal-labs.com
pilot-payflowpro.paypal.com
www.paypallabs.com
paypal-portal.com
micropayments.paypal-labs.com
minicart.paypal-labs.com

カスタム出力形式

-output-template (-ot) フラグを使うと、デフォルトの括弧付きレイアウト(例:example.com [A] [104.20.23.154])の代わりに、テンプレートを使って出力形式をカスタマイズできます。コマンドラインでテンプレートを直接指定し、解決されたデータの表示方法を制御します。

テンプレート変数はJSONL出力(-json)で使われるフィールド名と同じです。以下のフィールドは {{field}} として参照できます。

host, a, aaaa, cname, ns, txt, mx, srv, ptr, soa, caa, ttl, resolver, status_code, cdn-name, cdn-type, , 。便利な エイリアスは と レコードを結合したものです。

複数の値を持つレコード(例:複数の A レコード)は、1つのフィールド内でカンマ区切りで結合されます。

root@kitploit:~
echo example.com | dnsx -silent -a -ot '{{host}} {{a}}'

example.com 104.20.23.154,172.66.147.243
root@kitploit:~
echo example.com | dnsx -silent -a -ot '{{ip}} - {{host}}'

104.20.23.154,172.66.147.243 - example.com

[!NOTE] 指定したフィールドが存在しない、または値がない場合は、出力から単に省略されます。-output-template は -json または -raw と併用できません。


DNSブルートフォース

d および w フラグを使用して、指定したドメインまたはドメインリストに対してサブドメインをブルートフォースします。

root@kitploit:~
dnsx -silent -d facebook.com -w dns_worldlist.txt

blog.facebook.com
booking.facebook.com
api.facebook.com
analytics.facebook.com
beta.facebook.com
apollo.facebook.com
ads.facebook.com
box.facebook.com
alpha.facebook.com
apps.facebook.com
connect.facebook.com
c.facebook.com
careers.facebook.com
code.facebook.com

単一または複数のキーワード入力を使って特定のサブドメインをブルートフォースします。d または w フラグはファイルまたはカンマ区切りのキーワード入力をサポートします。

root@kitploit:~
dnsx -silent -d domains.txt -w jira,grafana,jenkins

grafana.1688.com
grafana.8x8.vc
grafana.airmap.com
grafana.aerius.nl
jenkins.1688.com
jenkins.airbnb.app
jenkins.airmap.com
jenkins.ahn.nl
jenkins.achmea.nl
jira.amocrm.com
jira.amexgbt.com
jira.amitree.com
jira.arrival.com
jira.atlassian.net
jira.atlassian.com

値はすべての入力タイプ(-list, -domain, -wordlist)で stdin から受け付けられます。-list フラグはデフォルトで stdin になりますが、他の入力タイプでもパラメータとして -(ダッシュ)を追加することで同様のことができます。

root@kitploit:~
cat domains.txt | dnsx -silent -w jira,grafana,jenkins -d -

grafana.1688.com
grafana.8x8.vc
grafana.airmap.com
grafana.aerius.nl
jenkins.1688.com
jenkins.airbnb.app
jenkins.airmap.com
jenkins.ahn.nl
jenkins.achmea.nl
jira.amocrm.com
jira.amexgbt.com
jira.amitree.com
jira.arrival.com
jira.atlassian.net
jira.atlassian.com

プレースホルダベースのワードリストを使ったDNSブルートフォース

root@kitploit:~
$ cat tld.txt

com
by
de
be
al
bi
cg
dj
bs
root@kitploit:~
dnsx -d google.FUZZ -w tld.txt -resp

      _             __  __
   __| | _ __   ___ \ \/ /
  / _' || '_ \ / __| \  / 
 | (_| || | | |\__ \ /  \ 
  \__,_||_| |_||___//_/\_\ v1.1.2

      projectdiscovery.io

google.de [142.250.194.99] 
google.com [142.250.76.206] 
google.be [172.217.27.163] 
google.bs [142.251.42.35] 
google.bi [216.58.196.67] 
google.al [216.58.196.68] 
google.by [142.250.195.4] 
google.cg [142.250.183.131] 
google.dj [142.250.192.3] 

ワイルドカードフィルタリング

dnsx の特別な機能は、マルチレベルDNSベースのワイルドカードを非常に少ないDNSリクエストで処理できることです。すべてのサブドメインが解決されることがあり、その結果出力に多くのゴミが含まれることがあります。dnsx は、サブドメインがIPを指している数を追跡し、その数が一定のしきい値を超えた場合、そのIPのホストの全レベルに対して繰り返しワイルドカードをチェックすることでこれを処理します。

root@kitploit:~
dnsx -l subdomain_list.txt -wd airbnb.com -o output.txt

複数のドメインに対して自動的にワイルドカードDNSを検出しフィルタリングするには、選択した出力モードを維持したまま以下のように実行します。

root@kitploit:~
dnsx -l subdomain_list.txt -auto-wildcard -o output.txt

-auto-wildcard と -wd / -wildcard-domain は相互排他的です。既存の手動による単一ドメインワイルドカードフィルタリングフローを使用したい場合は -wd を使用し、dnsx に混合ドメイン入力全体で自動的にワイルドカードルートを検出させたい場合は -auto-wildcard を使用します。


ライブラリとしてのDnsx

golangプログラムで直接ライブラリを使用することが可能です。以下のコードスニペットはgolangプログラムでの使用例です。詳細なパッケージ設定と使用法については こちら を参照してください。

root@kitploit:~
package main

import (
	"fmt"

	"github.com/projectdiscovery/dnsx/libs/dnsx"
)

func main() {
	// Create DNS Resolver with default options
	dnsClient, err := dnsx.New(dnsx.DefaultOptions)
	if err != nil {
		fmt.Printf("err: %v\n", err)
		return
	}

	// DNS A question and returns corresponding IPs
	result, err := dnsClient.Lookup("hackerone.com")
	if err != nil {
		fmt.Printf("err: %v\n", err)
		return
	}
	for idx, msg := range result {
		fmt.Printf("%d: %s\n", idx+1, msg)
	}

	// Query
	rawResp, err := dnsClient.QueryOne("hackerone.com")
	if err != nil {
		fmt.Printf("err: %v\n", err)
		return
	}
	fmt.Printf("rawResp: %v\n", rawResp)

	jsonStr, err := rawResp.JSON()
	if err != nil {
		fmt.Printf("err: %v\n", err)
		return
	}
	fmt.Println(jsonStr)

	return
}

📋 注意事項

  • デフォルトでは、dnsx は A レコードをチェックします。
  • デフォルトでは、dnsx はGoogle、Cloudflare、Quad9の リゾルバー を使用します。
  • カスタムリゾルバーリストは r フラグで読み込むことができます。
  • -auto-wildcard は、1回の実行で複数の登録可能ルート全体のワイルドカードドメインを自動的に検出します。
  • ドメイン名(-wd)は手動ワイルドカードフィルタリングにのみ必要であり、-auto-wildcard と一緒に使用することはできません。
  • -wd を使用して手動ワイルドカードフィルタリングを行う場合、他のDNSレコードフラグは無視され、JSON出力が推奨されます。
  • DNS解決(l)とDNSブルートフォース(w)は同時に使用できません。
  • VPN事業者は高DNS/UDPトラフィックをフィルタリングする傾向があるため、ツールがパケット損失を経験する可能性があります(例:Mullvad VPN)。この解決策の可能性 を確認してください。

dnsx は projectdiscovery チームによって 🖤 と共に制作されています。

ツールをダウンロード
asn
query-time
{{ip}}
A
AAAA