Annotation of embedaddon/hping2/docs/hping2.8, revision 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>