Dnmap can be treated like some of your dreams come true. How many times have you actually thought that you could run remote and distributed Nmap scans? Well, now your dreams have turned into a reality with Dnmap . Yes there were a few public projects like this one, but none open-source and actively developed.
Dnmap (distributed Nmap) is a framework to distribute nmap scans among several clients. It reads an already created file with nmap commands and send those commands to each client connected to it. The framework use a client/server architecture. The server knows what to do and the clients do it. All the logic and statistics are managed in the server. Dnmap stores the Nmap output on both server and client. The only caveat of this whole set up is lack security as the framework will inherently trust the client and will execute any Nmap command sent. So, if you want to protect this setup, you might as well have it secured via ACLs, etc. Yet, the Dnmap server is capable of fighting off command injection attacks. Graphically, the Dnmap framework is designed as such:
So you see, Dnmap uses the classical client/server architecture. The server reads the commands from an external file and send them to the clients. The server will start to give nmap commands to the clients and results will be stored on both sides.
So you see, there is a bit of redundancy to this whole set up and client-server work in an ‘intelligent’ manner. The client does not need to be run as root , but be aware that most nmap scan types need the client to be run as root. If some of your clients are not root, you can still send them TCP connect type of scans for example. Another thing about this project is that, it only uses SYN packets and tries to avoid countries that forbid SYN scans. Using Dnmap is also very simple.
./dnmap_server -f commands.txt
./dnmap_client -s -a
Depending the number of clients you have, you will see a result as below:
=| MET:5:43:32.837276 | Amount of Online clients: 2 |= Clients connected ----------------- Alias #Commands Last Time Seen (time ago) UpTime Version Euid RunCmdXMin AvrCmdXMin Status test1 765 Mar 11 21:35:02 ( 0'12") 4h 6m 0.3 0 5.2 4.6 Executing test2 698 Mar 11 21:34:59 ( 0'14") 5h43m 0.3 0 2.0 3.2 Executing
Just see to it that the commands you enter are free of any syntactical errors.
Dnmap v0.5 – dnmap_v0.5.tgz – http://sourceforge.net/projects/dnmap/files/