hammackj / risu

Risu is Nessus parser, that converts the generated reports into a ActiveRecord database, this allows for easy report generation and vulnerability verification.
http://hammackj.github.io/risu
MIT License
63 stars 20 forks source link

Add support for attribute 'agent' #91

Closed emory closed 8 years ago

emory commented 8 years ago

[!] unknown attribute 'agent' for Risu::Models::Plugin.

Any chance this could be implemented in risu please?

emory commented 8 years ago

Example:

</HostProperties>
<ReportItem port="0" svc_name="general" protocol="tcp" severity="0" pluginID="19506" pluginName="Nessus Scan Information" pluginFamily="Settings">
<agent>all</agent>
<description>This plugin displays, for each tested host, information about the scan itself :
hammackj commented 8 years ago

Which version of risu are you using? I think 1.7.5 has support for the agent tag.

emory commented 8 years ago
❯ risu -v
risu: 1.7.6
Ruby Version: 2.2.5
Rubygems Version: 2.6.2

User error possible. I'm using nessus 6.5.6 and just exported this from a scan done with a previous release of nessus. (minor not major)

I'll enable debug…

emory commented 8 years ago

I removed the few references of <agent>all</agent> but there were only 25. Same result, so I think I'm misinterpreting the error.

NOTE! I'm using a historical (i.e. older) database (sqlite) — is there perhaps a table change or something that accommodated this agent piece that my database lacks? I can create a new database and test that.

[!] unknown attribute 'agent' for Risu::Models::Plugin.
 /Users/emory/.rvm/gems/ruby-2.2-head/gems/activerecord-4.2.6/lib/active_record/attribute_assignment.rb:59:in `rescue in _assign_attribute'
/Users/emory/.rvm/gems/ruby-2.2-head/gems/activerecord-4.2.6/lib/active_record/attribute_assignment.rb:54:in `_assign_attribute'
/Users/emory/.rvm/gems/ruby-2.2-head/gems/activerecord-4.2.6/lib/active_record/attribute_assignment.rb:41:in `block in assign_attributes'
/Users/emory/.rvm/gems/ruby-2.2-head/gems/activerecord-4.2.6/lib/active_record/attribute_assignment.rb:35:in `each'
/Users/emory/.rvm/gems/ruby-2.2-head/gems/activerecord-4.2.6/lib/active_record/attribute_assignment.rb:35:in `assign_attributes'
/Users/emory/.rvm/gems/ruby-2.2-head/gems/activerecord-4.2.6/lib/active_record/persistence.rb:251:in `block in update'
/Users/emory/.rvm/gems/ruby-2.2-head/gems/activerecord-4.2.6/lib/active_record/transactions.rb:351:in `block in with_transaction_returning_status'
/Users/emory/.rvm/gems/ruby-2.2-head/gems/activerecord-4.2.6/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `block in transaction'
/Users/emory/.rvm/gems/ruby-2.2-head/gems/activerecord-4.2.6/lib/active_record/connection_adapters/abstract/transaction.rb:184:in `within_new_transaction'
/Users/emory/.rvm/gems/ruby-2.2-head/gems/activerecord-4.2.6/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `transaction'
/Users/emory/.rvm/gems/ruby-2.2-head/gems/activerecord-4.2.6/lib/active_record/transactions.rb:220:in `transaction'
/Users/emory/.rvm/gems/ruby-2.2-head/gems/activerecord-4.2.6/lib/active_record/transactions.rb:348:in `with_transaction_returning_status'
/Users/emory/.rvm/gems/ruby-2.2-head/gems/activerecord-4.2.6/lib/active_record/persistence.rb:250:in `update'
/Users/emory/.rvm/gems/ruby-2.2-head/gems/risu-1.7.6/lib/risu/parsers/nessus/nessus_sax_listener.rb:386:in `end_report_item'
/Users/emory/.rvm/gems/ruby-2.2-head/gems/risu-1.7.6/lib/risu/parsers/nessus/nessus_sax_listener.rb:204:in `on_end_element'
/Users/emory/.rvm/gems/ruby-2.2-head/gems/risu-1.7.6/lib/risu/parsers/nessus/nessus_document.rb:74:in `parse'
/Users/emory/.rvm/gems/ruby-2.2-head/gems/risu-1.7.6/lib/risu/parsers/nessus/nessus_document.rb:74:in `parse'
/Users/emory/.rvm/gems/ruby-2.2-head/gems/risu-1.7.6/lib/risu/cli/application.rb:463:in `parse_file'
/Users/emory/.rvm/gems/ruby-2.2-head/gems/risu-1.7.6/lib/risu/cli/application.rb:414:in `block in run'
/Users/emory/.rvm/gems/ruby-2.2-head/gems/risu-1.7.6/lib/risu/cli/application.rb:412:in `each'
/Users/emory/.rvm/gems/ruby-2.2-head/gems/risu-1.7.6/lib/risu/cli/application.rb:412:in `run'
/Users/emory/.rvm/gems/ruby-2.2-head/gems/risu-1.7.6/bin/risu:37:in `<top (required)>'
/Users/emory/.rvm/gems/ruby-2.2-head/bin/risu:22:in `load'
/Users/emory/.rvm/gems/ruby-2.2-head/bin/risu:22:in `<main>'
/Users/emory/.rvm/gems/ruby-2.2-head/bin/ruby_executable_hooks:15:in `eval'
/Users/emory/.rvm/gems/ruby-2.2-head/bin/ruby_executable_hooks:15:in `<main>'
emory commented 8 years ago

(parenthetical; this seems to be working with a new database)

emory commented 8 years ago

Yup. It's working as expected with a new database. Sorry for clutter. Possible enhancement request to update/upgrade a database? Or is that not typical usage? I use risu to make large roll-ups of individual scans pretty often.

hammackj commented 8 years ago

I typically generate a database per engagement. I am looking to add diffing/trending inside of a single database (multiple scans) but I haven't done much work on that.