ronin 2.1.0.rc1 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/ChangeLog.md +11 -5
- data/README.md +4 -4
- data/data/completions/ronin +273 -273
- data/gemspec.yml +19 -19
- data/lib/ronin/cli/commands/dns_proxy.rb +4 -0
- data/lib/ronin/version.rb +1 -1
- data/man/ronin-completion.1 +4 -4
- data/man/ronin-completion.1.md +4 -4
- data/man/ronin-dns-proxy.1 +1 -1
- data/man/ronin-dns-proxy.1.md +1 -1
- data/man/ronin-pack.1 +2 -0
- data/man/ronin-pack.1.md +1 -1
- data/man/ronin-unpack.1 +2 -0
- data/man/ronin-unpack.1.md +1 -1
- metadata +38 -37
data/gemspec.yml
CHANGED
@@ -5,9 +5,9 @@ description:
|
|
5
5
|
development. Ronin contains many different CLI commands and Ruby libraries for
|
6
6
|
a variety of security tasks, such as encoding/decoding data, filter
|
7
7
|
IPs/hosts/URLs, querying ASNs, querying DNS, HTTP, scanning for web
|
8
|
-
vulnerabilities, spidering websites,
|
9
|
-
exploits and/or payloads,
|
10
|
-
local databases, fuzzing data,
|
8
|
+
vulnerabilities, spidering websites, installing 3rd-party repositories of
|
9
|
+
exploits and/or payloads, running exploits, developing new exploits, managing
|
10
|
+
local databases, fuzzing data, performing recon, and much more.
|
11
11
|
|
12
12
|
license: GPL-3.0
|
13
13
|
authors: Postmodern
|
@@ -103,24 +103,24 @@ dependencies:
|
|
103
103
|
async-io: ~> 1.0
|
104
104
|
wordlist: ~> 1.1
|
105
105
|
# Ronin dependencies:
|
106
|
-
ronin-support: ~> 1.1
|
107
|
-
ronin-dns-proxy: ~> 0.1
|
108
|
-
ronin-core: ~> 0.2
|
109
|
-
ronin-repos: ~> 0.2
|
110
|
-
ronin-wordlists: ~> 0.1
|
111
|
-
ronin-db: ~> 0.2
|
112
|
-
ronin-listener: ~> 0.1
|
113
|
-
ronin-nmap: ~> 0.1
|
114
|
-
ronin-masscan: ~> 0.1
|
115
|
-
ronin-recon: ~> 0.1
|
116
|
-
ronin-fuzzer: ~> 0.2
|
117
|
-
ronin-web: ~> 2.0
|
106
|
+
ronin-support: ~> 1.1
|
107
|
+
ronin-dns-proxy: ~> 0.1
|
108
|
+
ronin-core: ~> 0.2
|
109
|
+
ronin-repos: ~> 0.2
|
110
|
+
ronin-wordlists: ~> 0.1
|
111
|
+
ronin-db: ~> 0.2
|
112
|
+
ronin-listener: ~> 0.1
|
113
|
+
ronin-nmap: ~> 0.1
|
114
|
+
ronin-masscan: ~> 0.1
|
115
|
+
ronin-recon: ~> 0.1
|
116
|
+
ronin-fuzzer: ~> 0.2
|
117
|
+
ronin-web: ~> 2.0
|
118
118
|
ronin-code-asm: ~> 1.0
|
119
119
|
ronin-code-sql: ~> 2.0
|
120
|
-
ronin-payloads: ~> 0.2
|
121
|
-
ronin-exploits: ~> 1.1
|
122
|
-
ronin-vulns: ~> 0.2
|
123
|
-
ronin-app: ~> 0.1
|
120
|
+
ronin-payloads: ~> 0.2
|
121
|
+
ronin-exploits: ~> 1.1
|
122
|
+
ronin-vulns: ~> 0.2
|
123
|
+
ronin-app: ~> 0.1
|
124
124
|
|
125
125
|
development_dependencies:
|
126
126
|
bundler: ~> 2.0
|
@@ -17,6 +17,7 @@
|
|
17
17
|
#
|
18
18
|
|
19
19
|
require 'ronin/cli/command'
|
20
|
+
require 'ronin/core/cli/logging'
|
20
21
|
require 'ronin/dns/proxy'
|
21
22
|
|
22
23
|
module Ronin
|
@@ -45,6 +46,8 @@ module Ronin
|
|
45
46
|
#
|
46
47
|
class DnsProxy < Command
|
47
48
|
|
49
|
+
include Core::CLI::Logging
|
50
|
+
|
48
51
|
usage '[options] [HOST] PORT'
|
49
52
|
|
50
53
|
option :nameserver, short: '-n',
|
@@ -104,6 +107,7 @@ module Ronin
|
|
104
107
|
def run(host='127.0.0.1',port)
|
105
108
|
port = port.to_i
|
106
109
|
|
110
|
+
log_info "Listening on #{host}:#{port} ..."
|
107
111
|
DNS::Proxy.run(host,port,**proxy_kwargs)
|
108
112
|
end
|
109
113
|
|
data/lib/ronin/version.rb
CHANGED
data/man/ronin-completion.1
CHANGED
@@ -3,10 +3,10 @@
|
|
3
3
|
.TH ronin-completion 1 "2024-01-01" Ronin "User Manuals"
|
4
4
|
.SH NAME
|
5
5
|
.PP
|
6
|
-
ronin\-completion \- Manages shell completion rules for \fBronin
|
6
|
+
ronin\-completion \- Manages shell completion rules for \fBronin\fR
|
7
7
|
.SH SYNOPSIS
|
8
8
|
.PP
|
9
|
-
\fBronin
|
9
|
+
\fBronin completion\fR \[lB]\fIoptions\fP\[rB]
|
10
10
|
.SH DESCRIPTION
|
11
11
|
.PP
|
12
12
|
The \fBronin completion\fR command can print, install, or uninstall shell
|
@@ -45,7 +45,7 @@ Specifies the root prefix for the file system\.
|
|
45
45
|
.TP
|
46
46
|
\fIHOME\fP
|
47
47
|
Specifies the home directory of the user\. Ronin will search for the
|
48
|
-
\fB\[ti]\[sl]\.cache\[sl]ronin
|
48
|
+
\fB\[ti]\[sl]\.cache\[sl]ronin\fR cache directory within the home directory\.
|
49
49
|
.TP
|
50
50
|
\fIXDG\[ru]DATA\[ru]HOME\fP
|
51
51
|
Specifies the data directory to use\. Defaults to \fB\[Do]HOME\[sl]\.local\[sl]share\fR\.
|
@@ -68,7 +68,7 @@ Prints all shell completion rules instead of installing them\.
|
|
68
68
|
Installs all shell completion rules for \fBronin\fR and the other \fBronin\-*\fR
|
69
69
|
commands\.
|
70
70
|
.TP
|
71
|
-
\fBronin
|
71
|
+
\fBronin completion \-\-uninstall\fR
|
72
72
|
Uninstalls all shell completion rules for \fBronin\fR and the other \fBronin\-*\fR
|
73
73
|
commands\.
|
74
74
|
.SH AUTHOR
|
data/man/ronin-completion.1.md
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
## NAME
|
4
4
|
|
5
|
-
ronin-completion - Manages shell completion rules for `ronin
|
5
|
+
ronin-completion - Manages shell completion rules for `ronin`
|
6
6
|
|
7
7
|
## SYNOPSIS
|
8
8
|
|
9
|
-
`ronin
|
9
|
+
`ronin completion` [*options*]
|
10
10
|
|
11
11
|
## DESCRIPTION
|
12
12
|
|
@@ -45,7 +45,7 @@ order to enable Zsh's Bash completion compatibility layer:
|
|
45
45
|
|
46
46
|
*HOME*
|
47
47
|
: Specifies the home directory of the user. Ronin will search for the
|
48
|
-
`~/.cache/ronin
|
48
|
+
`~/.cache/ronin` cache directory within the home directory.
|
49
49
|
|
50
50
|
*XDG_DATA_HOME*
|
51
51
|
: Specifies the data directory to use. Defaults to `$HOME/.local/share`.
|
@@ -70,7 +70,7 @@ order to enable Zsh's Bash completion compatibility layer:
|
|
70
70
|
: Installs all shell completion rules for `ronin` and the other `ronin-*`
|
71
71
|
commands.
|
72
72
|
|
73
|
-
`ronin
|
73
|
+
`ronin completion --uninstall`
|
74
74
|
: Uninstalls all shell completion rules for `ronin` and the other `ronin-*`
|
75
75
|
commands.
|
76
76
|
|
data/man/ronin-dns-proxy.1
CHANGED
data/man/ronin-dns-proxy.1.md
CHANGED
data/man/ronin-pack.1
CHANGED
@@ -5,6 +5,8 @@
|
|
5
5
|
.PP
|
6
6
|
ronin\-pack \- Packs values into binary data\.
|
7
7
|
.SH SYNOPSIS
|
8
|
+
.PP
|
9
|
+
\fBronin pack\fR \[lB]\fIoptions\fP\[rB] \[lC]\fITYPE\fP\fB:\fR\fIVALUE\fP \[or] \fITYPE\fP\fB\[lB]\fR\fINUM\fP\fB\[rB]\fR:\fIVALUE\fP\[lB]\fB,\fR\fIVALUE\fP\.\.\.\[rB]\[rC] \[lB]\.\.\.\[rB]
|
8
10
|
.SH DESCRIPTION
|
9
11
|
.PP
|
10
12
|
Packs the list of \fIVALUE\fPs into binary data based on their C \fITYPE\fP name\.
|
data/man/ronin-pack.1.md
CHANGED
@@ -6,7 +6,7 @@ ronin-pack - Packs values into binary data.
|
|
6
6
|
|
7
7
|
## SYNOPSIS
|
8
8
|
|
9
|
-
`ronin pack` [*options
|
9
|
+
`ronin pack` \[*options*\] {*TYPE*`:`*VALUE* \| *TYPE*`[`*NUM*`]`:*VALUE*\[`,`*VALUE*...\]} \[...\]
|
10
10
|
|
11
11
|
## DESCRIPTION
|
12
12
|
|
data/man/ronin-unpack.1
CHANGED
@@ -5,6 +5,8 @@
|
|
5
5
|
.PP
|
6
6
|
ronin\-pack \- Packs values into binary data\.
|
7
7
|
.SH SYNOPSIS
|
8
|
+
.PP
|
9
|
+
\fBronin pack\fR \[lB]\fIoptions\fP\[rB] \[lC]\fITYPE\fP\fB:\fR\fIVALUE\fP \[or] \fITYPE\fP\fB\[lB]\fR\fINUM\fP\fB\[rB]\fR:\fIVALUE\fP\[lB]\fB,\fR\fIVALUE\fP\.\.\.\[rB] \[lB]\.\.\.\[rB]
|
8
10
|
.SH DESCRIPTION
|
9
11
|
.PP
|
10
12
|
Unpacks binary data into values for the given C \fITYPE\fP names\.
|
data/man/ronin-unpack.1.md
CHANGED
@@ -6,7 +6,7 @@ ronin-pack - Packs values into binary data.
|
|
6
6
|
|
7
7
|
## SYNOPSIS
|
8
8
|
|
9
|
-
`ronin pack` [*options
|
9
|
+
`ronin pack` \[*options*\] {*TYPE*`:`*VALUE* \| *TYPE*`[`*NUM*`]`:*VALUE*[`,`*VALUE*...] \[...\]
|
10
10
|
|
11
11
|
## DESCRIPTION
|
12
12
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ronin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.0
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Postmodern
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-07-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: open_namespace
|
@@ -72,168 +72,168 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 1.1
|
75
|
+
version: '1.1'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 1.1
|
82
|
+
version: '1.1'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: ronin-dns-proxy
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: 0.1
|
89
|
+
version: '0.1'
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: 0.1
|
96
|
+
version: '0.1'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: ronin-core
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: 0.2
|
103
|
+
version: '0.2'
|
104
104
|
type: :runtime
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: 0.2
|
110
|
+
version: '0.2'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: ronin-repos
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
115
|
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: 0.2
|
117
|
+
version: '0.2'
|
118
118
|
type: :runtime
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: 0.2
|
124
|
+
version: '0.2'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: ronin-wordlists
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
129
|
- - "~>"
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: 0.1
|
131
|
+
version: '0.1'
|
132
132
|
type: :runtime
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version: 0.1
|
138
|
+
version: '0.1'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: ronin-db
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
143
|
- - "~>"
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version: 0.2
|
145
|
+
version: '0.2'
|
146
146
|
type: :runtime
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
150
|
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version: 0.2
|
152
|
+
version: '0.2'
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: ronin-listener
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
156
156
|
requirements:
|
157
157
|
- - "~>"
|
158
158
|
- !ruby/object:Gem::Version
|
159
|
-
version: 0.1
|
159
|
+
version: '0.1'
|
160
160
|
type: :runtime
|
161
161
|
prerelease: false
|
162
162
|
version_requirements: !ruby/object:Gem::Requirement
|
163
163
|
requirements:
|
164
164
|
- - "~>"
|
165
165
|
- !ruby/object:Gem::Version
|
166
|
-
version: 0.1
|
166
|
+
version: '0.1'
|
167
167
|
- !ruby/object:Gem::Dependency
|
168
168
|
name: ronin-nmap
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
170
170
|
requirements:
|
171
171
|
- - "~>"
|
172
172
|
- !ruby/object:Gem::Version
|
173
|
-
version: 0.1
|
173
|
+
version: '0.1'
|
174
174
|
type: :runtime
|
175
175
|
prerelease: false
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
177
177
|
requirements:
|
178
178
|
- - "~>"
|
179
179
|
- !ruby/object:Gem::Version
|
180
|
-
version: 0.1
|
180
|
+
version: '0.1'
|
181
181
|
- !ruby/object:Gem::Dependency
|
182
182
|
name: ronin-masscan
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|
184
184
|
requirements:
|
185
185
|
- - "~>"
|
186
186
|
- !ruby/object:Gem::Version
|
187
|
-
version: 0.1
|
187
|
+
version: '0.1'
|
188
188
|
type: :runtime
|
189
189
|
prerelease: false
|
190
190
|
version_requirements: !ruby/object:Gem::Requirement
|
191
191
|
requirements:
|
192
192
|
- - "~>"
|
193
193
|
- !ruby/object:Gem::Version
|
194
|
-
version: 0.1
|
194
|
+
version: '0.1'
|
195
195
|
- !ruby/object:Gem::Dependency
|
196
196
|
name: ronin-recon
|
197
197
|
requirement: !ruby/object:Gem::Requirement
|
198
198
|
requirements:
|
199
199
|
- - "~>"
|
200
200
|
- !ruby/object:Gem::Version
|
201
|
-
version: 0.1
|
201
|
+
version: '0.1'
|
202
202
|
type: :runtime
|
203
203
|
prerelease: false
|
204
204
|
version_requirements: !ruby/object:Gem::Requirement
|
205
205
|
requirements:
|
206
206
|
- - "~>"
|
207
207
|
- !ruby/object:Gem::Version
|
208
|
-
version: 0.1
|
208
|
+
version: '0.1'
|
209
209
|
- !ruby/object:Gem::Dependency
|
210
210
|
name: ronin-fuzzer
|
211
211
|
requirement: !ruby/object:Gem::Requirement
|
212
212
|
requirements:
|
213
213
|
- - "~>"
|
214
214
|
- !ruby/object:Gem::Version
|
215
|
-
version: 0.2
|
215
|
+
version: '0.2'
|
216
216
|
type: :runtime
|
217
217
|
prerelease: false
|
218
218
|
version_requirements: !ruby/object:Gem::Requirement
|
219
219
|
requirements:
|
220
220
|
- - "~>"
|
221
221
|
- !ruby/object:Gem::Version
|
222
|
-
version: 0.2
|
222
|
+
version: '0.2'
|
223
223
|
- !ruby/object:Gem::Dependency
|
224
224
|
name: ronin-web
|
225
225
|
requirement: !ruby/object:Gem::Requirement
|
226
226
|
requirements:
|
227
227
|
- - "~>"
|
228
228
|
- !ruby/object:Gem::Version
|
229
|
-
version: 2.0
|
229
|
+
version: '2.0'
|
230
230
|
type: :runtime
|
231
231
|
prerelease: false
|
232
232
|
version_requirements: !ruby/object:Gem::Requirement
|
233
233
|
requirements:
|
234
234
|
- - "~>"
|
235
235
|
- !ruby/object:Gem::Version
|
236
|
-
version: 2.0
|
236
|
+
version: '2.0'
|
237
237
|
- !ruby/object:Gem::Dependency
|
238
238
|
name: ronin-code-asm
|
239
239
|
requirement: !ruby/object:Gem::Requirement
|
@@ -268,56 +268,56 @@ dependencies:
|
|
268
268
|
requirements:
|
269
269
|
- - "~>"
|
270
270
|
- !ruby/object:Gem::Version
|
271
|
-
version: 0.2
|
271
|
+
version: '0.2'
|
272
272
|
type: :runtime
|
273
273
|
prerelease: false
|
274
274
|
version_requirements: !ruby/object:Gem::Requirement
|
275
275
|
requirements:
|
276
276
|
- - "~>"
|
277
277
|
- !ruby/object:Gem::Version
|
278
|
-
version: 0.2
|
278
|
+
version: '0.2'
|
279
279
|
- !ruby/object:Gem::Dependency
|
280
280
|
name: ronin-exploits
|
281
281
|
requirement: !ruby/object:Gem::Requirement
|
282
282
|
requirements:
|
283
283
|
- - "~>"
|
284
284
|
- !ruby/object:Gem::Version
|
285
|
-
version: 1.1
|
285
|
+
version: '1.1'
|
286
286
|
type: :runtime
|
287
287
|
prerelease: false
|
288
288
|
version_requirements: !ruby/object:Gem::Requirement
|
289
289
|
requirements:
|
290
290
|
- - "~>"
|
291
291
|
- !ruby/object:Gem::Version
|
292
|
-
version: 1.1
|
292
|
+
version: '1.1'
|
293
293
|
- !ruby/object:Gem::Dependency
|
294
294
|
name: ronin-vulns
|
295
295
|
requirement: !ruby/object:Gem::Requirement
|
296
296
|
requirements:
|
297
297
|
- - "~>"
|
298
298
|
- !ruby/object:Gem::Version
|
299
|
-
version: 0.2
|
299
|
+
version: '0.2'
|
300
300
|
type: :runtime
|
301
301
|
prerelease: false
|
302
302
|
version_requirements: !ruby/object:Gem::Requirement
|
303
303
|
requirements:
|
304
304
|
- - "~>"
|
305
305
|
- !ruby/object:Gem::Version
|
306
|
-
version: 0.2
|
306
|
+
version: '0.2'
|
307
307
|
- !ruby/object:Gem::Dependency
|
308
308
|
name: ronin-app
|
309
309
|
requirement: !ruby/object:Gem::Requirement
|
310
310
|
requirements:
|
311
311
|
- - "~>"
|
312
312
|
- !ruby/object:Gem::Version
|
313
|
-
version: 0.1
|
313
|
+
version: '0.1'
|
314
314
|
type: :runtime
|
315
315
|
prerelease: false
|
316
316
|
version_requirements: !ruby/object:Gem::Requirement
|
317
317
|
requirements:
|
318
318
|
- - "~>"
|
319
319
|
- !ruby/object:Gem::Version
|
320
|
-
version: 0.1
|
320
|
+
version: '0.1'
|
321
321
|
- !ruby/object:Gem::Dependency
|
322
322
|
name: bundler
|
323
323
|
requirement: !ruby/object:Gem::Requirement
|
@@ -336,8 +336,9 @@ description: Ronin is a free and Open Source Ruby toolkit for security research
|
|
336
336
|
development. Ronin contains many different CLI commands and Ruby libraries for a
|
337
337
|
variety of security tasks, such as encoding/decoding data, filter IPs/hosts/URLs,
|
338
338
|
querying ASNs, querying DNS, HTTP, scanning for web vulnerabilities, spidering websites,
|
339
|
-
|
340
|
-
new exploits, managing local databases, fuzzing data,
|
339
|
+
installing 3rd-party repositories of exploits and/or payloads, running exploits,
|
340
|
+
developing new exploits, managing local databases, fuzzing data, performing recon,
|
341
|
+
and much more.
|
341
342
|
email: postmodern.mod3@gmail.com
|
342
343
|
executables:
|
343
344
|
- ronin
|
@@ -670,7 +671,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
670
671
|
- !ruby/object:Gem::Version
|
671
672
|
version: '0'
|
672
673
|
requirements: []
|
673
|
-
rubygems_version: 3.
|
674
|
+
rubygems_version: 3.5.11
|
674
675
|
signing_key:
|
675
676
|
specification_version: 4
|
676
677
|
summary: A Ruby toolkit for security research and development.
|