Nmap Development mailing list archives
Re: IPv6 Hop Limit as feature in FPEngine
From: Alexandru Geana <alex () alegen net>
Date: Thu, 19 Mar 2015 14:08:42 +0100
Hello devs, I have made some changes to the patches and attached the new versions to this email.
It seems weird to conditionally subtract the DS. I don't remember, is that value always present? Or only when we get an ICMPv6 reply?
The DS value is not always present. It appears depending on whether nmap
is able to get it or not, either via an ICMP response to the U1 probe or
via a traceroute.
The method I thought about now is to check the scan line and see if the
hop distance is present. If it is, then I try to calculate the original
hop limit value. Then I try to guess the original value and take into
consideration an error limit which is 5 if the hop distance was present
and 20 otherwise. The idea is to check
if def_value - er_limit <= hop_limit and hop_limit <= def_value
hop_limit = def_value
else
hop_limit = -1
for every hop limit in the database and every default_value in {32, 64,
128, 255}. The reason for having different error limits is that, if the
hop distance is available, theoretically we should be able to calculate
the original hop limit. Otherwise, the error limit is higher since we
cannot tell for sure how many hops are on the path. Furthermore it also
helps with interference. For example, if a calculated hop limit is 65 or
66, it most probably means that the value was rewritten to 64 somewhere
on the path and it cannot be used to obtain the original value anymore.
I ran some experiments with different strategies and obtained the
results from the table below. The hlim column has different values found
in the fingerprint database (except -1), raw is the number of packets
with said hop limit without any processing, sl is only using the scan
line when available and nothing more, sl || g is to use the scan line
when available otherwise guess by rounding up to known value when scan
line is not available, sl && g is scan line and always guessing and the
final column is scan line and smart guessing (the algorithm described
above).
In the nmap code I had to make some further changes because I needed the
calculation method as an argument to the vectorize_hlim function. I
wanted to add the distance_calculation_method field to the
FingerPrintResults class. This field is of type dist_calc_method defined
in Target.h. Since Target.h includes FingerPrintResults.h, I could not
include the former in the latter (for the definition of the enum) so I
decided to move it to FingerPrintResults.h. Additionally, I also moved
the distance field from Target to FPR (since it was just a copy) and
updated all other files (osscan2, output, traceroute) to use
FPR->distance.
Let me know what you think of it.
hlim raw sl sl || g sl && g sl && sg
-1 36
1 6 6
32 6 6
44 1
45 1 1
50 16 8
51 4 8 8
52 36 16
53 11
54 14
55 20
56 12 4 4
57 25 18 5
58 37 25
59 36 22
60 223 187 33
61 20 8
62 48 10 10
63 143 81 21
64 1842 2097 2403 2485 2467
65 3 3
127 16 16
128 211 211 227 230 227
243 23 10
244 8 8
246 9
248 8 8
249 12 12
251 27
252 1
254 8 8
255 438 479 525 534 525
260 9 9
Best regards,
Alexandru Geana
alegen.net
Attachment:
nmap.diff
Description:
Attachment:
ipv6tests.diff
Description:
Attachment:
signature.asc
Description: Digital signature
_______________________________________________ Sent through the dev mailing list https://nmap.org/mailman/listinfo/dev Archived at http://seclists.org/nmap-dev/
Current thread:
- IPv6 Hop Limit as feature in FPEngine Alexandru Geana (Feb 23)
- Re: IPv6 Hop Limit as feature in FPEngine David Fifield (Feb 23)
- Re: IPv6 Hop Limit as feature in FPEngine Alexandru Geana (Feb 24)
- Re: IPv6 Hop Limit as feature in FPEngine David Fifield (Feb 24)
- Re: IPv6 Hop Limit as feature in FPEngine Alexandru Geana (Feb 26)
- Re: IPv6 Hop Limit as feature in FPEngine Alexandru Geana (Feb 24)
- Re: IPv6 Hop Limit as feature in FPEngine David Fifield (Feb 24)
- Re: IPv6 Hop Limit as feature in FPEngine Alexandru Geana (Mar 11)
- Re: IPv6 Hop Limit as feature in FPEngine David Fifield (Mar 12)
- Re: IPv6 Hop Limit as feature in FPEngine Alexandru Geana (Mar 19)
- Re: IPv6 Hop Limit as feature in FPEngine David Fifield (Mar 19)
- Re: IPv6 Hop Limit as feature in FPEngine Alexandru Geana (Mar 23)
- Re: IPv6 Hop Limit as feature in FPEngine David Fifield (Mar 23)
- Re: IPv6 Hop Limit as feature in FPEngine Alexandru Geana (Mar 26)
- Re: IPv6 Hop Limit as feature in FPEngine David Fifield (Feb 23)
