dnsrecon

command module
v0.0.0-...-0d8db16 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 22, 2019 License: Apache-2.0 Imports: 10 Imported by: 0

README

DNSRECON

DNSRECON is a prototype REST API to do dns reconnaissance and collect the complete set of SOA, NS, MX, A, AAAA, TXT and CNAME reconds. More dns records and features will be added after the tool is productionised later this year.

Warning: not for production use

Install

DNSRECON can be installed by running:

go get github.com/mbudge/dnsrecon 

Prerequisites

DNSRECON requires the following dependencies:

go get github.com/miekg/dns
go get github.com/gorilla/mux
go get golang.org/x/time/rate
go get github.com/golang/groupcache/lru

Usage

Add more public dns servers to resolvers.yaml before increasing the number of concurrent queries.

Run locally
cd dnsrecon
go run *.go
Build and install
go install dnsrecon
curl http://127.0.0.1:8080/domain/google.com
Docker
Build
cd dnsrecon
docker build --rm -t "dnsrecon" .
Run
docker run -d -p 8080:8080 --restart=unless-stopped --log-driver json-file --log-opt max-size=10m --log-opt max-file=3 --name dnsrecon dnsrecon

Example

curl http://127.0.0.1:8080/domain/google.com | json_pp
{
   "timestamp" : "2019-02-22T11:10:16.83421805Z",
   "status" : "NOERROR",
   "errors" : {},
   "name" : "google.com",
   "data" : {
      "txt" : [
         "v=spf1 include:_spf.google.com ~all",
         "facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95",
         "globalsign-smime-dv=CDYX+XFHUw2wml6/Gb8+59BsH31KzUr6c1l2BPvqKX8=",
         "docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e"
      ],
      "soa" : {
         "mbox" : "dns-admin.google.com",
         "name" : "google.com",
         "primary_nameserver" : {
            "ns1.google.com" : {
               "a" : [
                  "216.239.32.10"
               ],
               "aaaa" : [
                  "2001:4860:4802:32::a"
               ]
            }
         }
      },
      "mx" : {
         "20" : {
            "alt1.aspmx.l.google.com" : {
               "a" : [
                  "74.125.131.27"
               ],
               "aaaa" : [
                  "2a00:1450:4010:c0e::1a"
               ]
            }
         },
         "50" : {
            "alt4.aspmx.l.google.com" : {
               "a" : [
                  "74.125.195.27"
               ],
               "aaaa" : [
                  "2607:f8b0:400e:c09::1b"
               ]
            }
         },
         "30" : {
            "alt2.aspmx.l.google.com" : {
               "a" : [
                  "74.125.68.27"
               ],
               "aaaa" : [
                  "2404:6800:4003:c02::1a"
               ]
            }
         },
         "40" : {
            "alt3.aspmx.l.google.com" : {
               "a" : [
                  "64.233.188.26"
               ],
               "aaaa" : [
                  "2404:6800:4008:c06::1b"
               ]
            }
         },
         "10" : {
            "aspmx.l.google.com" : {
               "aaaa" : [
                  "2a00:1450:400c:c00::1a"
               ],
               "a" : [
                  "108.177.15.27"
               ]
            }
         }
      },
      "aaaa" : [
         "2a00:1450:4009:811::200e"
      ],
      "cname" : null,
      "a" : [
         "216.58.206.142"
      ],
      "ns" : {
         "ns2.google.com" : {
            "aaaa" : [
               "2001:4860:4802:34::a"
            ],
            "a" : [
               "216.239.34.10"
            ]
         },
         "ns3.google.com" : {
            "aaaa" : [
               "2001:4860:4802:36::a"
            ],
            "a" : [
               "216.239.36.10"
            ]
         },
         "ns1.google.com" : {
            "a" : [
               "216.239.32.10"
            ],
            "aaaa" : [
               "2001:4860:4802:32::a"
            ]
         },
         "ns4.google.com" : {
            "aaaa" : [
               "2001:4860:4802:38::a"
            ],
            "a" : [
               "216.239.38.10"
            ]
         }
      },
      "cname_paths" : {}
   }
}

TODO

  • Productionise the app
  • Add comments for godocs
  • Add defer and recover
  • Rewrite the resolvers package so the tool downloads resolvers from https://public-dns.info/nameservers-all.csv
  • Validate resolvers with a simple dns lookup to check they don't return invalid responses
  • Add settings to the configutation file

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL