-
Notifications
You must be signed in to change notification settings - Fork 26
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
Incorrect results for possibly downed hosts #17
Comments
Oh that's really interesting! Thanks for sharing so much detail - this really is the ideal Github issue xD Sometime this week I'll go and dig into the issue and write a fix! Armada's interpretation of packets is a little basic, tbh. It looks for certain flags in a response and doesn't do much else. I will go back and build a more accurate host detection based on what nmap is doing :) |
Hi @d0nutptr, Any update on this? |
Oh shit.. so sorry on that. I'm opening the project up right now and will begin debugging :) |
Okay, so the update: I've been able to reproduce the issue locally, though it's inconsistent. I see some discrepancies from how nmap and armada are sending packets (they're close, but different). I have two theories on what could be causing the problem but I think i need to wait until tomorrow since the subject IP stopped doing the behavior after enough testing 😅 The two ideas are:
Anyway, I'll try and pick this back up tomorrow but I may have to wait until Thursday night as my Wednesday is a little busy! |
No worries! Thanks for the update😊 You're right about the inconsistency of this issue, I've seen this happening on other IPs as well but works sometimes. |
Awesome update!!!! I've been able to get nmap to recreate the issue by restricting transmission to a particular ephemeral port. This indicates that, to resolve the issue with armada, we need to rotate the transmission of packets with a couple of ephemeral ports. I'm actually considering rewriting armada with some significant improvements in other areas, but this makes sense to include for reliability. |
Hmm actually I'm less sure now ^^; Nmap actually reports all of those ports open even if you let it juggle the ports. It appears to be a speed issue. Nmap is correctly reporting them as filtered when the scan is slow, but if i set the minimum rate to 1000 then nmap starts reporting all of them as open just like armada. Armada has a default speed of 10k packets a second. If you reduce that down to 50 then armada begins correctly reporting the ports as not open. So, in conclusion, you probably need to run armada with a slower speed. For example:
Let me know if this helps and is sufficient for your issue! |
I've been working on my own SYN port scanner and indeed see similar behaviour with certain ip ranges (e.g. 194.53.208.0/22). When scanning on high(ish) speeds they start to send SYN-ACK replies on ports that are actually not listening. In this particular range was already seeing this behaviour on 100 packets per second. My scanner is randomising the source ports and target ip addresses within the range. I'm pretty sure this is some kind of protection mechanism that kicks in to throw off scanners. Here's an interesting article of someone seeing similar behaviour on nmap. Some techniques I'm looking into myself to try and avoid detection:
|
Hi @d0nutptr! Thanks for the tool its really the best.
I've noticed one issue with it when using it in my workflow. So what I do is after getting the subdomains from various sources I do a DNS resolve on them to get the IP addresses and use armada to check all TCP 65535 ports. Here if any Host is down or doesn't exist anymore armada responds weirdly on it. Its either all 65535 ports which are open or a lot of ports majorly sequential in order which it says are open. When in reality none of the ports are open. I've verified this issue with multiple such hosts and also tried different levels of rate limiting but still the behavior persists. And I've verified the host with nmap which responds the host is down and if I use
-Pn
it says all ports are filtered. But armada sees these filtered ports as open.For instance I ran against this IP
103.97.3.19
:Now if I run armada on the same host:
And the final result which armada gives is majorly all the ports are open (Even with ratelimiting the results are pretty much the same):
Which if we verify with nmap, we get them as filtered
I'm not sure if this is intended to keep high speed for scans but if we can add a ping sweep or a way for armada to better detect this would be really good. My current workaround for this is to do a ping sweep via nmap and then use all the live hosts for armada to scan on. I guess results like these must be similar on hosts behind a firewall.
The text was updated successfully, but these errors were encountered: