OpenVAS Scanner
7.0.0~git
|
glue between openvas and nasl scripts. More...
#include "nasl_scanner_glue.h"
#include "../misc/network.h"
#include "../misc/plugutils.h"
#include "../misc/vendorversion.h"
#include "nasl_debug.h"
#include "nasl_func.h"
#include "nasl_global_ctxt.h"
#include "nasl_lex_ctxt.h"
#include "nasl_tree.h"
#include "nasl_var.h"
#include <ctype.h>
#include <errno.h>
#include <fcntl.h>
#include <glib.h>
#include <gvm/base/logging.h>
#include <gvm/base/prefs.h>
#include <gvm/util/kb.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#include <unistd.h>
Go to the source code of this file.
Macros | |
#define | G_LOG_DOMAIN "lib nasl" |
GLib logging domain. More... | |
Typedefs | |
typedef void(* | proto_post_something_t) (const char *, struct script_infos *, int, const char *, const char *) |
typedef void(* | post_something_t) (const char *, struct script_infos *, int, const char *) |
glue between openvas and nasl scripts.
This file contains all the functions that make the "glue" between as NASL script and openvas. (script_*(), kb(), scanner_*())
Definition in file nasl_scanner_glue.c.
#define G_LOG_DOMAIN "lib nasl" |
GLib logging domain.
Definition at line 56 of file nasl_scanner_glue.c.
typedef void(* post_something_t) (const char *, struct script_infos *, int, const char *) |
Function is used when the script wants to report a problem back to openvas.
Definition at line 879 of file nasl_scanner_glue.c.
typedef void(* proto_post_something_t) (const char *, struct script_infos *, int, const char *, const char *) |
Function is used when the script wants to report a problem back to openvas.
Definition at line 874 of file nasl_scanner_glue.c.
Definition at line 957 of file nasl_scanner_glue.c.
References post_error(), proto_post_error(), and security_something().
Definition at line 742 of file nasl_scanner_glue.c.
References alloc_typed_cell(), CONST_DATA, CONST_INT, get_int_var_by_num(), get_str_var_by_num(), TC::i_val, plug_get_key(), struct_lex_ctxt::script_infos, TC::size, TC::str_val, TC::type, val, and TC::x.
Definition at line 681 of file nasl_scanner_glue.c.
References add_var_to_array(), alloc_typed_cell(), deref_cell(), DYN_ARRAY, FAKE_CELL, get_str_var_by_num(), nasl_perror(), plug_get_kb(), TC::ref_val, st_nasl_string::s_siz, st_nasl_string::s_val, struct_lex_ctxt::script_infos, st_a_nasl_var::v, st_a_nasl_var::v_int, st_a_nasl_var::v_str, VAR2_DATA, VAR2_INT, st_a_nasl_var::var_type, and TC::x.
Return the OID of the current script.
[in] | lexic | NASL lexer. |
Definition at line 663 of file nasl_scanner_glue.c.
References alloc_typed_cell(), CONST_DATA, struct_lex_ctxt::oid, oid, TC::size, TC::str_val, and TC::x.
|
static |
Definition at line 61 of file nasl_scanner_glue.c.
Referenced by script_get_preference().
Definition at line 951 of file nasl_scanner_glue.c.
References post_log(), proto_post_log(), and security_something().
Definition at line 963 of file nasl_scanner_glue.c.
References alloc_typed_cell(), CONST_DATA, get_str_var_by_num(), name, nasl_perror(), TC::size, TC::str_val, and TC::x.
Definition at line 1047 of file nasl_scanner_glue.c.
References FAKE_CELL, get_int_var_by_name(), get_str_var_by_name(), scanner_add_port(), and struct_lex_ctxt::script_infos.
If the plugin is a port scanner, it needs to report the list of open ports back to openvas scanner, and it also needs to know which ports are to be scanned.
Definition at line 1007 of file nasl_scanner_glue.c.
References alloc_typed_cell(), CONST_INT, get_int_var_by_num(), getpts(), TC::i_val, nasl_perror(), and TC::x.
Definition at line 1063 of file nasl_scanner_glue.c.
References FAKE_CELL.
Definition at line 986 of file nasl_scanner_glue.c.
References alloc_typed_cell(), CONST_DATA, TC::size, TC::str_val, vendor_version_get(), and TC::x.
Definition at line 635 of file nasl_scanner_glue.c.
References alloc_typed_cell(), CONST_DATA, script_infos::globals, scan_globals::network_targets, struct_lex_ctxt::script_infos, TC::size, TC::str_val, and TC::x.
Referenced by attack_network().
Definition at line 786 of file nasl_scanner_glue.c.
References ARG_INT, ARG_STRING, FAKE_CELL, get_int_var_by_name(), get_str_var_by_name(), get_var_size_by_name(), get_var_type_by_name(), name, nasl_perror(), plug_replace_key(), plug_replace_key_len(), struct_lex_ctxt::script_infos, and VAR2_INT.
Definition at line 602 of file nasl_scanner_glue.c.
References alloc_typed_cell(), CONST_INT, TC::i_val, and TC::x.
Referenced by plugin_run_openvas_tcp_scanner().
Definition at line 613 of file nasl_scanner_glue.c.
References alloc_typed_cell(), CONST_INT, script_infos::globals, TC::i_val, scan_globals::network_scan_status, struct_lex_ctxt::script_infos, and TC::x.
Definition at line 449 of file nasl_scanner_glue.c.
References FAKE_CELL, get_int_var_by_name(), get_str_var_by_name(), name, nasl_perror(), script_infos::nvti, and struct_lex_ctxt::script_infos.
Definition at line 122 of file nasl_scanner_glue.c.
References FAKE_CELL, get_str_var_by_num(), script_infos::nvti, and struct_lex_ctxt::script_infos.
Definition at line 271 of file nasl_scanner_glue.c.
References FAKE_CELL, get_int_var_by_num(), nasl_perror(), script_infos::nvti, and struct_lex_ctxt::script_infos.
Definition at line 264 of file nasl_scanner_glue.c.
References FAKE_CELL.
Definition at line 106 of file nasl_scanner_glue.c.
References FAKE_CELL, get_str_var_by_num(), script_infos::nvti, and struct_lex_ctxt::script_infos.
Definition at line 295 of file nasl_scanner_glue.c.
References FAKE_CELL, get_str_var_by_num(), nasl_perror(), plug_set_dep(), and struct_lex_ctxt::script_infos.
Definition at line 390 of file nasl_scanner_glue.c.
References FAKE_CELL, get_str_var_by_num(), nasl_perror(), script_infos::nvti, and struct_lex_ctxt::script_infos.
Definition at line 288 of file nasl_scanner_glue.c.
References FAKE_CELL, get_str_var_by_num(), script_infos::nvti, and struct_lex_ctxt::script_infos.
Definition at line 484 of file nasl_scanner_glue.c.
References alloc_typed_cell(), CONST_DATA, CONST_INT, FAKE_CELL, get_plugin_preference(), get_str_var_by_num(), TC::i_val, isalldigit(), nasl_perror(), struct_lex_ctxt::oid, TC::size, TC::str_val, TC::type, and TC::x.
Definition at line 519 of file nasl_scanner_glue.c.
References alloc_typed_cell(), CONST_DATA, FAKE_CELL, get_plugin_preference(), get_plugin_preference_file_content(), get_plugin_preference_file_size(), get_str_var_by_num(), nasl_perror(), struct_lex_ctxt::oid, struct_lex_ctxt::script_infos, TC::size, TC::str_val, and TC::x.
Definition at line 563 of file nasl_scanner_glue.c.
References alloc_typed_cell(), CONST_DATA, get_plugin_preference(), get_plugin_preference_fname(), get_str_var_by_num(), nasl_perror(), struct_lex_ctxt::oid, struct_lex_ctxt::script_infos, TC::size, TC::str_val, and TC::x.
Definition at line 344 of file nasl_scanner_glue.c.
References FAKE_CELL, get_str_var_by_name(), get_str_var_by_num(), nasl_perror(), script_infos::nvti, and struct_lex_ctxt::script_infos.
Definition at line 250 of file nasl_scanner_glue.c.
References FAKE_CELL, get_str_var_by_num(), script_infos::nvti, and struct_lex_ctxt::script_infos.
Referenced by nasl_perror(), and nasl_trace().
Definition at line 99 of file nasl_scanner_glue.c.
References FAKE_CELL, get_str_var_by_num(), script_infos::nvti, and struct_lex_ctxt::script_infos.
Definition at line 321 of file nasl_scanner_glue.c.
References FAKE_CELL, get_str_var_by_num(), nasl_perror(), script_infos::nvti, and struct_lex_ctxt::script_infos.
Definition at line 413 of file nasl_scanner_glue.c.
References FAKE_CELL, get_str_var_by_num(), script_infos::nvti, and struct_lex_ctxt::script_infos.
Definition at line 431 of file nasl_scanner_glue.c.
References FAKE_CELL, get_str_var_by_num(), script_infos::nvti, and struct_lex_ctxt::script_infos.
Definition at line 210 of file nasl_scanner_glue.c.
References FAKE_CELL, get_str_var_by_name(), name, nasl_perror(), script_infos::nvti, and struct_lex_ctxt::script_infos.
Definition at line 86 of file nasl_scanner_glue.c.
References FAKE_CELL, get_int_var_by_num(), script_infos::nvti, and struct_lex_ctxt::script_infos.
Definition at line 257 of file nasl_scanner_glue.c.
References FAKE_CELL.
Add a cross reference to the meta data.
The parameter "name" of the command defines actually the type, for example "URL" or "OSVDB". The parameter "value" is the actual reference. Alternative to "value", "csv" can be used with a list of comma-separated values.
In fact, if name is "cve" or "bid", it is equivalent to call script_cve_id() or script_bugtraq_id(), for example script_cve_id ("CVE-2019-12345"); is identical to script_xref (name: "cve", value: "CVE-2019-12345");
And also: script_bugtraq_id (12345); is identical to script_xref (name: "bid", value: "12345"); (watch out that the number now needs to be a string).
This even works with multiple comma-separated elements like script_xref (name: "cve", csv: "CVE-2019-12345,CVE-2019-54321");
lexic | The parser context. |
Definition at line 166 of file nasl_scanner_glue.c.
References FAKE_CELL, get_str_var_by_name(), name, nasl_perror(), script_infos::nvti, and struct_lex_ctxt::script_infos.
Send a security message to the client.
[in] | lexic | NASL lexer. |
Definition at line 945 of file nasl_scanner_glue.c.
References post_alarm(), proto_post_alarm(), and security_something().
|
static |
Definition at line 883 of file nasl_scanner_glue.c.
References FAKE_CELL, get_int_var_by_name(), get_int_var_by_num(), get_str_var_by_name(), get_var_size_by_name(), struct_lex_ctxt::oid, struct_lex_ctxt::script_infos, and script_infos::standalone.
Referenced by error_message(), log_message(), and security_message().
Definition at line 828 of file nasl_scanner_glue.c.
References ARG_INT, ARG_STRING, FAKE_CELL, get_int_var_by_name(), get_str_var_by_name(), get_var_size_by_name(), get_var_type_by_name(), name, nasl_perror(), plug_set_key(), plug_set_key_len(), struct_lex_ctxt::script_infos, and VAR2_INT.