前面学习一下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

DNS信息探测的更多相关文章

  1. Kali Linux渗透测试实战 2.1 DNS信息收集

    目录 2.1 DNS信息收集1 2.1.1 whois查询3 2.1.2 域名基本信息查询4 Dns服务器查询4 a记录查询4 mx记录查询5 2.1.3 域名枚举5 fierse 5 dnsdict ...

  2. wooyun内网渗透教学分享之内网信息探测和后渗透准备

    常规的,从web业务撕开口子url:bit.tcl.comgetshell很简单,phpcms的,一个Phpcms V9 uc api SQL的老洞直接getshell,拿到shell,权限很高,sy ...

  3. ubuntu 永久设置dns信息

    ubuntu 自从12.04后,会自动刷写 /etc/resolv.conf 文件,导致写入的dns信息会在重启的时候丢失. ============================ 转自:http: ...

  4. kali linux 一些工具及命令集1(搜集DNS信息)

    DNS信息收集 1.dnsdict6   用于查看ipv6的dns信息,国内很少ipv6,基本无用 2.dnsmap 收集dns信息,同类别还有dnsenum,dnswalk 使用dnsmap需先找到 ...

  5. 【渗透课程】第四篇-Web安全之信息探测

    Web之信息探测,从这篇开始就正式进入了Web渗透实战过程了,嗯,前面都是讲基础,下面我们来讲Web中的信息探测. 信息探测,主要的目的 收集目标服务器系统信息(IP,服务器所用系统等) 收集目标网站 ...

  6. Kali学习笔记4:DNS信息收集

    DNS记录 A记录 A记录是用来创建到IP地址的记录. A记录设置技巧 1.如果想创建不带www的记录,即cnblog.com,在主机记录中填写@或者留空,不同的注册商可能不一样. 2.创建多个域名到 ...

  7. DNS信息收集命令nslookup

    DNS信息收集--NSLOOKUP 前面文章我介绍了dig命令,NSLOOKUP命令用法差不多 简单查询 语法:nslookup domain [dns-server] nslookup www.si ...

  8. linux nslookup-查询域名DNS信息的工具

    博主推荐:更多网络测试相关命令关注 网络测试  收藏linux命令大全 nslookup命令是常用域名查询工具,就是查DNS信息用的命令. nslookup4有两种工作模式,即“交互模式”和“非交互模 ...

  9. Linux kali信息探测以及 Nmap 初体验

    Nmap是一个开源的网络连接端口扫描软件(内置于kali中) 打开Nmap: > nmap 打开桌面化Nmap——zenmap: > zenmap Nmap支持多种扫描方式,用法简单,参数 ...

随机推荐

  1. mysql实现id自增

    用下面这句话就可以实现插入mysql数据时候实现id自增 create table shuju (id int(10) auto_increment primary key,name varchar( ...

  2. Debian10服务器安装

    对于使用惯windows系统的人来说,刚开始接触使用linux系统一定是很不习惯,因为使用环境的变化经常会出现一些错误.当然,对于我来说,我也是刚刚才开始接触Linux,对此,有些地方想不到的,可以多 ...

  3. jvm学习笔记:一、类的加载、连接、初始化

    在JAVA代码中,类型的加载.连接与初始化过程都是程序运行期间完成的. 类型的加载:将已经存在的class从硬盘加载到内存. 类型的连接:将类与类之间的关系确定好. 类型的初始化:类型 静态的变量进行 ...

  4. vim简单题练习-------出自《鸟哥的linux私房菜》第309页码题目

    用vim打开文件,在第34行向右移动15字符,怎么做? 34G 15->或者15j 如何到达文件的页首或者页尾? 1G或者gg G 如何在光标所在行中,移动到行头及行尾? home end vi ...

  5. Java内存模型(二)volatile底层实现(CPU的缓存一致性协议MESI)

    CPU的缓存一致性协议MESI 在多核CPU中,内存中的数据会在多个核心中存在数据副本,某一个核心发生修改操作,就产生了数据不一致的问题,而一致性协议正是用于保证多个CPU cache之间缓存共享数据 ...

  6. appium环境搭建(二)----搭建android开发环境

    一.安装Java环境: java 环境分JDK 和JRE ,JDK就是Java Development Kit.简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境. JRE ...

  7. [python] 执行 dos 命令

    python的os模块 os模块调用CMD命令有两种方式:os.popen(),os.system(). 都是用当前进程来调用. os.system是无法获取返回值的.当运行结束后接着往下面执行程序. ...

  8. sql server第三方产品

    sql server第三方产商工具 双活: 1. Moebius for SQL Server :http://www.grqsh.com/Subpage/product_MoebiusDA.html ...

  9. [转帖]linux下使用 du查看某个文件或目录占用磁盘空间的大小

    linux下使用 du查看某个文件或目录占用磁盘空间的大小 du -ah --max-depth= 去年用过一次 后来忘记了.. 命令这个东西 熟能生巧.. https://www.cnblogs.c ...

  10. python学习笔记四 (运算符重载和命名空间、类)

    从以上代码中应该了解到: obj.attribute  查找的顺序: 从对象,类组成的树中,从下到上,从左到右到查找最近到attribute属性值,因为rec中存在name的属性,所以x.name可以 ...