/usr/bin/genlist is in pbnj 2.04-4.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 | #!/usr/bin/perl
eval 'exec /usr/bin/perl -S $0 ${1+"$@"}'
if 0; # not running under some shell
#
# Copyright (C) 2005-2006 Joshua D. Abraham (jabra@ccs.neu.edu)
#
# This program is released under the terms of the GNU General Public License
# (GPL), which is distributed with this software in the file "COPYING".
# The GPL specifies the terms under which users may copy and use this software.
#
# PBNJ 2.0
# (P)orts (B)anners N' (J)unk
#
# Author: Joshua D. Abraham
# Date: March 15, 2006
# Updated: November 15, 2006
# Version: 2.04
#
#
# Genlist - ping scanner
#
use strict;
use warnings;
use FileHandle;
use Nmap::Parser;
use Getopt::Long;
use File::Which;
use vars qw( $PROG );
( $PROG = $0 ) =~ s/^.*[\/\\]//; # Truncate calling path from the prog name
my $AUTH = 'Joshua D. Abraham'; # author
my $VERSION = '2.04'; # version
my $np = new Nmap::Parser; # parser object
my $list; # output list of live hosts;
my @output_files;
my $ipfound;
my $type = 'help';
my $outputdir = '.'; # output database directory
my $nmapPath = which('nmap'); # nmap path
my $args = "-sP";
my $interface = ""; # default interface to perform scan
my @ipRange;
my %options; # getopts hash
##############################################################################
# scan ->
# performs a ping scan and prints the list of machines that are up
# side effects: exits program
##############################################################################
sub scan {
$np->parsescan( $nmapPath, $args, @ipRange );
for my $host ( $np->get_ips('up') ) {
print "$host\n";
}
exit;
}
##############################################################################
#
# help ->
# display help information
# side effect: exits program
#
##############################################################################
sub help {
print "Usage: $PROG [Input Type] [General Options]
Input Type:
-s --scan <target> Ping Target Range ex: 10.0.0.\\*
Scan Options:
-n --nmap <path> Path to Nmap executable
--inter <interface> Perform Nmap Scan using non default interface
General Options:
-v --version Display version
-h --help Display this information
Send Comments to Joshua D. Abraham ( jabra\@ccs.neu.edu )\n";
exit;
}
sub print_version {
print "$PROG version $VERSION by $AUTH\n";
exit;
}
##############################################################################
GetOptions(
\%options,
'scan|s=s', 'nmap|n=s', 'inter=s',
'help|h' => sub { help(); },
'version|v' => sub { print_version(); },
)
or exit 1;
if ( $options{'nmap'} ) {
if ( -X $options{'nmap'} ) {
$nmapPath = $options{'nmap'};
}
else {
print $options{'nmap'} . " isn't executable using $nmapPath\n";
}
}
if ( $options{'scan'} ) {
my $ipRange;
if ( $options{'scan'}
=~ /(\d{1,3})\.(\d{1,3}|\*)\.(\d{1,3}|\*)\.(0\/\d{1,2}|\d{1,3}|\*|'*')/
)
{
$ipRange = $options{'scan'};
$type = 'scan';
}
else {
print "scan is $options{'scan'}";
}
push( @ipRange, $ipRange );
}
if ( $options{'inter'} ) {
$interface = "-e " . $options{'interface'} . " ";
$args = $args . $interface;
}
# make sure something is passed
help() if ( $type ne 'scan' );
scan();
|