zoukankan      html  css  js  c++  java
  • DNS信息探测

    前面学习一下DNS域名解析原理及过程,今天我们学习下DNS域名信息的探测

    本章主要目标是从各个角度搜集测试目标的基本信息,包括搜集信息的途径、各种工具的使用方法,以及简单的示例。

    0x00 DNS信息有哪些

    学习了DNS基本知识,其实也大概就知道有哪些信息了

    1)ip

    2)域名注册信息

    3)DNS记录

    4)DNS服务器

    5)子域

    下面就介绍如何收集这些信息吧

    0x01 DNS信息之IP

    ping 域名

    比如查iprezi.cn

    直接 ping iprezi.cn

    可以看到 iprezi.cn 对应的 ip 是47.92.64.72

    这样就得到这个域名的ip了,这就是DNS的功能,解析域名以得到对应的ip地址

    绕过CDN找真实IP

    一般情况是可以这样的域名对应的ip的,但是如果目标使用的CDN(内容分发网络)

    这里简单介绍一下CDN

    CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。

     网上介绍了很多找真实ip的方法,其实了解了CDN的原理后,如果CDN做得比较好,很难找到真实ip的,收集了一些方法大家参考一下

    0x01 DNS信息之域名注册信息

    Whois 简单来说,就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商、域名注册日期和过期日期等)。通过域名Whois服务器查询,可以查询域名归属者联系方式,以及注册和到期时间

    方法1:提供域名信息查询的站点

    可以上搜索引擎上搜索一下

    站长之家

    方法2:whois命令

     whois是Linux/Unix环境下的命令,按字面意思就是问“他是谁?”,通过对域名的检索, 可以反馈回域名的注册信息,包括持有人,管理资料以及技术联络资料, 也包括该域名的域名服务器。但是在世界上有几个主要的whois服务器,它们是 whois.RIPE.net、whois.LACNIC.net、whois.APNIC.net、whois.ARIN.net,分别在各大洲
    whois [-pot] domainname

    0x02 DNS信息之DNS记录

    下面说一下比较常见一些记录信息

    A/AAAA、CNAME、MX、NS、TXT、SPF
    下面挨个介绍一下。

    A记录/AAAA记录

    IPv4:
    • 示例:ns1.exmaple.com. IN A 198.51.100.2
    • 解释:【domain】 IN A 【IP地址】
    IPv6:
    • 示例:ns1.exmaple.com. IN AAAA 8fe0::8f61:ac8:30cd:a16e
    • 解释:【domain】 IN AAAA 【IP地址】
      ※IN的意思是「Internet」,不是IN/OUT的「IN」。
    干什么用呢?

    我们在浏览器输入域名后,需要向DNS服务器请求,找到这个域名对应的服务器IP。上面示例就是这么一条记录。
    虽然域名和IP都可以变更,但是相比来说域名变更更加简单和随意。所以当网站更换自己域名的时候,就需要修改这条记录。

    CNAME

    • 示例:sub.example.com. IN CNAME hoge.example.com.
    • 解释:【別名】 IN CNAME 【原名】
    干什么用呢?

    给某一个domain起多个名字。
    类似于,jd.com,jd360.com,jingdong.com虽然是不同名字的域名,但是可以指向同一个原名jd.com。可以让企业的对外展示更加灵活。
    举例:
    jd360.com IN CNAME jd.com
    jingdong.com IN CNAME jd.com
    jd.com IN A 123.123.123.123 (这条是A记录例子)

    MX记录

    • MX记录(Mail Exchange):邮件路由记录
      在DNS上设定,用于将邮箱地址@符号后的域名指向邮件服务器。
    • 示例:example.com. IN MX 10 mail.example.com.
    • 解释:【domain】 IN MX 【优先度】 【邮件服务器】
    干什么用呢?

    当发信侧服务器给受信侧发邮件时,首先会要求DNS服务器解析受信侧邮箱地址中@后面部分的域名对应的MX记录(DNS的写法可以理解成example.com 的A记录下面,有一行上面示例的MX记录,当然邮箱服务器也有对应的A记录)。
    这样,邮件就直接发到对应的MX记录的A记录里的IP了。
    例子:给test@exmaple.com发邮件的话,
    DNS会返回给发信侧198.51.100.3这个IP

    exmaple.com. IN A 198.51.100.2
    example.com. IN MX 10 mail.example.com.
    mail.example.com. IN A 198.51.100.3

    ※如果是普通用户通过【exmaple.com】浏览主页,那么DNS继续返回 198.51.100.2 。这个其实也需要DNS判断请求服务器是邮件服务器还是普通的访问。

    NS记录

    • 指定域名解析服务器。
    • 示例:example.com. IN NS ns1.example.com.
    • 解释:【domain】 IN NS 【DNS服务器】
    干什么用呢?

    指定该域名由哪个DNS服务器来进行解析。

    TXT记录

    • 示例:ns1.exmaple.com. IN TXT "联系电话:XXXX"
    • 解释:【domain】 IN TXT 【任意字符串】
    干什么用呢?

    一般指某个主机名或域名的说明,或者联系方式,或者标注提醒等等。

    SPF记录

    SPF记录是TXT记录的一个运用。后面的备注需要按照指定的格式才能有效。

    • 示例:exmaple.com. IN TXT "v=spf1 ip4:198.51.100.1 ~all"
    • 解释:【domain】 IN TXT 【送信侧邮件服务器确认规则】
    干什么用呢?

    从发信侧服务器设定到DNS上的这条记录中,读取信息,判断发信侧是否合法。
    如果不符合规则,那么按照约定的规则处理掉。
    跟MX记录正好相反。
    MX:我是收件服务器,你找我时,请参考我设定到DNS服务器上的MX记录。
    SPF:我是发信服务器,你接受邮件时,请参考我设定到DNS服务器上SPF规则。如果不是我发的信,你可以删掉或者接收。

    SPF记录规则
    1. 格式:
      版本 空格 定义 空格 定义 (空格 定义的循环)
      跟着例子看的话,比较好理解。
      example.com. IN SPF "v=spf1 ip4:192.0.2.1 -all"

      • v=spf1 是版本。只出现一次。
      • ip4:192.0.2.1 第一个定义
      • -all 第二个定义
    2. 定义的格式。

      • 种类
        | all | ip4 | ip6 | a | mx | ptr | exists | include|
      • 前缀
        "+" Pass(通过)
        "-" Fail(拒绝)
        "~" Soft Fail(软拒绝)
        "?" Neutral(中立)
    3. 定义测试
      测试时,将从前往后依次测试每个定义。
      如果一个定义命中了要查询的 IP 地址,则由相应定义的前缀决定怎么处理。默认的前缀为+。
      如果测试完所有的 定义也没有命中,则结果为 Neutral。
      结果及处理方法一览

    结果说明服务器处理办法
    Pass 发件IP是合法的 接受来信
    Fail 发件 IP 是非法的 退信
    Soft Fail 发件 IP 非法,但是不采取强硬措施 接受来信,但是做标记
    Neutral SPF 记录中没有关于发件 IP 是否合法的信息 接受来信
    None 服务器没有设定 SPF 记录 接受来信
    PermError 发生了严重错误(例如 SPF 记录语法错误) 没有规定
    TempError 发生了临时错误(例如 DNS 查询失败) 接受或拒绝

    方法1:nslookup

    nslookup命令用于查询DNS的记录,查看域名解析是否正常,在网络故障的时候用来诊断网络问题。

    基本使用方法

    nslookup [-pot] domain [dns-server]

    查询dns记录

    nslookup -qt=type domain [dns-server]

    • 其中,type可以是以下这些类型:
    • A 地址记录
    • AAAA 地址记录
    • AFSDB Andrew文件系统数据库服务器记录
    • ATMA ATM地址记录
    • CNAME 别名记录
    • HINFO 硬件配置记录,包括CPU、操作系统信息
    • ISDN 域名对应的ISDN号码
    • MB 存放指定邮箱的服务器
    • MG 邮件组记录
    • MINFO 邮件组和邮箱的信息记录
    • MR 改名的邮箱记录
    • MX 邮件服务器记录
    • NS 名字服务器记录
    • PTR 反向记录
    • RP 负责人记录
    • RT 路由穿透记录
    • SRV TCP服务器信息记录
    • TXT 域名对应的文本信息
    • X25 域名对应的X.25地址记录

    方法2:host

    Host指令提供一个简单的DNS解析的功能。正常地使用名称到IP的解析,当指令没有任何参数和选项的时候,它将输出简单的带命令行参数和选项的概要。

    linux系统自带host指令,下面是查询dns服务器的命令

    host -t type domainname

    type同nslookup的

    方法3:dig

    Dig是一个在类Unix命令行模式下查询DNS包括NS记录,A记录,MX记录等相关信息的工具,详细使用方法

     dig +short type cnblogs.com

    type同nslookup的

    0x03 DNS信息之DNS服务器

    方法1:host

    Host指令提供一个简单的DNS解析的功能。正常地使用名称到IP的解析,当指令没有任何参数和选项的时候,它将输出简单的带命令行参数和选项的概要。

    linux系统自带host指令,下面是查询dns服务器的命令

    host -t ns domainname

    方法2:whois

    提供whois查询的站点很多 google“whois”,你可以得到这些站点,下面是站长之家

    0x04 DNS信息之子域

     对子域名的爆破几乎是了解和扩大一个目标范围最直接的方式,其质量取决于爆破的字典。

    有很多爆破的工具,比如

    subbrutehttps://github.com/TheRook/subbrute/releases
    Sublist3rhttps://github.com/aboul3la/Sublist3r

    参考资料

    链接:https://blog.csdn.net/MONKEY_D_MENG/article/details/6173083

    链接:https://www.cnblogs.com/daxian2012/archive/2013/01/10/2854126.html

    链接:https://www.4hou.com/technology/11782.html

  • 相关阅读:
    【前端优化之渲染优化】大屏android手机动画丢帧的背后
    ES6/ES2015核心内容(上)
    ES6/ES2015核心内容(上)
    ES6/ES2015核心内容(上)
    ES6/ES2015核心内容(上)
    Java实现zip文件解压[到指定目录]
    Java实现zip文件解压[到指定目录]
    Java实现zip文件解压[到指定目录]
    Java实现zip文件解压[到指定目录]
    spring boot项目中处理Schedule定时任务
  • 原文地址:https://www.cnblogs.com/alummox/p/11166971.html
Copyright © 2011-2022 走看看