OpenVAS Scanner
7.0.1~git
|
Go to the documentation of this file.
34 #include "../misc/plugutils.h"
37 #include <arpa/inet.h>
39 #include <gvm/base/logging.h>
40 #include <gvm/base/networking.h>
42 #include <netinet/in.h>
45 #include <sys/socket.h>
47 #define IMPORT(var) char *var = get_str_var_by_name (lexic, #var)
54 #define G_LOG_DOMAIN "lib nasl"
63 val_len = strlen (
val);
65 if ((strcmp (
val,
"-1")) != 0)
67 for (i = 0; i < val_len; i++)
68 if (!isdigit (
val[i]))
84 sscanf (s,
"%" PRIu32, &v);
95 sscanf (s,
"%" PRIu64, &v);
119 retc->
size = strlen (version);
157 if ((
host == NULL) || (username == NULL) || (password == NULL))
159 g_message (
"nasl_wmi_connect: Invalid input arguments");
163 ip = addr6_as_str (
host);
164 if ((strlen (password) == 0) || (strlen (username) == 0) || strlen (ip) == 0)
166 g_message (
"nasl_wmi_connect: Invalid input arguments");
172 argv[0] = g_strdup (
"wmic");
173 argv[1] = g_strdup (
"-U");
174 argv[2] = g_strdup_printf (
"%s%%%s", username, password);
175 argv[3] = g_strdup_printf (
"//%s", ip);
176 argv[4] = g_strdup (ns);
183 g_message (
"nasl_wmi_connect: WMI Connect failed");
248 if ((value == -1) || (res == NULL))
250 g_message (
"wmi_query: WMI query failed '%s'", query);
255 retc->
size = strlen (res);
290 if ((
host == NULL) || (username == NULL) || (password == NULL))
292 g_message (
"nasl_wmi_connect_rsop: Invalid input arguments");
296 ip = addr6_as_str (
host);
297 if ((strlen (password) == 0) || (strlen (username) == 0) || strlen (ip) == 0)
299 g_message (
"nasl_wmi_connect_rsop: Invalid input arguments");
305 argv[0] = g_strdup (
"wmic");
306 argv[1] = g_strdup (
"-U");
307 argv[2] = g_strdup_printf (
"%s%%%s", username, password);
308 argv[3] = g_strdup_printf (
"//%s", ip);
315 g_message (
"nasl_wmi_connect_rsop: WMI Connect failed");
349 if ((value == -1) || (res == NULL))
351 g_message (
"wmi_query_rsop: WMI query failed");
355 retc->
size = strlen (res);
390 if ((
host == NULL) || (username == NULL) || (password == NULL))
392 g_message (
"nasl_wmi_connect_reg: Invalid input arguments");
396 ip = addr6_as_str (
host);
397 if ((strlen (password) == 0) || (strlen (username) == 0) || strlen (ip) == 0)
399 g_message (
"nasl_wmi_connect_reg: Invalid input arguments");
405 argv[0] = g_strdup (
"wmic");
406 argv[1] = g_strdup (
"-U");
407 argv[2] = g_strdup_printf (
"%s%%%s", username, password);
408 argv[3] = g_strdup_printf (
"//%s", ip);
415 g_message (
"nasl_wmi_connect_reg: WMI Connect failed");
456 if ((value == -1) || (res == NULL))
458 g_message (
"nasl_wmi_reg_get_sz: WMI Registry get failed");
463 retc->
size = strlen (res);
499 if ((value == -1) || (res == NULL))
501 g_message (
"nasl_wmi_reg_enum_value: WMI query failed");
506 retc->
size = strlen (res);
542 if ((value == -1) || (res == NULL))
544 g_message (
"nasl_wmi_reg_enum_key: WMI query failed");
549 retc->
size = strlen (res);
588 if ((value == -1) || (res == NULL))
590 g_message (
"nasl_wmi_reg_get_bin_val: WMI query failed");
595 retc->
size = strlen (res);
633 if ((value == 0) && (res == 0))
636 if ((value == -1) || (res == NULL))
638 g_message (
"nasl_wmi_reg_get_dword_val: WMI query failed");
643 retc->
size = strlen (res);
681 if ((value == -1) || (res == NULL))
683 g_message (
"nasl_wmi_reg_get_ex_string_val: WMI query failed");
688 retc->
size = strlen (res);
726 if ((value == -1) || (res == NULL))
728 g_message (
"nasl_wmi_reg_get_mul_string_val: WMI query failed");
733 retc->
size = strlen (res);
771 if ((value == -1) || (res == NULL))
773 g_message (
"nasl_wmi_reg_get_qword_val: WMI query failed");
778 retc->
size = strlen (res);
825 g_message (
"nasl_wmi_reg_set_dword_val: WMI registry set"
826 " operation failed");
875 g_message (
"nasl_wmi_reg_set_qword_val: WMI register"
876 " set operation failed");
918 "nasl_wmi_reg_set_ex_string_val: WMI registery set operation failed");
959 g_message (
"nasl_wmi_reg_set_string_val: WMI registery"
960 " set operation failed");
996 g_message (
"nasl_wmi_reg_create_key: WMI registery key create"
997 " operation failed");
1035 g_message (
"nasl_wmi_reg_delete_key: WMI registery key"
1036 " delete operation failed");
int wmi_close(WMI_HANDLE)
Close the connection handle for a WMI service.
uint64_t stoi_uint64_t(char *s)
API protos describing the interface of a wmi interface implementation.
int check_alpha(char *val)
int wmi_reg_create_key(WMI_HANDLE, const char *)
Create Registry Key.
tree_cell * nasl_wmi_reg_set_dword_val(lex_ctxt *lexic)
Set Registry DWORD value.
struct in6_addr * plug_get_host_ip(struct script_infos *args)
tree_cell * nasl_wmi_reg_set_ex_string_val(lex_ctxt *lexic)
Set Registry Expanded string value.
int wmi_reg_set_qword_val(WMI_HANDLE, const char *, const char *, uint64_t)
Set Registry QWORD value.
int wmi_reg_enum_key(WMI_HANDLE, unsigned int, const char *, char **)
Enumerate Registry keys.
char * get_str_var_by_name(lex_ctxt *, const char *)
tree_cell * nasl_wmi_connect(lex_ctxt *lexic)
Connect to a WMI service and return a handle for it.
tree_cell * nasl_wmi_query(lex_ctxt *lexic)
Perform WQL query.
tree_cell * nasl_wmi_reg_get_ex_string_val(lex_ctxt *lexic)
Get registry expanded string value.
tree_cell * nasl_wmi_reg_get_sz(lex_ctxt *lexic)
Get string value from Registry.
WMI_HANDLE wmi_connect_reg(int argc, char **argv)
Establish connection to a WMI Registry service.
int wmi_reg_set_string_val(WMI_HANDLE, const char *, const char *, const char *)
Set Registry string value.
int wmi_reg_get_bin_val(WMI_HANDLE, unsigned int, const char *, const char *, char **)
Get Registry binary value.
tree_cell * nasl_wmi_reg_get_bin_val(lex_ctxt *lexic)
Get registry binary value.
int wmi_reg_get_ex_string_val(WMI_HANDLE, unsigned int, const char *, const char *, char **)
Get Registry Expanded string value.
tree_cell * nasl_wmi_close(lex_ctxt *lexic)
Close WMI service handle.
tree_cell * nasl_wmi_reg_enum_key(lex_ctxt *lexic)
Enumerate registry keys.
tree_cell * nasl_wmi_reg_set_string_val(lex_ctxt *lexic)
Set Registry string value.
long int get_int_var_by_name(lex_ctxt *, const char *, int)
int wmi_reg_get_dword_val(WMI_HANDLE, unsigned int, const char *, const char *, char **)
Get Registry DWORD value.
int wmi_reg_get_qword_val(WMI_HANDLE, unsigned int, const char *, const char *, char **)
Get Registry QWORD value.
WMI_HANDLE wmi_connect(int argc, char **argv)
Establish connection to a WMI service.
tree_cell * nasl_wmi_reg_set_qword_val(lex_ctxt *lexic)
Set Registry QWORD value.
int wmi_reg_enum_value(WMI_HANDLE, unsigned int, const char *, char **)
Enumerate Registry values.
int wmi_reg_set_ex_string_val(WMI_HANDLE, const char *, const char *, const char *)
Set Registry Expanded string value.
tree_cell * nasl_wmi_reg_delete_key(lex_ctxt *lexic)
Delete Registry key.
struct script_infos * script_infos
int wmi_query_rsop(WMI_HANDLE, const char *, char **)
WMI RSOP query.
tree_cell * nasl_wmi_reg_create_key(lex_ctxt *lexic)
Create Registry key.
tree_cell * nasl_wmi_versioninfo(lex_ctxt *lexic)
Get a version string of the WMI implementation.
int wmi_reg_set_dword_val(WMI_HANDLE, const char *, const char *, uint32_t)
Set Registry DWORD value.
tree_cell * nasl_wmi_connect_rsop(lex_ctxt *lexic)
Connect to a WMI RSOP service and return a handle for it.
Host information, implemented as doubly linked list.
char * wmi_versioninfo(void)
Return version info for WMI implementation.
tree_cell * nasl_wmi_reg_get_dword_val(lex_ctxt *lexic)
Get registry DWORD value.
WMI_HANDLE wmi_connect_rsop(int argc, char **argv)
Establish connection to a WMI RSOP service.
tree_cell * nasl_wmi_reg_get_qword_val(lex_ctxt *lexic)
Get registry QWORD value.
int wmi_query(WMI_HANDLE, const char *, char **)
Query WMI service using a WQL query.
tree_cell * nasl_wmi_query_rsop(lex_ctxt *lexic)
WMI RSOP query.
tree_cell * alloc_typed_cell(int typ)
int wmi_reg_delete_key(WMI_HANDLE, const char *)
Delete Registry Key.
tree_cell * nasl_wmi_reg_enum_value(lex_ctxt *lexic)
Enumerate registry values.
uint32_t stoi_uint32_t(char *s)
tree_cell * nasl_wmi_connect_reg(lex_ctxt *lexic)
Connect to a WMI Registry service and return a handle for it.
tree_cell * nasl_wmi_reg_get_mul_string_val(lex_ctxt *lexic)
Get registry multi valued strings.
int wmi_reg_get_mul_string_val(WMI_HANDLE, unsigned int, const char *, const char *, char **)
Get Registry multi-valued strings.
int wmi_reg_get_sz(WMI_HANDLE, unsigned int, const char *, const char *, char **)
Get Registry string value.