|
@@ -1,65 +0,0 @@
|
|
|
-package SimplyGit::Shellex;
|
|
|
-use strict;
|
|
|
-use warnings;
|
|
|
-use Log::Log4perl qw(:easy);
|
|
|
-use Exporter qw(import);
|
|
|
-our @EXPORT_OK = qw(shellex findBin knocker);
|
|
|
-
|
|
|
-sub knocker($$$) {
|
|
|
-
|
|
|
- my $target = shift;
|
|
|
- my $portRef = shift;
|
|
|
- my $logger = shift;
|
|
|
- my $nmapCmd = findBin("nmap",$logger);
|
|
|
- foreach my $port (@$portRef) {
|
|
|
- shellex("$nmapCmd -Pn --host_timeout 201 --max-retries 0 -p $port $target > /dev/null",$logger);
|
|
|
- }
|
|
|
-
|
|
|
-}
|
|
|
-
|
|
|
-sub shellex {
|
|
|
-
|
|
|
- my $cmd = shift;
|
|
|
- my $logger = shift;
|
|
|
- if ( defined $logger && $logger ne '' ) {
|
|
|
- $logger->info("Running: $cmd 2>&1");
|
|
|
- }
|
|
|
-
|
|
|
- my $output = `$cmd 2>&1`;
|
|
|
- chomp $output;
|
|
|
- my $rc = $?;
|
|
|
- if ( defined $logger && $logger ne '' ) {
|
|
|
- $logger->info("Returned: $rc");
|
|
|
- }
|
|
|
-
|
|
|
- if ( $rc != 0 ) {
|
|
|
- if ( defined $logger && $logger ne '' ) {
|
|
|
- $logger->error("$cmd returned non-zero: $rc");
|
|
|
- }
|
|
|
-
|
|
|
- print "$cmd returned non-zero: $rc\n";
|
|
|
- exit 1;
|
|
|
- }
|
|
|
-
|
|
|
- return $output;
|
|
|
-
|
|
|
-}
|
|
|
-
|
|
|
-sub findBin {
|
|
|
-
|
|
|
- my $cmd = shift;
|
|
|
- my $logger = shift;
|
|
|
- my $binPath = shellex("which $cmd",$logger);
|
|
|
- my $rc = $?;
|
|
|
- chomp $binPath;
|
|
|
- if ( $rc != 0 ) {
|
|
|
- if ( defined $logger && $logger ne '' ) {
|
|
|
- $logger->error("Couldn't find a path for $cmd, exiting...");
|
|
|
- }
|
|
|
- exit 1;
|
|
|
- } else {
|
|
|
- return $binPath;
|
|
|
- }
|
|
|
-
|
|
|
-}
|
|
|
-1;
|