1
0
mirror of https://github.com/nmap/nmap.git synced 2025-12-19 14:09:02 +00:00
Commit Graph

4399 Commits

Author SHA1 Message Date
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
d109ff13d8 Consider an address directly connected if the gateway of its matching routing
table is exactly the same as the address. This is how it appears to work on Mac
OS X. Now there are three ways for an address to be directly connected:

1. Gateway address is 0.0.0.0 (Linux).
2. Gateway address is the same as local interface address (Windows).
3. Gateway address is the same as the destination address (Mac OS X).
2010-03-12 00:45:11 +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
0f048bb0f4 Compare addresses if netmasks are equal in the qsort comparison function
for routes, to ensure that routes keep their same relative order. This
idea is from http://www.gnu.org/s/libc/manual/html_node/Array-Sort-Function.html.
2010-03-11 18:03:01 +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
53f64470e4 Add references and index entries for the old names of -sn and -Pn to
refguide.xml.
2010-03-11 01:43:06 +00:00
david
48654df805 Switch to -sn and -Pn as the new preferred synonyms for -sP and -P0.
This establishes a more regular syntax for some options that disable
phases of a scan:
	-n  no reverse DNS
	-Pn no host discovery
	-sn no port scan
Also, the -sP was possibly misleading because the 'P' suggests "ping
scan," when you can now do more than just pinging when you disable port
scanning. For example, -sC -sn and -sn -Pn --traceroute make sense.
2010-03-11 01:16:06 +00:00
david
9a31e8b830 Change PacketTrace::traceArp not to take the Ethernet header. It wasn't
being used, and this leaves the door open for non-Ethernet encapsulation
of ARP packets, in particular the Linux "cooked" socket encapsulation
that can in some cases be used by libpcap.
2010-03-10 16:58:24 +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
fyodor
c538d86a83 Latest task updates after chat w/David 2010-03-09 23:08:54 +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
fyodor
1bc598fb25 add GSoC 2010 tasks 2010-03-09 20:19:35 +00:00
david
d3150aa5a3 Minor updates to smtp-open-relay.nse from Duarte Silva. 2010-03-09 20:17:55 +00:00
ron
82fe004f3b Added matchline for the Arucer backdoor. The Arucer backdoor was found to be packaged with drivers for the Energizer USB recharger: http://www.kb.cert.org/vuls/id/154421 2010-03-08 18:22:50 +00:00
david
dd68307fe8 Use capital letters in package names. The Snow Leopard PackageMaker seems to
require that. Without it, I get the warnings

    Warning: Package "Nmap" is not assigned to a choice.
    Warning: Package "Zenmap" is not assigned to a choice.
    Warning: Package "Ncat" is not assigned to a choice.
    Warning: Package "Ndiff" is not assigned to a choice.
    Warning: Package "Nping" is not assigned to a choice.
    Warning: Choice "Nmap" has no subchoices and no package refs.
    Warning: Choice "Zenmap" has no subchoices and no package refs.
    Warning: Choice "Ncat" has no subchoices and no package refs.
    Warning: Choice "Ndiff" has no subchoices and no package refs.
    Warning: Choice "Nping" has no subchoices and no package refs.

In the built installer, all the choices said "Zero KB" and the "Continue"
button was not clickable.
2010-03-07 05:36:26 +00:00
david
d4f8da67ea Change to snmp-interfaces from Thomas Buchanan: change the scope of a
constant table and adjust verbose/non-verbose output.
2010-03-07 04:07:11 +00:00
david
020d816537 Change "vladz" to "jlanthea" by his request. 2010-03-06 18:59:03 +00:00
kris
c2110ee6bd script-updatedb 2010-03-06 18:40:35 +00:00
david
34bca6a73b Fix the printing of the warning
Warning: --min-parallelism and --max-parallelism are ignored with --scan-delay.
It was checking o.min_parallelism against -1, when its default value is
0.
2010-03-06 17:48:56 +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
david
82ead9256e Make some output changes suggested by greengreat. Mention the S: SCTP
port specifier. Mention -PY in the ping probe error output. Use the word
"protocol" instead of "port" in the error output for -PO.
2010-03-05 19:54:45 +00:00
david
9fee7968f9 Make a slight change to the order in which ping probes are sent to match
research. -PY should come after, not before -PU. -PM should be the last
one.
2010-03-05 19:45:58 +00:00
fyodor
45cb43151c update version numbers of examples in HACKING file 2010-03-05 02:33:07 +00:00
fyodor
330d2544e2 Minor updates throughout the file 2010-03-05 02:27:28 +00:00
kris
fafcef637f simple comment and whitespace fix 2010-03-04 21:56:29 +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
2828af7ca7 Add ldap-search.nse 2010-03-04 19:10:48 +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
a2798e0120 Add some more script review to TODO. 2010-03-03 22:44:46 +00:00
david
6e1daddd55 Break out the code in smb-psexec.nse that looks for nmap_service.exe, so
an error message can be displayed in verbose mode, without requiring
debugging.
2010-03-03 22:27:51 +00:00
fyodor
7b3ae6c7d3 some work finished 2010-03-03 21:55:51 +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
1906c0febd Don't print out a blank line in http-methods.nse when there's nothing to
report.
2010-03-02 22:44:10 +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
ce18e4bb54 Make http-methods.nse merge the contents of the Allow and Public
headers, as suggested by Patrik Karlsson.
2010-03-02 20:27:08 +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
5e8f88194d Use socket_errno() instead of errno in NSE raw socket code, to get
Windows errors.
2010-03-02 18:29:22 +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
8112f5d03f Add some further improvements to smtp-open-relay.nse from Duarte Silva,
checking for EOF and TIMEOUT errors.
2010-03-01 23:05:22 +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
b3edd3d4c0 Make json.lua string escaping/unescaping a little nicer. Derive both
forward and reverse escapes from a single table.
2010-02-28 22:05:04 +00:00
david
15915eb793 Make Json:parseValue handle any kind of value, without taking a
parameter to control whether only top-level structures are allowed.
Instead, move the special top-level code out to the Json:parseStart
function.
2010-02-28 21:31:55 +00:00
david
dfe10a6866 Remove the call to test() at the end of json.lua, otherwise the test
gets run (and output printed) whenever the module is loaded.
2010-02-28 21:26:22 +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
2e99f41bfd Remove VC++ pragma to disable C4244 warning. It looks like the code originally producing this warning was faulty and was fixed long ago. No other files use this pragma, and no warning is printed without it. 2010-02-27 21:00:23 +00:00