OpenVAS Scanner 23.32.3
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_http2.h"
25#include "nasl_isotime.h"
26#include "nasl_krb5.h"
27#include "nasl_lex_ctxt.h"
28#include "nasl_misc_funcs.h"
29#include "nasl_packet_forgery.h"
31
32#include <stdlib.h> /* for getenv. */
33#include <string.h> /* for memset */
34/* to e.g. favour BSD, but also for IPPROTO_TCP and TH_FIN */
35#include "nasl_raw.h"
36#include "nasl_scanner_glue.h"
37#include "nasl_smb.h"
38#include "nasl_snmp.h"
39#include "nasl_socket.h"
40#include "nasl_ssh.h"
41#include "nasl_text_utils.h"
42#include "nasl_tree.h"
43#include "nasl_var.h"
44#include "nasl_wmi.h"
45
46/* **************************************************************** */
47
48typedef struct
49{
50 /* XXX: Unify with nasl_func */
51 const char *name;
52 tree_cell *(*c_code) (lex_ctxt *);
53} init_func;
54
60static init_func libfuncs[] = {
61 {"script_name", script_name},
62 {"script_version", script_version},
63 {"script_timeout", script_timeout},
64 {"script_copyright", script_copyright},
65 {"script_category", script_category},
66 {"script_family", script_family},
67 {"script_dependencies", script_dependencies},
68 {"script_require_keys", script_require_keys},
69 {"script_mandatory_keys", script_mandatory_keys},
70 {"script_require_ports", script_require_ports},
71 {"script_require_udp_ports", script_require_udp_ports},
72 {"script_exclude_keys", script_exclude_keys},
73 {"script_add_preference", script_add_preference},
74 {"script_get_preference", script_get_preference},
75 {"script_get_preference_file_content", script_get_preference_file_content},
76 {"script_get_preference_file_location", script_get_preference_file_location},
77 {"script_oid", script_oid},
78 {"script_cve_id", script_cve_id},
79 {"script_xref", script_xref},
80 {"script_tag", script_tag},
81 {"vendor_version", nasl_vendor_version},
82 {"update_table_driven_lsc_data", nasl_update_table_driven_lsc_data},
83 {"notus", nasl_notus},
84 {"notus_error", nasl_notus_error},
85 {"get_preference", nasl_get_preference},
86 {"safe_checks", safe_checks},
87 {"get_script_oid", get_script_oid},
88 {"replace_kb_item", replace_kb_item},
89 {"set_kb_item", set_kb_item},
90 {"get_kb_item", get_kb_item},
91 {"get_kb_list", get_kb_list},
92 {"get_host_kb_index", get_host_kb_index},
93 {"security_message", security_message},
94 {"security_notus", security_notus},
95 {"log_message", log_message},
96 {"error_message", error_message2},
97 {"open_sock_tcp", nasl_open_sock_tcp},
98 {"open_sock_udp", nasl_open_sock_udp},
99 {"open_priv_sock_tcp", nasl_open_priv_sock_tcp},
100 {"open_priv_sock_udp", nasl_open_priv_sock_udp},
101 {"socket_get_error", nasl_socket_get_error},
102 {"recv", nasl_recv},
103 {"recv_line", nasl_recv_line},
104 {"send", nasl_send},
105 {"get_mtu", nasl_get_mtu},
106 {"socket_negotiate_ssl", nasl_socket_negotiate_ssl},
107 {"socket_check_ssl_safe_renegotiation",
109 {"socket_ssl_do_handshake", nasl_socket_ssl_do_handshake},
110 {"socket_get_cert", nasl_socket_get_cert},
111 {"socket_get_ssl_version", nasl_socket_get_ssl_version},
112 {"socket_get_ssl_ciphersuite", nasl_socket_get_ssl_ciphersuite},
113 {"socket_get_ssl_session_id", nasl_socket_get_ssl_session_id},
114 {"socket_cert_verify", nasl_socket_cert_verify},
115 {"close", nasl_close_socket},
116 {"join_multicast_group", nasl_join_multicast_group},
117 {"leave_multicast_group", nasl_leave_multicast_group},
118 {"get_source_port", nasl_get_source_port},
119 {"get_sock_info", nasl_get_sock_info},
120 {"cgibin", cgibin},
121 {"http_open_socket", http_open_socket},
122 {"http_head", http_head},
123 {"http_get", http_get},
124 {"http_post", http_post},
125 {"http_delete", http_delete},
126 {"http_put", http_put},
127 {"http_close_socket", http_close_socket},
128 {"http2_handle", nasl_http2_handle},
129 {"http2_get_response_code", nasl_http2_get_response_code},
130 {"http2_close_handle", nasl_http2_close_handle},
131 {"http2_set_custom_header", nasl_http2_set_custom_header},
132 {"http2_get", nasl_http2_get},
133 {"http2_head", nasl_http2_head},
134 {"http2_post", nasl_http2_post},
135 {"http2_delete", nasl_http2_delete},
136 {"http2_put", nasl_http2_put},
137 {"add_host_name", add_hostname},
138 {"get_host_name", get_hostname},
139 {"ip_reverse_lookup", host_reverse_lookup},
140 {"get_host_names", get_hostnames},
141 {"get_host_name_source", get_hostname_source},
142 {"resolve_host_name", resolve_hostname},
143 {"resolve_hostname_to_multiple_ips", resolve_hostname_to_multiple_ips},
144 {"get_host_ip", get_host_ip},
145 {"get_local_mac_address_from_ip", nasl_get_local_mac_address_from_ip},
146 {"same_host", nasl_same_host},
147 {"TARGET_IS_IPV6", nasl_target_is_ipv6},
148 {"get_host_open_port", get_host_open_port},
149 {"get_port_state", get_port_state},
150 {"get_tcp_port_state", get_port_state},
151 {"get_udp_port_state", get_udp_port_state},
152 {"scanner_add_port", nasl_scanner_add_port},
153 {"scanner_status", nasl_scanner_status},
154 {"scanner_get_port", nasl_scanner_get_port},
155 {"islocalhost", nasl_islocalhost},
156 {"islocalnet", nasl_islocalnet},
157 {"get_port_transport", get_port_transport},
158 {"this_host", nasl_this_host},
159 {"this_host_name", nasl_this_host_name},
160 {"string", nasl_string},
161 {"raw_string", nasl_rawstring},
162 {"strcat", nasl_strcat},
163 {"display", nasl_display},
164 {"ord", nasl_ord},
165 {"hex", nasl_hex},
166 {"hexstr", nasl_hexstr},
167 {"strstr", nasl_strstr},
168 {"ereg", nasl_ereg},
169 {"ereg_replace", nasl_ereg_replace},
170 {"egrep", nasl_egrep},
171 {"eregmatch", nasl_eregmatch},
172 {"match", nasl_match},
173 {"substr", nasl_substr},
174 {"insstr", nasl_insstr},
175 {"tolower", nasl_tolower},
176 {"toupper", nasl_toupper},
177 {"crap", nasl_crap},
178 {"strlen", nasl_strlen},
179 {"split", nasl_split},
180 {"chomp", nasl_chomp},
181 {"int", nasl_int},
182 {"stridx", nasl_stridx},
183 {"str_replace", nasl_str_replace},
184 {"make_list", nasl_make_list},
185 {"make_array", nasl_make_array},
186 {"keys", nasl_keys},
187 {"max_index", nasl_max_index},
188 {"sort", nasl_sort_array},
189 {"unixtime", nasl_unixtime},
190 {"gettimeofday", nasl_gettimeofday},
191 {"localtime", nasl_localtime},
192 {"mktime", nasl_mktime},
193 {"open_sock_kdc", nasl_open_sock_kdc},
194 {"telnet_init", nasl_telnet_init},
195 {"ftp_log_in", nasl_ftp_log_in},
196 {"ftp_get_pasv_port", nasl_ftp_get_pasv_address},
197 {"start_denial", nasl_start_denial},
198 {"end_denial", nasl_end_denial},
199 {"dump_ctxt", nasl_dump_ctxt},
200 {"typeof", nasl_typeof},
201 {"exit", nasl_do_exit},
202 {"rand", nasl_rand},
203 {"usleep", nasl_usleep},
204 {"sleep", nasl_sleep},
205 {"isnull", nasl_isnull},
206 {"defined_func", nasl_defined_func},
207
208 /* Following 5 entries needed for backwards compatibility.
209 * TODO: Once versions older than 20.08 are no longer in use these 5 entries
210 * can be deleted. */
211 {"forge_ipv6_packet", forge_ip_v6_packet},
212 {"get_ipv6_element", get_ip_v6_element},
213 {"set_ipv6_elements", set_ip_v6_elements},
214 {"insert_ipv6_options", insert_ip_v6_options},
215 {"dump_ipv6_packet", dump_ip_v6_packet},
216
217 {"forge_ip_packet", forge_ip_packet},
218 {"forge_ip_v6_packet", forge_ip_v6_packet},
219 {"get_ip_element", get_ip_element},
220 {"get_ip_v6_element", get_ip_v6_element},
221 {"set_ip_elements", set_ip_elements},
222 {"set_ip_v6_elements", set_ip_v6_elements},
223 {"insert_ip_options", insert_ip_options},
224 {"insert_ip_v6_options", insert_ip_v6_options},
225 {"dump_ip_packet", dump_ip_packet},
226 {"dump_ip_v6_packet", dump_ip_v6_packet},
227 {"forge_tcp_packet", forge_tcp_packet},
228 {"forge_tcp_v6_packet", forge_tcp_v6_packet},
229 {"get_tcp_element", get_tcp_element},
230 {"get_tcp_v6_element", get_tcp_v6_element},
231 {"get_tcp_option", get_tcp_option},
232 {"get_tcp_v6_option", get_tcp_v6_option},
233 {"set_tcp_elements", set_tcp_elements},
234 {"set_tcp_v6_elements", set_tcp_v6_elements},
235 {"insert_tcp_options", insert_tcp_options},
236 {"insert_tcp_v6_options", insert_tcp_v6_options},
237 {"dump_tcp_packet", dump_tcp_packet},
238 {"dump_tcp_v6_packet", dump_tcp_v6_packet},
239 {"tcp_ping", nasl_tcp_ping},
240 {"tcp_v6_ping", nasl_tcp_v6_ping},
241 {"forge_udp_packet", forge_udp_packet},
242 {"forge_udp_v6_packet", forge_udp_v6_packet},
243 {"get_udp_element", get_udp_element},
244 {"get_udp_v6_element", get_udp_v6_element},
245 {"set_udp_elements", set_udp_elements},
246 {"set_udp_v6_elements", set_udp_v6_elements},
247 {"dump_udp_packet", dump_udp_packet},
248 {"dump_udp_v6_packet", dump_udp_v6_packet},
249 {"forge_icmp_packet", forge_icmp_packet},
250 {"forge_icmp_v6_packet", forge_icmp_v6_packet},
251 {"get_icmp_element", get_icmp_element},
252 {"get_icmp_v6_element", get_icmp_v6_element},
253 {"dump_icmp_packet", dump_icmp_packet},
254 {"dump_icmp_v6_packet", dump_icmp_v6_packet},
255 {"forge_igmp_packet", forge_igmp_packet},
256 {"forge_igmp_v6_packet", forge_igmp_v6_packet},
257 {"send_packet", nasl_send_packet},
258 {"send_v6packet", nasl_send_v6packet},
259 {"send_arp_request", nasl_send_arp_request},
260 {"forge_frame", nasl_forge_frame},
261 {"send_frame", nasl_send_frame},
262 {"dump_frame", nasl_dump_frame},
263 {"pcap_next", nasl_pcap_next},
264 {"send_capture", nasl_send_capture},
265 {"MD2", nasl_md2},
266 {"MD4", nasl_md4},
267 {"MD5", nasl_md5},
268 {"SHA1", nasl_sha1},
269 {"SHA256", nasl_sha256},
270 {"SHA512", nasl_sha512},
271 {"RIPEMD160", nasl_ripemd160},
272 {"HMAC_MD2", nasl_hmac_md2},
273 {"HMAC_MD5", nasl_hmac_md5},
274 {"HMAC_SHA1", nasl_hmac_sha1},
275 {"HMAC_SHA256", nasl_hmac_sha256},
276 {"HMAC_SHA384", nasl_hmac_sha384},
277 {"HMAC_SHA512", nasl_hmac_sha512},
278 {"HMAC_RIPEMD160", nasl_hmac_ripemd160},
279 {"prf_sha256", nasl_prf_sha256},
280 {"prf_sha384", nasl_prf_sha384},
281 {"tls1_prf", nasl_tls1_prf},
282 {"ntlmv2_response", nasl_ntlmv2_response},
283 {"ntlm2_response", nasl_ntlm2_response},
284 {"ntlm_response", nasl_ntlm_response},
285 {"key_exchange", nasl_keyexchg},
286 {"NTLMv1_HASH", nasl_ntlmv1_hash},
287 {"NTLMv2_HASH", nasl_ntlmv2_hash},
288 {"nt_owf_gen", nasl_nt_owf_gen},
289 {"lm_owf_gen", nasl_lm_owf_gen},
290 {"ntv2_owf_gen", nasl_ntv2_owf_gen},
291 {"insert_hexzeros", nasl_insert_hexzeros},
292 {"dec2str", nasl_dec2str},
293 {"get_signature", nasl_get_sign},
294 {"get_smb2_signature", nasl_get_smb2_sign},
295 {"smb_cmac_aes_signature", nasl_smb_cmac_aes_sign},
296 {"smb_gmac_aes_signature", nasl_smb_gmac_aes_sign},
297 {"dh_generate_key", nasl_dh_generate_key},
298 {"bn_random", nasl_bn_random},
299 {"bn_cmp", nasl_bn_cmp},
300 {"dh_compute_key", nasl_dh_compute_key},
301 {"rsa_public_encrypt", nasl_rsa_public_encrypt},
302 {"rsa_private_decrypt", nasl_rsa_private_decrypt},
303 {"rsa_public_decrypt", nasl_rsa_public_decrypt},
304 {"bf_cbc_encrypt", nasl_bf_cbc_encrypt},
305 {"bf_cbc_decrypt", nasl_bf_cbc_decrypt},
306 {"rc4_encrypt", nasl_rc4_encrypt},
307 {"aes_mac_cbc", nasl_aes_mac_cbc},
308 {"aes_mac_gcm", nasl_aes_mac_gcm},
309 {"aes128_cbc_encrypt", nasl_aes128_cbc_encrypt},
310 {"aes256_cbc_encrypt", nasl_aes256_cbc_encrypt},
311 {"aes128_ctr_encrypt", nasl_aes128_ctr_encrypt},
312 {"aes256_ctr_encrypt", nasl_aes256_ctr_encrypt},
313 {"aes128_gcm_encrypt", nasl_aes128_gcm_encrypt},
314 {"aes128_gcm_encrypt_auth", nasl_aes128_gcm_encrypt_auth},
315 {"aes128_gcm_decrypt", nasl_aes128_gcm_decrypt},
316 {"aes128_gcm_decrypt_auth", nasl_aes128_gcm_decrypt_auth},
317 {"aes256_gcm_encrypt", nasl_aes256_gcm_encrypt},
318 {"aes256_gcm_encrypt_auth", nasl_aes256_gcm_encrypt_auth},
319 {"aes256_gcm_decrypt", nasl_aes256_gcm_decrypt},
320 {"aes256_gcm_decrypt_auth", nasl_aes256_gcm_decrypt_auth},
321 {"aes128_ccm_encrypt", nasl_aes128_ccm_encrypt},
322 {"aes128_ccm_encrypt_auth", nasl_aes128_ccm_encrypt_auth},
323 {"aes128_ccm_decrypt", nasl_aes128_ccm_decrypt},
324 {"aes128_ccm_decrypt_auth", nasl_aes128_ccm_decrypt_auth},
325 {"aes256_ccm_encrypt", nasl_aes256_ccm_encrypt},
326 {"aes256_ccm_encrypt_auth", nasl_aes256_ccm_encrypt_auth},
327 {"aes256_ccm_decrypt", nasl_aes256_ccm_decrypt},
328 {"aes256_ccm_decrypt_auth", nasl_aes256_ccm_decrypt_auth},
329 {"smb3kdf", nasl_smb3kdf},
330 {"des_ede_cbc_encrypt", nasl_des_ede_cbc_encrypt},
331 {"open_rc4_cipher", nasl_open_rc4_cipher},
332 {"close_stream_cipher", nasl_close_stream_cipher},
333 {"dsa_do_verify", nasl_dsa_do_verify},
334 {"pem_to_rsa", nasl_pem_to_rsa},
335 {"pem_to_dsa", nasl_pem_to_dsa},
336 {"rsa_sign", nasl_rsa_sign},
337 {"dsa_do_sign", nasl_dsa_do_sign},
338 {"gunzip", nasl_gunzip},
339 {"gzip", nasl_gzip},
340 {"DES", nasl_cipher_des},
341 {"snmpv1_get", nasl_snmpv1_get},
342 {"snmpv1_getnext", nasl_snmpv1_getnext},
343 {"snmpv2c_get", nasl_snmpv2c_get},
344 {"snmpv2c_getnext", nasl_snmpv2c_getnext},
345 {"snmpv3_get", nasl_snmpv3_get},
346 {"snmpv3_getnext", nasl_snmpv3_getnext},
347 {"ssh_connect", nasl_ssh_connect},
348 {"ssh_disconnect", nasl_ssh_disconnect},
349 {"ssh_session_id_from_sock", nasl_ssh_session_id_from_sock},
350 {"ssh_get_sock", nasl_ssh_get_sock},
351 {"ssh_set_login", nasl_ssh_set_login},
352 {"ssh_userauth", nasl_ssh_userauth},
353 {"ssh_login_interactive", nasl_ssh_login_interactive},
354 {"ssh_login_interactive_pass", nasl_ssh_login_interactive_pass},
355 {"ssh_request_exec", nasl_ssh_request_exec},
356 {"ssh_shell_open", nasl_ssh_shell_open},
357 {"ssh_shell_read", nasl_ssh_shell_read},
358 {"ssh_shell_write", nasl_ssh_shell_write},
359 {"ssh_shell_close", nasl_ssh_shell_close},
360 {"ssh_get_issue_banner", nasl_ssh_get_issue_banner},
361 {"ssh_get_server_banner", nasl_ssh_get_server_banner},
362 {"ssh_get_auth_methods", nasl_ssh_get_auth_methods},
363 {"ssh_get_host_key", nasl_ssh_get_host_key},
364 {"ssh_execute_netconf_subsystem", nasl_ssh_execute_netconf_subsystem},
365 {"sftp_enabled_check", nasl_sftp_enabled_check},
366#ifdef HAVE_LIBKSBA
367 {"cert_open", nasl_cert_open},
368 {"cert_close", nasl_cert_close},
369 {"cert_query", nasl_cert_query},
370#endif /*HAVE_LIBKSBA*/
371
372 {"pread", nasl_pread},
373 {"find_in_path", nasl_find_in_path},
374 {"fread", nasl_fread},
375 {"fwrite", nasl_fwrite},
376 {"unlink", nasl_unlink},
377 {"get_tmp_dir", nasl_get_tmp_dir},
378 {"get_byte_order", nasl_get_byte_order},
379 {"file_stat", nasl_file_stat},
380 {"file_open", nasl_file_open},
381 {"file_close", nasl_file_close},
382 {"file_read", nasl_file_read},
383 {"file_write", nasl_file_write},
384 {"file_seek", nasl_file_seek},
385 {"wmi_versioninfo", nasl_wmi_versioninfo},
386 {"wmi_connect", nasl_wmi_connect},
387 {"wmi_close", nasl_wmi_close},
388 {"wmi_query", nasl_wmi_query},
389 {"wmi_connect_rsop", nasl_wmi_connect_rsop},
390 {"wmi_query_rsop", nasl_wmi_query_rsop},
391 {"wmi_connect_reg", nasl_wmi_connect_reg},
392 {"wmi_reg_enum_key", nasl_wmi_reg_enum_key},
393 {"wmi_reg_enum_value", nasl_wmi_reg_enum_value},
394 {"wmi_reg_get_sz", nasl_wmi_reg_get_sz},
395 {"wmi_reg_get_bin_val", nasl_wmi_reg_get_bin_val},
396 {"wmi_reg_get_dword_val", nasl_wmi_reg_get_dword_val},
397 {"wmi_reg_get_ex_string_val", nasl_wmi_reg_get_ex_string_val},
398 {"wmi_reg_get_mul_string_val", nasl_wmi_reg_get_mul_string_val},
399 {"wmi_reg_get_qword_val", nasl_wmi_reg_get_qword_val},
400 {"wmi_reg_set_dword_val", nasl_wmi_reg_set_dword_val},
401 {"wmi_reg_set_qword_val", nasl_wmi_reg_set_qword_val},
402 {"wmi_reg_set_ex_string_val", nasl_wmi_reg_set_ex_string_val},
403 {"wmi_reg_set_string_val", nasl_wmi_reg_set_string_val},
404 {"wmi_reg_create_key", nasl_wmi_reg_create_key},
405 {"wmi_reg_delete_key", nasl_wmi_reg_delete_key},
406 {"smb_versioninfo", nasl_smb_versioninfo},
407 {"smb_connect", nasl_smb_connect},
408 {"smb_close", nasl_smb_close},
409 {"smb_file_SDDL", nasl_smb_file_SDDL},
410 {"smb_file_owner_sid", nasl_smb_file_owner_sid},
411 {"smb_file_group_sid", nasl_smb_file_group_sid},
412 {"smb_file_trustee_rights", nasl_smb_file_trustee_rights},
413 {"win_cmd_exec", nasl_win_cmd_exec},
414 {"plugin_run_find_service", plugin_run_find_service},
415 {"plugin_run_openvas_tcp_scanner", plugin_run_openvas_tcp_scanner},
416 {"plugin_run_synscan", plugin_run_synscan},
417 {"isotime_now", nasl_isotime_now},
418 {"isotime_is_valid", nasl_isotime_is_valid},
419 {"isotime_scan", nasl_isotime_scan},
420 {"isotime_print", nasl_isotime_print},
421 {"isotime_add", nasl_isotime_add},
422 // krb5
423 {"krb5_find_kdc", nasl_okrb5_find_kdc},
424 {"krb5_is_success", nasl_okrb5_is_success},
425 {"krb5_is_failure", nasl_okrb5_is_failure},
426 {"krb5_gss_init", nasl_okrb5_gss_init},
427 {"krb5_gss_prepare_context", nasl_okrb5_gss_prepare_context},
428 {"krb5_gss_update_context", nasl_okrb5_gss_update_context},
429 {"krb5_gss_update_context_needs_more",
431 {"krb5_gss_update_context_out", nasl_okrb5_gss_update_context_out},
432 {"krb5_gss_session_key", nasl_okrb5_gss_session_key_context},
433 {"krb5_error_code_to_string", nasl_okrb5_error_code_to_string},
434 {NULL, NULL}};
435
436/* String variables */
437static struct
438{
439 const char *name;
440 const char *val;
441} libsvars[] = {
442 {"OPENVAS_VERSION", OPENVASLIB_VERSION},
443 {NULL, NULL},
445
446/* Integer variables */
447static struct
448{
449 const char *name;
450 int val;
451} libivars[] = {
452 {"TRUE", 1},
453 {"FALSE", 0},
454 {"IPPROTO_TCP", IPPROTO_TCP},
455 {"IPPROTO_UDP", IPPROTO_UDP},
456 {"IPPROTO_ICMP", IPPROTO_ICMP},
457 {"IPPROTO_ICMPV6", IPPROTO_ICMPV6},
458 {"IPPROTO_IP", IPPROTO_IP},
459 {"IPPROTO_IGMP", IPPROTO_IGMP},
460 {"ENCAPS_AUTO", OPENVAS_ENCAPS_AUTO},
461 {"ENCAPS_IP", OPENVAS_ENCAPS_IP},
462 {"ENCAPS_SSLv23", OPENVAS_ENCAPS_SSLv23},
463 {"ENCAPS_SSLv2", OPENVAS_ENCAPS_SSLv2},
464 {"ENCAPS_SSLv3", OPENVAS_ENCAPS_SSLv3},
465 {"ENCAPS_TLSv1", OPENVAS_ENCAPS_TLSv1},
466 {"ENCAPS_TLSv11", OPENVAS_ENCAPS_TLSv11},
467 {"ENCAPS_TLSv12", OPENVAS_ENCAPS_TLSv12},
468 {"ENCAPS_TLSv13", OPENVAS_ENCAPS_TLSv13},
469 {"ENCAPS_TLScustom", OPENVAS_ENCAPS_TLScustom},
470 {"ENCAPS_MAX", OPENVAS_ENCAPS_MAX},
471 {"TH_FIN", TH_FIN},
472 {"TH_SYN", TH_SYN},
473 {"TH_RST", TH_RST},
474 {"TH_PUSH", TH_PUSH},
475 {"TH_ACK", TH_ACK},
476 {"TH_URG", TH_URG},
477 {"IP_RF", IP_RF},
478 {"IP_DF", IP_DF},
479 {"IP_MF", IP_MF},
480 {"IP_OFFMASK", IP_OFFMASK},
481 {"TCPOPT_MAXSEG", TCPOPT_MAXSEG},
482 {"TCPOPT_WINDOW", TCPOPT_WINDOW},
483 {"TCPOPT_SACK_PERMITTED", TCPOPT_SACK_PERMITTED},
484 {"TCPOPT_TIMESTAMP", TCPOPT_TIMESTAMP},
485 {"ACT_INIT", ACT_INIT},
486 {"ACT_GATHER_INFO", ACT_GATHER_INFO},
487 {"ACT_ATTACK", ACT_ATTACK},
488 {"ACT_MIXED_ATTACK", ACT_MIXED_ATTACK},
489 {"ACT_DESTRUCTIVE_ATTACK", ACT_DESTRUCTIVE_ATTACK},
490 {"ACT_DENIAL", ACT_DENIAL},
491 {"ACT_SCANNER", ACT_SCANNER},
492 {"ACT_SETTINGS", ACT_SETTINGS},
493 {"ACT_KILL_HOST", ACT_KILL_HOST},
494 {"ACT_FLOOD", ACT_FLOOD},
495 {"ACT_END", ACT_END},
496 {"MSG_OOB", MSG_OOB},
497 {"NOERR", NASL_ERR_NOERR},
498 {"ETIMEDOUT", NASL_ERR_ETIMEDOUT},
499 {"ECONNRESET", NASL_ERR_ECONNRESET},
500 {"EUNREACH", NASL_ERR_EUNREACH},
501 {"EUNKNOWN", NASL_ERR_EUNKNOWN},
502 {NULL, 0},
504
505/* See also in exec.c:
506 * COMMAND_LINE
507 * description
508 */
509
513void
515{
516 tree_cell tc;
517 unsigned i;
518
519 memset (&tc, 0, sizeof (tc));
520
521 // Initialize constant integer terms
522 tc.type = CONST_INT;
523 for (i = 0; i < sizeof (libivars) / sizeof (libivars[0]) - 1; i++)
524 {
525 tc.x.i_val = libivars[i].val;
526 if (add_named_var_to_ctxt (lexic, libivars[i].name, &tc) == NULL)
527 {
528 nasl_perror (lexic, "init_nasl_library: could not define var '%s'\n",
529 libivars[i].name);
530 continue;
531 }
532 }
533
534 // Initialize constant string terms
535 tc.type = CONST_DATA;
536 for (i = 0; i < sizeof (libsvars) / sizeof (libsvars[0]) - 1; i++)
537 {
538 tc.x.str_val = (char *) libsvars[i].val;
539 tc.size = strlen (libsvars[i].val);
540 if (add_named_var_to_ctxt (lexic, libsvars[i].name, &tc) == NULL)
541 {
542 nasl_perror (lexic, "init_nasl_library: could not define var '%s'\n",
543 libsvars[i].name);
544 continue;
545 }
546 }
547
548 // Add the "NULL" variable
549 if (add_named_var_to_ctxt (lexic, "NULL", NULL) == NULL)
550 nasl_perror (lexic, "init_nasl_library: could not define var 'NULL'\n");
551}
552
553nasl_func *
555{
556 size_t i;
557
558 if (!name)
559 return NULL;
560
561 for (i = 0; i < sizeof (libfuncs) / sizeof (libfuncs[0]) - 1; i++)
562 {
563 if (!strcmp (name, libfuncs[i].name))
564 return (nasl_func *) &libfuncs[i];
565 }
566 return NULL;
567}
568
569char *
571{
572 static char vers[sizeof (OPENVASLIB_VERSION) + 1];
573 strncpy (vers, OPENVASLIB_VERSION, sizeof (vers) - 1);
574 vers[sizeof (vers) - 1] = '\0';
575 return vers;
576}
577
581void
583{
584 int i;
585 for (i = 0; libivars[i].name != NULL; i++)
586 *list = g_slist_append (*list, g_strdup (libivars[i].name));
587 for (i = 0; libsvars[i].name != NULL; i++)
588 *list = g_slist_append (*list, g_strdup (libsvars[i].name));
589}
#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)
tree_cell * nasl_aes256_gcm_encrypt(lex_ctxt *lexic)
tree_cell * nasl_pem_to_rsa(lex_ctxt *lexic)
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)
tree_cell * nasl_aes256_gcm_encrypt_auth(lex_ctxt *lexic)
tree_cell * nasl_rsa_private_decrypt(lex_ctxt *lexic)
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)
tree_cell * nasl_dsa_do_verify(lex_ctxt *lexic)
tree_cell * nasl_bn_random(lex_ctxt *lexic)
tree_cell * nasl_rsa_sign(lex_ctxt *lexic)
tree_cell * nasl_dh_generate_key(lex_ctxt *lexic)
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)
tree_cell * nasl_dh_compute_key(lex_ctxt *lexic)
tree_cell * nasl_get_smb2_sign(lex_ctxt *lexic)
tree_cell * nasl_ripemd160(lex_ctxt *lexic)
tree_cell * nasl_hmac_sha1(lex_ctxt *lexic)
tree_cell * nasl_prf_sha256(lex_ctxt *lexic)
tree_cell * nasl_hmac_md2(lex_ctxt *lexic)
tree_cell * nasl_sha256(lex_ctxt *lexic)
tree_cell * nasl_smb_cmac_aes_sign(lex_ctxt *lexic)
tree_cell * nasl_hmac_sha256(lex_ctxt *lexic)
tree_cell * nasl_nt_owf_gen(lex_ctxt *lexic)
tree_cell * nasl_md2(lex_ctxt *lexic)
tree_cell * nasl_ntlm2_response(lex_ctxt *lexic)
tree_cell * nasl_ntlmv1_hash(lex_ctxt *lexic)
tree_cell * nasl_keyexchg(lex_ctxt *lexic)
tree_cell * nasl_sha1(lex_ctxt *lexic)
tree_cell * nasl_ntlm_response(lex_ctxt *lexic)
tree_cell * nasl_hmac_sha512(lex_ctxt *lexic)
tree_cell * nasl_sha512(lex_ctxt *lexic)
tree_cell * nasl_smb_gmac_aes_sign(lex_ctxt *lexic)
tree_cell * nasl_md5(lex_ctxt *lexic)
tree_cell * nasl_prf_sha384(lex_ctxt *lexic)
tree_cell * nasl_hmac_ripemd160(lex_ctxt *lexic)
tree_cell * nasl_tls1_prf(lex_ctxt *lexic)
tree_cell * nasl_hmac_sha384(lex_ctxt *lexic)
tree_cell * nasl_lm_owf_gen(lex_ctxt *lexic)
tree_cell * nasl_md4(lex_ctxt *lexic)
tree_cell * nasl_hmac_md5(lex_ctxt *lexic)
tree_cell * nasl_get_sign(lex_ctxt *lexic)
tree_cell * nasl_ntv2_owf_gen(lex_ctxt *lexic)
tree_cell * nasl_cipher_des(lex_ctxt *lexic)
tree_cell * nasl_ntlmv2_response(lex_ctxt *lexic)
tree_cell * nasl_ntlmv2_hash(lex_ctxt *lexic)
tree_cell * nasl_insert_hexzeros(lex_ctxt *lexic)
void nasl_perror(lex_ctxt *lexic, char *msg,...)
Definition nasl_debug.c:105
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.
struct st_nasl_func nasl_func
tree_cell * nasl_same_host(lex_ctxt *lexic)
Definition nasl_host.c:482
tree_cell * nasl_this_host_name(lex_ctxt *lexic)
Definition nasl_host.c:404
tree_cell * get_hostname_source(lex_ctxt *lexic)
Definition nasl_host.c:94
tree_cell * get_port_state(lex_ctxt *lexic)
Definition nasl_host.c:291
tree_cell * get_hostname(lex_ctxt *lexic)
Definition nasl_host.c:78
tree_cell * nasl_islocalhost(lex_ctxt *lexic)
Definition nasl_host.c:327
tree_cell * nasl_islocalnet(lex_ctxt *lexic)
Definition nasl_host.c:339
tree_cell * nasl_this_host(lex_ctxt *lexic)
Definition nasl_host.c:351
tree_cell * get_host_ip(lex_ctxt *lexic)
Definition nasl_host.c:207
tree_cell * get_port_transport(lex_ctxt *lexic)
Return the encapsulation mode of a port.
Definition nasl_host.c:454
tree_cell * resolve_hostname(lex_ctxt *lexic)
Definition nasl_host.c:185
tree_cell * get_host_open_port(lex_ctxt *lexic)
Definition nasl_host.c:226
tree_cell * get_udp_port_state(lex_ctxt *lexic)
Definition nasl_host.c:309
tree_cell * nasl_target_is_ipv6(lex_ctxt *lexic)
Definition nasl_host.c:610
tree_cell * add_hostname(lex_ctxt *lexic)
Definition nasl_host.c:112
tree_cell * host_reverse_lookup(lex_ctxt *lexic)
implements ip_reverse_lookup
Definition nasl_host.c:244
tree_cell * get_hostnames(lex_ctxt *lexic)
Definition nasl_host.c:48
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:152
tree_cell * nasl_http2_handle(lex_ctxt *lexic)
Creates a handle for http requests.
Definition nasl_http2.c:84
tree_cell * nasl_http2_get_response_code(lex_ctxt *lexic)
Get the http response code after performing a HTTP request.
Definition nasl_http2.c:436
tree_cell * nasl_http2_head(lex_ctxt *lexic)
Wrapper function for HEAD request. See @_http2_req.
Definition nasl_http2.c:533
tree_cell * nasl_http2_get(lex_ctxt *lexic)
Wrapper function for GET request. See @_http2_req.
Definition nasl_http2.c:525
tree_cell * nasl_http2_close_handle(lex_ctxt *lexic)
Close a handle for http requests previously initialized.
Definition nasl_http2.c:129
tree_cell * nasl_http2_put(lex_ctxt *lexic)
Wrapper function for PUT request. See @_http2_req.
Definition nasl_http2.c:557
tree_cell * nasl_http2_set_custom_header(lex_ctxt *lexic)
Set a custom header element in the header.
Definition nasl_http2.c:482
tree_cell * nasl_http2_delete(lex_ctxt *lexic)
Wrapper function for DELETE request. See @_http2_req.
Definition nasl_http2.c:549
tree_cell * nasl_http2_post(lex_ctxt *lexic)
Wrapper function for POST request. See @_http2_req.
Definition nasl_http2.c:541
tree_cell * http_close_socket(lex_ctxt *lexic)
Definition nasl_http.c:41
tree_cell * http_head(lex_ctxt *lexic)
Definition nasl_http.c:193
tree_cell * http_put(lex_ctxt *lexic)
Definition nasl_http.c:221
tree_cell * http_open_socket(lex_ctxt *lexic)
Definition nasl_http.c:35
tree_cell * cgibin(lex_ctxt *lexic)
Definition nasl_http.c:229
tree_cell * http_get(lex_ctxt *lexic)
Definition nasl_http.c:181
tree_cell * http_delete(lex_ctxt *lexic)
Definition nasl_http.c:212
tree_cell * http_post(lex_ctxt *lexic)
Definition nasl_http.c:203
char * nasl_version(void)
Definition nasl_init.c:570
static init_func libfuncs[]
Definition nasl_init.c:60
nasl_func * func_is_internal(const char *name)
Definition nasl_init.c:554
void add_nasl_library(GSList **list)
Add "built-in" variables to a list.
Definition nasl_init.c:582
static struct @260365312376163127012272224246062244353077307342 libsvars[]
const char * name
Definition nasl_init.c:439
static struct @002143073300314243041325344242175301040162155246 libivars[]
const char * val
Definition nasl_init.c:440
void init_nasl_library(lex_ctxt *lexic)
Adds "built-in" variable and function definitions to a context.
Definition nasl_init.c:514
tree_cell * nasl_isotime_add(lex_ctxt *lexic)
Add days or seconds to an ISO time string.
tree_cell * nasl_isotime_is_valid(lex_ctxt *lexic)
Check whether an ISO time string is valid.
tree_cell * nasl_isotime_print(lex_ctxt *lexic)
Convert an SIO time string into a better readable string.
tree_cell * nasl_isotime_now(lex_ctxt *lexic)
Return the current time in ISO format.
tree_cell * nasl_isotime_scan(lex_ctxt *lexic)
Convert a string into an ISO time string.
Protos and data structures for ISOTIME functions used by NASL scripts.
tree_cell * nasl_okrb5_is_failure(lex_ctxt *lexic)
Returns 0 if the krb5 function was successful and 1 if it failed.
Definition nasl_krb5.c:235
tree_cell * nasl_okrb5_find_kdc(lex_ctxt *lexic)
Returns the defined KDC of a given Realm.
Definition nasl_krb5.c:151
tree_cell * nasl_okrb5_gss_session_key_context(lex_ctxt *lexic)
Definition nasl_krb5.c:362
tree_cell * nasl_okrb5_gss_update_context_out(lex_ctxt *lexic)
Definition nasl_krb5.c:347
tree_cell * nasl_okrb5_gss_update_context_needs_more(lex_ctxt *lexic)
Definition nasl_krb5.c:329
tree_cell * nasl_okrb5_gss_update_context(lex_ctxt *lexic)
Definition nasl_krb5.c:282
tree_cell * nasl_okrb5_gss_prepare_context(lex_ctxt *lexic)
Definition nasl_krb5.c:262
tree_cell * nasl_okrb5_error_code_to_string(lex_ctxt *lexic)
Definition nasl_krb5.c:381
tree_cell * nasl_okrb5_gss_init(lex_ctxt *lexic)
Definition nasl_krb5.c:245
tree_cell * nasl_okrb5_is_success(lex_ctxt *lexic)
Returns 1 if the krb5 function was successful 0 otherwise.
Definition nasl_krb5.c:214
named_nasl_var * add_named_var_to_ctxt(lex_ctxt *, const char *, tree_cell *)
Definition nasl_var.c:810
struct struct_lex_ctxt lex_ctxt
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 * security_notus(lex_ctxt *lexic)
tree_cell * log_message(lex_ctxt *lexic)
tree_cell * nasl_scanner_status(lex_ctxt *lexic)
tree_cell * nasl_notus(lex_ctxt *lexic)
Directly runs a LSC with the given package list and OS release.
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 * nasl_update_table_driven_lsc_data(lex_ctxt *lexic)
Communicate to the parent process that LSC data is ready for use in the host kb.
tree_cell * script_get_preference_file_location(lex_ctxt *lexic)
tree_cell * error_message2(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 * 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 * nasl_notus_error(lex_ctxt *lexic)
Get the last Notus error as string.
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:206
tree_cell * nasl_smb_file_SDDL(lex_ctxt *lexic)
Obtain Security Descriptor in SDDL format.
Definition nasl_smb.c:163
tree_cell * nasl_smb_file_trustee_rights(lex_ctxt *lexic)
Obtain File Trustee SID with Access Mask.
Definition nasl_smb.c:292
tree_cell * nasl_smb_versioninfo(lex_ctxt *lexic)
Get a version string of the SMB implementation.
Definition nasl_smb.c:50
tree_cell * nasl_smb_close(lex_ctxt *lexic)
Close SMB service handle.
Definition nasl_smb.c:133
tree_cell * nasl_smb_connect(lex_ctxt *lexic)
Connect to SMB service and return a handle for it.
Definition nasl_smb.c:78
tree_cell * nasl_smb_file_group_sid(lex_ctxt *lexic)
Obtain File Group SID.
Definition nasl_smb.c:249
tree_cell * nasl_win_cmd_exec(lex_ctxt *lexic)
Execute the command in windows.
Definition nasl_smb.c:337
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)
tree_cell * nasl_get_sock_info(lex_ctxt *lexic)
Get info pertaining to a socket.
tree_cell * nasl_recv_line(lex_ctxt *lexic)
tree_cell * nasl_socket_cert_verify(lex_ctxt *lexic)
Verify a certificate.
tree_cell * nasl_get_mtu(lex_ctxt *lexic)
tree_cell * nasl_open_priv_sock_udp(lex_ctxt *lexic)
tree_cell * nasl_recv(lex_ctxt *lexic)
tree_cell * nasl_send(lex_ctxt *lexic)
tree_cell * nasl_join_multicast_group(lex_ctxt *lexic)
tree_cell * nasl_socket_get_error(lex_ctxt *lexic)
tree_cell * nasl_socket_ssl_do_handshake(lex_ctxt *lexic)
Do a re-handshake of the TLS/SSL protocol.
tree_cell * nasl_socket_check_ssl_safe_renegotiation(lex_ctxt *lexic)
Check if Secure Renegotiation is supported in the server side.
tree_cell * nasl_socket_get_ssl_version(lex_ctxt *lexic)
tree_cell * nasl_get_source_port(lex_ctxt *lexic)
tree_cell * nasl_open_sock_udp(lex_ctxt *lexic)
tree_cell * nasl_close_socket(lex_ctxt *lexic)
tree_cell * nasl_open_sock_tcp(lex_ctxt *lexic)
Open a TCP socket to the target host.
tree_cell * nasl_socket_get_ssl_session_id(lex_ctxt *lexic)
tree_cell * nasl_socket_negotiate_ssl(lex_ctxt *lexic)
tree_cell * nasl_socket_get_cert(lex_ctxt *lexic)
tree_cell * nasl_socket_get_ssl_ciphersuite(lex_ctxt *lexic)
tree_cell * nasl_open_priv_sock_tcp(lex_ctxt *lexic)
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_execute_netconf_subsystem(lex_ctxt *lexic)
Excecute the NETCONF subsystem on the the ssh channel.
Definition nasl_ssh.c:2060
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
struct TC tree_cell
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.
Header file for module network.
@ 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
Category (ACT_*) definitions.
@ 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
int size
Definition nasl_tree.h:99
long int i_val
Definition nasl_tree.h:104
union TC::@332262321161220155002104006201360276211317150140 x
char * str_val
Definition nasl_tree.h:103
short type
Definition nasl_tree.h:95
const char * name
Definition nasl_init.c:51