dumbnet Ar command Ar args Op ...
is a simple test program for the
dumbnet(3)
library. It can be used to compose and transmit network datagrams as a
Unix-style filter (e.g. reading from or writing to files and pipes) or
modify the local system network configuration (including the ARP
cache, firewall ruleset, network interfaces, and routing table).
Payload generation commands
addr address [...]
Convert the
address
(specified as a hostname, IP address, or MAC address)
into its binary representation on standard output.
hex string [...]
Convert the C-style escaped
string
(shellcode, for instance) into its binary representation on standard output.
rand len
Write
len
random bytes to standard output.
Packet encapsulation commands
eth
[type type
]
[src mac
]
[dst mac
]
Prepend the data read from standard input with an Ethernet header on
standard output. The Ethernet
type
may be specified as
`arp'
,
`ip'
,
or as a hex, octal, or decimal number.
arp
[op op
]
[sha mac
]
[spa host
]
[tha mac
]
[tpa host
]
Prepend the data read from standard input with an ARP header on
standard output. The ARP
op
may be specified as
`req'
,
`rep'
,
`revreq'
,
`revrep'
,
or as a hex, octal, or decimal number.
ip
[tos num
]
[id num
]
[off offset
]
[ttl num
]
[proto protocol
]
[src host
]
-words
[dst dst
]
Prepend the data read from standard input with an IP header on
standard output. The fragmentation
offset
may be specified as a decimal number (optionally concatenated with
`+'
to indicate more fragments) or as a hex number. The
protocol
may be specified by name, or as a hex, octal, or decimal number.
icmp
[type num
]
[code num
]
Prepend the data read from standard input with an ICMP header on
standard output.
tcp
[sport port
]
[dport port
]
[flags flags
]
[seq num
]
[ack num
]
[win num
]
[urp num
]
Prepend the data read from standard input with a TCP header on
standard output. A
port
may be specified by name or hex, octal, or decimal number. The TCP
flags
may be specified as some combination of the characters in the set
`SAFRPU'
or as a hex number.
udp
[sport port
]
[dport port
]
Prepend the data read from standard input with a UDP header on
standard output. A
port
may be specified by name or hex, octal, or decimal number.
Packet transmission commands
send [device
]
Read a packet from standard input and send it over the network. If no
device
is specified, the packet is assumed to be an IP datagram and routed
to its destination. Otherwise, the packet is assumed to be an Ethernet
frame and is transmitted on the specified interface.
Add a rule to or delete a rule from the active firewall ruleset. The
action
must be either
`allow'
or
`block'
The direction must be either
`in'
or
`out'
The
device
may specify an interface name, or
`any'
The
protocol
may be specified by name, or as a decimal number. For TCP and
UDP protocols, a
port
(or range, if specified with a
max
value) may be specified in decimal and appended to the source and/or
destination address. For ICMP, a
type
(and optional
code
may be specified in decimal.
intf show
Display the configuration of all network interfaces.
intf get device
Display the configuration for the interface specified by
device
# Create ping packet with IP header, to set ICMP checksum
echo "monkey monkey monkey monkey" | dumbnet icmp type 8 code 0 | \
dumbnet ip proto icmp src 1.2.3.4 dst 5.6.7.8 > ping.pkt
# Chop off IP header
dd if=ping.pkt of=ping.data bs=20 skip=1
# Fragment IP payload
split -b 24 ping.data p.
# Send fragments
dumbnet ip id 1 off 0+ proto icmp src 1.2.3.4 dst 5.6.7.8 < p.aa | \
dumbnet send
dumbnet ip id 1 off 24 proto icmp src 1.2.3.4 dst 5.6.7.8 < p.ab | \
dumbnet send
COMPATIBILITY
The library was originally named
dnet
but was renamed to
dumbnet
due to a conflict with the DECnet library. This decision affects not only the
filename of the shared library, but also the header file names and the library's
SONAME tag, which means that software built on a non-Debian-derived distribution
will not run with this library and recompiling the software will only work if
some adjustments to header include directives and compiler/linker flags are made.