OpenVAS Libraries
9.0.3
|
NASL WMI functions. More...
#include <string.h>
#include <stdio.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <ctype.h>
#include <inttypes.h>
#include "../misc/plugutils.h"
#include "nasl_wmi.h"
#include "openvas_wmi_interface.h"
#include "../misc/openvas_logging.h"
Go to the source code of this file.
Macros | |
#define | IMPORT(var) char *var = get_str_local_var_by_name(lexic, #var) |
#define | max 5 |
Functions | |
int | check_alpha (char *val) |
uint32_t | stoi_uint32_t (char *s) |
uint64_t | stoi_uint64_t (char *s) |
tree_cell * | nasl_wmi_versioninfo (lex_ctxt *lexic) |
Get a version string of the WMI implementation. More... | |
tree_cell * | nasl_wmi_connect (lex_ctxt *lexic) |
Connect to a WMI service and return a handle for it. More... | |
tree_cell * | nasl_wmi_close (lex_ctxt *lexic) |
Close WMI service handle. More... | |
tree_cell * | nasl_wmi_query (lex_ctxt *lexic) |
Perform WQL query. More... | |
tree_cell * | nasl_wmi_connect_rsop (lex_ctxt *lexic) |
Connect to a WMI RSOP service and return a handle for it. More... | |
tree_cell * | nasl_wmi_query_rsop (lex_ctxt *lexic) |
WMI RSOP query. More... | |
tree_cell * | nasl_wmi_connect_reg (lex_ctxt *lexic) |
Connect to a WMI Registry service and return a handle for it. More... | |
tree_cell * | nasl_wmi_reg_get_sz (lex_ctxt *lexic) |
Get string value from Registry. More... | |
tree_cell * | nasl_wmi_reg_enum_value (lex_ctxt *lexic) |
Enumerate registry values. More... | |
tree_cell * | nasl_wmi_reg_enum_key (lex_ctxt *lexic) |
Enumerate registry keys. More... | |
tree_cell * | nasl_wmi_reg_get_bin_val (lex_ctxt *lexic) |
Get registry binary value. More... | |
tree_cell * | nasl_wmi_reg_get_dword_val (lex_ctxt *lexic) |
Get registry DWORD value. More... | |
tree_cell * | nasl_wmi_reg_get_ex_string_val (lex_ctxt *lexic) |
Get registry expanded string value. More... | |
tree_cell * | nasl_wmi_reg_get_mul_string_val (lex_ctxt *lexic) |
Get registry multi valued strings. More... | |
tree_cell * | nasl_wmi_reg_get_qword_val (lex_ctxt *lexic) |
Get registry QWORD value. More... | |
tree_cell * | nasl_wmi_reg_set_dword_val (lex_ctxt *lexic) |
Set Registry DWORD value. More... | |
tree_cell * | nasl_wmi_reg_set_qword_val (lex_ctxt *lexic) |
Set Registry QWORD value. More... | |
tree_cell * | nasl_wmi_reg_set_ex_string_val (lex_ctxt *lexic) |
Set Registry Expanded string value. More... | |
tree_cell * | nasl_wmi_reg_set_string_val (lex_ctxt *lexic) |
Set Registry string value. More... | |
tree_cell * | nasl_wmi_reg_create_key (lex_ctxt *lexic) |
Create Registry key. More... | |
tree_cell * | nasl_wmi_reg_delete_key (lex_ctxt *lexic) |
Delete Registry key. More... | |
NASL WMI functions.
Provides WMI (Windows Management Instrumentation) functionalities via calling functions of a appropriate library. The API offers three groups of functions:
Definition in file nasl_wmi.c.
#define IMPORT | ( | var | ) | char *var = get_str_local_var_by_name(lexic, #var) |
Definition at line 60 of file nasl_wmi.c.
#define max 5 |
Definition at line 61 of file nasl_wmi.c.
int check_alpha | ( | char * | val | ) |
Returns 0 if any alphabets are present
Definition at line 66 of file nasl_wmi.c.
References val.
Referenced by nasl_wmi_reg_set_dword_val(), and nasl_wmi_reg_set_qword_val().
Close WMI service handle.
[in] | lexic | Lexical context of NASL interpreter. |
Retrieves local variable "wmi_handle" from the lexical context and closes the respective handle.
Definition at line 225 of file nasl_wmi.c.
References alloc_tree_cell(), CONST_INT, get_int_local_var_by_name(), TC::i_val, TC::type, wmi_close(), and TC::x.
Connect to a WMI service and return a handle for it.
[in] | lexic | Lexical context of NASL interpreter. |
Retrieves local variables "host", "username", "password" and "ns" from the lexical context, performs and connects to this given WMI service returning a handle for the service as integer.
Definition at line 148 of file nasl_wmi.c.
References addr6_as_str(), alloc_tree_cell(), CONST_INT, IMPORT, log_legacy_write(), max, plug_get_host_ip(), TC::ref_val, struct_lex_ctxt::script_infos, TC::type, wmi_connect(), and TC::x.
Connect to a WMI Registry service and return a handle for it.
[in] | lexic | Lexical context of NASL interpreter. |
Retrieves local variables "host", "username", "password" from the lexical context, performs and connects to this given WMI service returning a handle for the service as integer.
Definition at line 424 of file nasl_wmi.c.
References addr6_as_str(), alloc_tree_cell(), CONST_INT, IMPORT, log_legacy_write(), plug_get_host_ip(), TC::ref_val, struct_lex_ctxt::script_infos, TC::type, wmi_connect_reg(), and TC::x.
Connect to a WMI RSOP service and return a handle for it.
[in] | lexic | Lexical context of NASL interpreter. |
Retrieves local variables "host", "username", "password" from the lexical context, performs and connects to this given WMI service returning a handle for the service as integer.
Definition at line 307 of file nasl_wmi.c.
References addr6_as_str(), alloc_tree_cell(), CONST_INT, IMPORT, log_legacy_write(), plug_get_host_ip(), TC::ref_val, struct_lex_ctxt::script_infos, TC::type, wmi_connect_rsop(), and TC::x.
Perform WQL query.
[in] | lexic | Lexical context of NASL interpreter. |
Retrieves local variables "wmi_handle" and "query" from the lexical context, performs a WMI query on the given handle and returns the result as a string.
Definition at line 257 of file nasl_wmi.c.
References alloc_tree_cell(), CONST_DATA, get_int_local_var_by_name(), get_str_local_var_by_name(), log_legacy_write(), TC::size, TC::str_val, TC::type, wmi_query(), and TC::x.
WMI RSOP query.
[in] | lexic | Lexical context of NASL interpreter. |
Retrieves local variables "wmi_handle", "query" from the lexical context, performs the RSOP query returning results in string format.
Definition at line 377 of file nasl_wmi.c.
References alloc_tree_cell(), CONST_DATA, get_int_local_var_by_name(), get_str_local_var_by_name(), log_legacy_write(), TC::size, TC::str_val, TC::type, wmi_query_rsop(), and TC::x.
Create Registry key.
[in] | lexic | Lexical context of NASL interpreter. |
Retrieves local variables "wmi_handle", "key" from the lexical context, performs the registry create operation for the key.
Definition at line 1062 of file nasl_wmi.c.
References alloc_tree_cell(), CONST_INT, get_int_local_var_by_name(), get_str_local_var_by_name(), TC::i_val, log_legacy_write(), TC::type, wmi_reg_create_key(), and TC::x.
Delete Registry key.
[in] | lexic | Lexical context of NASL interpreter. |
Retrieves local variables "wmi_handle", "key" from the lexical context, performs the registry delete operation for the key.
It will work only if the key exist
Definition at line 1104 of file nasl_wmi.c.
References alloc_tree_cell(), CONST_INT, get_int_local_var_by_name(), get_str_local_var_by_name(), TC::i_val, log_legacy_write(), TC::type, wmi_reg_delete_key(), and TC::x.
Enumerate registry keys.
[in] | lexic | Lexical context of NASL interpreter. |
Retrieves local variables "wmi_handle", "hive", "key" from the lexical context, performs the registry query returning a string value.
Definition at line 588 of file nasl_wmi.c.
References alloc_tree_cell(), CONST_DATA, get_int_local_var_by_name(), get_str_local_var_by_name(), log_legacy_write(), TC::size, TC::str_val, TC::type, wmi_reg_enum_key(), and TC::x.
Enumerate registry values.
[in] | lexic | Lexical context of NASL interpreter. |
Retrieves local variables "wmi_handle", "hive", "key" from the lexical context, performs the registry query returning a string value.
Definition at line 542 of file nasl_wmi.c.
References alloc_tree_cell(), CONST_DATA, get_int_local_var_by_name(), get_str_local_var_by_name(), log_legacy_write(), TC::size, TC::str_val, TC::type, wmi_reg_enum_value(), and TC::x.
Get registry binary value.
[in] | lexic | Lexical context of NASL interpreter. |
Retrieves local variables "wmi_handle", "hive", "key", "val_name" from the lexical context, performs the registry operation querying binary value.
Definition at line 634 of file nasl_wmi.c.
References alloc_tree_cell(), CONST_DATA, get_int_local_var_by_name(), get_str_local_var_by_name(), log_legacy_write(), TC::size, TC::str_val, TC::type, wmi_reg_get_bin_val(), and TC::x.
Get registry DWORD value.
[in] | lexic | Lexical context of NASL interpreter. |
Retrieves local variables "wmi_handle", "hive", "key", "val_name" from the lexical context, performs the registry operation querying DWORD value.
Definition at line 681 of file nasl_wmi.c.
References alloc_tree_cell(), CONST_DATA, get_int_local_var_by_name(), get_str_local_var_by_name(), log_legacy_write(), TC::size, TC::str_val, TC::type, wmi_reg_get_dword_val(), and TC::x.
Get registry expanded string value.
[in] | lexic | Lexical context of NASL interpreter. |
Retrieves local variables "wmi_handle", "hive", "key", "val_name" from the lexical context, performs the registry operation querying Expanded string value.
Definition at line 731 of file nasl_wmi.c.
References alloc_tree_cell(), CONST_DATA, get_int_local_var_by_name(), get_str_local_var_by_name(), log_legacy_write(), TC::size, TC::str_val, TC::type, wmi_reg_get_ex_string_val(), and TC::x.
Get registry multi valued strings.
[in] | lexic | Lexical context of NASL interpreter. |
Retrieves local variables "wmi_handle", "hive", "key", "val_name" from the lexical context, performs the registry operation querying Expanded string value.
Definition at line 778 of file nasl_wmi.c.
References alloc_tree_cell(), CONST_DATA, get_int_local_var_by_name(), get_str_local_var_by_name(), log_legacy_write(), TC::size, TC::str_val, TC::type, wmi_reg_get_mul_string_val(), and TC::x.
Get registry QWORD value.
[in] | lexic | Lexical context of NASL interpreter. |
Retrieves local variables "wmi_handle", "hive", "key", "val_name" from the lexical context, performs the registry operation querying 64-bit unsigned integer.
Definition at line 825 of file nasl_wmi.c.
References alloc_tree_cell(), CONST_DATA, get_int_local_var_by_name(), get_str_local_var_by_name(), log_legacy_write(), TC::size, TC::str_val, TC::type, wmi_reg_get_qword_val(), and TC::x.
Get string value from Registry.
[in] | lexic | Lexical context of NASL interpreter. |
Retrieves local variables "wmi_handle", "hive", "key", "key_name" from the lexical context, performs the registry query returning a string value.
Definition at line 495 of file nasl_wmi.c.
References alloc_tree_cell(), CONST_DATA, get_int_local_var_by_name(), get_str_local_var_by_name(), log_legacy_write(), TC::size, TC::str_val, TC::type, wmi_reg_get_sz(), and TC::x.
Set Registry DWORD value.
[in] | lexic | Lexical context of NASL interpreter. |
Retrieves local variables "wmi_handle", "key", "val_name", "val" from the lexical context, performs the registry set/create operation for double word data type.
It will work only if the key exist
Definition at line 873 of file nasl_wmi.c.
References alloc_tree_cell(), check_alpha(), CONST_INT, get_int_local_var_by_name(), get_str_local_var_by_name(), TC::i_val, log_legacy_write(), stoi_uint32_t(), TC::type, val, wmi_reg_set_dword_val(), and TC::x.
Set Registry Expanded string value.
[in] | lexic | Lexical context of NASL interpreter. |
Retrieves local variables "wmi_handle", "key", "val_name", "val" from the lexical context, performs the registry set/create operation for string value.
It will work only if the key exist
Definition at line 977 of file nasl_wmi.c.
References alloc_tree_cell(), CONST_INT, get_int_local_var_by_name(), get_str_local_var_by_name(), TC::i_val, log_legacy_write(), TC::type, val, wmi_reg_set_ex_string_val(), and TC::x.
Set Registry QWORD value.
[in] | lexic | Lexical context of NASL interpreter. |
Retrieves local variables "wmi_handle", "key", "val_name", "val" from the lexical context, performs the registry set/create operation for 64-bit unsigned integer.
It will work only if the key exist
Definition at line 925 of file nasl_wmi.c.
References alloc_tree_cell(), check_alpha(), CONST_INT, get_int_local_var_by_name(), get_str_local_var_by_name(), TC::i_val, log_legacy_write(), stoi_uint64_t(), TC::type, val, wmi_reg_set_qword_val(), and TC::x.
Set Registry string value.
[in] | lexic | Lexical context of NASL interpreter. |
Retrieves local variables "wmi_handle", "key", "val_name", "val" from the lexical context, performs the registry set/create operation for string value.
It will work only if the key exist
Definition at line 1020 of file nasl_wmi.c.
References alloc_tree_cell(), CONST_INT, get_int_local_var_by_name(), get_str_local_var_by_name(), TC::i_val, log_legacy_write(), TC::type, val, wmi_reg_set_string_val(), and TC::x.
Get a version string of the WMI implementation.
[in] | lexic | Lexical context of NASL interpreter. |
Definition at line 112 of file nasl_wmi.c.
References alloc_tree_cell(), CONST_DATA, TC::size, TC::str_val, TC::type, wmi_versioninfo(), and TC::x.
uint32_t stoi_uint32_t | ( | char * | s | ) |
Convert string to unsign int 32 bit
Definition at line 86 of file nasl_wmi.c.
Referenced by nasl_wmi_reg_set_dword_val().
uint64_t stoi_uint64_t | ( | char * | s | ) |
Convert string to unsign int 64 bit
Definition at line 96 of file nasl_wmi.c.
Referenced by nasl_wmi_reg_set_qword_val().