Annotation of embedaddon/hping2/docs/hping2.8, revision 1.1.1.1

1.1       misho       1: .TH HPING2 8 "2001 Aug 14"
                      2: .SH NAME
                      3: hping2 \- send (almost) arbitrary TCP/IP packets to network hosts
                      4: .SH SYNOPSIS
                      5: .B hping2
                      6: [
                      7: .B \-hvnqVDzZ012WrfxykQbFSRPAUXYjJBuTG
                      8: ] [
                      9: .B \-c
                     10: .I count
                     11: ] [
                     12: .B \-i
                     13: .I wait
                     14: ] [
                     15: .B \-\-fast
                     16: ] [
                     17: .B \-I
                     18: .I interface
                     19: ] [
                     20: .B \-9
                     21: .I signature
                     22: ] [
                     23: .B \-a
                     24: .I host
                     25: ] [
                     26: .B \-t
                     27: .I ttl
                     28: ] [
                     29: .B \-N
                     30: .I ip id
                     31: ] [
                     32: .B \-H
                     33: .I ip protocol
                     34: ] [
                     35: .B \-g
                     36: .I fragoff
                     37: ] [
                     38: .B \-m
                     39: .I mtu
                     40: ] [
                     41: .B \-o
                     42: .I tos
                     43: ] [
                     44: .B \-C
                     45: .I icmp type
                     46: ] [
                     47: .B \-K
                     48: .I icmp code
                     49: ] [
                     50: .B \-s
                     51: .I source port
                     52: ] [
                     53: .B \-p[+][+]
                     54: .I dest port
                     55: ] [
                     56: .B \-w
                     57: .I tcp window
                     58: ] [
                     59: .B \-O
                     60: .I tcp offset
                     61: ] [
                     62: .B \-M
                     63: .I tcp sequence number
                     64: ] [
                     65: .B \-L
                     66: .I tcp ack
                     67: ] [
                     68: .B \-d
                     69: .I data size
                     70: ] [
                     71: .B \-E
                     72: .I filename
                     73: ] [
                     74: .B \-e
                     75: .I signature
                     76: ] [
                     77: .B \-\-icmp\-ipver
                     78: .I version
                     79: ] [
                     80: .B \-\-icmp\-iphlen
                     81: .I length
                     82: ] [
                     83: .B \-\-icmp\-iplen
                     84: .I length
                     85: ] [
                     86: .B \-\-icmp\-ipid
                     87: .I id
                     88: ] [
                     89: .B \-\-icmp\-ipproto
                     90: .I protocol
                     91: ] [
                     92: .B \-\-icmp\-cksum
                     93: .I checksum
                     94: ] [
                     95: .B \-\-icmp\-ts
                     96: ] [
                     97: .B \-\-icmp\-addr
                     98: ] [
                     99: .B \-\-tcpexitcode
                    100: ] [
                    101: .B \-\-tcp-timestamp
                    102: ] [
                    103: .B \-\-tr-stop
                    104: ] [
                    105: .B \-\-tr-keep-ttl
                    106: ] [
                    107: .B \-\-tr-no-rtt
                    108: ] [
                    109: .B \-\-rand-dest
                    110: ] [
                    111: .B \-\-rand-source
                    112: ]
                    113: hostname
                    114: .br
                    115: .ad
                    116: .SH DESCRIPTION
                    117: hping2 is a network tool able to send custom TCP/IP packets and to
                    118: display target replies like ping program does with ICMP replies. hping2
                    119: handle fragmentation, arbitrary packets body and size and can be used in
                    120: order to transfer files encapsulated under supported protocols. Using
                    121: hping2 you are able to perform at least the following stuff:
                    122: 
                    123:  - Test firewall rules
                    124:  - Advanced port scanning
                    125:  - Test net performance using different protocols,
                    126:    packet size, TOS (type of service) and fragmentation.
                    127:  - Path MTU discovery
                    128:  - Transferring files between even really fascist firewall
                    129:    rules.
                    130:  - Traceroute-like under different protocols.
                    131:  - Firewalk-like usage.
                    132:  - Remote OS fingerprinting.
                    133:  - TCP/IP stack auditing.
                    134:  - A lot of others.
                    135: 
                    136: .IR "It's also a good didactic tool to learn TCP/IP" .
                    137: hping2 is developed and maintained by antirez@invece.org and is
                    138: licensed under GPL version 2. Development is open so you can send
                    139: me patches, suggestion and affronts without inhibitions.
                    140: .SH HPING SITE
                    141: primary site at
                    142: .BR http://www.hping.org .
                    143: You can found both the stable release and the instruction
                    144: to download the latest source code at http://www.hping.org/download.html
                    145: .SH BASE OPTIONS
                    146: .TP
                    147: .I -h --help
                    148: Show an help screen on standard output, so you can pipe to less.
                    149: .TP
                    150: .I -v --version
                    151: Show version information and API used to access to data link layer,
                    152: .I linux sock packet
                    153: or
                    154: .IR libpcap.
                    155: .TP
                    156: .I -c --count count
                    157: Stop after sending (and receiving)
                    158: .I count
                    159: response packets. After last packet was send hping2 wait COUNTREACHED_TIMEOUT
                    160: seconds target host replies. You are able to tune COUNTREACHED_TIMEOUT editing
                    161: hping2.h
                    162: .TP
                    163: .I -i --interval
                    164: Wait
                    165: the specified number of seconds or micro seconds between sending each packet.
                    166: --interval X set
                    167: .I wait
                    168: to X seconds, --interval uX set
                    169: .I wait
                    170: to X micro seconds.
                    171: The default is to wait
                    172: one second between each packet. Using hping2 to transfer files tune this
                    173: option is really important in order to increase transfer rate. Even using
                    174: hping2 to perform idle/spoofing scanning you should tune this option, see
                    175: .B HPING2-HOWTO
                    176: for more information.
                    177: .TP
                    178: .I --fast
                    179: Alias for -i u10000. Hping will send 10 packets for second.
                    180: .TP
                    181: .I --faster
                    182: Alias for -i u1. Faster then --fast ;) (but not as fast as your computer can send packets due to the signal-driven design).
                    183: .TP
                    184: .I -n --numeric
                    185: Numeric output only, No attempt will be made to lookup symbolic names for host addresses.
                    186: .TP
                    187: .I -q --quiet
                    188: Quiet output. Nothing is displayed except the summary lines at
                    189: startup time and when finished.
                    190: .TP
                    191: .I -I --interface interface name
                    192: By default on linux and BSD systems hping2 uses default routing interface.
                    193: In other systems or when there is no default route
                    194: hping2 uses the first non-loopback interface.
                    195: However you are able to force hping2 to use the interface you need using
                    196: this option. Note: you don't need to specify the whole name, for
                    197: example -I et will match eth0 ethernet0 myet1 et cetera. If no interfaces
                    198: match hping2 will try to use lo.
                    199: .TP
                    200: .I -V --verbose
                    201: Enable verbose output. TCP replies will be shown as follows:
                    202: 
                    203: len=46 ip=192.168.1.1 flags=RA DF seq=0 ttl=255 id=0 win=0 rtt=0.4 ms
                    204: tos=0 iplen=40 seq=0 ack=1380893504 sum=2010 urp=0 
                    205: .TP
                    206: .I -D --debug
                    207: Enable debug mode, it's useful when you experience some problem with
                    208: hping2. When debug mode is enabled you will get more information about
                    209: .B interface detection, data link layer access, interface settings, options
                    210: .B parsing, fragmentation, HCMP protocol
                    211: and other stuff.
                    212: .TP
                    213: .I -z --bind
                    214: Bind CTRL+Z to
                    215: .B time to live (TTL)
                    216: so you will able to increment/decrement ttl of outgoing packets pressing
                    217: CTRL+Z once or twice.
                    218: .TP
                    219: .I -Z --unbind
                    220: Unbind CTRL+Z so you will able to stop hping2.
                    221: .SH PROTOCOL SELECTION
                    222: Default protocol is TCP, by default hping2 will send tcp headers to target
                    223: host's port 0 with a winsize of 64 without any tcp flag on. Often this
                    224: is the best way to do an 'hide ping', useful when target is behind
                    225: a firewall that drop ICMP. Moreover a tcp null-flag to port 0 has a good
                    226: probability of not being logged.
                    227: .TP
                    228: .I -0 --rawip
                    229: RAW IP mode, in this mode hping2 will send IP header with data
                    230: appended with --signature and/or --file, see also --ipproto that
                    231: allows you to set the ip protocol field.
                    232: .TP
                    233: .I -1 --icmp
                    234: ICMP mode, by default hping2 will send ICMP echo-request, you can set
                    235: other ICMP type/code using
                    236: .B --icmptype --icmpcode
                    237: options.
                    238: .TP
                    239: .I -2 --udp
                    240: UDP mode, by default hping2 will send udp to target host's port 0.
                    241: UDP header tunable options are the following:
                    242: .B --baseport, --destport, --keep.
                    243: .TP
                    244: .I -8 --scan
                    245: Scan mode, the option expects an argument that describes groups of
                    246: ports to scan. port groups are comma separated: a number describes
                    247: just a single port, so 1,2,3 means port 1, 2 and 3. ranges are specified
                    248: using a start-end notation, like 1-1000, that tell hping to scan ports between 1 and 1000 (included). the special word
                    249: .B all
                    250: is an alias for 0-65535, while the special word
                    251: .B known
                    252: includes all the ports listed in /etc/services.
                    253: .br
                    254: Groups can be combined, so the following command line will
                    255: scan ports between 1 and 1000 AND port 8888 AND ports listed in /etc/services:
                    256: .B hping --scan 1-1000,8888,known -S target.host.com
                    257: .br
                    258: Groups can be negated (subtracted) using a ! character as prefix,
                    259: so the following command line will scan all the ports NOT listed
                    260: in /etc/services in the range 1-1024:
                    261: .B hping --scan '1-1024,!known' -S target.host.com
                    262: .br
                    263: Keep in mind that while hping seems much more like a port scanner in
                    264: this mode, most of the hping switches are still honored, so for example to
                    265: perform a SYN scan you need to specify the
                    266: .B -S
                    267: option, you can change the TCP windows size, TTL, control the
                    268: IP fragmentation as usually, and so on. The only real difference is that
                    269: the standard hping behaviors are encapsulated into a scanning
                    270: algorithm.
                    271: .br
                    272: .BR "Tech note" :
                    273: The scan mode uses a two-processes design, with shared memory for synchronization. The scanning algorithm is still not optimal, but already quite fast.
                    274: .br
                    275: .BR Hint :
                    276: unlike most scanners, hping shows some interesting info about received
                    277: packets, the IP ID, TCP win, TTL, and so on, don't forget to look
                    278: at this additional information when you perform a scan! Sometimes they
                    279: shows interesting details.
                    280: .TP
                    281: .I -9 --listen signature
                    282: HPING2 listen mode, using this option hping2 waits for packet that contain
                    283: .I signature
                    284: and dump from
                    285: .I signature
                    286: end to packet's end. For example if hping2 --listen TEST reads a packet
                    287: that contain
                    288: .B 234-09sdflkjs45-TESThello_world
                    289: it will display
                    290: .BR hello_world .
                    291: .SH IP RELATED OPTIONS
                    292: .TP
                    293: .I -a --spoof hostname
                    294: Use this option in order to set a fake IP source address, this option
                    295: ensures that target will not gain your real address. However replies
                    296: will be sent to spoofed address, so you will can't see them. In order
                    297: to see how it's possible to perform spoofed/idle scanning see the
                    298: .BR HPING2-HOWTO .
                    299: .TP
                    300: .I --rand-source
                    301: This option enables the
                    302: .BR "random source mode" .
                    303: hping will send packets with random source address. It is interesting
                    304: to use this option to stress firewall state tables, and other
                    305: per-ip basis dynamic tables inside the TCP/IP stacks and firewall
                    306: software.
                    307: .TP
                    308: .I --rand-dest
                    309: This option enables the
                    310: .BR "random destination mode" .
                    311: hping will send the packets to random addresses obtained following
                    312: the rule you specify as the target host. You need to specify
                    313: a numerical IP address as target host like
                    314: .BR 10.0.0.x .
                    315: All the occurrences of
                    316: .B x
                    317: will be replaced with a random number in the range 0-255. So to obtain
                    318: Internet IP addresses in the whole IPv4 space use something like
                    319: .BR "hping x.x.x.x --rand-dest" .
                    320: If you are not sure about what kind of addresses your rule is generating
                    321: try to use the
                    322: .B --debug
                    323: switch to display every new destination address generated.
                    324: When this option is turned on, matching packets will be accept from all
                    325: the destinations.
                    326: .br
                    327: .BR Warning :
                    328: when this option is enabled hping can't detect the right outgoing
                    329: interface for the packets, so you should use the
                    330: .B --interface
                    331: option to select the desired outgoing interface.
                    332: .TP
                    333: .I -t --ttl time to live
                    334: Using this option you can set
                    335: .B TTL (time to live)
                    336: of outgoing packets, it's likely that you will use this with
                    337: .B --traceroute
                    338: or
                    339: .B --bind
                    340: options. If in doubt try
                    341: .BR "" "`" "hping2 some.host.com -t 1 --traceroute" "'."
                    342: .TP
                    343: .I -N --id
                    344: Set ip->id field. Default id is random but if fragmentation is turned on
                    345: and id isn't specified it will be
                    346: .BR "getpid() & 0xFF" ,
                    347: to implement a better solution is in TODO list.
                    348: .TP
                    349: .I -H --ipproto
                    350: Set the ip protocol in RAW IP mode.
                    351: .TP
                    352: .I -W --winid
                    353: id from Windows* systems before Win2k has different byte ordering, if this
                    354: option is enable
                    355: hping2 will properly display id replies from those Windows.
                    356: .TP
                    357: .I -r --rel
                    358: Display id increments instead of id. See the
                    359: .B HPING2-HOWTO
                    360: for more information. Increments aren't computed as id[N]-id[N-1] but
                    361: using packet loss compensation. See relid.c for more information.
                    362: .TP
                    363: .I -f --frag
                    364: Split packets in more fragments, this may be useful in order to test
                    365: IP stacks fragmentation performance and to test if some
                    366: packet filter is so weak that can be passed using tiny fragments
                    367: (anachronistic). Default 'virtual mtu' is 16 bytes. see also
                    368: .I --mtu
                    369: option.
                    370: .TP
                    371: .I -x --morefrag
                    372: Set more fragments IP flag, use this option if you want that target
                    373: host send an
                    374: .BR "ICMP time-exceeded during reassembly" .
                    375: .TP
                    376: .I -y --dontfrag
                    377: Set don't fragment IP flag, this can be used to perform
                    378: .BR "MTU path discovery" .
                    379: .TP
                    380: .I -g --fragoff fragment offset value
                    381: Set the fragment offset.
                    382: .TP
                    383: .I -m --mtu mtu value
                    384: Set different 'virtual mtu' than 16 when fragmentation is enabled. If
                    385: packets size is greater that 'virtual mtu' fragmentation is automatically
                    386: turned on.
                    387: .TP
                    388: .I -o --tos hex_tos
                    389: Set
                    390: .BR "Type Of Service (TOS)" ,
                    391: for more information try
                    392: .BR "--tos help" .
                    393: .TP
                    394: .I -G --rroute
                    395: Record route. Includes the RECORD_ROUTE option in each packet sent and
                    396: displays the route buffer of returned packets. Note that the IP header
                    397: is only large enough for nine such routes. Many hosts ignore or discard
                    398: this option. Also note that using hping you are able to use record route
                    399: even if target host filter ICMP. Record route is an IP option, not
                    400: an ICMP option, so you can use record route option even in TCP and UDP
                    401: mode.
                    402: .SH ICMP RELATED OPTIONS
                    403: .TP
                    404: .I -C --icmptype type
                    405: Set icmp type, default is
                    406: .B ICMP echo request
                    407: (implies --icmp).
                    408: .TP
                    409: .I -K --icmpcode code
                    410: Set icmp code, default is 0 (implies --icmp).
                    411: .TP
                    412: .I --icmp-ipver
                    413: Set IP version of IP header contained into ICMP data, default is 4.
                    414: .TP
                    415: .I --icmp-iphlen
                    416: Set IP header length of IP header contained into ICMP data, default is 5 (5 words of 32 bits).
                    417: .TP
                    418: .I --icmp-iplen
                    419: Set IP packet length of IP header contained into ICMP data, default is the real
                    420: length.
                    421: .TP
                    422: .I --icmp-ipid
                    423: Set IP id of IP header contained into ICMP data, default is random.
                    424: .TP
                    425: .I --icmp-ipproto
                    426: Set IP protocol of IP header contained into ICMP data, default is TCP.
                    427: .TP
                    428: .I --icmp-cksum
                    429: Set ICMP checksum, for default is the valid checksum.
                    430: .TP
                    431: .I --icmp-ts
                    432: Alias for --icmptype 13 (to send ICMP timestamp requests).
                    433: .TP
                    434: .I --icmp-addr
                    435: Alias for --icmptype 17 (to send ICMP address mask requests).
                    436: .SH TCP/UDP RELATED OPTIONS
                    437: .TP
                    438: .I -s --baseport source port
                    439: hping2 uses source port in order to guess replies sequence number. It
                    440: starts with a base source port number, and increase this number for each
                    441: packet sent. When packet is received sequence number can be computed as
                    442: .IR "replies.dest.port - base.source.port" .
                    443: Default base source port is random, using this option you are able to
                    444: set different number. If you need that source port not be increased for
                    445: each sent packet use the
                    446: .I -k --keep
                    447: option.
                    448: .TP
                    449: .I -p --destport [+][+]dest port
                    450: Set destination port, default is 0. If '+' character precedes dest port
                    451: number (i.e. +1024) destination port will be increased for each reply
                    452: received. If double '+' precedes dest port number (i.e. ++1024), destination
                    453: port will be increased for each packet sent.
                    454: By default destination port can be modified interactively using
                    455: .BR CTRL+z .
                    456: .TP
                    457: .I --keep
                    458: keep still source port, see
                    459: .I --baseport
                    460: for more information.
                    461: .TP
                    462: .I -w --win
                    463: Set TCP window size. Default is 64.
                    464: .TP
                    465: .I -O --tcpoff
                    466: Set fake tcp data offset. Normal data offset is tcphdrlen / 4.
                    467: .TP
                    468: .I -M --tcpseq
                    469: Set the TCP sequence number.
                    470: .TP
                    471: .I -L --tcpack
                    472: Set the TCP ack.
                    473: .TP
                    474: .I -Q --seqnum
                    475: This option can be used in order to collect sequence numbers generated
                    476: by target host. This can be useful when you need to analyze whether
                    477: TCP sequence number is predictable. Output example:
                    478: 
                    479: .B #hping2 win98 --seqnum -p 139 -S -i u1 -I eth0
                    480: .nf
                    481: HPING uaz (eth0 192.168.4.41): S set, 40 headers + 0 data bytes
                    482: 2361294848 +2361294848
                    483: 2411626496 +50331648
                    484: 2545844224 +134217728
                    485: 2713616384 +167772160
                    486: 2881388544 +167772160
                    487: 3049160704 +167772160
                    488: 3216932864 +167772160
                    489: 3384705024 +167772160
                    490: 3552477184 +167772160
                    491: 3720249344 +167772160
                    492: 3888021504 +167772160
                    493: 4055793664 +167772160
                    494: 4223565824 +167772160
                    495: .fi
                    496: 
                    497: The first column reports the sequence number, the second difference
                    498: between current and last sequence number. As you can see target host's sequence
                    499: numbers are predictable.
                    500: .TP
                    501: .I -b --badcksum
                    502: Send packets with a bad UDP/TCP checksum.
                    503: .TP
                    504: .I --tcp-timestamp
                    505: Enable the TCP timestamp option, and try to guess the timestamp update
                    506: frequency and the remote system uptime.
                    507: .TP
                    508: .I -F --fin
                    509: Set FIN tcp flag.
                    510: .TP
                    511: .I -S --syn
                    512: Set SYN tcp flag.
                    513: .TP
                    514: .I -R --rst
                    515: Set RST tcp flag.
                    516: .TP
                    517: .I -P --push
                    518: Set PUSH tcp flag.
                    519: .TP
                    520: .I -A --ack
                    521: Set ACK tcp flag.
                    522: .TP
                    523: .I -U --urg
                    524: Set URG tcp flag.
                    525: .TP
                    526: .I -X --xmas
                    527: Set Xmas tcp flag.
                    528: .TP
                    529: .I -Y --ymas
                    530: Set Ymas tcp flag.
                    531: .SH COMMON OPTIONS
                    532: .TP
                    533: .I -d --data data size
                    534: Set packet body size. Warning, using --data 40 hping2 will not generate
                    535: 0 byte packets but protocol_header+40 bytes. hping2 will display
                    536: packet size information as first line output, like this:
                    537: .B HPING www.yahoo.com (ppp0 204.71.200.67): NO FLAGS are set, 40 headers + 40 data bytes
                    538: .TP
                    539: .I -E --file filename
                    540: Use
                    541: .B filename
                    542: contents to fill packet's data.
                    543: .TP
                    544: .I -e --sign signature
                    545: Fill first
                    546: .I signature length
                    547: bytes of data with
                    548: .IR signature .
                    549: If the
                    550: .I signature length
                    551: is bigger than data size an error message will be displayed.
                    552: If you don't specify the data size hping will use the signature
                    553: size as data size.
                    554: This option can be used safely with
                    555: .I --file filename
                    556: option, remainder data space will be filled using
                    557: .IR filename .
                    558: .TP
                    559: .I -j --dump
                    560: Dump received packets in hex.
                    561: .TP
                    562: .I -J --print
                    563: Dump received packets' printable characters.
                    564: .TP
                    565: .I -B --safe
                    566: Enable safe protocol, using this option lost packets in file transfers
                    567: will be resent. For example in order to send file /etc/passwd from host
                    568: A to host B you may use the following:
                    569: .nf
                    570: .I [host_a]
                    571: .B # hping2 host_b --udp -p 53 -d 100 --sign signature --safe --file /etc/passwd
                    572: .I [host_b]
                    573: .B # hping2 host_a --listen signature --safe --icmp
                    574: .fi
                    575: .TP
                    576: .I -u --end
                    577: If you are using
                    578: .I --file filename
                    579: option, tell you when EOF has been reached. Moreover prevent that other end
                    580: accept more packets. Please, for more information see the
                    581: .BR HPING2-HOWTO .
                    582: .TP
                    583: .I -T --traceroute
                    584: Traceroute mode. Using this option hping2 will increase ttl for each
                    585: .B ICMP time to live 0 during transit
                    586: received. Try
                    587: .BR "hping2 host --traceroute" .
                    588: This option implies --bind and --ttl 1. You can override the ttl of 1
                    589: using the --ttl option. Since 2.0.0 stable it prints RTT information.
                    590: .TP
                    591: .I --tr-keep-ttl
                    592: Keep the TTL fixed in traceroute mode, so you can monitor just one hop
                    593: in the route. For example, to monitor how the 5th hop changes or
                    594: how its RTT changes you can try
                    595: .BR "hping2 host --traceroute --ttl 5 --tr-keep-ttl" .
                    596: .TP
                    597: .I --tr-stop
                    598: If this option is specified hping will exit once the first packet
                    599: that isn't an ICMP time exceeded is received. This better emulates
                    600: the traceroute behavior.
                    601: .TP
                    602: .I --tr-no-rtt
                    603: Don't show RTT information in traceroute mode. The ICMP time exceeded RTT
                    604: information aren't even calculated if this option is set.
                    605: .TP
                    606: .I --tcpexitcode
                    607: Exit with last received packet tcp->th_flag as exit code. Useful for scripts
                    608: that need, for example, to known if the port 999 of some host reply with
                    609: SYN/ACK or with RST in response to SYN, i.e. the service is up or down.
                    610: .SH TCP OUTPUT FORMAT
                    611: The standard TCP output format is the following:
                    612: 
                    613: len=46 ip=192.168.1.1 flags=RA DF seq=0 ttl=255 id=0 win=0 rtt=0.4 ms
                    614: 
                    615: .B len
                    616: is the size, in bytes, of the data captured from the data link layer
                    617: excluding the data link header size. This may not match the IP datagram
                    618: size due to low level transport layer padding.
                    619: 
                    620: .B ip
                    621: is the source ip address.
                    622: 
                    623: .B flags
                    624: are the TCP flags, R for RESET, S for SYN, A for ACK, F for FIN,
                    625: P for PUSH, U for URGENT, X for not standard 0x40, Y for not standard
                    626: 0x80.
                    627: 
                    628: If the reply contains
                    629: .B DF
                    630: the IP header has the don't fragment bit set.
                    631: 
                    632: .B seq
                    633: is the sequence number of the packet, obtained using the source
                    634: port for TCP/UDP packets, the sequence field for ICMP packets.
                    635: 
                    636: .B id
                    637: is the IP ID field.
                    638: 
                    639: .B win
                    640: is the TCP window size.
                    641: 
                    642: .B rtt
                    643: is the round trip time in milliseconds.
                    644: 
                    645: If you run hping using the
                    646: .B -V
                    647: command line switch it will display additional information about the
                    648: packet, example:
                    649: 
                    650: len=46 ip=192.168.1.1 flags=RA DF seq=0 ttl=255 id=0 win=0 rtt=0.4 ms
                    651: tos=0 iplen=40 seq=0 ack=1223672061 sum=e61d urp=0 
                    652: 
                    653: .B tos
                    654: is the type of service field of the IP header.
                    655: 
                    656: .B iplen
                    657: is the IP total len field.
                    658: 
                    659: .B seq and ack
                    660: are the sequence and acknowledge 32bit numbers in the TCP header.
                    661: 
                    662: .B sum
                    663: is the TCP header checksum value.
                    664: 
                    665: .B urp
                    666: is the TCP urgent pointer value.
                    667: 
                    668: .SH UDP OUTPUT FORMAT
                    669: 
                    670: The standard output format is:
                    671: 
                    672: len=46 ip=192.168.1.1 seq=0 ttl=64 id=0 rtt=6.0 ms
                    673: 
                    674: The field meaning is just the same as the TCP output meaning of the
                    675: same fields.
                    676: 
                    677: .SH ICMP OUTPUT FORMAT
                    678: 
                    679: An example of ICMP output is:
                    680: 
                    681: ICMP Port Unreachable from ip=192.168.1.1 name=nano.marmoc.net
                    682: 
                    683: It is very simple to understand. It starts with the string "ICMP"
                    684: followed by the description of the ICMP error, Port Unreachable
                    685: in the example. The ip field is the IP source address of the IP
                    686: datagram containing the ICMP error, the name field is just the
                    687: numerical address resolved to a name (a dns PTR request) or UNKNOWN if the
                    688: resolution failed.
                    689: 
                    690: The ICMP Time exceeded during transit or reassembly format is a bit
                    691: different:
                    692: 
                    693: TTL 0 during transit from ip=192.168.1.1 name=nano.marmoc.net
                    694: 
                    695: TTL 0 during reassembly from ip=192.70.106.25 name=UNKNOWN   
                    696: 
                    697: The only difference is the description of the error, it starts with
                    698: TTL 0.
                    699: 
                    700: .SH AUTHOR
                    701: Salvatore Sanfilippo <antirez@invece.org>, with the help of the people mentioned in AUTHORS file and at http://www.hping.org/authors.html
                    702: .SH BUGS
                    703: Even using the --end and --safe options to transfer files the final packet
                    704: will be padded with 0x00 bytes.
                    705: .PP
                    706: Data is read without care about alignment, but alignment is enforced
                    707: in the data structures.
                    708: This will not be a problem under i386 but, while usually the TCP/IP
                    709: headers are naturally aligned, may create problems with different
                    710: processors and bogus packets if there is some unaligned access around
                    711: the code (hopefully none).
                    712: .PP
                    713: On solaris hping does not work on the loopback interface. This seems
                    714: a solaris problem, as stated in the tcpdump-workers mailing list,
                    715: so the libpcap can't do nothing to handle it properly.
                    716: .SH SEE ALSO
                    717: ping(8), traceroute(8), ifconfig(8), nmap(1)

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>