OpenVAS Libraries  9.0.1
Data Structures | Macros | Functions
nasl_packet_forgery_v6.c File Reference

NASL IPv6 Packet Forgery functions. More...

#include <arpa/inet.h>
#include <ctype.h>
#include <pcap.h>
#include <stdlib.h>
#include <string.h>
#include <sys/time.h>
#include <unistd.h>
#include <netinet/icmp6.h>
#include "../misc/bpf_share.h"
#include "../misc/pcap_openvas.h"
#include "../misc/plugutils.h"
#include "nasl_raw.h"
#include "nasl_tree.h"
#include "nasl_global_ctxt.h"
#include "nasl_func.h"
#include "nasl_var.h"
#include "nasl_lex_ctxt.h"
#include "exec.h"
#include "nasl_socket.h"
#include "nasl_debug.h"
#include "capture_packet.h"
#include "nasl_packet_forgery_v6.h"

Data Structures

struct  v6pseudohdr
 
struct  v6pseudo_udp_hdr
 
struct  v6pseudo_icmp_hdr
 
struct  igmp6_hdr
 

Macros

#define FIX(n)   htons(n)
 
#define UNFIX(n)   ntohs(n)
 
#define rnd_tcp_port()   (rand() % 65535 + 1024)
 

Functions

tree_cellforge_ipv6_packet (lex_ctxt *lexic)
 Forge IPv6 packet. More...
 
tree_cellget_ipv6_element (lex_ctxt *lexic)
 Obtain IPv6 header element. More...
 
tree_cellset_ipv6_elements (lex_ctxt *lexic)
 Set IPv6 header element. More...
 
tree_celldump_ipv6_packet (lex_ctxt *lexic)
 Print IPv6 Header. More...
 
tree_cellinsert_ipv6_options (lex_ctxt *lexic)
 
tree_cellforge_tcp_v6_packet (lex_ctxt *lexic)
 Forge TCP packet. More...
 
tree_cellget_tcp_v6_element (lex_ctxt *lexic)
 Get TCP Header element. More...
 
tree_cellset_tcp_v6_elements (lex_ctxt *lexic)
 Set TCP Header element. More...
 
tree_celldump_tcp_v6_packet (lex_ctxt *lexic)
 Print TCP/IPv6 packet. More...
 
tree_cellforge_udp_v6_packet (lex_ctxt *lexic)
 
tree_cellget_udp_v6_element (lex_ctxt *lexic)
 
tree_cellset_udp_v6_elements (lex_ctxt *lexic)
 
tree_celldump_udp_v6_packet (lex_ctxt *lexic)
 
tree_cellforge_icmp_v6_packet (lex_ctxt *lexic)
 
tree_cellget_icmp_v6_element (lex_ctxt *lexic)
 
tree_cellforge_igmp_v6_packet (lex_ctxt *lexic)
 
tree_cellnasl_tcp_v6_ping (lex_ctxt *lexic)
 Performs TCP Connect to test if host is alive. More...
 
tree_cellnasl_send_v6packet (lex_ctxt *lexic)
 Send forged IPv6 Packet. More...
 

Detailed Description

NASL IPv6 Packet Forgery functions.

Provides IPv6 Packet Forgery functionalities The API set offers forgery for,

  1. TCP
  2. IPv6

Macro Definition Documentation

◆ FIX

#define FIX (   n)    htons(n)
Todo:
: It still needs to be taken care BSD_BYTE_ORDERING gets here if defined (e.g. by config.h)

◆ rnd_tcp_port

#define rnd_tcp_port ( )    (rand() % 65535 + 1024)

◆ UNFIX

#define UNFIX (   n)    ntohs(n)

Function Documentation

◆ dump_ipv6_packet()

tree_cell* dump_ipv6_packet ( lex_ctxt lexic)

Print IPv6 Header.

Parameters
[in]lexicLexical context of NASL interpreter.
Returns
Print and returns FAKE_CELL.

◆ dump_tcp_v6_packet()

tree_cell* dump_tcp_v6_packet ( lex_ctxt lexic)

Print TCP/IPv6 packet.

Parameters
[in]lexicLexical context of NASL interpreter.
Returns
Print and return FAKE_CELL.

◆ dump_udp_v6_packet()

tree_cell* dump_udp_v6_packet ( lex_ctxt lexic)

◆ forge_icmp_v6_packet()

tree_cell* forge_icmp_v6_packet ( lex_ctxt lexic)

◆ forge_igmp_v6_packet()

tree_cell* forge_igmp_v6_packet ( lex_ctxt lexic)

◆ forge_ipv6_packet()

tree_cell* forge_ipv6_packet ( lex_ctxt lexic)

Forge IPv6 packet.

Parameters
[in]lexicLexical context of NASL interpreter.
Returns
tree_cell with the forged IP packet.

◆ forge_tcp_v6_packet()

tree_cell* forge_tcp_v6_packet ( lex_ctxt lexic)

Forge TCP packet.

Parameters
[in]lexicLexical context of NASL interpreter.
Returns
tree_cell with the forged TCP packet containing IPv6 header.

◆ forge_udp_v6_packet()

tree_cell* forge_udp_v6_packet ( lex_ctxt lexic)

◆ get_icmp_v6_element()

tree_cell* get_icmp_v6_element ( lex_ctxt lexic)

◆ get_ipv6_element()

tree_cell* get_ipv6_element ( lex_ctxt lexic)

Obtain IPv6 header element.

Parameters
[in]lexicLexical context of NASL interpreter.
Returns
tree_cell with the IP header element.

◆ get_tcp_v6_element()

tree_cell* get_tcp_v6_element ( lex_ctxt lexic)

Get TCP Header element.

Parameters
[in]lexicLexical context of NASL interpreter.
Returns
tree_cell with the forged IP packet.

◆ get_udp_v6_element()

tree_cell* get_udp_v6_element ( lex_ctxt lexic)

◆ insert_ipv6_options()

tree_cell* insert_ipv6_options ( lex_ctxt lexic)

◆ nasl_send_v6packet()

tree_cell* nasl_send_v6packet ( lex_ctxt lexic)

Send forged IPv6 Packet.

Parameters
[in]lexicLexical context of NASL interpreter.
Returns
tree_cell with the response to the sent packet.

◆ nasl_tcp_v6_ping()

tree_cell* nasl_tcp_v6_ping ( lex_ctxt lexic)

Performs TCP Connect to test if host is alive.

Parameters
[in]lexicLexical context of NASL interpreter.
Returns
tree_cell > 0 if host is alive, 0 otherwise.

◆ set_ipv6_elements()

tree_cell* set_ipv6_elements ( lex_ctxt lexic)

Set IPv6 header element.

Parameters
[in]lexicLexical context of NASL interpreter.
Returns
tree_cell with the forged IP packet.

◆ set_tcp_v6_elements()

tree_cell* set_tcp_v6_elements ( lex_ctxt lexic)

Set TCP Header element.

Parameters
[in]lexicLexical context of NASL interpreter.
Returns
tree_cell with the forged TCP packet and IPv6.

◆ set_udp_v6_elements()

tree_cell* set_udp_v6_elements ( lex_ctxt lexic)