NAME
fragrouter − network intrusion detection evasion toolkit
SYNOPSIS
fragrouter [ −i interface ] [ −p ] [ −g hop ] [ −G hopcount ] ATTACK
DESCRIPTION
Fragrouter is a program for routing network traffic in such a way as to elude most network intrusion detection systems.
Most attacks implemented correspond to those listed in the Secure Networks ’’Insertion, Evasion, and Denial of Service: Eluding Network Intrusion Detection’’ paper of January 1998.
OPTIONS
−i |
Specify the interface to accept packets on. | ||
−p |
Preserve the entire protocol header in the first fragment. This is useful in bypassing packet filters that deny short IP fragments. | ||
−g |
Specify a hop along a loose source routed path. Can be used more than once to build a chain of hop points. | ||
−G |
Positions the "hop counter" within the list of hosts in the path of a source routed packet. Should be a multiple of 4. Can be set past the length of the loose source routed path to implement Anthony Osborne’s Windows IP source routing attack of September 1999. |
The following attack options are mutually exclusive - you may only specify one type of attack to run at a time.
−B1 |
baseline-1: Normal IP forwarding. | ||
−F1 |
frag-1: Send data in ordered 8-byte IP fragments. | ||
−F2 |
frag-2: Send data in ordered 24-byte IP fragments. | ||
−F3 |
frag-3: Send data in ordered 8-byte IP fragments, with one fragment sent out of order. | ||
−F4 |
frag-4: Send data in ordered 8-byte IP fragments, duplicating the penultimate fragment in each packet. | ||
−F5 |
frag-5: Send data in out of order 8-byte IP fragments, duplicating the penultimate fragment in each packet. | ||
−F6 |
frag-6: Send data in ordered 8-byte IP fragments, sending the marked last fragment first. | ||
−F7 |
frag-7: Send data in ordered 16-byte IP fragments, preceding each fragment with an 8-byte null data fragment that overlaps the latter half of it. This amounts to the forward-overlapping 16-byte fragment rewriting the null data back to the real attack. | ||
−T1 |
tcp-1: Complete TCP handshake, send fake FIN and RST (with bad checksums) before sending data in ordered 1-byte segments. | ||
−T3 |
tcp-3: Complete TCP handshake, send data in ordered 1-byte segments, duplicating the penultimate segment of each original TCP packet. | ||
−T4 |
tcp-4: Complete TCP handshake, send data in ordered 1-byte segments, sending an additional 1-byte segment which overlaps the penultimate segment of each original TCP packet with a null data payload. | ||
−T5 |
tcp-5: Complete TCP handshake, send data in ordered 2-byte segments, preceding each segment with a 1-byte null data segment that overlaps the latter half of it. This amounts to the forward-overlapping 2-byte segment rewriting the null data back to the real attack. | ||
−T7 |
tcp-7: Complete TCP handshake, send data in ordered 1-byte segments interleaved with 1-byte null segments for the same connection but with drastically different sequence numbers. | ||
−T8 |
tcp-8: Complete TCP handshake, send data in ordered 1-byte segments with one segment sent out of order. | ||
−T9 |
tcp-9: Complete TCP handshake, send data in out of order 1-byte segments. | ||
−C2 |
tcbc-2: Complete TCP handshake, send data in ordered 1-byte segments interleaved with SYN packets for the same connection parameters. | ||
−C3 |
tcbc-3: Do not complete TCP handshake, but send null data in ordered 1-byte segments as if one had occured. Then, complete a TCP handshake with same connection parameters, and send the real data in ordered 1-byte segments. | ||
−R1 |
tcbt-1: Complete TCP handshake, shut connection down with a RST, re-connect with drastically different sequence numbers and send data in ordered 1-byte segments. | ||
−I2 |
ins-2: Complete TCP handshake, send data in ordered 1-byte segments but with bad TCP checksums. | ||
−I3 |
ins-3: Complete TCP handshake, send data in ordered 1-byte segments but with no ACK flag set. | ||
−M1 |
misc-1: Thomas Lopatic’s Windows NT 4 SP2 IP fragmentation attack of July 1997 (see http://www.dataprotect.com/ntfrag/ for details). This attack has only been implemented for UDP. | ||
−M2 |
misc-2: John McDonald’s Linux IP chains IP fragmentation attack of July 1998 (see http://www.dataprotect.com/ipchains/ for details). This attack has only been implement for TCP and UDP. |
SEE ALSO
tcpdump(8), tcpreplay(8), pcap(3), libnet(3)
AUTHOR
Dug Song, Anzen Computing.
The current version is available via HTTP:
http://www.anzen.com/research/nidsbench/
BUGS
IP options will carry across all fragments of a packet. Fragrouter is not smart enough to determine which IP options are valid only in the first fragment. This is considered a feature, not a bug. :-)
Similarly, TCP options will carry across all segments of a split TCP packet - except for null data packets preceding a forward overwrite, which lack any TCP options in order to elude TCP PAWS elimination.
Please send bug reports to nidsbench [AT] anzen.com.