ronin 2.0.5 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (170) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +3 -3
  3. data/.gitignore +1 -0
  4. data/.rubocop.yml +5 -1
  5. data/.ruby-version +1 -1
  6. data/ChangeLog.md +62 -1
  7. data/Gemfile +66 -29
  8. data/README.md +165 -20
  9. data/Rakefile +9 -0
  10. data/data/completions/ronin +655 -0
  11. data/data/templates/dns_proxy.rb.erb +35 -0
  12. data/gemspec.yml +29 -15
  13. data/lib/ronin/cli/binary_template.rb +124 -0
  14. data/lib/ronin/cli/commands/archive.rb +104 -0
  15. data/lib/ronin/cli/commands/banner_grab.rb +2 -0
  16. data/lib/ronin/cli/commands/bitflip.rb +1 -1
  17. data/lib/ronin/cli/commands/bitsquat.rb +119 -0
  18. data/lib/ronin/cli/commands/cert_dump.rb +20 -4
  19. data/lib/ronin/cli/commands/cert_gen.rb +9 -19
  20. data/lib/ronin/cli/commands/cert_grab.rb +4 -3
  21. data/lib/ronin/cli/commands/completion.rb +115 -0
  22. data/lib/ronin/cli/commands/dns_proxy.rb +239 -0
  23. data/lib/ronin/cli/commands/http.rb +80 -8
  24. data/lib/ronin/cli/commands/ip.rb +101 -0
  25. data/lib/ronin/cli/commands/iprange.rb +25 -8
  26. data/lib/ronin/cli/commands/netcat.rb +2 -0
  27. data/lib/ronin/cli/commands/new/dns_listener.rb +37 -0
  28. data/lib/ronin/cli/commands/new/dns_proxy.rb +99 -0
  29. data/lib/ronin/cli/commands/new/exploit.rb +34 -0
  30. data/lib/ronin/cli/commands/new/http_listener.rb +37 -0
  31. data/lib/ronin/cli/commands/new/nokogiri.rb +33 -0
  32. data/lib/ronin/cli/commands/new/payload.rb +34 -0
  33. data/lib/ronin/cli/commands/new/project.rb +1 -1
  34. data/lib/ronin/cli/commands/new/script.rb +1 -1
  35. data/lib/ronin/cli/commands/new/web_app.rb +37 -0
  36. data/lib/ronin/cli/commands/new/web_server.rb +37 -0
  37. data/lib/ronin/cli/commands/new/web_spider.rb +37 -0
  38. data/lib/ronin/cli/commands/new.rb +3 -1
  39. data/lib/ronin/cli/commands/pack.rb +339 -0
  40. data/lib/ronin/cli/commands/public_suffix_list.rb +2 -0
  41. data/lib/ronin/cli/commands/tld_list.rb +2 -0
  42. data/lib/ronin/cli/commands/unarchive.rb +128 -0
  43. data/lib/ronin/cli/commands/unhexdump.rb +3 -1
  44. data/lib/ronin/cli/commands/unpack.rb +195 -0
  45. data/lib/ronin/cli/commands/url.rb +2 -0
  46. data/lib/ronin/cli/http_shell.rb +25 -0
  47. data/lib/ronin/cli.rb +10 -0
  48. data/lib/ronin/version.rb +1 -1
  49. data/man/ronin-archive.1.md +49 -0
  50. data/man/ronin-asn.1 +60 -77
  51. data/man/ronin-asn.1.md +25 -21
  52. data/man/ronin-banner-grab.1 +10 -21
  53. data/man/ronin-banner-grab.1.md +9 -5
  54. data/man/ronin-bitflip.1 +35 -61
  55. data/man/ronin-bitflip.1.md +30 -26
  56. data/man/ronin-bitsquat.1 +40 -0
  57. data/man/ronin-bitsquat.1.md +43 -0
  58. data/man/ronin-cert-dump.1 +44 -54
  59. data/man/ronin-cert-dump.1.md +18 -14
  60. data/man/ronin-cert-gen.1 +73 -94
  61. data/man/ronin-cert-gen.1.md +38 -34
  62. data/man/ronin-cert-grab.1 +29 -37
  63. data/man/ronin-cert-grab.1.md +12 -8
  64. data/man/ronin-completion.1 +78 -0
  65. data/man/ronin-completion.1.md +80 -0
  66. data/man/ronin-decode.1 +32 -63
  67. data/man/ronin-decode.1.md +29 -25
  68. data/man/ronin-decrypt.1 +42 -57
  69. data/man/ronin-decrypt.1.md +20 -16
  70. data/man/ronin-dns-proxy.1 +100 -0
  71. data/man/ronin-dns-proxy.1.md +70 -0
  72. data/man/ronin-dns.1 +10 -21
  73. data/man/ronin-dns.1.md +9 -5
  74. data/man/ronin-email-addr.1 +27 -40
  75. data/man/ronin-email-addr.1.md +15 -11
  76. data/man/ronin-encode.1 +93 -63
  77. data/man/ronin-encode.1.md +64 -26
  78. data/man/ronin-encrypt.1 +42 -57
  79. data/man/ronin-encrypt.1.md +20 -16
  80. data/man/ronin-entropy.1 +11 -21
  81. data/man/ronin-entropy.1.md +8 -4
  82. data/man/ronin-escape.1 +22 -46
  83. data/man/ronin-escape.1.md +22 -18
  84. data/man/ronin-extract.1 +74 -149
  85. data/man/ronin-extract.1.md +73 -69
  86. data/man/ronin-grep.1 +77 -155
  87. data/man/ronin-grep.1.md +76 -72
  88. data/man/ronin-help.1 +3 -14
  89. data/man/ronin-help.1.md +2 -2
  90. data/man/ronin-hexdump.1 +249 -265
  91. data/man/ronin-hexdump.1.md +93 -89
  92. data/man/ronin-highlight.1 +8 -18
  93. data/man/ronin-highlight.1.md +8 -4
  94. data/man/ronin-hmac.1 +17 -30
  95. data/man/ronin-hmac.1.md +14 -10
  96. data/man/ronin-homoglyph.1 +11 -22
  97. data/man/ronin-homoglyph.1.md +10 -6
  98. data/man/ronin-host.1 +23 -47
  99. data/man/ronin-host.1.md +22 -18
  100. data/man/ronin-http.1 +40 -69
  101. data/man/ronin-http.1.md +40 -30
  102. data/man/ronin-ip.1 +70 -80
  103. data/man/ronin-ip.1.md +44 -28
  104. data/man/ronin-iprange.1 +14 -22
  105. data/man/ronin-iprange.1.md +12 -5
  106. data/man/ronin-irb.1 +9 -17
  107. data/man/ronin-irb.1.md +7 -3
  108. data/man/ronin-md5.1 +13 -24
  109. data/man/ronin-md5.1.md +11 -7
  110. data/man/ronin-netcat.1 +25 -51
  111. data/man/ronin-netcat.1.md +25 -21
  112. data/man/ronin-new-dns-proxy.1 +45 -0
  113. data/man/ronin-new-dns-proxy.1.md +44 -0
  114. data/man/ronin-new-project.1 +32 -45
  115. data/man/ronin-new-project.1.md +11 -11
  116. data/man/ronin-new-script.1 +10 -22
  117. data/man/ronin-new-script.1.md +4 -4
  118. data/man/ronin-new.1 +56 -31
  119. data/man/ronin-new.1.md +48 -8
  120. data/man/ronin-pack.1 +979 -0
  121. data/man/ronin-pack.1.md +929 -0
  122. data/man/ronin-proxy.1 +37 -63
  123. data/man/ronin-proxy.1.md +29 -25
  124. data/man/ronin-public-suffix-list.1 +16 -32
  125. data/man/ronin-public-suffix-list.1.md +13 -9
  126. data/man/ronin-quote.1 +17 -36
  127. data/man/ronin-quote.1.md +17 -13
  128. data/man/ronin-rot.1 +26 -39
  129. data/man/ronin-rot.1.md +15 -11
  130. data/man/ronin-sha1.1 +13 -24
  131. data/man/ronin-sha1.1.md +11 -7
  132. data/man/ronin-sha256.1 +13 -24
  133. data/man/ronin-sha256.1.md +11 -7
  134. data/man/ronin-sha512.1 +13 -24
  135. data/man/ronin-sha512.1.md +11 -7
  136. data/man/ronin-strings.1 +30 -55
  137. data/man/ronin-strings.1.md +27 -23
  138. data/man/ronin-tips.1 +8 -16
  139. data/man/ronin-tips.1.md +7 -3
  140. data/man/ronin-tld-list.1 +16 -32
  141. data/man/ronin-tld-list.1.md +13 -9
  142. data/man/ronin-typo.1 +14 -28
  143. data/man/ronin-typo.1.md +13 -9
  144. data/man/ronin-typosquat.1 +15 -32
  145. data/man/ronin-typosquat.1.md +15 -11
  146. data/man/ronin-unarchive.1.md +41 -0
  147. data/man/ronin-unescape.1 +22 -46
  148. data/man/ronin-unescape.1.md +22 -18
  149. data/man/ronin-unhexdump.1 +81 -91
  150. data/man/ronin-unhexdump.1.md +16 -12
  151. data/man/ronin-unpack.1 +980 -0
  152. data/man/ronin-unpack.1.md +920 -0
  153. data/man/ronin-unquote.1 +17 -36
  154. data/man/ronin-unquote.1.md +17 -13
  155. data/man/ronin-url.1 +19 -40
  156. data/man/ronin-url.1.md +19 -15
  157. data/man/ronin-xor.1 +14 -28
  158. data/man/ronin-xor.1.md +13 -9
  159. data/man/ronin.1 +208 -29
  160. data/man/ronin.1.md +156 -11
  161. data/scripts/setup +58 -0
  162. metadata +157 -67
  163. data/lib/ronin/config.rb +0 -95
  164. /data/data/{new → templates}/project/.gitignore +0 -0
  165. /data/data/{new → templates}/project/.ruby-version.erb +0 -0
  166. /data/data/{new → templates}/project/Dockerfile.erb +0 -0
  167. /data/data/{new → templates}/project/Gemfile.erb +0 -0
  168. /data/data/{new → templates}/project/Rakefile +0 -0
  169. /data/data/{new → templates}/project/project.rb.erb +0 -0
  170. /data/data/{new → templates}/script.rb.erb +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '08bb51807afd02798a60cebf03216fbfe57377457c72d97a00f416c751746022'
4
- data.tar.gz: 9bd7e69d802831cb62f930f6f9f0f0038f73c10cc7ff0f3b5425b33108d57f77
3
+ metadata.gz: 01ef79609ba8a2d4f85d4e93c28337e54a7312db89ed9adc3ef4ed3b9d598ede
4
+ data.tar.gz: 21280fd123fd1553a8806cc4572dc50e5195a501f8e2e562637c4dc8caca1ac8
5
5
  SHA512:
6
- metadata.gz: 27f6cb062f99d0ad85726ff012d4bc299d9d05aa56f267f7759901aeeec3bac8f08b621fe013b1c0f5a265c2da545714ceffe18f88e554d8dcc0e4dac3efe469
7
- data.tar.gz: d2a83e1a9a6284511540cfa5e059bac66eca79a1f73080f80ffe37509a35c99a231957d26fc8e2bd0adc8fa9929b18625f9d23cfde64d595aa3502a2eda0dee5
6
+ metadata.gz: 3d86402cf61e3c195b7a9b0a431477e343abc6de9f7bc3163f78b4588727b2e990f403e2faa403e04cab9a5262c8bdd01781b50953eeae1a168028a6f97305ed
7
+ data.tar.gz: 6a2dce0af7d9b239ab1b058e10838d4fa3d1c2652d499b7e2d089da87e9127b0cee0dd34e3db7c13958834c63f5e5f819a300a6a08f30e9623959394ed3c4025
@@ -9,14 +9,14 @@ jobs:
9
9
  fail-fast: false
10
10
  matrix:
11
11
  ruby:
12
- - '3.0'
13
12
  - '3.1'
14
13
  - '3.2'
14
+ - '3.3'
15
15
  # - jruby
16
16
  - truffleruby
17
17
  name: Ruby ${{ matrix.ruby }}
18
18
  steps:
19
- - uses: actions/checkout@v2
19
+ - uses: actions/checkout@v4
20
20
  - name: Set up Ruby
21
21
  uses: ruby/setup-ruby@v1
22
22
  with:
@@ -35,7 +35,7 @@ jobs:
35
35
  rubocop:
36
36
  runs-on: ubuntu-latest
37
37
  steps:
38
- - uses: actions/checkout@v2
38
+ - uses: actions/checkout@v4
39
39
  - name: Set up Ruby
40
40
  uses: ruby/setup-ruby@v1
41
41
  with:
data/.gitignore CHANGED
@@ -1,4 +1,5 @@
1
1
  /coverage
2
+ /data/completions/ronin
2
3
  /doc
3
4
  /pkg
4
5
  /man/*.[1-9]
data/.rubocop.yml CHANGED
@@ -15,7 +15,11 @@ Layout/ExtraSpacing:
15
15
  Exclude:
16
16
  - 'Gemfile'
17
17
 
18
+ Layout/HeredocIndentation:
19
+ Exclude:
20
+ - 'lib/ronin/cli/commands/pack.rb'
21
+
18
22
  # no need to add `frozen_string_literal: true` to new scripts/projects
19
23
  Style/FrozenStringLiteralComment:
20
24
  Exclude:
21
- - 'data/new/**/*'
25
+ - 'data/templates/**/*'
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- ruby-3.1
1
+ ruby-3.3
data/ChangeLog.md CHANGED
@@ -1,3 +1,56 @@
1
+ ### 2.1.0 / 2024-07-22
2
+
3
+ * Require [Ruby] >- 3.1.0.
4
+ * Require [wordlist] ~> 1.1.
5
+ * Require [ronin-support] ~> 1.1.
6
+ * Require [ronin-dns-proxy] ~> 0.1.
7
+ * Require [ronin-core] ~> 0.2.
8
+ * Require [ronin-repos] ~> 0.2.
9
+ * Require [ronin-db] ~> 0.2.
10
+ * Require [ronin-fuzzer] ~> 0.2.
11
+ * Require [ronin-listener] ~> 0.1.
12
+ * Require [ronin-nmap] ~> 0.1.
13
+ * Require [ronin-masscan] ~> 0.1.
14
+ * Require [ronin-payloads] ~> 0.2.
15
+ * Require [ronin-exploits] ~> 1.1.
16
+ * Require [ronin-vulns] ~> 0.2.
17
+ * Require [ronin-recon] ~> 0.1.
18
+ * Require [ronin-web] ~> 2.0.
19
+ * Require [ronin-wordlists] ~> 0.2.
20
+ * Require [ronin-app] ~> 0.1.
21
+ * Removed unused `Ronin::Config` module.
22
+
23
+ #### CLI
24
+
25
+ * Added the `ronin archive` command.
26
+ * Added the `ronin unarchive` command.
27
+ * Added the `ronin bitsquat` command.
28
+ * Added the `ronin completion` command to install shell completion files
29
+ for all `ronin` and `ronin-*` commands for Bash and Zsh shells.
30
+ * Added the `ronin dns-proxy` command.
31
+ * Added the `ronin new dns-proxy` command.
32
+ * Added the `ronin pack` command.
33
+ * Added the `ronin unpack` command.
34
+ * Added the `--hex-octet`, `--octal-octet`, and `--ipv6-compat` options to the
35
+ `ronin ip` command.
36
+ * Added more accepted values to the `ronin http --user-agent` option.
37
+ * Added the `--cookie` and `--cookie-param` options to the `ronin http` command.
38
+ * Added the `cookie` and `set-cookie` commands to the `ronin http` shell.
39
+ * Added the `-s,--size` option to the `ronin iprange` command.
40
+ * Added support for `ronin cert-gen --key-type dsa`.
41
+ * All `--help` options and the `ronin irb` command now displays the Ronin logo
42
+ ASCII art.
43
+ * Alias `ronin tlds` to the `ronin tld-list` command.
44
+ * Alias `ronin public-suffixes` to the `ronin public-suffix-list` command.
45
+ * Alias `ronin new exploit` to the `ronin-exploits new` command.
46
+ * Alias `ronin new payload` to the `ronin-payloads new` command.
47
+ * Alias `ronin new dns-listener` to the `ronin-listener new dns` command.
48
+ * Alias `ronin new http-listener` to the `ronin-listener new http` command.
49
+ * Alias `ronin new web-app` to the `ronin-web new app` command.
50
+ * Alias `ronin new nokogiri` to the `ronin-web new nokogiri` command.
51
+ * Alias `ronin new web-server` to the `ronin-web new server` command.
52
+ * Alias `ronin new web-spider` to the `ronin-web new spider` command.
53
+
1
54
  ### 2.0.5 / 2023-09-19
2
55
 
3
56
  * Require [wordlist] ~> 1.0, >= 1.0.3 for macOS fixes.
@@ -920,15 +973,21 @@
920
973
  * Auto-indentation enabled.
921
974
  * Pretty-Print loaded.
922
975
 
976
+ [Ruby]: https://www.ruby-lang.org
923
977
  [open_namespace]: https://github.com/postmodern/open_namespace#readme
924
978
  [rouge]: https://github.com/rouge-ruby/rouge#readme
925
979
  [async-io]: https://github.com/socketry/async-io#readme
926
980
  [wordlist]: https://github.com/postmodern/wordlist.rb#readme
927
981
 
928
982
  [ronin-support]: https://github.com/ronin-rb/ronin-support#readme
929
- [ronin-repos]: https://github.com/ronin-rb/ronin-repos#readme
930
983
  [ronin-core]: https://github.com/ronin-rb/ronin-core#readme
984
+ [ronin-repos]: https://github.com/ronin-rb/ronin-repos#readme
931
985
  [ronin-db]: https://github.com/ronin-rb/ronin-db#readme
986
+ [ronin-dns-proxy]: https://github.com/ronin-rb/ronin-dns-proxy#readme
987
+ [ronin-wordlists]: https://github.com/ronin-rb/ronin-wordlists#readme
988
+ [ronin-listener]: https://github.com/ronin-rb/ronin-listener#readme
989
+ [ronin-nmap]: https://github.com/ronin-rb/ronin-nmap#readme
990
+ [ronin-masscan]: https://github.com/ronin-rb/ronin-masscan#readme
932
991
  [ronin-fuzzer]: https://github.com/ronin-rb/ronin-fuzzer#readme
933
992
  [ronin-web]: https://github.com/ronin-rb/ronin-web#readme
934
993
  [ronin-code-asm]: https://github.com/ronin-rb/ronin-code-asm#readme
@@ -936,3 +995,5 @@
936
995
  [ronin-payloads]: https://github.com/ronin-rb/ronin-payloads#readme
937
996
  [ronin-exploits]: https://github.com/ronin-rb/ronin-exploits#readme
938
997
  [ronin-vulns]: https://github.com/ronin-rb/ronin-vulns#readme
998
+ [ronin-recon]: https://github.com/ronin-rb/ronin-recon#readme
999
+ [ronin-app]: https://github.com/ronin-rb/ronin-app#readme
data/Gemfile CHANGED
@@ -6,55 +6,89 @@ gemspec
6
6
 
7
7
  gem 'jruby-openssl', '~> 0.7', platforms: :jruby
8
8
 
9
- gem 'net-telnet', '~> 0.1', group: :net
10
- if RUBY_VERSION >= '3.1.0'
11
- gem 'net-ftp', '~> 0.1', group: :net, platform: :mri
12
- gem 'net-smtp', '~> 0.1', group: :net, platform: :mri
13
- gem 'net-pop', '~> 0.1', group: :net, platform: :mri
14
- gem 'net-imap', '~> 0.1', group: :net, platform: :mri
9
+ group :net do
10
+ gem 'net-telnet', '~> 0.1'
11
+
12
+ platform :mri do
13
+ if RUBY_VERSION >= '3.1.0'
14
+ gem 'net-ftp', '~> 0.1'
15
+ gem 'net-smtp', '~> 0.1'
16
+ gem 'net-pop', '~> 0.1'
17
+ gem 'net-imap', '~> 0.1'
18
+ end
19
+ end
15
20
  end
16
21
 
17
- # gem 'command_kit', '~> 0.4', github: 'postmodern/command_kit.rb',
18
- # branch: '0.4.0'
22
+ # gem 'command_kit', '~> 0.5', github: 'postmodern/command_kit.rb',
23
+ # branch: 'main'
19
24
 
20
25
  group :database do
21
- gem 'sqlite3', '~> 1.0', platform: :mri
22
- gem 'activerecord-jdbcsqlite3-adapter', '~> 70.0.pre', platform: :jruby
26
+ gem 'sqlite3', '~> 1.0', platforms: [:mri, :truffleruby]
27
+
28
+ platform :jruby do
29
+ gem 'activerecord-jdbcsqlite3-adapter', '~> 70.0'
30
+ gem 'activerecord', '< 7.1.0'
31
+ end
23
32
  end
24
33
 
25
34
  # Library dependencies
26
- # gem 'ronin-support', '~> 1.0', github: 'ronin-rb/ronin-support',
27
- # branch: 'main'
28
- # gem 'ronin-core', '~> 0.1', github: 'ronin-rb/ronin-core',
29
- # branch: 'main'
30
- # gem 'ronin-repos', '~> 0.1', github: 'ronin-rb/ronin-repos',
31
- # branch: 'main'
32
- # gem 'ronin-db', '~> 0.1', github: 'ronin-rb/ronin-db',
33
- # branch: 'main'
34
- # gem 'ronin-db-activerecord', '~> 0.1', github: 'ronin-rb/ronin-db-activerecord',
35
- # branch: 'main'
36
- # gem 'ronin-fuzzer', '~> 0.1', github: 'ronin-rb/ronin-fuzzer',
37
- # branch: 'main'
35
+ # gem 'ronin-support', '~> 1.1', github: "ronin-rb/ronin-support",
36
+ # branch: 'main'
37
+ # gem 'ronin-core', '~> 0.2', github: 'ronin-rb/ronin-core',
38
+ # branch: 'main'
39
+ # gem 'ronin-repos', '~> 0.1', github: 'ronin-rb/ronin-repos',
40
+ # branch: 'main'
41
+ # gem 'ronin-db-activerecord', '~> 0.2', github: "ronin-rb/ronin-db-activerecord",
42
+ # branch: 'main'
43
+ # gem 'ronin-db', '~> 0.2', github: "ronin-rb/ronin-db",
44
+ # branch: 'main'
45
+ # gem 'ronin-listener-dns', '~> 0.1', github: "ronin-rb/ronin-listener-dns",
46
+ # branch: 'main'
47
+ # gem 'ronin-listener-http', '~> 0.1', github: "ronin-rb/ronin-listener-http",
48
+ # branch: 'main'
49
+ # gem 'ronin-listener', '~> 0.1', github: "ronin-rb/ronin-listener",
50
+ # branch: 'main'
51
+ # gem 'ronin-fuzzer', '~> 0.2', github: 'ronin-rb/ronin-fuzzer',
52
+ # branch: '0.2.0'
38
53
  # gem 'ronin-post_ex', '~> 0.1', github: 'ronin-rb/ronin-post_ex',
39
54
  # branch: 'main'
40
55
  # gem 'ronin-code-asm', '~> 1.0', github: 'ronin-rb/ronin-code-asm',
41
56
  # branch: 'main'
42
57
  # gem 'ronin-code-sql', '~> 2.0', github: 'ronin-rb/ronin-code-sql',
43
58
  # branch: 'main'
44
- # gem 'ronin-payloads', '~> 0.1', github: 'ronin-rb/ronin-payloads',
59
+ # gem 'ronin-payloads', '~> 0.2', github: 'ronin-rb/ronin-payloads',
45
60
  # branch: 'main'
46
- # gem 'ronin-exploits', '~> 1.0', github: 'ronin-rb/ronin-exploits',
61
+ # gem 'ronin-exploits', '~> 1.1', github: 'ronin-rb/ronin-exploits',
47
62
  # branch: 'main'
48
- # gem 'ronin-vulns', '~> 0.1', github: 'ronin-rb/ronin-vulns',
63
+ # gem 'ronin-vulns', '~> 0.2', github: 'ronin-rb/ronin-vulns',
49
64
  # branch: 'main'
50
65
  # gem 'ronin-web-server', '~> 0.1', github: 'ronin-rb/ronin-web-server',
51
66
  # branch: 'main'
52
- # gem 'ronin-web-spider', '~> 0.1', github: 'ronin-rb/ronin-web-spider',
67
+ # gem 'ronin-web-spider', '~> 0.2', github: 'ronin-rb/ronin-web-spider',
53
68
  # branch: 'main'
54
69
  # gem 'ronin-web-user_agents', '~> 0.1', github: 'ronin-rb/ronin-web-user_agents',
55
70
  # branch: 'main'
56
- # gem 'ronin-web', '~> 1.0', github: 'ronin-rb/ronin-web',
57
- # branch: 'main'
71
+ # gem 'ronin-support-web', '~> 0.1', github: 'ronin-rb/ronin-support-web',
72
+ # branch: 'main'
73
+ # gem 'ronin-web-browser', '~> 0.1', github: 'ronin-rb/ronin-web-browser',
74
+ # branch: 'main'
75
+ # gem 'ronin-web-session_cookie', '~> 0.1', github: 'ronin-rb/ronin-web-session_cookie',
76
+ # branch: 'main'
77
+ # gem 'ronin-web', '~> 2.0', github: 'ronin-rb/ronin-web',
78
+ # branch: 'main'
79
+
80
+ # gem 'ronin-dns-proxy', '~> 0.1', github: 'ronin-rb/ronin-dns-proxy',
81
+ # branch: 'main'
82
+ # gem 'ronin-nmap', '~> 0.1', github: 'ronin-rb/ronin-nmap',
83
+ # branch: 'main'
84
+ # gem 'ronin-masscan', '~> 0.1', github: 'ronin-rb/ronin-masscan',
85
+ # branch: 'main'
86
+ # gem 'ronin-wordlists', '~> 0.1', github: 'ronin-rb/ronin-wordlists',
87
+ # branch: 'main'
88
+ # gem 'ronin-recon', '~> 0.1', github: 'ronin-rb/ronin-recon',
89
+ # branch: 'main'
90
+ # gem 'ronin-app', '~> 0.1', github: 'ronin-rb/ronin-app',
91
+ # branch: 'main'
58
92
 
59
93
  group :development do
60
94
  gem 'rake'
@@ -63,7 +97,7 @@ group :development do
63
97
  gem 'simplecov', '~> 0.20'
64
98
 
65
99
  gem 'kramdown', '~> 2.0'
66
- gem 'kramdown-man', '~> 0.1'
100
+ gem 'kramdown-man', '~> 1.0'
67
101
 
68
102
  gem 'redcarpet', platform: :mri
69
103
  gem 'yard', '~> 0.9'
@@ -74,4 +108,7 @@ group :development do
74
108
  gem 'stackprof', require: false, platform: :mri
75
109
  gem 'rubocop', require: false, platform: :mri
76
110
  gem 'rubocop-ronin', require: false, platform: :mri
111
+ gem 'pry', require: false
112
+
113
+ gem 'command_kit-completion', '~> 0.1', require: false
77
114
  end
data/README.md CHANGED
@@ -19,12 +19,13 @@ and development. Ronin contains many different [CLI commands](#synopsis) and
19
19
  encoding/decoding data, filter IPs/hosts/URLs, querying ASNs, querying DNS,
20
20
  HTTP, [scanning for web vulnerabilities][ronin-vulns-synopsis],
21
21
  [spidering websites][ronin-web-spider],
22
- [install 3rd party repositories][ronin-repos-synopsis] of
22
+ [installing 3rd-party repositories][ronin-repos-synopsis] of
23
23
  [exploits][ronin-exploits] and/or
24
- [payloads][ronin-payloads], [run exploits][ronin-exploits-synopsis],
25
- [write new exploits][ronin-exploits-examples],
24
+ [payloads][ronin-payloads], [running exploits][ronin-exploits-synopsis],
25
+ [developing new exploits][ronin-exploits-examples],
26
26
  [managing local databases][ronin-db-synopsis],
27
- [fuzzing data][ronin-fuzzer], and much more.
27
+ [fuzzing data][ronin-fuzzer],
28
+ [performing recon][ronin-recon-synopsis], and much more.
28
29
 
29
30
  ### Who is Ronin for?
30
31
 
@@ -41,6 +42,7 @@ HTTP, [scanning for web vulnerabilities][ronin-vulns-synopsis],
41
42
  * A fully-loaded Ruby REPL.
42
43
  * An ecosystem of high-quality security related Ruby libraries, APIs, and
43
44
  commands.
45
+ * A lightweight local web UI.
44
46
 
45
47
  ### What can you do with Ronin?
46
48
 
@@ -52,9 +54,11 @@ HTTP, [scanning for web vulnerabilities][ronin-vulns-synopsis],
52
54
  using [ronin-repos].
53
55
  * Import and query data using the [ronin-db] database.
54
56
  * Fuzz data using [ronin-fuzzer].
57
+ * Perform recon using [ronin-recon].
55
58
  * Use common payloads or write your own using [ronin-payloads].
56
59
  * Write/run exploits using [ronin-exploits].
57
60
  * Scan for web vulnerabilities using [ronin-vulns].
61
+ * Performs scans and browse the database in your browser using [ronin-app].
58
62
 
59
63
  ## Synopsis
60
64
 
@@ -69,15 +73,18 @@ Arguments:
69
73
  [ARGS ...] Additional arguments for the command
70
74
 
71
75
  Commands:
76
+ archive
72
77
  asn
73
78
  banner-grab
74
79
  bitflip
75
80
  cert-dump
76
81
  cert-gen
77
82
  cert-grab
83
+ completion
78
84
  decode, dec
79
85
  decrypt
80
86
  dns
87
+ dns-proxy
81
88
  email-addr
82
89
  encode, enc
83
90
  encrypt
@@ -98,6 +105,7 @@ Commands:
98
105
  md5
99
106
  netcat, nc
100
107
  new
108
+ pack
101
109
  proxy
102
110
  public-suffix-list
103
111
  quote
@@ -110,20 +118,27 @@ Commands:
110
118
  tips
111
119
  typo
112
120
  typosquat
121
+ unarchive
113
122
  unescape
114
123
  unhexdump
124
+ unpack
115
125
  unquote
116
126
  url
117
127
  xor
118
128
 
119
129
  Additional Ronin Commands:
120
130
  $ ronin-repos
131
+ $ ronin-wordlists
121
132
  $ ronin-db
122
133
  $ ronin-web
123
134
  $ ronin-fuzzer
135
+ $ ronin-masscan
136
+ $ ronin-nmap
137
+ $ ronin-recon
124
138
  $ ronin-payloads
125
139
  $ ronin-exploits
126
140
  $ ronin-vulns
141
+ $ ronin-app
127
142
  ```
128
143
 
129
144
  List ronin commands:
@@ -146,20 +161,35 @@ $ ronin tips
146
161
 
147
162
  Open the Ronin Ruby REPL:
148
163
 
149
- ```shell
150
- $ ronin irb
151
164
  ```
165
+ $ ronin irb
166
+ , Jµ ▓▓█▓
167
+ J▌ ▐▓██▌ ████ ██ ▐███D
168
+ ╓▄▓▓█████▌ ██µ ████ ▄███ÖJ██▌ ███▌
169
+ ,╓µ▄▄▄▄▄▄▄▄µ;, ,▄▓██████████ ▐███ ▐███▀ ███▌ ████µ ▄███
170
+ ¬∞MÆ▓███████████████████████▓M ▄██████▀▀╙████▌ ████▌ ████ ▄███ J█████ ███▌
171
+ `█████▀▀▀▀▀███████ -████▀└ ████ ▐█████n ▄███O ███▌ ██████████
172
+ ▓████L ████▀ ▓████ ▓███Ö ███████ ███▌ ▓███ ▐█████████▀
173
+ ▄████▀ ,╓▄▄▄█████ J████Ü ,███▌ ▄███████████ J███▀ ████ █████
174
+ J█████████████████─ ████▌ ████ ████`██████▌ ████ ▐███Ü ▐███Ü
175
+ ███████████▀▀▀╙└ ▐████ J███▌ ▓███▌ ²█████ J███Ü ███▌ ▀█▌
176
+ ▓██████████▌ ████▌ ████ ;████ ▀███▀ ███▌ J▀▀▀- █
177
+ ▄█████▀ ▀█████µ ▐████ ,▄▓████▀ ████▀ ███ J███ `
178
+ J█████- ╙▀███▄ ████████████▀╙ J█▀▀▀ █U ▀█▌
179
+ ████▀ ▀███ ▄████████▀▀ ╨ █
180
+ ▓██▀ ²▀█▄ █▀▀▀╙└
181
+ ▄██╜ ╙W
182
+ J█▀
183
+ ▌└
184
+
152
185
 
153
- Generate a new Ruby script with [ronin-support] preloaded:
154
-
155
- ```shell
156
- $ ronin new script foo.rb
186
+ irb(ronin)>
157
187
  ```
158
188
 
159
- Generate a new Ruby project with a `Gemfile`:
189
+ Starts and opens the interactive Web UI for Ronin:
160
190
 
161
- ```shell
162
- $ ronin new project foo
191
+ ```
192
+ $ ronin-app
163
193
  ```
164
194
 
165
195
  ### Binary
@@ -780,9 +810,106 @@ Print the HTTP status of every URL in a file:
780
810
  $ ronin url --file urls.txt --status
781
811
  ```
782
812
 
813
+ ### Generators
814
+
815
+ Generate a new Ruby script with [ronin-support] preloaded:
816
+
817
+ ```shell
818
+ $ ronin new script foo.rb
819
+ ```
820
+
821
+ Generate a new Ruby project with a `Gemfile`:
822
+
823
+ ```shell
824
+ $ ronin new project foo
825
+ ```
826
+
827
+ Generate a new [nokogiri] Ruby script for parsing HTML/XML:
828
+
829
+ [nokogiri]: https://nokogiri.org/
830
+
831
+ ```shell
832
+ $ ronin new nokogiri foo.rb
833
+ ```
834
+
835
+ Generate a new [ronin-web-server] Ruby script:
836
+
837
+ ```shell
838
+ $ ronin new web-server my_server.rb
839
+ ```
840
+
841
+ Generate a new [ronin-web-server] based web app:
842
+
843
+ ```shell
844
+ $ ronin new web-app my_app
845
+ ```
846
+
847
+ Generate a new [ronin-web-spider] Ruby script:
848
+
849
+ ```shell
850
+ $ ronin new web-spider --host=example.com my_spider.rb
851
+ ```
852
+
853
+ Generate a [ronin-listener-dns] script:
854
+
855
+ ```shell
856
+ $ ronin new dns-listener my_dns_listener.rb
857
+ ```
858
+
859
+ Generate a [ronin-dns-proxy] script:
860
+
861
+ ```shell
862
+ $ ronin new dns-proxy my_dns_proxy.rb
863
+ ```
864
+
865
+ Generate a [ronin-listener-http] script:
866
+
867
+ ```shell
868
+ $ ronin new http-listener my_http_listener.rb
869
+ ```
870
+
871
+ Generate a [ronin-exploits] script:
872
+
873
+ ```shell
874
+ $ ronin new exploit my_exploit.rb
875
+ ```
876
+
877
+ Generate a [ronin-payloads] script:
878
+
879
+ ```shell
880
+ $ ronin new payload my_payload.rb
881
+ ```
882
+
883
+ ### Archive
884
+
885
+ Archive files:
886
+
887
+ ```shell
888
+ $ ronin archive -o archive.zip file1.txt file2.txt
889
+ ```
890
+
891
+ Archive files using tar format:
892
+
893
+ ```shell
894
+ $ ronin archive -o archive.tar file1.txt file2.txt
895
+ ```
896
+
897
+ Unarchive files:
898
+
899
+ ```shell
900
+ $ ronin unarchive arch1.tar arch2.zip
901
+ ```
902
+
903
+ Unarchive a file with explicit format:
904
+
905
+ ```shell
906
+ $ ronin unarchive -f zip arch2.jar
907
+ ```
908
+
783
909
  ### See Also
784
910
 
785
911
  * [ronin-repos](https://github.com/ronin-rb/ronin-repos#synopsis)
912
+ * [ronin-wordlists](https://github.com/ronin-rb/ronin-wordlists#synopsis)
786
913
  * [ronin-db](https://github.com/ronin-rb/ronin-db#synopsis)
787
914
  * [ronin-web](https://github.com/ronin-rb/ronin-web#synopsis)
788
915
  * [ronin-fuzzer](https://github.com/ronin-rb/ronin-fuzzer#synopsis)
@@ -796,22 +923,29 @@ $ ronin url --file urls.txt --status
796
923
  * [make]
797
924
  * [git]
798
925
  * [libsqlite3]
799
- * [Ruby] >= 3.0.0
926
+ * [Ruby] >= 3.1.0
800
927
  * [open_namespace] ~> 0.4
801
928
  * [rouge] ~> 3.0
802
929
  * [async-io] ~> 1.0
803
- * [wordlist] ~> 1.0, >= 1.0.3
804
- * [ronin-support] ~> 1.0, >= 1.0.3
805
- * [ronin-core] ~> 0.1, >= 0.1.2
930
+ * [wordlist] ~> 1.1
931
+ * [ronin-support] ~> 1.1
932
+ * [ronin-dns-proxy] ~> 0.1
933
+ * [ronin-core] ~> 0.2
806
934
  * [ronin-repos] ~> 0.1
935
+ * [ronin-wordlists] ~> 0.1
807
936
  * [ronin-db] ~> 0.1
937
+ * [ronin-listener] ~> 0.1
938
+ * [ronin-nmap] ~> 0.1
939
+ * [ronin-masscan] ~> 0.1
940
+ * [ronin-recon] ~> 0.1
808
941
  * [ronin-fuzzer] ~> 0.1
809
- * [ronin-web] ~> 1.0
942
+ * [ronin-web] ~> 2.0
810
943
  * [ronin-code-asm] ~> 1.0
811
944
  * [ronin-code-sql] ~> 2.0
812
945
  * [ronin-payloads] ~> 0.1
813
946
  * [ronin-exploits] ~> 1.0
814
- * [ronin-vulns] ~> 0.1
947
+ * [ronin-vulns] ~> 0.2
948
+ * [ronin-app] ~> 0.1
815
949
 
816
950
  ## Install
817
951
 
@@ -851,7 +985,7 @@ docker run --mount type=bind,source="$HOME",target=/home/ronin -it ronin
851
985
  1. [Fork It!](https://github.com/ronin-rb/ronin/fork)
852
986
  2. Clone It!
853
987
  3. `cd ronin`
854
- 4. `bundle install`
988
+ 4. `./scripts/setup`
855
989
  5. `git checkout -b my_feature`
856
990
  6. Code It!
857
991
  7. `bundle exec rake spec`
@@ -889,11 +1023,21 @@ along with Ronin. If not, see <https://www.gnu.org/licenses/>.
889
1023
  [wordlist]: https://github.com/postmodern/wordlist.rb#readme
890
1024
 
891
1025
  [ronin-support]: https://github.com/ronin-rb/ronin-support#readme
1026
+ [ronin-dns-proxy]: https://github.com/ronin-rb/ronin-dns-proxy#readme
892
1027
  [ronin-repos]: https://github.com/ronin-rb/ronin-repos#readme
893
1028
  [ronin-repos-synopsis]: https://github.com/ronin-rb/ronin-repos#synopsis
1029
+ [ronin-wordlists]: https://github.com/ronin-rb/ronin-wordlists#readme
1030
+ [ronin-wordlists-synopsis]: https://github.com/ronin-rb/ronin-wordlists#synopsis
894
1031
  [ronin-core]: https://github.com/ronin-rb/ronin-core#readme
895
1032
  [ronin-db]: https://github.com/ronin-rb/ronin-db#readme
896
1033
  [ronin-db-synopsis]: https://github.com/ronin-rb/ronin-db#synopsis
1034
+ [ronin-listener]: https://github.com/ronin-rb/ronin-listener#readme
1035
+ [ronin-listener-dns]: https://github.com/ronin-rb/ronin-listener-dns#readme
1036
+ [ronin-listener-http]: https://github.com/ronin-rb/ronin-listener-http#readme
1037
+ [ronin-nmap]: https://github.com/ronin-rb/ronin-nmap#readme
1038
+ [ronin-masscan]: https://github.com/ronin-rb/ronin-masscan#readme
1039
+ [ronin-recon]: https://github.com/ronin-rb/ronin-recon#readme
1040
+ [ronin-recon-synopsis]: https://github.com/ronin-rb/ronin-recon#synopsis
897
1041
  [ronin-fuzzer]: https://github.com/ronin-rb/ronin-fuzzer#readme
898
1042
  [ronin-web]: https://github.com/ronin-rb/ronin-web#readme
899
1043
  [ronin-web-server]: https://github.com/ronin-rb/ronin-web-server#readme
@@ -907,3 +1051,4 @@ along with Ronin. If not, see <https://www.gnu.org/licenses/>.
907
1051
  [ronin-exploits-examples]: https://github.com/ronin-rb/ronin-exploits#examples
908
1052
  [ronin-vulns]: https://github.com/ronin-rb/ronin-vulns#readme
909
1053
  [ronin-vulns-synopsis]: https://github.com/ronin-rb/ronin-vulns#synopsis
1054
+ [ronin-app]: https://github.com/ronin-rb/ronin-app#readme
data/Rakefile CHANGED
@@ -41,3 +41,12 @@ task :docs => [:yard]
41
41
 
42
42
  require 'kramdown/man/task'
43
43
  Kramdown::Man::Task.new
44
+
45
+ require 'command_kit/completion/task'
46
+ CommandKit::Completion::Task.new(
47
+ class_file: 'ronin/cli',
48
+ class_name: 'Ronin::CLI',
49
+ output_file: 'data/completions/ronin'
50
+ )
51
+
52
+ task :setup => %w[man command_kit:completion]