cobreaktws 1.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.vscode/settings.json +10 -0
- data/Gemfile +18 -0
- data/README.md +72 -0
- data/bin/cbrdb +95 -0
- data/bin/cobreak +11 -0
- data/cobreak.gemspec +28 -0
- data/ext/cobreak/cobreak.c +17 -0
- data/ext/cobreak/cobreak_cipher.c +341 -0
- data/ext/cobreak/cobreak_cipher.h +10 -0
- data/ext/cobreak/cobreak_gcrypt.c +556 -0
- data/ext/cobreak/cobreak_gcrypt.h +14 -0
- data/ext/cobreak/cobreak_openmp.c +9 -0
- data/ext/cobreak/cobreak_openmp.h +14 -0
- data/ext/cobreak/cobreak_openssl.c +438 -0
- data/ext/cobreak/cobreak_openssl.h +21 -0
- data/ext/cobreak/cobreak_ruby.h +24 -0
- data/ext/cobreak/extconf.rb +27 -0
- data/lib/cobreak/binary.rb +10 -0
- data/lib/cobreak/cesar.rb +30 -0
- data/lib/cobreak/cifrado.rb +30 -0
- data/lib/cobreak/cobreak_opt.rb +77 -0
- data/lib/cobreak/config/database.db +0 -0
- data/lib/cobreak/decifrado.rb +30 -0
- data/lib/cobreak/decrypt.rb +98 -0
- data/lib/cobreak/details.rb +19 -0
- data/lib/cobreak/encrypt.rb +114 -0
- data/lib/cobreak/force.rb +226 -0
- data/lib/cobreak/force_brute.rb +62 -0
- data/lib/cobreak/force_chars.rb +54 -0
- data/lib/cobreak/function_db.rb +26 -0
- data/lib/cobreak/function_hash.rb +28 -0
- data/lib/cobreak/hash/hash.db +1 -0
- data/lib/cobreak/info_author.rb +20 -0
- data/lib/cobreak/list_all.rb +41 -0
- data/lib/cobreak/optionpr.rb +148 -0
- data/lib/cobreak/run.rb +9 -0
- data/lib/cobreak/version.rb +5 -0
- data/lib/cobreak.rb +4 -0
- metadata +185 -0
@@ -0,0 +1,41 @@
|
|
1
|
+
module CoBreak
|
2
|
+
class List
|
3
|
+
#all list formats and types
|
4
|
+
def initialize(options)
|
5
|
+
all = Array.new
|
6
|
+
all << "Base64" << "Base32" << "Base16" << "Ascii85" << "Binary" << "Cesar"
|
7
|
+
if (options.list.eql?("cipher"))
|
8
|
+
list_cipher = all.map do |type|
|
9
|
+
{category: 'Cipher', name: type}
|
10
|
+
end
|
11
|
+
puts "\n"
|
12
|
+
puts " " * 2 + "#{'ID' + ' ' * 3} | #{' ' + 'Name' + ' ' * 27} | #{'Category' + ' ' * 6}"
|
13
|
+
puts "=" * 8 + "+" + "=" * 34 + "+" + "=" * 20
|
14
|
+
salt = " "
|
15
|
+
list_cipher.each_with_index do |cipher, index|
|
16
|
+
puts " " * 2 + "#{index + 1}" + " " * 4 + salt + "|" + " " * 2 + "#{cipher[:name].ljust(31)} | #{cipher[:category].ljust(8)}"
|
17
|
+
if(index==8)
|
18
|
+
salt = ""
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
all.clear
|
23
|
+
all << "MD4" << "MD5" << "HALF-MD5" << "SHA1" << "DOUBLE-SHA1" << "SHA2-224" << "SHA2-256" << "SHA2-384" << "SHA2-512" << "SHA3-224" << "SHA3-256" << "SHA3-384" << "SHA3-512" << "RIPEMD-160" << "TIGER-160" << "BLAKE2S-128" << "BLAKE2S-160" << "BlAKE2B-160" << "BLAKE2S-224" << "BLAKE2S-256" << "BLAKE2B-256" << "BLAKE2B_384" << "BLAKE2B-512" << "WHIRLPOOL" << "GOST_STREEBOG_256" << "GOST_STREEBOG_256" << "SHAKE-128"
|
24
|
+
if (options.list.eql?("digest"))
|
25
|
+
list_algorithms = all.map do |type|
|
26
|
+
{category: 'Raw-Hash', name: type}
|
27
|
+
end
|
28
|
+
puts "\n"
|
29
|
+
puts " " * 2 + "#{'ID' + ' ' * 3} | #{' ' + 'Name' + ' ' * 27} | #{'Category' + ' ' * 6}"
|
30
|
+
puts "=" * 8 + "+" + "=" * 34 + "+" + "=" * 20
|
31
|
+
salt = " "
|
32
|
+
list_algorithms.each_with_index do |hash, index|
|
33
|
+
puts " " * 2 + "#{index + 1}" + " " * 4 + salt + "|" + " " * 2 + "#{hash[:name].ljust(31)} | #{hash[:category].ljust(8)}"
|
34
|
+
if(index==8)
|
35
|
+
salt = ""
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,148 @@
|
|
1
|
+
require 'cobreak/cobreak_opt'
|
2
|
+
require 'cobreak/force_brute'
|
3
|
+
require 'cobreak/force_chars'
|
4
|
+
require 'cobreak/version'
|
5
|
+
require 'cobreak/list_all'
|
6
|
+
require 'sequel'
|
7
|
+
require 'openssl'
|
8
|
+
module CoBreak
|
9
|
+
class ParseOPT
|
10
|
+
def self.optparse(options)
|
11
|
+
begin
|
12
|
+
OptionParser.new do|param|
|
13
|
+
param.banner = "Usage: cobreak [--mode] [--options] [--input text or file]"
|
14
|
+
param.separator ''
|
15
|
+
param.separator "Mode Cipher:"
|
16
|
+
param.on('--encoding=[CIPHER]', String, 'encoding input text or file'){|en_co| options.enc = en_co}
|
17
|
+
param.on('--decoding=[CIPHER]', String, 'decoding input text or file'){|de_co| options.dec = de_co}
|
18
|
+
param.separator "Mode Cryptography"
|
19
|
+
param.on('--encrypt=[FORMAT]', String, 'encrypt parameter'){|en_en| options.encrypt = en_en}
|
20
|
+
param.separator "Mode BruteForce"
|
21
|
+
param.on('-b', '--bruteforce=DIGEST', String, 'brute force mode to crack a hash'){|modeforce|options.bruteforce = modeforce}
|
22
|
+
param.separator ""
|
23
|
+
param.separator "Options:"
|
24
|
+
param.on('-l', '--list=encoding or encrypt', String, 'list cipher types of hash formats'){|lin| options.list = lin}
|
25
|
+
param.on('-r', '--range MIN MAX', Array, "word chars length"){|rang| options.range = rang}
|
26
|
+
param.on('-c', '--chars CHARACTERS', String, 'character input to generate word lists'){|chars| options.chars = chars}
|
27
|
+
param.on('-w', '--wordlist=WORDLIST', 'Wordlist mode, read words from FILE or stadin (default: rockyou)'){|wordlist| options.wordlist = wordlist}
|
28
|
+
param.on('--show=[FORMAT]', String, 'show decrypted specific hash'){|de_en| options.decrypt = de_en}
|
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}
|
32
|
+
param.on('--usage', 'show examples of use of this tool')do
|
33
|
+
puts "usage: cobreak [--mode] [--options] [--input] text or file"
|
34
|
+
puts ""
|
35
|
+
puts "cipher:"
|
36
|
+
puts ""
|
37
|
+
puts "cobreak --encoding=[CIPHER] --input text or file"
|
38
|
+
puts "cobreak --decoding=[CIPHER] --input text or file"
|
39
|
+
puts ""
|
40
|
+
puts "note that the cesar cipher mode has to have a number in front to know the rotations"
|
41
|
+
puts "examples: --encoding=cesar 5 --input hola"
|
42
|
+
puts ""
|
43
|
+
puts "bruteforce:"
|
44
|
+
puts ""
|
45
|
+
puts "cobreak --bruteforce=[ENCRYPT] --wordlist=[WORDLIST] --input text or file"
|
46
|
+
puts "cobreak --bruteforce=[ENCRYPT] --chars [CHARACTERS] --range MIN MAX --input text or file"
|
47
|
+
puts ""
|
48
|
+
end
|
49
|
+
param.on_tail('-V', '--version', 'show version'){puts "CoBreak version #{CoBreak.version}"; exit}
|
50
|
+
param.on_tail('-h', '--help', 'command to view help parameters'){puts param; exit}
|
51
|
+
param.separator ''
|
52
|
+
end.parse!
|
53
|
+
rescue OptionParser::MissingArgument => missing
|
54
|
+
if missing.to_s.include?("--wordlist")
|
55
|
+
options.wordlist = File.join(Gem.path[1], 'gems', "cobreak-#{CoBreak.version}", 'diccionario.txt')
|
56
|
+
elsif missing.to_s.include?("--chars")
|
57
|
+
options.chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
|
58
|
+
else
|
59
|
+
puts missing.message
|
60
|
+
end
|
61
|
+
ensure
|
62
|
+
if (options.wordlist == "rockyou")
|
63
|
+
unless (File.exists?(options.wordlist))
|
64
|
+
#options.wordlist = File.join(Gem.path[1], 'gems', "cobreak-#{CoBreak.version}", 'diccionario.txt')
|
65
|
+
options.wordlist = File.join('/usr', 'share', 'wordlists', 'rockyou.txt')
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
CoBreak::Box.var(options)
|
70
|
+
case options.bruteforce
|
71
|
+
when ('1')
|
72
|
+
options.bruteforce = 'md4'
|
73
|
+
when ('2')
|
74
|
+
options.bruteforce = 'md5'
|
75
|
+
when ('3')
|
76
|
+
options.bruteforce = 'half-md5'
|
77
|
+
when ('4')
|
78
|
+
options.bruteforce = 'sha1'
|
79
|
+
when ('5')
|
80
|
+
options.bruteforce = 'double-sha1'
|
81
|
+
when ('6')
|
82
|
+
options.bruteforce = 'sha2-224'
|
83
|
+
when ('7')
|
84
|
+
options.bruteforce = 'sha2-256'
|
85
|
+
when ('8')
|
86
|
+
options.bruteforce = 'sha2-384'
|
87
|
+
when ('9')
|
88
|
+
options.bruteforce = 'sha2-512'
|
89
|
+
when ('10')
|
90
|
+
options.bruteforce = 'sha3-224'
|
91
|
+
when ('11')
|
92
|
+
options.bruteforce = 'sha3-256'
|
93
|
+
when ('12')
|
94
|
+
options.bruteforce = 'sha3-384'
|
95
|
+
when ('13')
|
96
|
+
options.bruteforce = 'sha3-512'
|
97
|
+
when ('14')
|
98
|
+
options.bruteforce = 'ripemd-160'
|
99
|
+
when ('15')
|
100
|
+
options.bruteforce = 'tiger-160'
|
101
|
+
when ('16')
|
102
|
+
options.bruteforce = 'blake2s-128'
|
103
|
+
when ('17')
|
104
|
+
options.bruteforce = 'blake2s-160'
|
105
|
+
when ('18')
|
106
|
+
options.bruteforce = 'blake2b-160'
|
107
|
+
when ('19')
|
108
|
+
options.bruteforce = 'blake2s-224'
|
109
|
+
when ('20')
|
110
|
+
options.bruteforce = 'blake2s-256'
|
111
|
+
when ('21')
|
112
|
+
options.bruteforce = 'blake2b-256'
|
113
|
+
when ('22')
|
114
|
+
options.bruteforce = 'blake2b-384'
|
115
|
+
when ('23')
|
116
|
+
options.bruteforce = 'blake2b-512'
|
117
|
+
when ('24')
|
118
|
+
options.bruteforce = 'whirlpool'
|
119
|
+
when ('25')
|
120
|
+
options.bruteforce = 'gost-streeboog-256'
|
121
|
+
when ('26')
|
122
|
+
options.bruteforce = 'gost-streeboog-512'
|
123
|
+
when ('27')
|
124
|
+
options.bruteforce = 'shake-128'
|
125
|
+
else
|
126
|
+
puts ""
|
127
|
+
end
|
128
|
+
if !(options.enc.nil?) or !(options.dec.nil?)
|
129
|
+
CoBreak::Box::Cipher.coding()
|
130
|
+
end
|
131
|
+
if !(options.encrypt.nil?) or !(options.decrypt.nil?)
|
132
|
+
CoBreak::Box::Cryptgraphy.crypt()
|
133
|
+
end
|
134
|
+
CoBreak::List.new(options)
|
135
|
+
unless (options.wordlist.nil?) or (options.wordlist.empty?)
|
136
|
+
bruteforce = CoBreak::BruteForze.new(options)
|
137
|
+
bruteforce.banner_wordlist()
|
138
|
+
bruteforce.wordlist
|
139
|
+
end
|
140
|
+
unless (options.chars.nil?) or (options.chars.empty?)
|
141
|
+
options.range << ARGV[0].to_i
|
142
|
+
brutechars = CoBreak::BruteChars.new(options)
|
143
|
+
brutechars.banner_chars()
|
144
|
+
brutechars.chars()
|
145
|
+
end
|
146
|
+
end
|
147
|
+
end
|
148
|
+
end
|
data/lib/cobreak/run.rb
ADDED
data/lib/cobreak.rb
ADDED
metadata
ADDED
@@ -0,0 +1,185 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: cobreaktws
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.4
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- BreakerTW
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2024-10-25 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.5'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.5'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: openssl
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 2.2.0
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 2.2.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: sequel
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 5.44.0
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 5.44.0
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: sqlite3
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '1.4'
|
62
|
+
- - ">="
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: 1.4.0
|
65
|
+
type: :development
|
66
|
+
prerelease: false
|
67
|
+
version_requirements: !ruby/object:Gem::Requirement
|
68
|
+
requirements:
|
69
|
+
- - "~>"
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
version: '1.4'
|
72
|
+
- - ">="
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: 1.4.0
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: sqlite3
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - "~>"
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '1.4'
|
82
|
+
- - ">="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: 1.4.0
|
85
|
+
type: :runtime
|
86
|
+
prerelease: false
|
87
|
+
version_requirements: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - "~>"
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '1.4'
|
92
|
+
- - ">="
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: 1.4.0
|
95
|
+
- !ruby/object:Gem::Dependency
|
96
|
+
name: Ascii85
|
97
|
+
requirement: !ruby/object:Gem::Requirement
|
98
|
+
requirements:
|
99
|
+
- - "~>"
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '1.0'
|
102
|
+
- - ">="
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: 1.0.0
|
105
|
+
type: :runtime
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - "~>"
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '1.0'
|
112
|
+
- - ">="
|
113
|
+
- !ruby/object:Gem::Version
|
114
|
+
version: 1.0.0
|
115
|
+
description: The CoBreak script is an cipher and cryptography tool
|
116
|
+
email: breaker@gmail.com
|
117
|
+
executables:
|
118
|
+
- cobreak
|
119
|
+
- cbrdb
|
120
|
+
extensions:
|
121
|
+
- ext/cobreak/extconf.rb
|
122
|
+
extra_rdoc_files: []
|
123
|
+
files:
|
124
|
+
- ".vscode/settings.json"
|
125
|
+
- Gemfile
|
126
|
+
- README.md
|
127
|
+
- bin/cbrdb
|
128
|
+
- bin/cobreak
|
129
|
+
- cobreak.gemspec
|
130
|
+
- ext/cobreak/cobreak.c
|
131
|
+
- ext/cobreak/cobreak_cipher.c
|
132
|
+
- ext/cobreak/cobreak_cipher.h
|
133
|
+
- ext/cobreak/cobreak_gcrypt.c
|
134
|
+
- ext/cobreak/cobreak_gcrypt.h
|
135
|
+
- ext/cobreak/cobreak_openmp.c
|
136
|
+
- ext/cobreak/cobreak_openmp.h
|
137
|
+
- ext/cobreak/cobreak_openssl.c
|
138
|
+
- ext/cobreak/cobreak_openssl.h
|
139
|
+
- ext/cobreak/cobreak_ruby.h
|
140
|
+
- ext/cobreak/extconf.rb
|
141
|
+
- lib/cobreak.rb
|
142
|
+
- lib/cobreak/binary.rb
|
143
|
+
- lib/cobreak/cesar.rb
|
144
|
+
- lib/cobreak/cifrado.rb
|
145
|
+
- lib/cobreak/cobreak_opt.rb
|
146
|
+
- lib/cobreak/config/database.db
|
147
|
+
- lib/cobreak/decifrado.rb
|
148
|
+
- lib/cobreak/decrypt.rb
|
149
|
+
- lib/cobreak/details.rb
|
150
|
+
- lib/cobreak/encrypt.rb
|
151
|
+
- lib/cobreak/force.rb
|
152
|
+
- lib/cobreak/force_brute.rb
|
153
|
+
- lib/cobreak/force_chars.rb
|
154
|
+
- lib/cobreak/function_db.rb
|
155
|
+
- lib/cobreak/function_hash.rb
|
156
|
+
- lib/cobreak/hash/hash.db
|
157
|
+
- lib/cobreak/info_author.rb
|
158
|
+
- lib/cobreak/list_all.rb
|
159
|
+
- lib/cobreak/optionpr.rb
|
160
|
+
- lib/cobreak/run.rb
|
161
|
+
- lib/cobreak/version.rb
|
162
|
+
homepage: https://github.com/BreakingTWS/CoBreak
|
163
|
+
licenses:
|
164
|
+
- MIT
|
165
|
+
metadata: {}
|
166
|
+
post_install_message: thanks for installing my gem
|
167
|
+
rdoc_options: []
|
168
|
+
require_paths:
|
169
|
+
- lib
|
170
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
171
|
+
requirements:
|
172
|
+
- - ">="
|
173
|
+
- !ruby/object:Gem::Version
|
174
|
+
version: '0'
|
175
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
176
|
+
requirements:
|
177
|
+
- - ">="
|
178
|
+
- !ruby/object:Gem::Version
|
179
|
+
version: '0'
|
180
|
+
requirements: []
|
181
|
+
rubygems_version: 3.3.15
|
182
|
+
signing_key:
|
183
|
+
specification_version: 4
|
184
|
+
summary: Force Brute, Cipher, Cryptography
|
185
|
+
test_files: []
|