1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- 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;
|