Nmap Development mailing list archives
Re: Adding non-blocking connect(), pre_loop and post_loop to NSE?
From: Patrick Donnelly <batrick () batbytes com>
Date: Mon, 25 Aug 2014 13:26:30 -0400
On Aug 25, 2014 1:11 PM, "Jacek Wielemborek" <d33tah () gmail com> wrote:
Hi, Today I felt like hacking my nmap-nseportscan branch to see how hard would it be implement connect scan using NSE scanning. I wanted the code layout to mimick the one I worked out while developing nmap-nsock-scan, but then I realized that in order to connect()-scan multiple ports at once, instead of doing this like this: do_connect = function(host, port) local sock = nmap.new_socket() local constatus, conerr = sock:connect(host, port) sock:close() --interpret the resuls etc. end action = function(host) local ports = getports(host) for _, port in ipairs(ports) do connect(host, port) end end I would prefer to do it like this: connected = function(event, userdata) --interpret the resuls etc. end pre_loop = function(host) startTimeoutClock(host) local ports = getports(host) for _, port in ipairs(ports) do schedule_connect(host, port, connected, nil) end end post_loop = function(host) finishTimeoutClock(host) end The pre_loop here would just schedule the connections and return immediately, leaving the execution of "connected" callback function to
NSE.
I took a look at the code and realized that it would probably be wiser to ask people that know the NSE subsystem better how such a modification should look instead of modifying it blindly. I am especially lost on running the post_loop part. Could someone take a look at nmap-nseportscan branch and see how to fit my concept there?
The way to do this NSE is to spawn worker threads which block normally on connect: See http://nmap.org/book/nse-parallelism.html _______________________________________________ Sent through the dev mailing list http://nmap.org/mailman/listinfo/dev Archived at http://seclists.org/nmap-dev/
Current thread:
- Adding non-blocking connect(), pre_loop and post_loop to NSE? Jacek Wielemborek (Aug 25)
- Re: Adding non-blocking connect(), pre_loop and post_loop to NSE? Patrick Donnelly (Aug 25)