#VERSION,2.02 # $Id$ ############################################################################### # Copyright (C) 2006 CIRT, Inc. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; version 2 # of the License only. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ############################################################################### ############################################################################### # PURPOSE # Various messages relating to the server banner ############################################################################### # NOTES # versions are loaded from the "db_server_msgs" file, which should be in the # plugins directory this plugin checks the server version to see if there are # any version specific items in the4 db_server_msgs this differs from # nikto_outdated because that is ONLY checking to see if it is an old version, # whereas this checks to see if the versions match ############################################################################### sub nikto_embedded_init { my $id = { name => "embedded", full_name => "Embedded Destection", author => "Deity", description => "Checks to see whether the host is an embedded server.", scan_method => \&nikto_embedded, copyright => "2009 CIRT Inc." }; return $id; } sub nikto_embedded { my ($mark) = @_; my $dbarray; $dbarray=initialise_db("db_embedded"); foreach my $item (@$dbarray) { (my $res, $content) = nfetch($mark,$item->{uri},"GET"); if ($res eq "200") { my @lines=split(/\n/,$content); foreach my $line (@lines) { # Check for the matches and pull out information if ($line =~ $item->{match}) { # Now pull out the make my $model=$line; $model =~ s/$item->{match}/$item->{model}/ee; $model =~ s/\+/ /g; if (model ne "") { add_vulnerability($mark, "$item->{message} $model",$item->{nikto_id}, 0, "GET", $item->{uri}); } } } } } } 1;