Subject: CVS commit: pkgsrc/net
From: Lubomir Sedlacik
Date: 2004-09-01 03:20:51
Message id: 20040901012051.5DE182DA1D@cvs.netbsd.org

Log Message:
Update to version 3.70.

Significant changes:

- Rewrote core port scanning engine, which is now named ultra_scan().
  Improved algorithms make this faster (often dramatically so) in
  almost all cases.  Not only is it superior against single hosts, but
  ultra_scan() can scan many hosts (sometimes hundreds) in parallel.
  This offers many efficiency/speed advantages.  For example, hosts
  often limit the ICMP port unreachable packets used by UDP scans to
  1/second.  That made those scans extraordinarily slow in previous
  versions of Nmap.  But if you are scanning 100 hosts at once,
  suddenly you can receive 100 responses per second.  Spreading the
  scan amongst hosts is also gentler toward the target hosts.  Nmap
  can still scan many ports at the same time, as well.  If you find
  cases where ultra_scan is slower or less accurate, please send a
  report (including exact command-lines, versions used, and output, if
  possible) to Fyodor.

- Added --max_hostgroup option which specifies the maximum number of
  hosts that Nmap is allowed to scan in parallel.

- Added --min_hostgroup option which specifies the minimum number of
  hosts that Nmap should scan in parallel (there are some exceptions
  where Nmap will still scan smaller groups -- see man page).  Of
  course, Nmap will try to choose efficient values even if you don't
  specify hostgroup restrictions explicitly.

- Rewrote TCP SYN, ACK, Window, and Connect() scans to use
  ultra_scan() framework, rather than the old pos_scan().

- Rewrote FIN, Xmas, NULL, Maimon, UDP, and IP Protocol scans to use
  ultra_scan(), rather than the old super_scan().

- Overhauled UDP scan.  Ports that don't respond are now classified as
  "open|filtered" (open or filtered) rather than "open".  \ 
The (somewhat
  rare) ports that actually respond with a UDP packet to the empty
  probe are considered open.  If version detection is requested, it
  will be performed on open|filtered ports.  Any that respond to any of
  the UDP probes will have their status changed to open.  This avoids a
  the false-positive problem where filtered UDP ports appear to be
  open, leading to terrified newbies thinking their machine is
  infected by back orifice.

- Nmap now estimates completion times for almost all port scan types
  (any that use ultra_scan()) as well as service scan (version
  detection).  These are only shown in verbose mode (-v).  On scans
  that take more than a minute or two, you will see occasional updates
  like:
  SYN Stealth Scan Timing: About 30.01% done; ETC: 16:04 (0:01:09 remaining)
  New updates are given if the estimates change significantly.

- Added --exclude option, which lets you specify a comma-separated
  list of targets (hosts, ranges, netblocks) that should be excluded
  from the scan.  This is useful to keep from scannig yourself, your
  ISP, particularly sensitive hosts, etc.  The new --excludefile reads
  the list (newline-delimited) from a given file.  All the work was
  done by Mark-David McLaughlin (mdmcl(a)cisco.com> and William McVey
  ( wam(a)cisco.com ), who sent me a well-designed and well-tested
  patch.

- Nmap now has a "port scan ping" system.  If it has received at least
  one response from any port on the host, but has not received
  responses lately (usually due to filtering), Nmap will "ping" that
  known-good port occasionally to detect latency, packet drop rate,
  etc.

- Service/version detection now handles multiple hosts at once for
  more efficient and less-intrusive operation.

- Nmap now wishes itself a happy birthday when run on September 1 in
  verbose mode!  The first public release was on that date in 1997.

- The port randomizer now has a bias toward putting
  commonly-accessible ports (80, 22, etc.) near the beginning of the
  list.  Getting a response early helps Nmap calculate response times and
  detect packet loss, so the scan goes faster.

- Host timeout system (--host_timeout) overhauled to support host
  parallelization.  Hosts times are tracked separately, so a host that
  finishes a SYN scan quickly is not penalized for an exceptionally
  slow host being scanned at the same time.

- When Nmap has not received any responses from a host, it can now
  use certain timing values from other hosts from the same scan
  group.  This way Nmap doesn't have to use absolute-worst-case
  (300bps SLIP link to Uzbekistan) round trip timeouts and such.

- Enabled MAC address reporting when using the Windows version
  of Nmap.  Thanks to Andy Lutomirski (luto(a)stanford.edu) for
  writing and sending the patch.

- Workaround crippled raw sockets on Microsoft Windows XP SP2 scans.
  I applied a patch by Andy Lutomirski (luto(a)stanford.edu) which
  causes Nmap to default to winpcap sends instead.  The winpcap send
  functionality was already there for versions of Windows such as NT and
  Win98 that never supported Raw Sockets in the first place.

- Changed how Nmap sends Arp requests on Windows to use the iphlpapi
  SendARP() function rather than creating it raw and reading the
  response from the Windows ARP cache.  This works around a
  (reasonable) feature of Windows Firewall which ignored such
  unsolicited responses.  The firewall is turned on by default as of
  Windows XP SP2.  This change was implemented by Dana Epp
  (dana(a)vulscan.com).

- Fixed some Windows portability issues discovered by Gisle Vanem
  (giva(a)bgnett.no).

- Upgraded libpcap from version 0.7.2 to 0.8.3.  This was an attempt
  to fix an annoying bug, which I then found was actually in my code
  rather than libpcap :).

- Removed Ident scan (-I).  It was rarely useful, and the
  implementation would have to be rewritten for the new ultra_scan()
  system.  If there is significant demand, perhaps I'll put it back in
  sometime.

- Documented the --osscan_limit option, which saves time by skipping
  OS detection if at least one open and one closed port are not found on
  the remote hosts.  OS detection is much less reliable against such
  hosts anyway, and skipping it can save some time.

- Updated nmapfe.desktop file to provide better NmapFE desktop support
  under Fedora Core and other systems.  Thanks to Mephisto
  (mephisto(a)mephisto.ma.cx) for sending the patch.

- Further nmapfe.desktop changes to better fit the freedesktop
  standard.  The patch came from Murphy (m3rf(a)swimmingnoodle.com).

- Fixed capitalization (with a perl script) of many over-capitalized
  vendor names in nmap-mac-prefixes.

- Ensured that MAC address vendor names are always escaped in XML
  output if they contain illegal characters (particularly '&').  Thanks
  to Matthieu Verbert (mve(a)zurich.ibm.com) for the report and a patch.

- Changed xmloutputversion in XML output from 1.0 to 1.01 to note that
  there was a slight change (which was actually the MAC stuff in 3.55).
  Thanks to Lionel CONS (lionel.cons(a)cern.ch) for the suggestion.

- Many Windows portability fix and bug fixes, thanks to patch from
  Gisle Vanem (giva(a)bgnett.no).  With these changes, he was able to
  compile Nmap on Windows using MingW + gcc 3.4 C++ rather than MS
  Visual Studio.

- Removed (addport) tags from XML output.  They used to provide open
  ports as they were discovered, but don't work now that the port
  scanners scan many hosts at once.  They did not specify an IP
  address.  Of course the appropriate (port) tags are still printed
  once scanning of a target is complete.

- Configure script now detects GNU/k*BSD systems (whatever those are),
  thanks to patch from Robert Millan (rmh@debian.org)

- Fixed various crashes and assertion failures related to the new
  ultra_scan() system, that were found by Arturo "Buanzo" Busleiman
  (buanzo(a)buanzo.com.ar), Eric (catastrophe.net), and Bill Petersen
  (bill.petersen(a)alcatel.com).

- Fixed some minor memory leaks relating to ping and list scanning as
  well as the Nmap output table.  These were found with valgrind (
  http://valgrind.kde.org/ ).

- Provide limited --packet_trace support for TCP connect() (-sT)
  scans.

- Fixed compilation on certain Solaris machines thanks to a patch by
  Tom Duffy (tduffy(a)sun.com)

- Fixed some warnings that crop up when compiling nbase C files with a
  C++ compiler.  Thanks to Gisle Vanem (giva(a)bgnett.no) for sending
  the patch.

- Tweaked the License blurb on source files and in the man page.  It
  clarifies some issues and includes a new GPL exception that
  explicitly allows linking with the OpenSSL library.  Some people
  believe that the GPL and OpenSSL licenses are incompatable without
  this special exception.

- Fixed some serious runtime portability issues on *BSD systems.
  Thanks to Eric (catastrophe.net) for reporting the problem.

- Changed the argument parser to better detect bogus arguments to the
  -iR option.

- Removed a spurious warning message relating to the Windows ARP cache
  being empty.  Patch by Gisle Vanem (giva(a)bgnett.no).

- Removed some C++-style line comments (//) from nbase, because some C
  compilers (particularly on Solaris) barf on those.  Problem reported
  by Raju Alluri <Raju.Alluri(a)Sun.COM>

Files:
RevisionActionfile
1.36modifypkgsrc/net/nmap/Makefile
1.18modifypkgsrc/net/nmap/distinfo
1.24modifypkgsrc/net/nmapfe/Makefile