1
0
mirror of https://github.com/nmap/nmap.git synced 2026-02-13 17:06:34 +00:00
Commit Graph

855 Commits

Author SHA1 Message Date
patrik
a646a2ec60 o [NSE] Changed and documented the name of the maxfiles argument used
to limit output in the nfs-dirlist script.
2010-03-28 09:26:58 +00:00
david
8bc5135d93 When iterating over the interface list on systems that have sa_len, only
allow the sa_len to increase the size of the current structure, not
decrease it below sizeof(struct ifreq). Doing it this way makes it work
on NetBSD. This technique more or less matches that used in Unix Network
Programming, 3rd Edition, section 17.6. The old implementation was
likely incorrect, though it happened to work on FreeBSD.
2010-03-26 22:11:30 +00:00
david
a0b011fa84 Increase the size of passwords.lst from 201 to 5000 entries. 2010-03-25 02:57:56 +00:00
david
15dbb78266 o [NSE] The unpwdb library now has a default time limit on the
usernames and passwords iterators. This will prevent brute force
  scripts from running for a long time when a service is slow. These
  new script arguments control the limits:
    unpwdb.userlimit  Limit on number of usernames.
    unpwdb.passlimit  Limit on number of passwords.
    unpwdb.timelimit  Time limit in seconds.
  Pass 0 for any of these limits to disable it. [David]
2010-03-24 17:36:41 +00:00
david
2684b78ce5 In traceroute, separate the directly connected targets from the rest
before starting. There is a special function that does a trace of
directly connected targets without sending any packets, just by filling
in one hop directly to the target. The traceroute code was only checking
whether the first target in the group was directly connected, and if it
was, it assumed all of them were. Now it filters the list into two and
calls traceroute_direct on one and traceroute_remote on the other.
Fyodor discovered this problem today.
2010-03-23 23:30:36 +00:00
kris
ef61857d6c Mention the use of the NSE raw IP functionality in the qscan.nse log entry
since it's still fresh
2010-03-22 12:32:59 +00:00
kris
918a1bb909 o [NSE] Added the qscan script to repeatedly probe ports on a host to
gather round-trip times for each port.  The script then uses these
  times to group together ports with statistically equivalent RTTs.
  Ports in different groups could be the result of things such as port
  forwarding to hosts behind a NAT.  This is based on work by Doug
  Hoyte. [Kris]
2010-03-21 20:05:31 +00:00
patrik
dd9a237fe2 o [NSE] Added RPC library and three new NFS scripts. Modified the rpcinfo and
nfs-showmount scripts to use the new library. The new scripts are:
  - nfs-acls shows the owner and directory mode of NFS exports
  - nfs-dirlist lists the contents of NFS exports
  - nfs-statfs shows file system statistics for NFS exports
  [Patrik]
2010-03-21 17:56:17 +00:00
kris
7c384d480f o Fixed the Idle Scan (-sI) so that scanning multiple hosts doesn't
retest the zombie proxy and reinitialize all of the associated data
  at the beginning of each run. [Kris]

The underlying code checking for this and for changing proxies goes all the
way back to r1486 (2002) and presumably before, but lastproxy was never filled
in and so was nonfunctional.
2010-03-18 06:21:05 +00:00
david
b7b14216e2 Add jdwp-version.nse from Michael Schierl. 2010-03-18 00:08:30 +00:00
david
68f3bca589 Add new packaging of x64 WinPcap drivers from Rob Nicholls. He observed that
64-bit applications wouldn't work using Nmap's installed WinPcap. This fixes
that.
2010-03-17 05:19:08 +00:00
david
91b2aa680b Regenerate passwords.lst from the combination of these databases:
faithwriters, hotmail, myspace, phpbb, and rockyou. I kept the output at
200 lines for now until we have more comprehensive limits on the unpwdb
module.

The only password that didn't come straight out of the databases was the
empty password. I added it manually at the top. The previous version of
passwords.lst had it too.
2010-03-17 00:25:30 +00:00
david
7d1aa1a634 Add to CHANGELOG:
o [Ncat] The HTTP proxy server now accepts client connections over
  SSL. That means connections to the proxy can be encrypted and
  authenticated. We haven't found any HTTP clients that directly
  support SSL connections to proxies, but you can use Ncat as a tunnel
  to an SSL-supporting Ncat proxy. This new feature was implemented by
  Markus Klinik.
2010-03-15 21:24:35 +00:00
david
2f00ea5cb7 Add smtp-enum-users.nse from Duarte Silva. 2010-03-13 04:03:26 +00:00
kris
599bb361a4 Update ip_is_reserved(): I decided to go through the existing address checks
to verify their correctness and to check more than just the table in
ipv4-address-space.  Beyond comment changes and some code movement:

* 198.51.100.0/24 and 203.0.113.0/24 are reserved by RFC5737 (Jan 2010)
* Fix 198.18.0.0/15, which was implemented wrongly.  This goes back a while
and was handled somewhat like 198.18.0.0/18.
2010-03-13 01:31:11 +00:00
david
bc132b963c Make read_arp_reply_pcap work with a libpcap datalink type of
DLT_LINUX_SLL, as well as the DLT_EN10MB that was formerly supported.
This type is used on some interfaces where Linux doesn't reliably retain
the link-layer header, and when capturing on the "any" device. On such
interfaces, you would get the error

read_arp_reply_pcap called on interfaces that is datatype 113 rather than DLT_EN10MB (1)

For more on this datalink type, see

pcap-linktype(7)
http://wiki.wireshark.org/SLL

I tested this by hacking scan_engine.cc to use the "any" device:

--- scan_engine.cc      (revision 16972)
+++ scan_engine.cc      (working copy)
@@ -4882,7 +4882,7 @@
     }
   }

-  USI->pd = my_pcap_open_live(Targets[0]->deviceName(), 100,  (o.spoofsource)? 1 : 0, pcap_selectable_fd_valid()? 200 : 2);
+  USI->pd = my_pcap_open_live("any" /*Targets[0]->deviceName()*/, 100,  (o.spoofsource)? 1 : 0, pcap_selectable_fd_valid()? 200 : 2);
   if (USI->ping_scan_arp){
     /* Some OSs including Windows 7 and Solaris 10 have been seen to send their
        ARP replies to the broadcast address, not to the (unicast) address that

I had to use a newer version of libpcap from git. The 1.0.0 that we ship
has a bug that keeps "any" from working. You would get SIOCGIFHWADDR: No
such device.
2010-03-12 05:23:50 +00:00
david
19bd7de82c Fix the CHANGELOG notice for the fix for --iflist netmask display. Kris
pointed out that masks /25-/31 were wrong, but not /0.
2010-03-12 00:40:11 +00:00
david
02b1a00bf9 Change the way route_dst works to allow static routes to override
interface addresses and netmasks.

Before, route_dst worked like this:
  1) Check destination address against all interfaces, with special-case
     handling for local addresses.
  2) Check destination address against routing table.

Now it works like this:
  1) Check destination address against local addresses.
  2) Check destination address against routing table.
  3) Check destination address against all interfaces.

This allows a routing table entry to override an interface, for example
in this configuration:

  ************************INTERFACES************************
  DEV  (SHORT) IP/MASK         TYPE     UP MAC
  eth0 (eth0)  192.168.0.21/24 ethernet up 00:00:00:00:00:00

  **************************ROUTES**************************
  DST/MASK       DEV  GATEWAY
  192.168.0.3/32 eth0 192.168.0.1
  192.168.0.0/24 eth0

192.168.0.3 will not be considered directly connected, but will have its
traffic routed through 192.168.0.1.

The logic for determining when an address is directly connected has
changed. Instead of considering an address directly connected whenever
it matches an interface netmask, we consider it so when the gateway
address is 0.0.0.0 or when the gateway address is exactly equal to the
interface address. The proper way to do this would be to look at the "G"
flag from the routing table, but libdnet doesn't retain that.
2010-03-11 20:04:21 +00:00
david
e976c2c3b9 Don't call htonl on a netmask before displaying it in --iflist; it's
already in network byte order. This bug made any mask that wasn't /32
appear as /0.
2010-03-11 17:46:27 +00:00
david
934868f3ce Take into account the current SSL desire when decrementing socket
counts. Brandon reported this assertion failure when running http-enum:

nmap: nsock_core.c:199: socket_count_write_dec: Assertion `(iod->writesd_count) > 0' failed.

The problem was that handle_write_result always assumed that if a call
to SSL_write failed with SSL_ERROR_WANT_READ or SSL_ERROR_WANT_WRITE,
that it must have been invoked because the socket was writable (and
hence the write count should be decremented). Because of how
non-blocking sockets work in OpenSSL, it's possible that we called
handle_write_result because a socket because *readable* and thus we
should decrement the read count, not the write count.
2010-03-10 01:30:52 +00:00
patrik
16e0a8449f o Added the function bignum_add to the nse_openssl library to support BIGNUM
addition [Patrik]
2010-03-09 20:54:01 +00:00
patrik
2a44a941af o [NSE] Added checks for missing OpenSSL to MySQL scripts and library [Patrik] 2010-03-09 20:27:48 +00:00
david
020d816537 Change "vladz" to "jlanthea" by his request. 2010-03-06 18:59:03 +00:00
david
39a80f1987 Make --resume work with the new "Nmap scan report " strings. It also
works when there was no reverse DNS resolution, which didn't work with
the old format. This patch is from vladz.
http://seclists.org/nmap-dev/2010/q1/770
2010-03-05 23:46:42 +00:00
david
112f012368 Add the snmp-interfaces script from Thomas Buchanan. 2010-03-05 20:19:04 +00:00
patrik
118e029b0e o [NSE] Added a new library for PostgreSQL and the script pgsql-brute that uses
it to guess credentials. [Patrik]
2010-03-04 19:18:55 +00:00
patrik
a439772d2a o [NSE] Added the script ldap-search which queries a LDAP directory
for either all or a number of pre-defined object types. [Patrik]
2010-03-04 19:07:56 +00:00
david
eb15f3ae27 Update vcredist_x86.exe to version 9.0.30729.4148. Axel Pettinger reported that
the previous version, 9.0.30729.17, causes a Windows Update when installed on
Windows 7 because the old version was the subject of security advisory
MS09-035. See http://seclists.org/nmap-dev/2010/q1/528 for lots of links and
details.

The file I downloaded was from

"Microsoft Visual C++ 2008 Service Pack 1 Redistributable Package ATL Security Update"
http://www.microsoft.com/downloads/details.aspx?familyid=2051a0c1-c9b5-4b0a-a8f5-770a549fd78c&displaylang=en

Specifically,

http://download.microsoft.com/download/9/7/7/977B481A-7BA6-4E30-AC40-ED51EB2028F2/vcredist_x86.exe
2010-03-03 00:25:28 +00:00
david
a90ba28583 Have http-methods.nse highlight "interesting" methods as "potentially
risky" methods. Provide a link to the NSEDoc and to the OWASP page on
methods for more information.
2010-03-02 22:34:11 +00:00
david
a39c302fcc Re-block the socket before sending in subprocess_thread_func. The
WSAEventSelect call we make to find out when the socket is ready for reading,
also makes it non-blocking for the purpose of writing. A fast-writing process
could cause a WSAEWOULDBLOCK error. This was reported by David Millis.
2010-03-02 19:24:32 +00:00
david
9fb01bdb3b Add to CHANGELOG:
o [Ncat] Fixed a bug that prevented detecting EOF from stdin on
  Windows. This was reported by Adrian Crenshaw and Andy Zwirko.
  [David]
2010-03-02 06:55:15 +00:00
kris
cb9c2c9a03 Remove duplicate changelog entry, left over from v5.21 rearrange 2010-03-02 01:18:52 +00:00
david
9232479ee7 o [Nsock] WSAEACCES was added to the list of known connect error
codes. This error can happen on Windows when a port is blocked by
  Windows Firewall. Thanks to taemun for reporting this and
  investigating.
2010-03-01 22:39:39 +00:00
david
e89094261d Add json.lua, couchdb-databases.nse, and couchdb-stats.nse, all by
Martin Holst Swende.
2010-02-28 21:25:01 +00:00
david
d9fd52c194 o Fixed the parsing of libdnet DLPI interface names that contain more
than one string of digits. Joe Dietz reported that an interface with
  the name e1000g0 was causing the error message
    Warning: Unable to open interface e1000g0 -- skipping it.
  on Solaris 9. [David]
2010-02-28 19:45:39 +00:00
kris
a42ea72a97 Merge through r16884 from /nmap-exp/kris/nse-rawip plus the following changelog
entries:

o [NSE] Raw packet sending at the IP layer is now supported, in addition to
  the Ethernet sending functionality.  Packets to send start with an IPv4
  header and can be sent to arbitrary hosts. [Kris]

o [NSE] Added the ipidseq script to classify a host's IP ID sequence numbers
  in the same way Nmap does.  This can be used to test hosts' suitability for
  Nmap's Idle Scan (-sI), i.e. check if a host is an idle zombie.  This is
  the first script to use the new raw IP sending functionality in NSE. [Kris]

o [NSE] Added the function nmap.is_privileged() to tell a script if, as far
  as Nmap's concerned, it can do privileged operations.  For instance, this
  can be used to see if a script should be able to open a raw socket or
  Ethernet interface. [Kris]

o [NSE] Added the function nmap.get_ports() to allow a script to iterate
  over a host's port tables matching a certain protocol and state. [Kris,
  Patrick]
2010-02-26 20:42:10 +00:00
david
480394756b Call CloseHandle on the hThread member of the PROCESS_INFORMATION structure we
get back from CreateProcess. We were already closing hProc but hThread has to
be closed too to avoid a handle leak. See the code example at
http://msdn.microsoft.com/en-us/library/ms682512(VS.85).aspx.
2010-02-26 01:57:05 +00:00
david
84a388aeb9 Give datafiles.lua the ability to parse nmap-mac-prefixes, and use it in
nbstat.nse to look up the MAC vendor string.
2010-02-26 00:27:30 +00:00
david
bf612ba7c9 o [NSE] Added the ssl-enum-ciphers script from Mak Kolybabi. This
script lists the ciphers and compressors supported by an SSL/TLS
  server.
2010-02-24 01:33:16 +00:00
david
77119bb4d8 Use the cached value of recv_fd when removing descriptors from the read
and broadcast lists when a connection is broken, instead of re-reading
the descriptor from the fdinfo struct. The problem was that there were
two calls to rm_fd, and the first one invalidated the data that the
struct pointer pointed to.

For some reason this didn't cause any problems in most situations. Mak
Kolybabi reported that it caused a segfault in
	ncat -l --ssl -k -v 5061 > /dev/null < /dev/zero
With SSL, new connections would try to read memory that was previously
freed, as descriptors were not being removed from the broadcast list as
they were removed from the read list.

You can see the error in these debug logs:

NCAT DEBUG: Closing connection.
NCAT DEBUG: Swapping fd[2] (4) with fd[3] (5)
NCAT DEBUG: Removed fd 4 from list, nfds 3, maxfd 5
NCAT DEBUG: Swapping fd[1] (5) with fd[1] (5)
NCAT DEBUG: Removed fd 5 from list, nfds 1, maxfd 4

The "Remove fd X" should have the same X in both lines.
2010-02-23 20:59:31 +00:00
david
a67be3d7d1 Take smtp-open-relay.nse out of {"demo"} and into {"discovery",
"intrusive", "external"} following some improvements by Duarte Silva.
2010-02-22 17:52:13 +00:00
patrik
42da3e0ba0 o [NSE] Added a new library for LDAP and two new scripts:
- ldap-brute uses the unpwdb library to guess credentials for LDAP
  - ldap-rootdse retrieves the LDAP root DSA-specific Entry (DSE)
2010-02-21 08:52:44 +00:00
david
9632670762 o The -v and -d options are now handled in the same way. The three
forms are equivalent:
    -v -v -v    -vvv    -v3
    -d -d -d    -ddd    -d3
  Formerly, the -ddd and -v3 forms didn't work. Mak Kolybabi submitted
  a patch.
2010-02-17 19:12:15 +00:00
david
6a2598772a Add to CHANGELOG:
o Nping, the packet generation program by Luis MartinGarcia, is now
  included in the Nmap distribution.
2010-02-17 01:59:05 +00:00
ron
1421838d94 Added http-vmware-path-vuln.nse, a script that checks for a path-traversal vulnerability in VMWare (CVE-2009-3733) 2010-02-16 14:42:10 +00:00
patrik
d2e54f0bf2 o [NSE] Added a new library for ASN.1 parsing and adapted the SNMP library to
make use of it. Added 5 scripts that use the new libraries:
  - snmp-netstat shows listening and connected sockets
  - snmp-processes shows process information including name, pid, path and 
    parameters
  - snmp-win32-services shows the names of running Windows services
  - snmp-win32-shares shows the names and path of Windows shares
  - snmp-win32-software shows a list of installed Windows software
  - snmp-win32-users shows a list of local Windows users
2010-02-16 09:15:38 +00:00
david
3f36981440 Qualify an assertion to allow zero-byte writes in Nsock. The assertion
checked that the internal buffer was not empty before a send; I changed
it to have an effect only when at least one byte has been written
already.

Formerly, zero-byte sends such as socket:send("") in NSE would crash
Nmap, for both UDP and TCP. I tested this change on Linux, and for UDP
it sends a zero-byte datagram, and for TCP it sends nothing at all.
2010-02-15 20:21:29 +00:00
patrik
cd0e6496c6 Added a service probe for Logitech SqueezeCenter command line interface 2010-02-15 18:59:29 +00:00
patrik
fe8074c836 Improved PostgreSQL match lines by matching the line of the error to a specific version. 2010-02-13 08:15:58 +00:00
david
3a11dafeaa o Added a mac_addr_next_hop member to the host tables used in NSE.
[Michael Pattrick, kx].
2010-02-13 01:48:59 +00:00