No node created after nmap upload

I successfully uploaded an XML-nmap-output file my dradis CE project. The hosts showed up as nodes under plugin.output with correct nmap information. I moved them to my “hosts” Folder/node.

Then I uploaded a different XML-nmap-output file (same nmap settings -oX) to the same dradis CE project via Upload Manager. The upload seems to be sucessfull, no error messages. But no nodes are created anywhere in the project.

Same when uploading manually:
root@kali:/usr/lib/dradis# bundle exec thor dradis:plugins:nmap:upload ~/Documents/OSCP/group1.xml
Loaded add-ons:
acunetix - Processes Acunetix XML format
api - Dradis REST HTTP API
brakeman - Processes Brakeman JSON output, use: brakeman -f json -o results.json
burp - Processes Burp Scanner XML output
csv - Export results in CSV format
cvss - Provides a CVSS score calculator under /calculators/cvss
dread - Provides a DREAD score calculator under /calculators/dread
html_export - Generate advanced HTML reports
mediawiki - Import entries from an external MediaWiki
metasploit - Processes Metasploit XML output, use: db_export
nessus - Processes Nessus XML v2 format (.nessus)
netsparker - Processes Netsparker XML format
nexpose - Processes Nexpose XML format
nikto - Processes Nikto output
nmap - Processes Nmap output
nto_spider - Processes NTOSpider reports
open_vas - Processes OpenVAS XML v6 or v7 format
projects - Save and restore project information
qualys - Processes Qualys output
vulndb - Import entries from your VulnDB HQ repository
zap - Processes ZAP XML format
I, [2019-05-19T09:30:29.858167 #12196] INFO – : Parsing Nmap output from
/root/Documents/OSCP/group1.xml…
I, [2019-05-19T09:30:29.859764 #12196] INFO – : Done.
I, [2019-05-19T09:30:29.859839 #12196] INFO – : Validating Nmap output…
I, [2019-05-19T09:30:29.860322 #12196] INFO – : Done.
I, [2019-05-19T09:30:29.962973 #12196] INFO – : New host: 10.22.1.7
I, [2019-05-19T09:30:30.081724 #12196] INFO – : New port: 3389/tcp
I, [2019-05-19T09:30:30.104161 #12196] INFO – : New host: 10.22.1.10
I, [2019-05-19T09:30:30.127563 #12196] INFO – : New port: 80/tcp
I, [2019-05-19T09:30:30.156136 #12196] INFO – : New host: 10.22.1.13
I, [2019-05-19T09:30:30.178527 #12196] INFO – : New port: 21/tcp
I, [2019-05-19T09:30:30.196131 #12196] INFO – : New port: 80/tcp
I, [2019-05-19T09:30:30.211128 #12196] INFO – : New port: 3389/tcp
I, [2019-05-19T09:30:30.226311 #12196] INFO – : New port: 13321/tcp
I, [2019-05-19T09:30:30.247466 #12196] INFO – : New host: 10.22.1.14
I, [2019-05-19T09:30:30.268296 #12196] INFO – : New port: 21/tcp
I, [2019-05-19T09:30:30.283108 #12196] INFO – : New port: 80/tcp
I, [2019-05-19T09:30:30.297791 #12196] INFO – : New port: 3389/tcp
I, [2019-05-19T09:30:30.322569 #12196] INFO – : New port: 13339/tcp

Again, no error messages, but no nodes created.

However, the group1.xml file now appears in the “uploaded files”-Folder, what is not intended.

How can that be solved?

oot@kali:/usr/lib/dradis# bundle exec rake resque:work
rake aborted!
Redis::CannotConnectError: Error connecting to Redis on 127.0.0.1:6379 (Errno::ECONNREFUSED)
Original Exception (Redis::CannotConnectError): Error connecting to Redis on 127.0.0.1:6379 (Errno::ECONNREFUSED)
  /usr/lib/dradis/ruby/2.5.0/gems/redis-3.3.5/lib/redis/client.rb:345:in `rescue in establish_connection'  
/usr/lib/dradis/ruby/2.5.0/gems/redis-3.3.5/lib/redis/client.rb:330:in `establish_connection'  
/usr/lib/dradis/ruby/2.5.0/gems/redis-3.3.5/lib/redis/client.rb:101:in `block in connect'  
/usr/lib/dradis/ruby/2.5.0/gems/redis-3.3.5/lib/redis/client.rb:293:in `with_reconnect'  
/usr/lib/dradis/ruby/2.5.0/gems/redis-3.3.5/lib/redis/client.rb:100:in `connect'  
/usr/lib/dradis/ruby/2.5.0/gems/redis-3.3.5/lib/redis/client.rb:364:in `ensure_connected'  
/usr/lib/dradis/ruby/2.5.0/gems/redis-3.3.5/lib/redis/client.rb:221:in `block in process'  
/usr/lib/dradis/ruby/2.5.0/gems/redis-3.3.5/lib/redis/client.rb:306:in `logging'  
/usr/lib/dradis/ruby/2.5.0/gems/redis-3.3.5/lib/redis/client.rb:220:in `process'  
/usr/lib/dradis/ruby/2.5.0/gems/redis-3.3.5/lib/redis/client.rb:120:in `call'  
/usr/lib/dradis/ruby/2.5.0/gems/redis-3.3.5/lib/redis.rb:2058:in `block in hdel'  
/usr/lib/dradis/ruby/2.5.0/gems/redis-3.3.5/lib/redis.rb:58:in `block in synchronize'  
/usr/lib/ruby/2.5.0/monitor.rb:226:in `mon_synchronize'  
/usr/lib/dradis/ruby/2.5.0/gems/redis-3.3.5/lib/redis.rb:58:in `synchronize'  
/usr/lib/dradis/ruby/2.5.0/gems/redis-3.3.5/lib/redis.rb:2057:in `hdel'  
/usr/lib/dradis/ruby/2.5.0/gems/redis-namespace-1.6.0/lib/redis/namespace.rb:442:in `call_with_namespace'  
/usr/lib/dradis/ruby/2.5.0/gems/redis-namespace-1.6.0/lib/redis/namespace.rb:328:in `method_missing'  
/usr/lib/dradis/ruby/2.5.0/gems/resque-1.27.4/lib/resque/data_store.rb:278:in `remove_heartbeat'  
/usr/lib/dradis/ruby/2.5.0/gems/resque-1.27.4/lib/resque/worker.rb:471:in `remove_heartbeat'  
/usr/lib/dradis/ruby/2.5.0/gems/resque-1.27.4/lib/resque/worker.rb:503:in `start_heartbeat'  
/usr/lib/dradis/ruby/2.5.0/gems/resque-1.27.4/lib/resque/worker.rb:356:in `startup'  
/usr/lib/dradis/ruby/2.5.0/gems/resque-1.27.4/lib/resque/worker.rb:229:in `work'  
/usr/lib/dradis/ruby/2.5.0/gems/resque-1.27.4/lib/resque/tasks.rb:20:in `block (2 levels) in <top (required)>'  
/usr/lib/dradis/ruby/2.5.0/gems/rake-12.3.1/lib/rake/task.rb:271:in `block in execute'  
/usr/lib/dradis/ruby/2.5.0/gems/rake-12.3.1/lib/rake/task.rb:271:in `each'  
/usr/lib/dradis/ruby/2.5.0/gems/rake-12.3.1/lib/rake/task.rb:271:in `execute'  
/usr/lib/dradis/ruby/2.5.0/gems/rake-12.3.1/lib/rake/task.rb:213:in `block in invoke_with_call_chain'  
/usr/lib/ruby/2.5.0/monitor.rb:226:in `mon_synchronize'  
/usr/lib/dradis/ruby/2.5.0/gems/rake-12.3.1/lib/rake/task.rb:193:in `invoke_with_call_chain'  
/usr/lib/dradis/ruby/2.5.0/gems/rake-12.3.1/lib/rake/task.rb:182:in `invoke'  
/usr/lib/dradis/ruby/2.5.0/gems/rake-12.3.1/lib/rake/application.rb:160:in `invoke_task'  
/usr/lib/dradis/ruby/2.5.0/gems/rake-12.3.1/lib/rake/application.rb:116:in `block (2 levels) in top_level'  
/usr/lib/dradis/ruby/2.5.0/gems/rake-12.3.1/lib/rake/application.rb:116:in `each'  
/usr/lib/dradis/ruby/2.5.0/gems/rake-12.3.1/lib/rake/application.rb:116:in `block in top_level'  
/usr/lib/dradis/ruby/2.5.0/gems/rake-12.3.1/lib/rake/application.rb:125:in `run_with_threads'  
/usr/lib/dradis/ruby/2.5.0/gems/rake-12.3.1/lib/rake/application.rb:110:in `top_level'  
/usr/lib/dradis/ruby/2.5.0/gems/rake-12.3.1/lib/rake/application.rb:83:in `block in run'  
/usr/lib/dradis/ruby/2.5.0/gems/rake-12.3.1/lib/rake/application.rb:186:in `standard_exception_handling'  
/usr/lib/dradis/ruby/2.5.0/gems/rake-12.3.1/lib/rake/application.rb:80:in `run'  
/usr/lib/dradis/ruby/2.5.0/gems/rake-12.3.1/exe/rake:27:in `<top (required)>'  
/usr/lib/dradis/ruby/2.5.0/bin/rake:23:in `load'  
/usr/lib/dradis/ruby/2.5.0/bin/rake:23:in `<main>'


Caused by:
Redis::CannotConnectError: Error connecting to Redis on 127.0.0.1:6379 (Errno::ECONNREFUSED)


Caused by:
Errno::ECONNREFUSED: Connection refused - connect(2) for 127.0.0.1:6379


Caused by:
IO::EINPROGRESSWaitWritable: Operation now in progress - connect(2) would block


Caused by:
Redis::CannotConnectError: Error connecting to Redis on 127.0.0.1:6379 (Errno::ECONNREFUSED)


Caused by:
Errno::ECONNREFUSED: Connection refused - connect(2) for 127.0.0.1:6379


Caused by:
IO::EINPROGRESSWaitWritable: Operation now in progress - connect(2) would block

Tasks: TOP => resque:work
(See full trace by running task with --trace)

Update: I could reproduce the problem:

After uploading another nmap output file with new, different hosts these new and also the old hosts from the second scan reappear in the “plugin.output” folder. Then i start moving these hosts to my “hosts” node/folder. Again after moving the second host, all the others seem to disappear from the “plugin.output” folder. it seems to be empty. But I noticed, the hosts are still accessible via their node number (e.g. nodes/32)

How can this behaviour be prevented?

Hi @lurchx. I’m seeing a bunch of issues here, so let’s tackle them one-by-one.

  1. First, you mentioned uploading an nmap file and no nodes appearing. Is it possible to send us over a copy of that file so we can test it locally?
  2. About the Redis error, you need to have a running instance of the redis-server on your machine to get the resque service working. For more info, check the guide here: https://redis.io/topics/quickstart.
  3. Lastly, you mentioned nodes disappearing when moved. Could it be related to this: https://github.com/dradis/dradis-ce/pull/460? Try applying the patch on your instance and restart the server and see if it worked for you.

Keep us posted!