1
0
mirror of https://github.com/nmap/nmap.git synced 2026-02-02 19:49:11 +00:00
Commit Graph

316 Commits

Author SHA1 Message Date
david
19c2d93903 Merge from /nmap-exp/david/nselib-http. This is an overhaul of HTTP
parsing mostly. Response parsing is centralized, and fewer operations
are done on raw HTTP data.

The biggest user-visible change is that http.request goes back to
returning a parsed result table, not raw HTTP data. I believe this is
how the function worked in the past; it's what the NSEDoc for the
function says. The only thing that used http.request was citrixxml.lua,
and this commit alters it to match the new expectations.

The other change is that the http.pipeline function no longer accepts
the "raw" option. The only script that used that was sql-injection.nse,
and this commit modifies that script as well.
2010-01-13 02:53:13 +00:00
david
f5cae99a2a Check that nmap.registry.args exists before trying to access
nmap.registry.args["http.useragent"]. The args table doesn't exist
during --script-updatedb. The bug was found by Tom Sellers and fixed by
Jah.
2010-01-12 17:53:01 +00:00
david
2475306122 Update the favicon database from the latest dmoz scan. Add about 40 new
icons. Put the list in order. Correct some old entries.
2010-01-11 07:21:08 +00:00
david
12203a8ae1 Don't allow a cached response from a GET request to be returned for a
HEAD request. This makes it look like the response to the HEAD request
has a body. As a result, http-enum can wrongly surmise that HEAD
requests don't work when it hits a cache entry while testing HEAD.

# nmap --script=http-date,http-enum -PN -p 80 -d2
NSE: NSE Script Threads (2) running:
NSE: Final http cache size (373 bytes) of max size of 1000000
NSE: HTTP: Host returns proper 404 result.
NSE: Final http cache size (1905 bytes) of max size of 1000000
NSE: Finished 'http-date' (thread: 0x8535a40).
NSE: HTTP: Warning: Host returned data when performing HEAD.
NSE: Checking if a GET request is going to work out

After this change:

NSE: NSE Script Threads (2) running:
NSE: Final http cache size (373 bytes) of max size of 1000000
NSE: HTTP: Host returns proper 404 result.
NSE: Final http cache size (1905 bytes) of max size of 1000000
NSE: Finished 'http-date' (thread: 0x8e75b00).
NSE: Final http cache size (1905 bytes) of max size of 1000000
NSE: HTTP: Host supports HEAD.
2010-01-10 19:47:33 +00:00
batrick
62ed5336b4 Fixed typo in documentation that screwed up nsedoc. 2010-01-10 04:45:08 +00:00
batrick
e94da5d874 Use em/strong tags instead of <b>. 2010-01-10 03:18:05 +00:00
david
d38ef0da41 Change the header name from "Cookies" to "Cookie" in http.lua. "Cookies"
is incorrect; see RFC 2109 section 4.3.4.
2010-01-09 22:54:37 +00:00
david
d6f8e9edda Merge r16415:16416 from /nmap-exp/david/nselib-http. I meant to do those
commits here in the first place.
2010-01-08 01:13:24 +00:00
david
1b6c69387a Move the format_difftime function out of http-date.nse and into
stdnse.lua. It can be useful in other scripts.
2010-01-06 20:43:24 +00:00
ron
c4237f60b0 Updated smb-psexec to finally work on Windows XP, after countless months of it eating away at me. The issue turned out to be an innocuous field in the SMB header, 'process id', which is generally used for connection multiplexing. Apparently, not setting it causes a bug in Windows to surface (I assume it's a bug, anyways) that returns a weird failure code. I found this thanks to Kristof Boeynaems doing some research for me, and then me trying random things to make my packets look more like metasploit's. 2010-01-06 03:10:27 +00:00
david
671167227f Add the oracle-sid-brute script from Patrik Karlsson. 2009-12-28 17:35:46 +00:00
david
f2ae05968b Add the scripts
citrix-brute-xml
  citrix-enum-apps
  citrix-enum-apps-xml
  citrix-enum-servers
  citrix-enum-servers-xml
and the citrixxml modules, all by Patrik Karlsson.
2009-12-14 07:30:38 +00:00
david
304762b07d Remove a function I accidentally duplicated in snmp.lua (encodeLength).
Reverse some byte strings after constructing them instead of building
the arrays from the front.
2009-12-14 01:03:53 +00:00
david
3f7be738ad Allow encoding OID component greater than 127 in snmp.lua. Previously
the code just took each value mod 256 and stored it as a single byte.
The OID 1.3.1000.5 would encode as follows

tag len 1.3 1000%256  5
 06  03  2b       e8 05

What you're supposed to do is break each value into 7-bit chunks, and
set the high bit in every octet but the last. Now it is correctly
encoded as

tag len 1.3 1000  5
 06  04  2b 8768 05

The length also would not have been correct for lengths over 127, and
that is fixed also.
2009-12-14 00:55:05 +00:00
david
ee0fee26c0 Skip over a single 100 Continue response, if present, before parsing the
real response in http.lua. This patch is by Patrik Karlsson.
2009-12-13 22:52:08 +00:00
david
315e6ef9b0 Remove a debugging statement from http.lua. 2009-12-13 01:51:05 +00:00
david
5eca175a11 Don't encode a POST body and set the content-type
application/x-www-form-urlencoded if the body is a string. Only do it
when the body is a table, meaning we want to do a form submission.
2009-12-13 01:50:26 +00:00
fyodor
cccc1d5831 Adjust the example output for new format_output format 2009-11-22 08:34:15 +00:00
fyodor
48b37ff7d2 Change script output indenting from one space to two 2009-11-22 08:22:54 +00:00
ron
efcb11b1b0 Reduced the number of connections/traffic used by smb-enum-shares.nse by half. I was checking a random share to see if the right error is returned for every share, when it only actually had to be done once. 2009-11-20 17:00:55 +00:00
ron
422b5855e5 Update the output formatting to the style that Fyodor requested. Haven't updated the @output sections yet, just in case we decide to change this again. 2009-11-20 16:12:41 +00:00
ron
08da8db7f0 Importing changes from my branch. There are two major updates:
1) I wrote a function that formats output from scripts in a consistent way. Although we haven't really come to a concensus on how it should look yet, it's easy to change when we do. 
2) New script: smb-enum-groups.nse. Enumerate the local groups on a system and their membership.
2009-11-20 16:05:06 +00:00
batrick
2b3df5882f [NSE] Patch to add worker threads to NSE for scripts to use. Right
now a script is limited in parallelism to working on one socket at any
time. A script can now create a worker thread that will be capable of
doing work on sockets in parallel with the parent script. See [1] for
more information.

This patch also comes with condition variables that are similar to
POSIX condition variables. They are used in the same fashion as
NSE's mutexes (nmap.mutex).

[1] http://seclists.org/nmap-dev/2009/q4/294
2009-11-12 01:33:52 +00:00
batrick
8f3ecdbb8b Cleaned up documentation for mutexes. Also added note that NSE
only maintains a weak reference in the background.
2009-11-12 01:20:19 +00:00
david
5cc9d5249a In http.lua, add the port number to the value of the Host header field
when the number is not 80. See RFC 2616, section 14.23. This was
suggested by Tom Sellers.
2009-11-09 20:26:55 +00:00
ron
7d67b08e66 Merged in my changes from nmap-smb. The primary changes are:
* Updated the way authentication works on smb -- it's significantly cleaner now
* smb-enum-shares.nse gives significantly better output now (it checks if shares are writable)
* Added a script that checks if smbv2 is enabled on a server
* Added smb-psexec, a script for executing commands on a remote Windows server. I also included some default scripts, a compiled .exe to run everything, and a ton of documentation (in the form of NSEDoc)
* Added 'override' parameters to some of the functions in smb.lua, which lets the programmer override any field in an outgoing SMB packet without modifying smb.lua. 
* Lots of random code cleanups in the smb-* scripts/libraries
2009-11-08 21:31:06 +00:00
david
bef983abdd Make packet.in_cksum more efficient by not making lots of substring
copies.
2009-10-29 00:28:29 +00:00
david
9817ee470d Make packet.in_cksum work for data with an odd length. 2009-10-29 00:15:04 +00:00
david
a8821f3cf4 Add the NSE function nmap.bind, which sets the source address of a
socket.
2009-10-11 23:08:43 +00:00
batrick
afa84d2320 [NSE] Added the reconnect_ssl method for sockets. We sometimes need
to reconnect a socket with SSL because the initial communication on the socket
is done without SSL. See this thread [1] for more details.

[1] http://seclists.org/nmap-dev/2009/q4/3
2009-10-06 13:02:12 +00:00
joao
8dfb8af45e Removing outdated params from tryssl description 2009-10-01 03:20:37 +00:00
david
361f10fc90 Update NSEDoc to say that nmap.get_port_state can return nil if you pass
it a port that was not scanned.
2009-09-29 14:58:44 +00:00
joao
4c13b99e95 Giving priority to transfer-encoding first than content-length, as mentioned in rfc2616, section 4.4.
isChunked now checks for transfer-encoding: identity instead of transfer-encoding: chunked. If transfer encoding is present and it is not identity, chunked encoding is considered. Also rfc2616, section 4.4 (item 2)
2009-09-15 03:47:46 +00:00
joao
b9d1591739 Adding a few comments on some functions 2009-09-15 02:46:58 +00:00
joao
b0346e22b9 Fixing problem related to chunked pipelined responses on http.lua 2009-09-15 02:12:02 +00:00
david
8ba33e607b Make it clear in the NSEDoc that error values can be any false value:
<code>false</code> or <code>nil</code>. Basically it's anything that
matches the protocol of an nmap.new_try handler.
2009-09-14 15:56:49 +00:00
ron
9465a839c1 Added dhcp-discover script 2009-09-10 03:26:53 +00:00
ron
66399fc057 Added a couple more paths that might be interesting 2009-09-09 01:59:13 +00:00
ron
f4458c1917 Added the ability (off by defaultk, since it generates 20x requests) for http-enum.nse to generate variants of each file. This would probably be more useful to use after running a spider script than here, but the code should be essentially the same. I'm hoping it'll be used somewhere more appropriate, eventually.
Also added a couple fingerprints.
2009-09-08 19:51:53 +00:00
ron
537726defa Added '503 Service Unavailable' to the list of recognized error codes for 404 errors. I observed this on a 'Microsoft Project Server' host that gave valid results (though odd 404s). I also changed the code such that the scan will still run, even if an unrecognized error code is encountered. 2009-09-02 14:12:03 +00:00
ron
4564ed7503 Added '400' as a potential 404 page. Ran into this while scanning a Fortigate device. 2009-09-01 19:23:17 +00:00
ron
4dea760d93 Added in a link we originally removed (but shouldn't have) 2009-09-01 16:30:58 +00:00
ron
c792776a7c Added signature for BeEF (Browser Exploitation Framework) 2009-09-01 16:22:27 +00:00
david
8686ca7c06 Remove redundant "Favicon" from the end of some favicon-db entries.
Uncapitalize "Favicon" in some others.
2009-08-31 23:52:11 +00:00
david
e53657b4c8 Move favicon-db into nselib/scripts. 2009-08-31 23:21:26 +00:00
ron
7da313e8ac Added the status code to the rawheaders as well (so it's displayed in http-headers.nse). Also updated the @output in the nsedoc. 2009-08-27 15:47:10 +00:00
ron
62dedb9dc1 Added a 'path' script-arg to http-headers.nse. Changed it to use 'HEAD' by default, and fail to using 'GET' the same way other scripts do (also added a 'useget' script-arg to turn it off). Also fixed some print_debugs in http.lua that were prefixed with 'http-enum.nse:'. 2009-08-27 15:39:17 +00:00
ron
fc2b575fba Added 'rawheader' when parsing http requests. It saves the header fields, in order, preserving the case. Change http-headers.nse to read this instead of the processed headers. 2009-08-27 15:24:09 +00:00
ron
8a8ae22532 Fixing a fingerprint 2009-08-26 22:10:21 +00:00
ron
1ac3ea773b Adding a new fingerprint after finding a /backup.sql file in a test 2009-08-26 21:10:02 +00:00