On Mon, 14 May 2012 16:52:36 -0700, Bill Stewart said: > - Is there any application that can actually set the RFC3514 Evil Bit?
Here ya go. hping3 patch. Swiss army knives always need one more blade...
--- hping3-20051105/globals.h.3514 2007-04-27 16:14:42.000000000 -0400 +++ hping3-20051105/globals.h 2007-04-27 16:14:52.000000000 -0400 @@ -84,6 +84,7 @@ extern int opt_debug, opt_rand_source, opt_lsrr, opt_ssrr, + opt_3514, opt_beep, opt_flood, tcp_exitcode, --- hping3-20051105/main.c.3514 2007-04-27 16:14:42.000000000 -0400 +++ hping3-20051105/main.c 2007-04-27 16:14:52.000000000 -0400 @@ -102,6 +102,7 @@ int opt_rand_source = FALSE, opt_lsrr = FALSE, opt_ssrr = FALSE, + opt_3514 = FALSE, opt_cplt_rte = FALSE, opt_beep = FALSE, opt_flood = FALSE, --- hping3-20051105/parseoptions.c.3514 2007-04-27 16:14:42.000000000 -0400 +++ hping3-20051105/parseoptions.c 2007-04-27 16:14:52.000000000 -0400 @@ -32,7 +32,7 @@ enum { OPT_COUNT, OPT_INTERVAL, OPT_NUME OPT_ICMP_IPLEN, OPT_ICMP_IPID, OPT_ICMP_IPPROTO, OPT_ICMP_CKSUM, OPT_ICMP_TS, OPT_ICMP_ADDR, OPT_TCPEXITCODE, OPT_FAST, OPT_TR_KEEP_TTL, OPT_TCP_TIMESTAMP, OPT_TR_STOP, OPT_TR_NO_RTT, OPT_ICMP_HELP, - OPT_RAND_DEST, OPT_RAND_SOURCE, OPT_LSRR, OPT_SSRR, OPT_ROUTE_HELP, + OPT_RAND_DEST, OPT_RAND_SOURCE, OPT_LSRR, OPT_SSRR, OPT_3514, OPT_ROUTE_HELP, OPT_ICMP_IPSRC, OPT_ICMP_IPDST, OPT_ICMP_SRCPORT, OPT_ICMP_DSTPORT, OPT_ICMP_GW, OPT_FORCE_ICMP, OPT_APD_SEND, OPT_SCAN, OPT_FASTER, OPT_BEEP, OPT_FLOOD }; @@ -114,6 +114,7 @@ static struct ago_optlist hping_optlist[ { '\0', "rand-source", OPT_RAND_SOURCE, AGO_NOARG }, { '\0', "lsrr", OPT_LSRR, AGO_NEEDARG|AGO_EXCEPT0 }, { '\0', "ssrr", OPT_SSRR, AGO_NEEDARG|AGO_EXCEPT0 }, + { '\0', "evil", OPT_3514, AGO_NOARG }, { '\0', "route-help", OPT_ROUTE_HELP, AGO_NOARG }, { '\0', "apd-send", OPT_APD_SEND, AGO_NEEDARG }, { '\0', "icmp-ipsrc", OPT_ICMP_IPSRC, AGO_NEEDARG|AGO_EXCEPT0 }, @@ -540,6 +541,9 @@ int parse_options(int argc, char **argv) "strong source route"); ssr[0] = 137; break; + case OPT_3514: + opt_3514 = TRUE; + break; case OPT_ROUTE_HELP: route_help(); break; --- hping3-20051105/sendip.c.3514 2007-04-27 16:14:42.000000000 -0400 +++ hping3-20051105/sendip.c 2007-04-27 16:14:52.000000000 -0400 @@ -78,11 +78,13 @@ void send_ip (char* src, char *dst, char /* NetBSD */ ip->frag_off |= more_fragments; ip->frag_off |= fragoff >> 3; + if (opt_3514) ip->frag_off |= 1<<15; #else /* Linux */ /* OpenBSD */ ip->frag_off |= htons(more_fragments); ip->frag_off |= htons(fragoff >> 3); /* shift three flags bit */ + if (opt_3514) ip->frag_off |= (htons(1<<15)); #endif ip->ttl = src_ttl; --- hping3-20051105/usage.c.3514 2007-04-27 16:14:42.000000000 -0400 +++ hping3-20051105/usage.c 2007-04-27 16:14:52.000000000 -0400 @@ -57,6 +57,7 @@ void show_usage(void) " -G --rroute includes RECORD_ROUTE option and display the route buffer\n" " --lsrr loose source routing and record route\n" " --ssrr strict source routing and record route\n" +" --evil set the RFC3514 IP header bit\n" " -H --ipproto set the IP protocol field, only in RAW IP mode\n" "ICMP\n" " -C --icmptype icmp type (default echo request)\n"
pgpLzvaC5MOt2.pgp
Description: PGP signature