跳转至

T1596-001-搜索开放的技术数据库-DNS/被动DNS

来自ATT&CK的描述

在入侵受害者之前,攻击者可以在DNS数据中搜索可在目标确定期间使用的有关受害者的信息。DNS信息可能包括各种详细信息,包括注册的名称服务器以及概述目标子域,邮件服务器和其他主机的地址的记录。

攻击者可以搜索DNS数据以收集可操作的信息。也可以直接查询目标组织的名称服务器,或者搜索记录了DNS查询响应的集中存储库(称为被动DNS)(引自:DNS Dumpster)(引自:Circl Passive DNS)。攻击者还可能寻求和定位揭示目标内部网络信息的DNS错误配置/泄漏。这些来源提供的信息可能为如下活动提供可能性:其他形式的侦察活动(例如:搜索受害者拥有的网站搜索开放网站/域),建立运营资源(例如:获取基础设施入侵基础设施),或实现初始访问(例如:外部远程服务信任关系)。

测试案例

信息收集--DNS信息收集

NSLOOKUP

解析A记录、MX记录、NS记录

终端中输入 :nslookup
在显示的页面中输入域名,会解析出最终的A记录和IP地址
>set type=a      # 指定查询类型为A记录(主机记录)
>set type=mx     # 指定查询类型为MX记录(邮件交换记录·)
>set type=ns     # 指定查询类型为NS记录(域名服务器记录)
>sina.com        # 查询 sina.com 这个域名

反向域名解析

使用IP反向解析出域名(ptr)
>set type=ptr
> 66.102.251.24

指定server IP

>server 8.8.8.8        # 指定我们想要指定的DNS服务器的IP,使用该服务器来进行查询
>www.sina.com

指定所有类型

>set type=any    # 指定查询所有类型的记录
>www.sina.com

DIG

查询所有记录

dig sina.com any @8.8.8.8
# 查询 sina.com 的所有类型的记录,并指定IP地址为 8.8.8.8
# 建议指定不同的域名服务器IP对同一个域名进行解析(比较结果,确定查询的准确性)

筛选输出结果

dig mail.163.com any
# 查询163的mail的记录

dig +noall mail.163.com any 
# +noall筛选输出结果(即什么结果都不输出)

dig +noall +answer mail.183.com any 
# 只显示我们最终想要的结果

反向查询(ptr)

dig -x  66.102.251.24
# 反向查询该IP地址的ptr记录,得到其域名

查询DNS服务器的bind版本信息

# 在Linux和Unix服务器中提供的DNS服务的软件包一般都是bind
# 在获得bind信息后就可以查看它的bind有哪些漏洞,依据这些漏洞获得所有的DNS记录

dig +noall +answer txt chaos VERSION.BIND @mail.163.com
#   过滤筛选输出    文本 bind的class类型     域名

对DNS记录进行追踪(DNS追踪)

dig +trace www.sina.com

DNS区域传输

DNS区域传输是发生在DNS服务器之间信息同步的一个过程(区域传输机制,通常只发生在本域域名服务器之间),在渗透测试中被尝试用来获取所有的DNS记录信息

dig @ns1.sina.com sina.com axfr
#    先指定ns服务器         发起区域传输的指令
# DNS服务器的域名查询一般都是UDP的53端口,区域传输即域名服务器之间的同步数据使用TCP的53端口

host -T -l sina.com ns1.sina.com
# -T:显示时间  -l:进行AXFR的全区域传输  
# 如果是查询 sina.com 的话,后面一定要跟一个 sina 的域名服务器的地址(查询什么跟什么)

DNS字典爆破

准备一个包含常见主机记录名称的字典,用字典向DNS服务器发起一个字典式的暴力破解。如果有这个记录,DNS服务器就会返回其对应的IP地址。如果没有就会返回一个错误的结果(尝试将目标服务器里面的所有的主机记录和子域的域名记录给爆破出来)

dnsenum

sudo apt install dnsenum        # 安装dnsenum
dnsenum -f dns.txt -dnsserver 8.8.8.8 sina.com -o sina.xml
# -o:把爆破出来的内容保存成一个xml文件,-f:指定字典文件

dnsmap

sudo apt install dnsmap    # 安装dnsmap
dnsmap sina.com -w dns.txt
# -w:用来指定字典文件

DNS注册信息(whois查询)

收集DNS的注册信息,比如注册新浪sina.com的信息。有的域名在注册时会留下注册人的姓名、电话、邮箱、公司地址等等信息(可以用来作为社会工程学或者物理攻击的手段)。

可以通过whois来查询这些信息。不同地区、区域有不同地区的whois信息,那个国家用那个NIC必须分配后才能使用,不能随便乱用,否者会造成互联网上的混乱,而且可能出现重复的IP地址。最早的IP分配就是由InterNic来完成的,后来不同地区成立了一些地区性质的NIC,亚太地区的NIC是由APNIC负责。

通过whois命令行工具来查询

sudo apt install whois    # 安装whois工具
whois 8.8.8.8
whois sina.com
whois -h whois.apnic.net  66.102.251.24

在线whois网站查询

http://www.afrinic.net    # AFRINIC
http://www.apnic.net      # APNIC
http://ws.arin.net        # ARIN
http://www.iana.com       # IANA
http://www.icann.org      # ICANN
http://www.lacnic.net     # LACNIC
http://www.nro.net        # NRO
http://www.ripe.net       # RIPE
http://internic.net       # InterNic

检测日志

测试复现

测试留痕

检测规则/思路

建议

许多此类攻击活动的发生率很高,并且相关的误报率也很高,并且有可能发生在目标组织的视野之外,从而使防御者难以发现。

检测工作可能会集中在攻击者生命周期的相关阶段,例如在"初始访问"阶段。

相关TIP

[[T1596-002-搜索开放的技术数据库-WHOIS]] [[T1596-003-搜索开放的技术数据库-数字签名]] [[T1596-004-搜索开放的技术数据库-CDN]] [[T1596-005-搜索开放的技术数据库-公开的扫描数据库]]

参考推荐

MITRE-ATT&CK-T1596-001

https://attack.mitre.org/techniques/T1596/001/

信息收集——DNS信息收集

https://blog.csdn.net/weixin_45126664/article/details/107603032