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