TCP/IP stack fingerprinting: Difference between revisions
GrouchoBot (talk | contribs) m robot Adding: ka:TCP/IP ფენების ანაბეჭდის დადგენა |
clean up/reformat/fix syntax/wikify using AWB |
||
Line 1: | Line 1: | ||
[[Image:passive figure.png|thumbnail|right|200px|Passive OS Fingerprinting method and diagram.]] |
[[Image:passive figure.png|thumbnail|right|200px|Passive OS Fingerprinting method and diagram.]] |
||
'''TCP/IP stack fingerprinting''' is the passive collection of configuration attributes from a remote device during |
'''TCP/IP stack fingerprinting''' is the passive collection of configuration attributes from a remote device during standard [[OSI model|layer 4]] network communications. The combination of parameters may then be used to infer the remote machine's operating system (aka, '''OS fingerprinting'''), or incorporated into a [[device fingerprint]]. |
||
standard [[OSI model|layer 4]] network communications. The combination of parameters |
|||
may then be used to infer the remote machine's operating system (aka, '''OS fingerprinting'''), |
|||
or incorporated into a [[device fingerprint]]. |
|||
== TCP/IP Fingerprint Specifics == |
== TCP/IP Fingerprint Specifics == |
||
Certain parameters within the [[TCP protocol]] definition are left up to the implementation. Different operating systems, and different versions of the same operating system, set different defaults for these values. By collecting and examining these values, one may differentiate among various operating systems, and implementations of TCP/IP<ref>[http://project.honeynet.org/papers/finger/ Know Your Enemy: Passive Fingerprinting]</ref>. The TCP/IP fields that may vary |
|||
Certain parameters within the [[TCP protocol]] definition are left up |
|||
to the implementation. Different operating systems, and different |
|||
versions of the same operating system, set different defaults for |
|||
these values. By collecting and examining these values, one may |
|||
differentiate among various operating systems, and implementations of |
|||
TCP/IP<ref>[[http://project.honeynet.org/papers/finger/ Know Your |
|||
Enemy: Passive Fingerprinting]]</ref>. The TCP/IP fields that may vary |
|||
include the following: |
include the following: |
||
Line 26: | Line 17: | ||
* "nop" flag (1 bit) |
* "nop" flag (1 bit) |
||
These values may be combined to form a 67-bit signature, or |
These values may be combined to form a 67-bit signature, or fingerprint, for the target machine.<ref>Chuvakin A. and Peikari, C: "Security Warrior.", page 229. O'Reilly Media Inc., 2004.</ref> |
||
fingerprint, for the target machine.<ref>Chuvakin A. and Peikari, C: |
|||
"Security Warrior.", page 229. O'Reilly Media Inc., 2004.</ref> |
|||
== Protection against and detecting fingerprinting == |
== Protection against and detecting fingerprinting == |
||
Line 62: | Line 51: | ||
{{reflist|1}} |
{{reflist|1}} |
||
{{DEFAULTSORT:Tcp/Ip Stack Fingerprinting}} |
|||
{{compu-network-stub}} |
|||
[[Category:TCP/IP]] |
[[Category:TCP/IP]] |
||
Revision as of 14:04, 15 June 2010
TCP/IP stack fingerprinting is the passive collection of configuration attributes from a remote device during standard layer 4 network communications. The combination of parameters may then be used to infer the remote machine's operating system (aka, OS fingerprinting), or incorporated into a device fingerprint.
TCP/IP Fingerprint Specifics
Certain parameters within the TCP protocol definition are left up to the implementation. Different operating systems, and different versions of the same operating system, set different defaults for these values. By collecting and examining these values, one may differentiate among various operating systems, and implementations of TCP/IP[1]. The TCP/IP fields that may vary include the following:
- Initial packet size (16 bits)
- Initial TTL (8 bits)
- Window size (16 bits)
- Max segment size (16 bits)
- Window scaling value (8 bits)
- "don't fragment" flag (1 bit)
- "sackOK" flag (1 bit)
- "nop" flag (1 bit)
These values may be combined to form a 67-bit signature, or fingerprint, for the target machine.[2]
Protection against and detecting fingerprinting
Protection against all types of TCP/IP fingerprinting is achieved through TCP/IP fingerprint obfuscators. Also known as fingerprint scrubbing, tools exist for MS Windows[3], Linux[4], FreeBSD[5], and likely others.
Moreover, protection against active fingerprinting attempts is achieved by limiting the type and amount of traffic a system responds to. Examples include the following: blocking of all unnecessary outgoing ICMP traffic, especially unusual packet types like address masks and timestamps. Also, blocking of any ICMP echo replies. Be warned that blocking things without knowing exactly what they are for can very well lead to a broken network; for instance, your network could become a black hole. Alternatively, active fingerprinting tools themselves have fingerprints that can be detected.[6].
Defeating TCP/IP fingerprinting may provide limited protection from potential attackers who employ a vulnerability scanner to select machines of a specific target OS. However, a determined adversary may simply try a series of different attacks until one is successful.[7]
Fingerprinting tools
A list of TCP/OS Fingerprinting Tools
- PRADS - Passive comprehensive TCP/IP stack fingerprinting and service detection
- Ettercap - passive TCP/IP stack fingerprinting.
- NetworkMiner - passive DHCP and TCP/IP stack fingerprinting (combines p0f, Ettercap and Satori databases)
- Nmap - comprehensive active stack fingerprinting.
- p0f - comprehensive passive TCP/IP stack fingerprinting.
- PacketFence[8] - open source NAC with passive DHCP fingerprinting.
- Satori - passive CDP, DHCP, ICMP, HPSP, HTTP, TCP/IP and other stack fingerprinting.
- SinFP - single-port active/passive fingerprinting.
- XProbe2 - active TCP/IP stack fingerprinting.
External links
- p0f v2 signature contribution page
- SinFP OS Fingerprinting Tool
- Remote OS detection via TCP/IP Stack FingerPrinting (2nd Generation)
- Defeating TCP/IP Stack Fingerprinting
- Strange Attractors and TCP/IP Sequence Number Analysis - One Year Later
- Security Cloak - Mask against TCP/IP Fingerprinting in Windows
- Sealing Wafter - Defend against OS Fingerprinting on OpenBSD
- AutoScan Network - Network Monitoring and Management Tool
References
- ^ Know Your Enemy: Passive Fingerprinting
- ^ Chuvakin A. and Peikari, C: "Security Warrior.", page 229. O'Reilly Media Inc., 2004.
- ^ OSfuscate
- ^ IPPersonality
- ^ Defeating TCP/IP stack fingerprinting
- ^ iplog
- ^ http://seclists.org/pen-test/2007/Sep/0030.html OS detection not key to penetration
- ^ PacketFence