zoukankan      html  css  js  c++  java
  • kali学习-被动信息收集-DNS相关

    1. 被动信息收集简介

    2. DNS 查询

    3.被动信息收集-nslookup

    4.被动信息收集-dig

    5.DNS字典爆破

    1. 被动信息收集简介


    1. OSINT

      美国军方:http://www.fas.org/irp/doddir/army/atp2-22-9.pdf

      北大西洋公约组织:http://information-retrieval.info/docs/NATO-OSINT.html

    2. 信息搜集内容

      • IP地址段
      • 域名信息
      • 邮件地址
      • 文档内容数据
      • 公司地址
      • 公司组织架构
      • 联系电话/传真号码
      • 人员姓名/职务
      • 目标系统使用的技术架构
      • 公开的商业信息
    3. 信息用途

      • 用信息描述目标
      • 发现
      • 社会工程学攻击
      • 物理缺口

    2. DNS 查询


      1. 域名记录

        • A:主机地址(域名 -> IP)
        • Cname:主机别名记录
        • NS:域名服务器记录
        • MX:邮件交换记录
        • PTR:反向解析(IP -> 域名)
      2. DNS查找:

        • 浏览器缓存,浏览器会缓存DNS记录一段时间(2-30min)
        • 系统缓存(gethostname)
        • 路由器缓存
        • 如果还是没有,那么就去检查ISP有没有吧
        • 递归搜索
        • ISP的DNS服务器会从根域名开始进行递归查询
      3. 递归查询:

        主机向本地域名服务器的查询一般都是采用递归查询。

        如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其根域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步查询。因此,递归查询返回的查询结果或者是所要查询的IP地址,或者是返回一个失败的响应,表示无法查询到所需的IP地址。 

      4. 迭代查询:

        本地域名服务器向根域名服务器的查询通常是采用迭代查询。

        当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么返回给本地域名服务器所要查询的IP地址,要么返回给本地域名服务器下一步应当查询的域名服务器的IP地址。

      5. 假设的主机想知道另一个主机(域名为 my.xxsilence.net)的IP地址。具体步骤如下:

        • ① 主机先向其本地域名服务器进行递归查询,如果缓存中没有,继续下一步。

        • ② 本地域名服务器采用迭代查询,先向一个根域名服务器查询。

        • ③ 根域名服务器告诉本地域名服务器,下一次查询的顶级域名服务器 dns.net。

        • ④ 本地域名服务器向顶级域名服务器 dns.net。

        • ⑤ 顶级域名服务器 dns.net,下一次应查询的权限域名服务器dns.xxsilence.net的IP地址。

        • ⑥ 本地域名服务器向权限域名服务器dns.xxsilence.net进行查询。

        • ⑦ 权限域名服务器dns.xxsilence.net告诉本地域名服务器,所查询的主机的IP地址。

        • ⑧ 本地域名服务器最后把查询结果告诉主机。

    3.被动信息收集-nslookup

          

    1. NSLOOKUP

    1. type=a、mx、ns、any
    2. 或者使用 q 。(q = type)
    3. 组合使用

      nslookup -type=ns example.com 156.154.70.22

    1. 主机解析 Cname(别名记录)

    2. 只查询 A 记录

      > set type=a
      > www.sina.com
    3. 只查询 mx 记录

      > set type=mx
      > sina.com
      
    4. # 查邮件交换服务器的IP地址
      > set type=a
      > freemx1.sinamail.sina.com.cn
      > freemx2.sinamail.sina.com.cn
      > freemx3.sinamail.sina.com.cn.
    5. 查询域名服务器名称

      > set type=ns
      > sina.com
    6. # 查询域名服务器的IP地址
      > set type=a
      > ns1.sina.com.
      > ns4.sina.com.
      > ns3.sina.com.cn.
      > ns4.sina.com.cn.
      > ns1.sina.com.cn.
      
    7. 查询 PTR 记录

      > set type=ptr
      > 202.108.3.242
      

    8. # 查询域名对应的多条 IP 记录

      set type=a 
      mail3-242.sinamail.sina.com.cn. 

    9. 设置指定域名服务器

      # 指定域名服务器之后,两次结果不同
      > server 8.8.8.8
      > www.sina.com 
    10. 指定 type 为 any

      > set type=any
      > sina.com
    11. text = "v=spf1 include:spf.sinamail.sina.com.cn -all"
      # spf 记录:反垃圾邮件记录
      # 在接收邮件的时候进行反向域名解析,查询比对这个记录,来确认是否是垃圾邮件
      
    12. 组合使用
    13. # 默认使用 /etc/resolv.conf 文件的域名服务器
      root@kali:~# cat /etc/resolv.conf 
          domain localdomain
          search localdomain
          nameserver 10.10.10.2
      
      root@kali:~# nslookup -q=any 163.com
          Server:     10.10.10.2
          Address:    10.10.10.2#53
      
      # 指定域名服务器
      root@kali:~# nslookup -q=any 163.com 114.114.114.114

    4.被动信息收集-dig

     1. DIG

    2. 区域传送

    3. 帮助文件

    1. DIG

    • dig @8.8.8.8 www.sina.com mx
    • dig www.sina.com any
    • 反向查询:dig +noall +answer -x 8.8.8.8
    • bind版本信息: dig +noall +answer txt chaos VERSION.BIND @ns3.dnsv4.com
    • DNS追踪: dig +trace example.com
    • 抓包比较递归查询、迭代查询过程的区别

    1. 默认使用 /etc/resplv.conf 指定的域名服务器

      root@kali:~# nslookup sina.com -type=any 8.8.8.8
          Server:     8.8.8.8
          Address:    8.8.8.8#53
      
          Non-authoritative answer:
          Name:   sina.com
          Address: 66.102.251.33
      
      #默认使用 /etc/resplv.conf 指定的域名服务器
      root@kali:~# dig sina.com any
    2. # 指定域名服务器
      root@kali:~# dig sina.com any @8.8.8.8
    3. # 尝试指定不同的域名服务器
      root@kali:~# dig sina.com any @202.106.2.20
      root@kali:~# dig sina.com any @114.114.114.114
      root@kali:~# dig sina.com any @8.8.8.8
    4. 迭代别名记录查询

      # 修改默认域名服务器
      root@kali:~# cat /etc/resolv.conf 
          domain localdomain
          search localdomain
          nameserver 114.114.114.114
      
      root@kali:~# dig mail.163.com any
    5. 一些参数

      • +noall:不显示信息
      • +answer:显示结果

        root@kali:~# dig +noall +answer mail.163.com any
        mail.163.com.       131 IN  CNAME   mail163.ntes53.netease.com.
        root@kali:~# dig +noall +answer mail.163.com any | awk '{print $5}'
    6. 反向查询

      root@kali:~# dig 163.com
    7. # 反向查询 PTR记录
      root@kali:~# dig -x 123.58.180.8
    8. 查询 bind 版本信息

      # 使用 dig 默认只会查询当前 fqdn 名称,不会查询所有的记录
      # dig 可以查询 bind 版本信息,根据 bind 漏洞,就可以全部获取 DNS 服务器权限
      root@kali:~# dig sina.com any
    9. # 查询结果为空(被隐藏)
      root@kali:~# dig +noall +answer txt chaos VERSION.BIND @ns2.sina.com.
      VERSION.BIND.       0   CH  TXT "  "
    10. DNS 追踪

      # 跟踪过程:直接迭代查询,不经过本地缓存域名0服务器(从根域开始)
      
      root@kali:~# dig +trace 163.com
    11. 抓包比较递归查询、迭代查询过程的区别

    2. 区域传送


    1. 区域传送:在本域的各个域名服务器之间进行信息同步

    2. 区域传送

      # dig @ns1.example.com example.com axfr
      
      root@kali:~# dig sina.com any
    3. root@kali:~# dig @ns2.sina.com sina.com axfr
    4. # host -T -l sina.com 8.8.8.8
      
      root@kali:~# host -T -l sina.com ns2.sina.com.

    3. 帮助文件


    root@kali:~# dig -h
    Usage:  dig [@global-server] [domain] [q-type] [q-class] {q-opt}
                {global-d-opt} host [@local-server] {local-d-opt}
                [ host [@local-server] {local-d-opt} [...]]
    Where:  domain    is in the Domain Name System
            q-class  is one of (in,hs,ch,...) [default: in]
            q-type   is one of (a,any,mx,ns,soa,hinfo,axfr,txt,...) [default:a]
                     (Use ixfr=version for type ixfr)
            q-opt    is one of:
                     -4                  (use IPv4 query transport only)
                     -6                  (use IPv6 query transport only)
                     -b address[#port]   (bind to source address/port)
                     -c class            (specify query class)
                     -f filename         (batch mode)
                     -i                  (use IP6.INT for IPv6 reverse lookups)
                     -k keyfile          (specify tsig key file)
                     -m                  (enable memory usage debugging)
                     -p port             (specify port number)
                     -q name             (specify query name)
                     -t type             (specify query type)
                     -u                  (display times in usec instead of msec)
                     -x dot-notation     (shortcut for reverse lookups)
                     -y [hmac:]name:key  (specify named base64 tsig key)
            d-opt    is of the form +keyword[=value], where keyword is:
                     +[no]aaflag         (Set AA flag in query (+[no]aaflag))
                     +[no]aaonly         (Set AA flag in query (+[no]aaflag))
                     +[no]additional     (Control display of additional section)
                     +[no]adflag         (Set AD flag in query (default on))
                     +[no]all            (Set or clear all display flags)
                     +[no]answer         (Control display of answer section)
                     +[no]authority      (Control display of authority section)
                     +[no]badcookie      (Retry BADCOOKIE responses)
                     +[no]besteffort     (Try to parse even illegal messages)
                     +bufsize=###        (Set EDNS0 Max UDP packet size)
                     +[no]cdflag         (Set checking disabled flag in query)
                     +[no]class          (Control display of class in records)
                     +[no]cmd            (Control display of command line)
                     +[no]comments       (Control display of comment lines)
                     +[no]cookie         (Add a COOKIE option to the request)
                     +[no]crypto         (Control display of cryptographic fields in records)
                     +[no]defname        (Use search list (+[no]search))
                     +[no]dnssec         (Request DNSSEC records)
                     +domain=###         (Set default domainname)
                     +[no]dscp[=###]     (Set the DSCP value to ### [0..63])
                     +[no]edns[=###]     (Set EDNS version) [0]
                     +ednsflags=###      (Set EDNS flag bits)
                     +[no]ednsnegotiation (Set EDNS version negotiation)
                     +ednsopt=###[:value] (Send specified EDNS option)
                     +noednsopt          (Clear list of +ednsopt options)
                     +[no]expire         (Request time to expire)
                     +[no]fail           (Don't try next server on SERVFAIL)
                     +[no]header-only    (Send query without a question section)
                     +[no]identify       (ID responders in short answers)
                     +[no]idnout         (convert IDN response)
                     +[no]ignore         (Don't revert to TCP for TC responses.)
                     +[no]keepopen       (Keep the TCP socket open between queries)
                     +[no]mapped         (Allow mapped IPv4 over IPv6)
                     +[no]multiline      (Print records in an expanded format)
                     +ndots=###          (Set search NDOTS value)
                     +[no]nsid           (Request Name Server ID)
                     +[no]nssearch       (Search all authoritative nameservers)
                     +[no]onesoa         (AXFR prints only one soa record)
                     +[no]opcode=###     (Set the opcode of the request)
                     +[no]qr             (Print question before sending)
                     +[no]question       (Control display of question section)
                     +[no]rdflag         (Recursive mode (+[no]recurse))
                     +[no]recurse        (Recursive mode (+[no]rdflag))
                     +retry=###          (Set number of UDP retries) [2]
                     +[no]rrcomments     (Control display of per-record comments)
                     +[no]search         (Set whether to use searchlist)
                     +[no]short          (Display nothing except short
                                          form of answer)
                     +[no]showsearch     (Search with intermediate results)
                     +[no]sigchase       (Chase DNSSEC signatures)
                     +[no]split=##       (Split hex/base64 fields into chunks)
                     +[no]stats          (Control display of statistics)
                     +subnet=addr        (Set edns-client-subnet option)
                     +[no]tcp            (TCP mode (+[no]vc))
                     +timeout=###        (Set query timeout) [5]
                     +[no]topdown        (Do +sigchase in top-down mode)
                     +[no]trace          (Trace delegation down from root [+dnssec])
                     +trusted-key=####   (Trusted Key to use with +sigchase)
                     +tries=###          (Set number of UDP attempts) [3]
                     +[no]ttlid          (Control display of ttls in records)
                     +[no]ttlunits       (Display TTLs in human-readable units)
                     +[no]unknownformat  (Print RDATA in RFC 3597 "unknown" format)
                     +[no]vc             (TCP mode (+[no]tcp))
                     +[no]zflag          (Set Z flag in query)
            global d-opts and servers (before host name) affect all queries.
            local d-opts and servers (after host name) affect only that lookup.
            -h                           (print help and exit)
            -v                           (print version and exit)
    
    
    root@kali:~# host -h
    host: illegal option -- h
    Usage: host [-aCdilrTvVw] [-c class] [-N ndots] [-t type] [-W time]
        [-R number] [-m flag] hostname [server]
       -a is equivalent to -v -t ANY
       -c specifies query class for non-IN data
       -C compares SOA records on authoritative nameservers
       -d is equivalent to -v
       -i IP6.INT reverse lookups
       -l lists all hosts in a domain, using AXFR
       -m set memory debugging flag (trace|record|usage)
       -N changes the number of dots allowed before root lookup is done
       -r disables recursive processing
       -R specifies number of retries for UDP packets
       -s a SERVFAIL response should stop query
       -t specifies the query type
       -T enables TCP/IP mode
       -v enables verbose output
       -V print version number and exit
       -w specifies to wait forever for a reply
       -W specifies how long to wait for a reply
       -4 use IPv4 query transport only
       -6 use IPv6 query transport only

    5.DNS字典爆破
    1. DNS 字典爆破
        1-1. 简介
        1-2. fierce
        1-3. dnsenum
        1-4. dnsmap
        1-5. dnsrecon
    2. DNS 注册信息

    1. DNS 字典爆破


    1. 简介

    - fierce -dnsserver 8.8.8.8 -dns sina.com.cn -wordlist a.txt
    - dnsenum -f dnsbig.txt -dnsserver 8.8.8.8 sina.com -o sina.xml
    - dnsmap sina.com -w dns.txt
    - dnsrecon -d sina.com --lifetime 10 -t brt -D dnsbig.txt
    - dnsrecon -t std -d sina.com
    

    2. fierce ##

    root@kali:~# dpkg -L fierce
        /usr/share/fierce/hosts.txt
    
    root@kali:~# cp /usr/share/fierce/hosts.txt wordlist.txt -f
    root@kali:~# fierce -dnsserver 8.8.8.8 -dns sina.com.cn -wordlist wordlist.txt
    

    3. dnsenum

    root@kali:~# dpkg -L dnsenum
        /usr/share/dnsenum/dns.txt
    
    root@kali:~# cp /usr/share/dnsenum/dns.txt dnsenum.txt 
    root@kali:~# dnsenum -f dnsenum.txt -dnsserver 8.8.8.8 sina.com -o sina.xml
    

    4. dnsmap

    root@kali:~# dpkg -L dnsmap
    /usr/share/dnsmap/wordlist_TLAs.txt
    
    root@kali:~# cp /usr/share/dnsmap/wordlist_TLAs.txt dnsmap.txt
    root@kali:~# dnsmap sina.com -w dnsmap.txt 

    5. dnsrecon

    root@kali:~# dpkg -L dnsrecon
    /usr/share/dnsrecon/namelist.txt
    root@kali:~# dnsrecon -d sina.com --lifetime 10 -t brt -D /usr/share/dnsrecon/namelist.txt
    root@kali:~# dnsrecon -t std -d sina.com

    2. DNS 注册信息


    1. 在网页查询

    https://www.afrinic.net/

    http://www.apnic.net/

    https://www.arin.net

    https://www.iana.com

    1. 使用

      root@kali:~# whois sina.com
    2. root@kali:~# whois wooyun.org
    3. root@kali:~# whois -h whois.apnic.net 192.0.43.10


    人的痛苦源于对自己无能的愤怒!
  • 相关阅读:
    5_4 编码重新总结
    5_9 ___2 mc函数
    5_9 代码分析 load_pic_pointers
    5_2 实现过程中
    5_4 calvc
    428 对于 mb_cmp_init函数中一些宏定义的展开 x264_encoder_open中
    Oracle数值处理函数
    JAVA常用注解
    Java随笔
    centos 7 上Hive2.1.1的安装与基本操作
  • 原文地址:https://www.cnblogs.com/cx-ajun/p/9332309.html
Copyright © 2011-2022 走看看