Nmap Development mailing list archives
Re: feature suggestion: --udp_reliable
From: Rasmus Andersson <rasmus () pole-position org>
Date: Fri, 29 Nov 2002 15:10:41 +0100
R Anderson wrote:
I include a patch for doing this. The info is not written to .gnmap or .xml in this version, but that should definitely be implemented too.
Of course it introduced a bug, here is an update :) /R
diff -ruB nmap-3.10ALPHA4/Target.cc nmap-3.10ALPHA4-icmp/Target.cc --- nmap-3.10ALPHA4/Target.cc Tue Aug 27 23:43:23 2002 +++ nmap-3.10ALPHA4-icmp/Target.cc Fri Nov 29 12:04:21 2002 @@ -72,6 +72,7 @@ bzero(&sourcesock, sizeof(sourcesock)); targetsocklen = sourcesocklen = 0; targetipstring[0] = '\0'; + icmpresponse = intermediateresp = 0; } void Target::Recycle() { diff -ruB nmap-3.10ALPHA4/Target.h nmap-3.10ALPHA4-icmp/Target.h --- nmap-3.10ALPHA4/Target.h Tue Aug 27 23:43:23 2002 +++ nmap-3.10ALPHA4-icmp/Target.h Fri Nov 29 12:04:21 2002 @@ -116,6 +116,8 @@ int timedout; /* Nonzero if continued scanning should be aborted due to timeout */ char device[64]; /* The device we transmit on */ + unsigned int icmpresponse; // Number of ICMP responses from this host + unsigned int intermediateresp; // Number of ICMP responses from intermediate routers private: char *hostname; // Null if unable to resolve or unset diff -ruB nmap-3.10ALPHA4/output.cc nmap-3.10ALPHA4-icmp/output.cc --- nmap-3.10ALPHA4/output.cc Mon Sep 9 09:59:51 2002 +++ nmap-3.10ALPHA4-icmp/output.cc Fri Nov 29 12:04:21 2002 @@ -217,6 +217,12 @@ } } } + if (currenths->icmpresponse) { + log_write(LOG_NORMAL|LOG_SKID|LOG_STDOUT,"Number of ICMP unreachables from this host: %d\n", currenths->icmpresponse); + } else { + log_write(LOG_NORMAL|LOG_SKID|LOG_STDOUT,"Note: no ICMP unreachables seen from the host.\n"); + } + if (currenths->intermediateresp) log_write(LOG_NORMAL|LOG_SKID|LOG_STDOUT,"Number of unreachables from intermediates: %d\n", currenths->intermediateresp); /* log_write(LOG_NORMAL|LOG_SKID|LOG_STDOUT,"\n"); */ log_write(LOG_MACHINE, "\tIgnored State: %s (%d)", statenum2str(plist->ignored_port_state), plist->state_counts[plist->ignored_port_state]); log_write(LOG_XML, "</ports>\n"); diff -ruB nmap-3.10ALPHA4/scan_engine.cc nmap-3.10ALPHA4-icmp/scan_engine.cc --- nmap-3.10ALPHA4/scan_engine.cc Mon Sep 16 06:39:58 2002 +++ nmap-3.10ALPHA4-icmp/scan_engine.cc Fri Nov 29 12:04:21 2002 @@ -488,6 +488,17 @@ continue; } + /* Wasn't it sent from the host itself? */ + if (ip->ip_src.s_addr != ip2->ip_dst.s_addr) { + target->intermediateresp++; + if (o.debugging || o.verbose) { + log_write(LOG_STDOUT, "ICMP 3/%d regarding %s received from intermediate ", icmp->icmp_code, + inet_ntoa(inet_makeaddr(htonl(ip2->ip_dst.s_addr),0))); + log_write(LOG_STDOUT, "router %s\n", inet_ntoa(inet_makeaddr(htonl(ip->ip_src.s_addr),0))); + } + } + + target->icmpresponse++; data = (u16 *) ((char *)ip2 + 4 * ip2->ip_hl); /* log_write(LOG_STDOUT, "Caught ICMP packet:\n"); hdump(icmp, ntohs(ip->ip_len) - sizeof(struct ip)); */ @@ -1505,6 +1517,17 @@ /* log_write(LOG_STDOUT, "Caught ICMP packet:\n"); hdump(icmp, ntohs(ip->ip_len) - sizeof(struct ip)); */ + /* Wasn't it sent from the host itself? */ + if (ip->ip_src.s_addr != ip2->ip_dst.s_addr) { + target->intermediateresp++; + if (o.debugging || o.verbose) { + log_write(LOG_STDOUT, "ICMP 3/%d regarding %s received from intermediate ", icmp->icmp_code, + inet_ntoa(inet_makeaddr(htonl(ip2->ip_dst.s_addr),0))); + log_write(LOG_STDOUT, "router %s\n", inet_ntoa(inet_makeaddr(htonl(ip->ip_src.s_addr),0))); + } + } + + target->icmpresponse++; if (icmp->icmp_type == 3) { if (scantype != IPPROT_SCAN) newport = ntohs(data[1]);
--------------------------------------------------------------------- For help using this (nmap-dev) mailing list, send a blank email to nmap-dev-help () insecure org . List run by ezmlm-idx (www.ezmlm.org).
Current thread:
- feature suggestion: --udp_reliable Florin Andrei (Nov 22)
- Re: feature suggestion: --udp_reliable Fyodor (Nov 23)
- Re: feature suggestion: --udp_reliable R Anderson (Nov 24)
- Re[2]: feature suggestion: --udp_reliable Bo Cato (Nov 28)
- Re: feature suggestion: --udp_reliable R Anderson (Nov 29)
- Re: feature suggestion: --udp_reliable Rasmus Andersson (Nov 29)
- Re: feature suggestion: --udp_reliable R Anderson (Nov 24)
- Re: feature suggestion: --udp_reliable Fyodor (Nov 23)