cobreak 1.0.1 → 1.0.2

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.
@@ -1,5 +1,7 @@
1
1
  #!/bin/env ruby
2
+ require 'ruby_figlet'
2
3
  require 'cobreak/version'
4
+ using RubyFiglet
3
5
  module CoBreak
4
6
  class BruteForze
5
7
  def initialize(options)
@@ -13,21 +15,24 @@ module CoBreak
13
15
  abort "reinstall gem new"
14
16
  end
15
17
  def banner_wordlist()
16
- puts "\e[32m╭─[\e[0m CoBreak: #{CoBreak.version}"
18
+ puts "\e[0;31m"
19
+ puts "cobreak".art("Bloody")
20
+ puts "\e[0m"
21
+ puts "\e[1;32m╭─[\e[37m CoBreak: #{CoBreak.version}"
17
22
  if (File.exists?(@options.wordlist.to_s))
18
- puts "\e[32m├─[\e[0m Wordlist: #{File.expand_path(@options.wordlist)}"
23
+ puts "\e[1;32m├─[\e[37m Wordlist: #{File.expand_path(@options.wordlist)}"
19
24
  else
20
- puts "\e[31m├─[\e[0m WordList Not Found"
25
+ puts "\e[1;31m├─[\e[37m WordList Not Found"
21
26
  end
22
27
  if (@hash.include?(@options.bruteforce.to_s.upcase))
23
- puts "\e[32m├─[\e[0m Type Hash: #{@options.bruteforce.upcase}"
28
+ puts "\e[1;32m├─[\e[37m Type Hash: #{@options.bruteforce.upcase}"
24
29
  else
25
- puts "\e[31m├─[\e[0m Type Hash Not Found"
30
+ puts "\e[1;31m├─[\e[37m Type Hash Not Found"
26
31
  end
27
32
  unless (@options.algo.nil?) or (@options.algo.empty?)
28
- puts "\e[32m╰─[\e[0m Hash: #{@options.algo}\n\n"
33
+ puts "\e[1;32m╰─[\e[37m Hash: #{@options.algo}\n\n"
29
34
  else
30
- puts "\e[31m╰─[\e[0m Hash Not Found"
35
+ puts "\e[1;31m╰─[\e[37m Hash Not Found"
31
36
  end
32
37
  end
33
38
  def wordlist()
@@ -38,13 +43,13 @@ module CoBreak
38
43
  if (File.exists?(@options.algo.to_s))
39
44
  IO.foreach(@options.algo.to_s){|line|
40
45
  line.chomp!
41
- if (@options.bruteforce.to_s.downcase.eql?('md4'))
46
+ if (@hash.include?(@options.bruteforce.to_s.upcase))
42
47
  ForzeBrute::word(line, @options.wordlist, @options.bruteforce.to_s)
43
48
  end
44
49
  }
45
50
  else
46
- if (@hash.include?(@options.bruteforce.upcase))
47
- ForzeBrute::word(@options.algo.to_s, @options.wordlist, @options.bruteforce.to_s)
51
+ if (@hash.include?(@options.bruteforce.upcase.to_s))
52
+ ForzeBrute::word(@options.algo.to_s, @options.wordlist, @options.bruteforce.to_s, @options.out, @options.verbose)
48
53
  end
49
54
  end
50
55
  end
@@ -1,4 +1,6 @@
1
1
  require 'ostruct'
2
+ require 'ruby_figlet'
3
+ using RubyFiglet
2
4
  module CoBreak
3
5
  class BruteChars
4
6
  def initialize(options)
@@ -6,57 +8,44 @@ module CoBreak
6
8
  @hash = %w[MD4 MD5 SHA1 SHA224 SHA256 SHA384 SHA512 RIPEMD160]
7
9
  end
8
10
  def banner_chars()
9
- puts "\e[32m╭─[\e[0m CoBreak: #{CoBreak.version}"
11
+ puts "\e[0;31m"
12
+ puts "cobreak".art("Bloody")
13
+ puts "\e[0m"
14
+ puts "\e[1;32m╭─[\e[1;37m CoBreak: #{CoBreak.version}"
10
15
  unless (@options.range.nil?)
11
- puts "\e[32m├─[\e[0m Range: #{@options.range[0]} #{@options.range[1]}"
16
+ puts "\e[32m├─[\e[1;37m Range: #{@options.range[0]} #{@options.range[1]}"
12
17
  else
13
- puts "\e[31m├─[\e[0m Range Not Found"
18
+ puts "\e[31m├─[\e[1;37m Range Not Found"
14
19
  end
15
20
  unless (@options.chars.nil?) or (@options.chars.empty?)
16
- puts "\e[32m├─[\e[0m Characters: #{@options.chars}"
21
+ puts "\e[32m├─[\e[1;37m Characters: #{@options.chars}"
17
22
  else
18
- puts "\e[31m├─[\e[0m Characters Not Found"
23
+ puts "\e[31m├─[\e[1;37m Characters Not Found"
19
24
  end
20
25
  if (@hash.include?(@options.bruteforce.to_s.upcase))
21
- puts "\e[32m├─[\e[0m Type Hash: #{@options.bruteforce.upcase}"
26
+ puts "\e[32m├─[\e[1;37m Type Hash: #{@options.bruteforce.upcase}"
22
27
  else
23
- puts "\e[31m├─[\e[0m Type Hash Not Found"
28
+ puts "\e[31m├─[\e[1;37m Type Hash Not Found"
24
29
  end
25
30
  unless (@options.algo.nil?) or (@options.algo.empty?)
26
- puts "\e[32m╰─[\e[0m Hash: #{@options.algo}\n\n"
31
+ puts "\e[32m╰─[\e[1;37m Hash: #{@options.algo}\n\n"
27
32
  else
28
- puts "\e[31m╰─[\e[0m Hash Not Found"
33
+ puts "\e[31m╰─[\e[1;37m Hash Not Found"
29
34
  end
30
35
  end
31
36
  def chars()
32
37
  # if (@options.range.empty?) or (@options.chars.nil?) or (@param.algo.nil?)
33
- # abort "\n"
34
- # end"
38
+ # abort "\n"
39
+ # end
35
40
  if (@hash.include?(@options.bruteforce.upcase))
36
41
  if (File.exists?(@options.algo.to_s))
37
42
  IO.foreach(@options.algo){|line|
38
43
  line.chomp!
39
- if (@options.bruteforce.to_s.downcase.eql?('md4'))
40
- ForzeBrute::md4(line, @options)
41
- elsif (@options.bruteforce.to_s.downcase.eql?('md5'))
42
- ForzeBrute::md5(line, @options)
43
- elsif (@options.bruteforce.to_s.downcase.eql?('sha1'))
44
- ForzeBrute::sha1(line, @options)
45
- elsif (@options.bruteforce.to_s.downcase.eql?('sha224'))
46
- ForzeBrute::sha224(line, @options)
47
- elsif (@options.bruteforce.to_s.downcase.eql?('sha256'))
48
- ForzeBrute::sha256(line, @options)
49
- elsif (@options.bruteforce.to_s.downcase.eql?('sha384'))
50
- ForzeBrute::sha384(line, @options)
51
- elsif (@options.bruteforce.to_s.downcase.eql?('sha512'))
52
- ForzeBrute::sha512(line, @options)
53
- elsif (@options.bruteforce.to_s.downcase.eql?('ripemd160'))
54
- ForzeBrute::ripemd160(line, @options)
55
- end
44
+ ForzeBrute::chars(line, @options.range, @options.chars, @options.bruteforce, @options.out, @options.verbose)
56
45
  }
57
46
  else
58
47
  if (@hash.include?(@options.bruteforce.upcase))
59
- ForzeBrute::chars(@options.algo, @options.range, @options.chars, @options.bruteforce)
48
+ ForzeBrute::chars(@options.algo, @options.range, @options.chars, @options.bruteforce, @options.out, @options.verbose)
60
49
  end
61
50
  end
62
51
  end
@@ -1,4 +1,3 @@
1
- require 'fileutils'
2
1
  require 'sequel'
3
2
  class DataBase
4
3
  $db = Sequel.sqlite
@@ -1,5 +1,3 @@
1
- require 'fileutils'
2
- require 'sequel'
3
1
  require 'cobreak/version'
4
2
  class BaseDato
5
3
  $db = Sequel.sqlite
@@ -0,0 +1 @@
1
+
File without changes
@@ -2,17 +2,17 @@ module CoBreak
2
2
  class List
3
3
  #all list formats and types
4
4
  def initialize(options)
5
- type = Array.new
6
- type << "Base64" << "Base32" << "Base16" << "Ascii85" << "Binary" << "Cesar"
5
+ all = Array.new
6
+ all << "Base64" << "Base32" << "Base16" << "Ascii85" << "Binary" << "Cesar"
7
7
  if (options.list.eql?("type"))
8
8
  puts "\nMode Cipher:"
9
- puts type
9
+ puts all
10
10
  end
11
- format = Array.new
12
- format << "MD4" << "MD5" << "SHA1" << "SHA224" << "SHA256" << "SHA384" << "SHA512" << "RIPEMD160"
11
+ all.clear
12
+ all << "MD4" << "MD5" << "SHA1" << "SHA224" << "SHA256" << "SHA384" << "SHA512" << "RIPEMD160"
13
13
  if (options.list.eql?("format"))
14
14
  puts "\nMode Cryptography:"
15
- puts format
15
+ puts all
16
16
  end
17
17
  end
18
18
  end
@@ -1,15 +1,16 @@
1
- require 'optparse'
2
1
  require 'cobreak/cobreak'
3
2
  require 'cobreak/force_brute'
4
3
  require 'cobreak/force_chars'
5
4
  require 'cobreak/version'
6
5
  require 'cobreak/list_all'
6
+ require 'sequel'
7
+ require 'openssl'
7
8
  module CoBreak
8
9
  class ParseOPT
9
10
  def self.optparse(options)
10
11
  begin
11
12
  OptionParser.new do|param|
12
- param.banner = "Usage: CoBreak.rb [--mode] [--options] [text or file]"
13
+ param.banner = "Usage: cobreak [--mode] [--options] [--input text or file]"
13
14
  param.separator ''
14
15
  param.separator "Mode Cipher:"
15
16
  param.on('--encoding=[TYPE]', String, 'encoding input text or file'){|en_co| options.enc = en_co}
@@ -17,7 +18,7 @@ module CoBreak
17
18
  param.separator "Mode Cryptography"
18
19
  param.on('--encrypt=[FORMAT]', String, 'encrypt parameter'){|en_en| options.encrypt = en_en}
19
20
  param.separator "Mode BruteForce"
20
- param.on('--bruteforce=[FORMAT]', String, 'brute force mode to crack a hash'){|modeforce| options.bruteforce = modeforce}
21
+ param.on('--bruteforce=[FORMAT]', String, 'brute force mode to crack a hash'){|modeforce|options.bruteforce = modeforce}
21
22
  param.separator ""
22
23
  param.separator "Options:"
23
24
  param.on('-l', '--list=TYPE or FORMAT', String, 'list cipher types of hash formats'){|lin| options.list = lin}
@@ -26,6 +27,8 @@ module CoBreak
26
27
  param.on('-w', '--wordlist=WORDLIST', 'Wordlist mode, read words from FILE or stadin (default: diccionario.txt)'){|wordlist| options.wordlist = wordlist}
27
28
  param.on('--show=[FORMAT]', String, 'show decrypted specific hash'){|de_en| options.decrypt = de_en}
28
29
  param.on('-i', '--input FILE or TEXT', String, 'take file or text to carry out the process'){|alg| options.algo = alg}
30
+ param.on('-o', '--output FILe', String, 'output the software'){|out| options.out = out}
31
+ param.on('-v', '--verbose', 'verbose mode'){options.verbose = true}
29
32
  param.on('--usage', 'show examples of use of this tool')do
30
33
  puts "usage: cobreak [--mode] [--options] [--input] text or file"
31
34
  puts ""
@@ -43,7 +46,7 @@ module CoBreak
43
46
  puts "cobreak --bruteforce=[FORMAT] --chars [CHARACTERS] --range MIN MAX --input text or file"
44
47
  puts ""
45
48
  end
46
- param.on_tail('-v', '--version', 'show version'){puts "CoBreak version #{CoBreak.version}"; exit}
49
+ param.on_tail('-V', '--version', 'show version'){puts "CoBreak version #{CoBreak.version}"; exit}
47
50
  param.on_tail('-h', '--help', 'command to view help parameters'){puts param; exit}
48
51
  param.separator ''
49
52
  end.parse!
data/lib/cobreak/run.rb CHANGED
File without changes
@@ -0,0 +1 @@
1
+
@@ -0,0 +1 @@
1
+
@@ -0,0 +1 @@
1
+
@@ -0,0 +1 @@
1
+
@@ -0,0 +1 @@
1
+
@@ -0,0 +1 @@
1
+
@@ -0,0 +1 @@
1
+
@@ -0,0 +1 @@
1
+
@@ -1,5 +1,5 @@
1
1
  module CoBreak
2
2
  def self.version()
3
- return '1.0.1'
3
+ return '1.0.2'
4
4
  end
5
5
  end
data/outputs.txt ADDED
@@ -0,0 +1,17 @@
1
+ ==================================================
2
+ software: CoBreak 1.0.2
3
+ Type Hash: md5
4
+ aaaaaaaaaa
5
+ :a73c45107081c08dd4560206b8ef8205
6
+ ==================================================
7
+ ==================================================
8
+ software: CoBreak 1.0.2
9
+ Type Hash: md5
10
+ aaaaaaaaaa
11
+ :e09c80c42fda55f9d992e59ca6b3307d
12
+ ==================================================
13
+ ==================================================
14
+ software: CoBreak 1.0.2
15
+ Type Hash: md5
16
+ aaaaaaaaaa:a73c45107081c08dd4560206b8ef8205
17
+ ==================================================
data/prueba.txt ADDED
@@ -0,0 +1,4 @@
1
+ ==================================================
2
+ software: CoBreak 1.0.2
3
+ Type Hash: md5
4
+ ==================================================
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cobreak
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - BreakerBox
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-06-02 00:00:00.000000000 Z
11
+ date: 2021-07-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -25,19 +25,19 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.5'
27
27
  - !ruby/object:Gem::Dependency
28
- name: Digest
28
+ name: openssl
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 3.0.0
33
+ version: 2.2.0
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 3.0.0
40
+ version: 2.2.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: sequel
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -66,24 +66,162 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: 1.4.2
69
+ - !ruby/object:Gem::Dependency
70
+ name: sequel
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 5.45.0
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: 2.0.0
79
+ type: :runtime
80
+ prerelease: false
81
+ version_requirements: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - "~>"
84
+ - !ruby/object:Gem::Version
85
+ version: 5.45.0
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: 2.0.0
89
+ - !ruby/object:Gem::Dependency
90
+ name: sqlite3
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: 1.4.2
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ version: 1.4.0
99
+ type: :runtime
100
+ prerelease: false
101
+ version_requirements: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - "~>"
104
+ - !ruby/object:Gem::Version
105
+ version: 1.4.2
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ version: 1.4.0
109
+ - !ruby/object:Gem::Dependency
110
+ name: base16
111
+ requirement: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - "~>"
114
+ - !ruby/object:Gem::Version
115
+ version: 0.0.2
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: 0.0.1
119
+ type: :runtime
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - "~>"
124
+ - !ruby/object:Gem::Version
125
+ version: 0.0.2
126
+ - - ">="
127
+ - !ruby/object:Gem::Version
128
+ version: 0.0.1
129
+ - !ruby/object:Gem::Dependency
130
+ name: base32
131
+ requirement: !ruby/object:Gem::Requirement
132
+ requirements:
133
+ - - "~>"
134
+ - !ruby/object:Gem::Version
135
+ version: 0.3.4
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: 0.3.0
139
+ type: :runtime
140
+ prerelease: false
141
+ version_requirements: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: 0.3.4
146
+ - - ">="
147
+ - !ruby/object:Gem::Version
148
+ version: 0.3.0
149
+ - !ruby/object:Gem::Dependency
150
+ name: base64
151
+ requirement: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - "~>"
154
+ - !ruby/object:Gem::Version
155
+ version: 0.1.0
156
+ - - ">="
157
+ - !ruby/object:Gem::Version
158
+ version: 0.0.1
159
+ type: :runtime
160
+ prerelease: false
161
+ version_requirements: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - "~>"
164
+ - !ruby/object:Gem::Version
165
+ version: 0.1.0
166
+ - - ">="
167
+ - !ruby/object:Gem::Version
168
+ version: 0.0.1
169
+ - !ruby/object:Gem::Dependency
170
+ name: Ascii85
171
+ requirement: !ruby/object:Gem::Requirement
172
+ requirements:
173
+ - - "~>"
174
+ - !ruby/object:Gem::Version
175
+ version: 1.1.0
176
+ - - ">="
177
+ - !ruby/object:Gem::Version
178
+ version: 1.0.0
179
+ type: :runtime
180
+ prerelease: false
181
+ version_requirements: !ruby/object:Gem::Requirement
182
+ requirements:
183
+ - - "~>"
184
+ - !ruby/object:Gem::Version
185
+ version: 1.1.0
186
+ - - ">="
187
+ - !ruby/object:Gem::Version
188
+ version: 1.0.0
189
+ - !ruby/object:Gem::Dependency
190
+ name: ruby_figlet
191
+ requirement: !ruby/object:Gem::Requirement
192
+ requirements:
193
+ - - ">="
194
+ - !ruby/object:Gem::Version
195
+ version: '0'
196
+ type: :runtime
197
+ prerelease: false
198
+ version_requirements: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ - - ">="
201
+ - !ruby/object:Gem::Version
202
+ version: '0'
69
203
  description: The CoBreak script is an cipher and cryptography tool
70
204
  email: breakerhtb@gmail.com
71
205
  executables:
72
206
  - cobreak
207
+ - cbrdb
73
208
  extensions: []
74
209
  extra_rdoc_files: []
75
210
  files:
76
211
  - Gemfile
77
- - LICENSE
78
212
  - README.md
213
+ - bin/cbrdb
79
214
  - bin/cobreak
80
215
  - cobreak.gemspec
81
216
  - diccionario.txt
217
+ - hash.txt
218
+ - hola.txt
82
219
  - lib/cobreak.rb
83
220
  - lib/cobreak/binary.rb
84
221
  - lib/cobreak/cesar.rb
85
222
  - lib/cobreak/cifrado.rb
86
223
  - lib/cobreak/cobreak.rb
224
+ - lib/cobreak/config/database.db
87
225
  - lib/cobreak/decifrado.rb
88
226
  - lib/cobreak/decrypt.rb
89
227
  - lib/cobreak/details.rb
@@ -107,6 +245,8 @@ files:
107
245
  - lib/cobreak/show/sha384.db
108
246
  - lib/cobreak/show/sha512.db
109
247
  - lib/cobreak/version.rb
248
+ - outputs.txt
249
+ - prueba.txt
110
250
  homepage: https://github.com/BreakerBox/CoBreak
111
251
  licenses:
112
252
  - MIT
@@ -126,7 +266,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
126
266
  - !ruby/object:Gem::Version
127
267
  version: '0'
128
268
  requirements: []
129
- rubygems_version: 3.2.15
269
+ rubygems_version: 3.2.5
130
270
  signing_key:
131
271
  specification_version: 4
132
272
  summary: Force Brute, Cipher, Cryptography