NASL SyntaxTopProgrammierung von Network Vulnerability TestsAufbau eines NASL Skripts

Aufbau eines NASL Skripts

Alle NASL-Skripte müssen gewissen Informationen enthalten, anhand derer das Skript von anderen Skripten eindeutig unterschieden werden kann und mit denen auf das Skript verwiesen werden kann. Diese Informationen sind im dem als description oder register bezeichneten Teil des Skripts enthalten, den alle Skripte enthalten müssen. Im Allgemeinen steht dieser Teil am Beginn eines jeden NASL-Skripts.

Ein einfaches NASL-Skript könnte wie folgt beginnen:

#
# This is an example NASL script.
#

if(description)
{
 script_oid("1.3.6.1.4.1.25623.1.0.12345")
 script_version ("1.2");
 name["english"] = "Foo Bar 2.5 vulnerability";
 script_name(english:name["english"]);

 desc["english"] = "
   This plugin checks for the vulnerability in the Foo Bar 2.5 server
   component as described in CVE 2009-4321.

   Risk factor : None";

 script_description(english:desc["english"]);

 summary["english"] = "Check for vulnerability in Foo Bar 2.5";
 script_summary(english:summary["english"]);

 script_copyright(english:"This script is under GPLv2+");

 ...

 exit(0);
}

...

Die Beschreibung des NVTs ist in dem Block if (description) enthalten, der dem OpenVAS Server den Abruf dieser Informationen ermöglicht. Wenn der Server einen neuen NVT zum ersten Mal einliest, wird das Skript aufgerufen, während die globale Variable description auf TRUE (1) gesetzt ist. Die Informationen, die das Skript liefert, werden vom Server in einem Unterverzeichnis des NVT-Verzeichnisses namens .desc zwischengespeichert. Wenn das Skript während eines Scans aufgerufen wird, ist die globale Variable description auf FALSE (0) gesetzt.

Eine vollständige Liste aller NASL-Befehle, die in der Beschreibung eines Skriptes verwendet werden können, finden Sie in Abschnitt * der Dokumentation der NASL API.


NASL SyntaxTopProgrammierung von Network Vulnerability TestsAufbau eines NASL Skripts