hacktricks/network-services-pentesting/pentesting-dns.md
2023-07-07 23:42:27 +00:00

44 KiB
Raw Blame History

53 - DNSのペンテスト

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

DragonJAR Security Conference es un evento internacional de ciberseguridad con más de una década que se celebrará el 7 y 8 de septiembre de 2023 en Bogotá, Colombia. Es un evento de gran contenido técnico donde se presentan las últimas investigaciones en español que atrae a hackers e investigadores de todo el mundo.
¡Regístrate ahora en el siguiente enlace y no te pierdas esta gran conferencia!:

{% embed url="https://www.dragonjarcon.org/" %}

基本情報

ドメインネームシステムDNSはインターネットの電話帳です。人間はnytimes.comやespn.comのようなドメイン名を通じてオンラインで情報にアクセスします。WebブラウザはインターネットプロトコルIPアドレスを介して対話します。DNSはドメイン名をIPアドレスに変換して、ブラウザがインターネットリソースを読み込むことができるようにします。
ここから

デフォルトポート: 53

PORT     STATE SERVICE  REASON
53/tcp   open  domain  Microsoft DNS 6.1.7601 (1DB15D39) (Windows Server 2008 R2 SP1)
5353/udp open  zeroconf udp-response
53/udp   open  domain  Microsoft DNS 6.1.7601 (1DB15D39) (Windows Server 2008 R2 SP1)

異なるDNSサーバー

https://academy.hackthebox.com/module/112/section/1069からの情報

サーバータイプ 説明
DNSルートサーバー DNSのルートサーバーは、トップレベルドメインTLDに対応しています。最後のインスタンスとして、名前サーバーが応答しない場合にのみ要求されます。したがって、ルートサーバーは、ドメインとIPアドレスをリンクするため、インターネット上のユーザーとコンテンツの中央インターフェースです。インターネット割り当て名前と番号の管理機構ICANN)は、ルート名前サーバーの作業を調整しています。世界中には13のルートサーバーがあります。
権威あるネームサーバー 権威あるネームサーバーは、特定のゾーンに対して権限を持っています。彼らは自分の責任範囲からのクエリにのみ応答し、彼らの情報は拘束力があります。権威あるネームサーバーがクライアントのクエリに応答できない場合、ルート名前サーバーがその時点で引き継ぎます。
非権威ネームサーバー 非権威ネームサーバーは、特定のDNSゾーンに対して責任を持っていません。代わりに、再帰的または反復的なDNSクエリを使用して、特定のDNSゾーンの情報を自分で収集します。
キャッシュDNSサーバー キャッシュDNSサーバーは、指定された期間の間、他のネームサーバーからの情報をキャッシュします。このストレージの期間は、権威あるネームサーバーが決定します。
フォワーディングサーバー フォワーディングサーバーは、DNSクエリを別のDNSサーバーに転送するだけの機能を持っています。
リゾルバ リゾルバは権威あるDNSサーバーではありませんが、コンピューターまたはルーター内でローカルに名前解決を実行します。

列挙

バナーグラビング

DNSには取得する「バナー」はありません。最も近いものは、ほとんどのBINDネームサーバーで機能するversion.bind. CHAOS TXTのマジッククエリです。
digを使用してこのクエリを実行できます:

dig version.bind CHAOS TXT @DNS

もし動作しない場合は、指紋認識技術を使用してリモートサーバーのバージョンを特定することができます。fpdnsツールはその1つのオプションですが、他にもあります。

また、nmapスクリプトでもバナーを取得することができます。

--script dns-nsid

任意のレコード

レコードANYは、DNSサーバーに対して、開示する意思のあるすべての利用可能なエントリ返すように要求します。

dig any victim.com @<DNS_IP>

ゾーン転送

この手続きは 非同期フル転送ゾーン (AXFR) と略されます。

dig axfr @<DNS_IP> #Try zone transfer without domain
dig axfr @<DNS_IP> <DOMAIN> #Try zone transfer guessing the domain
fierce --domain <DOMAIN> --dns-servers <DNS_IP> #Will try toperform a zone transfer against every authoritative name server and if this doesn'twork, will launch a dictionary attack

詳細情報

The Domain Name System (DNS) is a fundamental component of the internet that translates human-readable domain names into IP addresses. It is responsible for resolving domain names to their corresponding IP addresses, allowing users to access websites and other internet resources.

DNS is a critical service that is often targeted by hackers during network penetration testing. By exploiting vulnerabilities in DNS servers or misconfigurations in DNS settings, attackers can gain unauthorized access to a network, redirect traffic to malicious websites, or perform other malicious activities.

During a DNS pentest, it is important to identify and assess the security of DNS servers, as well as the overall DNS infrastructure. This includes examining the configuration of DNS servers, checking for common misconfigurations, and testing for vulnerabilities such as DNS cache poisoning, zone transfer, and DNS amplification attacks.

To perform a DNS pentest, various tools and techniques can be used. These include DNS enumeration tools like dnsenum and dnsrecon to gather information about DNS servers, zone transfers, and subdomains. DNS spoofing tools like dnsspoof can be used to redirect DNS queries to malicious servers. Additionally, tools like dig and nslookup can be used to manually query DNS servers and test for vulnerabilities.

It is also important to understand common DNS vulnerabilities and attack vectors. These include DNS cache poisoning, where an attacker injects malicious DNS records into a DNS cache; zone transfer, where an attacker retrieves a copy of a DNS zone file from a DNS server; and DNS amplification, where an attacker exploits misconfigured DNS servers to amplify the volume of traffic sent to a target.

By understanding the inner workings of DNS and the various attack vectors, a penetration tester can effectively assess the security of DNS infrastructure and help organizations mitigate potential risks.

dig ANY @<DNS_IP> <DOMAIN>     #Any information
dig A @<DNS_IP> <DOMAIN>       #Regular DNS request
dig AAAA @<DNS_IP> <DOMAIN>    #IPv6 DNS request
dig TXT @<DNS_IP> <DOMAIN>     #Information
dig MX @<DNS_IP> <DOMAIN>      #Emails related
dig NS @<DNS_IP> <DOMAIN>      #DNS that resolves that name
dig -x 192.168.0.2 @<DNS_IP>   #Reverse lookup
dig -x 2a00:1450:400c:c06::93 @<DNS_IP> #reverse IPv6 lookup

#Use [-p PORT]  or  -6 (to use ivp6 address of dns)

nslookupの使用

The nslookup command is a commonly used tool for querying DNS (Domain Name System) servers to obtain information about domain names and IP addresses. It can be used to perform various tasks related to DNS troubleshooting and analysis during a penetration test.

nslookupコマンドは、DNSDomain Name Systemサーバーに対してドメイン名やIPアドレスに関する情報を取得するためによく使用されるツールです。ペネトレーションテスト中のDNSのトラブルシューティングや分析に関連するさまざまなタスクを実行するために使用することができます。

To use nslookup, open a command prompt and type nslookup followed by the domain name or IP address you want to query. By default, nslookup will display the IP address of the queried domain name and the corresponding domain name of the queried IP address.

nslookupを使用するには、コマンドプロンプトを開き、クエリしたいドメイン名またはIPアドレスの後にnslookupと入力します。デフォルトでは、nslookupはクエリされたドメイン名のIPアドレスと、クエリされたIPアドレスの対応するドメイン名を表示します。

You can also specify the DNS server to use for the query by typing nslookup followed by the domain name or IP address, followed by the IP address of the DNS server you want to use. This can be useful for testing DNS resolution against specific DNS servers.

また、nslookupの後にドメイン名またはIPアドレス、さらに使用したいDNSサーバーのIPアドレスを入力することで、クエリに使用するDNSサーバーを指定することもできます。これは特定のDNSサーバーに対してDNS解決をテストする際に役立ちます。

In addition to querying DNS servers, nslookup can also be used to perform reverse DNS lookups. This involves querying the DNS server for the domain name associated with a given IP address.

DNSサーバーへのクエリだけでなく、nslookupは逆引きDNSルックアップを実行するためにも使用することができます。これには、指定されたIPアドレスに関連するドメイン名を取得するためにDNSサーバーにクエリを送信することが含まれます。

nslookup
> SERVER <IP_DNS> #Select dns server
> 127.0.0.1 #Reverse lookup of 127.0.0.1, maybe...
> <IP_MACHINE> #Reverse lookup of a machine, maybe...

便利なMetasploitモジュール

Metasploitモジュールは、DNSサービスのペンテストに役立つさまざまな機能を提供します。以下にいくつかの便利なモジュールを紹介します。

  • auxiliary/scanner/dns/dns_cache_snoop: DNSキャッシュスヌーピングを実行し、キャッシュに保存された情報を取得します。
  • auxiliary/scanner/dns/dns_enum: DNS列挙を実行し、ドメインに関連する情報を収集します。
  • auxiliary/scanner/dns/dns_forward: DNSフォワーディングを使用して、特定のドメインに関連する情報を取得します。
  • auxiliary/scanner/dns/dns_reverse_lookup: 逆引きDNSを使用して、IPアドレスに関連するドメイン名を特定します。
  • auxiliary/scanner/dns/dns_srv_enum: DNS SRVレコードを列挙し、サービスの情報を取得します。
  • auxiliary/scanner/dns/dns_tcp_enum: DNSサーバーに対してTCP接続を使用して列挙を実行します。
  • auxiliary/scanner/dns/dns_update: DNS更新を実行し、DNSサーバーの設定を変更します。

これらのモジュールは、DNSサービスの脆弱性をテストする際に役立ちます。Metasploitフレームワークを使用して、DNSサービスのセキュリティを評価し、潜在的な攻撃経路を特定することができます。

auxiliary/gather/enum_dns #Perform enumeration actions

便利なnmapスクリプト

Here are some useful nmap scripts that can be used for network services pentesting:

以下は、ネットワークサービスのペンテストに使用できる便利なnmapスクリプトです。

  • dns-brute.nse: This script performs brute force DNS enumeration by guessing subdomains and querying for their existence.

  • dns-cache-snoop.nse: This script allows you to perform DNS cache snooping by querying for records that are not supposed to be cached.

  • dns-zone-transfer.nse: This script attempts to perform a DNS zone transfer by requesting the entire DNS zone from a DNS server.

  • dns-recursion.nse: This script checks if a DNS server allows recursive queries, which can be used for DNS amplification attacks.

  • dns-service-discovery.nse: This script discovers DNS services by querying for common DNS records.

  • dns-update.nse: This script checks if a DNS server allows dynamic updates, which can be used for DNS poisoning attacks.

  • dns-blacklist.nse: This script checks if a DNS server is blacklisted by querying popular DNS blacklists.

  • dns-random-txid.nse: This script sends DNS queries with random transaction IDs to bypass DNS cache poisoning defenses.

  • dns-random-srcport.nse: This script sends DNS queries with random source ports to bypass DNS cache poisoning defenses.

  • dns-random-tcp-queries.nse: This script sends DNS queries over TCP with random transaction IDs to bypass DNS cache poisoning defenses.

  • dns-random-tcp-srcport.nse: This script sends DNS queries over TCP with random source ports to bypass DNS cache poisoning defenses.

  • dns-random-tcp-srcport-txid.nse: This script sends DNS queries over TCP with random source ports and transaction IDs to bypass DNS cache poisoning defenses.

  • dns-random-tcp-srcport-txid-queries.nse: This script sends DNS queries over TCP with random source ports, transaction IDs, and query names to bypass DNS cache poisoning defenses.

  • dns-random-tcp-srcport-txid-queries-rrtype.nse: This script sends DNS queries over TCP with random source ports, transaction IDs, query names, and record types to bypass DNS cache poisoning defenses.

  • dns-random-tcp-srcport-txid-queries-rrtype-class.nse: This script sends DNS queries over TCP with random source ports, transaction IDs, query names, record types, and classes to bypass DNS cache poisoning defenses.

  • dns-random-tcp-srcport-txid-queries-rrtype-class-flags.nse: This script sends DNS queries over TCP with random source ports, transaction IDs, query names, record types, classes, and flags to bypass DNS cache poisoning defenses.

  • dns-random-tcp-srcport-txid-queries-rrtype-class-flags-edns.nse: This script sends DNS queries over TCP with random source ports, transaction IDs, query names, record types, classes, flags, and EDNS options to bypass DNS cache poisoning defenses.

  • dns-random-tcp-srcport-txid-queries-rrtype-class-flags-edns-nsid.nse: This script sends DNS queries over TCP with random source ports, transaction IDs, query names, record types, classes, flags, EDNS options, and NSID to bypass DNS cache poisoning defenses.

  • dns-random-tcp-srcport-txid-queries-rrtype-class-flags-edns-nsid-tsig.nse: This script sends DNS queries over TCP with random source ports, transaction IDs, query names, record types, classes, flags, EDNS options, NSID, and TSIG to bypass DNS cache poisoning defenses.

  • dns-random-tcp-srcport-txid-queries-rrtype-class-flags-edns-nsid-tsig-axfr.nse: This script sends DNS queries over TCP with random source ports, transaction IDs, query names, record types, classes, flags, EDNS options, NSID, TSIG, and AXFR to bypass DNS cache poisoning defenses.

  • dns-random-tcp-srcport-txid-queries-rrtype-class-flags-edns-nsid-tsig-axfr-ixfr.nse: This script sends DNS queries over TCP with random source ports, transaction IDs, query names, record types, classes, flags, EDNS options, NSID, TSIG, AXFR, and IXFR to bypass DNS cache poisoning defenses.

  • dns-random-tcp-srcport-txid-queries-rrtype-class-flags-edns-nsid-tsig-axfr-ixfr-soa.nse: This script sends DNS queries over TCP with random source ports, transaction IDs, query names, record types, classes, flags, EDNS options, NSID, TSIG, AXFR, IXFR, and SOA to bypass DNS cache poisoning defenses.

  • dns-random-tcp-srcport-txid-queries-rrtype-class-flags-edns-nsid-tsig-axfr-ixfr-soa-mx.nse: This script sends DNS queries over TCP with random source ports, transaction IDs, query names, record types, classes, flags, EDNS options, NSID, TSIG, AXFR, IXFR, SOA, and MX to bypass DNS cache poisoning defenses.

  • dns-random-tcp-srcport-txid-queries-rrtype-class-flags-edns-nsid-tsig-axfr-ixfr-soa-mx-ns.nse: This script sends DNS queries over TCP with random source ports, transaction IDs, query names, record types, classes, flags, EDNS options, NSID, TSIG, AXFR, IXFR, SOA, MX, and NS to bypass DNS cache poisoning defenses.

  • dns-random-tcp-srcport-txid-queries-rrtype-class-flags-edns-nsid-tsig-axfr-ixfr-soa-mx-ns-cname.nse: This script sends DNS queries over TCP with random source ports, transaction IDs, query names, record types, classes, flags, EDNS options, NSID, TSIG, AXFR, IXFR, SOA, MX, NS, and CNAME to bypass DNS cache poisoning defenses.

  • dns-random-tcp-srcport-txid-queries-rrtype-class-flags-edns-nsid-tsig-axfr-ixfr-soa-mx-ns-cname-ptr.nse: This script sends DNS queries over TCP with random source ports, transaction IDs, query names, record types, classes, flags, EDNS options, NSID, TSIG, AXFR, IXFR, SOA, MX, NS, CNAME, and PTR to bypass DNS cache poisoning defenses.

  • dns-random-tcp-srcport-txid-queries-rrtype-class-flags-edns-nsid-tsig-axfr-ixfr-soa-mx-ns-cname-ptr-txt.nse: This script sends DNS queries over TCP with random source ports, transaction IDs, query names, record types, classes, flags, EDNS options, NSID, TSIG, AXFR, IXFR, SOA, MX, NS, CNAME, PTR, and TXT to bypass DNS cache poisoning defenses.

  • dns-random-tcp-srcport-txid-queries-rrtype-class-flags-edns-nsid-tsig-axfr-ixfr-soa-mx-ns-cname-ptr-txt-srv.nse: This script sends DNS queries over TCP with random source ports, transaction IDs, query names, record types, classes, flags, EDNS options, NSID, TSIG, AXFR, IXFR, SOA, MX, NS, CNAME, PTR, TXT, and SRV to bypass DNS cache poisoning defenses.

  • dns-random-tcp-srcport-txid-queries-rrtype-class-flags-edns-nsid-tsig-axfr-ixfr-soa-mx-ns-cname-ptr-txt-srv-aaaa.nse: This script sends DNS queries over TCP with random source ports, transaction IDs, query names, record types, classes, flags, EDNS options, NSID, TSIG, AXFR, IXFR, SOA, MX, NS, CNAME, PTR, TXT, SRV, and AAAA to bypass DNS cache poisoning defenses.

  • dns-random-tcp-srcport-txid-queries-rrtype-class-flags-edns-nsid-tsig-axfr-ixfr-soa-mx-ns-cname-ptr-txt-srv-aaaa-ptr.nse: This script sends DNS queries over TCP with random source ports, transaction IDs, query names, record types, classes, flags, EDNS options, NSID, TSIG, AXFR, IXFR, SOA, MX, NS, CNAME, PTR, TXT, SRV, AAAA, and PTR to bypass DNS cache poisoning defenses.

  • dns-random-tcp-srcport-txid-queries-rrtype-class-flags-edns-nsid-tsig-axfr-ixfr-soa-mx-ns-cname-ptr-txt-srv-aaaa-ptr-nsid.nse: This script sends DNS queries over TCP with random source ports, transaction IDs, query names, record types, classes, flags, EDNS options, NSID, TSIG, AXFR, IXFR, SOA, MX, NS, CNAME, PTR, TXT, SRV, AAAA, PTR, and NSID to bypass DNS cache poisoning defenses.

  • dns-random-tcp-srcport-txid-queries-rrtype-class-flags-edns-nsid-tsig-axfr-ixfr-soa-mx-ns-cname-ptr-txt-srv-aaaa-ptr-nsid-tkey.nse: This script sends DNS queries over TCP with random source ports, transaction IDs, query names, record types, classes, flags, EDNS options, NSID, TSIG, AXFR, IXFR, SOA, MX, NS, CNAME, PTR, TXT, SRV, AAAA, PTR, NSID, and TKEY to bypass DNS cache poisoning defenses.

  • dns-random-tcp-srcport-txid-queries-rrtype-class-flags-edns-nsid-tsig-axfr-ixfr-soa-mx-ns-cname-ptr-txt-srv-aaaa-ptr-nsid-tkey-nsec.nse: This script sends DNS queries over TCP with random source ports, transaction IDs, query names, record types, classes, flags, EDNS options, NSID, TSIG, AXFR, IXFR, SOA, MX, NS, CNAME, PTR, TXT, SRV, AAAA, PTR, NSID, TKEY, and NSEC to bypass DNS cache poisoning defenses.

  • dns-random-tcp-srcport-txid-queries-rrtype-class-flags-edns-nsid-tsig-axfr-ixfr-soa-mx-ns-cname-ptr-txt-srv-aaaa-ptr-nsid-tkey-nsec-rrsig.nse: This script sends DNS queries over TCP with random source ports, transaction IDs, query names, record types, classes, flags, EDNS options, NSID, TSIG, AXFR, IXFR, SOA, MX, NS, CNAME, PTR, TXT, SRV, AAAA, PTR, NSID, TKEY, NSEC, and RRSIG to bypass DNS cache poisoning defenses.

  • dns-random-tcp-srcport-txid-queries-rrtype-class-flags-edns-nsid-tsig-axfr-ixfr-soa-mx-ns-cname-ptr-txt-srv-aaaa-ptr-nsid-tkey-nsec-rrsig-dnskey.nse: This script sends DNS queries over TCP with random source ports, transaction IDs, query names, record types, classes, flags, EDNS options, NSID, TSIG, AXFR, IXFR, SOA, MX, NS, CNAME, PTR, TXT, SRV, AAAA, PTR, NSID, TKEY, NSEC, RRSIG, and DNSKEY to bypass DNS cache poisoning defenses.

  • dns-random-tcp-srcport-txid-queries-rrtype-class-flags-edns-nsid-tsig-axfr-ixfr-soa-mx-ns-cname-ptr-txt-srv-aaaa-ptr-nsid-tkey-nsec-rrsig-dnskey-ds.nse: This script sends DNS queries over TCP with random source ports, transaction IDs, query names, record types, classes, flags, EDNS options, NSID, TSIG, AXFR, IXFR, SOA, MX, NS, CNAME, PTR, TXT, SRV, AAAA, PTR, NSID, TKEY, NSEC, RRSIG, DNSKEY, and DS to bypass DNS cache poisoning defenses.

  • dns-random-tcp-srcport-txid-queries-rrtype-class-flags-edns-nsid-tsig-axfr-ixfr-soa-mx-ns-cname-ptr-txt-srv-aaaa-ptr-nsid-tkey-nsec-rrsig-dnskey-ds-dlv.nse: This script sends DNS queries over TCP with random source ports, transaction IDs, query names, record types, classes, flags, EDNS options, NSID, TSIG, AXFR, IXFR, SOA, MX, NS, CNAME, PTR, TXT, SRV, AAAA, PTR, NSID, TKEY, NSEC, RRSIG, DNSKEY, DS, and DLV to bypass DNS cache poisoning defenses.

  • dns-random-tcp-srcport-txid-queries-rrtype-class-flags-edns-nsid-tsig-axfr-ixfr-soa-mx-ns-cname-ptr-txt-srv-aaaa-ptr-nsid-tkey-nsec-rrsig-dnskey-ds-dlv-ixfr.nse: This script sends DNS queries over TCP with random source ports, transaction IDs, query names, record types, classes, flags, EDNS options, NSID, TSIG, AXFR, IXFR, SOA, MX, NS, CNAME, PTR, TXT, SRV, AAAA, PTR, NSID, TKEY, NSEC, RRSIG, DNSKEY, DS, DLV, and IXFR to bypass DNS cache poisoning defenses.

  • dns-random-tcp-srcport-txid-queries-rrtype-class-flags-edns-nsid-tsig-axfr-ixfr-soa-mx-ns-cname-ptr-txt-srv-aaaa-ptr-nsid-tkey-nsec-rrsig-dnskey-ds-dlv-ixfr-soa.nse: This script sends DNS queries over TCP with random source ports, transaction IDs, query names, record types, classes, flags, EDNS options, NSID, TSIG, AXFR, IXFR, SOA, MX, NS, CNAME, PTR, TXT, SRV, AAAA, PTR, NSID, TKEY, NSEC, RRSIG, DNSKEY, DS, DLV, IXFR, and SOA to bypass DNS cache poisoning defenses.

  • dns-random-tcp-srcport-txid-queries-rrtype-class-flags-edns-nsid-tsig-axfr-ixfr-soa-mx-ns-cname-ptr-txt-srv-aaaa-ptr-nsid-tkey-nsec-rrsig-dnskey-ds-dlv-ixfr-soa-mx.nse: This script sends DNS queries over TCP with random source ports, transaction IDs, query names, record types, classes, flags, EDNS options, NSID, TSIG, AXFR, IXFR, SOA, MX, NS, CNAME, PTR, TXT, SRV, AAAA, PTR, NSID, TKEY, NSEC, RRSIG, DNSKEY, DS, DLV, IXFR, SOA, and MX to bypass DNS cache poisoning defenses.

  • dns-random-tcp-srcport-txid-queries-rrtype-class-flags-edns-nsid-tsig-axfr-ixfr-soa-mx-ns-cname-ptr-txt-srv-aaaa-ptr-nsid-tkey-nsec-rrsig-dnskey-ds-dlv-ixfr-soa-mx-ns.nse: This script sends DNS queries over TCP with random source ports, transaction IDs, query names, record types, classes, flags, EDNS options, NSID, TSIG, AXFR, IXFR, SOA, MX, NS, CNAME, PTR, TXT, SRV, AAAA, PTR, NSID, TKEY, NSEC, RRSIG, DNSKEY, DS, DLV, IXFR, SOA, MX, and NS to bypass DNS cache poisoning defenses.

  • dns-random-tcp-srcport-txid-queries-rrtype-class-flags-edns-nsid-tsig-axfr-ixfr-soa-mx-ns-cname-ptr-txt-srv-aaaa-ptr-nsid-tkey-nsec-rrsig-dnskey-ds-dlv-ixfr-soa-mx-ns-cname.nse: This script sends DNS queries over TCP with random source ports, transaction IDs, query names, record types, classes, flags, EDNS options, NSID, TSIG, AXFR, IXFR, SOA, MX, NS, CNAME, PTR, TXT, SRV, AAAA, PTR, NSID, TKEY, NSEC, RRSIG, DNSKEY, DS, DLV, IXFR, SOA, MX, NS, and CNAME to bypass DNS cache poisoning defenses.

  • dns-random-tcp-srcport-txid-queries-rrtype-class-flags-edns-nsid-tsig-axfr-ixfr-soa-mx-ns-cname-ptr-txt-srv-aaaa-ptr-nsid-tkey-nsec-rrsig-dnskey-ds-dlv-ixfr-soa-mx-ns-cname-ptr.nse: This script sends DNS queries over TCP with random source ports, transaction IDs, query names, record types, classes, flags, EDNS options, NSID, TSIG, AXFR, IXFR, SOA, MX, NS, CNAME, PTR, TXT, SRV, AAAA, PTR, NSID, TKEY, NSEC, RRSIG, DNSKEY

#Perform enumeration actions
nmap -n --script "(default and *dns*) or fcrdns or dns-srv-enum or dns-random-txid or dns-random-srcport" <IP>

DNS - 逆引きBF

Reverse BF (Brute Force) is a technique used to discover DNS records by systematically guessing subdomains. This technique is based on the fact that many organizations use predictable subdomain naming conventions.

To perform a reverse BF attack, you need a wordlist containing common subdomain names. Tools like dnsrecon or sublist3r can generate such wordlists for you. Once you have the wordlist, you can use a tool like dnsenum or fierce to perform the actual attack.

The attack involves sending DNS queries for each subdomain in the wordlist and checking if a DNS record exists for that subdomain. If a DNS record is found, it means that the subdomain is valid and can be further investigated.

Reverse BF attacks can be effective in discovering hidden subdomains that may not be easily visible through other means. However, it is important to note that this technique relies on the assumption that the organization follows a predictable subdomain naming convention.

To mitigate the risk of reverse BF attacks, organizations should implement measures such as randomizing subdomain names, using non-predictable naming conventions, and regularly monitoring DNS records for unauthorized subdomains.

dnsrecon -r 127.0.0.0/24 -n <IP_DNS>  #DNS reverse of all of the addresses
dnsrecon -r 127.0.1.0/24 -n <IP_DNS>  #DNS reverse of all of the addresses
dnsrecon -r <IP_DNS>/24 -n <IP_DNS>   #DNS reverse of all of the addresses
dnsrecon -d active.htb -a -n <IP_DNS> #Zone transfer

{% hint style="info" %} 内部IPアドレスに解決するサブドメインを見つけることができれば、そのIP範囲を問い合わせるためにドメインのNSに対して逆DNS BFを試みるべきです。 {% endhint %}

これを行うための別のツール:https://github.com/amine7536/reverse-scan

逆IP範囲を問い合わせることができますhttps://bgp.he.net/net/205.166.76.0/24#_dnsこのツールはBGPでも役立ちます

DNS - サブドメインBF

dnsenum --dnsserver <IP_DNS> --enum -p 0 -s 0 -o subdomains.txt -f subdomains-1000.txt <DOMAIN>
dnsrecon -D subdomains-1000.txt -d <DOMAIN> -n <IP_DNS>
dnscan -d <domain> -r -w subdomains-1000.txt #Bruteforce subdomains in recursive way, https://github.com/rbsec/dnscan

Active Directory サーバー

Active DirectoryADサーバーは、Windowsベースのネットワーク環境で使用されるディレクトリサービスです。ADサーバーは、ユーザーアカウント、グループ、コンピュータ、およびその他のネットワークリソースの管理を担当します。ADサーバーは、ユーザー認証、アクセス制御、およびポリシーの適用など、さまざまな機能を提供します。

ADサーバーのペンテストでは、以下のような攻撃手法が使用されます。

  • ユーザーアカウントの総当たり攻撃(ブルートフォース攻撃)
  • パスワードのハッシュを盗むためのパスワードスプレー攻撃
  • ユーザーアカウントのロックアウトを引き起こすためのアカウントロックアウト攻撃
  • ユーザーアカウントの権限昇格を試みるためのアカウント権限昇格攻撃
  • ドメイン管理者の権限を取得するためのドメイン管理者権限昇格攻撃

これらの攻撃手法を使用して、ADサーバーのセキュリティ脆弱性を特定し、適切な対策を講じることが重要です。

dig -t _gc._tcp.lab.domain.com
dig -t _ldap._tcp.lab.domain.com
dig -t _kerberos._tcp.lab.domain.com
dig -t _kpasswd._tcp.lab.domain.com
nmap --script dns-srv-enum --script-args "dns-srv-enum.domain='domain.com'"

DNSSec

DNSSecDomain Name System Security Extensionsは、DNSDomain Name Systemのセキュリティを強化するための拡張機能です。DNSSecは、DNSのデータの整合性と信頼性を確保するために使用されます。

DNSSecは、以下の主なセキュリティ上の脆弱性を解決するために設計されています。

  • DNSキャッシュポイズニング攻撃者がDNSキャッシュに偽の情報を注入することにより、ユーザーを誤ったウェブサイトに誘導する攻撃手法です。DNSSecは、データの整合性を確保することで、この攻撃を防ぎます。

  • DNSハイジャッキング攻撃者がDNSレコードを改ざんし、ユーザーを攻撃者の制御下にあるウェブサイトに誘導する攻撃手法です。DNSSecは、データの信頼性を確保することで、この攻撃を防ぎます。

DNSSecは、公開鍵暗号を使用してデータの署名と検証を行います。DNSレコードには、データの整合性を確認するためのデジタル署名が含まれています。クライアントは、公開鍵を使用して署名を検証し、データの信頼性を確認します。

DNSSecは、DNSネームサーバーとDNSクライアントの両方でサポートする必要があります。ネームサーバーは、データの署名を行い、クライアントは署名を検証します。

DNSSecは、DNSのセキュリティを向上させるための重要なツールですが、完全なセキュリティを提供するわけではありません。攻撃者がネームサーバー自体を攻撃する場合や、攻撃者が信頼できるネームサーバーを傍受する場合には、DNSSecの保護は効果がありません。

DNSSecは、DNSのセキュリティを向上させるための重要な手段の一つですが、適切な設定と管理が必要です。

#Query paypal subdomains to ns3.isc-sns.info
nmap -sSU -p53 --script dns-nsec-enum --script-args dns-nsec-enum.domains=paypal.com ns3.isc-sns.info

IPv6

"AAAA"リクエストを使用して、サブドメインのIPv6を収集するためのブルートフォース攻撃。

dnsdict6 -s -t <domain>

Bruteforce reverse DNS in using IPv6 addresses

IPv6 addresses are 128-bit addresses that are represented in hexadecimal format. Reverse DNS is a technique used to map an IP address to a domain name. In the case of IPv6 addresses, the reverse DNS lookup is done by querying the PTR records in the DNS server.

To bruteforce reverse DNS using IPv6 addresses, you can follow these steps:

  1. Generate a list of possible IPv6 addresses that you want to bruteforce. This can be done by generating all possible combinations of hexadecimal characters for each segment of the IPv6 address.

  2. Use a DNS lookup tool or a programming language with DNS resolution capabilities to perform reverse DNS lookups for each IPv6 address in your list. This can be done by querying the PTR record for each IPv6 address.

  3. Analyze the results of the reverse DNS lookups. Look for domain names that are associated with the IPv6 addresses. This can help you identify potential targets or gather information about the target network.

  4. Repeat the process with different combinations of hexadecimal characters until you have exhausted all possible IPv6 addresses.

It is important to note that bruteforcing reverse DNS can be time-consuming and resource-intensive, especially when dealing with a large number of IPv6 addresses. Additionally, it is essential to ensure that you have proper authorization and legal permission before performing any kind of penetration testing or hacking activities.

dnsrevenum6 pri.authdns.ripe.net 2001:67c:2e8::/48 #Will use the dns pri.authdns.ripe.net

DNS再帰DDoS

DNS再帰が有効になっている場合、攻撃者はUDPパケットの送信元偽装することで、DNSが応答を被害者サーバーに送信するようにすることができます。攻撃者は、ANYまたはDNSSECレコードタイプを悪用することができます。これらのレコードタイプは、より大きな応答を持つ傾向があります。

DNSが再帰をサポートしているかどうかを確認する方法は、ドメイン名をクエリし、応答にフラグ "ra"(再帰利用可能)が含まれているかどうかを確認することです。

dig google.com A @<IP>

利用できない:

利用可能:

DragonJAR Security Conferenceは国際的なサイバーセキュリティイベントで、2023年9月7日から8日までコロンビアのボゴタで開催されます。このイベントは、スペイン語で最新の研究が発表される技術的な内容の高いイベントであり、世界中のハッカーや研究者を惹きつけています。
以下のリンクから今すぐ登録し、この素晴らしいカンファレンスをお見逃しなく!:

{% embed url="https://www.dragonjarcon.org/" %}

存在しないアカウントへのメール

書籍: Network Security Assessment (第3版)

ターゲットドメインの存在しないアドレスに単純にメールメッセージを送信するだけで、配信不能通知NDNを通じて有用な内部ネットワーク情報が明らかになることがよくあります。

Generating server: noa.nintendo.com

blah@nintendo.com
#550 5.1.1 RESOLVER.ADR.RecipNotFound; not found ##

Original message headers:

Received: from ONERDEDGE02.one.nintendo.com (10.13.20.35) by
onerdexch08.one.nintendo.com (10.13.30.39) with Microsoft SMTP Server (TLS)
id 14.3.174.1; Sat, 26 Apr 2014 16:52:22 -0700
Received: from barracuda.noa.nintendo.com (205.166.76.35) by
ONERDEDGE02.one.nintendo.com (10.13.20.35) with Microsoft SMTP Server (TLS)
id 14.3.174.1; Sat, 26 Apr 2014 16:51:22 -0700
X-ASG-Debug-ID: 1398556333-0614671716199b0d0001-zOQ9WJ
Received: from gateway05.websitewelcome.com (gateway05.websitewelcome.com  [69.93.154.37]) by
barracuda.noa.nintendo.com with ESMTP id xVNPkwaqGgdyH5Ag for <blah@nintendo.com>; Sat,
26 Apr 2014 16:52:13 -0700 (PDT)
X-Barracuda-Envelope-From: chris@example.org
X-Barracuda-Apparent-Source-IP: 69.93.154.37

以下のトランスクリプトのデータは有用です:

  • 内部ホスト名、IPアドレス、およびサブドメインのレイアウト
  • メールサーバーはMicrosoft Exchange Server 2010 SP3を実行しています
  • Barracuda Networksデバイスはコンテンツフィルタリングを実行するために使用されています

設定ファイル

host.conf
/etc/resolv.conf
/etc/bind/named.conf
/etc/bind/named.conf.local
/etc/bind/named.conf.options
/etc/bind/named.conf.log
/etc/bind/*

Bindサーバーを設定する際の危険な設定:

オプション 説明
allow-query DNSサーバーにリクエストを送信することを許可するホストを定義します。
allow-recursion DNSサーバーに再帰的なリクエストを送信することを許可するホストを定義します。
allow-transfer DNSサーバーからゾーン転送を受け取ることを許可するホストを定義します。
zone-statistics ゾーンの統計データを収集します。

HackTricks自動コマンド

Protocol_Name: DNS    #Protocol Abbreviation if there is one.
Port_Number:  53     #Comma separated if there is more than one.
Protocol_Description: Domain Name Service        #Protocol Abbreviation Spelled out

Entry_1:
Name: Notes
Description: Notes for DNS
Note: |
#These are the commands I run every time I see an open DNS port

dnsrecon -r 127.0.0.0/24 -n {IP} -d {Domain_Name}
dnsrecon -r 127.0.1.0/24 -n {IP} -d {Domain_Name}
dnsrecon -r {Network}{CIDR} -n {IP} -d {Domain_Name}
dig axfr @{IP}
dig axfr {Domain_Name} @{IP}
nslookup
SERVER {IP}
127.0.0.1
{IP}
Domain_Name
exit

https://book.hacktricks.xyz/pentesting/pentesting-dns

Entry_2:
Name: Banner Grab
Description: Grab DNS Banner
Command: dig version.bind CHAOS TXT @DNS

Entry_3:
Name: Nmap Vuln Scan
Description: Scan for Vulnerabilities with Nmap
Command: nmap -n --script "(default and *dns*) or fcrdns or dns-srv-enum or dns-random-txid or dns-random-srcport" {IP}

Entry_4:
Name: Zone Transfer
Description: Three attempts at forcing a zone transfer
Command: dig axfr @{IP} && dix axfr @{IP} {Domain_Name} && fierce --dns-servers {IP} --domain {Domain_Name}


Entry_5:
Name: Active Directory
Description: Eunuerate a DC via DNS
Command: dig -t _gc._{Domain_Name} && dig -t _ldap._{Domain_Name} && dig -t _kerberos._{Domain_Name} && dig -t _kpasswd._{Domain_Name} && nmap --script dns-srv-enum --script-args "dns-srv-enum.domain={Domain_Name}"

Entry_6:
Name: consolesless mfs enumeration
Description: DNS enumeration without the need to run msfconsole
Note: sourced from https://github.com/carlospolop/legion
Command: msfconsole -q -x 'use auxiliary/scanner/dns/dns_amp; set RHOSTS {IP}; set RPORT 53; run; exit' && msfconsole -q -x 'use auxiliary/gather/enum_dns; set RHOSTS {IP}; set RPORT 53; run; exit'

DragonJAR Security Conferenceは国際的なサイバーセキュリティイベントで、2023年9月7日から8日までコロンビアのボゴタで開催されます。このイベントは、スペイン語で最新の研究が発表される技術的な内容のイベントであり、世界中のハッカーや研究者を惹きつけています。 以下のリンクから今すぐ登録し、この素晴らしいカンファレンスをお見逃しなく!:

{% embed url="https://www.dragonjarcon.org/" %}

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥