ronin 2.0.3 → 2.0.5
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/ChangeLog.md +27 -0
- data/README.md +7 -7
- data/gemspec.yml +3 -3
- data/lib/ronin/cli/commands/bitflip.rb +1 -0
- data/lib/ronin/cli/commands/cert_gen.rb +2 -0
- data/lib/ronin/cli/commands/dns.rb +18 -16
- data/lib/ronin/cli/commands/host.rb +3 -18
- data/lib/ronin/cli/commands/typosquat.rb +5 -2
- data/lib/ronin/cli/dns.rb +18 -17
- data/lib/ronin/version.rb +1 -1
- data/lib/ronin.rb +0 -1
- data/man/ronin-bitflip.1 +4 -0
- data/man/ronin-bitflip.1.md +3 -0
- data/man/ronin-cert-gen.1 +1 -1
- data/man/ronin-cert-gen.1.md +1 -1
- data/man/ronin-typosquat.1 +6 -2
- data/man/ronin-typosquat.1.md +5 -2
- metadata +12 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '08bb51807afd02798a60cebf03216fbfe57377457c72d97a00f416c751746022'
|
4
|
+
data.tar.gz: 9bd7e69d802831cb62f930f6f9f0f0038f73c10cc7ff0f3b5425b33108d57f77
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 27f6cb062f99d0ad85726ff012d4bc299d9d05aa56f267f7759901aeeec3bac8f08b621fe013b1c0f5a265c2da545714ceffe18f88e554d8dcc0e4dac3efe469
|
7
|
+
data.tar.gz: d2a83e1a9a6284511540cfa5e059bac66eca79a1f73080f80ffe37509a35c99a231957d26fc8e2bd0adc8fa9929b18625f9d23cfde64d595aa3502a2eda0dee5
|
data/ChangeLog.md
CHANGED
@@ -1,3 +1,30 @@
|
|
1
|
+
### 2.0.5 / 2023-09-19
|
2
|
+
|
3
|
+
* Require [wordlist] ~> 1.0, >= 1.0.3 for macOS fixes.
|
4
|
+
* Require [ronin-support] ~> 1.0, >= 1.0.3.
|
5
|
+
|
6
|
+
#### CLI
|
7
|
+
|
8
|
+
* Fixed a bug in `ronin cert-gen` that prevented generating a new certificate
|
9
|
+
signed with an EC key (ex: `ronin cert-gen --key-type ec ...`).
|
10
|
+
* Fixed the formatting of the `ronin cert-gen` man-page.
|
11
|
+
|
12
|
+
### 2.0.4 / 2023-07-18
|
13
|
+
|
14
|
+
* Require [wordlist] ~> 1.0, >= 1.0.2 for bug fixes.
|
15
|
+
* Require [ronin-core] ~> 0.1, >= 0.1.2 for bug fixes to `ronin irb`.
|
16
|
+
* This fixes an issue with defining and then calling methods inside of the
|
17
|
+
`ronin irb` Ruby shell.
|
18
|
+
|
19
|
+
#### CLI
|
20
|
+
|
21
|
+
* Fixed the `ronin typosquat` command to accept multiple domain arguments.
|
22
|
+
* Added missing `usage` string to the `ronin typosquat` command.
|
23
|
+
* Added missing `-f`,`--file` option to the `ronin typosquat` command.
|
24
|
+
* Fixed a bug in the `ronin host` command where the `-t`,`--query` option was
|
25
|
+
not being honored.
|
26
|
+
* Added missing `--file` option to the `ronin bitflip` man-page and docs.
|
27
|
+
|
1
28
|
### 2.0.3 / 2023-06-12
|
2
29
|
|
3
30
|
* Extend `Ronin::Support` into {Ronin} in order to make their Mixin instance
|
data/README.md
CHANGED
@@ -9,7 +9,6 @@
|
|
9
9
|
* [Issues](https://github.com/ronin-rb/ronin/issues)
|
10
10
|
* [Documentation](https://ronin-rb.dev/docs/ronin/frames)
|
11
11
|
* [Discord](https://discord.gg/6WAb3PsVX9) |
|
12
|
-
[Twitter](https://twitter.com/ronin_rb) |
|
13
12
|
[Mastodon](https://infosec.exchange/@ronin_rb)
|
14
13
|
|
15
14
|
## Description
|
@@ -801,9 +800,9 @@ $ ronin url --file urls.txt --status
|
|
801
800
|
* [open_namespace] ~> 0.4
|
802
801
|
* [rouge] ~> 3.0
|
803
802
|
* [async-io] ~> 1.0
|
804
|
-
* [wordlist] ~> 1.0
|
805
|
-
* [ronin-support] ~> 1.0
|
806
|
-
* [ronin-core] ~> 0.1
|
803
|
+
* [wordlist] ~> 1.0, >= 1.0.3
|
804
|
+
* [ronin-support] ~> 1.0, >= 1.0.3
|
805
|
+
* [ronin-core] ~> 0.1, >= 0.1.2
|
807
806
|
* [ronin-repos] ~> 0.1
|
808
807
|
* [ronin-db] ~> 0.1
|
809
808
|
* [ronin-fuzzer] ~> 0.1
|
@@ -824,9 +823,10 @@ curl -o ronin-install.sh https://raw.githubusercontent.com/ronin-rb/scripts/main
|
|
824
823
|
|
825
824
|
### Manually
|
826
825
|
|
827
|
-
|
828
|
-
|
829
|
-
|
826
|
+
See the [manual install][manual-instructions] instructions for how to install
|
827
|
+
Ronin and it's additional dependencies on your platform.
|
828
|
+
|
829
|
+
[manual-instructions]: https://ronin-rb.dev/install/#manual-instructions
|
830
830
|
|
831
831
|
### Docker
|
832
832
|
|
data/gemspec.yml
CHANGED
@@ -94,10 +94,10 @@ dependencies:
|
|
94
94
|
open_namespace: ~> 0.4
|
95
95
|
rouge: ~> 3.0
|
96
96
|
async-io: ~> 1.0
|
97
|
-
wordlist: ~> 1.0
|
97
|
+
wordlist: ~> 1.0, >= 1.0.3
|
98
98
|
# Ronin dependencies:
|
99
|
-
ronin-support: ~> 1.0, >= 1.0.
|
100
|
-
ronin-core: ~> 0.1, >= 0.1.
|
99
|
+
ronin-support: ~> 1.0, >= 1.0.3
|
100
|
+
ronin-core: ~> 0.1, >= 0.1.2
|
101
101
|
ronin-repos: ~> 0.1
|
102
102
|
ronin-db: ~> 0.1
|
103
103
|
ronin-fuzzer: ~> 0.1
|
@@ -35,6 +35,7 @@ module Ronin
|
|
35
35
|
#
|
36
36
|
# ## Options
|
37
37
|
#
|
38
|
+
# -f, --file FILE Optional file to read values from
|
38
39
|
# -N, --numeric Searches for numeric characters (0-9)
|
39
40
|
# -O, --octal Searches for octal characters (0-7)
|
40
41
|
# -X, --upper-hex Searches for uppercase hexadecimal (0-9, A-F)
|
@@ -50,22 +50,7 @@ module Ronin
|
|
50
50
|
|
51
51
|
option :type, short: '-t',
|
52
52
|
value: {
|
53
|
-
type:
|
54
|
-
A: :a,
|
55
|
-
AAAA: :aaaa,
|
56
|
-
ANY: :any,
|
57
|
-
CNAME: :cname,
|
58
|
-
HINFO: :hinfo,
|
59
|
-
LOC: :loc,
|
60
|
-
MINFO: :minfo,
|
61
|
-
MX: :mx,
|
62
|
-
NS: :ns,
|
63
|
-
PTR: :ptr,
|
64
|
-
SOA: :soa,
|
65
|
-
SRV: :srv,
|
66
|
-
TXT: :txt,
|
67
|
-
WKS: :wks
|
68
|
-
}
|
53
|
+
type: RECORD_TYPES
|
69
54
|
},
|
70
55
|
desc: 'Queries a specific type of DNS record'
|
71
56
|
|
@@ -85,6 +70,23 @@ module Ronin
|
|
85
70
|
print_records(query_records(host))
|
86
71
|
end
|
87
72
|
|
73
|
+
#
|
74
|
+
# Queries the records for the given host name.
|
75
|
+
#
|
76
|
+
# @param [String] host
|
77
|
+
# The host name to query.
|
78
|
+
#
|
79
|
+
# @return [Array<Resolv::DNS::Resource>]
|
80
|
+
# The returned DNS resource records.
|
81
|
+
#
|
82
|
+
def query_records(host)
|
83
|
+
if options[:type]
|
84
|
+
resolver.get_records(host,options[:type].downcase)
|
85
|
+
else
|
86
|
+
resolver.get_a_records(host) + resolver.get_aaaa_records(host)
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
88
90
|
end
|
89
91
|
end
|
90
92
|
end
|
@@ -116,28 +116,13 @@ module Ronin
|
|
116
116
|
|
117
117
|
option :has_records, short: '-H',
|
118
118
|
value: {
|
119
|
-
type:
|
120
|
-
A: :a,
|
121
|
-
AAAA: :aaaa,
|
122
|
-
ANY: :any,
|
123
|
-
CNAME: :cname,
|
124
|
-
HINFO: :hinfo,
|
125
|
-
LOC: :loc,
|
126
|
-
MINFO: :minfo,
|
127
|
-
MX: :mx,
|
128
|
-
NS: :ns,
|
129
|
-
PTR: :ptr,
|
130
|
-
SOA: :soa,
|
131
|
-
SRV: :srv,
|
132
|
-
TXT: :txt,
|
133
|
-
WKS: :wks
|
134
|
-
}
|
119
|
+
type: RECORD_TYPES
|
135
120
|
},
|
136
121
|
desc: 'Filters hostnames that have a certain DNS record type'
|
137
122
|
|
138
123
|
option :query, short: '-t',
|
139
124
|
value: {
|
140
|
-
type:
|
125
|
+
type: RECORD_TYPES
|
141
126
|
},
|
142
127
|
desc: 'Queries a specific type of DNS record'
|
143
128
|
|
@@ -211,7 +196,7 @@ module Ronin
|
|
211
196
|
|
212
197
|
puts host unless records.empty?
|
213
198
|
elsif options[:query]
|
214
|
-
print_records(
|
199
|
+
print_records(host.get_records(options[:query]))
|
215
200
|
else
|
216
201
|
puts host.name
|
217
202
|
end
|
@@ -29,10 +29,11 @@ module Ronin
|
|
29
29
|
#
|
30
30
|
# ## Usage
|
31
31
|
#
|
32
|
-
# ronin typosquat [options] DOMAIN
|
32
|
+
# ronin typosquat [options] [DOMAIN ...]
|
33
33
|
#
|
34
34
|
# ## Options
|
35
35
|
#
|
36
|
+
# -f, --file FILE Optional file to read values from
|
36
37
|
# --omit-chars Toggles whether to omit repeated characters
|
37
38
|
# --repeat-chars Toggles whether to repeat single characters
|
38
39
|
# --swap-chars Toggles whether to swap certain common character pairs
|
@@ -50,6 +51,8 @@ module Ronin
|
|
50
51
|
|
51
52
|
include TypoOptions
|
52
53
|
|
54
|
+
usage '[options] [DOMAIN ...]'
|
55
|
+
|
53
56
|
option :has_addresses, desc: 'Print typo squat domains with addresses'
|
54
57
|
|
55
58
|
option :registered, desc: 'Print typo squat domains that are already registered'
|
@@ -69,7 +72,7 @@ module Ronin
|
|
69
72
|
# @param [String] domain
|
70
73
|
# A word argument to typo.
|
71
74
|
#
|
72
|
-
def
|
75
|
+
def process_value(domain)
|
73
76
|
if options[:has_addresses]
|
74
77
|
each_typo_squat(domain) do |typo_domain|
|
75
78
|
if typo_domain.has_addresses?
|
data/lib/ronin/cli/dns.rb
CHANGED
@@ -24,6 +24,24 @@ module Ronin
|
|
24
24
|
# Mixin for adding DNS support to commands.
|
25
25
|
#
|
26
26
|
module DNS
|
27
|
+
# Mapping of DNS record types and lowercase versions.
|
28
|
+
RECORD_TYPES = {
|
29
|
+
A: :a,
|
30
|
+
AAAA: :aaaa,
|
31
|
+
ANY: :any,
|
32
|
+
CNAME: :cname,
|
33
|
+
HINFO: :hinfo,
|
34
|
+
LOC: :loc,
|
35
|
+
MINFO: :minfo,
|
36
|
+
MX: :mx,
|
37
|
+
NS: :ns,
|
38
|
+
PTR: :ptr,
|
39
|
+
SOA: :soa,
|
40
|
+
SRV: :srv,
|
41
|
+
TXT: :txt,
|
42
|
+
WKS: :wks
|
43
|
+
}
|
44
|
+
|
27
45
|
#
|
28
46
|
# Adds the `-N,--nameserver HOST|IP` option to the command which is
|
29
47
|
# including {DNS}.
|
@@ -72,23 +90,6 @@ module Ronin
|
|
72
90
|
end
|
73
91
|
end
|
74
92
|
|
75
|
-
#
|
76
|
-
# Queries the records for the given host name.
|
77
|
-
#
|
78
|
-
# @param [String] host
|
79
|
-
# The host name to query.
|
80
|
-
#
|
81
|
-
# @return [Array<Resolv::DNS::Resource>]
|
82
|
-
# The returned DNS resource records.
|
83
|
-
#
|
84
|
-
def query_records(host)
|
85
|
-
if options[:type]
|
86
|
-
resolver.get_records(host,options[:type].downcase)
|
87
|
-
else
|
88
|
-
resolver.get_a_records(host) + resolver.get_aaaa_records(host)
|
89
|
-
end
|
90
|
-
end
|
91
|
-
|
92
93
|
#
|
93
94
|
# Prints multiple DNS records.
|
94
95
|
#
|
data/lib/ronin/version.rb
CHANGED
data/lib/ronin.rb
CHANGED
data/man/ronin-bitflip.1
CHANGED
data/man/ronin-bitflip.1.md
CHANGED
data/man/ronin-cert-gen.1
CHANGED
data/man/ronin-cert-gen.1.md
CHANGED
data/man/ronin-typosquat.1
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
.SH SYNOPSIS
|
6
6
|
.LP
|
7
7
|
.HP
|
8
|
-
\fBronin typosquat\fR \[lB]\fIoptions\fP\[rB] DOMAIN
|
8
|
+
\fBronin typosquat\fR \[lB]\fIoptions\fP\[rB] \[lB]DOMAIN \.\.\.\[rB]
|
9
9
|
.LP
|
10
10
|
.SH DESCRIPTION
|
11
11
|
.LP
|
@@ -16,11 +16,15 @@ Finds typo squatted domains\.
|
|
16
16
|
.LP
|
17
17
|
.TP
|
18
18
|
\fIDOMAIN\fP
|
19
|
-
|
19
|
+
A domain to check for typo squats\.
|
20
20
|
.LP
|
21
21
|
.SH OPTIONS
|
22
22
|
.LP
|
23
23
|
.TP
|
24
|
+
\fB-f\fR, \fB--file\fR \fIFILE\fP
|
25
|
+
Optional file to read domains from\.
|
26
|
+
.LP
|
27
|
+
.TP
|
24
28
|
\fB--omit-chars\fR
|
25
29
|
Toggles whether to omit repeated characters\.
|
26
30
|
.LP
|
data/man/ronin-typosquat.1.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
## SYNOPSIS
|
4
4
|
|
5
|
-
`ronin typosquat` [*options*] DOMAIN
|
5
|
+
`ronin typosquat` [*options*] [DOMAIN ...]
|
6
6
|
|
7
7
|
## DESCRIPTION
|
8
8
|
|
@@ -11,10 +11,13 @@ Finds typo squatted domains.
|
|
11
11
|
## ARGUMENTS
|
12
12
|
|
13
13
|
*DOMAIN*
|
14
|
-
|
14
|
+
A domain to check for typo squats.
|
15
15
|
|
16
16
|
## OPTIONS
|
17
17
|
|
18
|
+
`-f`, `--file` *FILE*
|
19
|
+
Optional file to read domains from.
|
20
|
+
|
18
21
|
`--omit-chars`
|
19
22
|
Toggles whether to omit repeated characters.
|
20
23
|
|
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.0.
|
4
|
+
version: 2.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Postmodern
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-09-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: open_namespace
|
@@ -59,6 +59,9 @@ dependencies:
|
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '1.0'
|
62
|
+
- - ">="
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: 1.0.3
|
62
65
|
type: :runtime
|
63
66
|
prerelease: false
|
64
67
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -66,6 +69,9 @@ dependencies:
|
|
66
69
|
- - "~>"
|
67
70
|
- !ruby/object:Gem::Version
|
68
71
|
version: '1.0'
|
72
|
+
- - ">="
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: 1.0.3
|
69
75
|
- !ruby/object:Gem::Dependency
|
70
76
|
name: ronin-support
|
71
77
|
requirement: !ruby/object:Gem::Requirement
|
@@ -75,7 +81,7 @@ dependencies:
|
|
75
81
|
version: '1.0'
|
76
82
|
- - ">="
|
77
83
|
- !ruby/object:Gem::Version
|
78
|
-
version: 1.0.
|
84
|
+
version: 1.0.3
|
79
85
|
type: :runtime
|
80
86
|
prerelease: false
|
81
87
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -85,7 +91,7 @@ dependencies:
|
|
85
91
|
version: '1.0'
|
86
92
|
- - ">="
|
87
93
|
- !ruby/object:Gem::Version
|
88
|
-
version: 1.0.
|
94
|
+
version: 1.0.3
|
89
95
|
- !ruby/object:Gem::Dependency
|
90
96
|
name: ronin-core
|
91
97
|
requirement: !ruby/object:Gem::Requirement
|
@@ -95,7 +101,7 @@ dependencies:
|
|
95
101
|
version: '0.1'
|
96
102
|
- - ">="
|
97
103
|
- !ruby/object:Gem::Version
|
98
|
-
version: 0.1.
|
104
|
+
version: 0.1.2
|
99
105
|
type: :runtime
|
100
106
|
prerelease: false
|
101
107
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -105,7 +111,7 @@ dependencies:
|
|
105
111
|
version: '0.1'
|
106
112
|
- - ">="
|
107
113
|
- !ruby/object:Gem::Version
|
108
|
-
version: 0.1.
|
114
|
+
version: 0.1.2
|
109
115
|
- !ruby/object:Gem::Dependency
|
110
116
|
name: ronin-repos
|
111
117
|
requirement: !ruby/object:Gem::Requirement
|