New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Parallelize forward DNS name resolution #1451

Open
dmiller-nmap opened this Issue Jan 31, 2019 · 0 comments

Comments

Projects
None yet
1 participant
@dmiller-nmap
Copy link

dmiller-nmap commented Jan 31, 2019

This is a known source of slowness that should have been made a tracking issue long ago.

Nmap has a fast parallel DNS resolver, but it currently only works for PTR requests. For forward lookups (such as a list of domain names provided via -iL), it uses the system's own blocking resolver. We could really speed up scanning if we did these in batches instead, but it will require some re-engineering of how Nmap processes target inputs:

  • Currently, name resolution is done in the various subclasses of NetBlock in TargetGroup.cc. This is to handle cases like example.com/24 (scan the /24 CIDR block that contains the address for "example.com").
  • We'll likely need to implement a different intermediate class that takes target specifications and returns a stream/list/queue of net blocks.
  • We need to extend the parallel DNS resolver in nmap_dns.cc to handle different request types. This functionality could be useful in other areas of Nmap, too, but don't worry about that yet.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment