The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

MetasploitExpress::Parser - Parse metasploit express scan data with Perl

VERSION

This document describes the latest version of MetasploitExpress::Parser.

SYNOPSIS

 my $msf = new MetatsploitExpress::Parser;

 my $parser = $msf->parse_file('test1.xml');
    #a MetasploitExpress::Parser Object

 my @hosts = $parser->get_all_hosts();
    #an Array of MetasploitExpress::Parser::Host Objects

 my @services = $parser->get_all_services();
    #an Array of MetasploitExpress::Parser::Service Objects

 my @tasks = $parser->get_all_tasks();
    #an Array of MetasploitExpress::Parser::Task Objects

 my @events = $parser->get_all_events();
    #an Array of MetasploitExpress::Parser::Event Objects

 my @reports = $parser->get_all_reports();
    #an Array of MetasploitExpress::Parser::Report Objects

For a full listing of methods see the documentation corresponding to each object.

DESCRIPTION

OVERVIEW

 MetasploitExpress::Parser                              -- Core parser
 |
 +--MetasploitExpress::Parser::Session                  -- Metasploit Express scan session information
 |  
 +--MetasploitExpress::Parser::Host                     -- General host information
 |
 +--MetasploitExpress::Parser::Service                  -- General service information
 |
 +--MetasploitExpress::Parser::Report                   -- General report information
 |
 +--MetasploitExpress::Parser::Task                     -- General task information
 |
 +--MetasploitExpress::Parser::Event                    -- General event information

METHODS

MetasploitExpress::Parser

The main idea behind the core modules is, you will first parse the scan data then extract the information. Therefore, you should run parse_file then the you can use any of the get_* methods.

parse_file($xml_file)

Parse a MetasploitExpress XML file. The XML files are generated from using Metasploit Express

get_session()

Obtain the MetasploitExpress::Parser::Session object which contains the session scan information.

get_all_hosts()

Obtain an Array of MetasploitExpress::Parser::Host objects which contain host information.

get_all_services()

Obtain an Array of MetasploitExpress::Parser::Service objects which contain service information.

get_all_events()

Obtain an Array of MetasploitExpress::Parser::Event objects which contain event information.

get_all_tasks()

Obtain an Array of MetasploitExpress::Parser::Task objects which contain task information.

get_all_reports()

Obtain an Array of MetasploitExpress::Parser::Report objects which contain report information.

MetasploitExpress::Parser::Session

This object contains the scan session information of the MetasploitExpress scan.

time()

Returns the time of the scan.

user()

Returns the user that ran the scan.

project()

Returns the name of the project.

MetasploitExpress::Parser::Host

This object contains the information for a host.

address()

Returns a string which contains the ip of this host.

address6()

Returns a string which contains the ip v6 of this host.

arch()

Returns a string which contains the architecture this host.

comments()

Returns a string which contains the comment for this this host.

created_at()

Returns a string which contains the date/time this host was created.

id()

Returns a string which contains the id for this host.

mac()

Returns a string which contains the MAC address for this host.

name()

Returns a string which contains the hostname for this host.

os_flavor()

Returns a string which contains the OS flavor for this host.

os_name()

Returns a string which contains the OS name for this host. Ex: Microsoft Windows XP

os_sp()

Returns a string which contains the OS service pack for this host. Ex: SP0/1

purpose()

Returns a string which contains the purpose for this host. Ex: client

state()

Returns a string which contains the state for this host. Ex: alive

workspace_id()

Returns a string which contains the workspace_id for this host.

MetasploitExpress::Parser::Service

This object contains the information for a port/service.

port()

Returns a string which contains the port number.

proto()

Returns a string which contains the protocol. Ex: tcp or udp

state()

Returns a string which contains the state. Ex: open

host_id()

Returns a string which contains the host_id.

id()

Returns a string which contains the id.

created_at()

Returns a string which contains the date/time this service was created.

updated_at()

Returns a string which contains the date/time this service was last updated.

MetasploitExpress::Parser::Event

This object contains the information for a event.

host_id()

Returns a string which contains the host_id. This will be a number or 'NULL'.

critical()

Returns a string which contains the critical information about the event. This will be a string or 'NULL'

user()

Returns a string which contains user that created this event.

id()

Returns a string which contains the id.

created_at()

Returns a string which contains the date/time this event was created.

updated_at()

Returns a string which contains the date/time this event was last updated.

workspace_id()

Returns a string which contains the workspace id for this event.

seen()

Returns a string which contains a boolean if this event has already been seen before.

name()

Returns a string which contains the name of this event. Ex: module_complete

MetasploitExpress::Parser::Task

This object contains the information for a task.

description()

Returns a string which contains the description of this task.

error()

Returns a string which contains the error if one occured.

id()

Returns a string which contains the id.

module()

Returns a string which contains the module that was executed for this task.

path()

Returns a string which contains the path which contains the data for this task.

workspace_id()

Returns a string which contains the workspace id for this task.

user()

Returns a string which contains the username that created this task.

created_at()

Returns a string which contains the date/time this task was created.

updated_at()

Returns a string which contains the date/time this task was last updated.

EXAMPLES

Here is an example of parsing an XML file using MetasploitExpress::Parser:

my $msf = new MetasploitExpress::Parser;

my $parser = $msf->parse_file('test1.xml');

foreach my $h ( $parser->get_all_hosts() ){ print "ip: " . $h->address . "\n"; print "---\n";

}

foreach my $s ( $parser->get_all_services() ){ print "port: " . $s->port . "\n"; print "proto: " . $s->proto . "\n"; print "name: " . $s->name . "\n"; print "host_id: " . $s->host_id . "\n"; print "---\n";

}

SEE ALSO

 XML::LibXML and Object::InsideOut
 

AUTHOR

Joshua D. Abraham, <jabra AT spl0it DOT org>

COPYRIGHT AND LICENSE

Copyright 2010 Joshua D. Abraham. All rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.