-
Notifications
You must be signed in to change notification settings - Fork 2.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Nmap's ARP scan misses alive hosts in some cases #92
Comments
A few more mentions of this:
Both of these mention android phones as being the missing devices, but the original report was for an HP printer. I wonder if timing is the culprit? If we slowed down or took a little more time to allow the ARP scan to complete, would we catch these devices? |
Did some research, so here are some links:
|
I seem to have run into the same issue, as written down in this Stack Exchange question |
It sounds like my issue on Information Security Stack Exchange: Inconsistent list of hosts found by nmap pings from scan to scan - tcpdump shows ICMP echo replies did arrive is an instance of this issue. Here I show the output from two scans and the corresponding tshark trace from them. For the host in question, the tshark data for the two scans is identical, but the nmap output for some reason shows the host up in one scan and down in the other. So in my case, nmap reports the host as down, even though tcpdump/tshark shows an ICMP Echo reply was received. (I think) the received ICMP Echo reply implies that this is not an ARP problem, so perhaps this really is a separate issue. But one more related data point at least. If anybody conclusively can show that this is a separate issue, I'd be happy to file a separate issue for my issue above. Just let me know. |
For my particular case, the problem was the So we just stopped using This also means that my problem probably wasn't related to the other posts in this issue. Sorry for the noise. |
I have the same problem with nmap 7.6 on Ubuntu 18.04 and I am not using The hosts that are missing change from time to time; they are not always exactly the same.
|
I just ran into this today when scanning an address space. Adding --disable-arp-ping got me all the hosts. Interestingly, without disable-arp-ping, I got the same amount of hosts whether sudo or not. So there were actually 14 hosts up, but if I omited disable-arp-ping I only found 7 with sudo and 7 when not sudo. Nmap version 7.60 ( https://nmap.org ) |
My problem is described on this post: https://security.stackexchange.com/questions/211907/nmap-not-showing-all-live-hosts I was told to post it here the example is in the description... And from my tests what I have concluded is that the problem is in when arp requests are sent to the entire local net 192.168.0.1/24... Adding the option - - disable-arp-ping also solved my issue |
Same issue here: Environment
Input filesOne file has 10 hosts, the other has 11 hosts:
10 hosts
11 hosts
When the list contains 11 hosts, the first one is skipped. tcpdumpWe can see an ARP req/resp for both hosts, but we ignore the response for the first one and send a second arp req:
switching orderIf i switch the first two hosts in the file, I get the same result:
|
Two essential changes: 1. (ab)Use the ratelimit detection feature to hold off sending retransmissions, preferring to send new ARP probes. Late responses will still be recorded, but no longer counted as drops. This also gives each target the longest amount of time to respond. 2. Send timing pings much more frequently. Since we're not sending any retransmissions until timeout + ratelimit, we wouldn't otherwise have any data on drops in order to speed up or slow down. Results are faster ARP scans with fewer missed targets. See #92.
We're marking this done as of Nmap 7.90. We made several interesting improvements, but the big fix is in 875a51f. Thanks everyone for your help in diagnosing the problem! |
Unfortunately, the changes here were insufficient to accommodate all targets. Here are some observations:
|
This happens all the time to me with the My use case: I see no difference between scanning the whole network like 192.168.1.* vs. performing a scan on a particular IP (both are unreliable and I need to scan multiple times to have a hit). |
In my case I have noticed that I usually get a hit (i.e. that host is alive - in case it really is) after 4 tries. If ARP-ping sends 2 packets at most, I can be sure (but still not entirely) that the results are reliable only after having sent 8-10 packets, which is why I run this in a loop. So basically I agree with #2543, maybe it could be helpful to add an option for adjusting the number of packets sent? |
Need to figure out what is causing this and if there is any workaround. Most recent report: http://serverfault.com/questions/678324/one-device-shows-down-when-more-than-160-ip-addresses-are-scanned-with-nmap
The text was updated successfully, but these errors were encountered: