Commit Graph

38134 Commits (2d5cf6cfe4fa19cde4ef7af84032bc1629c9bad7)

Author SHA1 Message Date
James Lee effee42e2f
Raise a better exception for WSAEADDRINUSE 2016-03-23 13:15:38 -05:00
Louis Sato 0c19d89655
add more space for deprecation message 2016-03-23 11:39:42 -05:00
Louis Sato b0cdfe9ee1
Land #6704, move android stock browser iframe 2016-03-23 11:38:34 -05:00
wchen-r7 8c5c0086e6 Change cve_2012_6301 module path & make passive
This addresses two things:

1. The module is in the wrong directory. dos/http is for http
   servers, not browsers.
2. PassiveActions should not be a 2D array.
2016-03-23 11:10:23 -05:00
wchen-r7 53860bef1f Make ms09_065_eot_integer passive
MS-932
2016-03-23 10:50:24 -05:00
Metasploit e7b0c60e5c
Bump version of framework to 4.11.18 2016-03-23 07:55:29 -07:00
Brent Cook 4906327bc2
Land #6702, fix datastore option 'stickiness', fix OptPort validation 2016-03-22 23:26:19 -05:00
Adam Cammack 866c4718b0
Fix OptPort validation
Allow a port value of 0 and don't reject empty values if the option is
not required.
2016-03-22 23:01:18 -05:00
Adam Cammack ec3a0a108d
Change OptPort to inherit from OptInt
Fixes the normalize and validate methods.
2016-03-22 19:25:51 -05:00
Adam Cammack 22df7c0071
Fix datastore to validate options w/o a default
Options without a default were not pulled into the `@options` hash and
therefore were not used to validate options on assignment.

I am not entirely sure how this fix works, since it would seem that
non-override options would not get pulled in if an option was first set
in the global datastore. However, a previous value does not get
overridden and new values are validated. Anything further is merely
speculation on my part.
2016-03-22 19:12:53 -05:00
Adam Cammack 5c163960ed
Fix datastore to not freeze options on the default 2016-03-22 19:07:58 -05:00
wchen-r7 8bf039a69e ignore_items! should not be used in a loop
because it's not necessary.
2016-03-22 15:56:38 -05:00
wchen-r7 102d28bda4 Update atutor_filemanager_traversal 2016-03-22 14:44:07 -05:00
wchen-r7 9cb43f2153 Update atutor_filemanager_traversal 2016-03-22 14:42:36 -05:00
wchen-r7 8836393cb1 Add aux module to gather browser information. 2016-03-22 13:56:12 -05:00
Lexus89 8028a9b5ce Print response fix 2016-03-22 18:50:25 +01:00
wchen-r7 71109038e7 Update mailmap for Steven Seeley 2016-03-22 12:45:28 -05:00
sinn3r 9aa5f4f03a Merge pull request #39 from tdoan-r7/mod_doc_cmd
MS-1196 Minor edits to the kb for the web_delivery module
2016-03-22 12:34:27 -05:00
tdoan-r7 7e5fced46b MS-1196 Minor edits to the kb for the web_delivery module 2016-03-22 12:26:55 -05:00
Steven Seeley 3842009ffe Add ATutor 2.2.1 Directory Traversal Exploit Module 2016-03-22 12:17:32 -05:00
sinn3r 3f6b6630a7 Merge pull request #38 from tdoan-r7/mod_doc_cmd
MS-1195 minor grammatical edits to psexec kb
2016-03-21 14:38:36 -05:00
tdoan-r7 4c42a74d48 MS-1195 minor grammatical edits to psexec kb 2016-03-21 14:18:16 -05:00
William Vu 0c7cf2924c
Land #6686, Android dump_* -o fixes 2016-03-21 12:21:47 -05:00
Adam Cammack b2dea83a8b
Land #6688, Fix typo
s/thorugh/through/ in exploits/multi/http/phpmyadmin_3522_backdoor
2016-03-21 10:42:36 -05:00
RageLtMan c871ceea0a Implement consistent socket abstraction
In current nomenclature, Rex Sockets are objects created by calls
to Rex::Socket::<Transport>.create and Rex::Socket.create_...
When the LocalHost or Comm parameters are set to remotely routed
addresses (currently via Meterpreter sessions), Rex will create a
Channel which will abstract communications with the remote end of
the session. These channel based abstractions are called pivots,
and present in three separate flavors:
1 - TcpClientChannel, a fully abstracted, selectable Socket.
2 - TcpServerChannel, a virtual Channel which distributes client
channels.
3 - UdpChannel, a virtual Channel which provides common methods for
UDP socket operations, but is not a full (selectable) abstraction.

Unfortunately this differentiation results in inconsistent returns
from the aforementioned socket creation calls, as the call chain
creates parameters and supplies them to the create method on the
comm object referenced in the params. The comm object may be a
channel, and produce a virtual representation of a socket with
functional methods analogous to Sockets, but without a kernel FD.

This commit begins the work of ensuring that all calls for socket
creation return selectable Rex::Socket objects with semantics
familiar to Ruby developers who have not read into the details of
Rex::Socket and Rex::Post.

-----

Summary of changes:

Convert Rex::IO::StreamAbstraction to SocketAbstraction and use
the new mixin in StreamAbstraction and DatagramAbstraction. This
approach allows for common methods to reuse the abstraction data
flow, while initializing separate types of socket obects and an
optional monitor as needed.

In the Rex::Post::Meterpreter namespace, extract common methods
from Stream to a SocketAbstraction mixin, include that mixin in
Stream, and add Datagram with the dio_write handler override
exported from the current implementation of UdpChannel, also using
the mixin. This relies on the Rex::IO work above to implement the
proper type of socket abstraction to the Channel descendants.

In Rex::Post::Meterpreter::Extensions::Stdapi::Net, convert the
UdpChannel to inherit from the Rex::Post::Meterpreter::Datagram
class, implementing only the send method at this tier. Convert
create_udp_channel to return the local socket side of the datagram
abstraction presented analogous to the TcpClientChannel approach
used before.

-----

Notes and intricacies:

In order to implement recvfrom on the UDP abstraction, a shim layer
has been put in place to forward the sockaddr information from the
remote peer to the local UDP socketpair in the abstraction. This
information takes up buffer space in the UDP socket, and in order
to maintain compatibility with consumers, the dio_write_handler
pushes the data buffer, and in a separate send call, he sockaddr
information from the remote socket. On the abstraction side, the
recvfrom_nonblock call of the real UDPSocket has been overriden
via the mixed in module to call the real method twice, once for
the data buffer, and once for the packed sockaddr data. The Rex
level consumer for recvfrom calls the underlying nonblock method
and expects this exact set of returns (as opposed to what standard
library UDPSocket.recvfrom returns, which is a data buffer and an
Array of sockaddr data).

-----

Testing:
  Local and lab testing only so far.
  Test RC script to be added in GH comments.

-----

Issues:
  Currently, sendto on a remote socket does not appear to honor
LocalPort which causes DNS responses (#6611) to come from the
wrong port to remote clients being serviced over a pivot socket.
2016-03-21 03:32:52 -04:00
OJ 80e0bbeb68 Add the interactive shell prompt with sessions 2016-03-21 15:44:20 +10:00
h00die ebc7316442 Spelling Fix
Fixed Thorugh to Through
2016-03-19 13:58:13 -04:00
h00die 488f93d213 Merge remote-tracking branch 'refs/remotes/rapid7/master' 2016-03-19 13:40:40 -04:00
Metasploit 6e12e74e02
Bump version of framework to 4.11.17 2016-03-18 14:12:18 -07:00
Adam Cammack 67b9d053ec
Land #6679, remove unreachable sanity checks 2016-03-18 11:25:51 -05:00
Adam Cammack 570221379e
Land #6533, move ie_unsafe_scripting to BES 2016-03-18 11:22:44 -05:00
Brent Cook 9219efa512 remove unreachable ruby 1.x check 2016-03-18 11:16:44 -05:00
James Lee d54bbdf9a3
Land #6566, filezilla xml file locations 2016-03-17 16:27:24 -05:00
James Lee 115a033036
Fix parsing the Last Server xml 2016-03-17 16:27:02 -05:00
wchen-r7 31279291c2 Resolve merge conflict for ie_unsafe_scripting.rb 2016-03-17 14:42:36 -05:00
wchen-r7 b1b68294bb Update class name 2016-03-17 14:41:23 -05:00
wchen-r7 7b2d717280 Change ranking to manual and restore BAP2 count to 21
Since the exploit requires the target to be configured manually,
it feel more appropriate to be ManualRanking.
2016-03-17 14:39:28 -05:00
James Lee 1375600780
Land #6644, datastore validation on assignment 2016-03-17 11:16:12 -05:00
Brent Cook df2d0f7826 Indicate that output options take parameters 2016-03-17 11:13:34 -05:00
Brent Cook 1790f039c3
Land #6684, remove obsolete warn_about_rubies 2016-03-17 08:26:57 -05:00
Brent Cook e9f87d2883
Land #6685, ensure platform variable is set for non-osx 2016-03-17 08:25:42 -05:00
William Vu 59a55dec5b
Land #6676, new Postgres fingerprints 2016-03-16 16:32:10 -05:00
James Lee 9e7a330ac8
OptInt -> OptPort 2016-03-16 15:47:29 -05:00
Adam Cammack 32fe9ae55d
Remove dead version check in db_manager.rb
The check appears to have been orphaned in the db_manager refactor, but
I can't track down the exact commit.
2016-03-16 15:24:55 -05:00
James Lee 79c36c4f53
RPORT should be an OptPort 2016-03-16 14:13:19 -05:00
James Lee af642379e6
Fix some OptInts 2016-03-16 14:13:18 -05:00
James Lee c21bad78e8
Fix some more String defaults 2016-03-16 14:13:18 -05:00
James Lee a878926f31
Remove unused datastore option 2016-03-16 14:13:17 -05:00
Brent Cook fbe1cce7ab
Land #6683, fix msftidy warning about MetasploitModule 2016-03-16 13:21:13 -05:00
Spencer McIntyre 631e24c02b Update the msftidy warning for module class names 2016-03-16 13:31:24 -04:00