dradis-metasploit 3.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.github/issue_template.md +16 -0
- data/.github/pull_request_template.md +36 -0
- data/.gitignore +10 -0
- data/.rspec +2 -0
- data/CHANGELOG.md +51 -0
- data/CONTRIBUTING.md +3 -0
- data/Gemfile +23 -0
- data/LICENSE +339 -0
- data/README.md +28 -0
- data/Rakefile +1 -0
- data/dradis-metasploit.gemspec +34 -0
- data/lib/dradis-metasploit.rb +5 -0
- data/lib/dradis/plugins/metasploit.rb +11 -0
- data/lib/dradis/plugins/metasploit/engine.rb +13 -0
- data/lib/dradis/plugins/metasploit/field_processor.rb +25 -0
- data/lib/dradis/plugins/metasploit/gem_version.rb +19 -0
- data/lib/dradis/plugins/metasploit/importer.rb +98 -0
- data/lib/dradis/plugins/metasploit/version.rb +13 -0
- data/lib/tasks/thorfile.rb +23 -0
- data/spec/dradis/plugins/metasploit/importer_spec.rb +98 -0
- data/spec/fixtures/files/msf4.xml +5 -0
- data/spec/fixtures/files/msf5.xml +248 -0
- data/spec/fixtures/files/qualys.xml +6 -0
- data/spec/spec_helper.rb +10 -0
- data/templates/host_note.fields +3 -0
- data/templates/host_note.sample +12 -0
- data/templates/host_note.template +8 -0
- metadata +160 -0
data/README.md
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
# Metasploit add-on for Dradis
|
2
|
+
|
3
|
+
[](http://travis-ci.org/dradis/dradis-metasploit) [](https://codeclimate.com/github/dradis/dradis-metasploit.png)
|
4
|
+
|
5
|
+
The Metasploit add-on enables users to upload Metasploit XML files to create a structure of nodes/notes that contain the same information about the hosts/ports/services as the original file.
|
6
|
+
|
7
|
+
The add-on requires [Dradis CE](https://dradisframework.org/) > 3.0, or [Dradis Pro](https://dradisframework.com/pro/).
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
## More information
|
12
|
+
|
13
|
+
See the Dradis Framework's [README.md](https://github.com/dradis/dradisframework/blob/master/README.md)
|
14
|
+
|
15
|
+
|
16
|
+
## Contributing
|
17
|
+
|
18
|
+
See the Dradis Framework's [CONTRIBUTING.md](https://github.com/dradis/dradisframework/blob/master/CONTRIBUTING.md)
|
19
|
+
|
20
|
+
|
21
|
+
## License
|
22
|
+
|
23
|
+
Dradis Framework and all its components are released under [GNU General Public License version 2.0](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html) as published by the Free Software Foundation and appearing in the file LICENSE included in the packaging of this file.
|
24
|
+
|
25
|
+
|
26
|
+
## Feature requests and bugs
|
27
|
+
|
28
|
+
Please use the [Dradis Framework issue tracker](https://github.com/dradis/dradis-ce/issues) for add-on improvements and bug reports.
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
@@ -0,0 +1,34 @@
|
|
1
|
+
$:.push File.expand_path('../lib', __FILE__)
|
2
|
+
require 'dradis/plugins/metasploit/version'
|
3
|
+
version = Dradis::Plugins::Metasploit::VERSION::STRING
|
4
|
+
|
5
|
+
# Describe your gem and declare its dependencies:
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.platform = Gem::Platform::RUBY
|
8
|
+
spec.name = 'dradis-metasploit'
|
9
|
+
spec.version = version
|
10
|
+
spec.summary = 'Metasploit add-on for the Dradis Framework.'
|
11
|
+
spec.description = 'This add-on allows you to upload and parse output produced from Metasploit Framework into Dradis.'
|
12
|
+
|
13
|
+
spec.license = 'GPL-2'
|
14
|
+
|
15
|
+
spec.authors = ['Daniel Martin']
|
16
|
+
spec.email = ['etd@nomejortu.com']
|
17
|
+
spec.homepage = 'http://dradisframework.org'
|
18
|
+
|
19
|
+
spec.files = `git ls-files`.split($\)
|
20
|
+
spec.executables = spec.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
21
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
22
|
+
|
23
|
+
# By not including Rails as a dependency, we can use the gem with different
|
24
|
+
# versions of Rails (a sure recipe for disaster, I'm sure), which is needed
|
25
|
+
# until we bump Dradis Pro to 4.1.
|
26
|
+
# s.add_dependency 'rails', '~> 4.1.1'
|
27
|
+
spec.add_dependency 'dradis-plugins', '~> 3.6'
|
28
|
+
spec.add_dependency 'nokogiri', '~> 1.3'
|
29
|
+
|
30
|
+
spec.add_development_dependency 'bundler', '~> 1.6'
|
31
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
32
|
+
spec.add_development_dependency 'rspec-rails'
|
33
|
+
spec.add_development_dependency 'combustion', '~> 0.5.3'
|
34
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module Dradis
|
2
|
+
module Plugins
|
3
|
+
module Metasploit
|
4
|
+
end
|
5
|
+
end
|
6
|
+
end
|
7
|
+
|
8
|
+
require 'dradis/plugins/metasploit/engine'
|
9
|
+
require 'dradis/plugins/metasploit/field_processor'
|
10
|
+
require 'dradis/plugins/metasploit/importer'
|
11
|
+
require 'dradis/plugins/metasploit/version'
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module Dradis
|
2
|
+
module Plugins
|
3
|
+
module Metasploit
|
4
|
+
class Engine < ::Rails::Engine
|
5
|
+
isolate_namespace Dradis::Plugins::Metasploit
|
6
|
+
|
7
|
+
include ::Dradis::Plugins::Base
|
8
|
+
description 'Processes Metasploit XML output, use: db_export'
|
9
|
+
provides :upload
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Dradis
|
2
|
+
module Plugins
|
3
|
+
module Metasploit
|
4
|
+
class FieldProcessor < Dradis::Plugins::Upload::FieldProcessor
|
5
|
+
# No need to implement anything here
|
6
|
+
# def post_initialize(args={})
|
7
|
+
# end
|
8
|
+
|
9
|
+
def value(args={})
|
10
|
+
field = args[:field]
|
11
|
+
|
12
|
+
# fields in the template are of the form <foo>.<field>, where <foo>
|
13
|
+
# is common across all fields for a given template (and meaningless).
|
14
|
+
_, name = field.split('.')
|
15
|
+
|
16
|
+
if child = data.at_xpath(name)
|
17
|
+
child.text
|
18
|
+
else
|
19
|
+
'n/a'
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Dradis
|
2
|
+
module Plugins
|
3
|
+
module Metasploit
|
4
|
+
# Returns the version of the currently loaded Dradis as a <tt>Gem::Version</tt>
|
5
|
+
def self.gem_version
|
6
|
+
Gem::Version.new VERSION::STRING
|
7
|
+
end
|
8
|
+
|
9
|
+
module VERSION
|
10
|
+
MAJOR = 3
|
11
|
+
MINOR = 18
|
12
|
+
TINY = 0
|
13
|
+
PRE = nil
|
14
|
+
|
15
|
+
STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,98 @@
|
|
1
|
+
module Dradis::Plugins::Metasploit
|
2
|
+
class Importer < Dradis::Plugins::Upload::Importer
|
3
|
+
# The framework will call this function if the user selects this plugin from
|
4
|
+
# the dropdown list and uploads a file.
|
5
|
+
# @returns true if the operation was successful, false otherwise
|
6
|
+
def import(params={})
|
7
|
+
|
8
|
+
file_content = File.read( params[:file] )
|
9
|
+
|
10
|
+
# Parse the uploaded file into a Ruby Hash
|
11
|
+
logger.info { "Parsing Metasploit output from #{ params[:file] }..." }
|
12
|
+
@doc = Nokogiri::XML(file_content)
|
13
|
+
logger.info { 'Done.' }
|
14
|
+
|
15
|
+
case @doc.root.name
|
16
|
+
when 'MetasploitV5'
|
17
|
+
# version_importer = Dradis::Plugins::Metasploit::Importers::Version5.new(@doc)
|
18
|
+
when /MetasploitV/
|
19
|
+
error = "Invalid Metasploit version. Sorry, the XML file corresponds to a version of Metasploit we don't have a parser for. Please let us know: http://discuss.dradisframework.org"
|
20
|
+
logger.fatal { error }
|
21
|
+
content_service.create_note text: error
|
22
|
+
return false
|
23
|
+
else
|
24
|
+
error = "Invalid XML file. The XML document didn't contain a Metasploit root tag. Did you upload a Metasploit XML file?"
|
25
|
+
logger.fatal { error }
|
26
|
+
content_service.create_note text: error
|
27
|
+
return false
|
28
|
+
end
|
29
|
+
|
30
|
+
parse_file
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
def parse_file
|
35
|
+
# hosts
|
36
|
+
@doc.root.xpath('hosts/host').each do |xml_host|
|
37
|
+
parse_host(xml_host)
|
38
|
+
end
|
39
|
+
|
40
|
+
# events
|
41
|
+
# services
|
42
|
+
# web sites
|
43
|
+
# web pages
|
44
|
+
# web forms
|
45
|
+
# web vulns
|
46
|
+
# module details
|
47
|
+
end
|
48
|
+
|
49
|
+
# Parses each of the MetasploitV5/hosts/host entries in the document.
|
50
|
+
def parse_host(xml_host)
|
51
|
+
address = xml_host.at_xpath('address').text
|
52
|
+
logger.info { "\tParsing: #{address}" }
|
53
|
+
|
54
|
+
# Create the Node
|
55
|
+
host_node = content_service.create_node(label: address, type: :host)
|
56
|
+
|
57
|
+
# Node properties
|
58
|
+
if host_node.respond_to?(:properties)
|
59
|
+
# Set basic host properties
|
60
|
+
host_node.set_property(:ip, address)
|
61
|
+
|
62
|
+
if mac = xml_host.at_xpath('mac')
|
63
|
+
host_node.set_property(:mac, mac.text)
|
64
|
+
end
|
65
|
+
|
66
|
+
if os_name = xml_host.at_xpath('os-name')
|
67
|
+
host_node.set_property(:os_name, os_name.text)
|
68
|
+
end
|
69
|
+
|
70
|
+
# Service-related properties
|
71
|
+
xml_host.xpath('services/service').each do |xml_service|
|
72
|
+
port = xml_service.at_xpath('port').text.to_i
|
73
|
+
protocol = xml_service.at_xpath('proto').text
|
74
|
+
state = xml_service.at_xpath('state').text
|
75
|
+
|
76
|
+
logger.info { "\t\tFound: #{protocol}/#{port} - #{state}" }
|
77
|
+
|
78
|
+
host_node.set_service(
|
79
|
+
protocol: protocol,
|
80
|
+
port: port,
|
81
|
+
state: state,
|
82
|
+
name: xml_service.at_xpath('name').text,
|
83
|
+
source: :metasploit,
|
84
|
+
info: xml_service.at_xpath('info').text,
|
85
|
+
)
|
86
|
+
end
|
87
|
+
|
88
|
+
# Commit changes
|
89
|
+
host_node.save
|
90
|
+
end
|
91
|
+
|
92
|
+
xml_host.xpath('notes/note').each do |xml_note|
|
93
|
+
host_note = template_service.process_template(template: 'host_note', data: xml_note)
|
94
|
+
content_service.create_note(text: host_note, node: host_node)
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
class MetasploitTasks < Thor
|
2
|
+
include Rails.application.config.dradis.thor_helper_module
|
3
|
+
|
4
|
+
namespace "dradis:plugins:metasploit"
|
5
|
+
|
6
|
+
desc "upload FILE", "upload Metasploit results in XML format"
|
7
|
+
long_desc "This plugin expects an XML file generated by Metasploit using: db_export"\
|
8
|
+
|
9
|
+
def upload(file_path)
|
10
|
+
require 'config/environment'
|
11
|
+
|
12
|
+
unless File.exist?(file_path)
|
13
|
+
$stderr.puts "** the file [#{file_path}] does not exist"
|
14
|
+
exit(-1)
|
15
|
+
end
|
16
|
+
|
17
|
+
detect_and_set_project_scope
|
18
|
+
|
19
|
+
importer = Dradis::Plugins::Metasploit::Importer.new(task_options)
|
20
|
+
importer.import(file: file_path)
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
@@ -0,0 +1,98 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
require "ostruct"
|
3
|
+
|
4
|
+
describe Dradis::Plugins::Metasploit::Importer do
|
5
|
+
let(:plugin) { Dradis::Plugins::Metasploit }
|
6
|
+
|
7
|
+
let(:content_service) { Dradis::Plugins::ContentService.new(plugin: plugin) }
|
8
|
+
let(:template_service) { Dradis::Plugins::TemplateService.new(plugin: plugin) }
|
9
|
+
|
10
|
+
let(:importer) {
|
11
|
+
described_class.new(
|
12
|
+
content_service: content_service,
|
13
|
+
template_service: template_service
|
14
|
+
)
|
15
|
+
}
|
16
|
+
|
17
|
+
before do
|
18
|
+
# Stub template service
|
19
|
+
templates_dir = File.expand_path('../../../../../templates', __FILE__)
|
20
|
+
allow_any_instance_of(Dradis::Plugins::TemplateService).to \
|
21
|
+
receive(:default_templates_dir).and_return(templates_dir)
|
22
|
+
|
23
|
+
# Stub dradis-plugins methods
|
24
|
+
#
|
25
|
+
# They return their argument hashes as objects mimicking
|
26
|
+
# Nodes, Issues, etc
|
27
|
+
%i[node note evidence issue].each do |model|
|
28
|
+
allow(content_service).to receive(:"create_#{model}") do |args|
|
29
|
+
OpenStruct.new(args)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
let(:example_xml) { 'spec/fixtures/files/msf5.xml' }
|
35
|
+
|
36
|
+
def run_import!
|
37
|
+
importer.import(file: example_xml)
|
38
|
+
end
|
39
|
+
|
40
|
+
context "valid XML file" do
|
41
|
+
it "detects an invalid XML root tag" do
|
42
|
+
expect_to_create_note_with(text: 'Invalid XML')
|
43
|
+
expect(importer.import(file: 'spec/fixtures/files/qualys.xml')).to eq(false)
|
44
|
+
end
|
45
|
+
|
46
|
+
it "detects a not-supported Metasploit XML version" do
|
47
|
+
expect_to_create_note_with(text: 'Invalid Metasploit version')
|
48
|
+
expect(importer.import(file: 'spec/fixtures/files/msf4.xml')).to eq(false)
|
49
|
+
end
|
50
|
+
|
51
|
+
context "supported XML version" do
|
52
|
+
it "creates one Node for each host" do
|
53
|
+
expect_to_create_node_with(label: '10.127.53.65', type: :host)
|
54
|
+
run_import!
|
55
|
+
end
|
56
|
+
|
57
|
+
it "creates one Note for each host note" do
|
58
|
+
expect_to_create_note_with(text: 'mac_oui')
|
59
|
+
expect_to_create_note_with(text: 'fingerprint.match')
|
60
|
+
expect_to_create_note_with(text: 'smb.fingerprint')
|
61
|
+
|
62
|
+
run_import!
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
def expect_to_create_node_with(label:, type: :default)
|
70
|
+
expect(content_service).to receive(:create_node).with(
|
71
|
+
hash_including label: label, type: type
|
72
|
+
).once
|
73
|
+
end
|
74
|
+
|
75
|
+
def expect_to_create_note_with(node_label: nil, text:)
|
76
|
+
expect(content_service).to receive(:create_note) do |args|
|
77
|
+
expect(args[:text]).to include text
|
78
|
+
expect(args[:node].label).to eq node_label unless node_label.nil?
|
79
|
+
end.once
|
80
|
+
end
|
81
|
+
|
82
|
+
def expect_to_create_issue_with(text:)
|
83
|
+
expect(content_service).to receive(:create_issue) do |args|
|
84
|
+
expect(args[:text]).to include text
|
85
|
+
OpenStruct.new(args)
|
86
|
+
end.once
|
87
|
+
end
|
88
|
+
|
89
|
+
def expect_to_create_evidence_with(content:, issue:, node_label:)
|
90
|
+
expect(content_service).to receive(:create_evidence) do |args|
|
91
|
+
expect(args[:content]).to include content
|
92
|
+
expect(args[:issue].text).to include issue
|
93
|
+
expect(args[:node].label).to eq node_label
|
94
|
+
end.once
|
95
|
+
end
|
96
|
+
|
97
|
+
end
|
98
|
+
|
@@ -0,0 +1,5 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<MetasploitV4>
|
3
|
+
<generated time="2015-01-07 21:04:30 UTC" user="root" project="default" product="framework"/>
|
4
|
+
<!-- Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. -->
|
5
|
+
</MetasploitV4>
|
@@ -0,0 +1,248 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<MetasploitV5>
|
3
|
+
<generated time="2015-01-07 21:04:30 UTC" user="root" project="default" product="framework"/>
|
4
|
+
<hosts>
|
5
|
+
<host>
|
6
|
+
<id>91</id>
|
7
|
+
<created-at>2014-12-17 17:52:03 UTC</created-at>
|
8
|
+
<address>10.127.53.65</address>
|
9
|
+
<mac>00:1a:4b:44:bc:66</mac>
|
10
|
+
<comm></comm>
|
11
|
+
<name>MAPWS</name>
|
12
|
+
<state>alive</state>
|
13
|
+
<os-name>Windows XP</os-name>
|
14
|
+
<os-flavor/>
|
15
|
+
<os-sp/>
|
16
|
+
<os-lang/>
|
17
|
+
<arch/>
|
18
|
+
<workspace-id>2</workspace-id>
|
19
|
+
<updated-at>2014-12-17 19:58:31 UTC</updated-at>
|
20
|
+
<purpose>client</purpose>
|
21
|
+
<info/>
|
22
|
+
<comments/>
|
23
|
+
<scope/>
|
24
|
+
<virtual-host/>
|
25
|
+
<note-count>3</note-count>
|
26
|
+
<vuln-count>0</vuln-count>
|
27
|
+
<service-count>2</service-count>
|
28
|
+
<host-detail-count>0</host-detail-count>
|
29
|
+
<exploit-attempt-count>9</exploit-attempt-count>
|
30
|
+
<cred-count>0</cred-count>
|
31
|
+
<nexpose-data-asset-id/>
|
32
|
+
<history-count>0</history-count>
|
33
|
+
<detected-arch/>
|
34
|
+
<host_details>
|
35
|
+
</host_details>
|
36
|
+
<exploit_attempts>
|
37
|
+
<exploit_attempt>
|
38
|
+
<id>594</id>
|
39
|
+
<host-id>91</host-id>
|
40
|
+
<service-id/>
|
41
|
+
<vuln-id/>
|
42
|
+
<attempted-at>2014-12-17 20:08:53 UTC</attempted-at>
|
43
|
+
<exploited/>
|
44
|
+
<fail-reason>no-access</fail-reason>
|
45
|
+
<username>root</username>
|
46
|
+
<module>exploit/windows/smb/ms10_061_spoolss</module>
|
47
|
+
<session-id/>
|
48
|
+
<loot-id/>
|
49
|
+
<port>445</port>
|
50
|
+
<proto>tcp</proto>
|
51
|
+
<fail-detail>The server responded with error: STATUS_ACCESS_DENIED (Command=37 WordCount=0)</fail-detail>
|
52
|
+
</exploit_attempt>
|
53
|
+
<exploit_attempt>
|
54
|
+
<id>595</id>
|
55
|
+
<host-id>91</host-id>
|
56
|
+
<service-id/>
|
57
|
+
<vuln-id/>
|
58
|
+
<attempted-at>2014-12-17 20:09:15 UTC</attempted-at>
|
59
|
+
<exploited/>
|
60
|
+
<fail-reason>no-access</fail-reason>
|
61
|
+
<username>root</username>
|
62
|
+
<module>exploit/windows/oracle/extjob</module>
|
63
|
+
<session-id/>
|
64
|
+
<loot-id/>
|
65
|
+
<port>445</port>
|
66
|
+
<proto>tcp</proto>
|
67
|
+
<fail-detail>The server responded with error: STATUS_ACCESS_DENIED (Command=162 WordCount=0)</fail-detail>
|
68
|
+
</exploit_attempt>
|
69
|
+
<exploit_attempt>
|
70
|
+
<id>596</id>
|
71
|
+
<host-id>91</host-id>
|
72
|
+
<service-id/>
|
73
|
+
<vuln-id/>
|
74
|
+
<attempted-at>2014-12-17 20:09:33 UTC</attempted-at>
|
75
|
+
<exploited/>
|
76
|
+
<fail-reason>unknown</fail-reason>
|
77
|
+
<username>root</username>
|
78
|
+
<module>exploit/multi/samba/usermap_script</module>
|
79
|
+
<session-id/>
|
80
|
+
<loot-id/>
|
81
|
+
<port>139</port>
|
82
|
+
<proto>tcp</proto>
|
83
|
+
<fail-detail>Stream #<TCPSocket:0x11c51cbc> is closed.</fail-detail>
|
84
|
+
</exploit_attempt>
|
85
|
+
<exploit_attempt>
|
86
|
+
<id>598</id>
|
87
|
+
<host-id>91</host-id>
|
88
|
+
<service-id/>
|
89
|
+
<vuln-id/>
|
90
|
+
<attempted-at>2014-12-17 20:14:44 UTC</attempted-at>
|
91
|
+
<exploited/>
|
92
|
+
<fail-reason>unknown</fail-reason>
|
93
|
+
<username>root</username>
|
94
|
+
<module>exploit/windows/smb/ms08_067_netapi</module>
|
95
|
+
<session-id/>
|
96
|
+
<loot-id/>
|
97
|
+
<port>445</port>
|
98
|
+
<proto>tcp</proto>
|
99
|
+
<fail-detail>The SMB server did not reply to our request</fail-detail>
|
100
|
+
</exploit_attempt>
|
101
|
+
<exploit_attempt>
|
102
|
+
<id>600</id>
|
103
|
+
<host-id>91</host-id>
|
104
|
+
<service-id/>
|
105
|
+
<vuln-id/>
|
106
|
+
<attempted-at>2014-12-17 20:34:04 UTC</attempted-at>
|
107
|
+
<exploited/>
|
108
|
+
<fail-reason>no-access</fail-reason>
|
109
|
+
<username>root</username>
|
110
|
+
<module>exploit/windows/smb/ms10_061_spoolss</module>
|
111
|
+
<session-id/>
|
112
|
+
<loot-id/>
|
113
|
+
<port>445</port>
|
114
|
+
<proto>tcp</proto>
|
115
|
+
<fail-detail>The server responded with error: STATUS_ACCESS_DENIED (Command=37 WordCount=0)</fail-detail>
|
116
|
+
</exploit_attempt>
|
117
|
+
<exploit_attempt>
|
118
|
+
<id>606</id>
|
119
|
+
<host-id>91</host-id>
|
120
|
+
<service-id/>
|
121
|
+
<vuln-id/>
|
122
|
+
<attempted-at>2014-12-17 21:06:37 UTC</attempted-at>
|
123
|
+
<exploited/>
|
124
|
+
<fail-reason>payload-failed</fail-reason>
|
125
|
+
<username>root</username>
|
126
|
+
<module>exploit/windows/smb/psexec</module>
|
127
|
+
<session-id/>
|
128
|
+
<loot-id/>
|
129
|
+
<port>445</port>
|
130
|
+
<proto>tcp</proto>
|
131
|
+
<fail-detail>No session created</fail-detail>
|
132
|
+
</exploit_attempt>
|
133
|
+
<exploit_attempt>
|
134
|
+
<id>610</id>
|
135
|
+
<host-id>91</host-id>
|
136
|
+
<service-id/>
|
137
|
+
<vuln-id/>
|
138
|
+
<attempted-at>2014-12-18 01:41:37 UTC</attempted-at>
|
139
|
+
<exploited/>
|
140
|
+
<fail-reason>unknown</fail-reason>
|
141
|
+
<username>root</username>
|
142
|
+
<module>exploit/windows/smb/ms08_067_netapi</module>
|
143
|
+
<session-id/>
|
144
|
+
<loot-id/>
|
145
|
+
<port>445</port>
|
146
|
+
<proto>tcp</proto>
|
147
|
+
<fail-detail>Stream #<TCPSocket:0x1297c270> is closed.</fail-detail>
|
148
|
+
</exploit_attempt>
|
149
|
+
<exploit_attempt>
|
150
|
+
<id>611</id>
|
151
|
+
<host-id>91</host-id>
|
152
|
+
<service-id/>
|
153
|
+
<vuln-id/>
|
154
|
+
<attempted-at>2014-12-18 01:44:53 UTC</attempted-at>
|
155
|
+
<exploited/>
|
156
|
+
<fail-reason>unknown</fail-reason>
|
157
|
+
<username>root</username>
|
158
|
+
<module>exploit/windows/smb/ms08_067_netapi</module>
|
159
|
+
<session-id/>
|
160
|
+
<loot-id/>
|
161
|
+
<port>445</port>
|
162
|
+
<proto>tcp</proto>
|
163
|
+
<fail-detail>Stream #<TCPSocket:0x1292f2b8> is closed.</fail-detail>
|
164
|
+
</exploit_attempt>
|
165
|
+
<exploit_attempt>
|
166
|
+
<id>612</id>
|
167
|
+
<host-id>91</host-id>
|
168
|
+
<service-id/>
|
169
|
+
<vuln-id/>
|
170
|
+
<attempted-at>2014-12-18 01:46:04 UTC</attempted-at>
|
171
|
+
<exploited/>
|
172
|
+
<fail-reason>unknown</fail-reason>
|
173
|
+
<username>root</username>
|
174
|
+
<module>exploit/windows/smb/ms08_067_netapi</module>
|
175
|
+
<session-id/>
|
176
|
+
<loot-id/>
|
177
|
+
<port>445</port>
|
178
|
+
<proto>tcp</proto>
|
179
|
+
<fail-detail>Stream #<TCPSocket:0x127a9024> is closed.</fail-detail>
|
180
|
+
</exploit_attempt>
|
181
|
+
</exploit_attempts>
|
182
|
+
<services>
|
183
|
+
<service>
|
184
|
+
<id>338</id>
|
185
|
+
<host-id>91</host-id>
|
186
|
+
<created-at>2014-12-17 19:38:02 UTC</created-at>
|
187
|
+
<port>139</port>
|
188
|
+
<proto>tcp</proto>
|
189
|
+
<state>open</state>
|
190
|
+
<name/>
|
191
|
+
<updated-at>2014-12-17 19:38:02 UTC</updated-at>
|
192
|
+
<info></info>
|
193
|
+
</service>
|
194
|
+
<service>
|
195
|
+
<id>352</id>
|
196
|
+
<host-id>91</host-id>
|
197
|
+
<created-at>2014-12-17 19:38:23 UTC</created-at>
|
198
|
+
<port>445</port>
|
199
|
+
<proto>tcp</proto>
|
200
|
+
<state>open</state>
|
201
|
+
<name>smb</name>
|
202
|
+
<updated-at>2014-12-17 19:58:30 UTC</updated-at>
|
203
|
+
<info>Windows XP SP3 (language:English) (name:MAPWS) (domain:IECA)</info>
|
204
|
+
</service>
|
205
|
+
</services>
|
206
|
+
<notes>
|
207
|
+
<note>
|
208
|
+
<id>123</id>
|
209
|
+
<created-at>2014-12-17 17:52:03 UTC</created-at>
|
210
|
+
<ntype>mac_oui</ntype>
|
211
|
+
<workspace-id>2</workspace-id>
|
212
|
+
<service-id/>
|
213
|
+
<host-id>91</host-id>
|
214
|
+
<updated-at>2014-12-19 20:21:30 UTC</updated-at>
|
215
|
+
<critical/>
|
216
|
+
<seen/>
|
217
|
+
<data>Hewlett-Packard Company</data>
|
218
|
+
</note>
|
219
|
+
<note>
|
220
|
+
<id>312</id>
|
221
|
+
<created-at>2014-12-17 19:58:30 UTC</created-at>
|
222
|
+
<ntype>fingerprint.match</ntype>
|
223
|
+
<workspace-id>2</workspace-id>
|
224
|
+
<service-id>352</service-id>
|
225
|
+
<host-id>91</host-id>
|
226
|
+
<updated-at>2014-12-17 23:49:48 UTC</updated-at>
|
227
|
+
<critical/>
|
228
|
+
<seen/>
|
229
|
+
<data>BAh7CSIPb3MudmVyc2lvbiITU2VydmljZSBQYWNrIDMiEG9zLmxhbmd1YWdlIgxFbmdsaXNoIg5ob3N0Lm5hbWUiCk1BUFdTIhBob3N0LmRvbWFpbiIJSVVBQQ==</data>
|
230
|
+
</note>
|
231
|
+
<note>
|
232
|
+
<id>313</id>
|
233
|
+
<created-at>2014-12-17 19:58:31 UTC</created-at>
|
234
|
+
<ntype>smb.fingerprint</ntype>
|
235
|
+
<workspace-id>2</workspace-id>
|
236
|
+
<service-id>352</service-id>
|
237
|
+
<host-id>91</host-id>
|
238
|
+
<updated-at>2014-12-17 23:49:48 UTC</updated-at>
|
239
|
+
<critical/>
|
240
|
+
<seen/>
|
241
|
+
<data>BAh7CzoObmF0aXZlX29zIhBXaW5kb3dzIDUuMToObmF0aXZlX2xtIh1XaW5kb3dzIDIwMDAgTEFOIE1hbmFnZXI6Cm9zX3NwIhNTZXJ2aWNlIFBhY2sgMzoMb3NfbGFuZyIMRW5nbGlzaDoMU01CTmFtZSIKTUFQV1M6DlNNQkRvbWFpbiIJSVVBQQ==</data>
|
242
|
+
</note>
|
243
|
+
</notes>
|
244
|
+
<vulns>
|
245
|
+
</vulns>
|
246
|
+
</host>
|
247
|
+
</hosts>
|
248
|
+
</MetasploitV5>
|