diff --git a/bin/ossec-update-agents-database.pl b/bin/ossec-update-agents-database.pl new file mode 100644 index 0000000..dd87a22 --- /dev/null +++ b/bin/ossec-update-agents-database.pl @@ -0,0 +1,59 @@ +#!/usr/bin/env perl + +#ABSTRACT: script to update the agents within the mysql database +#PODNAME: ossec-update-agents-database.pl +use strict; +use warnings; +use File::Basename; +use OSSEC; +use XML::LibXML; +use Try::Tiny; + +my $ossec = OSSEC->new(); +my $mysql = $ossec->mysql(); + +# clear rules from database +$mysql->deleteAllAgents(); + +my $help = readpipe($ossec->ossecPath()."/bin/agent_control -l"); +my @lines = split /\n/, $help; + + +for my $l (@lines) +{ + if ($l =~ /^\s*ID:\s(\d+)/) + { + my $help = readpipe($ossec->ossecPath()."/bin/agent_control -i $1"); + my @lines = split /\n/, $help; + my $name; + my $ip; + my $version; + my $information; + + for my $l2 (@lines) + { + if ($l2 =~ /Name:\s+(\S+)/) + { + $name = $1; + } + + if ($l2 =~ /IP.*:\s+(\S+)/) + { + $ip = $1; + } + + if ($l2 =~ /version:\s+OSSEC\sHIDS\sv(\S+)/) + { + $version = $1; + } + + if ($l2 =~ /system:\s+(.*)$/) + { + $information=$1; + } + } + + $mysql->addAgent("1", 0, $ip, $version,$name, $information ); + + } +}