packetgen-plugin-smb 0.5.0 → 0.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/specs.yml +28 -0
- data/.rubocop.yml +26 -2
- data/Gemfile +15 -0
- data/README.md +51 -12
- data/Rakefile +10 -4
- data/examples/llmnr-responder +110 -0
- data/examples/smb-responder +233 -0
- data/lib/packetgen/plugin/gssapi.rb +16 -10
- data/lib/packetgen/plugin/llmnr.rb +4 -4
- data/lib/packetgen/plugin/netbios/datagram.rb +3 -3
- data/lib/packetgen/plugin/netbios/name.rb +4 -4
- data/lib/packetgen/plugin/netbios/session.rb +5 -5
- data/lib/packetgen/plugin/netbios.rb +2 -0
- data/lib/packetgen/plugin/ntlm/authenticate.rb +197 -0
- data/lib/packetgen/plugin/ntlm/av_pair.rb +115 -0
- data/lib/packetgen/plugin/ntlm/challenge.rb +140 -0
- data/lib/packetgen/plugin/ntlm/negotiate.rb +127 -0
- data/lib/packetgen/plugin/ntlm/ntlmv2_response.rb +59 -0
- data/lib/packetgen/plugin/ntlm.rb +211 -0
- data/lib/packetgen/plugin/smb/blocks.rb +2 -2
- data/lib/packetgen/plugin/smb/browser/domain_announcement.rb +2 -2
- data/lib/packetgen/plugin/smb/browser/host_announcement.rb +2 -2
- data/lib/packetgen/plugin/smb/browser/local_master_announcement.rb +2 -2
- data/lib/packetgen/plugin/smb/browser.rb +2 -2
- data/lib/packetgen/plugin/smb/close/request.rb +2 -2
- data/lib/packetgen/plugin/smb/close/response.rb +2 -2
- data/lib/packetgen/plugin/smb/close.rb +2 -2
- data/lib/packetgen/plugin/smb/filetime.rb +10 -2
- data/lib/packetgen/plugin/smb/negotiate/dialect.rb +7 -0
- data/lib/packetgen/plugin/smb/negotiate/request.rb +7 -0
- data/lib/packetgen/plugin/smb/negotiate/response.rb +9 -3
- data/lib/packetgen/plugin/smb/negotiate.rb +2 -2
- data/lib/packetgen/plugin/smb/nt_create_and_x.rb +2 -2
- data/lib/packetgen/plugin/smb/ntcreateandx/request.rb +4 -4
- data/lib/packetgen/plugin/smb/ntcreateandx/response.rb +2 -2
- data/lib/packetgen/plugin/smb/string.rb +60 -23
- data/lib/packetgen/plugin/smb/trans/request.rb +3 -3
- data/lib/packetgen/plugin/smb/trans/response.rb +2 -2
- data/lib/packetgen/plugin/smb/trans.rb +2 -2
- data/lib/packetgen/plugin/smb.rb +12 -12
- data/lib/packetgen/plugin/smb2/base.rb +3 -3
- data/lib/packetgen/plugin/smb2/error.rb +3 -4
- data/lib/packetgen/plugin/smb2/guid.rb +4 -3
- data/lib/packetgen/plugin/smb2/negotiate/context.rb +3 -3
- data/lib/packetgen/plugin/smb2/negotiate/request.rb +3 -5
- data/lib/packetgen/plugin/smb2/negotiate/response.rb +9 -7
- data/lib/packetgen/plugin/smb2/negotiate.rb +2 -2
- data/lib/packetgen/plugin/smb2/session_setup/request.rb +9 -5
- data/lib/packetgen/plugin/smb2/session_setup/response.rb +10 -6
- data/lib/packetgen/plugin/smb2/session_setup.rb +2 -2
- data/lib/packetgen/plugin/smb2.rb +3 -3
- data/lib/packetgen/plugin/smb_version.rb +3 -1
- data/lib/packetgen-plugin-smb.rb +3 -2
- data/packetgen-plugin-smb.gemspec +8 -10
- metadata +21 -84
- data/.travis.yml +0 -12
data/lib/packetgen/plugin/smb.rb
CHANGED
@@ -1,26 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# This file is part of packetgen-plugin-smb.
|
2
4
|
# See https://github.com/sdaubert/packetgen-plugin-smb for more informations
|
3
5
|
# Copyright (C) 2018 Sylvain Daubert <sylvain.daubert@laposte.net>
|
4
6
|
# This program is published under MIT license.
|
5
7
|
|
6
|
-
# frozen_string_literal: true
|
7
|
-
|
8
8
|
module PacketGen::Plugin
|
9
9
|
# Server Message Block (SMB) header.
|
10
10
|
# @author Sylvain Daubert
|
11
11
|
class SMB < PacketGen::Header::Base
|
12
12
|
# Known commands
|
13
13
|
COMMANDS = {
|
14
|
-
'delete_dir'
|
15
|
-
'close'
|
16
|
-
'delete'
|
17
|
-
'query_info2'
|
18
|
-
'trans'
|
19
|
-
'echo'
|
20
|
-
'open_and_x'
|
21
|
-
'read_and_x'
|
22
|
-
'write_and_x'
|
23
|
-
'trans2'
|
14
|
+
'delete_dir' => 0x01,
|
15
|
+
'close' => 0x04,
|
16
|
+
'delete' => 0x06,
|
17
|
+
'query_info2' => 0x23,
|
18
|
+
'trans' => 0x25,
|
19
|
+
'echo' => 0x2b,
|
20
|
+
'open_and_x' => 0x2d,
|
21
|
+
'read_and_x' => 0x2e,
|
22
|
+
'write_and_x' => 0x2f,
|
23
|
+
'trans2' => 0x32,
|
24
24
|
'tree_disconnect' => 0x71,
|
25
25
|
'negotiate' => 0x72,
|
26
26
|
'session_setup_and_x' => 0x73,
|
@@ -1,10 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# This file is part of packetgen-plugin-smb.
|
2
4
|
# See https://github.com/sdaubert/packetgen-plugin-smb for more informations
|
3
5
|
# Copyright (C) 2018 Sylvain Daubert <sylvain.daubert@laposte.net>
|
4
6
|
# This program is published under MIT license.
|
5
7
|
|
6
|
-
# frozen_string_literal: true
|
7
|
-
|
8
8
|
require_relative 'guid'
|
9
9
|
|
10
10
|
module PacketGen::Plugin
|
@@ -26,4 +26,4 @@ module PacketGen::Plugin
|
|
26
26
|
end
|
27
27
|
end
|
28
28
|
end
|
29
|
-
end
|
29
|
+
end
|
@@ -1,10 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# This file is part of packetgen-plugin-smb.
|
2
4
|
# See https://github.com/sdaubert/packetgen-plugin-smb for more informations
|
3
5
|
# Copyright (C) 2018 Sylvain Daubert <sylvain.daubert@laposte.net>
|
4
6
|
# This program is published under MIT license.
|
5
7
|
|
6
|
-
# frozen_string_literal: true
|
7
|
-
|
8
8
|
module PacketGen::Plugin
|
9
9
|
class SMB2
|
10
10
|
# SMB2 Error response structure
|
@@ -45,6 +45,5 @@ module PacketGen::Plugin
|
|
45
45
|
end
|
46
46
|
end
|
47
47
|
PacketGen::Header.add_class SMB2::ErrorResponse
|
48
|
-
SMB2.bind SMB2::ErrorResponse, status: ->(v) { v
|
48
|
+
SMB2.bind SMB2::ErrorResponse, status: ->(v) { v.positive? }
|
49
49
|
end
|
50
|
-
|
@@ -1,10 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# This file is part of packetgen-plugin-smb.
|
2
4
|
# See https://github.com/sdaubert/packetgen-plugin-smb for more informations
|
3
5
|
# Copyright (C) 2018 Sylvain Daubert <sylvain.daubert@laposte.net>
|
4
6
|
# This program is published under MIT license.
|
5
7
|
|
6
|
-
# frozen_string_literal: true
|
7
|
-
|
8
8
|
module PacketGen::Plugin
|
9
9
|
class SMB2
|
10
10
|
# GUID, also known as UUID, is a 16-byte structure, intended to serve
|
@@ -22,6 +22,8 @@ module PacketGen::Plugin
|
|
22
22
|
# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
23
23
|
# @author Sylvain Daubert
|
24
24
|
class GUID < PacketGen::Types::Fields
|
25
|
+
include PacketGen::Types::Fieldable
|
26
|
+
|
25
27
|
# @!attribute data1
|
26
28
|
# 32-bit little-endian data1
|
27
29
|
# @return [Integer]
|
@@ -66,4 +68,3 @@ module PacketGen::Plugin
|
|
66
68
|
end
|
67
69
|
end
|
68
70
|
end
|
69
|
-
|
@@ -1,10 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# This file is part of packetgen-plugin-smb.
|
2
4
|
# See https://github.com/sdaubert/packetgen-plugin-smb for more informations
|
3
5
|
# Copyright (C) 2018 Sylvain Daubert <sylvain.daubert@laposte.net>
|
4
6
|
# This program is published under MIT license.
|
5
7
|
|
6
|
-
# frozen_string_literal: true
|
7
|
-
|
8
8
|
module PacketGen::Plugin
|
9
9
|
class SMB2
|
10
10
|
module Negotiate
|
@@ -47,7 +47,7 @@ module PacketGen::Plugin
|
|
47
47
|
# @!attribute pad
|
48
48
|
# Padding to align next context on a 8-byte offset
|
49
49
|
# @return [String]
|
50
|
-
define_field :pad, PacketGen::Types::String, builder: ->(h, t) { t.new(length_from: -> {
|
50
|
+
define_field :pad, PacketGen::Types::String, builder: ->(h, t) { t.new(length_from: -> { 8 - (h.offset_of(:data) + h.data_length) % 8 }) }
|
51
51
|
|
52
52
|
# @private
|
53
53
|
alias old_read read
|
@@ -1,10 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# This file is part of packetgen-plugin-smb.
|
2
4
|
# See https://github.com/sdaubert/packetgen-plugin-smb for more informations
|
3
5
|
# Copyright (C) 2018 Sylvain Daubert <sylvain.daubert@laposte.net>
|
4
6
|
# This program is published under MIT license.
|
5
7
|
|
6
|
-
# frozen_string_literal: true
|
7
|
-
|
8
8
|
module PacketGen::Plugin
|
9
9
|
class SMB2
|
10
10
|
module Negotiate
|
@@ -161,9 +161,7 @@ module PacketGen::Plugin
|
|
161
161
|
self[:pad].read SMB2::MAX_PADDING
|
162
162
|
|
163
163
|
self.context_offset = 0
|
164
|
-
unless context_list.empty?
|
165
|
-
self.context_offset = SMB2::HEADER_SIZE + offset_of(:context_list)
|
166
|
-
end
|
164
|
+
self.context_offset = SMB2::HEADER_SIZE + offset_of(:context_list) unless context_list.empty?
|
167
165
|
context_list.each { |ctx| ctx.calc_length if ctx.respond_to? :calc_length }
|
168
166
|
end
|
169
167
|
end
|
@@ -1,10 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# This file is part of packetgen-plugin-smb.
|
2
4
|
# See https://github.com/sdaubert/packetgen-plugin-smb for more informations
|
3
5
|
# Copyright (C) 2018 Sylvain Daubert <sylvain.daubert@laposte.net>
|
4
6
|
# This program is published under MIT license.
|
5
7
|
|
6
|
-
# frozen_string_literal: true
|
7
|
-
|
8
8
|
module PacketGen::Plugin
|
9
9
|
class SMB2
|
10
10
|
module Negotiate
|
@@ -140,7 +140,7 @@ module PacketGen::Plugin
|
|
140
140
|
define_field :context_offset, PacketGen::Types::Int32le
|
141
141
|
# @!attribute buffer
|
142
142
|
# @return [GSSAPI]
|
143
|
-
define_field :buffer, GSSAPI, token: :init, optional: ->(h) { h.buffer_offset
|
143
|
+
define_field :buffer, GSSAPI, token: :init, optional: ->(h) { h.buffer_offset.positive? }
|
144
144
|
# @!attribute pad
|
145
145
|
# Optional padding between the end of the {#buffer} field and the first negotiate
|
146
146
|
# context in {#context_list} so that the first negotiate context is 8-byte aligned
|
@@ -184,13 +184,15 @@ module PacketGen::Plugin
|
|
184
184
|
def calc_length
|
185
185
|
self[:pad].read SMB2::MAX_PADDING
|
186
186
|
|
187
|
-
self.buffer_offset = SMB2::HEADER_SIZE + offset_of(:buffer)
|
188
187
|
self.buffer_length = self[:buffer].sz
|
188
|
+
self.buffer_offset = if self.buffer_length.zero?
|
189
|
+
0
|
190
|
+
else
|
191
|
+
SMB2::HEADER_SIZE + offset_of(:buffer)
|
192
|
+
end
|
189
193
|
|
190
194
|
self.context_offset = 0
|
191
|
-
unless context_list.empty?
|
192
|
-
self.context_offset = SMB2::HEADER_SIZE + offset_of(:context_list)
|
193
|
-
end
|
195
|
+
self.context_offset = SMB2::HEADER_SIZE + offset_of(:context_list) unless context_list.empty?
|
194
196
|
context_list.each { |ctx| ctx.calc_length if ctx.respond_to? :calc_length }
|
195
197
|
end
|
196
198
|
end
|
@@ -1,10 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# This file is part of packetgen-plugin-smb.
|
2
4
|
# See https://github.com/sdaubert/packetgen-plugin-smb for more informations
|
3
5
|
# Copyright (C) 2018 Sylvain Daubert <sylvain.daubert@laposte.net>
|
4
6
|
# This program is published under MIT license.
|
5
7
|
|
6
|
-
# frozen_string_literal: true
|
7
|
-
|
8
8
|
require_relative 'guid'
|
9
9
|
|
10
10
|
module PacketGen::Plugin
|
@@ -1,10 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# This file is part of packetgen-plugin-smb.
|
2
4
|
# See https://github.com/sdaubert/packetgen-plugin-smb for more informations
|
3
5
|
# Copyright (C) 2018 Sylvain Daubert <sylvain.daubert@laposte.net>
|
4
6
|
# This program is published under MIT license.
|
5
7
|
|
6
|
-
# frozen_string_literal: true
|
7
|
-
|
8
8
|
module PacketGen::Plugin
|
9
9
|
class SMB2
|
10
10
|
module SessionSetup
|
@@ -79,13 +79,17 @@ module PacketGen::Plugin
|
|
79
79
|
define_field :prev_session_id, PacketGen::Types::Int64le
|
80
80
|
# @!attribute buffer
|
81
81
|
# @return [GSSAPI]
|
82
|
-
define_field :buffer, GSSAPI, token: :response, optional: ->(h) { h.buffer_offset
|
82
|
+
define_field :buffer, GSSAPI, token: :response, optional: ->(h) { h.buffer_offset.positive? }
|
83
83
|
|
84
84
|
# Calculate and set {#buffer_length} and {#buffer_offset} fields.
|
85
85
|
# @return [void]
|
86
86
|
def calc_length
|
87
|
-
self.buffer_offset = SMB2.new.sz + offset_of(:buffer)
|
88
87
|
self.buffer_length = self[:buffer].sz
|
88
|
+
self.buffer_offset = if self.buffer_length.zero?
|
89
|
+
0
|
90
|
+
else
|
91
|
+
SMB2.new.sz + offset_of(:buffer)
|
92
|
+
end
|
89
93
|
end
|
90
94
|
|
91
95
|
# Protocol name
|
@@ -96,4 +100,4 @@ module PacketGen::Plugin
|
|
96
100
|
end
|
97
101
|
end
|
98
102
|
end
|
99
|
-
end
|
103
|
+
end
|
@@ -1,10 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# This file is part of packetgen-plugin-smb.
|
2
4
|
# See https://github.com/sdaubert/packetgen-plugin-smb for more informations
|
3
5
|
# Copyright (C) 2018 Sylvain Daubert <sylvain.daubert@laposte.net>
|
4
6
|
# This program is published under MIT license.
|
5
7
|
|
6
|
-
# frozen_string_literal: true
|
7
|
-
|
8
8
|
module PacketGen::Plugin
|
9
9
|
class SMB2
|
10
10
|
module SessionSetup
|
@@ -39,7 +39,7 @@ module PacketGen::Plugin
|
|
39
39
|
# @return [Boolean]
|
40
40
|
# @!attribute flags_is_guest?
|
41
41
|
# @return [Boolean]
|
42
|
-
define_bit_fields_on :flags, :flags_rsv, 13
|
42
|
+
define_bit_fields_on :flags, :flags_rsv, 13, :flags_encrypt_data, :flags_is_null, :flags_is_guest
|
43
43
|
# @!attribute buffer_offset
|
44
44
|
# The offset, from the beginning of the SMB2 header of the {#buffer}.
|
45
45
|
# @return [Integer]
|
@@ -50,13 +50,17 @@ module PacketGen::Plugin
|
|
50
50
|
define_field :buffer_length, PacketGen::Types::Int16le
|
51
51
|
# @!attribute buffer
|
52
52
|
# @return [GSSAPI]
|
53
|
-
define_field :buffer, GSSAPI, token: :response, optional: ->(h) { h.buffer_offset
|
53
|
+
define_field :buffer, GSSAPI, token: :response, optional: ->(h) { h.buffer_offset.positive? }
|
54
54
|
|
55
55
|
# Calculate and set {#buffer_length} and {#buffer_offset} fields.
|
56
56
|
# @return [void]
|
57
57
|
def calc_length
|
58
|
-
self.buffer_offset = SMB2.new.sz + offset_of(:buffer)
|
59
58
|
self.buffer_length = self[:buffer].sz
|
59
|
+
self.buffer_offset = if self.buffer_length.zero?
|
60
|
+
0
|
61
|
+
else
|
62
|
+
SMB2.new.sz + offset_of(:buffer)
|
63
|
+
end
|
60
64
|
end
|
61
65
|
|
62
66
|
# Protocol name
|
@@ -67,4 +71,4 @@ module PacketGen::Plugin
|
|
67
71
|
end
|
68
72
|
end
|
69
73
|
end
|
70
|
-
end
|
74
|
+
end
|
@@ -1,10 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# This file is part of packetgen-plugin-smb.
|
2
4
|
# See https://github.com/sdaubert/packetgen-plugin-smb for more informations
|
3
5
|
# Copyright (C) 2018 Sylvain Daubert <sylvain.daubert@laposte.net>
|
4
6
|
# This program is published under MIT license.
|
5
7
|
|
6
|
-
# frozen_string_literal: true
|
7
|
-
|
8
8
|
require_relative 'guid'
|
9
9
|
|
10
10
|
module PacketGen::Plugin
|
@@ -1,10 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# This file is part of packetgen-plugin-smb.
|
2
4
|
# See https://github.com/sdaubert/packetgen-plugin-smb for more informations
|
3
5
|
# Copyright (C) 2018 Sylvain Daubert <sylvain.daubert@laposte.net>
|
4
6
|
# This program is published under MIT license.
|
5
7
|
|
6
|
-
# frozen_string_literal: true
|
7
|
-
|
8
8
|
module PacketGen::Plugin
|
9
9
|
# Server Message Block version 2 and 3 (SMB2) header.
|
10
10
|
# @author Sylvain Daubert
|
@@ -84,7 +84,7 @@ module PacketGen::Plugin
|
|
84
84
|
# 64-bit unique ID that is created by the server to handle operations
|
85
85
|
# asynchronously. Only present for asynchronous messages.
|
86
86
|
# @return [Integer]
|
87
|
-
define_field :async_id, PacketGen::Types::Int64le, optional: ->(h) { h.flags & 2
|
87
|
+
define_field :async_id, PacketGen::Types::Int64le, optional: ->(h) { h.flags & 2 == 2 }
|
88
88
|
# @!attribute reserved
|
89
89
|
# 32-bit reserved field.
|
90
90
|
# Only present for synchronous messages.
|
data/lib/packetgen-plugin-smb.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# This file is part of packetgen-plugin-smb.
|
2
4
|
# See https://github.com/sdaubert/packetgen-plugin-smb for more informations
|
3
5
|
# Copyright (C) 2018 Sylvain Daubert <sylvain.daubert@laposte.net>
|
4
6
|
# This program is published under MIT license.
|
5
7
|
|
6
|
-
# frozen_string_literal: true
|
7
|
-
|
8
8
|
require 'packetgen'
|
9
9
|
require_relative 'packetgen/plugin/smb_version'
|
10
10
|
require_relative 'packetgen/plugin/gssapi'
|
@@ -12,3 +12,4 @@ require_relative 'packetgen/plugin/netbios'
|
|
12
12
|
require_relative 'packetgen/plugin/smb'
|
13
13
|
require_relative 'packetgen/plugin/smb2'
|
14
14
|
require_relative 'packetgen/plugin/llmnr'
|
15
|
+
require_relative 'packetgen/plugin/ntlm'
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
lib = File.expand_path('lib', __dir__)
|
2
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
5
|
require 'packetgen/plugin/smb_version'
|
@@ -14,16 +16,12 @@ Gem::Specification.new do |spec|
|
|
14
16
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
15
17
|
f.match(%r{^(test|spec|features)/})
|
16
18
|
end
|
17
|
-
spec.
|
18
|
-
|
19
|
-
spec.
|
19
|
+
spec.bindir = 'bin'
|
20
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
21
|
+
spec.require_paths = %w[lib]
|
20
22
|
|
21
|
-
spec.
|
22
|
-
spec.add_dependency 'rasn1', '~>0.6', '>= 0.6.8'
|
23
|
+
spec.required_ruby_version = '>= 2.5.0'
|
23
24
|
|
24
|
-
spec.
|
25
|
-
spec.
|
26
|
-
spec.add_development_dependency 'rspec', '~> 3.7'
|
27
|
-
spec.add_development_dependency 'simplecov', '~> 0.16'
|
28
|
-
spec.add_development_dependency 'yard', '~> 0.9'
|
25
|
+
spec.add_dependency 'packetgen', '~>3.2', '>=3.2.1'
|
26
|
+
spec.add_dependency 'rasn1', '~>0.8', '>= 0.8.0'
|
29
27
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: packetgen-plugin-smb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sylvain Daubert
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-01-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: packetgen
|
@@ -16,110 +16,40 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '3.
|
19
|
+
version: '3.2'
|
20
20
|
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 3.
|
22
|
+
version: 3.2.1
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - "~>"
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: '3.
|
29
|
+
version: '3.2'
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 3.
|
32
|
+
version: 3.2.1
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: rasn1
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
37
|
- - "~>"
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: '0.
|
39
|
+
version: '0.8'
|
40
40
|
- - ">="
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: 0.
|
42
|
+
version: 0.8.0
|
43
43
|
type: :runtime
|
44
44
|
prerelease: false
|
45
45
|
version_requirements: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
47
|
- - "~>"
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version: '0.
|
49
|
+
version: '0.8'
|
50
50
|
- - ">="
|
51
51
|
- !ruby/object:Gem::Version
|
52
|
-
version: 0.
|
53
|
-
- !ruby/object:Gem::Dependency
|
54
|
-
name: bundler
|
55
|
-
requirement: !ruby/object:Gem::Requirement
|
56
|
-
requirements:
|
57
|
-
- - "~>"
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
version: '1.16'
|
60
|
-
type: :development
|
61
|
-
prerelease: false
|
62
|
-
version_requirements: !ruby/object:Gem::Requirement
|
63
|
-
requirements:
|
64
|
-
- - "~>"
|
65
|
-
- !ruby/object:Gem::Version
|
66
|
-
version: '1.16'
|
67
|
-
- !ruby/object:Gem::Dependency
|
68
|
-
name: rake
|
69
|
-
requirement: !ruby/object:Gem::Requirement
|
70
|
-
requirements:
|
71
|
-
- - "~>"
|
72
|
-
- !ruby/object:Gem::Version
|
73
|
-
version: '10.0'
|
74
|
-
type: :development
|
75
|
-
prerelease: false
|
76
|
-
version_requirements: !ruby/object:Gem::Requirement
|
77
|
-
requirements:
|
78
|
-
- - "~>"
|
79
|
-
- !ruby/object:Gem::Version
|
80
|
-
version: '10.0'
|
81
|
-
- !ruby/object:Gem::Dependency
|
82
|
-
name: rspec
|
83
|
-
requirement: !ruby/object:Gem::Requirement
|
84
|
-
requirements:
|
85
|
-
- - "~>"
|
86
|
-
- !ruby/object:Gem::Version
|
87
|
-
version: '3.7'
|
88
|
-
type: :development
|
89
|
-
prerelease: false
|
90
|
-
version_requirements: !ruby/object:Gem::Requirement
|
91
|
-
requirements:
|
92
|
-
- - "~>"
|
93
|
-
- !ruby/object:Gem::Version
|
94
|
-
version: '3.7'
|
95
|
-
- !ruby/object:Gem::Dependency
|
96
|
-
name: simplecov
|
97
|
-
requirement: !ruby/object:Gem::Requirement
|
98
|
-
requirements:
|
99
|
-
- - "~>"
|
100
|
-
- !ruby/object:Gem::Version
|
101
|
-
version: '0.16'
|
102
|
-
type: :development
|
103
|
-
prerelease: false
|
104
|
-
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
requirements:
|
106
|
-
- - "~>"
|
107
|
-
- !ruby/object:Gem::Version
|
108
|
-
version: '0.16'
|
109
|
-
- !ruby/object:Gem::Dependency
|
110
|
-
name: yard
|
111
|
-
requirement: !ruby/object:Gem::Requirement
|
112
|
-
requirements:
|
113
|
-
- - "~>"
|
114
|
-
- !ruby/object:Gem::Version
|
115
|
-
version: '0.9'
|
116
|
-
type: :development
|
117
|
-
prerelease: false
|
118
|
-
version_requirements: !ruby/object:Gem::Requirement
|
119
|
-
requirements:
|
120
|
-
- - "~>"
|
121
|
-
- !ruby/object:Gem::Version
|
122
|
-
version: '0.9'
|
52
|
+
version: 0.8.0
|
123
53
|
description:
|
124
54
|
email:
|
125
55
|
- sylvain.daubert@laposte.net
|
@@ -127,13 +57,15 @@ executables: []
|
|
127
57
|
extensions: []
|
128
58
|
extra_rdoc_files: []
|
129
59
|
files:
|
60
|
+
- ".github/workflows/specs.yml"
|
130
61
|
- ".gitignore"
|
131
62
|
- ".rubocop.yml"
|
132
|
-
- ".travis.yml"
|
133
63
|
- Gemfile
|
134
64
|
- LICENSE
|
135
65
|
- README.md
|
136
66
|
- Rakefile
|
67
|
+
- examples/llmnr-responder
|
68
|
+
- examples/smb-responder
|
137
69
|
- lib/packetgen-plugin-smb.rb
|
138
70
|
- lib/packetgen/plugin/gssapi.rb
|
139
71
|
- lib/packetgen/plugin/llmnr.rb
|
@@ -141,6 +73,12 @@ files:
|
|
141
73
|
- lib/packetgen/plugin/netbios/datagram.rb
|
142
74
|
- lib/packetgen/plugin/netbios/name.rb
|
143
75
|
- lib/packetgen/plugin/netbios/session.rb
|
76
|
+
- lib/packetgen/plugin/ntlm.rb
|
77
|
+
- lib/packetgen/plugin/ntlm/authenticate.rb
|
78
|
+
- lib/packetgen/plugin/ntlm/av_pair.rb
|
79
|
+
- lib/packetgen/plugin/ntlm/challenge.rb
|
80
|
+
- lib/packetgen/plugin/ntlm/negotiate.rb
|
81
|
+
- lib/packetgen/plugin/ntlm/ntlmv2_response.rb
|
144
82
|
- lib/packetgen/plugin/smb.rb
|
145
83
|
- lib/packetgen/plugin/smb/blocks.rb
|
146
84
|
- lib/packetgen/plugin/smb/browser.rb
|
@@ -186,15 +124,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
186
124
|
requirements:
|
187
125
|
- - ">="
|
188
126
|
- !ruby/object:Gem::Version
|
189
|
-
version: 2.
|
127
|
+
version: 2.5.0
|
190
128
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
191
129
|
requirements:
|
192
130
|
- - ">="
|
193
131
|
- !ruby/object:Gem::Version
|
194
132
|
version: '0'
|
195
133
|
requirements: []
|
196
|
-
|
197
|
-
rubygems_version: 2.7.6
|
134
|
+
rubygems_version: 3.2.5
|
198
135
|
signing_key:
|
199
136
|
specification_version: 4
|
200
137
|
summary: SMB plugin for packetgen.
|