cobreak 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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