区域遍历DNSSEC

DNSSEC

  • DNSSEC通过向现有DNS记录添加加密签名来提供一层安全性
  • 这些签名与常见的记录类型(如A,AAAA,MX)一起存储

DNSSEC - 新记录

记录 目的
RRSIG 包含加密签名。
NSEC和NSEC3 用于明确拒绝存在DNS记录
DNSKEY 包含公共签名密钥
DS 包含DNSKEY记录的哈希值
$ dig +multi +dnssec A paypal.com

... snipped ...

;; ANSWER SECTION:
paypal.com.     54 IN A 64.4.250.33
paypal.com.     54 IN A 64.4.250.32
paypal.com.     54 IN RRSIG A 5 2 300 (
                20170804231420 20170705224524 11811 paypal.com.
                U5vZ/hpuquFk3M9
bg
SFlSngl3DBJTJiJZzprBSU50jgB
                KKj0e8D3UkRgAntYyS3Em85ddO3AGTviWbZu/amCk7Rj
                bdm2PnqkljtdZtzLmNXMZ6a5WqjyIbYwdeIVGcA/uX1V
                E6P/dL4W78tkPbRfl49klvd/kwrzId9OKSzd1Cg= )

... snipped ...

DNSSEC - 经过身份验证的拒绝存在(RFC 7129)

在DNS中,当客户端查询不存在的域时,服务器必须拒绝该域的存在。由于加密签名,在DNSSEC中更难做到这一点。

认证拒绝存在的问题(DNSSEC)

  1. NXDOMAIN响应是通用的,攻击者可以欺骗响应
  2. 即时签署响应意味着性能和安全问题
  3. 不可能预先签署每个可能的NXDOMAIN记录,因为会有无限的可能性

NSEC

  • 区域条目按字母顺序排序,NextSECure(NSEC)记录指向您查找的记录之后的记录
  • 基本上,NSEC记录说,“子域X和子域Y之间没有子域。”
$ dig +dnssec  @ns1.insecuredns.com firewallll.insecuredns.com
... snipped ...
firewall.insecuredns.com. 604800 IN NSEC mail.insecuredns.com. A RRSIG NSEC
... snipped ...

安装ldnsutils的ldns-walk(部分ldnsutils)可用于在区域遍历DNSSEC签名的NSEC区。

# On Debian/Ubuntu

$ sudo apt-get install ldnsutils
# On Redhat/CentOS

$ sudo yum install ldns

# You may need to do

$ sudo yum install -y epel-release

区域遍历NSEC - LDNS

$ ldns-walk @name_server domain_name

区域遍历NSEC - 挖掘

  • 您可以按照现有域的NSEC记录的链接列表列出所有子域。
$ dig +short NSEC api.nasa.gov
apm.nasa.gov. CNAME RRSIG NSEC
$ dig +short NSEC apm.nasa.gov
apmcpr.nasa.gov. A RRSIG NSEC

从NSEC中提取子域

  • 您可以使用awk实用程序提取特定的子域部分。
$ dig +short NSEC api.nasa.gov |  awk '{print $1;}'
apm.nasa.gov.

NSEC3

  • NSEC3记录就像NSEC记录,但NSEC3提供了NSEC没有的域名哈希的签名。
  • 返回哈希旨在防止区域枚举(或使区域枚举变得难以执行,增加其攻击代价)。
231SPNAMH63428R68U7BV359PFPJI2FC.example.com. NSEC3 1 0 3 ABCDEF
NKDO8UKT2STOL6EJRD1EKVD1BQ2688DM A NS SOA TXT AAAA RRSIG DNSKEY NSEC3PARAM
NKDO8UKT2STOL6EJRD1EKVD1BQ2688DM.example.com. NSEC3 1 0 3 ABCDEF
231SPNAMH63428R68U7BV359PFPJI2FC A TXT AAAA RRSIG

NSEC3 - 哈希的链接列表

为域名生成NSEC3哈希

  • ldns-nsec3-hash(ldnsutils的一部分)为给定的salt值和迭代次数生成域名的NSEC3哈希迭代次数和盐值可作为NSEC3记录的一部分。
$ ldns-nsec3-hash -t 3 -s ABCDEF example.com 231spnamh63428r68u7bv359pfpji2fc.
$ ldns-nsec3-hash -t 3 -s ABCDEF www.example.com nkdo8ukt2stol6ejrd1ekvd1bq2688dm.

区域遍历NSEC3

  • 攻击者可以收集所有子域哈希并使用像nsec3walkernsec3map这样的工具进行哈希离线破解,从而帮助我们自动收集NSEC3 hases并破解哈希

安装nsec3walker

# Installing nsec3walker

$ wget https://dnscurve.org/nsec3walker-20101223.tar.gz
$ tar -xzf nsec3walker-20101223.tar.gz
$ cd nsec3walker-20101223
$ make

区域行走NSEC3

使用nsec3walker区域行走NSEC3保护区:

# Collect NSEC3 hashes of a domain

$ ./collect insecuredns.com > insecuredns.com.collect
# Undo the hashing, expose the sub-domain information.

$ ./unhash< insecuredns.com.collect > insecuredns.com.unhash

区域行走NSEC3

# Checking the number of sucessfully cracked sub-domain hashes

$ cat icann.org.unhash | grep "icann" | wc -l 
45
# Listing only the sub-domain part from the unhashed data

$ cat icann.org.unhash | grep "icann" | awk '{print $2;}'

del.icann.org.
access.icann.org.
charts.icann.org.
communications.icann.org.

... snipped ...

redis.icann.org.
svn.icann.org.
admin.icann.org.
orbis.icann.org.
jira.icann.org.
omblog.icann.org.
pptr.icann.org.
splunk.icann.org.
nomcom.icann.org.
rssac.icann.org.
sftp.icann.org.
netscan.icann.org.

results matching ""

    No results matching ""