1
0
mirror of https://github.com/nmap/nmap.git synced 2026-01-18 20:29:02 +00:00
Commit Graph

10148 Commits

Author SHA1 Message Date
dmiller
1b71f75aad Spelling fixes for Lua files
Mostly in documentation/comments, but a couple code bugs were caught,
including a call to stdnse.pirnt_debug and a mis-declared variable.
2014-02-19 04:15:46 +00:00
dmiller
54fa265f5c Correct Namp -> Nmap throughout. 2014-02-19 04:15:21 +00:00
dmiller
1c0c090ace Refactor some Lua string concatenations.
Using this regular expression, '\(\w*\)\s*=\s*\1\s*\.\.', found and
replaced many string concatenation-reassignments. These can cause
performance issues, since a new string gets allocated for each
reassignment. In many cases, the replacement is simply a single string,
wrapped across lines with the '\z' escape, which consumes a newline and
whitespace following it. In other cases, a table is used to hold the
substrings until the final string is built with a single table.concat
operation (same technique used in stdnse.strbuf).

Also, some string-building loops of this form:

s = ""
for i = 1, 100, 1 do
  s = s .. "\0"
end

were replaced with this much faster and cleaner version:

s = string.rep("\0", 100)
2014-02-18 18:10:23 +00:00
fyodor
74ebf1c892 remove an orphan parameter from fatal() call. Problem noted by Gisle Vanem 2014-02-14 06:17:53 +00:00
dmiller
ad2c9874b3 NSE structured output for ssh-hostkey when checking known_hosts 2014-02-13 20:36:42 +00:00
dmiller
748b2d0df4 Update mysql-info to use mysql.lua
Also added structured output and support for more capabilities.
2014-02-13 18:46:19 +00:00
dmiller
ac5a89a8e1 Remove unused NSE library requires
for lib in nselib/*.lua*; do l=${lib#*/}; l=${l%.lua*}; find . -name \
  \*.lua -o -name \*.nse | xargs grep -l "require .$l\>" | xargs grep \
  -c "\<$l\." | grep ':0$' | awk -F: '{print "'$l'", $1}'; done

Did not remove calls to stdnse.silent_require since these can be used to
abort script execution if OpenSSL is not included, even if the script
does not directly call openssl.* (perhaps it uses comm.tryssl instead,
for instance).

Also did not remove require "strict", since that library is special and
modifies the environment.
2014-02-13 16:39:17 +00:00
dmiller
4c3b6cb32f Make http-slowloris use the Nmap user agent
This can now be changed with --script-args http.useragent=X
2014-02-13 16:39:11 +00:00
dmiller
a084340b6d Remove useless calls to string.format
stdnse.print_debug accepts a format string and arguments, making
string.format redundant in calls of this form:

stdnse.print_debug(1, string.format("%s: error", SCRIPT_NAME))
stdnse.print_debug(("length %d"):format(#tab))

These can be rewritten as:

stdnse.print_debug(1, "%s: error", SCRIPT_NAME)
stdnse.print_debug("length %d", #tab)
2014-02-13 15:47:41 +00:00
dmiller
b73c3aa60f Wrap long lines in NSE (>200 columns)
Mostly in documentation (the description field, for instance), but also
some long literal strings. Lua 5.2 introduces a string escape, "\z",
which escapes any amount of subsequent whitespace, including newlines.
This can be used to wrap string literals without upsetting indentation.
http://www.lua.org/manual/5.2/manual.html#3.1
2014-02-13 15:47:35 +00:00
dmiller
c9714990c7 Remove trailing whitespace from C/C++ files
https://secwiki.org/w/Nmap/Code_Standards
2014-02-12 20:25:51 +00:00
dmiller
2896c21989 Convert some file encodings from ISO-8859-2 to UTF-8
https://secwiki.org/w/Nmap/Code_Standards
2014-02-12 19:49:43 +00:00
henri
c9fe124e3d Moved variable definitions to the beginning of the block 2014-02-12 19:09:44 +00:00
dmiller
d67464dda2 -sn -v --open will now hide down hosts
http://seclists.org/nmap-dev/2014/q1/158
2014-02-12 18:47:40 +00:00
dmiller
6a98f70197 More DNS TCP support from John Bond
http://seclists.org/nmap-dev/2014/q1/154
2014-02-12 17:08:40 +00:00
d33tah
9365d50cad Fix coding style. 2014-02-12 09:50:27 +00:00
d33tah
b53187bad7 Apply a patch related to MSVC, reported by Gisle Vanem: http://seclists.org/nmap-dev/2014/q1/161 2014-02-12 09:49:39 +00:00
dmiller
298c42d3b4 Update the usage examples in match.lua
The example uses of nmap.receive_buf() were missing the second
parameter, keeppattern. Also referenced the match library from
nmap.receive_buf's NSEdoc to avoid reimplementations of buffered
sockets.
2014-02-10 19:39:09 +00:00
dmiller
4e7e7c04f0 Factor out some clutter in dnsbl.lua
The constructor for DNS blacklist service objects was identical in every
case. Factoring it out will reduce errors and complexity.
2014-02-10 19:39:07 +00:00
dmiller
4ea4977a37 Replace "buffered socket" classes with socket.receive_buf()
The match library has a helpful function for doing exactly this, with
less copy-and-pasted code:
http://nmap.org/nsedoc/lib/match.html#numbytes
2014-02-10 17:27:09 +00:00
henri
21b7e3818d [Ncat] Added support for socks5 and corresponding regression tests.
[Marek Lucaszuk, Petr Stodulka]
2014-02-09 14:10:04 +00:00
dmiller
a95788c783 [NSE] New script http-ntlm-info from Justin Cacak
http://seclists.org/nmap-dev/2014/q1/129
2014-02-07 18:24:17 +00:00
dmiller
bf26986685 Patch from Paul AMAR to fix http-vuln-zimbra-lfi
http://seclists.org/nmap-dev/2014/q1/130
2014-02-07 15:54:12 +00:00
dmiller
fb67a6717e Re-indent some libs and scripts, change 4 to 2-space indent
Mostly found with:

    for i in nselib/*.lua scripts/*.nse; do
      echo $(perl -lne 'BEGIN{$a=$p=0}next unless $_;/^(\s*)/;' \
        -e '$l=length$1;next if$l==$p;$a+=(abs($l-$p)-$a)/$.;' \
        -e '$p=$l;END{print$a}' $i) $i
    done | sort -nr

And indented with: https://gist.github.com/bonsaiviking/8845871

whois-ip.nse was particularly mangled (probably my fault due to using
vim's built-in indentation script, but it could be structured better)
2014-02-06 23:25:28 +00:00
dmiller
96c1a4f46b Another reindent pass on smb.lua, this time fully automated
Using Vim and this indent script:
https://gist.github.com/bonsaiviking/8845871
2014-02-06 15:53:34 +00:00
dmiller
a56f73effb Add NSEdoc to formulas.lua 2014-02-05 19:02:31 +00:00
dmiller
e5fc094635 Add some NSEdoc for smbauth.get_host_info_from_security_blob 2014-02-05 18:30:57 +00:00
dmiller
7dd47ec3a3 Re-indent the Lua files in nselib/data/
https://secwiki.org/w/Nmap/Code_Standards
2014-02-05 17:58:36 +00:00
dmiller
69e343f0aa Reindent the last of the NSE libraries.
https://secwiki.org/w/Nmap/Code_Standards
2014-02-04 19:47:26 +00:00
henri
d5746993e2 Define nsi_delete() notify modes as enums.
These values aren't flags that can be ORed.
2014-02-03 20:53:09 +00:00
dmiller
961ea25225 Re-indent some NSE libraries.
https://secwiki.org/w/Nmap/Code_Standards
2014-02-03 19:47:34 +00:00
dmiller
63db1bfd12 Replace inline tabs with spaces.
Left some in the @output section, since libraries are apparently
emitting tab-separated tables (mysql or mssql)

https://secwiki.org/w/Nmap/Code_Standards
2014-02-03 16:49:26 +00:00
dmiller
31a2c432e1 Final re-indent for scripts. 2014-02-02 15:33:39 +00:00
dmiller
d309fecd12 Re-indent some more scripts. Whitespace-only commit
https://secwiki.org/w/Nmap/Code_Standards
2014-02-02 15:33:29 +00:00
dmiller
c7d4f2ec96 Re-indent some scripts. Whitespace-only commit
https://secwiki.org/w/Nmap/Code_Standards
2014-01-31 21:01:26 +00:00
dmiller
298be5bfaa Re-indent some scripts. Whitespace-only commit
https://secwiki.org/w/Nmap/Code_Standards
2014-01-31 17:36:09 +00:00
dmiller
bcf991c128 Add missing require in redis-info 2014-01-31 17:36:02 +00:00
dmiller
078aa688c9 Reindent some scripts. Whitespace only.
https://secwiki.org/w/Nmap/Code_Standards
2014-01-31 16:37:27 +00:00
dmiller
32936167c2 Fix dns-fuzz portrule (was defaulting to tcp) 2014-01-31 15:32:23 +00:00
dmiller
b4994505c3 Add TCP support to dns-fuzz. Also suggest -sU in usage 2014-01-31 15:28:54 +00:00
dmiller
972d799143 Add TCP support to dns.lua
Slightly modified from patch from John Bond:
http://seclists.org/nmap-dev/2014/q1/118
2014-01-31 15:14:31 +00:00
dmiller
d36c08dcf5 Re-indent some scripts. Whitespace-only commit
https://secwiki.org/w/Nmap/Code_Standards
2014-01-31 13:02:29 +00:00
henri
64fb5b3482 Added safe fd_set operations.
Only FD_SET and FD_CLR were available. Added a FD_ISSET equivalent.
Implemented them as static inline instead of macros for consistency.

These functions abort() if the FD number is higher than FD_SETSIZE
(except on windows where no check is performed).
2014-01-30 19:02:57 +00:00
henri
bf872bf113 Extract and publish more information about redis.
* Get OS
  * Get redis version (and set it to port.version)
  * Get architecture (and set it to port.extraversion)
  * Make and set an application CPE
2014-01-30 18:35:25 +00:00
henri
1cb2aba30f Updated the redis scripts portrules. 2014-01-30 18:35:21 +00:00
henri
4f5be9bfab Designate the redis service as "redis".
This makes it consistent with the GET probe.
2014-01-30 18:35:13 +00:00
dmiller
4eaa21e7cb Integrate David's ssl-enum-ciphers improvements
From this thread: http://seclists.org/nmap-dev/2014/q1/105

* Extensions now better supported in tls.lua
* ssl-enum-ciphers sends all EC options to ensure servers reply with
  supported EC suites
* tls.lua supports multiple messages of a single type within 1 record
* tls.record_buffer will read an entire TLS record into a buffer
* ssl-date and tls-nextprotoneg updated to use tls.record_buffer
2014-01-30 18:12:14 +00:00
dmiller
83fd814a2c Really fix nsock's pcap configuration
This wasn't using Nmap's included libpcap if no options were specified,
instead compiling nsock without pcap support if no libpcap could be
found (which breaks Nmap)
2014-01-30 03:40:26 +00:00
dmiller
cd7df91ce0 Fix a bug introduced in r32678
string.gsub returns 2 values, the new string and the number of
replacements made. It also has a 4th argument, the number of
replacements to make. So when you use the return value of gsub as the
3rd argument, and no replacements were made, it instructs the next call
to not make any replacements. Thanks to Ron Bowes for reporting this
issue.
2014-01-29 13:24:30 +00:00
david
d6288c5280 Escape '%' in arguments to Thread:d.
A user reported this crash when scanning a target whose name contained
the '%' character:

NSE: Script Engine Scan Aborted.
An error was thrown by the engine: nse_main.lua:322: invalid capture index
stack traceback:
	[C]: in function 'gsub'
	nse_main.lua:322: in function 'd'
	nse_main.lua:377: in function 'start'
	nse_main.lua:912: in function 'run'
	nse_main.lua:1390: in function <nse_main.lua:1293>
	[C]: in ?

I'm not sure how a name with '%' got resolved, but I was able to
reproduce the crash by adding this line to /etc/hosts:
	127.0.0.1	a%40b
and then running
	./nmap --script=banner a%40b -d --top-ports 5

The gsub function recognizes "%d", where d is a digit, as a capture
index. The constructed string is then passed to print_debug, which is
like printf. Therefore we escape every occurrence of "%" twice, to get
"%%%%".
2014-01-27 22:56:29 +00:00