Fast, Elegant subdomain scanner using nodejs
npm install subquest
npm install --save subquest
`
Than you can __require__ it in your script and use it, following examples below.
$3
After the version 1.5.0 the module doesn't use event emitters, just callbacks,
`js
const subquest = require('subquest')
subquest.getSubDomains({
host: 'google.com'
}, (err, results) => {
if(err) {
console.log('Error:', err);
return;
}
console.log('Subdomains:', results);
})
`
$3
Before the version 1.5.0 the module makes use of event emitters to determine when it's done.
`js
var subquest = require('subquest');
subquest
.getSubDomains({
host: 'google.com', // required
rateLimit:'4', // four requests at time
dnsServer:'4.2.2.2', // custom DNS server
dictionary: 'top_200' // dictionary file to use
})
.on('end', function(res){
console.log(res); // array of subdomains.
})
`
This scans google.com for the list of all subdomains using the top_200 dictionary.
Methods
#### isValidDnsServer(server, [timeout], callback)
Test if a given address is valid DNS server
#### getResolvers([domain], callback)
Get the list of all the resolvers (DNS Servers) used in the scan, both default and custom
#### getDictionaryNames()
Get the list of the dictionary files used in the scan
#### getSubDomains(options, callback)
Run the scan against the domain to enumerate all subdomains
Looking for the cli version?
You can use __subquest__ as a command line tool by cloning the official repository or using npm:
`sh
$ npm install -g subquest-cli
`
Want to add a new entry to Subquest's dictionary?
Add your list of subdomain names to the ./dictionary/all.txt file and send a pull request.
Contributing
1. Create an issue and describe your idea
2. Fork the project (https://github.com/skepticfx/subquest/fork)
3. Create your feature branch (git checkout -b my-new-feature)
4. Commit your changes (git commit -am 'Add some feature')
5. Publish the branch (git push origin my-new-feature`)