Article Listing 1 Listing 2 Listing 3 Listing 4 aug2005.tar

Listing 3 nessus.pl

#!/usr/bin/env perl

use Net::Nessus::ScanLite;

my $NESSUS_HOST = "localhost";
my $NESSUS_PORT = 1241;
my $NESSUS_SSL = 0;

my $NESSUS_USER = "nessus";
my $NESSUS_PASS = "nessus";

my $plugin = "10407;";

my $target_ip = $ARGV[0];

my $nessus = Net::Nessus::ScanLite -> new(host => $NESSUS_HOST,
                      port => $NESSUS_PORT,
                      ssl => $NESSUS_SSL);

$nessus -> preferences({ host_expansion => 'none',
             safe_checks => 'yes',
             checks_read_timeout => 1 } );

$nessus -> plugin_set($plugin);

if ($nessus -> login($NESSUS_USER, $NESSUS_PASS)) {
    $nessus -> attack($target_ip);
    # info
    print "Total info = " . $nessus -> total_info . "\n";
    foreach $info  ($nessus -> info_list) {
        print "Info:\n";
        print "ID: " . $info -> ScanID . "\n";
        print "Port: " . $info -> Port . "\n";
        print "Description: " . $info -> Description . "\n";
    }
    # holes
    print "Total holes = " . $nessus -> total_holes . "\n";
    foreach $hole ($nessus -> hole_list) {
        print "ID: " . $hole -> ScanID . "\n";
        print "Port: " . $hole -> Port . "\n";
        print "Description: " . $hole -> Description . "\n";
    }
} else {
    print "Nessus login failed!\n";
}