OpenVAS Scanner 22.7.9
nasl_init.c
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Greenbone AG
2 * SPDX-FileCopyrightText: 2002-2004 Tenable Network Security
3 *
4 * SPDX-License-Identifier: GPL-2.0-only
5 */
6
7#include "nasl_init.h"
8
9#include "../misc/network.h" /* for OPENVAS_ENCAPS_* */
10#include "../misc/nvt_categories.h" /* for ACT_INIT */
11#include "exec.h"
12#include "nasl.h"
14#include "nasl_cert.h"
15#include "nasl_cmd_exec.h"
16#include "nasl_crypto.h"
17#include "nasl_crypto2.h"
18#include "nasl_debug.h"
19#include "nasl_frame_forgery.h"
20#include "nasl_func.h"
21#include "nasl_global_ctxt.h"
22#include "nasl_host.h"
23#include "nasl_http.h"
24#include "nasl_isotime.h"
25#include "nasl_lex_ctxt.h"
26#include "nasl_misc_funcs.h"
27#include "nasl_packet_forgery.h"
29
30#include <stdlib.h> /* for getenv. */
31#include <string.h> /* for memset */
32/* to e.g. favour BSD, but also for IPPROTO_TCP and TH_FIN */
33#include "nasl_raw.h"
34#include "nasl_scanner_glue.h"
35#include "nasl_smb.h"
36#include "nasl_snmp.h"
37#include "nasl_socket.h"
38#include "nasl_ssh.h"
39#include "nasl_text_utils.h"
40#include "nasl_tree.h"
41#include "nasl_var.h"
42#include "nasl_wmi.h"
43
44/* **************************************************************** */
45
46typedef struct
47{
48 /* XXX: Unify with nasl_func */
49 const char *name;
50 tree_cell *(*c_code) (lex_ctxt *);
51} init_func;
52
58static init_func libfuncs[] = {
59 {"script_name", script_name},
60 {"script_version", script_version},
61 {"script_timeout", script_timeout},
62 {"script_copyright", script_copyright},
63 {"script_category", script_category},
64 {"script_family", script_family},
65 {"script_dependencies", script_dependencies},
66 {"script_require_keys", script_require_keys},
67 {"script_mandatory_keys", script_mandatory_keys},
68 {"script_require_ports", script_require_ports},
69 {"script_require_udp_ports", script_require_udp_ports},
70 {"script_exclude_keys", script_exclude_keys},
71 {"script_add_preference", script_add_preference},
72 {"script_get_preference", script_get_preference},
73 {"script_get_preference_file_content", script_get_preference_file_content},
74 {"script_get_preference_file_location", script_get_preference_file_location},
75 {"script_oid", script_oid},
76 {"script_cve_id", script_cve_id},
77 {"script_xref", script_xref},
78 {"script_tag", script_tag},
79 {"vendor_version", nasl_vendor_version},
80 {"get_preference", nasl_get_preference},
81 {"safe_checks", safe_checks},
82 {"get_script_oid", get_script_oid},
83 {"replace_kb_item", replace_kb_item},
84 {"set_kb_item", set_kb_item},
85 {"get_kb_item", get_kb_item},
86 {"get_kb_list", get_kb_list},
87 {"get_host_kb_index", get_host_kb_index},
88 {"security_message", security_message},
89 {"log_message", log_message},
90 {"error_message", error_message},
91 {"open_sock_tcp", nasl_open_sock_tcp},
92 {"open_sock_udp", nasl_open_sock_udp},
93 {"open_priv_sock_tcp", nasl_open_priv_sock_tcp},
94 {"open_priv_sock_udp", nasl_open_priv_sock_udp},
95 {"socket_get_error", nasl_socket_get_error},
96 {"recv", nasl_recv},
97 {"recv_line", nasl_recv_line},
98 {"send", nasl_send},
99 {"get_mtu", nasl_get_mtu},
100 {"socket_negotiate_ssl", nasl_socket_negotiate_ssl},
101 {"socket_check_ssl_safe_renegotiation",
103 {"socket_ssl_do_handshake", nasl_socket_ssl_do_handshake},
104 {"socket_get_cert", nasl_socket_get_cert},
105 {"socket_get_ssl_version", nasl_socket_get_ssl_version},
106 {"socket_get_ssl_ciphersuite", nasl_socket_get_ssl_ciphersuite},
107 {"socket_get_ssl_session_id", nasl_socket_get_ssl_session_id},
108 {"socket_cert_verify", nasl_socket_cert_verify},
109 {"close", nasl_close_socket},
110 {"join_multicast_group", nasl_join_multicast_group},
111 {"leave_multicast_group", nasl_leave_multicast_group},
112 {"get_source_port", nasl_get_source_port},
113 {"get_sock_info", nasl_get_sock_info},
114 {"cgibin", cgibin},
115 {"http_open_socket", http_open_socket},
116 {"http_head", http_head},
117 {"http_get", http_get},
118 {"http_post", http_post},
119 {"http_delete", http_delete},
120 {"http_put", http_put},
121 {"http_close_socket", http_close_socket},
122 {"add_host_name", add_hostname},
123 {"get_host_name", get_hostname},
124 {"get_host_names", get_hostnames},
125 {"get_host_name_source", get_hostname_source},
126 {"resolve_host_name", resolve_hostname},
127 {"resolve_hostname_to_multiple_ips", resolve_hostname_to_multiple_ips},
128 {"get_host_ip", get_host_ip},
129 {"get_local_mac_address_from_ip", nasl_get_local_mac_address_from_ip},
130 {"same_host", nasl_same_host},
131 {"TARGET_IS_IPV6", nasl_target_is_ipv6},
132 {"get_host_open_port", get_host_open_port},
133 {"get_port_state", get_port_state},
134 {"get_tcp_port_state", get_port_state},
135 {"get_udp_port_state", get_udp_port_state},
136 {"scanner_add_port", nasl_scanner_add_port},
137 {"scanner_status", nasl_scanner_status},
138 {"scanner_get_port", nasl_scanner_get_port},
139 {"islocalhost", nasl_islocalhost},
140 {"islocalnet", nasl_islocalnet},
141 {"get_port_transport", get_port_transport},
142 {"this_host", nasl_this_host},
143 {"this_host_name", nasl_this_host_name},
144 {"string", nasl_string},
145 {"raw_string", nasl_rawstring},
146 {"strcat", nasl_strcat},
147 {"display", nasl_display},
148 {"ord", nasl_ord},
149 {"hex", nasl_hex},
150 {"hexstr", nasl_hexstr},
151 {"strstr", nasl_strstr},
152 {"ereg", nasl_ereg},
153 {"ereg_replace", nasl_ereg_replace},
154 {"egrep", nasl_egrep},
155 {"eregmatch", nasl_eregmatch},
156 {"match", nasl_match},
157 {"substr", nasl_substr},
158 {"insstr", nasl_insstr},
159 {"tolower", nasl_tolower},
160 {"toupper", nasl_toupper},
161 {"crap", nasl_crap},
162 {"strlen", nasl_strlen},
163 {"split", nasl_split},
164 {"chomp", nasl_chomp},
165 {"int", nasl_int},
166 {"stridx", nasl_stridx},
167 {"str_replace", nasl_str_replace},
168 {"make_list", nasl_make_list},
169 {"make_array", nasl_make_array},
170 {"keys", nasl_keys},
171 {"max_index", nasl_max_index},
172 {"sort", nasl_sort_array},
173 {"unixtime", nasl_unixtime},
174 {"gettimeofday", nasl_gettimeofday},
175 {"localtime", nasl_localtime},
176 {"mktime", nasl_mktime},
177 {"open_sock_kdc", nasl_open_sock_kdc},
178 {"telnet_init", nasl_telnet_init},
179 {"ftp_log_in", nasl_ftp_log_in},
180 {"ftp_get_pasv_port", nasl_ftp_get_pasv_address},
181 {"start_denial", nasl_start_denial},
182 {"end_denial", nasl_end_denial},
183 {"dump_ctxt", nasl_dump_ctxt},
184 {"typeof", nasl_typeof},
185 {"exit", nasl_do_exit},
186 {"rand", nasl_rand},
187 {"usleep", nasl_usleep},
188 {"sleep", nasl_sleep},
189 {"isnull", nasl_isnull},
190 {"defined_func", nasl_defined_func},
191
192 /* Following 5 entries needed for backwards compatibility.
193 * TODO: Once versions older than 20.08 are no longer in use these 5 entries
194 * can be deleted. */
195 {"forge_ipv6_packet", forge_ip_v6_packet},
196 {"get_ipv6_element", get_ip_v6_element},
197 {"set_ipv6_elements", set_ip_v6_elements},
198 {"insert_ipv6_options", insert_ip_v6_options},
199 {"dump_ipv6_packet", dump_ip_v6_packet},
200
201 {"forge_ip_packet", forge_ip_packet},
202 {"forge_ip_v6_packet", forge_ip_v6_packet},
203 {"get_ip_element", get_ip_element},
204 {"get_ip_v6_element", get_ip_v6_element},
205 {"set_ip_elements", set_ip_elements},
206 {"set_ip_v6_elements", set_ip_v6_elements},
207 {"insert_ip_options", insert_ip_options},
208 {"insert_ip_v6_options", insert_ip_v6_options},
209 {"dump_ip_packet", dump_ip_packet},
210 {"dump_ip_v6_packet", dump_ip_v6_packet},
211 {"forge_tcp_packet", forge_tcp_packet},
212 {"forge_tcp_v6_packet", forge_tcp_v6_packet},
213 {"get_tcp_element", get_tcp_element},
214 {"get_tcp_v6_element", get_tcp_v6_element},
215 {"get_tcp_option", get_tcp_option},
216 {"get_tcp_v6_option", get_tcp_v6_option},
217 {"set_tcp_elements", set_tcp_elements},
218 {"set_tcp_v6_elements", set_tcp_v6_elements},
219 {"insert_tcp_options", insert_tcp_options},
220 {"insert_tcp_v6_options", insert_tcp_v6_options},
221 {"dump_tcp_packet", dump_tcp_packet},
222 {"dump_tcp_v6_packet", dump_tcp_v6_packet},
223 {"tcp_ping", nasl_tcp_ping},
224 {"tcp_v6_ping", nasl_tcp_v6_ping},
225 {"forge_udp_packet", forge_udp_packet},
226 {"forge_udp_v6_packet", forge_udp_v6_packet},
227 {"get_udp_element", get_udp_element},
228 {"get_udp_v6_element", get_udp_v6_element},
229 {"set_udp_elements", set_udp_elements},
230 {"set_udp_v6_elements", set_udp_v6_elements},
231 {"dump_udp_packet", dump_udp_packet},
232 {"dump_udp_v6_packet", dump_udp_v6_packet},
233 {"forge_icmp_packet", forge_icmp_packet},
234 {"forge_icmp_v6_packet", forge_icmp_v6_packet},
235 {"get_icmp_element", get_icmp_element},
236 {"get_icmp_v6_element", get_icmp_v6_element},
237 {"dump_icmp_packet", dump_icmp_packet},
238 {"dump_icmp_v6_packet", dump_icmp_v6_packet},
239 {"forge_igmp_packet", forge_igmp_packet},
240 {"forge_igmp_v6_packet", forge_igmp_v6_packet},
241 {"send_packet", nasl_send_packet},
242 {"send_v6packet", nasl_send_v6packet},
243 {"send_arp_request", nasl_send_arp_request},
244 {"forge_frame", nasl_forge_frame},
245 {"send_frame", nasl_send_frame},
246 {"dump_frame", nasl_dump_frame},
247 {"pcap_next", nasl_pcap_next},
248 {"send_capture", nasl_send_capture},
249 {"MD2", nasl_md2},
250 {"MD4", nasl_md4},
251 {"MD5", nasl_md5},
252 {"SHA1", nasl_sha1},
253 {"SHA256", nasl_sha256},
254 {"SHA512", nasl_sha512},
255 {"RIPEMD160", nasl_ripemd160},
256 {"HMAC_MD2", nasl_hmac_md2},
257 {"HMAC_MD5", nasl_hmac_md5},
258 {"HMAC_SHA1", nasl_hmac_sha1},
259 {"HMAC_SHA256", nasl_hmac_sha256},
260 {"HMAC_SHA384", nasl_hmac_sha384},
261 {"HMAC_SHA512", nasl_hmac_sha512},
262 {"HMAC_RIPEMD160", nasl_hmac_ripemd160},
263 {"prf_sha256", nasl_prf_sha256},
264 {"prf_sha384", nasl_prf_sha384},
265 {"tls1_prf", nasl_tls1_prf},
266 {"ntlmv2_response", nasl_ntlmv2_response},
267 {"ntlm2_response", nasl_ntlm2_response},
268 {"ntlm_response", nasl_ntlm_response},
269 {"key_exchange", nasl_keyexchg},
270 {"NTLMv1_HASH", nasl_ntlmv1_hash},
271 {"NTLMv2_HASH", nasl_ntlmv2_hash},
272 {"nt_owf_gen", nasl_nt_owf_gen},
273 {"lm_owf_gen", nasl_lm_owf_gen},
274 {"ntv2_owf_gen", nasl_ntv2_owf_gen},
275 {"insert_hexzeros", nasl_insert_hexzeros},
276 {"dec2str", nasl_dec2str},
277 {"get_signature", nasl_get_sign},
278 {"get_smb2_signature", nasl_get_smb2_sign},
279 {"smb_cmac_aes_signature", nasl_smb_cmac_aes_sign},
280 {"smb_gmac_aes_signature", nasl_smb_gmac_aes_sign},
281 {"dh_generate_key", nasl_dh_generate_key},
282 {"bn_random", nasl_bn_random},
283 {"bn_cmp", nasl_bn_cmp},
284 {"dh_compute_key", nasl_dh_compute_key},
285 {"rsa_public_encrypt", nasl_rsa_public_encrypt},
286 {"rsa_private_decrypt", nasl_rsa_private_decrypt},
287 {"rsa_public_decrypt", nasl_rsa_public_decrypt},
288 {"bf_cbc_encrypt", nasl_bf_cbc_encrypt},
289 {"bf_cbc_decrypt", nasl_bf_cbc_decrypt},
290 {"rc4_encrypt", nasl_rc4_encrypt},
291 {"aes_mac_cbc", nasl_aes_mac_cbc},
292 {"aes_mac_gcm", nasl_aes_mac_gcm},
293 {"aes128_cbc_encrypt", nasl_aes128_cbc_encrypt},
294 {"aes256_cbc_encrypt", nasl_aes256_cbc_encrypt},
295 {"aes128_ctr_encrypt", nasl_aes128_ctr_encrypt},
296 {"aes256_ctr_encrypt", nasl_aes256_ctr_encrypt},
297 {"aes128_gcm_encrypt", nasl_aes128_gcm_encrypt},
298 {"aes128_gcm_encrypt_auth", nasl_aes128_gcm_encrypt_auth},
299 {"aes128_gcm_decrypt", nasl_aes128_gcm_decrypt},
300 {"aes128_gcm_decrypt_auth", nasl_aes128_gcm_decrypt_auth},
301 {"aes256_gcm_encrypt", nasl_aes256_gcm_encrypt},
302 {"aes256_gcm_encrypt_auth", nasl_aes256_gcm_encrypt_auth},
303 {"aes256_gcm_decrypt", nasl_aes256_gcm_decrypt},
304 {"aes256_gcm_decrypt_auth", nasl_aes256_gcm_decrypt_auth},
305 {"aes128_ccm_encrypt", nasl_aes128_ccm_encrypt},
306 {"aes128_ccm_encrypt_auth", nasl_aes128_ccm_encrypt_auth},
307 {"aes128_ccm_decrypt", nasl_aes128_ccm_decrypt},
308 {"aes128_ccm_decrypt_auth", nasl_aes128_ccm_decrypt_auth},
309 {"aes256_ccm_encrypt", nasl_aes256_ccm_encrypt},
310 {"aes256_ccm_encrypt_auth", nasl_aes256_ccm_encrypt_auth},
311 {"aes256_ccm_decrypt", nasl_aes256_ccm_decrypt},
312 {"aes256_ccm_decrypt_auth", nasl_aes256_ccm_decrypt_auth},
313 {"smb3kdf", nasl_smb3kdf},
314 {"des_ede_cbc_encrypt", nasl_des_ede_cbc_encrypt},
315 {"open_rc4_cipher", nasl_open_rc4_cipher},
316 {"close_stream_cipher", nasl_close_stream_cipher},
317 {"dsa_do_verify", nasl_dsa_do_verify},
318 {"pem_to_rsa", nasl_pem_to_rsa},
319 {"pem_to_dsa", nasl_pem_to_dsa},
320 {"rsa_sign", nasl_rsa_sign},
321 {"dsa_do_sign", nasl_dsa_do_sign},
322 {"gunzip", nasl_gunzip},
323 {"gzip", nasl_gzip},
324 {"DES", nasl_cipher_des},
325 {"snmpv1_get", nasl_snmpv1_get},
326 {"snmpv1_getnext", nasl_snmpv1_getnext},
327 {"snmpv2c_get", nasl_snmpv2c_get},
328 {"snmpv2c_getnext", nasl_snmpv2c_getnext},
329 {"snmpv3_get", nasl_snmpv3_get},
330 {"snmpv3_getnext", nasl_snmpv3_getnext},
331 {"ssh_connect", nasl_ssh_connect},
332 {"ssh_disconnect", nasl_ssh_disconnect},
333 {"ssh_session_id_from_sock", nasl_ssh_session_id_from_sock},
334 {"ssh_get_sock", nasl_ssh_get_sock},
335 {"ssh_set_login", nasl_ssh_set_login},
336 {"ssh_userauth", nasl_ssh_userauth},
337 {"ssh_login_interactive", nasl_ssh_login_interactive},
338 {"ssh_login_interactive_pass", nasl_ssh_login_interactive_pass},
339 {"ssh_request_exec", nasl_ssh_request_exec},
340 {"ssh_shell_open", nasl_ssh_shell_open},
341 {"ssh_shell_read", nasl_ssh_shell_read},
342 {"ssh_shell_write", nasl_ssh_shell_write},
343 {"ssh_shell_close", nasl_ssh_shell_close},
344 {"ssh_get_issue_banner", nasl_ssh_get_issue_banner},
345 {"ssh_get_server_banner", nasl_ssh_get_server_banner},
346 {"ssh_get_auth_methods", nasl_ssh_get_auth_methods},
347 {"ssh_get_host_key", nasl_ssh_get_host_key},
348 {"sftp_enabled_check", nasl_sftp_enabled_check},
349
350#ifdef HAVE_LIBKSBA
351 {"cert_open", nasl_cert_open},
352 {"cert_close", nasl_cert_close},
353 {"cert_query", nasl_cert_query},
354#endif /*HAVE_LIBKSBA*/
355
356 {"pread", nasl_pread},
357 {"find_in_path", nasl_find_in_path},
358 {"fread", nasl_fread},
359 {"fwrite", nasl_fwrite},
360 {"unlink", nasl_unlink},
361 {"get_tmp_dir", nasl_get_tmp_dir},
362 {"get_byte_order", nasl_get_byte_order},
363 {"file_stat", nasl_file_stat},
364 {"file_open", nasl_file_open},
365 {"file_close", nasl_file_close},
366 {"file_read", nasl_file_read},
367 {"file_write", nasl_file_write},
368 {"file_seek", nasl_file_seek},
369 {"wmi_versioninfo", nasl_wmi_versioninfo},
370 {"wmi_connect", nasl_wmi_connect},
371 {"wmi_close", nasl_wmi_close},
372 {"wmi_query", nasl_wmi_query},
373 {"wmi_connect_rsop", nasl_wmi_connect_rsop},
374 {"wmi_query_rsop", nasl_wmi_query_rsop},
375 {"wmi_connect_reg", nasl_wmi_connect_reg},
376 {"wmi_reg_enum_key", nasl_wmi_reg_enum_key},
377 {"wmi_reg_enum_value", nasl_wmi_reg_enum_value},
378 {"wmi_reg_get_sz", nasl_wmi_reg_get_sz},
379 {"wmi_reg_get_bin_val", nasl_wmi_reg_get_bin_val},
380 {"wmi_reg_get_dword_val", nasl_wmi_reg_get_dword_val},
381 {"wmi_reg_get_ex_string_val", nasl_wmi_reg_get_ex_string_val},
382 {"wmi_reg_get_mul_string_val", nasl_wmi_reg_get_mul_string_val},
383 {"wmi_reg_get_qword_val", nasl_wmi_reg_get_qword_val},
384 {"wmi_reg_set_dword_val", nasl_wmi_reg_set_dword_val},
385 {"wmi_reg_set_qword_val", nasl_wmi_reg_set_qword_val},
386 {"wmi_reg_set_ex_string_val", nasl_wmi_reg_set_ex_string_val},
387 {"wmi_reg_set_string_val", nasl_wmi_reg_set_string_val},
388 {"wmi_reg_create_key", nasl_wmi_reg_create_key},
389 {"wmi_reg_delete_key", nasl_wmi_reg_delete_key},
390 {"smb_versioninfo", nasl_smb_versioninfo},
391 {"smb_connect", nasl_smb_connect},
392 {"smb_close", nasl_smb_close},
393 {"smb_file_SDDL", nasl_smb_file_SDDL},
394 {"smb_file_owner_sid", nasl_smb_file_owner_sid},
395 {"smb_file_group_sid", nasl_smb_file_group_sid},
396 {"smb_file_trustee_rights", nasl_smb_file_trustee_rights},
397 {"win_cmd_exec", nasl_win_cmd_exec},
398 {"plugin_run_find_service", plugin_run_find_service},
399 {"plugin_run_openvas_tcp_scanner", plugin_run_openvas_tcp_scanner},
400 {"plugin_run_synscan", plugin_run_synscan},
401 {"isotime_now", nasl_isotime_now},
402 {"isotime_is_valid", nasl_isotime_is_valid},
403 {"isotime_scan", nasl_isotime_scan},
404 {"isotime_print", nasl_isotime_print},
405 {"isotime_add", nasl_isotime_add},
406 {NULL, NULL}};
407
408/* String variables */
409static struct
410{
411 const char *name;
412 const char *val;
413} libsvars[] = {
414 {"OPENVAS_VERSION", OPENVASLIB_VERSION},
415 {NULL, NULL},
417
418/* Integer variables */
419static struct
420{
421 const char *name;
422 int val;
423} libivars[] = {
424 {"TRUE", 1},
425 {"FALSE", 0},
426 {"IPPROTO_TCP", IPPROTO_TCP},
427 {"IPPROTO_UDP", IPPROTO_UDP},
428 {"IPPROTO_ICMP", IPPROTO_ICMP},
429 {"IPPROTO_ICMPV6", IPPROTO_ICMPV6},
430 {"IPPROTO_IP", IPPROTO_IP},
431 {"IPPROTO_IGMP", IPPROTO_IGMP},
432 {"ENCAPS_AUTO", OPENVAS_ENCAPS_AUTO},
433 {"ENCAPS_IP", OPENVAS_ENCAPS_IP},
434 {"ENCAPS_SSLv23", OPENVAS_ENCAPS_SSLv23},
435 {"ENCAPS_SSLv2", OPENVAS_ENCAPS_SSLv2},
436 {"ENCAPS_SSLv3", OPENVAS_ENCAPS_SSLv3},
437 {"ENCAPS_TLSv1", OPENVAS_ENCAPS_TLSv1},
438 {"ENCAPS_TLSv11", OPENVAS_ENCAPS_TLSv11},
439 {"ENCAPS_TLSv12", OPENVAS_ENCAPS_TLSv12},
440 {"ENCAPS_TLSv13", OPENVAS_ENCAPS_TLSv13},
441 {"ENCAPS_TLScustom", OPENVAS_ENCAPS_TLScustom},
442 {"ENCAPS_MAX", OPENVAS_ENCAPS_MAX},
443 {"TH_FIN", TH_FIN},
444 {"TH_SYN", TH_SYN},
445 {"TH_RST", TH_RST},
446 {"TH_PUSH", TH_PUSH},
447 {"TH_ACK", TH_ACK},
448 {"TH_URG", TH_URG},
449 {"IP_RF", IP_RF},
450 {"IP_DF", IP_DF},
451 {"IP_MF", IP_MF},
452 {"IP_OFFMASK", IP_OFFMASK},
453 {"TCPOPT_MAXSEG", TCPOPT_MAXSEG},
454 {"TCPOPT_WINDOW", TCPOPT_WINDOW},
455 {"TCPOPT_SACK_PERMITTED", TCPOPT_SACK_PERMITTED},
456 {"TCPOPT_TIMESTAMP", TCPOPT_TIMESTAMP},
457 {"ACT_INIT", ACT_INIT},
458 {"ACT_GATHER_INFO", ACT_GATHER_INFO},
459 {"ACT_ATTACK", ACT_ATTACK},
460 {"ACT_MIXED_ATTACK", ACT_MIXED_ATTACK},
461 {"ACT_DESTRUCTIVE_ATTACK", ACT_DESTRUCTIVE_ATTACK},
462 {"ACT_DENIAL", ACT_DENIAL},
463 {"ACT_SCANNER", ACT_SCANNER},
464 {"ACT_SETTINGS", ACT_SETTINGS},
465 {"ACT_KILL_HOST", ACT_KILL_HOST},
466 {"ACT_FLOOD", ACT_FLOOD},
467 {"ACT_END", ACT_END},
468 {"MSG_OOB", MSG_OOB},
469 {"NOERR", NASL_ERR_NOERR},
470 {"ETIMEDOUT", NASL_ERR_ETIMEDOUT},
471 {"ECONNRESET", NASL_ERR_ECONNRESET},
472 {"EUNREACH", NASL_ERR_EUNREACH},
473 {"EUNKNOWN", NASL_ERR_EUNKNOWN},
474 {NULL, 0},
476
477/* See also in exec.c:
478 * COMMAND_LINE
479 * description
480 */
481
485void
487{
488 tree_cell tc;
489 unsigned i;
490
491 memset (&tc, 0, sizeof (tc));
492
493 // Initialize constant integer terms
494 tc.type = CONST_INT;
495 for (i = 0; i < sizeof (libivars) / sizeof (libivars[0]) - 1; i++)
496 {
497 tc.x.i_val = libivars[i].val;
498 if (add_named_var_to_ctxt (lexic, libivars[i].name, &tc) == NULL)
499 {
500 nasl_perror (lexic, "init_nasl_library: could not define var '%s'\n",
501 libivars[i].name);
502 continue;
503 }
504 }
505
506 // Initialize constant string terms
507 tc.type = CONST_DATA;
508 for (i = 0; i < sizeof (libsvars) / sizeof (libsvars[0]) - 1; i++)
509 {
510 tc.x.str_val = (char *) libsvars[i].val;
511 tc.size = strlen (libsvars[i].val);
512 if (add_named_var_to_ctxt (lexic, libsvars[i].name, &tc) == NULL)
513 {
514 nasl_perror (lexic, "init_nasl_library: could not define var '%s'\n",
515 libsvars[i].name);
516 continue;
517 }
518 }
519
520 // Add the "NULL" variable
521 if (add_named_var_to_ctxt (lexic, "NULL", NULL) == NULL)
522 nasl_perror (lexic, "init_nasl_library: could not define var 'NULL'\n");
523}
524
525nasl_func *
527{
528 size_t i;
529
530 if (!name)
531 return NULL;
532
533 for (i = 0; i < sizeof (libfuncs) / sizeof (libfuncs[0]) - 1; i++)
534 {
535 if (!strcmp (name, libfuncs[i].name))
536 return (nasl_func *) &libfuncs[i];
537 }
538 return NULL;
539}
540
541char *
543{
544 static char vers[sizeof (OPENVASLIB_VERSION) + 1];
545 strncpy (vers, OPENVASLIB_VERSION, sizeof (vers) - 1);
546 vers[sizeof (vers) - 1] = '\0';
547 return vers;
548}
549
553void
555{
556 int i;
557 for (i = 0; libivars[i].name != NULL; i++)
558 *list = g_slist_append (*list, g_strdup (libivars[i].name));
559 for (i = 0; libsvars[i].name != NULL; i++)
560 *list = g_slist_append (*list, g_strdup (libsvars[i].name));
561}
#define NASL_ERR_EUNKNOWN
Definition: nasl.h:55
#define NASL_ERR_ETIMEDOUT
Definition: nasl.h:52
#define NASL_ERR_ECONNRESET
Definition: nasl.h:53
#define NASL_ERR_EUNREACH
Definition: nasl.h:54
#define NASL_ERR_NOERR
Definition: nasl.h:51
tree_cell * plugin_run_find_service(lex_ctxt *lexic)
tree_cell * plugin_run_openvas_tcp_scanner(lex_ctxt *lexic)
Header file for built-in plugins.
tree_cell * plugin_run_synscan(lex_ctxt *)
Protos and data structures for CERT functions used by NASL scripts.
tree_cell * nasl_cert_open(lex_ctxt *lexic)
tree_cell * nasl_cert_query(lex_ctxt *lexic)
tree_cell * nasl_cert_close(lex_ctxt *lexic)
tree_cell * nasl_pread(lex_ctxt *lexic)
Spawn a process.
tree_cell * nasl_file_seek(lex_ctxt *lexic)
Seek in file.
tree_cell * nasl_unlink(lex_ctxt *lexic)
Unlink file.
tree_cell * nasl_get_tmp_dir(lex_ctxt *lexic)
tree_cell * nasl_file_stat(lex_ctxt *lexic)
Stat file.
tree_cell * nasl_fwrite(lex_ctxt *lexic)
Write file.
tree_cell * nasl_find_in_path(lex_ctxt *lexic)
tree_cell * nasl_file_write(lex_ctxt *lexic)
Write file.
tree_cell * nasl_file_read(lex_ctxt *lexic)
Read file.
tree_cell * nasl_file_open(lex_ctxt *lexic)
Open file.
tree_cell * nasl_file_close(lex_ctxt *lexic)
Close file.
tree_cell * nasl_fread(lex_ctxt *lexic)
Read file.
tree_cell * nasl_aes128_ccm_decrypt(lex_ctxt *lexic)
tree_cell * nasl_aes256_ccm_encrypt_auth(lex_ctxt *lexic)
tree_cell * nasl_aes128_gcm_encrypt_auth(lex_ctxt *lexic)
tree_cell * nasl_aes256_ccm_decrypt_auth(lex_ctxt *lexic)
tree_cell * nasl_aes_mac_cbc(lex_ctxt *lexic)
tree_cell * nasl_rsa_public_decrypt(lex_ctxt *lexic)
Definition: nasl_crypto2.c:957
tree_cell * nasl_aes256_gcm_encrypt(lex_ctxt *lexic)
tree_cell * nasl_pem_to_rsa(lex_ctxt *lexic)
Definition: nasl_crypto2.c:485
tree_cell * nasl_aes128_ccm_encrypt_auth(lex_ctxt *lexic)
tree_cell * nasl_aes128_ctr_encrypt(lex_ctxt *lexic)
tree_cell * nasl_aes128_ccm_encrypt(lex_ctxt *lexic)
tree_cell * nasl_aes128_gcm_decrypt_auth(lex_ctxt *lexic)
tree_cell * nasl_rc4_encrypt(lex_ctxt *lexic)
Nasl function to encrypt data with a RC4 cipher. If an hd param exist in the lexix context,...
tree_cell * nasl_close_stream_cipher(lex_ctxt *lexic)
Nasl function to delete a cipher item from the cipher table.
tree_cell * nasl_aes_mac_gcm(lex_ctxt *lexic)
tree_cell * nasl_rsa_public_encrypt(lex_ctxt *lexic)
Definition: nasl_crypto2.c:766
tree_cell * nasl_aes256_gcm_encrypt_auth(lex_ctxt *lexic)
tree_cell * nasl_rsa_private_decrypt(lex_ctxt *lexic)
Definition: nasl_crypto2.c:858
tree_cell * nasl_aes256_ccm_encrypt(lex_ctxt *lexic)
tree_cell * nasl_aes256_gcm_decrypt(lex_ctxt *lexic)
tree_cell * nasl_aes256_ctr_encrypt(lex_ctxt *lexic)
tree_cell * nasl_open_rc4_cipher(lex_ctxt *lexic)
Nasl function to open RC4 cipher to encrypt a stream of data. The handler can be used to encrypt stre...
tree_cell * nasl_aes256_gcm_decrypt_auth(lex_ctxt *lexic)
tree_cell * nasl_aes128_ccm_decrypt_auth(lex_ctxt *lexic)
tree_cell * nasl_aes128_cbc_encrypt(lex_ctxt *lexic)
tree_cell * nasl_bn_cmp(lex_ctxt *lexic)
Definition: nasl_crypto2.c:281
tree_cell * nasl_dsa_do_verify(lex_ctxt *lexic)
tree_cell * nasl_bn_random(lex_ctxt *lexic)
Definition: nasl_crypto2.c:318
tree_cell * nasl_rsa_sign(lex_ctxt *lexic)
tree_cell * nasl_dh_generate_key(lex_ctxt *lexic)
Definition: nasl_crypto2.c:570
tree_cell * nasl_aes256_cbc_encrypt(lex_ctxt *lexic)
tree_cell * nasl_bf_cbc_encrypt(lex_ctxt *lexic)
tree_cell * nasl_aes128_gcm_decrypt(lex_ctxt *lexic)
tree_cell * nasl_smb3kdf(lex_ctxt *lexic)
Add the SMB3KDF as specified in [SP800-108] section 5.1.
tree_cell * nasl_des_ede_cbc_encrypt(lex_ctxt *lexic)
tree_cell * nasl_aes128_gcm_encrypt(lex_ctxt *lexic)
tree_cell * nasl_dsa_do_sign(lex_ctxt *lexic)
tree_cell * nasl_aes256_ccm_decrypt(lex_ctxt *lexic)
tree_cell * nasl_bf_cbc_decrypt(lex_ctxt *lexic)
tree_cell * nasl_pem_to_dsa(lex_ctxt *lexic)
Definition: nasl_crypto2.c:501
tree_cell * nasl_dh_compute_key(lex_ctxt *lexic)
Definition: nasl_crypto2.c:615
tree_cell * nasl_get_smb2_sign(lex_ctxt *lexic)
Definition: nasl_crypto.c:495
tree_cell * nasl_ripemd160(lex_ctxt *lexic)
Definition: nasl_crypto.c:149
tree_cell * nasl_hmac_sha1(lex_ctxt *lexic)
Definition: nasl_crypto.c:225
tree_cell * nasl_prf_sha256(lex_ctxt *lexic)
Definition: nasl_crypto.c:471
tree_cell * nasl_hmac_md2(lex_ctxt *lexic)
Definition: nasl_crypto.c:213
tree_cell * nasl_sha256(lex_ctxt *lexic)
Definition: nasl_crypto.c:137
tree_cell * nasl_smb_cmac_aes_sign(lex_ctxt *lexic)
Definition: nasl_crypto.c:501
tree_cell * nasl_hmac_sha256(lex_ctxt *lexic)
Definition: nasl_crypto.c:270
tree_cell * nasl_nt_owf_gen(lex_ctxt *lexic)
Definition: nasl_crypto.c:692
tree_cell * nasl_md2(lex_ctxt *lexic)
Definition: nasl_crypto.c:113
tree_cell * nasl_ntlm2_response(lex_ctxt *lexic)
Definition: nasl_crypto.c:557
tree_cell * nasl_ntlmv1_hash(lex_ctxt *lexic)
Definition: nasl_crypto.c:660
tree_cell * nasl_keyexchg(lex_ctxt *lexic)
Definition: nasl_crypto.c:630
tree_cell * nasl_sha1(lex_ctxt *lexic)
Definition: nasl_crypto.c:131
tree_cell * nasl_ntlm_response(lex_ctxt *lexic)
Definition: nasl_crypto.c:592
tree_cell * nasl_hmac_sha512(lex_ctxt *lexic)
Definition: nasl_crypto.c:489
tree_cell * nasl_sha512(lex_ctxt *lexic)
Definition: nasl_crypto.c:143
tree_cell * nasl_smb_gmac_aes_sign(lex_ctxt *lexic)
Definition: nasl_crypto.c:507
tree_cell * nasl_md5(lex_ctxt *lexic)
Definition: nasl_crypto.c:125
tree_cell * nasl_prf_sha384(lex_ctxt *lexic)
Definition: nasl_crypto.c:477
tree_cell * nasl_hmac_ripemd160(lex_ctxt *lexic)
Definition: nasl_crypto.c:237
tree_cell * nasl_tls1_prf(lex_ctxt *lexic)
Definition: nasl_crypto.c:483
tree_cell * nasl_hmac_sha384(lex_ctxt *lexic)
Definition: nasl_crypto.c:231
tree_cell * nasl_lm_owf_gen(lex_ctxt *lexic)
Definition: nasl_crypto.c:711
tree_cell * nasl_md4(lex_ctxt *lexic)
Definition: nasl_crypto.c:119
tree_cell * nasl_hmac_md5(lex_ctxt *lexic)
Definition: nasl_crypto.c:219
tree_cell * nasl_get_sign(lex_ctxt *lexic)
Definition: nasl_crypto.c:244
tree_cell * nasl_ntv2_owf_gen(lex_ctxt *lexic)
Definition: nasl_crypto.c:781
tree_cell * nasl_cipher_des(lex_ctxt *lexic)
Definition: nasl_crypto.c:187
tree_cell * nasl_ntlmv2_response(lex_ctxt *lexic)
Definition: nasl_crypto.c:513
tree_cell * nasl_ntlmv2_hash(lex_ctxt *lexic)
Definition: nasl_crypto.c:868
tree_cell * nasl_insert_hexzeros(lex_ctxt *lexic)
Definition: nasl_crypto.c:740
void nasl_perror(lex_ctxt *lexic, char *msg,...)
Definition: nasl_debug.c:111
tree_cell * nasl_send_frame(lex_ctxt *lexic)
Send a frame and listen to the answer.
tree_cell * nasl_dump_frame(lex_ctxt *lexic)
Dump a datalink layer frame.
tree_cell * nasl_get_local_mac_address_from_ip(lex_ctxt *lexic)
Get the MAC address of host.
tree_cell * nasl_forge_frame(lex_ctxt *lexic)
Forge a datalink layer frame.
tree_cell * nasl_send_arp_request(lex_ctxt *lexic)
Send an arp request to an IP host.
Header file for module nasl_frame_forgery.
tree_cell * nasl_same_host(lex_ctxt *lexic)
Definition: nasl_host.c:429
tree_cell * nasl_this_host_name(lex_ctxt *lexic)
Definition: nasl_host.c:351
tree_cell * get_hostname_source(lex_ctxt *lexic)
Definition: nasl_host.c:93
tree_cell * get_port_state(lex_ctxt *lexic)
Definition: nasl_host.c:238
tree_cell * get_hostname(lex_ctxt *lexic)
Definition: nasl_host.c:77
tree_cell * nasl_islocalhost(lex_ctxt *lexic)
Definition: nasl_host.c:274
tree_cell * nasl_islocalnet(lex_ctxt *lexic)
Definition: nasl_host.c:286
tree_cell * nasl_this_host(lex_ctxt *lexic)
Definition: nasl_host.c:298
tree_cell * get_host_ip(lex_ctxt *lexic)
Definition: nasl_host.c:206
tree_cell * get_port_transport(lex_ctxt *lexic)
Return the encapsulation mode of a port.
Definition: nasl_host.c:401
tree_cell * resolve_hostname(lex_ctxt *lexic)
Definition: nasl_host.c:184
tree_cell * get_host_open_port(lex_ctxt *lexic)
Definition: nasl_host.c:225
tree_cell * get_udp_port_state(lex_ctxt *lexic)
Definition: nasl_host.c:256
tree_cell * nasl_target_is_ipv6(lex_ctxt *lexic)
Definition: nasl_host.c:557
tree_cell * add_hostname(lex_ctxt *lexic)
Definition: nasl_host.c:111
tree_cell * get_hostnames(lex_ctxt *lexic)
Definition: nasl_host.c:47
tree_cell * resolve_hostname_to_multiple_ips(lex_ctxt *lexic)
Resolve a hostname and return all ip addresses as nasl array.
Definition: nasl_host.c:151
tree_cell * http_close_socket(lex_ctxt *lexic)
Definition: nasl_http.c:41
tree_cell * http_head(lex_ctxt *lexic)
Definition: nasl_http.c:188
tree_cell * http_put(lex_ctxt *lexic)
Definition: nasl_http.c:216
tree_cell * http_open_socket(lex_ctxt *lexic)
Definition: nasl_http.c:35
tree_cell * cgibin(lex_ctxt *lexic)
Definition: nasl_http.c:224
tree_cell * http_get(lex_ctxt *lexic)
Definition: nasl_http.c:176
tree_cell * http_delete(lex_ctxt *lexic)
Definition: nasl_http.c:207
tree_cell * http_post(lex_ctxt *lexic)
Definition: nasl_http.c:198
static struct @4 libivars[]
static init_func libfuncs[]
Definition: nasl_init.c:58
nasl_func * func_is_internal(const char *name)
Definition: nasl_init.c:526
void add_nasl_library(GSList **list)
Add "built-in" variables to a list.
Definition: nasl_init.c:554
const char * name
Definition: nasl_init.c:411
const char * val
Definition: nasl_init.c:412
void init_nasl_library(lex_ctxt *lexic)
Adds "built-in" variable and function definitions to a context.
Definition: nasl_init.c:486
char * nasl_version()
Definition: nasl_init.c:542
static struct @3 libsvars[]
tree_cell * nasl_isotime_add(lex_ctxt *lexic)
Add days or seconds to an ISO time string.
Definition: nasl_isotime.c:727
tree_cell * nasl_isotime_is_valid(lex_ctxt *lexic)
Check whether an ISO time string is valid.
Definition: nasl_isotime.c:575
tree_cell * nasl_isotime_print(lex_ctxt *lexic)
Convert an SIO time string into a better readable string.
Definition: nasl_isotime.c:677
tree_cell * nasl_isotime_now(lex_ctxt *lexic)
Return the current time in ISO format.
Definition: nasl_isotime.c:543
tree_cell * nasl_isotime_scan(lex_ctxt *lexic)
Convert a string into an ISO time string.
Definition: nasl_isotime.c:626
Protos and data structures for ISOTIME functions used by NASL scripts.
named_nasl_var * add_named_var_to_ctxt(lex_ctxt *, const char *, tree_cell *)
Definition: nasl_var.c:813
tree_cell * nasl_telnet_init(lex_ctxt *lexic)
tree_cell * nasl_rand(lex_ctxt *lexic)
tree_cell * nasl_localtime(lex_ctxt *lexic)
tree_cell * nasl_ftp_get_pasv_address(lex_ctxt *lexic)
tree_cell * nasl_unixtime(lex_ctxt *lexic)
tree_cell * nasl_make_list(lex_ctxt *lexic)
tree_cell * nasl_mktime(lex_ctxt *lexic)
tree_cell * nasl_dec2str(lex_ctxt *lexic)
tree_cell * nasl_sleep(lex_ctxt *lexic)
tree_cell * nasl_isnull(lex_ctxt *lexic)
tree_cell * nasl_dump_ctxt(lex_ctxt *lexic)
tree_cell * nasl_open_sock_kdc(lex_ctxt *lexic)
tree_cell * nasl_gunzip(lex_ctxt *lexic)
tree_cell * nasl_defined_func(lex_ctxt *lexic)
tree_cell * nasl_keys(lex_ctxt *lexic)
tree_cell * nasl_do_exit(lex_ctxt *lexic)
tree_cell * nasl_typeof(lex_ctxt *lexic)
tree_cell * nasl_get_byte_order(lex_ctxt *lexic)
tree_cell * nasl_start_denial(lex_ctxt *lexic)
tree_cell * nasl_end_denial(lex_ctxt *lexic)
tree_cell * nasl_sort_array(lex_ctxt *lexic)
tree_cell * nasl_gzip(lex_ctxt *lexic)
tree_cell * nasl_ftp_log_in(lex_ctxt *lexic)
tree_cell * nasl_usleep(lex_ctxt *lexic)
tree_cell * nasl_max_index(lex_ctxt *lexic)
tree_cell * nasl_make_array(lex_ctxt *lexic)
tree_cell * nasl_gettimeofday(lex_ctxt *lexic)
tree_cell * insert_ip_options(lex_ctxt *lexic)
Add option datagram.
tree_cell * nasl_tcp_ping(lex_ctxt *lexic)
Launches a “TCP ping” against the target host.
tree_cell * set_udp_elements(lex_ctxt *lexic)
Modify UDP fields of an IP datagram.
tree_cell * get_tcp_element(lex_ctxt *lexic)
Extracts TCP field from an IP datagram.
tree_cell * get_tcp_option(lex_ctxt *lexic)
Get a TCP option from an IP datagram if present. Possible options are: TCPOPT_MAXSEG (2),...
tree_cell * forge_ip_packet(lex_ctxt *lexic)
Forge an IP datagram.
tree_cell * dump_icmp_packet(lex_ctxt *lexic)
Dump the ICMP part of a IP Datagram.
tree_cell * set_ip_elements(lex_ctxt *lexic)
Modify the fields of a datagram.
tree_cell * dump_ip_packet(lex_ctxt *lexic)
Dump IP datagrams.
tree_cell * insert_tcp_options(lex_ctxt *lexic)
Add options to a TCP segment header. Possible options are: TCPOPT_MAXSEG (2), values between 536 and ...
tree_cell * nasl_pcap_next(lex_ctxt *lexic)
Listen to one packet and return it.
tree_cell * set_tcp_elements(lex_ctxt *lexic)
Modify the TCP fields of a datagram.
tree_cell * dump_tcp_packet(lex_ctxt *lexic)
Dump the TCP part of a IP Datagram.
tree_cell * forge_tcp_packet(lex_ctxt *lexic)
Fills an IP datagram with TCP data. Note that the ip_p field is not updated. It returns the modified ...
tree_cell * dump_udp_packet(lex_ctxt *lexic)
Dump the UDP part of a IP Datagram.
tree_cell * get_icmp_element(lex_ctxt *lexic)
Get an ICMP element from a IP datagram.
tree_cell * nasl_send_packet(lex_ctxt *lexic)
Send a list of packets (passed as unnamed arguments) and listens to the answers. It returns a block m...
tree_cell * nasl_send_capture(lex_ctxt *lexic)
Send a capture.
tree_cell * forge_icmp_packet(lex_ctxt *lexic)
Fill an IP datagram with ICMP data.
tree_cell * get_udp_element(lex_ctxt *lexic)
Get an UDP element from a IP datagram.
tree_cell * forge_udp_packet(lex_ctxt *lexic)
Fills an IP datagram with UDP data. Note that the ip_p field is not updated. It returns the modified ...
tree_cell * get_ip_element(lex_ctxt *lexic)
Extracts a field from an IP datagram.
tree_cell * forge_igmp_packet(lex_ctxt *lexic)
Fills an IP datagram with IGMP data.
tree_cell * get_ip_v6_element(lex_ctxt *lexic)
Obtain IPv6 header element.
tree_cell * dump_ip_v6_packet(lex_ctxt *lexic)
Print IPv6 Header.
tree_cell * set_ip_v6_elements(lex_ctxt *lexic)
Set IPv6 header element.
tree_cell * dump_icmp_v6_packet(lex_ctxt *lexic)
Dump the ICMP part of a IP Datagram.
tree_cell * get_tcp_v6_element(lex_ctxt *lexic)
Get TCP Header element.
tree_cell * forge_ip_v6_packet(lex_ctxt *lexic)
Forge an IPv6 packet.
tree_cell * forge_igmp_v6_packet(lex_ctxt *lexic)
tree_cell * set_udp_v6_elements(lex_ctxt *lexic)
tree_cell * dump_tcp_v6_packet(lex_ctxt *lexic)
Dump TCP part of an IPv6 Datagram.
tree_cell * set_tcp_v6_elements(lex_ctxt *lexic)
Set TCP Header element.
tree_cell * get_tcp_v6_option(lex_ctxt *lexic)
Get a TCP option from an IP datagram if present. Possible options are: TCPOPT_MAXSEG (2),...
tree_cell * insert_ip_v6_options(lex_ctxt *lexic)
Adds an IPv6 option to the datagram.
tree_cell * forge_tcp_v6_packet(lex_ctxt *lexic)
Forge TCP packet.
tree_cell * forge_udp_v6_packet(lex_ctxt *lexic)
tree_cell * get_icmp_v6_element(lex_ctxt *lexic)
tree_cell * insert_tcp_v6_options(lex_ctxt *lexic)
Add options to a TCP segment header. Possible options are: TCPOPT_MAXSEG (2), values between 536 and ...
tree_cell * nasl_tcp_v6_ping(lex_ctxt *lexic)
Performs TCP Connect to test if host is alive.
tree_cell * nasl_send_v6packet(lex_ctxt *lexic)
Send forged IPv6 Packets.
tree_cell * get_udp_v6_element(lex_ctxt *lexic)
tree_cell * dump_udp_v6_packet(lex_ctxt *lexic)
tree_cell * forge_icmp_v6_packet(lex_ctxt *lexic)
tree_cell * script_tag(lex_ctxt *lexic)
tree_cell * log_message(lex_ctxt *lexic)
tree_cell * nasl_scanner_status(lex_ctxt *lexic)
tree_cell * script_family(lex_ctxt *lexic)
tree_cell * script_get_preference(lex_ctxt *lexic)
Get a preferences of the current script.
tree_cell * script_get_preference_file_content(lex_ctxt *lexic)
tree_cell * script_get_preference_file_location(lex_ctxt *lexic)
tree_cell * script_xref(lex_ctxt *lexic)
Add a cross reference to the meta data.
tree_cell * security_message(lex_ctxt *lexic)
Send a security message to the client.
tree_cell * nasl_scanner_add_port(lex_ctxt *lexic)
tree_cell * get_host_kb_index(lex_ctxt *lexic)
Get the kb index of the host running the current script.
tree_cell * safe_checks(lex_ctxt *lexic)
tree_cell * script_name(lex_ctxt *lexic)
tree_cell * script_copyright(lex_ctxt *lexic)
tree_cell * script_add_preference(lex_ctxt *lexic)
tree_cell * nasl_scanner_get_port(lex_ctxt *lexic)
tree_cell * get_script_oid(lex_ctxt *lexic)
Return the OID of the current script.
tree_cell * script_oid(lex_ctxt *lexic)
tree_cell * nasl_vendor_version(lex_ctxt *lexic)
tree_cell * script_category(lex_ctxt *lexic)
tree_cell * get_kb_list(lex_ctxt *lexic)
tree_cell * error_message(lex_ctxt *lexic)
tree_cell * script_timeout(lex_ctxt *lexic)
Add timeout preference to VT preferences.
tree_cell * script_require_udp_ports(lex_ctxt *lexic)
tree_cell * get_kb_item(lex_ctxt *lexic)
tree_cell * script_mandatory_keys(lex_ctxt *lexic)
tree_cell * script_dependencies(lex_ctxt *lexic)
tree_cell * script_exclude_keys(lex_ctxt *lexic)
tree_cell * set_kb_item(lex_ctxt *lexic)
Set a kb item.
tree_cell * replace_kb_item(lex_ctxt *lexic)
tree_cell * script_require_ports(lex_ctxt *lexic)
tree_cell * script_require_keys(lex_ctxt *lexic)
tree_cell * script_cve_id(lex_ctxt *lexic)
tree_cell * script_version(lex_ctxt *lexic)
tree_cell * nasl_get_preference(lex_ctxt *lexic)
tree_cell * nasl_smb_file_owner_sid(lex_ctxt *lexic)
Obtain File Owner SID.
Definition: nasl_smb.c:204
tree_cell * nasl_smb_file_SDDL(lex_ctxt *lexic)
Obtain Security Descriptor in SDDL format.
Definition: nasl_smb.c:161
tree_cell * nasl_smb_file_trustee_rights(lex_ctxt *lexic)
Obtain File Trustee SID with Access Mask.
Definition: nasl_smb.c:290
tree_cell * nasl_smb_versioninfo(lex_ctxt *lexic)
Get a version string of the SMB implementation.
Definition: nasl_smb.c:48
tree_cell * nasl_smb_close(lex_ctxt *lexic)
Close SMB service handle.
Definition: nasl_smb.c:131
tree_cell * nasl_smb_connect(lex_ctxt *lexic)
Connect to SMB service and return a handle for it.
Definition: nasl_smb.c:76
tree_cell * nasl_smb_file_group_sid(lex_ctxt *lexic)
Obtain File Group SID.
Definition: nasl_smb.c:247
tree_cell * nasl_win_cmd_exec(lex_ctxt *lexic)
Execute the command in windows.
Definition: nasl_smb.c:335
Protos for NASL SMB API.
tree_cell * nasl_snmpv3_getnext(lex_ctxt *lexic)
Definition: nasl_snmp.c:838
tree_cell * nasl_snmpv1_get(lex_ctxt *lexic)
Definition: nasl_snmp.c:703
tree_cell * nasl_snmpv2c_get(lex_ctxt *lexic)
Definition: nasl_snmp.c:715
tree_cell * nasl_snmpv3_get(lex_ctxt *lexic)
Definition: nasl_snmp.c:832
tree_cell * nasl_snmpv1_getnext(lex_ctxt *lexic)
Definition: nasl_snmp.c:709
tree_cell * nasl_snmpv2c_getnext(lex_ctxt *lexic)
Definition: nasl_snmp.c:721
Headers of an API for SNMP used by NASL scripts.
tree_cell * nasl_leave_multicast_group(lex_ctxt *lexic)
Definition: nasl_socket.c:1123
tree_cell * nasl_get_sock_info(lex_ctxt *lexic)
Get info pertaining to a socket.
Definition: nasl_socket.c:1297
tree_cell * nasl_recv_line(lex_ctxt *lexic)
Definition: nasl_socket.c:847
tree_cell * nasl_socket_cert_verify(lex_ctxt *lexic)
Verify a certificate.
Definition: nasl_socket.c:1496
tree_cell * nasl_get_mtu(lex_ctxt *lexic)
Definition: nasl_socket.c:943
tree_cell * nasl_open_priv_sock_udp(lex_ctxt *lexic)
Definition: nasl_socket.c:401
tree_cell * nasl_recv(lex_ctxt *lexic)
Definition: nasl_socket.c:754
tree_cell * nasl_send(lex_ctxt *lexic)
Definition: nasl_socket.c:960
tree_cell * nasl_join_multicast_group(lex_ctxt *lexic)
Definition: nasl_socket.c:1057
tree_cell * nasl_socket_get_error(lex_ctxt *lexic)
Definition: nasl_socket.c:1195
tree_cell * nasl_socket_ssl_do_handshake(lex_ctxt *lexic)
Do a re-handshake of the TLS/SSL protocol.
Definition: nasl_socket.c:658
tree_cell * nasl_socket_check_ssl_safe_renegotiation(lex_ctxt *lexic)
Check if Secure Renegotiation is supported in the server side.
Definition: nasl_socket.c:626
tree_cell * nasl_socket_get_ssl_version(lex_ctxt *lexic)
Definition: nasl_socket.c:721
tree_cell * nasl_get_source_port(lex_ctxt *lexic)
Definition: nasl_socket.c:1155
tree_cell * nasl_open_sock_udp(lex_ctxt *lexic)
Definition: nasl_socket.c:521
tree_cell * nasl_close_socket(lex_ctxt *lexic)
Definition: nasl_socket.c:1012
tree_cell * nasl_open_sock_tcp(lex_ctxt *lexic)
Open a TCP socket to the target host.
Definition: nasl_socket.c:509
tree_cell * nasl_socket_get_ssl_session_id(lex_ctxt *lexic)
Definition: nasl_socket.c:698
tree_cell * nasl_socket_negotiate_ssl(lex_ctxt *lexic)
Definition: nasl_socket.c:582
tree_cell * nasl_socket_get_cert(lex_ctxt *lexic)
Definition: nasl_socket.c:676
tree_cell * nasl_socket_get_ssl_ciphersuite(lex_ctxt *lexic)
Definition: nasl_socket.c:737
tree_cell * nasl_open_priv_sock_tcp(lex_ctxt *lexic)
Definition: nasl_socket.c:395
tree_cell * nasl_ssh_shell_close(lex_ctxt *lexic)
Close an ssh shell.
Definition: nasl_ssh.c:1958
tree_cell * nasl_ssh_shell_read(lex_ctxt *lexic)
Read the output of an ssh shell.
Definition: nasl_ssh.c:1850
tree_cell * nasl_ssh_set_login(lex_ctxt *lexic)
Set the login name for the authentication.
Definition: nasl_ssh.c:728
tree_cell * nasl_ssh_userauth(lex_ctxt *lexic)
Authenticate a user on an ssh connection.
Definition: nasl_ssh.c:825
tree_cell * nasl_ssh_shell_open(lex_ctxt *lexic)
Request an ssh shell.
Definition: nasl_ssh.c:1705
tree_cell * nasl_ssh_login_interactive(lex_ctxt *lexic)
Authenticate a user on an ssh connection.
Definition: nasl_ssh.c:1016
tree_cell * nasl_ssh_get_issue_banner(lex_ctxt *lexic)
Get the issue banner.
Definition: nasl_ssh.c:1471
tree_cell * nasl_ssh_request_exec(lex_ctxt *lexic)
Run a command via ssh.
Definition: nasl_ssh.c:1345
tree_cell * nasl_ssh_get_host_key(lex_ctxt *lexic)
Get the host key.
Definition: nasl_ssh.c:1561
tree_cell * nasl_ssh_login_interactive_pass(lex_ctxt *lexic)
Authenticate a user on an ssh connection.
Definition: nasl_ssh.c:1128
tree_cell * nasl_ssh_get_auth_methods(lex_ctxt *lexic)
Get the list of authmethods.
Definition: nasl_ssh.c:1605
tree_cell * nasl_sftp_enabled_check(lex_ctxt *lexic)
Check if the SFTP subsystem is enabled on the remote SSH server.
Definition: nasl_ssh.c:1993
tree_cell * nasl_ssh_disconnect(lex_ctxt *lexic)
Disconnect an ssh connection.
Definition: nasl_ssh.c:513
tree_cell * nasl_ssh_connect(lex_ctxt *lexic)
Connect to the target host via TCP and setup an ssh connection.
Definition: nasl_ssh.c:225
tree_cell * nasl_ssh_shell_write(lex_ctxt *lexic)
Write string to ssh shell.
Definition: nasl_ssh.c:1902
tree_cell * nasl_ssh_get_server_banner(lex_ctxt *lexic)
Get the server banner.
Definition: nasl_ssh.c:1520
tree_cell * nasl_ssh_session_id_from_sock(lex_ctxt *lexic)
Given a socket, return the corresponding session id.
Definition: nasl_ssh.c:578
tree_cell * nasl_ssh_get_sock(lex_ctxt *lexic)
Given a session id, return the corresponding socket.
Definition: nasl_ssh.c:621
Protos and data structures for SSH functions used by NASL scripts.
tree_cell * nasl_hex(lex_ctxt *lexic)
tree_cell * nasl_display(lex_ctxt *lexic)
tree_cell * nasl_chomp(lex_ctxt *lexic)
Takes an unnamed string argument and removes any spaces at the end of it. "Space" means white space,...
tree_cell * nasl_strstr(lex_ctxt *lexic)
tree_cell * nasl_split(lex_ctxt *lexic)
tree_cell * nasl_tolower(lex_ctxt *lexic)
tree_cell * nasl_eregmatch(lex_ctxt *lexic)
Does extended regular expression pattern matching.
tree_cell * nasl_insstr(lex_ctxt *lexic)
tree_cell * nasl_substr(lex_ctxt *lexic)
tree_cell * nasl_rawstring(lex_ctxt *lexic)
tree_cell * nasl_egrep(lex_ctxt *lexic)
looks for a pattern in a string, line by line.
tree_cell * nasl_strcat(lex_ctxt *lexic)
tree_cell * nasl_str_replace(lex_ctxt *lexic)
tree_cell * nasl_strlen(lex_ctxt *lexic)
tree_cell * nasl_match(lex_ctxt *lexic)
tree_cell * nasl_string(lex_ctxt *lexic)
tree_cell * nasl_ereg_replace(lex_ctxt *lexic)
Search for a pattern in a string and replace it.
tree_cell * nasl_ord(lex_ctxt *lexic)
tree_cell * nasl_hexstr(lex_ctxt *lexic)
tree_cell * nasl_stridx(lex_ctxt *lexic)
Returns index of a substring.
tree_cell * nasl_ereg(lex_ctxt *lexic)
Matches a string against a regular expression.
tree_cell * nasl_int(lex_ctxt *lexic)
tree_cell * nasl_crap(lex_ctxt *lexic)
tree_cell * nasl_toupper(lex_ctxt *lexic)
@ CONST_DATA
Definition: nasl_tree.h:82
@ CONST_INT
Definition: nasl_tree.h:79
tree_cell * nasl_wmi_close(lex_ctxt *lexic)
Close WMI service handle.
Definition: nasl_wmi.c:191
tree_cell * nasl_wmi_reg_get_dword_val(lex_ctxt *lexic)
Get registry DWORD value.
Definition: nasl_wmi.c:624
tree_cell * nasl_wmi_reg_get_bin_val(lex_ctxt *lexic)
Get registry binary value.
Definition: nasl_wmi.c:579
tree_cell * nasl_wmi_reg_enum_key(lex_ctxt *lexic)
Enumerate registry keys.
Definition: nasl_wmi.c:536
tree_cell * nasl_wmi_connect_reg(lex_ctxt *lexic)
Connect to a WMI Registry service and return a handle for it.
Definition: nasl_wmi.c:388
tree_cell * nasl_wmi_reg_set_string_val(lex_ctxt *lexic)
Set Registry string value.
Definition: nasl_wmi.c:950
tree_cell * nasl_wmi_reg_set_dword_val(lex_ctxt *lexic)
Set Registry DWORD value.
Definition: nasl_wmi.c:808
tree_cell * nasl_wmi_query(lex_ctxt *lexic)
Perform WQL query.
Definition: nasl_wmi.c:220
tree_cell * nasl_wmi_reg_get_mul_string_val(lex_ctxt *lexic)
Get registry multi valued strings.
Definition: nasl_wmi.c:717
tree_cell * nasl_wmi_reg_set_ex_string_val(lex_ctxt *lexic)
Set Registry Expanded string value.
Definition: nasl_wmi.c:908
tree_cell * nasl_wmi_reg_create_key(lex_ctxt *lexic)
Create Registry key.
Definition: nasl_wmi.c:990
tree_cell * nasl_wmi_connect_rsop(lex_ctxt *lexic)
Connect to a WMI RSOP service and return a handle for it.
Definition: nasl_wmi.c:275
tree_cell * nasl_wmi_reg_delete_key(lex_ctxt *lexic)
Delete Registry key.
Definition: nasl_wmi.c:1029
tree_cell * nasl_wmi_reg_set_qword_val(lex_ctxt *lexic)
Set Registry QWORD value.
Definition: nasl_wmi.c:858
tree_cell * nasl_wmi_connect(lex_ctxt *lexic)
Connect to a WMI service and return a handle for it.
Definition: nasl_wmi.c:128
tree_cell * nasl_wmi_reg_enum_value(lex_ctxt *lexic)
Enumerate registry values.
Definition: nasl_wmi.c:493
tree_cell * nasl_wmi_reg_get_ex_string_val(lex_ctxt *lexic)
Get registry expanded string value.
Definition: nasl_wmi.c:672
tree_cell * nasl_wmi_reg_get_sz(lex_ctxt *lexic)
Get string value from Registry.
Definition: nasl_wmi.c:448
tree_cell * nasl_wmi_query_rsop(lex_ctxt *lexic)
WMI RSOP query.
Definition: nasl_wmi.c:334
tree_cell * nasl_wmi_reg_get_qword_val(lex_ctxt *lexic)
Get registry QWORD value.
Definition: nasl_wmi.c:762
tree_cell * nasl_wmi_versioninfo(lex_ctxt *lexic)
Get a version string of the WMI implementation.
Definition: nasl_wmi.c:94
Protos for NASL WMI API.
@ OPENVAS_ENCAPS_SSLv3
Definition: network.h:34
@ OPENVAS_ENCAPS_TLScustom
Definition: network.h:39
@ OPENVAS_ENCAPS_TLSv12
Definition: network.h:37
@ OPENVAS_ENCAPS_TLSv1
Definition: network.h:35
@ OPENVAS_ENCAPS_MAX
Definition: network.h:40
@ OPENVAS_ENCAPS_IP
Definition: network.h:31
@ OPENVAS_ENCAPS_TLSv13
Definition: network.h:38
@ OPENVAS_ENCAPS_SSLv2
Definition: network.h:33
@ OPENVAS_ENCAPS_SSLv23
Definition: network.h:32
@ OPENVAS_ENCAPS_TLSv11
Definition: network.h:36
@ OPENVAS_ENCAPS_AUTO
Definition: network.h:30
@ ACT_KILL_HOST
@ ACT_DESTRUCTIVE_ATTACK
@ ACT_SCANNER
@ ACT_END
@ ACT_FLOOD
@ ACT_GATHER_INFO
@ ACT_DENIAL
@ ACT_ATTACK
@ ACT_SETTINGS
@ ACT_MIXED_ATTACK
@ ACT_INIT
Definition: nasl_tree.h:94
union TC::@5 x
int size
Definition: nasl_tree.h:99
long int i_val
Definition: nasl_tree.h:104
char * str_val
Definition: nasl_tree.h:103
short type
Definition: nasl_tree.h:95
const char * name
Definition: nasl_init.c:49