int8_t vtp_init_attribs(struct term_node *node) { struct vtp_data *vtp_data; vtp_data = node->protocol[PROTO_VTP].tmp_data; attack_gen_mac(vtp_data->mac_source); vtp_data->mac_source[0] &= 0x0E; parser_vrfy_mac("01:00:0c:cc:cc:cc",vtp_data->mac_dest); vtp_data->version = VTP_DFL_VERSION; memcpy(vtp_data->domain, VTP_DFL_DOMAIN,sizeof(VTP_DFL_DOMAIN)); vtp_data->dom_len = VTP_DFL_DOM_LEN; vtp_data->code = VTP_DFL_CODE; vtp_data->start_val = 1; vtp_data->revision = 1; vtp_data->followers = 1; vtp_data->seq = 1; vtp_data->updater = ntohl(inet_addr("10.13.58.1")); return 0; }
int8_t dtp_init_attribs(struct term_node *node) { struct dtp_data *dtp_data; dtp_data = node->protocol[PROTO_DTP].tmp_data; attack_gen_mac(dtp_data->mac_source); dtp_data->mac_source[0] &= 0x0E; parser_vrfy_mac("01:00:0c:cc:cc:cc",dtp_data->mac_dest); dtp_data->version = DTP_DFL_VERSION; memcpy(dtp_data->domain,DTP_DFL_DOMAIN,sizeof(DTP_DFL_DOMAIN)); dtp_data->dom_len = DTP_DFL_DOM_LEN; dtp_data->status = DTP_DFL_STATUS; dtp_data->type = DTP_DFL_TYPE; memcpy(dtp_data->neighbor,dtp_data->mac_source,6); return 0; }
int8_t mpls_init_attribs(struct term_node *node) { struct mpls_data *mpls_data; mpls_data = node->protocol[PROTO_MPLS].tmp_data; attack_gen_mac(mpls_data->mac_source); mpls_data->mac_source[0] &= 0x0E; parser_vrfy_mac(MPLS_DFL_MAC_DST,mpls_data->mac_dest); mpls_data->proto = IPPROTO_TCP; /* TCP MPLS default... */ mpls_data->double_hdr = 0; /* Just 1 MPLS header...*/ mpls_data->bottom1 = 1; mpls_data->src_ip = ntohl(inet_addr(MPLS_DFL_SRC_IP)); mpls_data->src_port = MPLS_DFL_SRC_PORT; mpls_data->dst_ip = ntohl(inet_addr(MPLS_DFL_DST_IP)); mpls_data->dst_port = MPLS_DFL_DST_PORT; memcpy(mpls_data->ip_payload,MPLS_DFL_PAYLOAD,sizeof(MPLS_DFL_PAYLOAD)); mpls_data->ip_pay_len = MPLS_DFL_PAY_LEN; return 0; }
int8_t dot1x_init_attribs(struct term_node *node) { struct dot1x_data *dot1x_data; dot1x_data = node->protocol[PROTO_DOT1X].tmp_data; attack_gen_mac(dot1x_data->mac_source); dot1x_data->mac_source[0] &= 0x0E; parser_vrfy_mac(DOT1X_DFL_MAC_DST,dot1x_data->mac_dest); dot1x_data->type = DOT1X_DFL_TYPE; dot1x_data->version = DOT1X_DFL_VER; dot1x_data->eap_code = DOT1X_DFL_EAP_CODE; dot1x_data->eap_id = DOT1X_DFL_EAP_ID; dot1x_data->eap_type = DOT1X_DFL_EAP_TYPE; memcpy(dot1x_data->eap_info,DOT1X_DFL_EAP_INFO,sizeof(DOT1X_DFL_EAP_INFO)-1); dot1x_data->eap_info_len = sizeof(DOT1X_DFL_EAP_INFO)-1; dot1x_data->len = dot1x_data->eap_info_len + 1 + sizeof(struct eap_header); return 0; }
int8_t hsrp_init_attribs( struct term_node *node ) { struct hsrp_data *hsrp_data; u_int32_t lbl32; hsrp_data = node->protocol[PROTO_HSRP].tmp_data; /* HSRP stuff */ hsrp_data->version = HSRP_DFL_VERSION; hsrp_data->opcode = HSRP_DFL_TYPE; hsrp_data->state = HSRP_DFL_STATE; hsrp_data->hello_time = HSRP_DFL_HELLO_TIME; hsrp_data->hold_time = HSRP_DFL_HOLD_TIME; hsrp_data->priority = HSRP_DFL_PRIORITY; hsrp_data->group = HSRP_DFL_GROUP; hsrp_data->reserved = HSRP_DFL_RESERVED; memset( (void *)hsrp_data->authdata, 0, HSRP_AUTHDATA_LENGTH ); if ( strlen( HSRP_DFL_AUTHDATA ) < HSRP_AUTHDATA_LENGTH ) memcpy( (void *)hsrp_data->authdata, (void *)HSRP_DFL_AUTHDATA, strlen( HSRP_DFL_AUTHDATA ) ); else memcpy( (void *)hsrp_data->authdata, (void *)HSRP_DFL_AUTHDATA, HSRP_AUTHDATA_LENGTH ); lbl32 = libnet_get_prand(LIBNET_PRu32); memcpy((void *)&hsrp_data->virtual_ip, (void *) &lbl32, 4); hsrp_data->sport = HSRP_DFL_PORT; hsrp_data->dport = HSRP_DFL_PORT; lbl32 = libnet_get_prand(LIBNET_PRu32); memcpy((void *)&hsrp_data->sip, (void *)&lbl32, sizeof(u_int32_t)); hsrp_data->dip = ntohl(inet_addr("224.0.0.2")); attack_gen_mac(hsrp_data->mac_source); hsrp_data->mac_source[0] &= 0x0E; parser_vrfy_mac("01:00:5e:00:00:02",hsrp_data->mac_dest); return 0; }