Add documentation for SMB_COM_NEGOTIATE handling

bug/bundler_fix
jvazquez-r7 2015-03-02 10:45:43 -06:00
parent 3e8bbb6c9e
commit 19061121b3
1 changed files with 21 additions and 2 deletions

View File

@ -5,9 +5,13 @@ module Msf
module Share module Share
module Command module Command
module Negotiate module Negotiate
# Handles an SMB_COM_NEGOTIATE command, used by the client to initiate an
# SMB connection between the client and the server.
# #
# Negotiates a SHARE session with the client # @param c [Socket] The client sending the request.
# # @param buff [String] The data including the client request.
# @return [Fixnum] The number of bytes returned to the client as response.
def smb_cmd_negotiate(c, buff) def smb_cmd_negotiate(c, buff)
pkt = CONST::SMB_NEG_PKT.make_struct pkt = CONST::SMB_NEG_PKT.make_struct
pkt.from_s(buff) pkt.from_s(buff)
@ -29,6 +33,21 @@ module Msf
}) })
end end
# Builds and sends an SMB_COM_CLOSE response.
#
# @param c [Socket] The client to answer.
# @param opts [Hash{Symbol => <String, Fixnum>}] Response custom values.
# @option opts [Fixnum] :dialect The index of the dialect selected by the server from the request.
# @option opts [Fixnum] :security_mode Security modes supported or required by the server.
# @option opts [Fixnum] :max_mpx The maximum number of outstanding SMB operations that the server supports.
# @option opts [Fixnum] :max_vcs The maximum number of virtual circuits between the client and the server.
# @option opts [Fixnum] :max_buff Largest SMB message that the server can handle.
# @option opts [Fixnum] :max_raw Max size for SMB_COM_WRITE_RAW requests and SMB_COM_READ_RAW responses.
# @option opts [Fixnum] :server_time_zone The server's time zone.
# @option opts [Fixnum] :capabilities The server capability indicators.
# @option opts [Fixnum] :key_length The challenge length.
# @option opts [Fixnum] :key The challenge.
# @return [Fixnum] The number of bytes returned to the client as response.
def send_negotitate_res(c, opts = {}) def send_negotitate_res(c, opts = {})
dialect = opts[:dialect] || 0 dialect = opts[:dialect] || 0
security_mode = opts[:security_mode] || 0 security_mode = opts[:security_mode] || 0