From 25134e5640dbbc15b157c5ed5463af68a05b42f1 Mon Sep 17 00:00:00 2001 From: dataking Date: Fri, 15 Jul 2016 22:33:06 -0700 Subject: [PATCH] Bug, interoperability fixes --- lynis_report.pl | 49 ++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 38 insertions(+), 11 deletions(-) diff --git a/lynis_report.pl b/lynis_report.pl index 11780a0..b230841 100755 --- a/lynis_report.pl +++ b/lynis_report.pl @@ -348,10 +348,14 @@ print OUT <uptime (days):$lynis_report_data{'uptime_in_days'} - vm:$to_bool{$lynis_report_data{'vm'}} + vm:$lynis_report_data{'vm'} END +if ((defined($lynis_report_data{'vmtype'})) and ($lynis_report_data{'vmtype'} ne "")) { + print OUT "\t\t\t\t\t\tvm_type:$lynis_report_data{'vmtype'}\n"; +} else{ + print OUT "\t\t\t\t\t\tvm_type: \n"; +} print OUT <vm_type:$lynis_report_data{'vmtype'} uptime (secs):$lynis_report_data{'uptime_in_seconds'} @@ -459,7 +463,13 @@ print OUT < Malware Scanner Installed:$to_bool{$lynis_report_data{'malware_scanner_installed'}} - IDS/IPS Tooling$lynis_report_data{'ids_ips_tooling[]'} +END +if (exists($lynis_report_data{'ids_ips_tooling[]'})) { + print OUT "\t\t\t\t\t\tIDS/IPS Tooling$lynis_report_data{'ids_ips_tooling[]'}\n"; +} else { + print OUT "\t\t\t\t\t\tIDS/IPS Tooling \n"; +} +print OUT < @@ -471,7 +481,10 @@ END my $arrlen = scalar(@{$lynis_report_data{'pam_module[]'}}); #print "ARRLEN: $arrlen \n"; if (($arrlen % 5) == 0) { - print "ARRLEN divisible by 5. \n"; + #print "ARRLEN divisible by 5. \n"; + for (my $i=0;$i<$arrlen;$i+=5) { + print OUT "\t\t\t\t\t${$lynis_report_data{'pam_module[]'}}[$i]${$lynis_report_data{'pam_module[]'}}[($i + 1)]${$lynis_report_data{'pam_module[]'}}[($i + 2)]${$lynis_report_data{'pam_module[]'}}[($i + 3)]${$lynis_report_data{'pam_module[]'}}[($i + 4)]\n"; + } } elsif (($arrlen % 4) == 0) { print "ARRLEN divisible by 4. \n"; } elsif (($arrlen % 3) == 0) { @@ -485,7 +498,7 @@ if (($arrlen % 5) == 0) { print OUT "\t\t\t\t\t${$lynis_report_data{'pam_module[]'}}[$i]${$lynis_report_data{'pam_module[]'}}[($i + 1)]\n"; } } else { - die "ARRLEN appears to be number with a divisor larger than 5 or 1 ($arrlen) \n"; + die colored("ARRLEN appears to be number with a divisor larger than 5 or 1 ($arrlen) \n", "bold red"); } print OUT < @@ -517,7 +530,10 @@ $arrlen = scalar(@{$lynis_report_data{'loaded_kernel_module[]'}}); if (($arrlen % 5) == 0) { print "ARRLEN divisible by 5. \n"; } elsif (($arrlen % 4) == 0) { - print "ARRLEN divisible by 4. \n"; + #print "ARRLEN divisible by 4. \n"; + for (my $i=0;$i<$arrlen;$i+=4) { + print OUT "\t\t\t\t\t\t${$lynis_report_data{'loaded_kernel_module[]'}}[$i]${$lynis_report_data{'loaded_kernel_module[]'}}[($i + 1)]${$lynis_report_data{'loaded_kernel_module[]'}}[($i + 2)]${$lynis_report_data{'loaded_kernel_module[]'}}[($i + 3)]\n"; + } } elsif (($arrlen % 3) == 0) { #print "ARRLEN divisible by 3. \n"; for (my $i=0;$i<$arrlen;$i+=3) { @@ -526,7 +542,7 @@ if (($arrlen % 5) == 0) { } elsif (($arrlen % 2) == 0) { print "ARRLEN divisible by 2. \n"; } else { - die "ARRLEN appears to be number with a divisor larger than 5 or 1 ($arrlen) \n"; + die colored("ARRLEN appears to be number with a divisor larger than 5 or 1 ($arrlen) \n","bold red"); } print OUT < @@ -584,17 +600,28 @@ END #print OUT "\t\t\t\t\t\t".join(" | ", @{$lynis_report_data{'installed_packages_array'}})."\n"; $arrlen = scalar(@{$lynis_report_data{'installed_packages_array'}}); #print "ARRLEN: $arrlen \n"; -if (($arrlen % 4) == 0) { - print "ARRLEN divisible by 4. \n"; +if (($arrlen % 5) == 0) { + #print "ARRLEN divisible by 5. \n"; + for (my $i=0;$i<$arrlen;$i+=5) { + print OUT "\t\t\t\t\t${$lynis_report_data{'installed_packages_array'}}[$i]${$lynis_report_data{'installed_packages_array'}}[($i + 1)]${$lynis_report_data{'installed_packages_array'}}[($i + 2)]${$lynis_report_data{'installed_packages_array'}}[($i + 3)]${$lynis_report_data{'installed_packages_array'}}[($i + 4)]\n"; + } +} elsif (($arrlen % 4) == 0) { + #print "ARRLEN divisible by 4. \n"; + for (my $i=0;$i<$arrlen;$i+=4) { + print OUT "\t\t\t\t\t${$lynis_report_data{'installed_packages_array'}}[$i]${$lynis_report_data{'installed_packages_array'}}[($i + 1)]${$lynis_report_data{'installed_packages_array'}}[($i + 2)]${$lynis_report_data{'installed_packages_array'}}[($i + 3)]\n"; + } } elsif (($arrlen % 3) == 0) { #print "ARRLEN divisible by 3. \n"; for (my $i=0;$i<$arrlen;$i+=3) { print OUT "\t\t\t\t\t${$lynis_report_data{'installed_packages_array'}}[$i]${$lynis_report_data{'installed_packages_array'}}[($i + 1)]${$lynis_report_data{'installed_packages_array'}}[($i + 2)]\n"; } } elsif (($arrlen % 2) == 0) { - print "ARRLEN divisible by 2. \n"; + #print "ARRLEN divisible by 2. \n"; + for (my $i=0;$i<$arrlen;$i+=3) { + print OUT "\t\t\t\t\t${$lynis_report_data{'installed_packages_array'}}[$i]${$lynis_report_data{'installed_packages_array'}}[($i + 1)]\n"; + } } else { - die "ARRLEN appears to be number with a divisor larger than 4 or 1 ($arrlen) \n"; + die colored("ARRLEN appears to be number with a divisor larger than 5 or 1 ($arrlen) \n", "bold red"); } print OUT <